From 5777a7beb799a96c5b0c0c63002c188536758b3c Mon Sep 17 00:00:00 2001 From: huchenlei Date: Fri, 3 Jan 2025 16:17:04 -0500 Subject: [PATCH 1/2] Update web content to release v1.6.17 --- ...hVwbhN.js => BaseViewTemplate-CsEJhGbv.js} | 4 +- web/assets/BaseViewTemplate-CsEJhGbv.js.map | 1 + ...zlZoglc.js => DownloadGitView-DP1MIWYX.js} | 6 +-- web/assets/DownloadGitView-DP1MIWYX.js.map | 1 + ...C1yxn9cA.js => ExtensionPanel-CxijYN47.js} | 10 ++--- web/assets/ExtensionPanel-CxijYN47.js.map | 1 + ...View-BhIVbg_-.js => GraphView-DswvqURL.js} | 14 +++--- web/assets/GraphView-DswvqURL.js.map | 1 + ...ew-ZoxdV0Ib.js => InstallView-AV2llYNm.js} | 6 +-- web/assets/InstallView-AV2llYNm.js.map | 1 + ...Ohe3VgH.js => KeybindingPanel-CxaJ1IiJ.js} | 12 ++--- web/assets/KeybindingPanel-CxaJ1IiJ.js.map | 1 + ...js => ManualConfigurationView-BA4Vtud8.js} | 10 ++--- .../ManualConfigurationView-BA4Vtud8.js.map | 1 + ...tNsodN.js => NotSupportedView-CRaD8u74.js} | 6 +-- web/assets/NotSupportedView-CRaD8u74.js.map | 1 + ...wCDu2.js => ServerConfigPanel-TLv4HMGK.js} | 6 +-- web/assets/ServerConfigPanel-TLv4HMGK.js.map | 1 + ...A9I3WCH.js => ServerStartView-CiO_acWT.js} | 6 +-- web/assets/ServerStartView-CiO_acWT.js.map | 1 + ...Bpmnopou.js => UserSelectView-2l9Kbchu.js} | 6 +-- web/assets/UserSelectView-2l9Kbchu.js.map | 1 + ...ew-Cg-dprpV.js => WelcomeView-CB7Th_kO.js} | 6 +-- web/assets/WelcomeView-CB7Th_kO.js.map | 1 + .../{index-CCg06AEp.js => index-5Sv744Dr.js} | 33 ++++++++++++-- web/assets/index-5Sv744Dr.js.map | 1 + .../{index-VIBj2YvH.js => index-B7ycxfFq.js} | 4 +- web/assets/index-B7ycxfFq.js.map | 1 + .../{index-BbhVsmQe.js => index-C4Fk50Nx.js} | 44 ++++++++++++------- web/assets/index-C4Fk50Nx.js.map | 1 + .../{index-DIIs-Ju9.js => index-CK0rrCYF.js} | 8 ++-- web/assets/index-CK0rrCYF.js.map | 1 + .../{index-BuE2B-Gw.js => index-hdfnBvYs.js} | 6 +-- web/assets/index-hdfnBvYs.js.map | 1 + .../{index-BQjD3NM4.js => index-lMQBwSDj.js} | 4 +- web/assets/index-lMQBwSDj.js.map | 1 + ...hteGb.js => keybindingService-D48fkLBy.js} | 4 +- web/assets/keybindingService-D48fkLBy.js.map | 1 + ...r6oWT.js => serverConfigStore-BawYAb1j.js} | 4 +- web/assets/serverConfigStore-BawYAb1j.js.map | 1 + web/index.html | 2 +- 41 files changed, 139 insertions(+), 82 deletions(-) rename web/assets/{BaseViewTemplate-qOhVwbhN.js => BaseViewTemplate-CsEJhGbv.js} (84%) create mode 100644 web/assets/BaseViewTemplate-CsEJhGbv.js.map rename web/assets/{DownloadGitView-XzlZoglc.js => DownloadGitView-DP1MIWYX.js} (94%) create mode 100644 web/assets/DownloadGitView-DP1MIWYX.js.map rename web/assets/{ExtensionPanel-C1yxn9cA.js => ExtensionPanel-CxijYN47.js} (96%) create mode 100644 web/assets/ExtensionPanel-CxijYN47.js.map rename web/assets/{GraphView-BhIVbg_-.js => GraphView-DswvqURL.js} (99%) create mode 100644 web/assets/GraphView-DswvqURL.js.map rename web/assets/{InstallView-ZoxdV0Ib.js => InstallView-AV2llYNm.js} (99%) create mode 100644 web/assets/InstallView-AV2llYNm.js.map rename web/assets/{KeybindingPanel-COhe3VgH.js => KeybindingPanel-CxaJ1IiJ.js} (98%) create mode 100644 web/assets/KeybindingPanel-CxaJ1IiJ.js.map rename web/assets/{ManualConfigurationView-CYxSElYw.js => ManualConfigurationView-BA4Vtud8.js} (94%) create mode 100644 web/assets/ManualConfigurationView-BA4Vtud8.js.map rename web/assets/{NotSupportedView-sBtNsodN.js => NotSupportedView-CRaD8u74.js} (95%) create mode 100644 web/assets/NotSupportedView-CRaD8u74.js.map rename web/assets/{ServerConfigPanel-BHbwCDu2.js => ServerConfigPanel-TLv4HMGK.js} (97%) create mode 100644 web/assets/ServerConfigPanel-TLv4HMGK.js.map rename web/assets/{ServerStartView-BA9I3WCH.js => ServerStartView-CiO_acWT.js} (95%) create mode 100644 web/assets/ServerStartView-CiO_acWT.js.map rename web/assets/{UserSelectView-Bpmnopou.js => UserSelectView-2l9Kbchu.js} (97%) create mode 100644 web/assets/UserSelectView-2l9Kbchu.js.map rename web/assets/{WelcomeView-Cg-dprpV.js => WelcomeView-CB7Th_kO.js} (90%) create mode 100644 web/assets/WelcomeView-CB7Th_kO.js.map rename web/assets/{index-CCg06AEp.js => index-5Sv744Dr.js} (99%) create mode 100644 web/assets/index-5Sv744Dr.js.map rename web/assets/{index-VIBj2YvH.js => index-B7ycxfFq.js} (93%) create mode 100644 web/assets/index-B7ycxfFq.js.map rename web/assets/{index-BbhVsmQe.js => index-C4Fk50Nx.js} (99%) create mode 100644 web/assets/index-C4Fk50Nx.js.map rename web/assets/{index-DIIs-Ju9.js => index-CK0rrCYF.js} (99%) create mode 100644 web/assets/index-CK0rrCYF.js.map rename web/assets/{index-BuE2B-Gw.js => index-hdfnBvYs.js} (97%) create mode 100644 web/assets/index-hdfnBvYs.js.map rename web/assets/{index-BQjD3NM4.js => index-lMQBwSDj.js} (94%) create mode 100644 web/assets/index-lMQBwSDj.js.map rename web/assets/{keybindingService-DohhteGb.js => keybindingService-D48fkLBy.js} (98%) create mode 100644 web/assets/keybindingService-D48fkLBy.js.map rename web/assets/{serverConfigStore-CdBr6oWT.js => serverConfigStore-BawYAb1j.js} (97%) create mode 100644 web/assets/serverConfigStore-BawYAb1j.js.map diff --git a/web/assets/BaseViewTemplate-qOhVwbhN.js b/web/assets/BaseViewTemplate-CsEJhGbv.js similarity index 84% rename from web/assets/BaseViewTemplate-qOhVwbhN.js rename to web/assets/BaseViewTemplate-CsEJhGbv.js index edf5ca11588..d254b402fc5 100644 --- a/web/assets/BaseViewTemplate-qOhVwbhN.js +++ b/web/assets/BaseViewTemplate-CsEJhGbv.js @@ -1,4 +1,4 @@ -import { d as defineComponent, o as openBlock, f as createElementBlock, J as renderSlot, T as normalizeClass } from "./index-BbhVsmQe.js"; +import { d as defineComponent, o as openBlock, f as createElementBlock, J as renderSlot, T as normalizeClass } from "./index-C4Fk50Nx.js"; const _sfc_main = /* @__PURE__ */ defineComponent({ __name: "BaseViewTemplate", props: { @@ -20,4 +20,4 @@ const _sfc_main = /* @__PURE__ */ defineComponent({ export { _sfc_main as _ }; -//# sourceMappingURL=BaseViewTemplate-qOhVwbhN.js.map +//# sourceMappingURL=BaseViewTemplate-CsEJhGbv.js.map diff --git a/web/assets/BaseViewTemplate-CsEJhGbv.js.map b/web/assets/BaseViewTemplate-CsEJhGbv.js.map new file mode 100644 index 00000000000..7674541541e --- /dev/null +++ b/web/assets/BaseViewTemplate-CsEJhGbv.js.map @@ -0,0 +1 @@ +{"version":3,"file":"BaseViewTemplate-CsEJhGbv.js","sources":["../../src/views/templates/BaseViewTemplate.vue"],"sourcesContent":["\n\n\n"],"names":[],"mappings":";;;;;;;AAcA,UAAM,QAAQ;;;;;;;;;;;;"} \ No newline at end of file diff --git a/web/assets/DownloadGitView-XzlZoglc.js b/web/assets/DownloadGitView-DP1MIWYX.js similarity index 94% rename from web/assets/DownloadGitView-XzlZoglc.js rename to web/assets/DownloadGitView-DP1MIWYX.js index 1f740682a84..fff3e7436fe 100644 --- a/web/assets/DownloadGitView-XzlZoglc.js +++ b/web/assets/DownloadGitView-DP1MIWYX.js @@ -1,7 +1,7 @@ var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -import { d as defineComponent, o as openBlock, k as createBlock, M as withCtx, H as createBaseVNode, X as toDisplayString, N as createVNode, j as unref, l as script, bW as useRouter } from "./index-BbhVsmQe.js"; -import { _ as _sfc_main$1 } from "./BaseViewTemplate-qOhVwbhN.js"; +import { d as defineComponent, o as openBlock, k as createBlock, M as withCtx, H as createBaseVNode, X as toDisplayString, N as createVNode, j as unref, l as script, bW as useRouter } from "./index-C4Fk50Nx.js"; +import { _ as _sfc_main$1 } from "./BaseViewTemplate-CsEJhGbv.js"; const _hoisted_1 = { class: "max-w-screen-sm flex flex-col gap-8 p-8 bg-[url('/assets/images/Git-Logo-White.svg')] bg-no-repeat bg-right-top bg-origin-padding" }; const _hoisted_2 = { class: "mt-24 text-4xl font-bold text-red-500" }; const _hoisted_3 = { class: "space-y-4" }; @@ -55,4 +55,4 @@ const _sfc_main = /* @__PURE__ */ defineComponent({ export { _sfc_main as default }; -//# sourceMappingURL=DownloadGitView-XzlZoglc.js.map +//# sourceMappingURL=DownloadGitView-DP1MIWYX.js.map diff --git a/web/assets/DownloadGitView-DP1MIWYX.js.map b/web/assets/DownloadGitView-DP1MIWYX.js.map new file mode 100644 index 00000000000..b6c66250e97 --- /dev/null +++ b/web/assets/DownloadGitView-DP1MIWYX.js.map @@ -0,0 +1 @@ +{"version":3,"file":"DownloadGitView-DP1MIWYX.js","sources":["../../src/views/DownloadGitView.vue"],"sourcesContent":["\n\n\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAiDA,UAAM,mBAAmB,6BAAM;AACtB,aAAA,KAAK,kCAAkC,QAAQ;AAAA,IAAA,GAD/B;AAIzB,UAAM,UAAU,6BAAM;AACpB,cAAQ,KAAK,SAAS;AACtB,YAAM,SAAS;AACf,aAAO,KAAK,SAAS;AAAA,IAAA,GAHP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/web/assets/ExtensionPanel-C1yxn9cA.js b/web/assets/ExtensionPanel-CxijYN47.js similarity index 96% rename from web/assets/ExtensionPanel-C1yxn9cA.js rename to web/assets/ExtensionPanel-CxijYN47.js index 87cba620362..6cf7706c1d6 100644 --- a/web/assets/ExtensionPanel-C1yxn9cA.js +++ b/web/assets/ExtensionPanel-CxijYN47.js @@ -1,9 +1,9 @@ var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -import { d as defineComponent, ab as ref, cn as FilterMatchMode, cs as useExtensionStore, a as useSettingStore, m as onMounted, c as computed, o as openBlock, k as createBlock, M as withCtx, N as createVNode, co as SearchBox, j as unref, bZ as script, H as createBaseVNode, f as createElementBlock, E as renderList, X as toDisplayString, aE as createTextVNode, F as Fragment, l as script$1, I as createCommentVNode, aI as script$3, bO as script$4, c4 as script$5, cp as _sfc_main$1 } from "./index-BbhVsmQe.js"; -import { s as script$2, a as script$6 } from "./index-DIIs-Ju9.js"; -import "./index-BQjD3NM4.js"; -import "./index-VIBj2YvH.js"; +import { d as defineComponent, ab as ref, cn as FilterMatchMode, cs as useExtensionStore, a as useSettingStore, m as onMounted, c as computed, o as openBlock, k as createBlock, M as withCtx, N as createVNode, co as SearchBox, j as unref, bZ as script, H as createBaseVNode, f as createElementBlock, E as renderList, X as toDisplayString, aE as createTextVNode, F as Fragment, l as script$1, I as createCommentVNode, aI as script$3, bO as script$4, c4 as script$5, cp as _sfc_main$1 } from "./index-C4Fk50Nx.js"; +import { s as script$2, a as script$6 } from "./index-CK0rrCYF.js"; +import "./index-lMQBwSDj.js"; +import "./index-B7ycxfFq.js"; const _hoisted_1 = { class: "flex justify-end" }; const _sfc_main = /* @__PURE__ */ defineComponent({ __name: "ExtensionPanel", @@ -180,4 +180,4 @@ const _sfc_main = /* @__PURE__ */ defineComponent({ export { _sfc_main as default }; -//# sourceMappingURL=ExtensionPanel-C1yxn9cA.js.map +//# sourceMappingURL=ExtensionPanel-CxijYN47.js.map diff --git a/web/assets/ExtensionPanel-CxijYN47.js.map b/web/assets/ExtensionPanel-CxijYN47.js.map new file mode 100644 index 00000000000..9730641bedd --- /dev/null +++ b/web/assets/ExtensionPanel-CxijYN47.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ExtensionPanel-CxijYN47.js","sources":["../../src/components/dialog/content/setting/ExtensionPanel.vue"],"sourcesContent":["\n\n\n"],"names":[],"mappings":";;;;;;;;;;AA0FA,UAAM,UAAU,IAAI;AAAA,MAClB,QAAQ,EAAE,OAAO,IAAI,WAAW,gBAAgB,SAAS;AAAA,IAAA,CAC1D;AAED,UAAM,iBAAiB;AACvB,UAAM,eAAe;AAEf,UAAA,2BAA2B,IAA6B,CAAA,CAAE;AAEhE,cAAU,MAAM;AACC,qBAAA,WAAW,QAAQ,CAAC,QAAQ;AACzC,iCAAyB,MAAM,IAAI,IAAI,IACrC,eAAe,mBAAmB,IAAI,IAAI;AAAA,MAAA,CAC7C;AAAA,IAAA,CACF;AAEK,UAAA,oBAAoB,SAAS,MAAM;AACvC,aAAO,eAAe,WAAW;AAAA,QAC/B,CAAC,QACC,yBAAyB,MAAM,IAAI,IAAI,MACvC,eAAe,mBAAmB,IAAI,IAAI;AAAA,MAAA;AAAA,IAC9C,CACD;AAEK,UAAA,aAAa,SAAS,MAAM;AACzB,aAAA,kBAAkB,MAAM,SAAS;AAAA,IAAA,CACzC;AAED,UAAM,wBAAwB,6BAAM;AAClC,YAAM,gCAAgC,OAAO;AAAA,QAC3C,yBAAyB;AAAA,MAExB,EAAA,OAAO,CAAC,CAAC,GAAG,OAAO,MAAM,CAAC,OAAO,EACjC,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI;AAEvB,mBAAa,IAAI,4BAA4B;AAAA,QAC3C,GAAG,eAAe;AAAA,QAClB,GAAG;AAAA,MAAA,CACJ;AAAA,IAAA,GAV2B;AAa9B,UAAM,sBAAsB,6BAAM;AACjB,qBAAA,WAAW,QAAQ,CAAC,QAAQ;AACzC,YAAI,eAAe,oBAAoB,IAAI,IAAI,EAAG;AAEzB,iCAAA,MAAM,IAAI,IAAI,IAAI;AAAA,MAAA,CAC5C;AACqB;IAAA,GANI;AAS5B,UAAM,uBAAuB,6BAAM;AAClB,qBAAA,WAAW,QAAQ,CAAC,QAAQ;AACzC,YAAI,eAAe,oBAAoB,IAAI,IAAI,EAAG;AAEzB,iCAAA,MAAM,IAAI,IAAI,IAAI;AAAA,MAAA,CAC5C;AACqB;IAAA,GANK;AAS7B,UAAM,8BAA8B,6BAAM;AACzB,qBAAA,WAAW,QAAQ,CAAC,QAAQ;AACzC,YAAI,eAAe,gBAAgB,IAAI,IAAI,EAAG;AAErB,iCAAA,MAAM,IAAI,IAAI,IAAI;AAAA,MAAA,CAC5C;AACqB;IAAA,GANY;AASpC,UAAM,eAAe,6BAAM;AAEzB,aAAO,SAAS;IAAO,GAFJ;AAKrB,UAAM,OAAO;AACb,UAAM,mBAAmB;AAAA,MACvB;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,QACN,SAAS;AAAA,MACX;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,QACN,SAAS;AAAA,MACX;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU,CAAC,eAAe;AAAA,MAC5B;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/web/assets/GraphView-BhIVbg_-.js b/web/assets/GraphView-DswvqURL.js similarity index 99% rename from web/assets/GraphView-BhIVbg_-.js rename to web/assets/GraphView-DswvqURL.js index 16be67b0d05..14d9f192534 100644 --- a/web/assets/GraphView-BhIVbg_-.js +++ b/web/assets/GraphView-DswvqURL.js @@ -1,11 +1,11 @@ var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -import { d as defineComponent, u as useExecutionStore, c as computed, a as useSettingStore, b as useWorkflowStore, e as useTitle, o as openBlock, f as createElementBlock, g as useWorkspaceStore, w as watchEffect, h as app, r as resolveDirective, i as withDirectives, v as vShow, j as unref, k as createBlock, n as normalizeStyle, s as showNativeMenu, l as script$d, _ as _export_sfc, m as onMounted, p as onBeforeUnmount, B as BaseStyle, q as script$e, t as getWidth, x as getHeight, y as getOuterWidth, z as getOuterHeight, A as getVNodeProp, C as isArray, D as mergeProps, F as Fragment, E as renderList, G as resolveDynamicComponent, H as createBaseVNode, I as createCommentVNode, J as renderSlot, K as useSidebarTabStore, L as useBottomPanelStore, M as withCtx, N as createVNode, O as getAttribute, P as findSingle, Q as focus, R as equals, S as Ripple, T as normalizeClass, U as getOffset, V as script$f, W as script$g, X as toDisplayString, Y as script$h, Z as markRaw, $ as defineStore, a0 as shallowRef, a1 as useI18n, a2 as useCommandStore, a3 as LiteGraph, a4 as useColorPaletteStore, a5 as watch, a6 as useNodeDefStore, a7 as BadgePosition, a8 as LGraphBadge, a9 as _, aa as NodeBadgeMode, ab as ref, ac as useEventListener, ad as nextTick, ae as st, af as normalizeI18nKey, ag as LGraphGroup, ah as LGraphNode, ai as EditableText, aj as isNotEmpty, ak as UniqueComponentId, al as ZIndex, am as resolveFieldData, an as OverlayEventBus, ao as isEmpty, ap as addStyle, aq as relativePosition, ar as absolutePosition, as as ConnectedOverlayScrollHandler, at as isTouchDevice, au as findLastIndex, av as script$i, aw as script$j, ax as script$k, ay as script$l, az as script$m, aA as script$n, aB as resolveComponent, aC as Transition, aD as createSlots, aE as createTextVNode, aF as useNodeFrequencyStore, aG as useNodeBookmarkStore, aH as highlightQuery, aI as script$o, aJ as formatNumberWithSuffix, aK as NodeSourceType, aL as pushScopeId, aM as popScopeId, aN as NodePreview, aO as NodeSearchFilter, aP as script$p, aQ as SearchFilterChip, aR as useLitegraphService, aS as storeToRefs, aT as isRef, aU as toRaw, aV as LinkReleaseTriggerAction, aW as script$q, aX as useUserStore, aY as useDialogStore, aZ as SettingDialogHeader, a_ as SettingDialogContent, a$ as useKeybindingStore, b0 as Teleport, b1 as LinkMarkerShape, b2 as useModelToNodeStore, b3 as CanvasPointer, b4 as IS_CONTROL_WIDGET, b5 as updateControlWidgetLabel, b6 as useColorPaletteService, b7 as setStorageValue, b8 as api, b9 as usePragmaticDroppable, ba as LGraph, bb as LLink, bc as DragAndScale, bd as LGraphCanvas, be as ContextMenu, bf as ChangeTracker, bg as useWorkflowService, bh as ComfyNodeDefImpl, bi as ComfyModelDef, bj as script$r, bk as script$s, bl as script$t, bm as script$u, bn as script$v, bo as normalizeProps, bp as ToastEventBus, bq as setAttribute, br as TransitionGroup, bs as useToast, bt as useToastStore, bu as resolve, bv as nestedPosition, bw as script$w, bx as isPrintableCharacter, by as useQueueSettingsStore, bz as script$x, bA as useQueuePendingTaskCountStore, bB as useLocalStorage, bC as useDraggable, bD as watchDebounced, bE as inject, bF as useElementBounding, bG as lodashExports, bH as useEventBus, bI as script$z, bJ as guardReactiveProps, bK as useMenuItemStore, bL as usePragmaticDraggable, bM as withModifiers, bN as script$B, bO as script$C, bP as provide, bQ as script$D, bR as useDialogService, bS as LGraphEventMode, bT as useQueueStore, bU as i18n, bV as useModelStore } from "./index-BbhVsmQe.js"; -import { s as script$y } from "./index-BuE2B-Gw.js"; -import { s as script$A } from "./index-BQjD3NM4.js"; -import { u as useKeybindingService } from "./keybindingService-DohhteGb.js"; -import { u as useServerConfigStore } from "./serverConfigStore-CdBr6oWT.js"; -import "./index-VIBj2YvH.js"; +import { d as defineComponent, u as useExecutionStore, c as computed, a as useSettingStore, b as useWorkflowStore, e as useTitle, o as openBlock, f as createElementBlock, g as useWorkspaceStore, w as watchEffect, h as app, r as resolveDirective, i as withDirectives, v as vShow, j as unref, k as createBlock, n as normalizeStyle, s as showNativeMenu, l as script$d, _ as _export_sfc, m as onMounted, p as onBeforeUnmount, B as BaseStyle, q as script$e, t as getWidth, x as getHeight, y as getOuterWidth, z as getOuterHeight, A as getVNodeProp, C as isArray, D as mergeProps, F as Fragment, E as renderList, G as resolveDynamicComponent, H as createBaseVNode, I as createCommentVNode, J as renderSlot, K as useSidebarTabStore, L as useBottomPanelStore, M as withCtx, N as createVNode, O as getAttribute, P as findSingle, Q as focus, R as equals, S as Ripple, T as normalizeClass, U as getOffset, V as script$f, W as script$g, X as toDisplayString, Y as script$h, Z as markRaw, $ as defineStore, a0 as shallowRef, a1 as useI18n, a2 as useCommandStore, a3 as LiteGraph, a4 as useColorPaletteStore, a5 as watch, a6 as useNodeDefStore, a7 as BadgePosition, a8 as LGraphBadge, a9 as _, aa as NodeBadgeMode, ab as ref, ac as useEventListener, ad as nextTick, ae as st, af as normalizeI18nKey, ag as LGraphGroup, ah as LGraphNode, ai as EditableText, aj as isNotEmpty, ak as UniqueComponentId, al as ZIndex, am as resolveFieldData, an as OverlayEventBus, ao as isEmpty, ap as addStyle, aq as relativePosition, ar as absolutePosition, as as ConnectedOverlayScrollHandler, at as isTouchDevice, au as findLastIndex, av as script$i, aw as script$j, ax as script$k, ay as script$l, az as script$m, aA as script$n, aB as resolveComponent, aC as Transition, aD as createSlots, aE as createTextVNode, aF as useNodeFrequencyStore, aG as useNodeBookmarkStore, aH as highlightQuery, aI as script$o, aJ as formatNumberWithSuffix, aK as NodeSourceType, aL as pushScopeId, aM as popScopeId, aN as NodePreview, aO as NodeSearchFilter, aP as script$p, aQ as SearchFilterChip, aR as useLitegraphService, aS as storeToRefs, aT as isRef, aU as toRaw, aV as LinkReleaseTriggerAction, aW as script$q, aX as useUserStore, aY as useDialogStore, aZ as SettingDialogHeader, a_ as SettingDialogContent, a$ as useKeybindingStore, b0 as Teleport, b1 as LinkMarkerShape, b2 as useModelToNodeStore, b3 as CanvasPointer, b4 as IS_CONTROL_WIDGET, b5 as updateControlWidgetLabel, b6 as useColorPaletteService, b7 as setStorageValue, b8 as api, b9 as usePragmaticDroppable, ba as LGraph, bb as LLink, bc as DragAndScale, bd as LGraphCanvas, be as ContextMenu, bf as ChangeTracker, bg as useWorkflowService, bh as ComfyNodeDefImpl, bi as ComfyModelDef, bj as script$r, bk as script$s, bl as script$t, bm as script$u, bn as script$v, bo as normalizeProps, bp as ToastEventBus, bq as setAttribute, br as TransitionGroup, bs as useToast, bt as useToastStore, bu as resolve, bv as nestedPosition, bw as script$w, bx as isPrintableCharacter, by as useQueueSettingsStore, bz as script$x, bA as useQueuePendingTaskCountStore, bB as useLocalStorage, bC as useDraggable, bD as watchDebounced, bE as inject, bF as useElementBounding, bG as lodashExports, bH as useEventBus, bI as script$z, bJ as guardReactiveProps, bK as useMenuItemStore, bL as usePragmaticDraggable, bM as withModifiers, bN as script$B, bO as script$C, bP as provide, bQ as script$D, bR as useDialogService, bS as LGraphEventMode, bT as useQueueStore, bU as i18n, bV as useModelStore } from "./index-C4Fk50Nx.js"; +import { s as script$y } from "./index-hdfnBvYs.js"; +import { s as script$A } from "./index-lMQBwSDj.js"; +import { u as useKeybindingService } from "./keybindingService-D48fkLBy.js"; +import { u as useServerConfigStore } from "./serverConfigStore-BawYAb1j.js"; +import "./index-B7ycxfFq.js"; const DEFAULT_TITLE = "ComfyUI"; const TITLE_SUFFIX = " - ComfyUI"; const _sfc_main$t = /* @__PURE__ */ defineComponent({ @@ -9891,4 +9891,4 @@ const _sfc_main = /* @__PURE__ */ defineComponent({ export { _sfc_main as default }; -//# sourceMappingURL=GraphView-BhIVbg_-.js.map +//# sourceMappingURL=GraphView-DswvqURL.js.map diff --git a/web/assets/GraphView-DswvqURL.js.map b/web/assets/GraphView-DswvqURL.js.map new file mode 100644 index 00000000000..1202eed2002 --- /dev/null +++ b/web/assets/GraphView-DswvqURL.js.map @@ -0,0 +1 @@ +{"version":3,"file":"GraphView-DswvqURL.js","sources":["../../src/components/BrowserTabTitle.vue","../../src/components/MenuHamburger.vue","../../src/components/dialog/UnloadWindowConfirmDialog.vue","../../node_modules/primevue/splitter/style/index.mjs","../../node_modules/primevue/splitter/index.mjs","../../node_modules/primevue/splitterpanel/style/index.mjs","../../node_modules/primevue/splitterpanel/index.mjs","../../src/components/LiteGraphCanvasSplitterOverlay.vue","../../node_modules/primevue/tab/style/index.mjs","../../node_modules/primevue/tab/index.mjs","../../node_modules/primevue/tablist/style/index.mjs","../../node_modules/primevue/tablist/index.mjs","../../src/components/common/ExtensionSlot.vue","../../src/components/bottomPanel/BottomPanel.vue","../../node_modules/primevue/buttongroup/style/index.mjs","../../node_modules/primevue/buttongroup/index.mjs","../../src/stores/graphStore.ts","../../src/components/graph/GraphCanvasMenu.vue","../../src/components/graph/NodeBadge.vue","../../src/components/graph/NodeTooltip.vue","../../src/components/graph/TitleEditor.vue","../../src/stores/workspace/searchBoxStore.ts","../../src/types/litegraphTypes.ts","../../node_modules/primevue/autocomplete/style/index.mjs","../../node_modules/primevue/autocomplete/index.mjs","../../src/components/primevueOverride/AutoCompletePlus.vue","../../src/components/searchbox/NodeSearchItem.vue","../../src/components/searchbox/NodeSearchBox.vue","../../src/components/searchbox/NodeSearchBoxPopover.vue","../../node_modules/primevue/overlaybadge/style/index.mjs","../../node_modules/primevue/overlaybadge/index.mjs","../../src/components/sidebar/SidebarIcon.vue","../../src/components/sidebar/SidebarLogoutIcon.vue","../../src/components/sidebar/SidebarSettingsToggleIcon.vue","../../src/components/sidebar/SidebarThemeToggleIcon.vue","../../src/components/sidebar/SideToolbar.vue","../../src/constants/coreSettings.ts","../../src/components/graph/GraphCanvas.vue","../../node_modules/primevue/toast/style/index.mjs","../../node_modules/primevue/toast/index.mjs","../../src/components/toast/GlobalToast.vue","../../node_modules/primevue/tieredmenu/style/index.mjs","../../node_modules/primevue/tieredmenu/index.mjs","../../node_modules/primevue/splitbutton/style/index.mjs","../../node_modules/primevue/splitbutton/index.mjs","../../src/components/actionbar/BatchCountEdit.vue","../../src/components/actionbar/ComfyQueueButton.vue","../../src/components/actionbar/ComfyActionbar.vue","../../src/components/topbar/BottomPanelToggleButton.vue","../../node_modules/primevue/menubar/style/index.mjs","../../node_modules/primevue/menubar/index.mjs","../../src/components/topbar/CommandMenubar.vue","../../src/components/topbar/WorkflowTab.vue","../../src/components/topbar/WorkflowTabs.vue","../../src/components/topbar/TopMenubar.vue","../../src/types/serverArgs.ts","../../src/constants/serverConfig.ts","../../src/hooks/coreCommandHooks.ts","../../src/services/autoQueueService.ts","../../src/views/GraphView.vue"],"sourcesContent":["\n\n\n","\n\n\n\n\n","\n\n\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-splitter {\\n display: flex;\\n flex-wrap: nowrap;\\n border: 1px solid \".concat(dt('splitter.border.color'), \";\\n background: \").concat(dt('splitter.background'), \";\\n border-radius: \").concat(dt('border.radius.md'), \";\\n color: \").concat(dt('splitter.color'), \";\\n}\\n\\n.p-splitter-vertical {\\n flex-direction: column;\\n}\\n\\n.p-splitter-gutter {\\n flex-grow: 0;\\n flex-shrink: 0;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n z-index: 1;\\n background: \").concat(dt('splitter.gutter.background'), \";\\n}\\n\\n.p-splitter-gutter-handle {\\n border-radius: \").concat(dt('splitter.handle.border.radius'), \";\\n background: \").concat(dt('splitter.handle.background'), \";\\n transition: outline-color \").concat(dt('splitter.transition.duration'), \", box-shadow \").concat(dt('splitter.transition.duration'), \";\\n outline-color: transparent;\\n}\\n\\n.p-splitter-gutter-handle:focus-visible {\\n box-shadow: \").concat(dt('splitter.handle.focus.ring.shadow'), \";\\n outline: \").concat(dt('splitter.handle.focus.ring.width'), \" \").concat(dt('splitter.handle.focus.ring.style'), \" \").concat(dt('splitter.handle.focus.ring.color'), \";\\n outline-offset: \").concat(dt('splitter.handle.focus.ring.offset'), \";\\n}\\n\\n.p-splitter-horizontal.p-splitter-resizing {\\n cursor: col-resize;\\n user-select: none;\\n}\\n\\n.p-splitter-vertical.p-splitter-resizing {\\n cursor: row-resize;\\n user-select: none;\\n}\\n\\n.p-splitter-horizontal > .p-splitter-gutter > .p-splitter-gutter-handle {\\n height: \").concat(dt('splitter.handle.size'), \";\\n width: 100%;\\n}\\n\\n.p-splitter-vertical > .p-splitter-gutter > .p-splitter-gutter-handle {\\n width: \").concat(dt('splitter.handle.size'), \";\\n height: 100%;\\n}\\n\\n.p-splitter-horizontal > .p-splitter-gutter {\\n cursor: col-resize;\\n}\\n\\n.p-splitter-vertical > .p-splitter-gutter {\\n cursor: row-resize;\\n}\\n\\n.p-splitterpanel {\\n flex-grow: 1;\\n overflow: hidden;\\n}\\n\\n.p-splitterpanel-nested {\\n display: flex;\\n}\\n\\n.p-splitterpanel .p-splitter {\\n flex-grow: 1;\\n border: 0 none;\\n}\\n\");\n};\nvar classes = {\n root: function root(_ref2) {\n var props = _ref2.props;\n return ['p-splitter p-component', 'p-splitter-' + props.layout];\n },\n gutter: 'p-splitter-gutter',\n gutterHandle: 'p-splitter-gutter-handle'\n};\nvar inlineStyles = {\n root: function root(_ref3) {\n var props = _ref3.props;\n return [{\n display: 'flex',\n 'flex-wrap': 'nowrap'\n }, props.layout === 'vertical' ? {\n 'flex-direction': 'column'\n } : ''];\n }\n};\nvar SplitterStyle = BaseStyle.extend({\n name: 'splitter',\n theme: theme,\n classes: classes,\n inlineStyles: inlineStyles\n});\n\nexport { SplitterStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { getVNodeProp } from '@primevue/core/utils';\nimport { getWidth, getHeight, getOuterWidth, getOuterHeight } from '@primeuix/utils/dom';\nimport { isArray } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport SplitterStyle from 'primevue/splitter/style';\nimport { openBlock, createElementBlock, mergeProps, Fragment, renderList, createBlock, resolveDynamicComponent, createElementVNode, createCommentVNode } from 'vue';\n\nvar script$1 = {\n name: 'BaseSplitter',\n \"extends\": BaseComponent,\n props: {\n layout: {\n type: String,\n \"default\": 'horizontal'\n },\n gutterSize: {\n type: Number,\n \"default\": 4\n },\n stateKey: {\n type: String,\n \"default\": null\n },\n stateStorage: {\n type: String,\n \"default\": 'session'\n },\n step: {\n type: Number,\n \"default\": 5\n }\n },\n style: SplitterStyle,\n provide: function provide() {\n return {\n $pcSplitter: this,\n $parentInstance: this\n };\n }\n};\n\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nvar script = {\n name: 'Splitter',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['resizestart', 'resizeend', 'resize'],\n dragging: false,\n mouseMoveListener: null,\n mouseUpListener: null,\n touchMoveListener: null,\n touchEndListener: null,\n size: null,\n gutterElement: null,\n startPos: null,\n prevPanelElement: null,\n nextPanelElement: null,\n nextPanelSize: null,\n prevPanelSize: null,\n panelSizes: null,\n prevPanelIndex: null,\n timer: null,\n data: function data() {\n return {\n prevSize: null\n };\n },\n mounted: function mounted() {\n var _this = this;\n if (this.panels && this.panels.length) {\n var initialized = false;\n if (this.isStateful()) {\n initialized = this.restoreState();\n }\n if (!initialized) {\n var children = _toConsumableArray(this.$el.children).filter(function (child) {\n return child.getAttribute('data-pc-name') === 'splitterpanel';\n });\n var _panelSizes = [];\n this.panels.map(function (panel, i) {\n var panelInitialSize = panel.props && panel.props.size ? panel.props.size : null;\n var panelSize = panelInitialSize || 100 / _this.panels.length;\n _panelSizes[i] = panelSize;\n children[i].style.flexBasis = 'calc(' + panelSize + '% - ' + (_this.panels.length - 1) * _this.gutterSize + 'px)';\n });\n this.panelSizes = _panelSizes;\n this.prevSize = parseFloat(_panelSizes[0]).toFixed(4);\n }\n }\n },\n beforeUnmount: function beforeUnmount() {\n this.clear();\n this.unbindMouseListeners();\n },\n methods: {\n isSplitterPanel: function isSplitterPanel(child) {\n return child.type.name === 'SplitterPanel';\n },\n onResizeStart: function onResizeStart(event, index, isKeyDown) {\n this.gutterElement = event.currentTarget || event.target.parentElement;\n this.size = this.horizontal ? getWidth(this.$el) : getHeight(this.$el);\n if (!isKeyDown) {\n this.dragging = true;\n this.startPos = this.layout === 'horizontal' ? event.pageX || event.changedTouches[0].pageX : event.pageY || event.changedTouches[0].pageY;\n }\n this.prevPanelElement = this.gutterElement.previousElementSibling;\n this.nextPanelElement = this.gutterElement.nextElementSibling;\n if (isKeyDown) {\n this.prevPanelSize = this.horizontal ? getOuterWidth(this.prevPanelElement, true) : getOuterHeight(this.prevPanelElement, true);\n this.nextPanelSize = this.horizontal ? getOuterWidth(this.nextPanelElement, true) : getOuterHeight(this.nextPanelElement, true);\n } else {\n this.prevPanelSize = 100 * (this.horizontal ? getOuterWidth(this.prevPanelElement, true) : getOuterHeight(this.prevPanelElement, true)) / this.size;\n this.nextPanelSize = 100 * (this.horizontal ? getOuterWidth(this.nextPanelElement, true) : getOuterHeight(this.nextPanelElement, true)) / this.size;\n }\n this.prevPanelIndex = index;\n this.$emit('resizestart', {\n originalEvent: event,\n sizes: this.panelSizes\n });\n this.$refs.gutter[index].setAttribute('data-p-gutter-resizing', true);\n this.$el.setAttribute('data-p-resizing', true);\n },\n onResize: function onResize(event, step, isKeyDown) {\n var newPos, newPrevPanelSize, newNextPanelSize;\n if (isKeyDown) {\n if (this.horizontal) {\n newPrevPanelSize = 100 * (this.prevPanelSize + step) / this.size;\n newNextPanelSize = 100 * (this.nextPanelSize - step) / this.size;\n } else {\n newPrevPanelSize = 100 * (this.prevPanelSize - step) / this.size;\n newNextPanelSize = 100 * (this.nextPanelSize + step) / this.size;\n }\n } else {\n if (this.horizontal) newPos = event.pageX * 100 / this.size - this.startPos * 100 / this.size;else newPos = event.pageY * 100 / this.size - this.startPos * 100 / this.size;\n newPrevPanelSize = this.prevPanelSize + newPos;\n newNextPanelSize = this.nextPanelSize - newPos;\n }\n if (this.validateResize(newPrevPanelSize, newNextPanelSize)) {\n this.prevPanelElement.style.flexBasis = 'calc(' + newPrevPanelSize + '% - ' + (this.panels.length - 1) * this.gutterSize + 'px)';\n this.nextPanelElement.style.flexBasis = 'calc(' + newNextPanelSize + '% - ' + (this.panels.length - 1) * this.gutterSize + 'px)';\n this.panelSizes[this.prevPanelIndex] = newPrevPanelSize;\n this.panelSizes[this.prevPanelIndex + 1] = newNextPanelSize;\n this.prevSize = parseFloat(newPrevPanelSize).toFixed(4);\n }\n this.$emit('resize', {\n originalEvent: event,\n sizes: this.panelSizes\n });\n },\n onResizeEnd: function onResizeEnd(event) {\n if (this.isStateful()) {\n this.saveState();\n }\n this.$emit('resizeend', {\n originalEvent: event,\n sizes: this.panelSizes\n });\n this.$refs.gutter.forEach(function (gutter) {\n return gutter.setAttribute('data-p-gutter-resizing', false);\n });\n this.$el.setAttribute('data-p-resizing', false);\n this.clear();\n },\n repeat: function repeat(event, index, step) {\n this.onResizeStart(event, index, true);\n this.onResize(event, step, true);\n },\n setTimer: function setTimer(event, index, step) {\n var _this2 = this;\n if (!this.timer) {\n this.timer = setInterval(function () {\n _this2.repeat(event, index, step);\n }, 40);\n }\n },\n clearTimer: function clearTimer() {\n if (this.timer) {\n clearInterval(this.timer);\n this.timer = null;\n }\n },\n onGutterKeyUp: function onGutterKeyUp() {\n this.clearTimer();\n this.onResizeEnd();\n },\n onGutterKeyDown: function onGutterKeyDown(event, index) {\n switch (event.code) {\n case 'ArrowLeft':\n {\n if (this.layout === 'horizontal') {\n this.setTimer(event, index, this.step * -1);\n }\n event.preventDefault();\n break;\n }\n case 'ArrowRight':\n {\n if (this.layout === 'horizontal') {\n this.setTimer(event, index, this.step);\n }\n event.preventDefault();\n break;\n }\n case 'ArrowDown':\n {\n if (this.layout === 'vertical') {\n this.setTimer(event, index, this.step * -1);\n }\n event.preventDefault();\n break;\n }\n case 'ArrowUp':\n {\n if (this.layout === 'vertical') {\n this.setTimer(event, index, this.step);\n }\n event.preventDefault();\n break;\n }\n }\n },\n onGutterMouseDown: function onGutterMouseDown(event, index) {\n this.onResizeStart(event, index);\n this.bindMouseListeners();\n },\n onGutterTouchStart: function onGutterTouchStart(event, index) {\n this.onResizeStart(event, index);\n this.bindTouchListeners();\n event.preventDefault();\n },\n onGutterTouchMove: function onGutterTouchMove(event) {\n this.onResize(event);\n event.preventDefault();\n },\n onGutterTouchEnd: function onGutterTouchEnd(event) {\n this.onResizeEnd(event);\n this.unbindTouchListeners();\n event.preventDefault();\n },\n bindMouseListeners: function bindMouseListeners() {\n var _this3 = this;\n if (!this.mouseMoveListener) {\n this.mouseMoveListener = function (event) {\n return _this3.onResize(event);\n };\n document.addEventListener('mousemove', this.mouseMoveListener);\n }\n if (!this.mouseUpListener) {\n this.mouseUpListener = function (event) {\n _this3.onResizeEnd(event);\n _this3.unbindMouseListeners();\n };\n document.addEventListener('mouseup', this.mouseUpListener);\n }\n },\n bindTouchListeners: function bindTouchListeners() {\n var _this4 = this;\n if (!this.touchMoveListener) {\n this.touchMoveListener = function (event) {\n return _this4.onResize(event.changedTouches[0]);\n };\n document.addEventListener('touchmove', this.touchMoveListener);\n }\n if (!this.touchEndListener) {\n this.touchEndListener = function (event) {\n _this4.resizeEnd(event);\n _this4.unbindTouchListeners();\n };\n document.addEventListener('touchend', this.touchEndListener);\n }\n },\n validateResize: function validateResize(newPrevPanelSize, newNextPanelSize) {\n if (newPrevPanelSize > 100 || newPrevPanelSize < 0) return false;\n if (newNextPanelSize > 100 || newNextPanelSize < 0) return false;\n var prevPanelMinSize = getVNodeProp(this.panels[this.prevPanelIndex], 'minSize');\n if (this.panels[this.prevPanelIndex].props && prevPanelMinSize && prevPanelMinSize > newPrevPanelSize) {\n return false;\n }\n var newPanelMinSize = getVNodeProp(this.panels[this.prevPanelIndex + 1], 'minSize');\n if (this.panels[this.prevPanelIndex + 1].props && newPanelMinSize && newPanelMinSize > newNextPanelSize) {\n return false;\n }\n return true;\n },\n unbindMouseListeners: function unbindMouseListeners() {\n if (this.mouseMoveListener) {\n document.removeEventListener('mousemove', this.mouseMoveListener);\n this.mouseMoveListener = null;\n }\n if (this.mouseUpListener) {\n document.removeEventListener('mouseup', this.mouseUpListener);\n this.mouseUpListener = null;\n }\n },\n unbindTouchListeners: function unbindTouchListeners() {\n if (this.touchMoveListener) {\n document.removeEventListener('touchmove', this.touchMoveListener);\n this.touchMoveListener = null;\n }\n if (this.touchEndListener) {\n document.removeEventListener('touchend', this.touchEndListener);\n this.touchEndListener = null;\n }\n },\n clear: function clear() {\n this.dragging = false;\n this.size = null;\n this.startPos = null;\n this.prevPanelElement = null;\n this.nextPanelElement = null;\n this.prevPanelSize = null;\n this.nextPanelSize = null;\n this.gutterElement = null;\n this.prevPanelIndex = null;\n },\n isStateful: function isStateful() {\n return this.stateKey != null;\n },\n getStorage: function getStorage() {\n switch (this.stateStorage) {\n case 'local':\n return window.localStorage;\n case 'session':\n return window.sessionStorage;\n default:\n throw new Error(this.stateStorage + ' is not a valid value for the state storage, supported values are \"local\" and \"session\".');\n }\n },\n saveState: function saveState() {\n if (isArray(this.panelSizes)) {\n this.getStorage().setItem(this.stateKey, JSON.stringify(this.panelSizes));\n }\n },\n restoreState: function restoreState() {\n var _this5 = this;\n var storage = this.getStorage();\n var stateString = storage.getItem(this.stateKey);\n if (stateString) {\n this.panelSizes = JSON.parse(stateString);\n var children = _toConsumableArray(this.$el.children).filter(function (child) {\n return child.getAttribute('data-pc-name') === 'splitterpanel';\n });\n children.forEach(function (child, i) {\n child.style.flexBasis = 'calc(' + _this5.panelSizes[i] + '% - ' + (_this5.panels.length - 1) * _this5.gutterSize + 'px)';\n });\n return true;\n }\n return false;\n }\n },\n computed: {\n panels: function panels() {\n var _this6 = this;\n var panels = [];\n this.$slots[\"default\"]().forEach(function (child) {\n if (_this6.isSplitterPanel(child)) {\n panels.push(child);\n } else if (child.children instanceof Array) {\n child.children.forEach(function (nestedChild) {\n if (_this6.isSplitterPanel(nestedChild)) {\n panels.push(nestedChild);\n }\n });\n }\n });\n return panels;\n },\n gutterStyle: function gutterStyle() {\n if (this.horizontal) return {\n width: this.gutterSize + 'px'\n };else return {\n height: this.gutterSize + 'px'\n };\n },\n horizontal: function horizontal() {\n return this.layout === 'horizontal';\n },\n getPTOptions: function getPTOptions() {\n var _this$$parentInstance;\n return {\n context: {\n nested: (_this$$parentInstance = this.$parentInstance) === null || _this$$parentInstance === void 0 ? void 0 : _this$$parentInstance.nestedState\n }\n };\n }\n }\n};\n\nvar _hoisted_1 = [\"onMousedown\", \"onTouchstart\", \"onTouchmove\", \"onTouchend\"];\nvar _hoisted_2 = [\"aria-orientation\", \"aria-valuenow\", \"onKeydown\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root'),\n style: _ctx.sx('root'),\n \"data-p-resizing\": false\n }, _ctx.ptmi('root', $options.getPTOptions)), [(openBlock(true), createElementBlock(Fragment, null, renderList($options.panels, function (panel, i) {\n return openBlock(), createElementBlock(Fragment, {\n key: i\n }, [(openBlock(), createBlock(resolveDynamicComponent(panel), {\n tabindex: \"-1\"\n })), i !== $options.panels.length - 1 ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n ref_for: true,\n ref: \"gutter\",\n \"class\": _ctx.cx('gutter'),\n role: \"separator\",\n tabindex: \"-1\",\n onMousedown: function onMousedown($event) {\n return $options.onGutterMouseDown($event, i);\n },\n onTouchstart: function onTouchstart($event) {\n return $options.onGutterTouchStart($event, i);\n },\n onTouchmove: function onTouchmove($event) {\n return $options.onGutterTouchMove($event, i);\n },\n onTouchend: function onTouchend($event) {\n return $options.onGutterTouchEnd($event, i);\n },\n \"data-p-gutter-resizing\": false\n }, _ctx.ptm('gutter')), [createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('gutterHandle'),\n tabindex: \"0\",\n style: [$options.gutterStyle],\n \"aria-orientation\": _ctx.layout,\n \"aria-valuenow\": $data.prevSize,\n onKeyup: _cache[0] || (_cache[0] = function () {\n return $options.onGutterKeyUp && $options.onGutterKeyUp.apply($options, arguments);\n }),\n onKeydown: function onKeydown($event) {\n return $options.onGutterKeyDown($event, i);\n },\n ref_for: true\n }, _ctx.ptm('gutterHandle')), null, 16, _hoisted_2)], 16, _hoisted_1)) : createCommentVNode(\"\", true)], 64);\n }), 128))], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar classes = {\n root: function root(_ref) {\n var instance = _ref.instance;\n return ['p-splitterpanel', {\n 'p-splitterpanel-nested': instance.isNested\n }];\n }\n};\nvar SplitterPanelStyle = BaseStyle.extend({\n name: 'splitterpanel',\n classes: classes\n});\n\nexport { SplitterPanelStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseComponent from '@primevue/core/basecomponent';\nimport SplitterPanelStyle from 'primevue/splitterpanel/style';\nimport { openBlock, createElementBlock, mergeProps, renderSlot } from 'vue';\n\nvar script$1 = {\n name: 'BaseSplitterPanel',\n \"extends\": BaseComponent,\n props: {\n size: {\n type: Number,\n \"default\": null\n },\n minSize: {\n type: Number,\n \"default\": null\n }\n },\n style: SplitterPanelStyle,\n provide: function provide() {\n return {\n $pcSplitterPanel: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'SplitterPanel',\n \"extends\": script$1,\n inheritAttrs: false,\n data: function data() {\n return {\n nestedState: null\n };\n },\n computed: {\n isNested: function isNested() {\n var _this = this;\n return this.$slots[\"default\"]().some(function (child) {\n _this.nestedState = child.type.name === 'Splitter' ? true : null;\n return _this.nestedState;\n });\n },\n getPTOptions: function getPTOptions() {\n return {\n context: {\n nested: this.isNested\n }\n };\n }\n }\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n ref: \"container\",\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root', $options.getPTOptions)), [renderSlot(_ctx.$slots, \"default\")], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n\n\n","import BaseStyle from '@primevue/core/base/style';\n\nvar classes = {\n root: function root(_ref) {\n var instance = _ref.instance,\n props = _ref.props;\n return ['p-tab', {\n 'p-tab-active': instance.active,\n 'p-disabled': props.disabled\n }];\n }\n};\nvar TabStyle = BaseStyle.extend({\n name: 'tab',\n classes: classes\n});\n\nexport { TabStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { getAttribute, findSingle, focus } from '@primeuix/utils/dom';\nimport { equals } from '@primeuix/utils/object';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps, resolveDirective, withDirectives, openBlock, createBlock, resolveDynamicComponent, withCtx, renderSlot, normalizeClass } from 'vue';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport TabStyle from 'primevue/tab/style';\n\nvar script$1 = {\n name: 'BaseTab',\n \"extends\": BaseComponent,\n props: {\n value: {\n type: [String, Number],\n \"default\": undefined\n },\n disabled: {\n type: Boolean,\n \"default\": false\n },\n as: {\n type: [String, Object],\n \"default\": 'BUTTON'\n },\n asChild: {\n type: Boolean,\n \"default\": false\n }\n },\n style: TabStyle,\n provide: function provide() {\n return {\n $pcTab: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'Tab',\n \"extends\": script$1,\n inheritAttrs: false,\n inject: ['$pcTabs', '$pcTabList'],\n methods: {\n onFocus: function onFocus() {\n this.$pcTabs.selectOnFocus && this.changeActiveValue();\n },\n onClick: function onClick() {\n this.changeActiveValue();\n },\n onKeydown: function onKeydown(event) {\n switch (event.code) {\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n case 'Home':\n this.onHomeKey(event);\n break;\n case 'End':\n this.onEndKey(event);\n break;\n case 'PageDown':\n this.onPageDownKey(event);\n break;\n case 'PageUp':\n this.onPageUpKey(event);\n break;\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n this.onEnterKey(event);\n break;\n }\n },\n onArrowRightKey: function onArrowRightKey(event) {\n var nextTab = this.findNextTab(event.currentTarget);\n nextTab ? this.changeFocusedTab(event, nextTab) : this.onHomeKey(event);\n event.preventDefault();\n },\n onArrowLeftKey: function onArrowLeftKey(event) {\n var prevTab = this.findPrevTab(event.currentTarget);\n prevTab ? this.changeFocusedTab(event, prevTab) : this.onEndKey(event);\n event.preventDefault();\n },\n onHomeKey: function onHomeKey(event) {\n var firstTab = this.findFirstTab();\n this.changeFocusedTab(event, firstTab);\n event.preventDefault();\n },\n onEndKey: function onEndKey(event) {\n var lastTab = this.findLastTab();\n this.changeFocusedTab(event, lastTab);\n event.preventDefault();\n },\n onPageDownKey: function onPageDownKey(event) {\n this.scrollInView(this.findLastTab());\n event.preventDefault();\n },\n onPageUpKey: function onPageUpKey(event) {\n this.scrollInView(this.findFirstTab());\n event.preventDefault();\n },\n onEnterKey: function onEnterKey(event) {\n this.changeActiveValue();\n event.preventDefault();\n },\n findNextTab: function findNextTab(tabElement) {\n var selfCheck = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var element = selfCheck ? tabElement : tabElement.nextElementSibling;\n return element ? getAttribute(element, 'data-p-disabled') || getAttribute(element, 'data-pc-section') === 'inkbar' ? this.findNextTab(element) : findSingle(element, '[data-pc-name=\"tab\"]') : null;\n },\n findPrevTab: function findPrevTab(tabElement) {\n var selfCheck = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var element = selfCheck ? tabElement : tabElement.previousElementSibling;\n return element ? getAttribute(element, 'data-p-disabled') || getAttribute(element, 'data-pc-section') === 'inkbar' ? this.findPrevTab(element) : findSingle(element, '[data-pc-name=\"tab\"]') : null;\n },\n findFirstTab: function findFirstTab() {\n return this.findNextTab(this.$pcTabList.$refs.content.firstElementChild, true);\n },\n findLastTab: function findLastTab() {\n return this.findPrevTab(this.$pcTabList.$refs.content.lastElementChild, true);\n },\n changeActiveValue: function changeActiveValue() {\n this.$pcTabs.updateValue(this.value);\n },\n changeFocusedTab: function changeFocusedTab(event, element) {\n focus(element);\n this.scrollInView(element);\n },\n scrollInView: function scrollInView(element) {\n var _element$scrollIntoVi;\n element === null || element === void 0 || (_element$scrollIntoVi = element.scrollIntoView) === null || _element$scrollIntoVi === void 0 || _element$scrollIntoVi.call(element, {\n block: 'nearest'\n });\n }\n },\n computed: {\n active: function active() {\n var _this$$pcTabs;\n return equals((_this$$pcTabs = this.$pcTabs) === null || _this$$pcTabs === void 0 ? void 0 : _this$$pcTabs.d_value, this.value);\n },\n id: function id() {\n var _this$$pcTabs2;\n return \"\".concat((_this$$pcTabs2 = this.$pcTabs) === null || _this$$pcTabs2 === void 0 ? void 0 : _this$$pcTabs2.id, \"_tab_\").concat(this.value);\n },\n ariaControls: function ariaControls() {\n var _this$$pcTabs3;\n return \"\".concat((_this$$pcTabs3 = this.$pcTabs) === null || _this$$pcTabs3 === void 0 ? void 0 : _this$$pcTabs3.id, \"_tabpanel_\").concat(this.value);\n },\n attrs: function attrs() {\n return mergeProps(this.asAttrs, this.a11yAttrs, this.ptmi('root', this.ptParams));\n },\n asAttrs: function asAttrs() {\n return this.as === 'BUTTON' ? {\n type: 'button',\n disabled: this.disabled\n } : undefined;\n },\n a11yAttrs: function a11yAttrs() {\n return {\n id: this.id,\n tabindex: this.active ? this.$pcTabs.tabindex : -1,\n role: 'tab',\n 'aria-selected': this.active,\n 'aria-controls': this.ariaControls,\n 'data-pc-name': 'tab',\n 'data-p-disabled': this.disabled,\n 'data-p-active': this.active,\n onFocus: this.onFocus,\n onKeydown: this.onKeydown\n };\n },\n ptParams: function ptParams() {\n return {\n context: {\n active: this.active\n }\n };\n }\n },\n directives: {\n ripple: Ripple\n }\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _directive_ripple = resolveDirective(\"ripple\");\n return !_ctx.asChild ? withDirectives((openBlock(), createBlock(resolveDynamicComponent(_ctx.as), mergeProps({\n key: 0,\n \"class\": _ctx.cx('root'),\n onClick: $options.onClick\n }, $options.attrs), {\n \"default\": withCtx(function () {\n return [renderSlot(_ctx.$slots, \"default\")];\n }),\n _: 3\n }, 16, [\"class\", \"onClick\"])), [[_directive_ripple]]) : renderSlot(_ctx.$slots, \"default\", {\n key: 1,\n \"class\": normalizeClass(_ctx.cx('root')),\n active: $options.active,\n a11yAttrs: $options.a11yAttrs,\n onClick: $options.onClick\n });\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar classes = {\n root: 'p-tablist',\n content: function content(_ref) {\n var instance = _ref.instance;\n return ['p-tablist-content', {\n 'p-tablist-viewport': instance.$pcTabs.scrollable\n }];\n },\n tabList: 'p-tablist-tab-list',\n activeBar: 'p-tablist-active-bar',\n prevButton: 'p-tablist-prev-button p-tablist-nav-button',\n nextButton: 'p-tablist-next-button p-tablist-nav-button'\n};\nvar TabListStyle = BaseStyle.extend({\n name: 'tablist',\n classes: classes\n});\n\nexport { TabListStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { getWidth, findSingle, getOuterHeight, getOffset, getOuterWidth, getHeight } from '@primeuix/utils/dom';\nimport ChevronLeftIcon from '@primevue/icons/chevronleft';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport TabListStyle from 'primevue/tablist/style';\nimport Ripple from 'primevue/ripple';\nimport { resolveDirective, openBlock, createElementBlock, mergeProps, withDirectives, createBlock, resolveDynamicComponent, createCommentVNode, createElementVNode, renderSlot } from 'vue';\n\nvar script$1 = {\n name: 'BaseTabList',\n \"extends\": BaseComponent,\n props: {},\n style: TabListStyle,\n provide: function provide() {\n return {\n $pcTabList: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'TabList',\n \"extends\": script$1,\n inheritAttrs: false,\n inject: ['$pcTabs'],\n data: function data() {\n return {\n isPrevButtonEnabled: false,\n isNextButtonEnabled: true\n };\n },\n resizeObserver: undefined,\n watch: {\n showNavigators: function showNavigators(newValue) {\n newValue ? this.bindResizeObserver() : this.unbindResizeObserver();\n },\n activeValue: {\n flush: 'post',\n handler: function handler() {\n this.updateInkBar();\n }\n }\n },\n mounted: function mounted() {\n var _this = this;\n this.$nextTick(function () {\n _this.updateInkBar();\n });\n if (this.showNavigators) {\n this.updateButtonState();\n this.bindResizeObserver();\n }\n },\n updated: function updated() {\n this.showNavigators && this.updateButtonState();\n },\n beforeUnmount: function beforeUnmount() {\n this.unbindResizeObserver();\n },\n methods: {\n onScroll: function onScroll(event) {\n this.showNavigators && this.updateButtonState();\n event.preventDefault();\n },\n onPrevButtonClick: function onPrevButtonClick() {\n var content = this.$refs.content;\n var width = getWidth(content);\n var pos = content.scrollLeft - width;\n content.scrollLeft = pos <= 0 ? 0 : pos;\n },\n onNextButtonClick: function onNextButtonClick() {\n var content = this.$refs.content;\n var width = getWidth(content) - this.getVisibleButtonWidths();\n var pos = content.scrollLeft + width;\n var lastPos = content.scrollWidth - width;\n content.scrollLeft = pos >= lastPos ? lastPos : pos;\n },\n bindResizeObserver: function bindResizeObserver() {\n var _this2 = this;\n this.resizeObserver = new ResizeObserver(function () {\n return _this2.updateButtonState();\n });\n this.resizeObserver.observe(this.$refs.list);\n },\n unbindResizeObserver: function unbindResizeObserver() {\n var _this$resizeObserver;\n (_this$resizeObserver = this.resizeObserver) === null || _this$resizeObserver === void 0 || _this$resizeObserver.unobserve(this.$refs.list);\n this.resizeObserver = undefined;\n },\n updateInkBar: function updateInkBar() {\n var _this$$refs = this.$refs,\n content = _this$$refs.content,\n inkbar = _this$$refs.inkbar,\n tabs = _this$$refs.tabs;\n var activeTab = findSingle(content, '[data-pc-name=\"tab\"][data-p-active=\"true\"]');\n if (this.$pcTabs.isVertical()) {\n inkbar.style.height = getOuterHeight(activeTab) + 'px';\n inkbar.style.top = getOffset(activeTab).top - getOffset(tabs).top + 'px';\n } else {\n inkbar.style.width = getOuterWidth(activeTab) + 'px';\n inkbar.style.left = getOffset(activeTab).left - getOffset(tabs).left + 'px';\n }\n },\n updateButtonState: function updateButtonState() {\n var _this$$refs2 = this.$refs,\n list = _this$$refs2.list,\n content = _this$$refs2.content;\n var scrollLeft = content.scrollLeft,\n scrollTop = content.scrollTop,\n scrollWidth = content.scrollWidth,\n scrollHeight = content.scrollHeight,\n offsetWidth = content.offsetWidth,\n offsetHeight = content.offsetHeight;\n var _ref = [getWidth(content), getHeight(content)],\n width = _ref[0],\n height = _ref[1];\n if (this.$pcTabs.isVertical()) {\n this.isPrevButtonEnabled = scrollTop !== 0;\n this.isNextButtonEnabled = list.offsetHeight >= offsetHeight && parseInt(scrollTop) !== scrollHeight - height;\n } else {\n this.isPrevButtonEnabled = scrollLeft !== 0;\n this.isNextButtonEnabled = list.offsetWidth >= offsetWidth && parseInt(scrollLeft) !== scrollWidth - width;\n }\n },\n getVisibleButtonWidths: function getVisibleButtonWidths() {\n var _this$$refs3 = this.$refs,\n prevBtn = _this$$refs3.prevBtn,\n nextBtn = _this$$refs3.nextBtn;\n return [prevBtn, nextBtn].reduce(function (acc, el) {\n return el ? acc + getWidth(el) : acc;\n }, 0);\n }\n },\n computed: {\n templates: function templates() {\n return this.$pcTabs.$slots;\n },\n activeValue: function activeValue() {\n return this.$pcTabs.d_value;\n },\n showNavigators: function showNavigators() {\n return this.$pcTabs.scrollable && this.$pcTabs.showNavigators;\n },\n prevButtonAriaLabel: function prevButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.previous : undefined;\n },\n nextButtonAriaLabel: function nextButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.next : undefined;\n }\n },\n components: {\n ChevronLeftIcon: ChevronLeftIcon,\n ChevronRightIcon: ChevronRightIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n\nvar _hoisted_1 = [\"aria-label\", \"tabindex\"];\nvar _hoisted_2 = [\"aria-orientation\"];\nvar _hoisted_3 = [\"aria-label\", \"tabindex\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _directive_ripple = resolveDirective(\"ripple\");\n return openBlock(), createElementBlock(\"div\", mergeProps({\n ref: \"list\",\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root')), [$options.showNavigators && $data.isPrevButtonEnabled ? withDirectives((openBlock(), createElementBlock(\"button\", mergeProps({\n key: 0,\n ref: \"prevButton\",\n \"class\": _ctx.cx('prevButton'),\n \"aria-label\": $options.prevButtonAriaLabel,\n tabindex: $options.$pcTabs.tabindex,\n onClick: _cache[0] || (_cache[0] = function () {\n return $options.onPrevButtonClick && $options.onPrevButtonClick.apply($options, arguments);\n })\n }, _ctx.ptm('prevButton'), {\n \"data-pc-group-section\": \"navigator\"\n }), [(openBlock(), createBlock(resolveDynamicComponent($options.templates.previcon || 'ChevronLeftIcon'), mergeProps({\n \"aria-hidden\": \"true\"\n }, _ctx.ptm('prevIcon')), null, 16))], 16, _hoisted_1)), [[_directive_ripple]]) : createCommentVNode(\"\", true), createElementVNode(\"div\", mergeProps({\n ref: \"content\",\n \"class\": _ctx.cx('content'),\n onScroll: _cache[1] || (_cache[1] = function () {\n return $options.onScroll && $options.onScroll.apply($options, arguments);\n })\n }, _ctx.ptm('content')), [createElementVNode(\"div\", mergeProps({\n ref: \"tabs\",\n \"class\": _ctx.cx('tabList'),\n role: \"tablist\",\n \"aria-orientation\": $options.$pcTabs.orientation || 'horizontal'\n }, _ctx.ptm('tabList')), [renderSlot(_ctx.$slots, \"default\"), createElementVNode(\"span\", mergeProps({\n ref: \"inkbar\",\n \"class\": _ctx.cx('activeBar'),\n role: \"presentation\",\n \"aria-hidden\": \"true\"\n }, _ctx.ptm('activeBar')), null, 16)], 16, _hoisted_2)], 16), $options.showNavigators && $data.isNextButtonEnabled ? withDirectives((openBlock(), createElementBlock(\"button\", mergeProps({\n key: 1,\n ref: \"nextButton\",\n \"class\": _ctx.cx('nextButton'),\n \"aria-label\": $options.nextButtonAriaLabel,\n tabindex: $options.$pcTabs.tabindex,\n onClick: _cache[2] || (_cache[2] = function () {\n return $options.onNextButtonClick && $options.onNextButtonClick.apply($options, arguments);\n })\n }, _ctx.ptm('nextButton'), {\n \"data-pc-group-section\": \"navigator\"\n }), [(openBlock(), createBlock(resolveDynamicComponent($options.templates.nexticon || 'ChevronRightIcon'), mergeProps({\n \"aria-hidden\": \"true\"\n }, _ctx.ptm('nextIcon')), null, 16))], 16, _hoisted_3)), [[_directive_ripple]]) : createCommentVNode(\"\", true)], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n","\n\n\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n _ref.dt;\n return \"\\n.p-buttongroup .p-button {\\n margin: 0;\\n}\\n\\n.p-buttongroup .p-button:not(:last-child),\\n.p-buttongroup .p-button:not(:last-child):hover {\\n border-right: 0 none;\\n}\\n\\n.p-buttongroup .p-button:not(:first-of-type):not(:last-of-type) {\\n border-radius: 0;\\n}\\n\\n.p-buttongroup .p-button:first-of-type:not(:only-of-type) {\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0;\\n}\\n\\n.p-buttongroup .p-button:last-of-type:not(:only-of-type) {\\n border-top-left-radius: 0;\\n border-bottom-left-radius: 0;\\n}\\n\\n.p-buttongroup .p-button:focus {\\n position: relative;\\n z-index: 1;\\n}\\n\";\n};\nvar classes = {\n root: 'p-buttongroup p-component'\n};\nvar ButtonGroupStyle = BaseStyle.extend({\n name: 'buttongroup',\n theme: theme,\n classes: classes\n});\n\nexport { ButtonGroupStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseComponent from '@primevue/core/basecomponent';\nimport ButtonGroupStyle from 'primevue/buttongroup/style';\nimport { openBlock, createElementBlock, mergeProps, renderSlot } from 'vue';\n\nvar script$1 = {\n name: 'BaseButtonGroup',\n \"extends\": BaseComponent,\n style: ButtonGroupStyle,\n provide: function provide() {\n return {\n $pcButtonGroup: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'ButtonGroup',\n \"extends\": script$1,\n inheritAttrs: false\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps({\n \"class\": _ctx.cx('root'),\n role: \"group\"\n }, _ctx.ptmi('root')), [renderSlot(_ctx.$slots, \"default\")], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import { LGraphCanvas, LGraphGroup, LGraphNode } from '@comfyorg/litegraph'\nimport { defineStore } from 'pinia'\nimport { shallowRef } from 'vue'\n\nexport const useTitleEditorStore = defineStore('titleEditor', () => {\n const titleEditorTarget = shallowRef(null)\n\n return {\n titleEditorTarget\n }\n})\n\nexport const useCanvasStore = defineStore('canvas', () => {\n /**\n * The LGraphCanvas instance.\n *\n * The root LGraphCanvas object is shallow reactive.\n */\n const canvas = shallowRef(null)\n\n return {\n canvas\n }\n})\n","\n\n\n\n\n","\n\n\n","\n\n\n\n\n","\n\n\n\n\n","import { defineStore } from 'pinia'\nimport { ref } from 'vue'\n\nexport const useSearchBoxStore = defineStore('searchBox', () => {\n const visible = ref(false)\n function toggleVisible() {\n visible.value = !visible.value\n }\n\n return {\n visible,\n toggleVisible\n }\n})\n","import type {\n ConnectingLink,\n INodeInputSlot,\n INodeOutputSlot,\n INodeSlot,\n ISlotType,\n LGraphNode,\n Vector2\n} from '@comfyorg/litegraph'\nimport { LiteGraph } from '@comfyorg/litegraph'\nimport { RerouteId } from '@comfyorg/litegraph/dist/Reroute'\n\nexport class ConnectingLinkImpl implements ConnectingLink {\n constructor(\n public node: LGraphNode,\n public slot: number,\n public input: INodeInputSlot | undefined,\n public output: INodeOutputSlot | undefined,\n public pos: Vector2,\n public afterRerouteId?: RerouteId\n ) {}\n\n static createFromPlainObject(obj: ConnectingLink) {\n return new ConnectingLinkImpl(\n obj.node,\n obj.slot,\n obj.input,\n obj.output,\n obj.pos,\n obj.afterRerouteId\n )\n }\n\n get type(): ISlotType | null {\n const result = this.input ? this.input.type : this.output?.type ?? null\n return result === -1 ? null : result\n }\n\n /**\n * Which slot type is release and need to be reconnected.\n * - 'output' means we need a new node's outputs slot to connect with this link\n */\n get releaseSlotType(): 'input' | 'output' {\n return this.output ? 'input' : 'output'\n }\n\n connectTo(newNode: LGraphNode) {\n const newNodeSlots =\n this.releaseSlotType === 'output' ? newNode.outputs : newNode.inputs\n if (!newNodeSlots) return\n\n const newNodeSlot = newNodeSlots.findIndex((slot: INodeSlot) =>\n LiteGraph.isValidConnection(slot.type, this.type)\n )\n\n if (newNodeSlot === -1) {\n console.warn(\n `Could not find slot with type ${this.type} on node ${newNode.title}. This should never happen`\n )\n return\n }\n\n if (this.releaseSlotType === 'input') {\n this.node.connect(this.slot, newNode, newNodeSlot, this.afterRerouteId)\n } else {\n newNode.connect(newNodeSlot, this.node, this.slot, this.afterRerouteId)\n }\n }\n}\n\nexport type CanvasDragAndDropData = {\n type: 'add-node'\n data: T\n}\n","import { isNotEmpty } from '@primeuix/utils/object';\nimport BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-autocomplete {\\n display: inline-flex;\\n}\\n\\n.p-autocomplete-loader {\\n position: absolute;\\n top: 50%;\\n margin-top: -0.5rem;\\n right: \".concat(dt('autocomplete.padding.x'), \";\\n}\\n\\n.p-autocomplete:has(.p-autocomplete-dropdown) .p-autocomplete-loader {\\n right: calc(\").concat(dt('autocomplete.dropdown.width'), \" + \").concat(dt('autocomplete.padding.x'), \");\\n}\\n\\n.p-autocomplete:has(.p-autocomplete-dropdown) .p-autocomplete-input {\\n flex: 1 1 auto;\\n width: 1%;\\n}\\n\\n.p-autocomplete:has(.p-autocomplete-dropdown) .p-autocomplete-input,\\n.p-autocomplete:has(.p-autocomplete-dropdown) .p-autocomplete-input-multiple {\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0;\\n}\\n\\n.p-autocomplete-dropdown {\\n cursor: pointer;\\n display: inline-flex;\\n cursor: pointer;\\n user-select: none;\\n align-items: center;\\n justify-content: center;\\n overflow: hidden;\\n position: relative;\\n width: \").concat(dt('autocomplete.dropdown.width'), \";\\n border-top-right-radius: \").concat(dt('autocomplete.dropdown.border.radius'), \";\\n border-bottom-right-radius: \").concat(dt('autocomplete.dropdown.border.radius'), \";\\n background: \").concat(dt('autocomplete.dropdown.background'), \";\\n border: 1px solid \").concat(dt('autocomplete.dropdown.border.color'), \";\\n border-left: 0 none;\\n color: \").concat(dt('autocomplete.dropdown.color'), \";\\n transition: background \").concat(dt('autocomplete.transition.duration'), \", color \").concat(dt('autocomplete.transition.duration'), \", border-color \").concat(dt('autocomplete.transition.duration'), \", outline-color \").concat(dt('autocomplete.transition.duration'), \", box-shadow \").concat(dt('autocomplete.transition.duration'), \";\\n outline-color: transparent;\\n}\\n\\n.p-autocomplete-dropdown:not(:disabled):hover {\\n background: \").concat(dt('autocomplete.dropdown.hover.background'), \";\\n border-color: \").concat(dt('autocomplete.dropdown.hover.border.color'), \";\\n color: \").concat(dt('autocomplete.dropdown.hover.color'), \";\\n}\\n\\n.p-autocomplete-dropdown:not(:disabled):active {\\n background: \").concat(dt('autocomplete.dropdown.active.background'), \";\\n border-color: \").concat(dt('autocomplete.dropdown.active.border.color'), \";\\n color: \").concat(dt('autocomplete.dropdown.active.color'), \";\\n}\\n\\n.p-autocomplete-dropdown:focus-visible {\\n box-shadow: \").concat(dt('autocomplete.dropdown.focus.ring.shadow'), \";\\n outline: \").concat(dt('autocomplete.dropdown.focus.ring.width'), \" \").concat(dt('autocomplete.dropdown.focus.ring.style'), \" \").concat(dt('autocomplete.dropdown.focus.ring.color'), \";\\n outline-offset: \").concat(dt('autocomplete.dropdown.focus.ring.offset'), \";\\n}\\n\\n.p-autocomplete .p-autocomplete-overlay {\\n min-width: 100%;\\n}\\n\\n.p-autocomplete-overlay {\\n position: absolute;\\n overflow: auto;\\n top: 0;\\n left: 0;\\n background: \").concat(dt('autocomplete.overlay.background'), \";\\n color: \").concat(dt('autocomplete.overlay.color'), \";\\n border: 1px solid \").concat(dt('autocomplete.overlay.border.color'), \";\\n border-radius: \").concat(dt('autocomplete.overlay.border.radius'), \";\\n box-shadow: \").concat(dt('autocomplete.overlay.shadow'), \";\\n}\\n\\n.p-autocomplete-list {\\n margin: 0;\\n padding: 0;\\n list-style-type: none;\\n display: flex;\\n flex-direction: column;\\n gap: \").concat(dt('autocomplete.list.gap'), \";\\n padding: \").concat(dt('autocomplete.list.padding'), \";\\n}\\n\\n.p-autocomplete-option {\\n cursor: pointer;\\n white-space: nowrap;\\n position: relative;\\n overflow: hidden;\\n display: flex;\\n align-items: center;\\n padding: \").concat(dt('autocomplete.option.padding'), \";\\n border: 0 none;\\n color: \").concat(dt('autocomplete.option.color'), \";\\n background: transparent;\\n transition: background \").concat(dt('autocomplete.transition.duration'), \", color \").concat(dt('autocomplete.transition.duration'), \", border-color \").concat(dt('autocomplete.transition.duration'), \";\\n border-radius: \").concat(dt('autocomplete.option.border.radius'), \";\\n}\\n\\n.p-autocomplete-option:not(.p-autocomplete-option-selected):not(.p-disabled).p-focus {\\n background: \").concat(dt('autocomplete.option.focus.background'), \";\\n color: \").concat(dt('autocomplete.option.focus.color'), \";\\n}\\n\\n.p-autocomplete-option-selected {\\n background: \").concat(dt('autocomplete.option.selected.background'), \";\\n color: \").concat(dt('autocomplete.option.selected.color'), \";\\n}\\n\\n.p-autocomplete-option-selected.p-focus {\\n background: \").concat(dt('autocomplete.option.selected.focus.background'), \";\\n color: \").concat(dt('autocomplete.option.selected.focus.color'), \";\\n}\\n\\n.p-autocomplete-option-group {\\n margin: 0;\\n padding: \").concat(dt('autocomplete.option.group.padding'), \";\\n color: \").concat(dt('autocomplete.option.group.color'), \";\\n background: \").concat(dt('autocomplete.option.group.background'), \";\\n font-weight: \").concat(dt('autocomplete.option.group.font.weight'), \";\\n}\\n\\n.p-autocomplete-input-multiple {\\n margin: 0;\\n list-style-type: none;\\n cursor: text;\\n overflow: hidden;\\n display: flex;\\n align-items: center;\\n flex-wrap: wrap;\\n padding: calc(\").concat(dt('autocomplete.padding.y'), \" / 2) \").concat(dt('autocomplete.padding.x'), \";\\n gap: calc(\").concat(dt('autocomplete.padding.y'), \" / 2);\\n color: \").concat(dt('autocomplete.color'), \";\\n background: \").concat(dt('autocomplete.background'), \";\\n border: 1px solid \").concat(dt('autocomplete.border.color'), \";\\n border-radius: \").concat(dt('autocomplete.border.radius'), \";\\n width: 100%;\\n transition: background \").concat(dt('autocomplete.transition.duration'), \", color \").concat(dt('autocomplete.transition.duration'), \", border-color \").concat(dt('autocomplete.transition.duration'), \", outline-color \").concat(dt('autocomplete.transition.duration'), \", box-shadow \").concat(dt('autocomplete.transition.duration'), \";\\n outline-color: transparent;\\n box-shadow: \").concat(dt('autocomplete.shadow'), \";\\n}\\n\\n.p-autocomplete:not(.p-disabled):hover .p-autocomplete-input-multiple {\\n border-color: \").concat(dt('autocomplete.hover.border.color'), \";\\n}\\n\\n.p-autocomplete:not(.p-disabled).p-focus .p-autocomplete-input-multiple {\\n border-color: \").concat(dt('autocomplete.focus.border.color'), \";\\n box-shadow: \").concat(dt('autocomplete.focus.ring.shadow'), \";\\n outline: \").concat(dt('autocomplete.focus.ring.width'), \" \").concat(dt('autocomplete.focus.ring.style'), \" \").concat(dt('autocomplete.focus.ring.color'), \";\\n outline-offset: \").concat(dt('autocomplete.focus.ring.offset'), \";\\n}\\n\\n.p-autocomplete.p-invalid .p-autocomplete-input-multiple {\\n border-color: \").concat(dt('autocomplete.invalid.border.color'), \";\\n}\\n\\n.p-variant-filled.p-autocomplete-input-multiple {\\n background: \").concat(dt('autocomplete.filled.background'), \";\\n}\\n\\n.p-autocomplete:not(.p-disabled).p-focus .p-variant-filled.p-autocomplete-input-multiple {\\n background: \").concat(dt('autocomplete.filled.focus.background'), \";\\n}\\n\\n.p-autocomplete.p-disabled .p-autocomplete-input-multiple {\\n opacity: 1;\\n background: \").concat(dt('autocomplete.disabled.background'), \";\\n color: \").concat(dt('autocomplete.disabled.color'), \";\\n}\\n\\n.p-autocomplete-chip.p-chip {\\n padding-top: calc(\").concat(dt('autocomplete.padding.y'), \" / 2);\\n padding-bottom: calc(\").concat(dt('autocomplete.padding.y'), \" / 2);\\n border-radius: \").concat(dt('autocomplete.chip.border.radius'), \";\\n}\\n\\n.p-autocomplete-input-multiple:has(.p-autocomplete-chip) {\\n padding-left: calc(\").concat(dt('autocomplete.padding.y'), \" / 2);\\n padding-right: calc(\").concat(dt('autocomplete.padding.y'), \" / 2);\\n}\\n\\n.p-autocomplete-chip-item.p-focus .p-autocomplete-chip {\\n background: \").concat(dt('inputchips.chip.focus.background'), \";\\n color: \").concat(dt('inputchips.chip.focus.color'), \";\\n}\\n\\n.p-autocomplete-input-chip {\\n flex: 1 1 auto;\\n display: inline-flex;\\n padding-top: calc(\").concat(dt('autocomplete.padding.y'), \" / 2);\\n padding-bottom: calc(\").concat(dt('autocomplete.padding.y'), \" / 2);\\n}\\n\\n.p-autocomplete-input-chip input {\\n border: 0 none;\\n outline: 0 none;\\n background: transparent;\\n margin: 0;\\n padding: 0;\\n box-shadow: none;\\n border-radius: 0;\\n width: 100%;\\n font-family: inherit;\\n font-feature-settings: inherit;\\n font-size: 1rem;\\n color: inherit;\\n}\\n\\n.p-autocomplete-input-chip input::placeholder {\\n color: \").concat(dt('autocomplete.placeholder.color'), \";\\n}\\n\\n.p-autocomplete-empty-message {\\n padding: \").concat(dt('autocomplete.empty.message.padding'), \";\\n}\\n\\n.p-autocomplete-fluid {\\n display: flex;\\n}\\n\\n.p-autocomplete-fluid:has(.p-autocomplete-dropdown) .p-autocomplete-input {\\n width: 1%;\\n}\\n\");\n};\nvar inlineStyles = {\n root: {\n position: 'relative'\n }\n};\nvar classes = {\n root: function root(_ref2) {\n var instance = _ref2.instance,\n props = _ref2.props;\n return ['p-autocomplete p-component p-inputwrapper', {\n 'p-disabled': props.disabled,\n 'p-invalid': props.invalid,\n 'p-focus': instance.focused,\n 'p-inputwrapper-filled': props.modelValue || isNotEmpty(instance.inputValue),\n 'p-inputwrapper-focus': instance.focused,\n 'p-autocomplete-open': instance.overlayVisible,\n 'p-autocomplete-fluid': instance.hasFluid\n }];\n },\n pcInput: 'p-autocomplete-input',\n inputMultiple: function inputMultiple(_ref3) {\n var props = _ref3.props,\n instance = _ref3.instance;\n return ['p-autocomplete-input-multiple', {\n 'p-variant-filled': props.variant ? props.variant === 'filled' : instance.$primevue.config.inputStyle === 'filled' || instance.$primevue.config.inputVariant === 'filled'\n }];\n },\n chipItem: function chipItem(_ref4) {\n var instance = _ref4.instance,\n i = _ref4.i;\n return ['p-autocomplete-chip-item', {\n 'p-focus': instance.focusedMultipleOptionIndex === i\n }];\n },\n pcChip: 'p-autocomplete-chip',\n chipIcon: 'p-autocomplete-chip-icon',\n inputChip: 'p-autocomplete-input-chip',\n loader: 'p-autocomplete-loader',\n dropdown: 'p-autocomplete-dropdown',\n overlay: 'p-autocomplete-overlay p-component',\n list: 'p-autocomplete-list',\n optionGroup: 'p-autocomplete-option-group',\n option: function option(_ref5) {\n var instance = _ref5.instance,\n _option = _ref5.option,\n i = _ref5.i,\n getItemOptions = _ref5.getItemOptions;\n return ['p-autocomplete-option', {\n 'p-autocomplete-option-selected': instance.isSelected(_option),\n 'p-focus': instance.focusedOptionIndex === instance.getOptionIndex(i, getItemOptions),\n 'p-disabled': instance.isOptionDisabled(_option)\n }];\n },\n emptyMessage: 'p-autocomplete-empty-message'\n};\nvar AutoCompleteStyle = BaseStyle.extend({\n name: 'autocomplete',\n theme: theme,\n classes: classes,\n inlineStyles: inlineStyles\n});\n\nexport { AutoCompleteStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { focus, addStyle, relativePosition, getOuterWidth, absolutePosition, isTouchDevice, findSingle } from '@primeuix/utils/dom';\nimport { resolveFieldData, isEmpty, isNotEmpty, equals, findLastIndex } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { UniqueComponentId, ConnectedOverlayScrollHandler } from '@primevue/core/utils';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport Chip from 'primevue/chip';\nimport InputText from 'primevue/inputtext';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport Ripple from 'primevue/ripple';\nimport VirtualScroller from 'primevue/virtualscroller';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport AutoCompleteStyle from 'primevue/autocomplete/style';\nimport { resolveComponent, resolveDirective, openBlock, createElementBlock, mergeProps, createBlock, normalizeClass, normalizeStyle, createCommentVNode, Fragment, renderList, renderSlot, createVNode, withCtx, createElementVNode, resolveDynamicComponent, toDisplayString, Transition, createSlots, createTextVNode, withDirectives } from 'vue';\n\nvar script$1 = {\n name: 'BaseAutoComplete',\n \"extends\": BaseComponent,\n props: {\n modelValue: null,\n suggestions: {\n type: Array,\n \"default\": null\n },\n optionLabel: null,\n optionDisabled: null,\n optionGroupLabel: null,\n optionGroupChildren: null,\n scrollHeight: {\n type: String,\n \"default\": '14rem'\n },\n dropdown: {\n type: Boolean,\n \"default\": false\n },\n dropdownMode: {\n type: String,\n \"default\": 'blank'\n },\n multiple: {\n type: Boolean,\n \"default\": false\n },\n loading: {\n type: Boolean,\n \"default\": false\n },\n variant: {\n type: String,\n \"default\": null\n },\n invalid: {\n type: Boolean,\n \"default\": false\n },\n disabled: {\n type: Boolean,\n \"default\": false\n },\n placeholder: {\n type: String,\n \"default\": null\n },\n dataKey: {\n type: String,\n \"default\": null\n },\n minLength: {\n type: Number,\n \"default\": 1\n },\n delay: {\n type: Number,\n \"default\": 300\n },\n appendTo: {\n type: [String, Object],\n \"default\": 'body'\n },\n forceSelection: {\n type: Boolean,\n \"default\": false\n },\n completeOnFocus: {\n type: Boolean,\n \"default\": false\n },\n inputId: {\n type: String,\n \"default\": null\n },\n inputStyle: {\n type: Object,\n \"default\": null\n },\n inputClass: {\n type: [String, Object],\n \"default\": null\n },\n panelStyle: {\n type: Object,\n \"default\": null\n },\n panelClass: {\n type: [String, Object],\n \"default\": null\n },\n overlayStyle: {\n type: Object,\n \"default\": null\n },\n overlayClass: {\n type: [String, Object],\n \"default\": null\n },\n dropdownIcon: {\n type: String,\n \"default\": null\n },\n dropdownClass: {\n type: [String, Object],\n \"default\": null\n },\n loader: {\n type: String,\n \"default\": null\n },\n loadingIcon: {\n type: String,\n \"default\": null\n },\n removeTokenIcon: {\n type: String,\n \"default\": null\n },\n chipIcon: {\n type: String,\n \"default\": null\n },\n virtualScrollerOptions: {\n type: Object,\n \"default\": null\n },\n autoOptionFocus: {\n type: Boolean,\n \"default\": false\n },\n selectOnFocus: {\n type: Boolean,\n \"default\": false\n },\n focusOnHover: {\n type: Boolean,\n \"default\": true\n },\n searchLocale: {\n type: String,\n \"default\": undefined\n },\n searchMessage: {\n type: String,\n \"default\": null\n },\n selectionMessage: {\n type: String,\n \"default\": null\n },\n emptySelectionMessage: {\n type: String,\n \"default\": null\n },\n emptySearchMessage: {\n type: String,\n \"default\": null\n },\n tabindex: {\n type: Number,\n \"default\": 0\n },\n typeahead: {\n type: Boolean,\n \"default\": true\n },\n ariaLabel: {\n type: String,\n \"default\": null\n },\n ariaLabelledby: {\n type: String,\n \"default\": null\n },\n fluid: {\n type: Boolean,\n \"default\": null\n }\n },\n style: AutoCompleteStyle,\n provide: function provide() {\n return {\n $pcAutoComplete: this,\n $parentInstance: this\n };\n }\n};\n\nfunction _typeof$1(o) { \"@babel/helpers - typeof\"; return _typeof$1 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof$1(o); }\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nvar script = {\n name: 'AutoComplete',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['update:modelValue', 'change', 'focus', 'blur', 'item-select', 'item-unselect', 'option-select', 'option-unselect', 'dropdown-click', 'clear', 'complete', 'before-show', 'before-hide', 'show', 'hide'],\n inject: {\n $pcFluid: {\n \"default\": null\n }\n },\n outsideClickListener: null,\n resizeListener: null,\n scrollHandler: null,\n overlay: null,\n virtualScroller: null,\n searchTimeout: null,\n dirty: false,\n data: function data() {\n return {\n id: this.$attrs.id,\n clicked: false,\n focused: false,\n focusedOptionIndex: -1,\n focusedMultipleOptionIndex: -1,\n overlayVisible: false,\n searching: false\n };\n },\n watch: {\n '$attrs.id': function $attrsId(newValue) {\n this.id = newValue || UniqueComponentId();\n },\n suggestions: function suggestions() {\n if (this.searching) {\n this.show();\n this.focusedOptionIndex = this.overlayVisible && this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : -1;\n this.searching = false;\n }\n this.autoUpdateModel();\n }\n },\n mounted: function mounted() {\n this.id = this.id || UniqueComponentId();\n this.autoUpdateModel();\n },\n updated: function updated() {\n if (this.overlayVisible) {\n this.alignOverlay();\n }\n },\n beforeUnmount: function beforeUnmount() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n if (this.overlay) {\n ZIndex.clear(this.overlay);\n this.overlay = null;\n }\n },\n methods: {\n getOptionIndex: function getOptionIndex(index, fn) {\n return this.virtualScrollerDisabled ? index : fn && fn(index)['index'];\n },\n getOptionLabel: function getOptionLabel(option) {\n return this.optionLabel ? resolveFieldData(option, this.optionLabel) : option;\n },\n getOptionValue: function getOptionValue(option) {\n return option; // TODO: The 'optionValue' properties can be added.\n },\n getOptionRenderKey: function getOptionRenderKey(option, index) {\n return (this.dataKey ? resolveFieldData(option, this.dataKey) : this.getOptionLabel(option)) + '_' + index;\n },\n getPTOptions: function getPTOptions(option, itemOptions, index, key) {\n return this.ptm(key, {\n context: {\n selected: this.isSelected(option),\n focused: this.focusedOptionIndex === this.getOptionIndex(index, itemOptions),\n disabled: this.isOptionDisabled(option)\n }\n });\n },\n isOptionDisabled: function isOptionDisabled(option) {\n return this.optionDisabled ? resolveFieldData(option, this.optionDisabled) : false;\n },\n isOptionGroup: function isOptionGroup(option) {\n return this.optionGroupLabel && option.optionGroup && option.group;\n },\n getOptionGroupLabel: function getOptionGroupLabel(optionGroup) {\n return resolveFieldData(optionGroup, this.optionGroupLabel);\n },\n getOptionGroupChildren: function getOptionGroupChildren(optionGroup) {\n return resolveFieldData(optionGroup, this.optionGroupChildren);\n },\n getAriaPosInset: function getAriaPosInset(index) {\n var _this = this;\n return (this.optionGroupLabel ? index - this.visibleOptions.slice(0, index).filter(function (option) {\n return _this.isOptionGroup(option);\n }).length : index) + 1;\n },\n show: function show(isFocus) {\n this.$emit('before-show');\n this.dirty = true;\n this.overlayVisible = true;\n this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : -1;\n isFocus && focus(this.multiple ? this.$refs.focusInput : this.$refs.focusInput.$el);\n },\n hide: function hide(isFocus) {\n var _this2 = this;\n var _hide = function _hide() {\n _this2.$emit('before-hide');\n _this2.dirty = isFocus;\n _this2.overlayVisible = false;\n _this2.clicked = false;\n _this2.focusedOptionIndex = -1;\n isFocus && focus(_this2.multiple ? _this2.$refs.focusInput : _this2.$refs.focusInput.$el);\n };\n setTimeout(function () {\n _hide();\n }, 0); // For ScreenReaders\n },\n onFocus: function onFocus(event) {\n if (this.disabled) {\n // For ScreenReaders\n return;\n }\n if (!this.dirty && this.completeOnFocus) {\n this.search(event, event.target.value, 'focus');\n }\n this.dirty = true;\n this.focused = true;\n if (this.overlayVisible) {\n this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.overlayVisible && this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : -1;\n this.scrollInView(this.focusedOptionIndex);\n }\n this.$emit('focus', event);\n },\n onBlur: function onBlur(event) {\n this.dirty = false;\n this.focused = false;\n this.focusedOptionIndex = -1;\n this.$emit('blur', event);\n },\n onKeyDown: function onKeyDown(event) {\n if (this.disabled) {\n event.preventDefault();\n return;\n }\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n case 'Home':\n this.onHomeKey(event);\n break;\n case 'End':\n this.onEndKey(event);\n break;\n case 'PageDown':\n this.onPageDownKey(event);\n break;\n case 'PageUp':\n this.onPageUpKey(event);\n break;\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n case 'Escape':\n this.onEscapeKey(event);\n break;\n case 'Tab':\n this.onTabKey(event);\n break;\n case 'Backspace':\n this.onBackspaceKey(event);\n break;\n }\n this.clicked = false;\n },\n onInput: function onInput(event) {\n var _this3 = this;\n if (this.typeahead) {\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n var query = event.target.value;\n if (!this.multiple) {\n this.updateModel(event, query);\n }\n if (query.length === 0) {\n this.hide();\n this.$emit('clear');\n } else {\n if (query.length >= this.minLength) {\n this.focusedOptionIndex = -1;\n this.searchTimeout = setTimeout(function () {\n _this3.search(event, query, 'input');\n }, this.delay);\n } else {\n this.hide();\n }\n }\n }\n },\n onChange: function onChange(event) {\n var _this4 = this;\n if (this.forceSelection) {\n var valid = false;\n\n // when forceSelection is on, prevent called twice onOptionSelect()\n if (this.visibleOptions && !this.multiple) {\n var value = this.multiple ? this.$refs.focusInput.value : this.$refs.focusInput.$el.value;\n var matchedValue = this.visibleOptions.find(function (option) {\n return _this4.isOptionMatched(option, value || '');\n });\n if (matchedValue !== undefined) {\n valid = true;\n !this.isSelected(matchedValue) && this.onOptionSelect(event, matchedValue);\n }\n }\n if (!valid) {\n if (this.multiple) this.$refs.focusInput.value = '';else this.$refs.focusInput.$el.value = '';\n this.$emit('clear');\n !this.multiple && this.updateModel(event, null);\n }\n }\n },\n onMultipleContainerFocus: function onMultipleContainerFocus() {\n if (this.disabled) {\n // For ScreenReaders\n return;\n }\n this.focused = true;\n },\n onMultipleContainerBlur: function onMultipleContainerBlur() {\n this.focusedMultipleOptionIndex = -1;\n this.focused = false;\n },\n onMultipleContainerKeyDown: function onMultipleContainerKeyDown(event) {\n if (this.disabled) {\n event.preventDefault();\n return;\n }\n switch (event.code) {\n case 'ArrowLeft':\n this.onArrowLeftKeyOnMultiple(event);\n break;\n case 'ArrowRight':\n this.onArrowRightKeyOnMultiple(event);\n break;\n case 'Backspace':\n this.onBackspaceKeyOnMultiple(event);\n break;\n }\n },\n onContainerClick: function onContainerClick(event) {\n this.clicked = true;\n if (this.disabled || this.searching || this.loading || this.isInputClicked(event) || this.isDropdownClicked(event)) {\n return;\n }\n if (!this.overlay || !this.overlay.contains(event.target)) {\n focus(this.multiple ? this.$refs.focusInput : this.$refs.focusInput.$el);\n }\n },\n onDropdownClick: function onDropdownClick(event) {\n var query = undefined;\n if (this.overlayVisible) {\n this.hide(true);\n } else {\n var target = this.multiple ? this.$refs.focusInput : this.$refs.focusInput.$el;\n focus(target);\n query = target.value;\n if (this.dropdownMode === 'blank') this.search(event, '', 'dropdown');else if (this.dropdownMode === 'current') this.search(event, query, 'dropdown');\n }\n this.$emit('dropdown-click', {\n originalEvent: event,\n query: query\n });\n },\n onOptionSelect: function onOptionSelect(event, option) {\n var isHide = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var value = this.getOptionValue(option);\n if (this.multiple) {\n this.$refs.focusInput.value = '';\n if (!this.isSelected(option)) {\n this.updateModel(event, [].concat(_toConsumableArray(this.modelValue || []), [value]));\n }\n } else {\n this.updateModel(event, value);\n }\n this.$emit('item-select', {\n originalEvent: event,\n value: option\n });\n this.$emit('option-select', {\n originalEvent: event,\n value: option\n });\n isHide && this.hide(true);\n },\n onOptionMouseMove: function onOptionMouseMove(event, index) {\n if (this.focusOnHover) {\n this.changeFocusedOptionIndex(event, index);\n }\n },\n onOverlayClick: function onOverlayClick(event) {\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.$el\n });\n },\n onOverlayKeyDown: function onOverlayKeyDown(event) {\n switch (event.code) {\n case 'Escape':\n this.onEscapeKey(event);\n break;\n }\n },\n onArrowDownKey: function onArrowDownKey(event) {\n if (!this.overlayVisible) {\n return;\n }\n var optionIndex = this.focusedOptionIndex !== -1 ? this.findNextOptionIndex(this.focusedOptionIndex) : this.clicked ? this.findFirstOptionIndex() : this.findFirstFocusedOptionIndex();\n this.changeFocusedOptionIndex(event, optionIndex);\n event.preventDefault();\n },\n onArrowUpKey: function onArrowUpKey(event) {\n if (!this.overlayVisible) {\n return;\n }\n if (event.altKey) {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n this.overlayVisible && this.hide();\n event.preventDefault();\n } else {\n var optionIndex = this.focusedOptionIndex !== -1 ? this.findPrevOptionIndex(this.focusedOptionIndex) : this.clicked ? this.findLastOptionIndex() : this.findLastFocusedOptionIndex();\n this.changeFocusedOptionIndex(event, optionIndex);\n event.preventDefault();\n }\n },\n onArrowLeftKey: function onArrowLeftKey(event) {\n var target = event.currentTarget;\n this.focusedOptionIndex = -1;\n if (this.multiple) {\n if (isEmpty(target.value) && this.hasSelectedOption) {\n focus(this.$refs.multiContainer);\n this.focusedMultipleOptionIndex = this.modelValue.length;\n } else {\n event.stopPropagation(); // To prevent onArrowLeftKeyOnMultiple method\n }\n }\n },\n onArrowRightKey: function onArrowRightKey(event) {\n this.focusedOptionIndex = -1;\n this.multiple && event.stopPropagation(); // To prevent onArrowRightKeyOnMultiple method\n },\n onHomeKey: function onHomeKey(event) {\n var currentTarget = event.currentTarget;\n var len = currentTarget.value.length;\n currentTarget.setSelectionRange(0, event.shiftKey ? len : 0);\n this.focusedOptionIndex = -1;\n event.preventDefault();\n },\n onEndKey: function onEndKey(event) {\n var currentTarget = event.currentTarget;\n var len = currentTarget.value.length;\n currentTarget.setSelectionRange(event.shiftKey ? 0 : len, len);\n this.focusedOptionIndex = -1;\n event.preventDefault();\n },\n onPageUpKey: function onPageUpKey(event) {\n this.scrollInView(0);\n event.preventDefault();\n },\n onPageDownKey: function onPageDownKey(event) {\n this.scrollInView(this.visibleOptions.length - 1);\n event.preventDefault();\n },\n onEnterKey: function onEnterKey(event) {\n if (!this.typeahead) {\n if (this.multiple) {\n this.updateModel(event, [].concat(_toConsumableArray(this.modelValue || []), [event.target.value]));\n this.$refs.focusInput.value = '';\n }\n } else {\n if (!this.overlayVisible) {\n this.focusedOptionIndex = -1; // reset\n this.onArrowDownKey(event);\n } else {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n this.hide();\n }\n }\n },\n onEscapeKey: function onEscapeKey(event) {\n this.overlayVisible && this.hide(true);\n event.preventDefault();\n },\n onTabKey: function onTabKey(event) {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n this.overlayVisible && this.hide();\n },\n onBackspaceKey: function onBackspaceKey(event) {\n if (this.multiple) {\n if (isNotEmpty(this.modelValue) && !this.$refs.focusInput.value) {\n var removedValue = this.modelValue[this.modelValue.length - 1];\n var newValue = this.modelValue.slice(0, -1);\n this.$emit('update:modelValue', newValue);\n this.$emit('item-unselect', {\n originalEvent: event,\n value: removedValue\n });\n this.$emit('option-unselect', {\n originalEvent: event,\n value: removedValue\n });\n }\n event.stopPropagation(); // To prevent onBackspaceKeyOnMultiple method\n }\n },\n onArrowLeftKeyOnMultiple: function onArrowLeftKeyOnMultiple() {\n this.focusedMultipleOptionIndex = this.focusedMultipleOptionIndex < 1 ? 0 : this.focusedMultipleOptionIndex - 1;\n },\n onArrowRightKeyOnMultiple: function onArrowRightKeyOnMultiple() {\n this.focusedMultipleOptionIndex++;\n if (this.focusedMultipleOptionIndex > this.modelValue.length - 1) {\n this.focusedMultipleOptionIndex = -1;\n focus(this.$refs.focusInput);\n }\n },\n onBackspaceKeyOnMultiple: function onBackspaceKeyOnMultiple(event) {\n if (this.focusedMultipleOptionIndex !== -1) {\n this.removeOption(event, this.focusedMultipleOptionIndex);\n }\n },\n onOverlayEnter: function onOverlayEnter(el) {\n ZIndex.set('overlay', el, this.$primevue.config.zIndex.overlay);\n addStyle(el, {\n position: 'absolute',\n top: '0',\n left: '0'\n });\n this.alignOverlay();\n },\n onOverlayAfterEnter: function onOverlayAfterEnter() {\n this.bindOutsideClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n this.$emit('show');\n },\n onOverlayLeave: function onOverlayLeave() {\n this.unbindOutsideClickListener();\n this.unbindScrollListener();\n this.unbindResizeListener();\n this.$emit('hide');\n this.overlay = null;\n },\n onOverlayAfterLeave: function onOverlayAfterLeave(el) {\n ZIndex.clear(el);\n },\n alignOverlay: function alignOverlay() {\n var target = this.multiple ? this.$refs.multiContainer : this.$refs.focusInput.$el;\n if (this.appendTo === 'self') {\n relativePosition(this.overlay, target);\n } else {\n this.overlay.style.minWidth = getOuterWidth(target) + 'px';\n absolutePosition(this.overlay, target);\n }\n },\n bindOutsideClickListener: function bindOutsideClickListener() {\n var _this5 = this;\n if (!this.outsideClickListener) {\n this.outsideClickListener = function (event) {\n if (_this5.overlayVisible && _this5.overlay && _this5.isOutsideClicked(event)) {\n _this5.hide();\n }\n };\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener: function unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n },\n bindScrollListener: function bindScrollListener() {\n var _this6 = this;\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.container, function () {\n if (_this6.overlayVisible) {\n _this6.hide();\n }\n });\n }\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener: function unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener: function bindResizeListener() {\n var _this7 = this;\n if (!this.resizeListener) {\n this.resizeListener = function () {\n if (_this7.overlayVisible && !isTouchDevice()) {\n _this7.hide();\n }\n };\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener: function unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n isOutsideClicked: function isOutsideClicked(event) {\n return !this.overlay.contains(event.target) && !this.isInputClicked(event) && !this.isDropdownClicked(event);\n },\n isInputClicked: function isInputClicked(event) {\n if (this.multiple) return event.target === this.$refs.multiContainer || this.$refs.multiContainer.contains(event.target);else return event.target === this.$refs.focusInput.$el;\n },\n isDropdownClicked: function isDropdownClicked(event) {\n return this.$refs.dropdownButton ? event.target === this.$refs.dropdownButton || this.$refs.dropdownButton.contains(event.target) : false;\n },\n isOptionMatched: function isOptionMatched(option, value) {\n var _this$getOptionLabel;\n return this.isValidOption(option) && ((_this$getOptionLabel = this.getOptionLabel(option)) === null || _this$getOptionLabel === void 0 ? void 0 : _this$getOptionLabel.toLocaleLowerCase(this.searchLocale)) === value.toLocaleLowerCase(this.searchLocale);\n },\n isValidOption: function isValidOption(option) {\n return isNotEmpty(option) && !(this.isOptionDisabled(option) || this.isOptionGroup(option));\n },\n isValidSelectedOption: function isValidSelectedOption(option) {\n return this.isValidOption(option) && this.isSelected(option);\n },\n isEquals: function isEquals(value1, value2) {\n return equals(value1, value2, this.equalityKey);\n },\n isSelected: function isSelected(option) {\n var _this8 = this;\n var optionValue = this.getOptionValue(option);\n return this.multiple ? (this.modelValue || []).some(function (value) {\n return _this8.isEquals(value, optionValue);\n }) : this.isEquals(this.modelValue, this.getOptionValue(option));\n },\n findFirstOptionIndex: function findFirstOptionIndex() {\n var _this9 = this;\n return this.visibleOptions.findIndex(function (option) {\n return _this9.isValidOption(option);\n });\n },\n findLastOptionIndex: function findLastOptionIndex() {\n var _this10 = this;\n return findLastIndex(this.visibleOptions, function (option) {\n return _this10.isValidOption(option);\n });\n },\n findNextOptionIndex: function findNextOptionIndex(index) {\n var _this11 = this;\n var matchedOptionIndex = index < this.visibleOptions.length - 1 ? this.visibleOptions.slice(index + 1).findIndex(function (option) {\n return _this11.isValidOption(option);\n }) : -1;\n return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : index;\n },\n findPrevOptionIndex: function findPrevOptionIndex(index) {\n var _this12 = this;\n var matchedOptionIndex = index > 0 ? findLastIndex(this.visibleOptions.slice(0, index), function (option) {\n return _this12.isValidOption(option);\n }) : -1;\n return matchedOptionIndex > -1 ? matchedOptionIndex : index;\n },\n findSelectedOptionIndex: function findSelectedOptionIndex() {\n var _this13 = this;\n return this.hasSelectedOption ? this.visibleOptions.findIndex(function (option) {\n return _this13.isValidSelectedOption(option);\n }) : -1;\n },\n findFirstFocusedOptionIndex: function findFirstFocusedOptionIndex() {\n var selectedIndex = this.findSelectedOptionIndex();\n return selectedIndex < 0 ? this.findFirstOptionIndex() : selectedIndex;\n },\n findLastFocusedOptionIndex: function findLastFocusedOptionIndex() {\n var selectedIndex = this.findSelectedOptionIndex();\n return selectedIndex < 0 ? this.findLastOptionIndex() : selectedIndex;\n },\n search: function search(event, query, source) {\n //allow empty string but not undefined or null\n if (query === undefined || query === null) {\n return;\n }\n\n //do not search blank values on input change\n if (source === 'input' && query.trim().length === 0) {\n return;\n }\n this.searching = true;\n this.$emit('complete', {\n originalEvent: event,\n query: query\n });\n },\n removeOption: function removeOption(event, index) {\n var _this14 = this;\n var removedOption = this.modelValue[index];\n var value = this.modelValue.filter(function (_, i) {\n return i !== index;\n }).map(function (option) {\n return _this14.getOptionValue(option);\n });\n this.updateModel(event, value);\n this.$emit('item-unselect', {\n originalEvent: event,\n value: removedOption\n });\n this.$emit('option-unselect', {\n originalEvent: event,\n value: removedOption\n });\n this.dirty = true;\n focus(this.multiple ? this.$refs.focusInput : this.$refs.focusInput.$el);\n },\n changeFocusedOptionIndex: function changeFocusedOptionIndex(event, index) {\n if (this.focusedOptionIndex !== index) {\n this.focusedOptionIndex = index;\n this.scrollInView();\n if (this.selectOnFocus) {\n this.onOptionSelect(event, this.visibleOptions[index], false);\n }\n }\n },\n scrollInView: function scrollInView() {\n var _this15 = this;\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1;\n this.$nextTick(function () {\n var id = index !== -1 ? \"\".concat(_this15.id, \"_\").concat(index) : _this15.focusedOptionId;\n var element = findSingle(_this15.list, \"li[id=\\\"\".concat(id, \"\\\"]\"));\n if (element) {\n element.scrollIntoView && element.scrollIntoView({\n block: 'nearest',\n inline: 'start'\n });\n } else if (!_this15.virtualScrollerDisabled) {\n _this15.virtualScroller && _this15.virtualScroller.scrollToIndex(index !== -1 ? index : _this15.focusedOptionIndex);\n }\n });\n },\n autoUpdateModel: function autoUpdateModel() {\n if (this.selectOnFocus && this.autoOptionFocus && !this.hasSelectedOption) {\n this.focusedOptionIndex = this.findFirstFocusedOptionIndex();\n this.onOptionSelect(null, this.visibleOptions[this.focusedOptionIndex], false);\n }\n },\n updateModel: function updateModel(event, value) {\n this.$emit('update:modelValue', value);\n this.$emit('change', {\n originalEvent: event,\n value: value\n });\n },\n flatOptions: function flatOptions(options) {\n var _this16 = this;\n return (options || []).reduce(function (result, option, index) {\n result.push({\n optionGroup: option,\n group: true,\n index: index\n });\n var optionGroupChildren = _this16.getOptionGroupChildren(option);\n optionGroupChildren && optionGroupChildren.forEach(function (o) {\n return result.push(o);\n });\n return result;\n }, []);\n },\n overlayRef: function overlayRef(el) {\n this.overlay = el;\n },\n listRef: function listRef(el, contentRef) {\n this.list = el;\n contentRef && contentRef(el); // For VirtualScroller\n },\n virtualScrollerRef: function virtualScrollerRef(el) {\n this.virtualScroller = el;\n }\n },\n computed: {\n visibleOptions: function visibleOptions() {\n return this.optionGroupLabel ? this.flatOptions(this.suggestions) : this.suggestions || [];\n },\n inputValue: function inputValue() {\n if (isNotEmpty(this.modelValue)) {\n if (_typeof$1(this.modelValue) === 'object') {\n var label = this.getOptionLabel(this.modelValue);\n return label != null ? label : this.modelValue;\n } else {\n return this.modelValue;\n }\n } else {\n return '';\n }\n },\n hasSelectedOption: function hasSelectedOption() {\n return isNotEmpty(this.modelValue);\n },\n equalityKey: function equalityKey() {\n return this.dataKey; // TODO: The 'optionValue' properties can be added.\n },\n searchResultMessageText: function searchResultMessageText() {\n return isNotEmpty(this.visibleOptions) && this.overlayVisible ? this.searchMessageText.replaceAll('{0}', this.visibleOptions.length) : this.emptySearchMessageText;\n },\n searchMessageText: function searchMessageText() {\n return this.searchMessage || this.$primevue.config.locale.searchMessage || '';\n },\n emptySearchMessageText: function emptySearchMessageText() {\n return this.emptySearchMessage || this.$primevue.config.locale.emptySearchMessage || '';\n },\n selectionMessageText: function selectionMessageText() {\n return this.selectionMessage || this.$primevue.config.locale.selectionMessage || '';\n },\n emptySelectionMessageText: function emptySelectionMessageText() {\n return this.emptySelectionMessage || this.$primevue.config.locale.emptySelectionMessage || '';\n },\n selectedMessageText: function selectedMessageText() {\n return this.hasSelectedOption ? this.selectionMessageText.replaceAll('{0}', this.multiple ? this.modelValue.length : '1') : this.emptySelectionMessageText;\n },\n listAriaLabel: function listAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.listLabel : undefined;\n },\n focusedOptionId: function focusedOptionId() {\n return this.focusedOptionIndex !== -1 ? \"\".concat(this.id, \"_\").concat(this.focusedOptionIndex) : null;\n },\n focusedMultipleOptionId: function focusedMultipleOptionId() {\n return this.focusedMultipleOptionIndex !== -1 ? \"\".concat(this.id, \"_multiple_option_\").concat(this.focusedMultipleOptionIndex) : null;\n },\n ariaSetSize: function ariaSetSize() {\n var _this17 = this;\n return this.visibleOptions.filter(function (option) {\n return !_this17.isOptionGroup(option);\n }).length;\n },\n virtualScrollerDisabled: function virtualScrollerDisabled() {\n return !this.virtualScrollerOptions;\n },\n panelId: function panelId() {\n return this.id + '_panel';\n },\n hasFluid: function hasFluid() {\n return isEmpty(this.fluid) ? !!this.$pcFluid : this.fluid;\n }\n },\n components: {\n InputText: InputText,\n VirtualScroller: VirtualScroller,\n Portal: Portal,\n ChevronDownIcon: ChevronDownIcon,\n SpinnerIcon: SpinnerIcon,\n Chip: Chip\n },\n directives: {\n ripple: Ripple\n }\n};\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar _hoisted_1 = [\"aria-activedescendant\"];\nvar _hoisted_2 = [\"id\", \"aria-label\", \"aria-setsize\", \"aria-posinset\"];\nvar _hoisted_3 = [\"id\", \"placeholder\", \"tabindex\", \"disabled\", \"aria-label\", \"aria-labelledby\", \"aria-expanded\", \"aria-controls\", \"aria-activedescendant\", \"aria-invalid\"];\nvar _hoisted_4 = [\"disabled\", \"aria-expanded\", \"aria-controls\"];\nvar _hoisted_5 = [\"id\"];\nvar _hoisted_6 = [\"id\", \"aria-label\"];\nvar _hoisted_7 = [\"id\"];\nvar _hoisted_8 = [\"id\", \"aria-label\", \"aria-selected\", \"aria-disabled\", \"aria-setsize\", \"aria-posinset\", \"onClick\", \"onMousemove\", \"data-p-selected\", \"data-p-focus\", \"data-p-disabled\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_InputText = resolveComponent(\"InputText\");\n var _component_Chip = resolveComponent(\"Chip\");\n var _component_SpinnerIcon = resolveComponent(\"SpinnerIcon\");\n var _component_VirtualScroller = resolveComponent(\"VirtualScroller\");\n var _component_Portal = resolveComponent(\"Portal\");\n var _directive_ripple = resolveDirective(\"ripple\");\n return openBlock(), createElementBlock(\"div\", mergeProps({\n ref: \"container\",\n \"class\": _ctx.cx('root'),\n style: _ctx.sx('root'),\n onClick: _cache[11] || (_cache[11] = function () {\n return $options.onContainerClick && $options.onContainerClick.apply($options, arguments);\n })\n }, _ctx.ptmi('root')), [!_ctx.multiple ? (openBlock(), createBlock(_component_InputText, {\n key: 0,\n ref: \"focusInput\",\n id: _ctx.inputId,\n type: \"text\",\n \"class\": normalizeClass([_ctx.cx('pcInput'), _ctx.inputClass]),\n style: normalizeStyle(_ctx.inputStyle),\n value: $options.inputValue,\n placeholder: _ctx.placeholder,\n tabindex: !_ctx.disabled ? _ctx.tabindex : -1,\n fluid: $options.hasFluid,\n disabled: _ctx.disabled,\n invalid: _ctx.invalid,\n variant: _ctx.variant,\n autocomplete: \"off\",\n role: \"combobox\",\n \"aria-label\": _ctx.ariaLabel,\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-haspopup\": \"listbox\",\n \"aria-autocomplete\": \"list\",\n \"aria-expanded\": $data.overlayVisible,\n \"aria-controls\": $options.panelId,\n \"aria-activedescendant\": $data.focused ? $options.focusedOptionId : undefined,\n onFocus: $options.onFocus,\n onBlur: $options.onBlur,\n onKeydown: $options.onKeyDown,\n onInput: $options.onInput,\n onChange: $options.onChange,\n unstyled: _ctx.unstyled,\n pt: _ctx.ptm('pcInput')\n }, null, 8, [\"id\", \"class\", \"style\", \"value\", \"placeholder\", \"tabindex\", \"fluid\", \"disabled\", \"invalid\", \"variant\", \"aria-label\", \"aria-labelledby\", \"aria-expanded\", \"aria-controls\", \"aria-activedescendant\", \"onFocus\", \"onBlur\", \"onKeydown\", \"onInput\", \"onChange\", \"unstyled\", \"pt\"])) : createCommentVNode(\"\", true), _ctx.multiple ? (openBlock(), createElementBlock(\"ul\", mergeProps({\n key: 1,\n ref: \"multiContainer\",\n \"class\": _ctx.cx('inputMultiple'),\n tabindex: \"-1\",\n role: \"listbox\",\n \"aria-orientation\": \"horizontal\",\n \"aria-activedescendant\": $data.focused ? $options.focusedMultipleOptionId : undefined,\n onFocus: _cache[5] || (_cache[5] = function () {\n return $options.onMultipleContainerFocus && $options.onMultipleContainerFocus.apply($options, arguments);\n }),\n onBlur: _cache[6] || (_cache[6] = function () {\n return $options.onMultipleContainerBlur && $options.onMultipleContainerBlur.apply($options, arguments);\n }),\n onKeydown: _cache[7] || (_cache[7] = function () {\n return $options.onMultipleContainerKeyDown && $options.onMultipleContainerKeyDown.apply($options, arguments);\n })\n }, _ctx.ptm('inputMultiple')), [(openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.modelValue, function (option, i) {\n return openBlock(), createElementBlock(\"li\", mergeProps({\n key: \"\".concat(i, \"_\").concat($options.getOptionLabel(option)),\n id: $data.id + '_multiple_option_' + i,\n \"class\": _ctx.cx('chipItem', {\n i: i\n }),\n role: \"option\",\n \"aria-label\": $options.getOptionLabel(option),\n \"aria-selected\": true,\n \"aria-setsize\": _ctx.modelValue.length,\n \"aria-posinset\": i + 1,\n ref_for: true\n }, _ctx.ptm('chipItem')), [renderSlot(_ctx.$slots, \"chip\", mergeProps({\n \"class\": _ctx.cx('pcChip'),\n value: option,\n index: i,\n removeCallback: function removeCallback(event) {\n return $options.removeOption(event, i);\n },\n ref_for: true\n }, _ctx.ptm('pcChip')), function () {\n return [createVNode(_component_Chip, {\n \"class\": normalizeClass(_ctx.cx('pcChip')),\n label: $options.getOptionLabel(option),\n removeIcon: _ctx.chipIcon || _ctx.removeTokenIcon,\n removable: \"\",\n unstyled: _ctx.unstyled,\n onRemove: function onRemove($event) {\n return $options.removeOption($event, i);\n },\n pt: _ctx.ptm('pcChip')\n }, {\n removeicon: withCtx(function () {\n return [renderSlot(_ctx.$slots, _ctx.$slots.chipicon ? 'chipicon' : 'removetokenicon', {\n \"class\": normalizeClass(_ctx.cx('chipIcon')),\n index: i,\n removeCallback: function removeCallback(event) {\n return $options.removeOption(event, i);\n }\n })];\n }),\n _: 2\n }, 1032, [\"class\", \"label\", \"removeIcon\", \"unstyled\", \"onRemove\", \"pt\"])];\n })], 16, _hoisted_2);\n }), 128)), createElementVNode(\"li\", mergeProps({\n \"class\": _ctx.cx('inputChip'),\n role: \"option\"\n }, _ctx.ptm('inputChip')), [createElementVNode(\"input\", mergeProps({\n ref: \"focusInput\",\n id: _ctx.inputId,\n type: \"text\",\n style: _ctx.inputStyle,\n \"class\": _ctx.inputClass,\n placeholder: _ctx.placeholder,\n tabindex: !_ctx.disabled ? _ctx.tabindex : -1,\n disabled: _ctx.disabled,\n autocomplete: \"off\",\n role: \"combobox\",\n \"aria-label\": _ctx.ariaLabel,\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-haspopup\": \"listbox\",\n \"aria-autocomplete\": \"list\",\n \"aria-expanded\": $data.overlayVisible,\n \"aria-controls\": $data.id + '_list',\n \"aria-activedescendant\": $data.focused ? $options.focusedOptionId : undefined,\n \"aria-invalid\": _ctx.invalid || undefined,\n onFocus: _cache[0] || (_cache[0] = function () {\n return $options.onFocus && $options.onFocus.apply($options, arguments);\n }),\n onBlur: _cache[1] || (_cache[1] = function () {\n return $options.onBlur && $options.onBlur.apply($options, arguments);\n }),\n onKeydown: _cache[2] || (_cache[2] = function () {\n return $options.onKeyDown && $options.onKeyDown.apply($options, arguments);\n }),\n onInput: _cache[3] || (_cache[3] = function () {\n return $options.onInput && $options.onInput.apply($options, arguments);\n }),\n onChange: _cache[4] || (_cache[4] = function () {\n return $options.onChange && $options.onChange.apply($options, arguments);\n })\n }, _ctx.ptm('input')), null, 16, _hoisted_3)], 16)], 16, _hoisted_1)) : createCommentVNode(\"\", true), $data.searching || _ctx.loading ? renderSlot(_ctx.$slots, _ctx.$slots.loader ? 'loader' : 'loadingicon', {\n key: 2,\n \"class\": normalizeClass(_ctx.cx('loader'))\n }, function () {\n return [_ctx.loader || _ctx.loadingIcon ? (openBlock(), createElementBlock(\"i\", mergeProps({\n key: 0,\n \"class\": ['pi-spin', _ctx.cx('loader'), _ctx.loader, _ctx.loadingIcon],\n \"aria-hidden\": \"true\"\n }, _ctx.ptm('loader')), null, 16)) : (openBlock(), createBlock(_component_SpinnerIcon, mergeProps({\n key: 1,\n \"class\": _ctx.cx('loader'),\n spin: \"\",\n \"aria-hidden\": \"true\"\n }, _ctx.ptm('loader')), null, 16, [\"class\"]))];\n }) : createCommentVNode(\"\", true), renderSlot(_ctx.$slots, _ctx.$slots.dropdown ? 'dropdown' : 'dropdownbutton', {\n toggleCallback: function toggleCallback(event) {\n return $options.onDropdownClick(event);\n }\n }, function () {\n return [_ctx.dropdown ? (openBlock(), createElementBlock(\"button\", mergeProps({\n key: 0,\n ref: \"dropdownButton\",\n type: \"button\",\n \"class\": [_ctx.cx('dropdown'), _ctx.dropdownClass],\n disabled: _ctx.disabled,\n \"aria-haspopup\": \"listbox\",\n \"aria-expanded\": $data.overlayVisible,\n \"aria-controls\": $options.panelId,\n onClick: _cache[8] || (_cache[8] = function () {\n return $options.onDropdownClick && $options.onDropdownClick.apply($options, arguments);\n })\n }, _ctx.ptm('dropdown')), [renderSlot(_ctx.$slots, \"dropdownicon\", {\n \"class\": normalizeClass(_ctx.dropdownIcon)\n }, function () {\n return [(openBlock(), createBlock(resolveDynamicComponent(_ctx.dropdownIcon ? 'span' : 'ChevronDownIcon'), mergeProps({\n \"class\": _ctx.dropdownIcon\n }, _ctx.ptm('dropdownIcon')), null, 16, [\"class\"]))];\n })], 16, _hoisted_4)) : createCommentVNode(\"\", true)];\n }), createElementVNode(\"span\", mergeProps({\n role: \"status\",\n \"aria-live\": \"polite\",\n \"class\": \"p-hidden-accessible\"\n }, _ctx.ptm('hiddenSearchResult'), {\n \"data-p-hidden-accessible\": true\n }), toDisplayString($options.searchResultMessageText), 17), createVNode(_component_Portal, {\n appendTo: _ctx.appendTo\n }, {\n \"default\": withCtx(function () {\n return [createVNode(Transition, mergeProps({\n name: \"p-connected-overlay\",\n onEnter: $options.onOverlayEnter,\n onAfterEnter: $options.onOverlayAfterEnter,\n onLeave: $options.onOverlayLeave,\n onAfterLeave: $options.onOverlayAfterLeave\n }, _ctx.ptm('transition')), {\n \"default\": withCtx(function () {\n return [$data.overlayVisible ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n ref: $options.overlayRef,\n id: $options.panelId,\n \"class\": [_ctx.cx('overlay'), _ctx.panelClass, _ctx.overlayClass],\n style: _objectSpread(_objectSpread(_objectSpread({}, _ctx.panelStyle), _ctx.overlayStyle), {}, {\n 'max-height': $options.virtualScrollerDisabled ? _ctx.scrollHeight : ''\n }),\n onClick: _cache[9] || (_cache[9] = function () {\n return $options.onOverlayClick && $options.onOverlayClick.apply($options, arguments);\n }),\n onKeydown: _cache[10] || (_cache[10] = function () {\n return $options.onOverlayKeyDown && $options.onOverlayKeyDown.apply($options, arguments);\n })\n }, _ctx.ptm('overlay')), [renderSlot(_ctx.$slots, \"header\", {\n value: _ctx.modelValue,\n suggestions: $options.visibleOptions\n }), createVNode(_component_VirtualScroller, mergeProps({\n ref: $options.virtualScrollerRef\n }, _ctx.virtualScrollerOptions, {\n style: {\n height: _ctx.scrollHeight\n },\n items: $options.visibleOptions,\n tabindex: -1,\n disabled: $options.virtualScrollerDisabled,\n pt: _ctx.ptm('virtualScroller')\n }), createSlots({\n content: withCtx(function (_ref) {\n var styleClass = _ref.styleClass,\n contentRef = _ref.contentRef,\n items = _ref.items,\n getItemOptions = _ref.getItemOptions,\n contentStyle = _ref.contentStyle,\n itemSize = _ref.itemSize;\n return [createElementVNode(\"ul\", mergeProps({\n ref: function ref(el) {\n return $options.listRef(el, contentRef);\n },\n id: $data.id + '_list',\n \"class\": [_ctx.cx('list'), styleClass],\n style: contentStyle,\n role: \"listbox\",\n \"aria-label\": $options.listAriaLabel\n }, _ctx.ptm('list')), [(openBlock(true), createElementBlock(Fragment, null, renderList(items, function (option, i) {\n return openBlock(), createElementBlock(Fragment, {\n key: $options.getOptionRenderKey(option, $options.getOptionIndex(i, getItemOptions))\n }, [$options.isOptionGroup(option) ? (openBlock(), createElementBlock(\"li\", mergeProps({\n key: 0,\n id: $data.id + '_' + $options.getOptionIndex(i, getItemOptions),\n style: {\n height: itemSize ? itemSize + 'px' : undefined\n },\n \"class\": _ctx.cx('optionGroup'),\n role: \"option\",\n ref_for: true\n }, _ctx.ptm('optionGroup')), [renderSlot(_ctx.$slots, \"optiongroup\", {\n option: option.optionGroup,\n index: $options.getOptionIndex(i, getItemOptions)\n }, function () {\n return [createTextVNode(toDisplayString($options.getOptionGroupLabel(option.optionGroup)), 1)];\n })], 16, _hoisted_7)) : withDirectives((openBlock(), createElementBlock(\"li\", mergeProps({\n key: 1,\n id: $data.id + '_' + $options.getOptionIndex(i, getItemOptions),\n style: {\n height: itemSize ? itemSize + 'px' : undefined\n },\n \"class\": _ctx.cx('option', {\n option: option,\n i: i,\n getItemOptions: getItemOptions\n }),\n role: \"option\",\n \"aria-label\": $options.getOptionLabel(option),\n \"aria-selected\": $options.isSelected(option),\n \"aria-disabled\": $options.isOptionDisabled(option),\n \"aria-setsize\": $options.ariaSetSize,\n \"aria-posinset\": $options.getAriaPosInset($options.getOptionIndex(i, getItemOptions)),\n onClick: function onClick($event) {\n return $options.onOptionSelect($event, option);\n },\n onMousemove: function onMousemove($event) {\n return $options.onOptionMouseMove($event, $options.getOptionIndex(i, getItemOptions));\n },\n \"data-p-selected\": $options.isSelected(option),\n \"data-p-focus\": $data.focusedOptionIndex === $options.getOptionIndex(i, getItemOptions),\n \"data-p-disabled\": $options.isOptionDisabled(option),\n ref_for: true\n }, $options.getPTOptions(option, getItemOptions, i, 'option')), [renderSlot(_ctx.$slots, \"option\", {\n option: option,\n index: $options.getOptionIndex(i, getItemOptions)\n }, function () {\n return [createTextVNode(toDisplayString($options.getOptionLabel(option)), 1)];\n })], 16, _hoisted_8)), [[_directive_ripple]])], 64);\n }), 128)), !items || items && items.length === 0 ? (openBlock(), createElementBlock(\"li\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('emptyMessage'),\n role: \"option\"\n }, _ctx.ptm('emptyMessage')), [renderSlot(_ctx.$slots, \"empty\", {}, function () {\n return [createTextVNode(toDisplayString($options.searchResultMessageText), 1)];\n })], 16)) : createCommentVNode(\"\", true)], 16, _hoisted_6)];\n }),\n _: 2\n }, [_ctx.$slots.loader ? {\n name: \"loader\",\n fn: withCtx(function (_ref2) {\n var options = _ref2.options;\n return [renderSlot(_ctx.$slots, \"loader\", {\n options: options\n })];\n }),\n key: \"0\"\n } : undefined]), 1040, [\"style\", \"items\", \"disabled\", \"pt\"]), renderSlot(_ctx.$slots, \"footer\", {\n value: _ctx.modelValue,\n suggestions: $options.visibleOptions\n }), createElementVNode(\"span\", mergeProps({\n role: \"status\",\n \"aria-live\": \"polite\",\n \"class\": \"p-hidden-accessible\"\n }, _ctx.ptm('hiddenSelectedMessage'), {\n \"data-p-hidden-accessible\": true\n }), toDisplayString($options.selectedMessageText), 17)], 16, _hoisted_5)) : createCommentVNode(\"\", true)];\n }),\n _: 3\n }, 16, [\"onEnter\", \"onAfterEnter\", \"onLeave\", \"onAfterLeave\"])];\n }),\n _: 3\n }, 8, [\"appendTo\"])], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n","\n\n\n\n\n","\n\n\n","\n\n\n\n\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-overlaybadge {\\n position: relative;\\n}\\n\\n.p-overlaybadge .p-badge {\\n position: absolute;\\n top: 0;\\n right: 0;\\n transform: translate(50%, -50%);\\n transform-origin: 100% 0;\\n margin: 0;\\n outline-width: \".concat(dt('overlaybadge.outline.width'), \";\\n outline-style: solid;\\n outline-color: \").concat(dt('overlaybadge.outline.color'), \";\\n}\\n\");\n};\nvar classes = {\n root: 'p-overlaybadge'\n};\nvar OverlayBadgeStyle = BaseStyle.extend({\n name: 'overlaybadge',\n theme: theme,\n classes: classes\n});\n\nexport { OverlayBadgeStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import Badge from 'primevue/badge';\nimport OverlayBadgeStyle from 'primevue/overlaybadge/style';\nimport { resolveComponent, openBlock, createElementBlock, mergeProps, renderSlot, createVNode } from 'vue';\n\nvar script$1 = {\n name: 'OverlayBadge',\n \"extends\": Badge,\n style: OverlayBadgeStyle,\n provide: function provide() {\n return {\n $pcOverlayBadge: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'OverlayBadge',\n \"extends\": script$1,\n inheritAttrs: false,\n components: {\n Badge: Badge\n }\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_Badge = resolveComponent(\"Badge\");\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root')), [renderSlot(_ctx.$slots, \"default\"), createVNode(_component_Badge, mergeProps(_ctx.$props, {\n pt: _ctx.ptm('pcBadge')\n }), null, 16, [\"pt\"])], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n\n\n\n\n","\n\n\n","\n\n\n","\n\n\n","\n\n\n\n\n\n\n","import { LinkMarkerShape } from '@comfyorg/litegraph'\nimport { LiteGraph } from '@comfyorg/litegraph'\n\nimport type { ColorPalettes } from '@/types/colorPaletteTypes'\nimport type { Keybinding } from '@/types/keyBindingTypes'\nimport { NodeBadgeMode } from '@/types/nodeSource'\nimport { LinkReleaseTriggerAction } from '@/types/searchBoxTypes'\nimport type { SettingParams } from '@/types/settingTypes'\n\nexport const CORE_SETTINGS: SettingParams[] = [\n {\n id: 'Comfy.Validation.Workflows',\n name: 'Validate workflows',\n type: 'boolean',\n defaultValue: true\n },\n {\n id: 'Comfy.NodeSearchBoxImpl',\n category: ['Comfy', 'Node Search Box', 'Implementation'],\n experimental: true,\n name: 'Node search box implementation',\n type: 'combo',\n options: ['default', 'litegraph (legacy)'],\n defaultValue: 'default'\n },\n {\n id: 'Comfy.LinkRelease.Action',\n category: ['LiteGraph', 'LinkRelease', 'Action'],\n name: 'Action on link release (No modifier)',\n type: 'combo',\n options: Object.values(LinkReleaseTriggerAction),\n defaultValue: LinkReleaseTriggerAction.CONTEXT_MENU\n },\n {\n id: 'Comfy.LinkRelease.ActionShift',\n category: ['LiteGraph', 'LinkRelease', 'ActionShift'],\n name: 'Action on link release (Shift)',\n type: 'combo',\n options: Object.values(LinkReleaseTriggerAction),\n defaultValue: LinkReleaseTriggerAction.SEARCH_BOX\n },\n {\n id: 'Comfy.NodeSearchBoxImpl.NodePreview',\n category: ['Comfy', 'Node Search Box', 'NodePreview'],\n name: 'Node preview',\n tooltip: 'Only applies to the default implementation',\n type: 'boolean',\n defaultValue: true\n },\n {\n id: 'Comfy.NodeSearchBoxImpl.ShowCategory',\n category: ['Comfy', 'Node Search Box', 'ShowCategory'],\n name: 'Show node category in search results',\n tooltip: 'Only applies to the default implementation',\n type: 'boolean',\n defaultValue: true\n },\n {\n id: 'Comfy.NodeSearchBoxImpl.ShowIdName',\n category: ['Comfy', 'Node Search Box', 'ShowIdName'],\n name: 'Show node id name in search results',\n tooltip: 'Only applies to the default implementation',\n type: 'boolean',\n defaultValue: false\n },\n {\n id: 'Comfy.NodeSearchBoxImpl.ShowNodeFrequency',\n category: ['Comfy', 'Node Search Box', 'ShowNodeFrequency'],\n name: 'Show node frequency in search results',\n tooltip: 'Only applies to the default implementation',\n type: 'boolean',\n defaultValue: false\n },\n {\n id: 'Comfy.Sidebar.Location',\n category: ['Appearance', 'Sidebar', 'Location'],\n name: 'Sidebar location',\n type: 'combo',\n options: ['left', 'right'],\n defaultValue: 'left'\n },\n {\n id: 'Comfy.Sidebar.Size',\n category: ['Appearance', 'Sidebar', 'Size'],\n name: 'Sidebar size',\n type: 'combo',\n options: ['normal', 'small'],\n defaultValue: () => (window.innerWidth < 1600 ? 'small' : 'normal')\n },\n {\n id: 'Comfy.TextareaWidget.FontSize',\n category: ['Appearance', 'Node Widget', 'TextareaWidget', 'FontSize'],\n name: 'Textarea widget font size',\n type: 'slider',\n defaultValue: 10,\n attrs: {\n min: 8,\n max: 24\n }\n },\n {\n id: 'Comfy.TextareaWidget.Spellcheck',\n category: ['Comfy', 'Node Widget', 'TextareaWidget', 'Spellcheck'],\n name: 'Textarea widget spellcheck',\n type: 'boolean',\n defaultValue: false\n },\n {\n id: 'Comfy.Workflow.SortNodeIdOnSave',\n name: 'Sort node IDs when saving workflow',\n type: 'boolean',\n defaultValue: false\n },\n {\n id: 'Comfy.Graph.CanvasInfo',\n category: ['LiteGraph', 'Canvas', 'CanvasInfo'],\n name: 'Show canvas info on bottom left corner (fps, etc.)',\n type: 'boolean',\n defaultValue: true\n },\n {\n id: 'Comfy.Node.ShowDeprecated',\n name: 'Show deprecated nodes in search',\n tooltip:\n 'Deprecated nodes are hidden by default in the UI, but remain functional in existing workflows that use them.',\n type: 'boolean',\n defaultValue: false\n },\n {\n id: 'Comfy.Node.ShowExperimental',\n name: 'Show experimental nodes in search',\n tooltip:\n 'Experimental nodes are marked as such in the UI and may be subject to significant changes or removal in future versions. Use with caution in production workflows',\n type: 'boolean',\n defaultValue: true\n },\n {\n id: 'Comfy.Node.Opacity',\n category: ['Appearance', 'Node', 'Opacity'],\n name: 'Node opacity',\n type: 'slider',\n defaultValue: 1,\n attrs: {\n min: 0.01,\n max: 1,\n step: 0.01\n }\n },\n {\n id: 'Comfy.Workflow.ShowMissingNodesWarning',\n name: 'Show missing nodes warning',\n type: 'boolean',\n defaultValue: true\n },\n {\n id: 'Comfy.Workflow.ShowMissingModelsWarning',\n name: 'Show missing models warning',\n type: 'boolean',\n defaultValue: false,\n experimental: true\n },\n {\n id: 'Comfy.Graph.ZoomSpeed',\n category: ['LiteGraph', 'Canvas', 'ZoomSpeed'],\n name: 'Canvas zoom speed',\n type: 'slider',\n defaultValue: 1.1,\n attrs: {\n min: 1.01,\n max: 2.5,\n step: 0.01\n }\n },\n // Bookmarks are stored in the settings store.\n // Bookmarks are in format of category/display_name. e.g. \"conditioning/CLIPTextEncode\"\n {\n id: 'Comfy.NodeLibrary.Bookmarks',\n name: 'Node library bookmarks with display name (deprecated)',\n type: 'hidden',\n defaultValue: [],\n deprecated: true\n },\n {\n id: 'Comfy.NodeLibrary.Bookmarks.V2',\n name: 'Node library bookmarks v2 with unique name',\n type: 'hidden',\n defaultValue: []\n },\n // Stores mapping from bookmark folder name to its customization.\n {\n id: 'Comfy.NodeLibrary.BookmarksCustomization',\n name: 'Node library bookmarks customization',\n type: 'hidden',\n defaultValue: {}\n },\n // Hidden setting used by the queue for how to fit images\n {\n id: 'Comfy.Queue.ImageFit',\n name: 'Queue image fit',\n type: 'hidden',\n defaultValue: 'cover'\n },\n {\n id: 'Comfy.GroupSelectedNodes.Padding',\n category: ['LiteGraph', 'Group', 'Padding'],\n name: 'Group selected nodes padding',\n type: 'slider',\n defaultValue: 10,\n attrs: {\n min: 0,\n max: 100\n }\n },\n {\n id: 'Comfy.Node.DoubleClickTitleToEdit',\n category: ['LiteGraph', 'Node', 'DoubleClickTitleToEdit'],\n name: 'Double click node title to edit',\n type: 'boolean',\n defaultValue: true\n },\n {\n id: 'Comfy.Group.DoubleClickTitleToEdit',\n category: ['LiteGraph', 'Group', 'DoubleClickTitleToEdit'],\n name: 'Double click group title to edit',\n type: 'boolean',\n defaultValue: true\n },\n {\n id: 'Comfy.Window.UnloadConfirmation',\n name: 'Show confirmation when closing window',\n type: 'boolean',\n defaultValue: false\n },\n {\n id: 'Comfy.TreeExplorer.ItemPadding',\n category: ['Appearance', 'Tree Explorer', 'ItemPadding'],\n name: 'Tree explorer item padding',\n type: 'slider',\n defaultValue: 2,\n attrs: {\n min: 0,\n max: 8,\n step: 1\n }\n },\n {\n id: 'Comfy.ModelLibrary.AutoLoadAll',\n name: 'Automatically load all model folders',\n tooltip:\n 'If true, all folders will load as soon as you open the model library (this may cause delays while it loads). If false, root level model folders will only load once you click on them.',\n type: 'boolean',\n defaultValue: false\n },\n {\n id: 'Comfy.ModelLibrary.NameFormat',\n name: 'What name to display in the model library tree view',\n tooltip:\n 'Select \"filename\" to render a simplified view of the raw filename (without directory or \".safetensors\" extension) in the model list. Select \"title\" to display the configurable model metadata title.',\n type: 'combo',\n options: ['filename', 'title'],\n defaultValue: 'title'\n },\n {\n id: 'Comfy.Locale',\n name: 'Language',\n type: 'combo',\n options: [\n { value: 'en', text: 'English' },\n { value: 'zh', text: '中文' },\n { value: 'ru', text: 'Русский' },\n { value: 'ja', text: '日本語' },\n { value: 'ko', text: '한국어' },\n { value: 'fr', text: 'Français' }\n ],\n defaultValue: () => navigator.language.split('-')[0] || 'en'\n },\n {\n id: 'Comfy.NodeBadge.NodeSourceBadgeMode',\n category: ['LiteGraph', 'Node', 'NodeSourceBadgeMode'],\n name: 'Node source badge mode',\n type: 'combo',\n options: Object.values(NodeBadgeMode),\n defaultValue: NodeBadgeMode.HideBuiltIn\n },\n {\n id: 'Comfy.NodeBadge.NodeIdBadgeMode',\n category: ['LiteGraph', 'Node', 'NodeIdBadgeMode'],\n name: 'Node ID badge mode',\n type: 'combo',\n options: [NodeBadgeMode.None, NodeBadgeMode.ShowAll],\n defaultValue: NodeBadgeMode.ShowAll\n },\n {\n id: 'Comfy.NodeBadge.NodeLifeCycleBadgeMode',\n category: ['LiteGraph', 'Node', 'NodeLifeCycleBadgeMode'],\n name: 'Node life cycle badge mode',\n type: 'combo',\n options: [NodeBadgeMode.None, NodeBadgeMode.ShowAll],\n defaultValue: NodeBadgeMode.ShowAll\n },\n {\n id: 'Comfy.ConfirmClear',\n category: ['Comfy', 'Workflow', 'ConfirmClear'],\n name: 'Require confirmation when clearing workflow',\n type: 'boolean',\n defaultValue: true\n },\n {\n id: 'Comfy.PromptFilename',\n category: ['Comfy', 'Workflow', 'PromptFilename'],\n name: 'Prompt for filename when saving workflow',\n type: 'boolean',\n defaultValue: true\n },\n /**\n * file format for preview\n *\n * format;quality\n *\n * ex)\n * webp;50 -> webp, quality 50\n * jpeg;80 -> rgb, jpeg, quality 80\n *\n * @type {string}\n */\n {\n id: 'Comfy.PreviewFormat',\n category: ['LiteGraph', 'Node Widget', 'PreviewFormat'],\n name: 'Preview image format',\n tooltip:\n 'When displaying a preview in the image widget, convert it to a lightweight image, e.g. webp, jpeg, webp;50, etc.',\n type: 'text',\n defaultValue: ''\n },\n {\n id: 'Comfy.DisableSliders',\n category: ['LiteGraph', 'Node Widget', 'DisableSliders'],\n name: 'Disable node widget sliders',\n type: 'boolean',\n defaultValue: false\n },\n {\n id: 'Comfy.DisableFloatRounding',\n category: ['LiteGraph', 'Node Widget', 'DisableFloatRounding'],\n name: 'Disable default float widget rounding.',\n tooltip:\n '(requires page reload) Cannot disable round when round is set by the node in the backend.',\n type: 'boolean',\n defaultValue: false\n },\n {\n id: 'Comfy.FloatRoundingPrecision',\n category: ['LiteGraph', 'Node Widget', 'FloatRoundingPrecision'],\n name: 'Float widget rounding decimal places [0 = auto].',\n tooltip: '(requires page reload)',\n type: 'slider',\n attrs: {\n min: 0,\n max: 6,\n step: 1\n },\n defaultValue: 0\n },\n {\n id: 'Comfy.EnableTooltips',\n category: ['LiteGraph', 'Node', 'EnableTooltips'],\n name: 'Enable Tooltips',\n type: 'boolean',\n defaultValue: true\n },\n {\n id: 'Comfy.DevMode',\n name: 'Enable dev mode options (API save, etc.)',\n type: 'boolean',\n defaultValue: false,\n onChange: (value) => {\n const element = document.getElementById('comfy-dev-save-api-button')\n if (element) {\n element.style.display = value ? 'flex' : 'none'\n }\n }\n },\n {\n id: 'Comfy.UseNewMenu',\n category: ['Comfy', 'Menu', 'UseNewMenu'],\n defaultValue: 'Top',\n name: 'Use new menu',\n type: 'combo',\n options: ['Disabled', 'Top', 'Bottom'],\n migrateDeprecatedValue: (value: string) => {\n // Floating is now supported by dragging the docked actionbar off.\n if (value === 'Floating') {\n return 'Top'\n }\n return value\n }\n },\n {\n id: 'Comfy.Workflow.WorkflowTabsPosition',\n name: 'Opened workflows position',\n type: 'combo',\n options: ['Sidebar', 'Topbar'],\n defaultValue: 'Topbar'\n },\n {\n id: 'Comfy.Graph.CanvasMenu',\n category: ['LiteGraph', 'Canvas', 'CanvasMenu'],\n name: 'Show graph canvas menu',\n type: 'boolean',\n defaultValue: true\n },\n {\n id: 'Comfy.QueueButton.BatchCountLimit',\n name: 'Batch count limit',\n tooltip:\n 'The maximum number of tasks added to the queue at one button click',\n type: 'number',\n defaultValue: 100,\n versionAdded: '1.3.5'\n },\n {\n id: 'Comfy.Keybinding.UnsetBindings',\n name: 'Keybindings unset by the user',\n type: 'hidden',\n defaultValue: [] as Keybinding[],\n versionAdded: '1.3.7'\n },\n {\n id: 'Comfy.Keybinding.NewBindings',\n name: 'Keybindings set by the user',\n type: 'hidden',\n defaultValue: [] as Keybinding[],\n versionAdded: '1.3.7'\n },\n {\n id: 'Comfy.Extension.Disabled',\n name: 'Disabled extension names',\n type: 'hidden',\n defaultValue: [] as string[],\n versionAdded: '1.3.11'\n },\n {\n id: 'Comfy.Validation.NodeDefs',\n name: 'Validate node definitions (slow)',\n type: 'boolean',\n tooltip:\n 'Recommended for node developers. This will validate all node definitions on startup.',\n defaultValue: false,\n versionAdded: '1.3.14'\n },\n {\n id: 'Comfy.LinkRenderMode',\n category: ['LiteGraph', 'Graph', 'LinkRenderMode'],\n name: 'Link Render Mode',\n defaultValue: 2,\n type: 'combo',\n options: [\n { value: LiteGraph.STRAIGHT_LINK, text: 'Straight' },\n { value: LiteGraph.LINEAR_LINK, text: 'Linear' },\n { value: LiteGraph.SPLINE_LINK, text: 'Spline' },\n { value: LiteGraph.HIDDEN_LINK, text: 'Hidden' }\n ]\n },\n {\n id: 'Comfy.Node.AutoSnapLinkToSlot',\n category: ['LiteGraph', 'Node', 'AutoSnapLinkToSlot'],\n name: 'Auto snap link to node slot',\n tooltip:\n 'When dragging a link over a node, the link automatically snap to a viable input slot on the node',\n type: 'boolean',\n defaultValue: true,\n versionAdded: '1.3.29'\n },\n {\n id: 'Comfy.Node.SnapHighlightsNode',\n category: ['LiteGraph', 'Node', 'SnapHighlightsNode'],\n name: 'Snap highlights node',\n tooltip:\n 'When dragging a link over a node with viable input slot, highlight the node',\n type: 'boolean',\n defaultValue: true,\n versionAdded: '1.3.29'\n },\n {\n id: 'Comfy.Node.BypassAllLinksOnDelete',\n category: ['LiteGraph', 'Node', 'BypassAllLinksOnDelete'],\n name: 'Keep all links when deleting nodes',\n tooltip:\n 'When deleting a node, attempt to reconnect all of its input and output links (bypassing the deleted node)',\n type: 'boolean',\n defaultValue: true,\n versionAdded: '1.3.40'\n },\n {\n id: 'Comfy.Node.MiddleClickRerouteNode',\n category: ['LiteGraph', 'Node', 'MiddleClickRerouteNode'],\n name: 'Middle-click creates a new Reroute node',\n type: 'boolean',\n defaultValue: true,\n versionAdded: '1.3.42'\n },\n {\n id: 'Comfy.RerouteBeta',\n category: ['LiteGraph', 'RerouteBeta'],\n name: 'Opt-in to the reroute beta test',\n tooltip:\n 'Enables the new native reroutes.\\n\\nReroutes can be added by holding alt and dragging from a link line, or on the link menu.\\n\\nDisabling this option is non-destructive - reroutes are hidden.',\n experimental: true,\n type: 'boolean',\n defaultValue: false,\n versionAdded: '1.3.42'\n },\n {\n id: 'Comfy.Graph.LinkMarkers',\n category: ['LiteGraph', 'Link', 'LinkMarkers'],\n name: 'Link midpoint markers',\n defaultValue: LinkMarkerShape.Circle,\n type: 'combo',\n options: [\n { value: LinkMarkerShape.None, text: 'None' },\n { value: LinkMarkerShape.Circle, text: 'Circle' },\n { value: LinkMarkerShape.Arrow, text: 'Arrow' }\n ],\n versionAdded: '1.3.42'\n },\n {\n id: 'Comfy.DOMClippingEnabled',\n category: ['LiteGraph', 'Node', 'DOMClippingEnabled'],\n name: 'Enable DOM element clipping (enabling may reduce performance)',\n type: 'boolean',\n defaultValue: true\n },\n {\n id: 'Comfy.Graph.CtrlShiftZoom',\n category: ['LiteGraph', 'Canvas', 'CtrlShiftZoom'],\n name: 'Enable fast-zoom shortcut (Ctrl + Shift + Drag)',\n type: 'boolean',\n defaultValue: true,\n versionAdded: '1.4.0'\n },\n {\n id: 'Comfy.Pointer.ClickDrift',\n category: ['LiteGraph', 'Pointer', 'ClickDrift'],\n name: 'Pointer click drift (maximum distance)',\n tooltip:\n 'If the pointer moves more than this distance while holding a button down, it is considered dragging (rather than clicking).\\n\\nHelps prevent objects from being unintentionally nudged if the pointer is moved whilst clicking.',\n experimental: true,\n type: 'slider',\n attrs: {\n min: 0,\n max: 20,\n step: 1\n },\n defaultValue: 6,\n versionAdded: '1.4.3'\n },\n {\n id: 'Comfy.Pointer.ClickBufferTime',\n category: ['LiteGraph', 'Pointer', 'ClickBufferTime'],\n name: 'Pointer click drift delay',\n tooltip:\n 'After pressing a pointer button down, this is the maximum time (in milliseconds) that pointer movement can be ignored for.\\n\\nHelps prevent objects from being unintentionally nudged if the pointer is moved whilst clicking.',\n experimental: true,\n type: 'slider',\n attrs: {\n min: 0,\n max: 1000,\n step: 25\n },\n defaultValue: 150,\n versionAdded: '1.4.3'\n },\n {\n id: 'Comfy.Pointer.DoubleClickTime',\n category: ['LiteGraph', 'Pointer', 'DoubleClickTime'],\n name: 'Double click interval (maximum)',\n tooltip:\n 'The maximum time in milliseconds between the two clicks of a double-click. Increasing this value may assist if double-clicks are sometimes not registered.',\n type: 'slider',\n attrs: {\n min: 100,\n max: 1000,\n step: 50\n },\n defaultValue: 300,\n versionAdded: '1.4.3'\n },\n {\n id: 'Comfy.SnapToGrid.GridSize',\n category: ['LiteGraph', 'Canvas', 'GridSize'],\n name: 'Snap to grid size',\n type: 'slider',\n attrs: {\n min: 1,\n max: 500\n },\n tooltip:\n 'When dragging and resizing nodes while holding shift they will be aligned to the grid, this controls the size of that grid.',\n defaultValue: LiteGraph.CANVAS_GRID_SIZE\n },\n // Keep the 'pysssss.SnapToGrid' setting id so we don't need to migrate setting values.\n // Using a new setting id can cause existing users to lose their existing settings.\n {\n id: 'pysssss.SnapToGrid',\n category: ['LiteGraph', 'Canvas', 'AlwaysSnapToGrid'],\n name: 'Always snap to grid',\n type: 'boolean',\n defaultValue: false,\n versionAdded: '1.3.13'\n },\n {\n id: 'Comfy.Server.ServerConfigValues',\n name: 'Server config values for frontend display',\n tooltip: 'Server config values used for frontend display only',\n type: 'hidden',\n // Mapping from server config id to value.\n defaultValue: {} as Record,\n versionAdded: '1.4.8'\n },\n {\n id: 'Comfy.Server.LaunchArgs',\n name: 'Server launch arguments',\n tooltip:\n 'These are the actual arguments that are passed to the server when it is launched.',\n type: 'hidden',\n defaultValue: {} as Record,\n versionAdded: '1.4.8'\n },\n {\n id: 'Comfy.Queue.MaxHistoryItems',\n name: 'Queue history size',\n tooltip: 'The maximum number of tasks that show in the queue history.',\n type: 'slider',\n attrs: {\n min: 16,\n max: 256,\n step: 16\n },\n defaultValue: 64,\n versionAdded: '1.4.12'\n },\n {\n id: 'LiteGraph.Canvas.MaximumFps',\n name: 'Maxium FPS',\n tooltip:\n 'The maximum frames per second that the canvas is allowed to render. Caps GPU usage at the cost of smoothness. If 0, the screen refresh rate is used. Default: 0',\n type: 'slider',\n attrs: {\n min: 0,\n max: 120\n },\n defaultValue: 0,\n versionAdded: '1.5.1'\n },\n {\n id: 'Comfy.EnableWorkflowViewRestore',\n category: ['Comfy', 'Workflow', 'EnableWorkflowViewRestore'],\n name: 'Save and restore canvas position and zoom level in workflows',\n type: 'boolean',\n defaultValue: true,\n versionModified: '1.5.4'\n },\n {\n id: 'Comfy.Workflow.ConfirmDelete',\n name: 'Show confirmation when deleting workflows',\n type: 'boolean',\n defaultValue: true,\n versionAdded: '1.5.6'\n },\n {\n id: 'Comfy.ColorPalette',\n name: 'The active color palette id',\n type: 'hidden',\n defaultValue: 'dark',\n versionModified: '1.6.7',\n migrateDeprecatedValue(value: string) {\n // Legacy custom palettes were prefixed with 'custom_'\n return value.startsWith('custom_') ? value.replace('custom_', '') : value\n }\n },\n {\n id: 'Comfy.CustomColorPalettes',\n name: 'Custom color palettes',\n type: 'hidden',\n defaultValue: {} as ColorPalettes,\n versionModified: '1.6.7'\n },\n {\n id: 'Comfy.WidgetControlMode',\n category: ['Comfy', 'Node Widget', 'WidgetControlMode'],\n name: 'Widget control mode',\n tooltip:\n 'Controls when widget values are updated (randomize/increment/decrement), either before the prompt is queued or after.',\n type: 'combo',\n defaultValue: 'after',\n options: ['before', 'after'],\n versionModified: '1.6.10'\n }\n]\n","\n\n\n","import BaseStyle from '@primevue/core/base/style';\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-toast {\\n width: \".concat(dt('toast.width'), \";\\n white-space: pre-line;\\n word-break: break-word;\\n}\\n\\n.p-toast-message {\\n margin: 0 0 1rem 0;\\n}\\n\\n.p-toast-message-icon {\\n flex-shrink: 0;\\n font-size: \").concat(dt('toast.icon.size'), \";\\n width: \").concat(dt('toast.icon.size'), \";\\n height: \").concat(dt('toast.icon.size'), \";\\n}\\n\\n.p-toast-message-content {\\n display: flex;\\n align-items: flex-start;\\n padding: \").concat(dt('toast.content.padding'), \";\\n gap: \").concat(dt('toast.content.gap'), \";\\n}\\n\\n.p-toast-message-text {\\n flex: 1 1 auto;\\n display: flex;\\n flex-direction: column;\\n gap: \").concat(dt('toast.text.gap'), \";\\n}\\n\\n.p-toast-summary {\\n font-weight: \").concat(dt('toast.summary.font.weight'), \";\\n font-size: \").concat(dt('toast.summary.font.size'), \";\\n}\\n\\n.p-toast-detail {\\n font-weight: \").concat(dt('toast.detail.font.weight'), \";\\n font-size: \").concat(dt('toast.detail.font.size'), \";\\n}\\n\\n.p-toast-close-button {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n overflow: hidden;\\n position: relative;\\n cursor: pointer;\\n background: transparent;\\n transition: background \").concat(dt('toast.transition.duration'), \", color \").concat(dt('toast.transition.duration'), \", outline-color \").concat(dt('toast.transition.duration'), \", box-shadow \").concat(dt('toast.transition.duration'), \";\\n outline-color: transparent;\\n color: inherit;\\n width: \").concat(dt('toast.close.button.width'), \";\\n height: \").concat(dt('toast.close.button.height'), \";\\n border-radius: \").concat(dt('toast.close.button.border.radius'), \";\\n margin: -25% 0 0 0;\\n right: -25%;\\n padding: 0;\\n border: none;\\n user-select: none;\\n}\\n\\n.p-toast-message-info,\\n.p-toast-message-success,\\n.p-toast-message-warn,\\n.p-toast-message-error,\\n.p-toast-message-secondary,\\n.p-toast-message-contrast {\\n border-width: \").concat(dt('toast.border.width'), \";\\n border-style: solid;\\n backdrop-filter: blur(\").concat(dt('toast.blur'), \");\\n border-radius: \").concat(dt('toast.border.radius'), \";\\n}\\n\\n.p-toast-close-icon {\\n font-size: \").concat(dt('toast.close.icon.size'), \";\\n width: \").concat(dt('toast.close.icon.size'), \";\\n height: \").concat(dt('toast.close.icon.size'), \";\\n}\\n\\n.p-toast-close-button:focus-visible {\\n outline-width: \").concat(dt('focus.ring.width'), \";\\n outline-style: \").concat(dt('focus.ring.style'), \";\\n outline-offset: \").concat(dt('focus.ring.offset'), \";\\n}\\n\\n.p-toast-message-info {\\n background: \").concat(dt('toast.info.background'), \";\\n border-color: \").concat(dt('toast.info.border.color'), \";\\n color: \").concat(dt('toast.info.color'), \";\\n box-shadow: \").concat(dt('toast.info.shadow'), \";\\n}\\n\\n.p-toast-message-info .p-toast-detail {\\n color: \").concat(dt('toast.info.detail.color'), \";\\n}\\n\\n.p-toast-message-info .p-toast-close-button:focus-visible {\\n outline-color: \").concat(dt('toast.info.close.button.focus.ring.color'), \";\\n box-shadow: \").concat(dt('toast.info.close.button.focus.ring.shadow'), \";\\n}\\n\\n.p-toast-message-info .p-toast-close-button:hover {\\n background: \").concat(dt('toast.info.close.button.hover.background'), \";\\n}\\n\\n.p-toast-message-success {\\n background: \").concat(dt('toast.success.background'), \";\\n border-color: \").concat(dt('toast.success.border.color'), \";\\n color: \").concat(dt('toast.success.color'), \";\\n box-shadow: \").concat(dt('toast.success.shadow'), \";\\n}\\n\\n.p-toast-message-success .p-toast-detail {\\n color: \").concat(dt('toast.success.detail.color'), \";\\n}\\n\\n.p-toast-message-success .p-toast-close-button:focus-visible {\\n outline-color: \").concat(dt('toast.success.close.button.focus.ring.color'), \";\\n box-shadow: \").concat(dt('toast.success.close.button.focus.ring.shadow'), \";\\n}\\n\\n.p-toast-message-success .p-toast-close-button:hover {\\n background: \").concat(dt('toast.success.close.button.hover.background'), \";\\n}\\n\\n.p-toast-message-warn {\\n background: \").concat(dt('toast.warn.background'), \";\\n border-color: \").concat(dt('toast.warn.border.color'), \";\\n color: \").concat(dt('toast.warn.color'), \";\\n box-shadow: \").concat(dt('toast.warn.shadow'), \";\\n}\\n\\n.p-toast-message-warn .p-toast-detail {\\n color: \").concat(dt('toast.warn.detail.color'), \";\\n}\\n\\n.p-toast-message-warn .p-toast-close-button:focus-visible {\\n outline-color: \").concat(dt('toast.warn.close.button.focus.ring.color'), \";\\n box-shadow: \").concat(dt('toast.warn.close.button.focus.ring.shadow'), \";\\n}\\n\\n.p-toast-message-warn .p-toast-close-button:hover {\\n background: \").concat(dt('toast.warn.close.button.hover.background'), \";\\n}\\n\\n.p-toast-message-error {\\n background: \").concat(dt('toast.error.background'), \";\\n border-color: \").concat(dt('toast.error.border.color'), \";\\n color: \").concat(dt('toast.error.color'), \";\\n box-shadow: \").concat(dt('toast.error.shadow'), \";\\n}\\n\\n.p-toast-message-error .p-toast-detail {\\n color: \").concat(dt('toast.error.detail.color'), \";\\n}\\n\\n.p-toast-message-error .p-toast-close-button:focus-visible {\\n outline-color: \").concat(dt('toast.error.close.button.focus.ring.color'), \";\\n box-shadow: \").concat(dt('toast.error.close.button.focus.ring.shadow'), \";\\n}\\n\\n.p-toast-message-error .p-toast-close-button:hover {\\n background: \").concat(dt('toast.error.close.button.hover.background'), \";\\n}\\n\\n.p-toast-message-secondary {\\n background: \").concat(dt('toast.secondary.background'), \";\\n border-color: \").concat(dt('toast.secondary.border.color'), \";\\n color: \").concat(dt('toast.secondary.color'), \";\\n box-shadow: \").concat(dt('toast.secondary.shadow'), \";\\n}\\n\\n.p-toast-message-secondary .p-toast-detail {\\n color: \").concat(dt('toast.secondary.detail.color'), \";\\n}\\n\\n.p-toast-message-secondary .p-toast-close-button:focus-visible {\\n outline-color: \").concat(dt('toast.secondary.close.button.focus.ring.color'), \";\\n box-shadow: \").concat(dt('toast.secondary.close.button.focus.ring.shadow'), \";\\n}\\n\\n.p-toast-message-secondary .p-toast-close-button:hover {\\n background: \").concat(dt('toast.secondary.close.button.hover.background'), \";\\n}\\n\\n.p-toast-message-contrast {\\n background: \").concat(dt('toast.contrast.background'), \";\\n border-color: \").concat(dt('toast.contrast.border.color'), \";\\n color: \").concat(dt('toast.contrast.color'), \";\\n box-shadow: \").concat(dt('toast.contrast.shadow'), \";\\n}\\n\\n.p-toast-message-contrast .p-toast-detail {\\n color: \").concat(dt('toast.contrast.detail.color'), \";\\n}\\n\\n.p-toast-message-contrast .p-toast-close-button:focus-visible {\\n outline-color: \").concat(dt('toast.contrast.close.button.focus.ring.color'), \";\\n box-shadow: \").concat(dt('toast.contrast.close.button.focus.ring.shadow'), \";\\n}\\n\\n.p-toast-message-contrast .p-toast-close-button:hover {\\n background: \").concat(dt('toast.contrast.close.button.hover.background'), \";\\n}\\n\\n.p-toast-top-center {\\n transform: translateX(-50%);\\n}\\n\\n.p-toast-bottom-center {\\n transform: translateX(-50%);\\n}\\n\\n.p-toast-center {\\n min-width: 20vw;\\n transform: translate(-50%, -50%);\\n}\\n\\n.p-toast-message-enter-from {\\n opacity: 0;\\n transform: translateY(50%);\\n}\\n\\n.p-toast-message-leave-from {\\n max-height: 1000px;\\n}\\n\\n.p-toast .p-toast-message.p-toast-message-leave-to {\\n max-height: 0;\\n opacity: 0;\\n margin-bottom: 0;\\n overflow: hidden;\\n}\\n\\n.p-toast-message-enter-active {\\n transition: transform 0.3s, opacity 0.3s;\\n}\\n\\n.p-toast-message-leave-active {\\n transition: max-height 0.45s cubic-bezier(0, 1, 0, 1), opacity 0.3s, margin-bottom 0.3s;\\n}\\n\");\n};\n\n// Position\nvar inlineStyles = {\n root: function root(_ref2) {\n var position = _ref2.position;\n return {\n position: 'fixed',\n top: position === 'top-right' || position === 'top-left' || position === 'top-center' ? '20px' : position === 'center' ? '50%' : null,\n right: (position === 'top-right' || position === 'bottom-right') && '20px',\n bottom: (position === 'bottom-left' || position === 'bottom-right' || position === 'bottom-center') && '20px',\n left: position === 'top-left' || position === 'bottom-left' ? '20px' : position === 'center' || position === 'top-center' || position === 'bottom-center' ? '50%' : null\n };\n }\n};\nvar classes = {\n root: function root(_ref3) {\n var props = _ref3.props;\n return ['p-toast p-component p-toast-' + props.position];\n },\n message: function message(_ref4) {\n var props = _ref4.props;\n return ['p-toast-message', {\n 'p-toast-message-info': props.message.severity === 'info' || props.message.severity === undefined,\n 'p-toast-message-warn': props.message.severity === 'warn',\n 'p-toast-message-error': props.message.severity === 'error',\n 'p-toast-message-success': props.message.severity === 'success',\n 'p-toast-message-secondary': props.message.severity === 'secondary',\n 'p-toast-message-contrast': props.message.severity === 'contrast'\n }];\n },\n messageContent: 'p-toast-message-content',\n messageIcon: function messageIcon(_ref5) {\n var props = _ref5.props;\n return ['p-toast-message-icon', _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, props.infoIcon, props.message.severity === 'info'), props.warnIcon, props.message.severity === 'warn'), props.errorIcon, props.message.severity === 'error'), props.successIcon, props.message.severity === 'success')];\n },\n messageText: 'p-toast-message-text',\n summary: 'p-toast-summary',\n detail: 'p-toast-detail',\n closeButton: 'p-toast-close-button',\n closeIcon: 'p-toast-close-icon'\n};\nvar ToastStyle = BaseStyle.extend({\n name: 'toast',\n theme: theme,\n classes: classes,\n inlineStyles: inlineStyles\n});\n\nexport { ToastStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { setAttribute } from '@primeuix/utils/dom';\nimport { isEmpty } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { UniqueComponentId } from '@primevue/core/utils';\nimport Portal from 'primevue/portal';\nimport ToastEventBus from 'primevue/toasteventbus';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport ToastStyle from 'primevue/toast/style';\nimport CheckIcon from '@primevue/icons/check';\nimport ExclamationTriangleIcon from '@primevue/icons/exclamationtriangle';\nimport InfoCircleIcon from '@primevue/icons/infocircle';\nimport TimesIcon from '@primevue/icons/times';\nimport TimesCircleIcon from '@primevue/icons/timescircle';\nimport Ripple from 'primevue/ripple';\nimport { resolveDirective, openBlock, createElementBlock, mergeProps, createBlock, resolveDynamicComponent, Fragment, createElementVNode, toDisplayString, normalizeProps, withDirectives, createCommentVNode, resolveComponent, withCtx, createVNode, TransitionGroup, renderList } from 'vue';\n\nvar script$2 = {\n name: 'BaseToast',\n \"extends\": BaseComponent,\n props: {\n group: {\n type: String,\n \"default\": null\n },\n position: {\n type: String,\n \"default\": 'top-right'\n },\n autoZIndex: {\n type: Boolean,\n \"default\": true\n },\n baseZIndex: {\n type: Number,\n \"default\": 0\n },\n breakpoints: {\n type: Object,\n \"default\": null\n },\n closeIcon: {\n type: String,\n \"default\": undefined\n },\n infoIcon: {\n type: String,\n \"default\": undefined\n },\n warnIcon: {\n type: String,\n \"default\": undefined\n },\n errorIcon: {\n type: String,\n \"default\": undefined\n },\n successIcon: {\n type: String,\n \"default\": undefined\n },\n closeButtonProps: {\n type: null,\n \"default\": null\n }\n },\n style: ToastStyle,\n provide: function provide() {\n return {\n $pcToast: this,\n $parentInstance: this\n };\n }\n};\n\nvar script$1 = {\n name: 'ToastMessage',\n hostName: 'Toast',\n \"extends\": BaseComponent,\n emits: ['close'],\n closeTimeout: null,\n props: {\n message: {\n type: null,\n \"default\": null\n },\n templates: {\n type: Object,\n \"default\": null\n },\n closeIcon: {\n type: String,\n \"default\": null\n },\n infoIcon: {\n type: String,\n \"default\": null\n },\n warnIcon: {\n type: String,\n \"default\": null\n },\n errorIcon: {\n type: String,\n \"default\": null\n },\n successIcon: {\n type: String,\n \"default\": null\n },\n closeButtonProps: {\n type: null,\n \"default\": null\n }\n },\n mounted: function mounted() {\n var _this = this;\n if (this.message.life) {\n this.closeTimeout = setTimeout(function () {\n _this.close({\n message: _this.message,\n type: 'life-end'\n });\n }, this.message.life);\n }\n },\n beforeUnmount: function beforeUnmount() {\n this.clearCloseTimeout();\n },\n methods: {\n close: function close(params) {\n this.$emit('close', params);\n },\n onCloseClick: function onCloseClick() {\n this.clearCloseTimeout();\n this.close({\n message: this.message,\n type: 'close'\n });\n },\n clearCloseTimeout: function clearCloseTimeout() {\n if (this.closeTimeout) {\n clearTimeout(this.closeTimeout);\n this.closeTimeout = null;\n }\n }\n },\n computed: {\n iconComponent: function iconComponent() {\n return {\n info: !this.infoIcon && InfoCircleIcon,\n success: !this.successIcon && CheckIcon,\n warn: !this.warnIcon && ExclamationTriangleIcon,\n error: !this.errorIcon && TimesCircleIcon\n }[this.message.severity];\n },\n closeAriaLabel: function closeAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.close : undefined;\n }\n },\n components: {\n TimesIcon: TimesIcon,\n InfoCircleIcon: InfoCircleIcon,\n CheckIcon: CheckIcon,\n ExclamationTriangleIcon: ExclamationTriangleIcon,\n TimesCircleIcon: TimesCircleIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n\nfunction _typeof$1(o) { \"@babel/helpers - typeof\"; return _typeof$1 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof$1(o); }\nfunction ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty$1(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty$1(e, r, t) { return (r = _toPropertyKey$1(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey$1(t) { var i = _toPrimitive$1(t, \"string\"); return \"symbol\" == _typeof$1(i) ? i : i + \"\"; }\nfunction _toPrimitive$1(t, r) { if (\"object\" != _typeof$1(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof$1(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar _hoisted_1 = [\"aria-label\"];\nfunction render$1(_ctx, _cache, $props, $setup, $data, $options) {\n var _directive_ripple = resolveDirective(\"ripple\");\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": [_ctx.cx('message'), $props.message.styleClass],\n role: \"alert\",\n \"aria-live\": \"assertive\",\n \"aria-atomic\": \"true\"\n }, _ctx.ptm('message')), [$props.templates.container ? (openBlock(), createBlock(resolveDynamicComponent($props.templates.container), {\n key: 0,\n message: $props.message,\n closeCallback: $options.onCloseClick\n }, null, 8, [\"message\", \"closeCallback\"])) : (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 1,\n \"class\": [_ctx.cx('messageContent'), $props.message.contentStyleClass]\n }, _ctx.ptm('messageContent')), [!$props.templates.message ? (openBlock(), createElementBlock(Fragment, {\n key: 0\n }, [(openBlock(), createBlock(resolveDynamicComponent($props.templates.messageicon ? $props.templates.messageicon : $props.templates.icon ? $props.templates.icon : $options.iconComponent && $options.iconComponent.name ? $options.iconComponent : 'span'), mergeProps({\n \"class\": _ctx.cx('messageIcon')\n }, _ctx.ptm('messageIcon')), null, 16, [\"class\"])), createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('messageText')\n }, _ctx.ptm('messageText')), [createElementVNode(\"span\", mergeProps({\n \"class\": _ctx.cx('summary')\n }, _ctx.ptm('summary')), toDisplayString($props.message.summary), 17), createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('detail')\n }, _ctx.ptm('detail')), toDisplayString($props.message.detail), 17)], 16)], 64)) : (openBlock(), createBlock(resolveDynamicComponent($props.templates.message), {\n key: 1,\n message: $props.message\n }, null, 8, [\"message\"])), $props.message.closable !== false ? (openBlock(), createElementBlock(\"div\", normalizeProps(mergeProps({\n key: 2\n }, _ctx.ptm('buttonContainer'))), [withDirectives((openBlock(), createElementBlock(\"button\", mergeProps({\n \"class\": _ctx.cx('closeButton'),\n type: \"button\",\n \"aria-label\": $options.closeAriaLabel,\n onClick: _cache[0] || (_cache[0] = function () {\n return $options.onCloseClick && $options.onCloseClick.apply($options, arguments);\n }),\n autofocus: \"\"\n }, _objectSpread$1(_objectSpread$1({}, $props.closeButtonProps), _ctx.ptm('closeButton'))), [(openBlock(), createBlock(resolveDynamicComponent($props.templates.closeicon || 'TimesIcon'), mergeProps({\n \"class\": [_ctx.cx('closeIcon'), $props.closeIcon]\n }, _ctx.ptm('closeIcon')), null, 16, [\"class\"]))], 16, _hoisted_1)), [[_directive_ripple]])], 16)) : createCommentVNode(\"\", true)], 16))], 16);\n}\n\nscript$1.render = render$1;\n\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nvar messageIdx = 0;\nvar script = {\n name: 'Toast',\n \"extends\": script$2,\n inheritAttrs: false,\n emits: ['close', 'life-end'],\n data: function data() {\n return {\n messages: []\n };\n },\n styleElement: null,\n mounted: function mounted() {\n ToastEventBus.on('add', this.onAdd);\n ToastEventBus.on('remove', this.onRemove);\n ToastEventBus.on('remove-group', this.onRemoveGroup);\n ToastEventBus.on('remove-all-groups', this.onRemoveAllGroups);\n if (this.breakpoints) {\n this.createStyle();\n }\n },\n beforeUnmount: function beforeUnmount() {\n this.destroyStyle();\n if (this.$refs.container && this.autoZIndex) {\n ZIndex.clear(this.$refs.container);\n }\n ToastEventBus.off('add', this.onAdd);\n ToastEventBus.off('remove', this.onRemove);\n ToastEventBus.off('remove-group', this.onRemoveGroup);\n ToastEventBus.off('remove-all-groups', this.onRemoveAllGroups);\n },\n methods: {\n add: function add(message) {\n if (message.id == null) {\n message.id = messageIdx++;\n }\n this.messages = [].concat(_toConsumableArray(this.messages), [message]);\n },\n remove: function remove(params) {\n var index = this.messages.findIndex(function (m) {\n return m.id === params.message.id;\n });\n if (index !== -1) {\n this.messages.splice(index, 1);\n this.$emit(params.type, {\n message: params.message\n });\n }\n },\n onAdd: function onAdd(message) {\n if (this.group == message.group) {\n this.add(message);\n }\n },\n onRemove: function onRemove(message) {\n this.remove({\n message: message,\n type: 'close'\n });\n },\n onRemoveGroup: function onRemoveGroup(group) {\n if (this.group === group) {\n this.messages = [];\n }\n },\n onRemoveAllGroups: function onRemoveAllGroups() {\n this.messages = [];\n },\n onEnter: function onEnter() {\n this.$refs.container.setAttribute(this.attributeSelector, '');\n if (this.autoZIndex) {\n ZIndex.set('modal', this.$refs.container, this.baseZIndex || this.$primevue.config.zIndex.modal);\n }\n },\n onLeave: function onLeave() {\n var _this = this;\n if (this.$refs.container && this.autoZIndex && isEmpty(this.messages)) {\n setTimeout(function () {\n ZIndex.clear(_this.$refs.container);\n }, 200);\n }\n },\n createStyle: function createStyle() {\n if (!this.styleElement && !this.isUnstyled) {\n var _this$$primevue;\n this.styleElement = document.createElement('style');\n this.styleElement.type = 'text/css';\n setAttribute(this.styleElement, 'nonce', (_this$$primevue = this.$primevue) === null || _this$$primevue === void 0 || (_this$$primevue = _this$$primevue.config) === null || _this$$primevue === void 0 || (_this$$primevue = _this$$primevue.csp) === null || _this$$primevue === void 0 ? void 0 : _this$$primevue.nonce);\n document.head.appendChild(this.styleElement);\n var innerHTML = '';\n for (var breakpoint in this.breakpoints) {\n var breakpointStyle = '';\n for (var styleProp in this.breakpoints[breakpoint]) {\n breakpointStyle += styleProp + ':' + this.breakpoints[breakpoint][styleProp] + '!important;';\n }\n innerHTML += \"\\n @media screen and (max-width: \".concat(breakpoint, \") {\\n .p-toast[\").concat(this.attributeSelector, \"] {\\n \").concat(breakpointStyle, \"\\n }\\n }\\n \");\n }\n this.styleElement.innerHTML = innerHTML;\n }\n },\n destroyStyle: function destroyStyle() {\n if (this.styleElement) {\n document.head.removeChild(this.styleElement);\n this.styleElement = null;\n }\n }\n },\n computed: {\n attributeSelector: function attributeSelector() {\n return UniqueComponentId();\n }\n },\n components: {\n ToastMessage: script$1,\n Portal: Portal\n }\n};\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_ToastMessage = resolveComponent(\"ToastMessage\");\n var _component_Portal = resolveComponent(\"Portal\");\n return openBlock(), createBlock(_component_Portal, null, {\n \"default\": withCtx(function () {\n return [createElementVNode(\"div\", mergeProps({\n ref: \"container\",\n \"class\": _ctx.cx('root'),\n style: _ctx.sx('root', true, {\n position: _ctx.position\n })\n }, _ctx.ptmi('root')), [createVNode(TransitionGroup, mergeProps({\n name: \"p-toast-message\",\n tag: \"div\",\n onEnter: $options.onEnter,\n onLeave: $options.onLeave\n }, _objectSpread({}, _ctx.ptm('transition'))), {\n \"default\": withCtx(function () {\n return [(openBlock(true), createElementBlock(Fragment, null, renderList($data.messages, function (msg) {\n return openBlock(), createBlock(_component_ToastMessage, {\n key: msg.id,\n message: msg,\n templates: _ctx.$slots,\n closeIcon: _ctx.closeIcon,\n infoIcon: _ctx.infoIcon,\n warnIcon: _ctx.warnIcon,\n errorIcon: _ctx.errorIcon,\n successIcon: _ctx.successIcon,\n closeButtonProps: _ctx.closeButtonProps,\n unstyled: _ctx.unstyled,\n onClose: _cache[0] || (_cache[0] = function ($event) {\n return $options.remove($event);\n }),\n pt: _ctx.pt\n }, null, 8, [\"message\", \"templates\", \"closeIcon\", \"infoIcon\", \"warnIcon\", \"errorIcon\", \"successIcon\", \"closeButtonProps\", \"unstyled\", \"pt\"]);\n }), 128))];\n }),\n _: 1\n }, 16, [\"onEnter\", \"onLeave\"])], 16)];\n }),\n _: 1\n });\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-tieredmenu {\\n background: \".concat(dt('tieredmenu.background'), \";\\n color: \").concat(dt('tieredmenu.color'), \";\\n border: 1px solid \").concat(dt('tieredmenu.border.color'), \";\\n border-radius: \").concat(dt('tieredmenu.border.radius'), \";\\n min-width: 12.5rem;\\n}\\n\\n.p-tieredmenu-root-list,\\n.p-tieredmenu-submenu {\\n margin: 0;\\n padding: \").concat(dt('tieredmenu.list.padding'), \";\\n list-style: none;\\n outline: 0 none;\\n display: flex;\\n flex-direction: column;\\n gap: \").concat(dt('tieredmenu.list.gap'), \";\\n}\\n\\n.p-tieredmenu-submenu {\\n position: absolute;\\n min-width: 100%;\\n z-index: 1;\\n background: \").concat(dt('tieredmenu.background'), \";\\n color: \").concat(dt('tieredmenu.color'), \";\\n border: 1px solid \").concat(dt('tieredmenu.border.color'), \";\\n border-radius: \").concat(dt('tieredmenu.border.radius'), \";\\n box-shadow: \").concat(dt('tieredmenu.shadow'), \";\\n}\\n\\n.p-tieredmenu-item {\\n position: relative;\\n}\\n\\n.p-tieredmenu-item-content {\\n transition: background \").concat(dt('tieredmenu.transition.duration'), \", color \").concat(dt('tieredmenu.transition.duration'), \";\\n border-radius: \").concat(dt('tieredmenu.item.border.radius'), \";\\n color: \").concat(dt('tieredmenu.item.color'), \";\\n}\\n\\n.p-tieredmenu-item-link {\\n cursor: pointer;\\n display: flex;\\n align-items: center;\\n text-decoration: none;\\n overflow: hidden;\\n position: relative;\\n color: inherit;\\n padding: \").concat(dt('tieredmenu.item.padding'), \";\\n gap: \").concat(dt('tieredmenu.item.gap'), \";\\n user-select: none;\\n outline: 0 none;\\n}\\n\\n.p-tieredmenu-item-label {\\n line-height: 1;\\n}\\n\\n.p-tieredmenu-item-icon {\\n color: \").concat(dt('tieredmenu.item.icon.color'), \";\\n}\\n\\n.p-tieredmenu-submenu-icon {\\n color: \").concat(dt('tieredmenu.submenu.icon.color'), \";\\n margin-left: auto;\\n font-size: \").concat(dt('tieredmenu.submenu.icon.size'), \";\\n width: \").concat(dt('tieredmenu.submenu.icon.size'), \";\\n height: \").concat(dt('tieredmenu.submenu.icon.size'), \";\\n}\\n\\n.p-tieredmenu-item.p-focus > .p-tieredmenu-item-content {\\n color: \").concat(dt('tieredmenu.item.focus.color'), \";\\n background: \").concat(dt('tieredmenu.item.focus.background'), \";\\n}\\n\\n.p-tieredmenu-item.p-focus > .p-tieredmenu-item-content .p-tieredmenu-item-icon {\\n color: \").concat(dt('tieredmenu.item.icon.focus.color'), \";\\n}\\n\\n.p-tieredmenu-item.p-focus > .p-tieredmenu-item-content .p-tieredmenu-submenu-icon {\\n color: \").concat(dt('tieredmenu.submenu.icon.focus.color'), \";\\n}\\n\\n.p-tieredmenu-item:not(.p-disabled) > .p-tieredmenu-item-content:hover {\\n color: \").concat(dt('tieredmenu.item.focus.color'), \";\\n background: \").concat(dt('tieredmenu.item.focus.background'), \";\\n}\\n\\n.p-tieredmenu-item:not(.p-disabled) > .p-tieredmenu-item-content:hover .p-tieredmenu-item-icon {\\n color: \").concat(dt('tieredmenu.item.icon.focus.color'), \";\\n}\\n\\n.p-tieredmenu-item:not(.p-disabled) > .p-tieredmenu-item-content:hover .p-tieredmenu-submenu-icon {\\n color: \").concat(dt('tieredmenu.submenu.icon.focus.color'), \";\\n}\\n\\n.p-tieredmenu-item-active > .p-tieredmenu-item-content {\\n color: \").concat(dt('tieredmenu.item.active.color'), \";\\n background: \").concat(dt('tieredmenu.item.active.background'), \";\\n}\\n\\n.p-tieredmenu-item-active > .p-tieredmenu-item-content .p-tieredmenu-item-icon {\\n color: \").concat(dt('tieredmenu.item.icon.active.color'), \";\\n}\\n\\n.p-tieredmenu-item-active > .p-tieredmenu-item-content .p-tieredmenu-submenu-icon {\\n color: \").concat(dt('tieredmenu.submenu.icon.active.color'), \";\\n}\\n\\n.p-tieredmenu-separator {\\n border-top: 1px solid \").concat(dt('tieredmenu.separator.border.color'), \";\\n}\\n\\n.p-tieredmenu-overlay {\\n box-shadow: \").concat(dt('tieredmenu.shadow'), \";\\n}\\n\\n.p-tieredmenu-enter-from,\\n.p-tieredmenu-leave-active {\\n opacity: 0;\\n}\\n\\n.p-tieredmenu-enter-active {\\n transition: opacity 250ms;\\n}\\n\");\n};\nvar inlineStyles = {\n submenu: function submenu(_ref2) {\n var instance = _ref2.instance,\n processedItem = _ref2.processedItem;\n return {\n display: instance.isItemActive(processedItem) ? 'flex' : 'none'\n };\n }\n};\nvar classes = {\n root: function root(_ref3) {\n _ref3.instance;\n var props = _ref3.props;\n return ['p-tieredmenu p-component', {\n 'p-tieredmenu-overlay': props.popup\n }];\n },\n start: 'p-tieredmenu-start',\n rootList: 'p-tieredmenu-root-list',\n item: function item(_ref4) {\n var instance = _ref4.instance,\n processedItem = _ref4.processedItem;\n return ['p-tieredmenu-item', {\n 'p-tieredmenu-item-active': instance.isItemActive(processedItem),\n 'p-focus': instance.isItemFocused(processedItem),\n 'p-disabled': instance.isItemDisabled(processedItem)\n }];\n },\n itemContent: 'p-tieredmenu-item-content',\n itemLink: 'p-tieredmenu-item-link',\n itemIcon: 'p-tieredmenu-item-icon',\n itemLabel: 'p-tieredmenu-item-label',\n submenuIcon: 'p-tieredmenu-submenu-icon',\n submenu: 'p-tieredmenu-submenu',\n separator: 'p-tieredmenu-separator',\n end: 'p-tieredmenu-end'\n};\nvar TieredMenuStyle = BaseStyle.extend({\n name: 'tieredmenu',\n theme: theme,\n classes: classes,\n inlineStyles: inlineStyles\n});\n\nexport { TieredMenuStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { UniqueComponentId, ConnectedOverlayScrollHandler } from '@primevue/core/utils';\nimport { nestedPosition, focus, findSingle, addStyle, absolutePosition, getOuterWidth, isTouchDevice } from '@primeuix/utils/dom';\nimport { resolve, isNotEmpty, isPrintableCharacter, isEmpty, findLastIndex } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport TieredMenuStyle from 'primevue/tieredmenu/style';\nimport AngleRightIcon from '@primevue/icons/angleright';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps, resolveComponent, resolveDirective, openBlock, createBlock, Transition, withCtx, createElementBlock, Fragment, renderList, createElementVNode, withDirectives, resolveDynamicComponent, normalizeClass, createCommentVNode, toDisplayString, normalizeStyle, createVNode, renderSlot } from 'vue';\n\nvar script$2 = {\n name: 'BaseTieredMenu',\n \"extends\": BaseComponent,\n props: {\n popup: {\n type: Boolean,\n \"default\": false\n },\n model: {\n type: Array,\n \"default\": null\n },\n appendTo: {\n type: [String, Object],\n \"default\": 'body'\n },\n autoZIndex: {\n type: Boolean,\n \"default\": true\n },\n baseZIndex: {\n type: Number,\n \"default\": 0\n },\n disabled: {\n type: Boolean,\n \"default\": false\n },\n tabindex: {\n type: Number,\n \"default\": 0\n },\n ariaLabelledby: {\n type: String,\n \"default\": null\n },\n ariaLabel: {\n type: String,\n \"default\": null\n }\n },\n style: TieredMenuStyle,\n provide: function provide() {\n return {\n $pcTieredMenu: this,\n $parentInstance: this\n };\n }\n};\n\nvar script$1 = {\n name: 'TieredMenuSub',\n hostName: 'TieredMenu',\n \"extends\": BaseComponent,\n emits: ['item-click', 'item-mouseenter', 'item-mousemove'],\n container: null,\n props: {\n menuId: {\n type: String,\n \"default\": null\n },\n focusedItemId: {\n type: String,\n \"default\": null\n },\n items: {\n type: Array,\n \"default\": null\n },\n visible: {\n type: Boolean,\n \"default\": false\n },\n level: {\n type: Number,\n \"default\": 0\n },\n templates: {\n type: Object,\n \"default\": null\n },\n activeItemPath: {\n type: Object,\n \"default\": null\n },\n tabindex: {\n type: Number,\n \"default\": 0\n }\n },\n methods: {\n getItemId: function getItemId(processedItem) {\n return \"\".concat(this.menuId, \"_\").concat(processedItem.key);\n },\n getItemKey: function getItemKey(processedItem) {\n return this.getItemId(processedItem);\n },\n getItemProp: function getItemProp(processedItem, name, params) {\n return processedItem && processedItem.item ? resolve(processedItem.item[name], params) : undefined;\n },\n getItemLabel: function getItemLabel(processedItem) {\n return this.getItemProp(processedItem, 'label');\n },\n getItemLabelId: function getItemLabelId(processedItem) {\n return \"\".concat(this.menuId, \"_\").concat(processedItem.key, \"_label\");\n },\n getPTOptions: function getPTOptions(processedItem, index, key) {\n return this.ptm(key, {\n context: {\n item: processedItem.item,\n index: index,\n active: this.isItemActive(processedItem),\n focused: this.isItemFocused(processedItem),\n disabled: this.isItemDisabled(processedItem)\n }\n });\n },\n isItemActive: function isItemActive(processedItem) {\n return this.activeItemPath.some(function (path) {\n return path.key === processedItem.key;\n });\n },\n isItemVisible: function isItemVisible(processedItem) {\n return this.getItemProp(processedItem, 'visible') !== false;\n },\n isItemDisabled: function isItemDisabled(processedItem) {\n return this.getItemProp(processedItem, 'disabled');\n },\n isItemFocused: function isItemFocused(processedItem) {\n return this.focusedItemId === this.getItemId(processedItem);\n },\n isItemGroup: function isItemGroup(processedItem) {\n return isNotEmpty(processedItem.items);\n },\n onEnter: function onEnter() {\n nestedPosition(this.container, this.level);\n },\n onItemClick: function onItemClick(event, processedItem) {\n this.getItemProp(processedItem, 'command', {\n originalEvent: event,\n item: processedItem.item\n });\n this.$emit('item-click', {\n originalEvent: event,\n processedItem: processedItem,\n isFocus: true\n });\n },\n onItemMouseEnter: function onItemMouseEnter(event, processedItem) {\n this.$emit('item-mouseenter', {\n originalEvent: event,\n processedItem: processedItem\n });\n },\n onItemMouseMove: function onItemMouseMove(event, processedItem) {\n this.$emit('item-mousemove', {\n originalEvent: event,\n processedItem: processedItem\n });\n },\n getAriaSetSize: function getAriaSetSize() {\n var _this = this;\n return this.items.filter(function (processedItem) {\n return _this.isItemVisible(processedItem) && !_this.getItemProp(processedItem, 'separator');\n }).length;\n },\n getAriaPosInset: function getAriaPosInset(index) {\n var _this2 = this;\n return index - this.items.slice(0, index).filter(function (processedItem) {\n return _this2.isItemVisible(processedItem) && _this2.getItemProp(processedItem, 'separator');\n }).length + 1;\n },\n getMenuItemProps: function getMenuItemProps(processedItem, index) {\n return {\n action: mergeProps({\n \"class\": this.cx('itemLink'),\n tabindex: -1,\n 'aria-hidden': true\n }, this.getPTOptions(processedItem, index, 'itemLink')),\n icon: mergeProps({\n \"class\": [this.cx('itemIcon'), this.getItemProp(processedItem, 'icon')]\n }, this.getPTOptions(processedItem, index, 'itemIcon')),\n label: mergeProps({\n \"class\": this.cx('itemLabel')\n }, this.getPTOptions(processedItem, index, 'itemLabel')),\n submenuicon: mergeProps({\n \"class\": this.cx('submenuIcon')\n }, this.getPTOptions(processedItem, index, 'submenuIcon'))\n };\n },\n containerRef: function containerRef(el) {\n this.container = el;\n }\n },\n components: {\n AngleRightIcon: AngleRightIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n\nvar _hoisted_1$1 = [\"tabindex\"];\nvar _hoisted_2 = [\"id\", \"aria-label\", \"aria-disabled\", \"aria-expanded\", \"aria-haspopup\", \"aria-level\", \"aria-setsize\", \"aria-posinset\", \"data-p-active\", \"data-p-focused\", \"data-p-disabled\"];\nvar _hoisted_3 = [\"onClick\", \"onMouseenter\", \"onMousemove\"];\nvar _hoisted_4 = [\"href\", \"target\"];\nvar _hoisted_5 = [\"id\"];\nvar _hoisted_6 = [\"id\"];\nfunction render$1(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_AngleRightIcon = resolveComponent(\"AngleRightIcon\");\n var _component_TieredMenuSub = resolveComponent(\"TieredMenuSub\", true);\n var _directive_ripple = resolveDirective(\"ripple\");\n return openBlock(), createBlock(Transition, mergeProps({\n name: \"p-tieredmenu\",\n onEnter: $options.onEnter\n }, _ctx.ptm('menu.transition')), {\n \"default\": withCtx(function () {\n return [($props.level === 0 ? true : $props.visible) ? (openBlock(), createElementBlock(\"ul\", mergeProps({\n key: 0,\n ref: $options.containerRef,\n \"class\": $props.level === 0 ? _ctx.cx('rootList') : _ctx.cx('submenu'),\n tabindex: $props.tabindex\n }, $props.level === 0 ? _ctx.ptm('rootList') : _ctx.ptm('submenu')), [(openBlock(true), createElementBlock(Fragment, null, renderList($props.items, function (processedItem, index) {\n return openBlock(), createElementBlock(Fragment, {\n key: $options.getItemKey(processedItem)\n }, [$options.isItemVisible(processedItem) && !$options.getItemProp(processedItem, 'separator') ? (openBlock(), createElementBlock(\"li\", mergeProps({\n key: 0,\n id: $options.getItemId(processedItem),\n style: $options.getItemProp(processedItem, 'style'),\n \"class\": [_ctx.cx('item', {\n processedItem: processedItem\n }), $options.getItemProp(processedItem, 'class')],\n role: \"menuitem\",\n \"aria-label\": $options.getItemLabel(processedItem),\n \"aria-disabled\": $options.isItemDisabled(processedItem) || undefined,\n \"aria-expanded\": $options.isItemGroup(processedItem) ? $options.isItemActive(processedItem) : undefined,\n \"aria-haspopup\": $options.isItemGroup(processedItem) && !$options.getItemProp(processedItem, 'to') ? 'menu' : undefined,\n \"aria-level\": $props.level + 1,\n \"aria-setsize\": $options.getAriaSetSize(),\n \"aria-posinset\": $options.getAriaPosInset(index),\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'item'), {\n \"data-p-active\": $options.isItemActive(processedItem),\n \"data-p-focused\": $options.isItemFocused(processedItem),\n \"data-p-disabled\": $options.isItemDisabled(processedItem)\n }), [createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('itemContent'),\n onClick: function onClick($event) {\n return $options.onItemClick($event, processedItem);\n },\n onMouseenter: function onMouseenter($event) {\n return $options.onItemMouseEnter($event, processedItem);\n },\n onMousemove: function onMousemove($event) {\n return $options.onItemMouseMove($event, processedItem);\n },\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'itemContent')), [!$props.templates.item ? withDirectives((openBlock(), createElementBlock(\"a\", mergeProps({\n key: 0,\n href: $options.getItemProp(processedItem, 'url'),\n \"class\": _ctx.cx('itemLink'),\n target: $options.getItemProp(processedItem, 'target'),\n tabindex: \"-1\",\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'itemLink')), [$props.templates.itemicon ? (openBlock(), createBlock(resolveDynamicComponent($props.templates.itemicon), {\n key: 0,\n item: processedItem.item,\n \"class\": normalizeClass(_ctx.cx('itemIcon'))\n }, null, 8, [\"item\", \"class\"])) : $options.getItemProp(processedItem, 'icon') ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 1,\n \"class\": [_ctx.cx('itemIcon'), $options.getItemProp(processedItem, 'icon')],\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'itemIcon')), null, 16)) : createCommentVNode(\"\", true), createElementVNode(\"span\", mergeProps({\n id: $options.getItemLabelId(processedItem),\n \"class\": _ctx.cx('itemLabel'),\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'itemLabel')), toDisplayString($options.getItemLabel(processedItem)), 17, _hoisted_5), $options.getItemProp(processedItem, 'items') ? (openBlock(), createElementBlock(Fragment, {\n key: 2\n }, [$props.templates.submenuicon ? (openBlock(), createBlock(resolveDynamicComponent($props.templates.submenuicon), mergeProps({\n key: 0,\n \"class\": _ctx.cx('submenuIcon'),\n active: $options.isItemActive(processedItem),\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'submenuIcon')), null, 16, [\"class\", \"active\"])) : (openBlock(), createBlock(_component_AngleRightIcon, mergeProps({\n key: 1,\n \"class\": _ctx.cx('submenuIcon'),\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'submenuIcon')), null, 16, [\"class\"]))], 64)) : createCommentVNode(\"\", true)], 16, _hoisted_4)), [[_directive_ripple]]) : (openBlock(), createBlock(resolveDynamicComponent($props.templates.item), {\n key: 1,\n item: processedItem.item,\n hasSubmenu: $options.getItemProp(processedItem, 'items'),\n label: $options.getItemLabel(processedItem),\n props: $options.getMenuItemProps(processedItem, index)\n }, null, 8, [\"item\", \"hasSubmenu\", \"label\", \"props\"]))], 16, _hoisted_3), $options.isItemVisible(processedItem) && $options.isItemGroup(processedItem) ? (openBlock(), createBlock(_component_TieredMenuSub, {\n key: 0,\n id: $options.getItemId(processedItem) + '_list',\n style: normalizeStyle(_ctx.sx('submenu', true, {\n processedItem: processedItem\n })),\n \"aria-labelledby\": $options.getItemLabelId(processedItem),\n role: \"menu\",\n menuId: $props.menuId,\n focusedItemId: $props.focusedItemId,\n items: processedItem.items,\n templates: $props.templates,\n activeItemPath: $props.activeItemPath,\n level: $props.level + 1,\n visible: $options.isItemActive(processedItem) && $options.isItemGroup(processedItem),\n pt: _ctx.pt,\n unstyled: _ctx.unstyled,\n onItemClick: _cache[0] || (_cache[0] = function ($event) {\n return _ctx.$emit('item-click', $event);\n }),\n onItemMouseenter: _cache[1] || (_cache[1] = function ($event) {\n return _ctx.$emit('item-mouseenter', $event);\n }),\n onItemMousemove: _cache[2] || (_cache[2] = function ($event) {\n return _ctx.$emit('item-mousemove', $event);\n })\n }, null, 8, [\"id\", \"style\", \"aria-labelledby\", \"menuId\", \"focusedItemId\", \"items\", \"templates\", \"activeItemPath\", \"level\", \"visible\", \"pt\", \"unstyled\"])) : createCommentVNode(\"\", true)], 16, _hoisted_2)) : createCommentVNode(\"\", true), $options.isItemVisible(processedItem) && $options.getItemProp(processedItem, 'separator') ? (openBlock(), createElementBlock(\"li\", mergeProps({\n key: 1,\n id: $options.getItemId(processedItem),\n style: $options.getItemProp(processedItem, 'style'),\n \"class\": [_ctx.cx('separator'), $options.getItemProp(processedItem, 'class')],\n role: \"separator\",\n ref_for: true\n }, _ctx.ptm('separator')), null, 16, _hoisted_6)) : createCommentVNode(\"\", true)], 64);\n }), 128))], 16, _hoisted_1$1)) : createCommentVNode(\"\", true)];\n }),\n _: 1\n }, 16, [\"onEnter\"]);\n}\n\nscript$1.render = render$1;\n\nvar script = {\n name: 'TieredMenu',\n \"extends\": script$2,\n inheritAttrs: false,\n emits: ['focus', 'blur', 'before-show', 'before-hide', 'hide', 'show'],\n outsideClickListener: null,\n scrollHandler: null,\n resizeListener: null,\n target: null,\n container: null,\n menubar: null,\n searchTimeout: null,\n searchValue: null,\n data: function data() {\n return {\n id: this.$attrs.id,\n focused: false,\n focusedItemInfo: {\n index: -1,\n level: 0,\n parentKey: ''\n },\n activeItemPath: [],\n visible: !this.popup,\n submenuVisible: false,\n dirty: false\n };\n },\n watch: {\n '$attrs.id': function $attrsId(newValue) {\n this.id = newValue || UniqueComponentId();\n },\n activeItemPath: function activeItemPath(newPath) {\n if (!this.popup) {\n if (isNotEmpty(newPath)) {\n this.bindOutsideClickListener();\n this.bindResizeListener();\n } else {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n }\n }\n }\n },\n mounted: function mounted() {\n this.id = this.id || UniqueComponentId();\n },\n beforeUnmount: function beforeUnmount() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n if (this.container && this.autoZIndex) {\n ZIndex.clear(this.container);\n }\n this.target = null;\n this.container = null;\n },\n methods: {\n getItemProp: function getItemProp(item, name) {\n return item ? resolve(item[name]) : undefined;\n },\n getItemLabel: function getItemLabel(item) {\n return this.getItemProp(item, 'label');\n },\n isItemDisabled: function isItemDisabled(item) {\n return this.getItemProp(item, 'disabled');\n },\n isItemVisible: function isItemVisible(item) {\n return this.getItemProp(item, 'visible') !== false;\n },\n isItemGroup: function isItemGroup(item) {\n return isNotEmpty(this.getItemProp(item, 'items'));\n },\n isItemSeparator: function isItemSeparator(item) {\n return this.getItemProp(item, 'separator');\n },\n getProccessedItemLabel: function getProccessedItemLabel(processedItem) {\n return processedItem ? this.getItemLabel(processedItem.item) : undefined;\n },\n isProccessedItemGroup: function isProccessedItemGroup(processedItem) {\n return processedItem && isNotEmpty(processedItem.items);\n },\n toggle: function toggle(event) {\n this.visible ? this.hide(event, true) : this.show(event);\n },\n show: function show(event, isFocus) {\n if (this.popup) {\n this.$emit('before-show');\n this.visible = true;\n this.target = this.target || event.currentTarget;\n this.relatedTarget = event.relatedTarget || null;\n }\n isFocus && focus(this.menubar);\n },\n hide: function hide(event, isFocus) {\n if (this.popup) {\n this.$emit('before-hide');\n this.visible = false;\n }\n this.activeItemPath = [];\n this.focusedItemInfo = {\n index: -1,\n level: 0,\n parentKey: ''\n };\n isFocus && focus(this.relatedTarget || this.target || this.menubar);\n this.dirty = false;\n },\n onFocus: function onFocus(event) {\n this.focused = true;\n if (!this.popup) {\n this.focusedItemInfo = this.focusedItemInfo.index !== -1 ? this.focusedItemInfo : {\n index: this.findFirstFocusedItemIndex(),\n level: 0,\n parentKey: ''\n };\n }\n this.$emit('focus', event);\n },\n onBlur: function onBlur(event) {\n this.focused = false;\n this.focusedItemInfo = {\n index: -1,\n level: 0,\n parentKey: ''\n };\n this.searchValue = '';\n this.dirty = false;\n this.$emit('blur', event);\n },\n onKeyDown: function onKeyDown(event) {\n if (this.disabled) {\n event.preventDefault();\n return;\n }\n var metaKey = event.metaKey || event.ctrlKey;\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n case 'Home':\n this.onHomeKey(event);\n break;\n case 'End':\n this.onEndKey(event);\n break;\n case 'Space':\n this.onSpaceKey(event);\n break;\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n case 'Escape':\n this.onEscapeKey(event);\n break;\n case 'Tab':\n this.onTabKey(event);\n break;\n case 'PageDown':\n case 'PageUp':\n case 'Backspace':\n case 'ShiftLeft':\n case 'ShiftRight':\n //NOOP\n break;\n default:\n if (!metaKey && isPrintableCharacter(event.key)) {\n this.searchItems(event, event.key);\n }\n break;\n }\n },\n onItemChange: function onItemChange(event) {\n var processedItem = event.processedItem,\n isFocus = event.isFocus;\n if (isEmpty(processedItem)) return;\n var index = processedItem.index,\n key = processedItem.key,\n level = processedItem.level,\n parentKey = processedItem.parentKey,\n items = processedItem.items;\n var grouped = isNotEmpty(items);\n var activeItemPath = this.activeItemPath.filter(function (p) {\n return p.parentKey !== parentKey && p.parentKey !== key;\n });\n if (grouped) {\n activeItemPath.push(processedItem);\n this.submenuVisible = true;\n }\n this.focusedItemInfo = {\n index: index,\n level: level,\n parentKey: parentKey\n };\n this.activeItemPath = activeItemPath;\n grouped && (this.dirty = true);\n isFocus && focus(this.menubar);\n },\n onOverlayClick: function onOverlayClick(event) {\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.target\n });\n },\n onItemClick: function onItemClick(event) {\n var originalEvent = event.originalEvent,\n processedItem = event.processedItem;\n var grouped = this.isProccessedItemGroup(processedItem);\n var root = isEmpty(processedItem.parent);\n var selected = this.isSelected(processedItem);\n if (selected) {\n var index = processedItem.index,\n key = processedItem.key,\n level = processedItem.level,\n parentKey = processedItem.parentKey;\n this.activeItemPath = this.activeItemPath.filter(function (p) {\n return key !== p.key && key.startsWith(p.key);\n });\n this.focusedItemInfo = {\n index: index,\n level: level,\n parentKey: parentKey\n };\n this.dirty = !root;\n focus(this.menubar);\n } else {\n if (grouped) {\n this.onItemChange(event);\n } else {\n var rootProcessedItem = root ? processedItem : this.activeItemPath.find(function (p) {\n return p.parentKey === '';\n });\n this.hide(originalEvent);\n this.changeFocusedItemIndex(originalEvent, rootProcessedItem ? rootProcessedItem.index : -1);\n focus(this.menubar);\n }\n }\n },\n onItemMouseEnter: function onItemMouseEnter(event) {\n if (this.dirty) {\n this.onItemChange(event);\n }\n },\n onItemMouseMove: function onItemMouseMove(event) {\n if (this.focused) {\n this.changeFocusedItemIndex(event, event.processedItem.index);\n }\n },\n onArrowDownKey: function onArrowDownKey(event) {\n var itemIndex = this.focusedItemInfo.index !== -1 ? this.findNextItemIndex(this.focusedItemInfo.index) : this.findFirstFocusedItemIndex();\n this.changeFocusedItemIndex(event, itemIndex);\n event.preventDefault();\n },\n onArrowUpKey: function onArrowUpKey(event) {\n if (event.altKey) {\n if (this.focusedItemInfo.index !== -1) {\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var grouped = this.isProccessedItemGroup(processedItem);\n !grouped && this.onItemChange({\n originalEvent: event,\n processedItem: processedItem\n });\n }\n this.popup && this.hide(event, true);\n event.preventDefault();\n } else {\n var itemIndex = this.focusedItemInfo.index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo.index) : this.findLastFocusedItemIndex();\n this.changeFocusedItemIndex(event, itemIndex);\n event.preventDefault();\n }\n },\n onArrowLeftKey: function onArrowLeftKey(event) {\n var _this = this;\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var parentItem = this.activeItemPath.find(function (p) {\n return p.key === processedItem.parentKey;\n });\n var root = isEmpty(processedItem.parent);\n if (!root) {\n this.focusedItemInfo = {\n index: -1,\n parentKey: parentItem ? parentItem.parentKey : ''\n };\n this.searchValue = '';\n this.onArrowDownKey(event);\n }\n this.activeItemPath = this.activeItemPath.filter(function (p) {\n return p.parentKey !== _this.focusedItemInfo.parentKey;\n });\n event.preventDefault();\n },\n onArrowRightKey: function onArrowRightKey(event) {\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var grouped = this.isProccessedItemGroup(processedItem);\n if (grouped) {\n this.onItemChange({\n originalEvent: event,\n processedItem: processedItem\n });\n this.focusedItemInfo = {\n index: -1,\n parentKey: processedItem.key\n };\n this.searchValue = '';\n this.onArrowDownKey(event);\n }\n event.preventDefault();\n },\n onHomeKey: function onHomeKey(event) {\n this.changeFocusedItemIndex(event, this.findFirstItemIndex());\n event.preventDefault();\n },\n onEndKey: function onEndKey(event) {\n this.changeFocusedItemIndex(event, this.findLastItemIndex());\n event.preventDefault();\n },\n onEnterKey: function onEnterKey(event) {\n if (this.focusedItemInfo.index !== -1) {\n var element = findSingle(this.menubar, \"li[id=\\\"\".concat(\"\".concat(this.focusedItemId), \"\\\"]\"));\n var anchorElement = element && findSingle(element, '[data-pc-section=\"itemlink\"]');\n anchorElement ? anchorElement.click() : element && element.click();\n if (!this.popup) {\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var grouped = this.isProccessedItemGroup(processedItem);\n !grouped && (this.focusedItemInfo.index = this.findFirstFocusedItemIndex());\n }\n }\n event.preventDefault();\n },\n onSpaceKey: function onSpaceKey(event) {\n this.onEnterKey(event);\n },\n onEscapeKey: function onEscapeKey(event) {\n if (this.popup || this.focusedItemInfo.level !== 0) {\n var _focusedItemInfo = this.focusedItemInfo;\n this.hide(event, false);\n this.focusedItemInfo = {\n index: Number(_focusedItemInfo.parentKey.split('_')[0]),\n level: 0,\n parentKey: ''\n };\n this.popup && focus(this.target);\n }\n event.preventDefault();\n },\n onTabKey: function onTabKey(event) {\n if (this.focusedItemInfo.index !== -1) {\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var grouped = this.isProccessedItemGroup(processedItem);\n !grouped && this.onItemChange({\n originalEvent: event,\n processedItem: processedItem\n });\n }\n this.hide();\n },\n onEnter: function onEnter(el) {\n if (this.autoZIndex) {\n ZIndex.set('menu', el, this.baseZIndex + this.$primevue.config.zIndex.menu);\n }\n addStyle(el, {\n position: 'absolute',\n top: '0',\n left: '0'\n });\n this.alignOverlay();\n focus(this.menubar);\n this.scrollInView();\n },\n onAfterEnter: function onAfterEnter() {\n this.bindOutsideClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n this.$emit('show');\n },\n onLeave: function onLeave() {\n this.unbindOutsideClickListener();\n this.unbindScrollListener();\n this.unbindResizeListener();\n this.$emit('hide');\n this.container = null;\n this.dirty = false;\n },\n onAfterLeave: function onAfterLeave(el) {\n if (this.autoZIndex) {\n ZIndex.clear(el);\n }\n },\n alignOverlay: function alignOverlay() {\n absolutePosition(this.container, this.target);\n var targetWidth = getOuterWidth(this.target);\n if (targetWidth > getOuterWidth(this.container)) {\n this.container.style.minWidth = getOuterWidth(this.target) + 'px';\n }\n },\n bindOutsideClickListener: function bindOutsideClickListener() {\n var _this2 = this;\n if (!this.outsideClickListener) {\n this.outsideClickListener = function (event) {\n var isOutsideContainer = _this2.container && !_this2.container.contains(event.target);\n var isOutsideTarget = _this2.popup ? !(_this2.target && (_this2.target === event.target || _this2.target.contains(event.target))) : true;\n if (isOutsideContainer && isOutsideTarget) {\n _this2.hide();\n }\n };\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener: function unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n },\n bindScrollListener: function bindScrollListener() {\n var _this3 = this;\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.target, function (event) {\n _this3.hide(event, true);\n });\n }\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener: function unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener: function bindResizeListener() {\n var _this4 = this;\n if (!this.resizeListener) {\n this.resizeListener = function (event) {\n if (!isTouchDevice()) {\n _this4.hide(event, true);\n }\n };\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener: function unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n isItemMatched: function isItemMatched(processedItem) {\n var _this$getProccessedIt;\n return this.isValidItem(processedItem) && ((_this$getProccessedIt = this.getProccessedItemLabel(processedItem)) === null || _this$getProccessedIt === void 0 ? void 0 : _this$getProccessedIt.toLocaleLowerCase().startsWith(this.searchValue.toLocaleLowerCase()));\n },\n isValidItem: function isValidItem(processedItem) {\n return !!processedItem && !this.isItemDisabled(processedItem.item) && !this.isItemSeparator(processedItem.item) && this.isItemVisible(processedItem.item);\n },\n isValidSelectedItem: function isValidSelectedItem(processedItem) {\n return this.isValidItem(processedItem) && this.isSelected(processedItem);\n },\n isSelected: function isSelected(processedItem) {\n return this.activeItemPath.some(function (p) {\n return p.key === processedItem.key;\n });\n },\n findFirstItemIndex: function findFirstItemIndex() {\n var _this5 = this;\n return this.visibleItems.findIndex(function (processedItem) {\n return _this5.isValidItem(processedItem);\n });\n },\n findLastItemIndex: function findLastItemIndex() {\n var _this6 = this;\n return findLastIndex(this.visibleItems, function (processedItem) {\n return _this6.isValidItem(processedItem);\n });\n },\n findNextItemIndex: function findNextItemIndex(index) {\n var _this7 = this;\n var matchedItemIndex = index < this.visibleItems.length - 1 ? this.visibleItems.slice(index + 1).findIndex(function (processedItem) {\n return _this7.isValidItem(processedItem);\n }) : -1;\n return matchedItemIndex > -1 ? matchedItemIndex + index + 1 : index;\n },\n findPrevItemIndex: function findPrevItemIndex(index) {\n var _this8 = this;\n var matchedItemIndex = index > 0 ? findLastIndex(this.visibleItems.slice(0, index), function (processedItem) {\n return _this8.isValidItem(processedItem);\n }) : -1;\n return matchedItemIndex > -1 ? matchedItemIndex : index;\n },\n findSelectedItemIndex: function findSelectedItemIndex() {\n var _this9 = this;\n return this.visibleItems.findIndex(function (processedItem) {\n return _this9.isValidSelectedItem(processedItem);\n });\n },\n findFirstFocusedItemIndex: function findFirstFocusedItemIndex() {\n var selectedIndex = this.findSelectedItemIndex();\n return selectedIndex < 0 ? this.findFirstItemIndex() : selectedIndex;\n },\n findLastFocusedItemIndex: function findLastFocusedItemIndex() {\n var selectedIndex = this.findSelectedItemIndex();\n return selectedIndex < 0 ? this.findLastItemIndex() : selectedIndex;\n },\n searchItems: function searchItems(event, _char) {\n var _this10 = this;\n this.searchValue = (this.searchValue || '') + _char;\n var itemIndex = -1;\n var matched = false;\n if (this.focusedItemInfo.index !== -1) {\n itemIndex = this.visibleItems.slice(this.focusedItemInfo.index).findIndex(function (processedItem) {\n return _this10.isItemMatched(processedItem);\n });\n itemIndex = itemIndex === -1 ? this.visibleItems.slice(0, this.focusedItemInfo.index).findIndex(function (processedItem) {\n return _this10.isItemMatched(processedItem);\n }) : itemIndex + this.focusedItemInfo.index;\n } else {\n itemIndex = this.visibleItems.findIndex(function (processedItem) {\n return _this10.isItemMatched(processedItem);\n });\n }\n if (itemIndex !== -1) {\n matched = true;\n }\n if (itemIndex === -1 && this.focusedItemInfo.index === -1) {\n itemIndex = this.findFirstFocusedItemIndex();\n }\n if (itemIndex !== -1) {\n this.changeFocusedItemIndex(event, itemIndex);\n }\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n this.searchTimeout = setTimeout(function () {\n _this10.searchValue = '';\n _this10.searchTimeout = null;\n }, 500);\n return matched;\n },\n changeFocusedItemIndex: function changeFocusedItemIndex(event, index) {\n if (this.focusedItemInfo.index !== index) {\n this.focusedItemInfo.index = index;\n this.scrollInView();\n }\n },\n scrollInView: function scrollInView() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1;\n var id = index !== -1 ? \"\".concat(this.id, \"_\").concat(index) : this.focusedItemId;\n var element = findSingle(this.menubar, \"li[id=\\\"\".concat(id, \"\\\"]\"));\n if (element) {\n element.scrollIntoView && element.scrollIntoView({\n block: 'nearest',\n inline: 'start'\n });\n }\n },\n createProcessedItems: function createProcessedItems(items) {\n var _this11 = this;\n var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var parentKey = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';\n var processedItems = [];\n items && items.forEach(function (item, index) {\n var key = (parentKey !== '' ? parentKey + '_' : '') + index;\n var newItem = {\n item: item,\n index: index,\n level: level,\n key: key,\n parent: parent,\n parentKey: parentKey\n };\n newItem['items'] = _this11.createProcessedItems(item.items, level + 1, newItem, key);\n processedItems.push(newItem);\n });\n return processedItems;\n },\n containerRef: function containerRef(el) {\n this.container = el;\n },\n menubarRef: function menubarRef(el) {\n this.menubar = el ? el.$el : undefined;\n }\n },\n computed: {\n processedItems: function processedItems() {\n return this.createProcessedItems(this.model || []);\n },\n visibleItems: function visibleItems() {\n var _this12 = this;\n var processedItem = this.activeItemPath.find(function (p) {\n return p.key === _this12.focusedItemInfo.parentKey;\n });\n return processedItem ? processedItem.items : this.processedItems;\n },\n focusedItemId: function focusedItemId() {\n return this.focusedItemInfo.index !== -1 ? \"\".concat(this.id).concat(isNotEmpty(this.focusedItemInfo.parentKey) ? '_' + this.focusedItemInfo.parentKey : '', \"_\").concat(this.focusedItemInfo.index) : null;\n }\n },\n components: {\n TieredMenuSub: script$1,\n Portal: Portal\n }\n};\n\nvar _hoisted_1 = [\"id\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_TieredMenuSub = resolveComponent(\"TieredMenuSub\");\n var _component_Portal = resolveComponent(\"Portal\");\n return openBlock(), createBlock(_component_Portal, {\n appendTo: _ctx.appendTo,\n disabled: !_ctx.popup\n }, {\n \"default\": withCtx(function () {\n return [createVNode(Transition, mergeProps({\n name: \"p-connected-overlay\",\n onEnter: $options.onEnter,\n onAfterEnter: $options.onAfterEnter,\n onLeave: $options.onLeave,\n onAfterLeave: $options.onAfterLeave\n }, _ctx.ptm('transition')), {\n \"default\": withCtx(function () {\n return [$data.visible ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n ref: $options.containerRef,\n id: $data.id,\n \"class\": _ctx.cx('root'),\n onClick: _cache[0] || (_cache[0] = function () {\n return $options.onOverlayClick && $options.onOverlayClick.apply($options, arguments);\n })\n }, _ctx.ptmi('root')), [_ctx.$slots.start ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('start')\n }, _ctx.ptm('start')), [renderSlot(_ctx.$slots, \"start\")], 16)) : createCommentVNode(\"\", true), createVNode(_component_TieredMenuSub, {\n ref: $options.menubarRef,\n id: $data.id + '_list',\n tabindex: !_ctx.disabled ? _ctx.tabindex : -1,\n role: \"menubar\",\n \"aria-label\": _ctx.ariaLabel,\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-disabled\": _ctx.disabled || undefined,\n \"aria-orientation\": \"vertical\",\n \"aria-activedescendant\": $data.focused ? $options.focusedItemId : undefined,\n menuId: $data.id,\n focusedItemId: $data.focused ? $options.focusedItemId : undefined,\n items: $options.processedItems,\n templates: _ctx.$slots,\n activeItemPath: $data.activeItemPath,\n level: 0,\n visible: $data.submenuVisible,\n pt: _ctx.pt,\n unstyled: _ctx.unstyled,\n onFocus: $options.onFocus,\n onBlur: $options.onBlur,\n onKeydown: $options.onKeyDown,\n onItemClick: $options.onItemClick,\n onItemMouseenter: $options.onItemMouseEnter,\n onItemMousemove: $options.onItemMouseMove\n }, null, 8, [\"id\", \"tabindex\", \"aria-label\", \"aria-labelledby\", \"aria-disabled\", \"aria-activedescendant\", \"menuId\", \"focusedItemId\", \"items\", \"templates\", \"activeItemPath\", \"visible\", \"pt\", \"unstyled\", \"onFocus\", \"onBlur\", \"onKeydown\", \"onItemClick\", \"onItemMouseenter\", \"onItemMousemove\"]), _ctx.$slots.end ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 1,\n \"class\": _ctx.cx('end')\n }, _ctx.ptm('end')), [renderSlot(_ctx.$slots, \"end\")], 16)) : createCommentVNode(\"\", true)], 16, _hoisted_1)) : createCommentVNode(\"\", true)];\n }),\n _: 3\n }, 16, [\"onEnter\", \"onAfterEnter\", \"onLeave\", \"onAfterLeave\"])];\n }),\n _: 3\n }, 8, [\"appendTo\", \"disabled\"]);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-splitbutton {\\n display: inline-flex;\\n position: relative;\\n border-radius: \".concat(dt('splitbutton.border.radius'), \";\\n}\\n\\n.p-splitbutton-button {\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0;\\n border-right: 0 none;\\n}\\n\\n.p-splitbutton-button:focus-visible,\\n.p-splitbutton-dropdown:focus-visible {\\n z-index: 1;\\n}\\n\\n.p-splitbutton-button:not(:disabled):hover,\\n.p-splitbutton-button:not(:disabled):active {\\n border-right: 0 none;\\n}\\n\\n.p-splitbutton-dropdown {\\n border-top-left-radius: 0;\\n border-bottom-left-radius: 0;\\n}\\n\\n.p-splitbutton .p-menu {\\n min-width: 100%;\\n}\\n\\n.p-splitbutton-fluid {\\n display: flex;\\n}\\n\\n.p-splitbutton-rounded .p-splitbutton-dropdown {\\n border-top-right-radius: \").concat(dt('splitbutton.rounded.border.radius'), \";\\n border-bottom-right-radius: \").concat(dt('splitbutton.rounded.border.radius'), \";\\n}\\n\\n.p-splitbutton-rounded .p-splitbutton-button {\\n border-top-left-radius: \").concat(dt('splitbutton.rounded.border.radius'), \";\\n border-bottom-left-radius: \").concat(dt('splitbutton.rounded.border.radius'), \";\\n}\\n\\n.p-splitbutton-raised {\\n box-shadow: \").concat(dt('splitbutton.raised.shadow'), \";\\n}\\n\");\n};\nvar classes = {\n root: function root(_ref2) {\n var instance = _ref2.instance,\n props = _ref2.props;\n return ['p-splitbutton p-component', {\n 'p-splitbutton-raised': props.raised,\n 'p-splitbutton-rounded': props.rounded,\n 'p-splitbutton-fluid': instance.hasFluid\n }];\n },\n pcButton: 'p-splitbutton-button',\n pcDropdown: 'p-splitbutton-dropdown'\n};\nvar SplitButtonStyle = BaseStyle.extend({\n name: 'splitbutton',\n theme: theme,\n classes: classes\n});\n\nexport { SplitButtonStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { isEmpty } from '@primeuix/utils/object';\nimport { UniqueComponentId } from '@primevue/core/utils';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport Button from 'primevue/button';\nimport TieredMenu from 'primevue/tieredmenu';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport SplitButtonStyle from 'primevue/splitbutton/style';\nimport { resolveComponent, openBlock, createElementBlock, mergeProps, createVNode, createSlots, withCtx, renderSlot, normalizeClass, createElementVNode, createBlock, resolveDynamicComponent } from 'vue';\n\nvar script$1 = {\n name: 'BaseSplitButton',\n \"extends\": BaseComponent,\n props: {\n label: {\n type: String,\n \"default\": null\n },\n icon: {\n type: String,\n \"default\": null\n },\n model: {\n type: Array,\n \"default\": null\n },\n autoZIndex: {\n type: Boolean,\n \"default\": true\n },\n baseZIndex: {\n type: Number,\n \"default\": 0\n },\n appendTo: {\n type: [String, Object],\n \"default\": 'body'\n },\n disabled: {\n type: Boolean,\n \"default\": false\n },\n fluid: {\n type: Boolean,\n \"default\": null\n },\n \"class\": {\n type: null,\n \"default\": null\n },\n style: {\n type: null,\n \"default\": null\n },\n buttonProps: {\n type: null,\n \"default\": null\n },\n menuButtonProps: {\n type: null,\n \"default\": null\n },\n menuButtonIcon: {\n type: String,\n \"default\": undefined\n },\n dropdownIcon: {\n type: String,\n \"default\": undefined\n },\n severity: {\n type: String,\n \"default\": null\n },\n raised: {\n type: Boolean,\n \"default\": false\n },\n rounded: {\n type: Boolean,\n \"default\": false\n },\n text: {\n type: Boolean,\n \"default\": false\n },\n outlined: {\n type: Boolean,\n \"default\": false\n },\n size: {\n type: String,\n \"default\": null\n },\n plain: {\n type: Boolean,\n \"default\": false\n }\n },\n style: SplitButtonStyle,\n provide: function provide() {\n return {\n $pcSplitButton: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'SplitButton',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['click'],\n inject: {\n $pcFluid: {\n \"default\": null\n }\n },\n data: function data() {\n return {\n id: this.$attrs.id,\n isExpanded: false\n };\n },\n watch: {\n '$attrs.id': function $attrsId(newValue) {\n this.id = newValue || UniqueComponentId();\n }\n },\n mounted: function mounted() {\n var _this = this;\n this.id = this.id || UniqueComponentId();\n this.$watch('$refs.menu.visible', function (newValue) {\n _this.isExpanded = newValue;\n });\n },\n methods: {\n onDropdownButtonClick: function onDropdownButtonClick(event) {\n if (event) {\n event.preventDefault();\n }\n this.$refs.menu.toggle({\n currentTarget: this.$el,\n relatedTarget: this.$refs.button.$el\n });\n this.isExpanded = this.$refs.menu.visible;\n },\n onDropdownKeydown: function onDropdownKeydown(event) {\n if (event.code === 'ArrowDown' || event.code === 'ArrowUp') {\n this.onDropdownButtonClick();\n event.preventDefault();\n }\n },\n onDefaultButtonClick: function onDefaultButtonClick(event) {\n if (this.isExpanded) {\n this.$refs.menu.hide(event);\n }\n this.$emit('click', event);\n }\n },\n computed: {\n containerClass: function containerClass() {\n return [this.cx('root'), this[\"class\"]];\n },\n hasFluid: function hasFluid() {\n return isEmpty(this.fluid) ? !!this.$pcFluid : this.fluid;\n }\n },\n components: {\n PVSButton: Button,\n PVSMenu: TieredMenu,\n ChevronDownIcon: ChevronDownIcon\n }\n};\n\nvar _hoisted_1 = [\"data-p-severity\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_PVSButton = resolveComponent(\"PVSButton\");\n var _component_PVSMenu = resolveComponent(\"PVSMenu\");\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": $options.containerClass,\n style: _ctx.style\n }, _ctx.ptmi('root'), {\n \"data-p-severity\": _ctx.severity\n }), [createVNode(_component_PVSButton, mergeProps({\n type: \"button\",\n \"class\": _ctx.cx('pcButton'),\n label: _ctx.label,\n disabled: _ctx.disabled,\n severity: _ctx.severity,\n text: _ctx.text,\n icon: _ctx.icon,\n outlined: _ctx.outlined,\n size: _ctx.size,\n fluid: _ctx.fluid,\n \"aria-label\": _ctx.label,\n onClick: $options.onDefaultButtonClick\n }, _ctx.buttonProps, {\n pt: _ctx.ptm('pcButton'),\n unstyled: _ctx.unstyled\n }), createSlots({\n \"default\": withCtx(function () {\n return [renderSlot(_ctx.$slots, \"default\")];\n }),\n _: 2\n }, [_ctx.$slots.icon ? {\n name: \"icon\",\n fn: withCtx(function (slotProps) {\n return [renderSlot(_ctx.$slots, \"icon\", {\n \"class\": normalizeClass(slotProps[\"class\"])\n }, function () {\n return [createElementVNode(\"span\", mergeProps({\n \"class\": [_ctx.icon, slotProps[\"class\"]]\n }, _ctx.ptm('pcButton')['icon'], {\n \"data-pc-section\": \"buttonicon\"\n }), null, 16)];\n })];\n }),\n key: \"0\"\n } : undefined]), 1040, [\"class\", \"label\", \"disabled\", \"severity\", \"text\", \"icon\", \"outlined\", \"size\", \"fluid\", \"aria-label\", \"onClick\", \"pt\", \"unstyled\"]), createVNode(_component_PVSButton, mergeProps({\n ref: \"button\",\n type: \"button\",\n \"class\": _ctx.cx('pcDropdown'),\n disabled: _ctx.disabled,\n \"aria-haspopup\": \"true\",\n \"aria-expanded\": $data.isExpanded,\n \"aria-controls\": $data.id + '_overlay',\n onClick: $options.onDropdownButtonClick,\n onKeydown: $options.onDropdownKeydown,\n severity: _ctx.severity,\n text: _ctx.text,\n outlined: _ctx.outlined,\n size: _ctx.size,\n unstyled: _ctx.unstyled\n }, _ctx.menuButtonProps, {\n pt: _ctx.ptm('pcDropdown')\n }), {\n icon: withCtx(function (slotProps) {\n return [renderSlot(_ctx.$slots, _ctx.$slots.dropdownicon ? 'dropdownicon' : 'menubuttonicon', {\n \"class\": normalizeClass(slotProps[\"class\"])\n }, function () {\n return [(openBlock(), createBlock(resolveDynamicComponent(_ctx.menuButtonIcon || _ctx.dropdownIcon ? 'span' : 'ChevronDownIcon'), mergeProps({\n \"class\": [_ctx.dropdownIcon || _ctx.menuButtonIcon, slotProps[\"class\"]]\n }, _ctx.ptm('pcDropdown')['icon'], {\n \"data-pc-section\": \"menubuttonicon\"\n }), null, 16, [\"class\"]))];\n })];\n }),\n _: 3\n }, 16, [\"class\", \"disabled\", \"aria-expanded\", \"aria-controls\", \"onClick\", \"onKeydown\", \"severity\", \"text\", \"outlined\", \"size\", \"unstyled\", \"pt\"]), createVNode(_component_PVSMenu, {\n ref: \"menu\",\n id: $data.id + '_overlay',\n model: _ctx.model,\n popup: true,\n autoZIndex: _ctx.autoZIndex,\n baseZIndex: _ctx.baseZIndex,\n appendTo: _ctx.appendTo,\n unstyled: _ctx.unstyled,\n pt: _ctx.ptm('pcMenu')\n }, createSlots({\n _: 2\n }, [_ctx.$slots.menuitemicon ? {\n name: \"itemicon\",\n fn: withCtx(function (slotProps) {\n return [renderSlot(_ctx.$slots, \"menuitemicon\", {\n item: slotProps.item,\n \"class\": normalizeClass(slotProps[\"class\"])\n })];\n }),\n key: \"0\"\n } : undefined, _ctx.$slots.item ? {\n name: \"item\",\n fn: withCtx(function (slotProps) {\n return [renderSlot(_ctx.$slots, \"item\", {\n item: slotProps.item,\n hasSubmenu: slotProps.hasSubmenu,\n label: slotProps.label,\n props: slotProps.props\n })];\n }),\n key: \"1\"\n } : undefined]), 1032, [\"id\", \"model\", \"autoZIndex\", \"baseZIndex\", \"appendTo\", \"unstyled\", \"pt\"])], 16, _hoisted_1);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-menubar {\\n display: flex;\\n align-items: center;\\n background: \".concat(dt('menubar.background'), \";\\n border: 1px solid \").concat(dt('menubar.border.color'), \";\\n border-radius: \").concat(dt('menubar.border.radius'), \";\\n color: \").concat(dt('menubar.color'), \";\\n padding: \").concat(dt('menubar.padding'), \";\\n gap: \").concat(dt('menubar.gap'), \";\\n}\\n\\n.p-menubar-start,\\n.p-megamenu-end {\\n display: flex;\\n align-items: center;\\n}\\n\\n.p-menubar-root-list,\\n.p-menubar-submenu {\\n display: flex;\\n margin: 0;\\n padding: 0;\\n list-style: none;\\n outline: 0 none;\\n}\\n\\n.p-menubar-root-list {\\n align-items: center;\\n flex-wrap: wrap;\\n gap: \").concat(dt('menubar.gap'), \";\\n}\\n\\n.p-menubar-root-list > .p-menubar-item > .p-menubar-item-content {\\n border-radius: \").concat(dt('menubar.base.item.border.radius'), \";\\n}\\n\\n.p-menubar-root-list > .p-menubar-item > .p-menubar-item-content > .p-menubar-item-link {\\n padding: \").concat(dt('menubar.base.item.padding'), \";\\n}\\n\\n.p-menubar-item-content {\\n transition: background \").concat(dt('menubar.transition.duration'), \", color \").concat(dt('menubar.transition.duration'), \";\\n border-radius: \").concat(dt('menubar.item.border.radius'), \";\\n color: \").concat(dt('menubar.item.color'), \";\\n}\\n\\n.p-menubar-item-link {\\n cursor: pointer;\\n display: flex;\\n align-items: center;\\n text-decoration: none;\\n overflow: hidden;\\n position: relative;\\n color: inherit;\\n padding: \").concat(dt('menubar.item.padding'), \";\\n gap: \").concat(dt('menubar.item.gap'), \";\\n user-select: none;\\n outline: 0 none;\\n}\\n\\n.p-menubar-item-label {\\n line-height: 1;\\n}\\n\\n.p-menubar-item-icon {\\n color: \").concat(dt('menubar.item.icon.color'), \";\\n}\\n\\n.p-menubar-submenu-icon {\\n color: \").concat(dt('menubar.submenu.icon.color'), \";\\n margin-left: auto;\\n font-size: \").concat(dt('menubar.submenu.icon.size'), \";\\n width: \").concat(dt('menubar.submenu.icon.size'), \";\\n height: \").concat(dt('menubar.submenu.icon.size'), \";\\n}\\n\\n.p-menubar-item.p-focus > .p-menubar-item-content {\\n color: \").concat(dt('menubar.item.focus.color'), \";\\n background: \").concat(dt('menubar.item.focus.background'), \";\\n}\\n\\n.p-menubar-item.p-focus > .p-menubar-item-content .p-menubar-item-icon {\\n color: \").concat(dt('menubar.item.icon.focus.color'), \";\\n}\\n\\n.p-menubar-item.p-focus > .p-menubar-item-content .p-menubar-submenu-icon {\\n color: \").concat(dt('menubar.submenu.icon.focus.color'), \";\\n}\\n\\n.p-menubar-item:not(.p-disabled) > .p-menubar-item-content:hover {\\n color: \").concat(dt('menubar.item.focus.color'), \";\\n background: \").concat(dt('menubar.item.focus.background'), \";\\n}\\n\\n.p-menubar-item:not(.p-disabled) > .p-menubar-item-content:hover .p-menubar-item-icon {\\n color: \").concat(dt('menubar.item.icon.focus.color'), \";\\n}\\n\\n.p-menubar-item:not(.p-disabled) > .p-menubar-item-content:hover .p-menubar-submenu-icon {\\n color: \").concat(dt('menubar.submenu.icon.focus.color'), \";\\n}\\n\\n.p-menubar-item-active > .p-menubar-item-content {\\n color: \").concat(dt('menubar.item.active.color'), \";\\n background: \").concat(dt('menubar.item.active.background'), \";\\n}\\n\\n.p-menubar-item-active > .p-menubar-item-content .p-menubar-item-icon {\\n color: \").concat(dt('menubar.item.icon.active.color'), \";\\n}\\n\\n.p-menubar-item-active > .p-menubar-item-content .p-menubar-submenu-icon {\\n color: \").concat(dt('menubar.submenu.icon.active.color'), \";\\n}\\n\\n.p-menubar-submenu {\\n display: none;\\n position: absolute;\\n min-width: 12.5rem;\\n z-index: 1;\\n background: \").concat(dt('menubar.submenu.background'), \";\\n border: 1px solid \").concat(dt('menubar.submenu.border.color'), \";\\n border-radius: \").concat(dt('menubar.border.radius'), \";\\n box-shadow: \").concat(dt('menubar.submenu.shadow'), \";\\n color: \").concat(dt('menubar.submenu.color'), \";\\n flex-direction: column;\\n padding: \").concat(dt('menubar.submenu.padding'), \";\\n gap: \").concat(dt('menubar.submenu.gap'), \";\\n}\\n\\n.p-menubar-submenu .p-menubar-separator {\\n border-top: 1px solid \").concat(dt('menubar.separator.border.color'), \";\\n}\\n\\n.p-menubar-submenu .p-menubar-item {\\n position: relative;\\n}\\n\\n .p-menubar-submenu > .p-menubar-item-active > .p-menubar-submenu {\\n display: block;\\n left: 100%;\\n top: 0;\\n}\\n\\n.p-menubar-end {\\n margin-left: auto;\\n align-self: center;\\n}\\n\\n.p-menubar-button {\\n display: none;\\n justify-content: center;\\n align-items: center;\\n cursor: pointer;\\n width: \").concat(dt('menubar.mobile.button.size'), \";\\n height: \").concat(dt('menubar.mobile.button.size'), \";\\n position: relative;\\n color: \").concat(dt('menubar.mobile.button.color'), \";\\n border: 0 none;\\n background: transparent;\\n border-radius: \").concat(dt('menubar.mobile.button.border.radius'), \";\\n transition: background \").concat(dt('menubar.transition.duration'), \", color \").concat(dt('menubar.transition.duration'), \", outline-color \").concat(dt('menubar.transition.duration'), \";\\n outline-color: transparent;\\n}\\n\\n.p-menubar-button:hover {\\n color: \").concat(dt('menubar.mobile.button.hover.color'), \";\\n background: \").concat(dt('menubar.mobile.button.hover.background'), \";\\n}\\n\\n.p-menubar-button:focus-visible {\\n box-shadow: \").concat(dt('menubar.mobile.button.focus.ring.shadow'), \";\\n outline: \").concat(dt('menubar.mobile.button.focus.ring.width'), \" \").concat(dt('menubar.mobile.button.focus.ring.style'), \" \").concat(dt('menubar.mobile.button.focus.ring.color'), \";\\n outline-offset: \").concat(dt('menubar.mobile.button.focus.ring.offset'), \";\\n}\\n\\n.p-menubar-mobile {\\n position: relative;\\n}\\n\\n.p-menubar-mobile .p-menubar-button {\\n display: flex;\\n}\\n\\n.p-menubar-mobile .p-menubar-root-list {\\n position: absolute;\\n display: none;\\n width: 100%;\\n padding: \").concat(dt('menubar.submenu.padding'), \";\\n background: \").concat(dt('menubar.submenu.background'), \";\\n border: 1px solid \").concat(dt('menubar.submenu.border.color'), \";\\n box-shadow: \").concat(dt('menubar.submenu.shadow'), \";\\n}\\n\\n.p-menubar-mobile .p-menubar-root-list > .p-menubar-item > .p-menubar-item-content {\\n border-radius: \").concat(dt('menubar.item.border.radius'), \";\\n}\\n\\n.p-menubar-mobile .p-menubar-root-list > .p-menubar-item > .p-menubar-item-content > .p-menubar-item-link {\\n padding: \").concat(dt('menubar.item.padding'), \";\\n}\\n\\n.p-menubar-mobile-active .p-menubar-root-list {\\n display: flex;\\n flex-direction: column;\\n top: 100%;\\n left: 0;\\n z-index: 1;\\n}\\n\\n.p-menubar-mobile .p-menubar-root-list .p-menubar-item {\\n width: 100%;\\n position: static;\\n}\\n\\n.p-menubar-mobile .p-menubar-root-list .p-menubar-separator {\\n border-top: 1px solid \").concat(dt('menubar.separator.border.color'), \";\\n}\\n\\n.p-menubar-mobile .p-menubar-root-list > .p-menubar-item > .p-menubar-item-content .p-menubar-submenu-icon {\\n margin-left: auto;\\n transition: transform 0.2s;\\n}\\n\\n.p-menubar-mobile .p-menubar-root-list > .p-menubar-item-active > .p-menubar-item-content .p-menubar-submenu-icon {\\n transform: rotate(-180deg);\\n}\\n\\n.p-menubar-mobile .p-menubar-submenu .p-menubar-submenu-icon {\\n transition: transform 0.2s;\\n transform: rotate(90deg);\\n}\\n\\n.p-menubar-mobile .p-menubar-item-active > .p-menubar-item-content .p-menubar-submenu-icon {\\n transform: rotate(-90deg);\\n}\\n\\n.p-menubar-mobile .p-menubar-submenu {\\n width: 100%;\\n position: static;\\n box-shadow: none;\\n border: 0 none;\\n padding-left: \").concat(dt('menubar.submenu.mobile.indent'), \";\\n}\\n\");\n};\nvar inlineStyles = {\n submenu: function submenu(_ref2) {\n var instance = _ref2.instance,\n processedItem = _ref2.processedItem;\n return {\n display: instance.isItemActive(processedItem) ? 'flex' : 'none'\n };\n }\n};\nvar classes = {\n root: function root(_ref3) {\n var instance = _ref3.instance;\n return ['p-menubar p-component', {\n 'p-menubar-mobile': instance.queryMatches,\n 'p-menubar-mobile-active': instance.mobileActive\n }];\n },\n start: 'p-menubar-start',\n button: 'p-menubar-button',\n rootList: 'p-menubar-root-list',\n item: function item(_ref4) {\n var instance = _ref4.instance,\n processedItem = _ref4.processedItem;\n return ['p-menubar-item', {\n 'p-menubar-item-active': instance.isItemActive(processedItem),\n 'p-focus': instance.isItemFocused(processedItem),\n 'p-disabled': instance.isItemDisabled(processedItem)\n }];\n },\n itemContent: 'p-menubar-item-content',\n itemLink: 'p-menubar-item-link',\n itemIcon: 'p-menubar-item-icon',\n itemLabel: 'p-menubar-item-label',\n submenuIcon: 'p-menubar-submenu-icon',\n submenu: 'p-menubar-submenu',\n separator: 'p-menubar-separator',\n end: 'p-menubar-end'\n};\nvar MenubarStyle = BaseStyle.extend({\n name: 'menubar',\n theme: theme,\n classes: classes,\n inlineStyles: inlineStyles\n});\n\nexport { MenubarStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { UniqueComponentId } from '@primevue/core/utils';\nimport { focus, findSingle, isTouchDevice } from '@primeuix/utils/dom';\nimport { resolve, isNotEmpty, isPrintableCharacter, isEmpty, findLastIndex } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport BarsIcon from '@primevue/icons/bars';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport MenubarStyle from 'primevue/menubar/style';\nimport AngleDownIcon from '@primevue/icons/angledown';\nimport AngleRightIcon from '@primevue/icons/angleright';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps, resolveComponent, resolveDirective, openBlock, createElementBlock, Fragment, renderList, createElementVNode, withDirectives, createBlock, resolveDynamicComponent, normalizeClass, createCommentVNode, toDisplayString, normalizeStyle, renderSlot, createVNode, normalizeProps, guardReactiveProps } from 'vue';\n\nvar script$2 = {\n name: 'BaseMenubar',\n \"extends\": BaseComponent,\n props: {\n model: {\n type: Array,\n \"default\": null\n },\n buttonProps: {\n type: null,\n \"default\": null\n },\n breakpoint: {\n type: String,\n \"default\": '960px'\n },\n ariaLabelledby: {\n type: String,\n \"default\": null\n },\n ariaLabel: {\n type: String,\n \"default\": null\n }\n },\n style: MenubarStyle,\n provide: function provide() {\n return {\n $pcMenubar: this,\n $parentInstance: this\n };\n }\n};\n\nvar script$1 = {\n name: 'MenubarSub',\n hostName: 'Menubar',\n \"extends\": BaseComponent,\n emits: ['item-mouseenter', 'item-click', 'item-mousemove'],\n props: {\n items: {\n type: Array,\n \"default\": null\n },\n root: {\n type: Boolean,\n \"default\": false\n },\n popup: {\n type: Boolean,\n \"default\": false\n },\n mobileActive: {\n type: Boolean,\n \"default\": false\n },\n templates: {\n type: Object,\n \"default\": null\n },\n level: {\n type: Number,\n \"default\": 0\n },\n menuId: {\n type: String,\n \"default\": null\n },\n focusedItemId: {\n type: String,\n \"default\": null\n },\n activeItemPath: {\n type: Object,\n \"default\": null\n }\n },\n list: null,\n methods: {\n getItemId: function getItemId(processedItem) {\n return \"\".concat(this.menuId, \"_\").concat(processedItem.key);\n },\n getItemKey: function getItemKey(processedItem) {\n return this.getItemId(processedItem);\n },\n getItemProp: function getItemProp(processedItem, name, params) {\n return processedItem && processedItem.item ? resolve(processedItem.item[name], params) : undefined;\n },\n getItemLabel: function getItemLabel(processedItem) {\n return this.getItemProp(processedItem, 'label');\n },\n getItemLabelId: function getItemLabelId(processedItem) {\n return \"\".concat(this.menuId, \"_\").concat(processedItem.key, \"_label\");\n },\n getPTOptions: function getPTOptions(processedItem, index, key) {\n return this.ptm(key, {\n context: {\n item: processedItem.item,\n index: index,\n active: this.isItemActive(processedItem),\n focused: this.isItemFocused(processedItem),\n disabled: this.isItemDisabled(processedItem),\n level: this.level\n }\n });\n },\n isItemActive: function isItemActive(processedItem) {\n return this.activeItemPath.some(function (path) {\n return path.key === processedItem.key;\n });\n },\n isItemVisible: function isItemVisible(processedItem) {\n return this.getItemProp(processedItem, 'visible') !== false;\n },\n isItemDisabled: function isItemDisabled(processedItem) {\n return this.getItemProp(processedItem, 'disabled');\n },\n isItemFocused: function isItemFocused(processedItem) {\n return this.focusedItemId === this.getItemId(processedItem);\n },\n isItemGroup: function isItemGroup(processedItem) {\n return isNotEmpty(processedItem.items);\n },\n onItemClick: function onItemClick(event, processedItem) {\n this.getItemProp(processedItem, 'command', {\n originalEvent: event,\n item: processedItem.item\n });\n this.$emit('item-click', {\n originalEvent: event,\n processedItem: processedItem,\n isFocus: true\n });\n },\n onItemMouseEnter: function onItemMouseEnter(event, processedItem) {\n this.$emit('item-mouseenter', {\n originalEvent: event,\n processedItem: processedItem\n });\n },\n onItemMouseMove: function onItemMouseMove(event, processedItem) {\n this.$emit('item-mousemove', {\n originalEvent: event,\n processedItem: processedItem\n });\n },\n getAriaPosInset: function getAriaPosInset(index) {\n return index - this.calculateAriaSetSize.slice(0, index).length + 1;\n },\n getMenuItemProps: function getMenuItemProps(processedItem, index) {\n return {\n action: mergeProps({\n \"class\": this.cx('itemLink'),\n tabindex: -1,\n 'aria-hidden': true\n }, this.getPTOptions(processedItem, index, 'itemLink')),\n icon: mergeProps({\n \"class\": [this.cx('itemIcon'), this.getItemProp(processedItem, 'icon')]\n }, this.getPTOptions(processedItem, index, 'itemIcon')),\n label: mergeProps({\n \"class\": this.cx('itemLabel')\n }, this.getPTOptions(processedItem, index, 'itemLabel')),\n submenuicon: mergeProps({\n \"class\": this.cx('submenuIcon')\n }, this.getPTOptions(processedItem, index, 'submenuIcon'))\n };\n }\n },\n computed: {\n calculateAriaSetSize: function calculateAriaSetSize() {\n var _this = this;\n return this.items.filter(function (processedItem) {\n return _this.isItemVisible(processedItem) && _this.getItemProp(processedItem, 'separator');\n });\n },\n getAriaSetSize: function getAriaSetSize() {\n var _this2 = this;\n return this.items.filter(function (processedItem) {\n return _this2.isItemVisible(processedItem) && !_this2.getItemProp(processedItem, 'separator');\n }).length;\n }\n },\n components: {\n AngleRightIcon: AngleRightIcon,\n AngleDownIcon: AngleDownIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n\nvar _hoisted_1$1 = [\"id\", \"aria-label\", \"aria-disabled\", \"aria-expanded\", \"aria-haspopup\", \"aria-level\", \"aria-setsize\", \"aria-posinset\", \"data-p-active\", \"data-p-focused\", \"data-p-disabled\"];\nvar _hoisted_2 = [\"onClick\", \"onMouseenter\", \"onMousemove\"];\nvar _hoisted_3 = [\"href\", \"target\"];\nvar _hoisted_4 = [\"id\"];\nvar _hoisted_5 = [\"id\"];\nfunction render$1(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_MenubarSub = resolveComponent(\"MenubarSub\", true);\n var _directive_ripple = resolveDirective(\"ripple\");\n return openBlock(), createElementBlock(\"ul\", mergeProps({\n \"class\": $props.level === 0 ? _ctx.cx('rootList') : _ctx.cx('submenu')\n }, $props.level === 0 ? _ctx.ptm('rootList') : _ctx.ptm('submenu')), [(openBlock(true), createElementBlock(Fragment, null, renderList($props.items, function (processedItem, index) {\n return openBlock(), createElementBlock(Fragment, {\n key: $options.getItemKey(processedItem)\n }, [$options.isItemVisible(processedItem) && !$options.getItemProp(processedItem, 'separator') ? (openBlock(), createElementBlock(\"li\", mergeProps({\n key: 0,\n id: $options.getItemId(processedItem),\n style: $options.getItemProp(processedItem, 'style'),\n \"class\": [_ctx.cx('item', {\n processedItem: processedItem\n }), $options.getItemProp(processedItem, 'class')],\n role: \"menuitem\",\n \"aria-label\": $options.getItemLabel(processedItem),\n \"aria-disabled\": $options.isItemDisabled(processedItem) || undefined,\n \"aria-expanded\": $options.isItemGroup(processedItem) ? $options.isItemActive(processedItem) : undefined,\n \"aria-haspopup\": $options.isItemGroup(processedItem) && !$options.getItemProp(processedItem, 'to') ? 'menu' : undefined,\n \"aria-level\": $props.level + 1,\n \"aria-setsize\": $options.getAriaSetSize,\n \"aria-posinset\": $options.getAriaPosInset(index),\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'item'), {\n \"data-p-active\": $options.isItemActive(processedItem),\n \"data-p-focused\": $options.isItemFocused(processedItem),\n \"data-p-disabled\": $options.isItemDisabled(processedItem)\n }), [createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('itemContent'),\n onClick: function onClick($event) {\n return $options.onItemClick($event, processedItem);\n },\n onMouseenter: function onMouseenter($event) {\n return $options.onItemMouseEnter($event, processedItem);\n },\n onMousemove: function onMousemove($event) {\n return $options.onItemMouseMove($event, processedItem);\n },\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'itemContent')), [!$props.templates.item ? withDirectives((openBlock(), createElementBlock(\"a\", mergeProps({\n key: 0,\n href: $options.getItemProp(processedItem, 'url'),\n \"class\": _ctx.cx('itemLink'),\n target: $options.getItemProp(processedItem, 'target'),\n tabindex: \"-1\",\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'itemLink')), [$props.templates.itemicon ? (openBlock(), createBlock(resolveDynamicComponent($props.templates.itemicon), {\n key: 0,\n item: processedItem.item,\n \"class\": normalizeClass(_ctx.cx('itemIcon'))\n }, null, 8, [\"item\", \"class\"])) : $options.getItemProp(processedItem, 'icon') ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 1,\n \"class\": [_ctx.cx('itemIcon'), $options.getItemProp(processedItem, 'icon')],\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'itemIcon')), null, 16)) : createCommentVNode(\"\", true), createElementVNode(\"span\", mergeProps({\n id: $options.getItemLabelId(processedItem),\n \"class\": _ctx.cx('itemLabel'),\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'itemLabel')), toDisplayString($options.getItemLabel(processedItem)), 17, _hoisted_4), $options.getItemProp(processedItem, 'items') ? (openBlock(), createElementBlock(Fragment, {\n key: 2\n }, [$props.templates.submenuicon ? (openBlock(), createBlock(resolveDynamicComponent($props.templates.submenuicon), {\n key: 0,\n root: $props.root,\n active: $options.isItemActive(processedItem),\n \"class\": normalizeClass(_ctx.cx('submenuIcon'))\n }, null, 8, [\"root\", \"active\", \"class\"])) : (openBlock(), createBlock(resolveDynamicComponent($props.root ? 'AngleDownIcon' : 'AngleRightIcon'), mergeProps({\n key: 1,\n \"class\": _ctx.cx('submenuIcon'),\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'submenuIcon')), null, 16, [\"class\"]))], 64)) : createCommentVNode(\"\", true)], 16, _hoisted_3)), [[_directive_ripple]]) : (openBlock(), createBlock(resolveDynamicComponent($props.templates.item), {\n key: 1,\n item: processedItem.item,\n root: $props.root,\n hasSubmenu: $options.getItemProp(processedItem, 'items'),\n label: $options.getItemLabel(processedItem),\n props: $options.getMenuItemProps(processedItem, index)\n }, null, 8, [\"item\", \"root\", \"hasSubmenu\", \"label\", \"props\"]))], 16, _hoisted_2), $options.isItemVisible(processedItem) && $options.isItemGroup(processedItem) ? (openBlock(), createBlock(_component_MenubarSub, {\n key: 0,\n id: $options.getItemId(processedItem) + '_list',\n menuId: $props.menuId,\n role: \"menu\",\n style: normalizeStyle(_ctx.sx('submenu', true, {\n processedItem: processedItem\n })),\n focusedItemId: $props.focusedItemId,\n items: processedItem.items,\n mobileActive: $props.mobileActive,\n activeItemPath: $props.activeItemPath,\n templates: $props.templates,\n level: $props.level + 1,\n \"aria-labelledby\": $options.getItemLabelId(processedItem),\n pt: _ctx.pt,\n unstyled: _ctx.unstyled,\n onItemClick: _cache[0] || (_cache[0] = function ($event) {\n return _ctx.$emit('item-click', $event);\n }),\n onItemMouseenter: _cache[1] || (_cache[1] = function ($event) {\n return _ctx.$emit('item-mouseenter', $event);\n }),\n onItemMousemove: _cache[2] || (_cache[2] = function ($event) {\n return _ctx.$emit('item-mousemove', $event);\n })\n }, null, 8, [\"id\", \"menuId\", \"style\", \"focusedItemId\", \"items\", \"mobileActive\", \"activeItemPath\", \"templates\", \"level\", \"aria-labelledby\", \"pt\", \"unstyled\"])) : createCommentVNode(\"\", true)], 16, _hoisted_1$1)) : createCommentVNode(\"\", true), $options.isItemVisible(processedItem) && $options.getItemProp(processedItem, 'separator') ? (openBlock(), createElementBlock(\"li\", mergeProps({\n key: 1,\n id: $options.getItemId(processedItem),\n \"class\": [_ctx.cx('separator'), $options.getItemProp(processedItem, 'class')],\n style: $options.getItemProp(processedItem, 'style'),\n role: \"separator\",\n ref_for: true\n }, _ctx.ptm('separator')), null, 16, _hoisted_5)) : createCommentVNode(\"\", true)], 64);\n }), 128))], 16);\n}\n\nscript$1.render = render$1;\n\nvar script = {\n name: 'Menubar',\n \"extends\": script$2,\n inheritAttrs: false,\n emits: ['focus', 'blur'],\n matchMediaListener: null,\n data: function data() {\n return {\n id: this.$attrs.id,\n mobileActive: false,\n focused: false,\n focusedItemInfo: {\n index: -1,\n level: 0,\n parentKey: ''\n },\n activeItemPath: [],\n dirty: false,\n query: null,\n queryMatches: false\n };\n },\n watch: {\n '$attrs.id': function $attrsId(newValue) {\n this.id = newValue || UniqueComponentId();\n },\n activeItemPath: function activeItemPath(newPath) {\n if (isNotEmpty(newPath)) {\n this.bindOutsideClickListener();\n this.bindResizeListener();\n } else {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n }\n }\n },\n outsideClickListener: null,\n container: null,\n menubar: null,\n mounted: function mounted() {\n this.id = this.id || UniqueComponentId();\n this.bindMatchMediaListener();\n },\n beforeUnmount: function beforeUnmount() {\n this.mobileActive = false;\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindMatchMediaListener();\n if (this.container) {\n ZIndex.clear(this.container);\n }\n this.container = null;\n },\n methods: {\n getItemProp: function getItemProp(item, name) {\n return item ? resolve(item[name]) : undefined;\n },\n getItemLabel: function getItemLabel(item) {\n return this.getItemProp(item, 'label');\n },\n isItemDisabled: function isItemDisabled(item) {\n return this.getItemProp(item, 'disabled');\n },\n isItemVisible: function isItemVisible(item) {\n return this.getItemProp(item, 'visible') !== false;\n },\n isItemGroup: function isItemGroup(item) {\n return isNotEmpty(this.getItemProp(item, 'items'));\n },\n isItemSeparator: function isItemSeparator(item) {\n return this.getItemProp(item, 'separator');\n },\n getProccessedItemLabel: function getProccessedItemLabel(processedItem) {\n return processedItem ? this.getItemLabel(processedItem.item) : undefined;\n },\n isProccessedItemGroup: function isProccessedItemGroup(processedItem) {\n return processedItem && isNotEmpty(processedItem.items);\n },\n toggle: function toggle(event) {\n var _this = this;\n if (this.mobileActive) {\n this.mobileActive = false;\n ZIndex.clear(this.menubar);\n this.hide();\n } else {\n this.mobileActive = true;\n ZIndex.set('menu', this.menubar, this.$primevue.config.zIndex.menu);\n setTimeout(function () {\n _this.show();\n }, 1);\n }\n this.bindOutsideClickListener();\n event.preventDefault();\n },\n show: function show() {\n focus(this.menubar);\n },\n hide: function hide(event, isFocus) {\n var _this2 = this;\n if (this.mobileActive) {\n this.mobileActive = false;\n setTimeout(function () {\n focus(_this2.$refs.menubutton);\n }, 0);\n }\n this.activeItemPath = [];\n this.focusedItemInfo = {\n index: -1,\n level: 0,\n parentKey: ''\n };\n isFocus && focus(this.menubar);\n this.dirty = false;\n },\n onFocus: function onFocus(event) {\n this.focused = true;\n this.focusedItemInfo = this.focusedItemInfo.index !== -1 ? this.focusedItemInfo : {\n index: this.findFirstFocusedItemIndex(),\n level: 0,\n parentKey: ''\n };\n this.$emit('focus', event);\n },\n onBlur: function onBlur(event) {\n this.focused = false;\n this.focusedItemInfo = {\n index: -1,\n level: 0,\n parentKey: ''\n };\n this.searchValue = '';\n this.dirty = false;\n this.$emit('blur', event);\n },\n onKeyDown: function onKeyDown(event) {\n var metaKey = event.metaKey || event.ctrlKey;\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n case 'Home':\n this.onHomeKey(event);\n break;\n case 'End':\n this.onEndKey(event);\n break;\n case 'Space':\n this.onSpaceKey(event);\n break;\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n case 'Escape':\n this.onEscapeKey(event);\n break;\n case 'Tab':\n this.onTabKey(event);\n break;\n case 'PageDown':\n case 'PageUp':\n case 'Backspace':\n case 'ShiftLeft':\n case 'ShiftRight':\n //NOOP\n break;\n default:\n if (!metaKey && isPrintableCharacter(event.key)) {\n this.searchItems(event, event.key);\n }\n break;\n }\n },\n onItemChange: function onItemChange(event) {\n var processedItem = event.processedItem,\n isFocus = event.isFocus;\n if (isEmpty(processedItem)) return;\n var index = processedItem.index,\n key = processedItem.key,\n level = processedItem.level,\n parentKey = processedItem.parentKey,\n items = processedItem.items;\n var grouped = isNotEmpty(items);\n var activeItemPath = this.activeItemPath.filter(function (p) {\n return p.parentKey !== parentKey && p.parentKey !== key;\n });\n grouped && activeItemPath.push(processedItem);\n this.focusedItemInfo = {\n index: index,\n level: level,\n parentKey: parentKey\n };\n this.activeItemPath = activeItemPath;\n grouped && (this.dirty = true);\n isFocus && focus(this.menubar);\n },\n onItemClick: function onItemClick(event) {\n var originalEvent = event.originalEvent,\n processedItem = event.processedItem;\n var grouped = this.isProccessedItemGroup(processedItem);\n var root = isEmpty(processedItem.parent);\n var selected = this.isSelected(processedItem);\n if (selected) {\n var index = processedItem.index,\n key = processedItem.key,\n level = processedItem.level,\n parentKey = processedItem.parentKey;\n this.activeItemPath = this.activeItemPath.filter(function (p) {\n return key !== p.key && key.startsWith(p.key);\n });\n this.focusedItemInfo = {\n index: index,\n level: level,\n parentKey: parentKey\n };\n this.dirty = !root;\n focus(this.menubar);\n } else {\n if (grouped) {\n this.onItemChange(event);\n } else {\n var rootProcessedItem = root ? processedItem : this.activeItemPath.find(function (p) {\n return p.parentKey === '';\n });\n this.hide(originalEvent);\n this.changeFocusedItemIndex(originalEvent, rootProcessedItem ? rootProcessedItem.index : -1);\n this.mobileActive = false;\n focus(this.menubar);\n }\n }\n },\n onItemMouseEnter: function onItemMouseEnter(event) {\n if (this.dirty) {\n this.onItemChange(event);\n }\n },\n onItemMouseMove: function onItemMouseMove(event) {\n if (this.focused) {\n this.changeFocusedItemIndex(event, event.processedItem.index);\n }\n },\n menuButtonClick: function menuButtonClick(event) {\n this.toggle(event);\n },\n menuButtonKeydown: function menuButtonKeydown(event) {\n (event.code === 'Enter' || event.code === 'NumpadEnter' || event.code === 'Space') && this.menuButtonClick(event);\n },\n onArrowDownKey: function onArrowDownKey(event) {\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var root = processedItem ? isEmpty(processedItem.parent) : null;\n if (root) {\n var grouped = this.isProccessedItemGroup(processedItem);\n if (grouped) {\n this.onItemChange({\n originalEvent: event,\n processedItem: processedItem\n });\n this.focusedItemInfo = {\n index: -1,\n parentKey: processedItem.key\n };\n this.onArrowRightKey(event);\n }\n } else {\n var itemIndex = this.focusedItemInfo.index !== -1 ? this.findNextItemIndex(this.focusedItemInfo.index) : this.findFirstFocusedItemIndex();\n this.changeFocusedItemIndex(event, itemIndex);\n }\n event.preventDefault();\n },\n onArrowUpKey: function onArrowUpKey(event) {\n var _this3 = this;\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var root = isEmpty(processedItem.parent);\n if (root) {\n var grouped = this.isProccessedItemGroup(processedItem);\n if (grouped) {\n this.onItemChange({\n originalEvent: event,\n processedItem: processedItem\n });\n this.focusedItemInfo = {\n index: -1,\n parentKey: processedItem.key\n };\n var itemIndex = this.findLastItemIndex();\n this.changeFocusedItemIndex(event, itemIndex);\n }\n } else {\n var parentItem = this.activeItemPath.find(function (p) {\n return p.key === processedItem.parentKey;\n });\n if (this.focusedItemInfo.index === 0) {\n this.focusedItemInfo = {\n index: -1,\n parentKey: parentItem ? parentItem.parentKey : ''\n };\n this.searchValue = '';\n this.onArrowLeftKey(event);\n this.activeItemPath = this.activeItemPath.filter(function (p) {\n return p.parentKey !== _this3.focusedItemInfo.parentKey;\n });\n } else {\n var _itemIndex = this.focusedItemInfo.index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo.index) : this.findLastFocusedItemIndex();\n this.changeFocusedItemIndex(event, _itemIndex);\n }\n }\n event.preventDefault();\n },\n onArrowLeftKey: function onArrowLeftKey(event) {\n var _this4 = this;\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var parentItem = processedItem ? this.activeItemPath.find(function (p) {\n return p.key === processedItem.parentKey;\n }) : null;\n if (parentItem) {\n this.onItemChange({\n originalEvent: event,\n processedItem: parentItem\n });\n this.activeItemPath = this.activeItemPath.filter(function (p) {\n return p.parentKey !== _this4.focusedItemInfo.parentKey;\n });\n event.preventDefault();\n } else {\n var itemIndex = this.focusedItemInfo.index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo.index) : this.findLastFocusedItemIndex();\n this.changeFocusedItemIndex(event, itemIndex);\n event.preventDefault();\n }\n },\n onArrowRightKey: function onArrowRightKey(event) {\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var parentItem = processedItem ? this.activeItemPath.find(function (p) {\n return p.key === processedItem.parentKey;\n }) : null;\n if (parentItem) {\n var grouped = this.isProccessedItemGroup(processedItem);\n if (grouped) {\n this.onItemChange({\n originalEvent: event,\n processedItem: processedItem\n });\n this.focusedItemInfo = {\n index: -1,\n parentKey: processedItem.key\n };\n this.onArrowDownKey(event);\n }\n } else {\n var itemIndex = this.focusedItemInfo.index !== -1 ? this.findNextItemIndex(this.focusedItemInfo.index) : this.findFirstFocusedItemIndex();\n this.changeFocusedItemIndex(event, itemIndex);\n event.preventDefault();\n }\n },\n onHomeKey: function onHomeKey(event) {\n this.changeFocusedItemIndex(event, this.findFirstItemIndex());\n event.preventDefault();\n },\n onEndKey: function onEndKey(event) {\n this.changeFocusedItemIndex(event, this.findLastItemIndex());\n event.preventDefault();\n },\n onEnterKey: function onEnterKey(event) {\n if (this.focusedItemInfo.index !== -1) {\n var element = findSingle(this.menubar, \"li[id=\\\"\".concat(\"\".concat(this.focusedItemId), \"\\\"]\"));\n var anchorElement = element && findSingle(element, 'a[data-pc-section=\"itemlink\"]');\n anchorElement ? anchorElement.click() : element && element.click();\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var grouped = this.isProccessedItemGroup(processedItem);\n !grouped && (this.focusedItemInfo.index = this.findFirstFocusedItemIndex());\n }\n event.preventDefault();\n },\n onSpaceKey: function onSpaceKey(event) {\n this.onEnterKey(event);\n },\n onEscapeKey: function onEscapeKey(event) {\n if (this.focusedItemInfo.level !== 0) {\n var _focusedItemInfo = this.focusedItemInfo;\n this.hide(event, false);\n this.focusedItemInfo = {\n index: Number(_focusedItemInfo.parentKey.split('_')[0]),\n level: 0,\n parentKey: ''\n };\n }\n event.preventDefault();\n },\n onTabKey: function onTabKey(event) {\n if (this.focusedItemInfo.index !== -1) {\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var grouped = this.isProccessedItemGroup(processedItem);\n !grouped && this.onItemChange({\n originalEvent: event,\n processedItem: processedItem\n });\n }\n this.hide();\n },\n bindOutsideClickListener: function bindOutsideClickListener() {\n var _this5 = this;\n if (!this.outsideClickListener) {\n this.outsideClickListener = function (event) {\n var isOutsideContainer = _this5.container && !_this5.container.contains(event.target);\n var isOutsideTarget = !(_this5.target && (_this5.target === event.target || _this5.target.contains(event.target)));\n if (isOutsideContainer && isOutsideTarget) {\n _this5.hide();\n }\n };\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener: function unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n },\n bindResizeListener: function bindResizeListener() {\n var _this6 = this;\n if (!this.resizeListener) {\n this.resizeListener = function (event) {\n if (!isTouchDevice()) {\n _this6.hide(event, true);\n }\n _this6.mobileActive = false;\n };\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener: function unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n bindMatchMediaListener: function bindMatchMediaListener() {\n var _this7 = this;\n if (!this.matchMediaListener) {\n var query = matchMedia(\"(max-width: \".concat(this.breakpoint, \")\"));\n this.query = query;\n this.queryMatches = query.matches;\n this.matchMediaListener = function () {\n _this7.queryMatches = query.matches;\n _this7.mobileActive = false;\n };\n this.query.addEventListener('change', this.matchMediaListener);\n }\n },\n unbindMatchMediaListener: function unbindMatchMediaListener() {\n if (this.matchMediaListener) {\n this.query.removeEventListener('change', this.matchMediaListener);\n this.matchMediaListener = null;\n }\n },\n isItemMatched: function isItemMatched(processedItem) {\n var _this$getProccessedIt;\n return this.isValidItem(processedItem) && ((_this$getProccessedIt = this.getProccessedItemLabel(processedItem)) === null || _this$getProccessedIt === void 0 ? void 0 : _this$getProccessedIt.toLocaleLowerCase().startsWith(this.searchValue.toLocaleLowerCase()));\n },\n isValidItem: function isValidItem(processedItem) {\n return !!processedItem && !this.isItemDisabled(processedItem.item) && !this.isItemSeparator(processedItem.item) && this.isItemVisible(processedItem.item);\n },\n isValidSelectedItem: function isValidSelectedItem(processedItem) {\n return this.isValidItem(processedItem) && this.isSelected(processedItem);\n },\n isSelected: function isSelected(processedItem) {\n return this.activeItemPath.some(function (p) {\n return p.key === processedItem.key;\n });\n },\n findFirstItemIndex: function findFirstItemIndex() {\n var _this8 = this;\n return this.visibleItems.findIndex(function (processedItem) {\n return _this8.isValidItem(processedItem);\n });\n },\n findLastItemIndex: function findLastItemIndex() {\n var _this9 = this;\n return findLastIndex(this.visibleItems, function (processedItem) {\n return _this9.isValidItem(processedItem);\n });\n },\n findNextItemIndex: function findNextItemIndex(index) {\n var _this10 = this;\n var matchedItemIndex = index < this.visibleItems.length - 1 ? this.visibleItems.slice(index + 1).findIndex(function (processedItem) {\n return _this10.isValidItem(processedItem);\n }) : -1;\n return matchedItemIndex > -1 ? matchedItemIndex + index + 1 : index;\n },\n findPrevItemIndex: function findPrevItemIndex(index) {\n var _this11 = this;\n var matchedItemIndex = index > 0 ? findLastIndex(this.visibleItems.slice(0, index), function (processedItem) {\n return _this11.isValidItem(processedItem);\n }) : -1;\n return matchedItemIndex > -1 ? matchedItemIndex : index;\n },\n findSelectedItemIndex: function findSelectedItemIndex() {\n var _this12 = this;\n return this.visibleItems.findIndex(function (processedItem) {\n return _this12.isValidSelectedItem(processedItem);\n });\n },\n findFirstFocusedItemIndex: function findFirstFocusedItemIndex() {\n var selectedIndex = this.findSelectedItemIndex();\n return selectedIndex < 0 ? this.findFirstItemIndex() : selectedIndex;\n },\n findLastFocusedItemIndex: function findLastFocusedItemIndex() {\n var selectedIndex = this.findSelectedItemIndex();\n return selectedIndex < 0 ? this.findLastItemIndex() : selectedIndex;\n },\n searchItems: function searchItems(event, _char) {\n var _this13 = this;\n this.searchValue = (this.searchValue || '') + _char;\n var itemIndex = -1;\n var matched = false;\n if (this.focusedItemInfo.index !== -1) {\n itemIndex = this.visibleItems.slice(this.focusedItemInfo.index).findIndex(function (processedItem) {\n return _this13.isItemMatched(processedItem);\n });\n itemIndex = itemIndex === -1 ? this.visibleItems.slice(0, this.focusedItemInfo.index).findIndex(function (processedItem) {\n return _this13.isItemMatched(processedItem);\n }) : itemIndex + this.focusedItemInfo.index;\n } else {\n itemIndex = this.visibleItems.findIndex(function (processedItem) {\n return _this13.isItemMatched(processedItem);\n });\n }\n if (itemIndex !== -1) {\n matched = true;\n }\n if (itemIndex === -1 && this.focusedItemInfo.index === -1) {\n itemIndex = this.findFirstFocusedItemIndex();\n }\n if (itemIndex !== -1) {\n this.changeFocusedItemIndex(event, itemIndex);\n }\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n this.searchTimeout = setTimeout(function () {\n _this13.searchValue = '';\n _this13.searchTimeout = null;\n }, 500);\n return matched;\n },\n changeFocusedItemIndex: function changeFocusedItemIndex(event, index) {\n if (this.focusedItemInfo.index !== index) {\n this.focusedItemInfo.index = index;\n this.scrollInView();\n }\n },\n scrollInView: function scrollInView() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1;\n var id = index !== -1 ? \"\".concat(this.id, \"_\").concat(index) : this.focusedItemId;\n var element = findSingle(this.menubar, \"li[id=\\\"\".concat(id, \"\\\"]\"));\n if (element) {\n element.scrollIntoView && element.scrollIntoView({\n block: 'nearest',\n inline: 'start'\n });\n }\n },\n createProcessedItems: function createProcessedItems(items) {\n var _this14 = this;\n var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var parentKey = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';\n var processedItems = [];\n items && items.forEach(function (item, index) {\n var key = (parentKey !== '' ? parentKey + '_' : '') + index;\n var newItem = {\n item: item,\n index: index,\n level: level,\n key: key,\n parent: parent,\n parentKey: parentKey\n };\n newItem['items'] = _this14.createProcessedItems(item.items, level + 1, newItem, key);\n processedItems.push(newItem);\n });\n return processedItems;\n },\n containerRef: function containerRef(el) {\n this.container = el;\n },\n menubarRef: function menubarRef(el) {\n this.menubar = el ? el.$el : undefined;\n }\n },\n computed: {\n processedItems: function processedItems() {\n return this.createProcessedItems(this.model || []);\n },\n visibleItems: function visibleItems() {\n var _this15 = this;\n var processedItem = this.activeItemPath.find(function (p) {\n return p.key === _this15.focusedItemInfo.parentKey;\n });\n return processedItem ? processedItem.items : this.processedItems;\n },\n focusedItemId: function focusedItemId() {\n return this.focusedItemInfo.index !== -1 ? \"\".concat(this.id).concat(isNotEmpty(this.focusedItemInfo.parentKey) ? '_' + this.focusedItemInfo.parentKey : '', \"_\").concat(this.focusedItemInfo.index) : null;\n }\n },\n components: {\n MenubarSub: script$1,\n BarsIcon: BarsIcon\n }\n};\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar _hoisted_1 = [\"aria-haspopup\", \"aria-expanded\", \"aria-controls\", \"aria-label\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_BarsIcon = resolveComponent(\"BarsIcon\");\n var _component_MenubarSub = resolveComponent(\"MenubarSub\");\n return openBlock(), createElementBlock(\"div\", mergeProps({\n ref: $options.containerRef,\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root')), [_ctx.$slots.start ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('start')\n }, _ctx.ptm('start')), [renderSlot(_ctx.$slots, \"start\")], 16)) : createCommentVNode(\"\", true), renderSlot(_ctx.$slots, _ctx.$slots.button ? 'button' : 'menubutton', {\n id: $data.id,\n \"class\": normalizeClass(_ctx.cx('button')),\n toggleCallback: function toggleCallback(event) {\n return $options.menuButtonClick(event);\n }\n }, function () {\n var _ctx$$primevue$config;\n return [_ctx.model && _ctx.model.length > 0 ? (openBlock(), createElementBlock(\"a\", mergeProps({\n key: 0,\n ref: \"menubutton\",\n role: \"button\",\n tabindex: \"0\",\n \"class\": _ctx.cx('button'),\n \"aria-haspopup\": _ctx.model.length && _ctx.model.length > 0 ? true : false,\n \"aria-expanded\": $data.mobileActive,\n \"aria-controls\": $data.id,\n \"aria-label\": (_ctx$$primevue$config = _ctx.$primevue.config.locale.aria) === null || _ctx$$primevue$config === void 0 ? void 0 : _ctx$$primevue$config.navigation,\n onClick: _cache[0] || (_cache[0] = function ($event) {\n return $options.menuButtonClick($event);\n }),\n onKeydown: _cache[1] || (_cache[1] = function ($event) {\n return $options.menuButtonKeydown($event);\n })\n }, _objectSpread(_objectSpread({}, _ctx.buttonProps), _ctx.ptm('button'))), [renderSlot(_ctx.$slots, _ctx.$slots.buttonicon ? 'buttonicon' : 'menubuttonicon', {}, function () {\n return [createVNode(_component_BarsIcon, normalizeProps(guardReactiveProps(_ctx.ptm('buttonicon'))), null, 16)];\n })], 16, _hoisted_1)) : createCommentVNode(\"\", true)];\n }), createVNode(_component_MenubarSub, {\n ref: $options.menubarRef,\n id: $data.id + '_list',\n role: \"menubar\",\n items: $options.processedItems,\n templates: _ctx.$slots,\n root: true,\n mobileActive: $data.mobileActive,\n tabindex: \"0\",\n \"aria-activedescendant\": $data.focused ? $options.focusedItemId : undefined,\n menuId: $data.id,\n focusedItemId: $data.focused ? $options.focusedItemId : undefined,\n activeItemPath: $data.activeItemPath,\n level: 0,\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-label\": _ctx.ariaLabel,\n pt: _ctx.pt,\n unstyled: _ctx.unstyled,\n onFocus: $options.onFocus,\n onBlur: $options.onBlur,\n onKeydown: $options.onKeyDown,\n onItemClick: $options.onItemClick,\n onItemMouseenter: $options.onItemMouseEnter,\n onItemMousemove: $options.onItemMouseMove\n }, null, 8, [\"id\", \"items\", \"templates\", \"mobileActive\", \"aria-activedescendant\", \"menuId\", \"focusedItemId\", \"activeItemPath\", \"aria-labelledby\", \"aria-label\", \"pt\", \"unstyled\", \"onFocus\", \"onBlur\", \"onKeydown\", \"onItemClick\", \"onItemMouseenter\", \"onItemMousemove\"]), _ctx.$slots.end ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 1,\n \"class\": _ctx.cx('end')\n }, _ctx.ptm('end')), [renderSlot(_ctx.$slots, \"end\")], 16)) : createCommentVNode(\"\", true)], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","export enum LatentPreviewMethod {\n NoPreviews = 'none',\n Auto = 'auto',\n Latent2RGB = 'latent2rgb',\n TAESD = 'taesd'\n}\n\nexport enum LogLevel {\n DEBUG = 'DEBUG',\n INFO = 'INFO',\n WARNING = 'WARNING',\n ERROR = 'ERROR',\n CRITICAL = 'CRITICAL'\n}\n\nexport enum HashFunction {\n MD5 = 'md5',\n SHA1 = 'sha1',\n SHA256 = 'sha256',\n SHA512 = 'sha512'\n}\n\nexport enum AutoLaunch {\n // Let server decide whether to auto launch based on the current environment\n Auto = 'auto',\n // Disable auto launch\n Disable = 'disable',\n // Enable auto launch\n Enable = 'enable'\n}\n\nexport enum CudaMalloc {\n // Let server decide whether to use CUDA malloc based on the current environment\n Auto = 'auto',\n // Disable CUDA malloc\n Disable = 'disable',\n // Enable CUDA malloc\n Enable = 'enable'\n}\n\nexport enum FloatingPointPrecision {\n AUTO = 'auto',\n FP64 = 'fp64',\n FP32 = 'fp32',\n FP16 = 'fp16',\n BF16 = 'bf16',\n FP8E4M3FN = 'fp8_e4m3fn',\n FP8E5M2 = 'fp8_e5m2'\n}\n\nexport enum CrossAttentionMethod {\n Auto = 'auto',\n Split = 'split',\n Quad = 'quad',\n Pytorch = 'pytorch'\n}\n\nexport enum VramManagement {\n Auto = 'auto',\n GPUOnly = 'gpu-only',\n HighVram = 'highvram',\n NormalVram = 'normalvram',\n LowVram = 'lowvram',\n NoVram = 'novram',\n CPU = 'cpu'\n}\n","import {\n AutoLaunch,\n CrossAttentionMethod,\n CudaMalloc,\n FloatingPointPrecision,\n HashFunction,\n LatentPreviewMethod,\n LogLevel,\n VramManagement\n} from '@/types/serverArgs'\nimport { FormItem } from '@/types/settingTypes'\n\nexport type ServerConfigValue = string | number | true | null | undefined\n\nexport interface ServerConfig extends FormItem {\n id: string\n defaultValue: T\n category?: string[]\n // Override the default value getter with a custom function.\n getValue?: (value: T) => Record\n}\n\nexport const WEB_ONLY_CONFIG_ITEMS: ServerConfig[] = [\n // Launch behavior\n {\n id: 'auto-launch',\n name: 'Automatically opens in the browser on startup',\n category: ['Launch'],\n type: 'combo',\n options: Object.values(AutoLaunch),\n defaultValue: AutoLaunch.Auto,\n getValue: (value: AutoLaunch) => {\n switch (value) {\n case AutoLaunch.Auto:\n return {}\n case AutoLaunch.Enable:\n return {\n ['auto-launch']: true\n }\n case AutoLaunch.Disable:\n return {\n ['disable-auto-launch']: true\n }\n }\n }\n }\n]\n\nexport const SERVER_CONFIG_ITEMS: ServerConfig[] = [\n // Network settings\n {\n id: 'listen',\n name: 'Host: The IP address to listen on',\n category: ['Network'],\n type: 'text',\n defaultValue: '127.0.0.1'\n },\n {\n id: 'port',\n name: 'Port: The port to listen on',\n category: ['Network'],\n type: 'number',\n // The default launch port for desktop app is 8000 instead of 8188.\n defaultValue: 8000\n },\n {\n id: 'tls-keyfile',\n name: 'TLS Key File: Path to TLS key file for HTTPS',\n category: ['Network'],\n type: 'text',\n defaultValue: ''\n },\n {\n id: 'tls-certfile',\n name: 'TLS Certificate File: Path to TLS certificate file for HTTPS',\n category: ['Network'],\n type: 'text',\n defaultValue: ''\n },\n {\n id: 'enable-cors-header',\n name: 'Enable CORS header: Use \"*\" for all origins or specify domain',\n category: ['Network'],\n type: 'text',\n defaultValue: ''\n },\n {\n id: 'max-upload-size',\n name: 'Maximum upload size (MB)',\n category: ['Network'],\n type: 'number',\n defaultValue: 100\n },\n\n // CUDA settings\n {\n id: 'cuda-device',\n name: 'CUDA device index to use',\n category: ['CUDA'],\n type: 'number',\n defaultValue: null\n },\n {\n id: 'cuda-malloc',\n name: 'Use CUDA malloc for memory allocation',\n category: ['CUDA'],\n type: 'combo',\n options: Object.values(CudaMalloc),\n defaultValue: CudaMalloc.Auto,\n getValue: (value: CudaMalloc) => {\n switch (value) {\n case CudaMalloc.Auto:\n return {}\n case CudaMalloc.Enable:\n return {\n ['cuda-malloc']: true\n }\n case CudaMalloc.Disable:\n return {\n ['disable-cuda-malloc']: true\n }\n }\n }\n },\n\n // Precision settings\n {\n id: 'global-precision',\n name: 'Global floating point precision',\n category: ['Inference'],\n type: 'combo',\n options: [\n FloatingPointPrecision.AUTO,\n FloatingPointPrecision.FP32,\n FloatingPointPrecision.FP16\n ],\n defaultValue: FloatingPointPrecision.AUTO,\n tooltip: 'Global floating point precision',\n getValue: (value: FloatingPointPrecision) => {\n switch (value) {\n case FloatingPointPrecision.AUTO:\n return {}\n case FloatingPointPrecision.FP32:\n return {\n ['force-fp32']: true\n }\n case FloatingPointPrecision.FP16:\n return {\n ['force-fp16']: true\n }\n default:\n return {}\n }\n }\n },\n\n // UNET precision\n {\n id: 'unet-precision',\n name: 'UNET precision',\n category: ['Inference'],\n type: 'combo',\n options: [\n FloatingPointPrecision.AUTO,\n FloatingPointPrecision.FP64,\n FloatingPointPrecision.FP32,\n FloatingPointPrecision.FP16,\n FloatingPointPrecision.BF16,\n FloatingPointPrecision.FP8E4M3FN,\n FloatingPointPrecision.FP8E5M2\n ],\n defaultValue: FloatingPointPrecision.AUTO,\n tooltip: 'UNET precision',\n getValue: (value: FloatingPointPrecision) => {\n switch (value) {\n case FloatingPointPrecision.AUTO:\n return {}\n default:\n return {\n [`${value.toLowerCase()}-unet`]: true\n }\n }\n }\n },\n\n // VAE settings\n {\n id: 'vae-precision',\n name: 'VAE precision',\n category: ['Inference'],\n type: 'combo',\n options: [\n FloatingPointPrecision.AUTO,\n FloatingPointPrecision.FP16,\n FloatingPointPrecision.FP32,\n FloatingPointPrecision.BF16\n ],\n defaultValue: FloatingPointPrecision.AUTO,\n tooltip: 'VAE precision',\n getValue: (value: FloatingPointPrecision) => {\n switch (value) {\n case FloatingPointPrecision.AUTO:\n return {}\n default:\n return {\n [`${value.toLowerCase()}-vae`]: true\n }\n }\n }\n },\n {\n id: 'cpu-vae',\n name: 'Run VAE on CPU',\n category: ['Inference'],\n type: 'boolean',\n defaultValue: false\n },\n\n // Text Encoder settings\n {\n id: 'text-encoder-precision',\n name: 'Text Encoder precision',\n category: ['Inference'],\n type: 'combo',\n options: [\n FloatingPointPrecision.AUTO,\n FloatingPointPrecision.FP8E4M3FN,\n FloatingPointPrecision.FP8E5M2,\n FloatingPointPrecision.FP16,\n FloatingPointPrecision.FP32\n ],\n defaultValue: FloatingPointPrecision.AUTO,\n tooltip: 'Text Encoder precision',\n getValue: (value: FloatingPointPrecision) => {\n switch (value) {\n case FloatingPointPrecision.AUTO:\n return {}\n default:\n return {\n [`${value.toLowerCase()}-text-enc`]: true\n }\n }\n }\n },\n\n // Memory and performance settings\n {\n id: 'force-channels-last',\n name: 'Force channels-last memory format',\n category: ['Memory'],\n type: 'boolean',\n defaultValue: false\n },\n {\n id: 'directml',\n name: 'DirectML device index',\n category: ['Memory'],\n type: 'number',\n defaultValue: null\n },\n {\n id: 'disable-ipex-optimize',\n name: 'Disable IPEX optimization',\n category: ['Memory'],\n type: 'boolean',\n defaultValue: false\n },\n\n // Preview settings\n {\n id: 'preview-method',\n name: 'Method used for latent previews',\n category: ['Preview'],\n type: 'combo',\n options: Object.values(LatentPreviewMethod),\n defaultValue: LatentPreviewMethod.NoPreviews\n },\n {\n id: 'preview-size',\n name: 'Size of preview images',\n category: ['Preview'],\n type: 'slider',\n defaultValue: 512,\n attrs: {\n min: 128,\n max: 2048,\n step: 128\n }\n },\n\n // Cache settings\n {\n id: 'cache-classic',\n name: 'Use classic cache system',\n category: ['Cache'],\n type: 'boolean',\n defaultValue: false\n },\n {\n id: 'cache-lru',\n name: 'Use LRU caching with a maximum of N node results cached.',\n category: ['Cache'],\n type: 'number',\n defaultValue: null,\n tooltip: 'May use more RAM/VRAM.'\n },\n\n // Attention settings\n {\n id: 'cross-attention-method',\n name: 'Cross attention method',\n category: ['Attention'],\n type: 'combo',\n options: Object.values(CrossAttentionMethod),\n defaultValue: CrossAttentionMethod.Auto,\n getValue: (value: CrossAttentionMethod) => {\n switch (value) {\n case CrossAttentionMethod.Auto:\n return {}\n default:\n return {\n [`use-${value.toLowerCase()}-cross-attention`]: true\n }\n }\n }\n },\n {\n id: 'disable-xformers',\n name: 'Disable xFormers optimization',\n type: 'boolean',\n defaultValue: false\n },\n {\n id: 'force-upcast-attention',\n name: 'Force attention upcast',\n category: ['Attention'],\n type: 'boolean',\n defaultValue: false\n },\n {\n id: 'dont-upcast-attention',\n name: 'Prevent attention upcast',\n category: ['Attention'],\n type: 'boolean',\n defaultValue: false\n },\n\n // VRAM management\n {\n id: 'vram-management',\n name: 'VRAM management mode',\n category: ['Memory'],\n type: 'combo',\n options: Object.values(VramManagement),\n defaultValue: VramManagement.Auto,\n getValue: (value: VramManagement) => {\n switch (value) {\n case VramManagement.Auto:\n return {}\n default:\n return {\n [value]: true\n }\n }\n }\n },\n {\n id: 'reserve-vram',\n name: 'Reserved VRAM (GB)',\n category: ['Memory'],\n type: 'number',\n defaultValue: null,\n tooltip:\n 'Set the amount of vram in GB you want to reserve for use by your OS/other software. By default some amount is reverved depending on your OS.'\n },\n\n // Misc settings\n {\n id: 'default-hashing-function',\n name: 'Default hashing function for model files',\n type: 'combo',\n options: Object.values(HashFunction),\n defaultValue: HashFunction.SHA256\n },\n {\n id: 'disable-smart-memory',\n name: 'Disable smart memory management',\n tooltip:\n 'Force ComfyUI to aggressively offload to regular ram instead of keeping models in vram when it can.',\n category: ['Memory'],\n type: 'boolean',\n defaultValue: false\n },\n {\n id: 'deterministic',\n name: 'Make pytorch use slower deterministic algorithms when it can.',\n type: 'boolean',\n defaultValue: false,\n tooltip: 'Note that this might not make images deterministic in all cases.'\n },\n {\n id: 'fast',\n name: 'Enable some untested and potentially quality deteriorating optimizations.',\n type: 'boolean',\n defaultValue: false\n },\n {\n id: 'dont-print-server',\n name: \"Don't print server output to console.\",\n type: 'boolean',\n defaultValue: false\n },\n {\n id: 'disable-metadata',\n name: 'Disable saving prompt metadata in files.',\n type: 'boolean',\n defaultValue: false\n },\n {\n id: 'disable-all-custom-nodes',\n name: 'Disable loading all custom nodes.',\n type: 'boolean',\n defaultValue: false\n },\n {\n id: 'log-level',\n name: 'Logging verbosity level',\n type: 'combo',\n options: Object.values(LogLevel),\n defaultValue: LogLevel.INFO,\n getValue: (value: LogLevel) => {\n return {\n verbose: value\n }\n }\n },\n // Directories\n {\n id: 'input-directory',\n name: 'Input directory',\n category: ['Directories'],\n type: 'text',\n defaultValue: ''\n },\n {\n id: 'output-directory',\n name: 'Output directory',\n category: ['Directories'],\n type: 'text',\n defaultValue: ''\n }\n]\n","import {\n LGraphEventMode,\n LGraphGroup,\n LGraphNode,\n LiteGraph\n} from '@comfyorg/litegraph'\n\nimport { api } from '@/scripts/api'\nimport { app } from '@/scripts/app'\nimport { useDialogService } from '@/services/dialogService'\nimport { useWorkflowService } from '@/services/workflowService'\nimport type { ComfyCommand } from '@/stores/commandStore'\nimport { useTitleEditorStore } from '@/stores/graphStore'\nimport { useQueueSettingsStore, useQueueStore } from '@/stores/queueStore'\nimport { useSettingStore } from '@/stores/settingStore'\nimport { useToastStore } from '@/stores/toastStore'\nimport { type ComfyWorkflow, useWorkflowStore } from '@/stores/workflowStore'\nimport { useBottomPanelStore } from '@/stores/workspace/bottomPanelStore'\nimport { useSearchBoxStore } from '@/stores/workspace/searchBoxStore'\nimport { useWorkspaceStore } from '@/stores/workspaceStore'\n\nexport function useCoreCommands(): ComfyCommand[] {\n const workflowService = useWorkflowService()\n const workflowStore = useWorkflowStore()\n const dialogService = useDialogService()\n const getTracker = () => workflowStore.activeWorkflow?.changeTracker\n\n const getSelectedNodes = (): LGraphNode[] => {\n const selectedNodes = app.canvas.selected_nodes\n const result: LGraphNode[] = []\n if (selectedNodes) {\n for (const i in selectedNodes) {\n const node = selectedNodes[i]\n result.push(node)\n }\n }\n return result\n }\n\n const toggleSelectedNodesMode = (mode: LGraphEventMode) => {\n getSelectedNodes().forEach((node) => {\n if (node.mode === mode) {\n node.mode = LGraphEventMode.ALWAYS\n } else {\n node.mode = mode\n }\n })\n }\n\n return [\n {\n id: 'Comfy.NewBlankWorkflow',\n icon: 'pi pi-plus',\n label: 'New Blank Workflow',\n menubarLabel: 'New',\n function: () => workflowService.loadBlankWorkflow()\n },\n {\n id: 'Comfy.OpenWorkflow',\n icon: 'pi pi-folder-open',\n label: 'Open Workflow',\n menubarLabel: 'Open',\n function: () => {\n app.ui.loadFile()\n }\n },\n {\n id: 'Comfy.LoadDefaultWorkflow',\n icon: 'pi pi-code',\n label: 'Load Default Workflow',\n function: () => workflowService.loadDefaultWorkflow()\n },\n {\n id: 'Comfy.SaveWorkflow',\n icon: 'pi pi-save',\n label: 'Save Workflow',\n menubarLabel: 'Save',\n function: async () => {\n const workflow = useWorkflowStore().activeWorkflow as ComfyWorkflow\n if (!workflow) return\n\n await workflowService.saveWorkflow(workflow)\n }\n },\n {\n id: 'Comfy.SaveWorkflowAs',\n icon: 'pi pi-save',\n label: 'Save Workflow As',\n menubarLabel: 'Save As',\n function: async () => {\n const workflow = useWorkflowStore().activeWorkflow as ComfyWorkflow\n if (!workflow) return\n\n await workflowService.saveWorkflowAs(workflow)\n }\n },\n {\n id: 'Comfy.ExportWorkflow',\n icon: 'pi pi-download',\n label: 'Export Workflow',\n menubarLabel: 'Export',\n function: () => {\n workflowService.exportWorkflow('workflow', 'workflow')\n }\n },\n {\n id: 'Comfy.ExportWorkflowAPI',\n icon: 'pi pi-download',\n label: 'Export Workflow (API Format)',\n menubarLabel: 'Export (API)',\n function: () => {\n workflowService.exportWorkflow('workflow_api', 'output')\n }\n },\n {\n id: 'Comfy.Undo',\n icon: 'pi pi-undo',\n label: 'Undo',\n function: async () => {\n await getTracker()?.undo?.()\n }\n },\n {\n id: 'Comfy.Redo',\n icon: 'pi pi-refresh',\n label: 'Redo',\n function: async () => {\n await getTracker()?.redo?.()\n }\n },\n {\n id: 'Comfy.ClearWorkflow',\n icon: 'pi pi-trash',\n label: 'Clear Workflow',\n function: () => {\n const settingStore = useSettingStore()\n if (\n !settingStore.get('Comfy.ComfirmClear') ||\n confirm('Clear workflow?')\n ) {\n app.clean()\n app.graph.clear()\n api.dispatchCustomEvent('graphCleared')\n }\n }\n },\n {\n id: 'Comfy.Canvas.ResetView',\n icon: 'pi pi-expand',\n label: 'Reset View',\n function: () => {\n app.resetView()\n }\n },\n {\n id: 'Comfy.OpenClipspace',\n icon: 'pi pi-clipboard',\n label: 'Clipspace',\n function: () => {\n app.openClipspace()\n }\n },\n {\n id: 'Comfy.RefreshNodeDefinitions',\n icon: 'pi pi-refresh',\n label: 'Refresh Node Definitions',\n function: async () => {\n await app.refreshComboInNodes()\n }\n },\n {\n id: 'Comfy.Interrupt',\n icon: 'pi pi-stop',\n label: 'Interrupt',\n function: async () => {\n await api.interrupt()\n useToastStore().add({\n severity: 'info',\n summary: 'Interrupted',\n detail: 'Execution has been interrupted',\n life: 1000\n })\n }\n },\n {\n id: 'Comfy.ClearPendingTasks',\n icon: 'pi pi-stop',\n label: 'Clear Pending Tasks',\n function: async () => {\n await useQueueStore().clear(['queue'])\n useToastStore().add({\n severity: 'info',\n summary: 'Confirmed',\n detail: 'Pending tasks deleted',\n life: 3000\n })\n }\n },\n {\n id: 'Comfy.BrowseTemplates',\n icon: 'pi pi-folder-open',\n label: 'Browse Templates',\n function: () => {\n dialogService.showTemplateWorkflowsDialog()\n }\n },\n {\n id: 'Comfy.Canvas.ZoomIn',\n icon: 'pi pi-plus',\n label: 'Zoom In',\n function: () => {\n const ds = app.canvas.ds\n ds.changeScale(\n ds.scale * 1.1,\n ds.element ? [ds.element.width / 2, ds.element.height / 2] : undefined\n )\n app.canvas.setDirty(true, true)\n }\n },\n {\n id: 'Comfy.Canvas.ZoomOut',\n icon: 'pi pi-minus',\n label: 'Zoom Out',\n function: () => {\n const ds = app.canvas.ds\n ds.changeScale(\n ds.scale / 1.1,\n ds.element ? [ds.element.width / 2, ds.element.height / 2] : undefined\n )\n app.canvas.setDirty(true, true)\n }\n },\n {\n id: 'Comfy.Canvas.FitView',\n icon: 'pi pi-expand',\n label: 'Fit view to selected nodes',\n function: () => {\n if (app.canvas.empty) {\n useToastStore().add({\n severity: 'error',\n summary: 'Empty canvas',\n life: 3000\n })\n return\n }\n app.canvas.fitViewToSelectionAnimated()\n }\n },\n {\n id: 'Comfy.Canvas.ToggleLock',\n icon: 'pi pi-lock',\n label: 'Canvas Toggle Lock',\n function: () => {\n app.canvas['read_only'] = !app.canvas['read_only']\n }\n },\n {\n id: 'Comfy.Canvas.ToggleLinkVisibility',\n icon: 'pi pi-eye',\n label: 'Canvas Toggle Link Visibility',\n versionAdded: '1.3.6',\n\n function: (() => {\n const settingStore = useSettingStore()\n let lastLinksRenderMode = LiteGraph.SPLINE_LINK\n\n return () => {\n const currentMode = settingStore.get('Comfy.LinkRenderMode')\n\n if (currentMode === LiteGraph.HIDDEN_LINK) {\n // If links are hidden, restore the last positive value or default to spline mode\n settingStore.set('Comfy.LinkRenderMode', lastLinksRenderMode)\n } else {\n // If links are visible, store the current mode and hide links\n lastLinksRenderMode = currentMode\n settingStore.set('Comfy.LinkRenderMode', LiteGraph.HIDDEN_LINK)\n }\n }\n })()\n },\n {\n id: 'Comfy.QueuePrompt',\n icon: 'pi pi-play',\n label: 'Queue Prompt',\n versionAdded: '1.3.7',\n function: () => {\n const batchCount = useQueueSettingsStore().batchCount\n app.queuePrompt(0, batchCount)\n }\n },\n {\n id: 'Comfy.QueuePromptFront',\n icon: 'pi pi-play',\n label: 'Queue Prompt (Front)',\n versionAdded: '1.3.7',\n function: () => {\n const batchCount = useQueueSettingsStore().batchCount\n app.queuePrompt(-1, batchCount)\n }\n },\n {\n id: 'Comfy.ShowSettingsDialog',\n icon: 'pi pi-cog',\n label: 'Show Settings Dialog',\n versionAdded: '1.3.7',\n function: () => {\n dialogService.showSettingsDialog()\n }\n },\n {\n id: 'Comfy.Graph.GroupSelectedNodes',\n icon: 'pi pi-sitemap',\n label: 'Group Selected Nodes',\n versionAdded: '1.3.7',\n function: () => {\n const { canvas } = app\n if (!canvas.selectedItems?.size) {\n useToastStore().add({\n severity: 'error',\n summary: 'Nothing to group',\n detail:\n 'Please select the nodes (or other groups) to create a group for',\n life: 3000\n })\n return\n }\n const group = new LGraphGroup()\n const padding = useSettingStore().get(\n 'Comfy.GroupSelectedNodes.Padding'\n )\n group.resizeTo(canvas.selectedItems, padding)\n canvas.graph.add(group)\n useTitleEditorStore().titleEditorTarget = group\n }\n },\n {\n id: 'Workspace.NextOpenedWorkflow',\n icon: 'pi pi-step-forward',\n label: 'Next Opened Workflow',\n versionAdded: '1.3.9',\n function: () => {\n workflowService.loadNextOpenedWorkflow()\n }\n },\n {\n id: 'Workspace.PreviousOpenedWorkflow',\n icon: 'pi pi-step-backward',\n label: 'Previous Opened Workflow',\n versionAdded: '1.3.9',\n function: () => {\n workflowService.loadPreviousOpenedWorkflow()\n }\n },\n {\n id: 'Comfy.Canvas.ToggleSelectedNodes.Mute',\n icon: 'pi pi-volume-off',\n label: 'Mute/Unmute Selected Nodes',\n versionAdded: '1.3.11',\n function: () => {\n toggleSelectedNodesMode(LGraphEventMode.NEVER)\n }\n },\n {\n id: 'Comfy.Canvas.ToggleSelectedNodes.Bypass',\n icon: 'pi pi-shield',\n label: 'Bypass/Unbypass Selected Nodes',\n versionAdded: '1.3.11',\n function: () => {\n toggleSelectedNodesMode(LGraphEventMode.BYPASS)\n }\n },\n {\n id: 'Comfy.Canvas.ToggleSelectedNodes.Pin',\n icon: 'pi pi-pin',\n label: 'Pin/Unpin Selected Nodes',\n versionAdded: '1.3.11',\n function: () => {\n getSelectedNodes().forEach((node) => {\n node.pin(!node.pinned)\n })\n }\n },\n {\n id: 'Comfy.Canvas.ToggleSelected.Pin',\n icon: 'pi pi-pin',\n label: 'Pin/Unpin Selected Items',\n versionAdded: '1.3.33',\n function: () => {\n for (const item of app.canvas.selectedItems) {\n if (item instanceof LGraphNode || item instanceof LGraphGroup) {\n item.pin(!item.pinned)\n }\n }\n }\n },\n {\n id: 'Comfy.Canvas.ToggleSelectedNodes.Collapse',\n icon: 'pi pi-minus',\n label: 'Collapse/Expand Selected Nodes',\n versionAdded: '1.3.11',\n function: () => {\n getSelectedNodes().forEach((node) => {\n node.collapse()\n })\n }\n },\n {\n id: 'Comfy.ToggleTheme',\n icon: 'pi pi-moon',\n label: 'Toggle Theme (Dark/Light)',\n versionAdded: '1.3.12',\n function: (() => {\n let previousDarkTheme: string = 'dark'\n\n // Official light theme is the only light theme supported now.\n const isDarkMode = (themeId: string) => themeId !== 'light'\n return () => {\n const settingStore = useSettingStore()\n const currentTheme = settingStore.get('Comfy.ColorPalette')\n if (isDarkMode(currentTheme)) {\n previousDarkTheme = currentTheme\n settingStore.set('Comfy.ColorPalette', 'light')\n } else {\n settingStore.set('Comfy.ColorPalette', previousDarkTheme)\n }\n }\n })()\n },\n {\n id: 'Workspace.ToggleBottomPanel',\n icon: 'pi pi-list',\n label: 'Toggle Bottom Panel',\n versionAdded: '1.3.22',\n function: () => {\n useBottomPanelStore().toggleBottomPanel()\n }\n },\n {\n id: 'Workspace.ToggleFocusMode',\n icon: 'pi pi-eye',\n label: 'Toggle Focus Mode',\n versionAdded: '1.3.27',\n function: () => {\n useWorkspaceStore().toggleFocusMode()\n }\n },\n {\n id: 'Comfy.Graph.FitGroupToContents',\n icon: 'pi pi-expand',\n label: 'Fit Group To Contents',\n versionAdded: '1.4.9',\n function: () => {\n for (const group of app.canvas.selectedItems) {\n if (group instanceof LGraphGroup) {\n group.recomputeInsideNodes()\n const padding = useSettingStore().get(\n 'Comfy.GroupSelectedNodes.Padding'\n )\n group.resizeTo(group.children, padding)\n app.graph.change()\n }\n }\n }\n },\n {\n id: 'Comfy.Help.OpenComfyUIIssues',\n icon: 'pi pi-github',\n label: 'Open ComfyUI Issues',\n menubarLabel: 'ComfyUI Issues',\n versionAdded: '1.5.5',\n function: () => {\n window.open(\n 'https://github.com/comfyanonymous/ComfyUI/issues',\n '_blank'\n )\n }\n },\n {\n id: 'Comfy.Help.OpenComfyUIDocs',\n icon: 'pi pi-info-circle',\n label: 'Open ComfyUI Docs',\n menubarLabel: 'ComfyUI Docs',\n versionAdded: '1.5.5',\n function: () => {\n window.open('https://docs.comfy.org/', '_blank')\n }\n },\n {\n id: 'Comfy.Help.OpenComfyOrgDiscord',\n icon: 'pi pi-discord',\n label: 'Open Comfy-Org Discord',\n menubarLabel: 'Comfy-Org Discord',\n versionAdded: '1.5.5',\n function: () => {\n window.open('https://www.comfy.org/discord', '_blank')\n }\n },\n {\n id: 'Workspace.SearchBox.Toggle',\n icon: 'pi pi-search',\n label: 'Toggle Search Box',\n versionAdded: '1.5.7',\n function: () => {\n useSearchBoxStore().toggleVisible()\n }\n },\n {\n id: 'Comfy.Help.AboutComfyUI',\n icon: 'pi pi-info-circle',\n label: 'Open About ComfyUI',\n menubarLabel: 'About ComfyUI',\n versionAdded: '1.6.4',\n function: () => {\n dialogService.showSettingsDialog('about')\n }\n },\n {\n id: 'Comfy.DuplicateWorkflow',\n icon: 'pi pi-clone',\n label: 'Duplicate Current Workflow',\n versionAdded: '1.6.15',\n function: () => {\n workflowService.duplicateWorkflow(workflowStore.activeWorkflow!)\n }\n }\n ]\n}\n","import { api } from '@/scripts/api'\nimport { app } from '@/scripts/app'\nimport {\n useQueuePendingTaskCountStore,\n useQueueSettingsStore\n} from '@/stores/queueStore'\n\nexport function setupAutoQueueHandler() {\n const queueCountStore = useQueuePendingTaskCountStore()\n const queueSettingsStore = useQueueSettingsStore()\n\n let graphHasChanged = false\n let internalCount = 0 // Use an internal counter here so it is instantly updated when re-queuing\n api.addEventListener('graphChanged', () => {\n if (queueSettingsStore.mode === 'change') {\n if (internalCount) {\n graphHasChanged = true\n } else {\n graphHasChanged = false\n app.queuePrompt(0, queueSettingsStore.batchCount)\n internalCount++\n }\n }\n })\n\n queueCountStore.$subscribe(\n () => {\n internalCount = queueCountStore.count\n if (!internalCount && !app.lastExecutionError) {\n if (\n queueSettingsStore.mode === 'instant' ||\n (queueSettingsStore.mode === 'change' && graphHasChanged)\n ) {\n graphHasChanged = false\n app.queuePrompt(0, queueSettingsStore.batchCount)\n }\n }\n },\n { detached: true }\n )\n}\n","\n\n\n"],"names":["theme","classes","inlineStyles","root","script$1","BaseComponent","provide","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","_arrayLikeToArray","script","panels","_hoisted_1","_hoisted_2","render","createElementVNode","onKeydown","data","getPTOptions","mounted","beforeUnmount","content","showNavigators","ChevronLeftIcon","ChevronRightIcon","_hoisted_3","repeat","comfyApp","_typeof$1","o","updated","option","_hide","onFocus","onArrowLeftKey","onArrowRightKey","onHomeKey","onEndKey","onPageUpKey","onPageDownKey","onEnterKey","_","scrollInView","id","InputText","VirtualScroller","Portal","ChevronDownIcon","SpinnerIcon","Chip","_typeof","ownKeys","r","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","onRemove","ref","onClick","_sfc_main","AutoComplete","suggestions","search","Badge","item","widget","script$2","InfoCircleIcon","CheckIcon","ExclamationTriangleIcon","TimesCircleIcon","TimesIcon","render$1","message","onEnter","getAriaPosInset","AngleRightIcon","_hoisted_1$1","$attrsId","getItemProp","getItemLabel","isItemDisabled","isItemVisible","isItemGroup","show","hide","onBlur","onKeyDown","activeItemPath","onOverlayClick","onItemClick","onItemMouseEnter","onItemMouseMove","onArrowDownKey","onArrowUpKey","onEscapeKey","onTabKey","onLeave","alignOverlay","bindOutsideClickListener","unbindOutsideClickListener","bindScrollListener","unbindScrollListener","bindResizeListener","unbindResizeListener","isSelected","processedItems","containerRef","hasFluid","Button","TieredMenu","clamp","submenu","getItemId","getItemKey","getItemLabelId","isItemActive","isItemFocused","getMenuItemProps","getAriaSetSize","AngleDownIcon","isItemSeparator","getProccessedItemLabel","isProccessedItemGroup","toggle","onItemChange","onSpaceKey","isItemMatched","isValidItem","isValidSelectedItem","findFirstItemIndex","findLastItemIndex","findNextItemIndex","findPrevItemIndex","findSelectedItemIndex","findFirstFocusedItemIndex","findLastFocusedItemIndex","searchItems","changeFocusedItemIndex","createProcessedItems","menubarRef","visibleItems","focusedItemId","BarsIcon","options","LatentPreviewMethod","LogLevel","HashFunction","AutoLaunch","CudaMalloc","FloatingPointPrecision","CrossAttentionMethod","VramManagement"],"mappings":"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","x_google_ignoreList":[3,4,5,6,8,9,10,11,14,15,23,24,29,30,38,39,41,42,43,44,49,50]} \ No newline at end of file diff --git a/web/assets/InstallView-ZoxdV0Ib.js b/web/assets/InstallView-AV2llYNm.js similarity index 99% rename from web/assets/InstallView-ZoxdV0Ib.js rename to web/assets/InstallView-AV2llYNm.js index 172bf13246c..0b455d93fd0 100644 --- a/web/assets/InstallView-ZoxdV0Ib.js +++ b/web/assets/InstallView-AV2llYNm.js @@ -1,7 +1,7 @@ var __defProp = Object.defineProperty; var __name = (target, value2) => __defProp(target, "name", { value: value2, configurable: true }); -import { B as BaseStyle, q as script$6, o as openBlock, f as createElementBlock, D as mergeProps, c1 as findIndexInList, c2 as find, aB as resolveComponent, k as createBlock, G as resolveDynamicComponent, M as withCtx, H as createBaseVNode, X as toDisplayString, J as renderSlot, I as createCommentVNode, T as normalizeClass, P as findSingle, F as Fragment, aC as Transition, i as withDirectives, v as vShow, ak as UniqueComponentId, d as defineComponent, ab as ref, c3 as useModel, N as createVNode, j as unref, c4 as script$7, bQ as script$8, bM as withModifiers, aP as script$9, a1 as useI18n, c as computed, aI as script$a, aE as createTextVNode, c0 as electronAPI, m as onMounted, r as resolveDirective, av as script$b, c5 as script$c, c6 as script$d, l as script$e, bZ as script$f, c7 as MigrationItems, w as watchEffect, E as renderList, c8 as script$g, bW as useRouter, aL as pushScopeId, aM as popScopeId, aU as toRaw, _ as _export_sfc } from "./index-BbhVsmQe.js"; -import { _ as _sfc_main$5 } from "./BaseViewTemplate-qOhVwbhN.js"; +import { B as BaseStyle, q as script$6, o as openBlock, f as createElementBlock, D as mergeProps, c1 as findIndexInList, c2 as find, aB as resolveComponent, k as createBlock, G as resolveDynamicComponent, M as withCtx, H as createBaseVNode, X as toDisplayString, J as renderSlot, I as createCommentVNode, T as normalizeClass, P as findSingle, F as Fragment, aC as Transition, i as withDirectives, v as vShow, ak as UniqueComponentId, d as defineComponent, ab as ref, c3 as useModel, N as createVNode, j as unref, c4 as script$7, bQ as script$8, bM as withModifiers, aP as script$9, a1 as useI18n, c as computed, aI as script$a, aE as createTextVNode, c0 as electronAPI, m as onMounted, r as resolveDirective, av as script$b, c5 as script$c, c6 as script$d, l as script$e, bZ as script$f, c7 as MigrationItems, w as watchEffect, E as renderList, c8 as script$g, bW as useRouter, aL as pushScopeId, aM as popScopeId, aU as toRaw, _ as _export_sfc } from "./index-C4Fk50Nx.js"; +import { _ as _sfc_main$5 } from "./BaseViewTemplate-CsEJhGbv.js"; var classes$4 = { root: /* @__PURE__ */ __name(function root(_ref) { var instance = _ref.instance; @@ -1285,4 +1285,4 @@ const InstallView = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data- export { InstallView as default }; -//# sourceMappingURL=InstallView-ZoxdV0Ib.js.map +//# sourceMappingURL=InstallView-AV2llYNm.js.map diff --git a/web/assets/InstallView-AV2llYNm.js.map b/web/assets/InstallView-AV2llYNm.js.map new file mode 100644 index 00000000000..9f77a8890da --- /dev/null +++ b/web/assets/InstallView-AV2llYNm.js.map @@ -0,0 +1 @@ +{"version":3,"file":"InstallView-AV2llYNm.js","sources":["../../node_modules/primevue/step/style/index.mjs","../../node_modules/primevue/step/index.mjs","../../node_modules/primevue/steplist/style/index.mjs","../../node_modules/primevue/steplist/index.mjs","../../node_modules/primevue/steppanel/style/index.mjs","../../node_modules/primevue/steppanel/index.mjs","../../node_modules/primevue/steppanels/style/index.mjs","../../node_modules/primevue/steppanels/index.mjs","../../node_modules/primevue/stepper/style/index.mjs","../../node_modules/primevue/stepper/index.mjs","../../src/components/install/DesktopSettingsConfiguration.vue","../../../../../../../assets/images/nvidia-logo.svg","../../../../../../../assets/images/apple-mps-logo.png","../../../../../../../assets/images/manual-configuration.svg","../../src/components/install/GpuPicker.vue","../../src/components/install/InstallLocationPicker.vue","../../src/components/install/MigrationPicker.vue","../../src/views/InstallView.vue"],"sourcesContent":["import BaseStyle from '@primevue/core/base/style';\n\nvar classes = {\n root: function root(_ref) {\n var instance = _ref.instance;\n return ['p-step', {\n 'p-step-active': instance.active,\n 'p-disabled': instance.isStepDisabled\n }];\n },\n header: 'p-step-header',\n number: 'p-step-number',\n title: 'p-step-title'\n};\nvar StepStyle = BaseStyle.extend({\n name: 'step',\n classes: classes\n});\n\nexport { StepStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { find } from '@primeuix/utils/dom';\nimport { findIndexInList } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { openBlock, createElementBlock, mergeProps, resolveComponent, createBlock, resolveDynamicComponent, withCtx, createElementVNode, toDisplayString, renderSlot, createCommentVNode, normalizeClass } from 'vue';\nimport StepStyle from 'primevue/step/style';\n\nvar script$2 = {\n name: 'StepperSeparator',\n hostName: 'Stepper',\n \"extends\": BaseComponent\n};\n\nfunction render$1(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps({\n \"class\": _ctx.cx('separator')\n }, _ctx.ptm('separator')), null, 16);\n}\n\nscript$2.render = render$1;\n\nvar script$1 = {\n name: 'BaseStep',\n \"extends\": BaseComponent,\n props: {\n value: {\n type: [String, Number],\n \"default\": undefined\n },\n disabled: {\n type: Boolean,\n \"default\": false\n },\n asChild: {\n type: Boolean,\n \"default\": false\n },\n as: {\n type: [String, Object],\n \"default\": 'DIV'\n }\n },\n style: StepStyle,\n provide: function provide() {\n return {\n $pcStep: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'Step',\n \"extends\": script$1,\n inheritAttrs: false,\n inject: {\n $pcStepper: {\n \"default\": null\n },\n $pcStepList: {\n \"default\": null\n },\n $pcStepItem: {\n \"default\": null\n }\n },\n data: function data() {\n return {\n isSeparatorVisible: false\n };\n },\n mounted: function mounted() {\n if (this.$el && this.$pcStepList) {\n var index = findIndexInList(this.$el, find(this.$pcStepper.$el, '[data-pc-name=\"step\"]'));\n var stepLen = find(this.$pcStepper.$el, '[data-pc-name=\"step\"]').length;\n this.isSeparatorVisible = index !== stepLen - 1;\n }\n },\n methods: {\n getPTOptions: function getPTOptions(key) {\n var _ptm = key === 'root' ? this.ptmi : this.ptm;\n return _ptm(key, {\n context: {\n active: this.active,\n disabled: this.isStepDisabled\n }\n });\n },\n onStepClick: function onStepClick() {\n this.$pcStepper.updateValue(this.activeValue);\n }\n },\n computed: {\n active: function active() {\n return this.$pcStepper.isStepActive(this.activeValue);\n },\n activeValue: function activeValue() {\n var _this$$pcStepItem;\n return !!this.$pcStepItem ? (_this$$pcStepItem = this.$pcStepItem) === null || _this$$pcStepItem === void 0 ? void 0 : _this$$pcStepItem.value : this.value;\n },\n isStepDisabled: function isStepDisabled() {\n return !this.active && (this.$pcStepper.isStepDisabled() || this.disabled);\n },\n id: function id() {\n var _this$$pcStepper;\n return \"\".concat((_this$$pcStepper = this.$pcStepper) === null || _this$$pcStepper === void 0 ? void 0 : _this$$pcStepper.id, \"_step_\").concat(this.activeValue);\n },\n ariaControls: function ariaControls() {\n var _this$$pcStepper2;\n return \"\".concat((_this$$pcStepper2 = this.$pcStepper) === null || _this$$pcStepper2 === void 0 ? void 0 : _this$$pcStepper2.id, \"_steppanel_\").concat(this.activeValue);\n },\n a11yAttrs: function a11yAttrs() {\n return {\n root: {\n role: 'presentation',\n 'aria-current': this.active ? 'step' : undefined,\n 'data-pc-name': 'step',\n 'data-pc-section': 'root',\n 'data-p-disabled': this.disabled,\n 'data-p-active': this.active\n },\n header: {\n id: this.id,\n role: 'tab',\n taindex: this.disabled ? -1 : undefined,\n 'aria-controls': this.ariaControls,\n 'data-pc-section': 'header',\n disabled: this.disabled,\n onClick: this.onStepClick\n }\n };\n }\n },\n components: {\n StepperSeparator: script$2\n }\n};\n\nvar _hoisted_1 = [\"id\", \"tabindex\", \"aria-controls\", \"disabled\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_StepperSeparator = resolveComponent(\"StepperSeparator\");\n return !_ctx.asChild ? (openBlock(), createBlock(resolveDynamicComponent(_ctx.as), mergeProps({\n key: 0,\n \"class\": _ctx.cx('root'),\n \"aria-current\": $options.active ? 'step' : undefined,\n role: \"presentation\",\n \"data-p-active\": $options.active,\n \"data-p-disabled\": $options.isStepDisabled\n }, $options.getPTOptions('root')), {\n \"default\": withCtx(function () {\n return [createElementVNode(\"button\", mergeProps({\n id: $options.id,\n \"class\": _ctx.cx('header'),\n role: \"tab\",\n type: \"button\",\n tabindex: $options.isStepDisabled ? -1 : undefined,\n \"aria-controls\": $options.ariaControls,\n disabled: $options.isStepDisabled,\n onClick: _cache[0] || (_cache[0] = function () {\n return $options.onStepClick && $options.onStepClick.apply($options, arguments);\n })\n }, $options.getPTOptions('header')), [createElementVNode(\"span\", mergeProps({\n \"class\": _ctx.cx('number')\n }, $options.getPTOptions('number')), toDisplayString($options.activeValue), 17), createElementVNode(\"span\", mergeProps({\n \"class\": _ctx.cx('title')\n }, $options.getPTOptions('title')), [renderSlot(_ctx.$slots, \"default\")], 16)], 16, _hoisted_1), $data.isSeparatorVisible ? (openBlock(), createBlock(_component_StepperSeparator, {\n key: 0\n })) : createCommentVNode(\"\", true)];\n }),\n _: 3\n }, 16, [\"class\", \"aria-current\", \"data-p-active\", \"data-p-disabled\"])) : renderSlot(_ctx.$slots, \"default\", {\n key: 1,\n \"class\": normalizeClass(_ctx.cx('root')),\n active: $options.active,\n value: _ctx.value,\n a11yAttrs: $options.a11yAttrs,\n activateCallback: $options.onStepClick\n });\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar classes = {\n root: 'p-steplist'\n};\nvar StepListStyle = BaseStyle.extend({\n name: 'steplist',\n classes: classes\n});\n\nexport { StepListStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseComponent from '@primevue/core/basecomponent';\nimport StepListStyle from 'primevue/steplist/style';\nimport { openBlock, createElementBlock, mergeProps, renderSlot } from 'vue';\n\nvar script$1 = {\n name: 'BaseStepList',\n \"extends\": BaseComponent,\n style: StepListStyle,\n provide: function provide() {\n return {\n $pcStepList: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'StepList',\n \"extends\": script$1,\n inheritAttrs: false\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root')), [renderSlot(_ctx.$slots, \"default\")], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar classes = {\n root: function root(_ref) {\n var instance = _ref.instance;\n return ['p-steppanel', {\n 'p-steppanel-active': instance.isVertical && instance.active\n }];\n },\n content: 'p-steppanel-content'\n};\nvar StepPanelStyle = BaseStyle.extend({\n name: 'steppanel',\n classes: classes\n});\n\nexport { StepPanelStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { find, findSingle } from '@primeuix/utils/dom';\nimport { findIndexInList } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { openBlock, createElementBlock, mergeProps, resolveComponent, Fragment, createBlock, Transition, withCtx, withDirectives, resolveDynamicComponent, createCommentVNode, createElementVNode, renderSlot, vShow } from 'vue';\nimport StepPanelStyle from 'primevue/steppanel/style';\n\nvar script$2 = {\n name: 'StepperSeparator',\n hostName: 'Stepper',\n \"extends\": BaseComponent\n};\n\nfunction render$1(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps({\n \"class\": _ctx.cx('separator')\n }, _ctx.ptm('separator')), null, 16);\n}\n\nscript$2.render = render$1;\n\nvar script$1 = {\n name: 'BaseStepPanel',\n \"extends\": BaseComponent,\n props: {\n value: {\n type: [String, Number],\n \"default\": undefined\n },\n asChild: {\n type: Boolean,\n \"default\": false\n },\n as: {\n type: [String, Object],\n \"default\": 'DIV'\n }\n },\n style: StepPanelStyle,\n provide: function provide() {\n return {\n $pcStepPanel: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'StepPanel',\n \"extends\": script$1,\n inheritAttrs: false,\n inject: {\n $pcStepper: {\n \"default\": null\n },\n $pcStepItem: {\n \"default\": null\n },\n $pcStepList: {\n \"default\": null\n }\n },\n data: function data() {\n return {\n isSeparatorVisible: false\n };\n },\n mounted: function mounted() {\n if (this.$el) {\n var _this$$pcStepItem, _this$$pcStepList;\n var stepElements = find(this.$pcStepper.$el, '[data-pc-name=\"step\"]');\n var stepPanelEl = findSingle(this.isVertical ? (_this$$pcStepItem = this.$pcStepItem) === null || _this$$pcStepItem === void 0 ? void 0 : _this$$pcStepItem.$el : (_this$$pcStepList = this.$pcStepList) === null || _this$$pcStepList === void 0 ? void 0 : _this$$pcStepList.$el, '[data-pc-name=\"step\"]');\n var stepPanelIndex = findIndexInList(stepPanelEl, stepElements);\n this.isSeparatorVisible = this.isVertical && stepPanelIndex !== stepElements.length - 1;\n }\n },\n methods: {\n getPTOptions: function getPTOptions(key) {\n var _ptm = key === 'root' ? this.ptmi : this.ptm;\n return _ptm(key, {\n context: {\n active: this.active\n }\n });\n },\n updateValue: function updateValue(val) {\n this.$pcStepper.updateValue(val);\n }\n },\n computed: {\n active: function active() {\n var _this$$pcStepItem2, _this$$pcStepper;\n var activeValue = !!this.$pcStepItem ? (_this$$pcStepItem2 = this.$pcStepItem) === null || _this$$pcStepItem2 === void 0 ? void 0 : _this$$pcStepItem2.value : this.value;\n return activeValue === ((_this$$pcStepper = this.$pcStepper) === null || _this$$pcStepper === void 0 ? void 0 : _this$$pcStepper.d_value);\n },\n isVertical: function isVertical() {\n return !!this.$pcStepItem;\n },\n activeValue: function activeValue() {\n var _this$$pcStepItem3;\n return this.isVertical ? (_this$$pcStepItem3 = this.$pcStepItem) === null || _this$$pcStepItem3 === void 0 ? void 0 : _this$$pcStepItem3.value : this.value;\n },\n id: function id() {\n var _this$$pcStepper2;\n return \"\".concat((_this$$pcStepper2 = this.$pcStepper) === null || _this$$pcStepper2 === void 0 ? void 0 : _this$$pcStepper2.id, \"_steppanel_\").concat(this.activeValue);\n },\n ariaControls: function ariaControls() {\n var _this$$pcStepper3;\n return \"\".concat((_this$$pcStepper3 = this.$pcStepper) === null || _this$$pcStepper3 === void 0 ? void 0 : _this$$pcStepper3.id, \"_step_\").concat(this.activeValue);\n },\n a11yAttrs: function a11yAttrs() {\n return {\n id: this.id,\n role: 'tabpanel',\n 'aria-controls': this.ariaControls,\n 'data-pc-name': 'steppanel',\n 'data-p-active': this.active\n };\n }\n },\n components: {\n StepperSeparator: script$2\n }\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_StepperSeparator = resolveComponent(\"StepperSeparator\");\n return $options.isVertical ? (openBlock(), createElementBlock(Fragment, {\n key: 0\n }, [!_ctx.asChild ? (openBlock(), createBlock(Transition, mergeProps({\n key: 0,\n name: \"p-toggleable-content\"\n }, _ctx.ptm('transition')), {\n \"default\": withCtx(function () {\n return [withDirectives((openBlock(), createBlock(resolveDynamicComponent(_ctx.as), mergeProps({\n id: $options.id,\n \"class\": _ctx.cx('root'),\n role: \"tabpanel\",\n \"aria-controls\": $options.ariaControls\n }, $options.getPTOptions('root')), {\n \"default\": withCtx(function () {\n return [$data.isSeparatorVisible ? (openBlock(), createBlock(_component_StepperSeparator, {\n key: 0\n })) : createCommentVNode(\"\", true), createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('content')\n }, $options.getPTOptions('content')), [renderSlot(_ctx.$slots, \"default\", {\n active: $options.active,\n activateCallback: function activateCallback(val) {\n return $options.updateValue(val);\n }\n })], 16)];\n }),\n _: 3\n }, 16, [\"id\", \"class\", \"aria-controls\"])), [[vShow, $options.active]])];\n }),\n _: 3\n }, 16)) : renderSlot(_ctx.$slots, \"default\", {\n key: 1,\n active: $options.active,\n a11yAttrs: $options.a11yAttrs,\n activateCallback: function activateCallback(val) {\n return $options.updateValue(val);\n }\n })], 64)) : (openBlock(), createElementBlock(Fragment, {\n key: 1\n }, [!_ctx.asChild ? withDirectives((openBlock(), createBlock(resolveDynamicComponent(_ctx.as), mergeProps({\n key: 0,\n id: $options.id,\n \"class\": _ctx.cx('root'),\n role: \"tabpanel\",\n \"aria-controls\": $options.ariaControls\n }, $options.getPTOptions('root')), {\n \"default\": withCtx(function () {\n return [renderSlot(_ctx.$slots, \"default\", {\n active: $options.active,\n activateCallback: function activateCallback(val) {\n return $options.updateValue(val);\n }\n })];\n }),\n _: 3\n }, 16, [\"id\", \"class\", \"aria-controls\"])), [[vShow, $options.active]]) : _ctx.asChild && $options.active ? renderSlot(_ctx.$slots, \"default\", {\n key: 1,\n active: $options.active,\n a11yAttrs: $options.a11yAttrs,\n activateCallback: function activateCallback(val) {\n return $options.updateValue(val);\n }\n }) : createCommentVNode(\"\", true)], 64));\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar classes = {\n root: 'p-steppanels'\n};\nvar StepPanelsStyle = BaseStyle.extend({\n name: 'steppanels',\n classes: classes\n});\n\nexport { StepPanelsStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseComponent from '@primevue/core/basecomponent';\nimport StepPanelsStyle from 'primevue/steppanels/style';\nimport { openBlock, createElementBlock, mergeProps, renderSlot } from 'vue';\n\nvar script$1 = {\n name: 'BaseStepPanels',\n \"extends\": BaseComponent,\n style: StepPanelsStyle,\n provide: function provide() {\n return {\n $pcStepPanels: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'StepPanels',\n \"extends\": script$1,\n inheritAttrs: false\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root')), [renderSlot(_ctx.$slots, \"default\")], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-steplist {\\n position: relative;\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n margin: 0;\\n padding: 0;\\n list-style-type: none;\\n overflow-x: auto;\\n}\\n\\n.p-step {\\n position: relative;\\n display: flex;\\n flex: 1 1 auto;\\n align-items: center;\\n gap: \".concat(dt('stepper.step.gap'), \";\\n padding: \").concat(dt('stepper.step.padding'), \";\\n}\\n\\n.p-step:last-of-type {\\n flex: initial;\\n}\\n\\n.p-step-header {\\n border: 0 none;\\n display: inline-flex;\\n align-items: center;\\n text-decoration: none;\\n cursor: pointer;\\n transition: background \").concat(dt('stepper.transition.duration'), \", color \").concat(dt('stepper.transition.duration'), \", border-color \").concat(dt('stepper.transition.duration'), \", outline-color \").concat(dt('stepper.transition.duration'), \", box-shadow \").concat(dt('stepper.transition.duration'), \";\\n border-radius: \").concat(dt('stepper.step.header.border.radius'), \";\\n outline-color: transparent;\\n background: transparent;\\n padding: \").concat(dt('stepper.step.header.padding'), \";\\n gap: \").concat(dt('stepper.step.header.gap'), \";\\n}\\n\\n.p-step-header:focus-visible {\\n box-shadow: \").concat(dt('stepper.step.header.focus.ring.shadow'), \";\\n outline: \").concat(dt('stepper.step.header.focus.ring.width'), \" \").concat(dt('stepper.step.header.focus.ring.style'), \" \").concat(dt('stepper.step.header.focus.ring.color'), \";\\n outline-offset: \").concat(dt('stepper.step.header.focus.ring.offset'), \";\\n}\\n\\n.p-stepper.p-stepper-readonly .p-step {\\n cursor: auto;\\n}\\n\\n.p-step-title {\\n display: block;\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n max-width: 100%;\\n color: \").concat(dt('stepper.step.title.color'), \";\\n font-weight: \").concat(dt('stepper.step.title.font.weight'), \";\\n transition: background \").concat(dt('stepper.transition.duration'), \", color \").concat(dt('stepper.transition.duration'), \", border-color \").concat(dt('stepper.transition.duration'), \", box-shadow \").concat(dt('stepper.transition.duration'), \", outline-color \").concat(dt('stepper.transition.duration'), \";\\n}\\n\\n.p-step-number {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n color: \").concat(dt('stepper.step.number.color'), \";\\n border: 2px solid \").concat(dt('stepper.step.number.border.color'), \";\\n background: \").concat(dt('stepper.step.number.background'), \";\\n min-width: \").concat(dt('stepper.step.number.size'), \";\\n height: \").concat(dt('stepper.step.number.size'), \";\\n line-height: \").concat(dt('stepper.step.number.size'), \";\\n font-size: \").concat(dt('stepper.step.number.font.size'), \";\\n z-index: 1;\\n border-radius: \").concat(dt('stepper.step.number.border.radius'), \";\\n position: relative;\\n font-weight: \").concat(dt('stepper.step.number.font.weight'), \";\\n}\\n\\n.p-step-number::after {\\n content: \\\" \\\";\\n position: absolute;\\n width: 100%;\\n height: 100%;\\n border-radius: \").concat(dt('stepper.step.number.border.radius'), \";\\n box-shadow: \").concat(dt('stepper.step.number.shadow'), \";\\n}\\n\\n.p-step-active .p-step-header {\\n cursor: default;\\n}\\n\\n.p-step-active .p-step-number {\\n background: \").concat(dt('stepper.step.number.active.background'), \";\\n border-color: \").concat(dt('stepper.step.number.active.border.color'), \";\\n color: \").concat(dt('stepper.step.number.active.color'), \";\\n}\\n\\n.p-step-active .p-step-title {\\n color: \").concat(dt('stepper.step.title.active.color'), \";\\n}\\n\\n.p-step:not(.p-disabled):focus-visible {\\n outline: \").concat(dt('focus.ring.width'), \" \").concat(dt('focus.ring.style'), \" \").concat(dt('focus.ring.color'), \";\\n outline-offset: \").concat(dt('focus.ring.offset'), \";\\n}\\n\\n.p-step:has(~ .p-step-active) .p-stepper-separator {\\n background: \").concat(dt('stepper.separator.active.background'), \";\\n}\\n\\n.p-stepper-separator {\\n flex: 1 1 0;\\n background: \").concat(dt('stepper.separator.background'), \";\\n width: 100%;\\n height: \").concat(dt('stepper.separator.size'), \";\\n transition: background \").concat(dt('stepper.transition.duration'), \", color \").concat(dt('stepper.transition.duration'), \", border-color \").concat(dt('stepper.transition.duration'), \", box-shadow \").concat(dt('stepper.transition.duration'), \", outline-color \").concat(dt('stepper.transition.duration'), \";\\n}\\n\\n.p-steppanels {\\n padding: \").concat(dt('stepper.steppanels.padding'), \";\\n}\\n\\n.p-steppanel {\\n background: \").concat(dt('stepper.steppanel.background'), \";\\n color: \").concat(dt('stepper.steppanel.color'), \";\\n}\\n\\n.p-stepper:has(.p-stepitem) {\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.p-stepitem {\\n display: flex;\\n flex-direction: column;\\n flex: initial;\\n}\\n\\n.p-stepitem.p-stepitem-active {\\n flex: 1 1 auto;\\n}\\n\\n.p-stepitem .p-step {\\n flex: initial;\\n}\\n\\n.p-stepitem .p-steppanel-content {\\n width: 100%;\\n padding: \").concat(dt('stepper.steppanel.padding'), \";\\n}\\n\\n.p-stepitem .p-steppanel {\\n display: flex;\\n flex: 1 1 auto;\\n}\\n\\n.p-stepitem .p-stepper-separator {\\n flex: 0 0 auto;\\n width: \").concat(dt('stepper.separator.size'), \";\\n height: auto;\\n margin: \").concat(dt('stepper.separator.margin'), \";\\n position: relative;\\n left: calc(-1 * \").concat(dt('stepper.separator.size'), \");\\n}\\n\\n.p-stepitem:has(~ .p-stepitem-active) .p-stepper-separator {\\n background: \").concat(dt('stepper.separator.active.background'), \";\\n}\\n\\n.p-stepitem:last-of-type .p-steppanel {\\n padding-inline-start: \").concat(dt('stepper.step.number.size'), \";\\n}\\n\");\n};\nvar classes = {\n root: function root(_ref2) {\n var props = _ref2.props;\n return ['p-stepper p-component', {\n 'p-readonly': props.linear\n }];\n },\n separator: 'p-stepper-separator'\n};\nvar StepperStyle = BaseStyle.extend({\n name: 'stepper',\n theme: theme,\n classes: classes\n});\n\nexport { StepperStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { UniqueComponentId } from '@primevue/core/utils';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport StepperStyle from 'primevue/stepper/style';\nimport { openBlock, createElementBlock, mergeProps, renderSlot, createCommentVNode } from 'vue';\n\nvar script$1 = {\n name: 'BaseStepper',\n \"extends\": BaseComponent,\n props: {\n value: {\n type: [String, Number],\n \"default\": undefined\n },\n linear: {\n type: Boolean,\n \"default\": false\n }\n },\n style: StepperStyle,\n provide: function provide() {\n return {\n $pcStepper: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'Stepper',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['update:value'],\n data: function data() {\n return {\n id: this.$attrs.id,\n d_value: this.value\n };\n },\n watch: {\n '$attrs.id': function $attrsId(newValue) {\n this.id = newValue || UniqueComponentId();\n },\n value: function value(newValue) {\n this.d_value = newValue;\n }\n },\n mounted: function mounted() {\n this.id = this.id || UniqueComponentId();\n },\n methods: {\n updateValue: function updateValue(newValue) {\n if (this.d_value !== newValue) {\n this.d_value = newValue;\n this.$emit('update:value', newValue);\n }\n },\n isStepActive: function isStepActive(value) {\n return this.d_value === value;\n },\n isStepDisabled: function isStepDisabled() {\n return this.linear;\n }\n }\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root'),\n role: \"tablist\"\n }, _ctx.ptmi('root')), [_ctx.$slots.start ? renderSlot(_ctx.$slots, \"start\", {\n key: 0\n }) : createCommentVNode(\"\", true), renderSlot(_ctx.$slots, \"default\"), _ctx.$slots.end ? renderSlot(_ctx.$slots, \"end\", {\n key: 1\n }) : createCommentVNode(\"\", true)], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n","export default \"__VITE_PUBLIC_ASSET__fe43f3f5__\"","export default \"__VITE_PUBLIC_ASSET__2bae65e3__\"","export default \"__VITE_PUBLIC_ASSET__57befc1b__\"","\n\n\n\n\n","\n\n\n","\n\n\n","\n\n\n\n\n"],"names":["classes","script$2","BaseComponent","render$1","script$1","script","_hoisted_1","render","createElementVNode","provide","root","data","mounted","getPTOptions","active","activeValue","id","ariaControls","a11yAttrs","theme","updateValue","value","isStepDisabled","_useModel","sourcePath"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9]} \ No newline at end of file diff --git a/web/assets/KeybindingPanel-COhe3VgH.js b/web/assets/KeybindingPanel-CxaJ1IiJ.js similarity index 98% rename from web/assets/KeybindingPanel-COhe3VgH.js rename to web/assets/KeybindingPanel-CxaJ1IiJ.js index 797026565ec..f165f9a510a 100644 --- a/web/assets/KeybindingPanel-COhe3VgH.js +++ b/web/assets/KeybindingPanel-CxaJ1IiJ.js @@ -1,10 +1,10 @@ var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -import { d as defineComponent, c as computed, o as openBlock, f as createElementBlock, F as Fragment, E as renderList, N as createVNode, M as withCtx, aE as createTextVNode, X as toDisplayString, j as unref, aI as script, I as createCommentVNode, ab as ref, cn as FilterMatchMode, a$ as useKeybindingStore, a2 as useCommandStore, a1 as useI18n, af as normalizeI18nKey, w as watchEffect, bs as useToast, r as resolveDirective, k as createBlock, co as SearchBox, H as createBaseVNode, l as script$2, av as script$4, bM as withModifiers, bZ as script$5, aP as script$6, i as withDirectives, cp as _sfc_main$2, aL as pushScopeId, aM as popScopeId, cq as KeyComboImpl, cr as KeybindingImpl, _ as _export_sfc } from "./index-BbhVsmQe.js"; -import { s as script$1, a as script$3 } from "./index-DIIs-Ju9.js"; -import { u as useKeybindingService } from "./keybindingService-DohhteGb.js"; -import "./index-BQjD3NM4.js"; -import "./index-VIBj2YvH.js"; +import { d as defineComponent, c as computed, o as openBlock, f as createElementBlock, F as Fragment, E as renderList, N as createVNode, M as withCtx, aE as createTextVNode, X as toDisplayString, j as unref, aI as script, I as createCommentVNode, ab as ref, cn as FilterMatchMode, a$ as useKeybindingStore, a2 as useCommandStore, a1 as useI18n, af as normalizeI18nKey, w as watchEffect, bs as useToast, r as resolveDirective, k as createBlock, co as SearchBox, H as createBaseVNode, l as script$2, av as script$4, bM as withModifiers, bZ as script$5, aP as script$6, i as withDirectives, cp as _sfc_main$2, aL as pushScopeId, aM as popScopeId, cq as KeyComboImpl, cr as KeybindingImpl, _ as _export_sfc } from "./index-C4Fk50Nx.js"; +import { s as script$1, a as script$3 } from "./index-CK0rrCYF.js"; +import { u as useKeybindingService } from "./keybindingService-D48fkLBy.js"; +import "./index-lMQBwSDj.js"; +import "./index-B7ycxfFq.js"; const _hoisted_1$1 = { key: 0, class: "px-2" @@ -281,4 +281,4 @@ const KeybindingPanel = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "d export { KeybindingPanel as default }; -//# sourceMappingURL=KeybindingPanel-COhe3VgH.js.map +//# sourceMappingURL=KeybindingPanel-CxaJ1IiJ.js.map diff --git a/web/assets/KeybindingPanel-CxaJ1IiJ.js.map b/web/assets/KeybindingPanel-CxaJ1IiJ.js.map new file mode 100644 index 00000000000..d7603948744 --- /dev/null +++ b/web/assets/KeybindingPanel-CxaJ1IiJ.js.map @@ -0,0 +1 @@ +{"version":3,"file":"KeybindingPanel-CxaJ1IiJ.js","sources":["../../src/components/dialog/content/setting/keybinding/KeyComboDisplay.vue","../../src/components/dialog/content/setting/KeybindingPanel.vue"],"sourcesContent":["\n\n\n","\n\n\n\n\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAiBA,UAAM,QAAQ;AAUd,UAAM,eAAe,SAAS,MAAM,MAAM,SAAS,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;ACkHpE,UAAM,UAAU,IAAI;AAAA,MAClB,QAAQ,EAAE,OAAO,IAAI,WAAW,gBAAgB,SAAS;AAAA,IAAA,CAC1D;AAED,UAAM,kBAAkB;AACxB,UAAM,oBAAoB;AAC1B,UAAM,eAAe;AACf,UAAA,EAAE,MAAM;AAOR,UAAA,eAAe,SAAyB,MAAM;AAClD,aAAO,OAAO,OAAO,aAAa,QAAQ,EAAE,IAAI,CAAC,aAAa;AAAA,QAC5D,IAAI,QAAQ;AAAA,QACZ,OAAO,EAAE,YAAY,iBAAiB,QAAQ,EAAE,CAAC,UAAU,QAAQ,KAAK;AAAA,QACxE,YAAY,gBAAgB,yBAAyB,QAAQ,EAAE;AAAA,MAC/D,EAAA;AAAA,IAAA,CACH;AAEK,UAAA,sBAAsB,IAAyB,IAAI;AACnD,UAAA,oBAAoB,IAAI,KAAK;AAC7B,UAAA,qBAAqB,IAAyB,IAAI;AAClD,UAAA,wBAAwB,IAAyB,IAAI;AACrD,UAAA,kBAAkB,IAAI,IAAI;AAE1B,UAAA,4BAA4B,SAAgC,MAAM;AAClE,UAAA,CAAC,sBAAsB,OAAO;AACzB,eAAA;AAAA,MACT;AAIE,UAAA,sBAAsB,MAAM,YAAY,OAAO;AAAA,QAC7C,mBAAmB;AAAA,MAAA,GAErB;AACO,eAAA;AAAA,MACT;AAEI,UAAA,CAAC,mBAAmB,OAAO;AACtB,eAAA;AAAA,MACT;AAEO,aAAA,gBAAgB,cAAc,mBAAmB,KAAK;AAAA,IAAA,CAC9D;AAED,aAAS,eAAe,aAA2B;AACjD,4BAAsB,QAAQ;AAC9B,yBAAmB,QAAQ,YAAY,aACnC,YAAY,WAAW,QACvB;AACJ,wBAAkB,QAAQ;AAAA,IAC5B;AANS;AAQT,gBAAY,MAAM;AAChB,UAAI,kBAAkB,OAAO;AAE3B,mBAAW,MAAM;AACC,0BAAA,OAAO,KAAK;WAC3B,GAAG;AAAA,MACR;AAAA,IAAA,CACD;AAED,aAAS,iBAAiB,aAA2B;AACnD,UAAI,YAAY,YAAY;AACV,wBAAA,gBAAgB,YAAY,UAAU;AACtD,0BAAkB,uBAAuB;AAAA,MAC3C;AAAA,IACF;AALS;AAOT,aAAS,kBAAkB,OAAsB;AACzC,YAAA,WAAW,aAAa,UAAU,KAAK;AAC7C,yBAAmB,QAAQ;AAAA,IAC7B;AAHS;AAKT,aAAS,aAAa;AACpB,wBAAkB,QAAQ;AAC1B,4BAAsB,QAAQ;AAC9B,yBAAmB,QAAQ;AAAA,IAC7B;AAJS;AAMT,aAAS,iBAAiB;AACpB,UAAA,sBAAsB,SAAS,mBAAmB,OAAO;AAC3D,cAAM,UAAU,gBAAgB;AAAA,UAC9B,IAAI,eAAe;AAAA,YACjB,WAAW,sBAAsB,MAAM;AAAA,YACvC,OAAO,mBAAmB;AAAA,UAAA,CAC3B;AAAA,QAAA;AAEH,YAAI,SAAS;AACX,4BAAkB,uBAAuB;AAAA,QAC3C;AAAA,MACF;AACW;IACb;AAbS;AAeT,UAAM,QAAQ;AACd,mBAAe,mBAAmB;AAChC,sBAAgB,iBAAiB;AACjC,YAAM,kBAAkB;AACxB,YAAM,IAAI;AAAA,QACR,UAAU;AAAA,QACV,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,MAAM;AAAA,MAAA,CACP;AAAA,IACH;AATe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/web/assets/ManualConfigurationView-CYxSElYw.js b/web/assets/ManualConfigurationView-BA4Vtud8.js similarity index 94% rename from web/assets/ManualConfigurationView-CYxSElYw.js rename to web/assets/ManualConfigurationView-BA4Vtud8.js index 8aca10347d6..122da4e9691 100644 --- a/web/assets/ManualConfigurationView-CYxSElYw.js +++ b/web/assets/ManualConfigurationView-BA4Vtud8.js @@ -1,9 +1,9 @@ var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -import { d as defineComponent, a1 as useI18n, ab as ref, m as onMounted, o as openBlock, k as createBlock, M as withCtx, H as createBaseVNode, X as toDisplayString, N as createVNode, j as unref, aI as script, l as script$2, c0 as electronAPI } from "./index-BbhVsmQe.js"; -import { s as script$1 } from "./index-BuE2B-Gw.js"; -import { _ as _sfc_main$1 } from "./BaseViewTemplate-qOhVwbhN.js"; -import "./index-VIBj2YvH.js"; +import { d as defineComponent, a1 as useI18n, ab as ref, m as onMounted, o as openBlock, k as createBlock, M as withCtx, H as createBaseVNode, X as toDisplayString, N as createVNode, j as unref, aI as script, l as script$2, c0 as electronAPI } from "./index-C4Fk50Nx.js"; +import { s as script$1 } from "./index-hdfnBvYs.js"; +import { _ as _sfc_main$1 } from "./BaseViewTemplate-CsEJhGbv.js"; +import "./index-B7ycxfFq.js"; const _hoisted_1 = { class: "comfy-installer grow flex flex-col gap-4 text-neutral-300 max-w-110" }; const _hoisted_2 = { class: "text-2xl font-semibold text-neutral-100" }; const _hoisted_3 = { class: "m-1 text-neutral-300" }; @@ -72,4 +72,4 @@ const _sfc_main = /* @__PURE__ */ defineComponent({ export { _sfc_main as default }; -//# sourceMappingURL=ManualConfigurationView-CYxSElYw.js.map +//# sourceMappingURL=ManualConfigurationView-BA4Vtud8.js.map diff --git a/web/assets/ManualConfigurationView-BA4Vtud8.js.map b/web/assets/ManualConfigurationView-BA4Vtud8.js.map new file mode 100644 index 00000000000..5fda8da8f78 --- /dev/null +++ b/web/assets/ManualConfigurationView-BA4Vtud8.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ManualConfigurationView-BA4Vtud8.js","sources":["../../src/views/ManualConfigurationView.vue"],"sourcesContent":["\n\n\n\n\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AA8DM,UAAA,EAAE,MAAM;AAEd,UAAM,WAAW;AAEX,UAAA,WAAW,IAAY,IAAI;AAC3B,UAAA,MAAM,IAAgB,GAAG;AAE/B,UAAM,aAAa,wBAAC,YAAqB,SAAS,WAAW,OAAO,GAAjD;AAEnB,cAAU,YAAY;AACX,eAAA,QAAQ,MAAM,SAAS,YAAY;AAC5C,UAAI,SAAS,MAAM,QAAQ,GAAG,MAAM,QAAQ,QAAQ;AAAA,IAAA,CACrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/web/assets/NotSupportedView-sBtNsodN.js b/web/assets/NotSupportedView-CRaD8u74.js similarity index 95% rename from web/assets/NotSupportedView-sBtNsodN.js rename to web/assets/NotSupportedView-CRaD8u74.js index 2b2a3524f79..07e3eca6484 100644 --- a/web/assets/NotSupportedView-sBtNsodN.js +++ b/web/assets/NotSupportedView-CRaD8u74.js @@ -1,7 +1,7 @@ var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -import { d as defineComponent, bW as useRouter, r as resolveDirective, o as openBlock, k as createBlock, M as withCtx, H as createBaseVNode, X as toDisplayString, N as createVNode, j as unref, l as script, i as withDirectives } from "./index-BbhVsmQe.js"; -import { _ as _sfc_main$1 } from "./BaseViewTemplate-qOhVwbhN.js"; +import { d as defineComponent, bW as useRouter, r as resolveDirective, o as openBlock, k as createBlock, M as withCtx, H as createBaseVNode, X as toDisplayString, N as createVNode, j as unref, l as script, i as withDirectives } from "./index-C4Fk50Nx.js"; +import { _ as _sfc_main$1 } from "./BaseViewTemplate-CsEJhGbv.js"; const _imports_0 = "" + new URL("images/sad_girl.png", import.meta.url).href; const _hoisted_1 = { class: "sad-container" }; const _hoisted_2 = /* @__PURE__ */ createBaseVNode("img", { @@ -83,4 +83,4 @@ const _sfc_main = /* @__PURE__ */ defineComponent({ export { _sfc_main as default }; -//# sourceMappingURL=NotSupportedView-sBtNsodN.js.map +//# sourceMappingURL=NotSupportedView-CRaD8u74.js.map diff --git a/web/assets/NotSupportedView-CRaD8u74.js.map b/web/assets/NotSupportedView-CRaD8u74.js.map new file mode 100644 index 00000000000..4b93e69bde7 --- /dev/null +++ b/web/assets/NotSupportedView-CRaD8u74.js.map @@ -0,0 +1 @@ +{"version":3,"file":"NotSupportedView-CRaD8u74.js","sources":["../../../../../../../assets/images/sad_girl.png","../../src/views/NotSupportedView.vue"],"sourcesContent":["export default \"__VITE_PUBLIC_ASSET__b82952e7__\"","\n\n\n\n\n"],"names":[],"mappings":";;;;AAAA,MAAe,aAAA,KAAA,IAAA,IAAA,uBAAA,YAAA,GAAA,EAAA;;;;;;;;;;;;;;;;;AC+Df,UAAM,WAAW,6BAAM;AACd,aAAA;AAAA,QACL;AAAA,QACA;AAAA,MAAA;AAAA,IACF,GAJe;AAOjB,UAAM,cAAc,6BAAM;AACjB,aAAA,KAAK,0CAA0C,QAAQ;AAAA,IAAA,GAD5C;AAIpB,UAAM,SAAS;AACf,UAAM,oBAAoB,6BAAM;AAC9B,aAAO,KAAK,UAAU;AAAA,IAAA,GADE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/web/assets/ServerConfigPanel-BHbwCDu2.js b/web/assets/ServerConfigPanel-TLv4HMGK.js similarity index 97% rename from web/assets/ServerConfigPanel-BHbwCDu2.js rename to web/assets/ServerConfigPanel-TLv4HMGK.js index fdc53a5359c..6489eb665e7 100644 --- a/web/assets/ServerConfigPanel-BHbwCDu2.js +++ b/web/assets/ServerConfigPanel-TLv4HMGK.js @@ -1,7 +1,7 @@ var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -import { H as createBaseVNode, o as openBlock, f as createElementBlock, Z as markRaw, d as defineComponent, a as useSettingStore, aS as storeToRefs, a5 as watch, cO as useCopyToClipboard, a1 as useI18n, k as createBlock, M as withCtx, j as unref, bZ as script, X as toDisplayString, E as renderList, F as Fragment, N as createVNode, l as script$1, I as createCommentVNode, bQ as script$2, cP as FormItem, cp as _sfc_main$1, c0 as electronAPI } from "./index-BbhVsmQe.js"; -import { u as useServerConfigStore } from "./serverConfigStore-CdBr6oWT.js"; +import { H as createBaseVNode, o as openBlock, f as createElementBlock, Z as markRaw, d as defineComponent, a as useSettingStore, aS as storeToRefs, a5 as watch, cO as useCopyToClipboard, a1 as useI18n, k as createBlock, M as withCtx, j as unref, bZ as script, X as toDisplayString, E as renderList, F as Fragment, N as createVNode, l as script$1, I as createCommentVNode, bQ as script$2, cP as FormItem, cp as _sfc_main$1, c0 as electronAPI } from "./index-C4Fk50Nx.js"; +import { u as useServerConfigStore } from "./serverConfigStore-BawYAb1j.js"; const _hoisted_1$1 = { viewBox: "0 0 24 24", width: "1.2em", @@ -155,4 +155,4 @@ const _sfc_main = /* @__PURE__ */ defineComponent({ export { _sfc_main as default }; -//# sourceMappingURL=ServerConfigPanel-BHbwCDu2.js.map +//# sourceMappingURL=ServerConfigPanel-TLv4HMGK.js.map diff --git a/web/assets/ServerConfigPanel-TLv4HMGK.js.map b/web/assets/ServerConfigPanel-TLv4HMGK.js.map new file mode 100644 index 00000000000..d9418754ecc --- /dev/null +++ b/web/assets/ServerConfigPanel-TLv4HMGK.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ServerConfigPanel-TLv4HMGK.js","sources":["../../src/components/dialog/content/setting/ServerConfigPanel.vue"],"sourcesContent":["\n\n\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqFA,UAAM,eAAe;AACrB,UAAM,oBAAoB;AACpB,UAAA;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,IACE,YAAY,iBAAiB;AAEjC,UAAM,gBAAgB,6BAAM;AAC1B,wBAAkB,cAAc;AAAA,IAAA,GADZ;AAItB,UAAM,aAAa,6BAAM;AACvB,kBAAA,EAAc;IAAW,GADR;AAIb,UAAA,YAAY,CAAC,WAAW;AACf,mBAAA,IAAI,2BAA2B,MAAM;AAAA,IAAA,CACnD;AAEK,UAAA,oBAAoB,CAAC,WAAW;AACvB,mBAAA,IAAI,mCAAmC,MAAM;AAAA,IAAA,CAC3D;AAEK,UAAA,EAAE,oBAAoB;AAC5B,UAAM,sBAAsB,mCAAY;AAChC,YAAA,gBAAgB,gBAAgB,KAAK;AAAA,IAAA,GADjB;AAItB,UAAA,EAAE,MAAM;AACR,UAAA,gBAAgB,wBAAC,SAA0C;AACxD,aAAA;AAAA,QACL,GAAG;AAAA,QACH,MAAM,EAAE,qBAAqB,KAAK,EAAE,SAAS,KAAK,IAAI;AAAA,QACtD,SAAS,KAAK,UACV,EAAE,qBAAqB,KAAK,EAAE,YAAY,KAAK,OAAO,IACtD;AAAA,MAAA;AAAA,IACN,GAPoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/web/assets/ServerStartView-BA9I3WCH.js b/web/assets/ServerStartView-CiO_acWT.js similarity index 95% rename from web/assets/ServerStartView-BA9I3WCH.js rename to web/assets/ServerStartView-CiO_acWT.js index 927592c12e1..1abcb36af29 100644 --- a/web/assets/ServerStartView-BA9I3WCH.js +++ b/web/assets/ServerStartView-CiO_acWT.js @@ -1,7 +1,7 @@ var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -import { d as defineComponent, a1 as useI18n, ab as ref, b_ as ProgressStatus, m as onMounted, o as openBlock, k as createBlock, M as withCtx, H as createBaseVNode, aE as createTextVNode, X as toDisplayString, j as unref, f as createElementBlock, I as createCommentVNode, N as createVNode, l as script, i as withDirectives, v as vShow, b$ as BaseTerminal, aL as pushScopeId, aM as popScopeId, c0 as electronAPI, _ as _export_sfc } from "./index-BbhVsmQe.js"; -import { _ as _sfc_main$1 } from "./BaseViewTemplate-qOhVwbhN.js"; +import { d as defineComponent, a1 as useI18n, ab as ref, b_ as ProgressStatus, m as onMounted, o as openBlock, k as createBlock, M as withCtx, H as createBaseVNode, aE as createTextVNode, X as toDisplayString, j as unref, f as createElementBlock, I as createCommentVNode, N as createVNode, l as script, i as withDirectives, v as vShow, b$ as BaseTerminal, aL as pushScopeId, aM as popScopeId, c0 as electronAPI, _ as _export_sfc } from "./index-C4Fk50Nx.js"; +import { _ as _sfc_main$1 } from "./BaseViewTemplate-CsEJhGbv.js"; const _withScopeId = /* @__PURE__ */ __name((n) => (pushScopeId("data-v-42c1131d"), n = n(), popScopeId(), n), "_withScopeId"); const _hoisted_1 = { class: "text-2xl font-bold" }; const _hoisted_2 = { key: 0 }; @@ -95,4 +95,4 @@ const ServerStartView = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "d export { ServerStartView as default }; -//# sourceMappingURL=ServerStartView-BA9I3WCH.js.map +//# sourceMappingURL=ServerStartView-CiO_acWT.js.map diff --git a/web/assets/ServerStartView-CiO_acWT.js.map b/web/assets/ServerStartView-CiO_acWT.js.map new file mode 100644 index 00000000000..a860eab3662 --- /dev/null +++ b/web/assets/ServerStartView-CiO_acWT.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ServerStartView-CiO_acWT.js","sources":["../../src/views/ServerStartView.vue"],"sourcesContent":["\n\n\n\n\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAuDA,UAAM,WAAW;AACX,UAAA,EAAE,MAAM;AAER,UAAA,SAAS,IAAoB,eAAe,aAAa;AACzD,UAAA,kBAAkB,IAAY,EAAE;AAClC,QAAA;AAEE,UAAA,kBAAkB,IAAI,IAAI;AAEhC,UAAM,iBAAiB,wBAAC,EAAE,QAAQ,gBAA4C;AAC5E,aAAO,QAAQ;AAGf,UAAI,cAAc,eAAe,MAAO,iBAAgB,QAAQ;AAAA,kBACpD,MAAM;AAAA,IAAA,GALG;AAQvB,UAAM,kBAAkB,wBACtB,EAAE,UAAU,YAAA,GACZ,SACG;AACK,cAAA;AAEI,kBAAA,MAAM,MAAM,IAAI;AACnB,eAAA,aAAa,CAAC,YAAoB;AACzC,iBAAS,MAAM,OAAO;AAAA,MAAA,CACvB;AAED,eAAS,QAAQ,cAAc;AAC/B,eAAS,QAAQ,eAAe;AAChC,eAAS,QAAQ,sBAAsB;AAAA,IAAA,GAbjB;AAgBlB,UAAA,YAAY,6BAAM,SAAS,aAAf;AAClB,UAAM,cAAc,6BAAM;AACjB,aAAA,KAAK,0CAA0C,QAAQ;AAAA,IAAA,GAD5C;AAGd,UAAA,WAAW,6BAAM,SAAS,kBAAf;AAEjB,cAAU,YAAY;AACpB,eAAS,UAAU;AACnB,eAAS,iBAAiB,cAAc;AACxB,sBAAA,QAAQ,MAAM,SAAS,mBAAmB;AAAA,IAAA,CAC3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/web/assets/UserSelectView-Bpmnopou.js b/web/assets/UserSelectView-2l9Kbchu.js similarity index 97% rename from web/assets/UserSelectView-Bpmnopou.js rename to web/assets/UserSelectView-2l9Kbchu.js index fc3ecc1762e..554218e5443 100644 --- a/web/assets/UserSelectView-Bpmnopou.js +++ b/web/assets/UserSelectView-2l9Kbchu.js @@ -1,7 +1,7 @@ var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -import { d as defineComponent, aX as useUserStore, bW as useRouter, ab as ref, c as computed, m as onMounted, o as openBlock, k as createBlock, M as withCtx, H as createBaseVNode, X as toDisplayString, N as createVNode, bX as withKeys, j as unref, av as script, bQ as script$1, bY as script$2, bZ as script$3, aE as createTextVNode, I as createCommentVNode, l as script$4 } from "./index-BbhVsmQe.js"; -import { _ as _sfc_main$1 } from "./BaseViewTemplate-qOhVwbhN.js"; +import { d as defineComponent, aX as useUserStore, bW as useRouter, ab as ref, c as computed, m as onMounted, o as openBlock, k as createBlock, M as withCtx, H as createBaseVNode, X as toDisplayString, N as createVNode, bX as withKeys, j as unref, av as script, bQ as script$1, bY as script$2, bZ as script$3, aE as createTextVNode, I as createCommentVNode, l as script$4 } from "./index-C4Fk50Nx.js"; +import { _ as _sfc_main$1 } from "./BaseViewTemplate-CsEJhGbv.js"; const _hoisted_1 = { id: "comfy-user-selection", class: "min-w-84 relative rounded-lg bg-[var(--comfy-menu-bg)] p-5 px-10 shadow-lg" @@ -99,4 +99,4 @@ const _sfc_main = /* @__PURE__ */ defineComponent({ export { _sfc_main as default }; -//# sourceMappingURL=UserSelectView-Bpmnopou.js.map +//# sourceMappingURL=UserSelectView-2l9Kbchu.js.map diff --git a/web/assets/UserSelectView-2l9Kbchu.js.map b/web/assets/UserSelectView-2l9Kbchu.js.map new file mode 100644 index 00000000000..b0c8cfb3b0c --- /dev/null +++ b/web/assets/UserSelectView-2l9Kbchu.js.map @@ -0,0 +1 @@ +{"version":3,"file":"UserSelectView-2l9Kbchu.js","sources":["../../src/views/UserSelectView.vue"],"sourcesContent":["\n\n\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAqDA,UAAM,YAAY;AAClB,UAAM,SAAS;AAET,UAAA,eAAe,IAAiB,IAAI;AACpC,UAAA,cAAc,IAAI,EAAE;AACpB,UAAA,aAAa,IAAI,EAAE;AAEzB,UAAM,gBAAgB,SAAS,MAAM,YAAY,MAAM,KAAA,MAAW,EAAE;AAC9D,UAAA,qBAAqB,SAAS,MAAM;AACxC,aAAO,UAAU,MAAM,KAAK,CAAC,SAAS,KAAK,aAAa,YAAY,KAAK,IACrE,SAAS,YAAY,KAAK,qBAC1B;AAAA,IAAA,CACL;AACD,UAAM,QAAQ,SAAS,MAAM,mBAAmB,SAAS,WAAW,KAAK;AAEzE,UAAM,QAAQ,mCAAY;AACpB,UAAA;AACI,cAAA,OAAO,cAAc,QACvB,MAAM,UAAU,WAAW,YAAY,KAAK,IAC5C,aAAa;AAEjB,YAAI,CAAC,MAAM;AACH,gBAAA,IAAI,MAAM,kBAAkB;AAAA,QACpC;AAEA,kBAAU,MAAM,IAAI;AACpB,eAAO,KAAK,GAAG;AAAA,eACR,KAAK;AACZ,mBAAW,QAAQ,IAAI,WAAW,KAAK,UAAU,GAAG;AAAA,MACtD;AAAA,IAAA,GAdY;AAiBd,cAAU,YAAY;AAChB,UAAA,CAAC,UAAU,aAAa;AAC1B,cAAM,UAAU;MAClB;AAAA,IAAA,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/web/assets/WelcomeView-Cg-dprpV.js b/web/assets/WelcomeView-CB7Th_kO.js similarity index 90% rename from web/assets/WelcomeView-Cg-dprpV.js rename to web/assets/WelcomeView-CB7Th_kO.js index 5fc71b0a4dd..d5adbd55878 100644 --- a/web/assets/WelcomeView-Cg-dprpV.js +++ b/web/assets/WelcomeView-CB7Th_kO.js @@ -1,7 +1,7 @@ var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -import { d as defineComponent, bW as useRouter, o as openBlock, k as createBlock, M as withCtx, H as createBaseVNode, X as toDisplayString, N as createVNode, j as unref, l as script, aL as pushScopeId, aM as popScopeId, _ as _export_sfc } from "./index-BbhVsmQe.js"; -import { _ as _sfc_main$1 } from "./BaseViewTemplate-qOhVwbhN.js"; +import { d as defineComponent, bW as useRouter, o as openBlock, k as createBlock, M as withCtx, H as createBaseVNode, X as toDisplayString, N as createVNode, j as unref, l as script, aL as pushScopeId, aM as popScopeId, _ as _export_sfc } from "./index-C4Fk50Nx.js"; +import { _ as _sfc_main$1 } from "./BaseViewTemplate-CsEJhGbv.js"; const _withScopeId = /* @__PURE__ */ __name((n) => (pushScopeId("data-v-7dfaf74c"), n = n(), popScopeId(), n), "_withScopeId"); const _hoisted_1 = { class: "flex flex-col items-center justify-center gap-8 p-8" }; const _hoisted_2 = { class: "animated-gradient-text text-glow select-none" }; @@ -37,4 +37,4 @@ const WelcomeView = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data- export { WelcomeView as default }; -//# sourceMappingURL=WelcomeView-Cg-dprpV.js.map +//# sourceMappingURL=WelcomeView-CB7Th_kO.js.map diff --git a/web/assets/WelcomeView-CB7Th_kO.js.map b/web/assets/WelcomeView-CB7Th_kO.js.map new file mode 100644 index 00000000000..aa0a2f9f872 --- /dev/null +++ b/web/assets/WelcomeView-CB7Th_kO.js.map @@ -0,0 +1 @@ +{"version":3,"file":"WelcomeView-CB7Th_kO.js","sources":["../../src/views/WelcomeView.vue"],"sourcesContent":["\n\n\n\n\n"],"names":[],"mappings":";;;;;;;;;;AA4BA,UAAM,SAAS;AACT,UAAA,aAAa,wBAAC,SAAiB;AACnC,aAAO,KAAK,IAAI;AAAA,IAAA,GADC;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/web/assets/index-CCg06AEp.js b/web/assets/index-5Sv744Dr.js similarity index 99% rename from web/assets/index-CCg06AEp.js rename to web/assets/index-5Sv744Dr.js index b7ae7d70545..5ec1cf8e698 100644 --- a/web/assets/index-CCg06AEp.js +++ b/web/assets/index-5Sv744Dr.js @@ -1,6 +1,6 @@ var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -import { ca as ComfyDialog, cb as $el, cc as ComfyApp, h as app, a3 as LiteGraph, bd as LGraphCanvas, cd as useExtensionService, ce as processDynamicPrompt, cf as isElectron, c0 as electronAPI, bR as useDialogService, cg as t, ch as DraggableList, bt as useToastStore, ah as LGraphNode, ci as applyTextReplacements, cj as ComfyWidgets, ck as addValueControlWidgets, a6 as useNodeDefStore, cl as serialise, cm as deserialiseAndCreate, b8 as api, a as useSettingStore, ag as LGraphGroup, ad as nextTick } from "./index-BbhVsmQe.js"; +import { ca as ComfyDialog, cb as $el, cc as ComfyApp, h as app, a3 as LiteGraph, bd as LGraphCanvas, cd as useExtensionService, ce as processDynamicPrompt, cf as isElectron, c0 as electronAPI, bR as useDialogService, cg as t, ch as DraggableList, bt as useToastStore, ah as LGraphNode, ci as applyTextReplacements, cj as ComfyWidgets, ck as addValueControlWidgets, a6 as useNodeDefStore, cl as serialise, cm as deserialiseAndCreate, b8 as api, a as useSettingStore, ag as LGraphGroup, ad as nextTick } from "./index-C4Fk50Nx.js"; class ClipspaceDialog extends ComfyDialog { static { __name(this, "ClipspaceDialog"); @@ -52403,11 +52403,11 @@ app.registerExtension({ if (!this.properties) { this.properties = { text: "" }; } - ComfyWidgets.MARKDOWN( + ComfyWidgets.STRING( // Should we extends LGraphNode? Yesss this, "", - ["", { default: this.properties.text }], + ["", { default: this.properties.text, multiline: true }], app ); this.serialize_widgets = true; @@ -52423,6 +52423,31 @@ app.registerExtension({ }) ); NoteNode.category = "utils"; + class MarkdownNoteNode extends LGraphNode { + static { + __name(this, "MarkdownNoteNode"); + } + static title = "Markdown Note"; + color = LGraphCanvas.node_colors.yellow.color; + bgcolor = LGraphCanvas.node_colors.yellow.bgcolor; + groupcolor = LGraphCanvas.node_colors.yellow.groupcolor; + constructor(title) { + super(title); + if (!this.properties) { + this.properties = { text: "" }; + } + ComfyWidgets.MARKDOWN( + this, + "", + ["", { default: this.properties.text }], + app + ); + this.serialize_widgets = true; + this.isVirtualNode = true; + } + } + LiteGraph.registerNodeType("MarkdownNote", MarkdownNoteNode); + MarkdownNoteNode.category = "utils"; } }); app.registerExtension({ @@ -53186,4 +53211,4 @@ app.registerExtension({ }); } }); -//# sourceMappingURL=index-CCg06AEp.js.map +//# sourceMappingURL=index-5Sv744Dr.js.map diff --git a/web/assets/index-5Sv744Dr.js.map b/web/assets/index-5Sv744Dr.js.map new file mode 100644 index 00000000000..52c5308c4b9 --- /dev/null +++ b/web/assets/index-5Sv744Dr.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index-5Sv744Dr.js","sources":["../../src/extensions/core/clipspace.ts","../../src/extensions/core/contextMenuFilter.ts","../../src/extensions/core/dynamicPrompts.ts","../../src/extensions/core/editAttention.ts","../../src/extensions/core/electronAdapter.ts","../../src/extensions/core/groupNodeManage.ts","../../src/extensions/core/widgetInputs.ts","../../src/extensions/core/groupNode.ts","../../src/extensions/core/groupOptions.ts","../../src/extensions/core/invertMenuScrolling.ts","../../node_modules/three/build/three.module.js","../../node_modules/three/examples/jsm/controls/OrbitControls.js","../../node_modules/three/examples/jsm/libs/fflate.module.js","../../node_modules/three/examples/jsm/curves/NURBSUtils.js","../../node_modules/three/examples/jsm/curves/NURBSCurve.js","../../node_modules/three/examples/jsm/loaders/FBXLoader.js","../../node_modules/three/examples/jsm/utils/BufferGeometryUtils.js","../../node_modules/three/examples/jsm/loaders/GLTFLoader.js","../../node_modules/three/examples/jsm/loaders/MTLLoader.js","../../node_modules/three/examples/jsm/loaders/OBJLoader.js","../../node_modules/three/examples/jsm/loaders/STLLoader.js","../../src/extensions/core/load3d.ts","../../src/extensions/core/maskEditorOld.ts","../../src/extensions/core/maskeditor.ts","../../src/extensions/core/nodeTemplates.ts","../../src/extensions/core/noteNode.ts","../../src/extensions/core/rerouteNode.ts","../../src/extensions/core/saveImageExtraOutput.ts","../../src/extensions/core/simpleTouchSupport.ts","../../src/extensions/core/slotDefaults.ts","../../src/extensions/core/uploadAudio.ts","../../src/extensions/core/uploadImage.ts","../../src/extensions/core/webcamCapture.ts"],"sourcesContent":["import { app } from '../../scripts/app'\nimport { ComfyApp } from '../../scripts/app'\nimport { $el, ComfyDialog } from '../../scripts/ui'\n\nexport class ClipspaceDialog extends ComfyDialog {\n static items: Array<\n HTMLButtonElement & {\n contextPredicate?: () => boolean\n }\n > = []\n static instance: ClipspaceDialog | null = null\n\n static registerButton(\n name: string,\n contextPredicate: () => boolean,\n callback: () => void\n ) {\n const item = $el('button', {\n type: 'button',\n textContent: name,\n contextPredicate: contextPredicate,\n onclick: callback\n })\n\n ClipspaceDialog.items.push(item)\n }\n\n static invalidatePreview() {\n if (\n ComfyApp.clipspace &&\n ComfyApp.clipspace.imgs &&\n ComfyApp.clipspace.imgs.length > 0\n ) {\n const img_preview = document.getElementById(\n 'clipspace_preview'\n ) as HTMLImageElement\n if (img_preview) {\n img_preview.src =\n ComfyApp.clipspace.imgs[ComfyApp.clipspace['selectedIndex']].src\n img_preview.style.maxHeight = '100%'\n img_preview.style.maxWidth = '100%'\n }\n }\n }\n\n static invalidate() {\n if (ClipspaceDialog.instance) {\n const self = ClipspaceDialog.instance\n // allow reconstruct controls when copying from non-image to image content.\n const children = $el('div.comfy-modal-content', [\n self.createImgSettings(),\n ...self.createButtons()\n ])\n\n if (self.element) {\n // update\n if (self.element.firstChild) {\n self.element.removeChild(self.element.firstChild)\n }\n self.element.appendChild(children)\n } else {\n // new\n self.element = $el('div.comfy-modal', { parent: document.body }, [\n children\n ])\n }\n\n if (self.element.children[0].children.length <= 1) {\n self.element.children[0].appendChild(\n $el('p', {}, [\n 'Unable to find the features to edit content of a format stored in the current Clipspace.'\n ])\n )\n }\n\n ClipspaceDialog.invalidatePreview()\n }\n }\n\n constructor() {\n super()\n }\n\n createButtons() {\n const buttons = []\n\n for (let idx in ClipspaceDialog.items) {\n const item = ClipspaceDialog.items[idx]\n if (!item.contextPredicate || item.contextPredicate())\n buttons.push(ClipspaceDialog.items[idx])\n }\n\n buttons.push(\n $el('button', {\n type: 'button',\n textContent: 'Close',\n onclick: () => {\n this.close()\n }\n })\n )\n\n return buttons\n }\n\n createImgSettings() {\n if (ComfyApp.clipspace?.imgs) {\n const combo_items = []\n const imgs = ComfyApp.clipspace.imgs\n\n for (let i = 0; i < imgs.length; i++) {\n combo_items.push($el('option', { value: i }, [`${i}`]))\n }\n\n const combo1 = $el(\n 'select',\n {\n id: 'clipspace_img_selector',\n onchange: (event: Event) => {\n if (event.target && ComfyApp.clipspace) {\n ComfyApp.clipspace['selectedIndex'] = (\n event.target as HTMLSelectElement\n ).selectedIndex\n ClipspaceDialog.invalidatePreview()\n }\n }\n },\n combo_items\n )\n\n const row1 = $el('tr', {}, [\n $el('td', {}, [$el('font', { color: 'white' }, ['Select Image'])]),\n $el('td', {}, [combo1])\n ])\n\n const combo2 = $el(\n 'select',\n {\n id: 'clipspace_img_paste_mode',\n onchange: (event: Event) => {\n if (event.target && ComfyApp.clipspace) {\n ComfyApp.clipspace['img_paste_mode'] = (\n event.target as HTMLSelectElement\n ).value\n }\n }\n },\n [\n $el('option', { value: 'selected' }, 'selected'),\n $el('option', { value: 'all' }, 'all')\n ]\n ) as HTMLSelectElement\n combo2.value = ComfyApp.clipspace['img_paste_mode']\n\n const row2 = $el('tr', {}, [\n $el('td', {}, [$el('font', { color: 'white' }, ['Paste Mode'])]),\n $el('td', {}, [combo2])\n ])\n\n const td = $el(\n 'td',\n { align: 'center', width: '100px', height: '100px', colSpan: '2' },\n [$el('img', { id: 'clipspace_preview', ondragstart: () => false }, [])]\n )\n\n const row3 = $el('tr', {}, [td])\n\n return $el('table', {}, [row1, row2, row3])\n } else {\n return []\n }\n }\n\n createImgPreview() {\n if (ComfyApp.clipspace?.imgs) {\n return $el('img', { id: 'clipspace_preview', ondragstart: () => false })\n } else return []\n }\n\n show() {\n const img_preview = document.getElementById('clipspace_preview')\n ClipspaceDialog.invalidate()\n\n this.element.style.display = 'block'\n }\n}\n\napp.registerExtension({\n name: 'Comfy.Clipspace',\n init(app) {\n app.openClipspace = function () {\n if (!ClipspaceDialog.instance) {\n ClipspaceDialog.instance = new ClipspaceDialog()\n ComfyApp.clipspace_invalidate_handler = ClipspaceDialog.invalidate\n }\n\n if (ComfyApp.clipspace) {\n ClipspaceDialog.instance.show()\n } else app.ui.dialog.show('Clipspace is Empty!')\n }\n }\n})\n","import { LGraphCanvas, LiteGraph } from '@comfyorg/litegraph'\n\nimport { app } from '../../scripts/app'\n\n// Adds filtering to combo context menus\n\nconst ext = {\n name: 'Comfy.ContextMenuFilter',\n init() {\n const ctxMenu = LiteGraph.ContextMenu\n\n // @ts-expect-error TODO Very hacky way to modify Litegraph behaviour. Fix ctx later.\n LiteGraph.ContextMenu = function (values, options) {\n const ctx = new ctxMenu(values, options)\n\n // If we are a dark menu (only used for combo boxes) then add a filter input\n if (options?.className === 'dark' && values?.length > 4) {\n const filter = document.createElement('input')\n filter.classList.add('comfy-context-menu-filter')\n filter.placeholder = 'Filter list'\n\n ctx.root.prepend(filter)\n\n const items = Array.from(\n ctx.root.querySelectorAll('.litemenu-entry')\n ) as HTMLElement[]\n let displayedItems = [...items]\n let itemCount = displayedItems.length\n\n // We must request an animation frame for the current node of the active canvas to update.\n requestAnimationFrame(() => {\n const currentNode = LGraphCanvas.active_canvas.current_node\n const clickedComboValue = currentNode?.widgets\n ?.filter(\n (w) =>\n w.type === 'combo' && w.options.values?.length === values.length\n )\n .find((w) =>\n w.options.values?.every((v, i) => v === values[i])\n )?.value\n\n let selectedIndex = clickedComboValue\n ? values.findIndex((v: string) => v === clickedComboValue)\n : 0\n if (selectedIndex < 0) {\n selectedIndex = 0\n }\n let selectedItem = displayedItems[selectedIndex]\n updateSelected()\n\n // Apply highlighting to the selected item\n function updateSelected() {\n selectedItem?.style.setProperty('background-color', '')\n selectedItem?.style.setProperty('color', '')\n selectedItem = displayedItems[selectedIndex]\n selectedItem?.style.setProperty(\n 'background-color',\n '#ccc',\n 'important'\n )\n selectedItem?.style.setProperty('color', '#000', 'important')\n }\n\n const positionList = () => {\n const rect = ctx.root.getBoundingClientRect()\n\n // If the top is off-screen then shift the element with scaling applied\n if (rect.top < 0) {\n const scale =\n 1 -\n ctx.root.getBoundingClientRect().height / ctx.root.clientHeight\n\n const shift = (ctx.root.clientHeight * scale) / 2\n\n ctx.root.style.top = -shift + 'px'\n }\n }\n\n // Arrow up/down to select items\n filter.addEventListener('keydown', (event) => {\n switch (event.key) {\n case 'ArrowUp':\n event.preventDefault()\n if (selectedIndex === 0) {\n selectedIndex = itemCount - 1\n } else {\n selectedIndex--\n }\n updateSelected()\n break\n case 'ArrowRight':\n event.preventDefault()\n selectedIndex = itemCount - 1\n updateSelected()\n break\n case 'ArrowDown':\n event.preventDefault()\n if (selectedIndex === itemCount - 1) {\n selectedIndex = 0\n } else {\n selectedIndex++\n }\n updateSelected()\n break\n case 'ArrowLeft':\n event.preventDefault()\n selectedIndex = 0\n updateSelected()\n break\n case 'Enter':\n selectedItem?.click()\n break\n case 'Escape':\n ctx.close()\n break\n }\n })\n\n filter.addEventListener('input', () => {\n // Hide all items that don't match our filter\n const term = filter.value.toLocaleLowerCase()\n // When filtering, recompute which items are visible for arrow up/down and maintain selection.\n displayedItems = items.filter((item) => {\n const isVisible =\n !term || item.textContent?.toLocaleLowerCase().includes(term)\n item.style.display = isVisible ? 'block' : 'none'\n return isVisible\n })\n\n selectedIndex = 0\n if (displayedItems.includes(selectedItem)) {\n selectedIndex = displayedItems.findIndex(\n (d) => d === selectedItem\n )\n }\n itemCount = displayedItems.length\n\n updateSelected()\n\n // If we have an event then we can try and position the list under the source\n if (options.event) {\n let top = options.event.clientY - 10\n\n const bodyRect = document.body.getBoundingClientRect()\n\n const rootRect = ctx.root.getBoundingClientRect()\n if (\n bodyRect.height &&\n top > bodyRect.height - rootRect.height - 10\n ) {\n top = Math.max(0, bodyRect.height - rootRect.height - 10)\n }\n\n ctx.root.style.top = top + 'px'\n positionList()\n }\n })\n\n requestAnimationFrame(() => {\n // Focus the filter box when opening\n filter.focus()\n\n positionList()\n })\n })\n }\n\n return ctx\n }\n\n LiteGraph.ContextMenu.prototype = ctxMenu.prototype\n }\n}\n\napp.registerExtension(ext)\n","import { useExtensionService } from '@/services/extensionService'\nimport { processDynamicPrompt } from '@/utils/formatUtil'\n\n// Allows for simple dynamic prompt replacement\n// Inputs in the format {a|b} will have a random value of a or b chosen when the prompt is queued.\n\nuseExtensionService().registerExtension({\n name: 'Comfy.DynamicPrompts',\n nodeCreated(node) {\n if (node.widgets) {\n // Locate dynamic prompt text widgets\n // Include any widgets with dynamicPrompts set to true, and customtext\n // @ts-expect-error dynamicPrompts is not typed\n const widgets = node.widgets.filter((n) => n.dynamicPrompts)\n for (const widget of widgets) {\n // Override the serialization of the value to resolve dynamic prompts for all widgets supporting it in this node\n // @ts-expect-error hacky override\n widget.serializeValue = (workflowNode, widgetIndex) => {\n if (typeof widget.value !== 'string') return widget.value\n\n const prompt = processDynamicPrompt(widget.value)\n\n // Overwrite the value in the serialized workflow pnginfo\n if (workflowNode?.widgets_values)\n workflowNode.widgets_values[widgetIndex] = prompt\n\n return prompt\n }\n }\n }\n }\n})\n","import { app } from '../../scripts/app'\n\n// Allows you to edit the attention weight by holding ctrl (or cmd) and using the up/down arrow keys\n\napp.registerExtension({\n name: 'Comfy.EditAttention',\n init() {\n const editAttentionDelta = app.ui.settings.addSetting({\n id: 'Comfy.EditAttention.Delta',\n category: ['Comfy', 'EditTokenWeight', 'Delta'],\n name: 'Ctrl+up/down precision',\n type: 'slider',\n attrs: {\n min: 0.01,\n max: 0.5,\n step: 0.01\n },\n defaultValue: 0.05\n })\n\n function incrementWeight(weight: string, delta: number): string {\n const floatWeight = parseFloat(weight)\n if (isNaN(floatWeight)) return weight\n const newWeight = floatWeight + delta\n return String(Number(newWeight.toFixed(10)))\n }\n\n type Enclosure = {\n start: number\n end: number\n }\n\n function findNearestEnclosure(\n text: string,\n cursorPos: number\n ): Enclosure | null {\n let start = cursorPos,\n end = cursorPos\n let openCount = 0,\n closeCount = 0\n\n // Find opening parenthesis before cursor\n while (start >= 0) {\n start--\n if (text[start] === '(' && openCount === closeCount) break\n if (text[start] === '(') openCount++\n if (text[start] === ')') closeCount++\n }\n if (start < 0) return null\n\n openCount = 0\n closeCount = 0\n\n // Find closing parenthesis after cursor\n while (end < text.length) {\n if (text[end] === ')' && openCount === closeCount) break\n if (text[end] === '(') openCount++\n if (text[end] === ')') closeCount++\n end++\n }\n if (end === text.length) return null\n\n return { start: start + 1, end: end }\n }\n\n function addWeightToParentheses(text: string): string {\n const parenRegex = /^\\((.*)\\)$/\n const parenMatch = text.match(parenRegex)\n\n const floatRegex = /:([+-]?(\\d*\\.)?\\d+([eE][+-]?\\d+)?)/\n const floatMatch = text.match(floatRegex)\n\n if (parenMatch && !floatMatch) {\n return `(${parenMatch[1]}:1.0)`\n } else {\n return text\n }\n }\n\n function editAttention(event: KeyboardEvent) {\n // @ts-expect-error Runtime narrowing not impl.\n const inputField: HTMLTextAreaElement = event.composedPath()[0]\n const delta = parseFloat(editAttentionDelta.value)\n\n if (inputField.tagName !== 'TEXTAREA') return\n if (!(event.key === 'ArrowUp' || event.key === 'ArrowDown')) return\n if (!event.ctrlKey && !event.metaKey) return\n\n event.preventDefault()\n\n let start = inputField.selectionStart\n let end = inputField.selectionEnd\n let selectedText = inputField.value.substring(start, end)\n\n // If there is no selection, attempt to find the nearest enclosure, or select the current word\n if (!selectedText) {\n const nearestEnclosure = findNearestEnclosure(inputField.value, start)\n if (nearestEnclosure) {\n start = nearestEnclosure.start\n end = nearestEnclosure.end\n selectedText = inputField.value.substring(start, end)\n } else {\n // Select the current word, find the start and end of the word\n const delimiters = ' .,\\\\/!?%^*;:{}=-_`~()\\r\\n\\t'\n\n while (\n !delimiters.includes(inputField.value[start - 1]) &&\n start > 0\n ) {\n start--\n }\n\n while (\n !delimiters.includes(inputField.value[end]) &&\n end < inputField.value.length\n ) {\n end++\n }\n\n selectedText = inputField.value.substring(start, end)\n if (!selectedText) return\n }\n }\n\n // If the selection ends with a space, remove it\n if (selectedText[selectedText.length - 1] === ' ') {\n selectedText = selectedText.substring(0, selectedText.length - 1)\n end -= 1\n }\n\n // If there are parentheses left and right of the selection, select them\n if (\n inputField.value[start - 1] === '(' &&\n inputField.value[end] === ')'\n ) {\n start -= 1\n end += 1\n selectedText = inputField.value.substring(start, end)\n }\n\n // If the selection is not enclosed in parentheses, add them\n if (\n selectedText[0] !== '(' ||\n selectedText[selectedText.length - 1] !== ')'\n ) {\n selectedText = `(${selectedText})`\n }\n\n // If the selection does not have a weight, add a weight of 1.0\n selectedText = addWeightToParentheses(selectedText)\n\n // Increment the weight\n const weightDelta = event.key === 'ArrowUp' ? delta : -delta\n const updatedText = selectedText.replace(\n /\\((.*):([+-]?\\d+(?:\\.\\d+)?)\\)/,\n (match, text, weight) => {\n weight = incrementWeight(weight, weightDelta)\n if (weight == 1) {\n return text\n } else {\n return `(${text}:${weight})`\n }\n }\n )\n\n inputField.setSelectionRange(start, end)\n // Intentional use of deprecated: https://developer.mozilla.org/docs/Web/API/Document/execCommand#using_inserttext\n document.execCommand('insertText', false, updatedText)\n inputField.setSelectionRange(start, start + updatedText.length)\n }\n window.addEventListener('keydown', editAttention)\n }\n})\n","import { t } from '@/i18n'\nimport { app } from '@/scripts/app'\nimport { useDialogService } from '@/services/dialogService'\nimport { electronAPI as getElectronAPI, isElectron } from '@/utils/envUtil'\n\n;(async () => {\n if (!isElectron()) return\n\n const electronAPI = getElectronAPI()\n const desktopAppVersion = await electronAPI.getElectronVersion()\n\n const onChangeRestartApp = (newValue: string, oldValue: string) => {\n // Add a delay to allow changes to take effect before restarting.\n if (oldValue !== undefined && newValue !== oldValue) {\n electronAPI.restartApp('Restart ComfyUI to apply changes.', 1500)\n }\n }\n\n app.registerExtension({\n name: 'Comfy.ElectronAdapter',\n settings: [\n {\n id: 'Comfy-Desktop.AutoUpdate',\n category: ['Comfy-Desktop', 'General', 'AutoUpdate'],\n name: 'Automatically check for updates',\n type: 'boolean',\n defaultValue: true,\n onChange: onChangeRestartApp\n },\n {\n id: 'Comfy-Desktop.SendStatistics',\n category: ['Comfy-Desktop', 'General', 'Send Statistics'],\n name: 'Send anonymous crash reports',\n type: 'boolean',\n defaultValue: true,\n onChange: onChangeRestartApp\n }\n ],\n\n commands: [\n {\n id: 'Comfy-Desktop.Folders.OpenLogsFolder',\n label: 'Open Logs Folder',\n icon: 'pi pi-folder-open',\n function() {\n electronAPI.openLogsFolder()\n }\n },\n {\n id: 'Comfy-Desktop.Folders.OpenModelsFolder',\n label: 'Open Models Folder',\n icon: 'pi pi-folder-open',\n function() {\n electronAPI.openModelsFolder()\n }\n },\n {\n id: 'Comfy-Desktop.Folders.OpenOutputsFolder',\n label: 'Open Outputs Folder',\n icon: 'pi pi-folder-open',\n function() {\n electronAPI.openOutputsFolder()\n }\n },\n {\n id: 'Comfy-Desktop.Folders.OpenInputsFolder',\n label: 'Open Inputs Folder',\n icon: 'pi pi-folder-open',\n function() {\n electronAPI.openInputsFolder()\n }\n },\n {\n id: 'Comfy-Desktop.Folders.OpenCustomNodesFolder',\n label: 'Open Custom Nodes Folder',\n icon: 'pi pi-folder-open',\n function() {\n electronAPI.openCustomNodesFolder()\n }\n },\n {\n id: 'Comfy-Desktop.Folders.OpenModelConfig',\n label: 'Open extra_model_paths.yaml',\n icon: 'pi pi-file',\n function() {\n electronAPI.openModelConfig()\n }\n },\n {\n id: 'Comfy-Desktop.OpenDevTools',\n label: 'Open DevTools',\n icon: 'pi pi-code',\n function() {\n electronAPI.openDevTools()\n }\n },\n {\n id: 'Comfy-Desktop.OpenFeedbackPage',\n label: 'Feedback',\n icon: 'pi pi-envelope',\n function() {\n window.open('https://forum.comfy.org/c/v1-feedback/', '_blank')\n }\n },\n {\n id: 'Comfy-Desktop.OpenUserGuide',\n label: 'Desktop User Guide',\n icon: 'pi pi-book',\n function() {\n window.open('https://comfyorg.notion.site/', '_blank')\n }\n },\n {\n id: 'Comfy-Desktop.Reinstall',\n label: 'Reinstall',\n icon: 'pi pi-refresh',\n async function() {\n const proceed = await useDialogService().confirm({\n message: t('desktopMenu.confirmReinstall'),\n title: t('desktopMenu.reinstall'),\n type: 'reinstall'\n })\n\n if (proceed) electronAPI.reinstall()\n }\n },\n {\n id: 'Comfy-Desktop.Restart',\n label: 'Restart',\n icon: 'pi pi-refresh',\n function() {\n electronAPI.restartApp()\n }\n }\n ],\n\n menuCommands: [\n {\n path: ['Help'],\n commands: [\n 'Comfy-Desktop.OpenUserGuide',\n 'Comfy-Desktop.OpenFeedbackPage'\n ]\n },\n {\n path: ['Help'],\n commands: ['Comfy-Desktop.OpenDevTools']\n },\n {\n path: ['Help', 'Open Folder'],\n commands: [\n 'Comfy-Desktop.Folders.OpenLogsFolder',\n 'Comfy-Desktop.Folders.OpenModelsFolder',\n 'Comfy-Desktop.Folders.OpenOutputsFolder',\n 'Comfy-Desktop.Folders.OpenInputsFolder',\n 'Comfy-Desktop.Folders.OpenCustomNodesFolder',\n 'Comfy-Desktop.Folders.OpenModelConfig'\n ]\n },\n {\n path: ['Help'],\n commands: ['Comfy-Desktop.Reinstall']\n }\n ],\n\n aboutPageBadges: [\n {\n label: 'ComfyUI_desktop v' + desktopAppVersion,\n url: 'https://github.com/Comfy-Org/electron',\n icon: 'pi pi-github'\n }\n ]\n })\n})()\n","// @ts-strict-ignore\nimport {\n type LGraphNode,\n type LGraphNodeConstructor,\n LiteGraph\n} from '@comfyorg/litegraph'\n\nimport { useToastStore } from '@/stores/toastStore'\n\nimport { type ComfyApp, app } from '../../scripts/app'\nimport { $el, ComfyDialog } from '../../scripts/ui'\nimport { DraggableList } from '../../scripts/ui/draggableList'\nimport { GroupNodeConfig, GroupNodeHandler } from './groupNode'\nimport './groupNodeManage.css'\n\nconst ORDER: symbol = Symbol()\nconst PREFIX = 'workflow'\nconst SEPARATOR = '>'\n\nfunction merge(target, source) {\n if (typeof target === 'object' && typeof source === 'object') {\n for (const key in source) {\n const sv = source[key]\n if (typeof sv === 'object') {\n let tv = target[key]\n if (!tv) tv = target[key] = {}\n merge(tv, source[key])\n } else {\n target[key] = sv\n }\n }\n }\n\n return target\n}\n\nexport class ManageGroupDialog extends ComfyDialog {\n tabs: Record<\n 'Inputs' | 'Outputs' | 'Widgets',\n { tab: HTMLAnchorElement; page: HTMLElement }\n >\n selectedNodeIndex: number | null | undefined\n selectedTab: keyof ManageGroupDialog['tabs'] = 'Inputs'\n selectedGroup: string | undefined\n modifications: Record<\n string,\n Record<\n string,\n Record<\n string,\n { name?: string | undefined; visible?: boolean | undefined }\n >\n >\n > = {}\n nodeItems: any[]\n app: ComfyApp\n groupNodeType: LGraphNodeConstructor\n groupNodeDef: any\n groupData: any\n\n innerNodesList: HTMLUListElement\n widgetsPage: HTMLElement\n inputsPage: HTMLElement\n outputsPage: HTMLElement\n draggable: any\n\n get selectedNodeInnerIndex() {\n return +this.nodeItems[this.selectedNodeIndex].dataset.nodeindex\n }\n\n constructor(app) {\n super()\n this.app = app\n this.element = $el('dialog.comfy-group-manage', {\n parent: document.body\n }) as HTMLDialogElement\n }\n\n changeTab(tab) {\n this.tabs[this.selectedTab].tab.classList.remove('active')\n this.tabs[this.selectedTab].page.classList.remove('active')\n this.tabs[tab].tab.classList.add('active')\n this.tabs[tab].page.classList.add('active')\n this.selectedTab = tab\n }\n\n changeNode(index, force?) {\n if (!force && this.selectedNodeIndex === index) return\n\n if (this.selectedNodeIndex != null) {\n this.nodeItems[this.selectedNodeIndex].classList.remove('selected')\n }\n this.nodeItems[index].classList.add('selected')\n this.selectedNodeIndex = index\n\n if (!this.buildInputsPage() && this.selectedTab === 'Inputs') {\n this.changeTab('Widgets')\n }\n if (!this.buildWidgetsPage() && this.selectedTab === 'Widgets') {\n this.changeTab('Outputs')\n }\n if (!this.buildOutputsPage() && this.selectedTab === 'Outputs') {\n this.changeTab('Inputs')\n }\n\n this.changeTab(this.selectedTab)\n }\n\n getGroupData() {\n this.groupNodeType =\n LiteGraph.registered_node_types[\n `${PREFIX}${SEPARATOR}` + this.selectedGroup\n ]\n this.groupNodeDef = this.groupNodeType.nodeData\n this.groupData = GroupNodeHandler.getGroupData(this.groupNodeType)\n }\n\n changeGroup(group, reset = true) {\n this.selectedGroup = group\n this.getGroupData()\n\n const nodes = this.groupData.nodeData.nodes\n this.nodeItems = nodes.map((n, i) =>\n $el(\n 'li.draggable-item',\n {\n dataset: {\n nodeindex: n.index + ''\n },\n onclick: () => {\n this.changeNode(i)\n }\n },\n [\n $el('span.drag-handle'),\n $el(\n 'div',\n {\n textContent: n.title ?? n.type\n },\n n.title\n ? $el('span', {\n textContent: n.type\n })\n : []\n )\n ]\n )\n )\n\n this.innerNodesList.replaceChildren(...this.nodeItems)\n\n if (reset) {\n this.selectedNodeIndex = null\n this.changeNode(0)\n } else {\n const items = this.draggable.getAllItems()\n let index = items.findIndex((item) => item.classList.contains('selected'))\n if (index === -1) index = this.selectedNodeIndex\n this.changeNode(index, true)\n }\n\n const ordered = [...nodes]\n this.draggable?.dispose()\n this.draggable = new DraggableList(this.innerNodesList, 'li')\n this.draggable.addEventListener(\n 'dragend',\n ({ detail: { oldPosition, newPosition } }) => {\n if (oldPosition === newPosition) return\n ordered.splice(newPosition, 0, ordered.splice(oldPosition, 1)[0])\n for (let i = 0; i < ordered.length; i++) {\n this.storeModification({\n nodeIndex: ordered[i].index,\n section: ORDER,\n prop: 'order',\n value: i\n })\n }\n }\n )\n }\n\n storeModification(props: {\n nodeIndex?: number\n section: symbol\n prop: string\n value: any\n }) {\n const { nodeIndex, section, prop, value } = props\n const groupMod = (this.modifications[this.selectedGroup] ??= {})\n const nodesMod = (groupMod.nodes ??= {})\n const nodeMod = (nodesMod[nodeIndex ?? this.selectedNodeInnerIndex] ??= {})\n const typeMod = (nodeMod[section] ??= {})\n if (typeof value === 'object') {\n const objMod = (typeMod[prop] ??= {})\n Object.assign(objMod, value)\n } else {\n typeMod[prop] = value\n }\n }\n\n getEditElement(section, prop, value, placeholder, checked, checkable = true) {\n if (value === placeholder) value = ''\n\n const mods =\n this.modifications[this.selectedGroup]?.nodes?.[\n this.selectedNodeInnerIndex\n ]?.[section]?.[prop]\n if (mods) {\n if (mods.name != null) {\n value = mods.name\n }\n if (mods.visible != null) {\n checked = mods.visible\n }\n }\n\n return $el('div', [\n $el('input', {\n value,\n placeholder,\n type: 'text',\n onchange: (e) => {\n this.storeModification({\n section,\n prop,\n value: { name: e.target.value }\n })\n }\n }),\n $el('label', { textContent: 'Visible' }, [\n $el('input', {\n type: 'checkbox',\n checked,\n disabled: !checkable,\n onchange: (e) => {\n this.storeModification({\n section,\n prop,\n value: { visible: !!e.target.checked }\n })\n }\n })\n ])\n ])\n }\n\n buildWidgetsPage() {\n const widgets =\n this.groupData.oldToNewWidgetMap[this.selectedNodeInnerIndex]\n const items = Object.keys(widgets ?? {})\n const type = app.graph.extra.groupNodes[this.selectedGroup]\n const config = type.config?.[this.selectedNodeInnerIndex]?.input\n this.widgetsPage.replaceChildren(\n ...items.map((oldName) => {\n return this.getEditElement(\n 'input',\n oldName,\n widgets[oldName],\n oldName,\n config?.[oldName]?.visible !== false\n )\n })\n )\n return !!items.length\n }\n\n buildInputsPage() {\n const inputs = this.groupData.nodeInputs[this.selectedNodeInnerIndex]\n const items = Object.keys(inputs ?? {})\n const type = app.graph.extra.groupNodes[this.selectedGroup]\n const config = type.config?.[this.selectedNodeInnerIndex]?.input\n this.inputsPage.replaceChildren(\n ...items\n .map((oldName) => {\n let value = inputs[oldName]\n if (!value) {\n return\n }\n\n return this.getEditElement(\n 'input',\n oldName,\n value,\n oldName,\n config?.[oldName]?.visible !== false\n )\n })\n .filter(Boolean)\n )\n return !!items.length\n }\n\n buildOutputsPage() {\n const nodes = this.groupData.nodeData.nodes\n const innerNodeDef = this.groupData.getNodeDef(\n nodes[this.selectedNodeInnerIndex]\n )\n const outputs = innerNodeDef?.output ?? []\n const groupOutputs =\n this.groupData.oldToNewOutputMap[this.selectedNodeInnerIndex]\n\n const type = app.graph.extra.groupNodes[this.selectedGroup]\n const config = type.config?.[this.selectedNodeInnerIndex]?.output\n const node = this.groupData.nodeData.nodes[this.selectedNodeInnerIndex]\n const checkable = node.type !== 'PrimitiveNode'\n this.outputsPage.replaceChildren(\n ...outputs\n .map((type, slot) => {\n const groupOutputIndex = groupOutputs?.[slot]\n const oldName = innerNodeDef.output_name?.[slot] ?? type\n let value = config?.[slot]?.name\n const visible = config?.[slot]?.visible || groupOutputIndex != null\n if (!value || value === oldName) {\n value = ''\n }\n return this.getEditElement(\n 'output',\n slot,\n value,\n oldName,\n visible,\n checkable\n )\n })\n .filter(Boolean)\n )\n return !!outputs.length\n }\n\n show(type?) {\n const groupNodes = Object.keys(app.graph.extra?.groupNodes ?? {}).sort(\n (a, b) => a.localeCompare(b)\n )\n\n this.innerNodesList = $el(\n 'ul.comfy-group-manage-list-items'\n ) as HTMLUListElement\n this.widgetsPage = $el('section.comfy-group-manage-node-page')\n this.inputsPage = $el('section.comfy-group-manage-node-page')\n this.outputsPage = $el('section.comfy-group-manage-node-page')\n const pages = $el('div', [\n this.widgetsPage,\n this.inputsPage,\n this.outputsPage\n ])\n\n this.tabs = [\n ['Inputs', this.inputsPage],\n ['Widgets', this.widgetsPage],\n ['Outputs', this.outputsPage]\n ].reduce((p, [name, page]: [string, HTMLElement]) => {\n p[name] = {\n tab: $el('a', {\n onclick: () => {\n this.changeTab(name)\n },\n textContent: name\n }),\n page\n }\n return p\n }, {}) as any\n\n const outer = $el('div.comfy-group-manage-outer', [\n $el('header', [\n $el('h2', 'Group Nodes'),\n $el(\n 'select',\n {\n onchange: (e) => {\n this.changeGroup(e.target.value)\n }\n },\n groupNodes.map((g) =>\n $el('option', {\n textContent: g,\n selected: `${PREFIX}${SEPARATOR}${g}` === type,\n value: g\n })\n )\n )\n ]),\n $el('main', [\n $el('section.comfy-group-manage-list', this.innerNodesList),\n $el('section.comfy-group-manage-node', [\n $el(\n 'header',\n Object.values(this.tabs).map((t) => t.tab)\n ),\n pages\n ])\n ]),\n $el('footer', [\n $el(\n 'button.comfy-btn',\n {\n onclick: (e) => {\n const node = app.graph.nodes.find(\n (n) => n.type === `${PREFIX}${SEPARATOR}` + this.selectedGroup\n )\n if (node) {\n useToastStore().addAlert(\n 'This group node is in use in the current workflow, please first remove these.'\n )\n return\n }\n if (\n confirm(\n `Are you sure you want to remove the node: \"${this.selectedGroup}\"`\n )\n ) {\n delete app.graph.extra.groupNodes[this.selectedGroup]\n LiteGraph.unregisterNodeType(\n `${PREFIX}${SEPARATOR}` + this.selectedGroup\n )\n }\n this.show()\n }\n },\n 'Delete Group Node'\n ),\n $el(\n 'button.comfy-btn',\n {\n onclick: async () => {\n let nodesByType\n let recreateNodes = []\n const types = {}\n for (const g in this.modifications) {\n const type = app.graph.extra.groupNodes[g]\n let config = (type.config ??= {})\n\n let nodeMods = this.modifications[g]?.nodes\n if (nodeMods) {\n const keys = Object.keys(nodeMods)\n if (nodeMods[keys[0]][ORDER]) {\n // If any node is reordered, they will all need sequencing\n const orderedNodes = []\n const orderedMods = {}\n const orderedConfig = {}\n\n for (const n of keys) {\n const order = nodeMods[n][ORDER].order\n orderedNodes[order] = type.nodes[+n]\n orderedMods[order] = nodeMods[n]\n orderedNodes[order].index = order\n }\n\n // Rewrite links\n for (const l of type.links) {\n if (l[0] != null) l[0] = type.nodes[l[0]].index\n if (l[2] != null) l[2] = type.nodes[l[2]].index\n }\n\n // Rewrite externals\n if (type.external) {\n for (const ext of type.external) {\n ext[0] = type.nodes[ext[0]]\n }\n }\n\n // Rewrite modifications\n for (const id of keys) {\n if (config[id]) {\n orderedConfig[type.nodes[id].index] = config[id]\n }\n delete config[id]\n }\n\n type.nodes = orderedNodes\n nodeMods = orderedMods\n type.config = config = orderedConfig\n }\n\n merge(config, nodeMods)\n }\n\n types[g] = type\n\n if (!nodesByType) {\n nodesByType = app.graph.nodes.reduce((p, n) => {\n p[n.type] ??= []\n p[n.type].push(n)\n return p\n }, {})\n }\n\n const nodes = nodesByType[`${PREFIX}${SEPARATOR}` + g]\n if (nodes) recreateNodes.push(...nodes)\n }\n\n await GroupNodeConfig.registerFromWorkflow(types, {})\n\n for (const node of recreateNodes) {\n node.recreate()\n }\n\n this.modifications = {}\n this.app.graph.setDirtyCanvas(true, true)\n this.changeGroup(this.selectedGroup, false)\n }\n },\n 'Save'\n ),\n $el(\n 'button.comfy-btn',\n { onclick: () => this.element.close() },\n 'Close'\n )\n ])\n ])\n\n this.element.replaceChildren(outer)\n this.changeGroup(\n type\n ? groupNodes.find((g) => `${PREFIX}${SEPARATOR}${g}` === type) ??\n groupNodes[0]\n : groupNodes[0]\n )\n this.element.showModal()\n\n this.element.addEventListener('close', () => {\n this.draggable?.dispose()\n this.element.remove()\n })\n }\n}\n","// @ts-strict-ignore\nimport { LGraphNode, LiteGraph } from '@comfyorg/litegraph'\nimport type {\n INodeInputSlot,\n IWidget,\n LiteGraphCanvasEvent\n} from '@comfyorg/litegraph'\n\nimport { useNodeDefStore } from '@/stores/nodeDefStore'\nimport type { InputSpec } from '@/types/apiTypes'\n\nimport { app } from '../../scripts/app'\nimport { applyTextReplacements } from '../../scripts/utils'\nimport { ComfyWidgets, addValueControlWidgets } from '../../scripts/widgets'\n\nconst CONVERTED_TYPE = 'converted-widget'\nconst VALID_TYPES = [\n 'STRING',\n 'combo',\n 'number',\n 'toggle',\n 'BOOLEAN',\n 'text',\n 'string'\n]\nconst CONFIG = Symbol()\nconst GET_CONFIG = Symbol()\nconst TARGET = Symbol() // Used for reroutes to specify the real target widget\n\ninterface PrimitiveNode extends LGraphNode {}\n\nconst replacePropertyName = 'Run widget replace on values'\nclass PrimitiveNode extends LGraphNode {\n controlValues: any[]\n lastType: string\n static category: string\n constructor(title?: string) {\n super(title)\n this.addOutput('connect to widget input', '*')\n this.serialize_widgets = true\n this.isVirtualNode = true\n\n if (!this.properties || !(replacePropertyName in this.properties)) {\n this.addProperty(replacePropertyName, false, 'boolean')\n }\n }\n\n applyToGraph(extraLinks = []) {\n if (!this.outputs[0].links?.length) return\n\n function get_links(node) {\n let links = []\n for (const l of node.outputs[0].links) {\n const linkInfo = app.graph.links[l]\n const n = node.graph.getNodeById(linkInfo.target_id)\n if (n.type == 'Reroute') {\n links = links.concat(get_links(n))\n } else {\n links.push(l)\n }\n }\n return links\n }\n\n let links = [\n ...get_links(this).map((l) => app.graph.links[l]),\n ...extraLinks\n ]\n let v = this.widgets?.[0].value\n if (v && this.properties[replacePropertyName]) {\n v = applyTextReplacements(app, v as string)\n }\n\n // For each output link copy our value over the original widget value\n for (const linkInfo of links) {\n const node = this.graph.getNodeById(linkInfo.target_id)\n const input = node.inputs[linkInfo.target_slot]\n let widget\n if (input.widget[TARGET]) {\n widget = input.widget[TARGET]\n } else {\n const widgetName = (input.widget as { name: string }).name\n if (widgetName) {\n widget = node.widgets.find((w) => w.name === widgetName)\n }\n }\n\n if (widget) {\n widget.value = v\n if (widget.callback) {\n widget.callback(\n widget.value,\n app.canvas,\n node,\n app.canvas.graph_mouse,\n {}\n )\n }\n }\n }\n }\n\n refreshComboInNode() {\n const widget = this.widgets?.[0]\n if (widget?.type === 'combo') {\n widget.options.values = this.outputs[0].widget[GET_CONFIG]()[0]\n\n if (!widget.options.values.includes(widget.value as string)) {\n widget.value = widget.options.values[0]\n ;(widget.callback as Function)(widget.value)\n }\n }\n }\n\n onAfterGraphConfigured() {\n if (this.outputs[0].links?.length && !this.widgets?.length) {\n // TODO: Review this check\n // @ts-expect-error\n if (!this.#onFirstConnection()) return\n\n // Populate widget values from config data\n if (this.widgets) {\n for (let i = 0; i < this.widgets_values.length; i++) {\n const w = this.widgets[i]\n if (w) {\n // @ts-expect-error change widget type from string to unknown\n w.value = this.widgets_values[i]\n }\n }\n }\n\n // Merge values if required\n this.#mergeWidgetConfig()\n }\n }\n\n onConnectionsChange(_, index, connected) {\n if (app.configuringGraph) {\n // Dont run while the graph is still setting up\n return\n }\n\n const links = this.outputs[0].links\n if (connected) {\n if (links?.length && !this.widgets?.length) {\n this.#onFirstConnection()\n }\n } else {\n // We may have removed a link that caused the constraints to change\n this.#mergeWidgetConfig()\n\n if (!links?.length) {\n this.onLastDisconnect()\n }\n }\n }\n\n onConnectOutput(slot, type, input, target_node, target_slot) {\n // Fires before the link is made allowing us to reject it if it isn't valid\n // No widget, we cant connect\n if (!input.widget) {\n if (!(input.type in ComfyWidgets)) return false\n }\n\n if (this.outputs[slot].links?.length) {\n const valid = this.#isValidConnection(input)\n if (valid) {\n // On connect of additional outputs, copy our value to their widget\n this.applyToGraph([{ target_id: target_node.id, target_slot }])\n }\n return valid\n }\n }\n\n #onFirstConnection(recreating?: boolean) {\n // First connection can fire before the graph is ready on initial load so random things can be missing\n if (!this.outputs[0].links) {\n this.onLastDisconnect()\n return\n }\n const linkId = this.outputs[0].links[0]\n const link = this.graph.links[linkId]\n if (!link) return\n\n const theirNode = this.graph.getNodeById(link.target_id)\n if (!theirNode || !theirNode.inputs) return\n\n const input = theirNode.inputs[link.target_slot]\n if (!input) return\n\n let widget\n if (!input.widget) {\n if (!(input.type in ComfyWidgets)) return\n widget = { name: input.name, [GET_CONFIG]: () => [input.type, {}] } //fake widget\n } else {\n widget = input.widget\n }\n\n const config = widget[GET_CONFIG]?.()\n if (!config) return\n\n const { type } = getWidgetType(config)\n // Update our output to restrict to the widget type\n this.outputs[0].type = type\n this.outputs[0].name = type\n this.outputs[0].widget = widget\n\n this.#createWidget(\n widget[CONFIG] ?? config,\n theirNode,\n widget.name,\n recreating,\n widget[TARGET]\n )\n }\n\n #createWidget(inputData, node, widgetName, recreating, targetWidget) {\n let type = inputData[0]\n\n if (type instanceof Array) {\n type = 'COMBO'\n }\n\n // Store current size as addWidget resizes the node\n const [oldWidth, oldHeight] = this.size\n let widget\n if (type in ComfyWidgets) {\n widget = (ComfyWidgets[type](this, 'value', inputData, app) || {}).widget\n } else {\n widget = this.addWidget(type, 'value', null, () => {}, {})\n }\n\n if (targetWidget) {\n widget.value = targetWidget.value\n } else if (node?.widgets && widget) {\n const theirWidget = node.widgets.find((w) => w.name === widgetName)\n if (theirWidget) {\n widget.value = theirWidget.value\n }\n }\n\n if (\n !inputData?.[1]?.control_after_generate &&\n (widget.type === 'number' || widget.type === 'combo')\n ) {\n let control_value = this.widgets_values?.[1]\n if (!control_value) {\n control_value = 'fixed'\n }\n addValueControlWidgets(\n this,\n widget,\n control_value as string,\n undefined,\n inputData\n )\n let filter = this.widgets_values?.[2]\n if (filter && this.widgets.length === 3) {\n // @ts-expect-error change widget type from string to unknown\n this.widgets[2].value = filter\n }\n }\n\n // Restore any saved control values\n const controlValues = this.controlValues\n if (\n this.lastType === this.widgets[0].type &&\n controlValues?.length === this.widgets.length - 1\n ) {\n for (let i = 0; i < controlValues.length; i++) {\n this.widgets[i + 1].value = controlValues[i]\n }\n }\n\n // When our value changes, update other widgets to reflect our changes\n // e.g. so LoadImage shows correct image\n const callback = widget.callback\n const self = this\n widget.callback = function () {\n const r = callback ? callback.apply(this, arguments) : undefined\n self.applyToGraph()\n return r\n }\n\n // Use the biggest dimensions in case the widgets caused the node to grow\n this.size = [\n Math.max(this.size[0], oldWidth),\n Math.max(this.size[1], oldHeight)\n ]\n\n if (!recreating) {\n // Grow our node more if required\n const sz = this.computeSize()\n if (this.size[0] < sz[0]) {\n this.size[0] = sz[0]\n }\n if (this.size[1] < sz[1]) {\n this.size[1] = sz[1]\n }\n\n requestAnimationFrame(() => {\n if (this.onResize) {\n this.onResize(this.size)\n }\n })\n }\n }\n\n recreateWidget() {\n const values = this.widgets?.map((w) => w.value)\n this.#removeWidgets()\n this.#onFirstConnection(true)\n if (values?.length) {\n for (let i = 0; i < this.widgets?.length; i++)\n this.widgets[i].value = values[i]\n }\n return this.widgets?.[0]\n }\n\n #mergeWidgetConfig() {\n // Merge widget configs if the node has multiple outputs\n const output = this.outputs[0]\n const links = output.links\n\n const hasConfig = !!output.widget[CONFIG]\n if (hasConfig) {\n delete output.widget[CONFIG]\n }\n\n if (links?.length < 2 && hasConfig) {\n // Copy the widget options from the source\n if (links.length) {\n this.recreateWidget()\n }\n\n return\n }\n\n const config1 = output.widget[GET_CONFIG]()\n const isNumber = config1[0] === 'INT' || config1[0] === 'FLOAT'\n if (!isNumber) return\n\n for (const linkId of links) {\n const link = app.graph.links[linkId]\n if (!link) continue // Can be null when removing a node\n\n const theirNode = app.graph.getNodeById(link.target_id)\n const theirInput = theirNode.inputs[link.target_slot]\n\n // Call is valid connection so it can merge the configs when validating\n this.#isValidConnection(theirInput, hasConfig)\n }\n }\n\n isValidWidgetLink(\n originSlot: number,\n targetNode: LGraphNode,\n targetWidget: IWidget\n ) {\n const config2 = getConfig.call(targetNode, targetWidget.name) ?? [\n targetWidget.type,\n targetWidget.options || {}\n ]\n if (!isConvertibleWidget(targetWidget, config2)) return false\n\n const output = this.outputs[originSlot]\n if (!(output.widget?.[CONFIG] ?? output.widget?.[GET_CONFIG]())) {\n // No widget defined for this primitive yet so allow it\n return true\n }\n\n return !!mergeIfValid.call(this, output, config2)\n }\n\n #isValidConnection(input: INodeInputSlot, forceUpdate?: boolean) {\n // Only allow connections where the configs match\n const output = this.outputs[0]\n const config2 = input.widget[GET_CONFIG]()\n return !!mergeIfValid.call(\n this,\n output,\n config2,\n forceUpdate,\n this.recreateWidget\n )\n }\n\n #removeWidgets() {\n if (this.widgets) {\n // Allow widgets to cleanup\n for (const w of this.widgets) {\n if (w.onRemove) {\n w.onRemove()\n }\n }\n\n // Temporarily store the current values in case the node is being recreated\n // e.g. by group node conversion\n this.controlValues = []\n this.lastType = this.widgets[0]?.type\n for (let i = 1; i < this.widgets.length; i++) {\n this.controlValues.push(this.widgets[i].value)\n }\n setTimeout(() => {\n delete this.lastType\n delete this.controlValues\n }, 15)\n this.widgets.length = 0\n }\n }\n\n onLastDisconnect() {\n // We cant remove + re-add the output here as if you drag a link over the same link\n // it removes, then re-adds, causing it to break\n this.outputs[0].type = '*'\n this.outputs[0].name = 'connect to widget input'\n delete this.outputs[0].widget\n\n this.#removeWidgets()\n }\n}\n\nexport function getWidgetConfig(slot) {\n return slot.widget[CONFIG] ?? slot.widget[GET_CONFIG]?.() ?? ['*', {}]\n}\n\nfunction getConfig(widgetName) {\n const { nodeData } = this.constructor\n return (\n nodeData?.input?.required?.[widgetName] ??\n nodeData?.input?.optional?.[widgetName]\n )\n}\n\nfunction isConvertibleWidget(widget, config) {\n return (\n (VALID_TYPES.includes(widget.type) || VALID_TYPES.includes(config[0])) &&\n !widget.options?.forceInput\n )\n}\n\nfunction hideWidget(node, widget, suffix = '') {\n if (widget.type?.startsWith(CONVERTED_TYPE)) return\n widget.origType = widget.type\n widget.origComputeSize = widget.computeSize\n widget.origSerializeValue = widget.serializeValue\n widget.computeSize = () => [0, -4] // -4 is due to the gap litegraph adds between widgets automatically\n widget.type = CONVERTED_TYPE + suffix\n widget.serializeValue = () => {\n // Prevent serializing the widget if we have no input linked\n if (!node.inputs) {\n return undefined\n }\n let node_input = node.inputs.find((i) => i.widget?.name === widget.name)\n\n if (!node_input || !node_input.link) {\n return undefined\n }\n return widget.origSerializeValue\n ? widget.origSerializeValue()\n : widget.value\n }\n\n // Hide any linked widgets, e.g. seed+seedControl\n if (widget.linkedWidgets) {\n for (const w of widget.linkedWidgets) {\n hideWidget(node, w, ':' + widget.name)\n }\n }\n}\n\nfunction showWidget(widget) {\n widget.type = widget.origType\n widget.computeSize = widget.origComputeSize\n widget.serializeValue = widget.origSerializeValue\n\n delete widget.origType\n delete widget.origComputeSize\n delete widget.origSerializeValue\n\n // Hide any linked widgets, e.g. seed+seedControl\n if (widget.linkedWidgets) {\n for (const w of widget.linkedWidgets) {\n showWidget(w)\n }\n }\n}\n\nexport function convertToInput(\n node: LGraphNode,\n widget: IWidget,\n config: InputSpec\n) {\n hideWidget(node, widget)\n\n const { type } = getWidgetType(config)\n\n // Add input and store widget config for creating on primitive node\n const [oldWidth, oldHeight] = node.size\n const inputIsOptional = !!widget.options?.inputIsOptional\n const input = node.addInput(widget.name, type, {\n widget: { name: widget.name, [GET_CONFIG]: () => config },\n ...(inputIsOptional ? { shape: LiteGraph.SlotShape.HollowCircle } : {})\n })\n\n for (const widget of node.widgets) {\n widget.last_y += LiteGraph.NODE_SLOT_HEIGHT\n }\n\n // Restore original size but grow if needed\n node.setSize([\n Math.max(oldWidth, node.size[0]),\n Math.max(oldHeight, node.size[1])\n ])\n return input\n}\n\nfunction convertToWidget(node, widget) {\n showWidget(widget)\n const [oldWidth, oldHeight] = node.size\n node.removeInput(node.inputs.findIndex((i) => i.widget?.name === widget.name))\n\n for (const widget of node.widgets) {\n widget.last_y -= LiteGraph.NODE_SLOT_HEIGHT\n }\n\n // Restore original size but grow if needed\n node.setSize([\n Math.max(oldWidth, node.size[0]),\n Math.max(oldHeight, node.size[1])\n ])\n}\n\nfunction getWidgetType(config: InputSpec) {\n // Special handling for COMBO so we restrict links based on the entries\n let type = config[0]\n if (type instanceof Array) {\n type = 'COMBO'\n }\n return { type }\n}\n\nfunction isValidCombo(combo, obj) {\n // New input isnt a combo\n if (!(obj instanceof Array)) {\n console.log(`connection rejected: tried to connect combo to ${obj}`)\n return false\n }\n // New input combo has a different size\n if (combo.length !== obj.length) {\n console.log(`connection rejected: combo lists dont match`)\n return false\n }\n // New input combo has different elements\n if (combo.find((v, i) => obj[i] !== v)) {\n console.log(`connection rejected: combo lists dont match`)\n return false\n }\n\n return true\n}\n\nfunction isPrimitiveNode(node: LGraphNode): node is PrimitiveNode {\n return node.type === 'PrimitiveNode'\n}\n\nexport function setWidgetConfig(slot, config, target?: IWidget) {\n if (!slot.widget) return\n if (config) {\n slot.widget[GET_CONFIG] = () => config\n slot.widget[TARGET] = target\n } else {\n delete slot.widget\n }\n\n if (slot.link) {\n const link = app.graph.links[slot.link]\n if (link) {\n const originNode = app.graph.getNodeById(link.origin_id)\n if (isPrimitiveNode(originNode)) {\n if (config) {\n originNode.recreateWidget()\n } else if (!app.configuringGraph) {\n originNode.disconnectOutput(0)\n originNode.onLastDisconnect()\n }\n }\n }\n }\n}\n\nexport function mergeIfValid(\n output,\n config2,\n forceUpdate?: boolean,\n recreateWidget?: () => void,\n config1?: unknown\n) {\n if (!config1) {\n config1 = getWidgetConfig(output)\n }\n\n if (config1[0] instanceof Array) {\n if (!isValidCombo(config1[0], config2[0])) return\n } else if (config1[0] !== config2[0]) {\n // Types dont match\n console.log(`connection rejected: types dont match`, config1[0], config2[0])\n return\n }\n\n const keys = new Set([\n ...Object.keys(config1[1] ?? {}),\n ...Object.keys(config2[1] ?? {})\n ])\n\n let customConfig\n const getCustomConfig = () => {\n if (!customConfig) {\n if (typeof structuredClone === 'undefined') {\n customConfig = JSON.parse(JSON.stringify(config1[1] ?? {}))\n } else {\n customConfig = structuredClone(config1[1] ?? {})\n }\n }\n return customConfig\n }\n\n const isNumber = config1[0] === 'INT' || config1[0] === 'FLOAT'\n for (const k of keys.values()) {\n if (\n k !== 'default' &&\n k !== 'forceInput' &&\n k !== 'defaultInput' &&\n k !== 'control_after_generate' &&\n k !== 'multiline' &&\n k !== 'tooltip' &&\n k !== 'dynamicPrompts'\n ) {\n let v1 = config1[1][k]\n let v2 = config2[1]?.[k]\n\n if (v1 === v2 || (!v1 && !v2)) continue\n\n if (isNumber) {\n if (k === 'min') {\n const theirMax = config2[1]?.['max']\n if (theirMax != null && v1 > theirMax) {\n console.log('connection rejected: min > max', v1, theirMax)\n return\n }\n getCustomConfig()[k] =\n v1 == null ? v2 : v2 == null ? v1 : Math.max(v1, v2)\n continue\n } else if (k === 'max') {\n const theirMin = config2[1]?.['min']\n if (theirMin != null && v1 < theirMin) {\n console.log('connection rejected: max < min', v1, theirMin)\n return\n }\n getCustomConfig()[k] =\n v1 == null ? v2 : v2 == null ? v1 : Math.min(v1, v2)\n continue\n } else if (k === 'step') {\n let step\n if (v1 == null) {\n // No current step\n step = v2\n } else if (v2 == null) {\n // No new step\n step = v1\n } else {\n if (v1 < v2) {\n // Ensure v1 is larger for the mod\n const a = v2\n v2 = v1\n v1 = a\n }\n if (v1 % v2) {\n console.log(\n 'connection rejected: steps not divisible',\n 'current:',\n v1,\n 'new:',\n v2\n )\n return\n }\n\n step = v1\n }\n\n getCustomConfig()[k] = step\n continue\n }\n }\n\n console.log(`connection rejected: config ${k} values dont match`, v1, v2)\n return\n }\n }\n\n if (customConfig || forceUpdate) {\n if (customConfig) {\n output.widget[CONFIG] = [config1[0], customConfig]\n }\n\n const widget = recreateWidget?.call(this)\n // When deleting a node this can be null\n if (widget) {\n const min = widget.options.min\n const max = widget.options.max\n if (min != null && widget.value < min) widget.value = min\n if (max != null && widget.value > max) widget.value = max\n widget.callback(widget.value)\n }\n }\n\n return { customConfig }\n}\n\nlet useConversionSubmenusSetting\napp.registerExtension({\n name: 'Comfy.WidgetInputs',\n init() {\n useConversionSubmenusSetting = app.ui.settings.addSetting({\n id: 'Comfy.NodeInputConversionSubmenus',\n name: 'In the node context menu, place the entries that convert between input/widget in sub-menus.',\n type: 'boolean',\n defaultValue: true\n })\n },\n setup() {\n app.canvas.getWidgetLinkType = function (widget, node) {\n const nodeDefStore = useNodeDefStore()\n const nodeDef = nodeDefStore.nodeDefsByName[node.type]\n const input = nodeDef.inputs.getInput(widget.name)\n return input?.type\n }\n\n document.addEventListener(\n 'litegraph:canvas',\n async (e: LiteGraphCanvasEvent) => {\n if (e.detail.subType === 'connectingWidgetLink') {\n const { node, link, widget } = e.detail\n if (!node || !link || !widget) return\n\n const nodeData = node.constructor.nodeData\n if (!nodeData) return\n const all = {\n ...nodeData?.input?.required,\n ...nodeData?.input?.optional\n }\n const inputSpec = all[widget.name]\n if (!inputSpec) return\n\n const input = convertToInput(node, widget, inputSpec)\n if (!input) return\n\n const originNode = link.node\n\n originNode.connect(link.slot, node, node.inputs.lastIndexOf(input))\n }\n }\n )\n },\n async beforeRegisterNodeDef(nodeType, nodeData, app) {\n // Add menu options to convert to/from widgets\n const origGetExtraMenuOptions = nodeType.prototype.getExtraMenuOptions\n // @ts-expect-error adding extra property\n nodeType.prototype.convertWidgetToInput = function (widget) {\n const config = getConfig.call(this, widget.name) ?? [\n widget.type,\n widget.options || {}\n ]\n if (!isConvertibleWidget(widget, config)) return false\n if (widget.type?.startsWith(CONVERTED_TYPE)) return false\n convertToInput(this, widget, config)\n return true\n }\n nodeType.prototype.getExtraMenuOptions = function (_, options) {\n const r = origGetExtraMenuOptions\n ? origGetExtraMenuOptions.apply(this, arguments)\n : undefined\n\n if (this.widgets) {\n let toInput = []\n let toWidget = []\n for (const w of this.widgets) {\n if (w.options?.forceInput) {\n continue\n }\n // @ts-expect-error custom widget type\n if (w.type === CONVERTED_TYPE) {\n toWidget.push({\n // @ts-expect-error never\n content: `Convert ${w.name} to widget`,\n callback: () => convertToWidget(this, w)\n })\n } else {\n const config = getConfig.call(this, w.name) ?? [\n w.type,\n w.options || {}\n ]\n if (isConvertibleWidget(w, config)) {\n toInput.push({\n content: `Convert ${w.name} to input`,\n callback: () => convertToInput(this, w, config)\n })\n }\n }\n }\n\n //Convert.. main menu\n if (toInput.length) {\n if (useConversionSubmenusSetting.value) {\n options.push({\n content: 'Convert Widget to Input',\n submenu: {\n options: toInput\n }\n })\n } else {\n options.push(...toInput, null)\n }\n }\n if (toWidget.length) {\n if (useConversionSubmenusSetting.value) {\n options.push({\n content: 'Convert Input to Widget',\n submenu: {\n options: toWidget\n }\n })\n } else {\n options.push(...toWidget, null)\n }\n }\n }\n\n return r\n }\n\n nodeType.prototype.onGraphConfigured = function () {\n if (!this.inputs) return\n this.widgets ??= []\n\n for (const input of this.inputs) {\n if (input.widget) {\n if (!input.widget[GET_CONFIG]) {\n input.widget[GET_CONFIG] = () =>\n getConfig.call(this, input.widget.name)\n }\n\n // Cleanup old widget config\n if (input.widget.config) {\n if (input.widget.config[0] instanceof Array) {\n // If we are an old converted combo then replace the input type and the stored link data\n input.type = 'COMBO'\n\n const link = app.graph.links[input.link]\n if (link) {\n link.type = input.type\n }\n }\n delete input.widget.config\n }\n\n const w = this.widgets.find((w) => w.name === input.widget.name)\n if (w) {\n hideWidget(this, w)\n } else {\n convertToWidget(this, input)\n }\n }\n }\n }\n\n const origOnNodeCreated = nodeType.prototype.onNodeCreated\n nodeType.prototype.onNodeCreated = function () {\n const r = origOnNodeCreated ? origOnNodeCreated.apply(this) : undefined\n\n // When node is created, convert any force/default inputs\n if (!app.configuringGraph && this.widgets) {\n for (const w of this.widgets) {\n if (w?.options?.forceInput || w?.options?.defaultInput) {\n const config = getConfig.call(this, w.name) ?? [\n w.type,\n w.options || {}\n ]\n convertToInput(this, w, config)\n }\n }\n }\n\n return r\n }\n\n const origOnConfigure = nodeType.prototype.onConfigure\n nodeType.prototype.onConfigure = function () {\n const r = origOnConfigure\n ? origOnConfigure.apply(this, arguments)\n : undefined\n if (!app.configuringGraph && this.inputs) {\n // On copy + paste of nodes, ensure that widget configs are set up\n for (const input of this.inputs) {\n if (input.widget && !input.widget[GET_CONFIG]) {\n input.widget[GET_CONFIG] = () =>\n // @ts-expect-error input.widget has unknown type\n getConfig.call(this, input.widget.name)\n // @ts-expect-error input.widget has unknown type\n const w = this.widgets.find((w) => w.name === input.widget.name)\n if (w) {\n hideWidget(this, w)\n }\n }\n }\n }\n\n return r\n }\n\n function isNodeAtPos(pos) {\n for (const n of app.graph.nodes) {\n if (n.pos[0] === pos[0] && n.pos[1] === pos[1]) {\n return true\n }\n }\n return false\n }\n\n // Double click a widget input to automatically attach a primitive\n const origOnInputDblClick = nodeType.prototype.onInputDblClick\n const ignoreDblClick = Symbol()\n nodeType.prototype.onInputDblClick = function (slot) {\n const r = origOnInputDblClick\n ? origOnInputDblClick.apply(this, arguments)\n : undefined\n\n const input = this.inputs[slot]\n if (!input.widget || !input[ignoreDblClick]) {\n // Not a widget input or already handled input\n if (\n !(input.type in ComfyWidgets) &&\n !(input.widget?.[GET_CONFIG]?.()?.[0] instanceof Array)\n ) {\n return r //also Not a ComfyWidgets input or combo (do nothing)\n }\n }\n\n // Create a primitive node\n const node = LiteGraph.createNode('PrimitiveNode')\n app.graph.add(node)\n\n // Calculate a position that wont directly overlap another node\n const pos: [number, number] = [\n this.pos[0] - node.size[0] - 30,\n this.pos[1]\n ]\n while (isNodeAtPos(pos)) {\n pos[1] += LiteGraph.NODE_TITLE_HEIGHT\n }\n\n node.pos = pos\n node.connect(0, this, slot)\n node.title = input.name\n\n // Prevent adding duplicates due to triple clicking\n input[ignoreDblClick] = true\n setTimeout(() => {\n delete input[ignoreDblClick]\n }, 300)\n\n return r\n }\n\n // Prevent connecting COMBO lists to converted inputs that dont match types\n const onConnectInput = nodeType.prototype.onConnectInput\n nodeType.prototype.onConnectInput = function (\n targetSlot,\n type,\n output,\n originNode,\n originSlot\n ) {\n // @ts-expect-error onConnectInput has 5 arguments\n const v = onConnectInput?.(this, arguments)\n // Not a combo, ignore\n if (type !== 'COMBO') return v\n // Primitive output, allow that to handle\n if (originNode.outputs[originSlot].widget) return v\n\n // Ensure target is also a combo\n const targetCombo = this.inputs[targetSlot].widget?.[GET_CONFIG]?.()?.[0]\n if (!targetCombo || !(targetCombo instanceof Array)) return v\n\n // Check they match\n const originConfig =\n originNode.constructor?.nodeData?.output?.[originSlot]\n if (!originConfig || !isValidCombo(targetCombo, originConfig)) {\n return false\n }\n\n return v\n }\n },\n registerCustomNodes() {\n LiteGraph.registerNodeType(\n 'PrimitiveNode',\n Object.assign(PrimitiveNode, {\n title: 'Primitive'\n })\n )\n PrimitiveNode.category = 'utils'\n }\n})\n","// @ts-strict-ignore\nimport { type LGraph, LGraphCanvas, LiteGraph } from '@comfyorg/litegraph'\nimport { LGraphNode, type NodeId } from '@comfyorg/litegraph/dist/LGraphNode'\n\nimport { t } from '@/i18n'\nimport { useDialogService } from '@/services/dialogService'\nimport { useNodeDefStore } from '@/stores/nodeDefStore'\nimport { useToastStore } from '@/stores/toastStore'\nimport type { ComfyNodeDef } from '@/types/apiTypes'\nimport { ComfyExtension } from '@/types/comfy'\nimport { ComfyLink, ComfyNode, ComfyWorkflowJSON } from '@/types/comfyWorkflow'\nimport { deserialiseAndCreate, serialise } from '@/utils/vintageClipboard'\n\nimport { api } from '../../scripts/api'\nimport { app } from '../../scripts/app'\nimport { ManageGroupDialog } from './groupNodeManage'\nimport { mergeIfValid } from './widgetInputs'\n\ntype GroupNodeWorkflowData = {\n external: ComfyLink[]\n links: ComfyLink[]\n nodes: ComfyNode[]\n}\n\nconst GROUP = Symbol()\n\n// v1 Prefix + Separator: workflow/\n// v2 Prefix + Separator: workflow> (ComfyUI_frontend v1.2.63)\nconst PREFIX = 'workflow'\nconst SEPARATOR = '>'\n\nconst Workflow = {\n InUse: {\n Free: 0,\n Registered: 1,\n InWorkflow: 2\n },\n isInUseGroupNode(name) {\n const id = `${PREFIX}${SEPARATOR}${name}`\n // Check if lready registered/in use in this workflow\n if (app.graph.extra?.groupNodes?.[name]) {\n if (app.graph.nodes.find((n) => n.type === id)) {\n return Workflow.InUse.InWorkflow\n } else {\n return Workflow.InUse.Registered\n }\n }\n return Workflow.InUse.Free\n },\n storeGroupNode(name: string, data: GroupNodeWorkflowData) {\n let extra = app.graph.extra\n if (!extra) app.graph.extra = extra = {}\n let groupNodes = extra.groupNodes\n if (!groupNodes) extra.groupNodes = groupNodes = {}\n groupNodes[name] = data\n }\n}\n\nclass GroupNodeBuilder {\n nodes: LGraphNode[]\n nodeData: GroupNodeWorkflowData\n\n constructor(nodes: LGraphNode[]) {\n this.nodes = nodes\n }\n\n async build() {\n const name = await this.getName()\n if (!name) return\n\n // Sort the nodes so they are in execution order\n // this allows for widgets to be in the correct order when reconstructing\n this.sortNodes()\n\n this.nodeData = this.getNodeData()\n Workflow.storeGroupNode(name, this.nodeData)\n\n return { name, nodeData: this.nodeData }\n }\n\n async getName() {\n const name = await useDialogService().prompt({\n title: t('groupNode.create'),\n message: t('groupNode.enterName'),\n defaultValue: ''\n })\n if (!name) return\n const used = Workflow.isInUseGroupNode(name)\n switch (used) {\n case Workflow.InUse.InWorkflow:\n useToastStore().addAlert(\n 'An in use group node with this name already exists embedded in this workflow, please remove any instances or use a new name.'\n )\n return\n case Workflow.InUse.Registered:\n if (\n !confirm(\n 'A group node with this name already exists embedded in this workflow, are you sure you want to overwrite it?'\n )\n ) {\n return\n }\n break\n }\n return name\n }\n\n sortNodes() {\n // Gets the builders nodes in graph execution order\n const nodesInOrder = app.graph.computeExecutionOrder(false)\n this.nodes = this.nodes\n .map((node) => ({ index: nodesInOrder.indexOf(node), node }))\n // @ts-expect-error id might be string\n .sort((a, b) => a.index - b.index || a.node.id - b.node.id)\n .map(({ node }) => node)\n }\n\n getNodeData() {\n const storeLinkTypes = (config) => {\n // Store link types for dynamically typed nodes e.g. reroutes\n for (const link of config.links) {\n const origin = app.graph.getNodeById(link[4])\n const type = origin.outputs[link[1]].type\n link.push(type)\n }\n }\n\n const storeExternalLinks = (config) => {\n // Store any external links to the group in the config so when rebuilding we add extra slots\n config.external = []\n for (let i = 0; i < this.nodes.length; i++) {\n const node = this.nodes[i]\n if (!node.outputs?.length) continue\n for (let slot = 0; slot < node.outputs.length; slot++) {\n let hasExternal = false\n const output = node.outputs[slot]\n let type = output.type\n if (!output.links?.length) continue\n for (const l of output.links) {\n const link = app.graph.links[l]\n if (!link) continue\n if (type === '*') type = link.type\n\n if (!app.canvas.selected_nodes[link.target_id]) {\n hasExternal = true\n break\n }\n }\n if (hasExternal) {\n config.external.push([i, slot, type])\n }\n }\n }\n }\n\n // Use the built in copyToClipboard function to generate the node data we need\n try {\n const serialised = serialise(this.nodes, app.canvas.graph)\n const config = JSON.parse(serialised)\n\n storeLinkTypes(config)\n storeExternalLinks(config)\n\n return config\n } finally {\n }\n }\n}\n\nexport class GroupNodeConfig {\n name: string\n nodeData: any\n inputCount: number\n oldToNewOutputMap: {}\n newToOldOutputMap: {}\n oldToNewInputMap: {}\n oldToNewWidgetMap: {}\n newToOldWidgetMap: {}\n primitiveDefs: {}\n widgetToPrimitive: {}\n primitiveToWidget: {}\n nodeInputs: {}\n outputVisibility: any[]\n nodeDef: ComfyNodeDef\n inputs: any[]\n linksFrom: {}\n linksTo: {}\n externalFrom: {}\n\n constructor(name, nodeData) {\n this.name = name\n this.nodeData = nodeData\n this.getLinks()\n\n this.inputCount = 0\n this.oldToNewOutputMap = {}\n this.newToOldOutputMap = {}\n this.oldToNewInputMap = {}\n this.oldToNewWidgetMap = {}\n this.newToOldWidgetMap = {}\n this.primitiveDefs = {}\n this.widgetToPrimitive = {}\n this.primitiveToWidget = {}\n this.nodeInputs = {}\n this.outputVisibility = []\n }\n\n async registerType(source = PREFIX) {\n this.nodeDef = {\n output: [],\n output_name: [],\n output_is_list: [],\n // @ts-expect-error Unused, doesn't exist\n output_is_hidden: [],\n name: source + SEPARATOR + this.name,\n display_name: this.name,\n category: 'group nodes' + (SEPARATOR + source),\n input: { required: {} },\n description: `Group node combining ${this.nodeData.nodes\n .map((n) => n.type)\n .join(', ')}`,\n python_module: 'custom_nodes.' + this.name,\n\n [GROUP]: this\n }\n\n this.inputs = []\n const seenInputs = {}\n const seenOutputs = {}\n for (let i = 0; i < this.nodeData.nodes.length; i++) {\n const node = this.nodeData.nodes[i]\n node.index = i\n this.processNode(node, seenInputs, seenOutputs)\n }\n\n for (const p of this.#convertedToProcess) {\n p()\n }\n this.#convertedToProcess = null\n await app.registerNodeDef(`${PREFIX}${SEPARATOR}` + this.name, this.nodeDef)\n useNodeDefStore().addNodeDef(this.nodeDef)\n }\n\n getLinks() {\n this.linksFrom = {}\n this.linksTo = {}\n this.externalFrom = {}\n\n // Extract links for easy lookup\n for (const l of this.nodeData.links) {\n const [sourceNodeId, sourceNodeSlot, targetNodeId, targetNodeSlot] = l\n\n // Skip links outside the copy config\n if (sourceNodeId == null) continue\n\n if (!this.linksFrom[sourceNodeId]) {\n this.linksFrom[sourceNodeId] = {}\n }\n if (!this.linksFrom[sourceNodeId][sourceNodeSlot]) {\n this.linksFrom[sourceNodeId][sourceNodeSlot] = []\n }\n this.linksFrom[sourceNodeId][sourceNodeSlot].push(l)\n\n if (!this.linksTo[targetNodeId]) {\n this.linksTo[targetNodeId] = {}\n }\n this.linksTo[targetNodeId][targetNodeSlot] = l\n }\n\n if (this.nodeData.external) {\n for (const ext of this.nodeData.external) {\n if (!this.externalFrom[ext[0]]) {\n this.externalFrom[ext[0]] = { [ext[1]]: ext[2] }\n } else {\n this.externalFrom[ext[0]][ext[1]] = ext[2]\n }\n }\n }\n }\n\n processNode(node, seenInputs, seenOutputs) {\n const def = this.getNodeDef(node)\n if (!def) return\n\n const inputs = { ...def.input?.required, ...def.input?.optional }\n\n this.inputs.push(this.processNodeInputs(node, seenInputs, inputs))\n if (def.output?.length) this.processNodeOutputs(node, seenOutputs, def)\n }\n\n getNodeDef(node) {\n const def = globalDefs[node.type]\n if (def) return def\n\n const linksFrom = this.linksFrom[node.index]\n if (node.type === 'PrimitiveNode') {\n // Skip as its not linked\n if (!linksFrom) return\n\n let type = linksFrom['0'][0][5]\n if (type === 'COMBO') {\n // Use the array items\n const source = node.outputs[0].widget.name\n const fromTypeName = this.nodeData.nodes[linksFrom['0'][0][2]].type\n const fromType = globalDefs[fromTypeName]\n const input =\n fromType.input.required[source] ?? fromType.input.optional[source]\n type = input[0]\n }\n\n const def = (this.primitiveDefs[node.index] = {\n input: {\n required: {\n value: [type, {}]\n }\n },\n output: [type],\n output_name: [],\n output_is_list: []\n })\n return def\n } else if (node.type === 'Reroute') {\n const linksTo = this.linksTo[node.index]\n if (linksTo && linksFrom && !this.externalFrom[node.index]?.[0]) {\n // Being used internally\n return null\n }\n\n let config = {}\n let rerouteType = '*'\n if (linksFrom) {\n for (const [, , id, slot] of linksFrom['0']) {\n const node = this.nodeData.nodes[id]\n const input = node.inputs[slot]\n if (rerouteType === '*') {\n rerouteType = input.type\n }\n if (input.widget) {\n const targetDef = globalDefs[node.type]\n const targetWidget =\n targetDef.input.required[input.widget.name] ??\n targetDef.input.optional[input.widget.name]\n\n const widget = [targetWidget[0], config]\n const res = mergeIfValid(\n {\n widget\n },\n targetWidget,\n false,\n null,\n widget\n )\n config = res?.customConfig ?? config\n }\n }\n } else if (linksTo) {\n const [id, slot] = linksTo['0']\n rerouteType = this.nodeData.nodes[id].outputs[slot].type\n } else {\n // Reroute used as a pipe\n for (const l of this.nodeData.links) {\n if (l[2] === node.index) {\n rerouteType = l[5]\n break\n }\n }\n if (rerouteType === '*') {\n // Check for an external link\n const t = this.externalFrom[node.index]?.[0]\n if (t) {\n rerouteType = t\n }\n }\n }\n\n // @ts-expect-error\n config.forceInput = true\n return {\n input: {\n required: {\n [rerouteType]: [rerouteType, config]\n }\n },\n output: [rerouteType],\n output_name: [],\n output_is_list: []\n }\n }\n\n console.warn(\n 'Skipping virtual node ' +\n node.type +\n ' when building group node ' +\n this.name\n )\n }\n\n getInputConfig(node, inputName, seenInputs, config, extra?) {\n const customConfig = this.nodeData.config?.[node.index]?.input?.[inputName]\n let name =\n customConfig?.name ??\n node.inputs?.find((inp) => inp.name === inputName)?.label ??\n inputName\n let key = name\n let prefix = ''\n // Special handling for primitive to include the title if it is set rather than just \"value\"\n if ((node.type === 'PrimitiveNode' && node.title) || name in seenInputs) {\n prefix = `${node.title ?? node.type} `\n key = name = `${prefix}${inputName}`\n if (name in seenInputs) {\n name = `${prefix}${seenInputs[name]} ${inputName}`\n }\n }\n seenInputs[key] = (seenInputs[key] ?? 1) + 1\n\n if (inputName === 'seed' || inputName === 'noise_seed') {\n if (!extra) extra = {}\n extra.control_after_generate = `${prefix}control_after_generate`\n }\n if (config[0] === 'IMAGEUPLOAD') {\n if (!extra) extra = {}\n extra.widget =\n this.oldToNewWidgetMap[node.index]?.[config[1]?.widget ?? 'image'] ??\n 'image'\n }\n\n if (extra) {\n config = [config[0], { ...config[1], ...extra }]\n }\n\n return { name, config, customConfig }\n }\n\n processWidgetInputs(inputs, node, inputNames, seenInputs) {\n const slots = []\n const converted = new Map()\n const widgetMap = (this.oldToNewWidgetMap[node.index] = {})\n for (const inputName of inputNames) {\n let widgetType = app.getWidgetType(inputs[inputName], inputName)\n if (widgetType) {\n const convertedIndex = node.inputs?.findIndex(\n (inp) => inp.name === inputName && inp.widget?.name === inputName\n )\n if (convertedIndex > -1) {\n // This widget has been converted to a widget\n // We need to store this in the correct position so link ids line up\n converted.set(convertedIndex, inputName)\n widgetMap[inputName] = null\n } else {\n // Normal widget\n const { name, config } = this.getInputConfig(\n node,\n inputName,\n seenInputs,\n inputs[inputName]\n )\n this.nodeDef.input.required[name] = config\n widgetMap[inputName] = name\n this.newToOldWidgetMap[name] = { node, inputName }\n }\n } else {\n // Normal input\n slots.push(inputName)\n }\n }\n return { converted, slots }\n }\n\n checkPrimitiveConnection(link, inputName, inputs) {\n const sourceNode = this.nodeData.nodes[link[0]]\n if (sourceNode.type === 'PrimitiveNode') {\n // Merge link configurations\n const [sourceNodeId, _, targetNodeId, __] = link\n const primitiveDef = this.primitiveDefs[sourceNodeId]\n const targetWidget = inputs[inputName]\n const primitiveConfig = primitiveDef.input.required.value\n const output = { widget: primitiveConfig }\n const config = mergeIfValid(\n output,\n targetWidget,\n false,\n null,\n primitiveConfig\n )\n primitiveConfig[1] =\n config?.customConfig ?? inputs[inputName][1]\n ? { ...inputs[inputName][1] }\n : {}\n\n let name = this.oldToNewWidgetMap[sourceNodeId]['value']\n name = name.substr(0, name.length - 6)\n primitiveConfig[1].control_after_generate = true\n primitiveConfig[1].control_prefix = name\n\n let toPrimitive = this.widgetToPrimitive[targetNodeId]\n if (!toPrimitive) {\n toPrimitive = this.widgetToPrimitive[targetNodeId] = {}\n }\n if (toPrimitive[inputName]) {\n toPrimitive[inputName].push(sourceNodeId)\n }\n toPrimitive[inputName] = sourceNodeId\n\n let toWidget = this.primitiveToWidget[sourceNodeId]\n if (!toWidget) {\n toWidget = this.primitiveToWidget[sourceNodeId] = []\n }\n toWidget.push({ nodeId: targetNodeId, inputName })\n }\n }\n\n processInputSlots(inputs, node, slots, linksTo, inputMap, seenInputs) {\n this.nodeInputs[node.index] = {}\n for (let i = 0; i < slots.length; i++) {\n const inputName = slots[i]\n if (linksTo[i]) {\n this.checkPrimitiveConnection(linksTo[i], inputName, inputs)\n // This input is linked so we can skip it\n continue\n }\n\n const { name, config, customConfig } = this.getInputConfig(\n node,\n inputName,\n seenInputs,\n inputs[inputName]\n )\n\n this.nodeInputs[node.index][inputName] = name\n if (customConfig?.visible === false) continue\n\n this.nodeDef.input.required[name] = config\n inputMap[i] = this.inputCount++\n }\n }\n\n processConvertedWidgets(\n inputs,\n node,\n slots,\n converted,\n linksTo,\n inputMap,\n seenInputs\n ) {\n // Add converted widgets sorted into their index order (ordered as they were converted) so link ids match up\n const convertedSlots = [...converted.keys()]\n .sort()\n .map((k) => converted.get(k))\n for (let i = 0; i < convertedSlots.length; i++) {\n const inputName = convertedSlots[i]\n if (linksTo[slots.length + i]) {\n this.checkPrimitiveConnection(\n linksTo[slots.length + i],\n inputName,\n inputs\n )\n // This input is linked so we can skip it\n continue\n }\n\n const { name, config } = this.getInputConfig(\n node,\n inputName,\n seenInputs,\n inputs[inputName],\n {\n defaultInput: true\n }\n )\n\n this.nodeDef.input.required[name] = config\n this.newToOldWidgetMap[name] = { node, inputName }\n\n if (!this.oldToNewWidgetMap[node.index]) {\n this.oldToNewWidgetMap[node.index] = {}\n }\n this.oldToNewWidgetMap[node.index][inputName] = name\n\n inputMap[slots.length + i] = this.inputCount++\n }\n }\n\n #convertedToProcess = []\n processNodeInputs(node, seenInputs, inputs) {\n const inputMapping = []\n\n const inputNames = Object.keys(inputs)\n if (!inputNames.length) return\n\n const { converted, slots } = this.processWidgetInputs(\n inputs,\n node,\n inputNames,\n seenInputs\n )\n const linksTo = this.linksTo[node.index] ?? {}\n const inputMap = (this.oldToNewInputMap[node.index] = {})\n this.processInputSlots(inputs, node, slots, linksTo, inputMap, seenInputs)\n\n // Converted inputs have to be processed after all other nodes as they'll be at the end of the list\n this.#convertedToProcess.push(() =>\n this.processConvertedWidgets(\n inputs,\n node,\n slots,\n converted,\n linksTo,\n inputMap,\n seenInputs\n )\n )\n\n return inputMapping\n }\n\n processNodeOutputs(node, seenOutputs, def) {\n const oldToNew = (this.oldToNewOutputMap[node.index] = {})\n\n // Add outputs\n for (let outputId = 0; outputId < def.output.length; outputId++) {\n const linksFrom = this.linksFrom[node.index]\n // If this output is linked internally we flag it to hide\n const hasLink =\n linksFrom?.[outputId] && !this.externalFrom[node.index]?.[outputId]\n const customConfig =\n this.nodeData.config?.[node.index]?.output?.[outputId]\n const visible = customConfig?.visible ?? !hasLink\n this.outputVisibility.push(visible)\n if (!visible) {\n continue\n }\n\n oldToNew[outputId] = this.nodeDef.output.length\n this.newToOldOutputMap[this.nodeDef.output.length] = {\n node,\n slot: outputId\n }\n this.nodeDef.output.push(def.output[outputId])\n this.nodeDef.output_is_list.push(def.output_is_list[outputId])\n\n let label = customConfig?.name\n if (!label) {\n label = def.output_name?.[outputId] ?? def.output[outputId]\n const output = node.outputs.find((o) => o.name === label)\n if (output?.label) {\n label = output.label\n }\n }\n\n let name = label\n if (name in seenOutputs) {\n const prefix = `${node.title ?? node.type} `\n name = `${prefix}${label}`\n if (name in seenOutputs) {\n name = `${prefix}${node.index} ${label}`\n }\n }\n seenOutputs[name] = 1\n\n this.nodeDef.output_name.push(name)\n }\n }\n\n static async registerFromWorkflow(groupNodes, missingNodeTypes) {\n for (const g in groupNodes) {\n const groupData = groupNodes[g]\n\n let hasMissing = false\n for (const n of groupData.nodes) {\n // Find missing node types\n if (!(n.type in LiteGraph.registered_node_types)) {\n missingNodeTypes.push({\n type: n.type,\n hint: ` (In group node '${PREFIX}${SEPARATOR}${g}')`\n })\n\n missingNodeTypes.push({\n type: `${PREFIX}${SEPARATOR}` + g,\n action: {\n text: 'Remove from workflow',\n callback: (e) => {\n delete groupNodes[g]\n e.target.textContent = 'Removed'\n e.target.style.pointerEvents = 'none'\n e.target.style.opacity = 0.7\n }\n }\n })\n\n hasMissing = true\n }\n }\n\n if (hasMissing) continue\n\n const config = new GroupNodeConfig(g, groupData)\n await config.registerType()\n }\n }\n}\n\nexport class GroupNodeHandler {\n node: LGraphNode\n groupData\n innerNodes: any\n\n constructor(node: LGraphNode) {\n this.node = node\n this.groupData = node.constructor?.nodeData?.[GROUP]\n\n this.node.setInnerNodes = (innerNodes) => {\n this.innerNodes = innerNodes\n\n for (\n let innerNodeIndex = 0;\n innerNodeIndex < this.innerNodes.length;\n innerNodeIndex++\n ) {\n const innerNode = this.innerNodes[innerNodeIndex]\n\n for (const w of innerNode.widgets ?? []) {\n if (w.type === 'converted-widget') {\n w.serializeValue = w.origSerializeValue\n }\n }\n\n innerNode.index = innerNodeIndex\n innerNode.getInputNode = (slot) => {\n // Check if this input is internal or external\n const externalSlot =\n this.groupData.oldToNewInputMap[innerNode.index]?.[slot]\n if (externalSlot != null) {\n return this.node.getInputNode(externalSlot)\n }\n\n // Internal link\n const innerLink = this.groupData.linksTo[innerNode.index]?.[slot]\n if (!innerLink) return null\n\n const inputNode = innerNodes[innerLink[0]]\n // Primitives will already apply their values\n if (inputNode.type === 'PrimitiveNode') return null\n\n return inputNode\n }\n\n innerNode.getInputLink = (slot) => {\n const externalSlot =\n this.groupData.oldToNewInputMap[innerNode.index]?.[slot]\n if (externalSlot != null) {\n // The inner node is connected via the group node inputs\n const linkId = this.node.inputs[externalSlot].link\n let link = app.graph.links[linkId]\n\n // Use the outer link, but update the target to the inner node\n // @ts-expect-error\n // TODO: Fix this\n link = {\n ...link,\n target_id: innerNode.id,\n target_slot: +slot\n }\n return link\n }\n\n let link = this.groupData.linksTo[innerNode.index]?.[slot]\n if (!link) return null\n // Use the inner link, but update the origin node to be inner node id\n link = {\n origin_id: innerNodes[link[0]].id,\n origin_slot: link[1],\n target_id: innerNode.id,\n target_slot: +slot\n }\n return link\n }\n }\n }\n\n this.node.updateLink = (link) => {\n // Replace the group node reference with the internal node\n // @ts-expect-error Can this be removed? Or replaced with: LLink.create(link.asSerialisable())\n link = { ...link }\n const output = this.groupData.newToOldOutputMap[link.origin_slot]\n let innerNode = this.innerNodes[output.node.index]\n let l\n while (innerNode?.type === 'Reroute') {\n l = innerNode.getInputLink(0)\n innerNode = innerNode.getInputNode(0)\n }\n\n if (!innerNode) {\n return null\n }\n\n if (l && GroupNodeHandler.isGroupNode(innerNode)) {\n return innerNode.updateLink(l)\n }\n\n link.origin_id = innerNode.id\n link.origin_slot = l?.origin_slot ?? output.slot\n return link\n }\n\n this.node.getInnerNodes = () => {\n if (!this.innerNodes) {\n this.node.setInnerNodes(\n this.groupData.nodeData.nodes.map((n, i) => {\n const innerNode = LiteGraph.createNode(n.type)\n innerNode.configure(n)\n innerNode.id = `${this.node.id}:${i}`\n return innerNode\n })\n )\n }\n\n this.updateInnerWidgets()\n\n return this.innerNodes\n }\n\n this.node.recreate = async () => {\n const id = this.node.id\n const sz = this.node.size\n const nodes = this.node.convertToNodes()\n\n const groupNode = LiteGraph.createNode(this.node.type)\n groupNode.id = id\n\n // Reuse the existing nodes for this instance\n groupNode.setInnerNodes(nodes)\n groupNode[GROUP].populateWidgets()\n app.graph.add(groupNode)\n groupNode.size = [\n Math.max(groupNode.size[0], sz[0]),\n Math.max(groupNode.size[1], sz[1])\n ]\n\n // Remove all converted nodes and relink them\n const builder = new GroupNodeBuilder(nodes)\n const nodeData = builder.getNodeData()\n groupNode[GROUP].groupData.nodeData.links = nodeData.links\n groupNode[GROUP].replaceNodes(nodes)\n return groupNode\n }\n\n this.node.convertToNodes = () => {\n const addInnerNodes = () => {\n // Clone the node data so we dont mutate it for other nodes\n const c = { ...this.groupData.nodeData }\n c.nodes = [...c.nodes]\n const innerNodes = this.node.getInnerNodes()\n let ids = []\n for (let i = 0; i < c.nodes.length; i++) {\n let id = innerNodes?.[i]?.id\n // Use existing IDs if they are set on the inner nodes\n if (id == null || isNaN(id)) {\n id = undefined\n } else {\n ids.push(id)\n }\n c.nodes[i] = { ...c.nodes[i], id }\n }\n deserialiseAndCreate(JSON.stringify(c), app.canvas)\n\n const [x, y] = this.node.pos\n let top\n let left\n // Configure nodes with current widget data\n const selectedIds = ids.length\n ? ids\n : Object.keys(app.canvas.selected_nodes)\n const newNodes = []\n for (let i = 0; i < selectedIds.length; i++) {\n const id = selectedIds[i]\n const newNode = app.graph.getNodeById(id)\n const innerNode = innerNodes[i]\n newNodes.push(newNode)\n\n if (left == null || newNode.pos[0] < left) {\n left = newNode.pos[0]\n }\n if (top == null || newNode.pos[1] < top) {\n top = newNode.pos[1]\n }\n\n if (!newNode.widgets) continue\n\n const map = this.groupData.oldToNewWidgetMap[innerNode.index]\n if (map) {\n const widgets = Object.keys(map)\n\n for (const oldName of widgets) {\n const newName = map[oldName]\n if (!newName) continue\n\n const widgetIndex = this.node.widgets.findIndex(\n (w) => w.name === newName\n )\n if (widgetIndex === -1) continue\n\n // Populate the main and any linked widgets\n if (innerNode.type === 'PrimitiveNode') {\n for (let i = 0; i < newNode.widgets.length; i++) {\n newNode.widgets[i].value =\n this.node.widgets[widgetIndex + i].value\n }\n } else {\n const outerWidget = this.node.widgets[widgetIndex]\n const newWidget = newNode.widgets.find(\n (w) => w.name === oldName\n )\n if (!newWidget) continue\n\n newWidget.value = outerWidget.value\n for (let w = 0; w < outerWidget.linkedWidgets?.length; w++) {\n newWidget.linkedWidgets[w].value =\n outerWidget.linkedWidgets[w].value\n }\n }\n }\n }\n }\n\n // Shift each node\n for (const newNode of newNodes) {\n newNode.pos[0] -= left - x\n newNode.pos[1] -= top - y\n }\n\n return { newNodes, selectedIds }\n }\n\n const reconnectInputs = (selectedIds) => {\n for (const innerNodeIndex in this.groupData.oldToNewInputMap) {\n const id = selectedIds[innerNodeIndex]\n const newNode = app.graph.getNodeById(id)\n const map = this.groupData.oldToNewInputMap[innerNodeIndex]\n for (const innerInputId in map) {\n const groupSlotId = map[innerInputId]\n if (groupSlotId == null) continue\n const slot = node.inputs[groupSlotId]\n if (slot.link == null) continue\n const link = app.graph.links[slot.link]\n if (!link) continue\n // connect this node output to the input of another node\n const originNode = app.graph.getNodeById(link.origin_id)\n originNode.connect(link.origin_slot, newNode, +innerInputId)\n }\n }\n }\n\n const reconnectOutputs = (selectedIds) => {\n for (\n let groupOutputId = 0;\n groupOutputId < node.outputs?.length;\n groupOutputId++\n ) {\n const output = node.outputs[groupOutputId]\n if (!output.links) continue\n const links = [...output.links]\n for (const l of links) {\n const slot = this.groupData.newToOldOutputMap[groupOutputId]\n const link = app.graph.links[l]\n const targetNode = app.graph.getNodeById(link.target_id)\n const newNode = app.graph.getNodeById(selectedIds[slot.node.index])\n newNode.connect(slot.slot, targetNode, link.target_slot)\n }\n }\n }\n\n app.canvas.emitBeforeChange()\n\n try {\n const { newNodes, selectedIds } = addInnerNodes()\n reconnectInputs(selectedIds)\n reconnectOutputs(selectedIds)\n app.graph.remove(this.node)\n\n return newNodes\n } finally {\n app.canvas.emitAfterChange()\n }\n }\n\n const getExtraMenuOptions = this.node.getExtraMenuOptions\n // @ts-expect-error Should pass patched return value getExtraMenuOptions\n this.node.getExtraMenuOptions = function (_, options) {\n getExtraMenuOptions?.apply(this, arguments)\n\n let optionIndex = options.findIndex((o) => o.content === 'Outputs')\n if (optionIndex === -1) optionIndex = options.length\n else optionIndex++\n options.splice(\n optionIndex,\n 0,\n null,\n {\n content: 'Convert to nodes',\n // @ts-expect-error\n callback: () => {\n return this.convertToNodes()\n }\n },\n {\n content: 'Manage Group Node',\n callback: () => manageGroupNodes(this.type)\n }\n )\n }\n\n // Draw custom collapse icon to identity this as a group\n const onDrawTitleBox = this.node.onDrawTitleBox\n this.node.onDrawTitleBox = function (ctx, height, size, scale) {\n onDrawTitleBox?.apply(this, arguments)\n\n const fill = ctx.fillStyle\n ctx.beginPath()\n ctx.rect(11, -height + 11, 2, 2)\n ctx.rect(14, -height + 11, 2, 2)\n ctx.rect(17, -height + 11, 2, 2)\n ctx.rect(11, -height + 14, 2, 2)\n ctx.rect(14, -height + 14, 2, 2)\n ctx.rect(17, -height + 14, 2, 2)\n ctx.rect(11, -height + 17, 2, 2)\n ctx.rect(14, -height + 17, 2, 2)\n ctx.rect(17, -height + 17, 2, 2)\n\n ctx.fillStyle = this.boxcolor || LiteGraph.NODE_DEFAULT_BOXCOLOR\n ctx.fill()\n ctx.fillStyle = fill\n }\n\n // Draw progress label\n const onDrawForeground = node.onDrawForeground\n const groupData = this.groupData.nodeData\n node.onDrawForeground = function (ctx) {\n const r = onDrawForeground?.apply?.(this, arguments)\n if (\n +app.runningNodeId === this.id &&\n this.runningInternalNodeId !== null\n ) {\n const n = groupData.nodes[this.runningInternalNodeId]\n if (!n) return\n const message = `Running ${n.title || n.type} (${this.runningInternalNodeId}/${groupData.nodes.length})`\n ctx.save()\n ctx.font = '12px sans-serif'\n const sz = ctx.measureText(message)\n ctx.fillStyle = node.boxcolor || LiteGraph.NODE_DEFAULT_BOXCOLOR\n ctx.beginPath()\n ctx.roundRect(\n 0,\n -LiteGraph.NODE_TITLE_HEIGHT - 20,\n sz.width + 12,\n 20,\n 5\n )\n ctx.fill()\n\n ctx.fillStyle = '#fff'\n ctx.fillText(message, 6, -LiteGraph.NODE_TITLE_HEIGHT - 6)\n ctx.restore()\n }\n }\n\n // Flag this node as needing to be reset\n const onExecutionStart = this.node.onExecutionStart\n this.node.onExecutionStart = function () {\n this.resetExecution = true\n return onExecutionStart?.apply(this, arguments)\n }\n\n const self = this\n const onNodeCreated = this.node.onNodeCreated\n this.node.onNodeCreated = function () {\n if (!this.widgets) {\n return\n }\n const config = self.groupData.nodeData.config\n if (config) {\n for (const n in config) {\n const inputs = config[n]?.input\n for (const w in inputs) {\n if (inputs[w].visible !== false) continue\n const widgetName = self.groupData.oldToNewWidgetMap[n][w]\n const widget = this.widgets.find((w) => w.name === widgetName)\n if (widget) {\n widget.type = 'hidden'\n widget.computeSize = () => [0, -4]\n }\n }\n }\n }\n\n return onNodeCreated?.apply(this, arguments)\n }\n\n function handleEvent(type, getId, getEvent) {\n const handler = ({ detail }) => {\n const id = getId(detail)\n if (!id) return\n const node = app.graph.getNodeById(id)\n if (node) return\n\n const innerNodeIndex = this.innerNodes?.findIndex((n) => n.id == id)\n if (innerNodeIndex > -1) {\n this.node.runningInternalNodeId = innerNodeIndex\n api.dispatchCustomEvent(\n type,\n getEvent(detail, `${this.node.id}`, this.node)\n )\n }\n }\n api.addEventListener(type, handler)\n return handler\n }\n\n const executing = handleEvent.call(\n this,\n 'executing',\n (d) => d,\n (d, id, node) => id\n )\n\n const executed = handleEvent.call(\n this,\n 'executed',\n (d) => d?.display_node || d?.node,\n (d, id, node) => ({\n ...d,\n node: id,\n display_node: id,\n merge: !node.resetExecution\n })\n )\n\n const onRemoved = node.onRemoved\n this.node.onRemoved = function () {\n onRemoved?.apply(this, arguments)\n api.removeEventListener('executing', executing)\n api.removeEventListener('executed', executed)\n }\n\n this.node.refreshComboInNode = (defs) => {\n // Update combo widget options\n for (const widgetName in this.groupData.newToOldWidgetMap) {\n const widget = this.node.widgets.find((w) => w.name === widgetName)\n if (widget?.type === 'combo') {\n const old = this.groupData.newToOldWidgetMap[widgetName]\n const def = defs[old.node.type]\n const input =\n def?.input?.required?.[old.inputName] ??\n def?.input?.optional?.[old.inputName]\n if (!input) continue\n\n widget.options.values = input[0]\n\n if (\n old.inputName !== 'image' &&\n // @ts-expect-error Widget values\n !widget.options.values.includes(widget.value)\n ) {\n widget.value = widget.options.values[0]\n widget.callback(widget.value)\n }\n }\n }\n }\n }\n\n updateInnerWidgets() {\n for (const newWidgetName in this.groupData.newToOldWidgetMap) {\n const newWidget = this.node.widgets.find((w) => w.name === newWidgetName)\n if (!newWidget) continue\n\n const newValue = newWidget.value\n const old = this.groupData.newToOldWidgetMap[newWidgetName]\n let innerNode = this.innerNodes[old.node.index]\n\n if (innerNode.type === 'PrimitiveNode') {\n innerNode.primitiveValue = newValue\n const primitiveLinked = this.groupData.primitiveToWidget[old.node.index]\n for (const linked of primitiveLinked ?? []) {\n const node = this.innerNodes[linked.nodeId]\n const widget = node.widgets.find((w) => w.name === linked.inputName)\n\n if (widget) {\n widget.value = newValue\n }\n }\n continue\n } else if (innerNode.type === 'Reroute') {\n const rerouteLinks = this.groupData.linksFrom[old.node.index]\n if (rerouteLinks) {\n for (const [_, , targetNodeId, targetSlot] of rerouteLinks['0']) {\n const node = this.innerNodes[targetNodeId]\n const input = node.inputs[targetSlot]\n if (input.widget) {\n const widget = node.widgets?.find(\n (w) => w.name === input.widget.name\n )\n if (widget) {\n widget.value = newValue\n }\n }\n }\n }\n }\n\n const widget = innerNode.widgets?.find((w) => w.name === old.inputName)\n if (widget) {\n widget.value = newValue\n }\n }\n }\n\n populatePrimitive(node, nodeId, oldName, i, linkedShift) {\n // Converted widget, populate primitive if linked\n const primitiveId = this.groupData.widgetToPrimitive[nodeId]?.[oldName]\n if (primitiveId == null) return\n const targetWidgetName =\n this.groupData.oldToNewWidgetMap[primitiveId]['value']\n const targetWidgetIndex = this.node.widgets.findIndex(\n (w) => w.name === targetWidgetName\n )\n if (targetWidgetIndex > -1) {\n const primitiveNode = this.innerNodes[primitiveId]\n let len = primitiveNode.widgets.length\n if (\n len - 1 !==\n this.node.widgets[targetWidgetIndex].linkedWidgets?.length\n ) {\n // Fallback handling for if some reason the primitive has a different number of widgets\n // we dont want to overwrite random widgets, better to leave blank\n len = 1\n }\n for (let i = 0; i < len; i++) {\n this.node.widgets[targetWidgetIndex + i].value =\n primitiveNode.widgets[i].value\n }\n }\n return true\n }\n\n populateReroute(node, nodeId, map) {\n if (node.type !== 'Reroute') return\n\n const link = this.groupData.linksFrom[nodeId]?.[0]?.[0]\n if (!link) return\n const [, , targetNodeId, targetNodeSlot] = link\n const targetNode = this.groupData.nodeData.nodes[targetNodeId]\n const inputs = targetNode.inputs\n const targetWidget = inputs?.[targetNodeSlot]?.widget\n if (!targetWidget) return\n\n const offset = inputs.length - (targetNode.widgets_values?.length ?? 0)\n const v = targetNode.widgets_values?.[targetNodeSlot - offset]\n if (v == null) return\n\n const widgetName = Object.values(map)[0]\n const widget = this.node.widgets.find((w) => w.name === widgetName)\n if (widget) {\n widget.value = v\n }\n }\n\n populateWidgets() {\n if (!this.node.widgets) return\n\n for (\n let nodeId = 0;\n nodeId < this.groupData.nodeData.nodes.length;\n nodeId++\n ) {\n const node = this.groupData.nodeData.nodes[nodeId]\n const map = this.groupData.oldToNewWidgetMap[nodeId] ?? {}\n const widgets = Object.keys(map)\n\n if (!node.widgets_values?.length) {\n // special handling for populating values into reroutes\n // this allows primitives connect to them to pick up the correct value\n this.populateReroute(node, nodeId, map)\n continue\n }\n\n let linkedShift = 0\n for (let i = 0; i < widgets.length; i++) {\n const oldName = widgets[i]\n const newName = map[oldName]\n const widgetIndex = this.node.widgets.findIndex(\n (w) => w.name === newName\n )\n const mainWidget = this.node.widgets[widgetIndex]\n if (\n this.populatePrimitive(node, nodeId, oldName, i, linkedShift) ||\n widgetIndex === -1\n ) {\n // Find the inner widget and shift by the number of linked widgets as they will have been removed too\n const innerWidget = this.innerNodes[nodeId].widgets?.find(\n (w) => w.name === oldName\n )\n linkedShift += innerWidget?.linkedWidgets?.length ?? 0\n }\n if (widgetIndex === -1) {\n continue\n }\n\n // Populate the main and any linked widget\n mainWidget.value = node.widgets_values[i + linkedShift]\n for (let w = 0; w < mainWidget.linkedWidgets?.length; w++) {\n this.node.widgets[widgetIndex + w + 1].value =\n node.widgets_values[i + ++linkedShift]\n }\n }\n }\n }\n\n replaceNodes(nodes) {\n let top\n let left\n\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i]\n if (left == null || node.pos[0] < left) {\n left = node.pos[0]\n }\n if (top == null || node.pos[1] < top) {\n top = node.pos[1]\n }\n\n this.linkOutputs(node, i)\n app.graph.remove(node)\n }\n\n this.linkInputs()\n this.node.pos = [left, top]\n }\n\n linkOutputs(originalNode, nodeId) {\n if (!originalNode.outputs) return\n\n for (const output of originalNode.outputs) {\n if (!output.links) continue\n // Clone the links as they'll be changed if we reconnect\n const links = [...output.links]\n for (const l of links) {\n const link = app.graph.links[l]\n if (!link) continue\n\n const targetNode = app.graph.getNodeById(link.target_id)\n const newSlot =\n this.groupData.oldToNewOutputMap[nodeId]?.[link.origin_slot]\n if (newSlot != null) {\n this.node.connect(newSlot, targetNode, link.target_slot)\n }\n }\n }\n }\n\n linkInputs() {\n for (const link of this.groupData.nodeData.links ?? []) {\n const [, originSlot, targetId, targetSlot, actualOriginId] = link\n const originNode = app.graph.getNodeById(actualOriginId)\n if (!originNode) continue // this node is in the group\n originNode.connect(\n originSlot,\n // @ts-expect-error Valid - uses deprecated interface. Required check: if (graph.getNodeById(this.node.id) !== this.node) report()\n this.node.id,\n this.groupData.oldToNewInputMap[targetId][targetSlot]\n )\n }\n }\n\n static getGroupData(node) {\n return (node.nodeData ?? node.constructor?.nodeData)?.[GROUP]\n }\n\n static isGroupNode(node: LGraphNode) {\n return !!node.constructor?.nodeData?.[GROUP]\n }\n\n static async fromNodes(nodes: LGraphNode[]) {\n // Process the nodes into the stored workflow group node data\n const builder = new GroupNodeBuilder(nodes)\n const res = await builder.build()\n if (!res) return\n\n const { name, nodeData } = res\n\n // Convert this data into a LG node definition and register it\n const config = new GroupNodeConfig(name, nodeData)\n await config.registerType()\n\n const groupNode = LiteGraph.createNode(`${PREFIX}${SEPARATOR}${name}`)\n // Reuse the existing nodes for this instance\n groupNode.setInnerNodes(builder.nodes)\n groupNode[GROUP].populateWidgets()\n app.graph.add(groupNode)\n\n // Remove all converted nodes and relink them\n groupNode[GROUP].replaceNodes(builder.nodes)\n return groupNode\n }\n}\n\nfunction addConvertToGroupOptions() {\n function addConvertOption(options, index) {\n const selected = Object.values(app.canvas.selected_nodes ?? {})\n const disabled =\n selected.length < 2 ||\n selected.find((n) => GroupNodeHandler.isGroupNode(n))\n options.splice(index + 1, null, {\n content: `Convert to Group Node`,\n disabled,\n callback: convertSelectedNodesToGroupNode\n })\n }\n\n function addManageOption(options, index) {\n const groups = app.graph.extra?.groupNodes\n const disabled = !groups || !Object.keys(groups).length\n options.splice(index + 1, null, {\n content: `Manage Group Nodes`,\n disabled,\n callback: () => manageGroupNodes()\n })\n }\n\n // Add to canvas\n const getCanvasMenuOptions = LGraphCanvas.prototype.getCanvasMenuOptions\n LGraphCanvas.prototype.getCanvasMenuOptions = function () {\n const options = getCanvasMenuOptions.apply(this, arguments)\n const index =\n options.findIndex((o) => o?.content === 'Add Group') + 1 || options.length\n addConvertOption(options, index)\n addManageOption(options, index + 1)\n return options\n }\n\n // Add to nodes\n const getNodeMenuOptions = LGraphCanvas.prototype.getNodeMenuOptions\n LGraphCanvas.prototype.getNodeMenuOptions = function (node) {\n const options = getNodeMenuOptions.apply(this, arguments)\n if (!GroupNodeHandler.isGroupNode(node)) {\n const index =\n options.findIndex((o) => o?.content === 'Outputs') + 1 ||\n options.length - 1\n addConvertOption(options, index)\n }\n return options\n }\n}\n\nconst replaceLegacySeparators = (nodes: ComfyNode[]): void => {\n for (const node of nodes) {\n if (typeof node.type === 'string' && node.type.startsWith('workflow/')) {\n node.type = node.type.replace(/^workflow\\//, `${PREFIX}${SEPARATOR}`)\n }\n }\n}\n\n/**\n * Convert selected nodes to a group node\n * @throws {Error} if no nodes are selected\n * @throws {Error} if a group node is already selected\n * @throws {Error} if a group node is selected\n *\n * The context menu item should not be available if any of the above conditions are met.\n * The error is automatically handled by the commandStore when the command is executed.\n */\nasync function convertSelectedNodesToGroupNode() {\n const nodes = Object.values(app.canvas.selected_nodes ?? {})\n if (nodes.length === 0) {\n throw new Error('No nodes selected')\n }\n if (nodes.length === 1) {\n throw new Error('Please select multiple nodes to convert to group node')\n }\n if (nodes.some((n) => GroupNodeHandler.isGroupNode(n))) {\n throw new Error('Selected nodes contain a group node')\n }\n return await GroupNodeHandler.fromNodes(nodes)\n}\n\nfunction ungroupSelectedGroupNodes() {\n const nodes = Object.values(app.canvas.selected_nodes ?? {})\n for (const node of nodes) {\n if (GroupNodeHandler.isGroupNode(node)) {\n node.convertToNodes?.()\n }\n }\n}\n\nfunction manageGroupNodes(type?: string) {\n new ManageGroupDialog(app).show(type)\n}\n\nconst id = 'Comfy.GroupNode'\nlet globalDefs\nconst ext: ComfyExtension = {\n name: id,\n commands: [\n {\n id: 'Comfy.GroupNode.ConvertSelectedNodesToGroupNode',\n label: 'Convert selected nodes to group node',\n icon: 'pi pi-sitemap',\n versionAdded: '1.3.17',\n function: convertSelectedNodesToGroupNode\n },\n {\n id: 'Comfy.GroupNode.UngroupSelectedGroupNodes',\n label: 'Ungroup selected group nodes',\n icon: 'pi pi-sitemap',\n versionAdded: '1.3.17',\n function: ungroupSelectedGroupNodes\n },\n {\n id: 'Comfy.GroupNode.ManageGroupNodes',\n label: 'Manage group nodes',\n icon: 'pi pi-cog',\n versionAdded: '1.3.17',\n function: manageGroupNodes\n }\n ],\n keybindings: [\n {\n commandId: 'Comfy.GroupNode.ConvertSelectedNodesToGroupNode',\n combo: {\n alt: true,\n key: 'g'\n }\n },\n {\n commandId: 'Comfy.GroupNode.UngroupSelectedGroupNodes',\n combo: {\n alt: true,\n shift: true,\n key: 'G'\n }\n }\n ],\n setup() {\n addConvertToGroupOptions()\n },\n async beforeConfigureGraph(\n graphData: ComfyWorkflowJSON,\n missingNodeTypes: string[]\n ) {\n const nodes = graphData?.extra?.groupNodes\n if (nodes) {\n replaceLegacySeparators(graphData.nodes)\n await GroupNodeConfig.registerFromWorkflow(nodes, missingNodeTypes)\n }\n },\n addCustomNodeDefs(defs) {\n // Store this so we can mutate it later with group nodes\n globalDefs = defs\n },\n nodeCreated(node) {\n if (GroupNodeHandler.isGroupNode(node)) {\n node[GROUP] = new GroupNodeHandler(node)\n\n // Ensure group nodes pasted from other workflows are stored\n if (node.title && node[GROUP]?.groupData?.nodeData) {\n Workflow.storeGroupNode(node.title, node[GROUP].groupData.nodeData)\n }\n }\n },\n async refreshComboInNodes(defs) {\n // Re-register group nodes so new ones are created with the correct options\n Object.assign(globalDefs, defs)\n const nodes = app.graph.extra?.groupNodes\n if (nodes) {\n await GroupNodeConfig.registerFromWorkflow(nodes, {})\n }\n }\n}\n\napp.registerExtension(ext)\n","// @ts-strict-ignore\nimport { LGraphGroup } from '@comfyorg/litegraph'\nimport { LGraphCanvas } from '@comfyorg/litegraph'\nimport type { LGraphNode } from '@comfyorg/litegraph'\nimport type { Positionable } from '@comfyorg/litegraph/dist/interfaces'\n\nimport { useSettingStore } from '@/stores/settingStore'\n\nimport { app } from '../../scripts/app'\n\nfunction setNodeMode(node: LGraphNode, mode: number) {\n node.mode = mode\n node.graph?.change()\n}\n\nfunction addNodesToGroup(group: LGraphGroup, items: Iterable) {\n const padding = useSettingStore().get('Comfy.GroupSelectedNodes.Padding')\n group.resizeTo([...group.children, ...items], padding)\n}\n\napp.registerExtension({\n name: 'Comfy.GroupOptions',\n setup() {\n const orig = LGraphCanvas.prototype.getCanvasMenuOptions\n // graph_mouse\n LGraphCanvas.prototype.getCanvasMenuOptions = function (\n this: LGraphCanvas\n ) {\n const options = orig.apply(this, arguments)\n const group = this.graph.getGroupOnPos(\n this.graph_mouse[0],\n this.graph_mouse[1]\n )\n if (!group) {\n options.push({\n content: 'Add Group For Selected Nodes',\n disabled: !this.selectedItems?.size,\n callback: () => {\n const group = new LGraphGroup()\n addNodesToGroup(group, this.selectedItems)\n this.graph.add(group)\n this.graph.change()\n }\n })\n\n return options\n }\n\n // Group nodes aren't recomputed until the group is moved, this ensures the nodes are up-to-date\n group.recomputeInsideNodes()\n const nodesInGroup = group.nodes\n\n options.push({\n content: 'Add Selected Nodes To Group',\n disabled: !this.selectedItems?.size,\n callback: () => {\n addNodesToGroup(group, this.selectedItems)\n this.graph.change()\n }\n })\n\n // No nodes in group, return default options\n if (nodesInGroup.length === 0) {\n return options\n } else {\n // Add a separator between the default options and the group options\n options.push(null)\n }\n\n // Check if all nodes are the same mode\n let allNodesAreSameMode = true\n for (let i = 1; i < nodesInGroup.length; i++) {\n if (nodesInGroup[i].mode !== nodesInGroup[0].mode) {\n allNodesAreSameMode = false\n break\n }\n }\n\n options.push({\n content: 'Fit Group To Nodes',\n callback: () => {\n group.recomputeInsideNodes()\n const padding = useSettingStore().get(\n 'Comfy.GroupSelectedNodes.Padding'\n )\n group.resizeTo(group.children, padding)\n this.graph.change()\n }\n })\n\n options.push({\n content: 'Select Nodes',\n callback: () => {\n this.selectNodes(nodesInGroup)\n this.graph.change()\n this.canvas.focus()\n }\n })\n\n // Modes\n // 0: Always\n // 1: On Event\n // 2: Never\n // 3: On Trigger\n // 4: Bypass\n // If all nodes are the same mode, add a menu option to change the mode\n if (allNodesAreSameMode) {\n const mode = nodesInGroup[0].mode\n switch (mode) {\n case 0:\n // All nodes are always, option to disable, and bypass\n options.push({\n content: 'Set Group Nodes to Never',\n callback: () => {\n for (const node of nodesInGroup) {\n setNodeMode(node, 2)\n }\n }\n })\n options.push({\n content: 'Bypass Group Nodes',\n callback: () => {\n for (const node of nodesInGroup) {\n setNodeMode(node, 4)\n }\n }\n })\n break\n case 2:\n // All nodes are never, option to enable, and bypass\n options.push({\n content: 'Set Group Nodes to Always',\n callback: () => {\n for (const node of nodesInGroup) {\n setNodeMode(node, 0)\n }\n }\n })\n options.push({\n content: 'Bypass Group Nodes',\n callback: () => {\n for (const node of nodesInGroup) {\n setNodeMode(node, 4)\n }\n }\n })\n break\n case 4:\n // All nodes are bypass, option to enable, and disable\n options.push({\n content: 'Set Group Nodes to Always',\n callback: () => {\n for (const node of nodesInGroup) {\n setNodeMode(node, 0)\n }\n }\n })\n options.push({\n content: 'Set Group Nodes to Never',\n callback: () => {\n for (const node of nodesInGroup) {\n setNodeMode(node, 2)\n }\n }\n })\n break\n default:\n // All nodes are On Trigger or On Event(Or other?), option to disable, set to always, or bypass\n options.push({\n content: 'Set Group Nodes to Always',\n callback: () => {\n for (const node of nodesInGroup) {\n setNodeMode(node, 0)\n }\n }\n })\n options.push({\n content: 'Set Group Nodes to Never',\n callback: () => {\n for (const node of nodesInGroup) {\n setNodeMode(node, 2)\n }\n }\n })\n options.push({\n content: 'Bypass Group Nodes',\n callback: () => {\n for (const node of nodesInGroup) {\n setNodeMode(node, 4)\n }\n }\n })\n break\n }\n } else {\n // Nodes are not all the same mode, add a menu option to change the mode to always, never, or bypass\n options.push({\n content: 'Set Group Nodes to Always',\n callback: () => {\n for (const node of nodesInGroup) {\n setNodeMode(node, 0)\n }\n }\n })\n options.push({\n content: 'Set Group Nodes to Never',\n callback: () => {\n for (const node of nodesInGroup) {\n setNodeMode(node, 2)\n }\n }\n })\n options.push({\n content: 'Bypass Group Nodes',\n callback: () => {\n for (const node of nodesInGroup) {\n setNodeMode(node, 4)\n }\n }\n })\n }\n\n return options\n }\n }\n})\n","// @ts-strict-ignore\nimport { LiteGraph } from '@comfyorg/litegraph'\n\nimport { app } from '../../scripts/app'\n\n// Inverts the scrolling of context menus\n\nconst id = 'Comfy.InvertMenuScrolling'\napp.registerExtension({\n name: id,\n init() {\n const ctxMenu = LiteGraph.ContextMenu\n const replace = () => {\n // @ts-expect-error\n LiteGraph.ContextMenu = function (values, options) {\n options = options || {}\n if (options.scroll_speed) {\n options.scroll_speed *= -1\n } else {\n options.scroll_speed = -0.1\n }\n return ctxMenu.call(this, values, options)\n }\n LiteGraph.ContextMenu.prototype = ctxMenu.prototype\n }\n app.ui.settings.addSetting({\n id,\n category: ['LiteGraph', 'Menu', 'InvertMenuScrolling'],\n name: 'Invert Context Menu Scrolling',\n type: 'boolean',\n defaultValue: false,\n onChange(value) {\n if (value) {\n replace()\n } else {\n LiteGraph.ContextMenu = ctxMenu\n }\n }\n })\n }\n})\n","/**\n * @license\n * Copyright 2010-2024 Three.js Authors\n * SPDX-License-Identifier: MIT\n */\nconst REVISION = '170';\n\nconst MOUSE = { LEFT: 0, MIDDLE: 1, RIGHT: 2, ROTATE: 0, DOLLY: 1, PAN: 2 };\nconst TOUCH = { ROTATE: 0, PAN: 1, DOLLY_PAN: 2, DOLLY_ROTATE: 3 };\nconst CullFaceNone = 0;\nconst CullFaceBack = 1;\nconst CullFaceFront = 2;\nconst CullFaceFrontBack = 3;\nconst BasicShadowMap = 0;\nconst PCFShadowMap = 1;\nconst PCFSoftShadowMap = 2;\nconst VSMShadowMap = 3;\nconst FrontSide = 0;\nconst BackSide = 1;\nconst DoubleSide = 2;\nconst NoBlending = 0;\nconst NormalBlending = 1;\nconst AdditiveBlending = 2;\nconst SubtractiveBlending = 3;\nconst MultiplyBlending = 4;\nconst CustomBlending = 5;\nconst AddEquation = 100;\nconst SubtractEquation = 101;\nconst ReverseSubtractEquation = 102;\nconst MinEquation = 103;\nconst MaxEquation = 104;\nconst ZeroFactor = 200;\nconst OneFactor = 201;\nconst SrcColorFactor = 202;\nconst OneMinusSrcColorFactor = 203;\nconst SrcAlphaFactor = 204;\nconst OneMinusSrcAlphaFactor = 205;\nconst DstAlphaFactor = 206;\nconst OneMinusDstAlphaFactor = 207;\nconst DstColorFactor = 208;\nconst OneMinusDstColorFactor = 209;\nconst SrcAlphaSaturateFactor = 210;\nconst ConstantColorFactor = 211;\nconst OneMinusConstantColorFactor = 212;\nconst ConstantAlphaFactor = 213;\nconst OneMinusConstantAlphaFactor = 214;\nconst NeverDepth = 0;\nconst AlwaysDepth = 1;\nconst LessDepth = 2;\nconst LessEqualDepth = 3;\nconst EqualDepth = 4;\nconst GreaterEqualDepth = 5;\nconst GreaterDepth = 6;\nconst NotEqualDepth = 7;\nconst MultiplyOperation = 0;\nconst MixOperation = 1;\nconst AddOperation = 2;\nconst NoToneMapping = 0;\nconst LinearToneMapping = 1;\nconst ReinhardToneMapping = 2;\nconst CineonToneMapping = 3;\nconst ACESFilmicToneMapping = 4;\nconst CustomToneMapping = 5;\nconst AgXToneMapping = 6;\nconst NeutralToneMapping = 7;\nconst AttachedBindMode = 'attached';\nconst DetachedBindMode = 'detached';\n\nconst UVMapping = 300;\nconst CubeReflectionMapping = 301;\nconst CubeRefractionMapping = 302;\nconst EquirectangularReflectionMapping = 303;\nconst EquirectangularRefractionMapping = 304;\nconst CubeUVReflectionMapping = 306;\nconst RepeatWrapping = 1000;\nconst ClampToEdgeWrapping = 1001;\nconst MirroredRepeatWrapping = 1002;\nconst NearestFilter = 1003;\nconst NearestMipmapNearestFilter = 1004;\nconst NearestMipMapNearestFilter = 1004;\nconst NearestMipmapLinearFilter = 1005;\nconst NearestMipMapLinearFilter = 1005;\nconst LinearFilter = 1006;\nconst LinearMipmapNearestFilter = 1007;\nconst LinearMipMapNearestFilter = 1007;\nconst LinearMipmapLinearFilter = 1008;\nconst LinearMipMapLinearFilter = 1008;\nconst UnsignedByteType = 1009;\nconst ByteType = 1010;\nconst ShortType = 1011;\nconst UnsignedShortType = 1012;\nconst IntType = 1013;\nconst UnsignedIntType = 1014;\nconst FloatType = 1015;\nconst HalfFloatType = 1016;\nconst UnsignedShort4444Type = 1017;\nconst UnsignedShort5551Type = 1018;\nconst UnsignedInt248Type = 1020;\nconst UnsignedInt5999Type = 35902;\nconst AlphaFormat = 1021;\nconst RGBFormat = 1022;\nconst RGBAFormat = 1023;\nconst LuminanceFormat = 1024;\nconst LuminanceAlphaFormat = 1025;\nconst DepthFormat = 1026;\nconst DepthStencilFormat = 1027;\nconst RedFormat = 1028;\nconst RedIntegerFormat = 1029;\nconst RGFormat = 1030;\nconst RGIntegerFormat = 1031;\nconst RGBIntegerFormat = 1032;\nconst RGBAIntegerFormat = 1033;\n\nconst RGB_S3TC_DXT1_Format = 33776;\nconst RGBA_S3TC_DXT1_Format = 33777;\nconst RGBA_S3TC_DXT3_Format = 33778;\nconst RGBA_S3TC_DXT5_Format = 33779;\nconst RGB_PVRTC_4BPPV1_Format = 35840;\nconst RGB_PVRTC_2BPPV1_Format = 35841;\nconst RGBA_PVRTC_4BPPV1_Format = 35842;\nconst RGBA_PVRTC_2BPPV1_Format = 35843;\nconst RGB_ETC1_Format = 36196;\nconst RGB_ETC2_Format = 37492;\nconst RGBA_ETC2_EAC_Format = 37496;\nconst RGBA_ASTC_4x4_Format = 37808;\nconst RGBA_ASTC_5x4_Format = 37809;\nconst RGBA_ASTC_5x5_Format = 37810;\nconst RGBA_ASTC_6x5_Format = 37811;\nconst RGBA_ASTC_6x6_Format = 37812;\nconst RGBA_ASTC_8x5_Format = 37813;\nconst RGBA_ASTC_8x6_Format = 37814;\nconst RGBA_ASTC_8x8_Format = 37815;\nconst RGBA_ASTC_10x5_Format = 37816;\nconst RGBA_ASTC_10x6_Format = 37817;\nconst RGBA_ASTC_10x8_Format = 37818;\nconst RGBA_ASTC_10x10_Format = 37819;\nconst RGBA_ASTC_12x10_Format = 37820;\nconst RGBA_ASTC_12x12_Format = 37821;\nconst RGBA_BPTC_Format = 36492;\nconst RGB_BPTC_SIGNED_Format = 36494;\nconst RGB_BPTC_UNSIGNED_Format = 36495;\nconst RED_RGTC1_Format = 36283;\nconst SIGNED_RED_RGTC1_Format = 36284;\nconst RED_GREEN_RGTC2_Format = 36285;\nconst SIGNED_RED_GREEN_RGTC2_Format = 36286;\nconst LoopOnce = 2200;\nconst LoopRepeat = 2201;\nconst LoopPingPong = 2202;\nconst InterpolateDiscrete = 2300;\nconst InterpolateLinear = 2301;\nconst InterpolateSmooth = 2302;\nconst ZeroCurvatureEnding = 2400;\nconst ZeroSlopeEnding = 2401;\nconst WrapAroundEnding = 2402;\nconst NormalAnimationBlendMode = 2500;\nconst AdditiveAnimationBlendMode = 2501;\nconst TrianglesDrawMode = 0;\nconst TriangleStripDrawMode = 1;\nconst TriangleFanDrawMode = 2;\nconst BasicDepthPacking = 3200;\nconst RGBADepthPacking = 3201;\nconst RGBDepthPacking = 3202;\nconst RGDepthPacking = 3203;\nconst TangentSpaceNormalMap = 0;\nconst ObjectSpaceNormalMap = 1;\n\n// Color space string identifiers, matching CSS Color Module Level 4 and WebGPU names where available.\nconst NoColorSpace = '';\nconst SRGBColorSpace = 'srgb';\nconst LinearSRGBColorSpace = 'srgb-linear';\n\nconst LinearTransfer = 'linear';\nconst SRGBTransfer = 'srgb';\n\nconst ZeroStencilOp = 0;\nconst KeepStencilOp = 7680;\nconst ReplaceStencilOp = 7681;\nconst IncrementStencilOp = 7682;\nconst DecrementStencilOp = 7683;\nconst IncrementWrapStencilOp = 34055;\nconst DecrementWrapStencilOp = 34056;\nconst InvertStencilOp = 5386;\n\nconst NeverStencilFunc = 512;\nconst LessStencilFunc = 513;\nconst EqualStencilFunc = 514;\nconst LessEqualStencilFunc = 515;\nconst GreaterStencilFunc = 516;\nconst NotEqualStencilFunc = 517;\nconst GreaterEqualStencilFunc = 518;\nconst AlwaysStencilFunc = 519;\n\nconst NeverCompare = 512;\nconst LessCompare = 513;\nconst EqualCompare = 514;\nconst LessEqualCompare = 515;\nconst GreaterCompare = 516;\nconst NotEqualCompare = 517;\nconst GreaterEqualCompare = 518;\nconst AlwaysCompare = 519;\n\nconst StaticDrawUsage = 35044;\nconst DynamicDrawUsage = 35048;\nconst StreamDrawUsage = 35040;\nconst StaticReadUsage = 35045;\nconst DynamicReadUsage = 35049;\nconst StreamReadUsage = 35041;\nconst StaticCopyUsage = 35046;\nconst DynamicCopyUsage = 35050;\nconst StreamCopyUsage = 35042;\n\nconst GLSL1 = '100';\nconst GLSL3 = '300 es';\n\nconst WebGLCoordinateSystem = 2000;\nconst WebGPUCoordinateSystem = 2001;\n\n/**\n * https://github.com/mrdoob/eventdispatcher.js/\n */\n\nclass EventDispatcher {\n\n\taddEventListener( type, listener ) {\n\n\t\tif ( this._listeners === undefined ) this._listeners = {};\n\n\t\tconst listeners = this._listeners;\n\n\t\tif ( listeners[ type ] === undefined ) {\n\n\t\t\tlisteners[ type ] = [];\n\n\t\t}\n\n\t\tif ( listeners[ type ].indexOf( listener ) === - 1 ) {\n\n\t\t\tlisteners[ type ].push( listener );\n\n\t\t}\n\n\t}\n\n\thasEventListener( type, listener ) {\n\n\t\tif ( this._listeners === undefined ) return false;\n\n\t\tconst listeners = this._listeners;\n\n\t\treturn listeners[ type ] !== undefined && listeners[ type ].indexOf( listener ) !== - 1;\n\n\t}\n\n\tremoveEventListener( type, listener ) {\n\n\t\tif ( this._listeners === undefined ) return;\n\n\t\tconst listeners = this._listeners;\n\t\tconst listenerArray = listeners[ type ];\n\n\t\tif ( listenerArray !== undefined ) {\n\n\t\t\tconst index = listenerArray.indexOf( listener );\n\n\t\t\tif ( index !== - 1 ) {\n\n\t\t\t\tlistenerArray.splice( index, 1 );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tdispatchEvent( event ) {\n\n\t\tif ( this._listeners === undefined ) return;\n\n\t\tconst listeners = this._listeners;\n\t\tconst listenerArray = listeners[ event.type ];\n\n\t\tif ( listenerArray !== undefined ) {\n\n\t\t\tevent.target = this;\n\n\t\t\t// Make a copy, in case listeners are removed while iterating.\n\t\t\tconst array = listenerArray.slice( 0 );\n\n\t\t\tfor ( let i = 0, l = array.length; i < l; i ++ ) {\n\n\t\t\t\tarray[ i ].call( this, event );\n\n\t\t\t}\n\n\t\t\tevent.target = null;\n\n\t\t}\n\n\t}\n\n}\n\nconst _lut = [ '00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '0a', '0b', '0c', '0d', '0e', '0f', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '1a', '1b', '1c', '1d', '1e', '1f', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '2a', '2b', '2c', '2d', '2e', '2f', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '3a', '3b', '3c', '3d', '3e', '3f', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '4a', '4b', '4c', '4d', '4e', '4f', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '5a', '5b', '5c', '5d', '5e', '5f', '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '6a', '6b', '6c', '6d', '6e', '6f', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '7a', '7b', '7c', '7d', '7e', '7f', '80', '81', '82', '83', '84', '85', '86', '87', '88', '89', '8a', '8b', '8c', '8d', '8e', '8f', '90', '91', '92', '93', '94', '95', '96', '97', '98', '99', '9a', '9b', '9c', '9d', '9e', '9f', 'a0', 'a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7', 'a8', 'a9', 'aa', 'ab', 'ac', 'ad', 'ae', 'af', 'b0', 'b1', 'b2', 'b3', 'b4', 'b5', 'b6', 'b7', 'b8', 'b9', 'ba', 'bb', 'bc', 'bd', 'be', 'bf', 'c0', 'c1', 'c2', 'c3', 'c4', 'c5', 'c6', 'c7', 'c8', 'c9', 'ca', 'cb', 'cc', 'cd', 'ce', 'cf', 'd0', 'd1', 'd2', 'd3', 'd4', 'd5', 'd6', 'd7', 'd8', 'd9', 'da', 'db', 'dc', 'dd', 'de', 'df', 'e0', 'e1', 'e2', 'e3', 'e4', 'e5', 'e6', 'e7', 'e8', 'e9', 'ea', 'eb', 'ec', 'ed', 'ee', 'ef', 'f0', 'f1', 'f2', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9', 'fa', 'fb', 'fc', 'fd', 'fe', 'ff' ];\n\nlet _seed = 1234567;\n\n\nconst DEG2RAD = Math.PI / 180;\nconst RAD2DEG = 180 / Math.PI;\n\n// http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/21963136#21963136\nfunction generateUUID() {\n\n\tconst d0 = Math.random() * 0xffffffff | 0;\n\tconst d1 = Math.random() * 0xffffffff | 0;\n\tconst d2 = Math.random() * 0xffffffff | 0;\n\tconst d3 = Math.random() * 0xffffffff | 0;\n\tconst uuid = _lut[ d0 & 0xff ] + _lut[ d0 >> 8 & 0xff ] + _lut[ d0 >> 16 & 0xff ] + _lut[ d0 >> 24 & 0xff ] + '-' +\n\t\t\t_lut[ d1 & 0xff ] + _lut[ d1 >> 8 & 0xff ] + '-' + _lut[ d1 >> 16 & 0x0f | 0x40 ] + _lut[ d1 >> 24 & 0xff ] + '-' +\n\t\t\t_lut[ d2 & 0x3f | 0x80 ] + _lut[ d2 >> 8 & 0xff ] + '-' + _lut[ d2 >> 16 & 0xff ] + _lut[ d2 >> 24 & 0xff ] +\n\t\t\t_lut[ d3 & 0xff ] + _lut[ d3 >> 8 & 0xff ] + _lut[ d3 >> 16 & 0xff ] + _lut[ d3 >> 24 & 0xff ];\n\n\t// .toLowerCase() here flattens concatenated strings to save heap memory space.\n\treturn uuid.toLowerCase();\n\n}\n\nfunction clamp( value, min, max ) {\n\n\treturn Math.max( min, Math.min( max, value ) );\n\n}\n\n// compute euclidean modulo of m % n\n// https://en.wikipedia.org/wiki/Modulo_operation\nfunction euclideanModulo( n, m ) {\n\n\treturn ( ( n % m ) + m ) % m;\n\n}\n\n// Linear mapping from range to range \nfunction mapLinear( x, a1, a2, b1, b2 ) {\n\n\treturn b1 + ( x - a1 ) * ( b2 - b1 ) / ( a2 - a1 );\n\n}\n\n// https://www.gamedev.net/tutorials/programming/general-and-gameplay-programming/inverse-lerp-a-super-useful-yet-often-overlooked-function-r5230/\nfunction inverseLerp( x, y, value ) {\n\n\tif ( x !== y ) {\n\n\t\treturn ( value - x ) / ( y - x );\n\n\t} else {\n\n\t\treturn 0;\n\n\t}\n\n}\n\n// https://en.wikipedia.org/wiki/Linear_interpolation\nfunction lerp( x, y, t ) {\n\n\treturn ( 1 - t ) * x + t * y;\n\n}\n\n// http://www.rorydriscoll.com/2016/03/07/frame-rate-independent-damping-using-lerp/\nfunction damp( x, y, lambda, dt ) {\n\n\treturn lerp( x, y, 1 - Math.exp( - lambda * dt ) );\n\n}\n\n// https://www.desmos.com/calculator/vcsjnyz7x4\nfunction pingpong( x, length = 1 ) {\n\n\treturn length - Math.abs( euclideanModulo( x, length * 2 ) - length );\n\n}\n\n// http://en.wikipedia.org/wiki/Smoothstep\nfunction smoothstep( x, min, max ) {\n\n\tif ( x <= min ) return 0;\n\tif ( x >= max ) return 1;\n\n\tx = ( x - min ) / ( max - min );\n\n\treturn x * x * ( 3 - 2 * x );\n\n}\n\nfunction smootherstep( x, min, max ) {\n\n\tif ( x <= min ) return 0;\n\tif ( x >= max ) return 1;\n\n\tx = ( x - min ) / ( max - min );\n\n\treturn x * x * x * ( x * ( x * 6 - 15 ) + 10 );\n\n}\n\n// Random integer from interval\nfunction randInt( low, high ) {\n\n\treturn low + Math.floor( Math.random() * ( high - low + 1 ) );\n\n}\n\n// Random float from interval\nfunction randFloat( low, high ) {\n\n\treturn low + Math.random() * ( high - low );\n\n}\n\n// Random float from <-range/2, range/2> interval\nfunction randFloatSpread( range ) {\n\n\treturn range * ( 0.5 - Math.random() );\n\n}\n\n// Deterministic pseudo-random float in the interval [ 0, 1 ]\nfunction seededRandom( s ) {\n\n\tif ( s !== undefined ) _seed = s;\n\n\t// Mulberry32 generator\n\n\tlet t = _seed += 0x6D2B79F5;\n\n\tt = Math.imul( t ^ t >>> 15, t | 1 );\n\n\tt ^= t + Math.imul( t ^ t >>> 7, t | 61 );\n\n\treturn ( ( t ^ t >>> 14 ) >>> 0 ) / 4294967296;\n\n}\n\nfunction degToRad( degrees ) {\n\n\treturn degrees * DEG2RAD;\n\n}\n\nfunction radToDeg( radians ) {\n\n\treturn radians * RAD2DEG;\n\n}\n\nfunction isPowerOfTwo( value ) {\n\n\treturn ( value & ( value - 1 ) ) === 0 && value !== 0;\n\n}\n\nfunction ceilPowerOfTwo( value ) {\n\n\treturn Math.pow( 2, Math.ceil( Math.log( value ) / Math.LN2 ) );\n\n}\n\nfunction floorPowerOfTwo( value ) {\n\n\treturn Math.pow( 2, Math.floor( Math.log( value ) / Math.LN2 ) );\n\n}\n\nfunction setQuaternionFromProperEuler( q, a, b, c, order ) {\n\n\t// Intrinsic Proper Euler Angles - see https://en.wikipedia.org/wiki/Euler_angles\n\n\t// rotations are applied to the axes in the order specified by 'order'\n\t// rotation by angle 'a' is applied first, then by angle 'b', then by angle 'c'\n\t// angles are in radians\n\n\tconst cos = Math.cos;\n\tconst sin = Math.sin;\n\n\tconst c2 = cos( b / 2 );\n\tconst s2 = sin( b / 2 );\n\n\tconst c13 = cos( ( a + c ) / 2 );\n\tconst s13 = sin( ( a + c ) / 2 );\n\n\tconst c1_3 = cos( ( a - c ) / 2 );\n\tconst s1_3 = sin( ( a - c ) / 2 );\n\n\tconst c3_1 = cos( ( c - a ) / 2 );\n\tconst s3_1 = sin( ( c - a ) / 2 );\n\n\tswitch ( order ) {\n\n\t\tcase 'XYX':\n\t\t\tq.set( c2 * s13, s2 * c1_3, s2 * s1_3, c2 * c13 );\n\t\t\tbreak;\n\n\t\tcase 'YZY':\n\t\t\tq.set( s2 * s1_3, c2 * s13, s2 * c1_3, c2 * c13 );\n\t\t\tbreak;\n\n\t\tcase 'ZXZ':\n\t\t\tq.set( s2 * c1_3, s2 * s1_3, c2 * s13, c2 * c13 );\n\t\t\tbreak;\n\n\t\tcase 'XZX':\n\t\t\tq.set( c2 * s13, s2 * s3_1, s2 * c3_1, c2 * c13 );\n\t\t\tbreak;\n\n\t\tcase 'YXY':\n\t\t\tq.set( s2 * c3_1, c2 * s13, s2 * s3_1, c2 * c13 );\n\t\t\tbreak;\n\n\t\tcase 'ZYZ':\n\t\t\tq.set( s2 * s3_1, s2 * c3_1, c2 * s13, c2 * c13 );\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tconsole.warn( 'THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: ' + order );\n\n\t}\n\n}\n\nfunction denormalize( value, array ) {\n\n\tswitch ( array.constructor ) {\n\n\t\tcase Float32Array:\n\n\t\t\treturn value;\n\n\t\tcase Uint32Array:\n\n\t\t\treturn value / 4294967295.0;\n\n\t\tcase Uint16Array:\n\n\t\t\treturn value / 65535.0;\n\n\t\tcase Uint8Array:\n\n\t\t\treturn value / 255.0;\n\n\t\tcase Int32Array:\n\n\t\t\treturn Math.max( value / 2147483647.0, - 1.0 );\n\n\t\tcase Int16Array:\n\n\t\t\treturn Math.max( value / 32767.0, - 1.0 );\n\n\t\tcase Int8Array:\n\n\t\t\treturn Math.max( value / 127.0, - 1.0 );\n\n\t\tdefault:\n\n\t\t\tthrow new Error( 'Invalid component type.' );\n\n\t}\n\n}\n\nfunction normalize( value, array ) {\n\n\tswitch ( array.constructor ) {\n\n\t\tcase Float32Array:\n\n\t\t\treturn value;\n\n\t\tcase Uint32Array:\n\n\t\t\treturn Math.round( value * 4294967295.0 );\n\n\t\tcase Uint16Array:\n\n\t\t\treturn Math.round( value * 65535.0 );\n\n\t\tcase Uint8Array:\n\n\t\t\treturn Math.round( value * 255.0 );\n\n\t\tcase Int32Array:\n\n\t\t\treturn Math.round( value * 2147483647.0 );\n\n\t\tcase Int16Array:\n\n\t\t\treturn Math.round( value * 32767.0 );\n\n\t\tcase Int8Array:\n\n\t\t\treturn Math.round( value * 127.0 );\n\n\t\tdefault:\n\n\t\t\tthrow new Error( 'Invalid component type.' );\n\n\t}\n\n}\n\nconst MathUtils = {\n\tDEG2RAD: DEG2RAD,\n\tRAD2DEG: RAD2DEG,\n\tgenerateUUID: generateUUID,\n\tclamp: clamp,\n\teuclideanModulo: euclideanModulo,\n\tmapLinear: mapLinear,\n\tinverseLerp: inverseLerp,\n\tlerp: lerp,\n\tdamp: damp,\n\tpingpong: pingpong,\n\tsmoothstep: smoothstep,\n\tsmootherstep: smootherstep,\n\trandInt: randInt,\n\trandFloat: randFloat,\n\trandFloatSpread: randFloatSpread,\n\tseededRandom: seededRandom,\n\tdegToRad: degToRad,\n\tradToDeg: radToDeg,\n\tisPowerOfTwo: isPowerOfTwo,\n\tceilPowerOfTwo: ceilPowerOfTwo,\n\tfloorPowerOfTwo: floorPowerOfTwo,\n\tsetQuaternionFromProperEuler: setQuaternionFromProperEuler,\n\tnormalize: normalize,\n\tdenormalize: denormalize\n};\n\nclass Vector2 {\n\n\tconstructor( x = 0, y = 0 ) {\n\n\t\tVector2.prototype.isVector2 = true;\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\n\t}\n\n\tget width() {\n\n\t\treturn this.x;\n\n\t}\n\n\tset width( value ) {\n\n\t\tthis.x = value;\n\n\t}\n\n\tget height() {\n\n\t\treturn this.y;\n\n\t}\n\n\tset height( value ) {\n\n\t\tthis.y = value;\n\n\t}\n\n\tset( x, y ) {\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetScalar( scalar ) {\n\n\t\tthis.x = scalar;\n\t\tthis.y = scalar;\n\n\t\treturn this;\n\n\t}\n\n\tsetX( x ) {\n\n\t\tthis.x = x;\n\n\t\treturn this;\n\n\t}\n\n\tsetY( y ) {\n\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetComponent( index, value ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: this.x = value; break;\n\t\t\tcase 1: this.y = value; break;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetComponent( index ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: return this.x;\n\t\t\tcase 1: return this.y;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.x, this.y );\n\n\t}\n\n\tcopy( v ) {\n\n\t\tthis.x = v.x;\n\t\tthis.y = v.y;\n\n\t\treturn this;\n\n\t}\n\n\tadd( v ) {\n\n\t\tthis.x += v.x;\n\t\tthis.y += v.y;\n\n\t\treturn this;\n\n\t}\n\n\taddScalar( s ) {\n\n\t\tthis.x += s;\n\t\tthis.y += s;\n\n\t\treturn this;\n\n\t}\n\n\taddVectors( a, b ) {\n\n\t\tthis.x = a.x + b.x;\n\t\tthis.y = a.y + b.y;\n\n\t\treturn this;\n\n\t}\n\n\taddScaledVector( v, s ) {\n\n\t\tthis.x += v.x * s;\n\t\tthis.y += v.y * s;\n\n\t\treturn this;\n\n\t}\n\n\tsub( v ) {\n\n\t\tthis.x -= v.x;\n\t\tthis.y -= v.y;\n\n\t\treturn this;\n\n\t}\n\n\tsubScalar( s ) {\n\n\t\tthis.x -= s;\n\t\tthis.y -= s;\n\n\t\treturn this;\n\n\t}\n\n\tsubVectors( a, b ) {\n\n\t\tthis.x = a.x - b.x;\n\t\tthis.y = a.y - b.y;\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( v ) {\n\n\t\tthis.x *= v.x;\n\t\tthis.y *= v.y;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( scalar ) {\n\n\t\tthis.x *= scalar;\n\t\tthis.y *= scalar;\n\n\t\treturn this;\n\n\t}\n\n\tdivide( v ) {\n\n\t\tthis.x /= v.x;\n\t\tthis.y /= v.y;\n\n\t\treturn this;\n\n\t}\n\n\tdivideScalar( scalar ) {\n\n\t\treturn this.multiplyScalar( 1 / scalar );\n\n\t}\n\n\tapplyMatrix3( m ) {\n\n\t\tconst x = this.x, y = this.y;\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 0 ] * x + e[ 3 ] * y + e[ 6 ];\n\t\tthis.y = e[ 1 ] * x + e[ 4 ] * y + e[ 7 ];\n\n\t\treturn this;\n\n\t}\n\n\tmin( v ) {\n\n\t\tthis.x = Math.min( this.x, v.x );\n\t\tthis.y = Math.min( this.y, v.y );\n\n\t\treturn this;\n\n\t}\n\n\tmax( v ) {\n\n\t\tthis.x = Math.max( this.x, v.x );\n\t\tthis.y = Math.max( this.y, v.y );\n\n\t\treturn this;\n\n\t}\n\n\tclamp( min, max ) {\n\n\t\t// assumes min < max, componentwise\n\n\t\tthis.x = Math.max( min.x, Math.min( max.x, this.x ) );\n\t\tthis.y = Math.max( min.y, Math.min( max.y, this.y ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampScalar( minVal, maxVal ) {\n\n\t\tthis.x = Math.max( minVal, Math.min( maxVal, this.x ) );\n\t\tthis.y = Math.max( minVal, Math.min( maxVal, this.y ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampLength( min, max ) {\n\n\t\tconst length = this.length();\n\n\t\treturn this.divideScalar( length || 1 ).multiplyScalar( Math.max( min, Math.min( max, length ) ) );\n\n\t}\n\n\tfloor() {\n\n\t\tthis.x = Math.floor( this.x );\n\t\tthis.y = Math.floor( this.y );\n\n\t\treturn this;\n\n\t}\n\n\tceil() {\n\n\t\tthis.x = Math.ceil( this.x );\n\t\tthis.y = Math.ceil( this.y );\n\n\t\treturn this;\n\n\t}\n\n\tround() {\n\n\t\tthis.x = Math.round( this.x );\n\t\tthis.y = Math.round( this.y );\n\n\t\treturn this;\n\n\t}\n\n\troundToZero() {\n\n\t\tthis.x = Math.trunc( this.x );\n\t\tthis.y = Math.trunc( this.y );\n\n\t\treturn this;\n\n\t}\n\n\tnegate() {\n\n\t\tthis.x = - this.x;\n\t\tthis.y = - this.y;\n\n\t\treturn this;\n\n\t}\n\n\tdot( v ) {\n\n\t\treturn this.x * v.x + this.y * v.y;\n\n\t}\n\n\tcross( v ) {\n\n\t\treturn this.x * v.y - this.y * v.x;\n\n\t}\n\n\tlengthSq() {\n\n\t\treturn this.x * this.x + this.y * this.y;\n\n\t}\n\n\tlength() {\n\n\t\treturn Math.sqrt( this.x * this.x + this.y * this.y );\n\n\t}\n\n\tmanhattanLength() {\n\n\t\treturn Math.abs( this.x ) + Math.abs( this.y );\n\n\t}\n\n\tnormalize() {\n\n\t\treturn this.divideScalar( this.length() || 1 );\n\n\t}\n\n\tangle() {\n\n\t\t// computes the angle in radians with respect to the positive x-axis\n\n\t\tconst angle = Math.atan2( - this.y, - this.x ) + Math.PI;\n\n\t\treturn angle;\n\n\t}\n\n\tangleTo( v ) {\n\n\t\tconst denominator = Math.sqrt( this.lengthSq() * v.lengthSq() );\n\n\t\tif ( denominator === 0 ) return Math.PI / 2;\n\n\t\tconst theta = this.dot( v ) / denominator;\n\n\t\t// clamp, to handle numerical problems\n\n\t\treturn Math.acos( clamp( theta, - 1, 1 ) );\n\n\t}\n\n\tdistanceTo( v ) {\n\n\t\treturn Math.sqrt( this.distanceToSquared( v ) );\n\n\t}\n\n\tdistanceToSquared( v ) {\n\n\t\tconst dx = this.x - v.x, dy = this.y - v.y;\n\t\treturn dx * dx + dy * dy;\n\n\t}\n\n\tmanhattanDistanceTo( v ) {\n\n\t\treturn Math.abs( this.x - v.x ) + Math.abs( this.y - v.y );\n\n\t}\n\n\tsetLength( length ) {\n\n\t\treturn this.normalize().multiplyScalar( length );\n\n\t}\n\n\tlerp( v, alpha ) {\n\n\t\tthis.x += ( v.x - this.x ) * alpha;\n\t\tthis.y += ( v.y - this.y ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpVectors( v1, v2, alpha ) {\n\n\t\tthis.x = v1.x + ( v2.x - v1.x ) * alpha;\n\t\tthis.y = v1.y + ( v2.y - v1.y ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tequals( v ) {\n\n\t\treturn ( ( v.x === this.x ) && ( v.y === this.y ) );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis.x = array[ offset ];\n\t\tthis.y = array[ offset + 1 ];\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this.x;\n\t\tarray[ offset + 1 ] = this.y;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index ) {\n\n\t\tthis.x = attribute.getX( index );\n\t\tthis.y = attribute.getY( index );\n\n\t\treturn this;\n\n\t}\n\n\trotateAround( center, angle ) {\n\n\t\tconst c = Math.cos( angle ), s = Math.sin( angle );\n\n\t\tconst x = this.x - center.x;\n\t\tconst y = this.y - center.y;\n\n\t\tthis.x = x * c - y * s + center.x;\n\t\tthis.y = x * s + y * c + center.y;\n\n\t\treturn this;\n\n\t}\n\n\trandom() {\n\n\t\tthis.x = Math.random();\n\t\tthis.y = Math.random();\n\n\t\treturn this;\n\n\t}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this.x;\n\t\tyield this.y;\n\n\t}\n\n}\n\nclass Matrix3 {\n\n\tconstructor( n11, n12, n13, n21, n22, n23, n31, n32, n33 ) {\n\n\t\tMatrix3.prototype.isMatrix3 = true;\n\n\t\tthis.elements = [\n\n\t\t\t1, 0, 0,\n\t\t\t0, 1, 0,\n\t\t\t0, 0, 1\n\n\t\t];\n\n\t\tif ( n11 !== undefined ) {\n\n\t\t\tthis.set( n11, n12, n13, n21, n22, n23, n31, n32, n33 );\n\n\t\t}\n\n\t}\n\n\tset( n11, n12, n13, n21, n22, n23, n31, n32, n33 ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] = n11; te[ 1 ] = n21; te[ 2 ] = n31;\n\t\tte[ 3 ] = n12; te[ 4 ] = n22; te[ 5 ] = n32;\n\t\tte[ 6 ] = n13; te[ 7 ] = n23; te[ 8 ] = n33;\n\n\t\treturn this;\n\n\t}\n\n\tidentity() {\n\n\t\tthis.set(\n\n\t\t\t1, 0, 0,\n\t\t\t0, 1, 0,\n\t\t\t0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tcopy( m ) {\n\n\t\tconst te = this.elements;\n\t\tconst me = m.elements;\n\n\t\tte[ 0 ] = me[ 0 ]; te[ 1 ] = me[ 1 ]; te[ 2 ] = me[ 2 ];\n\t\tte[ 3 ] = me[ 3 ]; te[ 4 ] = me[ 4 ]; te[ 5 ] = me[ 5 ];\n\t\tte[ 6 ] = me[ 6 ]; te[ 7 ] = me[ 7 ]; te[ 8 ] = me[ 8 ];\n\n\t\treturn this;\n\n\t}\n\n\textractBasis( xAxis, yAxis, zAxis ) {\n\n\t\txAxis.setFromMatrix3Column( this, 0 );\n\t\tyAxis.setFromMatrix3Column( this, 1 );\n\t\tzAxis.setFromMatrix3Column( this, 2 );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrix4( m ) {\n\n\t\tconst me = m.elements;\n\n\t\tthis.set(\n\n\t\t\tme[ 0 ], me[ 4 ], me[ 8 ],\n\t\t\tme[ 1 ], me[ 5 ], me[ 9 ],\n\t\t\tme[ 2 ], me[ 6 ], me[ 10 ]\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( m ) {\n\n\t\treturn this.multiplyMatrices( this, m );\n\n\t}\n\n\tpremultiply( m ) {\n\n\t\treturn this.multiplyMatrices( m, this );\n\n\t}\n\n\tmultiplyMatrices( a, b ) {\n\n\t\tconst ae = a.elements;\n\t\tconst be = b.elements;\n\t\tconst te = this.elements;\n\n\t\tconst a11 = ae[ 0 ], a12 = ae[ 3 ], a13 = ae[ 6 ];\n\t\tconst a21 = ae[ 1 ], a22 = ae[ 4 ], a23 = ae[ 7 ];\n\t\tconst a31 = ae[ 2 ], a32 = ae[ 5 ], a33 = ae[ 8 ];\n\n\t\tconst b11 = be[ 0 ], b12 = be[ 3 ], b13 = be[ 6 ];\n\t\tconst b21 = be[ 1 ], b22 = be[ 4 ], b23 = be[ 7 ];\n\t\tconst b31 = be[ 2 ], b32 = be[ 5 ], b33 = be[ 8 ];\n\n\t\tte[ 0 ] = a11 * b11 + a12 * b21 + a13 * b31;\n\t\tte[ 3 ] = a11 * b12 + a12 * b22 + a13 * b32;\n\t\tte[ 6 ] = a11 * b13 + a12 * b23 + a13 * b33;\n\n\t\tte[ 1 ] = a21 * b11 + a22 * b21 + a23 * b31;\n\t\tte[ 4 ] = a21 * b12 + a22 * b22 + a23 * b32;\n\t\tte[ 7 ] = a21 * b13 + a22 * b23 + a23 * b33;\n\n\t\tte[ 2 ] = a31 * b11 + a32 * b21 + a33 * b31;\n\t\tte[ 5 ] = a31 * b12 + a32 * b22 + a33 * b32;\n\t\tte[ 8 ] = a31 * b13 + a32 * b23 + a33 * b33;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( s ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] *= s; te[ 3 ] *= s; te[ 6 ] *= s;\n\t\tte[ 1 ] *= s; te[ 4 ] *= s; te[ 7 ] *= s;\n\t\tte[ 2 ] *= s; te[ 5 ] *= s; te[ 8 ] *= s;\n\n\t\treturn this;\n\n\t}\n\n\tdeterminant() {\n\n\t\tconst te = this.elements;\n\n\t\tconst a = te[ 0 ], b = te[ 1 ], c = te[ 2 ],\n\t\t\td = te[ 3 ], e = te[ 4 ], f = te[ 5 ],\n\t\t\tg = te[ 6 ], h = te[ 7 ], i = te[ 8 ];\n\n\t\treturn a * e * i - a * f * h - b * d * i + b * f * g + c * d * h - c * e * g;\n\n\t}\n\n\tinvert() {\n\n\t\tconst te = this.elements,\n\n\t\t\tn11 = te[ 0 ], n21 = te[ 1 ], n31 = te[ 2 ],\n\t\t\tn12 = te[ 3 ], n22 = te[ 4 ], n32 = te[ 5 ],\n\t\t\tn13 = te[ 6 ], n23 = te[ 7 ], n33 = te[ 8 ],\n\n\t\t\tt11 = n33 * n22 - n32 * n23,\n\t\t\tt12 = n32 * n13 - n33 * n12,\n\t\t\tt13 = n23 * n12 - n22 * n13,\n\n\t\t\tdet = n11 * t11 + n21 * t12 + n31 * t13;\n\n\t\tif ( det === 0 ) return this.set( 0, 0, 0, 0, 0, 0, 0, 0, 0 );\n\n\t\tconst detInv = 1 / det;\n\n\t\tte[ 0 ] = t11 * detInv;\n\t\tte[ 1 ] = ( n31 * n23 - n33 * n21 ) * detInv;\n\t\tte[ 2 ] = ( n32 * n21 - n31 * n22 ) * detInv;\n\n\t\tte[ 3 ] = t12 * detInv;\n\t\tte[ 4 ] = ( n33 * n11 - n31 * n13 ) * detInv;\n\t\tte[ 5 ] = ( n31 * n12 - n32 * n11 ) * detInv;\n\n\t\tte[ 6 ] = t13 * detInv;\n\t\tte[ 7 ] = ( n21 * n13 - n23 * n11 ) * detInv;\n\t\tte[ 8 ] = ( n22 * n11 - n21 * n12 ) * detInv;\n\n\t\treturn this;\n\n\t}\n\n\ttranspose() {\n\n\t\tlet tmp;\n\t\tconst m = this.elements;\n\n\t\ttmp = m[ 1 ]; m[ 1 ] = m[ 3 ]; m[ 3 ] = tmp;\n\t\ttmp = m[ 2 ]; m[ 2 ] = m[ 6 ]; m[ 6 ] = tmp;\n\t\ttmp = m[ 5 ]; m[ 5 ] = m[ 7 ]; m[ 7 ] = tmp;\n\n\t\treturn this;\n\n\t}\n\n\tgetNormalMatrix( matrix4 ) {\n\n\t\treturn this.setFromMatrix4( matrix4 ).invert().transpose();\n\n\t}\n\n\ttransposeIntoArray( r ) {\n\n\t\tconst m = this.elements;\n\n\t\tr[ 0 ] = m[ 0 ];\n\t\tr[ 1 ] = m[ 3 ];\n\t\tr[ 2 ] = m[ 6 ];\n\t\tr[ 3 ] = m[ 1 ];\n\t\tr[ 4 ] = m[ 4 ];\n\t\tr[ 5 ] = m[ 7 ];\n\t\tr[ 6 ] = m[ 2 ];\n\t\tr[ 7 ] = m[ 5 ];\n\t\tr[ 8 ] = m[ 8 ];\n\n\t\treturn this;\n\n\t}\n\n\tsetUvTransform( tx, ty, sx, sy, rotation, cx, cy ) {\n\n\t\tconst c = Math.cos( rotation );\n\t\tconst s = Math.sin( rotation );\n\n\t\tthis.set(\n\t\t\tsx * c, sx * s, - sx * ( c * cx + s * cy ) + cx + tx,\n\t\t\t- sy * s, sy * c, - sy * ( - s * cx + c * cy ) + cy + ty,\n\t\t\t0, 0, 1\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\t//\n\n\tscale( sx, sy ) {\n\n\t\tthis.premultiply( _m3.makeScale( sx, sy ) );\n\n\t\treturn this;\n\n\t}\n\n\trotate( theta ) {\n\n\t\tthis.premultiply( _m3.makeRotation( - theta ) );\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( tx, ty ) {\n\n\t\tthis.premultiply( _m3.makeTranslation( tx, ty ) );\n\n\t\treturn this;\n\n\t}\n\n\t// for 2D Transforms\n\n\tmakeTranslation( x, y ) {\n\n\t\tif ( x.isVector2 ) {\n\n\t\t\tthis.set(\n\n\t\t\t\t1, 0, x.x,\n\t\t\t\t0, 1, x.y,\n\t\t\t\t0, 0, 1\n\n\t\t\t);\n\n\t\t} else {\n\n\t\t\tthis.set(\n\n\t\t\t\t1, 0, x,\n\t\t\t\t0, 1, y,\n\t\t\t\t0, 0, 1\n\n\t\t\t);\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotation( theta ) {\n\n\t\t// counterclockwise\n\n\t\tconst c = Math.cos( theta );\n\t\tconst s = Math.sin( theta );\n\n\t\tthis.set(\n\n\t\t\tc, - s, 0,\n\t\t\ts, c, 0,\n\t\t\t0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeScale( x, y ) {\n\n\t\tthis.set(\n\n\t\t\tx, 0, 0,\n\t\t\t0, y, 0,\n\t\t\t0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\t//\n\n\tequals( matrix ) {\n\n\t\tconst te = this.elements;\n\t\tconst me = matrix.elements;\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tif ( te[ i ] !== me[ i ] ) return false;\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.elements[ i ] = array[ i + offset ];\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tconst te = this.elements;\n\n\t\tarray[ offset ] = te[ 0 ];\n\t\tarray[ offset + 1 ] = te[ 1 ];\n\t\tarray[ offset + 2 ] = te[ 2 ];\n\n\t\tarray[ offset + 3 ] = te[ 3 ];\n\t\tarray[ offset + 4 ] = te[ 4 ];\n\t\tarray[ offset + 5 ] = te[ 5 ];\n\n\t\tarray[ offset + 6 ] = te[ 6 ];\n\t\tarray[ offset + 7 ] = te[ 7 ];\n\t\tarray[ offset + 8 ] = te[ 8 ];\n\n\t\treturn array;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().fromArray( this.elements );\n\n\t}\n\n}\n\nconst _m3 = /*@__PURE__*/ new Matrix3();\n\nfunction arrayNeedsUint32( array ) {\n\n\t// assumes larger values usually on last\n\n\tfor ( let i = array.length - 1; i >= 0; -- i ) {\n\n\t\tif ( array[ i ] >= 65535 ) return true; // account for PRIMITIVE_RESTART_FIXED_INDEX, #24565\n\n\t}\n\n\treturn false;\n\n}\n\nconst TYPED_ARRAYS = {\n\tInt8Array: Int8Array,\n\tUint8Array: Uint8Array,\n\tUint8ClampedArray: Uint8ClampedArray,\n\tInt16Array: Int16Array,\n\tUint16Array: Uint16Array,\n\tInt32Array: Int32Array,\n\tUint32Array: Uint32Array,\n\tFloat32Array: Float32Array,\n\tFloat64Array: Float64Array\n};\n\nfunction getTypedArray( type, buffer ) {\n\n\treturn new TYPED_ARRAYS[ type ]( buffer );\n\n}\n\nfunction createElementNS( name ) {\n\n\treturn document.createElementNS( 'http://www.w3.org/1999/xhtml', name );\n\n}\n\nfunction createCanvasElement() {\n\n\tconst canvas = createElementNS( 'canvas' );\n\tcanvas.style.display = 'block';\n\treturn canvas;\n\n}\n\nconst _cache = {};\n\nfunction warnOnce( message ) {\n\n\tif ( message in _cache ) return;\n\n\t_cache[ message ] = true;\n\n\tconsole.warn( message );\n\n}\n\nfunction probeAsync( gl, sync, interval ) {\n\n\treturn new Promise( function ( resolve, reject ) {\n\n\t\tfunction probe() {\n\n\t\t\tswitch ( gl.clientWaitSync( sync, gl.SYNC_FLUSH_COMMANDS_BIT, 0 ) ) {\n\n\t\t\t\tcase gl.WAIT_FAILED:\n\t\t\t\t\treject();\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase gl.TIMEOUT_EXPIRED:\n\t\t\t\t\tsetTimeout( probe, interval );\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\t\t\t\t\tresolve();\n\n\t\t\t}\n\n\t\t}\n\n\t\tsetTimeout( probe, interval );\n\n\t} );\n\n}\n\nfunction toNormalizedProjectionMatrix( projectionMatrix ) {\n\n\tconst m = projectionMatrix.elements;\n\n\t// Convert [-1, 1] to [0, 1] projection matrix\n\tm[ 2 ] = 0.5 * m[ 2 ] + 0.5 * m[ 3 ];\n\tm[ 6 ] = 0.5 * m[ 6 ] + 0.5 * m[ 7 ];\n\tm[ 10 ] = 0.5 * m[ 10 ] + 0.5 * m[ 11 ];\n\tm[ 14 ] = 0.5 * m[ 14 ] + 0.5 * m[ 15 ];\n\n}\n\nfunction toReversedProjectionMatrix( projectionMatrix ) {\n\n\tconst m = projectionMatrix.elements;\n\tconst isPerspectiveMatrix = m[ 11 ] === - 1;\n\n\t// Reverse [0, 1] projection matrix\n\tif ( isPerspectiveMatrix ) {\n\n\t\tm[ 10 ] = - m[ 10 ] - 1;\n\t\tm[ 14 ] = - m[ 14 ];\n\n\t} else {\n\n\t\tm[ 10 ] = - m[ 10 ];\n\t\tm[ 14 ] = - m[ 14 ] + 1;\n\n\t}\n\n}\n\nconst ColorManagement = {\n\n\tenabled: true,\n\n\tworkingColorSpace: LinearSRGBColorSpace,\n\n\t/**\n\t * Implementations of supported color spaces.\n\t *\n\t * Required:\n\t *\t- primaries: chromaticity coordinates [ rx ry gx gy bx by ]\n\t *\t- whitePoint: reference white [ x y ]\n\t *\t- transfer: transfer function (pre-defined)\n\t *\t- toXYZ: Matrix3 RGB to XYZ transform\n\t *\t- fromXYZ: Matrix3 XYZ to RGB transform\n\t *\t- luminanceCoefficients: RGB luminance coefficients\n\t *\n\t * Optional:\n\t * - outputColorSpaceConfig: { drawingBufferColorSpace: ColorSpace }\n\t * - workingColorSpaceConfig: { unpackColorSpace: ColorSpace }\n\t *\n\t * Reference:\n\t * - https://www.russellcottrell.com/photo/matrixCalculator.htm\n\t */\n\tspaces: {},\n\n\tconvert: function ( color, sourceColorSpace, targetColorSpace ) {\n\n\t\tif ( this.enabled === false || sourceColorSpace === targetColorSpace || ! sourceColorSpace || ! targetColorSpace ) {\n\n\t\t\treturn color;\n\n\t\t}\n\n\t\tif ( this.spaces[ sourceColorSpace ].transfer === SRGBTransfer ) {\n\n\t\t\tcolor.r = SRGBToLinear( color.r );\n\t\t\tcolor.g = SRGBToLinear( color.g );\n\t\t\tcolor.b = SRGBToLinear( color.b );\n\n\t\t}\n\n\t\tif ( this.spaces[ sourceColorSpace ].primaries !== this.spaces[ targetColorSpace ].primaries ) {\n\n\t\t\tcolor.applyMatrix3( this.spaces[ sourceColorSpace ].toXYZ );\n\t\t\tcolor.applyMatrix3( this.spaces[ targetColorSpace ].fromXYZ );\n\n\t\t}\n\n\t\tif ( this.spaces[ targetColorSpace ].transfer === SRGBTransfer ) {\n\n\t\t\tcolor.r = LinearToSRGB( color.r );\n\t\t\tcolor.g = LinearToSRGB( color.g );\n\t\t\tcolor.b = LinearToSRGB( color.b );\n\n\t\t}\n\n\t\treturn color;\n\n\t},\n\n\tfromWorkingColorSpace: function ( color, targetColorSpace ) {\n\n\t\treturn this.convert( color, this.workingColorSpace, targetColorSpace );\n\n\t},\n\n\ttoWorkingColorSpace: function ( color, sourceColorSpace ) {\n\n\t\treturn this.convert( color, sourceColorSpace, this.workingColorSpace );\n\n\t},\n\n\tgetPrimaries: function ( colorSpace ) {\n\n\t\treturn this.spaces[ colorSpace ].primaries;\n\n\t},\n\n\tgetTransfer: function ( colorSpace ) {\n\n\t\tif ( colorSpace === NoColorSpace ) return LinearTransfer;\n\n\t\treturn this.spaces[ colorSpace ].transfer;\n\n\t},\n\n\tgetLuminanceCoefficients: function ( target, colorSpace = this.workingColorSpace ) {\n\n\t\treturn target.fromArray( this.spaces[ colorSpace ].luminanceCoefficients );\n\n\t},\n\n\tdefine: function ( colorSpaces ) {\n\n\t\tObject.assign( this.spaces, colorSpaces );\n\n\t},\n\n\t// Internal APIs\n\n\t_getMatrix: function ( targetMatrix, sourceColorSpace, targetColorSpace ) {\n\n\t\treturn targetMatrix\n\t\t\t.copy( this.spaces[ sourceColorSpace ].toXYZ )\n\t\t\t.multiply( this.spaces[ targetColorSpace ].fromXYZ );\n\n\t},\n\n\t_getDrawingBufferColorSpace: function ( colorSpace ) {\n\n\t\treturn this.spaces[ colorSpace ].outputColorSpaceConfig.drawingBufferColorSpace;\n\n\t},\n\n\t_getUnpackColorSpace: function ( colorSpace = this.workingColorSpace ) {\n\n\t\treturn this.spaces[ colorSpace ].workingColorSpaceConfig.unpackColorSpace;\n\n\t}\n\n};\n\nfunction SRGBToLinear( c ) {\n\n\treturn ( c < 0.04045 ) ? c * 0.0773993808 : Math.pow( c * 0.9478672986 + 0.0521327014, 2.4 );\n\n}\n\nfunction LinearToSRGB( c ) {\n\n\treturn ( c < 0.0031308 ) ? c * 12.92 : 1.055 * ( Math.pow( c, 0.41666 ) ) - 0.055;\n\n}\n\n/******************************************************************************\n * sRGB definitions\n */\n\nconst REC709_PRIMARIES = [ 0.640, 0.330, 0.300, 0.600, 0.150, 0.060 ];\nconst REC709_LUMINANCE_COEFFICIENTS = [ 0.2126, 0.7152, 0.0722 ];\nconst D65 = [ 0.3127, 0.3290 ];\n\nconst LINEAR_REC709_TO_XYZ = /*@__PURE__*/ new Matrix3().set(\n\t0.4123908, 0.3575843, 0.1804808,\n\t0.2126390, 0.7151687, 0.0721923,\n\t0.0193308, 0.1191948, 0.9505322\n);\n\nconst XYZ_TO_LINEAR_REC709 = /*@__PURE__*/ new Matrix3().set(\n\t3.2409699, - 1.5373832, - 0.4986108,\n\t- 0.9692436, 1.8759675, 0.0415551,\n\t0.0556301, - 0.2039770, 1.0569715\n);\n\nColorManagement.define( {\n\n\t[ LinearSRGBColorSpace ]: {\n\t\tprimaries: REC709_PRIMARIES,\n\t\twhitePoint: D65,\n\t\ttransfer: LinearTransfer,\n\t\ttoXYZ: LINEAR_REC709_TO_XYZ,\n\t\tfromXYZ: XYZ_TO_LINEAR_REC709,\n\t\tluminanceCoefficients: REC709_LUMINANCE_COEFFICIENTS,\n\t\tworkingColorSpaceConfig: { unpackColorSpace: SRGBColorSpace },\n\t\toutputColorSpaceConfig: { drawingBufferColorSpace: SRGBColorSpace }\n\t},\n\n\t[ SRGBColorSpace ]: {\n\t\tprimaries: REC709_PRIMARIES,\n\t\twhitePoint: D65,\n\t\ttransfer: SRGBTransfer,\n\t\ttoXYZ: LINEAR_REC709_TO_XYZ,\n\t\tfromXYZ: XYZ_TO_LINEAR_REC709,\n\t\tluminanceCoefficients: REC709_LUMINANCE_COEFFICIENTS,\n\t\toutputColorSpaceConfig: { drawingBufferColorSpace: SRGBColorSpace }\n\t},\n\n} );\n\nlet _canvas;\n\nclass ImageUtils {\n\n\tstatic getDataURL( image ) {\n\n\t\tif ( /^data:/i.test( image.src ) ) {\n\n\t\t\treturn image.src;\n\n\t\t}\n\n\t\tif ( typeof HTMLCanvasElement === 'undefined' ) {\n\n\t\t\treturn image.src;\n\n\t\t}\n\n\t\tlet canvas;\n\n\t\tif ( image instanceof HTMLCanvasElement ) {\n\n\t\t\tcanvas = image;\n\n\t\t} else {\n\n\t\t\tif ( _canvas === undefined ) _canvas = createElementNS( 'canvas' );\n\n\t\t\t_canvas.width = image.width;\n\t\t\t_canvas.height = image.height;\n\n\t\t\tconst context = _canvas.getContext( '2d' );\n\n\t\t\tif ( image instanceof ImageData ) {\n\n\t\t\t\tcontext.putImageData( image, 0, 0 );\n\n\t\t\t} else {\n\n\t\t\t\tcontext.drawImage( image, 0, 0, image.width, image.height );\n\n\t\t\t}\n\n\t\t\tcanvas = _canvas;\n\n\t\t}\n\n\t\tif ( canvas.width > 2048 || canvas.height > 2048 ) {\n\n\t\t\tconsole.warn( 'THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons', image );\n\n\t\t\treturn canvas.toDataURL( 'image/jpeg', 0.6 );\n\n\t\t} else {\n\n\t\t\treturn canvas.toDataURL( 'image/png' );\n\n\t\t}\n\n\t}\n\n\tstatic sRGBToLinear( image ) {\n\n\t\tif ( ( typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement ) ||\n\t\t\t( typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement ) ||\n\t\t\t( typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap ) ) {\n\n\t\t\tconst canvas = createElementNS( 'canvas' );\n\n\t\t\tcanvas.width = image.width;\n\t\t\tcanvas.height = image.height;\n\n\t\t\tconst context = canvas.getContext( '2d' );\n\t\t\tcontext.drawImage( image, 0, 0, image.width, image.height );\n\n\t\t\tconst imageData = context.getImageData( 0, 0, image.width, image.height );\n\t\t\tconst data = imageData.data;\n\n\t\t\tfor ( let i = 0; i < data.length; i ++ ) {\n\n\t\t\t\tdata[ i ] = SRGBToLinear( data[ i ] / 255 ) * 255;\n\n\t\t\t}\n\n\t\t\tcontext.putImageData( imageData, 0, 0 );\n\n\t\t\treturn canvas;\n\n\t\t} else if ( image.data ) {\n\n\t\t\tconst data = image.data.slice( 0 );\n\n\t\t\tfor ( let i = 0; i < data.length; i ++ ) {\n\n\t\t\t\tif ( data instanceof Uint8Array || data instanceof Uint8ClampedArray ) {\n\n\t\t\t\t\tdata[ i ] = Math.floor( SRGBToLinear( data[ i ] / 255 ) * 255 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// assuming float\n\n\t\t\t\t\tdata[ i ] = SRGBToLinear( data[ i ] );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tdata: data,\n\t\t\t\twidth: image.width,\n\t\t\t\theight: image.height\n\t\t\t};\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.ImageUtils.sRGBToLinear(): Unsupported image type. No color space conversion applied.' );\n\t\t\treturn image;\n\n\t\t}\n\n\t}\n\n}\n\nlet _sourceId = 0;\n\nclass Source {\n\n\tconstructor( data = null ) {\n\n\t\tthis.isSource = true;\n\n\t\tObject.defineProperty( this, 'id', { value: _sourceId ++ } );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.data = data;\n\t\tthis.dataReady = true;\n\n\t\tthis.version = 0;\n\n\t}\n\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst isRootObject = ( meta === undefined || typeof meta === 'string' );\n\n\t\tif ( ! isRootObject && meta.images[ this.uuid ] !== undefined ) {\n\n\t\t\treturn meta.images[ this.uuid ];\n\n\t\t}\n\n\t\tconst output = {\n\t\t\tuuid: this.uuid,\n\t\t\turl: ''\n\t\t};\n\n\t\tconst data = this.data;\n\n\t\tif ( data !== null ) {\n\n\t\t\tlet url;\n\n\t\t\tif ( Array.isArray( data ) ) {\n\n\t\t\t\t// cube texture\n\n\t\t\t\turl = [];\n\n\t\t\t\tfor ( let i = 0, l = data.length; i < l; i ++ ) {\n\n\t\t\t\t\tif ( data[ i ].isDataTexture ) {\n\n\t\t\t\t\t\turl.push( serializeImage( data[ i ].image ) );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\turl.push( serializeImage( data[ i ] ) );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t// texture\n\n\t\t\t\turl = serializeImage( data );\n\n\t\t\t}\n\n\t\t\toutput.url = url;\n\n\t\t}\n\n\t\tif ( ! isRootObject ) {\n\n\t\t\tmeta.images[ this.uuid ] = output;\n\n\t\t}\n\n\t\treturn output;\n\n\t}\n\n}\n\nfunction serializeImage( image ) {\n\n\tif ( ( typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement ) ||\n\t\t( typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement ) ||\n\t\t( typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap ) ) {\n\n\t\t// default images\n\n\t\treturn ImageUtils.getDataURL( image );\n\n\t} else {\n\n\t\tif ( image.data ) {\n\n\t\t\t// images of DataTexture\n\n\t\t\treturn {\n\t\t\t\tdata: Array.from( image.data ),\n\t\t\t\twidth: image.width,\n\t\t\t\theight: image.height,\n\t\t\t\ttype: image.data.constructor.name\n\t\t\t};\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.Texture: Unable to serialize Texture.' );\n\t\t\treturn {};\n\n\t\t}\n\n\t}\n\n}\n\nlet _textureId = 0;\n\nclass Texture extends EventDispatcher {\n\n\tconstructor( image = Texture.DEFAULT_IMAGE, mapping = Texture.DEFAULT_MAPPING, wrapS = ClampToEdgeWrapping, wrapT = ClampToEdgeWrapping, magFilter = LinearFilter, minFilter = LinearMipmapLinearFilter, format = RGBAFormat, type = UnsignedByteType, anisotropy = Texture.DEFAULT_ANISOTROPY, colorSpace = NoColorSpace ) {\n\n\t\tsuper();\n\n\t\tthis.isTexture = true;\n\n\t\tObject.defineProperty( this, 'id', { value: _textureId ++ } );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.name = '';\n\n\t\tthis.source = new Source( image );\n\t\tthis.mipmaps = [];\n\n\t\tthis.mapping = mapping;\n\t\tthis.channel = 0;\n\n\t\tthis.wrapS = wrapS;\n\t\tthis.wrapT = wrapT;\n\n\t\tthis.magFilter = magFilter;\n\t\tthis.minFilter = minFilter;\n\n\t\tthis.anisotropy = anisotropy;\n\n\t\tthis.format = format;\n\t\tthis.internalFormat = null;\n\t\tthis.type = type;\n\n\t\tthis.offset = new Vector2( 0, 0 );\n\t\tthis.repeat = new Vector2( 1, 1 );\n\t\tthis.center = new Vector2( 0, 0 );\n\t\tthis.rotation = 0;\n\n\t\tthis.matrixAutoUpdate = true;\n\t\tthis.matrix = new Matrix3();\n\n\t\tthis.generateMipmaps = true;\n\t\tthis.premultiplyAlpha = false;\n\t\tthis.flipY = true;\n\t\tthis.unpackAlignment = 4;\t// valid values: 1, 2, 4, 8 (see http://www.khronos.org/opengles/sdk/docs/man/xhtml/glPixelStorei.xml)\n\n\t\tthis.colorSpace = colorSpace;\n\n\t\tthis.userData = {};\n\n\t\tthis.version = 0;\n\t\tthis.onUpdate = null;\n\n\t\tthis.isRenderTargetTexture = false; // indicates whether a texture belongs to a render target or not\n\t\tthis.pmremVersion = 0; // indicates whether this texture should be processed by PMREMGenerator or not (only relevant for render target textures)\n\n\t}\n\n\tget image() {\n\n\t\treturn this.source.data;\n\n\t}\n\n\tset image( value = null ) {\n\n\t\tthis.source.data = value;\n\n\t}\n\n\tupdateMatrix() {\n\n\t\tthis.matrix.setUvTransform( this.offset.x, this.offset.y, this.repeat.x, this.repeat.y, this.rotation, this.center.x, this.center.y );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.name = source.name;\n\n\t\tthis.source = source.source;\n\t\tthis.mipmaps = source.mipmaps.slice( 0 );\n\n\t\tthis.mapping = source.mapping;\n\t\tthis.channel = source.channel;\n\n\t\tthis.wrapS = source.wrapS;\n\t\tthis.wrapT = source.wrapT;\n\n\t\tthis.magFilter = source.magFilter;\n\t\tthis.minFilter = source.minFilter;\n\n\t\tthis.anisotropy = source.anisotropy;\n\n\t\tthis.format = source.format;\n\t\tthis.internalFormat = source.internalFormat;\n\t\tthis.type = source.type;\n\n\t\tthis.offset.copy( source.offset );\n\t\tthis.repeat.copy( source.repeat );\n\t\tthis.center.copy( source.center );\n\t\tthis.rotation = source.rotation;\n\n\t\tthis.matrixAutoUpdate = source.matrixAutoUpdate;\n\t\tthis.matrix.copy( source.matrix );\n\n\t\tthis.generateMipmaps = source.generateMipmaps;\n\t\tthis.premultiplyAlpha = source.premultiplyAlpha;\n\t\tthis.flipY = source.flipY;\n\t\tthis.unpackAlignment = source.unpackAlignment;\n\t\tthis.colorSpace = source.colorSpace;\n\n\t\tthis.userData = JSON.parse( JSON.stringify( source.userData ) );\n\n\t\tthis.needsUpdate = true;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst isRootObject = ( meta === undefined || typeof meta === 'string' );\n\n\t\tif ( ! isRootObject && meta.textures[ this.uuid ] !== undefined ) {\n\n\t\t\treturn meta.textures[ this.uuid ];\n\n\t\t}\n\n\t\tconst output = {\n\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.6,\n\t\t\t\ttype: 'Texture',\n\t\t\t\tgenerator: 'Texture.toJSON'\n\t\t\t},\n\n\t\t\tuuid: this.uuid,\n\t\t\tname: this.name,\n\n\t\t\timage: this.source.toJSON( meta ).uuid,\n\n\t\t\tmapping: this.mapping,\n\t\t\tchannel: this.channel,\n\n\t\t\trepeat: [ this.repeat.x, this.repeat.y ],\n\t\t\toffset: [ this.offset.x, this.offset.y ],\n\t\t\tcenter: [ this.center.x, this.center.y ],\n\t\t\trotation: this.rotation,\n\n\t\t\twrap: [ this.wrapS, this.wrapT ],\n\n\t\t\tformat: this.format,\n\t\t\tinternalFormat: this.internalFormat,\n\t\t\ttype: this.type,\n\t\t\tcolorSpace: this.colorSpace,\n\n\t\t\tminFilter: this.minFilter,\n\t\t\tmagFilter: this.magFilter,\n\t\t\tanisotropy: this.anisotropy,\n\n\t\t\tflipY: this.flipY,\n\n\t\t\tgenerateMipmaps: this.generateMipmaps,\n\t\t\tpremultiplyAlpha: this.premultiplyAlpha,\n\t\t\tunpackAlignment: this.unpackAlignment\n\n\t\t};\n\n\t\tif ( Object.keys( this.userData ).length > 0 ) output.userData = this.userData;\n\n\t\tif ( ! isRootObject ) {\n\n\t\t\tmeta.textures[ this.uuid ] = output;\n\n\t\t}\n\n\t\treturn output;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n\ttransformUv( uv ) {\n\n\t\tif ( this.mapping !== UVMapping ) return uv;\n\n\t\tuv.applyMatrix3( this.matrix );\n\n\t\tif ( uv.x < 0 || uv.x > 1 ) {\n\n\t\t\tswitch ( this.wrapS ) {\n\n\t\t\t\tcase RepeatWrapping:\n\n\t\t\t\t\tuv.x = uv.x - Math.floor( uv.x );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase ClampToEdgeWrapping:\n\n\t\t\t\t\tuv.x = uv.x < 0 ? 0 : 1;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase MirroredRepeatWrapping:\n\n\t\t\t\t\tif ( Math.abs( Math.floor( uv.x ) % 2 ) === 1 ) {\n\n\t\t\t\t\t\tuv.x = Math.ceil( uv.x ) - uv.x;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tuv.x = uv.x - Math.floor( uv.x );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( uv.y < 0 || uv.y > 1 ) {\n\n\t\t\tswitch ( this.wrapT ) {\n\n\t\t\t\tcase RepeatWrapping:\n\n\t\t\t\t\tuv.y = uv.y - Math.floor( uv.y );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase ClampToEdgeWrapping:\n\n\t\t\t\t\tuv.y = uv.y < 0 ? 0 : 1;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase MirroredRepeatWrapping:\n\n\t\t\t\t\tif ( Math.abs( Math.floor( uv.y ) % 2 ) === 1 ) {\n\n\t\t\t\t\t\tuv.y = Math.ceil( uv.y ) - uv.y;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tuv.y = uv.y - Math.floor( uv.y );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( this.flipY ) {\n\n\t\t\tuv.y = 1 - uv.y;\n\n\t\t}\n\n\t\treturn uv;\n\n\t}\n\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) {\n\n\t\t\tthis.version ++;\n\t\t\tthis.source.needsUpdate = true;\n\n\t\t}\n\n\t}\n\n\tset needsPMREMUpdate( value ) {\n\n\t\tif ( value === true ) {\n\n\t\t\tthis.pmremVersion ++;\n\n\t\t}\n\n\t}\n\n}\n\nTexture.DEFAULT_IMAGE = null;\nTexture.DEFAULT_MAPPING = UVMapping;\nTexture.DEFAULT_ANISOTROPY = 1;\n\nclass Vector4 {\n\n\tconstructor( x = 0, y = 0, z = 0, w = 1 ) {\n\n\t\tVector4.prototype.isVector4 = true;\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\n\t\tthis.w = w;\n\n\t}\n\n\tget width() {\n\n\t\treturn this.z;\n\n\t}\n\n\tset width( value ) {\n\n\t\tthis.z = value;\n\n\t}\n\n\tget height() {\n\n\t\treturn this.w;\n\n\t}\n\n\tset height( value ) {\n\n\t\tthis.w = value;\n\n\t}\n\n\tset( x, y, z, w ) {\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\n\t\tthis.w = w;\n\n\t\treturn this;\n\n\t}\n\n\tsetScalar( scalar ) {\n\n\t\tthis.x = scalar;\n\t\tthis.y = scalar;\n\t\tthis.z = scalar;\n\t\tthis.w = scalar;\n\n\t\treturn this;\n\n\t}\n\n\tsetX( x ) {\n\n\t\tthis.x = x;\n\n\t\treturn this;\n\n\t}\n\n\tsetY( y ) {\n\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetZ( z ) {\n\n\t\tthis.z = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetW( w ) {\n\n\t\tthis.w = w;\n\n\t\treturn this;\n\n\t}\n\n\tsetComponent( index, value ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: this.x = value; break;\n\t\t\tcase 1: this.y = value; break;\n\t\t\tcase 2: this.z = value; break;\n\t\t\tcase 3: this.w = value; break;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetComponent( index ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: return this.x;\n\t\t\tcase 1: return this.y;\n\t\t\tcase 2: return this.z;\n\t\t\tcase 3: return this.w;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.x, this.y, this.z, this.w );\n\n\t}\n\n\tcopy( v ) {\n\n\t\tthis.x = v.x;\n\t\tthis.y = v.y;\n\t\tthis.z = v.z;\n\t\tthis.w = ( v.w !== undefined ) ? v.w : 1;\n\n\t\treturn this;\n\n\t}\n\n\tadd( v ) {\n\n\t\tthis.x += v.x;\n\t\tthis.y += v.y;\n\t\tthis.z += v.z;\n\t\tthis.w += v.w;\n\n\t\treturn this;\n\n\t}\n\n\taddScalar( s ) {\n\n\t\tthis.x += s;\n\t\tthis.y += s;\n\t\tthis.z += s;\n\t\tthis.w += s;\n\n\t\treturn this;\n\n\t}\n\n\taddVectors( a, b ) {\n\n\t\tthis.x = a.x + b.x;\n\t\tthis.y = a.y + b.y;\n\t\tthis.z = a.z + b.z;\n\t\tthis.w = a.w + b.w;\n\n\t\treturn this;\n\n\t}\n\n\taddScaledVector( v, s ) {\n\n\t\tthis.x += v.x * s;\n\t\tthis.y += v.y * s;\n\t\tthis.z += v.z * s;\n\t\tthis.w += v.w * s;\n\n\t\treturn this;\n\n\t}\n\n\tsub( v ) {\n\n\t\tthis.x -= v.x;\n\t\tthis.y -= v.y;\n\t\tthis.z -= v.z;\n\t\tthis.w -= v.w;\n\n\t\treturn this;\n\n\t}\n\n\tsubScalar( s ) {\n\n\t\tthis.x -= s;\n\t\tthis.y -= s;\n\t\tthis.z -= s;\n\t\tthis.w -= s;\n\n\t\treturn this;\n\n\t}\n\n\tsubVectors( a, b ) {\n\n\t\tthis.x = a.x - b.x;\n\t\tthis.y = a.y - b.y;\n\t\tthis.z = a.z - b.z;\n\t\tthis.w = a.w - b.w;\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( v ) {\n\n\t\tthis.x *= v.x;\n\t\tthis.y *= v.y;\n\t\tthis.z *= v.z;\n\t\tthis.w *= v.w;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( scalar ) {\n\n\t\tthis.x *= scalar;\n\t\tthis.y *= scalar;\n\t\tthis.z *= scalar;\n\t\tthis.w *= scalar;\n\n\t\treturn this;\n\n\t}\n\n\tapplyMatrix4( m ) {\n\n\t\tconst x = this.x, y = this.y, z = this.z, w = this.w;\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z + e[ 12 ] * w;\n\t\tthis.y = e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z + e[ 13 ] * w;\n\t\tthis.z = e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z + e[ 14 ] * w;\n\t\tthis.w = e[ 3 ] * x + e[ 7 ] * y + e[ 11 ] * z + e[ 15 ] * w;\n\n\t\treturn this;\n\n\t}\n\n\tdivide( v ) {\n\n\t\tthis.x /= v.x;\n\t\tthis.y /= v.y;\n\t\tthis.z /= v.z;\n\t\tthis.w /= v.w;\n\n\t\treturn this;\n\n\t}\n\n\tdivideScalar( scalar ) {\n\n\t\treturn this.multiplyScalar( 1 / scalar );\n\n\t}\n\n\tsetAxisAngleFromQuaternion( q ) {\n\n\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToAngle/index.htm\n\n\t\t// q is assumed to be normalized\n\n\t\tthis.w = 2 * Math.acos( q.w );\n\n\t\tconst s = Math.sqrt( 1 - q.w * q.w );\n\n\t\tif ( s < 0.0001 ) {\n\n\t\t\tthis.x = 1;\n\t\t\tthis.y = 0;\n\t\t\tthis.z = 0;\n\n\t\t} else {\n\n\t\t\tthis.x = q.x / s;\n\t\t\tthis.y = q.y / s;\n\t\t\tthis.z = q.z / s;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetAxisAngleFromRotationMatrix( m ) {\n\n\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToAngle/index.htm\n\n\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n\t\tlet angle, x, y, z; // variables for result\n\t\tconst epsilon = 0.01,\t\t// margin to allow for rounding errors\n\t\t\tepsilon2 = 0.1,\t\t// margin to distinguish between 0 and 180 degrees\n\n\t\t\tte = m.elements,\n\n\t\t\tm11 = te[ 0 ], m12 = te[ 4 ], m13 = te[ 8 ],\n\t\t\tm21 = te[ 1 ], m22 = te[ 5 ], m23 = te[ 9 ],\n\t\t\tm31 = te[ 2 ], m32 = te[ 6 ], m33 = te[ 10 ];\n\n\t\tif ( ( Math.abs( m12 - m21 ) < epsilon ) &&\n\t\t ( Math.abs( m13 - m31 ) < epsilon ) &&\n\t\t ( Math.abs( m23 - m32 ) < epsilon ) ) {\n\n\t\t\t// singularity found\n\t\t\t// first check for identity matrix which must have +1 for all terms\n\t\t\t// in leading diagonal and zero in other terms\n\n\t\t\tif ( ( Math.abs( m12 + m21 ) < epsilon2 ) &&\n\t\t\t ( Math.abs( m13 + m31 ) < epsilon2 ) &&\n\t\t\t ( Math.abs( m23 + m32 ) < epsilon2 ) &&\n\t\t\t ( Math.abs( m11 + m22 + m33 - 3 ) < epsilon2 ) ) {\n\n\t\t\t\t// this singularity is identity matrix so angle = 0\n\n\t\t\t\tthis.set( 1, 0, 0, 0 );\n\n\t\t\t\treturn this; // zero angle, arbitrary axis\n\n\t\t\t}\n\n\t\t\t// otherwise this singularity is angle = 180\n\n\t\t\tangle = Math.PI;\n\n\t\t\tconst xx = ( m11 + 1 ) / 2;\n\t\t\tconst yy = ( m22 + 1 ) / 2;\n\t\t\tconst zz = ( m33 + 1 ) / 2;\n\t\t\tconst xy = ( m12 + m21 ) / 4;\n\t\t\tconst xz = ( m13 + m31 ) / 4;\n\t\t\tconst yz = ( m23 + m32 ) / 4;\n\n\t\t\tif ( ( xx > yy ) && ( xx > zz ) ) {\n\n\t\t\t\t// m11 is the largest diagonal term\n\n\t\t\t\tif ( xx < epsilon ) {\n\n\t\t\t\t\tx = 0;\n\t\t\t\t\ty = 0.707106781;\n\t\t\t\t\tz = 0.707106781;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tx = Math.sqrt( xx );\n\t\t\t\t\ty = xy / x;\n\t\t\t\t\tz = xz / x;\n\n\t\t\t\t}\n\n\t\t\t} else if ( yy > zz ) {\n\n\t\t\t\t// m22 is the largest diagonal term\n\n\t\t\t\tif ( yy < epsilon ) {\n\n\t\t\t\t\tx = 0.707106781;\n\t\t\t\t\ty = 0;\n\t\t\t\t\tz = 0.707106781;\n\n\t\t\t\t} else {\n\n\t\t\t\t\ty = Math.sqrt( yy );\n\t\t\t\t\tx = xy / y;\n\t\t\t\t\tz = yz / y;\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t// m33 is the largest diagonal term so base result on this\n\n\t\t\t\tif ( zz < epsilon ) {\n\n\t\t\t\t\tx = 0.707106781;\n\t\t\t\t\ty = 0.707106781;\n\t\t\t\t\tz = 0;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tz = Math.sqrt( zz );\n\t\t\t\t\tx = xz / z;\n\t\t\t\t\ty = yz / z;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis.set( x, y, z, angle );\n\n\t\t\treturn this; // return 180 deg rotation\n\n\t\t}\n\n\t\t// as we have reached here there are no singularities so we can handle normally\n\n\t\tlet s = Math.sqrt( ( m32 - m23 ) * ( m32 - m23 ) +\n\t\t\t( m13 - m31 ) * ( m13 - m31 ) +\n\t\t\t( m21 - m12 ) * ( m21 - m12 ) ); // used to normalize\n\n\t\tif ( Math.abs( s ) < 0.001 ) s = 1;\n\n\t\t// prevent divide by zero, should not happen if matrix is orthogonal and should be\n\t\t// caught by singularity test above, but I've left it in just in case\n\n\t\tthis.x = ( m32 - m23 ) / s;\n\t\tthis.y = ( m13 - m31 ) / s;\n\t\tthis.z = ( m21 - m12 ) / s;\n\t\tthis.w = Math.acos( ( m11 + m22 + m33 - 1 ) / 2 );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrixPosition( m ) {\n\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 12 ];\n\t\tthis.y = e[ 13 ];\n\t\tthis.z = e[ 14 ];\n\t\tthis.w = e[ 15 ];\n\n\t\treturn this;\n\n\t}\n\n\tmin( v ) {\n\n\t\tthis.x = Math.min( this.x, v.x );\n\t\tthis.y = Math.min( this.y, v.y );\n\t\tthis.z = Math.min( this.z, v.z );\n\t\tthis.w = Math.min( this.w, v.w );\n\n\t\treturn this;\n\n\t}\n\n\tmax( v ) {\n\n\t\tthis.x = Math.max( this.x, v.x );\n\t\tthis.y = Math.max( this.y, v.y );\n\t\tthis.z = Math.max( this.z, v.z );\n\t\tthis.w = Math.max( this.w, v.w );\n\n\t\treturn this;\n\n\t}\n\n\tclamp( min, max ) {\n\n\t\t// assumes min < max, componentwise\n\n\t\tthis.x = Math.max( min.x, Math.min( max.x, this.x ) );\n\t\tthis.y = Math.max( min.y, Math.min( max.y, this.y ) );\n\t\tthis.z = Math.max( min.z, Math.min( max.z, this.z ) );\n\t\tthis.w = Math.max( min.w, Math.min( max.w, this.w ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampScalar( minVal, maxVal ) {\n\n\t\tthis.x = Math.max( minVal, Math.min( maxVal, this.x ) );\n\t\tthis.y = Math.max( minVal, Math.min( maxVal, this.y ) );\n\t\tthis.z = Math.max( minVal, Math.min( maxVal, this.z ) );\n\t\tthis.w = Math.max( minVal, Math.min( maxVal, this.w ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampLength( min, max ) {\n\n\t\tconst length = this.length();\n\n\t\treturn this.divideScalar( length || 1 ).multiplyScalar( Math.max( min, Math.min( max, length ) ) );\n\n\t}\n\n\tfloor() {\n\n\t\tthis.x = Math.floor( this.x );\n\t\tthis.y = Math.floor( this.y );\n\t\tthis.z = Math.floor( this.z );\n\t\tthis.w = Math.floor( this.w );\n\n\t\treturn this;\n\n\t}\n\n\tceil() {\n\n\t\tthis.x = Math.ceil( this.x );\n\t\tthis.y = Math.ceil( this.y );\n\t\tthis.z = Math.ceil( this.z );\n\t\tthis.w = Math.ceil( this.w );\n\n\t\treturn this;\n\n\t}\n\n\tround() {\n\n\t\tthis.x = Math.round( this.x );\n\t\tthis.y = Math.round( this.y );\n\t\tthis.z = Math.round( this.z );\n\t\tthis.w = Math.round( this.w );\n\n\t\treturn this;\n\n\t}\n\n\troundToZero() {\n\n\t\tthis.x = Math.trunc( this.x );\n\t\tthis.y = Math.trunc( this.y );\n\t\tthis.z = Math.trunc( this.z );\n\t\tthis.w = Math.trunc( this.w );\n\n\t\treturn this;\n\n\t}\n\n\tnegate() {\n\n\t\tthis.x = - this.x;\n\t\tthis.y = - this.y;\n\t\tthis.z = - this.z;\n\t\tthis.w = - this.w;\n\n\t\treturn this;\n\n\t}\n\n\tdot( v ) {\n\n\t\treturn this.x * v.x + this.y * v.y + this.z * v.z + this.w * v.w;\n\n\t}\n\n\tlengthSq() {\n\n\t\treturn this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w;\n\n\t}\n\n\tlength() {\n\n\t\treturn Math.sqrt( this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w );\n\n\t}\n\n\tmanhattanLength() {\n\n\t\treturn Math.abs( this.x ) + Math.abs( this.y ) + Math.abs( this.z ) + Math.abs( this.w );\n\n\t}\n\n\tnormalize() {\n\n\t\treturn this.divideScalar( this.length() || 1 );\n\n\t}\n\n\tsetLength( length ) {\n\n\t\treturn this.normalize().multiplyScalar( length );\n\n\t}\n\n\tlerp( v, alpha ) {\n\n\t\tthis.x += ( v.x - this.x ) * alpha;\n\t\tthis.y += ( v.y - this.y ) * alpha;\n\t\tthis.z += ( v.z - this.z ) * alpha;\n\t\tthis.w += ( v.w - this.w ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpVectors( v1, v2, alpha ) {\n\n\t\tthis.x = v1.x + ( v2.x - v1.x ) * alpha;\n\t\tthis.y = v1.y + ( v2.y - v1.y ) * alpha;\n\t\tthis.z = v1.z + ( v2.z - v1.z ) * alpha;\n\t\tthis.w = v1.w + ( v2.w - v1.w ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tequals( v ) {\n\n\t\treturn ( ( v.x === this.x ) && ( v.y === this.y ) && ( v.z === this.z ) && ( v.w === this.w ) );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis.x = array[ offset ];\n\t\tthis.y = array[ offset + 1 ];\n\t\tthis.z = array[ offset + 2 ];\n\t\tthis.w = array[ offset + 3 ];\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this.x;\n\t\tarray[ offset + 1 ] = this.y;\n\t\tarray[ offset + 2 ] = this.z;\n\t\tarray[ offset + 3 ] = this.w;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index ) {\n\n\t\tthis.x = attribute.getX( index );\n\t\tthis.y = attribute.getY( index );\n\t\tthis.z = attribute.getZ( index );\n\t\tthis.w = attribute.getW( index );\n\n\t\treturn this;\n\n\t}\n\n\trandom() {\n\n\t\tthis.x = Math.random();\n\t\tthis.y = Math.random();\n\t\tthis.z = Math.random();\n\t\tthis.w = Math.random();\n\n\t\treturn this;\n\n\t}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this.x;\n\t\tyield this.y;\n\t\tyield this.z;\n\t\tyield this.w;\n\n\t}\n\n}\n\n/*\n In options, we can specify:\n * Texture parameters for an auto-generated target texture\n * depthBuffer/stencilBuffer: Booleans to indicate if we should generate these buffers\n*/\nclass RenderTarget extends EventDispatcher {\n\n\tconstructor( width = 1, height = 1, options = {} ) {\n\n\t\tsuper();\n\n\t\tthis.isRenderTarget = true;\n\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t\tthis.depth = 1;\n\n\t\tthis.scissor = new Vector4( 0, 0, width, height );\n\t\tthis.scissorTest = false;\n\n\t\tthis.viewport = new Vector4( 0, 0, width, height );\n\n\t\tconst image = { width: width, height: height, depth: 1 };\n\n\t\toptions = Object.assign( {\n\t\t\tgenerateMipmaps: false,\n\t\t\tinternalFormat: null,\n\t\t\tminFilter: LinearFilter,\n\t\t\tdepthBuffer: true,\n\t\t\tstencilBuffer: false,\n\t\t\tresolveDepthBuffer: true,\n\t\t\tresolveStencilBuffer: true,\n\t\t\tdepthTexture: null,\n\t\t\tsamples: 0,\n\t\t\tcount: 1\n\t\t}, options );\n\n\t\tconst texture = new Texture( image, options.mapping, options.wrapS, options.wrapT, options.magFilter, options.minFilter, options.format, options.type, options.anisotropy, options.colorSpace );\n\n\t\ttexture.flipY = false;\n\t\ttexture.generateMipmaps = options.generateMipmaps;\n\t\ttexture.internalFormat = options.internalFormat;\n\n\t\tthis.textures = [];\n\n\t\tconst count = options.count;\n\t\tfor ( let i = 0; i < count; i ++ ) {\n\n\t\t\tthis.textures[ i ] = texture.clone();\n\t\t\tthis.textures[ i ].isRenderTargetTexture = true;\n\n\t\t}\n\n\t\tthis.depthBuffer = options.depthBuffer;\n\t\tthis.stencilBuffer = options.stencilBuffer;\n\n\t\tthis.resolveDepthBuffer = options.resolveDepthBuffer;\n\t\tthis.resolveStencilBuffer = options.resolveStencilBuffer;\n\n\t\tthis.depthTexture = options.depthTexture;\n\n\t\tthis.samples = options.samples;\n\n\t}\n\n\tget texture() {\n\n\t\treturn this.textures[ 0 ];\n\n\t}\n\n\tset texture( value ) {\n\n\t\tthis.textures[ 0 ] = value;\n\n\t}\n\n\tsetSize( width, height, depth = 1 ) {\n\n\t\tif ( this.width !== width || this.height !== height || this.depth !== depth ) {\n\n\t\t\tthis.width = width;\n\t\t\tthis.height = height;\n\t\t\tthis.depth = depth;\n\n\t\t\tfor ( let i = 0, il = this.textures.length; i < il; i ++ ) {\n\n\t\t\t\tthis.textures[ i ].image.width = width;\n\t\t\t\tthis.textures[ i ].image.height = height;\n\t\t\t\tthis.textures[ i ].image.depth = depth;\n\n\t\t\t}\n\n\t\t\tthis.dispose();\n\n\t\t}\n\n\t\tthis.viewport.set( 0, 0, width, height );\n\t\tthis.scissor.set( 0, 0, width, height );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.width = source.width;\n\t\tthis.height = source.height;\n\t\tthis.depth = source.depth;\n\n\t\tthis.scissor.copy( source.scissor );\n\t\tthis.scissorTest = source.scissorTest;\n\n\t\tthis.viewport.copy( source.viewport );\n\n\t\tthis.textures.length = 0;\n\n\t\tfor ( let i = 0, il = source.textures.length; i < il; i ++ ) {\n\n\t\t\tthis.textures[ i ] = source.textures[ i ].clone();\n\t\t\tthis.textures[ i ].isRenderTargetTexture = true;\n\n\t\t}\n\n\t\t// ensure image object is not shared, see #20328\n\n\t\tconst image = Object.assign( {}, source.texture.image );\n\t\tthis.texture.source = new Source( image );\n\n\t\tthis.depthBuffer = source.depthBuffer;\n\t\tthis.stencilBuffer = source.stencilBuffer;\n\n\t\tthis.resolveDepthBuffer = source.resolveDepthBuffer;\n\t\tthis.resolveStencilBuffer = source.resolveStencilBuffer;\n\n\t\tif ( source.depthTexture !== null ) this.depthTexture = source.depthTexture.clone();\n\n\t\tthis.samples = source.samples;\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n}\n\nclass WebGLRenderTarget extends RenderTarget {\n\n\tconstructor( width = 1, height = 1, options = {} ) {\n\n\t\tsuper( width, height, options );\n\n\t\tthis.isWebGLRenderTarget = true;\n\n\t}\n\n}\n\nclass DataArrayTexture extends Texture {\n\n\tconstructor( data = null, width = 1, height = 1, depth = 1 ) {\n\n\t\tsuper( null );\n\n\t\tthis.isDataArrayTexture = true;\n\n\t\tthis.image = { data, width, height, depth };\n\n\t\tthis.magFilter = NearestFilter;\n\t\tthis.minFilter = NearestFilter;\n\n\t\tthis.wrapR = ClampToEdgeWrapping;\n\n\t\tthis.generateMipmaps = false;\n\t\tthis.flipY = false;\n\t\tthis.unpackAlignment = 1;\n\n\t\tthis.layerUpdates = new Set();\n\n\t}\n\n\taddLayerUpdate( layerIndex ) {\n\n\t\tthis.layerUpdates.add( layerIndex );\n\n\t}\n\n\tclearLayerUpdates() {\n\n\t\tthis.layerUpdates.clear();\n\n\t}\n\n}\n\nclass WebGLArrayRenderTarget extends WebGLRenderTarget {\n\n\tconstructor( width = 1, height = 1, depth = 1, options = {} ) {\n\n\t\tsuper( width, height, options );\n\n\t\tthis.isWebGLArrayRenderTarget = true;\n\n\t\tthis.depth = depth;\n\n\t\tthis.texture = new DataArrayTexture( null, width, height, depth );\n\n\t\tthis.texture.isRenderTargetTexture = true;\n\n\t}\n\n}\n\nclass Data3DTexture extends Texture {\n\n\tconstructor( data = null, width = 1, height = 1, depth = 1 ) {\n\n\t\t// We're going to add .setXXX() methods for setting properties later.\n\t\t// Users can still set in DataTexture3D directly.\n\t\t//\n\t\t//\tconst texture = new THREE.DataTexture3D( data, width, height, depth );\n\t\t// \ttexture.anisotropy = 16;\n\t\t//\n\t\t// See #14839\n\n\t\tsuper( null );\n\n\t\tthis.isData3DTexture = true;\n\n\t\tthis.image = { data, width, height, depth };\n\n\t\tthis.magFilter = NearestFilter;\n\t\tthis.minFilter = NearestFilter;\n\n\t\tthis.wrapR = ClampToEdgeWrapping;\n\n\t\tthis.generateMipmaps = false;\n\t\tthis.flipY = false;\n\t\tthis.unpackAlignment = 1;\n\n\t}\n\n}\n\nclass WebGL3DRenderTarget extends WebGLRenderTarget {\n\n\tconstructor( width = 1, height = 1, depth = 1, options = {} ) {\n\n\t\tsuper( width, height, options );\n\n\t\tthis.isWebGL3DRenderTarget = true;\n\n\t\tthis.depth = depth;\n\n\t\tthis.texture = new Data3DTexture( null, width, height, depth );\n\n\t\tthis.texture.isRenderTargetTexture = true;\n\n\t}\n\n}\n\nclass Quaternion {\n\n\tconstructor( x = 0, y = 0, z = 0, w = 1 ) {\n\n\t\tthis.isQuaternion = true;\n\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tthis._z = z;\n\t\tthis._w = w;\n\n\t}\n\n\tstatic slerpFlat( dst, dstOffset, src0, srcOffset0, src1, srcOffset1, t ) {\n\n\t\t// fuzz-free, array-based Quaternion SLERP operation\n\n\t\tlet x0 = src0[ srcOffset0 + 0 ],\n\t\t\ty0 = src0[ srcOffset0 + 1 ],\n\t\t\tz0 = src0[ srcOffset0 + 2 ],\n\t\t\tw0 = src0[ srcOffset0 + 3 ];\n\n\t\tconst x1 = src1[ srcOffset1 + 0 ],\n\t\t\ty1 = src1[ srcOffset1 + 1 ],\n\t\t\tz1 = src1[ srcOffset1 + 2 ],\n\t\t\tw1 = src1[ srcOffset1 + 3 ];\n\n\t\tif ( t === 0 ) {\n\n\t\t\tdst[ dstOffset + 0 ] = x0;\n\t\t\tdst[ dstOffset + 1 ] = y0;\n\t\t\tdst[ dstOffset + 2 ] = z0;\n\t\t\tdst[ dstOffset + 3 ] = w0;\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( t === 1 ) {\n\n\t\t\tdst[ dstOffset + 0 ] = x1;\n\t\t\tdst[ dstOffset + 1 ] = y1;\n\t\t\tdst[ dstOffset + 2 ] = z1;\n\t\t\tdst[ dstOffset + 3 ] = w1;\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( w0 !== w1 || x0 !== x1 || y0 !== y1 || z0 !== z1 ) {\n\n\t\t\tlet s = 1 - t;\n\t\t\tconst cos = x0 * x1 + y0 * y1 + z0 * z1 + w0 * w1,\n\t\t\t\tdir = ( cos >= 0 ? 1 : - 1 ),\n\t\t\t\tsqrSin = 1 - cos * cos;\n\n\t\t\t// Skip the Slerp for tiny steps to avoid numeric problems:\n\t\t\tif ( sqrSin > Number.EPSILON ) {\n\n\t\t\t\tconst sin = Math.sqrt( sqrSin ),\n\t\t\t\t\tlen = Math.atan2( sin, cos * dir );\n\n\t\t\t\ts = Math.sin( s * len ) / sin;\n\t\t\t\tt = Math.sin( t * len ) / sin;\n\n\t\t\t}\n\n\t\t\tconst tDir = t * dir;\n\n\t\t\tx0 = x0 * s + x1 * tDir;\n\t\t\ty0 = y0 * s + y1 * tDir;\n\t\t\tz0 = z0 * s + z1 * tDir;\n\t\t\tw0 = w0 * s + w1 * tDir;\n\n\t\t\t// Normalize in case we just did a lerp:\n\t\t\tif ( s === 1 - t ) {\n\n\t\t\t\tconst f = 1 / Math.sqrt( x0 * x0 + y0 * y0 + z0 * z0 + w0 * w0 );\n\n\t\t\t\tx0 *= f;\n\t\t\t\ty0 *= f;\n\t\t\t\tz0 *= f;\n\t\t\t\tw0 *= f;\n\n\t\t\t}\n\n\t\t}\n\n\t\tdst[ dstOffset ] = x0;\n\t\tdst[ dstOffset + 1 ] = y0;\n\t\tdst[ dstOffset + 2 ] = z0;\n\t\tdst[ dstOffset + 3 ] = w0;\n\n\t}\n\n\tstatic multiplyQuaternionsFlat( dst, dstOffset, src0, srcOffset0, src1, srcOffset1 ) {\n\n\t\tconst x0 = src0[ srcOffset0 ];\n\t\tconst y0 = src0[ srcOffset0 + 1 ];\n\t\tconst z0 = src0[ srcOffset0 + 2 ];\n\t\tconst w0 = src0[ srcOffset0 + 3 ];\n\n\t\tconst x1 = src1[ srcOffset1 ];\n\t\tconst y1 = src1[ srcOffset1 + 1 ];\n\t\tconst z1 = src1[ srcOffset1 + 2 ];\n\t\tconst w1 = src1[ srcOffset1 + 3 ];\n\n\t\tdst[ dstOffset ] = x0 * w1 + w0 * x1 + y0 * z1 - z0 * y1;\n\t\tdst[ dstOffset + 1 ] = y0 * w1 + w0 * y1 + z0 * x1 - x0 * z1;\n\t\tdst[ dstOffset + 2 ] = z0 * w1 + w0 * z1 + x0 * y1 - y0 * x1;\n\t\tdst[ dstOffset + 3 ] = w0 * w1 - x0 * x1 - y0 * y1 - z0 * z1;\n\n\t\treturn dst;\n\n\t}\n\n\tget x() {\n\n\t\treturn this._x;\n\n\t}\n\n\tset x( value ) {\n\n\t\tthis._x = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget y() {\n\n\t\treturn this._y;\n\n\t}\n\n\tset y( value ) {\n\n\t\tthis._y = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget z() {\n\n\t\treturn this._z;\n\n\t}\n\n\tset z( value ) {\n\n\t\tthis._z = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget w() {\n\n\t\treturn this._w;\n\n\t}\n\n\tset w( value ) {\n\n\t\tthis._w = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tset( x, y, z, w ) {\n\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tthis._z = z;\n\t\tthis._w = w;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this._x, this._y, this._z, this._w );\n\n\t}\n\n\tcopy( quaternion ) {\n\n\t\tthis._x = quaternion.x;\n\t\tthis._y = quaternion.y;\n\t\tthis._z = quaternion.z;\n\t\tthis._w = quaternion.w;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromEuler( euler, update = true ) {\n\n\t\tconst x = euler._x, y = euler._y, z = euler._z, order = euler._order;\n\n\t\t// http://www.mathworks.com/matlabcentral/fileexchange/\n\t\t// \t20696-function-to-convert-between-dcm-euler-angles-quaternions-and-euler-vectors/\n\t\t//\tcontent/SpinCalc.m\n\n\t\tconst cos = Math.cos;\n\t\tconst sin = Math.sin;\n\n\t\tconst c1 = cos( x / 2 );\n\t\tconst c2 = cos( y / 2 );\n\t\tconst c3 = cos( z / 2 );\n\n\t\tconst s1 = sin( x / 2 );\n\t\tconst s2 = sin( y / 2 );\n\t\tconst s3 = sin( z / 2 );\n\n\t\tswitch ( order ) {\n\n\t\t\tcase 'XYZ':\n\t\t\t\tthis._x = s1 * c2 * c3 + c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 - s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 + s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 - s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'YXZ':\n\t\t\t\tthis._x = s1 * c2 * c3 + c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 - s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 - s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 + s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'ZXY':\n\t\t\t\tthis._x = s1 * c2 * c3 - c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 + s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 + s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 - s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'ZYX':\n\t\t\t\tthis._x = s1 * c2 * c3 - c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 + s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 - s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 + s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'YZX':\n\t\t\t\tthis._x = s1 * c2 * c3 + c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 + s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 - s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 - s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'XZY':\n\t\t\t\tthis._x = s1 * c2 * c3 - c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 - s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 + s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 + s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tconsole.warn( 'THREE.Quaternion: .setFromEuler() encountered an unknown order: ' + order );\n\n\t\t}\n\n\t\tif ( update === true ) this._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromAxisAngle( axis, angle ) {\n\n\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/angleToQuaternion/index.htm\n\n\t\t// assumes axis is normalized\n\n\t\tconst halfAngle = angle / 2, s = Math.sin( halfAngle );\n\n\t\tthis._x = axis.x * s;\n\t\tthis._y = axis.y * s;\n\t\tthis._z = axis.z * s;\n\t\tthis._w = Math.cos( halfAngle );\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromRotationMatrix( m ) {\n\n\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/index.htm\n\n\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n\t\tconst te = m.elements,\n\n\t\t\tm11 = te[ 0 ], m12 = te[ 4 ], m13 = te[ 8 ],\n\t\t\tm21 = te[ 1 ], m22 = te[ 5 ], m23 = te[ 9 ],\n\t\t\tm31 = te[ 2 ], m32 = te[ 6 ], m33 = te[ 10 ],\n\n\t\t\ttrace = m11 + m22 + m33;\n\n\t\tif ( trace > 0 ) {\n\n\t\t\tconst s = 0.5 / Math.sqrt( trace + 1.0 );\n\n\t\t\tthis._w = 0.25 / s;\n\t\t\tthis._x = ( m32 - m23 ) * s;\n\t\t\tthis._y = ( m13 - m31 ) * s;\n\t\t\tthis._z = ( m21 - m12 ) * s;\n\n\t\t} else if ( m11 > m22 && m11 > m33 ) {\n\n\t\t\tconst s = 2.0 * Math.sqrt( 1.0 + m11 - m22 - m33 );\n\n\t\t\tthis._w = ( m32 - m23 ) / s;\n\t\t\tthis._x = 0.25 * s;\n\t\t\tthis._y = ( m12 + m21 ) / s;\n\t\t\tthis._z = ( m13 + m31 ) / s;\n\n\t\t} else if ( m22 > m33 ) {\n\n\t\t\tconst s = 2.0 * Math.sqrt( 1.0 + m22 - m11 - m33 );\n\n\t\t\tthis._w = ( m13 - m31 ) / s;\n\t\t\tthis._x = ( m12 + m21 ) / s;\n\t\t\tthis._y = 0.25 * s;\n\t\t\tthis._z = ( m23 + m32 ) / s;\n\n\t\t} else {\n\n\t\t\tconst s = 2.0 * Math.sqrt( 1.0 + m33 - m11 - m22 );\n\n\t\t\tthis._w = ( m21 - m12 ) / s;\n\t\t\tthis._x = ( m13 + m31 ) / s;\n\t\t\tthis._y = ( m23 + m32 ) / s;\n\t\t\tthis._z = 0.25 * s;\n\n\t\t}\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromUnitVectors( vFrom, vTo ) {\n\n\t\t// assumes direction vectors vFrom and vTo are normalized\n\n\t\tlet r = vFrom.dot( vTo ) + 1;\n\n\t\tif ( r < Number.EPSILON ) {\n\n\t\t\t// vFrom and vTo point in opposite directions\n\n\t\t\tr = 0;\n\n\t\t\tif ( Math.abs( vFrom.x ) > Math.abs( vFrom.z ) ) {\n\n\t\t\t\tthis._x = - vFrom.y;\n\t\t\t\tthis._y = vFrom.x;\n\t\t\t\tthis._z = 0;\n\t\t\t\tthis._w = r;\n\n\t\t\t} else {\n\n\t\t\t\tthis._x = 0;\n\t\t\t\tthis._y = - vFrom.z;\n\t\t\t\tthis._z = vFrom.y;\n\t\t\t\tthis._w = r;\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// crossVectors( vFrom, vTo ); // inlined to avoid cyclic dependency on Vector3\n\n\t\t\tthis._x = vFrom.y * vTo.z - vFrom.z * vTo.y;\n\t\t\tthis._y = vFrom.z * vTo.x - vFrom.x * vTo.z;\n\t\t\tthis._z = vFrom.x * vTo.y - vFrom.y * vTo.x;\n\t\t\tthis._w = r;\n\n\t\t}\n\n\t\treturn this.normalize();\n\n\t}\n\n\tangleTo( q ) {\n\n\t\treturn 2 * Math.acos( Math.abs( clamp( this.dot( q ), - 1, 1 ) ) );\n\n\t}\n\n\trotateTowards( q, step ) {\n\n\t\tconst angle = this.angleTo( q );\n\n\t\tif ( angle === 0 ) return this;\n\n\t\tconst t = Math.min( 1, step / angle );\n\n\t\tthis.slerp( q, t );\n\n\t\treturn this;\n\n\t}\n\n\tidentity() {\n\n\t\treturn this.set( 0, 0, 0, 1 );\n\n\t}\n\n\tinvert() {\n\n\t\t// quaternion is assumed to have unit length\n\n\t\treturn this.conjugate();\n\n\t}\n\n\tconjugate() {\n\n\t\tthis._x *= - 1;\n\t\tthis._y *= - 1;\n\t\tthis._z *= - 1;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tdot( v ) {\n\n\t\treturn this._x * v._x + this._y * v._y + this._z * v._z + this._w * v._w;\n\n\t}\n\n\tlengthSq() {\n\n\t\treturn this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w;\n\n\t}\n\n\tlength() {\n\n\t\treturn Math.sqrt( this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w );\n\n\t}\n\n\tnormalize() {\n\n\t\tlet l = this.length();\n\n\t\tif ( l === 0 ) {\n\n\t\t\tthis._x = 0;\n\t\t\tthis._y = 0;\n\t\t\tthis._z = 0;\n\t\t\tthis._w = 1;\n\n\t\t} else {\n\n\t\t\tl = 1 / l;\n\n\t\t\tthis._x = this._x * l;\n\t\t\tthis._y = this._y * l;\n\t\t\tthis._z = this._z * l;\n\t\t\tthis._w = this._w * l;\n\n\t\t}\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( q ) {\n\n\t\treturn this.multiplyQuaternions( this, q );\n\n\t}\n\n\tpremultiply( q ) {\n\n\t\treturn this.multiplyQuaternions( q, this );\n\n\t}\n\n\tmultiplyQuaternions( a, b ) {\n\n\t\t// from http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/code/index.htm\n\n\t\tconst qax = a._x, qay = a._y, qaz = a._z, qaw = a._w;\n\t\tconst qbx = b._x, qby = b._y, qbz = b._z, qbw = b._w;\n\n\t\tthis._x = qax * qbw + qaw * qbx + qay * qbz - qaz * qby;\n\t\tthis._y = qay * qbw + qaw * qby + qaz * qbx - qax * qbz;\n\t\tthis._z = qaz * qbw + qaw * qbz + qax * qby - qay * qbx;\n\t\tthis._w = qaw * qbw - qax * qbx - qay * qby - qaz * qbz;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tslerp( qb, t ) {\n\n\t\tif ( t === 0 ) return this;\n\t\tif ( t === 1 ) return this.copy( qb );\n\n\t\tconst x = this._x, y = this._y, z = this._z, w = this._w;\n\n\t\t// http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/slerp/\n\n\t\tlet cosHalfTheta = w * qb._w + x * qb._x + y * qb._y + z * qb._z;\n\n\t\tif ( cosHalfTheta < 0 ) {\n\n\t\t\tthis._w = - qb._w;\n\t\t\tthis._x = - qb._x;\n\t\t\tthis._y = - qb._y;\n\t\t\tthis._z = - qb._z;\n\n\t\t\tcosHalfTheta = - cosHalfTheta;\n\n\t\t} else {\n\n\t\t\tthis.copy( qb );\n\n\t\t}\n\n\t\tif ( cosHalfTheta >= 1.0 ) {\n\n\t\t\tthis._w = w;\n\t\t\tthis._x = x;\n\t\t\tthis._y = y;\n\t\t\tthis._z = z;\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tconst sqrSinHalfTheta = 1.0 - cosHalfTheta * cosHalfTheta;\n\n\t\tif ( sqrSinHalfTheta <= Number.EPSILON ) {\n\n\t\t\tconst s = 1 - t;\n\t\t\tthis._w = s * w + t * this._w;\n\t\t\tthis._x = s * x + t * this._x;\n\t\t\tthis._y = s * y + t * this._y;\n\t\t\tthis._z = s * z + t * this._z;\n\n\t\t\tthis.normalize(); // normalize calls _onChangeCallback()\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tconst sinHalfTheta = Math.sqrt( sqrSinHalfTheta );\n\t\tconst halfTheta = Math.atan2( sinHalfTheta, cosHalfTheta );\n\t\tconst ratioA = Math.sin( ( 1 - t ) * halfTheta ) / sinHalfTheta,\n\t\t\tratioB = Math.sin( t * halfTheta ) / sinHalfTheta;\n\n\t\tthis._w = ( w * ratioA + this._w * ratioB );\n\t\tthis._x = ( x * ratioA + this._x * ratioB );\n\t\tthis._y = ( y * ratioA + this._y * ratioB );\n\t\tthis._z = ( z * ratioA + this._z * ratioB );\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tslerpQuaternions( qa, qb, t ) {\n\n\t\treturn this.copy( qa ).slerp( qb, t );\n\n\t}\n\n\trandom() {\n\n\t\t// sets this quaternion to a uniform random unit quaternnion\n\n\t\t// Ken Shoemake\n\t\t// Uniform random rotations\n\t\t// D. Kirk, editor, Graphics Gems III, pages 124-132. Academic Press, New York, 1992.\n\n\t\tconst theta1 = 2 * Math.PI * Math.random();\n\t\tconst theta2 = 2 * Math.PI * Math.random();\n\n\t\tconst x0 = Math.random();\n\t\tconst r1 = Math.sqrt( 1 - x0 );\n\t\tconst r2 = Math.sqrt( x0 );\n\n\t\treturn this.set(\n\t\t\tr1 * Math.sin( theta1 ),\n\t\t\tr1 * Math.cos( theta1 ),\n\t\t\tr2 * Math.sin( theta2 ),\n\t\t\tr2 * Math.cos( theta2 ),\n\t\t);\n\n\t}\n\n\tequals( quaternion ) {\n\n\t\treturn ( quaternion._x === this._x ) && ( quaternion._y === this._y ) && ( quaternion._z === this._z ) && ( quaternion._w === this._w );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis._x = array[ offset ];\n\t\tthis._y = array[ offset + 1 ];\n\t\tthis._z = array[ offset + 2 ];\n\t\tthis._w = array[ offset + 3 ];\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this._x;\n\t\tarray[ offset + 1 ] = this._y;\n\t\tarray[ offset + 2 ] = this._z;\n\t\tarray[ offset + 3 ] = this._w;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index ) {\n\n\t\tthis._x = attribute.getX( index );\n\t\tthis._y = attribute.getY( index );\n\t\tthis._z = attribute.getZ( index );\n\t\tthis._w = attribute.getW( index );\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\treturn this.toArray();\n\n\t}\n\n\t_onChange( callback ) {\n\n\t\tthis._onChangeCallback = callback;\n\n\t\treturn this;\n\n\t}\n\n\t_onChangeCallback() {}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this._x;\n\t\tyield this._y;\n\t\tyield this._z;\n\t\tyield this._w;\n\n\t}\n\n}\n\nclass Vector3 {\n\n\tconstructor( x = 0, y = 0, z = 0 ) {\n\n\t\tVector3.prototype.isVector3 = true;\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\n\n\t}\n\n\tset( x, y, z ) {\n\n\t\tif ( z === undefined ) z = this.z; // sprite.scale.set(x,y)\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetScalar( scalar ) {\n\n\t\tthis.x = scalar;\n\t\tthis.y = scalar;\n\t\tthis.z = scalar;\n\n\t\treturn this;\n\n\t}\n\n\tsetX( x ) {\n\n\t\tthis.x = x;\n\n\t\treturn this;\n\n\t}\n\n\tsetY( y ) {\n\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetZ( z ) {\n\n\t\tthis.z = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetComponent( index, value ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: this.x = value; break;\n\t\t\tcase 1: this.y = value; break;\n\t\t\tcase 2: this.z = value; break;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetComponent( index ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: return this.x;\n\t\t\tcase 1: return this.y;\n\t\t\tcase 2: return this.z;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.x, this.y, this.z );\n\n\t}\n\n\tcopy( v ) {\n\n\t\tthis.x = v.x;\n\t\tthis.y = v.y;\n\t\tthis.z = v.z;\n\n\t\treturn this;\n\n\t}\n\n\tadd( v ) {\n\n\t\tthis.x += v.x;\n\t\tthis.y += v.y;\n\t\tthis.z += v.z;\n\n\t\treturn this;\n\n\t}\n\n\taddScalar( s ) {\n\n\t\tthis.x += s;\n\t\tthis.y += s;\n\t\tthis.z += s;\n\n\t\treturn this;\n\n\t}\n\n\taddVectors( a, b ) {\n\n\t\tthis.x = a.x + b.x;\n\t\tthis.y = a.y + b.y;\n\t\tthis.z = a.z + b.z;\n\n\t\treturn this;\n\n\t}\n\n\taddScaledVector( v, s ) {\n\n\t\tthis.x += v.x * s;\n\t\tthis.y += v.y * s;\n\t\tthis.z += v.z * s;\n\n\t\treturn this;\n\n\t}\n\n\tsub( v ) {\n\n\t\tthis.x -= v.x;\n\t\tthis.y -= v.y;\n\t\tthis.z -= v.z;\n\n\t\treturn this;\n\n\t}\n\n\tsubScalar( s ) {\n\n\t\tthis.x -= s;\n\t\tthis.y -= s;\n\t\tthis.z -= s;\n\n\t\treturn this;\n\n\t}\n\n\tsubVectors( a, b ) {\n\n\t\tthis.x = a.x - b.x;\n\t\tthis.y = a.y - b.y;\n\t\tthis.z = a.z - b.z;\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( v ) {\n\n\t\tthis.x *= v.x;\n\t\tthis.y *= v.y;\n\t\tthis.z *= v.z;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( scalar ) {\n\n\t\tthis.x *= scalar;\n\t\tthis.y *= scalar;\n\t\tthis.z *= scalar;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyVectors( a, b ) {\n\n\t\tthis.x = a.x * b.x;\n\t\tthis.y = a.y * b.y;\n\t\tthis.z = a.z * b.z;\n\n\t\treturn this;\n\n\t}\n\n\tapplyEuler( euler ) {\n\n\t\treturn this.applyQuaternion( _quaternion$4.setFromEuler( euler ) );\n\n\t}\n\n\tapplyAxisAngle( axis, angle ) {\n\n\t\treturn this.applyQuaternion( _quaternion$4.setFromAxisAngle( axis, angle ) );\n\n\t}\n\n\tapplyMatrix3( m ) {\n\n\t\tconst x = this.x, y = this.y, z = this.z;\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 0 ] * x + e[ 3 ] * y + e[ 6 ] * z;\n\t\tthis.y = e[ 1 ] * x + e[ 4 ] * y + e[ 7 ] * z;\n\t\tthis.z = e[ 2 ] * x + e[ 5 ] * y + e[ 8 ] * z;\n\n\t\treturn this;\n\n\t}\n\n\tapplyNormalMatrix( m ) {\n\n\t\treturn this.applyMatrix3( m ).normalize();\n\n\t}\n\n\tapplyMatrix4( m ) {\n\n\t\tconst x = this.x, y = this.y, z = this.z;\n\t\tconst e = m.elements;\n\n\t\tconst w = 1 / ( e[ 3 ] * x + e[ 7 ] * y + e[ 11 ] * z + e[ 15 ] );\n\n\t\tthis.x = ( e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z + e[ 12 ] ) * w;\n\t\tthis.y = ( e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z + e[ 13 ] ) * w;\n\t\tthis.z = ( e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z + e[ 14 ] ) * w;\n\n\t\treturn this;\n\n\t}\n\n\tapplyQuaternion( q ) {\n\n\t\t// quaternion q is assumed to have unit length\n\n\t\tconst vx = this.x, vy = this.y, vz = this.z;\n\t\tconst qx = q.x, qy = q.y, qz = q.z, qw = q.w;\n\n\t\t// t = 2 * cross( q.xyz, v );\n\t\tconst tx = 2 * ( qy * vz - qz * vy );\n\t\tconst ty = 2 * ( qz * vx - qx * vz );\n\t\tconst tz = 2 * ( qx * vy - qy * vx );\n\n\t\t// v + q.w * t + cross( q.xyz, t );\n\t\tthis.x = vx + qw * tx + qy * tz - qz * ty;\n\t\tthis.y = vy + qw * ty + qz * tx - qx * tz;\n\t\tthis.z = vz + qw * tz + qx * ty - qy * tx;\n\n\t\treturn this;\n\n\t}\n\n\tproject( camera ) {\n\n\t\treturn this.applyMatrix4( camera.matrixWorldInverse ).applyMatrix4( camera.projectionMatrix );\n\n\t}\n\n\tunproject( camera ) {\n\n\t\treturn this.applyMatrix4( camera.projectionMatrixInverse ).applyMatrix4( camera.matrixWorld );\n\n\t}\n\n\ttransformDirection( m ) {\n\n\t\t// input: THREE.Matrix4 affine matrix\n\t\t// vector interpreted as a direction\n\n\t\tconst x = this.x, y = this.y, z = this.z;\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z;\n\t\tthis.y = e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z;\n\t\tthis.z = e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z;\n\n\t\treturn this.normalize();\n\n\t}\n\n\tdivide( v ) {\n\n\t\tthis.x /= v.x;\n\t\tthis.y /= v.y;\n\t\tthis.z /= v.z;\n\n\t\treturn this;\n\n\t}\n\n\tdivideScalar( scalar ) {\n\n\t\treturn this.multiplyScalar( 1 / scalar );\n\n\t}\n\n\tmin( v ) {\n\n\t\tthis.x = Math.min( this.x, v.x );\n\t\tthis.y = Math.min( this.y, v.y );\n\t\tthis.z = Math.min( this.z, v.z );\n\n\t\treturn this;\n\n\t}\n\n\tmax( v ) {\n\n\t\tthis.x = Math.max( this.x, v.x );\n\t\tthis.y = Math.max( this.y, v.y );\n\t\tthis.z = Math.max( this.z, v.z );\n\n\t\treturn this;\n\n\t}\n\n\tclamp( min, max ) {\n\n\t\t// assumes min < max, componentwise\n\n\t\tthis.x = Math.max( min.x, Math.min( max.x, this.x ) );\n\t\tthis.y = Math.max( min.y, Math.min( max.y, this.y ) );\n\t\tthis.z = Math.max( min.z, Math.min( max.z, this.z ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampScalar( minVal, maxVal ) {\n\n\t\tthis.x = Math.max( minVal, Math.min( maxVal, this.x ) );\n\t\tthis.y = Math.max( minVal, Math.min( maxVal, this.y ) );\n\t\tthis.z = Math.max( minVal, Math.min( maxVal, this.z ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampLength( min, max ) {\n\n\t\tconst length = this.length();\n\n\t\treturn this.divideScalar( length || 1 ).multiplyScalar( Math.max( min, Math.min( max, length ) ) );\n\n\t}\n\n\tfloor() {\n\n\t\tthis.x = Math.floor( this.x );\n\t\tthis.y = Math.floor( this.y );\n\t\tthis.z = Math.floor( this.z );\n\n\t\treturn this;\n\n\t}\n\n\tceil() {\n\n\t\tthis.x = Math.ceil( this.x );\n\t\tthis.y = Math.ceil( this.y );\n\t\tthis.z = Math.ceil( this.z );\n\n\t\treturn this;\n\n\t}\n\n\tround() {\n\n\t\tthis.x = Math.round( this.x );\n\t\tthis.y = Math.round( this.y );\n\t\tthis.z = Math.round( this.z );\n\n\t\treturn this;\n\n\t}\n\n\troundToZero() {\n\n\t\tthis.x = Math.trunc( this.x );\n\t\tthis.y = Math.trunc( this.y );\n\t\tthis.z = Math.trunc( this.z );\n\n\t\treturn this;\n\n\t}\n\n\tnegate() {\n\n\t\tthis.x = - this.x;\n\t\tthis.y = - this.y;\n\t\tthis.z = - this.z;\n\n\t\treturn this;\n\n\t}\n\n\tdot( v ) {\n\n\t\treturn this.x * v.x + this.y * v.y + this.z * v.z;\n\n\t}\n\n\t// TODO lengthSquared?\n\n\tlengthSq() {\n\n\t\treturn this.x * this.x + this.y * this.y + this.z * this.z;\n\n\t}\n\n\tlength() {\n\n\t\treturn Math.sqrt( this.x * this.x + this.y * this.y + this.z * this.z );\n\n\t}\n\n\tmanhattanLength() {\n\n\t\treturn Math.abs( this.x ) + Math.abs( this.y ) + Math.abs( this.z );\n\n\t}\n\n\tnormalize() {\n\n\t\treturn this.divideScalar( this.length() || 1 );\n\n\t}\n\n\tsetLength( length ) {\n\n\t\treturn this.normalize().multiplyScalar( length );\n\n\t}\n\n\tlerp( v, alpha ) {\n\n\t\tthis.x += ( v.x - this.x ) * alpha;\n\t\tthis.y += ( v.y - this.y ) * alpha;\n\t\tthis.z += ( v.z - this.z ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpVectors( v1, v2, alpha ) {\n\n\t\tthis.x = v1.x + ( v2.x - v1.x ) * alpha;\n\t\tthis.y = v1.y + ( v2.y - v1.y ) * alpha;\n\t\tthis.z = v1.z + ( v2.z - v1.z ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tcross( v ) {\n\n\t\treturn this.crossVectors( this, v );\n\n\t}\n\n\tcrossVectors( a, b ) {\n\n\t\tconst ax = a.x, ay = a.y, az = a.z;\n\t\tconst bx = b.x, by = b.y, bz = b.z;\n\n\t\tthis.x = ay * bz - az * by;\n\t\tthis.y = az * bx - ax * bz;\n\t\tthis.z = ax * by - ay * bx;\n\n\t\treturn this;\n\n\t}\n\n\tprojectOnVector( v ) {\n\n\t\tconst denominator = v.lengthSq();\n\n\t\tif ( denominator === 0 ) return this.set( 0, 0, 0 );\n\n\t\tconst scalar = v.dot( this ) / denominator;\n\n\t\treturn this.copy( v ).multiplyScalar( scalar );\n\n\t}\n\n\tprojectOnPlane( planeNormal ) {\n\n\t\t_vector$c.copy( this ).projectOnVector( planeNormal );\n\n\t\treturn this.sub( _vector$c );\n\n\t}\n\n\treflect( normal ) {\n\n\t\t// reflect incident vector off plane orthogonal to normal\n\t\t// normal is assumed to have unit length\n\n\t\treturn this.sub( _vector$c.copy( normal ).multiplyScalar( 2 * this.dot( normal ) ) );\n\n\t}\n\n\tangleTo( v ) {\n\n\t\tconst denominator = Math.sqrt( this.lengthSq() * v.lengthSq() );\n\n\t\tif ( denominator === 0 ) return Math.PI / 2;\n\n\t\tconst theta = this.dot( v ) / denominator;\n\n\t\t// clamp, to handle numerical problems\n\n\t\treturn Math.acos( clamp( theta, - 1, 1 ) );\n\n\t}\n\n\tdistanceTo( v ) {\n\n\t\treturn Math.sqrt( this.distanceToSquared( v ) );\n\n\t}\n\n\tdistanceToSquared( v ) {\n\n\t\tconst dx = this.x - v.x, dy = this.y - v.y, dz = this.z - v.z;\n\n\t\treturn dx * dx + dy * dy + dz * dz;\n\n\t}\n\n\tmanhattanDistanceTo( v ) {\n\n\t\treturn Math.abs( this.x - v.x ) + Math.abs( this.y - v.y ) + Math.abs( this.z - v.z );\n\n\t}\n\n\tsetFromSpherical( s ) {\n\n\t\treturn this.setFromSphericalCoords( s.radius, s.phi, s.theta );\n\n\t}\n\n\tsetFromSphericalCoords( radius, phi, theta ) {\n\n\t\tconst sinPhiRadius = Math.sin( phi ) * radius;\n\n\t\tthis.x = sinPhiRadius * Math.sin( theta );\n\t\tthis.y = Math.cos( phi ) * radius;\n\t\tthis.z = sinPhiRadius * Math.cos( theta );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromCylindrical( c ) {\n\n\t\treturn this.setFromCylindricalCoords( c.radius, c.theta, c.y );\n\n\t}\n\n\tsetFromCylindricalCoords( radius, theta, y ) {\n\n\t\tthis.x = radius * Math.sin( theta );\n\t\tthis.y = y;\n\t\tthis.z = radius * Math.cos( theta );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrixPosition( m ) {\n\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 12 ];\n\t\tthis.y = e[ 13 ];\n\t\tthis.z = e[ 14 ];\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrixScale( m ) {\n\n\t\tconst sx = this.setFromMatrixColumn( m, 0 ).length();\n\t\tconst sy = this.setFromMatrixColumn( m, 1 ).length();\n\t\tconst sz = this.setFromMatrixColumn( m, 2 ).length();\n\n\t\tthis.x = sx;\n\t\tthis.y = sy;\n\t\tthis.z = sz;\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrixColumn( m, index ) {\n\n\t\treturn this.fromArray( m.elements, index * 4 );\n\n\t}\n\n\tsetFromMatrix3Column( m, index ) {\n\n\t\treturn this.fromArray( m.elements, index * 3 );\n\n\t}\n\n\tsetFromEuler( e ) {\n\n\t\tthis.x = e._x;\n\t\tthis.y = e._y;\n\t\tthis.z = e._z;\n\n\t\treturn this;\n\n\t}\n\n\tsetFromColor( c ) {\n\n\t\tthis.x = c.r;\n\t\tthis.y = c.g;\n\t\tthis.z = c.b;\n\n\t\treturn this;\n\n\t}\n\n\tequals( v ) {\n\n\t\treturn ( ( v.x === this.x ) && ( v.y === this.y ) && ( v.z === this.z ) );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis.x = array[ offset ];\n\t\tthis.y = array[ offset + 1 ];\n\t\tthis.z = array[ offset + 2 ];\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this.x;\n\t\tarray[ offset + 1 ] = this.y;\n\t\tarray[ offset + 2 ] = this.z;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index ) {\n\n\t\tthis.x = attribute.getX( index );\n\t\tthis.y = attribute.getY( index );\n\t\tthis.z = attribute.getZ( index );\n\n\t\treturn this;\n\n\t}\n\n\trandom() {\n\n\t\tthis.x = Math.random();\n\t\tthis.y = Math.random();\n\t\tthis.z = Math.random();\n\n\t\treturn this;\n\n\t}\n\n\trandomDirection() {\n\n\t\t// https://mathworld.wolfram.com/SpherePointPicking.html\n\n\t\tconst theta = Math.random() * Math.PI * 2;\n\t\tconst u = Math.random() * 2 - 1;\n\t\tconst c = Math.sqrt( 1 - u * u );\n\n\t\tthis.x = c * Math.cos( theta );\n\t\tthis.y = u;\n\t\tthis.z = c * Math.sin( theta );\n\n\t\treturn this;\n\n\t}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this.x;\n\t\tyield this.y;\n\t\tyield this.z;\n\n\t}\n\n}\n\nconst _vector$c = /*@__PURE__*/ new Vector3();\nconst _quaternion$4 = /*@__PURE__*/ new Quaternion();\n\nclass Box3 {\n\n\tconstructor( min = new Vector3( + Infinity, + Infinity, + Infinity ), max = new Vector3( - Infinity, - Infinity, - Infinity ) ) {\n\n\t\tthis.isBox3 = true;\n\n\t\tthis.min = min;\n\t\tthis.max = max;\n\n\t}\n\n\tset( min, max ) {\n\n\t\tthis.min.copy( min );\n\t\tthis.max.copy( max );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromArray( array ) {\n\n\t\tthis.makeEmpty();\n\n\t\tfor ( let i = 0, il = array.length; i < il; i += 3 ) {\n\n\t\t\tthis.expandByPoint( _vector$b.fromArray( array, i ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetFromBufferAttribute( attribute ) {\n\n\t\tthis.makeEmpty();\n\n\t\tfor ( let i = 0, il = attribute.count; i < il; i ++ ) {\n\n\t\t\tthis.expandByPoint( _vector$b.fromBufferAttribute( attribute, i ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetFromPoints( points ) {\n\n\t\tthis.makeEmpty();\n\n\t\tfor ( let i = 0, il = points.length; i < il; i ++ ) {\n\n\t\t\tthis.expandByPoint( points[ i ] );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetFromCenterAndSize( center, size ) {\n\n\t\tconst halfSize = _vector$b.copy( size ).multiplyScalar( 0.5 );\n\n\t\tthis.min.copy( center ).sub( halfSize );\n\t\tthis.max.copy( center ).add( halfSize );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromObject( object, precise = false ) {\n\n\t\tthis.makeEmpty();\n\n\t\treturn this.expandByObject( object, precise );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( box ) {\n\n\t\tthis.min.copy( box.min );\n\t\tthis.max.copy( box.max );\n\n\t\treturn this;\n\n\t}\n\n\tmakeEmpty() {\n\n\t\tthis.min.x = this.min.y = this.min.z = + Infinity;\n\t\tthis.max.x = this.max.y = this.max.z = - Infinity;\n\n\t\treturn this;\n\n\t}\n\n\tisEmpty() {\n\n\t\t// this is a more robust check for empty than ( volume <= 0 ) because volume can get positive with two negative axes\n\n\t\treturn ( this.max.x < this.min.x ) || ( this.max.y < this.min.y ) || ( this.max.z < this.min.z );\n\n\t}\n\n\tgetCenter( target ) {\n\n\t\treturn this.isEmpty() ? target.set( 0, 0, 0 ) : target.addVectors( this.min, this.max ).multiplyScalar( 0.5 );\n\n\t}\n\n\tgetSize( target ) {\n\n\t\treturn this.isEmpty() ? target.set( 0, 0, 0 ) : target.subVectors( this.max, this.min );\n\n\t}\n\n\texpandByPoint( point ) {\n\n\t\tthis.min.min( point );\n\t\tthis.max.max( point );\n\n\t\treturn this;\n\n\t}\n\n\texpandByVector( vector ) {\n\n\t\tthis.min.sub( vector );\n\t\tthis.max.add( vector );\n\n\t\treturn this;\n\n\t}\n\n\texpandByScalar( scalar ) {\n\n\t\tthis.min.addScalar( - scalar );\n\t\tthis.max.addScalar( scalar );\n\n\t\treturn this;\n\n\t}\n\n\texpandByObject( object, precise = false ) {\n\n\t\t// Computes the world-axis-aligned bounding box of an object (including its children),\n\t\t// accounting for both the object's, and children's, world transforms\n\n\t\tobject.updateWorldMatrix( false, false );\n\n\t\tconst geometry = object.geometry;\n\n\t\tif ( geometry !== undefined ) {\n\n\t\t\tconst positionAttribute = geometry.getAttribute( 'position' );\n\n\t\t\t// precise AABB computation based on vertex data requires at least a position attribute.\n\t\t\t// instancing isn't supported so far and uses the normal (conservative) code path.\n\n\t\t\tif ( precise === true && positionAttribute !== undefined && object.isInstancedMesh !== true ) {\n\n\t\t\t\tfor ( let i = 0, l = positionAttribute.count; i < l; i ++ ) {\n\n\t\t\t\t\tif ( object.isMesh === true ) {\n\n\t\t\t\t\t\tobject.getVertexPosition( i, _vector$b );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t_vector$b.fromBufferAttribute( positionAttribute, i );\n\n\t\t\t\t\t}\n\n\t\t\t\t\t_vector$b.applyMatrix4( object.matrixWorld );\n\t\t\t\t\tthis.expandByPoint( _vector$b );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tif ( object.boundingBox !== undefined ) {\n\n\t\t\t\t\t// object-level bounding box\n\n\t\t\t\t\tif ( object.boundingBox === null ) {\n\n\t\t\t\t\t\tobject.computeBoundingBox();\n\n\t\t\t\t\t}\n\n\t\t\t\t\t_box$4.copy( object.boundingBox );\n\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// geometry-level bounding box\n\n\t\t\t\t\tif ( geometry.boundingBox === null ) {\n\n\t\t\t\t\t\tgeometry.computeBoundingBox();\n\n\t\t\t\t\t}\n\n\t\t\t\t\t_box$4.copy( geometry.boundingBox );\n\n\t\t\t\t}\n\n\t\t\t\t_box$4.applyMatrix4( object.matrixWorld );\n\n\t\t\t\tthis.union( _box$4 );\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst children = object.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tthis.expandByObject( children[ i ], precise );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\treturn point.x >= this.min.x && point.x <= this.max.x &&\n\t\t\tpoint.y >= this.min.y && point.y <= this.max.y &&\n\t\t\tpoint.z >= this.min.z && point.z <= this.max.z;\n\n\t}\n\n\tcontainsBox( box ) {\n\n\t\treturn this.min.x <= box.min.x && box.max.x <= this.max.x &&\n\t\t\tthis.min.y <= box.min.y && box.max.y <= this.max.y &&\n\t\t\tthis.min.z <= box.min.z && box.max.z <= this.max.z;\n\n\t}\n\n\tgetParameter( point, target ) {\n\n\t\t// This can potentially have a divide by zero if the box\n\t\t// has a size dimension of 0.\n\n\t\treturn target.set(\n\t\t\t( point.x - this.min.x ) / ( this.max.x - this.min.x ),\n\t\t\t( point.y - this.min.y ) / ( this.max.y - this.min.y ),\n\t\t\t( point.z - this.min.z ) / ( this.max.z - this.min.z )\n\t\t);\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\t// using 6 splitting planes to rule out intersections.\n\t\treturn box.max.x >= this.min.x && box.min.x <= this.max.x &&\n\t\t\tbox.max.y >= this.min.y && box.min.y <= this.max.y &&\n\t\t\tbox.max.z >= this.min.z && box.min.z <= this.max.z;\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\t// Find the point on the AABB closest to the sphere center.\n\t\tthis.clampPoint( sphere.center, _vector$b );\n\n\t\t// If that point is inside the sphere, the AABB and sphere intersect.\n\t\treturn _vector$b.distanceToSquared( sphere.center ) <= ( sphere.radius * sphere.radius );\n\n\t}\n\n\tintersectsPlane( plane ) {\n\n\t\t// We compute the minimum and maximum dot product values. If those values\n\t\t// are on the same side (back or front) of the plane, then there is no intersection.\n\n\t\tlet min, max;\n\n\t\tif ( plane.normal.x > 0 ) {\n\n\t\t\tmin = plane.normal.x * this.min.x;\n\t\t\tmax = plane.normal.x * this.max.x;\n\n\t\t} else {\n\n\t\t\tmin = plane.normal.x * this.max.x;\n\t\t\tmax = plane.normal.x * this.min.x;\n\n\t\t}\n\n\t\tif ( plane.normal.y > 0 ) {\n\n\t\t\tmin += plane.normal.y * this.min.y;\n\t\t\tmax += plane.normal.y * this.max.y;\n\n\t\t} else {\n\n\t\t\tmin += plane.normal.y * this.max.y;\n\t\t\tmax += plane.normal.y * this.min.y;\n\n\t\t}\n\n\t\tif ( plane.normal.z > 0 ) {\n\n\t\t\tmin += plane.normal.z * this.min.z;\n\t\t\tmax += plane.normal.z * this.max.z;\n\n\t\t} else {\n\n\t\t\tmin += plane.normal.z * this.max.z;\n\t\t\tmax += plane.normal.z * this.min.z;\n\n\t\t}\n\n\t\treturn ( min <= - plane.constant && max >= - plane.constant );\n\n\t}\n\n\tintersectsTriangle( triangle ) {\n\n\t\tif ( this.isEmpty() ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\t// compute box center and extents\n\t\tthis.getCenter( _center );\n\t\t_extents.subVectors( this.max, _center );\n\n\t\t// translate triangle to aabb origin\n\t\t_v0$3.subVectors( triangle.a, _center );\n\t\t_v1$7.subVectors( triangle.b, _center );\n\t\t_v2$4.subVectors( triangle.c, _center );\n\n\t\t// compute edge vectors for triangle\n\t\t_f0.subVectors( _v1$7, _v0$3 );\n\t\t_f1.subVectors( _v2$4, _v1$7 );\n\t\t_f2.subVectors( _v0$3, _v2$4 );\n\n\t\t// test against axes that are given by cross product combinations of the edges of the triangle and the edges of the aabb\n\t\t// make an axis testing of each of the 3 sides of the aabb against each of the 3 sides of the triangle = 9 axis of separation\n\t\t// axis_ij = u_i x f_j (u0, u1, u2 = face normals of aabb = x,y,z axes vectors since aabb is axis aligned)\n\t\tlet axes = [\n\t\t\t0, - _f0.z, _f0.y, 0, - _f1.z, _f1.y, 0, - _f2.z, _f2.y,\n\t\t\t_f0.z, 0, - _f0.x, _f1.z, 0, - _f1.x, _f2.z, 0, - _f2.x,\n\t\t\t- _f0.y, _f0.x, 0, - _f1.y, _f1.x, 0, - _f2.y, _f2.x, 0\n\t\t];\n\t\tif ( ! satForAxes( axes, _v0$3, _v1$7, _v2$4, _extents ) ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\t// test 3 face normals from the aabb\n\t\taxes = [ 1, 0, 0, 0, 1, 0, 0, 0, 1 ];\n\t\tif ( ! satForAxes( axes, _v0$3, _v1$7, _v2$4, _extents ) ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\t// finally testing the face normal of the triangle\n\t\t// use already existing triangle edge vectors here\n\t\t_triangleNormal.crossVectors( _f0, _f1 );\n\t\taxes = [ _triangleNormal.x, _triangleNormal.y, _triangleNormal.z ];\n\n\t\treturn satForAxes( axes, _v0$3, _v1$7, _v2$4, _extents );\n\n\t}\n\n\tclampPoint( point, target ) {\n\n\t\treturn target.copy( point ).clamp( this.min, this.max );\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\treturn this.clampPoint( point, _vector$b ).distanceTo( point );\n\n\t}\n\n\tgetBoundingSphere( target ) {\n\n\t\tif ( this.isEmpty() ) {\n\n\t\t\ttarget.makeEmpty();\n\n\t\t} else {\n\n\t\t\tthis.getCenter( target.center );\n\n\t\t\ttarget.radius = this.getSize( _vector$b ).length() * 0.5;\n\n\t\t}\n\n\t\treturn target;\n\n\t}\n\n\tintersect( box ) {\n\n\t\tthis.min.max( box.min );\n\t\tthis.max.min( box.max );\n\n\t\t// ensure that if there is no overlap, the result is fully empty, not slightly empty with non-inf/+inf values that will cause subsequence intersects to erroneously return valid values.\n\t\tif ( this.isEmpty() ) this.makeEmpty();\n\n\t\treturn this;\n\n\t}\n\n\tunion( box ) {\n\n\t\tthis.min.min( box.min );\n\t\tthis.max.max( box.max );\n\n\t\treturn this;\n\n\t}\n\n\tapplyMatrix4( matrix ) {\n\n\t\t// transform of empty box is an empty box.\n\t\tif ( this.isEmpty() ) return this;\n\n\t\t// NOTE: I am using a binary pattern to specify all 2^3 combinations below\n\t\t_points[ 0 ].set( this.min.x, this.min.y, this.min.z ).applyMatrix4( matrix ); // 000\n\t\t_points[ 1 ].set( this.min.x, this.min.y, this.max.z ).applyMatrix4( matrix ); // 001\n\t\t_points[ 2 ].set( this.min.x, this.max.y, this.min.z ).applyMatrix4( matrix ); // 010\n\t\t_points[ 3 ].set( this.min.x, this.max.y, this.max.z ).applyMatrix4( matrix ); // 011\n\t\t_points[ 4 ].set( this.max.x, this.min.y, this.min.z ).applyMatrix4( matrix ); // 100\n\t\t_points[ 5 ].set( this.max.x, this.min.y, this.max.z ).applyMatrix4( matrix ); // 101\n\t\t_points[ 6 ].set( this.max.x, this.max.y, this.min.z ).applyMatrix4( matrix ); // 110\n\t\t_points[ 7 ].set( this.max.x, this.max.y, this.max.z ).applyMatrix4( matrix ); // 111\n\n\t\tthis.setFromPoints( _points );\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( offset ) {\n\n\t\tthis.min.add( offset );\n\t\tthis.max.add( offset );\n\n\t\treturn this;\n\n\t}\n\n\tequals( box ) {\n\n\t\treturn box.min.equals( this.min ) && box.max.equals( this.max );\n\n\t}\n\n}\n\nconst _points = [\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3()\n];\n\nconst _vector$b = /*@__PURE__*/ new Vector3();\n\nconst _box$4 = /*@__PURE__*/ new Box3();\n\n// triangle centered vertices\n\nconst _v0$3 = /*@__PURE__*/ new Vector3();\nconst _v1$7 = /*@__PURE__*/ new Vector3();\nconst _v2$4 = /*@__PURE__*/ new Vector3();\n\n// triangle edge vectors\n\nconst _f0 = /*@__PURE__*/ new Vector3();\nconst _f1 = /*@__PURE__*/ new Vector3();\nconst _f2 = /*@__PURE__*/ new Vector3();\n\nconst _center = /*@__PURE__*/ new Vector3();\nconst _extents = /*@__PURE__*/ new Vector3();\nconst _triangleNormal = /*@__PURE__*/ new Vector3();\nconst _testAxis = /*@__PURE__*/ new Vector3();\n\nfunction satForAxes( axes, v0, v1, v2, extents ) {\n\n\tfor ( let i = 0, j = axes.length - 3; i <= j; i += 3 ) {\n\n\t\t_testAxis.fromArray( axes, i );\n\t\t// project the aabb onto the separating axis\n\t\tconst r = extents.x * Math.abs( _testAxis.x ) + extents.y * Math.abs( _testAxis.y ) + extents.z * Math.abs( _testAxis.z );\n\t\t// project all 3 vertices of the triangle onto the separating axis\n\t\tconst p0 = v0.dot( _testAxis );\n\t\tconst p1 = v1.dot( _testAxis );\n\t\tconst p2 = v2.dot( _testAxis );\n\t\t// actual test, basically see if either of the most extreme of the triangle points intersects r\n\t\tif ( Math.max( - Math.max( p0, p1, p2 ), Math.min( p0, p1, p2 ) ) > r ) {\n\n\t\t\t// points of the projected triangle are outside the projected half-length of the aabb\n\t\t\t// the axis is separating and we can exit\n\t\t\treturn false;\n\n\t\t}\n\n\t}\n\n\treturn true;\n\n}\n\nconst _box$3 = /*@__PURE__*/ new Box3();\nconst _v1$6 = /*@__PURE__*/ new Vector3();\nconst _v2$3 = /*@__PURE__*/ new Vector3();\n\nclass Sphere {\n\n\tconstructor( center = new Vector3(), radius = - 1 ) {\n\n\t\tthis.isSphere = true;\n\n\t\tthis.center = center;\n\t\tthis.radius = radius;\n\n\t}\n\n\tset( center, radius ) {\n\n\t\tthis.center.copy( center );\n\t\tthis.radius = radius;\n\n\t\treturn this;\n\n\t}\n\n\tsetFromPoints( points, optionalCenter ) {\n\n\t\tconst center = this.center;\n\n\t\tif ( optionalCenter !== undefined ) {\n\n\t\t\tcenter.copy( optionalCenter );\n\n\t\t} else {\n\n\t\t\t_box$3.setFromPoints( points ).getCenter( center );\n\n\t\t}\n\n\t\tlet maxRadiusSq = 0;\n\n\t\tfor ( let i = 0, il = points.length; i < il; i ++ ) {\n\n\t\t\tmaxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( points[ i ] ) );\n\n\t\t}\n\n\t\tthis.radius = Math.sqrt( maxRadiusSq );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( sphere ) {\n\n\t\tthis.center.copy( sphere.center );\n\t\tthis.radius = sphere.radius;\n\n\t\treturn this;\n\n\t}\n\n\tisEmpty() {\n\n\t\treturn ( this.radius < 0 );\n\n\t}\n\n\tmakeEmpty() {\n\n\t\tthis.center.set( 0, 0, 0 );\n\t\tthis.radius = - 1;\n\n\t\treturn this;\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\treturn ( point.distanceToSquared( this.center ) <= ( this.radius * this.radius ) );\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\treturn ( point.distanceTo( this.center ) - this.radius );\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\tconst radiusSum = this.radius + sphere.radius;\n\n\t\treturn sphere.center.distanceToSquared( this.center ) <= ( radiusSum * radiusSum );\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\treturn box.intersectsSphere( this );\n\n\t}\n\n\tintersectsPlane( plane ) {\n\n\t\treturn Math.abs( plane.distanceToPoint( this.center ) ) <= this.radius;\n\n\t}\n\n\tclampPoint( point, target ) {\n\n\t\tconst deltaLengthSq = this.center.distanceToSquared( point );\n\n\t\ttarget.copy( point );\n\n\t\tif ( deltaLengthSq > ( this.radius * this.radius ) ) {\n\n\t\t\ttarget.sub( this.center ).normalize();\n\t\t\ttarget.multiplyScalar( this.radius ).add( this.center );\n\n\t\t}\n\n\t\treturn target;\n\n\t}\n\n\tgetBoundingBox( target ) {\n\n\t\tif ( this.isEmpty() ) {\n\n\t\t\t// Empty sphere produces empty bounding box\n\t\t\ttarget.makeEmpty();\n\t\t\treturn target;\n\n\t\t}\n\n\t\ttarget.set( this.center, this.center );\n\t\ttarget.expandByScalar( this.radius );\n\n\t\treturn target;\n\n\t}\n\n\tapplyMatrix4( matrix ) {\n\n\t\tthis.center.applyMatrix4( matrix );\n\t\tthis.radius = this.radius * matrix.getMaxScaleOnAxis();\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( offset ) {\n\n\t\tthis.center.add( offset );\n\n\t\treturn this;\n\n\t}\n\n\texpandByPoint( point ) {\n\n\t\tif ( this.isEmpty() ) {\n\n\t\t\tthis.center.copy( point );\n\n\t\t\tthis.radius = 0;\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\t_v1$6.subVectors( point, this.center );\n\n\t\tconst lengthSq = _v1$6.lengthSq();\n\n\t\tif ( lengthSq > ( this.radius * this.radius ) ) {\n\n\t\t\t// calculate the minimal sphere\n\n\t\t\tconst length = Math.sqrt( lengthSq );\n\n\t\t\tconst delta = ( length - this.radius ) * 0.5;\n\n\t\t\tthis.center.addScaledVector( _v1$6, delta / length );\n\n\t\t\tthis.radius += delta;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tunion( sphere ) {\n\n\t\tif ( sphere.isEmpty() ) {\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tif ( this.isEmpty() ) {\n\n\t\t\tthis.copy( sphere );\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tif ( this.center.equals( sphere.center ) === true ) {\n\n\t\t\t this.radius = Math.max( this.radius, sphere.radius );\n\n\t\t} else {\n\n\t\t\t_v2$3.subVectors( sphere.center, this.center ).setLength( sphere.radius );\n\n\t\t\tthis.expandByPoint( _v1$6.copy( sphere.center ).add( _v2$3 ) );\n\n\t\t\tthis.expandByPoint( _v1$6.copy( sphere.center ).sub( _v2$3 ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tequals( sphere ) {\n\n\t\treturn sphere.center.equals( this.center ) && ( sphere.radius === this.radius );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nconst _vector$a = /*@__PURE__*/ new Vector3();\nconst _segCenter = /*@__PURE__*/ new Vector3();\nconst _segDir = /*@__PURE__*/ new Vector3();\nconst _diff = /*@__PURE__*/ new Vector3();\n\nconst _edge1 = /*@__PURE__*/ new Vector3();\nconst _edge2 = /*@__PURE__*/ new Vector3();\nconst _normal$1 = /*@__PURE__*/ new Vector3();\n\nclass Ray {\n\n\tconstructor( origin = new Vector3(), direction = new Vector3( 0, 0, - 1 ) ) {\n\n\t\tthis.origin = origin;\n\t\tthis.direction = direction;\n\n\t}\n\n\tset( origin, direction ) {\n\n\t\tthis.origin.copy( origin );\n\t\tthis.direction.copy( direction );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( ray ) {\n\n\t\tthis.origin.copy( ray.origin );\n\t\tthis.direction.copy( ray.direction );\n\n\t\treturn this;\n\n\t}\n\n\tat( t, target ) {\n\n\t\treturn target.copy( this.origin ).addScaledVector( this.direction, t );\n\n\t}\n\n\tlookAt( v ) {\n\n\t\tthis.direction.copy( v ).sub( this.origin ).normalize();\n\n\t\treturn this;\n\n\t}\n\n\trecast( t ) {\n\n\t\tthis.origin.copy( this.at( t, _vector$a ) );\n\n\t\treturn this;\n\n\t}\n\n\tclosestPointToPoint( point, target ) {\n\n\t\ttarget.subVectors( point, this.origin );\n\n\t\tconst directionDistance = target.dot( this.direction );\n\n\t\tif ( directionDistance < 0 ) {\n\n\t\t\treturn target.copy( this.origin );\n\n\t\t}\n\n\t\treturn target.copy( this.origin ).addScaledVector( this.direction, directionDistance );\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\treturn Math.sqrt( this.distanceSqToPoint( point ) );\n\n\t}\n\n\tdistanceSqToPoint( point ) {\n\n\t\tconst directionDistance = _vector$a.subVectors( point, this.origin ).dot( this.direction );\n\n\t\t// point behind the ray\n\n\t\tif ( directionDistance < 0 ) {\n\n\t\t\treturn this.origin.distanceToSquared( point );\n\n\t\t}\n\n\t\t_vector$a.copy( this.origin ).addScaledVector( this.direction, directionDistance );\n\n\t\treturn _vector$a.distanceToSquared( point );\n\n\t}\n\n\tdistanceSqToSegment( v0, v1, optionalPointOnRay, optionalPointOnSegment ) {\n\n\t\t// from https://github.com/pmjoniak/GeometricTools/blob/master/GTEngine/Include/Mathematics/GteDistRaySegment.h\n\t\t// It returns the min distance between the ray and the segment\n\t\t// defined by v0 and v1\n\t\t// It can also set two optional targets :\n\t\t// - The closest point on the ray\n\t\t// - The closest point on the segment\n\n\t\t_segCenter.copy( v0 ).add( v1 ).multiplyScalar( 0.5 );\n\t\t_segDir.copy( v1 ).sub( v0 ).normalize();\n\t\t_diff.copy( this.origin ).sub( _segCenter );\n\n\t\tconst segExtent = v0.distanceTo( v1 ) * 0.5;\n\t\tconst a01 = - this.direction.dot( _segDir );\n\t\tconst b0 = _diff.dot( this.direction );\n\t\tconst b1 = - _diff.dot( _segDir );\n\t\tconst c = _diff.lengthSq();\n\t\tconst det = Math.abs( 1 - a01 * a01 );\n\t\tlet s0, s1, sqrDist, extDet;\n\n\t\tif ( det > 0 ) {\n\n\t\t\t// The ray and segment are not parallel.\n\n\t\t\ts0 = a01 * b1 - b0;\n\t\t\ts1 = a01 * b0 - b1;\n\t\t\textDet = segExtent * det;\n\n\t\t\tif ( s0 >= 0 ) {\n\n\t\t\t\tif ( s1 >= - extDet ) {\n\n\t\t\t\t\tif ( s1 <= extDet ) {\n\n\t\t\t\t\t\t// region 0\n\t\t\t\t\t\t// Minimum at interior points of ray and segment.\n\n\t\t\t\t\t\tconst invDet = 1 / det;\n\t\t\t\t\t\ts0 *= invDet;\n\t\t\t\t\t\ts1 *= invDet;\n\t\t\t\t\t\tsqrDist = s0 * ( s0 + a01 * s1 + 2 * b0 ) + s1 * ( a01 * s0 + s1 + 2 * b1 ) + c;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// region 1\n\n\t\t\t\t\t\ts1 = segExtent;\n\t\t\t\t\t\ts0 = Math.max( 0, - ( a01 * s1 + b0 ) );\n\t\t\t\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// region 5\n\n\t\t\t\t\ts1 = - segExtent;\n\t\t\t\t\ts0 = Math.max( 0, - ( a01 * s1 + b0 ) );\n\t\t\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tif ( s1 <= - extDet ) {\n\n\t\t\t\t\t// region 4\n\n\t\t\t\t\ts0 = Math.max( 0, - ( - a01 * segExtent + b0 ) );\n\t\t\t\t\ts1 = ( s0 > 0 ) ? - segExtent : Math.min( Math.max( - segExtent, - b1 ), segExtent );\n\t\t\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t} else if ( s1 <= extDet ) {\n\n\t\t\t\t\t// region 3\n\n\t\t\t\t\ts0 = 0;\n\t\t\t\t\ts1 = Math.min( Math.max( - segExtent, - b1 ), segExtent );\n\t\t\t\t\tsqrDist = s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// region 2\n\n\t\t\t\t\ts0 = Math.max( 0, - ( a01 * segExtent + b0 ) );\n\t\t\t\t\ts1 = ( s0 > 0 ) ? segExtent : Math.min( Math.max( - segExtent, - b1 ), segExtent );\n\t\t\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// Ray and segment are parallel.\n\n\t\t\ts1 = ( a01 > 0 ) ? - segExtent : segExtent;\n\t\t\ts0 = Math.max( 0, - ( a01 * s1 + b0 ) );\n\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t}\n\n\t\tif ( optionalPointOnRay ) {\n\n\t\t\toptionalPointOnRay.copy( this.origin ).addScaledVector( this.direction, s0 );\n\n\t\t}\n\n\t\tif ( optionalPointOnSegment ) {\n\n\t\t\toptionalPointOnSegment.copy( _segCenter ).addScaledVector( _segDir, s1 );\n\n\t\t}\n\n\t\treturn sqrDist;\n\n\t}\n\n\tintersectSphere( sphere, target ) {\n\n\t\t_vector$a.subVectors( sphere.center, this.origin );\n\t\tconst tca = _vector$a.dot( this.direction );\n\t\tconst d2 = _vector$a.dot( _vector$a ) - tca * tca;\n\t\tconst radius2 = sphere.radius * sphere.radius;\n\n\t\tif ( d2 > radius2 ) return null;\n\n\t\tconst thc = Math.sqrt( radius2 - d2 );\n\n\t\t// t0 = first intersect point - entrance on front of sphere\n\t\tconst t0 = tca - thc;\n\n\t\t// t1 = second intersect point - exit point on back of sphere\n\t\tconst t1 = tca + thc;\n\n\t\t// test to see if t1 is behind the ray - if so, return null\n\t\tif ( t1 < 0 ) return null;\n\n\t\t// test to see if t0 is behind the ray:\n\t\t// if it is, the ray is inside the sphere, so return the second exit point scaled by t1,\n\t\t// in order to always return an intersect point that is in front of the ray.\n\t\tif ( t0 < 0 ) return this.at( t1, target );\n\n\t\t// else t0 is in front of the ray, so return the first collision point scaled by t0\n\t\treturn this.at( t0, target );\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\treturn this.distanceSqToPoint( sphere.center ) <= ( sphere.radius * sphere.radius );\n\n\t}\n\n\tdistanceToPlane( plane ) {\n\n\t\tconst denominator = plane.normal.dot( this.direction );\n\n\t\tif ( denominator === 0 ) {\n\n\t\t\t// line is coplanar, return origin\n\t\t\tif ( plane.distanceToPoint( this.origin ) === 0 ) {\n\n\t\t\t\treturn 0;\n\n\t\t\t}\n\n\t\t\t// Null is preferable to undefined since undefined means.... it is undefined\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst t = - ( this.origin.dot( plane.normal ) + plane.constant ) / denominator;\n\n\t\t// Return if the ray never intersects the plane\n\n\t\treturn t >= 0 ? t : null;\n\n\t}\n\n\tintersectPlane( plane, target ) {\n\n\t\tconst t = this.distanceToPlane( plane );\n\n\t\tif ( t === null ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\treturn this.at( t, target );\n\n\t}\n\n\tintersectsPlane( plane ) {\n\n\t\t// check if the ray lies on the plane first\n\n\t\tconst distToPoint = plane.distanceToPoint( this.origin );\n\n\t\tif ( distToPoint === 0 ) {\n\n\t\t\treturn true;\n\n\t\t}\n\n\t\tconst denominator = plane.normal.dot( this.direction );\n\n\t\tif ( denominator * distToPoint < 0 ) {\n\n\t\t\treturn true;\n\n\t\t}\n\n\t\t// ray origin is behind the plane (and is pointing behind it)\n\n\t\treturn false;\n\n\t}\n\n\tintersectBox( box, target ) {\n\n\t\tlet tmin, tmax, tymin, tymax, tzmin, tzmax;\n\n\t\tconst invdirx = 1 / this.direction.x,\n\t\t\tinvdiry = 1 / this.direction.y,\n\t\t\tinvdirz = 1 / this.direction.z;\n\n\t\tconst origin = this.origin;\n\n\t\tif ( invdirx >= 0 ) {\n\n\t\t\ttmin = ( box.min.x - origin.x ) * invdirx;\n\t\t\ttmax = ( box.max.x - origin.x ) * invdirx;\n\n\t\t} else {\n\n\t\t\ttmin = ( box.max.x - origin.x ) * invdirx;\n\t\t\ttmax = ( box.min.x - origin.x ) * invdirx;\n\n\t\t}\n\n\t\tif ( invdiry >= 0 ) {\n\n\t\t\ttymin = ( box.min.y - origin.y ) * invdiry;\n\t\t\ttymax = ( box.max.y - origin.y ) * invdiry;\n\n\t\t} else {\n\n\t\t\ttymin = ( box.max.y - origin.y ) * invdiry;\n\t\t\ttymax = ( box.min.y - origin.y ) * invdiry;\n\n\t\t}\n\n\t\tif ( ( tmin > tymax ) || ( tymin > tmax ) ) return null;\n\n\t\tif ( tymin > tmin || isNaN( tmin ) ) tmin = tymin;\n\n\t\tif ( tymax < tmax || isNaN( tmax ) ) tmax = tymax;\n\n\t\tif ( invdirz >= 0 ) {\n\n\t\t\ttzmin = ( box.min.z - origin.z ) * invdirz;\n\t\t\ttzmax = ( box.max.z - origin.z ) * invdirz;\n\n\t\t} else {\n\n\t\t\ttzmin = ( box.max.z - origin.z ) * invdirz;\n\t\t\ttzmax = ( box.min.z - origin.z ) * invdirz;\n\n\t\t}\n\n\t\tif ( ( tmin > tzmax ) || ( tzmin > tmax ) ) return null;\n\n\t\tif ( tzmin > tmin || tmin !== tmin ) tmin = tzmin;\n\n\t\tif ( tzmax < tmax || tmax !== tmax ) tmax = tzmax;\n\n\t\t//return point closest to the ray (positive side)\n\n\t\tif ( tmax < 0 ) return null;\n\n\t\treturn this.at( tmin >= 0 ? tmin : tmax, target );\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\treturn this.intersectBox( box, _vector$a ) !== null;\n\n\t}\n\n\tintersectTriangle( a, b, c, backfaceCulling, target ) {\n\n\t\t// Compute the offset origin, edges, and normal.\n\n\t\t// from https://github.com/pmjoniak/GeometricTools/blob/master/GTEngine/Include/Mathematics/GteIntrRay3Triangle3.h\n\n\t\t_edge1.subVectors( b, a );\n\t\t_edge2.subVectors( c, a );\n\t\t_normal$1.crossVectors( _edge1, _edge2 );\n\n\t\t// Solve Q + t*D = b1*E1 + b2*E2 (Q = kDiff, D = ray direction,\n\t\t// E1 = kEdge1, E2 = kEdge2, N = Cross(E1,E2)) by\n\t\t// |Dot(D,N)|*b1 = sign(Dot(D,N))*Dot(D,Cross(Q,E2))\n\t\t// |Dot(D,N)|*b2 = sign(Dot(D,N))*Dot(D,Cross(E1,Q))\n\t\t// |Dot(D,N)|*t = -sign(Dot(D,N))*Dot(Q,N)\n\t\tlet DdN = this.direction.dot( _normal$1 );\n\t\tlet sign;\n\n\t\tif ( DdN > 0 ) {\n\n\t\t\tif ( backfaceCulling ) return null;\n\t\t\tsign = 1;\n\n\t\t} else if ( DdN < 0 ) {\n\n\t\t\tsign = - 1;\n\t\t\tDdN = - DdN;\n\n\t\t} else {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t_diff.subVectors( this.origin, a );\n\t\tconst DdQxE2 = sign * this.direction.dot( _edge2.crossVectors( _diff, _edge2 ) );\n\n\t\t// b1 < 0, no intersection\n\t\tif ( DdQxE2 < 0 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst DdE1xQ = sign * this.direction.dot( _edge1.cross( _diff ) );\n\n\t\t// b2 < 0, no intersection\n\t\tif ( DdE1xQ < 0 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t// b1+b2 > 1, no intersection\n\t\tif ( DdQxE2 + DdE1xQ > DdN ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t// Line intersects triangle, check if ray does.\n\t\tconst QdN = - sign * _diff.dot( _normal$1 );\n\n\t\t// t < 0, no intersection\n\t\tif ( QdN < 0 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t// Ray intersects triangle.\n\t\treturn this.at( QdN / DdN, target );\n\n\t}\n\n\tapplyMatrix4( matrix4 ) {\n\n\t\tthis.origin.applyMatrix4( matrix4 );\n\t\tthis.direction.transformDirection( matrix4 );\n\n\t\treturn this;\n\n\t}\n\n\tequals( ray ) {\n\n\t\treturn ray.origin.equals( this.origin ) && ray.direction.equals( this.direction );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nclass Matrix4 {\n\n\tconstructor( n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44 ) {\n\n\t\tMatrix4.prototype.isMatrix4 = true;\n\n\t\tthis.elements = [\n\n\t\t\t1, 0, 0, 0,\n\t\t\t0, 1, 0, 0,\n\t\t\t0, 0, 1, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t];\n\n\t\tif ( n11 !== undefined ) {\n\n\t\t\tthis.set( n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44 );\n\n\t\t}\n\n\t}\n\n\tset( n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44 ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] = n11; te[ 4 ] = n12; te[ 8 ] = n13; te[ 12 ] = n14;\n\t\tte[ 1 ] = n21; te[ 5 ] = n22; te[ 9 ] = n23; te[ 13 ] = n24;\n\t\tte[ 2 ] = n31; te[ 6 ] = n32; te[ 10 ] = n33; te[ 14 ] = n34;\n\t\tte[ 3 ] = n41; te[ 7 ] = n42; te[ 11 ] = n43; te[ 15 ] = n44;\n\n\t\treturn this;\n\n\t}\n\n\tidentity() {\n\n\t\tthis.set(\n\n\t\t\t1, 0, 0, 0,\n\t\t\t0, 1, 0, 0,\n\t\t\t0, 0, 1, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new Matrix4().fromArray( this.elements );\n\n\t}\n\n\tcopy( m ) {\n\n\t\tconst te = this.elements;\n\t\tconst me = m.elements;\n\n\t\tte[ 0 ] = me[ 0 ]; te[ 1 ] = me[ 1 ]; te[ 2 ] = me[ 2 ]; te[ 3 ] = me[ 3 ];\n\t\tte[ 4 ] = me[ 4 ]; te[ 5 ] = me[ 5 ]; te[ 6 ] = me[ 6 ]; te[ 7 ] = me[ 7 ];\n\t\tte[ 8 ] = me[ 8 ]; te[ 9 ] = me[ 9 ]; te[ 10 ] = me[ 10 ]; te[ 11 ] = me[ 11 ];\n\t\tte[ 12 ] = me[ 12 ]; te[ 13 ] = me[ 13 ]; te[ 14 ] = me[ 14 ]; te[ 15 ] = me[ 15 ];\n\n\t\treturn this;\n\n\t}\n\n\tcopyPosition( m ) {\n\n\t\tconst te = this.elements, me = m.elements;\n\n\t\tte[ 12 ] = me[ 12 ];\n\t\tte[ 13 ] = me[ 13 ];\n\t\tte[ 14 ] = me[ 14 ];\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrix3( m ) {\n\n\t\tconst me = m.elements;\n\n\t\tthis.set(\n\n\t\t\tme[ 0 ], me[ 3 ], me[ 6 ], 0,\n\t\t\tme[ 1 ], me[ 4 ], me[ 7 ], 0,\n\t\t\tme[ 2 ], me[ 5 ], me[ 8 ], 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\textractBasis( xAxis, yAxis, zAxis ) {\n\n\t\txAxis.setFromMatrixColumn( this, 0 );\n\t\tyAxis.setFromMatrixColumn( this, 1 );\n\t\tzAxis.setFromMatrixColumn( this, 2 );\n\n\t\treturn this;\n\n\t}\n\n\tmakeBasis( xAxis, yAxis, zAxis ) {\n\n\t\tthis.set(\n\t\t\txAxis.x, yAxis.x, zAxis.x, 0,\n\t\t\txAxis.y, yAxis.y, zAxis.y, 0,\n\t\t\txAxis.z, yAxis.z, zAxis.z, 0,\n\t\t\t0, 0, 0, 1\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\textractRotation( m ) {\n\n\t\t// this method does not support reflection matrices\n\n\t\tconst te = this.elements;\n\t\tconst me = m.elements;\n\n\t\tconst scaleX = 1 / _v1$5.setFromMatrixColumn( m, 0 ).length();\n\t\tconst scaleY = 1 / _v1$5.setFromMatrixColumn( m, 1 ).length();\n\t\tconst scaleZ = 1 / _v1$5.setFromMatrixColumn( m, 2 ).length();\n\n\t\tte[ 0 ] = me[ 0 ] * scaleX;\n\t\tte[ 1 ] = me[ 1 ] * scaleX;\n\t\tte[ 2 ] = me[ 2 ] * scaleX;\n\t\tte[ 3 ] = 0;\n\n\t\tte[ 4 ] = me[ 4 ] * scaleY;\n\t\tte[ 5 ] = me[ 5 ] * scaleY;\n\t\tte[ 6 ] = me[ 6 ] * scaleY;\n\t\tte[ 7 ] = 0;\n\n\t\tte[ 8 ] = me[ 8 ] * scaleZ;\n\t\tte[ 9 ] = me[ 9 ] * scaleZ;\n\t\tte[ 10 ] = me[ 10 ] * scaleZ;\n\t\tte[ 11 ] = 0;\n\n\t\tte[ 12 ] = 0;\n\t\tte[ 13 ] = 0;\n\t\tte[ 14 ] = 0;\n\t\tte[ 15 ] = 1;\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationFromEuler( euler ) {\n\n\t\tconst te = this.elements;\n\n\t\tconst x = euler.x, y = euler.y, z = euler.z;\n\t\tconst a = Math.cos( x ), b = Math.sin( x );\n\t\tconst c = Math.cos( y ), d = Math.sin( y );\n\t\tconst e = Math.cos( z ), f = Math.sin( z );\n\n\t\tif ( euler.order === 'XYZ' ) {\n\n\t\t\tconst ae = a * e, af = a * f, be = b * e, bf = b * f;\n\n\t\t\tte[ 0 ] = c * e;\n\t\t\tte[ 4 ] = - c * f;\n\t\t\tte[ 8 ] = d;\n\n\t\t\tte[ 1 ] = af + be * d;\n\t\t\tte[ 5 ] = ae - bf * d;\n\t\t\tte[ 9 ] = - b * c;\n\n\t\t\tte[ 2 ] = bf - ae * d;\n\t\t\tte[ 6 ] = be + af * d;\n\t\t\tte[ 10 ] = a * c;\n\n\t\t} else if ( euler.order === 'YXZ' ) {\n\n\t\t\tconst ce = c * e, cf = c * f, de = d * e, df = d * f;\n\n\t\t\tte[ 0 ] = ce + df * b;\n\t\t\tte[ 4 ] = de * b - cf;\n\t\t\tte[ 8 ] = a * d;\n\n\t\t\tte[ 1 ] = a * f;\n\t\t\tte[ 5 ] = a * e;\n\t\t\tte[ 9 ] = - b;\n\n\t\t\tte[ 2 ] = cf * b - de;\n\t\t\tte[ 6 ] = df + ce * b;\n\t\t\tte[ 10 ] = a * c;\n\n\t\t} else if ( euler.order === 'ZXY' ) {\n\n\t\t\tconst ce = c * e, cf = c * f, de = d * e, df = d * f;\n\n\t\t\tte[ 0 ] = ce - df * b;\n\t\t\tte[ 4 ] = - a * f;\n\t\t\tte[ 8 ] = de + cf * b;\n\n\t\t\tte[ 1 ] = cf + de * b;\n\t\t\tte[ 5 ] = a * e;\n\t\t\tte[ 9 ] = df - ce * b;\n\n\t\t\tte[ 2 ] = - a * d;\n\t\t\tte[ 6 ] = b;\n\t\t\tte[ 10 ] = a * c;\n\n\t\t} else if ( euler.order === 'ZYX' ) {\n\n\t\t\tconst ae = a * e, af = a * f, be = b * e, bf = b * f;\n\n\t\t\tte[ 0 ] = c * e;\n\t\t\tte[ 4 ] = be * d - af;\n\t\t\tte[ 8 ] = ae * d + bf;\n\n\t\t\tte[ 1 ] = c * f;\n\t\t\tte[ 5 ] = bf * d + ae;\n\t\t\tte[ 9 ] = af * d - be;\n\n\t\t\tte[ 2 ] = - d;\n\t\t\tte[ 6 ] = b * c;\n\t\t\tte[ 10 ] = a * c;\n\n\t\t} else if ( euler.order === 'YZX' ) {\n\n\t\t\tconst ac = a * c, ad = a * d, bc = b * c, bd = b * d;\n\n\t\t\tte[ 0 ] = c * e;\n\t\t\tte[ 4 ] = bd - ac * f;\n\t\t\tte[ 8 ] = bc * f + ad;\n\n\t\t\tte[ 1 ] = f;\n\t\t\tte[ 5 ] = a * e;\n\t\t\tte[ 9 ] = - b * e;\n\n\t\t\tte[ 2 ] = - d * e;\n\t\t\tte[ 6 ] = ad * f + bc;\n\t\t\tte[ 10 ] = ac - bd * f;\n\n\t\t} else if ( euler.order === 'XZY' ) {\n\n\t\t\tconst ac = a * c, ad = a * d, bc = b * c, bd = b * d;\n\n\t\t\tte[ 0 ] = c * e;\n\t\t\tte[ 4 ] = - f;\n\t\t\tte[ 8 ] = d * e;\n\n\t\t\tte[ 1 ] = ac * f + bd;\n\t\t\tte[ 5 ] = a * e;\n\t\t\tte[ 9 ] = ad * f - bc;\n\n\t\t\tte[ 2 ] = bc * f - ad;\n\t\t\tte[ 6 ] = b * e;\n\t\t\tte[ 10 ] = bd * f + ac;\n\n\t\t}\n\n\t\t// bottom row\n\t\tte[ 3 ] = 0;\n\t\tte[ 7 ] = 0;\n\t\tte[ 11 ] = 0;\n\n\t\t// last column\n\t\tte[ 12 ] = 0;\n\t\tte[ 13 ] = 0;\n\t\tte[ 14 ] = 0;\n\t\tte[ 15 ] = 1;\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationFromQuaternion( q ) {\n\n\t\treturn this.compose( _zero, q, _one );\n\n\t}\n\n\tlookAt( eye, target, up ) {\n\n\t\tconst te = this.elements;\n\n\t\t_z.subVectors( eye, target );\n\n\t\tif ( _z.lengthSq() === 0 ) {\n\n\t\t\t// eye and target are in the same position\n\n\t\t\t_z.z = 1;\n\n\t\t}\n\n\t\t_z.normalize();\n\t\t_x.crossVectors( up, _z );\n\n\t\tif ( _x.lengthSq() === 0 ) {\n\n\t\t\t// up and z are parallel\n\n\t\t\tif ( Math.abs( up.z ) === 1 ) {\n\n\t\t\t\t_z.x += 0.0001;\n\n\t\t\t} else {\n\n\t\t\t\t_z.z += 0.0001;\n\n\t\t\t}\n\n\t\t\t_z.normalize();\n\t\t\t_x.crossVectors( up, _z );\n\n\t\t}\n\n\t\t_x.normalize();\n\t\t_y.crossVectors( _z, _x );\n\n\t\tte[ 0 ] = _x.x; te[ 4 ] = _y.x; te[ 8 ] = _z.x;\n\t\tte[ 1 ] = _x.y; te[ 5 ] = _y.y; te[ 9 ] = _z.y;\n\t\tte[ 2 ] = _x.z; te[ 6 ] = _y.z; te[ 10 ] = _z.z;\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( m ) {\n\n\t\treturn this.multiplyMatrices( this, m );\n\n\t}\n\n\tpremultiply( m ) {\n\n\t\treturn this.multiplyMatrices( m, this );\n\n\t}\n\n\tmultiplyMatrices( a, b ) {\n\n\t\tconst ae = a.elements;\n\t\tconst be = b.elements;\n\t\tconst te = this.elements;\n\n\t\tconst a11 = ae[ 0 ], a12 = ae[ 4 ], a13 = ae[ 8 ], a14 = ae[ 12 ];\n\t\tconst a21 = ae[ 1 ], a22 = ae[ 5 ], a23 = ae[ 9 ], a24 = ae[ 13 ];\n\t\tconst a31 = ae[ 2 ], a32 = ae[ 6 ], a33 = ae[ 10 ], a34 = ae[ 14 ];\n\t\tconst a41 = ae[ 3 ], a42 = ae[ 7 ], a43 = ae[ 11 ], a44 = ae[ 15 ];\n\n\t\tconst b11 = be[ 0 ], b12 = be[ 4 ], b13 = be[ 8 ], b14 = be[ 12 ];\n\t\tconst b21 = be[ 1 ], b22 = be[ 5 ], b23 = be[ 9 ], b24 = be[ 13 ];\n\t\tconst b31 = be[ 2 ], b32 = be[ 6 ], b33 = be[ 10 ], b34 = be[ 14 ];\n\t\tconst b41 = be[ 3 ], b42 = be[ 7 ], b43 = be[ 11 ], b44 = be[ 15 ];\n\n\t\tte[ 0 ] = a11 * b11 + a12 * b21 + a13 * b31 + a14 * b41;\n\t\tte[ 4 ] = a11 * b12 + a12 * b22 + a13 * b32 + a14 * b42;\n\t\tte[ 8 ] = a11 * b13 + a12 * b23 + a13 * b33 + a14 * b43;\n\t\tte[ 12 ] = a11 * b14 + a12 * b24 + a13 * b34 + a14 * b44;\n\n\t\tte[ 1 ] = a21 * b11 + a22 * b21 + a23 * b31 + a24 * b41;\n\t\tte[ 5 ] = a21 * b12 + a22 * b22 + a23 * b32 + a24 * b42;\n\t\tte[ 9 ] = a21 * b13 + a22 * b23 + a23 * b33 + a24 * b43;\n\t\tte[ 13 ] = a21 * b14 + a22 * b24 + a23 * b34 + a24 * b44;\n\n\t\tte[ 2 ] = a31 * b11 + a32 * b21 + a33 * b31 + a34 * b41;\n\t\tte[ 6 ] = a31 * b12 + a32 * b22 + a33 * b32 + a34 * b42;\n\t\tte[ 10 ] = a31 * b13 + a32 * b23 + a33 * b33 + a34 * b43;\n\t\tte[ 14 ] = a31 * b14 + a32 * b24 + a33 * b34 + a34 * b44;\n\n\t\tte[ 3 ] = a41 * b11 + a42 * b21 + a43 * b31 + a44 * b41;\n\t\tte[ 7 ] = a41 * b12 + a42 * b22 + a43 * b32 + a44 * b42;\n\t\tte[ 11 ] = a41 * b13 + a42 * b23 + a43 * b33 + a44 * b43;\n\t\tte[ 15 ] = a41 * b14 + a42 * b24 + a43 * b34 + a44 * b44;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( s ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] *= s; te[ 4 ] *= s; te[ 8 ] *= s; te[ 12 ] *= s;\n\t\tte[ 1 ] *= s; te[ 5 ] *= s; te[ 9 ] *= s; te[ 13 ] *= s;\n\t\tte[ 2 ] *= s; te[ 6 ] *= s; te[ 10 ] *= s; te[ 14 ] *= s;\n\t\tte[ 3 ] *= s; te[ 7 ] *= s; te[ 11 ] *= s; te[ 15 ] *= s;\n\n\t\treturn this;\n\n\t}\n\n\tdeterminant() {\n\n\t\tconst te = this.elements;\n\n\t\tconst n11 = te[ 0 ], n12 = te[ 4 ], n13 = te[ 8 ], n14 = te[ 12 ];\n\t\tconst n21 = te[ 1 ], n22 = te[ 5 ], n23 = te[ 9 ], n24 = te[ 13 ];\n\t\tconst n31 = te[ 2 ], n32 = te[ 6 ], n33 = te[ 10 ], n34 = te[ 14 ];\n\t\tconst n41 = te[ 3 ], n42 = te[ 7 ], n43 = te[ 11 ], n44 = te[ 15 ];\n\n\t\t//TODO: make this more efficient\n\t\t//( based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm )\n\n\t\treturn (\n\t\t\tn41 * (\n\t\t\t\t+ n14 * n23 * n32\n\t\t\t\t - n13 * n24 * n32\n\t\t\t\t - n14 * n22 * n33\n\t\t\t\t + n12 * n24 * n33\n\t\t\t\t + n13 * n22 * n34\n\t\t\t\t - n12 * n23 * n34\n\t\t\t) +\n\t\t\tn42 * (\n\t\t\t\t+ n11 * n23 * n34\n\t\t\t\t - n11 * n24 * n33\n\t\t\t\t + n14 * n21 * n33\n\t\t\t\t - n13 * n21 * n34\n\t\t\t\t + n13 * n24 * n31\n\t\t\t\t - n14 * n23 * n31\n\t\t\t) +\n\t\t\tn43 * (\n\t\t\t\t+ n11 * n24 * n32\n\t\t\t\t - n11 * n22 * n34\n\t\t\t\t - n14 * n21 * n32\n\t\t\t\t + n12 * n21 * n34\n\t\t\t\t + n14 * n22 * n31\n\t\t\t\t - n12 * n24 * n31\n\t\t\t) +\n\t\t\tn44 * (\n\t\t\t\t- n13 * n22 * n31\n\t\t\t\t - n11 * n23 * n32\n\t\t\t\t + n11 * n22 * n33\n\t\t\t\t + n13 * n21 * n32\n\t\t\t\t - n12 * n21 * n33\n\t\t\t\t + n12 * n23 * n31\n\t\t\t)\n\n\t\t);\n\n\t}\n\n\ttranspose() {\n\n\t\tconst te = this.elements;\n\t\tlet tmp;\n\n\t\ttmp = te[ 1 ]; te[ 1 ] = te[ 4 ]; te[ 4 ] = tmp;\n\t\ttmp = te[ 2 ]; te[ 2 ] = te[ 8 ]; te[ 8 ] = tmp;\n\t\ttmp = te[ 6 ]; te[ 6 ] = te[ 9 ]; te[ 9 ] = tmp;\n\n\t\ttmp = te[ 3 ]; te[ 3 ] = te[ 12 ]; te[ 12 ] = tmp;\n\t\ttmp = te[ 7 ]; te[ 7 ] = te[ 13 ]; te[ 13 ] = tmp;\n\t\ttmp = te[ 11 ]; te[ 11 ] = te[ 14 ]; te[ 14 ] = tmp;\n\n\t\treturn this;\n\n\t}\n\n\tsetPosition( x, y, z ) {\n\n\t\tconst te = this.elements;\n\n\t\tif ( x.isVector3 ) {\n\n\t\t\tte[ 12 ] = x.x;\n\t\t\tte[ 13 ] = x.y;\n\t\t\tte[ 14 ] = x.z;\n\n\t\t} else {\n\n\t\t\tte[ 12 ] = x;\n\t\t\tte[ 13 ] = y;\n\t\t\tte[ 14 ] = z;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tinvert() {\n\n\t\t// based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm\n\t\tconst te = this.elements,\n\n\t\t\tn11 = te[ 0 ], n21 = te[ 1 ], n31 = te[ 2 ], n41 = te[ 3 ],\n\t\t\tn12 = te[ 4 ], n22 = te[ 5 ], n32 = te[ 6 ], n42 = te[ 7 ],\n\t\t\tn13 = te[ 8 ], n23 = te[ 9 ], n33 = te[ 10 ], n43 = te[ 11 ],\n\t\t\tn14 = te[ 12 ], n24 = te[ 13 ], n34 = te[ 14 ], n44 = te[ 15 ],\n\n\t\t\tt11 = n23 * n34 * n42 - n24 * n33 * n42 + n24 * n32 * n43 - n22 * n34 * n43 - n23 * n32 * n44 + n22 * n33 * n44,\n\t\t\tt12 = n14 * n33 * n42 - n13 * n34 * n42 - n14 * n32 * n43 + n12 * n34 * n43 + n13 * n32 * n44 - n12 * n33 * n44,\n\t\t\tt13 = n13 * n24 * n42 - n14 * n23 * n42 + n14 * n22 * n43 - n12 * n24 * n43 - n13 * n22 * n44 + n12 * n23 * n44,\n\t\t\tt14 = n14 * n23 * n32 - n13 * n24 * n32 - n14 * n22 * n33 + n12 * n24 * n33 + n13 * n22 * n34 - n12 * n23 * n34;\n\n\t\tconst det = n11 * t11 + n21 * t12 + n31 * t13 + n41 * t14;\n\n\t\tif ( det === 0 ) return this.set( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 );\n\n\t\tconst detInv = 1 / det;\n\n\t\tte[ 0 ] = t11 * detInv;\n\t\tte[ 1 ] = ( n24 * n33 * n41 - n23 * n34 * n41 - n24 * n31 * n43 + n21 * n34 * n43 + n23 * n31 * n44 - n21 * n33 * n44 ) * detInv;\n\t\tte[ 2 ] = ( n22 * n34 * n41 - n24 * n32 * n41 + n24 * n31 * n42 - n21 * n34 * n42 - n22 * n31 * n44 + n21 * n32 * n44 ) * detInv;\n\t\tte[ 3 ] = ( n23 * n32 * n41 - n22 * n33 * n41 - n23 * n31 * n42 + n21 * n33 * n42 + n22 * n31 * n43 - n21 * n32 * n43 ) * detInv;\n\n\t\tte[ 4 ] = t12 * detInv;\n\t\tte[ 5 ] = ( n13 * n34 * n41 - n14 * n33 * n41 + n14 * n31 * n43 - n11 * n34 * n43 - n13 * n31 * n44 + n11 * n33 * n44 ) * detInv;\n\t\tte[ 6 ] = ( n14 * n32 * n41 - n12 * n34 * n41 - n14 * n31 * n42 + n11 * n34 * n42 + n12 * n31 * n44 - n11 * n32 * n44 ) * detInv;\n\t\tte[ 7 ] = ( n12 * n33 * n41 - n13 * n32 * n41 + n13 * n31 * n42 - n11 * n33 * n42 - n12 * n31 * n43 + n11 * n32 * n43 ) * detInv;\n\n\t\tte[ 8 ] = t13 * detInv;\n\t\tte[ 9 ] = ( n14 * n23 * n41 - n13 * n24 * n41 - n14 * n21 * n43 + n11 * n24 * n43 + n13 * n21 * n44 - n11 * n23 * n44 ) * detInv;\n\t\tte[ 10 ] = ( n12 * n24 * n41 - n14 * n22 * n41 + n14 * n21 * n42 - n11 * n24 * n42 - n12 * n21 * n44 + n11 * n22 * n44 ) * detInv;\n\t\tte[ 11 ] = ( n13 * n22 * n41 - n12 * n23 * n41 - n13 * n21 * n42 + n11 * n23 * n42 + n12 * n21 * n43 - n11 * n22 * n43 ) * detInv;\n\n\t\tte[ 12 ] = t14 * detInv;\n\t\tte[ 13 ] = ( n13 * n24 * n31 - n14 * n23 * n31 + n14 * n21 * n33 - n11 * n24 * n33 - n13 * n21 * n34 + n11 * n23 * n34 ) * detInv;\n\t\tte[ 14 ] = ( n14 * n22 * n31 - n12 * n24 * n31 - n14 * n21 * n32 + n11 * n24 * n32 + n12 * n21 * n34 - n11 * n22 * n34 ) * detInv;\n\t\tte[ 15 ] = ( n12 * n23 * n31 - n13 * n22 * n31 + n13 * n21 * n32 - n11 * n23 * n32 - n12 * n21 * n33 + n11 * n22 * n33 ) * detInv;\n\n\t\treturn this;\n\n\t}\n\n\tscale( v ) {\n\n\t\tconst te = this.elements;\n\t\tconst x = v.x, y = v.y, z = v.z;\n\n\t\tte[ 0 ] *= x; te[ 4 ] *= y; te[ 8 ] *= z;\n\t\tte[ 1 ] *= x; te[ 5 ] *= y; te[ 9 ] *= z;\n\t\tte[ 2 ] *= x; te[ 6 ] *= y; te[ 10 ] *= z;\n\t\tte[ 3 ] *= x; te[ 7 ] *= y; te[ 11 ] *= z;\n\n\t\treturn this;\n\n\t}\n\n\tgetMaxScaleOnAxis() {\n\n\t\tconst te = this.elements;\n\n\t\tconst scaleXSq = te[ 0 ] * te[ 0 ] + te[ 1 ] * te[ 1 ] + te[ 2 ] * te[ 2 ];\n\t\tconst scaleYSq = te[ 4 ] * te[ 4 ] + te[ 5 ] * te[ 5 ] + te[ 6 ] * te[ 6 ];\n\t\tconst scaleZSq = te[ 8 ] * te[ 8 ] + te[ 9 ] * te[ 9 ] + te[ 10 ] * te[ 10 ];\n\n\t\treturn Math.sqrt( Math.max( scaleXSq, scaleYSq, scaleZSq ) );\n\n\t}\n\n\tmakeTranslation( x, y, z ) {\n\n\t\tif ( x.isVector3 ) {\n\n\t\t\tthis.set(\n\n\t\t\t\t1, 0, 0, x.x,\n\t\t\t\t0, 1, 0, x.y,\n\t\t\t\t0, 0, 1, x.z,\n\t\t\t\t0, 0, 0, 1\n\n\t\t\t);\n\n\t\t} else {\n\n\t\t\tthis.set(\n\n\t\t\t\t1, 0, 0, x,\n\t\t\t\t0, 1, 0, y,\n\t\t\t\t0, 0, 1, z,\n\t\t\t\t0, 0, 0, 1\n\n\t\t\t);\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationX( theta ) {\n\n\t\tconst c = Math.cos( theta ), s = Math.sin( theta );\n\n\t\tthis.set(\n\n\t\t\t1, 0, 0, 0,\n\t\t\t0, c, - s, 0,\n\t\t\t0, s, c, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationY( theta ) {\n\n\t\tconst c = Math.cos( theta ), s = Math.sin( theta );\n\n\t\tthis.set(\n\n\t\t\t c, 0, s, 0,\n\t\t\t 0, 1, 0, 0,\n\t\t\t- s, 0, c, 0,\n\t\t\t 0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationZ( theta ) {\n\n\t\tconst c = Math.cos( theta ), s = Math.sin( theta );\n\n\t\tthis.set(\n\n\t\t\tc, - s, 0, 0,\n\t\t\ts, c, 0, 0,\n\t\t\t0, 0, 1, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationAxis( axis, angle ) {\n\n\t\t// Based on http://www.gamedev.net/reference/articles/article1199.asp\n\n\t\tconst c = Math.cos( angle );\n\t\tconst s = Math.sin( angle );\n\t\tconst t = 1 - c;\n\t\tconst x = axis.x, y = axis.y, z = axis.z;\n\t\tconst tx = t * x, ty = t * y;\n\n\t\tthis.set(\n\n\t\t\ttx * x + c, tx * y - s * z, tx * z + s * y, 0,\n\t\t\ttx * y + s * z, ty * y + c, ty * z - s * x, 0,\n\t\t\ttx * z - s * y, ty * z + s * x, t * z * z + c, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeScale( x, y, z ) {\n\n\t\tthis.set(\n\n\t\t\tx, 0, 0, 0,\n\t\t\t0, y, 0, 0,\n\t\t\t0, 0, z, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeShear( xy, xz, yx, yz, zx, zy ) {\n\n\t\tthis.set(\n\n\t\t\t1, yx, zx, 0,\n\t\t\txy, 1, zy, 0,\n\t\t\txz, yz, 1, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tcompose( position, quaternion, scale ) {\n\n\t\tconst te = this.elements;\n\n\t\tconst x = quaternion._x, y = quaternion._y, z = quaternion._z, w = quaternion._w;\n\t\tconst x2 = x + x,\ty2 = y + y, z2 = z + z;\n\t\tconst xx = x * x2, xy = x * y2, xz = x * z2;\n\t\tconst yy = y * y2, yz = y * z2, zz = z * z2;\n\t\tconst wx = w * x2, wy = w * y2, wz = w * z2;\n\n\t\tconst sx = scale.x, sy = scale.y, sz = scale.z;\n\n\t\tte[ 0 ] = ( 1 - ( yy + zz ) ) * sx;\n\t\tte[ 1 ] = ( xy + wz ) * sx;\n\t\tte[ 2 ] = ( xz - wy ) * sx;\n\t\tte[ 3 ] = 0;\n\n\t\tte[ 4 ] = ( xy - wz ) * sy;\n\t\tte[ 5 ] = ( 1 - ( xx + zz ) ) * sy;\n\t\tte[ 6 ] = ( yz + wx ) * sy;\n\t\tte[ 7 ] = 0;\n\n\t\tte[ 8 ] = ( xz + wy ) * sz;\n\t\tte[ 9 ] = ( yz - wx ) * sz;\n\t\tte[ 10 ] = ( 1 - ( xx + yy ) ) * sz;\n\t\tte[ 11 ] = 0;\n\n\t\tte[ 12 ] = position.x;\n\t\tte[ 13 ] = position.y;\n\t\tte[ 14 ] = position.z;\n\t\tte[ 15 ] = 1;\n\n\t\treturn this;\n\n\t}\n\n\tdecompose( position, quaternion, scale ) {\n\n\t\tconst te = this.elements;\n\n\t\tlet sx = _v1$5.set( te[ 0 ], te[ 1 ], te[ 2 ] ).length();\n\t\tconst sy = _v1$5.set( te[ 4 ], te[ 5 ], te[ 6 ] ).length();\n\t\tconst sz = _v1$5.set( te[ 8 ], te[ 9 ], te[ 10 ] ).length();\n\n\t\t// if determine is negative, we need to invert one scale\n\t\tconst det = this.determinant();\n\t\tif ( det < 0 ) sx = - sx;\n\n\t\tposition.x = te[ 12 ];\n\t\tposition.y = te[ 13 ];\n\t\tposition.z = te[ 14 ];\n\n\t\t// scale the rotation part\n\t\t_m1$4.copy( this );\n\n\t\tconst invSX = 1 / sx;\n\t\tconst invSY = 1 / sy;\n\t\tconst invSZ = 1 / sz;\n\n\t\t_m1$4.elements[ 0 ] *= invSX;\n\t\t_m1$4.elements[ 1 ] *= invSX;\n\t\t_m1$4.elements[ 2 ] *= invSX;\n\n\t\t_m1$4.elements[ 4 ] *= invSY;\n\t\t_m1$4.elements[ 5 ] *= invSY;\n\t\t_m1$4.elements[ 6 ] *= invSY;\n\n\t\t_m1$4.elements[ 8 ] *= invSZ;\n\t\t_m1$4.elements[ 9 ] *= invSZ;\n\t\t_m1$4.elements[ 10 ] *= invSZ;\n\n\t\tquaternion.setFromRotationMatrix( _m1$4 );\n\n\t\tscale.x = sx;\n\t\tscale.y = sy;\n\t\tscale.z = sz;\n\n\t\treturn this;\n\n\t}\n\n\tmakePerspective( left, right, top, bottom, near, far, coordinateSystem = WebGLCoordinateSystem ) {\n\n\t\tconst te = this.elements;\n\t\tconst x = 2 * near / ( right - left );\n\t\tconst y = 2 * near / ( top - bottom );\n\n\t\tconst a = ( right + left ) / ( right - left );\n\t\tconst b = ( top + bottom ) / ( top - bottom );\n\n\t\tlet c, d;\n\n\t\tif ( coordinateSystem === WebGLCoordinateSystem ) {\n\n\t\t\tc = - ( far + near ) / ( far - near );\n\t\t\td = ( - 2 * far * near ) / ( far - near );\n\n\t\t} else if ( coordinateSystem === WebGPUCoordinateSystem ) {\n\n\t\t\tc = - far / ( far - near );\n\t\t\td = ( - far * near ) / ( far - near );\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'THREE.Matrix4.makePerspective(): Invalid coordinate system: ' + coordinateSystem );\n\n\t\t}\n\n\t\tte[ 0 ] = x;\tte[ 4 ] = 0;\tte[ 8 ] = a; \tte[ 12 ] = 0;\n\t\tte[ 1 ] = 0;\tte[ 5 ] = y;\tte[ 9 ] = b; \tte[ 13 ] = 0;\n\t\tte[ 2 ] = 0;\tte[ 6 ] = 0;\tte[ 10 ] = c; \tte[ 14 ] = d;\n\t\tte[ 3 ] = 0;\tte[ 7 ] = 0;\tte[ 11 ] = - 1;\tte[ 15 ] = 0;\n\n\t\treturn this;\n\n\t}\n\n\tmakeOrthographic( left, right, top, bottom, near, far, coordinateSystem = WebGLCoordinateSystem ) {\n\n\t\tconst te = this.elements;\n\t\tconst w = 1.0 / ( right - left );\n\t\tconst h = 1.0 / ( top - bottom );\n\t\tconst p = 1.0 / ( far - near );\n\n\t\tconst x = ( right + left ) * w;\n\t\tconst y = ( top + bottom ) * h;\n\n\t\tlet z, zInv;\n\n\t\tif ( coordinateSystem === WebGLCoordinateSystem ) {\n\n\t\t\tz = ( far + near ) * p;\n\t\t\tzInv = - 2 * p;\n\n\t\t} else if ( coordinateSystem === WebGPUCoordinateSystem ) {\n\n\t\t\tz = near * p;\n\t\t\tzInv = - 1 * p;\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'THREE.Matrix4.makeOrthographic(): Invalid coordinate system: ' + coordinateSystem );\n\n\t\t}\n\n\t\tte[ 0 ] = 2 * w;\tte[ 4 ] = 0;\t\tte[ 8 ] = 0; \t\tte[ 12 ] = - x;\n\t\tte[ 1 ] = 0; \t\tte[ 5 ] = 2 * h;\tte[ 9 ] = 0; \t\tte[ 13 ] = - y;\n\t\tte[ 2 ] = 0; \t\tte[ 6 ] = 0;\t\tte[ 10 ] = zInv;\tte[ 14 ] = - z;\n\t\tte[ 3 ] = 0; \t\tte[ 7 ] = 0;\t\tte[ 11 ] = 0;\t\tte[ 15 ] = 1;\n\n\t\treturn this;\n\n\t}\n\n\tequals( matrix ) {\n\n\t\tconst te = this.elements;\n\t\tconst me = matrix.elements;\n\n\t\tfor ( let i = 0; i < 16; i ++ ) {\n\n\t\t\tif ( te[ i ] !== me[ i ] ) return false;\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tfor ( let i = 0; i < 16; i ++ ) {\n\n\t\t\tthis.elements[ i ] = array[ i + offset ];\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tconst te = this.elements;\n\n\t\tarray[ offset ] = te[ 0 ];\n\t\tarray[ offset + 1 ] = te[ 1 ];\n\t\tarray[ offset + 2 ] = te[ 2 ];\n\t\tarray[ offset + 3 ] = te[ 3 ];\n\n\t\tarray[ offset + 4 ] = te[ 4 ];\n\t\tarray[ offset + 5 ] = te[ 5 ];\n\t\tarray[ offset + 6 ] = te[ 6 ];\n\t\tarray[ offset + 7 ] = te[ 7 ];\n\n\t\tarray[ offset + 8 ] = te[ 8 ];\n\t\tarray[ offset + 9 ] = te[ 9 ];\n\t\tarray[ offset + 10 ] = te[ 10 ];\n\t\tarray[ offset + 11 ] = te[ 11 ];\n\n\t\tarray[ offset + 12 ] = te[ 12 ];\n\t\tarray[ offset + 13 ] = te[ 13 ];\n\t\tarray[ offset + 14 ] = te[ 14 ];\n\t\tarray[ offset + 15 ] = te[ 15 ];\n\n\t\treturn array;\n\n\t}\n\n}\n\nconst _v1$5 = /*@__PURE__*/ new Vector3();\nconst _m1$4 = /*@__PURE__*/ new Matrix4();\nconst _zero = /*@__PURE__*/ new Vector3( 0, 0, 0 );\nconst _one = /*@__PURE__*/ new Vector3( 1, 1, 1 );\nconst _x = /*@__PURE__*/ new Vector3();\nconst _y = /*@__PURE__*/ new Vector3();\nconst _z = /*@__PURE__*/ new Vector3();\n\nconst _matrix$2 = /*@__PURE__*/ new Matrix4();\nconst _quaternion$3 = /*@__PURE__*/ new Quaternion();\n\nclass Euler {\n\n\tconstructor( x = 0, y = 0, z = 0, order = Euler.DEFAULT_ORDER ) {\n\n\t\tthis.isEuler = true;\n\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tthis._z = z;\n\t\tthis._order = order;\n\n\t}\n\n\tget x() {\n\n\t\treturn this._x;\n\n\t}\n\n\tset x( value ) {\n\n\t\tthis._x = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget y() {\n\n\t\treturn this._y;\n\n\t}\n\n\tset y( value ) {\n\n\t\tthis._y = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget z() {\n\n\t\treturn this._z;\n\n\t}\n\n\tset z( value ) {\n\n\t\tthis._z = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget order() {\n\n\t\treturn this._order;\n\n\t}\n\n\tset order( value ) {\n\n\t\tthis._order = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tset( x, y, z, order = this._order ) {\n\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tthis._z = z;\n\t\tthis._order = order;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this._x, this._y, this._z, this._order );\n\n\t}\n\n\tcopy( euler ) {\n\n\t\tthis._x = euler._x;\n\t\tthis._y = euler._y;\n\t\tthis._z = euler._z;\n\t\tthis._order = euler._order;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromRotationMatrix( m, order = this._order, update = true ) {\n\n\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n\t\tconst te = m.elements;\n\t\tconst m11 = te[ 0 ], m12 = te[ 4 ], m13 = te[ 8 ];\n\t\tconst m21 = te[ 1 ], m22 = te[ 5 ], m23 = te[ 9 ];\n\t\tconst m31 = te[ 2 ], m32 = te[ 6 ], m33 = te[ 10 ];\n\n\t\tswitch ( order ) {\n\n\t\t\tcase 'XYZ':\n\n\t\t\t\tthis._y = Math.asin( clamp( m13, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m13 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._x = Math.atan2( - m23, m33 );\n\t\t\t\t\tthis._z = Math.atan2( - m12, m11 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._x = Math.atan2( m32, m22 );\n\t\t\t\t\tthis._z = 0;\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'YXZ':\n\n\t\t\t\tthis._x = Math.asin( - clamp( m23, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m23 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._y = Math.atan2( m13, m33 );\n\t\t\t\t\tthis._z = Math.atan2( m21, m22 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._y = Math.atan2( - m31, m11 );\n\t\t\t\t\tthis._z = 0;\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'ZXY':\n\n\t\t\t\tthis._x = Math.asin( clamp( m32, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m32 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._y = Math.atan2( - m31, m33 );\n\t\t\t\t\tthis._z = Math.atan2( - m12, m22 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._y = 0;\n\t\t\t\t\tthis._z = Math.atan2( m21, m11 );\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'ZYX':\n\n\t\t\t\tthis._y = Math.asin( - clamp( m31, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m31 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._x = Math.atan2( m32, m33 );\n\t\t\t\t\tthis._z = Math.atan2( m21, m11 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._x = 0;\n\t\t\t\t\tthis._z = Math.atan2( - m12, m22 );\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'YZX':\n\n\t\t\t\tthis._z = Math.asin( clamp( m21, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m21 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._x = Math.atan2( - m23, m22 );\n\t\t\t\t\tthis._y = Math.atan2( - m31, m11 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._x = 0;\n\t\t\t\t\tthis._y = Math.atan2( m13, m33 );\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'XZY':\n\n\t\t\t\tthis._z = Math.asin( - clamp( m12, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m12 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._x = Math.atan2( m32, m22 );\n\t\t\t\t\tthis._y = Math.atan2( m13, m11 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._x = Math.atan2( - m23, m33 );\n\t\t\t\t\tthis._y = 0;\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\n\t\t\t\tconsole.warn( 'THREE.Euler: .setFromRotationMatrix() encountered an unknown order: ' + order );\n\n\t\t}\n\n\t\tthis._order = order;\n\n\t\tif ( update === true ) this._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromQuaternion( q, order, update ) {\n\n\t\t_matrix$2.makeRotationFromQuaternion( q );\n\n\t\treturn this.setFromRotationMatrix( _matrix$2, order, update );\n\n\t}\n\n\tsetFromVector3( v, order = this._order ) {\n\n\t\treturn this.set( v.x, v.y, v.z, order );\n\n\t}\n\n\treorder( newOrder ) {\n\n\t\t// WARNING: this discards revolution information -bhouston\n\n\t\t_quaternion$3.setFromEuler( this );\n\n\t\treturn this.setFromQuaternion( _quaternion$3, newOrder );\n\n\t}\n\n\tequals( euler ) {\n\n\t\treturn ( euler._x === this._x ) && ( euler._y === this._y ) && ( euler._z === this._z ) && ( euler._order === this._order );\n\n\t}\n\n\tfromArray( array ) {\n\n\t\tthis._x = array[ 0 ];\n\t\tthis._y = array[ 1 ];\n\t\tthis._z = array[ 2 ];\n\t\tif ( array[ 3 ] !== undefined ) this._order = array[ 3 ];\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this._x;\n\t\tarray[ offset + 1 ] = this._y;\n\t\tarray[ offset + 2 ] = this._z;\n\t\tarray[ offset + 3 ] = this._order;\n\n\t\treturn array;\n\n\t}\n\n\t_onChange( callback ) {\n\n\t\tthis._onChangeCallback = callback;\n\n\t\treturn this;\n\n\t}\n\n\t_onChangeCallback() {}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this._x;\n\t\tyield this._y;\n\t\tyield this._z;\n\t\tyield this._order;\n\n\t}\n\n}\n\nEuler.DEFAULT_ORDER = 'XYZ';\n\nclass Layers {\n\n\tconstructor() {\n\n\t\tthis.mask = 1 | 0;\n\n\t}\n\n\tset( channel ) {\n\n\t\tthis.mask = ( 1 << channel | 0 ) >>> 0;\n\n\t}\n\n\tenable( channel ) {\n\n\t\tthis.mask |= 1 << channel | 0;\n\n\t}\n\n\tenableAll() {\n\n\t\tthis.mask = 0xffffffff | 0;\n\n\t}\n\n\ttoggle( channel ) {\n\n\t\tthis.mask ^= 1 << channel | 0;\n\n\t}\n\n\tdisable( channel ) {\n\n\t\tthis.mask &= ~ ( 1 << channel | 0 );\n\n\t}\n\n\tdisableAll() {\n\n\t\tthis.mask = 0;\n\n\t}\n\n\ttest( layers ) {\n\n\t\treturn ( this.mask & layers.mask ) !== 0;\n\n\t}\n\n\tisEnabled( channel ) {\n\n\t\treturn ( this.mask & ( 1 << channel | 0 ) ) !== 0;\n\n\t}\n\n}\n\nlet _object3DId = 0;\n\nconst _v1$4 = /*@__PURE__*/ new Vector3();\nconst _q1 = /*@__PURE__*/ new Quaternion();\nconst _m1$3 = /*@__PURE__*/ new Matrix4();\nconst _target = /*@__PURE__*/ new Vector3();\n\nconst _position$3 = /*@__PURE__*/ new Vector3();\nconst _scale$2 = /*@__PURE__*/ new Vector3();\nconst _quaternion$2 = /*@__PURE__*/ new Quaternion();\n\nconst _xAxis = /*@__PURE__*/ new Vector3( 1, 0, 0 );\nconst _yAxis = /*@__PURE__*/ new Vector3( 0, 1, 0 );\nconst _zAxis = /*@__PURE__*/ new Vector3( 0, 0, 1 );\n\nconst _addedEvent = { type: 'added' };\nconst _removedEvent = { type: 'removed' };\n\nconst _childaddedEvent = { type: 'childadded', child: null };\nconst _childremovedEvent = { type: 'childremoved', child: null };\n\nclass Object3D extends EventDispatcher {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isObject3D = true;\n\n\t\tObject.defineProperty( this, 'id', { value: _object3DId ++ } );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.name = '';\n\t\tthis.type = 'Object3D';\n\n\t\tthis.parent = null;\n\t\tthis.children = [];\n\n\t\tthis.up = Object3D.DEFAULT_UP.clone();\n\n\t\tconst position = new Vector3();\n\t\tconst rotation = new Euler();\n\t\tconst quaternion = new Quaternion();\n\t\tconst scale = new Vector3( 1, 1, 1 );\n\n\t\tfunction onRotationChange() {\n\n\t\t\tquaternion.setFromEuler( rotation, false );\n\n\t\t}\n\n\t\tfunction onQuaternionChange() {\n\n\t\t\trotation.setFromQuaternion( quaternion, undefined, false );\n\n\t\t}\n\n\t\trotation._onChange( onRotationChange );\n\t\tquaternion._onChange( onQuaternionChange );\n\n\t\tObject.defineProperties( this, {\n\t\t\tposition: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: position\n\t\t\t},\n\t\t\trotation: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: rotation\n\t\t\t},\n\t\t\tquaternion: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: quaternion\n\t\t\t},\n\t\t\tscale: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: scale\n\t\t\t},\n\t\t\tmodelViewMatrix: {\n\t\t\t\tvalue: new Matrix4()\n\t\t\t},\n\t\t\tnormalMatrix: {\n\t\t\t\tvalue: new Matrix3()\n\t\t\t}\n\t\t} );\n\n\t\tthis.matrix = new Matrix4();\n\t\tthis.matrixWorld = new Matrix4();\n\n\t\tthis.matrixAutoUpdate = Object3D.DEFAULT_MATRIX_AUTO_UPDATE;\n\n\t\tthis.matrixWorldAutoUpdate = Object3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE; // checked by the renderer\n\t\tthis.matrixWorldNeedsUpdate = false;\n\n\t\tthis.layers = new Layers();\n\t\tthis.visible = true;\n\n\t\tthis.castShadow = false;\n\t\tthis.receiveShadow = false;\n\n\t\tthis.frustumCulled = true;\n\t\tthis.renderOrder = 0;\n\n\t\tthis.animations = [];\n\n\t\tthis.userData = {};\n\n\t}\n\n\tonBeforeShadow( /* renderer, object, camera, shadowCamera, geometry, depthMaterial, group */ ) {}\n\n\tonAfterShadow( /* renderer, object, camera, shadowCamera, geometry, depthMaterial, group */ ) {}\n\n\tonBeforeRender( /* renderer, scene, camera, geometry, material, group */ ) {}\n\n\tonAfterRender( /* renderer, scene, camera, geometry, material, group */ ) {}\n\n\tapplyMatrix4( matrix ) {\n\n\t\tif ( this.matrixAutoUpdate ) this.updateMatrix();\n\n\t\tthis.matrix.premultiply( matrix );\n\n\t\tthis.matrix.decompose( this.position, this.quaternion, this.scale );\n\n\t}\n\n\tapplyQuaternion( q ) {\n\n\t\tthis.quaternion.premultiply( q );\n\n\t\treturn this;\n\n\t}\n\n\tsetRotationFromAxisAngle( axis, angle ) {\n\n\t\t// assumes axis is normalized\n\n\t\tthis.quaternion.setFromAxisAngle( axis, angle );\n\n\t}\n\n\tsetRotationFromEuler( euler ) {\n\n\t\tthis.quaternion.setFromEuler( euler, true );\n\n\t}\n\n\tsetRotationFromMatrix( m ) {\n\n\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n\t\tthis.quaternion.setFromRotationMatrix( m );\n\n\t}\n\n\tsetRotationFromQuaternion( q ) {\n\n\t\t// assumes q is normalized\n\n\t\tthis.quaternion.copy( q );\n\n\t}\n\n\trotateOnAxis( axis, angle ) {\n\n\t\t// rotate object on axis in object space\n\t\t// axis is assumed to be normalized\n\n\t\t_q1.setFromAxisAngle( axis, angle );\n\n\t\tthis.quaternion.multiply( _q1 );\n\n\t\treturn this;\n\n\t}\n\n\trotateOnWorldAxis( axis, angle ) {\n\n\t\t// rotate object on axis in world space\n\t\t// axis is assumed to be normalized\n\t\t// method assumes no rotated parent\n\n\t\t_q1.setFromAxisAngle( axis, angle );\n\n\t\tthis.quaternion.premultiply( _q1 );\n\n\t\treturn this;\n\n\t}\n\n\trotateX( angle ) {\n\n\t\treturn this.rotateOnAxis( _xAxis, angle );\n\n\t}\n\n\trotateY( angle ) {\n\n\t\treturn this.rotateOnAxis( _yAxis, angle );\n\n\t}\n\n\trotateZ( angle ) {\n\n\t\treturn this.rotateOnAxis( _zAxis, angle );\n\n\t}\n\n\ttranslateOnAxis( axis, distance ) {\n\n\t\t// translate object by distance along axis in object space\n\t\t// axis is assumed to be normalized\n\n\t\t_v1$4.copy( axis ).applyQuaternion( this.quaternion );\n\n\t\tthis.position.add( _v1$4.multiplyScalar( distance ) );\n\n\t\treturn this;\n\n\t}\n\n\ttranslateX( distance ) {\n\n\t\treturn this.translateOnAxis( _xAxis, distance );\n\n\t}\n\n\ttranslateY( distance ) {\n\n\t\treturn this.translateOnAxis( _yAxis, distance );\n\n\t}\n\n\ttranslateZ( distance ) {\n\n\t\treturn this.translateOnAxis( _zAxis, distance );\n\n\t}\n\n\tlocalToWorld( vector ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\treturn vector.applyMatrix4( this.matrixWorld );\n\n\t}\n\n\tworldToLocal( vector ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\treturn vector.applyMatrix4( _m1$3.copy( this.matrixWorld ).invert() );\n\n\t}\n\n\tlookAt( x, y, z ) {\n\n\t\t// This method does not support objects having non-uniformly-scaled parent(s)\n\n\t\tif ( x.isVector3 ) {\n\n\t\t\t_target.copy( x );\n\n\t\t} else {\n\n\t\t\t_target.set( x, y, z );\n\n\t\t}\n\n\t\tconst parent = this.parent;\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\t_position$3.setFromMatrixPosition( this.matrixWorld );\n\n\t\tif ( this.isCamera || this.isLight ) {\n\n\t\t\t_m1$3.lookAt( _position$3, _target, this.up );\n\n\t\t} else {\n\n\t\t\t_m1$3.lookAt( _target, _position$3, this.up );\n\n\t\t}\n\n\t\tthis.quaternion.setFromRotationMatrix( _m1$3 );\n\n\t\tif ( parent ) {\n\n\t\t\t_m1$3.extractRotation( parent.matrixWorld );\n\t\t\t_q1.setFromRotationMatrix( _m1$3 );\n\t\t\tthis.quaternion.premultiply( _q1.invert() );\n\n\t\t}\n\n\t}\n\n\tadd( object ) {\n\n\t\tif ( arguments.length > 1 ) {\n\n\t\t\tfor ( let i = 0; i < arguments.length; i ++ ) {\n\n\t\t\t\tthis.add( arguments[ i ] );\n\n\t\t\t}\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tif ( object === this ) {\n\n\t\t\tconsole.error( 'THREE.Object3D.add: object can\\'t be added as a child of itself.', object );\n\t\t\treturn this;\n\n\t\t}\n\n\t\tif ( object && object.isObject3D ) {\n\n\t\t\tobject.removeFromParent();\n\t\t\tobject.parent = this;\n\t\t\tthis.children.push( object );\n\n\t\t\tobject.dispatchEvent( _addedEvent );\n\n\t\t\t_childaddedEvent.child = object;\n\t\t\tthis.dispatchEvent( _childaddedEvent );\n\t\t\t_childaddedEvent.child = null;\n\n\t\t} else {\n\n\t\t\tconsole.error( 'THREE.Object3D.add: object not an instance of THREE.Object3D.', object );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tremove( object ) {\n\n\t\tif ( arguments.length > 1 ) {\n\n\t\t\tfor ( let i = 0; i < arguments.length; i ++ ) {\n\n\t\t\t\tthis.remove( arguments[ i ] );\n\n\t\t\t}\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tconst index = this.children.indexOf( object );\n\n\t\tif ( index !== - 1 ) {\n\n\t\t\tobject.parent = null;\n\t\t\tthis.children.splice( index, 1 );\n\n\t\t\tobject.dispatchEvent( _removedEvent );\n\n\t\t\t_childremovedEvent.child = object;\n\t\t\tthis.dispatchEvent( _childremovedEvent );\n\t\t\t_childremovedEvent.child = null;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tremoveFromParent() {\n\n\t\tconst parent = this.parent;\n\n\t\tif ( parent !== null ) {\n\n\t\t\tparent.remove( this );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tclear() {\n\n\t\treturn this.remove( ... this.children );\n\n\t}\n\n\tattach( object ) {\n\n\t\t// adds object as a child of this, while maintaining the object's world transform\n\n\t\t// Note: This method does not support scene graphs having non-uniformly-scaled nodes(s)\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\t_m1$3.copy( this.matrixWorld ).invert();\n\n\t\tif ( object.parent !== null ) {\n\n\t\t\tobject.parent.updateWorldMatrix( true, false );\n\n\t\t\t_m1$3.multiply( object.parent.matrixWorld );\n\n\t\t}\n\n\t\tobject.applyMatrix4( _m1$3 );\n\n\t\tobject.removeFromParent();\n\t\tobject.parent = this;\n\t\tthis.children.push( object );\n\n\t\tobject.updateWorldMatrix( false, true );\n\n\t\tobject.dispatchEvent( _addedEvent );\n\n\t\t_childaddedEvent.child = object;\n\t\tthis.dispatchEvent( _childaddedEvent );\n\t\t_childaddedEvent.child = null;\n\n\t\treturn this;\n\n\t}\n\n\tgetObjectById( id ) {\n\n\t\treturn this.getObjectByProperty( 'id', id );\n\n\t}\n\n\tgetObjectByName( name ) {\n\n\t\treturn this.getObjectByProperty( 'name', name );\n\n\t}\n\n\tgetObjectByProperty( name, value ) {\n\n\t\tif ( this[ name ] === value ) return this;\n\n\t\tfor ( let i = 0, l = this.children.length; i < l; i ++ ) {\n\n\t\t\tconst child = this.children[ i ];\n\t\t\tconst object = child.getObjectByProperty( name, value );\n\n\t\t\tif ( object !== undefined ) {\n\n\t\t\t\treturn object;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn undefined;\n\n\t}\n\n\tgetObjectsByProperty( name, value, result = [] ) {\n\n\t\tif ( this[ name ] === value ) result.push( this );\n\n\t\tconst children = this.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tchildren[ i ].getObjectsByProperty( name, value, result );\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n\tgetWorldPosition( target ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\treturn target.setFromMatrixPosition( this.matrixWorld );\n\n\t}\n\n\tgetWorldQuaternion( target ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\tthis.matrixWorld.decompose( _position$3, target, _scale$2 );\n\n\t\treturn target;\n\n\t}\n\n\tgetWorldScale( target ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\tthis.matrixWorld.decompose( _position$3, _quaternion$2, target );\n\n\t\treturn target;\n\n\t}\n\n\tgetWorldDirection( target ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\tconst e = this.matrixWorld.elements;\n\n\t\treturn target.set( e[ 8 ], e[ 9 ], e[ 10 ] ).normalize();\n\n\t}\n\n\traycast( /* raycaster, intersects */ ) {}\n\n\ttraverse( callback ) {\n\n\t\tcallback( this );\n\n\t\tconst children = this.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tchildren[ i ].traverse( callback );\n\n\t\t}\n\n\t}\n\n\ttraverseVisible( callback ) {\n\n\t\tif ( this.visible === false ) return;\n\n\t\tcallback( this );\n\n\t\tconst children = this.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tchildren[ i ].traverseVisible( callback );\n\n\t\t}\n\n\t}\n\n\ttraverseAncestors( callback ) {\n\n\t\tconst parent = this.parent;\n\n\t\tif ( parent !== null ) {\n\n\t\t\tcallback( parent );\n\n\t\t\tparent.traverseAncestors( callback );\n\n\t\t}\n\n\t}\n\n\tupdateMatrix() {\n\n\t\tthis.matrix.compose( this.position, this.quaternion, this.scale );\n\n\t\tthis.matrixWorldNeedsUpdate = true;\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tif ( this.matrixAutoUpdate ) this.updateMatrix();\n\n\t\tif ( this.matrixWorldNeedsUpdate || force ) {\n\n\t\t\tif ( this.matrixWorldAutoUpdate === true ) {\n\n\t\t\t\tif ( this.parent === null ) {\n\n\t\t\t\t\tthis.matrixWorld.copy( this.matrix );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis.matrixWorld.multiplyMatrices( this.parent.matrixWorld, this.matrix );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis.matrixWorldNeedsUpdate = false;\n\n\t\t\tforce = true;\n\n\t\t}\n\n\t\t// make sure descendants are updated if required\n\n\t\tconst children = this.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tconst child = children[ i ];\n\n\t\t\tchild.updateMatrixWorld( force );\n\n\t\t}\n\n\t}\n\n\tupdateWorldMatrix( updateParents, updateChildren ) {\n\n\t\tconst parent = this.parent;\n\n\t\tif ( updateParents === true && parent !== null ) {\n\n\t\t\tparent.updateWorldMatrix( true, false );\n\n\t\t}\n\n\t\tif ( this.matrixAutoUpdate ) this.updateMatrix();\n\n\t\tif ( this.matrixWorldAutoUpdate === true ) {\n\n\t\t\tif ( this.parent === null ) {\n\n\t\t\t\tthis.matrixWorld.copy( this.matrix );\n\n\t\t\t} else {\n\n\t\t\t\tthis.matrixWorld.multiplyMatrices( this.parent.matrixWorld, this.matrix );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// make sure descendants are updated\n\n\t\tif ( updateChildren === true ) {\n\n\t\t\tconst children = this.children;\n\n\t\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\t\tconst child = children[ i ];\n\n\t\t\t\tchild.updateWorldMatrix( false, true );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\t// meta is a string when called from JSON.stringify\n\t\tconst isRootObject = ( meta === undefined || typeof meta === 'string' );\n\n\t\tconst output = {};\n\n\t\t// meta is a hash used to collect geometries, materials.\n\t\t// not providing it implies that this is the root object\n\t\t// being serialized.\n\t\tif ( isRootObject ) {\n\n\t\t\t// initialize meta obj\n\t\t\tmeta = {\n\t\t\t\tgeometries: {},\n\t\t\t\tmaterials: {},\n\t\t\t\ttextures: {},\n\t\t\t\timages: {},\n\t\t\t\tshapes: {},\n\t\t\t\tskeletons: {},\n\t\t\t\tanimations: {},\n\t\t\t\tnodes: {}\n\t\t\t};\n\n\t\t\toutput.metadata = {\n\t\t\t\tversion: 4.6,\n\t\t\t\ttype: 'Object',\n\t\t\t\tgenerator: 'Object3D.toJSON'\n\t\t\t};\n\n\t\t}\n\n\t\t// standard Object3D serialization\n\n\t\tconst object = {};\n\n\t\tobject.uuid = this.uuid;\n\t\tobject.type = this.type;\n\n\t\tif ( this.name !== '' ) object.name = this.name;\n\t\tif ( this.castShadow === true ) object.castShadow = true;\n\t\tif ( this.receiveShadow === true ) object.receiveShadow = true;\n\t\tif ( this.visible === false ) object.visible = false;\n\t\tif ( this.frustumCulled === false ) object.frustumCulled = false;\n\t\tif ( this.renderOrder !== 0 ) object.renderOrder = this.renderOrder;\n\t\tif ( Object.keys( this.userData ).length > 0 ) object.userData = this.userData;\n\n\t\tobject.layers = this.layers.mask;\n\t\tobject.matrix = this.matrix.toArray();\n\t\tobject.up = this.up.toArray();\n\n\t\tif ( this.matrixAutoUpdate === false ) object.matrixAutoUpdate = false;\n\n\t\t// object specific properties\n\n\t\tif ( this.isInstancedMesh ) {\n\n\t\t\tobject.type = 'InstancedMesh';\n\t\t\tobject.count = this.count;\n\t\t\tobject.instanceMatrix = this.instanceMatrix.toJSON();\n\t\t\tif ( this.instanceColor !== null ) object.instanceColor = this.instanceColor.toJSON();\n\n\t\t}\n\n\t\tif ( this.isBatchedMesh ) {\n\n\t\t\tobject.type = 'BatchedMesh';\n\t\t\tobject.perObjectFrustumCulled = this.perObjectFrustumCulled;\n\t\t\tobject.sortObjects = this.sortObjects;\n\n\t\t\tobject.drawRanges = this._drawRanges;\n\t\t\tobject.reservedRanges = this._reservedRanges;\n\n\t\t\tobject.visibility = this._visibility;\n\t\t\tobject.active = this._active;\n\t\t\tobject.bounds = this._bounds.map( bound => ( {\n\t\t\t\tboxInitialized: bound.boxInitialized,\n\t\t\t\tboxMin: bound.box.min.toArray(),\n\t\t\t\tboxMax: bound.box.max.toArray(),\n\n\t\t\t\tsphereInitialized: bound.sphereInitialized,\n\t\t\t\tsphereRadius: bound.sphere.radius,\n\t\t\t\tsphereCenter: bound.sphere.center.toArray()\n\t\t\t} ) );\n\n\t\t\tobject.maxInstanceCount = this._maxInstanceCount;\n\t\t\tobject.maxVertexCount = this._maxVertexCount;\n\t\t\tobject.maxIndexCount = this._maxIndexCount;\n\n\t\t\tobject.geometryInitialized = this._geometryInitialized;\n\t\t\tobject.geometryCount = this._geometryCount;\n\n\t\t\tobject.matricesTexture = this._matricesTexture.toJSON( meta );\n\n\t\t\tif ( this._colorsTexture !== null ) object.colorsTexture = this._colorsTexture.toJSON( meta );\n\n\t\t\tif ( this.boundingSphere !== null ) {\n\n\t\t\t\tobject.boundingSphere = {\n\t\t\t\t\tcenter: object.boundingSphere.center.toArray(),\n\t\t\t\t\tradius: object.boundingSphere.radius\n\t\t\t\t};\n\n\t\t\t}\n\n\t\t\tif ( this.boundingBox !== null ) {\n\n\t\t\t\tobject.boundingBox = {\n\t\t\t\t\tmin: object.boundingBox.min.toArray(),\n\t\t\t\t\tmax: object.boundingBox.max.toArray()\n\t\t\t\t};\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tfunction serialize( library, element ) {\n\n\t\t\tif ( library[ element.uuid ] === undefined ) {\n\n\t\t\t\tlibrary[ element.uuid ] = element.toJSON( meta );\n\n\t\t\t}\n\n\t\t\treturn element.uuid;\n\n\t\t}\n\n\t\tif ( this.isScene ) {\n\n\t\t\tif ( this.background ) {\n\n\t\t\t\tif ( this.background.isColor ) {\n\n\t\t\t\t\tobject.background = this.background.toJSON();\n\n\t\t\t\t} else if ( this.background.isTexture ) {\n\n\t\t\t\t\tobject.background = this.background.toJSON( meta ).uuid;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( this.environment && this.environment.isTexture && this.environment.isRenderTargetTexture !== true ) {\n\n\t\t\t\tobject.environment = this.environment.toJSON( meta ).uuid;\n\n\t\t\t}\n\n\t\t} else if ( this.isMesh || this.isLine || this.isPoints ) {\n\n\t\t\tobject.geometry = serialize( meta.geometries, this.geometry );\n\n\t\t\tconst parameters = this.geometry.parameters;\n\n\t\t\tif ( parameters !== undefined && parameters.shapes !== undefined ) {\n\n\t\t\t\tconst shapes = parameters.shapes;\n\n\t\t\t\tif ( Array.isArray( shapes ) ) {\n\n\t\t\t\t\tfor ( let i = 0, l = shapes.length; i < l; i ++ ) {\n\n\t\t\t\t\t\tconst shape = shapes[ i ];\n\n\t\t\t\t\t\tserialize( meta.shapes, shape );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tserialize( meta.shapes, shapes );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( this.isSkinnedMesh ) {\n\n\t\t\tobject.bindMode = this.bindMode;\n\t\t\tobject.bindMatrix = this.bindMatrix.toArray();\n\n\t\t\tif ( this.skeleton !== undefined ) {\n\n\t\t\t\tserialize( meta.skeletons, this.skeleton );\n\n\t\t\t\tobject.skeleton = this.skeleton.uuid;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( this.material !== undefined ) {\n\n\t\t\tif ( Array.isArray( this.material ) ) {\n\n\t\t\t\tconst uuids = [];\n\n\t\t\t\tfor ( let i = 0, l = this.material.length; i < l; i ++ ) {\n\n\t\t\t\t\tuuids.push( serialize( meta.materials, this.material[ i ] ) );\n\n\t\t\t\t}\n\n\t\t\t\tobject.material = uuids;\n\n\t\t\t} else {\n\n\t\t\t\tobject.material = serialize( meta.materials, this.material );\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tif ( this.children.length > 0 ) {\n\n\t\t\tobject.children = [];\n\n\t\t\tfor ( let i = 0; i < this.children.length; i ++ ) {\n\n\t\t\t\tobject.children.push( this.children[ i ].toJSON( meta ).object );\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tif ( this.animations.length > 0 ) {\n\n\t\t\tobject.animations = [];\n\n\t\t\tfor ( let i = 0; i < this.animations.length; i ++ ) {\n\n\t\t\t\tconst animation = this.animations[ i ];\n\n\t\t\t\tobject.animations.push( serialize( meta.animations, animation ) );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( isRootObject ) {\n\n\t\t\tconst geometries = extractFromCache( meta.geometries );\n\t\t\tconst materials = extractFromCache( meta.materials );\n\t\t\tconst textures = extractFromCache( meta.textures );\n\t\t\tconst images = extractFromCache( meta.images );\n\t\t\tconst shapes = extractFromCache( meta.shapes );\n\t\t\tconst skeletons = extractFromCache( meta.skeletons );\n\t\t\tconst animations = extractFromCache( meta.animations );\n\t\t\tconst nodes = extractFromCache( meta.nodes );\n\n\t\t\tif ( geometries.length > 0 ) output.geometries = geometries;\n\t\t\tif ( materials.length > 0 ) output.materials = materials;\n\t\t\tif ( textures.length > 0 ) output.textures = textures;\n\t\t\tif ( images.length > 0 ) output.images = images;\n\t\t\tif ( shapes.length > 0 ) output.shapes = shapes;\n\t\t\tif ( skeletons.length > 0 ) output.skeletons = skeletons;\n\t\t\tif ( animations.length > 0 ) output.animations = animations;\n\t\t\tif ( nodes.length > 0 ) output.nodes = nodes;\n\n\t\t}\n\n\t\toutput.object = object;\n\n\t\treturn output;\n\n\t\t// extract data from the cache hash\n\t\t// remove metadata on each item\n\t\t// and return as array\n\t\tfunction extractFromCache( cache ) {\n\n\t\t\tconst values = [];\n\t\t\tfor ( const key in cache ) {\n\n\t\t\t\tconst data = cache[ key ];\n\t\t\t\tdelete data.metadata;\n\t\t\t\tvalues.push( data );\n\n\t\t\t}\n\n\t\t\treturn values;\n\n\t\t}\n\n\t}\n\n\tclone( recursive ) {\n\n\t\treturn new this.constructor().copy( this, recursive );\n\n\t}\n\n\tcopy( source, recursive = true ) {\n\n\t\tthis.name = source.name;\n\n\t\tthis.up.copy( source.up );\n\n\t\tthis.position.copy( source.position );\n\t\tthis.rotation.order = source.rotation.order;\n\t\tthis.quaternion.copy( source.quaternion );\n\t\tthis.scale.copy( source.scale );\n\n\t\tthis.matrix.copy( source.matrix );\n\t\tthis.matrixWorld.copy( source.matrixWorld );\n\n\t\tthis.matrixAutoUpdate = source.matrixAutoUpdate;\n\n\t\tthis.matrixWorldAutoUpdate = source.matrixWorldAutoUpdate;\n\t\tthis.matrixWorldNeedsUpdate = source.matrixWorldNeedsUpdate;\n\n\t\tthis.layers.mask = source.layers.mask;\n\t\tthis.visible = source.visible;\n\n\t\tthis.castShadow = source.castShadow;\n\t\tthis.receiveShadow = source.receiveShadow;\n\n\t\tthis.frustumCulled = source.frustumCulled;\n\t\tthis.renderOrder = source.renderOrder;\n\n\t\tthis.animations = source.animations.slice();\n\n\t\tthis.userData = JSON.parse( JSON.stringify( source.userData ) );\n\n\t\tif ( recursive === true ) {\n\n\t\t\tfor ( let i = 0; i < source.children.length; i ++ ) {\n\n\t\t\t\tconst child = source.children[ i ];\n\t\t\t\tthis.add( child.clone() );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\nObject3D.DEFAULT_UP = /*@__PURE__*/ new Vector3( 0, 1, 0 );\nObject3D.DEFAULT_MATRIX_AUTO_UPDATE = true;\nObject3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE = true;\n\nconst _v0$2 = /*@__PURE__*/ new Vector3();\nconst _v1$3 = /*@__PURE__*/ new Vector3();\nconst _v2$2 = /*@__PURE__*/ new Vector3();\nconst _v3$2 = /*@__PURE__*/ new Vector3();\n\nconst _vab = /*@__PURE__*/ new Vector3();\nconst _vac = /*@__PURE__*/ new Vector3();\nconst _vbc = /*@__PURE__*/ new Vector3();\nconst _vap = /*@__PURE__*/ new Vector3();\nconst _vbp = /*@__PURE__*/ new Vector3();\nconst _vcp = /*@__PURE__*/ new Vector3();\n\nconst _v40 = /*@__PURE__*/ new Vector4();\nconst _v41 = /*@__PURE__*/ new Vector4();\nconst _v42 = /*@__PURE__*/ new Vector4();\n\nclass Triangle {\n\n\tconstructor( a = new Vector3(), b = new Vector3(), c = new Vector3() ) {\n\n\t\tthis.a = a;\n\t\tthis.b = b;\n\t\tthis.c = c;\n\n\t}\n\n\tstatic getNormal( a, b, c, target ) {\n\n\t\ttarget.subVectors( c, b );\n\t\t_v0$2.subVectors( a, b );\n\t\ttarget.cross( _v0$2 );\n\n\t\tconst targetLengthSq = target.lengthSq();\n\t\tif ( targetLengthSq > 0 ) {\n\n\t\t\treturn target.multiplyScalar( 1 / Math.sqrt( targetLengthSq ) );\n\n\t\t}\n\n\t\treturn target.set( 0, 0, 0 );\n\n\t}\n\n\t// static/instance method to calculate barycentric coordinates\n\t// based on: http://www.blackpawn.com/texts/pointinpoly/default.html\n\tstatic getBarycoord( point, a, b, c, target ) {\n\n\t\t_v0$2.subVectors( c, a );\n\t\t_v1$3.subVectors( b, a );\n\t\t_v2$2.subVectors( point, a );\n\n\t\tconst dot00 = _v0$2.dot( _v0$2 );\n\t\tconst dot01 = _v0$2.dot( _v1$3 );\n\t\tconst dot02 = _v0$2.dot( _v2$2 );\n\t\tconst dot11 = _v1$3.dot( _v1$3 );\n\t\tconst dot12 = _v1$3.dot( _v2$2 );\n\n\t\tconst denom = ( dot00 * dot11 - dot01 * dot01 );\n\n\t\t// collinear or singular triangle\n\t\tif ( denom === 0 ) {\n\n\t\t\ttarget.set( 0, 0, 0 );\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst invDenom = 1 / denom;\n\t\tconst u = ( dot11 * dot02 - dot01 * dot12 ) * invDenom;\n\t\tconst v = ( dot00 * dot12 - dot01 * dot02 ) * invDenom;\n\n\t\t// barycentric coordinates must always sum to 1\n\t\treturn target.set( 1 - u - v, v, u );\n\n\t}\n\n\tstatic containsPoint( point, a, b, c ) {\n\n\t\t// if the triangle is degenerate then we can't contain a point\n\t\tif ( this.getBarycoord( point, a, b, c, _v3$2 ) === null ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\treturn ( _v3$2.x >= 0 ) && ( _v3$2.y >= 0 ) && ( ( _v3$2.x + _v3$2.y ) <= 1 );\n\n\t}\n\n\tstatic getInterpolation( point, p1, p2, p3, v1, v2, v3, target ) {\n\n\t\tif ( this.getBarycoord( point, p1, p2, p3, _v3$2 ) === null ) {\n\n\t\t\ttarget.x = 0;\n\t\t\ttarget.y = 0;\n\t\t\tif ( 'z' in target ) target.z = 0;\n\t\t\tif ( 'w' in target ) target.w = 0;\n\t\t\treturn null;\n\n\t\t}\n\n\t\ttarget.setScalar( 0 );\n\t\ttarget.addScaledVector( v1, _v3$2.x );\n\t\ttarget.addScaledVector( v2, _v3$2.y );\n\t\ttarget.addScaledVector( v3, _v3$2.z );\n\n\t\treturn target;\n\n\t}\n\n\tstatic getInterpolatedAttribute( attr, i1, i2, i3, barycoord, target ) {\n\n\t\t_v40.setScalar( 0 );\n\t\t_v41.setScalar( 0 );\n\t\t_v42.setScalar( 0 );\n\n\t\t_v40.fromBufferAttribute( attr, i1 );\n\t\t_v41.fromBufferAttribute( attr, i2 );\n\t\t_v42.fromBufferAttribute( attr, i3 );\n\n\t\ttarget.setScalar( 0 );\n\t\ttarget.addScaledVector( _v40, barycoord.x );\n\t\ttarget.addScaledVector( _v41, barycoord.y );\n\t\ttarget.addScaledVector( _v42, barycoord.z );\n\n\t\treturn target;\n\n\t}\n\n\tstatic isFrontFacing( a, b, c, direction ) {\n\n\t\t_v0$2.subVectors( c, b );\n\t\t_v1$3.subVectors( a, b );\n\n\t\t// strictly front facing\n\t\treturn ( _v0$2.cross( _v1$3 ).dot( direction ) < 0 ) ? true : false;\n\n\t}\n\n\tset( a, b, c ) {\n\n\t\tthis.a.copy( a );\n\t\tthis.b.copy( b );\n\t\tthis.c.copy( c );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromPointsAndIndices( points, i0, i1, i2 ) {\n\n\t\tthis.a.copy( points[ i0 ] );\n\t\tthis.b.copy( points[ i1 ] );\n\t\tthis.c.copy( points[ i2 ] );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromAttributeAndIndices( attribute, i0, i1, i2 ) {\n\n\t\tthis.a.fromBufferAttribute( attribute, i0 );\n\t\tthis.b.fromBufferAttribute( attribute, i1 );\n\t\tthis.c.fromBufferAttribute( attribute, i2 );\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( triangle ) {\n\n\t\tthis.a.copy( triangle.a );\n\t\tthis.b.copy( triangle.b );\n\t\tthis.c.copy( triangle.c );\n\n\t\treturn this;\n\n\t}\n\n\tgetArea() {\n\n\t\t_v0$2.subVectors( this.c, this.b );\n\t\t_v1$3.subVectors( this.a, this.b );\n\n\t\treturn _v0$2.cross( _v1$3 ).length() * 0.5;\n\n\t}\n\n\tgetMidpoint( target ) {\n\n\t\treturn target.addVectors( this.a, this.b ).add( this.c ).multiplyScalar( 1 / 3 );\n\n\t}\n\n\tgetNormal( target ) {\n\n\t\treturn Triangle.getNormal( this.a, this.b, this.c, target );\n\n\t}\n\n\tgetPlane( target ) {\n\n\t\treturn target.setFromCoplanarPoints( this.a, this.b, this.c );\n\n\t}\n\n\tgetBarycoord( point, target ) {\n\n\t\treturn Triangle.getBarycoord( point, this.a, this.b, this.c, target );\n\n\t}\n\n\tgetInterpolation( point, v1, v2, v3, target ) {\n\n\t\treturn Triangle.getInterpolation( point, this.a, this.b, this.c, v1, v2, v3, target );\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\treturn Triangle.containsPoint( point, this.a, this.b, this.c );\n\n\t}\n\n\tisFrontFacing( direction ) {\n\n\t\treturn Triangle.isFrontFacing( this.a, this.b, this.c, direction );\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\treturn box.intersectsTriangle( this );\n\n\t}\n\n\tclosestPointToPoint( p, target ) {\n\n\t\tconst a = this.a, b = this.b, c = this.c;\n\t\tlet v, w;\n\n\t\t// algorithm thanks to Real-Time Collision Detection by Christer Ericson,\n\t\t// published by Morgan Kaufmann Publishers, (c) 2005 Elsevier Inc.,\n\t\t// under the accompanying license; see chapter 5.1.5 for detailed explanation.\n\t\t// basically, we're distinguishing which of the voronoi regions of the triangle\n\t\t// the point lies in with the minimum amount of redundant computation.\n\n\t\t_vab.subVectors( b, a );\n\t\t_vac.subVectors( c, a );\n\t\t_vap.subVectors( p, a );\n\t\tconst d1 = _vab.dot( _vap );\n\t\tconst d2 = _vac.dot( _vap );\n\t\tif ( d1 <= 0 && d2 <= 0 ) {\n\n\t\t\t// vertex region of A; barycentric coords (1, 0, 0)\n\t\t\treturn target.copy( a );\n\n\t\t}\n\n\t\t_vbp.subVectors( p, b );\n\t\tconst d3 = _vab.dot( _vbp );\n\t\tconst d4 = _vac.dot( _vbp );\n\t\tif ( d3 >= 0 && d4 <= d3 ) {\n\n\t\t\t// vertex region of B; barycentric coords (0, 1, 0)\n\t\t\treturn target.copy( b );\n\n\t\t}\n\n\t\tconst vc = d1 * d4 - d3 * d2;\n\t\tif ( vc <= 0 && d1 >= 0 && d3 <= 0 ) {\n\n\t\t\tv = d1 / ( d1 - d3 );\n\t\t\t// edge region of AB; barycentric coords (1-v, v, 0)\n\t\t\treturn target.copy( a ).addScaledVector( _vab, v );\n\n\t\t}\n\n\t\t_vcp.subVectors( p, c );\n\t\tconst d5 = _vab.dot( _vcp );\n\t\tconst d6 = _vac.dot( _vcp );\n\t\tif ( d6 >= 0 && d5 <= d6 ) {\n\n\t\t\t// vertex region of C; barycentric coords (0, 0, 1)\n\t\t\treturn target.copy( c );\n\n\t\t}\n\n\t\tconst vb = d5 * d2 - d1 * d6;\n\t\tif ( vb <= 0 && d2 >= 0 && d6 <= 0 ) {\n\n\t\t\tw = d2 / ( d2 - d6 );\n\t\t\t// edge region of AC; barycentric coords (1-w, 0, w)\n\t\t\treturn target.copy( a ).addScaledVector( _vac, w );\n\n\t\t}\n\n\t\tconst va = d3 * d6 - d5 * d4;\n\t\tif ( va <= 0 && ( d4 - d3 ) >= 0 && ( d5 - d6 ) >= 0 ) {\n\n\t\t\t_vbc.subVectors( c, b );\n\t\t\tw = ( d4 - d3 ) / ( ( d4 - d3 ) + ( d5 - d6 ) );\n\t\t\t// edge region of BC; barycentric coords (0, 1-w, w)\n\t\t\treturn target.copy( b ).addScaledVector( _vbc, w ); // edge region of BC\n\n\t\t}\n\n\t\t// face region\n\t\tconst denom = 1 / ( va + vb + vc );\n\t\t// u = va * denom\n\t\tv = vb * denom;\n\t\tw = vc * denom;\n\n\t\treturn target.copy( a ).addScaledVector( _vab, v ).addScaledVector( _vac, w );\n\n\t}\n\n\tequals( triangle ) {\n\n\t\treturn triangle.a.equals( this.a ) && triangle.b.equals( this.b ) && triangle.c.equals( this.c );\n\n\t}\n\n}\n\nconst _colorKeywords = { 'aliceblue': 0xF0F8FF, 'antiquewhite': 0xFAEBD7, 'aqua': 0x00FFFF, 'aquamarine': 0x7FFFD4, 'azure': 0xF0FFFF,\n\t'beige': 0xF5F5DC, 'bisque': 0xFFE4C4, 'black': 0x000000, 'blanchedalmond': 0xFFEBCD, 'blue': 0x0000FF, 'blueviolet': 0x8A2BE2,\n\t'brown': 0xA52A2A, 'burlywood': 0xDEB887, 'cadetblue': 0x5F9EA0, 'chartreuse': 0x7FFF00, 'chocolate': 0xD2691E, 'coral': 0xFF7F50,\n\t'cornflowerblue': 0x6495ED, 'cornsilk': 0xFFF8DC, 'crimson': 0xDC143C, 'cyan': 0x00FFFF, 'darkblue': 0x00008B, 'darkcyan': 0x008B8B,\n\t'darkgoldenrod': 0xB8860B, 'darkgray': 0xA9A9A9, 'darkgreen': 0x006400, 'darkgrey': 0xA9A9A9, 'darkkhaki': 0xBDB76B, 'darkmagenta': 0x8B008B,\n\t'darkolivegreen': 0x556B2F, 'darkorange': 0xFF8C00, 'darkorchid': 0x9932CC, 'darkred': 0x8B0000, 'darksalmon': 0xE9967A, 'darkseagreen': 0x8FBC8F,\n\t'darkslateblue': 0x483D8B, 'darkslategray': 0x2F4F4F, 'darkslategrey': 0x2F4F4F, 'darkturquoise': 0x00CED1, 'darkviolet': 0x9400D3,\n\t'deeppink': 0xFF1493, 'deepskyblue': 0x00BFFF, 'dimgray': 0x696969, 'dimgrey': 0x696969, 'dodgerblue': 0x1E90FF, 'firebrick': 0xB22222,\n\t'floralwhite': 0xFFFAF0, 'forestgreen': 0x228B22, 'fuchsia': 0xFF00FF, 'gainsboro': 0xDCDCDC, 'ghostwhite': 0xF8F8FF, 'gold': 0xFFD700,\n\t'goldenrod': 0xDAA520, 'gray': 0x808080, 'green': 0x008000, 'greenyellow': 0xADFF2F, 'grey': 0x808080, 'honeydew': 0xF0FFF0, 'hotpink': 0xFF69B4,\n\t'indianred': 0xCD5C5C, 'indigo': 0x4B0082, 'ivory': 0xFFFFF0, 'khaki': 0xF0E68C, 'lavender': 0xE6E6FA, 'lavenderblush': 0xFFF0F5, 'lawngreen': 0x7CFC00,\n\t'lemonchiffon': 0xFFFACD, 'lightblue': 0xADD8E6, 'lightcoral': 0xF08080, 'lightcyan': 0xE0FFFF, 'lightgoldenrodyellow': 0xFAFAD2, 'lightgray': 0xD3D3D3,\n\t'lightgreen': 0x90EE90, 'lightgrey': 0xD3D3D3, 'lightpink': 0xFFB6C1, 'lightsalmon': 0xFFA07A, 'lightseagreen': 0x20B2AA, 'lightskyblue': 0x87CEFA,\n\t'lightslategray': 0x778899, 'lightslategrey': 0x778899, 'lightsteelblue': 0xB0C4DE, 'lightyellow': 0xFFFFE0, 'lime': 0x00FF00, 'limegreen': 0x32CD32,\n\t'linen': 0xFAF0E6, 'magenta': 0xFF00FF, 'maroon': 0x800000, 'mediumaquamarine': 0x66CDAA, 'mediumblue': 0x0000CD, 'mediumorchid': 0xBA55D3,\n\t'mediumpurple': 0x9370DB, 'mediumseagreen': 0x3CB371, 'mediumslateblue': 0x7B68EE, 'mediumspringgreen': 0x00FA9A, 'mediumturquoise': 0x48D1CC,\n\t'mediumvioletred': 0xC71585, 'midnightblue': 0x191970, 'mintcream': 0xF5FFFA, 'mistyrose': 0xFFE4E1, 'moccasin': 0xFFE4B5, 'navajowhite': 0xFFDEAD,\n\t'navy': 0x000080, 'oldlace': 0xFDF5E6, 'olive': 0x808000, 'olivedrab': 0x6B8E23, 'orange': 0xFFA500, 'orangered': 0xFF4500, 'orchid': 0xDA70D6,\n\t'palegoldenrod': 0xEEE8AA, 'palegreen': 0x98FB98, 'paleturquoise': 0xAFEEEE, 'palevioletred': 0xDB7093, 'papayawhip': 0xFFEFD5, 'peachpuff': 0xFFDAB9,\n\t'peru': 0xCD853F, 'pink': 0xFFC0CB, 'plum': 0xDDA0DD, 'powderblue': 0xB0E0E6, 'purple': 0x800080, 'rebeccapurple': 0x663399, 'red': 0xFF0000, 'rosybrown': 0xBC8F8F,\n\t'royalblue': 0x4169E1, 'saddlebrown': 0x8B4513, 'salmon': 0xFA8072, 'sandybrown': 0xF4A460, 'seagreen': 0x2E8B57, 'seashell': 0xFFF5EE,\n\t'sienna': 0xA0522D, 'silver': 0xC0C0C0, 'skyblue': 0x87CEEB, 'slateblue': 0x6A5ACD, 'slategray': 0x708090, 'slategrey': 0x708090, 'snow': 0xFFFAFA,\n\t'springgreen': 0x00FF7F, 'steelblue': 0x4682B4, 'tan': 0xD2B48C, 'teal': 0x008080, 'thistle': 0xD8BFD8, 'tomato': 0xFF6347, 'turquoise': 0x40E0D0,\n\t'violet': 0xEE82EE, 'wheat': 0xF5DEB3, 'white': 0xFFFFFF, 'whitesmoke': 0xF5F5F5, 'yellow': 0xFFFF00, 'yellowgreen': 0x9ACD32 };\n\nconst _hslA = { h: 0, s: 0, l: 0 };\nconst _hslB = { h: 0, s: 0, l: 0 };\n\nfunction hue2rgb( p, q, t ) {\n\n\tif ( t < 0 ) t += 1;\n\tif ( t > 1 ) t -= 1;\n\tif ( t < 1 / 6 ) return p + ( q - p ) * 6 * t;\n\tif ( t < 1 / 2 ) return q;\n\tif ( t < 2 / 3 ) return p + ( q - p ) * 6 * ( 2 / 3 - t );\n\treturn p;\n\n}\n\nclass Color {\n\n\tconstructor( r, g, b ) {\n\n\t\tthis.isColor = true;\n\n\t\tthis.r = 1;\n\t\tthis.g = 1;\n\t\tthis.b = 1;\n\n\t\treturn this.set( r, g, b );\n\n\t}\n\n\tset( r, g, b ) {\n\n\t\tif ( g === undefined && b === undefined ) {\n\n\t\t\t// r is THREE.Color, hex or string\n\n\t\t\tconst value = r;\n\n\t\t\tif ( value && value.isColor ) {\n\n\t\t\t\tthis.copy( value );\n\n\t\t\t} else if ( typeof value === 'number' ) {\n\n\t\t\t\tthis.setHex( value );\n\n\t\t\t} else if ( typeof value === 'string' ) {\n\n\t\t\t\tthis.setStyle( value );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tthis.setRGB( r, g, b );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetScalar( scalar ) {\n\n\t\tthis.r = scalar;\n\t\tthis.g = scalar;\n\t\tthis.b = scalar;\n\n\t\treturn this;\n\n\t}\n\n\tsetHex( hex, colorSpace = SRGBColorSpace ) {\n\n\t\thex = Math.floor( hex );\n\n\t\tthis.r = ( hex >> 16 & 255 ) / 255;\n\t\tthis.g = ( hex >> 8 & 255 ) / 255;\n\t\tthis.b = ( hex & 255 ) / 255;\n\n\t\tColorManagement.toWorkingColorSpace( this, colorSpace );\n\n\t\treturn this;\n\n\t}\n\n\tsetRGB( r, g, b, colorSpace = ColorManagement.workingColorSpace ) {\n\n\t\tthis.r = r;\n\t\tthis.g = g;\n\t\tthis.b = b;\n\n\t\tColorManagement.toWorkingColorSpace( this, colorSpace );\n\n\t\treturn this;\n\n\t}\n\n\tsetHSL( h, s, l, colorSpace = ColorManagement.workingColorSpace ) {\n\n\t\t// h,s,l ranges are in 0.0 - 1.0\n\t\th = euclideanModulo( h, 1 );\n\t\ts = clamp( s, 0, 1 );\n\t\tl = clamp( l, 0, 1 );\n\n\t\tif ( s === 0 ) {\n\n\t\t\tthis.r = this.g = this.b = l;\n\n\t\t} else {\n\n\t\t\tconst p = l <= 0.5 ? l * ( 1 + s ) : l + s - ( l * s );\n\t\t\tconst q = ( 2 * l ) - p;\n\n\t\t\tthis.r = hue2rgb( q, p, h + 1 / 3 );\n\t\t\tthis.g = hue2rgb( q, p, h );\n\t\t\tthis.b = hue2rgb( q, p, h - 1 / 3 );\n\n\t\t}\n\n\t\tColorManagement.toWorkingColorSpace( this, colorSpace );\n\n\t\treturn this;\n\n\t}\n\n\tsetStyle( style, colorSpace = SRGBColorSpace ) {\n\n\t\tfunction handleAlpha( string ) {\n\n\t\t\tif ( string === undefined ) return;\n\n\t\t\tif ( parseFloat( string ) < 1 ) {\n\n\t\t\t\tconsole.warn( 'THREE.Color: Alpha component of ' + style + ' will be ignored.' );\n\n\t\t\t}\n\n\t\t}\n\n\n\t\tlet m;\n\n\t\tif ( m = /^(\\w+)\\(([^\\)]*)\\)/.exec( style ) ) {\n\n\t\t\t// rgb / hsl\n\n\t\t\tlet color;\n\t\t\tconst name = m[ 1 ];\n\t\t\tconst components = m[ 2 ];\n\n\t\t\tswitch ( name ) {\n\n\t\t\t\tcase 'rgb':\n\t\t\t\tcase 'rgba':\n\n\t\t\t\t\tif ( color = /^\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec( components ) ) {\n\n\t\t\t\t\t\t// rgb(255,0,0) rgba(255,0,0,0.5)\n\n\t\t\t\t\t\thandleAlpha( color[ 4 ] );\n\n\t\t\t\t\t\treturn this.setRGB(\n\t\t\t\t\t\t\tMath.min( 255, parseInt( color[ 1 ], 10 ) ) / 255,\n\t\t\t\t\t\t\tMath.min( 255, parseInt( color[ 2 ], 10 ) ) / 255,\n\t\t\t\t\t\t\tMath.min( 255, parseInt( color[ 3 ], 10 ) ) / 255,\n\t\t\t\t\t\t\tcolorSpace\n\t\t\t\t\t\t);\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( color = /^\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec( components ) ) {\n\n\t\t\t\t\t\t// rgb(100%,0%,0%) rgba(100%,0%,0%,0.5)\n\n\t\t\t\t\t\thandleAlpha( color[ 4 ] );\n\n\t\t\t\t\t\treturn this.setRGB(\n\t\t\t\t\t\t\tMath.min( 100, parseInt( color[ 1 ], 10 ) ) / 100,\n\t\t\t\t\t\t\tMath.min( 100, parseInt( color[ 2 ], 10 ) ) / 100,\n\t\t\t\t\t\t\tMath.min( 100, parseInt( color[ 3 ], 10 ) ) / 100,\n\t\t\t\t\t\t\tcolorSpace\n\t\t\t\t\t\t);\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'hsl':\n\t\t\t\tcase 'hsla':\n\n\t\t\t\t\tif ( color = /^\\s*(\\d*\\.?\\d+)\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec( components ) ) {\n\n\t\t\t\t\t\t// hsl(120,50%,50%) hsla(120,50%,50%,0.5)\n\n\t\t\t\t\t\thandleAlpha( color[ 4 ] );\n\n\t\t\t\t\t\treturn this.setHSL(\n\t\t\t\t\t\t\tparseFloat( color[ 1 ] ) / 360,\n\t\t\t\t\t\t\tparseFloat( color[ 2 ] ) / 100,\n\t\t\t\t\t\t\tparseFloat( color[ 3 ] ) / 100,\n\t\t\t\t\t\t\tcolorSpace\n\t\t\t\t\t\t);\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\n\t\t\t\t\tconsole.warn( 'THREE.Color: Unknown color model ' + style );\n\n\t\t\t}\n\n\t\t} else if ( m = /^\\#([A-Fa-f\\d]+)$/.exec( style ) ) {\n\n\t\t\t// hex color\n\n\t\t\tconst hex = m[ 1 ];\n\t\t\tconst size = hex.length;\n\n\t\t\tif ( size === 3 ) {\n\n\t\t\t\t// #ff0\n\t\t\t\treturn this.setRGB(\n\t\t\t\t\tparseInt( hex.charAt( 0 ), 16 ) / 15,\n\t\t\t\t\tparseInt( hex.charAt( 1 ), 16 ) / 15,\n\t\t\t\t\tparseInt( hex.charAt( 2 ), 16 ) / 15,\n\t\t\t\t\tcolorSpace\n\t\t\t\t);\n\n\t\t\t} else if ( size === 6 ) {\n\n\t\t\t\t// #ff0000\n\t\t\t\treturn this.setHex( parseInt( hex, 16 ), colorSpace );\n\n\t\t\t} else {\n\n\t\t\t\tconsole.warn( 'THREE.Color: Invalid hex color ' + style );\n\n\t\t\t}\n\n\t\t} else if ( style && style.length > 0 ) {\n\n\t\t\treturn this.setColorName( style, colorSpace );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetColorName( style, colorSpace = SRGBColorSpace ) {\n\n\t\t// color keywords\n\t\tconst hex = _colorKeywords[ style.toLowerCase() ];\n\n\t\tif ( hex !== undefined ) {\n\n\t\t\t// red\n\t\t\tthis.setHex( hex, colorSpace );\n\n\t\t} else {\n\n\t\t\t// unknown color\n\t\t\tconsole.warn( 'THREE.Color: Unknown color ' + style );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.r, this.g, this.b );\n\n\t}\n\n\tcopy( color ) {\n\n\t\tthis.r = color.r;\n\t\tthis.g = color.g;\n\t\tthis.b = color.b;\n\n\t\treturn this;\n\n\t}\n\n\tcopySRGBToLinear( color ) {\n\n\t\tthis.r = SRGBToLinear( color.r );\n\t\tthis.g = SRGBToLinear( color.g );\n\t\tthis.b = SRGBToLinear( color.b );\n\n\t\treturn this;\n\n\t}\n\n\tcopyLinearToSRGB( color ) {\n\n\t\tthis.r = LinearToSRGB( color.r );\n\t\tthis.g = LinearToSRGB( color.g );\n\t\tthis.b = LinearToSRGB( color.b );\n\n\t\treturn this;\n\n\t}\n\n\tconvertSRGBToLinear() {\n\n\t\tthis.copySRGBToLinear( this );\n\n\t\treturn this;\n\n\t}\n\n\tconvertLinearToSRGB() {\n\n\t\tthis.copyLinearToSRGB( this );\n\n\t\treturn this;\n\n\t}\n\n\tgetHex( colorSpace = SRGBColorSpace ) {\n\n\t\tColorManagement.fromWorkingColorSpace( _color.copy( this ), colorSpace );\n\n\t\treturn Math.round( clamp( _color.r * 255, 0, 255 ) ) * 65536 + Math.round( clamp( _color.g * 255, 0, 255 ) ) * 256 + Math.round( clamp( _color.b * 255, 0, 255 ) );\n\n\t}\n\n\tgetHexString( colorSpace = SRGBColorSpace ) {\n\n\t\treturn ( '000000' + this.getHex( colorSpace ).toString( 16 ) ).slice( - 6 );\n\n\t}\n\n\tgetHSL( target, colorSpace = ColorManagement.workingColorSpace ) {\n\n\t\t// h,s,l ranges are in 0.0 - 1.0\n\n\t\tColorManagement.fromWorkingColorSpace( _color.copy( this ), colorSpace );\n\n\t\tconst r = _color.r, g = _color.g, b = _color.b;\n\n\t\tconst max = Math.max( r, g, b );\n\t\tconst min = Math.min( r, g, b );\n\n\t\tlet hue, saturation;\n\t\tconst lightness = ( min + max ) / 2.0;\n\n\t\tif ( min === max ) {\n\n\t\t\thue = 0;\n\t\t\tsaturation = 0;\n\n\t\t} else {\n\n\t\t\tconst delta = max - min;\n\n\t\t\tsaturation = lightness <= 0.5 ? delta / ( max + min ) : delta / ( 2 - max - min );\n\n\t\t\tswitch ( max ) {\n\n\t\t\t\tcase r: hue = ( g - b ) / delta + ( g < b ? 6 : 0 ); break;\n\t\t\t\tcase g: hue = ( b - r ) / delta + 2; break;\n\t\t\t\tcase b: hue = ( r - g ) / delta + 4; break;\n\n\t\t\t}\n\n\t\t\thue /= 6;\n\n\t\t}\n\n\t\ttarget.h = hue;\n\t\ttarget.s = saturation;\n\t\ttarget.l = lightness;\n\n\t\treturn target;\n\n\t}\n\n\tgetRGB( target, colorSpace = ColorManagement.workingColorSpace ) {\n\n\t\tColorManagement.fromWorkingColorSpace( _color.copy( this ), colorSpace );\n\n\t\ttarget.r = _color.r;\n\t\ttarget.g = _color.g;\n\t\ttarget.b = _color.b;\n\n\t\treturn target;\n\n\t}\n\n\tgetStyle( colorSpace = SRGBColorSpace ) {\n\n\t\tColorManagement.fromWorkingColorSpace( _color.copy( this ), colorSpace );\n\n\t\tconst r = _color.r, g = _color.g, b = _color.b;\n\n\t\tif ( colorSpace !== SRGBColorSpace ) {\n\n\t\t\t// Requires CSS Color Module Level 4 (https://www.w3.org/TR/css-color-4/).\n\t\t\treturn `color(${ colorSpace } ${ r.toFixed( 3 ) } ${ g.toFixed( 3 ) } ${ b.toFixed( 3 ) })`;\n\n\t\t}\n\n\t\treturn `rgb(${ Math.round( r * 255 ) },${ Math.round( g * 255 ) },${ Math.round( b * 255 ) })`;\n\n\t}\n\n\toffsetHSL( h, s, l ) {\n\n\t\tthis.getHSL( _hslA );\n\n\t\treturn this.setHSL( _hslA.h + h, _hslA.s + s, _hslA.l + l );\n\n\t}\n\n\tadd( color ) {\n\n\t\tthis.r += color.r;\n\t\tthis.g += color.g;\n\t\tthis.b += color.b;\n\n\t\treturn this;\n\n\t}\n\n\taddColors( color1, color2 ) {\n\n\t\tthis.r = color1.r + color2.r;\n\t\tthis.g = color1.g + color2.g;\n\t\tthis.b = color1.b + color2.b;\n\n\t\treturn this;\n\n\t}\n\n\taddScalar( s ) {\n\n\t\tthis.r += s;\n\t\tthis.g += s;\n\t\tthis.b += s;\n\n\t\treturn this;\n\n\t}\n\n\tsub( color ) {\n\n\t\tthis.r = Math.max( 0, this.r - color.r );\n\t\tthis.g = Math.max( 0, this.g - color.g );\n\t\tthis.b = Math.max( 0, this.b - color.b );\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( color ) {\n\n\t\tthis.r *= color.r;\n\t\tthis.g *= color.g;\n\t\tthis.b *= color.b;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( s ) {\n\n\t\tthis.r *= s;\n\t\tthis.g *= s;\n\t\tthis.b *= s;\n\n\t\treturn this;\n\n\t}\n\n\tlerp( color, alpha ) {\n\n\t\tthis.r += ( color.r - this.r ) * alpha;\n\t\tthis.g += ( color.g - this.g ) * alpha;\n\t\tthis.b += ( color.b - this.b ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpColors( color1, color2, alpha ) {\n\n\t\tthis.r = color1.r + ( color2.r - color1.r ) * alpha;\n\t\tthis.g = color1.g + ( color2.g - color1.g ) * alpha;\n\t\tthis.b = color1.b + ( color2.b - color1.b ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpHSL( color, alpha ) {\n\n\t\tthis.getHSL( _hslA );\n\t\tcolor.getHSL( _hslB );\n\n\t\tconst h = lerp( _hslA.h, _hslB.h, alpha );\n\t\tconst s = lerp( _hslA.s, _hslB.s, alpha );\n\t\tconst l = lerp( _hslA.l, _hslB.l, alpha );\n\n\t\tthis.setHSL( h, s, l );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromVector3( v ) {\n\n\t\tthis.r = v.x;\n\t\tthis.g = v.y;\n\t\tthis.b = v.z;\n\n\t\treturn this;\n\n\t}\n\n\tapplyMatrix3( m ) {\n\n\t\tconst r = this.r, g = this.g, b = this.b;\n\t\tconst e = m.elements;\n\n\t\tthis.r = e[ 0 ] * r + e[ 3 ] * g + e[ 6 ] * b;\n\t\tthis.g = e[ 1 ] * r + e[ 4 ] * g + e[ 7 ] * b;\n\t\tthis.b = e[ 2 ] * r + e[ 5 ] * g + e[ 8 ] * b;\n\n\t\treturn this;\n\n\t}\n\n\tequals( c ) {\n\n\t\treturn ( c.r === this.r ) && ( c.g === this.g ) && ( c.b === this.b );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis.r = array[ offset ];\n\t\tthis.g = array[ offset + 1 ];\n\t\tthis.b = array[ offset + 2 ];\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this.r;\n\t\tarray[ offset + 1 ] = this.g;\n\t\tarray[ offset + 2 ] = this.b;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index ) {\n\n\t\tthis.r = attribute.getX( index );\n\t\tthis.g = attribute.getY( index );\n\t\tthis.b = attribute.getZ( index );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\treturn this.getHex();\n\n\t}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this.r;\n\t\tyield this.g;\n\t\tyield this.b;\n\n\t}\n\n}\n\nconst _color = /*@__PURE__*/ new Color();\n\nColor.NAMES = _colorKeywords;\n\nlet _materialId = 0;\n\nclass Material extends EventDispatcher {\n\n\tstatic get type() {\n\n\t\treturn 'Material';\n\n\t}\n\n\tget type() {\n\n\t\treturn this.constructor.type;\n\n\t}\n\n\tset type( _value ) { /* */ }\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isMaterial = true;\n\n\t\tObject.defineProperty( this, 'id', { value: _materialId ++ } );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.name = '';\n\n\t\tthis.blending = NormalBlending;\n\t\tthis.side = FrontSide;\n\t\tthis.vertexColors = false;\n\n\t\tthis.opacity = 1;\n\t\tthis.transparent = false;\n\t\tthis.alphaHash = false;\n\n\t\tthis.blendSrc = SrcAlphaFactor;\n\t\tthis.blendDst = OneMinusSrcAlphaFactor;\n\t\tthis.blendEquation = AddEquation;\n\t\tthis.blendSrcAlpha = null;\n\t\tthis.blendDstAlpha = null;\n\t\tthis.blendEquationAlpha = null;\n\t\tthis.blendColor = new Color( 0, 0, 0 );\n\t\tthis.blendAlpha = 0;\n\n\t\tthis.depthFunc = LessEqualDepth;\n\t\tthis.depthTest = true;\n\t\tthis.depthWrite = true;\n\n\t\tthis.stencilWriteMask = 0xff;\n\t\tthis.stencilFunc = AlwaysStencilFunc;\n\t\tthis.stencilRef = 0;\n\t\tthis.stencilFuncMask = 0xff;\n\t\tthis.stencilFail = KeepStencilOp;\n\t\tthis.stencilZFail = KeepStencilOp;\n\t\tthis.stencilZPass = KeepStencilOp;\n\t\tthis.stencilWrite = false;\n\n\t\tthis.clippingPlanes = null;\n\t\tthis.clipIntersection = false;\n\t\tthis.clipShadows = false;\n\n\t\tthis.shadowSide = null;\n\n\t\tthis.colorWrite = true;\n\n\t\tthis.precision = null; // override the renderer's default precision for this material\n\n\t\tthis.polygonOffset = false;\n\t\tthis.polygonOffsetFactor = 0;\n\t\tthis.polygonOffsetUnits = 0;\n\n\t\tthis.dithering = false;\n\n\t\tthis.alphaToCoverage = false;\n\t\tthis.premultipliedAlpha = false;\n\t\tthis.forceSinglePass = false;\n\n\t\tthis.visible = true;\n\n\t\tthis.toneMapped = true;\n\n\t\tthis.userData = {};\n\n\t\tthis.version = 0;\n\n\t\tthis._alphaTest = 0;\n\n\t}\n\n\tget alphaTest() {\n\n\t\treturn this._alphaTest;\n\n\t}\n\n\tset alphaTest( value ) {\n\n\t\tif ( this._alphaTest > 0 !== value > 0 ) {\n\n\t\t\tthis.version ++;\n\n\t\t}\n\n\t\tthis._alphaTest = value;\n\n\t}\n\n\t// onBeforeRender and onBeforeCompile only supported in WebGLRenderer\n\n\tonBeforeRender( /* renderer, scene, camera, geometry, object, group */ ) {}\n\n\tonBeforeCompile( /* shaderobject, renderer */ ) {}\n\n\tcustomProgramCacheKey() {\n\n\t\treturn this.onBeforeCompile.toString();\n\n\t}\n\n\tsetValues( values ) {\n\n\t\tif ( values === undefined ) return;\n\n\t\tfor ( const key in values ) {\n\n\t\t\tconst newValue = values[ key ];\n\n\t\t\tif ( newValue === undefined ) {\n\n\t\t\t\tconsole.warn( `THREE.Material: parameter '${ key }' has value of undefined.` );\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\tconst currentValue = this[ key ];\n\n\t\t\tif ( currentValue === undefined ) {\n\n\t\t\t\tconsole.warn( `THREE.Material: '${ key }' is not a property of THREE.${ this.type }.` );\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\tif ( currentValue && currentValue.isColor ) {\n\n\t\t\t\tcurrentValue.set( newValue );\n\n\t\t\t} else if ( ( currentValue && currentValue.isVector3 ) && ( newValue && newValue.isVector3 ) ) {\n\n\t\t\t\tcurrentValue.copy( newValue );\n\n\t\t\t} else {\n\n\t\t\t\tthis[ key ] = newValue;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst isRootObject = ( meta === undefined || typeof meta === 'string' );\n\n\t\tif ( isRootObject ) {\n\n\t\t\tmeta = {\n\t\t\t\ttextures: {},\n\t\t\t\timages: {}\n\t\t\t};\n\n\t\t}\n\n\t\tconst data = {\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.6,\n\t\t\t\ttype: 'Material',\n\t\t\t\tgenerator: 'Material.toJSON'\n\t\t\t}\n\t\t};\n\n\t\t// standard Material serialization\n\t\tdata.uuid = this.uuid;\n\t\tdata.type = this.type;\n\n\t\tif ( this.name !== '' ) data.name = this.name;\n\n\t\tif ( this.color && this.color.isColor ) data.color = this.color.getHex();\n\n\t\tif ( this.roughness !== undefined ) data.roughness = this.roughness;\n\t\tif ( this.metalness !== undefined ) data.metalness = this.metalness;\n\n\t\tif ( this.sheen !== undefined ) data.sheen = this.sheen;\n\t\tif ( this.sheenColor && this.sheenColor.isColor ) data.sheenColor = this.sheenColor.getHex();\n\t\tif ( this.sheenRoughness !== undefined ) data.sheenRoughness = this.sheenRoughness;\n\t\tif ( this.emissive && this.emissive.isColor ) data.emissive = this.emissive.getHex();\n\t\tif ( this.emissiveIntensity !== undefined && this.emissiveIntensity !== 1 ) data.emissiveIntensity = this.emissiveIntensity;\n\n\t\tif ( this.specular && this.specular.isColor ) data.specular = this.specular.getHex();\n\t\tif ( this.specularIntensity !== undefined ) data.specularIntensity = this.specularIntensity;\n\t\tif ( this.specularColor && this.specularColor.isColor ) data.specularColor = this.specularColor.getHex();\n\t\tif ( this.shininess !== undefined ) data.shininess = this.shininess;\n\t\tif ( this.clearcoat !== undefined ) data.clearcoat = this.clearcoat;\n\t\tif ( this.clearcoatRoughness !== undefined ) data.clearcoatRoughness = this.clearcoatRoughness;\n\n\t\tif ( this.clearcoatMap && this.clearcoatMap.isTexture ) {\n\n\t\t\tdata.clearcoatMap = this.clearcoatMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.clearcoatRoughnessMap && this.clearcoatRoughnessMap.isTexture ) {\n\n\t\t\tdata.clearcoatRoughnessMap = this.clearcoatRoughnessMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.clearcoatNormalMap && this.clearcoatNormalMap.isTexture ) {\n\n\t\t\tdata.clearcoatNormalMap = this.clearcoatNormalMap.toJSON( meta ).uuid;\n\t\t\tdata.clearcoatNormalScale = this.clearcoatNormalScale.toArray();\n\n\t\t}\n\n\t\tif ( this.dispersion !== undefined ) data.dispersion = this.dispersion;\n\n\t\tif ( this.iridescence !== undefined ) data.iridescence = this.iridescence;\n\t\tif ( this.iridescenceIOR !== undefined ) data.iridescenceIOR = this.iridescenceIOR;\n\t\tif ( this.iridescenceThicknessRange !== undefined ) data.iridescenceThicknessRange = this.iridescenceThicknessRange;\n\n\t\tif ( this.iridescenceMap && this.iridescenceMap.isTexture ) {\n\n\t\t\tdata.iridescenceMap = this.iridescenceMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.iridescenceThicknessMap && this.iridescenceThicknessMap.isTexture ) {\n\n\t\t\tdata.iridescenceThicknessMap = this.iridescenceThicknessMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.anisotropy !== undefined ) data.anisotropy = this.anisotropy;\n\t\tif ( this.anisotropyRotation !== undefined ) data.anisotropyRotation = this.anisotropyRotation;\n\n\t\tif ( this.anisotropyMap && this.anisotropyMap.isTexture ) {\n\n\t\t\tdata.anisotropyMap = this.anisotropyMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.map && this.map.isTexture ) data.map = this.map.toJSON( meta ).uuid;\n\t\tif ( this.matcap && this.matcap.isTexture ) data.matcap = this.matcap.toJSON( meta ).uuid;\n\t\tif ( this.alphaMap && this.alphaMap.isTexture ) data.alphaMap = this.alphaMap.toJSON( meta ).uuid;\n\n\t\tif ( this.lightMap && this.lightMap.isTexture ) {\n\n\t\t\tdata.lightMap = this.lightMap.toJSON( meta ).uuid;\n\t\t\tdata.lightMapIntensity = this.lightMapIntensity;\n\n\t\t}\n\n\t\tif ( this.aoMap && this.aoMap.isTexture ) {\n\n\t\t\tdata.aoMap = this.aoMap.toJSON( meta ).uuid;\n\t\t\tdata.aoMapIntensity = this.aoMapIntensity;\n\n\t\t}\n\n\t\tif ( this.bumpMap && this.bumpMap.isTexture ) {\n\n\t\t\tdata.bumpMap = this.bumpMap.toJSON( meta ).uuid;\n\t\t\tdata.bumpScale = this.bumpScale;\n\n\t\t}\n\n\t\tif ( this.normalMap && this.normalMap.isTexture ) {\n\n\t\t\tdata.normalMap = this.normalMap.toJSON( meta ).uuid;\n\t\t\tdata.normalMapType = this.normalMapType;\n\t\t\tdata.normalScale = this.normalScale.toArray();\n\n\t\t}\n\n\t\tif ( this.displacementMap && this.displacementMap.isTexture ) {\n\n\t\t\tdata.displacementMap = this.displacementMap.toJSON( meta ).uuid;\n\t\t\tdata.displacementScale = this.displacementScale;\n\t\t\tdata.displacementBias = this.displacementBias;\n\n\t\t}\n\n\t\tif ( this.roughnessMap && this.roughnessMap.isTexture ) data.roughnessMap = this.roughnessMap.toJSON( meta ).uuid;\n\t\tif ( this.metalnessMap && this.metalnessMap.isTexture ) data.metalnessMap = this.metalnessMap.toJSON( meta ).uuid;\n\n\t\tif ( this.emissiveMap && this.emissiveMap.isTexture ) data.emissiveMap = this.emissiveMap.toJSON( meta ).uuid;\n\t\tif ( this.specularMap && this.specularMap.isTexture ) data.specularMap = this.specularMap.toJSON( meta ).uuid;\n\t\tif ( this.specularIntensityMap && this.specularIntensityMap.isTexture ) data.specularIntensityMap = this.specularIntensityMap.toJSON( meta ).uuid;\n\t\tif ( this.specularColorMap && this.specularColorMap.isTexture ) data.specularColorMap = this.specularColorMap.toJSON( meta ).uuid;\n\n\t\tif ( this.envMap && this.envMap.isTexture ) {\n\n\t\t\tdata.envMap = this.envMap.toJSON( meta ).uuid;\n\n\t\t\tif ( this.combine !== undefined ) data.combine = this.combine;\n\n\t\t}\n\n\t\tif ( this.envMapRotation !== undefined ) data.envMapRotation = this.envMapRotation.toArray();\n\t\tif ( this.envMapIntensity !== undefined ) data.envMapIntensity = this.envMapIntensity;\n\t\tif ( this.reflectivity !== undefined ) data.reflectivity = this.reflectivity;\n\t\tif ( this.refractionRatio !== undefined ) data.refractionRatio = this.refractionRatio;\n\n\t\tif ( this.gradientMap && this.gradientMap.isTexture ) {\n\n\t\t\tdata.gradientMap = this.gradientMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.transmission !== undefined ) data.transmission = this.transmission;\n\t\tif ( this.transmissionMap && this.transmissionMap.isTexture ) data.transmissionMap = this.transmissionMap.toJSON( meta ).uuid;\n\t\tif ( this.thickness !== undefined ) data.thickness = this.thickness;\n\t\tif ( this.thicknessMap && this.thicknessMap.isTexture ) data.thicknessMap = this.thicknessMap.toJSON( meta ).uuid;\n\t\tif ( this.attenuationDistance !== undefined && this.attenuationDistance !== Infinity ) data.attenuationDistance = this.attenuationDistance;\n\t\tif ( this.attenuationColor !== undefined ) data.attenuationColor = this.attenuationColor.getHex();\n\n\t\tif ( this.size !== undefined ) data.size = this.size;\n\t\tif ( this.shadowSide !== null ) data.shadowSide = this.shadowSide;\n\t\tif ( this.sizeAttenuation !== undefined ) data.sizeAttenuation = this.sizeAttenuation;\n\n\t\tif ( this.blending !== NormalBlending ) data.blending = this.blending;\n\t\tif ( this.side !== FrontSide ) data.side = this.side;\n\t\tif ( this.vertexColors === true ) data.vertexColors = true;\n\n\t\tif ( this.opacity < 1 ) data.opacity = this.opacity;\n\t\tif ( this.transparent === true ) data.transparent = true;\n\n\t\tif ( this.blendSrc !== SrcAlphaFactor ) data.blendSrc = this.blendSrc;\n\t\tif ( this.blendDst !== OneMinusSrcAlphaFactor ) data.blendDst = this.blendDst;\n\t\tif ( this.blendEquation !== AddEquation ) data.blendEquation = this.blendEquation;\n\t\tif ( this.blendSrcAlpha !== null ) data.blendSrcAlpha = this.blendSrcAlpha;\n\t\tif ( this.blendDstAlpha !== null ) data.blendDstAlpha = this.blendDstAlpha;\n\t\tif ( this.blendEquationAlpha !== null ) data.blendEquationAlpha = this.blendEquationAlpha;\n\t\tif ( this.blendColor && this.blendColor.isColor ) data.blendColor = this.blendColor.getHex();\n\t\tif ( this.blendAlpha !== 0 ) data.blendAlpha = this.blendAlpha;\n\n\t\tif ( this.depthFunc !== LessEqualDepth ) data.depthFunc = this.depthFunc;\n\t\tif ( this.depthTest === false ) data.depthTest = this.depthTest;\n\t\tif ( this.depthWrite === false ) data.depthWrite = this.depthWrite;\n\t\tif ( this.colorWrite === false ) data.colorWrite = this.colorWrite;\n\n\t\tif ( this.stencilWriteMask !== 0xff ) data.stencilWriteMask = this.stencilWriteMask;\n\t\tif ( this.stencilFunc !== AlwaysStencilFunc ) data.stencilFunc = this.stencilFunc;\n\t\tif ( this.stencilRef !== 0 ) data.stencilRef = this.stencilRef;\n\t\tif ( this.stencilFuncMask !== 0xff ) data.stencilFuncMask = this.stencilFuncMask;\n\t\tif ( this.stencilFail !== KeepStencilOp ) data.stencilFail = this.stencilFail;\n\t\tif ( this.stencilZFail !== KeepStencilOp ) data.stencilZFail = this.stencilZFail;\n\t\tif ( this.stencilZPass !== KeepStencilOp ) data.stencilZPass = this.stencilZPass;\n\t\tif ( this.stencilWrite === true ) data.stencilWrite = this.stencilWrite;\n\n\t\t// rotation (SpriteMaterial)\n\t\tif ( this.rotation !== undefined && this.rotation !== 0 ) data.rotation = this.rotation;\n\n\t\tif ( this.polygonOffset === true ) data.polygonOffset = true;\n\t\tif ( this.polygonOffsetFactor !== 0 ) data.polygonOffsetFactor = this.polygonOffsetFactor;\n\t\tif ( this.polygonOffsetUnits !== 0 ) data.polygonOffsetUnits = this.polygonOffsetUnits;\n\n\t\tif ( this.linewidth !== undefined && this.linewidth !== 1 ) data.linewidth = this.linewidth;\n\t\tif ( this.dashSize !== undefined ) data.dashSize = this.dashSize;\n\t\tif ( this.gapSize !== undefined ) data.gapSize = this.gapSize;\n\t\tif ( this.scale !== undefined ) data.scale = this.scale;\n\n\t\tif ( this.dithering === true ) data.dithering = true;\n\n\t\tif ( this.alphaTest > 0 ) data.alphaTest = this.alphaTest;\n\t\tif ( this.alphaHash === true ) data.alphaHash = true;\n\t\tif ( this.alphaToCoverage === true ) data.alphaToCoverage = true;\n\t\tif ( this.premultipliedAlpha === true ) data.premultipliedAlpha = true;\n\t\tif ( this.forceSinglePass === true ) data.forceSinglePass = true;\n\n\t\tif ( this.wireframe === true ) data.wireframe = true;\n\t\tif ( this.wireframeLinewidth > 1 ) data.wireframeLinewidth = this.wireframeLinewidth;\n\t\tif ( this.wireframeLinecap !== 'round' ) data.wireframeLinecap = this.wireframeLinecap;\n\t\tif ( this.wireframeLinejoin !== 'round' ) data.wireframeLinejoin = this.wireframeLinejoin;\n\n\t\tif ( this.flatShading === true ) data.flatShading = true;\n\n\t\tif ( this.visible === false ) data.visible = false;\n\n\t\tif ( this.toneMapped === false ) data.toneMapped = false;\n\n\t\tif ( this.fog === false ) data.fog = false;\n\n\t\tif ( Object.keys( this.userData ).length > 0 ) data.userData = this.userData;\n\n\t\t// TODO: Copied from Object3D.toJSON\n\n\t\tfunction extractFromCache( cache ) {\n\n\t\t\tconst values = [];\n\n\t\t\tfor ( const key in cache ) {\n\n\t\t\t\tconst data = cache[ key ];\n\t\t\t\tdelete data.metadata;\n\t\t\t\tvalues.push( data );\n\n\t\t\t}\n\n\t\t\treturn values;\n\n\t\t}\n\n\t\tif ( isRootObject ) {\n\n\t\t\tconst textures = extractFromCache( meta.textures );\n\t\t\tconst images = extractFromCache( meta.images );\n\n\t\t\tif ( textures.length > 0 ) data.textures = textures;\n\t\t\tif ( images.length > 0 ) data.images = images;\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.name = source.name;\n\n\t\tthis.blending = source.blending;\n\t\tthis.side = source.side;\n\t\tthis.vertexColors = source.vertexColors;\n\n\t\tthis.opacity = source.opacity;\n\t\tthis.transparent = source.transparent;\n\n\t\tthis.blendSrc = source.blendSrc;\n\t\tthis.blendDst = source.blendDst;\n\t\tthis.blendEquation = source.blendEquation;\n\t\tthis.blendSrcAlpha = source.blendSrcAlpha;\n\t\tthis.blendDstAlpha = source.blendDstAlpha;\n\t\tthis.blendEquationAlpha = source.blendEquationAlpha;\n\t\tthis.blendColor.copy( source.blendColor );\n\t\tthis.blendAlpha = source.blendAlpha;\n\n\t\tthis.depthFunc = source.depthFunc;\n\t\tthis.depthTest = source.depthTest;\n\t\tthis.depthWrite = source.depthWrite;\n\n\t\tthis.stencilWriteMask = source.stencilWriteMask;\n\t\tthis.stencilFunc = source.stencilFunc;\n\t\tthis.stencilRef = source.stencilRef;\n\t\tthis.stencilFuncMask = source.stencilFuncMask;\n\t\tthis.stencilFail = source.stencilFail;\n\t\tthis.stencilZFail = source.stencilZFail;\n\t\tthis.stencilZPass = source.stencilZPass;\n\t\tthis.stencilWrite = source.stencilWrite;\n\n\t\tconst srcPlanes = source.clippingPlanes;\n\t\tlet dstPlanes = null;\n\n\t\tif ( srcPlanes !== null ) {\n\n\t\t\tconst n = srcPlanes.length;\n\t\t\tdstPlanes = new Array( n );\n\n\t\t\tfor ( let i = 0; i !== n; ++ i ) {\n\n\t\t\t\tdstPlanes[ i ] = srcPlanes[ i ].clone();\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis.clippingPlanes = dstPlanes;\n\t\tthis.clipIntersection = source.clipIntersection;\n\t\tthis.clipShadows = source.clipShadows;\n\n\t\tthis.shadowSide = source.shadowSide;\n\n\t\tthis.colorWrite = source.colorWrite;\n\n\t\tthis.precision = source.precision;\n\n\t\tthis.polygonOffset = source.polygonOffset;\n\t\tthis.polygonOffsetFactor = source.polygonOffsetFactor;\n\t\tthis.polygonOffsetUnits = source.polygonOffsetUnits;\n\n\t\tthis.dithering = source.dithering;\n\n\t\tthis.alphaTest = source.alphaTest;\n\t\tthis.alphaHash = source.alphaHash;\n\t\tthis.alphaToCoverage = source.alphaToCoverage;\n\t\tthis.premultipliedAlpha = source.premultipliedAlpha;\n\t\tthis.forceSinglePass = source.forceSinglePass;\n\n\t\tthis.visible = source.visible;\n\n\t\tthis.toneMapped = source.toneMapped;\n\n\t\tthis.userData = JSON.parse( JSON.stringify( source.userData ) );\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n\tonBuild( /* shaderobject, renderer */ ) {\n\n\t\tconsole.warn( 'Material: onBuild() has been removed.' ); // @deprecated, r166\n\n\t}\n\n}\n\nclass MeshBasicMaterial extends Material {\n\n\tstatic get type() {\n\n\t\treturn 'MeshBasicMaterial';\n\n\t}\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isMeshBasicMaterial = true;\n\n\t\tthis.color = new Color( 0xffffff ); // emissive\n\n\t\tthis.map = null;\n\n\t\tthis.lightMap = null;\n\t\tthis.lightMapIntensity = 1.0;\n\n\t\tthis.aoMap = null;\n\t\tthis.aoMapIntensity = 1.0;\n\n\t\tthis.specularMap = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.envMap = null;\n\t\tthis.envMapRotation = new Euler();\n\t\tthis.combine = MultiplyOperation;\n\t\tthis.reflectivity = 1;\n\t\tthis.refractionRatio = 0.98;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\t\tthis.wireframeLinecap = 'round';\n\t\tthis.wireframeLinejoin = 'round';\n\n\t\tthis.fog = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.map = source.map;\n\n\t\tthis.lightMap = source.lightMap;\n\t\tthis.lightMapIntensity = source.lightMapIntensity;\n\n\t\tthis.aoMap = source.aoMap;\n\t\tthis.aoMapIntensity = source.aoMapIntensity;\n\n\t\tthis.specularMap = source.specularMap;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.envMap = source.envMap;\n\t\tthis.envMapRotation.copy( source.envMapRotation );\n\t\tthis.combine = source.combine;\n\t\tthis.reflectivity = source.reflectivity;\n\t\tthis.refractionRatio = source.refractionRatio;\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\t\tthis.wireframeLinecap = source.wireframeLinecap;\n\t\tthis.wireframeLinejoin = source.wireframeLinejoin;\n\n\t\tthis.fog = source.fog;\n\n\t\treturn this;\n\n\t}\n\n}\n\n// Fast Half Float Conversions, http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf\n\nconst _tables = /*@__PURE__*/ _generateTables();\n\nfunction _generateTables() {\n\n\t// float32 to float16 helpers\n\n\tconst buffer = new ArrayBuffer( 4 );\n\tconst floatView = new Float32Array( buffer );\n\tconst uint32View = new Uint32Array( buffer );\n\n\tconst baseTable = new Uint32Array( 512 );\n\tconst shiftTable = new Uint32Array( 512 );\n\n\tfor ( let i = 0; i < 256; ++ i ) {\n\n\t\tconst e = i - 127;\n\n\t\t// very small number (0, -0)\n\n\t\tif ( e < - 27 ) {\n\n\t\t\tbaseTable[ i ] = 0x0000;\n\t\t\tbaseTable[ i | 0x100 ] = 0x8000;\n\t\t\tshiftTable[ i ] = 24;\n\t\t\tshiftTable[ i | 0x100 ] = 24;\n\n\t\t\t// small number (denorm)\n\n\t\t} else if ( e < - 14 ) {\n\n\t\t\tbaseTable[ i ] = 0x0400 >> ( - e - 14 );\n\t\t\tbaseTable[ i | 0x100 ] = ( 0x0400 >> ( - e - 14 ) ) | 0x8000;\n\t\t\tshiftTable[ i ] = - e - 1;\n\t\t\tshiftTable[ i | 0x100 ] = - e - 1;\n\n\t\t\t// normal number\n\n\t\t} else if ( e <= 15 ) {\n\n\t\t\tbaseTable[ i ] = ( e + 15 ) << 10;\n\t\t\tbaseTable[ i | 0x100 ] = ( ( e + 15 ) << 10 ) | 0x8000;\n\t\t\tshiftTable[ i ] = 13;\n\t\t\tshiftTable[ i | 0x100 ] = 13;\n\n\t\t\t// large number (Infinity, -Infinity)\n\n\t\t} else if ( e < 128 ) {\n\n\t\t\tbaseTable[ i ] = 0x7c00;\n\t\t\tbaseTable[ i | 0x100 ] = 0xfc00;\n\t\t\tshiftTable[ i ] = 24;\n\t\t\tshiftTable[ i | 0x100 ] = 24;\n\n\t\t\t// stay (NaN, Infinity, -Infinity)\n\n\t\t} else {\n\n\t\t\tbaseTable[ i ] = 0x7c00;\n\t\t\tbaseTable[ i | 0x100 ] = 0xfc00;\n\t\t\tshiftTable[ i ] = 13;\n\t\t\tshiftTable[ i | 0x100 ] = 13;\n\n\t\t}\n\n\t}\n\n\t// float16 to float32 helpers\n\n\tconst mantissaTable = new Uint32Array( 2048 );\n\tconst exponentTable = new Uint32Array( 64 );\n\tconst offsetTable = new Uint32Array( 64 );\n\n\tfor ( let i = 1; i < 1024; ++ i ) {\n\n\t\tlet m = i << 13; // zero pad mantissa bits\n\t\tlet e = 0; // zero exponent\n\n\t\t// normalized\n\t\twhile ( ( m & 0x00800000 ) === 0 ) {\n\n\t\t\tm <<= 1;\n\t\t\te -= 0x00800000; // decrement exponent\n\n\t\t}\n\n\t\tm &= ~ 0x00800000; // clear leading 1 bit\n\t\te += 0x38800000; // adjust bias\n\n\t\tmantissaTable[ i ] = m | e;\n\n\t}\n\n\tfor ( let i = 1024; i < 2048; ++ i ) {\n\n\t\tmantissaTable[ i ] = 0x38000000 + ( ( i - 1024 ) << 13 );\n\n\t}\n\n\tfor ( let i = 1; i < 31; ++ i ) {\n\n\t\texponentTable[ i ] = i << 23;\n\n\t}\n\n\texponentTable[ 31 ] = 0x47800000;\n\texponentTable[ 32 ] = 0x80000000;\n\n\tfor ( let i = 33; i < 63; ++ i ) {\n\n\t\texponentTable[ i ] = 0x80000000 + ( ( i - 32 ) << 23 );\n\n\t}\n\n\texponentTable[ 63 ] = 0xc7800000;\n\n\tfor ( let i = 1; i < 64; ++ i ) {\n\n\t\tif ( i !== 32 ) {\n\n\t\t\toffsetTable[ i ] = 1024;\n\n\t\t}\n\n\t}\n\n\treturn {\n\t\tfloatView: floatView,\n\t\tuint32View: uint32View,\n\t\tbaseTable: baseTable,\n\t\tshiftTable: shiftTable,\n\t\tmantissaTable: mantissaTable,\n\t\texponentTable: exponentTable,\n\t\toffsetTable: offsetTable\n\t};\n\n}\n\n// float32 to float16\n\nfunction toHalfFloat( val ) {\n\n\tif ( Math.abs( val ) > 65504 ) console.warn( 'THREE.DataUtils.toHalfFloat(): Value out of range.' );\n\n\tval = clamp( val, - 65504, 65504 );\n\n\t_tables.floatView[ 0 ] = val;\n\tconst f = _tables.uint32View[ 0 ];\n\tconst e = ( f >> 23 ) & 0x1ff;\n\treturn _tables.baseTable[ e ] + ( ( f & 0x007fffff ) >> _tables.shiftTable[ e ] );\n\n}\n\n// float16 to float32\n\nfunction fromHalfFloat( val ) {\n\n\tconst m = val >> 10;\n\t_tables.uint32View[ 0 ] = _tables.mantissaTable[ _tables.offsetTable[ m ] + ( val & 0x3ff ) ] + _tables.exponentTable[ m ];\n\treturn _tables.floatView[ 0 ];\n\n}\n\nconst DataUtils = {\n\ttoHalfFloat: toHalfFloat,\n\tfromHalfFloat: fromHalfFloat,\n};\n\nconst _vector$9 = /*@__PURE__*/ new Vector3();\nconst _vector2$1 = /*@__PURE__*/ new Vector2();\n\nclass BufferAttribute {\n\n\tconstructor( array, itemSize, normalized = false ) {\n\n\t\tif ( Array.isArray( array ) ) {\n\n\t\t\tthrow new TypeError( 'THREE.BufferAttribute: array should be a Typed Array.' );\n\n\t\t}\n\n\t\tthis.isBufferAttribute = true;\n\n\t\tthis.name = '';\n\n\t\tthis.array = array;\n\t\tthis.itemSize = itemSize;\n\t\tthis.count = array !== undefined ? array.length / itemSize : 0;\n\t\tthis.normalized = normalized;\n\n\t\tthis.usage = StaticDrawUsage;\n\t\tthis.updateRanges = [];\n\t\tthis.gpuType = FloatType;\n\n\t\tthis.version = 0;\n\n\t}\n\n\tonUploadCallback() {}\n\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n\tsetUsage( value ) {\n\n\t\tthis.usage = value;\n\n\t\treturn this;\n\n\t}\n\n\taddUpdateRange( start, count ) {\n\n\t\tthis.updateRanges.push( { start, count } );\n\n\t}\n\n\tclearUpdateRanges() {\n\n\t\tthis.updateRanges.length = 0;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.name = source.name;\n\t\tthis.array = new source.array.constructor( source.array );\n\t\tthis.itemSize = source.itemSize;\n\t\tthis.count = source.count;\n\t\tthis.normalized = source.normalized;\n\n\t\tthis.usage = source.usage;\n\t\tthis.gpuType = source.gpuType;\n\n\t\treturn this;\n\n\t}\n\n\tcopyAt( index1, attribute, index2 ) {\n\n\t\tindex1 *= this.itemSize;\n\t\tindex2 *= attribute.itemSize;\n\n\t\tfor ( let i = 0, l = this.itemSize; i < l; i ++ ) {\n\n\t\t\tthis.array[ index1 + i ] = attribute.array[ index2 + i ];\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tcopyArray( array ) {\n\n\t\tthis.array.set( array );\n\n\t\treturn this;\n\n\t}\n\n\tapplyMatrix3( m ) {\n\n\t\tif ( this.itemSize === 2 ) {\n\n\t\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t\t_vector2$1.fromBufferAttribute( this, i );\n\t\t\t\t_vector2$1.applyMatrix3( m );\n\n\t\t\t\tthis.setXY( i, _vector2$1.x, _vector2$1.y );\n\n\t\t\t}\n\n\t\t} else if ( this.itemSize === 3 ) {\n\n\t\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t\t_vector$9.fromBufferAttribute( this, i );\n\t\t\t\t_vector$9.applyMatrix3( m );\n\n\t\t\t\tthis.setXYZ( i, _vector$9.x, _vector$9.y, _vector$9.z );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tapplyMatrix4( m ) {\n\n\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t_vector$9.fromBufferAttribute( this, i );\n\n\t\t\t_vector$9.applyMatrix4( m );\n\n\t\t\tthis.setXYZ( i, _vector$9.x, _vector$9.y, _vector$9.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tapplyNormalMatrix( m ) {\n\n\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t_vector$9.fromBufferAttribute( this, i );\n\n\t\t\t_vector$9.applyNormalMatrix( m );\n\n\t\t\tthis.setXYZ( i, _vector$9.x, _vector$9.y, _vector$9.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttransformDirection( m ) {\n\n\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t_vector$9.fromBufferAttribute( this, i );\n\n\t\t\t_vector$9.transformDirection( m );\n\n\t\t\tthis.setXYZ( i, _vector$9.x, _vector$9.y, _vector$9.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tset( value, offset = 0 ) {\n\n\t\t// Matching BufferAttribute constructor, do not normalize the array.\n\t\tthis.array.set( value, offset );\n\n\t\treturn this;\n\n\t}\n\n\tgetComponent( index, component ) {\n\n\t\tlet value = this.array[ index * this.itemSize + component ];\n\n\t\tif ( this.normalized ) value = denormalize( value, this.array );\n\n\t\treturn value;\n\n\t}\n\n\tsetComponent( index, component, value ) {\n\n\t\tif ( this.normalized ) value = normalize( value, this.array );\n\n\t\tthis.array[ index * this.itemSize + component ] = value;\n\n\t\treturn this;\n\n\t}\n\n\tgetX( index ) {\n\n\t\tlet x = this.array[ index * this.itemSize ];\n\n\t\tif ( this.normalized ) x = denormalize( x, this.array );\n\n\t\treturn x;\n\n\t}\n\n\tsetX( index, x ) {\n\n\t\tif ( this.normalized ) x = normalize( x, this.array );\n\n\t\tthis.array[ index * this.itemSize ] = x;\n\n\t\treturn this;\n\n\t}\n\n\tgetY( index ) {\n\n\t\tlet y = this.array[ index * this.itemSize + 1 ];\n\n\t\tif ( this.normalized ) y = denormalize( y, this.array );\n\n\t\treturn y;\n\n\t}\n\n\tsetY( index, y ) {\n\n\t\tif ( this.normalized ) y = normalize( y, this.array );\n\n\t\tthis.array[ index * this.itemSize + 1 ] = y;\n\n\t\treturn this;\n\n\t}\n\n\tgetZ( index ) {\n\n\t\tlet z = this.array[ index * this.itemSize + 2 ];\n\n\t\tif ( this.normalized ) z = denormalize( z, this.array );\n\n\t\treturn z;\n\n\t}\n\n\tsetZ( index, z ) {\n\n\t\tif ( this.normalized ) z = normalize( z, this.array );\n\n\t\tthis.array[ index * this.itemSize + 2 ] = z;\n\n\t\treturn this;\n\n\t}\n\n\tgetW( index ) {\n\n\t\tlet w = this.array[ index * this.itemSize + 3 ];\n\n\t\tif ( this.normalized ) w = denormalize( w, this.array );\n\n\t\treturn w;\n\n\t}\n\n\tsetW( index, w ) {\n\n\t\tif ( this.normalized ) w = normalize( w, this.array );\n\n\t\tthis.array[ index * this.itemSize + 3 ] = w;\n\n\t\treturn this;\n\n\t}\n\n\tsetXY( index, x, y ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\n\t\t}\n\n\t\tthis.array[ index + 0 ] = x;\n\t\tthis.array[ index + 1 ] = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetXYZ( index, x, y, z ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\t\t\tz = normalize( z, this.array );\n\n\t\t}\n\n\t\tthis.array[ index + 0 ] = x;\n\t\tthis.array[ index + 1 ] = y;\n\t\tthis.array[ index + 2 ] = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetXYZW( index, x, y, z, w ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\t\t\tz = normalize( z, this.array );\n\t\t\tw = normalize( w, this.array );\n\n\t\t}\n\n\t\tthis.array[ index + 0 ] = x;\n\t\tthis.array[ index + 1 ] = y;\n\t\tthis.array[ index + 2 ] = z;\n\t\tthis.array[ index + 3 ] = w;\n\n\t\treturn this;\n\n\t}\n\n\tonUpload( callback ) {\n\n\t\tthis.onUploadCallback = callback;\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.array, this.itemSize ).copy( this );\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = {\n\t\t\titemSize: this.itemSize,\n\t\t\ttype: this.array.constructor.name,\n\t\t\tarray: Array.from( this.array ),\n\t\t\tnormalized: this.normalized\n\t\t};\n\n\t\tif ( this.name !== '' ) data.name = this.name;\n\t\tif ( this.usage !== StaticDrawUsage ) data.usage = this.usage;\n\n\t\treturn data;\n\n\t}\n\n}\n\n//\n\nclass Int8BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Int8Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Uint8BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint8Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Uint8ClampedBufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint8ClampedArray( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Int16BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Int16Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Uint16BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint16Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Int32BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Int32Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Uint32BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint32Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Float16BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint16Array( array ), itemSize, normalized );\n\n\t\tthis.isFloat16BufferAttribute = true;\n\n\t}\n\n\tgetX( index ) {\n\n\t\tlet x = fromHalfFloat( this.array[ index * this.itemSize ] );\n\n\t\tif ( this.normalized ) x = denormalize( x, this.array );\n\n\t\treturn x;\n\n\t}\n\n\tsetX( index, x ) {\n\n\t\tif ( this.normalized ) x = normalize( x, this.array );\n\n\t\tthis.array[ index * this.itemSize ] = toHalfFloat( x );\n\n\t\treturn this;\n\n\t}\n\n\tgetY( index ) {\n\n\t\tlet y = fromHalfFloat( this.array[ index * this.itemSize + 1 ] );\n\n\t\tif ( this.normalized ) y = denormalize( y, this.array );\n\n\t\treturn y;\n\n\t}\n\n\tsetY( index, y ) {\n\n\t\tif ( this.normalized ) y = normalize( y, this.array );\n\n\t\tthis.array[ index * this.itemSize + 1 ] = toHalfFloat( y );\n\n\t\treturn this;\n\n\t}\n\n\tgetZ( index ) {\n\n\t\tlet z = fromHalfFloat( this.array[ index * this.itemSize + 2 ] );\n\n\t\tif ( this.normalized ) z = denormalize( z, this.array );\n\n\t\treturn z;\n\n\t}\n\n\tsetZ( index, z ) {\n\n\t\tif ( this.normalized ) z = normalize( z, this.array );\n\n\t\tthis.array[ index * this.itemSize + 2 ] = toHalfFloat( z );\n\n\t\treturn this;\n\n\t}\n\n\tgetW( index ) {\n\n\t\tlet w = fromHalfFloat( this.array[ index * this.itemSize + 3 ] );\n\n\t\tif ( this.normalized ) w = denormalize( w, this.array );\n\n\t\treturn w;\n\n\t}\n\n\tsetW( index, w ) {\n\n\t\tif ( this.normalized ) w = normalize( w, this.array );\n\n\t\tthis.array[ index * this.itemSize + 3 ] = toHalfFloat( w );\n\n\t\treturn this;\n\n\t}\n\n\tsetXY( index, x, y ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\n\t\t}\n\n\t\tthis.array[ index + 0 ] = toHalfFloat( x );\n\t\tthis.array[ index + 1 ] = toHalfFloat( y );\n\n\t\treturn this;\n\n\t}\n\n\tsetXYZ( index, x, y, z ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\t\t\tz = normalize( z, this.array );\n\n\t\t}\n\n\t\tthis.array[ index + 0 ] = toHalfFloat( x );\n\t\tthis.array[ index + 1 ] = toHalfFloat( y );\n\t\tthis.array[ index + 2 ] = toHalfFloat( z );\n\n\t\treturn this;\n\n\t}\n\n\tsetXYZW( index, x, y, z, w ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\t\t\tz = normalize( z, this.array );\n\t\t\tw = normalize( w, this.array );\n\n\t\t}\n\n\t\tthis.array[ index + 0 ] = toHalfFloat( x );\n\t\tthis.array[ index + 1 ] = toHalfFloat( y );\n\t\tthis.array[ index + 2 ] = toHalfFloat( z );\n\t\tthis.array[ index + 3 ] = toHalfFloat( w );\n\n\t\treturn this;\n\n\t}\n\n}\n\n\nclass Float32BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Float32Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nlet _id$2 = 0;\n\nconst _m1$2 = /*@__PURE__*/ new Matrix4();\nconst _obj = /*@__PURE__*/ new Object3D();\nconst _offset = /*@__PURE__*/ new Vector3();\nconst _box$2 = /*@__PURE__*/ new Box3();\nconst _boxMorphTargets = /*@__PURE__*/ new Box3();\nconst _vector$8 = /*@__PURE__*/ new Vector3();\n\nclass BufferGeometry extends EventDispatcher {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isBufferGeometry = true;\n\n\t\tObject.defineProperty( this, 'id', { value: _id$2 ++ } );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.name = '';\n\t\tthis.type = 'BufferGeometry';\n\n\t\tthis.index = null;\n\t\tthis.indirect = null;\n\t\tthis.attributes = {};\n\n\t\tthis.morphAttributes = {};\n\t\tthis.morphTargetsRelative = false;\n\n\t\tthis.groups = [];\n\n\t\tthis.boundingBox = null;\n\t\tthis.boundingSphere = null;\n\n\t\tthis.drawRange = { start: 0, count: Infinity };\n\n\t\tthis.userData = {};\n\n\t}\n\n\tgetIndex() {\n\n\t\treturn this.index;\n\n\t}\n\n\tsetIndex( index ) {\n\n\t\tif ( Array.isArray( index ) ) {\n\n\t\t\tthis.index = new ( arrayNeedsUint32( index ) ? Uint32BufferAttribute : Uint16BufferAttribute )( index, 1 );\n\n\t\t} else {\n\n\t\t\tthis.index = index;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetIndirect( indirect ) {\n\n\t\tthis.indirect = indirect;\n\n\t\treturn this;\n\n\t}\n\n\tgetIndirect() {\n\n\t\treturn this.indirect;\n\n\t}\n\n\tgetAttribute( name ) {\n\n\t\treturn this.attributes[ name ];\n\n\t}\n\n\tsetAttribute( name, attribute ) {\n\n\t\tthis.attributes[ name ] = attribute;\n\n\t\treturn this;\n\n\t}\n\n\tdeleteAttribute( name ) {\n\n\t\tdelete this.attributes[ name ];\n\n\t\treturn this;\n\n\t}\n\n\thasAttribute( name ) {\n\n\t\treturn this.attributes[ name ] !== undefined;\n\n\t}\n\n\taddGroup( start, count, materialIndex = 0 ) {\n\n\t\tthis.groups.push( {\n\n\t\t\tstart: start,\n\t\t\tcount: count,\n\t\t\tmaterialIndex: materialIndex\n\n\t\t} );\n\n\t}\n\n\tclearGroups() {\n\n\t\tthis.groups = [];\n\n\t}\n\n\tsetDrawRange( start, count ) {\n\n\t\tthis.drawRange.start = start;\n\t\tthis.drawRange.count = count;\n\n\t}\n\n\tapplyMatrix4( matrix ) {\n\n\t\tconst position = this.attributes.position;\n\n\t\tif ( position !== undefined ) {\n\n\t\t\tposition.applyMatrix4( matrix );\n\n\t\t\tposition.needsUpdate = true;\n\n\t\t}\n\n\t\tconst normal = this.attributes.normal;\n\n\t\tif ( normal !== undefined ) {\n\n\t\t\tconst normalMatrix = new Matrix3().getNormalMatrix( matrix );\n\n\t\t\tnormal.applyNormalMatrix( normalMatrix );\n\n\t\t\tnormal.needsUpdate = true;\n\n\t\t}\n\n\t\tconst tangent = this.attributes.tangent;\n\n\t\tif ( tangent !== undefined ) {\n\n\t\t\ttangent.transformDirection( matrix );\n\n\t\t\ttangent.needsUpdate = true;\n\n\t\t}\n\n\t\tif ( this.boundingBox !== null ) {\n\n\t\t\tthis.computeBoundingBox();\n\n\t\t}\n\n\t\tif ( this.boundingSphere !== null ) {\n\n\t\t\tthis.computeBoundingSphere();\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tapplyQuaternion( q ) {\n\n\t\t_m1$2.makeRotationFromQuaternion( q );\n\n\t\tthis.applyMatrix4( _m1$2 );\n\n\t\treturn this;\n\n\t}\n\n\trotateX( angle ) {\n\n\t\t// rotate geometry around world x-axis\n\n\t\t_m1$2.makeRotationX( angle );\n\n\t\tthis.applyMatrix4( _m1$2 );\n\n\t\treturn this;\n\n\t}\n\n\trotateY( angle ) {\n\n\t\t// rotate geometry around world y-axis\n\n\t\t_m1$2.makeRotationY( angle );\n\n\t\tthis.applyMatrix4( _m1$2 );\n\n\t\treturn this;\n\n\t}\n\n\trotateZ( angle ) {\n\n\t\t// rotate geometry around world z-axis\n\n\t\t_m1$2.makeRotationZ( angle );\n\n\t\tthis.applyMatrix4( _m1$2 );\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( x, y, z ) {\n\n\t\t// translate geometry\n\n\t\t_m1$2.makeTranslation( x, y, z );\n\n\t\tthis.applyMatrix4( _m1$2 );\n\n\t\treturn this;\n\n\t}\n\n\tscale( x, y, z ) {\n\n\t\t// scale geometry\n\n\t\t_m1$2.makeScale( x, y, z );\n\n\t\tthis.applyMatrix4( _m1$2 );\n\n\t\treturn this;\n\n\t}\n\n\tlookAt( vector ) {\n\n\t\t_obj.lookAt( vector );\n\n\t\t_obj.updateMatrix();\n\n\t\tthis.applyMatrix4( _obj.matrix );\n\n\t\treturn this;\n\n\t}\n\n\tcenter() {\n\n\t\tthis.computeBoundingBox();\n\n\t\tthis.boundingBox.getCenter( _offset ).negate();\n\n\t\tthis.translate( _offset.x, _offset.y, _offset.z );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromPoints( points ) {\n\n\t\tconst positionAttribute = this.getAttribute( 'position' );\n\n\t\tif ( positionAttribute === undefined ) {\n\n\t\t\tconst position = [];\n\n\t\t\tfor ( let i = 0, l = points.length; i < l; i ++ ) {\n\n\t\t\t\tconst point = points[ i ];\n\t\t\t\tposition.push( point.x, point.y, point.z || 0 );\n\n\t\t\t}\n\n\t\t\tthis.setAttribute( 'position', new Float32BufferAttribute( position, 3 ) );\n\n\t\t} else {\n\n\t\t\tfor ( let i = 0, l = positionAttribute.count; i < l; i ++ ) {\n\n\t\t\t\tconst point = points[ i ];\n\t\t\t\tpositionAttribute.setXYZ( i, point.x, point.y, point.z || 0 );\n\n\t\t\t}\n\n\t\t\tif ( points.length > positionAttribute.count ) {\n\n\t\t\t\tconsole.warn( 'THREE.BufferGeometry: Buffer size too small for points data. Use .dispose() and create a new geometry.' );\n\n\t\t\t}\n\n\t\t\tpositionAttribute.needsUpdate = true;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tcomputeBoundingBox() {\n\n\t\tif ( this.boundingBox === null ) {\n\n\t\t\tthis.boundingBox = new Box3();\n\n\t\t}\n\n\t\tconst position = this.attributes.position;\n\t\tconst morphAttributesPosition = this.morphAttributes.position;\n\n\t\tif ( position && position.isGLBufferAttribute ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box.', this );\n\n\t\t\tthis.boundingBox.set(\n\t\t\t\tnew Vector3( - Infinity, - Infinity, - Infinity ),\n\t\t\t\tnew Vector3( + Infinity, + Infinity, + Infinity )\n\t\t\t);\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( position !== undefined ) {\n\n\t\t\tthis.boundingBox.setFromBufferAttribute( position );\n\n\t\t\t// process morph attributes if present\n\n\t\t\tif ( morphAttributesPosition ) {\n\n\t\t\t\tfor ( let i = 0, il = morphAttributesPosition.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst morphAttribute = morphAttributesPosition[ i ];\n\t\t\t\t\t_box$2.setFromBufferAttribute( morphAttribute );\n\n\t\t\t\t\tif ( this.morphTargetsRelative ) {\n\n\t\t\t\t\t\t_vector$8.addVectors( this.boundingBox.min, _box$2.min );\n\t\t\t\t\t\tthis.boundingBox.expandByPoint( _vector$8 );\n\n\t\t\t\t\t\t_vector$8.addVectors( this.boundingBox.max, _box$2.max );\n\t\t\t\t\t\tthis.boundingBox.expandByPoint( _vector$8 );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tthis.boundingBox.expandByPoint( _box$2.min );\n\t\t\t\t\t\tthis.boundingBox.expandByPoint( _box$2.max );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tthis.boundingBox.makeEmpty();\n\n\t\t}\n\n\t\tif ( isNaN( this.boundingBox.min.x ) || isNaN( this.boundingBox.min.y ) || isNaN( this.boundingBox.min.z ) ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The \"position\" attribute is likely to have NaN values.', this );\n\n\t\t}\n\n\t}\n\n\tcomputeBoundingSphere() {\n\n\t\tif ( this.boundingSphere === null ) {\n\n\t\t\tthis.boundingSphere = new Sphere();\n\n\t\t}\n\n\t\tconst position = this.attributes.position;\n\t\tconst morphAttributesPosition = this.morphAttributes.position;\n\n\t\tif ( position && position.isGLBufferAttribute ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere.', this );\n\n\t\t\tthis.boundingSphere.set( new Vector3(), Infinity );\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( position ) {\n\n\t\t\t// first, find the center of the bounding sphere\n\n\t\t\tconst center = this.boundingSphere.center;\n\n\t\t\t_box$2.setFromBufferAttribute( position );\n\n\t\t\t// process morph attributes if present\n\n\t\t\tif ( morphAttributesPosition ) {\n\n\t\t\t\tfor ( let i = 0, il = morphAttributesPosition.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst morphAttribute = morphAttributesPosition[ i ];\n\t\t\t\t\t_boxMorphTargets.setFromBufferAttribute( morphAttribute );\n\n\t\t\t\t\tif ( this.morphTargetsRelative ) {\n\n\t\t\t\t\t\t_vector$8.addVectors( _box$2.min, _boxMorphTargets.min );\n\t\t\t\t\t\t_box$2.expandByPoint( _vector$8 );\n\n\t\t\t\t\t\t_vector$8.addVectors( _box$2.max, _boxMorphTargets.max );\n\t\t\t\t\t\t_box$2.expandByPoint( _vector$8 );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t_box$2.expandByPoint( _boxMorphTargets.min );\n\t\t\t\t\t\t_box$2.expandByPoint( _boxMorphTargets.max );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t_box$2.getCenter( center );\n\n\t\t\t// second, try to find a boundingSphere with a radius smaller than the\n\t\t\t// boundingSphere of the boundingBox: sqrt(3) smaller in the best case\n\n\t\t\tlet maxRadiusSq = 0;\n\n\t\t\tfor ( let i = 0, il = position.count; i < il; i ++ ) {\n\n\t\t\t\t_vector$8.fromBufferAttribute( position, i );\n\n\t\t\t\tmaxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( _vector$8 ) );\n\n\t\t\t}\n\n\t\t\t// process morph attributes if present\n\n\t\t\tif ( morphAttributesPosition ) {\n\n\t\t\t\tfor ( let i = 0, il = morphAttributesPosition.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst morphAttribute = morphAttributesPosition[ i ];\n\t\t\t\t\tconst morphTargetsRelative = this.morphTargetsRelative;\n\n\t\t\t\t\tfor ( let j = 0, jl = morphAttribute.count; j < jl; j ++ ) {\n\n\t\t\t\t\t\t_vector$8.fromBufferAttribute( morphAttribute, j );\n\n\t\t\t\t\t\tif ( morphTargetsRelative ) {\n\n\t\t\t\t\t\t\t_offset.fromBufferAttribute( position, j );\n\t\t\t\t\t\t\t_vector$8.add( _offset );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tmaxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( _vector$8 ) );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis.boundingSphere.radius = Math.sqrt( maxRadiusSq );\n\n\t\t\tif ( isNaN( this.boundingSphere.radius ) ) {\n\n\t\t\t\tconsole.error( 'THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The \"position\" attribute is likely to have NaN values.', this );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tcomputeTangents() {\n\n\t\tconst index = this.index;\n\t\tconst attributes = this.attributes;\n\n\t\t// based on http://www.terathon.com/code/tangent.html\n\t\t// (per vertex tangents)\n\n\t\tif ( index === null ||\n\t\t\t attributes.position === undefined ||\n\t\t\t attributes.normal === undefined ||\n\t\t\t attributes.uv === undefined ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tconst positionAttribute = attributes.position;\n\t\tconst normalAttribute = attributes.normal;\n\t\tconst uvAttribute = attributes.uv;\n\n\t\tif ( this.hasAttribute( 'tangent' ) === false ) {\n\n\t\t\tthis.setAttribute( 'tangent', new BufferAttribute( new Float32Array( 4 * positionAttribute.count ), 4 ) );\n\n\t\t}\n\n\t\tconst tangentAttribute = this.getAttribute( 'tangent' );\n\n\t\tconst tan1 = [], tan2 = [];\n\n\t\tfor ( let i = 0; i < positionAttribute.count; i ++ ) {\n\n\t\t\ttan1[ i ] = new Vector3();\n\t\t\ttan2[ i ] = new Vector3();\n\n\t\t}\n\n\t\tconst vA = new Vector3(),\n\t\t\tvB = new Vector3(),\n\t\t\tvC = new Vector3(),\n\n\t\t\tuvA = new Vector2(),\n\t\t\tuvB = new Vector2(),\n\t\t\tuvC = new Vector2(),\n\n\t\t\tsdir = new Vector3(),\n\t\t\ttdir = new Vector3();\n\n\t\tfunction handleTriangle( a, b, c ) {\n\n\t\t\tvA.fromBufferAttribute( positionAttribute, a );\n\t\t\tvB.fromBufferAttribute( positionAttribute, b );\n\t\t\tvC.fromBufferAttribute( positionAttribute, c );\n\n\t\t\tuvA.fromBufferAttribute( uvAttribute, a );\n\t\t\tuvB.fromBufferAttribute( uvAttribute, b );\n\t\t\tuvC.fromBufferAttribute( uvAttribute, c );\n\n\t\t\tvB.sub( vA );\n\t\t\tvC.sub( vA );\n\n\t\t\tuvB.sub( uvA );\n\t\t\tuvC.sub( uvA );\n\n\t\t\tconst r = 1.0 / ( uvB.x * uvC.y - uvC.x * uvB.y );\n\n\t\t\t// silently ignore degenerate uv triangles having coincident or colinear vertices\n\n\t\t\tif ( ! isFinite( r ) ) return;\n\n\t\t\tsdir.copy( vB ).multiplyScalar( uvC.y ).addScaledVector( vC, - uvB.y ).multiplyScalar( r );\n\t\t\ttdir.copy( vC ).multiplyScalar( uvB.x ).addScaledVector( vB, - uvC.x ).multiplyScalar( r );\n\n\t\t\ttan1[ a ].add( sdir );\n\t\t\ttan1[ b ].add( sdir );\n\t\t\ttan1[ c ].add( sdir );\n\n\t\t\ttan2[ a ].add( tdir );\n\t\t\ttan2[ b ].add( tdir );\n\t\t\ttan2[ c ].add( tdir );\n\n\t\t}\n\n\t\tlet groups = this.groups;\n\n\t\tif ( groups.length === 0 ) {\n\n\t\t\tgroups = [ {\n\t\t\t\tstart: 0,\n\t\t\t\tcount: index.count\n\t\t\t} ];\n\n\t\t}\n\n\t\tfor ( let i = 0, il = groups.length; i < il; ++ i ) {\n\n\t\t\tconst group = groups[ i ];\n\n\t\t\tconst start = group.start;\n\t\t\tconst count = group.count;\n\n\t\t\tfor ( let j = start, jl = start + count; j < jl; j += 3 ) {\n\n\t\t\t\thandleTriangle(\n\t\t\t\t\tindex.getX( j + 0 ),\n\t\t\t\t\tindex.getX( j + 1 ),\n\t\t\t\t\tindex.getX( j + 2 )\n\t\t\t\t);\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst tmp = new Vector3(), tmp2 = new Vector3();\n\t\tconst n = new Vector3(), n2 = new Vector3();\n\n\t\tfunction handleVertex( v ) {\n\n\t\t\tn.fromBufferAttribute( normalAttribute, v );\n\t\t\tn2.copy( n );\n\n\t\t\tconst t = tan1[ v ];\n\n\t\t\t// Gram-Schmidt orthogonalize\n\n\t\t\ttmp.copy( t );\n\t\t\ttmp.sub( n.multiplyScalar( n.dot( t ) ) ).normalize();\n\n\t\t\t// Calculate handedness\n\n\t\t\ttmp2.crossVectors( n2, t );\n\t\t\tconst test = tmp2.dot( tan2[ v ] );\n\t\t\tconst w = ( test < 0.0 ) ? - 1.0 : 1.0;\n\n\t\t\ttangentAttribute.setXYZW( v, tmp.x, tmp.y, tmp.z, w );\n\n\t\t}\n\n\t\tfor ( let i = 0, il = groups.length; i < il; ++ i ) {\n\n\t\t\tconst group = groups[ i ];\n\n\t\t\tconst start = group.start;\n\t\t\tconst count = group.count;\n\n\t\t\tfor ( let j = start, jl = start + count; j < jl; j += 3 ) {\n\n\t\t\t\thandleVertex( index.getX( j + 0 ) );\n\t\t\t\thandleVertex( index.getX( j + 1 ) );\n\t\t\t\thandleVertex( index.getX( j + 2 ) );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tcomputeVertexNormals() {\n\n\t\tconst index = this.index;\n\t\tconst positionAttribute = this.getAttribute( 'position' );\n\n\t\tif ( positionAttribute !== undefined ) {\n\n\t\t\tlet normalAttribute = this.getAttribute( 'normal' );\n\n\t\t\tif ( normalAttribute === undefined ) {\n\n\t\t\t\tnormalAttribute = new BufferAttribute( new Float32Array( positionAttribute.count * 3 ), 3 );\n\t\t\t\tthis.setAttribute( 'normal', normalAttribute );\n\n\t\t\t} else {\n\n\t\t\t\t// reset existing normals to zero\n\n\t\t\t\tfor ( let i = 0, il = normalAttribute.count; i < il; i ++ ) {\n\n\t\t\t\t\tnormalAttribute.setXYZ( i, 0, 0, 0 );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst pA = new Vector3(), pB = new Vector3(), pC = new Vector3();\n\t\t\tconst nA = new Vector3(), nB = new Vector3(), nC = new Vector3();\n\t\t\tconst cb = new Vector3(), ab = new Vector3();\n\n\t\t\t// indexed elements\n\n\t\t\tif ( index ) {\n\n\t\t\t\tfor ( let i = 0, il = index.count; i < il; i += 3 ) {\n\n\t\t\t\t\tconst vA = index.getX( i + 0 );\n\t\t\t\t\tconst vB = index.getX( i + 1 );\n\t\t\t\t\tconst vC = index.getX( i + 2 );\n\n\t\t\t\t\tpA.fromBufferAttribute( positionAttribute, vA );\n\t\t\t\t\tpB.fromBufferAttribute( positionAttribute, vB );\n\t\t\t\t\tpC.fromBufferAttribute( positionAttribute, vC );\n\n\t\t\t\t\tcb.subVectors( pC, pB );\n\t\t\t\t\tab.subVectors( pA, pB );\n\t\t\t\t\tcb.cross( ab );\n\n\t\t\t\t\tnA.fromBufferAttribute( normalAttribute, vA );\n\t\t\t\t\tnB.fromBufferAttribute( normalAttribute, vB );\n\t\t\t\t\tnC.fromBufferAttribute( normalAttribute, vC );\n\n\t\t\t\t\tnA.add( cb );\n\t\t\t\t\tnB.add( cb );\n\t\t\t\t\tnC.add( cb );\n\n\t\t\t\t\tnormalAttribute.setXYZ( vA, nA.x, nA.y, nA.z );\n\t\t\t\t\tnormalAttribute.setXYZ( vB, nB.x, nB.y, nB.z );\n\t\t\t\t\tnormalAttribute.setXYZ( vC, nC.x, nC.y, nC.z );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t// non-indexed elements (unconnected triangle soup)\n\n\t\t\t\tfor ( let i = 0, il = positionAttribute.count; i < il; i += 3 ) {\n\n\t\t\t\t\tpA.fromBufferAttribute( positionAttribute, i + 0 );\n\t\t\t\t\tpB.fromBufferAttribute( positionAttribute, i + 1 );\n\t\t\t\t\tpC.fromBufferAttribute( positionAttribute, i + 2 );\n\n\t\t\t\t\tcb.subVectors( pC, pB );\n\t\t\t\t\tab.subVectors( pA, pB );\n\t\t\t\t\tcb.cross( ab );\n\n\t\t\t\t\tnormalAttribute.setXYZ( i + 0, cb.x, cb.y, cb.z );\n\t\t\t\t\tnormalAttribute.setXYZ( i + 1, cb.x, cb.y, cb.z );\n\t\t\t\t\tnormalAttribute.setXYZ( i + 2, cb.x, cb.y, cb.z );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis.normalizeNormals();\n\n\t\t\tnormalAttribute.needsUpdate = true;\n\n\t\t}\n\n\t}\n\n\tnormalizeNormals() {\n\n\t\tconst normals = this.attributes.normal;\n\n\t\tfor ( let i = 0, il = normals.count; i < il; i ++ ) {\n\n\t\t\t_vector$8.fromBufferAttribute( normals, i );\n\n\t\t\t_vector$8.normalize();\n\n\t\t\tnormals.setXYZ( i, _vector$8.x, _vector$8.y, _vector$8.z );\n\n\t\t}\n\n\t}\n\n\ttoNonIndexed() {\n\n\t\tfunction convertBufferAttribute( attribute, indices ) {\n\n\t\t\tconst array = attribute.array;\n\t\t\tconst itemSize = attribute.itemSize;\n\t\t\tconst normalized = attribute.normalized;\n\n\t\t\tconst array2 = new array.constructor( indices.length * itemSize );\n\n\t\t\tlet index = 0, index2 = 0;\n\n\t\t\tfor ( let i = 0, l = indices.length; i < l; i ++ ) {\n\n\t\t\t\tif ( attribute.isInterleavedBufferAttribute ) {\n\n\t\t\t\t\tindex = indices[ i ] * attribute.data.stride + attribute.offset;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tindex = indices[ i ] * itemSize;\n\n\t\t\t\t}\n\n\t\t\t\tfor ( let j = 0; j < itemSize; j ++ ) {\n\n\t\t\t\t\tarray2[ index2 ++ ] = array[ index ++ ];\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn new BufferAttribute( array2, itemSize, normalized );\n\n\t\t}\n\n\t\t//\n\n\t\tif ( this.index === null ) {\n\n\t\t\tconsole.warn( 'THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed.' );\n\t\t\treturn this;\n\n\t\t}\n\n\t\tconst geometry2 = new BufferGeometry();\n\n\t\tconst indices = this.index.array;\n\t\tconst attributes = this.attributes;\n\n\t\t// attributes\n\n\t\tfor ( const name in attributes ) {\n\n\t\t\tconst attribute = attributes[ name ];\n\n\t\t\tconst newAttribute = convertBufferAttribute( attribute, indices );\n\n\t\t\tgeometry2.setAttribute( name, newAttribute );\n\n\t\t}\n\n\t\t// morph attributes\n\n\t\tconst morphAttributes = this.morphAttributes;\n\n\t\tfor ( const name in morphAttributes ) {\n\n\t\t\tconst morphArray = [];\n\t\t\tconst morphAttribute = morphAttributes[ name ]; // morphAttribute: array of Float32BufferAttributes\n\n\t\t\tfor ( let i = 0, il = morphAttribute.length; i < il; i ++ ) {\n\n\t\t\t\tconst attribute = morphAttribute[ i ];\n\n\t\t\t\tconst newAttribute = convertBufferAttribute( attribute, indices );\n\n\t\t\t\tmorphArray.push( newAttribute );\n\n\t\t\t}\n\n\t\t\tgeometry2.morphAttributes[ name ] = morphArray;\n\n\t\t}\n\n\t\tgeometry2.morphTargetsRelative = this.morphTargetsRelative;\n\n\t\t// groups\n\n\t\tconst groups = this.groups;\n\n\t\tfor ( let i = 0, l = groups.length; i < l; i ++ ) {\n\n\t\t\tconst group = groups[ i ];\n\t\t\tgeometry2.addGroup( group.start, group.count, group.materialIndex );\n\n\t\t}\n\n\t\treturn geometry2;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = {\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.6,\n\t\t\t\ttype: 'BufferGeometry',\n\t\t\t\tgenerator: 'BufferGeometry.toJSON'\n\t\t\t}\n\t\t};\n\n\t\t// standard BufferGeometry serialization\n\n\t\tdata.uuid = this.uuid;\n\t\tdata.type = this.type;\n\t\tif ( this.name !== '' ) data.name = this.name;\n\t\tif ( Object.keys( this.userData ).length > 0 ) data.userData = this.userData;\n\n\t\tif ( this.parameters !== undefined ) {\n\n\t\t\tconst parameters = this.parameters;\n\n\t\t\tfor ( const key in parameters ) {\n\n\t\t\t\tif ( parameters[ key ] !== undefined ) data[ key ] = parameters[ key ];\n\n\t\t\t}\n\n\t\t\treturn data;\n\n\t\t}\n\n\t\t// for simplicity the code assumes attributes are not shared across geometries, see #15811\n\n\t\tdata.data = { attributes: {} };\n\n\t\tconst index = this.index;\n\n\t\tif ( index !== null ) {\n\n\t\t\tdata.data.index = {\n\t\t\t\ttype: index.array.constructor.name,\n\t\t\t\tarray: Array.prototype.slice.call( index.array )\n\t\t\t};\n\n\t\t}\n\n\t\tconst attributes = this.attributes;\n\n\t\tfor ( const key in attributes ) {\n\n\t\t\tconst attribute = attributes[ key ];\n\n\t\t\tdata.data.attributes[ key ] = attribute.toJSON( data.data );\n\n\t\t}\n\n\t\tconst morphAttributes = {};\n\t\tlet hasMorphAttributes = false;\n\n\t\tfor ( const key in this.morphAttributes ) {\n\n\t\t\tconst attributeArray = this.morphAttributes[ key ];\n\n\t\t\tconst array = [];\n\n\t\t\tfor ( let i = 0, il = attributeArray.length; i < il; i ++ ) {\n\n\t\t\t\tconst attribute = attributeArray[ i ];\n\n\t\t\t\tarray.push( attribute.toJSON( data.data ) );\n\n\t\t\t}\n\n\t\t\tif ( array.length > 0 ) {\n\n\t\t\t\tmorphAttributes[ key ] = array;\n\n\t\t\t\thasMorphAttributes = true;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( hasMorphAttributes ) {\n\n\t\t\tdata.data.morphAttributes = morphAttributes;\n\t\t\tdata.data.morphTargetsRelative = this.morphTargetsRelative;\n\n\t\t}\n\n\t\tconst groups = this.groups;\n\n\t\tif ( groups.length > 0 ) {\n\n\t\t\tdata.data.groups = JSON.parse( JSON.stringify( groups ) );\n\n\t\t}\n\n\t\tconst boundingSphere = this.boundingSphere;\n\n\t\tif ( boundingSphere !== null ) {\n\n\t\t\tdata.data.boundingSphere = {\n\t\t\t\tcenter: boundingSphere.center.toArray(),\n\t\t\t\tradius: boundingSphere.radius\n\t\t\t};\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( source ) {\n\n\t\t// reset\n\n\t\tthis.index = null;\n\t\tthis.attributes = {};\n\t\tthis.morphAttributes = {};\n\t\tthis.groups = [];\n\t\tthis.boundingBox = null;\n\t\tthis.boundingSphere = null;\n\n\t\t// used for storing cloned, shared data\n\n\t\tconst data = {};\n\n\t\t// name\n\n\t\tthis.name = source.name;\n\n\t\t// index\n\n\t\tconst index = source.index;\n\n\t\tif ( index !== null ) {\n\n\t\t\tthis.setIndex( index.clone( data ) );\n\n\t\t}\n\n\t\t// attributes\n\n\t\tconst attributes = source.attributes;\n\n\t\tfor ( const name in attributes ) {\n\n\t\t\tconst attribute = attributes[ name ];\n\t\t\tthis.setAttribute( name, attribute.clone( data ) );\n\n\t\t}\n\n\t\t// morph attributes\n\n\t\tconst morphAttributes = source.morphAttributes;\n\n\t\tfor ( const name in morphAttributes ) {\n\n\t\t\tconst array = [];\n\t\t\tconst morphAttribute = morphAttributes[ name ]; // morphAttribute: array of Float32BufferAttributes\n\n\t\t\tfor ( let i = 0, l = morphAttribute.length; i < l; i ++ ) {\n\n\t\t\t\tarray.push( morphAttribute[ i ].clone( data ) );\n\n\t\t\t}\n\n\t\t\tthis.morphAttributes[ name ] = array;\n\n\t\t}\n\n\t\tthis.morphTargetsRelative = source.morphTargetsRelative;\n\n\t\t// groups\n\n\t\tconst groups = source.groups;\n\n\t\tfor ( let i = 0, l = groups.length; i < l; i ++ ) {\n\n\t\t\tconst group = groups[ i ];\n\t\t\tthis.addGroup( group.start, group.count, group.materialIndex );\n\n\t\t}\n\n\t\t// bounding box\n\n\t\tconst boundingBox = source.boundingBox;\n\n\t\tif ( boundingBox !== null ) {\n\n\t\t\tthis.boundingBox = boundingBox.clone();\n\n\t\t}\n\n\t\t// bounding sphere\n\n\t\tconst boundingSphere = source.boundingSphere;\n\n\t\tif ( boundingSphere !== null ) {\n\n\t\t\tthis.boundingSphere = boundingSphere.clone();\n\n\t\t}\n\n\t\t// draw range\n\n\t\tthis.drawRange.start = source.drawRange.start;\n\t\tthis.drawRange.count = source.drawRange.count;\n\n\t\t// user data\n\n\t\tthis.userData = source.userData;\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n}\n\nconst _inverseMatrix$3 = /*@__PURE__*/ new Matrix4();\nconst _ray$3 = /*@__PURE__*/ new Ray();\nconst _sphere$6 = /*@__PURE__*/ new Sphere();\nconst _sphereHitAt = /*@__PURE__*/ new Vector3();\n\nconst _vA$1 = /*@__PURE__*/ new Vector3();\nconst _vB$1 = /*@__PURE__*/ new Vector3();\nconst _vC$1 = /*@__PURE__*/ new Vector3();\n\nconst _tempA = /*@__PURE__*/ new Vector3();\nconst _morphA = /*@__PURE__*/ new Vector3();\n\nconst _intersectionPoint = /*@__PURE__*/ new Vector3();\nconst _intersectionPointWorld = /*@__PURE__*/ new Vector3();\n\nclass Mesh extends Object3D {\n\n\tconstructor( geometry = new BufferGeometry(), material = new MeshBasicMaterial() ) {\n\n\t\tsuper();\n\n\t\tthis.isMesh = true;\n\n\t\tthis.type = 'Mesh';\n\n\t\tthis.geometry = geometry;\n\t\tthis.material = material;\n\n\t\tthis.updateMorphTargets();\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tif ( source.morphTargetInfluences !== undefined ) {\n\n\t\t\tthis.morphTargetInfluences = source.morphTargetInfluences.slice();\n\n\t\t}\n\n\t\tif ( source.morphTargetDictionary !== undefined ) {\n\n\t\t\tthis.morphTargetDictionary = Object.assign( {}, source.morphTargetDictionary );\n\n\t\t}\n\n\t\tthis.material = Array.isArray( source.material ) ? source.material.slice() : source.material;\n\t\tthis.geometry = source.geometry;\n\n\t\treturn this;\n\n\t}\n\n\tupdateMorphTargets() {\n\n\t\tconst geometry = this.geometry;\n\n\t\tconst morphAttributes = geometry.morphAttributes;\n\t\tconst keys = Object.keys( morphAttributes );\n\n\t\tif ( keys.length > 0 ) {\n\n\t\t\tconst morphAttribute = morphAttributes[ keys[ 0 ] ];\n\n\t\t\tif ( morphAttribute !== undefined ) {\n\n\t\t\t\tthis.morphTargetInfluences = [];\n\t\t\t\tthis.morphTargetDictionary = {};\n\n\t\t\t\tfor ( let m = 0, ml = morphAttribute.length; m < ml; m ++ ) {\n\n\t\t\t\t\tconst name = morphAttribute[ m ].name || String( m );\n\n\t\t\t\t\tthis.morphTargetInfluences.push( 0 );\n\t\t\t\t\tthis.morphTargetDictionary[ name ] = m;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tgetVertexPosition( index, target ) {\n\n\t\tconst geometry = this.geometry;\n\t\tconst position = geometry.attributes.position;\n\t\tconst morphPosition = geometry.morphAttributes.position;\n\t\tconst morphTargetsRelative = geometry.morphTargetsRelative;\n\n\t\ttarget.fromBufferAttribute( position, index );\n\n\t\tconst morphInfluences = this.morphTargetInfluences;\n\n\t\tif ( morphPosition && morphInfluences ) {\n\n\t\t\t_morphA.set( 0, 0, 0 );\n\n\t\t\tfor ( let i = 0, il = morphPosition.length; i < il; i ++ ) {\n\n\t\t\t\tconst influence = morphInfluences[ i ];\n\t\t\t\tconst morphAttribute = morphPosition[ i ];\n\n\t\t\t\tif ( influence === 0 ) continue;\n\n\t\t\t\t_tempA.fromBufferAttribute( morphAttribute, index );\n\n\t\t\t\tif ( morphTargetsRelative ) {\n\n\t\t\t\t\t_morphA.addScaledVector( _tempA, influence );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t_morphA.addScaledVector( _tempA.sub( target ), influence );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\ttarget.add( _morphA );\n\n\t\t}\n\n\t\treturn target;\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tconst geometry = this.geometry;\n\t\tconst material = this.material;\n\t\tconst matrixWorld = this.matrixWorld;\n\n\t\tif ( material === undefined ) return;\n\n\t\t// test with bounding sphere in world space\n\n\t\tif ( geometry.boundingSphere === null ) geometry.computeBoundingSphere();\n\n\t\t_sphere$6.copy( geometry.boundingSphere );\n\t\t_sphere$6.applyMatrix4( matrixWorld );\n\n\t\t// check distance from ray origin to bounding sphere\n\n\t\t_ray$3.copy( raycaster.ray ).recast( raycaster.near );\n\n\t\tif ( _sphere$6.containsPoint( _ray$3.origin ) === false ) {\n\n\t\t\tif ( _ray$3.intersectSphere( _sphere$6, _sphereHitAt ) === null ) return;\n\n\t\t\tif ( _ray$3.origin.distanceToSquared( _sphereHitAt ) > ( raycaster.far - raycaster.near ) ** 2 ) return;\n\n\t\t}\n\n\t\t// convert ray to local space of mesh\n\n\t\t_inverseMatrix$3.copy( matrixWorld ).invert();\n\t\t_ray$3.copy( raycaster.ray ).applyMatrix4( _inverseMatrix$3 );\n\n\t\t// test with bounding box in local space\n\n\t\tif ( geometry.boundingBox !== null ) {\n\n\t\t\tif ( _ray$3.intersectsBox( geometry.boundingBox ) === false ) return;\n\n\t\t}\n\n\t\t// test for intersections with geometry\n\n\t\tthis._computeIntersections( raycaster, intersects, _ray$3 );\n\n\t}\n\n\t_computeIntersections( raycaster, intersects, rayLocalSpace ) {\n\n\t\tlet intersection;\n\n\t\tconst geometry = this.geometry;\n\t\tconst material = this.material;\n\n\t\tconst index = geometry.index;\n\t\tconst position = geometry.attributes.position;\n\t\tconst uv = geometry.attributes.uv;\n\t\tconst uv1 = geometry.attributes.uv1;\n\t\tconst normal = geometry.attributes.normal;\n\t\tconst groups = geometry.groups;\n\t\tconst drawRange = geometry.drawRange;\n\n\t\tif ( index !== null ) {\n\n\t\t\t// indexed buffer geometry\n\n\t\t\tif ( Array.isArray( material ) ) {\n\n\t\t\t\tfor ( let i = 0, il = groups.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst group = groups[ i ];\n\t\t\t\t\tconst groupMaterial = material[ group.materialIndex ];\n\n\t\t\t\t\tconst start = Math.max( group.start, drawRange.start );\n\t\t\t\t\tconst end = Math.min( index.count, Math.min( ( group.start + group.count ), ( drawRange.start + drawRange.count ) ) );\n\n\t\t\t\t\tfor ( let j = start, jl = end; j < jl; j += 3 ) {\n\n\t\t\t\t\t\tconst a = index.getX( j );\n\t\t\t\t\t\tconst b = index.getX( j + 1 );\n\t\t\t\t\t\tconst c = index.getX( j + 2 );\n\n\t\t\t\t\t\tintersection = checkGeometryIntersection( this, groupMaterial, raycaster, rayLocalSpace, uv, uv1, normal, a, b, c );\n\n\t\t\t\t\t\tif ( intersection ) {\n\n\t\t\t\t\t\t\tintersection.faceIndex = Math.floor( j / 3 ); // triangle number in indexed buffer semantics\n\t\t\t\t\t\t\tintersection.face.materialIndex = group.materialIndex;\n\t\t\t\t\t\t\tintersects.push( intersection );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\t\tconst end = Math.min( index.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\t\tfor ( let i = start, il = end; i < il; i += 3 ) {\n\n\t\t\t\t\tconst a = index.getX( i );\n\t\t\t\t\tconst b = index.getX( i + 1 );\n\t\t\t\t\tconst c = index.getX( i + 2 );\n\n\t\t\t\t\tintersection = checkGeometryIntersection( this, material, raycaster, rayLocalSpace, uv, uv1, normal, a, b, c );\n\n\t\t\t\t\tif ( intersection ) {\n\n\t\t\t\t\t\tintersection.faceIndex = Math.floor( i / 3 ); // triangle number in indexed buffer semantics\n\t\t\t\t\t\tintersects.push( intersection );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else if ( position !== undefined ) {\n\n\t\t\t// non-indexed buffer geometry\n\n\t\t\tif ( Array.isArray( material ) ) {\n\n\t\t\t\tfor ( let i = 0, il = groups.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst group = groups[ i ];\n\t\t\t\t\tconst groupMaterial = material[ group.materialIndex ];\n\n\t\t\t\t\tconst start = Math.max( group.start, drawRange.start );\n\t\t\t\t\tconst end = Math.min( position.count, Math.min( ( group.start + group.count ), ( drawRange.start + drawRange.count ) ) );\n\n\t\t\t\t\tfor ( let j = start, jl = end; j < jl; j += 3 ) {\n\n\t\t\t\t\t\tconst a = j;\n\t\t\t\t\t\tconst b = j + 1;\n\t\t\t\t\t\tconst c = j + 2;\n\n\t\t\t\t\t\tintersection = checkGeometryIntersection( this, groupMaterial, raycaster, rayLocalSpace, uv, uv1, normal, a, b, c );\n\n\t\t\t\t\t\tif ( intersection ) {\n\n\t\t\t\t\t\t\tintersection.faceIndex = Math.floor( j / 3 ); // triangle number in non-indexed buffer semantics\n\t\t\t\t\t\t\tintersection.face.materialIndex = group.materialIndex;\n\t\t\t\t\t\t\tintersects.push( intersection );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\t\tconst end = Math.min( position.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\t\tfor ( let i = start, il = end; i < il; i += 3 ) {\n\n\t\t\t\t\tconst a = i;\n\t\t\t\t\tconst b = i + 1;\n\t\t\t\t\tconst c = i + 2;\n\n\t\t\t\t\tintersection = checkGeometryIntersection( this, material, raycaster, rayLocalSpace, uv, uv1, normal, a, b, c );\n\n\t\t\t\t\tif ( intersection ) {\n\n\t\t\t\t\t\tintersection.faceIndex = Math.floor( i / 3 ); // triangle number in non-indexed buffer semantics\n\t\t\t\t\t\tintersects.push( intersection );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n\nfunction checkIntersection$1( object, material, raycaster, ray, pA, pB, pC, point ) {\n\n\tlet intersect;\n\n\tif ( material.side === BackSide ) {\n\n\t\tintersect = ray.intersectTriangle( pC, pB, pA, true, point );\n\n\t} else {\n\n\t\tintersect = ray.intersectTriangle( pA, pB, pC, ( material.side === FrontSide ), point );\n\n\t}\n\n\tif ( intersect === null ) return null;\n\n\t_intersectionPointWorld.copy( point );\n\t_intersectionPointWorld.applyMatrix4( object.matrixWorld );\n\n\tconst distance = raycaster.ray.origin.distanceTo( _intersectionPointWorld );\n\n\tif ( distance < raycaster.near || distance > raycaster.far ) return null;\n\n\treturn {\n\t\tdistance: distance,\n\t\tpoint: _intersectionPointWorld.clone(),\n\t\tobject: object\n\t};\n\n}\n\nfunction checkGeometryIntersection( object, material, raycaster, ray, uv, uv1, normal, a, b, c ) {\n\n\tobject.getVertexPosition( a, _vA$1 );\n\tobject.getVertexPosition( b, _vB$1 );\n\tobject.getVertexPosition( c, _vC$1 );\n\n\tconst intersection = checkIntersection$1( object, material, raycaster, ray, _vA$1, _vB$1, _vC$1, _intersectionPoint );\n\n\tif ( intersection ) {\n\n\t\tconst barycoord = new Vector3();\n\t\tTriangle.getBarycoord( _intersectionPoint, _vA$1, _vB$1, _vC$1, barycoord );\n\n\t\tif ( uv ) {\n\n\t\t\tintersection.uv = Triangle.getInterpolatedAttribute( uv, a, b, c, barycoord, new Vector2() );\n\n\t\t}\n\n\t\tif ( uv1 ) {\n\n\t\t\tintersection.uv1 = Triangle.getInterpolatedAttribute( uv1, a, b, c, barycoord, new Vector2() );\n\n\t\t}\n\n\t\tif ( normal ) {\n\n\t\t\tintersection.normal = Triangle.getInterpolatedAttribute( normal, a, b, c, barycoord, new Vector3() );\n\n\t\t\tif ( intersection.normal.dot( ray.direction ) > 0 ) {\n\n\t\t\t\tintersection.normal.multiplyScalar( - 1 );\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst face = {\n\t\t\ta: a,\n\t\t\tb: b,\n\t\t\tc: c,\n\t\t\tnormal: new Vector3(),\n\t\t\tmaterialIndex: 0\n\t\t};\n\n\t\tTriangle.getNormal( _vA$1, _vB$1, _vC$1, face.normal );\n\n\t\tintersection.face = face;\n\t\tintersection.barycoord = barycoord;\n\n\t}\n\n\treturn intersection;\n\n}\n\nclass BoxGeometry extends BufferGeometry {\n\n\tconstructor( width = 1, height = 1, depth = 1, widthSegments = 1, heightSegments = 1, depthSegments = 1 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'BoxGeometry';\n\n\t\tthis.parameters = {\n\t\t\twidth: width,\n\t\t\theight: height,\n\t\t\tdepth: depth,\n\t\t\twidthSegments: widthSegments,\n\t\t\theightSegments: heightSegments,\n\t\t\tdepthSegments: depthSegments\n\t\t};\n\n\t\tconst scope = this;\n\n\t\t// segments\n\n\t\twidthSegments = Math.floor( widthSegments );\n\t\theightSegments = Math.floor( heightSegments );\n\t\tdepthSegments = Math.floor( depthSegments );\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\t// helper variables\n\n\t\tlet numberOfVertices = 0;\n\t\tlet groupStart = 0;\n\n\t\t// build each side of the box geometry\n\n\t\tbuildPlane( 'z', 'y', 'x', - 1, - 1, depth, height, width, depthSegments, heightSegments, 0 ); // px\n\t\tbuildPlane( 'z', 'y', 'x', 1, - 1, depth, height, - width, depthSegments, heightSegments, 1 ); // nx\n\t\tbuildPlane( 'x', 'z', 'y', 1, 1, width, depth, height, widthSegments, depthSegments, 2 ); // py\n\t\tbuildPlane( 'x', 'z', 'y', 1, - 1, width, depth, - height, widthSegments, depthSegments, 3 ); // ny\n\t\tbuildPlane( 'x', 'y', 'z', 1, - 1, width, height, depth, widthSegments, heightSegments, 4 ); // pz\n\t\tbuildPlane( 'x', 'y', 'z', - 1, - 1, width, height, - depth, widthSegments, heightSegments, 5 ); // nz\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t\tfunction buildPlane( u, v, w, udir, vdir, width, height, depth, gridX, gridY, materialIndex ) {\n\n\t\t\tconst segmentWidth = width / gridX;\n\t\t\tconst segmentHeight = height / gridY;\n\n\t\t\tconst widthHalf = width / 2;\n\t\t\tconst heightHalf = height / 2;\n\t\t\tconst depthHalf = depth / 2;\n\n\t\t\tconst gridX1 = gridX + 1;\n\t\t\tconst gridY1 = gridY + 1;\n\n\t\t\tlet vertexCounter = 0;\n\t\t\tlet groupCount = 0;\n\n\t\t\tconst vector = new Vector3();\n\n\t\t\t// generate vertices, normals and uvs\n\n\t\t\tfor ( let iy = 0; iy < gridY1; iy ++ ) {\n\n\t\t\t\tconst y = iy * segmentHeight - heightHalf;\n\n\t\t\t\tfor ( let ix = 0; ix < gridX1; ix ++ ) {\n\n\t\t\t\t\tconst x = ix * segmentWidth - widthHalf;\n\n\t\t\t\t\t// set values to correct vector component\n\n\t\t\t\t\tvector[ u ] = x * udir;\n\t\t\t\t\tvector[ v ] = y * vdir;\n\t\t\t\t\tvector[ w ] = depthHalf;\n\n\t\t\t\t\t// now apply vector to vertex buffer\n\n\t\t\t\t\tvertices.push( vector.x, vector.y, vector.z );\n\n\t\t\t\t\t// set values to correct vector component\n\n\t\t\t\t\tvector[ u ] = 0;\n\t\t\t\t\tvector[ v ] = 0;\n\t\t\t\t\tvector[ w ] = depth > 0 ? 1 : - 1;\n\n\t\t\t\t\t// now apply vector to normal buffer\n\n\t\t\t\t\tnormals.push( vector.x, vector.y, vector.z );\n\n\t\t\t\t\t// uvs\n\n\t\t\t\t\tuvs.push( ix / gridX );\n\t\t\t\t\tuvs.push( 1 - ( iy / gridY ) );\n\n\t\t\t\t\t// counters\n\n\t\t\t\t\tvertexCounter += 1;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// indices\n\n\t\t\t// 1. you need three indices to draw a single face\n\t\t\t// 2. a single segment consists of two faces\n\t\t\t// 3. so we need to generate six (2*3) indices per segment\n\n\t\t\tfor ( let iy = 0; iy < gridY; iy ++ ) {\n\n\t\t\t\tfor ( let ix = 0; ix < gridX; ix ++ ) {\n\n\t\t\t\t\tconst a = numberOfVertices + ix + gridX1 * iy;\n\t\t\t\t\tconst b = numberOfVertices + ix + gridX1 * ( iy + 1 );\n\t\t\t\t\tconst c = numberOfVertices + ( ix + 1 ) + gridX1 * ( iy + 1 );\n\t\t\t\t\tconst d = numberOfVertices + ( ix + 1 ) + gridX1 * iy;\n\n\t\t\t\t\t// faces\n\n\t\t\t\t\tindices.push( a, b, d );\n\t\t\t\t\tindices.push( b, c, d );\n\n\t\t\t\t\t// increase counter\n\n\t\t\t\t\tgroupCount += 6;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// add a group to the geometry. this will ensure multi material support\n\n\t\t\tscope.addGroup( groupStart, groupCount, materialIndex );\n\n\t\t\t// calculate new start value for groups\n\n\t\t\tgroupStart += groupCount;\n\n\t\t\t// update total number of vertices\n\n\t\t\tnumberOfVertices += vertexCounter;\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new BoxGeometry( data.width, data.height, data.depth, data.widthSegments, data.heightSegments, data.depthSegments );\n\n\t}\n\n}\n\n/**\n * Uniform Utilities\n */\n\nfunction cloneUniforms( src ) {\n\n\tconst dst = {};\n\n\tfor ( const u in src ) {\n\n\t\tdst[ u ] = {};\n\n\t\tfor ( const p in src[ u ] ) {\n\n\t\t\tconst property = src[ u ][ p ];\n\n\t\t\tif ( property && ( property.isColor ||\n\t\t\t\tproperty.isMatrix3 || property.isMatrix4 ||\n\t\t\t\tproperty.isVector2 || property.isVector3 || property.isVector4 ||\n\t\t\t\tproperty.isTexture || property.isQuaternion ) ) {\n\n\t\t\t\tif ( property.isRenderTargetTexture ) {\n\n\t\t\t\t\tconsole.warn( 'UniformsUtils: Textures of render targets cannot be cloned via cloneUniforms() or mergeUniforms().' );\n\t\t\t\t\tdst[ u ][ p ] = null;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tdst[ u ][ p ] = property.clone();\n\n\t\t\t\t}\n\n\t\t\t} else if ( Array.isArray( property ) ) {\n\n\t\t\t\tdst[ u ][ p ] = property.slice();\n\n\t\t\t} else {\n\n\t\t\t\tdst[ u ][ p ] = property;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\treturn dst;\n\n}\n\nfunction mergeUniforms( uniforms ) {\n\n\tconst merged = {};\n\n\tfor ( let u = 0; u < uniforms.length; u ++ ) {\n\n\t\tconst tmp = cloneUniforms( uniforms[ u ] );\n\n\t\tfor ( const p in tmp ) {\n\n\t\t\tmerged[ p ] = tmp[ p ];\n\n\t\t}\n\n\t}\n\n\treturn merged;\n\n}\n\nfunction cloneUniformsGroups( src ) {\n\n\tconst dst = [];\n\n\tfor ( let u = 0; u < src.length; u ++ ) {\n\n\t\tdst.push( src[ u ].clone() );\n\n\t}\n\n\treturn dst;\n\n}\n\nfunction getUnlitUniformColorSpace( renderer ) {\n\n\tconst currentRenderTarget = renderer.getRenderTarget();\n\n\tif ( currentRenderTarget === null ) {\n\n\t\t// https://github.com/mrdoob/three.js/pull/23937#issuecomment-1111067398\n\t\treturn renderer.outputColorSpace;\n\n\t}\n\n\t// https://github.com/mrdoob/three.js/issues/27868\n\tif ( currentRenderTarget.isXRRenderTarget === true ) {\n\n\t\treturn currentRenderTarget.texture.colorSpace;\n\n\t}\n\n\treturn ColorManagement.workingColorSpace;\n\n}\n\n// Legacy\n\nconst UniformsUtils = { clone: cloneUniforms, merge: mergeUniforms };\n\nvar default_vertex = \"void main() {\\n\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\n}\";\n\nvar default_fragment = \"void main() {\\n\\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\\n}\";\n\nclass ShaderMaterial extends Material {\n\n\tstatic get type() {\n\n\t\treturn 'ShaderMaterial';\n\n\t}\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isShaderMaterial = true;\n\n\t\tthis.defines = {};\n\t\tthis.uniforms = {};\n\t\tthis.uniformsGroups = [];\n\n\t\tthis.vertexShader = default_vertex;\n\t\tthis.fragmentShader = default_fragment;\n\n\t\tthis.linewidth = 1;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\n\t\tthis.fog = false; // set to use scene fog\n\t\tthis.lights = false; // set to use scene lights\n\t\tthis.clipping = false; // set to use user-defined clipping planes\n\n\t\tthis.forceSinglePass = true;\n\n\t\tthis.extensions = {\n\t\t\tclipCullDistance: false, // set to use vertex shader clipping\n\t\t\tmultiDraw: false // set to use vertex shader multi_draw / enable gl_DrawID\n\t\t};\n\n\t\t// When rendered geometry doesn't include these attributes but the material does,\n\t\t// use these default values in WebGL. This avoids errors when buffer data is missing.\n\t\tthis.defaultAttributeValues = {\n\t\t\t'color': [ 1, 1, 1 ],\n\t\t\t'uv': [ 0, 0 ],\n\t\t\t'uv1': [ 0, 0 ]\n\t\t};\n\n\t\tthis.index0AttributeName = undefined;\n\t\tthis.uniformsNeedUpdate = false;\n\n\t\tthis.glslVersion = null;\n\n\t\tif ( parameters !== undefined ) {\n\n\t\t\tthis.setValues( parameters );\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.fragmentShader = source.fragmentShader;\n\t\tthis.vertexShader = source.vertexShader;\n\n\t\tthis.uniforms = cloneUniforms( source.uniforms );\n\t\tthis.uniformsGroups = cloneUniformsGroups( source.uniformsGroups );\n\n\t\tthis.defines = Object.assign( {}, source.defines );\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\n\t\tthis.fog = source.fog;\n\t\tthis.lights = source.lights;\n\t\tthis.clipping = source.clipping;\n\n\t\tthis.extensions = Object.assign( {}, source.extensions );\n\n\t\tthis.glslVersion = source.glslVersion;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tdata.glslVersion = this.glslVersion;\n\t\tdata.uniforms = {};\n\n\t\tfor ( const name in this.uniforms ) {\n\n\t\t\tconst uniform = this.uniforms[ name ];\n\t\t\tconst value = uniform.value;\n\n\t\t\tif ( value && value.isTexture ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 't',\n\t\t\t\t\tvalue: value.toJSON( meta ).uuid\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isColor ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'c',\n\t\t\t\t\tvalue: value.getHex()\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isVector2 ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'v2',\n\t\t\t\t\tvalue: value.toArray()\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isVector3 ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'v3',\n\t\t\t\t\tvalue: value.toArray()\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isVector4 ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'v4',\n\t\t\t\t\tvalue: value.toArray()\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isMatrix3 ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'm3',\n\t\t\t\t\tvalue: value.toArray()\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isMatrix4 ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'm4',\n\t\t\t\t\tvalue: value.toArray()\n\t\t\t\t};\n\n\t\t\t} else {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\tvalue: value\n\t\t\t\t};\n\n\t\t\t\t// note: the array variants v2v, v3v, v4v, m4v and tv are not supported so far\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( Object.keys( this.defines ).length > 0 ) data.defines = this.defines;\n\n\t\tdata.vertexShader = this.vertexShader;\n\t\tdata.fragmentShader = this.fragmentShader;\n\n\t\tdata.lights = this.lights;\n\t\tdata.clipping = this.clipping;\n\n\t\tconst extensions = {};\n\n\t\tfor ( const key in this.extensions ) {\n\n\t\t\tif ( this.extensions[ key ] === true ) extensions[ key ] = true;\n\n\t\t}\n\n\t\tif ( Object.keys( extensions ).length > 0 ) data.extensions = extensions;\n\n\t\treturn data;\n\n\t}\n\n}\n\nclass Camera extends Object3D {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isCamera = true;\n\n\t\tthis.type = 'Camera';\n\n\t\tthis.matrixWorldInverse = new Matrix4();\n\n\t\tthis.projectionMatrix = new Matrix4();\n\t\tthis.projectionMatrixInverse = new Matrix4();\n\n\t\tthis.coordinateSystem = WebGLCoordinateSystem;\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.matrixWorldInverse.copy( source.matrixWorldInverse );\n\n\t\tthis.projectionMatrix.copy( source.projectionMatrix );\n\t\tthis.projectionMatrixInverse.copy( source.projectionMatrixInverse );\n\n\t\tthis.coordinateSystem = source.coordinateSystem;\n\n\t\treturn this;\n\n\t}\n\n\tgetWorldDirection( target ) {\n\n\t\treturn super.getWorldDirection( target ).negate();\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tsuper.updateMatrixWorld( force );\n\n\t\tthis.matrixWorldInverse.copy( this.matrixWorld ).invert();\n\n\t}\n\n\tupdateWorldMatrix( updateParents, updateChildren ) {\n\n\t\tsuper.updateWorldMatrix( updateParents, updateChildren );\n\n\t\tthis.matrixWorldInverse.copy( this.matrixWorld ).invert();\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nconst _v3$1 = /*@__PURE__*/ new Vector3();\nconst _minTarget = /*@__PURE__*/ new Vector2();\nconst _maxTarget = /*@__PURE__*/ new Vector2();\n\n\nclass PerspectiveCamera extends Camera {\n\n\tconstructor( fov = 50, aspect = 1, near = 0.1, far = 2000 ) {\n\n\t\tsuper();\n\n\t\tthis.isPerspectiveCamera = true;\n\n\t\tthis.type = 'PerspectiveCamera';\n\n\t\tthis.fov = fov;\n\t\tthis.zoom = 1;\n\n\t\tthis.near = near;\n\t\tthis.far = far;\n\t\tthis.focus = 10;\n\n\t\tthis.aspect = aspect;\n\t\tthis.view = null;\n\n\t\tthis.filmGauge = 35;\t// width of the film (default in millimeters)\n\t\tthis.filmOffset = 0;\t// horizontal film offset (same unit as gauge)\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.fov = source.fov;\n\t\tthis.zoom = source.zoom;\n\n\t\tthis.near = source.near;\n\t\tthis.far = source.far;\n\t\tthis.focus = source.focus;\n\n\t\tthis.aspect = source.aspect;\n\t\tthis.view = source.view === null ? null : Object.assign( {}, source.view );\n\n\t\tthis.filmGauge = source.filmGauge;\n\t\tthis.filmOffset = source.filmOffset;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the FOV by focal length in respect to the current .filmGauge.\n\t *\n\t * The default film gauge is 35, so that the focal length can be specified for\n\t * a 35mm (full frame) camera.\n\t *\n\t * Values for focal length and film gauge must have the same unit.\n\t */\n\tsetFocalLength( focalLength ) {\n\n\t\t/** see {@link http://www.bobatkins.com/photography/technical/field_of_view.html} */\n\t\tconst vExtentSlope = 0.5 * this.getFilmHeight() / focalLength;\n\n\t\tthis.fov = RAD2DEG * 2 * Math.atan( vExtentSlope );\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\t/**\n\t * Calculates the focal length from the current .fov and .filmGauge.\n\t */\n\tgetFocalLength() {\n\n\t\tconst vExtentSlope = Math.tan( DEG2RAD * 0.5 * this.fov );\n\n\t\treturn 0.5 * this.getFilmHeight() / vExtentSlope;\n\n\t}\n\n\tgetEffectiveFOV() {\n\n\t\treturn RAD2DEG * 2 * Math.atan(\n\t\t\tMath.tan( DEG2RAD * 0.5 * this.fov ) / this.zoom );\n\n\t}\n\n\tgetFilmWidth() {\n\n\t\t// film not completely covered in portrait format (aspect < 1)\n\t\treturn this.filmGauge * Math.min( this.aspect, 1 );\n\n\t}\n\n\tgetFilmHeight() {\n\n\t\t// film not completely covered in landscape format (aspect > 1)\n\t\treturn this.filmGauge / Math.max( this.aspect, 1 );\n\n\t}\n\n\t/**\n\t * Computes the 2D bounds of the camera's viewable rectangle at a given distance along the viewing direction.\n\t * Sets minTarget and maxTarget to the coordinates of the lower-left and upper-right corners of the view rectangle.\n\t */\n\tgetViewBounds( distance, minTarget, maxTarget ) {\n\n\t\t_v3$1.set( - 1, - 1, 0.5 ).applyMatrix4( this.projectionMatrixInverse );\n\n\t\tminTarget.set( _v3$1.x, _v3$1.y ).multiplyScalar( - distance / _v3$1.z );\n\n\t\t_v3$1.set( 1, 1, 0.5 ).applyMatrix4( this.projectionMatrixInverse );\n\n\t\tmaxTarget.set( _v3$1.x, _v3$1.y ).multiplyScalar( - distance / _v3$1.z );\n\n\t}\n\n\t/**\n\t * Computes the width and height of the camera's viewable rectangle at a given distance along the viewing direction.\n\t * Copies the result into the target Vector2, where x is width and y is height.\n\t */\n\tgetViewSize( distance, target ) {\n\n\t\tthis.getViewBounds( distance, _minTarget, _maxTarget );\n\n\t\treturn target.subVectors( _maxTarget, _minTarget );\n\n\t}\n\n\t/**\n\t * Sets an offset in a larger frustum. This is useful for multi-window or\n\t * multi-monitor/multi-machine setups.\n\t *\n\t * For example, if you have 3x2 monitors and each monitor is 1920x1080 and\n\t * the monitors are in grid like this\n\t *\n\t * +---+---+---+\n\t * | A | B | C |\n\t * +---+---+---+\n\t * | D | E | F |\n\t * +---+---+---+\n\t *\n\t * then for each monitor you would call it like this\n\t *\n\t * const w = 1920;\n\t * const h = 1080;\n\t * const fullWidth = w * 3;\n\t * const fullHeight = h * 2;\n\t *\n\t * --A--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 0, w, h );\n\t * --B--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 0, w, h );\n\t * --C--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 0, w, h );\n\t * --D--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 1, w, h );\n\t * --E--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 1, w, h );\n\t * --F--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 1, w, h );\n\t *\n\t * Note there is no reason monitors have to be the same size or in a grid.\n\t */\n\tsetViewOffset( fullWidth, fullHeight, x, y, width, height ) {\n\n\t\tthis.aspect = fullWidth / fullHeight;\n\n\t\tif ( this.view === null ) {\n\n\t\t\tthis.view = {\n\t\t\t\tenabled: true,\n\t\t\t\tfullWidth: 1,\n\t\t\t\tfullHeight: 1,\n\t\t\t\toffsetX: 0,\n\t\t\t\toffsetY: 0,\n\t\t\t\twidth: 1,\n\t\t\t\theight: 1\n\t\t\t};\n\n\t\t}\n\n\t\tthis.view.enabled = true;\n\t\tthis.view.fullWidth = fullWidth;\n\t\tthis.view.fullHeight = fullHeight;\n\t\tthis.view.offsetX = x;\n\t\tthis.view.offsetY = y;\n\t\tthis.view.width = width;\n\t\tthis.view.height = height;\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tclearViewOffset() {\n\n\t\tif ( this.view !== null ) {\n\n\t\t\tthis.view.enabled = false;\n\n\t\t}\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tupdateProjectionMatrix() {\n\n\t\tconst near = this.near;\n\t\tlet top = near * Math.tan( DEG2RAD * 0.5 * this.fov ) / this.zoom;\n\t\tlet height = 2 * top;\n\t\tlet width = this.aspect * height;\n\t\tlet left = - 0.5 * width;\n\t\tconst view = this.view;\n\n\t\tif ( this.view !== null && this.view.enabled ) {\n\n\t\t\tconst fullWidth = view.fullWidth,\n\t\t\t\tfullHeight = view.fullHeight;\n\n\t\t\tleft += view.offsetX * width / fullWidth;\n\t\t\ttop -= view.offsetY * height / fullHeight;\n\t\t\twidth *= view.width / fullWidth;\n\t\t\theight *= view.height / fullHeight;\n\n\t\t}\n\n\t\tconst skew = this.filmOffset;\n\t\tif ( skew !== 0 ) left += near * skew / this.getFilmWidth();\n\n\t\tthis.projectionMatrix.makePerspective( left, left + width, top, top - height, near, this.far, this.coordinateSystem );\n\n\t\tthis.projectionMatrixInverse.copy( this.projectionMatrix ).invert();\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tdata.object.fov = this.fov;\n\t\tdata.object.zoom = this.zoom;\n\n\t\tdata.object.near = this.near;\n\t\tdata.object.far = this.far;\n\t\tdata.object.focus = this.focus;\n\n\t\tdata.object.aspect = this.aspect;\n\n\t\tif ( this.view !== null ) data.object.view = Object.assign( {}, this.view );\n\n\t\tdata.object.filmGauge = this.filmGauge;\n\t\tdata.object.filmOffset = this.filmOffset;\n\n\t\treturn data;\n\n\t}\n\n}\n\nconst fov = - 90; // negative fov is not an error\nconst aspect = 1;\n\nclass CubeCamera extends Object3D {\n\n\tconstructor( near, far, renderTarget ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'CubeCamera';\n\n\t\tthis.renderTarget = renderTarget;\n\t\tthis.coordinateSystem = null;\n\t\tthis.activeMipmapLevel = 0;\n\n\t\tconst cameraPX = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraPX.layers = this.layers;\n\t\tthis.add( cameraPX );\n\n\t\tconst cameraNX = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraNX.layers = this.layers;\n\t\tthis.add( cameraNX );\n\n\t\tconst cameraPY = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraPY.layers = this.layers;\n\t\tthis.add( cameraPY );\n\n\t\tconst cameraNY = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraNY.layers = this.layers;\n\t\tthis.add( cameraNY );\n\n\t\tconst cameraPZ = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraPZ.layers = this.layers;\n\t\tthis.add( cameraPZ );\n\n\t\tconst cameraNZ = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraNZ.layers = this.layers;\n\t\tthis.add( cameraNZ );\n\n\t}\n\n\tupdateCoordinateSystem() {\n\n\t\tconst coordinateSystem = this.coordinateSystem;\n\n\t\tconst cameras = this.children.concat();\n\n\t\tconst [ cameraPX, cameraNX, cameraPY, cameraNY, cameraPZ, cameraNZ ] = cameras;\n\n\t\tfor ( const camera of cameras ) this.remove( camera );\n\n\t\tif ( coordinateSystem === WebGLCoordinateSystem ) {\n\n\t\t\tcameraPX.up.set( 0, 1, 0 );\n\t\t\tcameraPX.lookAt( 1, 0, 0 );\n\n\t\t\tcameraNX.up.set( 0, 1, 0 );\n\t\t\tcameraNX.lookAt( - 1, 0, 0 );\n\n\t\t\tcameraPY.up.set( 0, 0, - 1 );\n\t\t\tcameraPY.lookAt( 0, 1, 0 );\n\n\t\t\tcameraNY.up.set( 0, 0, 1 );\n\t\t\tcameraNY.lookAt( 0, - 1, 0 );\n\n\t\t\tcameraPZ.up.set( 0, 1, 0 );\n\t\t\tcameraPZ.lookAt( 0, 0, 1 );\n\n\t\t\tcameraNZ.up.set( 0, 1, 0 );\n\t\t\tcameraNZ.lookAt( 0, 0, - 1 );\n\n\t\t} else if ( coordinateSystem === WebGPUCoordinateSystem ) {\n\n\t\t\tcameraPX.up.set( 0, - 1, 0 );\n\t\t\tcameraPX.lookAt( - 1, 0, 0 );\n\n\t\t\tcameraNX.up.set( 0, - 1, 0 );\n\t\t\tcameraNX.lookAt( 1, 0, 0 );\n\n\t\t\tcameraPY.up.set( 0, 0, 1 );\n\t\t\tcameraPY.lookAt( 0, 1, 0 );\n\n\t\t\tcameraNY.up.set( 0, 0, - 1 );\n\t\t\tcameraNY.lookAt( 0, - 1, 0 );\n\n\t\t\tcameraPZ.up.set( 0, - 1, 0 );\n\t\t\tcameraPZ.lookAt( 0, 0, 1 );\n\n\t\t\tcameraNZ.up.set( 0, - 1, 0 );\n\t\t\tcameraNZ.lookAt( 0, 0, - 1 );\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: ' + coordinateSystem );\n\n\t\t}\n\n\t\tfor ( const camera of cameras ) {\n\n\t\t\tthis.add( camera );\n\n\t\t\tcamera.updateMatrixWorld();\n\n\t\t}\n\n\t}\n\n\tupdate( renderer, scene ) {\n\n\t\tif ( this.parent === null ) this.updateMatrixWorld();\n\n\t\tconst { renderTarget, activeMipmapLevel } = this;\n\n\t\tif ( this.coordinateSystem !== renderer.coordinateSystem ) {\n\n\t\t\tthis.coordinateSystem = renderer.coordinateSystem;\n\n\t\t\tthis.updateCoordinateSystem();\n\n\t\t}\n\n\t\tconst [ cameraPX, cameraNX, cameraPY, cameraNY, cameraPZ, cameraNZ ] = this.children;\n\n\t\tconst currentRenderTarget = renderer.getRenderTarget();\n\t\tconst currentActiveCubeFace = renderer.getActiveCubeFace();\n\t\tconst currentActiveMipmapLevel = renderer.getActiveMipmapLevel();\n\n\t\tconst currentXrEnabled = renderer.xr.enabled;\n\n\t\trenderer.xr.enabled = false;\n\n\t\tconst generateMipmaps = renderTarget.texture.generateMipmaps;\n\n\t\trenderTarget.texture.generateMipmaps = false;\n\n\t\trenderer.setRenderTarget( renderTarget, 0, activeMipmapLevel );\n\t\trenderer.render( scene, cameraPX );\n\n\t\trenderer.setRenderTarget( renderTarget, 1, activeMipmapLevel );\n\t\trenderer.render( scene, cameraNX );\n\n\t\trenderer.setRenderTarget( renderTarget, 2, activeMipmapLevel );\n\t\trenderer.render( scene, cameraPY );\n\n\t\trenderer.setRenderTarget( renderTarget, 3, activeMipmapLevel );\n\t\trenderer.render( scene, cameraNY );\n\n\t\trenderer.setRenderTarget( renderTarget, 4, activeMipmapLevel );\n\t\trenderer.render( scene, cameraPZ );\n\n\t\t// mipmaps are generated during the last call of render()\n\t\t// at this point, all sides of the cube render target are defined\n\n\t\trenderTarget.texture.generateMipmaps = generateMipmaps;\n\n\t\trenderer.setRenderTarget( renderTarget, 5, activeMipmapLevel );\n\t\trenderer.render( scene, cameraNZ );\n\n\t\trenderer.setRenderTarget( currentRenderTarget, currentActiveCubeFace, currentActiveMipmapLevel );\n\n\t\trenderer.xr.enabled = currentXrEnabled;\n\n\t\trenderTarget.texture.needsPMREMUpdate = true;\n\n\t}\n\n}\n\nclass CubeTexture extends Texture {\n\n\tconstructor( images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, colorSpace ) {\n\n\t\timages = images !== undefined ? images : [];\n\t\tmapping = mapping !== undefined ? mapping : CubeReflectionMapping;\n\n\t\tsuper( images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, colorSpace );\n\n\t\tthis.isCubeTexture = true;\n\n\t\tthis.flipY = false;\n\n\t}\n\n\tget images() {\n\n\t\treturn this.image;\n\n\t}\n\n\tset images( value ) {\n\n\t\tthis.image = value;\n\n\t}\n\n}\n\nclass WebGLCubeRenderTarget extends WebGLRenderTarget {\n\n\tconstructor( size = 1, options = {} ) {\n\n\t\tsuper( size, size, options );\n\n\t\tthis.isWebGLCubeRenderTarget = true;\n\n\t\tconst image = { width: size, height: size, depth: 1 };\n\t\tconst images = [ image, image, image, image, image, image ];\n\n\t\tthis.texture = new CubeTexture( images, options.mapping, options.wrapS, options.wrapT, options.magFilter, options.minFilter, options.format, options.type, options.anisotropy, options.colorSpace );\n\n\t\t// By convention -- likely based on the RenderMan spec from the 1990's -- cube maps are specified by WebGL (and three.js)\n\t\t// in a coordinate system in which positive-x is to the right when looking up the positive-z axis -- in other words,\n\t\t// in a left-handed coordinate system. By continuing this convention, preexisting cube maps continued to render correctly.\n\n\t\t// three.js uses a right-handed coordinate system. So environment maps used in three.js appear to have px and nx swapped\n\t\t// and the flag isRenderTargetTexture controls this conversion. The flip is not required when using WebGLCubeRenderTarget.texture\n\t\t// as a cube texture (this is detected when isRenderTargetTexture is set to true for cube textures).\n\n\t\tthis.texture.isRenderTargetTexture = true;\n\n\t\tthis.texture.generateMipmaps = options.generateMipmaps !== undefined ? options.generateMipmaps : false;\n\t\tthis.texture.minFilter = options.minFilter !== undefined ? options.minFilter : LinearFilter;\n\n\t}\n\n\tfromEquirectangularTexture( renderer, texture ) {\n\n\t\tthis.texture.type = texture.type;\n\t\tthis.texture.colorSpace = texture.colorSpace;\n\n\t\tthis.texture.generateMipmaps = texture.generateMipmaps;\n\t\tthis.texture.minFilter = texture.minFilter;\n\t\tthis.texture.magFilter = texture.magFilter;\n\n\t\tconst shader = {\n\n\t\t\tuniforms: {\n\t\t\t\ttEquirect: { value: null },\n\t\t\t},\n\n\t\t\tvertexShader: /* glsl */`\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t`,\n\n\t\t\tfragmentShader: /* glsl */`\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include \n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t`\n\t\t};\n\n\t\tconst geometry = new BoxGeometry( 5, 5, 5 );\n\n\t\tconst material = new ShaderMaterial( {\n\n\t\t\tname: 'CubemapFromEquirect',\n\n\t\t\tuniforms: cloneUniforms( shader.uniforms ),\n\t\t\tvertexShader: shader.vertexShader,\n\t\t\tfragmentShader: shader.fragmentShader,\n\t\t\tside: BackSide,\n\t\t\tblending: NoBlending\n\n\t\t} );\n\n\t\tmaterial.uniforms.tEquirect.value = texture;\n\n\t\tconst mesh = new Mesh( geometry, material );\n\n\t\tconst currentMinFilter = texture.minFilter;\n\n\t\t// Avoid blurred poles\n\t\tif ( texture.minFilter === LinearMipmapLinearFilter ) texture.minFilter = LinearFilter;\n\n\t\tconst camera = new CubeCamera( 1, 10, this );\n\t\tcamera.update( renderer, mesh );\n\n\t\ttexture.minFilter = currentMinFilter;\n\n\t\tmesh.geometry.dispose();\n\t\tmesh.material.dispose();\n\n\t\treturn this;\n\n\t}\n\n\tclear( renderer, color, depth, stencil ) {\n\n\t\tconst currentRenderTarget = renderer.getRenderTarget();\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\trenderer.setRenderTarget( this, i );\n\n\t\t\trenderer.clear( color, depth, stencil );\n\n\t\t}\n\n\t\trenderer.setRenderTarget( currentRenderTarget );\n\n\t}\n\n}\n\nconst _vector1 = /*@__PURE__*/ new Vector3();\nconst _vector2 = /*@__PURE__*/ new Vector3();\nconst _normalMatrix = /*@__PURE__*/ new Matrix3();\n\nclass Plane {\n\n\tconstructor( normal = new Vector3( 1, 0, 0 ), constant = 0 ) {\n\n\t\tthis.isPlane = true;\n\n\t\t// normal is assumed to be normalized\n\n\t\tthis.normal = normal;\n\t\tthis.constant = constant;\n\n\t}\n\n\tset( normal, constant ) {\n\n\t\tthis.normal.copy( normal );\n\t\tthis.constant = constant;\n\n\t\treturn this;\n\n\t}\n\n\tsetComponents( x, y, z, w ) {\n\n\t\tthis.normal.set( x, y, z );\n\t\tthis.constant = w;\n\n\t\treturn this;\n\n\t}\n\n\tsetFromNormalAndCoplanarPoint( normal, point ) {\n\n\t\tthis.normal.copy( normal );\n\t\tthis.constant = - point.dot( this.normal );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromCoplanarPoints( a, b, c ) {\n\n\t\tconst normal = _vector1.subVectors( c, b ).cross( _vector2.subVectors( a, b ) ).normalize();\n\n\t\t// Q: should an error be thrown if normal is zero (e.g. degenerate plane)?\n\n\t\tthis.setFromNormalAndCoplanarPoint( normal, a );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( plane ) {\n\n\t\tthis.normal.copy( plane.normal );\n\t\tthis.constant = plane.constant;\n\n\t\treturn this;\n\n\t}\n\n\tnormalize() {\n\n\t\t// Note: will lead to a divide by zero if the plane is invalid.\n\n\t\tconst inverseNormalLength = 1.0 / this.normal.length();\n\t\tthis.normal.multiplyScalar( inverseNormalLength );\n\t\tthis.constant *= inverseNormalLength;\n\n\t\treturn this;\n\n\t}\n\n\tnegate() {\n\n\t\tthis.constant *= - 1;\n\t\tthis.normal.negate();\n\n\t\treturn this;\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\treturn this.normal.dot( point ) + this.constant;\n\n\t}\n\n\tdistanceToSphere( sphere ) {\n\n\t\treturn this.distanceToPoint( sphere.center ) - sphere.radius;\n\n\t}\n\n\tprojectPoint( point, target ) {\n\n\t\treturn target.copy( point ).addScaledVector( this.normal, - this.distanceToPoint( point ) );\n\n\t}\n\n\tintersectLine( line, target ) {\n\n\t\tconst direction = line.delta( _vector1 );\n\n\t\tconst denominator = this.normal.dot( direction );\n\n\t\tif ( denominator === 0 ) {\n\n\t\t\t// line is coplanar, return origin\n\t\t\tif ( this.distanceToPoint( line.start ) === 0 ) {\n\n\t\t\t\treturn target.copy( line.start );\n\n\t\t\t}\n\n\t\t\t// Unsure if this is the correct method to handle this case.\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst t = - ( line.start.dot( this.normal ) + this.constant ) / denominator;\n\n\t\tif ( t < 0 || t > 1 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\treturn target.copy( line.start ).addScaledVector( direction, t );\n\n\t}\n\n\tintersectsLine( line ) {\n\n\t\t// Note: this tests if a line intersects the plane, not whether it (or its end-points) are coplanar with it.\n\n\t\tconst startSign = this.distanceToPoint( line.start );\n\t\tconst endSign = this.distanceToPoint( line.end );\n\n\t\treturn ( startSign < 0 && endSign > 0 ) || ( endSign < 0 && startSign > 0 );\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\treturn box.intersectsPlane( this );\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\treturn sphere.intersectsPlane( this );\n\n\t}\n\n\tcoplanarPoint( target ) {\n\n\t\treturn target.copy( this.normal ).multiplyScalar( - this.constant );\n\n\t}\n\n\tapplyMatrix4( matrix, optionalNormalMatrix ) {\n\n\t\tconst normalMatrix = optionalNormalMatrix || _normalMatrix.getNormalMatrix( matrix );\n\n\t\tconst referencePoint = this.coplanarPoint( _vector1 ).applyMatrix4( matrix );\n\n\t\tconst normal = this.normal.applyMatrix3( normalMatrix ).normalize();\n\n\t\tthis.constant = - referencePoint.dot( normal );\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( offset ) {\n\n\t\tthis.constant -= offset.dot( this.normal );\n\n\t\treturn this;\n\n\t}\n\n\tequals( plane ) {\n\n\t\treturn plane.normal.equals( this.normal ) && ( plane.constant === this.constant );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nconst _sphere$5 = /*@__PURE__*/ new Sphere();\nconst _vector$7 = /*@__PURE__*/ new Vector3();\n\nclass Frustum {\n\n\tconstructor( p0 = new Plane(), p1 = new Plane(), p2 = new Plane(), p3 = new Plane(), p4 = new Plane(), p5 = new Plane() ) {\n\n\t\tthis.planes = [ p0, p1, p2, p3, p4, p5 ];\n\n\t}\n\n\tset( p0, p1, p2, p3, p4, p5 ) {\n\n\t\tconst planes = this.planes;\n\n\t\tplanes[ 0 ].copy( p0 );\n\t\tplanes[ 1 ].copy( p1 );\n\t\tplanes[ 2 ].copy( p2 );\n\t\tplanes[ 3 ].copy( p3 );\n\t\tplanes[ 4 ].copy( p4 );\n\t\tplanes[ 5 ].copy( p5 );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( frustum ) {\n\n\t\tconst planes = this.planes;\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tplanes[ i ].copy( frustum.planes[ i ] );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetFromProjectionMatrix( m, coordinateSystem = WebGLCoordinateSystem ) {\n\n\t\tconst planes = this.planes;\n\t\tconst me = m.elements;\n\t\tconst me0 = me[ 0 ], me1 = me[ 1 ], me2 = me[ 2 ], me3 = me[ 3 ];\n\t\tconst me4 = me[ 4 ], me5 = me[ 5 ], me6 = me[ 6 ], me7 = me[ 7 ];\n\t\tconst me8 = me[ 8 ], me9 = me[ 9 ], me10 = me[ 10 ], me11 = me[ 11 ];\n\t\tconst me12 = me[ 12 ], me13 = me[ 13 ], me14 = me[ 14 ], me15 = me[ 15 ];\n\n\t\tplanes[ 0 ].setComponents( me3 - me0, me7 - me4, me11 - me8, me15 - me12 ).normalize();\n\t\tplanes[ 1 ].setComponents( me3 + me0, me7 + me4, me11 + me8, me15 + me12 ).normalize();\n\t\tplanes[ 2 ].setComponents( me3 + me1, me7 + me5, me11 + me9, me15 + me13 ).normalize();\n\t\tplanes[ 3 ].setComponents( me3 - me1, me7 - me5, me11 - me9, me15 - me13 ).normalize();\n\t\tplanes[ 4 ].setComponents( me3 - me2, me7 - me6, me11 - me10, me15 - me14 ).normalize();\n\n\t\tif ( coordinateSystem === WebGLCoordinateSystem ) {\n\n\t\t\tplanes[ 5 ].setComponents( me3 + me2, me7 + me6, me11 + me10, me15 + me14 ).normalize();\n\n\t\t} else if ( coordinateSystem === WebGPUCoordinateSystem ) {\n\n\t\t\tplanes[ 5 ].setComponents( me2, me6, me10, me14 ).normalize();\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: ' + coordinateSystem );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tintersectsObject( object ) {\n\n\t\tif ( object.boundingSphere !== undefined ) {\n\n\t\t\tif ( object.boundingSphere === null ) object.computeBoundingSphere();\n\n\t\t\t_sphere$5.copy( object.boundingSphere ).applyMatrix4( object.matrixWorld );\n\n\t\t} else {\n\n\t\t\tconst geometry = object.geometry;\n\n\t\t\tif ( geometry.boundingSphere === null ) geometry.computeBoundingSphere();\n\n\t\t\t_sphere$5.copy( geometry.boundingSphere ).applyMatrix4( object.matrixWorld );\n\n\t\t}\n\n\t\treturn this.intersectsSphere( _sphere$5 );\n\n\t}\n\n\tintersectsSprite( sprite ) {\n\n\t\t_sphere$5.center.set( 0, 0, 0 );\n\t\t_sphere$5.radius = 0.7071067811865476;\n\t\t_sphere$5.applyMatrix4( sprite.matrixWorld );\n\n\t\treturn this.intersectsSphere( _sphere$5 );\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\tconst planes = this.planes;\n\t\tconst center = sphere.center;\n\t\tconst negRadius = - sphere.radius;\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tconst distance = planes[ i ].distanceToPoint( center );\n\n\t\t\tif ( distance < negRadius ) {\n\n\t\t\t\treturn false;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\tconst planes = this.planes;\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tconst plane = planes[ i ];\n\n\t\t\t// corner at max distance\n\n\t\t\t_vector$7.x = plane.normal.x > 0 ? box.max.x : box.min.x;\n\t\t\t_vector$7.y = plane.normal.y > 0 ? box.max.y : box.min.y;\n\t\t\t_vector$7.z = plane.normal.z > 0 ? box.max.z : box.min.z;\n\n\t\t\tif ( plane.distanceToPoint( _vector$7 ) < 0 ) {\n\n\t\t\t\treturn false;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\tconst planes = this.planes;\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tif ( planes[ i ].distanceToPoint( point ) < 0 ) {\n\n\t\t\t\treturn false;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nfunction WebGLAnimation() {\n\n\tlet context = null;\n\tlet isAnimating = false;\n\tlet animationLoop = null;\n\tlet requestId = null;\n\n\tfunction onAnimationFrame( time, frame ) {\n\n\t\tanimationLoop( time, frame );\n\n\t\trequestId = context.requestAnimationFrame( onAnimationFrame );\n\n\t}\n\n\treturn {\n\n\t\tstart: function () {\n\n\t\t\tif ( isAnimating === true ) return;\n\t\t\tif ( animationLoop === null ) return;\n\n\t\t\trequestId = context.requestAnimationFrame( onAnimationFrame );\n\n\t\t\tisAnimating = true;\n\n\t\t},\n\n\t\tstop: function () {\n\n\t\t\tcontext.cancelAnimationFrame( requestId );\n\n\t\t\tisAnimating = false;\n\n\t\t},\n\n\t\tsetAnimationLoop: function ( callback ) {\n\n\t\t\tanimationLoop = callback;\n\n\t\t},\n\n\t\tsetContext: function ( value ) {\n\n\t\t\tcontext = value;\n\n\t\t}\n\n\t};\n\n}\n\nfunction WebGLAttributes( gl ) {\n\n\tconst buffers = new WeakMap();\n\n\tfunction createBuffer( attribute, bufferType ) {\n\n\t\tconst array = attribute.array;\n\t\tconst usage = attribute.usage;\n\t\tconst size = array.byteLength;\n\n\t\tconst buffer = gl.createBuffer();\n\n\t\tgl.bindBuffer( bufferType, buffer );\n\t\tgl.bufferData( bufferType, array, usage );\n\n\t\tattribute.onUploadCallback();\n\n\t\tlet type;\n\n\t\tif ( array instanceof Float32Array ) {\n\n\t\t\ttype = gl.FLOAT;\n\n\t\t} else if ( array instanceof Uint16Array ) {\n\n\t\t\tif ( attribute.isFloat16BufferAttribute ) {\n\n\t\t\t\ttype = gl.HALF_FLOAT;\n\n\t\t\t} else {\n\n\t\t\t\ttype = gl.UNSIGNED_SHORT;\n\n\t\t\t}\n\n\t\t} else if ( array instanceof Int16Array ) {\n\n\t\t\ttype = gl.SHORT;\n\n\t\t} else if ( array instanceof Uint32Array ) {\n\n\t\t\ttype = gl.UNSIGNED_INT;\n\n\t\t} else if ( array instanceof Int32Array ) {\n\n\t\t\ttype = gl.INT;\n\n\t\t} else if ( array instanceof Int8Array ) {\n\n\t\t\ttype = gl.BYTE;\n\n\t\t} else if ( array instanceof Uint8Array ) {\n\n\t\t\ttype = gl.UNSIGNED_BYTE;\n\n\t\t} else if ( array instanceof Uint8ClampedArray ) {\n\n\t\t\ttype = gl.UNSIGNED_BYTE;\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'THREE.WebGLAttributes: Unsupported buffer data format: ' + array );\n\n\t\t}\n\n\t\treturn {\n\t\t\tbuffer: buffer,\n\t\t\ttype: type,\n\t\t\tbytesPerElement: array.BYTES_PER_ELEMENT,\n\t\t\tversion: attribute.version,\n\t\t\tsize: size\n\t\t};\n\n\t}\n\n\tfunction updateBuffer( buffer, attribute, bufferType ) {\n\n\t\tconst array = attribute.array;\n\t\tconst updateRanges = attribute.updateRanges;\n\n\t\tgl.bindBuffer( bufferType, buffer );\n\n\t\tif ( updateRanges.length === 0 ) {\n\n\t\t\t// Not using update ranges\n\t\t\tgl.bufferSubData( bufferType, 0, array );\n\n\t\t} else {\n\n\t\t\t// Before applying update ranges, we merge any adjacent / overlapping\n\t\t\t// ranges to reduce load on `gl.bufferSubData`. Empirically, this has led\n\t\t\t// to performance improvements for applications which make heavy use of\n\t\t\t// update ranges. Likely due to GPU command overhead.\n\t\t\t//\n\t\t\t// Note that to reduce garbage collection between frames, we merge the\n\t\t\t// update ranges in-place. This is safe because this method will clear the\n\t\t\t// update ranges once updated.\n\n\t\t\tupdateRanges.sort( ( a, b ) => a.start - b.start );\n\n\t\t\t// To merge the update ranges in-place, we work from left to right in the\n\t\t\t// existing updateRanges array, merging ranges. This may result in a final\n\t\t\t// array which is smaller than the original. This index tracks the last\n\t\t\t// index representing a merged range, any data after this index can be\n\t\t\t// trimmed once the merge algorithm is completed.\n\t\t\tlet mergeIndex = 0;\n\n\t\t\tfor ( let i = 1; i < updateRanges.length; i ++ ) {\n\n\t\t\t\tconst previousRange = updateRanges[ mergeIndex ];\n\t\t\t\tconst range = updateRanges[ i ];\n\n\t\t\t\t// We add one here to merge adjacent ranges. This is safe because ranges\n\t\t\t\t// operate over positive integers.\n\t\t\t\tif ( range.start <= previousRange.start + previousRange.count + 1 ) {\n\n\t\t\t\t\tpreviousRange.count = Math.max(\n\t\t\t\t\t\tpreviousRange.count,\n\t\t\t\t\t\trange.start + range.count - previousRange.start\n\t\t\t\t\t);\n\n\t\t\t\t} else {\n\n\t\t\t\t\t++ mergeIndex;\n\t\t\t\t\tupdateRanges[ mergeIndex ] = range;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// Trim the array to only contain the merged ranges.\n\t\t\tupdateRanges.length = mergeIndex + 1;\n\n\t\t\tfor ( let i = 0, l = updateRanges.length; i < l; i ++ ) {\n\n\t\t\t\tconst range = updateRanges[ i ];\n\n\t\t\t\tgl.bufferSubData( bufferType, range.start * array.BYTES_PER_ELEMENT,\n\t\t\t\t\tarray, range.start, range.count );\n\n\t\t\t}\n\n\t\t\tattribute.clearUpdateRanges();\n\n\t\t}\n\n\t\tattribute.onUploadCallback();\n\n\t}\n\n\t//\n\n\tfunction get( attribute ) {\n\n\t\tif ( attribute.isInterleavedBufferAttribute ) attribute = attribute.data;\n\n\t\treturn buffers.get( attribute );\n\n\t}\n\n\tfunction remove( attribute ) {\n\n\t\tif ( attribute.isInterleavedBufferAttribute ) attribute = attribute.data;\n\n\t\tconst data = buffers.get( attribute );\n\n\t\tif ( data ) {\n\n\t\t\tgl.deleteBuffer( data.buffer );\n\n\t\t\tbuffers.delete( attribute );\n\n\t\t}\n\n\t}\n\n\tfunction update( attribute, bufferType ) {\n\n\t\tif ( attribute.isInterleavedBufferAttribute ) attribute = attribute.data;\n\n\t\tif ( attribute.isGLBufferAttribute ) {\n\n\t\t\tconst cached = buffers.get( attribute );\n\n\t\t\tif ( ! cached || cached.version < attribute.version ) {\n\n\t\t\t\tbuffers.set( attribute, {\n\t\t\t\t\tbuffer: attribute.buffer,\n\t\t\t\t\ttype: attribute.type,\n\t\t\t\t\tbytesPerElement: attribute.elementSize,\n\t\t\t\t\tversion: attribute.version\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tconst data = buffers.get( attribute );\n\n\t\tif ( data === undefined ) {\n\n\t\t\tbuffers.set( attribute, createBuffer( attribute, bufferType ) );\n\n\t\t} else if ( data.version < attribute.version ) {\n\n\t\t\tif ( data.size !== attribute.array.byteLength ) {\n\n\t\t\t\tthrow new Error( 'THREE.WebGLAttributes: The size of the buffer attribute\\'s array buffer does not match the original size. Resizing buffer attributes is not supported.' );\n\n\t\t\t}\n\n\t\t\tupdateBuffer( data.buffer, attribute, bufferType );\n\n\t\t\tdata.version = attribute.version;\n\n\t\t}\n\n\t}\n\n\treturn {\n\n\t\tget: get,\n\t\tremove: remove,\n\t\tupdate: update\n\n\t};\n\n}\n\nclass PlaneGeometry extends BufferGeometry {\n\n\tconstructor( width = 1, height = 1, widthSegments = 1, heightSegments = 1 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'PlaneGeometry';\n\n\t\tthis.parameters = {\n\t\t\twidth: width,\n\t\t\theight: height,\n\t\t\twidthSegments: widthSegments,\n\t\t\theightSegments: heightSegments\n\t\t};\n\n\t\tconst width_half = width / 2;\n\t\tconst height_half = height / 2;\n\n\t\tconst gridX = Math.floor( widthSegments );\n\t\tconst gridY = Math.floor( heightSegments );\n\n\t\tconst gridX1 = gridX + 1;\n\t\tconst gridY1 = gridY + 1;\n\n\t\tconst segment_width = width / gridX;\n\t\tconst segment_height = height / gridY;\n\n\t\t//\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\tfor ( let iy = 0; iy < gridY1; iy ++ ) {\n\n\t\t\tconst y = iy * segment_height - height_half;\n\n\t\t\tfor ( let ix = 0; ix < gridX1; ix ++ ) {\n\n\t\t\t\tconst x = ix * segment_width - width_half;\n\n\t\t\t\tvertices.push( x, - y, 0 );\n\n\t\t\t\tnormals.push( 0, 0, 1 );\n\n\t\t\t\tuvs.push( ix / gridX );\n\t\t\t\tuvs.push( 1 - ( iy / gridY ) );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfor ( let iy = 0; iy < gridY; iy ++ ) {\n\n\t\t\tfor ( let ix = 0; ix < gridX; ix ++ ) {\n\n\t\t\t\tconst a = ix + gridX1 * iy;\n\t\t\t\tconst b = ix + gridX1 * ( iy + 1 );\n\t\t\t\tconst c = ( ix + 1 ) + gridX1 * ( iy + 1 );\n\t\t\t\tconst d = ( ix + 1 ) + gridX1 * iy;\n\n\t\t\t\tindices.push( a, b, d );\n\t\t\t\tindices.push( b, c, d );\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new PlaneGeometry( data.width, data.height, data.widthSegments, data.heightSegments );\n\n\t}\n\n}\n\nvar alphahash_fragment = \"#ifdef USE_ALPHAHASH\\n\\tif ( diffuseColor.a < getAlphaHashThreshold( vPosition ) ) discard;\\n#endif\";\n\nvar alphahash_pars_fragment = \"#ifdef USE_ALPHAHASH\\n\\tconst float ALPHA_HASH_SCALE = 0.05;\\n\\tfloat hash2D( vec2 value ) {\\n\\t\\treturn fract( 1.0e4 * sin( 17.0 * value.x + 0.1 * value.y ) * ( 0.1 + abs( sin( 13.0 * value.y + value.x ) ) ) );\\n\\t}\\n\\tfloat hash3D( vec3 value ) {\\n\\t\\treturn hash2D( vec2( hash2D( value.xy ), value.z ) );\\n\\t}\\n\\tfloat getAlphaHashThreshold( vec3 position ) {\\n\\t\\tfloat maxDeriv = max(\\n\\t\\t\\tlength( dFdx( position.xyz ) ),\\n\\t\\t\\tlength( dFdy( position.xyz ) )\\n\\t\\t);\\n\\t\\tfloat pixScale = 1.0 / ( ALPHA_HASH_SCALE * maxDeriv );\\n\\t\\tvec2 pixScales = vec2(\\n\\t\\t\\texp2( floor( log2( pixScale ) ) ),\\n\\t\\t\\texp2( ceil( log2( pixScale ) ) )\\n\\t\\t);\\n\\t\\tvec2 alpha = vec2(\\n\\t\\t\\thash3D( floor( pixScales.x * position.xyz ) ),\\n\\t\\t\\thash3D( floor( pixScales.y * position.xyz ) )\\n\\t\\t);\\n\\t\\tfloat lerpFactor = fract( log2( pixScale ) );\\n\\t\\tfloat x = ( 1.0 - lerpFactor ) * alpha.x + lerpFactor * alpha.y;\\n\\t\\tfloat a = min( lerpFactor, 1.0 - lerpFactor );\\n\\t\\tvec3 cases = vec3(\\n\\t\\t\\tx * x / ( 2.0 * a * ( 1.0 - a ) ),\\n\\t\\t\\t( x - 0.5 * a ) / ( 1.0 - a ),\\n\\t\\t\\t1.0 - ( ( 1.0 - x ) * ( 1.0 - x ) / ( 2.0 * a * ( 1.0 - a ) ) )\\n\\t\\t);\\n\\t\\tfloat threshold = ( x < ( 1.0 - a ) )\\n\\t\\t\\t? ( ( x < a ) ? cases.x : cases.y )\\n\\t\\t\\t: cases.z;\\n\\t\\treturn clamp( threshold , 1.0e-6, 1.0 );\\n\\t}\\n#endif\";\n\nvar alphamap_fragment = \"#ifdef USE_ALPHAMAP\\n\\tdiffuseColor.a *= texture2D( alphaMap, vAlphaMapUv ).g;\\n#endif\";\n\nvar alphamap_pars_fragment = \"#ifdef USE_ALPHAMAP\\n\\tuniform sampler2D alphaMap;\\n#endif\";\n\nvar alphatest_fragment = \"#ifdef USE_ALPHATEST\\n\\t#ifdef ALPHA_TO_COVERAGE\\n\\tdiffuseColor.a = smoothstep( alphaTest, alphaTest + fwidth( diffuseColor.a ), diffuseColor.a );\\n\\tif ( diffuseColor.a == 0.0 ) discard;\\n\\t#else\\n\\tif ( diffuseColor.a < alphaTest ) discard;\\n\\t#endif\\n#endif\";\n\nvar alphatest_pars_fragment = \"#ifdef USE_ALPHATEST\\n\\tuniform float alphaTest;\\n#endif\";\n\nvar aomap_fragment = \"#ifdef USE_AOMAP\\n\\tfloat ambientOcclusion = ( texture2D( aoMap, vAoMapUv ).r - 1.0 ) * aoMapIntensity + 1.0;\\n\\treflectedLight.indirectDiffuse *= ambientOcclusion;\\n\\t#if defined( USE_CLEARCOAT ) \\n\\t\\tclearcoatSpecularIndirect *= ambientOcclusion;\\n\\t#endif\\n\\t#if defined( USE_SHEEN ) \\n\\t\\tsheenSpecularIndirect *= ambientOcclusion;\\n\\t#endif\\n\\t#if defined( USE_ENVMAP ) && defined( STANDARD )\\n\\t\\tfloat dotNV = saturate( dot( geometryNormal, geometryViewDir ) );\\n\\t\\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.roughness );\\n\\t#endif\\n#endif\";\n\nvar aomap_pars_fragment = \"#ifdef USE_AOMAP\\n\\tuniform sampler2D aoMap;\\n\\tuniform float aoMapIntensity;\\n#endif\";\n\nvar batching_pars_vertex = \"#ifdef USE_BATCHING\\n\\t#if ! defined( GL_ANGLE_multi_draw )\\n\\t#define gl_DrawID _gl_DrawID\\n\\tuniform int _gl_DrawID;\\n\\t#endif\\n\\tuniform highp sampler2D batchingTexture;\\n\\tuniform highp usampler2D batchingIdTexture;\\n\\tmat4 getBatchingMatrix( const in float i ) {\\n\\t\\tint size = textureSize( batchingTexture, 0 ).x;\\n\\t\\tint j = int( i ) * 4;\\n\\t\\tint x = j % size;\\n\\t\\tint y = j / size;\\n\\t\\tvec4 v1 = texelFetch( batchingTexture, ivec2( x, y ), 0 );\\n\\t\\tvec4 v2 = texelFetch( batchingTexture, ivec2( x + 1, y ), 0 );\\n\\t\\tvec4 v3 = texelFetch( batchingTexture, ivec2( x + 2, y ), 0 );\\n\\t\\tvec4 v4 = texelFetch( batchingTexture, ivec2( x + 3, y ), 0 );\\n\\t\\treturn mat4( v1, v2, v3, v4 );\\n\\t}\\n\\tfloat getIndirectIndex( const in int i ) {\\n\\t\\tint size = textureSize( batchingIdTexture, 0 ).x;\\n\\t\\tint x = i % size;\\n\\t\\tint y = i / size;\\n\\t\\treturn float( texelFetch( batchingIdTexture, ivec2( x, y ), 0 ).r );\\n\\t}\\n#endif\\n#ifdef USE_BATCHING_COLOR\\n\\tuniform sampler2D batchingColorTexture;\\n\\tvec3 getBatchingColor( const in float i ) {\\n\\t\\tint size = textureSize( batchingColorTexture, 0 ).x;\\n\\t\\tint j = int( i );\\n\\t\\tint x = j % size;\\n\\t\\tint y = j / size;\\n\\t\\treturn texelFetch( batchingColorTexture, ivec2( x, y ), 0 ).rgb;\\n\\t}\\n#endif\";\n\nvar batching_vertex = \"#ifdef USE_BATCHING\\n\\tmat4 batchingMatrix = getBatchingMatrix( getIndirectIndex( gl_DrawID ) );\\n#endif\";\n\nvar begin_vertex = \"vec3 transformed = vec3( position );\\n#ifdef USE_ALPHAHASH\\n\\tvPosition = vec3( position );\\n#endif\";\n\nvar beginnormal_vertex = \"vec3 objectNormal = vec3( normal );\\n#ifdef USE_TANGENT\\n\\tvec3 objectTangent = vec3( tangent.xyz );\\n#endif\";\n\nvar bsdfs = \"float G_BlinnPhong_Implicit( ) {\\n\\treturn 0.25;\\n}\\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\\n\\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\\n}\\nvec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) {\\n\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\\n\\tvec3 F = F_Schlick( specularColor, 1.0, dotVH );\\n\\tfloat G = G_BlinnPhong_Implicit( );\\n\\tfloat D = D_BlinnPhong( shininess, dotNH );\\n\\treturn F * ( G * D );\\n} // validated\";\n\nvar iridescence_fragment = \"#ifdef USE_IRIDESCENCE\\n\\tconst mat3 XYZ_TO_REC709 = mat3(\\n\\t\\t 3.2404542, -0.9692660, 0.0556434,\\n\\t\\t-1.5371385, 1.8760108, -0.2040259,\\n\\t\\t-0.4985314, 0.0415560, 1.0572252\\n\\t);\\n\\tvec3 Fresnel0ToIor( vec3 fresnel0 ) {\\n\\t\\tvec3 sqrtF0 = sqrt( fresnel0 );\\n\\t\\treturn ( vec3( 1.0 ) + sqrtF0 ) / ( vec3( 1.0 ) - sqrtF0 );\\n\\t}\\n\\tvec3 IorToFresnel0( vec3 transmittedIor, float incidentIor ) {\\n\\t\\treturn pow2( ( transmittedIor - vec3( incidentIor ) ) / ( transmittedIor + vec3( incidentIor ) ) );\\n\\t}\\n\\tfloat IorToFresnel0( float transmittedIor, float incidentIor ) {\\n\\t\\treturn pow2( ( transmittedIor - incidentIor ) / ( transmittedIor + incidentIor ));\\n\\t}\\n\\tvec3 evalSensitivity( float OPD, vec3 shift ) {\\n\\t\\tfloat phase = 2.0 * PI * OPD * 1.0e-9;\\n\\t\\tvec3 val = vec3( 5.4856e-13, 4.4201e-13, 5.2481e-13 );\\n\\t\\tvec3 pos = vec3( 1.6810e+06, 1.7953e+06, 2.2084e+06 );\\n\\t\\tvec3 var = vec3( 4.3278e+09, 9.3046e+09, 6.6121e+09 );\\n\\t\\tvec3 xyz = val * sqrt( 2.0 * PI * var ) * cos( pos * phase + shift ) * exp( - pow2( phase ) * var );\\n\\t\\txyz.x += 9.7470e-14 * sqrt( 2.0 * PI * 4.5282e+09 ) * cos( 2.2399e+06 * phase + shift[ 0 ] ) * exp( - 4.5282e+09 * pow2( phase ) );\\n\\t\\txyz /= 1.0685e-7;\\n\\t\\tvec3 rgb = XYZ_TO_REC709 * xyz;\\n\\t\\treturn rgb;\\n\\t}\\n\\tvec3 evalIridescence( float outsideIOR, float eta2, float cosTheta1, float thinFilmThickness, vec3 baseF0 ) {\\n\\t\\tvec3 I;\\n\\t\\tfloat iridescenceIOR = mix( outsideIOR, eta2, smoothstep( 0.0, 0.03, thinFilmThickness ) );\\n\\t\\tfloat sinTheta2Sq = pow2( outsideIOR / iridescenceIOR ) * ( 1.0 - pow2( cosTheta1 ) );\\n\\t\\tfloat cosTheta2Sq = 1.0 - sinTheta2Sq;\\n\\t\\tif ( cosTheta2Sq < 0.0 ) {\\n\\t\\t\\treturn vec3( 1.0 );\\n\\t\\t}\\n\\t\\tfloat cosTheta2 = sqrt( cosTheta2Sq );\\n\\t\\tfloat R0 = IorToFresnel0( iridescenceIOR, outsideIOR );\\n\\t\\tfloat R12 = F_Schlick( R0, 1.0, cosTheta1 );\\n\\t\\tfloat T121 = 1.0 - R12;\\n\\t\\tfloat phi12 = 0.0;\\n\\t\\tif ( iridescenceIOR < outsideIOR ) phi12 = PI;\\n\\t\\tfloat phi21 = PI - phi12;\\n\\t\\tvec3 baseIOR = Fresnel0ToIor( clamp( baseF0, 0.0, 0.9999 ) );\\t\\tvec3 R1 = IorToFresnel0( baseIOR, iridescenceIOR );\\n\\t\\tvec3 R23 = F_Schlick( R1, 1.0, cosTheta2 );\\n\\t\\tvec3 phi23 = vec3( 0.0 );\\n\\t\\tif ( baseIOR[ 0 ] < iridescenceIOR ) phi23[ 0 ] = PI;\\n\\t\\tif ( baseIOR[ 1 ] < iridescenceIOR ) phi23[ 1 ] = PI;\\n\\t\\tif ( baseIOR[ 2 ] < iridescenceIOR ) phi23[ 2 ] = PI;\\n\\t\\tfloat OPD = 2.0 * iridescenceIOR * thinFilmThickness * cosTheta2;\\n\\t\\tvec3 phi = vec3( phi21 ) + phi23;\\n\\t\\tvec3 R123 = clamp( R12 * R23, 1e-5, 0.9999 );\\n\\t\\tvec3 r123 = sqrt( R123 );\\n\\t\\tvec3 Rs = pow2( T121 ) * R23 / ( vec3( 1.0 ) - R123 );\\n\\t\\tvec3 C0 = R12 + Rs;\\n\\t\\tI = C0;\\n\\t\\tvec3 Cm = Rs - T121;\\n\\t\\tfor ( int m = 1; m <= 2; ++ m ) {\\n\\t\\t\\tCm *= r123;\\n\\t\\t\\tvec3 Sm = 2.0 * evalSensitivity( float( m ) * OPD, float( m ) * phi );\\n\\t\\t\\tI += Cm * Sm;\\n\\t\\t}\\n\\t\\treturn max( I, vec3( 0.0 ) );\\n\\t}\\n#endif\";\n\nvar bumpmap_pars_fragment = \"#ifdef USE_BUMPMAP\\n\\tuniform sampler2D bumpMap;\\n\\tuniform float bumpScale;\\n\\tvec2 dHdxy_fwd() {\\n\\t\\tvec2 dSTdx = dFdx( vBumpMapUv );\\n\\t\\tvec2 dSTdy = dFdy( vBumpMapUv );\\n\\t\\tfloat Hll = bumpScale * texture2D( bumpMap, vBumpMapUv ).x;\\n\\t\\tfloat dBx = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdx ).x - Hll;\\n\\t\\tfloat dBy = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdy ).x - Hll;\\n\\t\\treturn vec2( dBx, dBy );\\n\\t}\\n\\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {\\n\\t\\tvec3 vSigmaX = normalize( dFdx( surf_pos.xyz ) );\\n\\t\\tvec3 vSigmaY = normalize( dFdy( surf_pos.xyz ) );\\n\\t\\tvec3 vN = surf_norm;\\n\\t\\tvec3 R1 = cross( vSigmaY, vN );\\n\\t\\tvec3 R2 = cross( vN, vSigmaX );\\n\\t\\tfloat fDet = dot( vSigmaX, R1 ) * faceDirection;\\n\\t\\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\\n\\t\\treturn normalize( abs( fDet ) * surf_norm - vGrad );\\n\\t}\\n#endif\";\n\nvar clipping_planes_fragment = \"#if NUM_CLIPPING_PLANES > 0\\n\\tvec4 plane;\\n\\t#ifdef ALPHA_TO_COVERAGE\\n\\t\\tfloat distanceToPlane, distanceGradient;\\n\\t\\tfloat clipOpacity = 1.0;\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\\n\\t\\t\\tplane = clippingPlanes[ i ];\\n\\t\\t\\tdistanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\\n\\t\\t\\tdistanceGradient = fwidth( distanceToPlane ) / 2.0;\\n\\t\\t\\tclipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\\n\\t\\t\\tif ( clipOpacity == 0.0 ) discard;\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t\\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\\n\\t\\t\\tfloat unionClipOpacity = 1.0;\\n\\t\\t\\t#pragma unroll_loop_start\\n\\t\\t\\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\\n\\t\\t\\t\\tplane = clippingPlanes[ i ];\\n\\t\\t\\t\\tdistanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\\n\\t\\t\\t\\tdistanceGradient = fwidth( distanceToPlane ) / 2.0;\\n\\t\\t\\t\\tunionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\\n\\t\\t\\t}\\n\\t\\t\\t#pragma unroll_loop_end\\n\\t\\t\\tclipOpacity *= 1.0 - unionClipOpacity;\\n\\t\\t#endif\\n\\t\\tdiffuseColor.a *= clipOpacity;\\n\\t\\tif ( diffuseColor.a == 0.0 ) discard;\\n\\t#else\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\\n\\t\\t\\tplane = clippingPlanes[ i ];\\n\\t\\t\\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t\\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\\n\\t\\t\\tbool clipped = true;\\n\\t\\t\\t#pragma unroll_loop_start\\n\\t\\t\\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\\n\\t\\t\\t\\tplane = clippingPlanes[ i ];\\n\\t\\t\\t\\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\\n\\t\\t\\t}\\n\\t\\t\\t#pragma unroll_loop_end\\n\\t\\t\\tif ( clipped ) discard;\\n\\t\\t#endif\\n\\t#endif\\n#endif\";\n\nvar clipping_planes_pars_fragment = \"#if NUM_CLIPPING_PLANES > 0\\n\\tvarying vec3 vClipPosition;\\n\\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\\n#endif\";\n\nvar clipping_planes_pars_vertex = \"#if NUM_CLIPPING_PLANES > 0\\n\\tvarying vec3 vClipPosition;\\n#endif\";\n\nvar clipping_planes_vertex = \"#if NUM_CLIPPING_PLANES > 0\\n\\tvClipPosition = - mvPosition.xyz;\\n#endif\";\n\nvar color_fragment = \"#if defined( USE_COLOR_ALPHA )\\n\\tdiffuseColor *= vColor;\\n#elif defined( USE_COLOR )\\n\\tdiffuseColor.rgb *= vColor;\\n#endif\";\n\nvar color_pars_fragment = \"#if defined( USE_COLOR_ALPHA )\\n\\tvarying vec4 vColor;\\n#elif defined( USE_COLOR )\\n\\tvarying vec3 vColor;\\n#endif\";\n\nvar color_pars_vertex = \"#if defined( USE_COLOR_ALPHA )\\n\\tvarying vec4 vColor;\\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR )\\n\\tvarying vec3 vColor;\\n#endif\";\n\nvar color_vertex = \"#if defined( USE_COLOR_ALPHA )\\n\\tvColor = vec4( 1.0 );\\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR )\\n\\tvColor = vec3( 1.0 );\\n#endif\\n#ifdef USE_COLOR\\n\\tvColor *= color;\\n#endif\\n#ifdef USE_INSTANCING_COLOR\\n\\tvColor.xyz *= instanceColor.xyz;\\n#endif\\n#ifdef USE_BATCHING_COLOR\\n\\tvec3 batchingColor = getBatchingColor( getIndirectIndex( gl_DrawID ) );\\n\\tvColor.xyz *= batchingColor.xyz;\\n#endif\";\n\nvar common = \"#define PI 3.141592653589793\\n#define PI2 6.283185307179586\\n#define PI_HALF 1.5707963267948966\\n#define RECIPROCAL_PI 0.3183098861837907\\n#define RECIPROCAL_PI2 0.15915494309189535\\n#define EPSILON 1e-6\\n#ifndef saturate\\n#define saturate( a ) clamp( a, 0.0, 1.0 )\\n#endif\\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\\nfloat pow2( const in float x ) { return x*x; }\\nvec3 pow2( const in vec3 x ) { return x*x; }\\nfloat pow3( const in float x ) { return x*x*x; }\\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\\nhighp float rand( const in vec2 uv ) {\\n\\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\\n\\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\\n\\treturn fract( sin( sn ) * c );\\n}\\n#ifdef HIGH_PRECISION\\n\\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\\n#else\\n\\tfloat precisionSafeLength( vec3 v ) {\\n\\t\\tfloat maxComponent = max3( abs( v ) );\\n\\t\\treturn length( v / maxComponent ) * maxComponent;\\n\\t}\\n#endif\\nstruct IncidentLight {\\n\\tvec3 color;\\n\\tvec3 direction;\\n\\tbool visible;\\n};\\nstruct ReflectedLight {\\n\\tvec3 directDiffuse;\\n\\tvec3 directSpecular;\\n\\tvec3 indirectDiffuse;\\n\\tvec3 indirectSpecular;\\n};\\n#ifdef USE_ALPHAHASH\\n\\tvarying vec3 vPosition;\\n#endif\\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\\n\\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\\n}\\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\\n\\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\\n}\\nmat3 transposeMat3( const in mat3 m ) {\\n\\tmat3 tmp;\\n\\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\\n\\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\\n\\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\\n\\treturn tmp;\\n}\\nbool isPerspectiveMatrix( mat4 m ) {\\n\\treturn m[ 2 ][ 3 ] == - 1.0;\\n}\\nvec2 equirectUv( in vec3 dir ) {\\n\\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\\n\\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\\n\\treturn vec2( u, v );\\n}\\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\\n\\treturn RECIPROCAL_PI * diffuseColor;\\n}\\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\\n\\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\\n\\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\\n}\\nfloat F_Schlick( const in float f0, const in float f90, const in float dotVH ) {\\n\\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\\n\\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\\n} // validated\";\n\nvar cube_uv_reflection_fragment = \"#ifdef ENVMAP_TYPE_CUBE_UV\\n\\t#define cubeUV_minMipLevel 4.0\\n\\t#define cubeUV_minTileSize 16.0\\n\\tfloat getFace( vec3 direction ) {\\n\\t\\tvec3 absDirection = abs( direction );\\n\\t\\tfloat face = - 1.0;\\n\\t\\tif ( absDirection.x > absDirection.z ) {\\n\\t\\t\\tif ( absDirection.x > absDirection.y )\\n\\t\\t\\t\\tface = direction.x > 0.0 ? 0.0 : 3.0;\\n\\t\\t\\telse\\n\\t\\t\\t\\tface = direction.y > 0.0 ? 1.0 : 4.0;\\n\\t\\t} else {\\n\\t\\t\\tif ( absDirection.z > absDirection.y )\\n\\t\\t\\t\\tface = direction.z > 0.0 ? 2.0 : 5.0;\\n\\t\\t\\telse\\n\\t\\t\\t\\tface = direction.y > 0.0 ? 1.0 : 4.0;\\n\\t\\t}\\n\\t\\treturn face;\\n\\t}\\n\\tvec2 getUV( vec3 direction, float face ) {\\n\\t\\tvec2 uv;\\n\\t\\tif ( face == 0.0 ) {\\n\\t\\t\\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\\n\\t\\t} else if ( face == 1.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\\n\\t\\t} else if ( face == 2.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\\n\\t\\t} else if ( face == 3.0 ) {\\n\\t\\t\\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\\n\\t\\t} else if ( face == 4.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\\n\\t\\t} else {\\n\\t\\t\\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\\n\\t\\t}\\n\\t\\treturn 0.5 * ( uv + 1.0 );\\n\\t}\\n\\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\\n\\t\\tfloat face = getFace( direction );\\n\\t\\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\\n\\t\\tmipInt = max( mipInt, cubeUV_minMipLevel );\\n\\t\\tfloat faceSize = exp2( mipInt );\\n\\t\\thighp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\\n\\t\\tif ( face > 2.0 ) {\\n\\t\\t\\tuv.y += faceSize;\\n\\t\\t\\tface -= 3.0;\\n\\t\\t}\\n\\t\\tuv.x += face * faceSize;\\n\\t\\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\\n\\t\\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\\n\\t\\tuv.x *= CUBEUV_TEXEL_WIDTH;\\n\\t\\tuv.y *= CUBEUV_TEXEL_HEIGHT;\\n\\t\\t#ifdef texture2DGradEXT\\n\\t\\t\\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\\n\\t\\t#else\\n\\t\\t\\treturn texture2D( envMap, uv ).rgb;\\n\\t\\t#endif\\n\\t}\\n\\t#define cubeUV_r0 1.0\\n\\t#define cubeUV_m0 - 2.0\\n\\t#define cubeUV_r1 0.8\\n\\t#define cubeUV_m1 - 1.0\\n\\t#define cubeUV_r4 0.4\\n\\t#define cubeUV_m4 2.0\\n\\t#define cubeUV_r5 0.305\\n\\t#define cubeUV_m5 3.0\\n\\t#define cubeUV_r6 0.21\\n\\t#define cubeUV_m6 4.0\\n\\tfloat roughnessToMip( float roughness ) {\\n\\t\\tfloat mip = 0.0;\\n\\t\\tif ( roughness >= cubeUV_r1 ) {\\n\\t\\t\\tmip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\\n\\t\\t} else if ( roughness >= cubeUV_r4 ) {\\n\\t\\t\\tmip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\\n\\t\\t} else if ( roughness >= cubeUV_r5 ) {\\n\\t\\t\\tmip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\\n\\t\\t} else if ( roughness >= cubeUV_r6 ) {\\n\\t\\t\\tmip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;\\n\\t\\t} else {\\n\\t\\t\\tmip = - 2.0 * log2( 1.16 * roughness );\\t\\t}\\n\\t\\treturn mip;\\n\\t}\\n\\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\\n\\t\\tfloat mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );\\n\\t\\tfloat mipF = fract( mip );\\n\\t\\tfloat mipInt = floor( mip );\\n\\t\\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\\n\\t\\tif ( mipF == 0.0 ) {\\n\\t\\t\\treturn vec4( color0, 1.0 );\\n\\t\\t} else {\\n\\t\\t\\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\\n\\t\\t\\treturn vec4( mix( color0, color1, mipF ), 1.0 );\\n\\t\\t}\\n\\t}\\n#endif\";\n\nvar defaultnormal_vertex = \"vec3 transformedNormal = objectNormal;\\n#ifdef USE_TANGENT\\n\\tvec3 transformedTangent = objectTangent;\\n#endif\\n#ifdef USE_BATCHING\\n\\tmat3 bm = mat3( batchingMatrix );\\n\\ttransformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) );\\n\\ttransformedNormal = bm * transformedNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\ttransformedTangent = bm * transformedTangent;\\n\\t#endif\\n#endif\\n#ifdef USE_INSTANCING\\n\\tmat3 im = mat3( instanceMatrix );\\n\\ttransformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) );\\n\\ttransformedNormal = im * transformedNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\ttransformedTangent = im * transformedTangent;\\n\\t#endif\\n#endif\\ntransformedNormal = normalMatrix * transformedNormal;\\n#ifdef FLIP_SIDED\\n\\ttransformedNormal = - transformedNormal;\\n#endif\\n#ifdef USE_TANGENT\\n\\ttransformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz;\\n\\t#ifdef FLIP_SIDED\\n\\t\\ttransformedTangent = - transformedTangent;\\n\\t#endif\\n#endif\";\n\nvar displacementmap_pars_vertex = \"#ifdef USE_DISPLACEMENTMAP\\n\\tuniform sampler2D displacementMap;\\n\\tuniform float displacementScale;\\n\\tuniform float displacementBias;\\n#endif\";\n\nvar displacementmap_vertex = \"#ifdef USE_DISPLACEMENTMAP\\n\\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );\\n#endif\";\n\nvar emissivemap_fragment = \"#ifdef USE_EMISSIVEMAP\\n\\tvec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );\\n\\t#ifdef DECODE_VIDEO_TEXTURE_EMISSIVE\\n\\t\\temissiveColor = sRGBTransferEOTF( emissiveColor );\\n\\t#endif\\n\\ttotalEmissiveRadiance *= emissiveColor.rgb;\\n#endif\";\n\nvar emissivemap_pars_fragment = \"#ifdef USE_EMISSIVEMAP\\n\\tuniform sampler2D emissiveMap;\\n#endif\";\n\nvar colorspace_fragment = \"gl_FragColor = linearToOutputTexel( gl_FragColor );\";\n\nvar colorspace_pars_fragment = \"vec4 LinearTransferOETF( in vec4 value ) {\\n\\treturn value;\\n}\\nvec4 sRGBTransferEOTF( in vec4 value ) {\\n\\treturn vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a );\\n}\\nvec4 sRGBTransferOETF( in vec4 value ) {\\n\\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\\n}\";\n\nvar envmap_fragment = \"#ifdef USE_ENVMAP\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvec3 cameraToFrag;\\n\\t\\tif ( isOrthographic ) {\\n\\t\\t\\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\\n\\t\\t} else {\\n\\t\\t\\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\\n\\t\\t}\\n\\t\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\\n\\t\\t#else\\n\\t\\t\\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\\n\\t\\t#endif\\n\\t#else\\n\\t\\tvec3 reflectVec = vReflect;\\n\\t#endif\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tvec4 envColor = textureCube( envMap, envMapRotation * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\\n\\t#else\\n\\t\\tvec4 envColor = vec4( 0.0 );\\n\\t#endif\\n\\t#ifdef ENVMAP_BLENDING_MULTIPLY\\n\\t\\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\\n\\t#elif defined( ENVMAP_BLENDING_MIX )\\n\\t\\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\\n\\t#elif defined( ENVMAP_BLENDING_ADD )\\n\\t\\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\\n\\t#endif\\n#endif\";\n\nvar envmap_common_pars_fragment = \"#ifdef USE_ENVMAP\\n\\tuniform float envMapIntensity;\\n\\tuniform float flipEnvMap;\\n\\tuniform mat3 envMapRotation;\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tuniform samplerCube envMap;\\n\\t#else\\n\\t\\tuniform sampler2D envMap;\\n\\t#endif\\n\\t\\n#endif\";\n\nvar envmap_pars_fragment = \"#ifdef USE_ENVMAP\\n\\tuniform float reflectivity;\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\\n\\t\\t#define ENV_WORLDPOS\\n\\t#endif\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvarying vec3 vWorldPosition;\\n\\t\\tuniform float refractionRatio;\\n\\t#else\\n\\t\\tvarying vec3 vReflect;\\n\\t#endif\\n#endif\";\n\nvar envmap_pars_vertex = \"#ifdef USE_ENVMAP\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\\n\\t\\t#define ENV_WORLDPOS\\n\\t#endif\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\t\\n\\t\\tvarying vec3 vWorldPosition;\\n\\t#else\\n\\t\\tvarying vec3 vReflect;\\n\\t\\tuniform float refractionRatio;\\n\\t#endif\\n#endif\";\n\nvar envmap_vertex = \"#ifdef USE_ENVMAP\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvWorldPosition = worldPosition.xyz;\\n\\t#else\\n\\t\\tvec3 cameraToVertex;\\n\\t\\tif ( isOrthographic ) {\\n\\t\\t\\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\\n\\t\\t} else {\\n\\t\\t\\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\\n\\t\\t}\\n\\t\\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvReflect = reflect( cameraToVertex, worldNormal );\\n\\t\\t#else\\n\\t\\t\\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\\n\\t\\t#endif\\n\\t#endif\\n#endif\";\n\nvar fog_vertex = \"#ifdef USE_FOG\\n\\tvFogDepth = - mvPosition.z;\\n#endif\";\n\nvar fog_pars_vertex = \"#ifdef USE_FOG\\n\\tvarying float vFogDepth;\\n#endif\";\n\nvar fog_fragment = \"#ifdef USE_FOG\\n\\t#ifdef FOG_EXP2\\n\\t\\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\\n\\t#else\\n\\t\\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\\n\\t#endif\\n\\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\\n#endif\";\n\nvar fog_pars_fragment = \"#ifdef USE_FOG\\n\\tuniform vec3 fogColor;\\n\\tvarying float vFogDepth;\\n\\t#ifdef FOG_EXP2\\n\\t\\tuniform float fogDensity;\\n\\t#else\\n\\t\\tuniform float fogNear;\\n\\t\\tuniform float fogFar;\\n\\t#endif\\n#endif\";\n\nvar gradientmap_pars_fragment = \"#ifdef USE_GRADIENTMAP\\n\\tuniform sampler2D gradientMap;\\n#endif\\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\\n\\tfloat dotNL = dot( normal, lightDirection );\\n\\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\\n\\t#ifdef USE_GRADIENTMAP\\n\\t\\treturn vec3( texture2D( gradientMap, coord ).r );\\n\\t#else\\n\\t\\tvec2 fw = fwidth( coord ) * 0.5;\\n\\t\\treturn mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\\n\\t#endif\\n}\";\n\nvar lightmap_pars_fragment = \"#ifdef USE_LIGHTMAP\\n\\tuniform sampler2D lightMap;\\n\\tuniform float lightMapIntensity;\\n#endif\";\n\nvar lights_lambert_fragment = \"LambertMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\\nmaterial.specularStrength = specularStrength;\";\n\nvar lights_lambert_pars_fragment = \"varying vec3 vViewPosition;\\nstruct LambertMaterial {\\n\\tvec3 diffuseColor;\\n\\tfloat specularStrength;\\n};\\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Lambert\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Lambert\";\n\nvar lights_pars_begin = \"uniform bool receiveShadow;\\nuniform vec3 ambientLightColor;\\n#if defined( USE_LIGHT_PROBES )\\n\\tuniform vec3 lightProbe[ 9 ];\\n#endif\\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\\n\\tfloat x = normal.x, y = normal.y, z = normal.z;\\n\\tvec3 result = shCoefficients[ 0 ] * 0.886227;\\n\\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\\n\\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\\n\\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\\n\\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\\n\\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\\n\\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\\n\\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\\n\\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\\n\\treturn result;\\n}\\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\\n\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\\n\\treturn irradiance;\\n}\\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\\n\\tvec3 irradiance = ambientLightColor;\\n\\treturn irradiance;\\n}\\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\\n\\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\\n\\tif ( cutoffDistance > 0.0 ) {\\n\\t\\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\\n\\t}\\n\\treturn distanceFalloff;\\n}\\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\\n\\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\\n}\\n#if NUM_DIR_LIGHTS > 0\\n\\tstruct DirectionalLight {\\n\\t\\tvec3 direction;\\n\\t\\tvec3 color;\\n\\t};\\n\\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\\n\\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) {\\n\\t\\tlight.color = directionalLight.color;\\n\\t\\tlight.direction = directionalLight.direction;\\n\\t\\tlight.visible = true;\\n\\t}\\n#endif\\n#if NUM_POINT_LIGHTS > 0\\n\\tstruct PointLight {\\n\\t\\tvec3 position;\\n\\t\\tvec3 color;\\n\\t\\tfloat distance;\\n\\t\\tfloat decay;\\n\\t};\\n\\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\\n\\tvoid getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) {\\n\\t\\tvec3 lVector = pointLight.position - geometryPosition;\\n\\t\\tlight.direction = normalize( lVector );\\n\\t\\tfloat lightDistance = length( lVector );\\n\\t\\tlight.color = pointLight.color;\\n\\t\\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\\n\\t\\tlight.visible = ( light.color != vec3( 0.0 ) );\\n\\t}\\n#endif\\n#if NUM_SPOT_LIGHTS > 0\\n\\tstruct SpotLight {\\n\\t\\tvec3 position;\\n\\t\\tvec3 direction;\\n\\t\\tvec3 color;\\n\\t\\tfloat distance;\\n\\t\\tfloat decay;\\n\\t\\tfloat coneCos;\\n\\t\\tfloat penumbraCos;\\n\\t};\\n\\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\\n\\tvoid getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) {\\n\\t\\tvec3 lVector = spotLight.position - geometryPosition;\\n\\t\\tlight.direction = normalize( lVector );\\n\\t\\tfloat angleCos = dot( light.direction, spotLight.direction );\\n\\t\\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\\n\\t\\tif ( spotAttenuation > 0.0 ) {\\n\\t\\t\\tfloat lightDistance = length( lVector );\\n\\t\\t\\tlight.color = spotLight.color * spotAttenuation;\\n\\t\\t\\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\\n\\t\\t\\tlight.visible = ( light.color != vec3( 0.0 ) );\\n\\t\\t} else {\\n\\t\\t\\tlight.color = vec3( 0.0 );\\n\\t\\t\\tlight.visible = false;\\n\\t\\t}\\n\\t}\\n#endif\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\\tstruct RectAreaLight {\\n\\t\\tvec3 color;\\n\\t\\tvec3 position;\\n\\t\\tvec3 halfWidth;\\n\\t\\tvec3 halfHeight;\\n\\t};\\n\\tuniform sampler2D ltc_1;\\tuniform sampler2D ltc_2;\\n\\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\\n#endif\\n#if NUM_HEMI_LIGHTS > 0\\n\\tstruct HemisphereLight {\\n\\t\\tvec3 direction;\\n\\t\\tvec3 skyColor;\\n\\t\\tvec3 groundColor;\\n\\t};\\n\\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\\n\\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\\n\\t\\tfloat dotNL = dot( normal, hemiLight.direction );\\n\\t\\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\\n\\t\\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\\n\\t\\treturn irradiance;\\n\\t}\\n#endif\";\n\nvar envmap_physical_pars_fragment = \"#ifdef USE_ENVMAP\\n\\tvec3 getIBLIrradiance( const in vec3 normal ) {\\n\\t\\t#ifdef ENVMAP_TYPE_CUBE_UV\\n\\t\\t\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\t\\t\\tvec4 envMapColor = textureCubeUV( envMap, envMapRotation * worldNormal, 1.0 );\\n\\t\\t\\treturn PI * envMapColor.rgb * envMapIntensity;\\n\\t\\t#else\\n\\t\\t\\treturn vec3( 0.0 );\\n\\t\\t#endif\\n\\t}\\n\\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\\n\\t\\t#ifdef ENVMAP_TYPE_CUBE_UV\\n\\t\\t\\tvec3 reflectVec = reflect( - viewDir, normal );\\n\\t\\t\\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\\n\\t\\t\\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\\n\\t\\t\\tvec4 envMapColor = textureCubeUV( envMap, envMapRotation * reflectVec, roughness );\\n\\t\\t\\treturn envMapColor.rgb * envMapIntensity;\\n\\t\\t#else\\n\\t\\t\\treturn vec3( 0.0 );\\n\\t\\t#endif\\n\\t}\\n\\t#ifdef USE_ANISOTROPY\\n\\t\\tvec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {\\n\\t\\t\\t#ifdef ENVMAP_TYPE_CUBE_UV\\n\\t\\t\\t\\tvec3 bentNormal = cross( bitangent, viewDir );\\n\\t\\t\\t\\tbentNormal = normalize( cross( bentNormal, bitangent ) );\\n\\t\\t\\t\\tbentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );\\n\\t\\t\\t\\treturn getIBLRadiance( viewDir, bentNormal, roughness );\\n\\t\\t\\t#else\\n\\t\\t\\t\\treturn vec3( 0.0 );\\n\\t\\t\\t#endif\\n\\t\\t}\\n\\t#endif\\n#endif\";\n\nvar lights_toon_fragment = \"ToonMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\";\n\nvar lights_toon_pars_fragment = \"varying vec3 vViewPosition;\\nstruct ToonMaterial {\\n\\tvec3 diffuseColor;\\n};\\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tvec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color;\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Toon\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Toon\";\n\nvar lights_phong_fragment = \"BlinnPhongMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\\nmaterial.specularColor = specular;\\nmaterial.specularShininess = shininess;\\nmaterial.specularStrength = specularStrength;\";\n\nvar lights_phong_pars_fragment = \"varying vec3 vViewPosition;\\nstruct BlinnPhongMaterial {\\n\\tvec3 diffuseColor;\\n\\tvec3 specularColor;\\n\\tfloat specularShininess;\\n\\tfloat specularStrength;\\n};\\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n\\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength;\\n}\\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_BlinnPhong\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_BlinnPhong\";\n\nvar lights_physical_fragment = \"PhysicalMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\\nvec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) );\\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\\nmaterial.roughness = min( material.roughness, 1.0 );\\n#ifdef IOR\\n\\tmaterial.ior = ior;\\n\\t#ifdef USE_SPECULAR\\n\\t\\tfloat specularIntensityFactor = specularIntensity;\\n\\t\\tvec3 specularColorFactor = specularColor;\\n\\t\\t#ifdef USE_SPECULAR_COLORMAP\\n\\t\\t\\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\\n\\t\\t#endif\\n\\t\\t#ifdef USE_SPECULAR_INTENSITYMAP\\n\\t\\t\\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\\n\\t\\t#endif\\n\\t\\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\\n\\t#else\\n\\t\\tfloat specularIntensityFactor = 1.0;\\n\\t\\tvec3 specularColorFactor = vec3( 1.0 );\\n\\t\\tmaterial.specularF90 = 1.0;\\n\\t#endif\\n\\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\\n#else\\n\\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\\n\\tmaterial.specularF90 = 1.0;\\n#endif\\n#ifdef USE_CLEARCOAT\\n\\tmaterial.clearcoat = clearcoat;\\n\\tmaterial.clearcoatRoughness = clearcoatRoughness;\\n\\tmaterial.clearcoatF0 = vec3( 0.04 );\\n\\tmaterial.clearcoatF90 = 1.0;\\n\\t#ifdef USE_CLEARCOATMAP\\n\\t\\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\\n\\t#endif\\n\\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\t\\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\\n\\t#endif\\n\\tmaterial.clearcoat = saturate( material.clearcoat );\\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\\n\\tmaterial.clearcoatRoughness += geometryRoughness;\\n\\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\\n#endif\\n#ifdef USE_DISPERSION\\n\\tmaterial.dispersion = dispersion;\\n#endif\\n#ifdef USE_IRIDESCENCE\\n\\tmaterial.iridescence = iridescence;\\n\\tmaterial.iridescenceIOR = iridescenceIOR;\\n\\t#ifdef USE_IRIDESCENCEMAP\\n\\t\\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\\n\\t#endif\\n\\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\t\\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\\n\\t#else\\n\\t\\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\\n\\t#endif\\n#endif\\n#ifdef USE_SHEEN\\n\\tmaterial.sheenColor = sheenColor;\\n\\t#ifdef USE_SHEEN_COLORMAP\\n\\t\\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\\n\\t#endif\\n\\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\\n\\t#ifdef USE_SHEEN_ROUGHNESSMAP\\n\\t\\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\\n\\t#endif\\n#endif\\n#ifdef USE_ANISOTROPY\\n\\t#ifdef USE_ANISOTROPYMAP\\n\\t\\tmat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );\\n\\t\\tvec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb;\\n\\t\\tvec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b;\\n\\t#else\\n\\t\\tvec2 anisotropyV = anisotropyVector;\\n\\t#endif\\n\\tmaterial.anisotropy = length( anisotropyV );\\n\\tif( material.anisotropy == 0.0 ) {\\n\\t\\tanisotropyV = vec2( 1.0, 0.0 );\\n\\t} else {\\n\\t\\tanisotropyV /= material.anisotropy;\\n\\t\\tmaterial.anisotropy = saturate( material.anisotropy );\\n\\t}\\n\\tmaterial.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) );\\n\\tmaterial.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y;\\n\\tmaterial.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y;\\n#endif\";\n\nvar lights_physical_pars_fragment = \"struct PhysicalMaterial {\\n\\tvec3 diffuseColor;\\n\\tfloat roughness;\\n\\tvec3 specularColor;\\n\\tfloat specularF90;\\n\\tfloat dispersion;\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tfloat clearcoat;\\n\\t\\tfloat clearcoatRoughness;\\n\\t\\tvec3 clearcoatF0;\\n\\t\\tfloat clearcoatF90;\\n\\t#endif\\n\\t#ifdef USE_IRIDESCENCE\\n\\t\\tfloat iridescence;\\n\\t\\tfloat iridescenceIOR;\\n\\t\\tfloat iridescenceThickness;\\n\\t\\tvec3 iridescenceFresnel;\\n\\t\\tvec3 iridescenceF0;\\n\\t#endif\\n\\t#ifdef USE_SHEEN\\n\\t\\tvec3 sheenColor;\\n\\t\\tfloat sheenRoughness;\\n\\t#endif\\n\\t#ifdef IOR\\n\\t\\tfloat ior;\\n\\t#endif\\n\\t#ifdef USE_TRANSMISSION\\n\\t\\tfloat transmission;\\n\\t\\tfloat transmissionAlpha;\\n\\t\\tfloat thickness;\\n\\t\\tfloat attenuationDistance;\\n\\t\\tvec3 attenuationColor;\\n\\t#endif\\n\\t#ifdef USE_ANISOTROPY\\n\\t\\tfloat anisotropy;\\n\\t\\tfloat alphaT;\\n\\t\\tvec3 anisotropyT;\\n\\t\\tvec3 anisotropyB;\\n\\t#endif\\n};\\nvec3 clearcoatSpecularDirect = vec3( 0.0 );\\nvec3 clearcoatSpecularIndirect = vec3( 0.0 );\\nvec3 sheenSpecularDirect = vec3( 0.0 );\\nvec3 sheenSpecularIndirect = vec3(0.0 );\\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\\n float x2 = x * x;\\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\\n}\\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\\n\\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\\n\\treturn 0.5 / max( gv + gl, EPSILON );\\n}\\nfloat D_GGX( const in float alpha, const in float dotNH ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\\n\\treturn RECIPROCAL_PI * a2 / pow2( denom );\\n}\\n#ifdef USE_ANISOTROPY\\n\\tfloat V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {\\n\\t\\tfloat gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );\\n\\t\\tfloat gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );\\n\\t\\tfloat v = 0.5 / ( gv + gl );\\n\\t\\treturn saturate(v);\\n\\t}\\n\\tfloat D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {\\n\\t\\tfloat a2 = alphaT * alphaB;\\n\\t\\thighp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );\\n\\t\\thighp float v2 = dot( v, v );\\n\\t\\tfloat w2 = a2 / v2;\\n\\t\\treturn RECIPROCAL_PI * a2 * pow2 ( w2 );\\n\\t}\\n#endif\\n#ifdef USE_CLEARCOAT\\n\\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\\n\\t\\tvec3 f0 = material.clearcoatF0;\\n\\t\\tfloat f90 = material.clearcoatF90;\\n\\t\\tfloat roughness = material.clearcoatRoughness;\\n\\t\\tfloat alpha = pow2( roughness );\\n\\t\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\t\\tfloat dotNL = saturate( dot( normal, lightDir ) );\\n\\t\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\t\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\t\\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\\n\\t\\tvec3 F = F_Schlick( f0, f90, dotVH );\\n\\t\\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\\n\\t\\tfloat D = D_GGX( alpha, dotNH );\\n\\t\\treturn F * ( V * D );\\n\\t}\\n#endif\\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\\n\\tvec3 f0 = material.specularColor;\\n\\tfloat f90 = material.specularF90;\\n\\tfloat roughness = material.roughness;\\n\\tfloat alpha = pow2( roughness );\\n\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\tfloat dotNL = saturate( dot( normal, lightDir ) );\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\\n\\tvec3 F = F_Schlick( f0, f90, dotVH );\\n\\t#ifdef USE_IRIDESCENCE\\n\\t\\tF = mix( F, material.iridescenceFresnel, material.iridescence );\\n\\t#endif\\n\\t#ifdef USE_ANISOTROPY\\n\\t\\tfloat dotTL = dot( material.anisotropyT, lightDir );\\n\\t\\tfloat dotTV = dot( material.anisotropyT, viewDir );\\n\\t\\tfloat dotTH = dot( material.anisotropyT, halfDir );\\n\\t\\tfloat dotBL = dot( material.anisotropyB, lightDir );\\n\\t\\tfloat dotBV = dot( material.anisotropyB, viewDir );\\n\\t\\tfloat dotBH = dot( material.anisotropyB, halfDir );\\n\\t\\tfloat V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );\\n\\t\\tfloat D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );\\n\\t#else\\n\\t\\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\\n\\t\\tfloat D = D_GGX( alpha, dotNH );\\n\\t#endif\\n\\treturn F * ( V * D );\\n}\\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\\n\\tconst float LUT_SIZE = 64.0;\\n\\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\\n\\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\\n\\tfloat dotNV = saturate( dot( N, V ) );\\n\\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\\n\\tuv = uv * LUT_SCALE + LUT_BIAS;\\n\\treturn uv;\\n}\\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\\n\\tfloat l = length( f );\\n\\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\\n}\\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\\n\\tfloat x = dot( v1, v2 );\\n\\tfloat y = abs( x );\\n\\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\\n\\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\\n\\tfloat v = a / b;\\n\\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\\n\\treturn cross( v1, v2 ) * theta_sintheta;\\n}\\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\\n\\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\\n\\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\\n\\tvec3 lightNormal = cross( v1, v2 );\\n\\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\\n\\tvec3 T1, T2;\\n\\tT1 = normalize( V - N * dot( V, N ) );\\n\\tT2 = - cross( N, T1 );\\n\\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\\n\\tvec3 coords[ 4 ];\\n\\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\\n\\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\\n\\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\\n\\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\\n\\tcoords[ 0 ] = normalize( coords[ 0 ] );\\n\\tcoords[ 1 ] = normalize( coords[ 1 ] );\\n\\tcoords[ 2 ] = normalize( coords[ 2 ] );\\n\\tcoords[ 3 ] = normalize( coords[ 3 ] );\\n\\tvec3 vectorFormFactor = vec3( 0.0 );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\\n\\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\\n\\treturn vec3( result );\\n}\\n#if defined( USE_SHEEN )\\nfloat D_Charlie( float roughness, float dotNH ) {\\n\\tfloat alpha = pow2( roughness );\\n\\tfloat invAlpha = 1.0 / alpha;\\n\\tfloat cos2h = dotNH * dotNH;\\n\\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\\n\\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\\n}\\nfloat V_Neubelt( float dotNV, float dotNL ) {\\n\\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\\n}\\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\\n\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\tfloat dotNL = saturate( dot( normal, lightDir ) );\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\tfloat D = D_Charlie( sheenRoughness, dotNH );\\n\\tfloat V = V_Neubelt( dotNV, dotNL );\\n\\treturn sheenColor * ( D * V );\\n}\\n#endif\\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tfloat r2 = roughness * roughness;\\n\\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\\n\\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\\n\\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\\n\\treturn saturate( DG * RECIPROCAL_PI );\\n}\\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\\n\\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\\n\\tvec4 r = roughness * c0 + c1;\\n\\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\\n\\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\\n\\treturn fab;\\n}\\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\\n\\tvec2 fab = DFGApprox( normal, viewDir, roughness );\\n\\treturn specularColor * fab.x + specularF90 * fab.y;\\n}\\n#ifdef USE_IRIDESCENCE\\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\\n#else\\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\\n#endif\\n\\tvec2 fab = DFGApprox( normal, viewDir, roughness );\\n\\t#ifdef USE_IRIDESCENCE\\n\\t\\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\\n\\t#else\\n\\t\\tvec3 Fr = specularColor;\\n\\t#endif\\n\\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\\n\\tfloat Ess = fab.x + fab.y;\\n\\tfloat Ems = 1.0 - Ess;\\n\\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\\n\\tsingleScatter += FssEss;\\n\\tmultiScatter += Fms * Ems;\\n}\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\t\\tvec3 normal = geometryNormal;\\n\\t\\tvec3 viewDir = geometryViewDir;\\n\\t\\tvec3 position = geometryPosition;\\n\\t\\tvec3 lightPos = rectAreaLight.position;\\n\\t\\tvec3 halfWidth = rectAreaLight.halfWidth;\\n\\t\\tvec3 halfHeight = rectAreaLight.halfHeight;\\n\\t\\tvec3 lightColor = rectAreaLight.color;\\n\\t\\tfloat roughness = material.roughness;\\n\\t\\tvec3 rectCoords[ 4 ];\\n\\t\\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\\t\\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\\n\\t\\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\\n\\t\\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\\n\\t\\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\\n\\t\\tvec4 t1 = texture2D( ltc_1, uv );\\n\\t\\tvec4 t2 = texture2D( ltc_2, uv );\\n\\t\\tmat3 mInv = mat3(\\n\\t\\t\\tvec3( t1.x, 0, t1.y ),\\n\\t\\t\\tvec3( 0, 1, 0 ),\\n\\t\\t\\tvec3( t1.z, 0, t1.w )\\n\\t\\t);\\n\\t\\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\\n\\t\\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\\n\\t\\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\\n\\t}\\n#endif\\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tfloat dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) );\\n\\t\\tvec3 ccIrradiance = dotNLcc * directLight.color;\\n\\t\\tclearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material );\\n\\t#endif\\n\\t#ifdef USE_SHEEN\\n\\t\\tsheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness );\\n\\t#endif\\n\\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material );\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tclearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\\n\\t#endif\\n\\t#ifdef USE_SHEEN\\n\\t\\tsheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness );\\n\\t#endif\\n\\tvec3 singleScattering = vec3( 0.0 );\\n\\tvec3 multiScattering = vec3( 0.0 );\\n\\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\\n\\t#ifdef USE_IRIDESCENCE\\n\\t\\tcomputeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\\n\\t#else\\n\\t\\tcomputeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\\n\\t#endif\\n\\tvec3 totalScattering = singleScattering + multiScattering;\\n\\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\\n\\treflectedLight.indirectSpecular += radiance * singleScattering;\\n\\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\\n\\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Physical\\n#define RE_Direct_RectArea\\t\\tRE_Direct_RectArea_Physical\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Physical\\n#define RE_IndirectSpecular\\t\\tRE_IndirectSpecular_Physical\\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\\n\\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\\n}\";\n\nvar lights_fragment_begin = \"\\nvec3 geometryPosition = - vViewPosition;\\nvec3 geometryNormal = normal;\\nvec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\\nvec3 geometryClearcoatNormal = vec3( 0.0 );\\n#ifdef USE_CLEARCOAT\\n\\tgeometryClearcoatNormal = clearcoatNormal;\\n#endif\\n#ifdef USE_IRIDESCENCE\\n\\tfloat dotNVi = saturate( dot( normal, geometryViewDir ) );\\n\\tif ( material.iridescenceThickness == 0.0 ) {\\n\\t\\tmaterial.iridescence = 0.0;\\n\\t} else {\\n\\t\\tmaterial.iridescence = saturate( material.iridescence );\\n\\t}\\n\\tif ( material.iridescence > 0.0 ) {\\n\\t\\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\\n\\t\\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\\n\\t}\\n#endif\\nIncidentLight directLight;\\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tPointLight pointLight;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\\n\\tPointLightShadow pointLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tpointLight = pointLights[ i ];\\n\\t\\tgetPointLightInfo( pointLight, geometryPosition, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\\n\\t\\tpointLightShadow = pointLightShadows[ i ];\\n\\t\\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowIntensity, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tSpotLight spotLight;\\n\\tvec4 spotColor;\\n\\tvec3 spotLightCoord;\\n\\tbool inSpotLightMap;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\\n\\tSpotLightShadow spotLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tspotLight = spotLights[ i ];\\n\\t\\tgetSpotLightInfo( spotLight, geometryPosition, directLight );\\n\\t\\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\\n\\t\\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\\n\\t\\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\\t\\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\\n\\t\\t#else\\n\\t\\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\\n\\t\\t#endif\\n\\t\\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\\n\\t\\t\\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\\n\\t\\t\\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\\n\\t\\t\\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\\n\\t\\t\\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\\n\\t\\t#endif\\n\\t\\t#undef SPOT_LIGHT_MAP_INDEX\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\\t\\tspotLightShadow = spotLightShadows[ i ];\\n\\t\\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowIntensity, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tDirectionalLight directionalLight;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\\n\\tDirectionalLightShadow directionalLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tdirectionalLight = directionalLights[ i ];\\n\\t\\tgetDirectionalLightInfo( directionalLight, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\\n\\t\\tdirectionalLightShadow = directionalLightShadows[ i ];\\n\\t\\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowIntensity, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\\n\\tRectAreaLight rectAreaLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\\n\\t\\trectAreaLight = rectAreaLights[ i ];\\n\\t\\tRE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if defined( RE_IndirectDiffuse )\\n\\tvec3 iblIrradiance = vec3( 0.0 );\\n\\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\\n\\t#if defined( USE_LIGHT_PROBES )\\n\\t\\tirradiance += getLightProbeIrradiance( lightProbe, geometryNormal );\\n\\t#endif\\n\\t#if ( NUM_HEMI_LIGHTS > 0 )\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\n\\t\\t\\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal );\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t#endif\\n#endif\\n#if defined( RE_IndirectSpecular )\\n\\tvec3 radiance = vec3( 0.0 );\\n\\tvec3 clearcoatRadiance = vec3( 0.0 );\\n#endif\";\n\nvar lights_fragment_maps = \"#if defined( RE_IndirectDiffuse )\\n\\t#ifdef USE_LIGHTMAP\\n\\t\\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\\n\\t\\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\\n\\t\\tirradiance += lightMapIrradiance;\\n\\t#endif\\n\\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\tiblIrradiance += getIBLIrradiance( geometryNormal );\\n\\t#endif\\n#endif\\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\\n\\t#ifdef USE_ANISOTROPY\\n\\t\\tradiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy );\\n\\t#else\\n\\t\\tradiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness );\\n\\t#endif\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tclearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness );\\n\\t#endif\\n#endif\";\n\nvar lights_fragment_end = \"#if defined( RE_IndirectDiffuse )\\n\\tRE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n#endif\\n#if defined( RE_IndirectSpecular )\\n\\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n#endif\";\n\nvar logdepthbuf_fragment = \"#if defined( USE_LOGDEPTHBUF )\\n\\tgl_FragDepth = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\\n#endif\";\n\nvar logdepthbuf_pars_fragment = \"#if defined( USE_LOGDEPTHBUF )\\n\\tuniform float logDepthBufFC;\\n\\tvarying float vFragDepth;\\n\\tvarying float vIsPerspective;\\n#endif\";\n\nvar logdepthbuf_pars_vertex = \"#ifdef USE_LOGDEPTHBUF\\n\\tvarying float vFragDepth;\\n\\tvarying float vIsPerspective;\\n#endif\";\n\nvar logdepthbuf_vertex = \"#ifdef USE_LOGDEPTHBUF\\n\\tvFragDepth = 1.0 + gl_Position.w;\\n\\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\\n#endif\";\n\nvar map_fragment = \"#ifdef USE_MAP\\n\\tvec4 sampledDiffuseColor = texture2D( map, vMapUv );\\n\\t#ifdef DECODE_VIDEO_TEXTURE\\n\\t\\tsampledDiffuseColor = sRGBTransferEOTF( sampledDiffuseColor );\\n\\t#endif\\n\\tdiffuseColor *= sampledDiffuseColor;\\n#endif\";\n\nvar map_pars_fragment = \"#ifdef USE_MAP\\n\\tuniform sampler2D map;\\n#endif\";\n\nvar map_particle_fragment = \"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\n\\t#if defined( USE_POINTS_UV )\\n\\t\\tvec2 uv = vUv;\\n\\t#else\\n\\t\\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\\n\\t#endif\\n#endif\\n#ifdef USE_MAP\\n\\tdiffuseColor *= texture2D( map, uv );\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\\n#endif\";\n\nvar map_particle_pars_fragment = \"#if defined( USE_POINTS_UV )\\n\\tvarying vec2 vUv;\\n#else\\n\\t#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\n\\t\\tuniform mat3 uvTransform;\\n\\t#endif\\n#endif\\n#ifdef USE_MAP\\n\\tuniform sampler2D map;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tuniform sampler2D alphaMap;\\n#endif\";\n\nvar metalnessmap_fragment = \"float metalnessFactor = metalness;\\n#ifdef USE_METALNESSMAP\\n\\tvec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );\\n\\tmetalnessFactor *= texelMetalness.b;\\n#endif\";\n\nvar metalnessmap_pars_fragment = \"#ifdef USE_METALNESSMAP\\n\\tuniform sampler2D metalnessMap;\\n#endif\";\n\nvar morphinstance_vertex = \"#ifdef USE_INSTANCING_MORPH\\n\\tfloat morphTargetInfluences[ MORPHTARGETS_COUNT ];\\n\\tfloat morphTargetBaseInfluence = texelFetch( morphTexture, ivec2( 0, gl_InstanceID ), 0 ).r;\\n\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\\t\\tmorphTargetInfluences[i] = texelFetch( morphTexture, ivec2( i + 1, gl_InstanceID ), 0 ).r;\\n\\t}\\n#endif\";\n\nvar morphcolor_vertex = \"#if defined( USE_MORPHCOLORS )\\n\\tvColor *= morphTargetBaseInfluence;\\n\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\\t\\t#if defined( USE_COLOR_ALPHA )\\n\\t\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\\n\\t\\t#elif defined( USE_COLOR )\\n\\t\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\\n\\t\\t#endif\\n\\t}\\n#endif\";\n\nvar morphnormal_vertex = \"#ifdef USE_MORPHNORMALS\\n\\tobjectNormal *= morphTargetBaseInfluence;\\n\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\\n\\t}\\n#endif\";\n\nvar morphtarget_pars_vertex = \"#ifdef USE_MORPHTARGETS\\n\\t#ifndef USE_INSTANCING_MORPH\\n\\t\\tuniform float morphTargetBaseInfluence;\\n\\t\\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\\n\\t#endif\\n\\tuniform sampler2DArray morphTargetsTexture;\\n\\tuniform ivec2 morphTargetsTextureSize;\\n\\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\\n\\t\\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\\n\\t\\tint y = texelIndex / morphTargetsTextureSize.x;\\n\\t\\tint x = texelIndex - y * morphTargetsTextureSize.x;\\n\\t\\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\\n\\t\\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\\n\\t}\\n#endif\";\n\nvar morphtarget_vertex = \"#ifdef USE_MORPHTARGETS\\n\\ttransformed *= morphTargetBaseInfluence;\\n\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\\n\\t}\\n#endif\";\n\nvar normal_fragment_begin = \"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\\n#ifdef FLAT_SHADED\\n\\tvec3 fdx = dFdx( vViewPosition );\\n\\tvec3 fdy = dFdy( vViewPosition );\\n\\tvec3 normal = normalize( cross( fdx, fdy ) );\\n#else\\n\\tvec3 normal = normalize( vNormal );\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\tnormal *= faceDirection;\\n\\t#endif\\n#endif\\n#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )\\n\\t#ifdef USE_TANGENT\\n\\t\\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\\n\\t#else\\n\\t\\tmat3 tbn = getTangentFrame( - vViewPosition, normal,\\n\\t\\t#if defined( USE_NORMALMAP )\\n\\t\\t\\tvNormalMapUv\\n\\t\\t#elif defined( USE_CLEARCOAT_NORMALMAP )\\n\\t\\t\\tvClearcoatNormalMapUv\\n\\t\\t#else\\n\\t\\t\\tvUv\\n\\t\\t#endif\\n\\t\\t);\\n\\t#endif\\n\\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\\n\\t\\ttbn[0] *= faceDirection;\\n\\t\\ttbn[1] *= faceDirection;\\n\\t#endif\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\t#ifdef USE_TANGENT\\n\\t\\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\\n\\t#else\\n\\t\\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\\n\\t#endif\\n\\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\\n\\t\\ttbn2[0] *= faceDirection;\\n\\t\\ttbn2[1] *= faceDirection;\\n\\t#endif\\n#endif\\nvec3 nonPerturbedNormal = normal;\";\n\nvar normal_fragment_maps = \"#ifdef USE_NORMALMAP_OBJECTSPACE\\n\\tnormal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\\n\\t#ifdef FLIP_SIDED\\n\\t\\tnormal = - normal;\\n\\t#endif\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\tnormal = normal * faceDirection;\\n\\t#endif\\n\\tnormal = normalize( normalMatrix * normal );\\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\\n\\tvec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\\n\\tmapN.xy *= normalScale;\\n\\tnormal = normalize( tbn * mapN );\\n#elif defined( USE_BUMPMAP )\\n\\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\\n#endif\";\n\nvar normal_pars_fragment = \"#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\tvarying vec3 vTangent;\\n\\t\\tvarying vec3 vBitangent;\\n\\t#endif\\n#endif\";\n\nvar normal_pars_vertex = \"#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\tvarying vec3 vTangent;\\n\\t\\tvarying vec3 vBitangent;\\n\\t#endif\\n#endif\";\n\nvar normal_vertex = \"#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n\\t#ifdef USE_TANGENT\\n\\t\\tvTangent = normalize( transformedTangent );\\n\\t\\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\\n\\t#endif\\n#endif\";\n\nvar normalmap_pars_fragment = \"#ifdef USE_NORMALMAP\\n\\tuniform sampler2D normalMap;\\n\\tuniform vec2 normalScale;\\n#endif\\n#ifdef USE_NORMALMAP_OBJECTSPACE\\n\\tuniform mat3 normalMatrix;\\n#endif\\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )\\n\\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\\n\\t\\tvec3 q0 = dFdx( eye_pos.xyz );\\n\\t\\tvec3 q1 = dFdy( eye_pos.xyz );\\n\\t\\tvec2 st0 = dFdx( uv.st );\\n\\t\\tvec2 st1 = dFdy( uv.st );\\n\\t\\tvec3 N = surf_norm;\\n\\t\\tvec3 q1perp = cross( q1, N );\\n\\t\\tvec3 q0perp = cross( N, q0 );\\n\\t\\tvec3 T = q1perp * st0.x + q0perp * st1.x;\\n\\t\\tvec3 B = q1perp * st0.y + q0perp * st1.y;\\n\\t\\tfloat det = max( dot( T, T ), dot( B, B ) );\\n\\t\\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\\n\\t\\treturn mat3( T * scale, B * scale, N );\\n\\t}\\n#endif\";\n\nvar clearcoat_normal_fragment_begin = \"#ifdef USE_CLEARCOAT\\n\\tvec3 clearcoatNormal = nonPerturbedNormal;\\n#endif\";\n\nvar clearcoat_normal_fragment_maps = \"#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;\\n\\tclearcoatMapN.xy *= clearcoatNormalScale;\\n\\tclearcoatNormal = normalize( tbn2 * clearcoatMapN );\\n#endif\";\n\nvar clearcoat_pars_fragment = \"#ifdef USE_CLEARCOATMAP\\n\\tuniform sampler2D clearcoatMap;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tuniform sampler2D clearcoatNormalMap;\\n\\tuniform vec2 clearcoatNormalScale;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\tuniform sampler2D clearcoatRoughnessMap;\\n#endif\";\n\nvar iridescence_pars_fragment = \"#ifdef USE_IRIDESCENCEMAP\\n\\tuniform sampler2D iridescenceMap;\\n#endif\\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\tuniform sampler2D iridescenceThicknessMap;\\n#endif\";\n\nvar opaque_fragment = \"#ifdef OPAQUE\\ndiffuseColor.a = 1.0;\\n#endif\\n#ifdef USE_TRANSMISSION\\ndiffuseColor.a *= material.transmissionAlpha;\\n#endif\\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );\";\n\nvar packing = \"vec3 packNormalToRGB( const in vec3 normal ) {\\n\\treturn normalize( normal ) * 0.5 + 0.5;\\n}\\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\\n\\treturn 2.0 * rgb.xyz - 1.0;\\n}\\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;const float ShiftRight8 = 1. / 256.;\\nconst float Inv255 = 1. / 255.;\\nconst vec4 PackFactors = vec4( 1.0, 256.0, 256.0 * 256.0, 256.0 * 256.0 * 256.0 );\\nconst vec2 UnpackFactors2 = vec2( UnpackDownscale, 1.0 / PackFactors.g );\\nconst vec3 UnpackFactors3 = vec3( UnpackDownscale / PackFactors.rg, 1.0 / PackFactors.b );\\nconst vec4 UnpackFactors4 = vec4( UnpackDownscale / PackFactors.rgb, 1.0 / PackFactors.a );\\nvec4 packDepthToRGBA( const in float v ) {\\n\\tif( v <= 0.0 )\\n\\t\\treturn vec4( 0., 0., 0., 0. );\\n\\tif( v >= 1.0 )\\n\\t\\treturn vec4( 1., 1., 1., 1. );\\n\\tfloat vuf;\\n\\tfloat af = modf( v * PackFactors.a, vuf );\\n\\tfloat bf = modf( vuf * ShiftRight8, vuf );\\n\\tfloat gf = modf( vuf * ShiftRight8, vuf );\\n\\treturn vec4( vuf * Inv255, gf * PackUpscale, bf * PackUpscale, af );\\n}\\nvec3 packDepthToRGB( const in float v ) {\\n\\tif( v <= 0.0 )\\n\\t\\treturn vec3( 0., 0., 0. );\\n\\tif( v >= 1.0 )\\n\\t\\treturn vec3( 1., 1., 1. );\\n\\tfloat vuf;\\n\\tfloat bf = modf( v * PackFactors.b, vuf );\\n\\tfloat gf = modf( vuf * ShiftRight8, vuf );\\n\\treturn vec3( vuf * Inv255, gf * PackUpscale, bf );\\n}\\nvec2 packDepthToRG( const in float v ) {\\n\\tif( v <= 0.0 )\\n\\t\\treturn vec2( 0., 0. );\\n\\tif( v >= 1.0 )\\n\\t\\treturn vec2( 1., 1. );\\n\\tfloat vuf;\\n\\tfloat gf = modf( v * 256., vuf );\\n\\treturn vec2( vuf * Inv255, gf );\\n}\\nfloat unpackRGBAToDepth( const in vec4 v ) {\\n\\treturn dot( v, UnpackFactors4 );\\n}\\nfloat unpackRGBToDepth( const in vec3 v ) {\\n\\treturn dot( v, UnpackFactors3 );\\n}\\nfloat unpackRGToDepth( const in vec2 v ) {\\n\\treturn v.r * UnpackFactors2.r + v.g * UnpackFactors2.g;\\n}\\nvec4 pack2HalfToRGBA( const in vec2 v ) {\\n\\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\\n\\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\\n}\\nvec2 unpackRGBATo2Half( const in vec4 v ) {\\n\\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\\n}\\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\\n\\treturn ( viewZ + near ) / ( near - far );\\n}\\nfloat orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {\\n\\treturn depth * ( near - far ) - near;\\n}\\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\\n\\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\\n}\\nfloat perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {\\n\\treturn ( near * far ) / ( ( far - near ) * depth - far );\\n}\";\n\nvar premultiplied_alpha_fragment = \"#ifdef PREMULTIPLIED_ALPHA\\n\\tgl_FragColor.rgb *= gl_FragColor.a;\\n#endif\";\n\nvar project_vertex = \"vec4 mvPosition = vec4( transformed, 1.0 );\\n#ifdef USE_BATCHING\\n\\tmvPosition = batchingMatrix * mvPosition;\\n#endif\\n#ifdef USE_INSTANCING\\n\\tmvPosition = instanceMatrix * mvPosition;\\n#endif\\nmvPosition = modelViewMatrix * mvPosition;\\ngl_Position = projectionMatrix * mvPosition;\";\n\nvar dithering_fragment = \"#ifdef DITHERING\\n\\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\\n#endif\";\n\nvar dithering_pars_fragment = \"#ifdef DITHERING\\n\\tvec3 dithering( vec3 color ) {\\n\\t\\tfloat grid_position = rand( gl_FragCoord.xy );\\n\\t\\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\\n\\t\\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\\n\\t\\treturn color + dither_shift_RGB;\\n\\t}\\n#endif\";\n\nvar roughnessmap_fragment = \"float roughnessFactor = roughness;\\n#ifdef USE_ROUGHNESSMAP\\n\\tvec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );\\n\\troughnessFactor *= texelRoughness.g;\\n#endif\";\n\nvar roughnessmap_pars_fragment = \"#ifdef USE_ROUGHNESSMAP\\n\\tuniform sampler2D roughnessMap;\\n#endif\";\n\nvar shadowmap_pars_fragment = \"#if NUM_SPOT_LIGHT_COORDS > 0\\n\\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\\n#endif\\n#if NUM_SPOT_LIGHT_MAPS > 0\\n\\tuniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\\n#endif\\n#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tstruct DirectionalLightShadow {\\n\\t\\t\\tfloat shadowIntensity;\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tstruct SpotLightShadow {\\n\\t\\t\\tfloat shadowIntensity;\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tstruct PointLightShadow {\\n\\t\\t\\tfloat shadowIntensity;\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t\\tfloat shadowCameraNear;\\n\\t\\t\\tfloat shadowCameraFar;\\n\\t\\t};\\n\\t\\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\\n\\t\\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\\n\\t}\\n\\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\\n\\t\\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\\n\\t}\\n\\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\\n\\t\\tfloat occlusion = 1.0;\\n\\t\\tvec2 distribution = texture2DDistribution( shadow, uv );\\n\\t\\tfloat hard_shadow = step( compare , distribution.x );\\n\\t\\tif (hard_shadow != 1.0 ) {\\n\\t\\t\\tfloat distance = compare - distribution.x ;\\n\\t\\t\\tfloat variance = max( 0.00000, distribution.y * distribution.y );\\n\\t\\t\\tfloat softness_probability = variance / (variance + distance * distance );\\t\\t\\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\\t\\t\\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\\n\\t\\t}\\n\\t\\treturn occlusion;\\n\\t}\\n\\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\\n\\t\\tfloat shadow = 1.0;\\n\\t\\tshadowCoord.xyz /= shadowCoord.w;\\n\\t\\tshadowCoord.z += shadowBias;\\n\\t\\tbool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;\\n\\t\\tbool frustumTest = inFrustum && shadowCoord.z <= 1.0;\\n\\t\\tif ( frustumTest ) {\\n\\t\\t#if defined( SHADOWMAP_TYPE_PCF )\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\\t\\t\\tfloat dx0 = - texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy0 = - texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx1 = + texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy1 = + texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx2 = dx0 / 2.0;\\n\\t\\t\\tfloat dy2 = dy0 / 2.0;\\n\\t\\t\\tfloat dx3 = dx1 / 2.0;\\n\\t\\t\\tfloat dy3 = dy1 / 2.0;\\n\\t\\t\\tshadow = (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\\n\\t\\t\\t) * ( 1.0 / 17.0 );\\n\\t\\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\\t\\t\\tfloat dx = texelSize.x;\\n\\t\\t\\tfloat dy = texelSize.y;\\n\\t\\t\\tvec2 uv = shadowCoord.xy;\\n\\t\\t\\tvec2 f = fract( uv * shadowMapSize + 0.5 );\\n\\t\\t\\tuv -= f * texelSize;\\n\\t\\t\\tshadow = (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.x ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.x ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.y ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.y ) +\\n\\t\\t\\t\\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t f.x ),\\n\\t\\t\\t\\t\\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t f.x ),\\n\\t\\t\\t\\t\\t f.y )\\n\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\t\\t#elif defined( SHADOWMAP_TYPE_VSM )\\n\\t\\t\\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\\n\\t\\t#else\\n\\t\\t\\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\\n\\t\\t#endif\\n\\t\\t}\\n\\t\\treturn mix( 1.0, shadow, shadowIntensity );\\n\\t}\\n\\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\\n\\t\\tvec3 absV = abs( v );\\n\\t\\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\\n\\t\\tabsV *= scaleToCube;\\n\\t\\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\\n\\t\\tvec2 planar = v.xy;\\n\\t\\tfloat almostATexel = 1.5 * texelSizeY;\\n\\t\\tfloat almostOne = 1.0 - almostATexel;\\n\\t\\tif ( absV.z >= almostOne ) {\\n\\t\\t\\tif ( v.z > 0.0 )\\n\\t\\t\\t\\tplanar.x = 4.0 - v.x;\\n\\t\\t} else if ( absV.x >= almostOne ) {\\n\\t\\t\\tfloat signX = sign( v.x );\\n\\t\\t\\tplanar.x = v.z * signX + 2.0 * signX;\\n\\t\\t} else if ( absV.y >= almostOne ) {\\n\\t\\t\\tfloat signY = sign( v.y );\\n\\t\\t\\tplanar.x = v.x + 2.0 * signY + 2.0;\\n\\t\\t\\tplanar.y = v.z * signY - 2.0;\\n\\t\\t}\\n\\t\\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\\n\\t}\\n\\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\\n\\t\\tfloat shadow = 1.0;\\n\\t\\tvec3 lightToPosition = shadowCoord.xyz;\\n\\t\\t\\n\\t\\tfloat lightToPositionLength = length( lightToPosition );\\n\\t\\tif ( lightToPositionLength - shadowCameraFar <= 0.0 && lightToPositionLength - shadowCameraNear >= 0.0 ) {\\n\\t\\t\\tfloat dp = ( lightToPositionLength - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\\t\\t\\tdp += shadowBias;\\n\\t\\t\\tvec3 bd3D = normalize( lightToPosition );\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\\n\\t\\t\\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\\n\\t\\t\\t\\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\\n\\t\\t\\t\\tshadow = (\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\\n\\t\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\t\\t\\t#else\\n\\t\\t\\t\\tshadow = texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\\n\\t\\t\\t#endif\\n\\t\\t}\\n\\t\\treturn mix( 1.0, shadow, shadowIntensity );\\n\\t}\\n#endif\";\n\nvar shadowmap_pars_vertex = \"#if NUM_SPOT_LIGHT_COORDS > 0\\n\\tuniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\\n\\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\\n#endif\\n#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t\\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tstruct DirectionalLightShadow {\\n\\t\\t\\tfloat shadowIntensity;\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\t\\tstruct SpotLightShadow {\\n\\t\\t\\tfloat shadowIntensity;\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tstruct PointLightShadow {\\n\\t\\t\\tfloat shadowIntensity;\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t\\tfloat shadowCameraNear;\\n\\t\\t\\tfloat shadowCameraFar;\\n\\t\\t};\\n\\t\\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t#endif\\n#endif\";\n\nvar shadowmap_vertex = \"#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\\n\\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\\tvec4 shadowWorldPosition;\\n#endif\\n#if defined( USE_SHADOWMAP )\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\n\\t\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\t\\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\t\\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t#endif\\n#endif\\n#if NUM_SPOT_LIGHT_COORDS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\\n\\t\\tshadowWorldPosition = worldPosition;\\n\\t\\t#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\\t\\t\\tshadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\\n\\t\\t#endif\\n\\t\\tvSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\";\n\nvar shadowmask_pars_fragment = \"float getShadowMask() {\\n\\tfloat shadow = 1.0;\\n\\t#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\tDirectionalLightShadow directionalLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tdirectionalLight = directionalLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowIntensity, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\tSpotLightShadow spotLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tspotLight = spotLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowIntensity, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\tPointLightShadow pointLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tpointLight = pointLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowIntensity, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#endif\\n\\treturn shadow;\\n}\";\n\nvar skinbase_vertex = \"#ifdef USE_SKINNING\\n\\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\\n\\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\\n\\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\\n\\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\\n#endif\";\n\nvar skinning_pars_vertex = \"#ifdef USE_SKINNING\\n\\tuniform mat4 bindMatrix;\\n\\tuniform mat4 bindMatrixInverse;\\n\\tuniform highp sampler2D boneTexture;\\n\\tmat4 getBoneMatrix( const in float i ) {\\n\\t\\tint size = textureSize( boneTexture, 0 ).x;\\n\\t\\tint j = int( i ) * 4;\\n\\t\\tint x = j % size;\\n\\t\\tint y = j / size;\\n\\t\\tvec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 );\\n\\t\\tvec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 );\\n\\t\\tvec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 );\\n\\t\\tvec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 );\\n\\t\\treturn mat4( v1, v2, v3, v4 );\\n\\t}\\n#endif\";\n\nvar skinning_vertex = \"#ifdef USE_SKINNING\\n\\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\\n\\tvec4 skinned = vec4( 0.0 );\\n\\tskinned += boneMatX * skinVertex * skinWeight.x;\\n\\tskinned += boneMatY * skinVertex * skinWeight.y;\\n\\tskinned += boneMatZ * skinVertex * skinWeight.z;\\n\\tskinned += boneMatW * skinVertex * skinWeight.w;\\n\\ttransformed = ( bindMatrixInverse * skinned ).xyz;\\n#endif\";\n\nvar skinnormal_vertex = \"#ifdef USE_SKINNING\\n\\tmat4 skinMatrix = mat4( 0.0 );\\n\\tskinMatrix += skinWeight.x * boneMatX;\\n\\tskinMatrix += skinWeight.y * boneMatY;\\n\\tskinMatrix += skinWeight.z * boneMatZ;\\n\\tskinMatrix += skinWeight.w * boneMatW;\\n\\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\\n\\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\\n\\t#ifdef USE_TANGENT\\n\\t\\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\\n\\t#endif\\n#endif\";\n\nvar specularmap_fragment = \"float specularStrength;\\n#ifdef USE_SPECULARMAP\\n\\tvec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );\\n\\tspecularStrength = texelSpecular.r;\\n#else\\n\\tspecularStrength = 1.0;\\n#endif\";\n\nvar specularmap_pars_fragment = \"#ifdef USE_SPECULARMAP\\n\\tuniform sampler2D specularMap;\\n#endif\";\n\nvar tonemapping_fragment = \"#if defined( TONE_MAPPING )\\n\\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\\n#endif\";\n\nvar tonemapping_pars_fragment = \"#ifndef saturate\\n#define saturate( a ) clamp( a, 0.0, 1.0 )\\n#endif\\nuniform float toneMappingExposure;\\nvec3 LinearToneMapping( vec3 color ) {\\n\\treturn saturate( toneMappingExposure * color );\\n}\\nvec3 ReinhardToneMapping( vec3 color ) {\\n\\tcolor *= toneMappingExposure;\\n\\treturn saturate( color / ( vec3( 1.0 ) + color ) );\\n}\\nvec3 CineonToneMapping( vec3 color ) {\\n\\tcolor *= toneMappingExposure;\\n\\tcolor = max( vec3( 0.0 ), color - 0.004 );\\n\\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\\n}\\nvec3 RRTAndODTFit( vec3 v ) {\\n\\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\\n\\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\\n\\treturn a / b;\\n}\\nvec3 ACESFilmicToneMapping( vec3 color ) {\\n\\tconst mat3 ACESInputMat = mat3(\\n\\t\\tvec3( 0.59719, 0.07600, 0.02840 ),\\t\\tvec3( 0.35458, 0.90834, 0.13383 ),\\n\\t\\tvec3( 0.04823, 0.01566, 0.83777 )\\n\\t);\\n\\tconst mat3 ACESOutputMat = mat3(\\n\\t\\tvec3( 1.60475, -0.10208, -0.00327 ),\\t\\tvec3( -0.53108, 1.10813, -0.07276 ),\\n\\t\\tvec3( -0.07367, -0.00605, 1.07602 )\\n\\t);\\n\\tcolor *= toneMappingExposure / 0.6;\\n\\tcolor = ACESInputMat * color;\\n\\tcolor = RRTAndODTFit( color );\\n\\tcolor = ACESOutputMat * color;\\n\\treturn saturate( color );\\n}\\nconst mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3(\\n\\tvec3( 1.6605, - 0.1246, - 0.0182 ),\\n\\tvec3( - 0.5876, 1.1329, - 0.1006 ),\\n\\tvec3( - 0.0728, - 0.0083, 1.1187 )\\n);\\nconst mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3(\\n\\tvec3( 0.6274, 0.0691, 0.0164 ),\\n\\tvec3( 0.3293, 0.9195, 0.0880 ),\\n\\tvec3( 0.0433, 0.0113, 0.8956 )\\n);\\nvec3 agxDefaultContrastApprox( vec3 x ) {\\n\\tvec3 x2 = x * x;\\n\\tvec3 x4 = x2 * x2;\\n\\treturn + 15.5 * x4 * x2\\n\\t\\t- 40.14 * x4 * x\\n\\t\\t+ 31.96 * x4\\n\\t\\t- 6.868 * x2 * x\\n\\t\\t+ 0.4298 * x2\\n\\t\\t+ 0.1191 * x\\n\\t\\t- 0.00232;\\n}\\nvec3 AgXToneMapping( vec3 color ) {\\n\\tconst mat3 AgXInsetMatrix = mat3(\\n\\t\\tvec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ),\\n\\t\\tvec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ),\\n\\t\\tvec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 )\\n\\t);\\n\\tconst mat3 AgXOutsetMatrix = mat3(\\n\\t\\tvec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ),\\n\\t\\tvec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ),\\n\\t\\tvec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 )\\n\\t);\\n\\tconst float AgxMinEv = - 12.47393;\\tconst float AgxMaxEv = 4.026069;\\n\\tcolor *= toneMappingExposure;\\n\\tcolor = LINEAR_SRGB_TO_LINEAR_REC2020 * color;\\n\\tcolor = AgXInsetMatrix * color;\\n\\tcolor = max( color, 1e-10 );\\tcolor = log2( color );\\n\\tcolor = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv );\\n\\tcolor = clamp( color, 0.0, 1.0 );\\n\\tcolor = agxDefaultContrastApprox( color );\\n\\tcolor = AgXOutsetMatrix * color;\\n\\tcolor = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) );\\n\\tcolor = LINEAR_REC2020_TO_LINEAR_SRGB * color;\\n\\tcolor = clamp( color, 0.0, 1.0 );\\n\\treturn color;\\n}\\nvec3 NeutralToneMapping( vec3 color ) {\\n\\tconst float StartCompression = 0.8 - 0.04;\\n\\tconst float Desaturation = 0.15;\\n\\tcolor *= toneMappingExposure;\\n\\tfloat x = min( color.r, min( color.g, color.b ) );\\n\\tfloat offset = x < 0.08 ? x - 6.25 * x * x : 0.04;\\n\\tcolor -= offset;\\n\\tfloat peak = max( color.r, max( color.g, color.b ) );\\n\\tif ( peak < StartCompression ) return color;\\n\\tfloat d = 1. - StartCompression;\\n\\tfloat newPeak = 1. - d * d / ( peak + d - StartCompression );\\n\\tcolor *= newPeak / peak;\\n\\tfloat g = 1. - 1. / ( Desaturation * ( peak - newPeak ) + 1. );\\n\\treturn mix( color, vec3( newPeak ), g );\\n}\\nvec3 CustomToneMapping( vec3 color ) { return color; }\";\n\nvar transmission_fragment = \"#ifdef USE_TRANSMISSION\\n\\tmaterial.transmission = transmission;\\n\\tmaterial.transmissionAlpha = 1.0;\\n\\tmaterial.thickness = thickness;\\n\\tmaterial.attenuationDistance = attenuationDistance;\\n\\tmaterial.attenuationColor = attenuationColor;\\n\\t#ifdef USE_TRANSMISSIONMAP\\n\\t\\tmaterial.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;\\n\\t#endif\\n\\t#ifdef USE_THICKNESSMAP\\n\\t\\tmaterial.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;\\n\\t#endif\\n\\tvec3 pos = vWorldPosition;\\n\\tvec3 v = normalize( cameraPosition - pos );\\n\\tvec3 n = inverseTransformDirection( normal, viewMatrix );\\n\\tvec4 transmitted = getIBLVolumeRefraction(\\n\\t\\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\\n\\t\\tpos, modelMatrix, viewMatrix, projectionMatrix, material.dispersion, material.ior, material.thickness,\\n\\t\\tmaterial.attenuationColor, material.attenuationDistance );\\n\\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission );\\n\\ttotalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission );\\n#endif\";\n\nvar transmission_pars_fragment = \"#ifdef USE_TRANSMISSION\\n\\tuniform float transmission;\\n\\tuniform float thickness;\\n\\tuniform float attenuationDistance;\\n\\tuniform vec3 attenuationColor;\\n\\t#ifdef USE_TRANSMISSIONMAP\\n\\t\\tuniform sampler2D transmissionMap;\\n\\t#endif\\n\\t#ifdef USE_THICKNESSMAP\\n\\t\\tuniform sampler2D thicknessMap;\\n\\t#endif\\n\\tuniform vec2 transmissionSamplerSize;\\n\\tuniform sampler2D transmissionSamplerMap;\\n\\tuniform mat4 modelMatrix;\\n\\tuniform mat4 projectionMatrix;\\n\\tvarying vec3 vWorldPosition;\\n\\tfloat w0( float a ) {\\n\\t\\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\\n\\t}\\n\\tfloat w1( float a ) {\\n\\t\\treturn ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );\\n\\t}\\n\\tfloat w2( float a ){\\n\\t\\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\\n\\t}\\n\\tfloat w3( float a ) {\\n\\t\\treturn ( 1.0 / 6.0 ) * ( a * a * a );\\n\\t}\\n\\tfloat g0( float a ) {\\n\\t\\treturn w0( a ) + w1( a );\\n\\t}\\n\\tfloat g1( float a ) {\\n\\t\\treturn w2( a ) + w3( a );\\n\\t}\\n\\tfloat h0( float a ) {\\n\\t\\treturn - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\\n\\t}\\n\\tfloat h1( float a ) {\\n\\t\\treturn 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\\n\\t}\\n\\tvec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {\\n\\t\\tuv = uv * texelSize.zw + 0.5;\\n\\t\\tvec2 iuv = floor( uv );\\n\\t\\tvec2 fuv = fract( uv );\\n\\t\\tfloat g0x = g0( fuv.x );\\n\\t\\tfloat g1x = g1( fuv.x );\\n\\t\\tfloat h0x = h0( fuv.x );\\n\\t\\tfloat h1x = h1( fuv.x );\\n\\t\\tfloat h0y = h0( fuv.y );\\n\\t\\tfloat h1y = h1( fuv.y );\\n\\t\\tvec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\\n\\t\\tvec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\\n\\t\\tvec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\\n\\t\\tvec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\\n\\t\\treturn g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\\n\\t\\t\\tg1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\\n\\t}\\n\\tvec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\\n\\t\\tvec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\\n\\t\\tvec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\\n\\t\\tvec2 fLodSizeInv = 1.0 / fLodSize;\\n\\t\\tvec2 cLodSizeInv = 1.0 / cLodSize;\\n\\t\\tvec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );\\n\\t\\tvec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );\\n\\t\\treturn mix( fSample, cSample, fract( lod ) );\\n\\t}\\n\\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\\n\\t\\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\\n\\t\\tvec3 modelScale;\\n\\t\\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\\n\\t\\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\\n\\t\\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\\n\\t\\treturn normalize( refractionVector ) * thickness * modelScale;\\n\\t}\\n\\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\\n\\t\\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\\n\\t}\\n\\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\\n\\t\\tfloat lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\\n\\t\\treturn textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\\n\\t}\\n\\tvec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\\n\\t\\tif ( isinf( attenuationDistance ) ) {\\n\\t\\t\\treturn vec3( 1.0 );\\n\\t\\t} else {\\n\\t\\t\\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\\n\\t\\t\\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\\t\\t\\treturn transmittance;\\n\\t\\t}\\n\\t}\\n\\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\\n\\t\\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\\n\\t\\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float dispersion, const in float ior, const in float thickness,\\n\\t\\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\\n\\t\\tvec4 transmittedLight;\\n\\t\\tvec3 transmittance;\\n\\t\\t#ifdef USE_DISPERSION\\n\\t\\t\\tfloat halfSpread = ( ior - 1.0 ) * 0.025 * dispersion;\\n\\t\\t\\tvec3 iors = vec3( ior - halfSpread, ior, ior + halfSpread );\\n\\t\\t\\tfor ( int i = 0; i < 3; i ++ ) {\\n\\t\\t\\t\\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, iors[ i ], modelMatrix );\\n\\t\\t\\t\\tvec3 refractedRayExit = position + transmissionRay;\\n\\t\\t\\n\\t\\t\\t\\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\\n\\t\\t\\t\\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\\n\\t\\t\\t\\trefractionCoords += 1.0;\\n\\t\\t\\t\\trefractionCoords /= 2.0;\\n\\t\\t\\n\\t\\t\\t\\tvec4 transmissionSample = getTransmissionSample( refractionCoords, roughness, iors[ i ] );\\n\\t\\t\\t\\ttransmittedLight[ i ] = transmissionSample[ i ];\\n\\t\\t\\t\\ttransmittedLight.a += transmissionSample.a;\\n\\t\\t\\t\\ttransmittance[ i ] = diffuseColor[ i ] * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance )[ i ];\\n\\t\\t\\t}\\n\\t\\t\\ttransmittedLight.a /= 3.0;\\n\\t\\t\\n\\t\\t#else\\n\\t\\t\\n\\t\\t\\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\\n\\t\\t\\tvec3 refractedRayExit = position + transmissionRay;\\n\\t\\t\\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\\n\\t\\t\\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\\n\\t\\t\\trefractionCoords += 1.0;\\n\\t\\t\\trefractionCoords /= 2.0;\\n\\t\\t\\ttransmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\\n\\t\\t\\ttransmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance );\\n\\t\\t\\n\\t\\t#endif\\n\\t\\tvec3 attenuatedColor = transmittance * transmittedLight.rgb;\\n\\t\\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\\n\\t\\tfloat transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0;\\n\\t\\treturn vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor );\\n\\t}\\n#endif\";\n\nvar uv_pars_fragment = \"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\\n\\tvarying vec2 vUv;\\n#endif\\n#ifdef USE_MAP\\n\\tvarying vec2 vMapUv;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tvarying vec2 vAlphaMapUv;\\n#endif\\n#ifdef USE_LIGHTMAP\\n\\tvarying vec2 vLightMapUv;\\n#endif\\n#ifdef USE_AOMAP\\n\\tvarying vec2 vAoMapUv;\\n#endif\\n#ifdef USE_BUMPMAP\\n\\tvarying vec2 vBumpMapUv;\\n#endif\\n#ifdef USE_NORMALMAP\\n\\tvarying vec2 vNormalMapUv;\\n#endif\\n#ifdef USE_EMISSIVEMAP\\n\\tvarying vec2 vEmissiveMapUv;\\n#endif\\n#ifdef USE_METALNESSMAP\\n\\tvarying vec2 vMetalnessMapUv;\\n#endif\\n#ifdef USE_ROUGHNESSMAP\\n\\tvarying vec2 vRoughnessMapUv;\\n#endif\\n#ifdef USE_ANISOTROPYMAP\\n\\tvarying vec2 vAnisotropyMapUv;\\n#endif\\n#ifdef USE_CLEARCOATMAP\\n\\tvarying vec2 vClearcoatMapUv;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tvarying vec2 vClearcoatNormalMapUv;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\tvarying vec2 vClearcoatRoughnessMapUv;\\n#endif\\n#ifdef USE_IRIDESCENCEMAP\\n\\tvarying vec2 vIridescenceMapUv;\\n#endif\\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\tvarying vec2 vIridescenceThicknessMapUv;\\n#endif\\n#ifdef USE_SHEEN_COLORMAP\\n\\tvarying vec2 vSheenColorMapUv;\\n#endif\\n#ifdef USE_SHEEN_ROUGHNESSMAP\\n\\tvarying vec2 vSheenRoughnessMapUv;\\n#endif\\n#ifdef USE_SPECULARMAP\\n\\tvarying vec2 vSpecularMapUv;\\n#endif\\n#ifdef USE_SPECULAR_COLORMAP\\n\\tvarying vec2 vSpecularColorMapUv;\\n#endif\\n#ifdef USE_SPECULAR_INTENSITYMAP\\n\\tvarying vec2 vSpecularIntensityMapUv;\\n#endif\\n#ifdef USE_TRANSMISSIONMAP\\n\\tuniform mat3 transmissionMapTransform;\\n\\tvarying vec2 vTransmissionMapUv;\\n#endif\\n#ifdef USE_THICKNESSMAP\\n\\tuniform mat3 thicknessMapTransform;\\n\\tvarying vec2 vThicknessMapUv;\\n#endif\";\n\nvar uv_pars_vertex = \"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\\n\\tvarying vec2 vUv;\\n#endif\\n#ifdef USE_MAP\\n\\tuniform mat3 mapTransform;\\n\\tvarying vec2 vMapUv;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tuniform mat3 alphaMapTransform;\\n\\tvarying vec2 vAlphaMapUv;\\n#endif\\n#ifdef USE_LIGHTMAP\\n\\tuniform mat3 lightMapTransform;\\n\\tvarying vec2 vLightMapUv;\\n#endif\\n#ifdef USE_AOMAP\\n\\tuniform mat3 aoMapTransform;\\n\\tvarying vec2 vAoMapUv;\\n#endif\\n#ifdef USE_BUMPMAP\\n\\tuniform mat3 bumpMapTransform;\\n\\tvarying vec2 vBumpMapUv;\\n#endif\\n#ifdef USE_NORMALMAP\\n\\tuniform mat3 normalMapTransform;\\n\\tvarying vec2 vNormalMapUv;\\n#endif\\n#ifdef USE_DISPLACEMENTMAP\\n\\tuniform mat3 displacementMapTransform;\\n\\tvarying vec2 vDisplacementMapUv;\\n#endif\\n#ifdef USE_EMISSIVEMAP\\n\\tuniform mat3 emissiveMapTransform;\\n\\tvarying vec2 vEmissiveMapUv;\\n#endif\\n#ifdef USE_METALNESSMAP\\n\\tuniform mat3 metalnessMapTransform;\\n\\tvarying vec2 vMetalnessMapUv;\\n#endif\\n#ifdef USE_ROUGHNESSMAP\\n\\tuniform mat3 roughnessMapTransform;\\n\\tvarying vec2 vRoughnessMapUv;\\n#endif\\n#ifdef USE_ANISOTROPYMAP\\n\\tuniform mat3 anisotropyMapTransform;\\n\\tvarying vec2 vAnisotropyMapUv;\\n#endif\\n#ifdef USE_CLEARCOATMAP\\n\\tuniform mat3 clearcoatMapTransform;\\n\\tvarying vec2 vClearcoatMapUv;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tuniform mat3 clearcoatNormalMapTransform;\\n\\tvarying vec2 vClearcoatNormalMapUv;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\tuniform mat3 clearcoatRoughnessMapTransform;\\n\\tvarying vec2 vClearcoatRoughnessMapUv;\\n#endif\\n#ifdef USE_SHEEN_COLORMAP\\n\\tuniform mat3 sheenColorMapTransform;\\n\\tvarying vec2 vSheenColorMapUv;\\n#endif\\n#ifdef USE_SHEEN_ROUGHNESSMAP\\n\\tuniform mat3 sheenRoughnessMapTransform;\\n\\tvarying vec2 vSheenRoughnessMapUv;\\n#endif\\n#ifdef USE_IRIDESCENCEMAP\\n\\tuniform mat3 iridescenceMapTransform;\\n\\tvarying vec2 vIridescenceMapUv;\\n#endif\\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\tuniform mat3 iridescenceThicknessMapTransform;\\n\\tvarying vec2 vIridescenceThicknessMapUv;\\n#endif\\n#ifdef USE_SPECULARMAP\\n\\tuniform mat3 specularMapTransform;\\n\\tvarying vec2 vSpecularMapUv;\\n#endif\\n#ifdef USE_SPECULAR_COLORMAP\\n\\tuniform mat3 specularColorMapTransform;\\n\\tvarying vec2 vSpecularColorMapUv;\\n#endif\\n#ifdef USE_SPECULAR_INTENSITYMAP\\n\\tuniform mat3 specularIntensityMapTransform;\\n\\tvarying vec2 vSpecularIntensityMapUv;\\n#endif\\n#ifdef USE_TRANSMISSIONMAP\\n\\tuniform mat3 transmissionMapTransform;\\n\\tvarying vec2 vTransmissionMapUv;\\n#endif\\n#ifdef USE_THICKNESSMAP\\n\\tuniform mat3 thicknessMapTransform;\\n\\tvarying vec2 vThicknessMapUv;\\n#endif\";\n\nvar uv_vertex = \"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\\n\\tvUv = vec3( uv, 1 ).xy;\\n#endif\\n#ifdef USE_MAP\\n\\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_LIGHTMAP\\n\\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_AOMAP\\n\\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_BUMPMAP\\n\\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_NORMALMAP\\n\\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_DISPLACEMENTMAP\\n\\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_EMISSIVEMAP\\n\\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_METALNESSMAP\\n\\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_ROUGHNESSMAP\\n\\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_ANISOTROPYMAP\\n\\tvAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_CLEARCOATMAP\\n\\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_IRIDESCENCEMAP\\n\\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SHEEN_COLORMAP\\n\\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SHEEN_ROUGHNESSMAP\\n\\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SPECULARMAP\\n\\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SPECULAR_COLORMAP\\n\\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SPECULAR_INTENSITYMAP\\n\\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_TRANSMISSIONMAP\\n\\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_THICKNESSMAP\\n\\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\\n#endif\";\n\nvar worldpos_vertex = \"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\\n\\tvec4 worldPosition = vec4( transformed, 1.0 );\\n\\t#ifdef USE_BATCHING\\n\\t\\tworldPosition = batchingMatrix * worldPosition;\\n\\t#endif\\n\\t#ifdef USE_INSTANCING\\n\\t\\tworldPosition = instanceMatrix * worldPosition;\\n\\t#endif\\n\\tworldPosition = modelMatrix * worldPosition;\\n#endif\";\n\nconst vertex$h = \"varying vec2 vUv;\\nuniform mat3 uvTransform;\\nvoid main() {\\n\\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\n\\tgl_Position = vec4( position.xy, 1.0, 1.0 );\\n}\";\n\nconst fragment$h = \"uniform sampler2D t2D;\\nuniform float backgroundIntensity;\\nvarying vec2 vUv;\\nvoid main() {\\n\\tvec4 texColor = texture2D( t2D, vUv );\\n\\t#ifdef DECODE_VIDEO_TEXTURE\\n\\t\\ttexColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w );\\n\\t#endif\\n\\ttexColor.rgb *= backgroundIntensity;\\n\\tgl_FragColor = texColor;\\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$g = \"varying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\t#include \\n\\t#include \\n\\tgl_Position.z = gl_Position.w;\\n}\";\n\nconst fragment$g = \"#ifdef ENVMAP_TYPE_CUBE\\n\\tuniform samplerCube envMap;\\n#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\tuniform sampler2D envMap;\\n#endif\\nuniform float flipEnvMap;\\nuniform float backgroundBlurriness;\\nuniform float backgroundIntensity;\\nuniform mat3 backgroundRotation;\\nvarying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tvec4 texColor = textureCube( envMap, backgroundRotation * vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\\n\\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\tvec4 texColor = textureCubeUV( envMap, backgroundRotation * vWorldDirection, backgroundBlurriness );\\n\\t#else\\n\\t\\tvec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\\n\\t#endif\\n\\ttexColor.rgb *= backgroundIntensity;\\n\\tgl_FragColor = texColor;\\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$f = \"varying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\t#include \\n\\t#include \\n\\tgl_Position.z = gl_Position.w;\\n}\";\n\nconst fragment$f = \"uniform samplerCube tCube;\\nuniform float tFlip;\\nuniform float opacity;\\nvarying vec3 vWorldDirection;\\nvoid main() {\\n\\tvec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\\n\\tgl_FragColor = texColor;\\n\\tgl_FragColor.a *= opacity;\\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$e = \"#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvarying vec2 vHighPrecisionZW;\\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#ifdef USE_DISPLACEMENTMAP\\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvHighPrecisionZW = gl_Position.zw;\\n}\";\n\nconst fragment$e = \"#if DEPTH_PACKING == 3200\\n\\tuniform float opacity;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvarying vec2 vHighPrecisionZW;\\nvoid main() {\\n\\tvec4 diffuseColor = vec4( 1.0 );\\n\\t#include \\n\\t#if DEPTH_PACKING == 3200\\n\\t\\tdiffuseColor.a = opacity;\\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\\n\\t#if DEPTH_PACKING == 3200\\n\\t\\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\\n\\t#elif DEPTH_PACKING == 3201\\n\\t\\tgl_FragColor = packDepthToRGBA( fragCoordZ );\\n\\t#elif DEPTH_PACKING == 3202\\n\\t\\tgl_FragColor = vec4( packDepthToRGB( fragCoordZ ), 1.0 );\\n\\t#elif DEPTH_PACKING == 3203\\n\\t\\tgl_FragColor = vec4( packDepthToRG( fragCoordZ ), 0.0, 1.0 );\\n\\t#endif\\n}\";\n\nconst vertex$d = \"#define DISTANCE\\nvarying vec3 vWorldPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#ifdef USE_DISPLACEMENTMAP\\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvWorldPosition = worldPosition.xyz;\\n}\";\n\nconst fragment$d = \"#define DISTANCE\\nuniform vec3 referencePosition;\\nuniform float nearDistance;\\nuniform float farDistance;\\nvarying vec3 vWorldPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main () {\\n\\tvec4 diffuseColor = vec4( 1.0 );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tfloat dist = length( vWorldPosition - referencePosition );\\n\\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\\n\\tdist = saturate( dist );\\n\\tgl_FragColor = packDepthToRGBA( dist );\\n}\";\n\nconst vertex$c = \"varying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$c = \"uniform sampler2D tEquirect;\\nvarying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\tvec3 direction = normalize( vWorldDirection );\\n\\tvec2 sampleUV = equirectUv( direction );\\n\\tgl_FragColor = texture2D( tEquirect, sampleUV );\\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$b = \"uniform float scale;\\nattribute float lineDistance;\\nvarying float vLineDistance;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvLineDistance = scale * lineDistance;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$b = \"uniform vec3 diffuse;\\nuniform float opacity;\\nuniform float dashSize;\\nuniform float totalSize;\\nvarying float vLineDistance;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\\n\\t\\tdiscard;\\n\\t}\\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\toutgoingLight = diffuseColor.rgb;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$a = \"#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$a = \"uniform vec3 diffuse;\\nuniform float opacity;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\t#ifdef USE_LIGHTMAP\\n\\t\\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\\n\\t\\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\\n\\t#else\\n\\t\\treflectedLight.indirectDiffuse += vec3( 1.0 );\\n\\t#endif\\n\\t#include \\n\\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\\n\\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$9 = \"#define LAMBERT\\nvarying vec3 vViewPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$9 = \"#define LAMBERT\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$8 = \"#define MATCAP\\nvarying vec3 vViewPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n}\";\n\nconst fragment$8 = \"#define MATCAP\\nuniform vec3 diffuse;\\nuniform float opacity;\\nuniform sampler2D matcap;\\nvarying vec3 vViewPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvec3 viewDir = normalize( vViewPosition );\\n\\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\\n\\tvec3 y = cross( viewDir, x );\\n\\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\\n\\t#ifdef USE_MATCAP\\n\\t\\tvec4 matcapColor = texture2D( matcap, uv );\\n\\t#else\\n\\t\\tvec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\\n\\t#endif\\n\\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$7 = \"#define NORMAL\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\\n\\tvarying vec3 vViewPosition;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\\n\\tvViewPosition = - mvPosition.xyz;\\n#endif\\n}\";\n\nconst fragment$7 = \"#define NORMAL\\nuniform float opacity;\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\\n\\tvarying vec3 vViewPosition;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tgl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a );\\n\\t#ifdef OPAQUE\\n\\t\\tgl_FragColor.a = 1.0;\\n\\t#endif\\n}\";\n\nconst vertex$6 = \"#define PHONG\\nvarying vec3 vViewPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$6 = \"#define PHONG\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform vec3 specular;\\nuniform float shininess;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$5 = \"#define STANDARD\\nvarying vec3 vViewPosition;\\n#ifdef USE_TRANSMISSION\\n\\tvarying vec3 vWorldPosition;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include \\n\\t#include \\n\\t#include \\n#ifdef USE_TRANSMISSION\\n\\tvWorldPosition = worldPosition.xyz;\\n#endif\\n}\";\n\nconst fragment$5 = \"#define STANDARD\\n#ifdef PHYSICAL\\n\\t#define IOR\\n\\t#define USE_SPECULAR\\n#endif\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float roughness;\\nuniform float metalness;\\nuniform float opacity;\\n#ifdef IOR\\n\\tuniform float ior;\\n#endif\\n#ifdef USE_SPECULAR\\n\\tuniform float specularIntensity;\\n\\tuniform vec3 specularColor;\\n\\t#ifdef USE_SPECULAR_COLORMAP\\n\\t\\tuniform sampler2D specularColorMap;\\n\\t#endif\\n\\t#ifdef USE_SPECULAR_INTENSITYMAP\\n\\t\\tuniform sampler2D specularIntensityMap;\\n\\t#endif\\n#endif\\n#ifdef USE_CLEARCOAT\\n\\tuniform float clearcoat;\\n\\tuniform float clearcoatRoughness;\\n#endif\\n#ifdef USE_DISPERSION\\n\\tuniform float dispersion;\\n#endif\\n#ifdef USE_IRIDESCENCE\\n\\tuniform float iridescence;\\n\\tuniform float iridescenceIOR;\\n\\tuniform float iridescenceThicknessMinimum;\\n\\tuniform float iridescenceThicknessMaximum;\\n#endif\\n#ifdef USE_SHEEN\\n\\tuniform vec3 sheenColor;\\n\\tuniform float sheenRoughness;\\n\\t#ifdef USE_SHEEN_COLORMAP\\n\\t\\tuniform sampler2D sheenColorMap;\\n\\t#endif\\n\\t#ifdef USE_SHEEN_ROUGHNESSMAP\\n\\t\\tuniform sampler2D sheenRoughnessMap;\\n\\t#endif\\n#endif\\n#ifdef USE_ANISOTROPY\\n\\tuniform vec2 anisotropyVector;\\n\\t#ifdef USE_ANISOTROPYMAP\\n\\t\\tuniform sampler2D anisotropyMap;\\n\\t#endif\\n#endif\\nvarying vec3 vViewPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\\n\\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\\n\\t#include \\n\\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\\n\\t#ifdef USE_SHEEN\\n\\t\\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\\n\\t\\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect;\\n\\t#endif\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tfloat dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) );\\n\\t\\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\\n\\t\\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat;\\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$4 = \"#define TOON\\nvarying vec3 vViewPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$4 = \"#define TOON\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$3 = \"uniform float size;\\nuniform float scale;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#ifdef USE_POINTS_UV\\n\\tvarying vec2 vUv;\\n\\tuniform mat3 uvTransform;\\n#endif\\nvoid main() {\\n\\t#ifdef USE_POINTS_UV\\n\\t\\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tgl_PointSize = size;\\n\\t#ifdef USE_SIZEATTENUATION\\n\\t\\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\\n\\t\\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$3 = \"uniform vec3 diffuse;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\toutgoingLight = diffuseColor.rgb;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$2 = \"#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$2 = \"uniform vec3 color;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$1 = \"uniform float rotation;\\nuniform vec2 center;\\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 mvPosition = modelViewMatrix[ 3 ];\\n\\tvec2 scale = vec2( length( modelMatrix[ 0 ].xyz ), length( modelMatrix[ 1 ].xyz ) );\\n\\t#ifndef USE_SIZEATTENUATION\\n\\t\\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\\n\\t\\tif ( isPerspective ) scale *= - mvPosition.z;\\n\\t#endif\\n\\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\\n\\tvec2 rotatedPosition;\\n\\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\\n\\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\\n\\tmvPosition.xy += rotatedPosition;\\n\\tgl_Position = projectionMatrix * mvPosition;\\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$1 = \"uniform vec3 diffuse;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\toutgoingLight = diffuseColor.rgb;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst ShaderChunk = {\n\talphahash_fragment: alphahash_fragment,\n\talphahash_pars_fragment: alphahash_pars_fragment,\n\talphamap_fragment: alphamap_fragment,\n\talphamap_pars_fragment: alphamap_pars_fragment,\n\talphatest_fragment: alphatest_fragment,\n\talphatest_pars_fragment: alphatest_pars_fragment,\n\taomap_fragment: aomap_fragment,\n\taomap_pars_fragment: aomap_pars_fragment,\n\tbatching_pars_vertex: batching_pars_vertex,\n\tbatching_vertex: batching_vertex,\n\tbegin_vertex: begin_vertex,\n\tbeginnormal_vertex: beginnormal_vertex,\n\tbsdfs: bsdfs,\n\tiridescence_fragment: iridescence_fragment,\n\tbumpmap_pars_fragment: bumpmap_pars_fragment,\n\tclipping_planes_fragment: clipping_planes_fragment,\n\tclipping_planes_pars_fragment: clipping_planes_pars_fragment,\n\tclipping_planes_pars_vertex: clipping_planes_pars_vertex,\n\tclipping_planes_vertex: clipping_planes_vertex,\n\tcolor_fragment: color_fragment,\n\tcolor_pars_fragment: color_pars_fragment,\n\tcolor_pars_vertex: color_pars_vertex,\n\tcolor_vertex: color_vertex,\n\tcommon: common,\n\tcube_uv_reflection_fragment: cube_uv_reflection_fragment,\n\tdefaultnormal_vertex: defaultnormal_vertex,\n\tdisplacementmap_pars_vertex: displacementmap_pars_vertex,\n\tdisplacementmap_vertex: displacementmap_vertex,\n\temissivemap_fragment: emissivemap_fragment,\n\temissivemap_pars_fragment: emissivemap_pars_fragment,\n\tcolorspace_fragment: colorspace_fragment,\n\tcolorspace_pars_fragment: colorspace_pars_fragment,\n\tenvmap_fragment: envmap_fragment,\n\tenvmap_common_pars_fragment: envmap_common_pars_fragment,\n\tenvmap_pars_fragment: envmap_pars_fragment,\n\tenvmap_pars_vertex: envmap_pars_vertex,\n\tenvmap_physical_pars_fragment: envmap_physical_pars_fragment,\n\tenvmap_vertex: envmap_vertex,\n\tfog_vertex: fog_vertex,\n\tfog_pars_vertex: fog_pars_vertex,\n\tfog_fragment: fog_fragment,\n\tfog_pars_fragment: fog_pars_fragment,\n\tgradientmap_pars_fragment: gradientmap_pars_fragment,\n\tlightmap_pars_fragment: lightmap_pars_fragment,\n\tlights_lambert_fragment: lights_lambert_fragment,\n\tlights_lambert_pars_fragment: lights_lambert_pars_fragment,\n\tlights_pars_begin: lights_pars_begin,\n\tlights_toon_fragment: lights_toon_fragment,\n\tlights_toon_pars_fragment: lights_toon_pars_fragment,\n\tlights_phong_fragment: lights_phong_fragment,\n\tlights_phong_pars_fragment: lights_phong_pars_fragment,\n\tlights_physical_fragment: lights_physical_fragment,\n\tlights_physical_pars_fragment: lights_physical_pars_fragment,\n\tlights_fragment_begin: lights_fragment_begin,\n\tlights_fragment_maps: lights_fragment_maps,\n\tlights_fragment_end: lights_fragment_end,\n\tlogdepthbuf_fragment: logdepthbuf_fragment,\n\tlogdepthbuf_pars_fragment: logdepthbuf_pars_fragment,\n\tlogdepthbuf_pars_vertex: logdepthbuf_pars_vertex,\n\tlogdepthbuf_vertex: logdepthbuf_vertex,\n\tmap_fragment: map_fragment,\n\tmap_pars_fragment: map_pars_fragment,\n\tmap_particle_fragment: map_particle_fragment,\n\tmap_particle_pars_fragment: map_particle_pars_fragment,\n\tmetalnessmap_fragment: metalnessmap_fragment,\n\tmetalnessmap_pars_fragment: metalnessmap_pars_fragment,\n\tmorphinstance_vertex: morphinstance_vertex,\n\tmorphcolor_vertex: morphcolor_vertex,\n\tmorphnormal_vertex: morphnormal_vertex,\n\tmorphtarget_pars_vertex: morphtarget_pars_vertex,\n\tmorphtarget_vertex: morphtarget_vertex,\n\tnormal_fragment_begin: normal_fragment_begin,\n\tnormal_fragment_maps: normal_fragment_maps,\n\tnormal_pars_fragment: normal_pars_fragment,\n\tnormal_pars_vertex: normal_pars_vertex,\n\tnormal_vertex: normal_vertex,\n\tnormalmap_pars_fragment: normalmap_pars_fragment,\n\tclearcoat_normal_fragment_begin: clearcoat_normal_fragment_begin,\n\tclearcoat_normal_fragment_maps: clearcoat_normal_fragment_maps,\n\tclearcoat_pars_fragment: clearcoat_pars_fragment,\n\tiridescence_pars_fragment: iridescence_pars_fragment,\n\topaque_fragment: opaque_fragment,\n\tpacking: packing,\n\tpremultiplied_alpha_fragment: premultiplied_alpha_fragment,\n\tproject_vertex: project_vertex,\n\tdithering_fragment: dithering_fragment,\n\tdithering_pars_fragment: dithering_pars_fragment,\n\troughnessmap_fragment: roughnessmap_fragment,\n\troughnessmap_pars_fragment: roughnessmap_pars_fragment,\n\tshadowmap_pars_fragment: shadowmap_pars_fragment,\n\tshadowmap_pars_vertex: shadowmap_pars_vertex,\n\tshadowmap_vertex: shadowmap_vertex,\n\tshadowmask_pars_fragment: shadowmask_pars_fragment,\n\tskinbase_vertex: skinbase_vertex,\n\tskinning_pars_vertex: skinning_pars_vertex,\n\tskinning_vertex: skinning_vertex,\n\tskinnormal_vertex: skinnormal_vertex,\n\tspecularmap_fragment: specularmap_fragment,\n\tspecularmap_pars_fragment: specularmap_pars_fragment,\n\ttonemapping_fragment: tonemapping_fragment,\n\ttonemapping_pars_fragment: tonemapping_pars_fragment,\n\ttransmission_fragment: transmission_fragment,\n\ttransmission_pars_fragment: transmission_pars_fragment,\n\tuv_pars_fragment: uv_pars_fragment,\n\tuv_pars_vertex: uv_pars_vertex,\n\tuv_vertex: uv_vertex,\n\tworldpos_vertex: worldpos_vertex,\n\n\tbackground_vert: vertex$h,\n\tbackground_frag: fragment$h,\n\tbackgroundCube_vert: vertex$g,\n\tbackgroundCube_frag: fragment$g,\n\tcube_vert: vertex$f,\n\tcube_frag: fragment$f,\n\tdepth_vert: vertex$e,\n\tdepth_frag: fragment$e,\n\tdistanceRGBA_vert: vertex$d,\n\tdistanceRGBA_frag: fragment$d,\n\tequirect_vert: vertex$c,\n\tequirect_frag: fragment$c,\n\tlinedashed_vert: vertex$b,\n\tlinedashed_frag: fragment$b,\n\tmeshbasic_vert: vertex$a,\n\tmeshbasic_frag: fragment$a,\n\tmeshlambert_vert: vertex$9,\n\tmeshlambert_frag: fragment$9,\n\tmeshmatcap_vert: vertex$8,\n\tmeshmatcap_frag: fragment$8,\n\tmeshnormal_vert: vertex$7,\n\tmeshnormal_frag: fragment$7,\n\tmeshphong_vert: vertex$6,\n\tmeshphong_frag: fragment$6,\n\tmeshphysical_vert: vertex$5,\n\tmeshphysical_frag: fragment$5,\n\tmeshtoon_vert: vertex$4,\n\tmeshtoon_frag: fragment$4,\n\tpoints_vert: vertex$3,\n\tpoints_frag: fragment$3,\n\tshadow_vert: vertex$2,\n\tshadow_frag: fragment$2,\n\tsprite_vert: vertex$1,\n\tsprite_frag: fragment$1\n};\n\n/**\n * Uniforms library for shared webgl shaders\n */\n\nconst UniformsLib = {\n\n\tcommon: {\n\n\t\tdiffuse: { value: /*@__PURE__*/ new Color( 0xffffff ) },\n\t\topacity: { value: 1.0 },\n\n\t\tmap: { value: null },\n\t\tmapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\n\t\talphaMap: { value: null },\n\t\talphaMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\n\t\talphaTest: { value: 0 }\n\n\t},\n\n\tspecularmap: {\n\n\t\tspecularMap: { value: null },\n\t\tspecularMapTransform: { value: /*@__PURE__*/ new Matrix3() }\n\n\t},\n\n\tenvmap: {\n\n\t\tenvMap: { value: null },\n\t\tenvMapRotation: { value: /*@__PURE__*/ new Matrix3() },\n\t\tflipEnvMap: { value: - 1 },\n\t\treflectivity: { value: 1.0 }, // basic, lambert, phong\n\t\tior: { value: 1.5 }, // physical\n\t\trefractionRatio: { value: 0.98 }, // basic, lambert, phong\n\n\t},\n\n\taomap: {\n\n\t\taoMap: { value: null },\n\t\taoMapIntensity: { value: 1 },\n\t\taoMapTransform: { value: /*@__PURE__*/ new Matrix3() }\n\n\t},\n\n\tlightmap: {\n\n\t\tlightMap: { value: null },\n\t\tlightMapIntensity: { value: 1 },\n\t\tlightMapTransform: { value: /*@__PURE__*/ new Matrix3() }\n\n\t},\n\n\tbumpmap: {\n\n\t\tbumpMap: { value: null },\n\t\tbumpMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\tbumpScale: { value: 1 }\n\n\t},\n\n\tnormalmap: {\n\n\t\tnormalMap: { value: null },\n\t\tnormalMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\tnormalScale: { value: /*@__PURE__*/ new Vector2( 1, 1 ) }\n\n\t},\n\n\tdisplacementmap: {\n\n\t\tdisplacementMap: { value: null },\n\t\tdisplacementMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\tdisplacementScale: { value: 1 },\n\t\tdisplacementBias: { value: 0 }\n\n\t},\n\n\temissivemap: {\n\n\t\temissiveMap: { value: null },\n\t\temissiveMapTransform: { value: /*@__PURE__*/ new Matrix3() }\n\n\t},\n\n\tmetalnessmap: {\n\n\t\tmetalnessMap: { value: null },\n\t\tmetalnessMapTransform: { value: /*@__PURE__*/ new Matrix3() }\n\n\t},\n\n\troughnessmap: {\n\n\t\troughnessMap: { value: null },\n\t\troughnessMapTransform: { value: /*@__PURE__*/ new Matrix3() }\n\n\t},\n\n\tgradientmap: {\n\n\t\tgradientMap: { value: null }\n\n\t},\n\n\tfog: {\n\n\t\tfogDensity: { value: 0.00025 },\n\t\tfogNear: { value: 1 },\n\t\tfogFar: { value: 2000 },\n\t\tfogColor: { value: /*@__PURE__*/ new Color( 0xffffff ) }\n\n\t},\n\n\tlights: {\n\n\t\tambientLightColor: { value: [] },\n\n\t\tlightProbe: { value: [] },\n\n\t\tdirectionalLights: { value: [], properties: {\n\t\t\tdirection: {},\n\t\t\tcolor: {}\n\t\t} },\n\n\t\tdirectionalLightShadows: { value: [], properties: {\n\t\t\tshadowIntensity: 1,\n\t\t\tshadowBias: {},\n\t\t\tshadowNormalBias: {},\n\t\t\tshadowRadius: {},\n\t\t\tshadowMapSize: {}\n\t\t} },\n\n\t\tdirectionalShadowMap: { value: [] },\n\t\tdirectionalShadowMatrix: { value: [] },\n\n\t\tspotLights: { value: [], properties: {\n\t\t\tcolor: {},\n\t\t\tposition: {},\n\t\t\tdirection: {},\n\t\t\tdistance: {},\n\t\t\tconeCos: {},\n\t\t\tpenumbraCos: {},\n\t\t\tdecay: {}\n\t\t} },\n\n\t\tspotLightShadows: { value: [], properties: {\n\t\t\tshadowIntensity: 1,\n\t\t\tshadowBias: {},\n\t\t\tshadowNormalBias: {},\n\t\t\tshadowRadius: {},\n\t\t\tshadowMapSize: {}\n\t\t} },\n\n\t\tspotLightMap: { value: [] },\n\t\tspotShadowMap: { value: [] },\n\t\tspotLightMatrix: { value: [] },\n\n\t\tpointLights: { value: [], properties: {\n\t\t\tcolor: {},\n\t\t\tposition: {},\n\t\t\tdecay: {},\n\t\t\tdistance: {}\n\t\t} },\n\n\t\tpointLightShadows: { value: [], properties: {\n\t\t\tshadowIntensity: 1,\n\t\t\tshadowBias: {},\n\t\t\tshadowNormalBias: {},\n\t\t\tshadowRadius: {},\n\t\t\tshadowMapSize: {},\n\t\t\tshadowCameraNear: {},\n\t\t\tshadowCameraFar: {}\n\t\t} },\n\n\t\tpointShadowMap: { value: [] },\n\t\tpointShadowMatrix: { value: [] },\n\n\t\themisphereLights: { value: [], properties: {\n\t\t\tdirection: {},\n\t\t\tskyColor: {},\n\t\t\tgroundColor: {}\n\t\t} },\n\n\t\t// TODO (abelnation): RectAreaLight BRDF data needs to be moved from example to main src\n\t\trectAreaLights: { value: [], properties: {\n\t\t\tcolor: {},\n\t\t\tposition: {},\n\t\t\twidth: {},\n\t\t\theight: {}\n\t\t} },\n\n\t\tltc_1: { value: null },\n\t\tltc_2: { value: null }\n\n\t},\n\n\tpoints: {\n\n\t\tdiffuse: { value: /*@__PURE__*/ new Color( 0xffffff ) },\n\t\topacity: { value: 1.0 },\n\t\tsize: { value: 1.0 },\n\t\tscale: { value: 1.0 },\n\t\tmap: { value: null },\n\t\talphaMap: { value: null },\n\t\talphaMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\talphaTest: { value: 0 },\n\t\tuvTransform: { value: /*@__PURE__*/ new Matrix3() }\n\n\t},\n\n\tsprite: {\n\n\t\tdiffuse: { value: /*@__PURE__*/ new Color( 0xffffff ) },\n\t\topacity: { value: 1.0 },\n\t\tcenter: { value: /*@__PURE__*/ new Vector2( 0.5, 0.5 ) },\n\t\trotation: { value: 0.0 },\n\t\tmap: { value: null },\n\t\tmapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\talphaMap: { value: null },\n\t\talphaMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\talphaTest: { value: 0 }\n\n\t}\n\n};\n\nconst ShaderLib = {\n\n\tbasic: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.specularmap,\n\t\t\tUniformsLib.envmap,\n\t\t\tUniformsLib.aomap,\n\t\t\tUniformsLib.lightmap,\n\t\t\tUniformsLib.fog\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.meshbasic_vert,\n\t\tfragmentShader: ShaderChunk.meshbasic_frag\n\n\t},\n\n\tlambert: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.specularmap,\n\t\t\tUniformsLib.envmap,\n\t\t\tUniformsLib.aomap,\n\t\t\tUniformsLib.lightmap,\n\t\t\tUniformsLib.emissivemap,\n\t\t\tUniformsLib.bumpmap,\n\t\t\tUniformsLib.normalmap,\n\t\t\tUniformsLib.displacementmap,\n\t\t\tUniformsLib.fog,\n\t\t\tUniformsLib.lights,\n\t\t\t{\n\t\t\t\temissive: { value: /*@__PURE__*/ new Color( 0x000000 ) }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.meshlambert_vert,\n\t\tfragmentShader: ShaderChunk.meshlambert_frag\n\n\t},\n\n\tphong: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.specularmap,\n\t\t\tUniformsLib.envmap,\n\t\t\tUniformsLib.aomap,\n\t\t\tUniformsLib.lightmap,\n\t\t\tUniformsLib.emissivemap,\n\t\t\tUniformsLib.bumpmap,\n\t\t\tUniformsLib.normalmap,\n\t\t\tUniformsLib.displacementmap,\n\t\t\tUniformsLib.fog,\n\t\t\tUniformsLib.lights,\n\t\t\t{\n\t\t\t\temissive: { value: /*@__PURE__*/ new Color( 0x000000 ) },\n\t\t\t\tspecular: { value: /*@__PURE__*/ new Color( 0x111111 ) },\n\t\t\t\tshininess: { value: 30 }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.meshphong_vert,\n\t\tfragmentShader: ShaderChunk.meshphong_frag\n\n\t},\n\n\tstandard: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.envmap,\n\t\t\tUniformsLib.aomap,\n\t\t\tUniformsLib.lightmap,\n\t\t\tUniformsLib.emissivemap,\n\t\t\tUniformsLib.bumpmap,\n\t\t\tUniformsLib.normalmap,\n\t\t\tUniformsLib.displacementmap,\n\t\t\tUniformsLib.roughnessmap,\n\t\t\tUniformsLib.metalnessmap,\n\t\t\tUniformsLib.fog,\n\t\t\tUniformsLib.lights,\n\t\t\t{\n\t\t\t\temissive: { value: /*@__PURE__*/ new Color( 0x000000 ) },\n\t\t\t\troughness: { value: 1.0 },\n\t\t\t\tmetalness: { value: 0.0 },\n\t\t\t\tenvMapIntensity: { value: 1 }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.meshphysical_vert,\n\t\tfragmentShader: ShaderChunk.meshphysical_frag\n\n\t},\n\n\ttoon: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.aomap,\n\t\t\tUniformsLib.lightmap,\n\t\t\tUniformsLib.emissivemap,\n\t\t\tUniformsLib.bumpmap,\n\t\t\tUniformsLib.normalmap,\n\t\t\tUniformsLib.displacementmap,\n\t\t\tUniformsLib.gradientmap,\n\t\t\tUniformsLib.fog,\n\t\t\tUniformsLib.lights,\n\t\t\t{\n\t\t\t\temissive: { value: /*@__PURE__*/ new Color( 0x000000 ) }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.meshtoon_vert,\n\t\tfragmentShader: ShaderChunk.meshtoon_frag\n\n\t},\n\n\tmatcap: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.bumpmap,\n\t\t\tUniformsLib.normalmap,\n\t\t\tUniformsLib.displacementmap,\n\t\t\tUniformsLib.fog,\n\t\t\t{\n\t\t\t\tmatcap: { value: null }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.meshmatcap_vert,\n\t\tfragmentShader: ShaderChunk.meshmatcap_frag\n\n\t},\n\n\tpoints: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.points,\n\t\t\tUniformsLib.fog\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.points_vert,\n\t\tfragmentShader: ShaderChunk.points_frag\n\n\t},\n\n\tdashed: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.fog,\n\t\t\t{\n\t\t\t\tscale: { value: 1 },\n\t\t\t\tdashSize: { value: 1 },\n\t\t\t\ttotalSize: { value: 2 }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.linedashed_vert,\n\t\tfragmentShader: ShaderChunk.linedashed_frag\n\n\t},\n\n\tdepth: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.displacementmap\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.depth_vert,\n\t\tfragmentShader: ShaderChunk.depth_frag\n\n\t},\n\n\tnormal: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.bumpmap,\n\t\t\tUniformsLib.normalmap,\n\t\t\tUniformsLib.displacementmap,\n\t\t\t{\n\t\t\t\topacity: { value: 1.0 }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.meshnormal_vert,\n\t\tfragmentShader: ShaderChunk.meshnormal_frag\n\n\t},\n\n\tsprite: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.sprite,\n\t\t\tUniformsLib.fog\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.sprite_vert,\n\t\tfragmentShader: ShaderChunk.sprite_frag\n\n\t},\n\n\tbackground: {\n\n\t\tuniforms: {\n\t\t\tuvTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\tt2D: { value: null },\n\t\t\tbackgroundIntensity: { value: 1 }\n\t\t},\n\n\t\tvertexShader: ShaderChunk.background_vert,\n\t\tfragmentShader: ShaderChunk.background_frag\n\n\t},\n\n\tbackgroundCube: {\n\n\t\tuniforms: {\n\t\t\tenvMap: { value: null },\n\t\t\tflipEnvMap: { value: - 1 },\n\t\t\tbackgroundBlurriness: { value: 0 },\n\t\t\tbackgroundIntensity: { value: 1 },\n\t\t\tbackgroundRotation: { value: /*@__PURE__*/ new Matrix3() }\n\t\t},\n\n\t\tvertexShader: ShaderChunk.backgroundCube_vert,\n\t\tfragmentShader: ShaderChunk.backgroundCube_frag\n\n\t},\n\n\tcube: {\n\n\t\tuniforms: {\n\t\t\ttCube: { value: null },\n\t\t\ttFlip: { value: - 1 },\n\t\t\topacity: { value: 1.0 }\n\t\t},\n\n\t\tvertexShader: ShaderChunk.cube_vert,\n\t\tfragmentShader: ShaderChunk.cube_frag\n\n\t},\n\n\tequirect: {\n\n\t\tuniforms: {\n\t\t\ttEquirect: { value: null },\n\t\t},\n\n\t\tvertexShader: ShaderChunk.equirect_vert,\n\t\tfragmentShader: ShaderChunk.equirect_frag\n\n\t},\n\n\tdistanceRGBA: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.displacementmap,\n\t\t\t{\n\t\t\t\treferencePosition: { value: /*@__PURE__*/ new Vector3() },\n\t\t\t\tnearDistance: { value: 1 },\n\t\t\t\tfarDistance: { value: 1000 }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.distanceRGBA_vert,\n\t\tfragmentShader: ShaderChunk.distanceRGBA_frag\n\n\t},\n\n\tshadow: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.lights,\n\t\t\tUniformsLib.fog,\n\t\t\t{\n\t\t\t\tcolor: { value: /*@__PURE__*/ new Color( 0x00000 ) },\n\t\t\t\topacity: { value: 1.0 }\n\t\t\t},\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.shadow_vert,\n\t\tfragmentShader: ShaderChunk.shadow_frag\n\n\t}\n\n};\n\nShaderLib.physical = {\n\n\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\tShaderLib.standard.uniforms,\n\t\t{\n\t\t\tclearcoat: { value: 0 },\n\t\t\tclearcoatMap: { value: null },\n\t\t\tclearcoatMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\tclearcoatNormalMap: { value: null },\n\t\t\tclearcoatNormalMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\tclearcoatNormalScale: { value: /*@__PURE__*/ new Vector2( 1, 1 ) },\n\t\t\tclearcoatRoughness: { value: 0 },\n\t\t\tclearcoatRoughnessMap: { value: null },\n\t\t\tclearcoatRoughnessMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\tdispersion: { value: 0 },\n\t\t\tiridescence: { value: 0 },\n\t\t\tiridescenceMap: { value: null },\n\t\t\tiridescenceMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\tiridescenceIOR: { value: 1.3 },\n\t\t\tiridescenceThicknessMinimum: { value: 100 },\n\t\t\tiridescenceThicknessMaximum: { value: 400 },\n\t\t\tiridescenceThicknessMap: { value: null },\n\t\t\tiridescenceThicknessMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\tsheen: { value: 0 },\n\t\t\tsheenColor: { value: /*@__PURE__*/ new Color( 0x000000 ) },\n\t\t\tsheenColorMap: { value: null },\n\t\t\tsheenColorMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\tsheenRoughness: { value: 1 },\n\t\t\tsheenRoughnessMap: { value: null },\n\t\t\tsheenRoughnessMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\ttransmission: { value: 0 },\n\t\t\ttransmissionMap: { value: null },\n\t\t\ttransmissionMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\ttransmissionSamplerSize: { value: /*@__PURE__*/ new Vector2() },\n\t\t\ttransmissionSamplerMap: { value: null },\n\t\t\tthickness: { value: 0 },\n\t\t\tthicknessMap: { value: null },\n\t\t\tthicknessMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\tattenuationDistance: { value: 0 },\n\t\t\tattenuationColor: { value: /*@__PURE__*/ new Color( 0x000000 ) },\n\t\t\tspecularColor: { value: /*@__PURE__*/ new Color( 1, 1, 1 ) },\n\t\t\tspecularColorMap: { value: null },\n\t\t\tspecularColorMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\tspecularIntensity: { value: 1 },\n\t\t\tspecularIntensityMap: { value: null },\n\t\t\tspecularIntensityMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\tanisotropyVector: { value: /*@__PURE__*/ new Vector2() },\n\t\t\tanisotropyMap: { value: null },\n\t\t\tanisotropyMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t}\n\t] ),\n\n\tvertexShader: ShaderChunk.meshphysical_vert,\n\tfragmentShader: ShaderChunk.meshphysical_frag\n\n};\n\nconst _rgb = { r: 0, b: 0, g: 0 };\nconst _e1$1 = /*@__PURE__*/ new Euler();\nconst _m1$1 = /*@__PURE__*/ new Matrix4();\n\nfunction WebGLBackground( renderer, cubemaps, cubeuvmaps, state, objects, alpha, premultipliedAlpha ) {\n\n\tconst clearColor = new Color( 0x000000 );\n\tlet clearAlpha = alpha === true ? 0 : 1;\n\n\tlet planeMesh;\n\tlet boxMesh;\n\n\tlet currentBackground = null;\n\tlet currentBackgroundVersion = 0;\n\tlet currentTonemapping = null;\n\n\tfunction getBackground( scene ) {\n\n\t\tlet background = scene.isScene === true ? scene.background : null;\n\n\t\tif ( background && background.isTexture ) {\n\n\t\t\tconst usePMREM = scene.backgroundBlurriness > 0; // use PMREM if the user wants to blur the background\n\t\t\tbackground = ( usePMREM ? cubeuvmaps : cubemaps ).get( background );\n\n\t\t}\n\n\t\treturn background;\n\n\t}\n\n\tfunction render( scene ) {\n\n\t\tlet forceClear = false;\n\t\tconst background = getBackground( scene );\n\n\t\tif ( background === null ) {\n\n\t\t\tsetClear( clearColor, clearAlpha );\n\n\t\t} else if ( background && background.isColor ) {\n\n\t\t\tsetClear( background, 1 );\n\t\t\tforceClear = true;\n\n\t\t}\n\n\t\tconst environmentBlendMode = renderer.xr.getEnvironmentBlendMode();\n\n\t\tif ( environmentBlendMode === 'additive' ) {\n\n\t\t\tstate.buffers.color.setClear( 0, 0, 0, 1, premultipliedAlpha );\n\n\t\t} else if ( environmentBlendMode === 'alpha-blend' ) {\n\n\t\t\tstate.buffers.color.setClear( 0, 0, 0, 0, premultipliedAlpha );\n\n\t\t}\n\n\t\tif ( renderer.autoClear || forceClear ) {\n\n\t\t\t// buffers might not be writable which is required to ensure a correct clear\n\n\t\t\tstate.buffers.depth.setTest( true );\n\t\t\tstate.buffers.depth.setMask( true );\n\t\t\tstate.buffers.color.setMask( true );\n\n\t\t\trenderer.clear( renderer.autoClearColor, renderer.autoClearDepth, renderer.autoClearStencil );\n\n\t\t}\n\n\t}\n\n\tfunction addToRenderList( renderList, scene ) {\n\n\t\tconst background = getBackground( scene );\n\n\t\tif ( background && ( background.isCubeTexture || background.mapping === CubeUVReflectionMapping ) ) {\n\n\t\t\tif ( boxMesh === undefined ) {\n\n\t\t\t\tboxMesh = new Mesh(\n\t\t\t\t\tnew BoxGeometry( 1, 1, 1 ),\n\t\t\t\t\tnew ShaderMaterial( {\n\t\t\t\t\t\tname: 'BackgroundCubeMaterial',\n\t\t\t\t\t\tuniforms: cloneUniforms( ShaderLib.backgroundCube.uniforms ),\n\t\t\t\t\t\tvertexShader: ShaderLib.backgroundCube.vertexShader,\n\t\t\t\t\t\tfragmentShader: ShaderLib.backgroundCube.fragmentShader,\n\t\t\t\t\t\tside: BackSide,\n\t\t\t\t\t\tdepthTest: false,\n\t\t\t\t\t\tdepthWrite: false,\n\t\t\t\t\t\tfog: false\n\t\t\t\t\t} )\n\t\t\t\t);\n\n\t\t\t\tboxMesh.geometry.deleteAttribute( 'normal' );\n\t\t\t\tboxMesh.geometry.deleteAttribute( 'uv' );\n\n\t\t\t\tboxMesh.onBeforeRender = function ( renderer, scene, camera ) {\n\n\t\t\t\t\tthis.matrixWorld.copyPosition( camera.matrixWorld );\n\n\t\t\t\t};\n\n\t\t\t\t// add \"envMap\" material property so the renderer can evaluate it like for built-in materials\n\t\t\t\tObject.defineProperty( boxMesh.material, 'envMap', {\n\n\t\t\t\t\tget: function () {\n\n\t\t\t\t\t\treturn this.uniforms.envMap.value;\n\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t\tobjects.update( boxMesh );\n\n\t\t\t}\n\n\t\t\t_e1$1.copy( scene.backgroundRotation );\n\n\t\t\t// accommodate left-handed frame\n\t\t\t_e1$1.x *= - 1; _e1$1.y *= - 1; _e1$1.z *= - 1;\n\n\t\t\tif ( background.isCubeTexture && background.isRenderTargetTexture === false ) {\n\n\t\t\t\t// environment maps which are not cube render targets or PMREMs follow a different convention\n\t\t\t\t_e1$1.y *= - 1;\n\t\t\t\t_e1$1.z *= - 1;\n\n\t\t\t}\n\n\t\t\tboxMesh.material.uniforms.envMap.value = background;\n\t\t\tboxMesh.material.uniforms.flipEnvMap.value = ( background.isCubeTexture && background.isRenderTargetTexture === false ) ? - 1 : 1;\n\t\t\tboxMesh.material.uniforms.backgroundBlurriness.value = scene.backgroundBlurriness;\n\t\t\tboxMesh.material.uniforms.backgroundIntensity.value = scene.backgroundIntensity;\n\t\t\tboxMesh.material.uniforms.backgroundRotation.value.setFromMatrix4( _m1$1.makeRotationFromEuler( _e1$1 ) );\n\t\t\tboxMesh.material.toneMapped = ColorManagement.getTransfer( background.colorSpace ) !== SRGBTransfer;\n\n\t\t\tif ( currentBackground !== background ||\n\t\t\t\tcurrentBackgroundVersion !== background.version ||\n\t\t\t\tcurrentTonemapping !== renderer.toneMapping ) {\n\n\t\t\t\tboxMesh.material.needsUpdate = true;\n\n\t\t\t\tcurrentBackground = background;\n\t\t\t\tcurrentBackgroundVersion = background.version;\n\t\t\t\tcurrentTonemapping = renderer.toneMapping;\n\n\t\t\t}\n\n\t\t\tboxMesh.layers.enableAll();\n\n\t\t\t// push to the pre-sorted opaque render list\n\t\t\trenderList.unshift( boxMesh, boxMesh.geometry, boxMesh.material, 0, 0, null );\n\n\t\t} else if ( background && background.isTexture ) {\n\n\t\t\tif ( planeMesh === undefined ) {\n\n\t\t\t\tplaneMesh = new Mesh(\n\t\t\t\t\tnew PlaneGeometry( 2, 2 ),\n\t\t\t\t\tnew ShaderMaterial( {\n\t\t\t\t\t\tname: 'BackgroundMaterial',\n\t\t\t\t\t\tuniforms: cloneUniforms( ShaderLib.background.uniforms ),\n\t\t\t\t\t\tvertexShader: ShaderLib.background.vertexShader,\n\t\t\t\t\t\tfragmentShader: ShaderLib.background.fragmentShader,\n\t\t\t\t\t\tside: FrontSide,\n\t\t\t\t\t\tdepthTest: false,\n\t\t\t\t\t\tdepthWrite: false,\n\t\t\t\t\t\tfog: false\n\t\t\t\t\t} )\n\t\t\t\t);\n\n\t\t\t\tplaneMesh.geometry.deleteAttribute( 'normal' );\n\n\t\t\t\t// add \"map\" material property so the renderer can evaluate it like for built-in materials\n\t\t\t\tObject.defineProperty( planeMesh.material, 'map', {\n\n\t\t\t\t\tget: function () {\n\n\t\t\t\t\t\treturn this.uniforms.t2D.value;\n\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t\tobjects.update( planeMesh );\n\n\t\t\t}\n\n\t\t\tplaneMesh.material.uniforms.t2D.value = background;\n\t\t\tplaneMesh.material.uniforms.backgroundIntensity.value = scene.backgroundIntensity;\n\t\t\tplaneMesh.material.toneMapped = ColorManagement.getTransfer( background.colorSpace ) !== SRGBTransfer;\n\n\t\t\tif ( background.matrixAutoUpdate === true ) {\n\n\t\t\t\tbackground.updateMatrix();\n\n\t\t\t}\n\n\t\t\tplaneMesh.material.uniforms.uvTransform.value.copy( background.matrix );\n\n\t\t\tif ( currentBackground !== background ||\n\t\t\t\tcurrentBackgroundVersion !== background.version ||\n\t\t\t\tcurrentTonemapping !== renderer.toneMapping ) {\n\n\t\t\t\tplaneMesh.material.needsUpdate = true;\n\n\t\t\t\tcurrentBackground = background;\n\t\t\t\tcurrentBackgroundVersion = background.version;\n\t\t\t\tcurrentTonemapping = renderer.toneMapping;\n\n\t\t\t}\n\n\t\t\tplaneMesh.layers.enableAll();\n\n\t\t\t// push to the pre-sorted opaque render list\n\t\t\trenderList.unshift( planeMesh, planeMesh.geometry, planeMesh.material, 0, 0, null );\n\n\t\t}\n\n\t}\n\n\tfunction setClear( color, alpha ) {\n\n\t\tcolor.getRGB( _rgb, getUnlitUniformColorSpace( renderer ) );\n\n\t\tstate.buffers.color.setClear( _rgb.r, _rgb.g, _rgb.b, alpha, premultipliedAlpha );\n\n\t}\n\n\treturn {\n\n\t\tgetClearColor: function () {\n\n\t\t\treturn clearColor;\n\n\t\t},\n\t\tsetClearColor: function ( color, alpha = 1 ) {\n\n\t\t\tclearColor.set( color );\n\t\t\tclearAlpha = alpha;\n\t\t\tsetClear( clearColor, clearAlpha );\n\n\t\t},\n\t\tgetClearAlpha: function () {\n\n\t\t\treturn clearAlpha;\n\n\t\t},\n\t\tsetClearAlpha: function ( alpha ) {\n\n\t\t\tclearAlpha = alpha;\n\t\t\tsetClear( clearColor, clearAlpha );\n\n\t\t},\n\t\trender: render,\n\t\taddToRenderList: addToRenderList\n\n\t};\n\n}\n\nfunction WebGLBindingStates( gl, attributes ) {\n\n\tconst maxVertexAttributes = gl.getParameter( gl.MAX_VERTEX_ATTRIBS );\n\n\tconst bindingStates = {};\n\n\tconst defaultState = createBindingState( null );\n\tlet currentState = defaultState;\n\tlet forceUpdate = false;\n\n\tfunction setup( object, material, program, geometry, index ) {\n\n\t\tlet updateBuffers = false;\n\n\t\tconst state = getBindingState( geometry, program, material );\n\n\t\tif ( currentState !== state ) {\n\n\t\t\tcurrentState = state;\n\t\t\tbindVertexArrayObject( currentState.object );\n\n\t\t}\n\n\t\tupdateBuffers = needsUpdate( object, geometry, program, index );\n\n\t\tif ( updateBuffers ) saveCache( object, geometry, program, index );\n\n\t\tif ( index !== null ) {\n\n\t\t\tattributes.update( index, gl.ELEMENT_ARRAY_BUFFER );\n\n\t\t}\n\n\t\tif ( updateBuffers || forceUpdate ) {\n\n\t\t\tforceUpdate = false;\n\n\t\t\tsetupVertexAttributes( object, material, program, geometry );\n\n\t\t\tif ( index !== null ) {\n\n\t\t\t\tgl.bindBuffer( gl.ELEMENT_ARRAY_BUFFER, attributes.get( index ).buffer );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tfunction createVertexArrayObject() {\n\n\t\treturn gl.createVertexArray();\n\n\t}\n\n\tfunction bindVertexArrayObject( vao ) {\n\n\t\treturn gl.bindVertexArray( vao );\n\n\t}\n\n\tfunction deleteVertexArrayObject( vao ) {\n\n\t\treturn gl.deleteVertexArray( vao );\n\n\t}\n\n\tfunction getBindingState( geometry, program, material ) {\n\n\t\tconst wireframe = ( material.wireframe === true );\n\n\t\tlet programMap = bindingStates[ geometry.id ];\n\n\t\tif ( programMap === undefined ) {\n\n\t\t\tprogramMap = {};\n\t\t\tbindingStates[ geometry.id ] = programMap;\n\n\t\t}\n\n\t\tlet stateMap = programMap[ program.id ];\n\n\t\tif ( stateMap === undefined ) {\n\n\t\t\tstateMap = {};\n\t\t\tprogramMap[ program.id ] = stateMap;\n\n\t\t}\n\n\t\tlet state = stateMap[ wireframe ];\n\n\t\tif ( state === undefined ) {\n\n\t\t\tstate = createBindingState( createVertexArrayObject() );\n\t\t\tstateMap[ wireframe ] = state;\n\n\t\t}\n\n\t\treturn state;\n\n\t}\n\n\tfunction createBindingState( vao ) {\n\n\t\tconst newAttributes = [];\n\t\tconst enabledAttributes = [];\n\t\tconst attributeDivisors = [];\n\n\t\tfor ( let i = 0; i < maxVertexAttributes; i ++ ) {\n\n\t\t\tnewAttributes[ i ] = 0;\n\t\t\tenabledAttributes[ i ] = 0;\n\t\t\tattributeDivisors[ i ] = 0;\n\n\t\t}\n\n\t\treturn {\n\n\t\t\t// for backward compatibility on non-VAO support browser\n\t\t\tgeometry: null,\n\t\t\tprogram: null,\n\t\t\twireframe: false,\n\n\t\t\tnewAttributes: newAttributes,\n\t\t\tenabledAttributes: enabledAttributes,\n\t\t\tattributeDivisors: attributeDivisors,\n\t\t\tobject: vao,\n\t\t\tattributes: {},\n\t\t\tindex: null\n\n\t\t};\n\n\t}\n\n\tfunction needsUpdate( object, geometry, program, index ) {\n\n\t\tconst cachedAttributes = currentState.attributes;\n\t\tconst geometryAttributes = geometry.attributes;\n\n\t\tlet attributesNum = 0;\n\n\t\tconst programAttributes = program.getAttributes();\n\n\t\tfor ( const name in programAttributes ) {\n\n\t\t\tconst programAttribute = programAttributes[ name ];\n\n\t\t\tif ( programAttribute.location >= 0 ) {\n\n\t\t\t\tconst cachedAttribute = cachedAttributes[ name ];\n\t\t\t\tlet geometryAttribute = geometryAttributes[ name ];\n\n\t\t\t\tif ( geometryAttribute === undefined ) {\n\n\t\t\t\t\tif ( name === 'instanceMatrix' && object.instanceMatrix ) geometryAttribute = object.instanceMatrix;\n\t\t\t\t\tif ( name === 'instanceColor' && object.instanceColor ) geometryAttribute = object.instanceColor;\n\n\t\t\t\t}\n\n\t\t\t\tif ( cachedAttribute === undefined ) return true;\n\n\t\t\t\tif ( cachedAttribute.attribute !== geometryAttribute ) return true;\n\n\t\t\t\tif ( geometryAttribute && cachedAttribute.data !== geometryAttribute.data ) return true;\n\n\t\t\t\tattributesNum ++;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( currentState.attributesNum !== attributesNum ) return true;\n\n\t\tif ( currentState.index !== index ) return true;\n\n\t\treturn false;\n\n\t}\n\n\tfunction saveCache( object, geometry, program, index ) {\n\n\t\tconst cache = {};\n\t\tconst attributes = geometry.attributes;\n\t\tlet attributesNum = 0;\n\n\t\tconst programAttributes = program.getAttributes();\n\n\t\tfor ( const name in programAttributes ) {\n\n\t\t\tconst programAttribute = programAttributes[ name ];\n\n\t\t\tif ( programAttribute.location >= 0 ) {\n\n\t\t\t\tlet attribute = attributes[ name ];\n\n\t\t\t\tif ( attribute === undefined ) {\n\n\t\t\t\t\tif ( name === 'instanceMatrix' && object.instanceMatrix ) attribute = object.instanceMatrix;\n\t\t\t\t\tif ( name === 'instanceColor' && object.instanceColor ) attribute = object.instanceColor;\n\n\t\t\t\t}\n\n\t\t\t\tconst data = {};\n\t\t\t\tdata.attribute = attribute;\n\n\t\t\t\tif ( attribute && attribute.data ) {\n\n\t\t\t\t\tdata.data = attribute.data;\n\n\t\t\t\t}\n\n\t\t\t\tcache[ name ] = data;\n\n\t\t\t\tattributesNum ++;\n\n\t\t\t}\n\n\t\t}\n\n\t\tcurrentState.attributes = cache;\n\t\tcurrentState.attributesNum = attributesNum;\n\n\t\tcurrentState.index = index;\n\n\t}\n\n\tfunction initAttributes() {\n\n\t\tconst newAttributes = currentState.newAttributes;\n\n\t\tfor ( let i = 0, il = newAttributes.length; i < il; i ++ ) {\n\n\t\t\tnewAttributes[ i ] = 0;\n\n\t\t}\n\n\t}\n\n\tfunction enableAttribute( attribute ) {\n\n\t\tenableAttributeAndDivisor( attribute, 0 );\n\n\t}\n\n\tfunction enableAttributeAndDivisor( attribute, meshPerAttribute ) {\n\n\t\tconst newAttributes = currentState.newAttributes;\n\t\tconst enabledAttributes = currentState.enabledAttributes;\n\t\tconst attributeDivisors = currentState.attributeDivisors;\n\n\t\tnewAttributes[ attribute ] = 1;\n\n\t\tif ( enabledAttributes[ attribute ] === 0 ) {\n\n\t\t\tgl.enableVertexAttribArray( attribute );\n\t\t\tenabledAttributes[ attribute ] = 1;\n\n\t\t}\n\n\t\tif ( attributeDivisors[ attribute ] !== meshPerAttribute ) {\n\n\t\t\tgl.vertexAttribDivisor( attribute, meshPerAttribute );\n\t\t\tattributeDivisors[ attribute ] = meshPerAttribute;\n\n\t\t}\n\n\t}\n\n\tfunction disableUnusedAttributes() {\n\n\t\tconst newAttributes = currentState.newAttributes;\n\t\tconst enabledAttributes = currentState.enabledAttributes;\n\n\t\tfor ( let i = 0, il = enabledAttributes.length; i < il; i ++ ) {\n\n\t\t\tif ( enabledAttributes[ i ] !== newAttributes[ i ] ) {\n\n\t\t\t\tgl.disableVertexAttribArray( i );\n\t\t\t\tenabledAttributes[ i ] = 0;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tfunction vertexAttribPointer( index, size, type, normalized, stride, offset, integer ) {\n\n\t\tif ( integer === true ) {\n\n\t\t\tgl.vertexAttribIPointer( index, size, type, stride, offset );\n\n\t\t} else {\n\n\t\t\tgl.vertexAttribPointer( index, size, type, normalized, stride, offset );\n\n\t\t}\n\n\t}\n\n\tfunction setupVertexAttributes( object, material, program, geometry ) {\n\n\t\tinitAttributes();\n\n\t\tconst geometryAttributes = geometry.attributes;\n\n\t\tconst programAttributes = program.getAttributes();\n\n\t\tconst materialDefaultAttributeValues = material.defaultAttributeValues;\n\n\t\tfor ( const name in programAttributes ) {\n\n\t\t\tconst programAttribute = programAttributes[ name ];\n\n\t\t\tif ( programAttribute.location >= 0 ) {\n\n\t\t\t\tlet geometryAttribute = geometryAttributes[ name ];\n\n\t\t\t\tif ( geometryAttribute === undefined ) {\n\n\t\t\t\t\tif ( name === 'instanceMatrix' && object.instanceMatrix ) geometryAttribute = object.instanceMatrix;\n\t\t\t\t\tif ( name === 'instanceColor' && object.instanceColor ) geometryAttribute = object.instanceColor;\n\n\t\t\t\t}\n\n\t\t\t\tif ( geometryAttribute !== undefined ) {\n\n\t\t\t\t\tconst normalized = geometryAttribute.normalized;\n\t\t\t\t\tconst size = geometryAttribute.itemSize;\n\n\t\t\t\t\tconst attribute = attributes.get( geometryAttribute );\n\n\t\t\t\t\t// TODO Attribute may not be available on context restore\n\n\t\t\t\t\tif ( attribute === undefined ) continue;\n\n\t\t\t\t\tconst buffer = attribute.buffer;\n\t\t\t\t\tconst type = attribute.type;\n\t\t\t\t\tconst bytesPerElement = attribute.bytesPerElement;\n\n\t\t\t\t\t// check for integer attributes\n\n\t\t\t\t\tconst integer = ( type === gl.INT || type === gl.UNSIGNED_INT || geometryAttribute.gpuType === IntType );\n\n\t\t\t\t\tif ( geometryAttribute.isInterleavedBufferAttribute ) {\n\n\t\t\t\t\t\tconst data = geometryAttribute.data;\n\t\t\t\t\t\tconst stride = data.stride;\n\t\t\t\t\t\tconst offset = geometryAttribute.offset;\n\n\t\t\t\t\t\tif ( data.isInstancedInterleavedBuffer ) {\n\n\t\t\t\t\t\t\tfor ( let i = 0; i < programAttribute.locationSize; i ++ ) {\n\n\t\t\t\t\t\t\t\tenableAttributeAndDivisor( programAttribute.location + i, data.meshPerAttribute );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( object.isInstancedMesh !== true && geometry._maxInstanceCount === undefined ) {\n\n\t\t\t\t\t\t\t\tgeometry._maxInstanceCount = data.meshPerAttribute * data.count;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tfor ( let i = 0; i < programAttribute.locationSize; i ++ ) {\n\n\t\t\t\t\t\t\t\tenableAttribute( programAttribute.location + i );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tgl.bindBuffer( gl.ARRAY_BUFFER, buffer );\n\n\t\t\t\t\t\tfor ( let i = 0; i < programAttribute.locationSize; i ++ ) {\n\n\t\t\t\t\t\t\tvertexAttribPointer(\n\t\t\t\t\t\t\t\tprogramAttribute.location + i,\n\t\t\t\t\t\t\t\tsize / programAttribute.locationSize,\n\t\t\t\t\t\t\t\ttype,\n\t\t\t\t\t\t\t\tnormalized,\n\t\t\t\t\t\t\t\tstride * bytesPerElement,\n\t\t\t\t\t\t\t\t( offset + ( size / programAttribute.locationSize ) * i ) * bytesPerElement,\n\t\t\t\t\t\t\t\tinteger\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tif ( geometryAttribute.isInstancedBufferAttribute ) {\n\n\t\t\t\t\t\t\tfor ( let i = 0; i < programAttribute.locationSize; i ++ ) {\n\n\t\t\t\t\t\t\t\tenableAttributeAndDivisor( programAttribute.location + i, geometryAttribute.meshPerAttribute );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( object.isInstancedMesh !== true && geometry._maxInstanceCount === undefined ) {\n\n\t\t\t\t\t\t\t\tgeometry._maxInstanceCount = geometryAttribute.meshPerAttribute * geometryAttribute.count;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tfor ( let i = 0; i < programAttribute.locationSize; i ++ ) {\n\n\t\t\t\t\t\t\t\tenableAttribute( programAttribute.location + i );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tgl.bindBuffer( gl.ARRAY_BUFFER, buffer );\n\n\t\t\t\t\t\tfor ( let i = 0; i < programAttribute.locationSize; i ++ ) {\n\n\t\t\t\t\t\t\tvertexAttribPointer(\n\t\t\t\t\t\t\t\tprogramAttribute.location + i,\n\t\t\t\t\t\t\t\tsize / programAttribute.locationSize,\n\t\t\t\t\t\t\t\ttype,\n\t\t\t\t\t\t\t\tnormalized,\n\t\t\t\t\t\t\t\tsize * bytesPerElement,\n\t\t\t\t\t\t\t\t( size / programAttribute.locationSize ) * i * bytesPerElement,\n\t\t\t\t\t\t\t\tinteger\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} else if ( materialDefaultAttributeValues !== undefined ) {\n\n\t\t\t\t\tconst value = materialDefaultAttributeValues[ name ];\n\n\t\t\t\t\tif ( value !== undefined ) {\n\n\t\t\t\t\t\tswitch ( value.length ) {\n\n\t\t\t\t\t\t\tcase 2:\n\t\t\t\t\t\t\t\tgl.vertexAttrib2fv( programAttribute.location, value );\n\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\tcase 3:\n\t\t\t\t\t\t\t\tgl.vertexAttrib3fv( programAttribute.location, value );\n\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\tcase 4:\n\t\t\t\t\t\t\t\tgl.vertexAttrib4fv( programAttribute.location, value );\n\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\tgl.vertexAttrib1fv( programAttribute.location, value );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tdisableUnusedAttributes();\n\n\t}\n\n\tfunction dispose() {\n\n\t\treset();\n\n\t\tfor ( const geometryId in bindingStates ) {\n\n\t\t\tconst programMap = bindingStates[ geometryId ];\n\n\t\t\tfor ( const programId in programMap ) {\n\n\t\t\t\tconst stateMap = programMap[ programId ];\n\n\t\t\t\tfor ( const wireframe in stateMap ) {\n\n\t\t\t\t\tdeleteVertexArrayObject( stateMap[ wireframe ].object );\n\n\t\t\t\t\tdelete stateMap[ wireframe ];\n\n\t\t\t\t}\n\n\t\t\t\tdelete programMap[ programId ];\n\n\t\t\t}\n\n\t\t\tdelete bindingStates[ geometryId ];\n\n\t\t}\n\n\t}\n\n\tfunction releaseStatesOfGeometry( geometry ) {\n\n\t\tif ( bindingStates[ geometry.id ] === undefined ) return;\n\n\t\tconst programMap = bindingStates[ geometry.id ];\n\n\t\tfor ( const programId in programMap ) {\n\n\t\t\tconst stateMap = programMap[ programId ];\n\n\t\t\tfor ( const wireframe in stateMap ) {\n\n\t\t\t\tdeleteVertexArrayObject( stateMap[ wireframe ].object );\n\n\t\t\t\tdelete stateMap[ wireframe ];\n\n\t\t\t}\n\n\t\t\tdelete programMap[ programId ];\n\n\t\t}\n\n\t\tdelete bindingStates[ geometry.id ];\n\n\t}\n\n\tfunction releaseStatesOfProgram( program ) {\n\n\t\tfor ( const geometryId in bindingStates ) {\n\n\t\t\tconst programMap = bindingStates[ geometryId ];\n\n\t\t\tif ( programMap[ program.id ] === undefined ) continue;\n\n\t\t\tconst stateMap = programMap[ program.id ];\n\n\t\t\tfor ( const wireframe in stateMap ) {\n\n\t\t\t\tdeleteVertexArrayObject( stateMap[ wireframe ].object );\n\n\t\t\t\tdelete stateMap[ wireframe ];\n\n\t\t\t}\n\n\t\t\tdelete programMap[ program.id ];\n\n\t\t}\n\n\t}\n\n\tfunction reset() {\n\n\t\tresetDefaultState();\n\t\tforceUpdate = true;\n\n\t\tif ( currentState === defaultState ) return;\n\n\t\tcurrentState = defaultState;\n\t\tbindVertexArrayObject( currentState.object );\n\n\t}\n\n\t// for backward-compatibility\n\n\tfunction resetDefaultState() {\n\n\t\tdefaultState.geometry = null;\n\t\tdefaultState.program = null;\n\t\tdefaultState.wireframe = false;\n\n\t}\n\n\treturn {\n\n\t\tsetup: setup,\n\t\treset: reset,\n\t\tresetDefaultState: resetDefaultState,\n\t\tdispose: dispose,\n\t\treleaseStatesOfGeometry: releaseStatesOfGeometry,\n\t\treleaseStatesOfProgram: releaseStatesOfProgram,\n\n\t\tinitAttributes: initAttributes,\n\t\tenableAttribute: enableAttribute,\n\t\tdisableUnusedAttributes: disableUnusedAttributes\n\n\t};\n\n}\n\nfunction WebGLBufferRenderer( gl, extensions, info ) {\n\n\tlet mode;\n\n\tfunction setMode( value ) {\n\n\t\tmode = value;\n\n\t}\n\n\tfunction render( start, count ) {\n\n\t\tgl.drawArrays( mode, start, count );\n\n\t\tinfo.update( count, mode, 1 );\n\n\t}\n\n\tfunction renderInstances( start, count, primcount ) {\n\n\t\tif ( primcount === 0 ) return;\n\n\t\tgl.drawArraysInstanced( mode, start, count, primcount );\n\n\t\tinfo.update( count, mode, primcount );\n\n\t}\n\n\tfunction renderMultiDraw( starts, counts, drawCount ) {\n\n\t\tif ( drawCount === 0 ) return;\n\n\t\tconst extension = extensions.get( 'WEBGL_multi_draw' );\n\t\textension.multiDrawArraysWEBGL( mode, starts, 0, counts, 0, drawCount );\n\n\t\tlet elementCount = 0;\n\t\tfor ( let i = 0; i < drawCount; i ++ ) {\n\n\t\t\telementCount += counts[ i ];\n\n\t\t}\n\n\t\tinfo.update( elementCount, mode, 1 );\n\n\t}\n\n\tfunction renderMultiDrawInstances( starts, counts, drawCount, primcount ) {\n\n\t\tif ( drawCount === 0 ) return;\n\n\t\tconst extension = extensions.get( 'WEBGL_multi_draw' );\n\n\t\tif ( extension === null ) {\n\n\t\t\tfor ( let i = 0; i < starts.length; i ++ ) {\n\n\t\t\t\trenderInstances( starts[ i ], counts[ i ], primcount[ i ] );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\textension.multiDrawArraysInstancedWEBGL( mode, starts, 0, counts, 0, primcount, 0, drawCount );\n\n\t\t\tlet elementCount = 0;\n\t\t\tfor ( let i = 0; i < drawCount; i ++ ) {\n\n\t\t\t\telementCount += counts[ i ] * primcount[ i ];\n\n\t\t\t}\n\n\t\t\tinfo.update( elementCount, mode, 1 );\n\n\t\t}\n\n\t}\n\n\t//\n\n\tthis.setMode = setMode;\n\tthis.render = render;\n\tthis.renderInstances = renderInstances;\n\tthis.renderMultiDraw = renderMultiDraw;\n\tthis.renderMultiDrawInstances = renderMultiDrawInstances;\n\n}\n\nfunction WebGLCapabilities( gl, extensions, parameters, utils ) {\n\n\tlet maxAnisotropy;\n\n\tfunction getMaxAnisotropy() {\n\n\t\tif ( maxAnisotropy !== undefined ) return maxAnisotropy;\n\n\t\tif ( extensions.has( 'EXT_texture_filter_anisotropic' ) === true ) {\n\n\t\t\tconst extension = extensions.get( 'EXT_texture_filter_anisotropic' );\n\n\t\t\tmaxAnisotropy = gl.getParameter( extension.MAX_TEXTURE_MAX_ANISOTROPY_EXT );\n\n\t\t} else {\n\n\t\t\tmaxAnisotropy = 0;\n\n\t\t}\n\n\t\treturn maxAnisotropy;\n\n\t}\n\n\tfunction textureFormatReadable( textureFormat ) {\n\n\t\tif ( textureFormat !== RGBAFormat && utils.convert( textureFormat ) !== gl.getParameter( gl.IMPLEMENTATION_COLOR_READ_FORMAT ) ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tfunction textureTypeReadable( textureType ) {\n\n\t\tconst halfFloatSupportedByExt = ( textureType === HalfFloatType ) && ( extensions.has( 'EXT_color_buffer_half_float' ) || extensions.has( 'EXT_color_buffer_float' ) );\n\n\t\tif ( textureType !== UnsignedByteType && utils.convert( textureType ) !== gl.getParameter( gl.IMPLEMENTATION_COLOR_READ_TYPE ) && // Edge and Chrome Mac < 52 (#9513)\n\t\t\ttextureType !== FloatType && ! halfFloatSupportedByExt ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tfunction getMaxPrecision( precision ) {\n\n\t\tif ( precision === 'highp' ) {\n\n\t\t\tif ( gl.getShaderPrecisionFormat( gl.VERTEX_SHADER, gl.HIGH_FLOAT ).precision > 0 &&\n\t\t\t\tgl.getShaderPrecisionFormat( gl.FRAGMENT_SHADER, gl.HIGH_FLOAT ).precision > 0 ) {\n\n\t\t\t\treturn 'highp';\n\n\t\t\t}\n\n\t\t\tprecision = 'mediump';\n\n\t\t}\n\n\t\tif ( precision === 'mediump' ) {\n\n\t\t\tif ( gl.getShaderPrecisionFormat( gl.VERTEX_SHADER, gl.MEDIUM_FLOAT ).precision > 0 &&\n\t\t\t\tgl.getShaderPrecisionFormat( gl.FRAGMENT_SHADER, gl.MEDIUM_FLOAT ).precision > 0 ) {\n\n\t\t\t\treturn 'mediump';\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn 'lowp';\n\n\t}\n\n\tlet precision = parameters.precision !== undefined ? parameters.precision : 'highp';\n\tconst maxPrecision = getMaxPrecision( precision );\n\n\tif ( maxPrecision !== precision ) {\n\n\t\tconsole.warn( 'THREE.WebGLRenderer:', precision, 'not supported, using', maxPrecision, 'instead.' );\n\t\tprecision = maxPrecision;\n\n\t}\n\n\tconst logarithmicDepthBuffer = parameters.logarithmicDepthBuffer === true;\n\tconst reverseDepthBuffer = parameters.reverseDepthBuffer === true && extensions.has( 'EXT_clip_control' );\n\n\tconst maxTextures = gl.getParameter( gl.MAX_TEXTURE_IMAGE_UNITS );\n\tconst maxVertexTextures = gl.getParameter( gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS );\n\tconst maxTextureSize = gl.getParameter( gl.MAX_TEXTURE_SIZE );\n\tconst maxCubemapSize = gl.getParameter( gl.MAX_CUBE_MAP_TEXTURE_SIZE );\n\n\tconst maxAttributes = gl.getParameter( gl.MAX_VERTEX_ATTRIBS );\n\tconst maxVertexUniforms = gl.getParameter( gl.MAX_VERTEX_UNIFORM_VECTORS );\n\tconst maxVaryings = gl.getParameter( gl.MAX_VARYING_VECTORS );\n\tconst maxFragmentUniforms = gl.getParameter( gl.MAX_FRAGMENT_UNIFORM_VECTORS );\n\n\tconst vertexTextures = maxVertexTextures > 0;\n\n\tconst maxSamples = gl.getParameter( gl.MAX_SAMPLES );\n\n\treturn {\n\n\t\tisWebGL2: true, // keeping this for backwards compatibility\n\n\t\tgetMaxAnisotropy: getMaxAnisotropy,\n\t\tgetMaxPrecision: getMaxPrecision,\n\n\t\ttextureFormatReadable: textureFormatReadable,\n\t\ttextureTypeReadable: textureTypeReadable,\n\n\t\tprecision: precision,\n\t\tlogarithmicDepthBuffer: logarithmicDepthBuffer,\n\t\treverseDepthBuffer: reverseDepthBuffer,\n\n\t\tmaxTextures: maxTextures,\n\t\tmaxVertexTextures: maxVertexTextures,\n\t\tmaxTextureSize: maxTextureSize,\n\t\tmaxCubemapSize: maxCubemapSize,\n\n\t\tmaxAttributes: maxAttributes,\n\t\tmaxVertexUniforms: maxVertexUniforms,\n\t\tmaxVaryings: maxVaryings,\n\t\tmaxFragmentUniforms: maxFragmentUniforms,\n\n\t\tvertexTextures: vertexTextures,\n\n\t\tmaxSamples: maxSamples\n\n\t};\n\n}\n\nfunction WebGLClipping( properties ) {\n\n\tconst scope = this;\n\n\tlet globalState = null,\n\t\tnumGlobalPlanes = 0,\n\t\tlocalClippingEnabled = false,\n\t\trenderingShadows = false;\n\n\tconst plane = new Plane(),\n\t\tviewNormalMatrix = new Matrix3(),\n\n\t\tuniform = { value: null, needsUpdate: false };\n\n\tthis.uniform = uniform;\n\tthis.numPlanes = 0;\n\tthis.numIntersection = 0;\n\n\tthis.init = function ( planes, enableLocalClipping ) {\n\n\t\tconst enabled =\n\t\t\tplanes.length !== 0 ||\n\t\t\tenableLocalClipping ||\n\t\t\t// enable state of previous frame - the clipping code has to\n\t\t\t// run another frame in order to reset the state:\n\t\t\tnumGlobalPlanes !== 0 ||\n\t\t\tlocalClippingEnabled;\n\n\t\tlocalClippingEnabled = enableLocalClipping;\n\n\t\tnumGlobalPlanes = planes.length;\n\n\t\treturn enabled;\n\n\t};\n\n\tthis.beginShadows = function () {\n\n\t\trenderingShadows = true;\n\t\tprojectPlanes( null );\n\n\t};\n\n\tthis.endShadows = function () {\n\n\t\trenderingShadows = false;\n\n\t};\n\n\tthis.setGlobalState = function ( planes, camera ) {\n\n\t\tglobalState = projectPlanes( planes, camera, 0 );\n\n\t};\n\n\tthis.setState = function ( material, camera, useCache ) {\n\n\t\tconst planes = material.clippingPlanes,\n\t\t\tclipIntersection = material.clipIntersection,\n\t\t\tclipShadows = material.clipShadows;\n\n\t\tconst materialProperties = properties.get( material );\n\n\t\tif ( ! localClippingEnabled || planes === null || planes.length === 0 || renderingShadows && ! clipShadows ) {\n\n\t\t\t// there's no local clipping\n\n\t\t\tif ( renderingShadows ) {\n\n\t\t\t\t// there's no global clipping\n\n\t\t\t\tprojectPlanes( null );\n\n\t\t\t} else {\n\n\t\t\t\tresetGlobalState();\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tconst nGlobal = renderingShadows ? 0 : numGlobalPlanes,\n\t\t\t\tlGlobal = nGlobal * 4;\n\n\t\t\tlet dstArray = materialProperties.clippingState || null;\n\n\t\t\tuniform.value = dstArray; // ensure unique state\n\n\t\t\tdstArray = projectPlanes( planes, camera, lGlobal, useCache );\n\n\t\t\tfor ( let i = 0; i !== lGlobal; ++ i ) {\n\n\t\t\t\tdstArray[ i ] = globalState[ i ];\n\n\t\t\t}\n\n\t\t\tmaterialProperties.clippingState = dstArray;\n\t\t\tthis.numIntersection = clipIntersection ? this.numPlanes : 0;\n\t\t\tthis.numPlanes += nGlobal;\n\n\t\t}\n\n\n\t};\n\n\tfunction resetGlobalState() {\n\n\t\tif ( uniform.value !== globalState ) {\n\n\t\t\tuniform.value = globalState;\n\t\t\tuniform.needsUpdate = numGlobalPlanes > 0;\n\n\t\t}\n\n\t\tscope.numPlanes = numGlobalPlanes;\n\t\tscope.numIntersection = 0;\n\n\t}\n\n\tfunction projectPlanes( planes, camera, dstOffset, skipTransform ) {\n\n\t\tconst nPlanes = planes !== null ? planes.length : 0;\n\t\tlet dstArray = null;\n\n\t\tif ( nPlanes !== 0 ) {\n\n\t\t\tdstArray = uniform.value;\n\n\t\t\tif ( skipTransform !== true || dstArray === null ) {\n\n\t\t\t\tconst flatSize = dstOffset + nPlanes * 4,\n\t\t\t\t\tviewMatrix = camera.matrixWorldInverse;\n\n\t\t\t\tviewNormalMatrix.getNormalMatrix( viewMatrix );\n\n\t\t\t\tif ( dstArray === null || dstArray.length < flatSize ) {\n\n\t\t\t\t\tdstArray = new Float32Array( flatSize );\n\n\t\t\t\t}\n\n\t\t\t\tfor ( let i = 0, i4 = dstOffset; i !== nPlanes; ++ i, i4 += 4 ) {\n\n\t\t\t\t\tplane.copy( planes[ i ] ).applyMatrix4( viewMatrix, viewNormalMatrix );\n\n\t\t\t\t\tplane.normal.toArray( dstArray, i4 );\n\t\t\t\t\tdstArray[ i4 + 3 ] = plane.constant;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tuniform.value = dstArray;\n\t\t\tuniform.needsUpdate = true;\n\n\t\t}\n\n\t\tscope.numPlanes = nPlanes;\n\t\tscope.numIntersection = 0;\n\n\t\treturn dstArray;\n\n\t}\n\n}\n\nfunction WebGLCubeMaps( renderer ) {\n\n\tlet cubemaps = new WeakMap();\n\n\tfunction mapTextureMapping( texture, mapping ) {\n\n\t\tif ( mapping === EquirectangularReflectionMapping ) {\n\n\t\t\ttexture.mapping = CubeReflectionMapping;\n\n\t\t} else if ( mapping === EquirectangularRefractionMapping ) {\n\n\t\t\ttexture.mapping = CubeRefractionMapping;\n\n\t\t}\n\n\t\treturn texture;\n\n\t}\n\n\tfunction get( texture ) {\n\n\t\tif ( texture && texture.isTexture ) {\n\n\t\t\tconst mapping = texture.mapping;\n\n\t\t\tif ( mapping === EquirectangularReflectionMapping || mapping === EquirectangularRefractionMapping ) {\n\n\t\t\t\tif ( cubemaps.has( texture ) ) {\n\n\t\t\t\t\tconst cubemap = cubemaps.get( texture ).texture;\n\t\t\t\t\treturn mapTextureMapping( cubemap, texture.mapping );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconst image = texture.image;\n\n\t\t\t\t\tif ( image && image.height > 0 ) {\n\n\t\t\t\t\t\tconst renderTarget = new WebGLCubeRenderTarget( image.height );\n\t\t\t\t\t\trenderTarget.fromEquirectangularTexture( renderer, texture );\n\t\t\t\t\t\tcubemaps.set( texture, renderTarget );\n\n\t\t\t\t\t\ttexture.addEventListener( 'dispose', onTextureDispose );\n\n\t\t\t\t\t\treturn mapTextureMapping( renderTarget.texture, texture.mapping );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// image not yet ready. try the conversion next frame\n\n\t\t\t\t\t\treturn null;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn texture;\n\n\t}\n\n\tfunction onTextureDispose( event ) {\n\n\t\tconst texture = event.target;\n\n\t\ttexture.removeEventListener( 'dispose', onTextureDispose );\n\n\t\tconst cubemap = cubemaps.get( texture );\n\n\t\tif ( cubemap !== undefined ) {\n\n\t\t\tcubemaps.delete( texture );\n\t\t\tcubemap.dispose();\n\n\t\t}\n\n\t}\n\n\tfunction dispose() {\n\n\t\tcubemaps = new WeakMap();\n\n\t}\n\n\treturn {\n\t\tget: get,\n\t\tdispose: dispose\n\t};\n\n}\n\nclass OrthographicCamera extends Camera {\n\n\tconstructor( left = - 1, right = 1, top = 1, bottom = - 1, near = 0.1, far = 2000 ) {\n\n\t\tsuper();\n\n\t\tthis.isOrthographicCamera = true;\n\n\t\tthis.type = 'OrthographicCamera';\n\n\t\tthis.zoom = 1;\n\t\tthis.view = null;\n\n\t\tthis.left = left;\n\t\tthis.right = right;\n\t\tthis.top = top;\n\t\tthis.bottom = bottom;\n\n\t\tthis.near = near;\n\t\tthis.far = far;\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.left = source.left;\n\t\tthis.right = source.right;\n\t\tthis.top = source.top;\n\t\tthis.bottom = source.bottom;\n\t\tthis.near = source.near;\n\t\tthis.far = source.far;\n\n\t\tthis.zoom = source.zoom;\n\t\tthis.view = source.view === null ? null : Object.assign( {}, source.view );\n\n\t\treturn this;\n\n\t}\n\n\tsetViewOffset( fullWidth, fullHeight, x, y, width, height ) {\n\n\t\tif ( this.view === null ) {\n\n\t\t\tthis.view = {\n\t\t\t\tenabled: true,\n\t\t\t\tfullWidth: 1,\n\t\t\t\tfullHeight: 1,\n\t\t\t\toffsetX: 0,\n\t\t\t\toffsetY: 0,\n\t\t\t\twidth: 1,\n\t\t\t\theight: 1\n\t\t\t};\n\n\t\t}\n\n\t\tthis.view.enabled = true;\n\t\tthis.view.fullWidth = fullWidth;\n\t\tthis.view.fullHeight = fullHeight;\n\t\tthis.view.offsetX = x;\n\t\tthis.view.offsetY = y;\n\t\tthis.view.width = width;\n\t\tthis.view.height = height;\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tclearViewOffset() {\n\n\t\tif ( this.view !== null ) {\n\n\t\t\tthis.view.enabled = false;\n\n\t\t}\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tupdateProjectionMatrix() {\n\n\t\tconst dx = ( this.right - this.left ) / ( 2 * this.zoom );\n\t\tconst dy = ( this.top - this.bottom ) / ( 2 * this.zoom );\n\t\tconst cx = ( this.right + this.left ) / 2;\n\t\tconst cy = ( this.top + this.bottom ) / 2;\n\n\t\tlet left = cx - dx;\n\t\tlet right = cx + dx;\n\t\tlet top = cy + dy;\n\t\tlet bottom = cy - dy;\n\n\t\tif ( this.view !== null && this.view.enabled ) {\n\n\t\t\tconst scaleW = ( this.right - this.left ) / this.view.fullWidth / this.zoom;\n\t\t\tconst scaleH = ( this.top - this.bottom ) / this.view.fullHeight / this.zoom;\n\n\t\t\tleft += scaleW * this.view.offsetX;\n\t\t\tright = left + scaleW * this.view.width;\n\t\t\ttop -= scaleH * this.view.offsetY;\n\t\t\tbottom = top - scaleH * this.view.height;\n\n\t\t}\n\n\t\tthis.projectionMatrix.makeOrthographic( left, right, top, bottom, this.near, this.far, this.coordinateSystem );\n\n\t\tthis.projectionMatrixInverse.copy( this.projectionMatrix ).invert();\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tdata.object.zoom = this.zoom;\n\t\tdata.object.left = this.left;\n\t\tdata.object.right = this.right;\n\t\tdata.object.top = this.top;\n\t\tdata.object.bottom = this.bottom;\n\t\tdata.object.near = this.near;\n\t\tdata.object.far = this.far;\n\n\t\tif ( this.view !== null ) data.object.view = Object.assign( {}, this.view );\n\n\t\treturn data;\n\n\t}\n\n}\n\nconst LOD_MIN = 4;\n\n// The standard deviations (radians) associated with the extra mips. These are\n// chosen to approximate a Trowbridge-Reitz distribution function times the\n// geometric shadowing function. These sigma values squared must match the\n// variance #defines in cube_uv_reflection_fragment.glsl.js.\nconst EXTRA_LOD_SIGMA = [ 0.125, 0.215, 0.35, 0.446, 0.526, 0.582 ];\n\n// The maximum length of the blur for loop. Smaller sigmas will use fewer\n// samples and exit early, but not recompile the shader.\nconst MAX_SAMPLES = 20;\n\nconst _flatCamera = /*@__PURE__*/ new OrthographicCamera();\nconst _clearColor = /*@__PURE__*/ new Color();\nlet _oldTarget = null;\nlet _oldActiveCubeFace = 0;\nlet _oldActiveMipmapLevel = 0;\nlet _oldXrEnabled = false;\n\n// Golden Ratio\nconst PHI = ( 1 + Math.sqrt( 5 ) ) / 2;\nconst INV_PHI = 1 / PHI;\n\n// Vertices of a dodecahedron (except the opposites, which represent the\n// same axis), used as axis directions evenly spread on a sphere.\nconst _axisDirections = [\n\t/*@__PURE__*/ new Vector3( - PHI, INV_PHI, 0 ),\n\t/*@__PURE__*/ new Vector3( PHI, INV_PHI, 0 ),\n\t/*@__PURE__*/ new Vector3( - INV_PHI, 0, PHI ),\n\t/*@__PURE__*/ new Vector3( INV_PHI, 0, PHI ),\n\t/*@__PURE__*/ new Vector3( 0, PHI, - INV_PHI ),\n\t/*@__PURE__*/ new Vector3( 0, PHI, INV_PHI ),\n\t/*@__PURE__*/ new Vector3( - 1, 1, - 1 ),\n\t/*@__PURE__*/ new Vector3( 1, 1, - 1 ),\n\t/*@__PURE__*/ new Vector3( - 1, 1, 1 ),\n\t/*@__PURE__*/ new Vector3( 1, 1, 1 ) ];\n\n/**\n * This class generates a Prefiltered, Mipmapped Radiance Environment Map\n * (PMREM) from a cubeMap environment texture. This allows different levels of\n * blur to be quickly accessed based on material roughness. It is packed into a\n * special CubeUV format that allows us to perform custom interpolation so that\n * we can support nonlinear formats such as RGBE. Unlike a traditional mipmap\n * chain, it only goes down to the LOD_MIN level (above), and then creates extra\n * even more filtered 'mips' at the same LOD_MIN resolution, associated with\n * higher roughness levels. In this way we maintain resolution to smoothly\n * interpolate diffuse lighting while limiting sampling computation.\n *\n * Paper: Fast, Accurate Image-Based Lighting\n * https://drive.google.com/file/d/15y8r_UpKlU9SvV4ILb0C3qCPecS8pvLz/view\n*/\n\nclass PMREMGenerator {\n\n\tconstructor( renderer ) {\n\n\t\tthis._renderer = renderer;\n\t\tthis._pingPongRenderTarget = null;\n\n\t\tthis._lodMax = 0;\n\t\tthis._cubeSize = 0;\n\t\tthis._lodPlanes = [];\n\t\tthis._sizeLods = [];\n\t\tthis._sigmas = [];\n\n\t\tthis._blurMaterial = null;\n\t\tthis._cubemapMaterial = null;\n\t\tthis._equirectMaterial = null;\n\n\t\tthis._compileMaterial( this._blurMaterial );\n\n\t}\n\n\t/**\n\t * Generates a PMREM from a supplied Scene, which can be faster than using an\n\t * image if networking bandwidth is low. Optional sigma specifies a blur radius\n\t * in radians to be applied to the scene before PMREM generation. Optional near\n\t * and far planes ensure the scene is rendered in its entirety (the cubeCamera\n\t * is placed at the origin).\n\t */\n\tfromScene( scene, sigma = 0, near = 0.1, far = 100 ) {\n\n\t\t_oldTarget = this._renderer.getRenderTarget();\n\t\t_oldActiveCubeFace = this._renderer.getActiveCubeFace();\n\t\t_oldActiveMipmapLevel = this._renderer.getActiveMipmapLevel();\n\t\t_oldXrEnabled = this._renderer.xr.enabled;\n\n\t\tthis._renderer.xr.enabled = false;\n\n\t\tthis._setSize( 256 );\n\n\t\tconst cubeUVRenderTarget = this._allocateTargets();\n\t\tcubeUVRenderTarget.depthBuffer = true;\n\n\t\tthis._sceneToCubeUV( scene, near, far, cubeUVRenderTarget );\n\n\t\tif ( sigma > 0 ) {\n\n\t\t\tthis._blur( cubeUVRenderTarget, 0, 0, sigma );\n\n\t\t}\n\n\t\tthis._applyPMREM( cubeUVRenderTarget );\n\t\tthis._cleanup( cubeUVRenderTarget );\n\n\t\treturn cubeUVRenderTarget;\n\n\t}\n\n\t/**\n\t * Generates a PMREM from an equirectangular texture, which can be either LDR\n\t * or HDR. The ideal input image size is 1k (1024 x 512),\n\t * as this matches best with the 256 x 256 cubemap output.\n\t * The smallest supported equirectangular image size is 64 x 32.\n\t */\n\tfromEquirectangular( equirectangular, renderTarget = null ) {\n\n\t\treturn this._fromTexture( equirectangular, renderTarget );\n\n\t}\n\n\t/**\n\t * Generates a PMREM from an cubemap texture, which can be either LDR\n\t * or HDR. The ideal input cube size is 256 x 256,\n\t * as this matches best with the 256 x 256 cubemap output.\n\t * The smallest supported cube size is 16 x 16.\n\t */\n\tfromCubemap( cubemap, renderTarget = null ) {\n\n\t\treturn this._fromTexture( cubemap, renderTarget );\n\n\t}\n\n\t/**\n\t * Pre-compiles the cubemap shader. You can get faster start-up by invoking this method during\n\t * your texture's network fetch for increased concurrency.\n\t */\n\tcompileCubemapShader() {\n\n\t\tif ( this._cubemapMaterial === null ) {\n\n\t\t\tthis._cubemapMaterial = _getCubemapMaterial();\n\t\t\tthis._compileMaterial( this._cubemapMaterial );\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Pre-compiles the equirectangular shader. You can get faster start-up by invoking this method during\n\t * your texture's network fetch for increased concurrency.\n\t */\n\tcompileEquirectangularShader() {\n\n\t\tif ( this._equirectMaterial === null ) {\n\n\t\t\tthis._equirectMaterial = _getEquirectMaterial();\n\t\t\tthis._compileMaterial( this._equirectMaterial );\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Disposes of the PMREMGenerator's internal memory. Note that PMREMGenerator is a static class,\n\t * so you should not need more than one PMREMGenerator object. If you do, calling dispose() on\n\t * one of them will cause any others to also become unusable.\n\t */\n\tdispose() {\n\n\t\tthis._dispose();\n\n\t\tif ( this._cubemapMaterial !== null ) this._cubemapMaterial.dispose();\n\t\tif ( this._equirectMaterial !== null ) this._equirectMaterial.dispose();\n\n\t}\n\n\t// private interface\n\n\t_setSize( cubeSize ) {\n\n\t\tthis._lodMax = Math.floor( Math.log2( cubeSize ) );\n\t\tthis._cubeSize = Math.pow( 2, this._lodMax );\n\n\t}\n\n\t_dispose() {\n\n\t\tif ( this._blurMaterial !== null ) this._blurMaterial.dispose();\n\n\t\tif ( this._pingPongRenderTarget !== null ) this._pingPongRenderTarget.dispose();\n\n\t\tfor ( let i = 0; i < this._lodPlanes.length; i ++ ) {\n\n\t\t\tthis._lodPlanes[ i ].dispose();\n\n\t\t}\n\n\t}\n\n\t_cleanup( outputTarget ) {\n\n\t\tthis._renderer.setRenderTarget( _oldTarget, _oldActiveCubeFace, _oldActiveMipmapLevel );\n\t\tthis._renderer.xr.enabled = _oldXrEnabled;\n\n\t\toutputTarget.scissorTest = false;\n\t\t_setViewport( outputTarget, 0, 0, outputTarget.width, outputTarget.height );\n\n\t}\n\n\t_fromTexture( texture, renderTarget ) {\n\n\t\tif ( texture.mapping === CubeReflectionMapping || texture.mapping === CubeRefractionMapping ) {\n\n\t\t\tthis._setSize( texture.image.length === 0 ? 16 : ( texture.image[ 0 ].width || texture.image[ 0 ].image.width ) );\n\n\t\t} else { // Equirectangular\n\n\t\t\tthis._setSize( texture.image.width / 4 );\n\n\t\t}\n\n\t\t_oldTarget = this._renderer.getRenderTarget();\n\t\t_oldActiveCubeFace = this._renderer.getActiveCubeFace();\n\t\t_oldActiveMipmapLevel = this._renderer.getActiveMipmapLevel();\n\t\t_oldXrEnabled = this._renderer.xr.enabled;\n\n\t\tthis._renderer.xr.enabled = false;\n\n\t\tconst cubeUVRenderTarget = renderTarget || this._allocateTargets();\n\t\tthis._textureToCubeUV( texture, cubeUVRenderTarget );\n\t\tthis._applyPMREM( cubeUVRenderTarget );\n\t\tthis._cleanup( cubeUVRenderTarget );\n\n\t\treturn cubeUVRenderTarget;\n\n\t}\n\n\t_allocateTargets() {\n\n\t\tconst width = 3 * Math.max( this._cubeSize, 16 * 7 );\n\t\tconst height = 4 * this._cubeSize;\n\n\t\tconst params = {\n\t\t\tmagFilter: LinearFilter,\n\t\t\tminFilter: LinearFilter,\n\t\t\tgenerateMipmaps: false,\n\t\t\ttype: HalfFloatType,\n\t\t\tformat: RGBAFormat,\n\t\t\tcolorSpace: LinearSRGBColorSpace,\n\t\t\tdepthBuffer: false\n\t\t};\n\n\t\tconst cubeUVRenderTarget = _createRenderTarget( width, height, params );\n\n\t\tif ( this._pingPongRenderTarget === null || this._pingPongRenderTarget.width !== width || this._pingPongRenderTarget.height !== height ) {\n\n\t\t\tif ( this._pingPongRenderTarget !== null ) {\n\n\t\t\t\tthis._dispose();\n\n\t\t\t}\n\n\t\t\tthis._pingPongRenderTarget = _createRenderTarget( width, height, params );\n\n\t\t\tconst { _lodMax } = this;\n\t\t\t( { sizeLods: this._sizeLods, lodPlanes: this._lodPlanes, sigmas: this._sigmas } = _createPlanes( _lodMax ) );\n\n\t\t\tthis._blurMaterial = _getBlurShader( _lodMax, width, height );\n\n\t\t}\n\n\t\treturn cubeUVRenderTarget;\n\n\t}\n\n\t_compileMaterial( material ) {\n\n\t\tconst tmpMesh = new Mesh( this._lodPlanes[ 0 ], material );\n\t\tthis._renderer.compile( tmpMesh, _flatCamera );\n\n\t}\n\n\t_sceneToCubeUV( scene, near, far, cubeUVRenderTarget ) {\n\n\t\tconst fov = 90;\n\t\tconst aspect = 1;\n\t\tconst cubeCamera = new PerspectiveCamera( fov, aspect, near, far );\n\t\tconst upSign = [ 1, - 1, 1, 1, 1, 1 ];\n\t\tconst forwardSign = [ 1, 1, 1, - 1, - 1, - 1 ];\n\t\tconst renderer = this._renderer;\n\n\t\tconst originalAutoClear = renderer.autoClear;\n\t\tconst toneMapping = renderer.toneMapping;\n\t\trenderer.getClearColor( _clearColor );\n\n\t\trenderer.toneMapping = NoToneMapping;\n\t\trenderer.autoClear = false;\n\n\t\tconst backgroundMaterial = new MeshBasicMaterial( {\n\t\t\tname: 'PMREM.Background',\n\t\t\tside: BackSide,\n\t\t\tdepthWrite: false,\n\t\t\tdepthTest: false,\n\t\t} );\n\n\t\tconst backgroundBox = new Mesh( new BoxGeometry(), backgroundMaterial );\n\n\t\tlet useSolidColor = false;\n\t\tconst background = scene.background;\n\n\t\tif ( background ) {\n\n\t\t\tif ( background.isColor ) {\n\n\t\t\t\tbackgroundMaterial.color.copy( background );\n\t\t\t\tscene.background = null;\n\t\t\t\tuseSolidColor = true;\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tbackgroundMaterial.color.copy( _clearColor );\n\t\t\tuseSolidColor = true;\n\n\t\t}\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tconst col = i % 3;\n\n\t\t\tif ( col === 0 ) {\n\n\t\t\t\tcubeCamera.up.set( 0, upSign[ i ], 0 );\n\t\t\t\tcubeCamera.lookAt( forwardSign[ i ], 0, 0 );\n\n\t\t\t} else if ( col === 1 ) {\n\n\t\t\t\tcubeCamera.up.set( 0, 0, upSign[ i ] );\n\t\t\t\tcubeCamera.lookAt( 0, forwardSign[ i ], 0 );\n\n\t\t\t} else {\n\n\t\t\t\tcubeCamera.up.set( 0, upSign[ i ], 0 );\n\t\t\t\tcubeCamera.lookAt( 0, 0, forwardSign[ i ] );\n\n\t\t\t}\n\n\t\t\tconst size = this._cubeSize;\n\n\t\t\t_setViewport( cubeUVRenderTarget, col * size, i > 2 ? size : 0, size, size );\n\n\t\t\trenderer.setRenderTarget( cubeUVRenderTarget );\n\n\t\t\tif ( useSolidColor ) {\n\n\t\t\t\trenderer.render( backgroundBox, cubeCamera );\n\n\t\t\t}\n\n\t\t\trenderer.render( scene, cubeCamera );\n\n\t\t}\n\n\t\tbackgroundBox.geometry.dispose();\n\t\tbackgroundBox.material.dispose();\n\n\t\trenderer.toneMapping = toneMapping;\n\t\trenderer.autoClear = originalAutoClear;\n\t\tscene.background = background;\n\n\t}\n\n\t_textureToCubeUV( texture, cubeUVRenderTarget ) {\n\n\t\tconst renderer = this._renderer;\n\n\t\tconst isCubeTexture = ( texture.mapping === CubeReflectionMapping || texture.mapping === CubeRefractionMapping );\n\n\t\tif ( isCubeTexture ) {\n\n\t\t\tif ( this._cubemapMaterial === null ) {\n\n\t\t\t\tthis._cubemapMaterial = _getCubemapMaterial();\n\n\t\t\t}\n\n\t\t\tthis._cubemapMaterial.uniforms.flipEnvMap.value = ( texture.isRenderTargetTexture === false ) ? - 1 : 1;\n\n\t\t} else {\n\n\t\t\tif ( this._equirectMaterial === null ) {\n\n\t\t\t\tthis._equirectMaterial = _getEquirectMaterial();\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst material = isCubeTexture ? this._cubemapMaterial : this._equirectMaterial;\n\t\tconst mesh = new Mesh( this._lodPlanes[ 0 ], material );\n\n\t\tconst uniforms = material.uniforms;\n\n\t\tuniforms[ 'envMap' ].value = texture;\n\n\t\tconst size = this._cubeSize;\n\n\t\t_setViewport( cubeUVRenderTarget, 0, 0, 3 * size, 2 * size );\n\n\t\trenderer.setRenderTarget( cubeUVRenderTarget );\n\t\trenderer.render( mesh, _flatCamera );\n\n\t}\n\n\t_applyPMREM( cubeUVRenderTarget ) {\n\n\t\tconst renderer = this._renderer;\n\t\tconst autoClear = renderer.autoClear;\n\t\trenderer.autoClear = false;\n\t\tconst n = this._lodPlanes.length;\n\n\t\tfor ( let i = 1; i < n; i ++ ) {\n\n\t\t\tconst sigma = Math.sqrt( this._sigmas[ i ] * this._sigmas[ i ] - this._sigmas[ i - 1 ] * this._sigmas[ i - 1 ] );\n\n\t\t\tconst poleAxis = _axisDirections[ ( n - i - 1 ) % _axisDirections.length ];\n\n\t\t\tthis._blur( cubeUVRenderTarget, i - 1, i, sigma, poleAxis );\n\n\t\t}\n\n\t\trenderer.autoClear = autoClear;\n\n\t}\n\n\t/**\n\t * This is a two-pass Gaussian blur for a cubemap. Normally this is done\n\t * vertically and horizontally, but this breaks down on a cube. Here we apply\n\t * the blur latitudinally (around the poles), and then longitudinally (towards\n\t * the poles) to approximate the orthogonally-separable blur. It is least\n\t * accurate at the poles, but still does a decent job.\n\t */\n\t_blur( cubeUVRenderTarget, lodIn, lodOut, sigma, poleAxis ) {\n\n\t\tconst pingPongRenderTarget = this._pingPongRenderTarget;\n\n\t\tthis._halfBlur(\n\t\t\tcubeUVRenderTarget,\n\t\t\tpingPongRenderTarget,\n\t\t\tlodIn,\n\t\t\tlodOut,\n\t\t\tsigma,\n\t\t\t'latitudinal',\n\t\t\tpoleAxis );\n\n\t\tthis._halfBlur(\n\t\t\tpingPongRenderTarget,\n\t\t\tcubeUVRenderTarget,\n\t\t\tlodOut,\n\t\t\tlodOut,\n\t\t\tsigma,\n\t\t\t'longitudinal',\n\t\t\tpoleAxis );\n\n\t}\n\n\t_halfBlur( targetIn, targetOut, lodIn, lodOut, sigmaRadians, direction, poleAxis ) {\n\n\t\tconst renderer = this._renderer;\n\t\tconst blurMaterial = this._blurMaterial;\n\n\t\tif ( direction !== 'latitudinal' && direction !== 'longitudinal' ) {\n\n\t\t\tconsole.error(\n\t\t\t\t'blur direction must be either latitudinal or longitudinal!' );\n\n\t\t}\n\n\t\t// Number of standard deviations at which to cut off the discrete approximation.\n\t\tconst STANDARD_DEVIATIONS = 3;\n\n\t\tconst blurMesh = new Mesh( this._lodPlanes[ lodOut ], blurMaterial );\n\t\tconst blurUniforms = blurMaterial.uniforms;\n\n\t\tconst pixels = this._sizeLods[ lodIn ] - 1;\n\t\tconst radiansPerPixel = isFinite( sigmaRadians ) ? Math.PI / ( 2 * pixels ) : 2 * Math.PI / ( 2 * MAX_SAMPLES - 1 );\n\t\tconst sigmaPixels = sigmaRadians / radiansPerPixel;\n\t\tconst samples = isFinite( sigmaRadians ) ? 1 + Math.floor( STANDARD_DEVIATIONS * sigmaPixels ) : MAX_SAMPLES;\n\n\t\tif ( samples > MAX_SAMPLES ) {\n\n\t\t\tconsole.warn( `sigmaRadians, ${\n\t\t\t\tsigmaRadians}, is too large and will clip, as it requested ${\n\t\t\t\tsamples} samples when the maximum is set to ${MAX_SAMPLES}` );\n\n\t\t}\n\n\t\tconst weights = [];\n\t\tlet sum = 0;\n\n\t\tfor ( let i = 0; i < MAX_SAMPLES; ++ i ) {\n\n\t\t\tconst x = i / sigmaPixels;\n\t\t\tconst weight = Math.exp( - x * x / 2 );\n\t\t\tweights.push( weight );\n\n\t\t\tif ( i === 0 ) {\n\n\t\t\t\tsum += weight;\n\n\t\t\t} else if ( i < samples ) {\n\n\t\t\t\tsum += 2 * weight;\n\n\t\t\t}\n\n\t\t}\n\n\t\tfor ( let i = 0; i < weights.length; i ++ ) {\n\n\t\t\tweights[ i ] = weights[ i ] / sum;\n\n\t\t}\n\n\t\tblurUniforms[ 'envMap' ].value = targetIn.texture;\n\t\tblurUniforms[ 'samples' ].value = samples;\n\t\tblurUniforms[ 'weights' ].value = weights;\n\t\tblurUniforms[ 'latitudinal' ].value = direction === 'latitudinal';\n\n\t\tif ( poleAxis ) {\n\n\t\t\tblurUniforms[ 'poleAxis' ].value = poleAxis;\n\n\t\t}\n\n\t\tconst { _lodMax } = this;\n\t\tblurUniforms[ 'dTheta' ].value = radiansPerPixel;\n\t\tblurUniforms[ 'mipInt' ].value = _lodMax - lodIn;\n\n\t\tconst outputSize = this._sizeLods[ lodOut ];\n\t\tconst x = 3 * outputSize * ( lodOut > _lodMax - LOD_MIN ? lodOut - _lodMax + LOD_MIN : 0 );\n\t\tconst y = 4 * ( this._cubeSize - outputSize );\n\n\t\t_setViewport( targetOut, x, y, 3 * outputSize, 2 * outputSize );\n\t\trenderer.setRenderTarget( targetOut );\n\t\trenderer.render( blurMesh, _flatCamera );\n\n\t}\n\n}\n\n\n\nfunction _createPlanes( lodMax ) {\n\n\tconst lodPlanes = [];\n\tconst sizeLods = [];\n\tconst sigmas = [];\n\n\tlet lod = lodMax;\n\n\tconst totalLods = lodMax - LOD_MIN + 1 + EXTRA_LOD_SIGMA.length;\n\n\tfor ( let i = 0; i < totalLods; i ++ ) {\n\n\t\tconst sizeLod = Math.pow( 2, lod );\n\t\tsizeLods.push( sizeLod );\n\t\tlet sigma = 1.0 / sizeLod;\n\n\t\tif ( i > lodMax - LOD_MIN ) {\n\n\t\t\tsigma = EXTRA_LOD_SIGMA[ i - lodMax + LOD_MIN - 1 ];\n\n\t\t} else if ( i === 0 ) {\n\n\t\t\tsigma = 0;\n\n\t\t}\n\n\t\tsigmas.push( sigma );\n\n\t\tconst texelSize = 1.0 / ( sizeLod - 2 );\n\t\tconst min = - texelSize;\n\t\tconst max = 1 + texelSize;\n\t\tconst uv1 = [ min, min, max, min, max, max, min, min, max, max, min, max ];\n\n\t\tconst cubeFaces = 6;\n\t\tconst vertices = 6;\n\t\tconst positionSize = 3;\n\t\tconst uvSize = 2;\n\t\tconst faceIndexSize = 1;\n\n\t\tconst position = new Float32Array( positionSize * vertices * cubeFaces );\n\t\tconst uv = new Float32Array( uvSize * vertices * cubeFaces );\n\t\tconst faceIndex = new Float32Array( faceIndexSize * vertices * cubeFaces );\n\n\t\tfor ( let face = 0; face < cubeFaces; face ++ ) {\n\n\t\t\tconst x = ( face % 3 ) * 2 / 3 - 1;\n\t\t\tconst y = face > 2 ? 0 : - 1;\n\t\t\tconst coordinates = [\n\t\t\t\tx, y, 0,\n\t\t\t\tx + 2 / 3, y, 0,\n\t\t\t\tx + 2 / 3, y + 1, 0,\n\t\t\t\tx, y, 0,\n\t\t\t\tx + 2 / 3, y + 1, 0,\n\t\t\t\tx, y + 1, 0\n\t\t\t];\n\t\t\tposition.set( coordinates, positionSize * vertices * face );\n\t\t\tuv.set( uv1, uvSize * vertices * face );\n\t\t\tconst fill = [ face, face, face, face, face, face ];\n\t\t\tfaceIndex.set( fill, faceIndexSize * vertices * face );\n\n\t\t}\n\n\t\tconst planes = new BufferGeometry();\n\t\tplanes.setAttribute( 'position', new BufferAttribute( position, positionSize ) );\n\t\tplanes.setAttribute( 'uv', new BufferAttribute( uv, uvSize ) );\n\t\tplanes.setAttribute( 'faceIndex', new BufferAttribute( faceIndex, faceIndexSize ) );\n\t\tlodPlanes.push( planes );\n\n\t\tif ( lod > LOD_MIN ) {\n\n\t\t\tlod --;\n\n\t\t}\n\n\t}\n\n\treturn { lodPlanes, sizeLods, sigmas };\n\n}\n\nfunction _createRenderTarget( width, height, params ) {\n\n\tconst cubeUVRenderTarget = new WebGLRenderTarget( width, height, params );\n\tcubeUVRenderTarget.texture.mapping = CubeUVReflectionMapping;\n\tcubeUVRenderTarget.texture.name = 'PMREM.cubeUv';\n\tcubeUVRenderTarget.scissorTest = true;\n\treturn cubeUVRenderTarget;\n\n}\n\nfunction _setViewport( target, x, y, width, height ) {\n\n\ttarget.viewport.set( x, y, width, height );\n\ttarget.scissor.set( x, y, width, height );\n\n}\n\nfunction _getBlurShader( lodMax, width, height ) {\n\n\tconst weights = new Float32Array( MAX_SAMPLES );\n\tconst poleAxis = new Vector3( 0, 1, 0 );\n\tconst shaderMaterial = new ShaderMaterial( {\n\n\t\tname: 'SphericalGaussianBlur',\n\n\t\tdefines: {\n\t\t\t'n': MAX_SAMPLES,\n\t\t\t'CUBEUV_TEXEL_WIDTH': 1.0 / width,\n\t\t\t'CUBEUV_TEXEL_HEIGHT': 1.0 / height,\n\t\t\t'CUBEUV_MAX_MIP': `${lodMax}.0`,\n\t\t},\n\n\t\tuniforms: {\n\t\t\t'envMap': { value: null },\n\t\t\t'samples': { value: 1 },\n\t\t\t'weights': { value: weights },\n\t\t\t'latitudinal': { value: false },\n\t\t\t'dTheta': { value: 0 },\n\t\t\t'mipInt': { value: 0 },\n\t\t\t'poleAxis': { value: poleAxis }\n\t\t},\n\n\t\tvertexShader: _getCommonVertexShader(),\n\n\t\tfragmentShader: /* glsl */`\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform int samples;\n\t\t\tuniform float weights[ n ];\n\t\t\tuniform bool latitudinal;\n\t\t\tuniform float dTheta;\n\t\t\tuniform float mipInt;\n\t\t\tuniform vec3 poleAxis;\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include \n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t// Rodrigues' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t`,\n\n\t\tblending: NoBlending,\n\t\tdepthTest: false,\n\t\tdepthWrite: false\n\n\t} );\n\n\treturn shaderMaterial;\n\n}\n\nfunction _getEquirectMaterial() {\n\n\treturn new ShaderMaterial( {\n\n\t\tname: 'EquirectangularToCubeUV',\n\n\t\tuniforms: {\n\t\t\t'envMap': { value: null }\n\t\t},\n\n\t\tvertexShader: _getCommonVertexShader(),\n\n\t\tfragmentShader: /* glsl */`\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\n\t\t\t#include \n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tgl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\n\n\t\t\t}\n\t\t`,\n\n\t\tblending: NoBlending,\n\t\tdepthTest: false,\n\t\tdepthWrite: false\n\n\t} );\n\n}\n\nfunction _getCubemapMaterial() {\n\n\treturn new ShaderMaterial( {\n\n\t\tname: 'CubemapToCubeUV',\n\n\t\tuniforms: {\n\t\t\t'envMap': { value: null },\n\t\t\t'flipEnvMap': { value: - 1 }\n\t\t},\n\n\t\tvertexShader: _getCommonVertexShader(),\n\n\t\tfragmentShader: /* glsl */`\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tuniform float flipEnvMap;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );\n\n\t\t\t}\n\t\t`,\n\n\t\tblending: NoBlending,\n\t\tdepthTest: false,\n\t\tdepthWrite: false\n\n\t} );\n\n}\n\nfunction _getCommonVertexShader() {\n\n\treturn /* glsl */`\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t`;\n\n}\n\nfunction WebGLCubeUVMaps( renderer ) {\n\n\tlet cubeUVmaps = new WeakMap();\n\n\tlet pmremGenerator = null;\n\n\tfunction get( texture ) {\n\n\t\tif ( texture && texture.isTexture ) {\n\n\t\t\tconst mapping = texture.mapping;\n\n\t\t\tconst isEquirectMap = ( mapping === EquirectangularReflectionMapping || mapping === EquirectangularRefractionMapping );\n\t\t\tconst isCubeMap = ( mapping === CubeReflectionMapping || mapping === CubeRefractionMapping );\n\n\t\t\t// equirect/cube map to cubeUV conversion\n\n\t\t\tif ( isEquirectMap || isCubeMap ) {\n\n\t\t\t\tlet renderTarget = cubeUVmaps.get( texture );\n\n\t\t\t\tconst currentPMREMVersion = renderTarget !== undefined ? renderTarget.texture.pmremVersion : 0;\n\n\t\t\t\tif ( texture.isRenderTargetTexture && texture.pmremVersion !== currentPMREMVersion ) {\n\n\t\t\t\t\tif ( pmremGenerator === null ) pmremGenerator = new PMREMGenerator( renderer );\n\n\t\t\t\t\trenderTarget = isEquirectMap ? pmremGenerator.fromEquirectangular( texture, renderTarget ) : pmremGenerator.fromCubemap( texture, renderTarget );\n\t\t\t\t\trenderTarget.texture.pmremVersion = texture.pmremVersion;\n\n\t\t\t\t\tcubeUVmaps.set( texture, renderTarget );\n\n\t\t\t\t\treturn renderTarget.texture;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( renderTarget !== undefined ) {\n\n\t\t\t\t\t\treturn renderTarget.texture;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tconst image = texture.image;\n\n\t\t\t\t\t\tif ( ( isEquirectMap && image && image.height > 0 ) || ( isCubeMap && image && isCubeTextureComplete( image ) ) ) {\n\n\t\t\t\t\t\t\tif ( pmremGenerator === null ) pmremGenerator = new PMREMGenerator( renderer );\n\n\t\t\t\t\t\t\trenderTarget = isEquirectMap ? pmremGenerator.fromEquirectangular( texture ) : pmremGenerator.fromCubemap( texture );\n\t\t\t\t\t\t\trenderTarget.texture.pmremVersion = texture.pmremVersion;\n\n\t\t\t\t\t\t\tcubeUVmaps.set( texture, renderTarget );\n\n\t\t\t\t\t\t\ttexture.addEventListener( 'dispose', onTextureDispose );\n\n\t\t\t\t\t\t\treturn renderTarget.texture;\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// image not yet ready. try the conversion next frame\n\n\t\t\t\t\t\t\treturn null;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn texture;\n\n\t}\n\n\tfunction isCubeTextureComplete( image ) {\n\n\t\tlet count = 0;\n\t\tconst length = 6;\n\n\t\tfor ( let i = 0; i < length; i ++ ) {\n\n\t\t\tif ( image[ i ] !== undefined ) count ++;\n\n\t\t}\n\n\t\treturn count === length;\n\n\n\t}\n\n\tfunction onTextureDispose( event ) {\n\n\t\tconst texture = event.target;\n\n\t\ttexture.removeEventListener( 'dispose', onTextureDispose );\n\n\t\tconst cubemapUV = cubeUVmaps.get( texture );\n\n\t\tif ( cubemapUV !== undefined ) {\n\n\t\t\tcubeUVmaps.delete( texture );\n\t\t\tcubemapUV.dispose();\n\n\t\t}\n\n\t}\n\n\tfunction dispose() {\n\n\t\tcubeUVmaps = new WeakMap();\n\n\t\tif ( pmremGenerator !== null ) {\n\n\t\t\tpmremGenerator.dispose();\n\t\t\tpmremGenerator = null;\n\n\t\t}\n\n\t}\n\n\treturn {\n\t\tget: get,\n\t\tdispose: dispose\n\t};\n\n}\n\nfunction WebGLExtensions( gl ) {\n\n\tconst extensions = {};\n\n\tfunction getExtension( name ) {\n\n\t\tif ( extensions[ name ] !== undefined ) {\n\n\t\t\treturn extensions[ name ];\n\n\t\t}\n\n\t\tlet extension;\n\n\t\tswitch ( name ) {\n\n\t\t\tcase 'WEBGL_depth_texture':\n\t\t\t\textension = gl.getExtension( 'WEBGL_depth_texture' ) || gl.getExtension( 'MOZ_WEBGL_depth_texture' ) || gl.getExtension( 'WEBKIT_WEBGL_depth_texture' );\n\t\t\t\tbreak;\n\n\t\t\tcase 'EXT_texture_filter_anisotropic':\n\t\t\t\textension = gl.getExtension( 'EXT_texture_filter_anisotropic' ) || gl.getExtension( 'MOZ_EXT_texture_filter_anisotropic' ) || gl.getExtension( 'WEBKIT_EXT_texture_filter_anisotropic' );\n\t\t\t\tbreak;\n\n\t\t\tcase 'WEBGL_compressed_texture_s3tc':\n\t\t\t\textension = gl.getExtension( 'WEBGL_compressed_texture_s3tc' ) || gl.getExtension( 'MOZ_WEBGL_compressed_texture_s3tc' ) || gl.getExtension( 'WEBKIT_WEBGL_compressed_texture_s3tc' );\n\t\t\t\tbreak;\n\n\t\t\tcase 'WEBGL_compressed_texture_pvrtc':\n\t\t\t\textension = gl.getExtension( 'WEBGL_compressed_texture_pvrtc' ) || gl.getExtension( 'WEBKIT_WEBGL_compressed_texture_pvrtc' );\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\textension = gl.getExtension( name );\n\n\t\t}\n\n\t\textensions[ name ] = extension;\n\n\t\treturn extension;\n\n\t}\n\n\treturn {\n\n\t\thas: function ( name ) {\n\n\t\t\treturn getExtension( name ) !== null;\n\n\t\t},\n\n\t\tinit: function () {\n\n\t\t\tgetExtension( 'EXT_color_buffer_float' );\n\t\t\tgetExtension( 'WEBGL_clip_cull_distance' );\n\t\t\tgetExtension( 'OES_texture_float_linear' );\n\t\t\tgetExtension( 'EXT_color_buffer_half_float' );\n\t\t\tgetExtension( 'WEBGL_multisampled_render_to_texture' );\n\t\t\tgetExtension( 'WEBGL_render_shared_exponent' );\n\n\t\t},\n\n\t\tget: function ( name ) {\n\n\t\t\tconst extension = getExtension( name );\n\n\t\t\tif ( extension === null ) {\n\n\t\t\t\twarnOnce( 'THREE.WebGLRenderer: ' + name + ' extension not supported.' );\n\n\t\t\t}\n\n\t\t\treturn extension;\n\n\t\t}\n\n\t};\n\n}\n\nfunction WebGLGeometries( gl, attributes, info, bindingStates ) {\n\n\tconst geometries = {};\n\tconst wireframeAttributes = new WeakMap();\n\n\tfunction onGeometryDispose( event ) {\n\n\t\tconst geometry = event.target;\n\n\t\tif ( geometry.index !== null ) {\n\n\t\t\tattributes.remove( geometry.index );\n\n\t\t}\n\n\t\tfor ( const name in geometry.attributes ) {\n\n\t\t\tattributes.remove( geometry.attributes[ name ] );\n\n\t\t}\n\n\t\tfor ( const name in geometry.morphAttributes ) {\n\n\t\t\tconst array = geometry.morphAttributes[ name ];\n\n\t\t\tfor ( let i = 0, l = array.length; i < l; i ++ ) {\n\n\t\t\t\tattributes.remove( array[ i ] );\n\n\t\t\t}\n\n\t\t}\n\n\t\tgeometry.removeEventListener( 'dispose', onGeometryDispose );\n\n\t\tdelete geometries[ geometry.id ];\n\n\t\tconst attribute = wireframeAttributes.get( geometry );\n\n\t\tif ( attribute ) {\n\n\t\t\tattributes.remove( attribute );\n\t\t\twireframeAttributes.delete( geometry );\n\n\t\t}\n\n\t\tbindingStates.releaseStatesOfGeometry( geometry );\n\n\t\tif ( geometry.isInstancedBufferGeometry === true ) {\n\n\t\t\tdelete geometry._maxInstanceCount;\n\n\t\t}\n\n\t\t//\n\n\t\tinfo.memory.geometries --;\n\n\t}\n\n\tfunction get( object, geometry ) {\n\n\t\tif ( geometries[ geometry.id ] === true ) return geometry;\n\n\t\tgeometry.addEventListener( 'dispose', onGeometryDispose );\n\n\t\tgeometries[ geometry.id ] = true;\n\n\t\tinfo.memory.geometries ++;\n\n\t\treturn geometry;\n\n\t}\n\n\tfunction update( geometry ) {\n\n\t\tconst geometryAttributes = geometry.attributes;\n\n\t\t// Updating index buffer in VAO now. See WebGLBindingStates.\n\n\t\tfor ( const name in geometryAttributes ) {\n\n\t\t\tattributes.update( geometryAttributes[ name ], gl.ARRAY_BUFFER );\n\n\t\t}\n\n\t\t// morph targets\n\n\t\tconst morphAttributes = geometry.morphAttributes;\n\n\t\tfor ( const name in morphAttributes ) {\n\n\t\t\tconst array = morphAttributes[ name ];\n\n\t\t\tfor ( let i = 0, l = array.length; i < l; i ++ ) {\n\n\t\t\t\tattributes.update( array[ i ], gl.ARRAY_BUFFER );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tfunction updateWireframeAttribute( geometry ) {\n\n\t\tconst indices = [];\n\n\t\tconst geometryIndex = geometry.index;\n\t\tconst geometryPosition = geometry.attributes.position;\n\t\tlet version = 0;\n\n\t\tif ( geometryIndex !== null ) {\n\n\t\t\tconst array = geometryIndex.array;\n\t\t\tversion = geometryIndex.version;\n\n\t\t\tfor ( let i = 0, l = array.length; i < l; i += 3 ) {\n\n\t\t\t\tconst a = array[ i + 0 ];\n\t\t\t\tconst b = array[ i + 1 ];\n\t\t\t\tconst c = array[ i + 2 ];\n\n\t\t\t\tindices.push( a, b, b, c, c, a );\n\n\t\t\t}\n\n\t\t} else if ( geometryPosition !== undefined ) {\n\n\t\t\tconst array = geometryPosition.array;\n\t\t\tversion = geometryPosition.version;\n\n\t\t\tfor ( let i = 0, l = ( array.length / 3 ) - 1; i < l; i += 3 ) {\n\n\t\t\t\tconst a = i + 0;\n\t\t\t\tconst b = i + 1;\n\t\t\t\tconst c = i + 2;\n\n\t\t\t\tindices.push( a, b, b, c, c, a );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tconst attribute = new ( arrayNeedsUint32( indices ) ? Uint32BufferAttribute : Uint16BufferAttribute )( indices, 1 );\n\t\tattribute.version = version;\n\n\t\t// Updating index buffer in VAO now. See WebGLBindingStates\n\n\t\t//\n\n\t\tconst previousAttribute = wireframeAttributes.get( geometry );\n\n\t\tif ( previousAttribute ) attributes.remove( previousAttribute );\n\n\t\t//\n\n\t\twireframeAttributes.set( geometry, attribute );\n\n\t}\n\n\tfunction getWireframeAttribute( geometry ) {\n\n\t\tconst currentAttribute = wireframeAttributes.get( geometry );\n\n\t\tif ( currentAttribute ) {\n\n\t\t\tconst geometryIndex = geometry.index;\n\n\t\t\tif ( geometryIndex !== null ) {\n\n\t\t\t\t// if the attribute is obsolete, create a new one\n\n\t\t\t\tif ( currentAttribute.version < geometryIndex.version ) {\n\n\t\t\t\t\tupdateWireframeAttribute( geometry );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tupdateWireframeAttribute( geometry );\n\n\t\t}\n\n\t\treturn wireframeAttributes.get( geometry );\n\n\t}\n\n\treturn {\n\n\t\tget: get,\n\t\tupdate: update,\n\n\t\tgetWireframeAttribute: getWireframeAttribute\n\n\t};\n\n}\n\nfunction WebGLIndexedBufferRenderer( gl, extensions, info ) {\n\n\tlet mode;\n\n\tfunction setMode( value ) {\n\n\t\tmode = value;\n\n\t}\n\n\tlet type, bytesPerElement;\n\n\tfunction setIndex( value ) {\n\n\t\ttype = value.type;\n\t\tbytesPerElement = value.bytesPerElement;\n\n\t}\n\n\tfunction render( start, count ) {\n\n\t\tgl.drawElements( mode, count, type, start * bytesPerElement );\n\n\t\tinfo.update( count, mode, 1 );\n\n\t}\n\n\tfunction renderInstances( start, count, primcount ) {\n\n\t\tif ( primcount === 0 ) return;\n\n\t\tgl.drawElementsInstanced( mode, count, type, start * bytesPerElement, primcount );\n\n\t\tinfo.update( count, mode, primcount );\n\n\t}\n\n\tfunction renderMultiDraw( starts, counts, drawCount ) {\n\n\t\tif ( drawCount === 0 ) return;\n\n\t\tconst extension = extensions.get( 'WEBGL_multi_draw' );\n\t\textension.multiDrawElementsWEBGL( mode, counts, 0, type, starts, 0, drawCount );\n\n\t\tlet elementCount = 0;\n\t\tfor ( let i = 0; i < drawCount; i ++ ) {\n\n\t\t\telementCount += counts[ i ];\n\n\t\t}\n\n\t\tinfo.update( elementCount, mode, 1 );\n\n\n\t}\n\n\tfunction renderMultiDrawInstances( starts, counts, drawCount, primcount ) {\n\n\t\tif ( drawCount === 0 ) return;\n\n\t\tconst extension = extensions.get( 'WEBGL_multi_draw' );\n\n\t\tif ( extension === null ) {\n\n\t\t\tfor ( let i = 0; i < starts.length; i ++ ) {\n\n\t\t\t\trenderInstances( starts[ i ] / bytesPerElement, counts[ i ], primcount[ i ] );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\textension.multiDrawElementsInstancedWEBGL( mode, counts, 0, type, starts, 0, primcount, 0, drawCount );\n\n\t\t\tlet elementCount = 0;\n\t\t\tfor ( let i = 0; i < drawCount; i ++ ) {\n\n\t\t\t\telementCount += counts[ i ] * primcount[ i ];\n\n\t\t\t}\n\n\t\t\tinfo.update( elementCount, mode, 1 );\n\n\t\t}\n\n\t}\n\n\t//\n\n\tthis.setMode = setMode;\n\tthis.setIndex = setIndex;\n\tthis.render = render;\n\tthis.renderInstances = renderInstances;\n\tthis.renderMultiDraw = renderMultiDraw;\n\tthis.renderMultiDrawInstances = renderMultiDrawInstances;\n\n}\n\nfunction WebGLInfo( gl ) {\n\n\tconst memory = {\n\t\tgeometries: 0,\n\t\ttextures: 0\n\t};\n\n\tconst render = {\n\t\tframe: 0,\n\t\tcalls: 0,\n\t\ttriangles: 0,\n\t\tpoints: 0,\n\t\tlines: 0\n\t};\n\n\tfunction update( count, mode, instanceCount ) {\n\n\t\trender.calls ++;\n\n\t\tswitch ( mode ) {\n\n\t\t\tcase gl.TRIANGLES:\n\t\t\t\trender.triangles += instanceCount * ( count / 3 );\n\t\t\t\tbreak;\n\n\t\t\tcase gl.LINES:\n\t\t\t\trender.lines += instanceCount * ( count / 2 );\n\t\t\t\tbreak;\n\n\t\t\tcase gl.LINE_STRIP:\n\t\t\t\trender.lines += instanceCount * ( count - 1 );\n\t\t\t\tbreak;\n\n\t\t\tcase gl.LINE_LOOP:\n\t\t\t\trender.lines += instanceCount * count;\n\t\t\t\tbreak;\n\n\t\t\tcase gl.POINTS:\n\t\t\t\trender.points += instanceCount * count;\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tconsole.error( 'THREE.WebGLInfo: Unknown draw mode:', mode );\n\t\t\t\tbreak;\n\n\t\t}\n\n\t}\n\n\tfunction reset() {\n\n\t\trender.calls = 0;\n\t\trender.triangles = 0;\n\t\trender.points = 0;\n\t\trender.lines = 0;\n\n\t}\n\n\treturn {\n\t\tmemory: memory,\n\t\trender: render,\n\t\tprograms: null,\n\t\tautoReset: true,\n\t\treset: reset,\n\t\tupdate: update\n\t};\n\n}\n\nfunction WebGLMorphtargets( gl, capabilities, textures ) {\n\n\tconst morphTextures = new WeakMap();\n\tconst morph = new Vector4();\n\n\tfunction update( object, geometry, program ) {\n\n\t\tconst objectInfluences = object.morphTargetInfluences;\n\n\t\t// the following encodes morph targets into an array of data textures. Each layer represents a single morph target.\n\n\t\tconst morphAttribute = geometry.morphAttributes.position || geometry.morphAttributes.normal || geometry.morphAttributes.color;\n\t\tconst morphTargetsCount = ( morphAttribute !== undefined ) ? morphAttribute.length : 0;\n\n\t\tlet entry = morphTextures.get( geometry );\n\n\t\tif ( entry === undefined || entry.count !== morphTargetsCount ) {\n\n\t\t\tif ( entry !== undefined ) entry.texture.dispose();\n\n\t\t\tconst hasMorphPosition = geometry.morphAttributes.position !== undefined;\n\t\t\tconst hasMorphNormals = geometry.morphAttributes.normal !== undefined;\n\t\t\tconst hasMorphColors = geometry.morphAttributes.color !== undefined;\n\n\t\t\tconst morphTargets = geometry.morphAttributes.position || [];\n\t\t\tconst morphNormals = geometry.morphAttributes.normal || [];\n\t\t\tconst morphColors = geometry.morphAttributes.color || [];\n\n\t\t\tlet vertexDataCount = 0;\n\n\t\t\tif ( hasMorphPosition === true ) vertexDataCount = 1;\n\t\t\tif ( hasMorphNormals === true ) vertexDataCount = 2;\n\t\t\tif ( hasMorphColors === true ) vertexDataCount = 3;\n\n\t\t\tlet width = geometry.attributes.position.count * vertexDataCount;\n\t\t\tlet height = 1;\n\n\t\t\tif ( width > capabilities.maxTextureSize ) {\n\n\t\t\t\theight = Math.ceil( width / capabilities.maxTextureSize );\n\t\t\t\twidth = capabilities.maxTextureSize;\n\n\t\t\t}\n\n\t\t\tconst buffer = new Float32Array( width * height * 4 * morphTargetsCount );\n\n\t\t\tconst texture = new DataArrayTexture( buffer, width, height, morphTargetsCount );\n\t\t\ttexture.type = FloatType;\n\t\t\ttexture.needsUpdate = true;\n\n\t\t\t// fill buffer\n\n\t\t\tconst vertexDataStride = vertexDataCount * 4;\n\n\t\t\tfor ( let i = 0; i < morphTargetsCount; i ++ ) {\n\n\t\t\t\tconst morphTarget = morphTargets[ i ];\n\t\t\t\tconst morphNormal = morphNormals[ i ];\n\t\t\t\tconst morphColor = morphColors[ i ];\n\n\t\t\t\tconst offset = width * height * 4 * i;\n\n\t\t\t\tfor ( let j = 0; j < morphTarget.count; j ++ ) {\n\n\t\t\t\t\tconst stride = j * vertexDataStride;\n\n\t\t\t\t\tif ( hasMorphPosition === true ) {\n\n\t\t\t\t\t\tmorph.fromBufferAttribute( morphTarget, j );\n\n\t\t\t\t\t\tbuffer[ offset + stride + 0 ] = morph.x;\n\t\t\t\t\t\tbuffer[ offset + stride + 1 ] = morph.y;\n\t\t\t\t\t\tbuffer[ offset + stride + 2 ] = morph.z;\n\t\t\t\t\t\tbuffer[ offset + stride + 3 ] = 0;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( hasMorphNormals === true ) {\n\n\t\t\t\t\t\tmorph.fromBufferAttribute( morphNormal, j );\n\n\t\t\t\t\t\tbuffer[ offset + stride + 4 ] = morph.x;\n\t\t\t\t\t\tbuffer[ offset + stride + 5 ] = morph.y;\n\t\t\t\t\t\tbuffer[ offset + stride + 6 ] = morph.z;\n\t\t\t\t\t\tbuffer[ offset + stride + 7 ] = 0;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( hasMorphColors === true ) {\n\n\t\t\t\t\t\tmorph.fromBufferAttribute( morphColor, j );\n\n\t\t\t\t\t\tbuffer[ offset + stride + 8 ] = morph.x;\n\t\t\t\t\t\tbuffer[ offset + stride + 9 ] = morph.y;\n\t\t\t\t\t\tbuffer[ offset + stride + 10 ] = morph.z;\n\t\t\t\t\t\tbuffer[ offset + stride + 11 ] = ( morphColor.itemSize === 4 ) ? morph.w : 1;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tentry = {\n\t\t\t\tcount: morphTargetsCount,\n\t\t\t\ttexture: texture,\n\t\t\t\tsize: new Vector2( width, height )\n\t\t\t};\n\n\t\t\tmorphTextures.set( geometry, entry );\n\n\t\t\tfunction disposeTexture() {\n\n\t\t\t\ttexture.dispose();\n\n\t\t\t\tmorphTextures.delete( geometry );\n\n\t\t\t\tgeometry.removeEventListener( 'dispose', disposeTexture );\n\n\t\t\t}\n\n\t\t\tgeometry.addEventListener( 'dispose', disposeTexture );\n\n\t\t}\n\n\t\t//\n\t\tif ( object.isInstancedMesh === true && object.morphTexture !== null ) {\n\n\t\t\tprogram.getUniforms().setValue( gl, 'morphTexture', object.morphTexture, textures );\n\n\t\t} else {\n\n\t\t\tlet morphInfluencesSum = 0;\n\n\t\t\tfor ( let i = 0; i < objectInfluences.length; i ++ ) {\n\n\t\t\t\tmorphInfluencesSum += objectInfluences[ i ];\n\n\t\t\t}\n\n\t\t\tconst morphBaseInfluence = geometry.morphTargetsRelative ? 1 : 1 - morphInfluencesSum;\n\n\n\t\t\tprogram.getUniforms().setValue( gl, 'morphTargetBaseInfluence', morphBaseInfluence );\n\t\t\tprogram.getUniforms().setValue( gl, 'morphTargetInfluences', objectInfluences );\n\n\t\t}\n\n\t\tprogram.getUniforms().setValue( gl, 'morphTargetsTexture', entry.texture, textures );\n\t\tprogram.getUniforms().setValue( gl, 'morphTargetsTextureSize', entry.size );\n\n\t}\n\n\treturn {\n\n\t\tupdate: update\n\n\t};\n\n}\n\nfunction WebGLObjects( gl, geometries, attributes, info ) {\n\n\tlet updateMap = new WeakMap();\n\n\tfunction update( object ) {\n\n\t\tconst frame = info.render.frame;\n\n\t\tconst geometry = object.geometry;\n\t\tconst buffergeometry = geometries.get( object, geometry );\n\n\t\t// Update once per frame\n\n\t\tif ( updateMap.get( buffergeometry ) !== frame ) {\n\n\t\t\tgeometries.update( buffergeometry );\n\n\t\t\tupdateMap.set( buffergeometry, frame );\n\n\t\t}\n\n\t\tif ( object.isInstancedMesh ) {\n\n\t\t\tif ( object.hasEventListener( 'dispose', onInstancedMeshDispose ) === false ) {\n\n\t\t\t\tobject.addEventListener( 'dispose', onInstancedMeshDispose );\n\n\t\t\t}\n\n\t\t\tif ( updateMap.get( object ) !== frame ) {\n\n\t\t\t\tattributes.update( object.instanceMatrix, gl.ARRAY_BUFFER );\n\n\t\t\t\tif ( object.instanceColor !== null ) {\n\n\t\t\t\t\tattributes.update( object.instanceColor, gl.ARRAY_BUFFER );\n\n\t\t\t\t}\n\n\t\t\t\tupdateMap.set( object, frame );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( object.isSkinnedMesh ) {\n\n\t\t\tconst skeleton = object.skeleton;\n\n\t\t\tif ( updateMap.get( skeleton ) !== frame ) {\n\n\t\t\t\tskeleton.update();\n\n\t\t\t\tupdateMap.set( skeleton, frame );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn buffergeometry;\n\n\t}\n\n\tfunction dispose() {\n\n\t\tupdateMap = new WeakMap();\n\n\t}\n\n\tfunction onInstancedMeshDispose( event ) {\n\n\t\tconst instancedMesh = event.target;\n\n\t\tinstancedMesh.removeEventListener( 'dispose', onInstancedMeshDispose );\n\n\t\tattributes.remove( instancedMesh.instanceMatrix );\n\n\t\tif ( instancedMesh.instanceColor !== null ) attributes.remove( instancedMesh.instanceColor );\n\n\t}\n\n\treturn {\n\n\t\tupdate: update,\n\t\tdispose: dispose\n\n\t};\n\n}\n\nclass DepthTexture extends Texture {\n\n\tconstructor( width, height, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, format = DepthFormat ) {\n\n\t\tif ( format !== DepthFormat && format !== DepthStencilFormat ) {\n\n\t\t\tthrow new Error( 'DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat' );\n\n\t\t}\n\n\t\tif ( type === undefined && format === DepthFormat ) type = UnsignedIntType;\n\t\tif ( type === undefined && format === DepthStencilFormat ) type = UnsignedInt248Type;\n\n\t\tsuper( null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy );\n\n\t\tthis.isDepthTexture = true;\n\n\t\tthis.image = { width: width, height: height };\n\n\t\tthis.magFilter = magFilter !== undefined ? magFilter : NearestFilter;\n\t\tthis.minFilter = minFilter !== undefined ? minFilter : NearestFilter;\n\n\t\tthis.flipY = false;\n\t\tthis.generateMipmaps = false;\n\n\t\tthis.compareFunction = null;\n\n\t}\n\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.compareFunction = source.compareFunction;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tif ( this.compareFunction !== null ) data.compareFunction = this.compareFunction;\n\n\t\treturn data;\n\n\t}\n\n}\n\n/**\n * Uniforms of a program.\n * Those form a tree structure with a special top-level container for the root,\n * which you get by calling 'new WebGLUniforms( gl, program )'.\n *\n *\n * Properties of inner nodes including the top-level container:\n *\n * .seq - array of nested uniforms\n * .map - nested uniforms by name\n *\n *\n * Methods of all nodes except the top-level container:\n *\n * .setValue( gl, value, [textures] )\n *\n * \t\tuploads a uniform value(s)\n * \tthe 'textures' parameter is needed for sampler uniforms\n *\n *\n * Static methods of the top-level container (textures factorizations):\n *\n * .upload( gl, seq, values, textures )\n *\n * \t\tsets uniforms in 'seq' to 'values[id].value'\n *\n * .seqWithValue( seq, values ) : filteredSeq\n *\n * \t\tfilters 'seq' entries with corresponding entry in values\n *\n *\n * Methods of the top-level container (textures factorizations):\n *\n * .setValue( gl, name, value, textures )\n *\n * \t\tsets uniform with name 'name' to 'value'\n *\n * .setOptional( gl, obj, prop )\n *\n * \t\tlike .set for an optional property of the object\n *\n */\n\n\nconst emptyTexture = /*@__PURE__*/ new Texture();\n\nconst emptyShadowTexture = /*@__PURE__*/ new DepthTexture( 1, 1 );\n\nconst emptyArrayTexture = /*@__PURE__*/ new DataArrayTexture();\nconst empty3dTexture = /*@__PURE__*/ new Data3DTexture();\nconst emptyCubeTexture = /*@__PURE__*/ new CubeTexture();\n\n// --- Utilities ---\n\n// Array Caches (provide typed arrays for temporary by size)\n\nconst arrayCacheF32 = [];\nconst arrayCacheI32 = [];\n\n// Float32Array caches used for uploading Matrix uniforms\n\nconst mat4array = new Float32Array( 16 );\nconst mat3array = new Float32Array( 9 );\nconst mat2array = new Float32Array( 4 );\n\n// Flattening for arrays of vectors and matrices\n\nfunction flatten( array, nBlocks, blockSize ) {\n\n\tconst firstElem = array[ 0 ];\n\n\tif ( firstElem <= 0 || firstElem > 0 ) return array;\n\t// unoptimized: ! isNaN( firstElem )\n\t// see http://jacksondunstan.com/articles/983\n\n\tconst n = nBlocks * blockSize;\n\tlet r = arrayCacheF32[ n ];\n\n\tif ( r === undefined ) {\n\n\t\tr = new Float32Array( n );\n\t\tarrayCacheF32[ n ] = r;\n\n\t}\n\n\tif ( nBlocks !== 0 ) {\n\n\t\tfirstElem.toArray( r, 0 );\n\n\t\tfor ( let i = 1, offset = 0; i !== nBlocks; ++ i ) {\n\n\t\t\toffset += blockSize;\n\t\t\tarray[ i ].toArray( r, offset );\n\n\t\t}\n\n\t}\n\n\treturn r;\n\n}\n\nfunction arraysEqual( a, b ) {\n\n\tif ( a.length !== b.length ) return false;\n\n\tfor ( let i = 0, l = a.length; i < l; i ++ ) {\n\n\t\tif ( a[ i ] !== b[ i ] ) return false;\n\n\t}\n\n\treturn true;\n\n}\n\nfunction copyArray( a, b ) {\n\n\tfor ( let i = 0, l = b.length; i < l; i ++ ) {\n\n\t\ta[ i ] = b[ i ];\n\n\t}\n\n}\n\n// Texture unit allocation\n\nfunction allocTexUnits( textures, n ) {\n\n\tlet r = arrayCacheI32[ n ];\n\n\tif ( r === undefined ) {\n\n\t\tr = new Int32Array( n );\n\t\tarrayCacheI32[ n ] = r;\n\n\t}\n\n\tfor ( let i = 0; i !== n; ++ i ) {\n\n\t\tr[ i ] = textures.allocateTextureUnit();\n\n\t}\n\n\treturn r;\n\n}\n\n// --- Setters ---\n\n// Note: Defining these methods externally, because they come in a bunch\n// and this way their names minify.\n\n// Single scalar\n\nfunction setValueV1f( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( cache[ 0 ] === v ) return;\n\n\tgl.uniform1f( this.addr, v );\n\n\tcache[ 0 ] = v;\n\n}\n\n// Single float vector (from flat array or THREE.VectorN)\n\nfunction setValueV2f( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( v.x !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.x || cache[ 1 ] !== v.y ) {\n\n\t\t\tgl.uniform2f( this.addr, v.x, v.y );\n\n\t\t\tcache[ 0 ] = v.x;\n\t\t\tcache[ 1 ] = v.y;\n\n\t\t}\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniform2fv( this.addr, v );\n\n\t\tcopyArray( cache, v );\n\n\t}\n\n}\n\nfunction setValueV3f( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( v.x !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.x || cache[ 1 ] !== v.y || cache[ 2 ] !== v.z ) {\n\n\t\t\tgl.uniform3f( this.addr, v.x, v.y, v.z );\n\n\t\t\tcache[ 0 ] = v.x;\n\t\t\tcache[ 1 ] = v.y;\n\t\t\tcache[ 2 ] = v.z;\n\n\t\t}\n\n\t} else if ( v.r !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.r || cache[ 1 ] !== v.g || cache[ 2 ] !== v.b ) {\n\n\t\t\tgl.uniform3f( this.addr, v.r, v.g, v.b );\n\n\t\t\tcache[ 0 ] = v.r;\n\t\t\tcache[ 1 ] = v.g;\n\t\t\tcache[ 2 ] = v.b;\n\n\t\t}\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniform3fv( this.addr, v );\n\n\t\tcopyArray( cache, v );\n\n\t}\n\n}\n\nfunction setValueV4f( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( v.x !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.x || cache[ 1 ] !== v.y || cache[ 2 ] !== v.z || cache[ 3 ] !== v.w ) {\n\n\t\t\tgl.uniform4f( this.addr, v.x, v.y, v.z, v.w );\n\n\t\t\tcache[ 0 ] = v.x;\n\t\t\tcache[ 1 ] = v.y;\n\t\t\tcache[ 2 ] = v.z;\n\t\t\tcache[ 3 ] = v.w;\n\n\t\t}\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniform4fv( this.addr, v );\n\n\t\tcopyArray( cache, v );\n\n\t}\n\n}\n\n// Single matrix (from flat array or THREE.MatrixN)\n\nfunction setValueM2( gl, v ) {\n\n\tconst cache = this.cache;\n\tconst elements = v.elements;\n\n\tif ( elements === undefined ) {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniformMatrix2fv( this.addr, false, v );\n\n\t\tcopyArray( cache, v );\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, elements ) ) return;\n\n\t\tmat2array.set( elements );\n\n\t\tgl.uniformMatrix2fv( this.addr, false, mat2array );\n\n\t\tcopyArray( cache, elements );\n\n\t}\n\n}\n\nfunction setValueM3( gl, v ) {\n\n\tconst cache = this.cache;\n\tconst elements = v.elements;\n\n\tif ( elements === undefined ) {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniformMatrix3fv( this.addr, false, v );\n\n\t\tcopyArray( cache, v );\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, elements ) ) return;\n\n\t\tmat3array.set( elements );\n\n\t\tgl.uniformMatrix3fv( this.addr, false, mat3array );\n\n\t\tcopyArray( cache, elements );\n\n\t}\n\n}\n\nfunction setValueM4( gl, v ) {\n\n\tconst cache = this.cache;\n\tconst elements = v.elements;\n\n\tif ( elements === undefined ) {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniformMatrix4fv( this.addr, false, v );\n\n\t\tcopyArray( cache, v );\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, elements ) ) return;\n\n\t\tmat4array.set( elements );\n\n\t\tgl.uniformMatrix4fv( this.addr, false, mat4array );\n\n\t\tcopyArray( cache, elements );\n\n\t}\n\n}\n\n// Single integer / boolean\n\nfunction setValueV1i( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( cache[ 0 ] === v ) return;\n\n\tgl.uniform1i( this.addr, v );\n\n\tcache[ 0 ] = v;\n\n}\n\n// Single integer / boolean vector (from flat array or THREE.VectorN)\n\nfunction setValueV2i( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( v.x !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.x || cache[ 1 ] !== v.y ) {\n\n\t\t\tgl.uniform2i( this.addr, v.x, v.y );\n\n\t\t\tcache[ 0 ] = v.x;\n\t\t\tcache[ 1 ] = v.y;\n\n\t\t}\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniform2iv( this.addr, v );\n\n\t\tcopyArray( cache, v );\n\n\t}\n\n}\n\nfunction setValueV3i( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( v.x !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.x || cache[ 1 ] !== v.y || cache[ 2 ] !== v.z ) {\n\n\t\t\tgl.uniform3i( this.addr, v.x, v.y, v.z );\n\n\t\t\tcache[ 0 ] = v.x;\n\t\t\tcache[ 1 ] = v.y;\n\t\t\tcache[ 2 ] = v.z;\n\n\t\t}\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniform3iv( this.addr, v );\n\n\t\tcopyArray( cache, v );\n\n\t}\n\n}\n\nfunction setValueV4i( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( v.x !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.x || cache[ 1 ] !== v.y || cache[ 2 ] !== v.z || cache[ 3 ] !== v.w ) {\n\n\t\t\tgl.uniform4i( this.addr, v.x, v.y, v.z, v.w );\n\n\t\t\tcache[ 0 ] = v.x;\n\t\t\tcache[ 1 ] = v.y;\n\t\t\tcache[ 2 ] = v.z;\n\t\t\tcache[ 3 ] = v.w;\n\n\t\t}\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniform4iv( this.addr, v );\n\n\t\tcopyArray( cache, v );\n\n\t}\n\n}\n\n// Single unsigned integer\n\nfunction setValueV1ui( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( cache[ 0 ] === v ) return;\n\n\tgl.uniform1ui( this.addr, v );\n\n\tcache[ 0 ] = v;\n\n}\n\n// Single unsigned integer vector (from flat array or THREE.VectorN)\n\nfunction setValueV2ui( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( v.x !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.x || cache[ 1 ] !== v.y ) {\n\n\t\t\tgl.uniform2ui( this.addr, v.x, v.y );\n\n\t\t\tcache[ 0 ] = v.x;\n\t\t\tcache[ 1 ] = v.y;\n\n\t\t}\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniform2uiv( this.addr, v );\n\n\t\tcopyArray( cache, v );\n\n\t}\n\n}\n\nfunction setValueV3ui( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( v.x !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.x || cache[ 1 ] !== v.y || cache[ 2 ] !== v.z ) {\n\n\t\t\tgl.uniform3ui( this.addr, v.x, v.y, v.z );\n\n\t\t\tcache[ 0 ] = v.x;\n\t\t\tcache[ 1 ] = v.y;\n\t\t\tcache[ 2 ] = v.z;\n\n\t\t}\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniform3uiv( this.addr, v );\n\n\t\tcopyArray( cache, v );\n\n\t}\n\n}\n\nfunction setValueV4ui( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( v.x !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.x || cache[ 1 ] !== v.y || cache[ 2 ] !== v.z || cache[ 3 ] !== v.w ) {\n\n\t\t\tgl.uniform4ui( this.addr, v.x, v.y, v.z, v.w );\n\n\t\t\tcache[ 0 ] = v.x;\n\t\t\tcache[ 1 ] = v.y;\n\t\t\tcache[ 2 ] = v.z;\n\t\t\tcache[ 3 ] = v.w;\n\n\t\t}\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniform4uiv( this.addr, v );\n\n\t\tcopyArray( cache, v );\n\n\t}\n\n}\n\n\n// Single texture (2D / Cube)\n\nfunction setValueT1( gl, v, textures ) {\n\n\tconst cache = this.cache;\n\tconst unit = textures.allocateTextureUnit();\n\n\tif ( cache[ 0 ] !== unit ) {\n\n\t\tgl.uniform1i( this.addr, unit );\n\t\tcache[ 0 ] = unit;\n\n\t}\n\n\tlet emptyTexture2D;\n\n\tif ( this.type === gl.SAMPLER_2D_SHADOW ) {\n\n\t\temptyShadowTexture.compareFunction = LessEqualCompare; // #28670\n\t\temptyTexture2D = emptyShadowTexture;\n\n\t} else {\n\n\t\temptyTexture2D = emptyTexture;\n\n\t}\n\n\ttextures.setTexture2D( v || emptyTexture2D, unit );\n\n}\n\nfunction setValueT3D1( gl, v, textures ) {\n\n\tconst cache = this.cache;\n\tconst unit = textures.allocateTextureUnit();\n\n\tif ( cache[ 0 ] !== unit ) {\n\n\t\tgl.uniform1i( this.addr, unit );\n\t\tcache[ 0 ] = unit;\n\n\t}\n\n\ttextures.setTexture3D( v || empty3dTexture, unit );\n\n}\n\nfunction setValueT6( gl, v, textures ) {\n\n\tconst cache = this.cache;\n\tconst unit = textures.allocateTextureUnit();\n\n\tif ( cache[ 0 ] !== unit ) {\n\n\t\tgl.uniform1i( this.addr, unit );\n\t\tcache[ 0 ] = unit;\n\n\t}\n\n\ttextures.setTextureCube( v || emptyCubeTexture, unit );\n\n}\n\nfunction setValueT2DArray1( gl, v, textures ) {\n\n\tconst cache = this.cache;\n\tconst unit = textures.allocateTextureUnit();\n\n\tif ( cache[ 0 ] !== unit ) {\n\n\t\tgl.uniform1i( this.addr, unit );\n\t\tcache[ 0 ] = unit;\n\n\t}\n\n\ttextures.setTexture2DArray( v || emptyArrayTexture, unit );\n\n}\n\n// Helper to pick the right setter for the singular case\n\nfunction getSingularSetter( type ) {\n\n\tswitch ( type ) {\n\n\t\tcase 0x1406: return setValueV1f; // FLOAT\n\t\tcase 0x8b50: return setValueV2f; // _VEC2\n\t\tcase 0x8b51: return setValueV3f; // _VEC3\n\t\tcase 0x8b52: return setValueV4f; // _VEC4\n\n\t\tcase 0x8b5a: return setValueM2; // _MAT2\n\t\tcase 0x8b5b: return setValueM3; // _MAT3\n\t\tcase 0x8b5c: return setValueM4; // _MAT4\n\n\t\tcase 0x1404: case 0x8b56: return setValueV1i; // INT, BOOL\n\t\tcase 0x8b53: case 0x8b57: return setValueV2i; // _VEC2\n\t\tcase 0x8b54: case 0x8b58: return setValueV3i; // _VEC3\n\t\tcase 0x8b55: case 0x8b59: return setValueV4i; // _VEC4\n\n\t\tcase 0x1405: return setValueV1ui; // UINT\n\t\tcase 0x8dc6: return setValueV2ui; // _VEC2\n\t\tcase 0x8dc7: return setValueV3ui; // _VEC3\n\t\tcase 0x8dc8: return setValueV4ui; // _VEC4\n\n\t\tcase 0x8b5e: // SAMPLER_2D\n\t\tcase 0x8d66: // SAMPLER_EXTERNAL_OES\n\t\tcase 0x8dca: // INT_SAMPLER_2D\n\t\tcase 0x8dd2: // UNSIGNED_INT_SAMPLER_2D\n\t\tcase 0x8b62: // SAMPLER_2D_SHADOW\n\t\t\treturn setValueT1;\n\n\t\tcase 0x8b5f: // SAMPLER_3D\n\t\tcase 0x8dcb: // INT_SAMPLER_3D\n\t\tcase 0x8dd3: // UNSIGNED_INT_SAMPLER_3D\n\t\t\treturn setValueT3D1;\n\n\t\tcase 0x8b60: // SAMPLER_CUBE\n\t\tcase 0x8dcc: // INT_SAMPLER_CUBE\n\t\tcase 0x8dd4: // UNSIGNED_INT_SAMPLER_CUBE\n\t\tcase 0x8dc5: // SAMPLER_CUBE_SHADOW\n\t\t\treturn setValueT6;\n\n\t\tcase 0x8dc1: // SAMPLER_2D_ARRAY\n\t\tcase 0x8dcf: // INT_SAMPLER_2D_ARRAY\n\t\tcase 0x8dd7: // UNSIGNED_INT_SAMPLER_2D_ARRAY\n\t\tcase 0x8dc4: // SAMPLER_2D_ARRAY_SHADOW\n\t\t\treturn setValueT2DArray1;\n\n\t}\n\n}\n\n\n// Array of scalars\n\nfunction setValueV1fArray( gl, v ) {\n\n\tgl.uniform1fv( this.addr, v );\n\n}\n\n// Array of vectors (from flat array or array of THREE.VectorN)\n\nfunction setValueV2fArray( gl, v ) {\n\n\tconst data = flatten( v, this.size, 2 );\n\n\tgl.uniform2fv( this.addr, data );\n\n}\n\nfunction setValueV3fArray( gl, v ) {\n\n\tconst data = flatten( v, this.size, 3 );\n\n\tgl.uniform3fv( this.addr, data );\n\n}\n\nfunction setValueV4fArray( gl, v ) {\n\n\tconst data = flatten( v, this.size, 4 );\n\n\tgl.uniform4fv( this.addr, data );\n\n}\n\n// Array of matrices (from flat array or array of THREE.MatrixN)\n\nfunction setValueM2Array( gl, v ) {\n\n\tconst data = flatten( v, this.size, 4 );\n\n\tgl.uniformMatrix2fv( this.addr, false, data );\n\n}\n\nfunction setValueM3Array( gl, v ) {\n\n\tconst data = flatten( v, this.size, 9 );\n\n\tgl.uniformMatrix3fv( this.addr, false, data );\n\n}\n\nfunction setValueM4Array( gl, v ) {\n\n\tconst data = flatten( v, this.size, 16 );\n\n\tgl.uniformMatrix4fv( this.addr, false, data );\n\n}\n\n// Array of integer / boolean\n\nfunction setValueV1iArray( gl, v ) {\n\n\tgl.uniform1iv( this.addr, v );\n\n}\n\n// Array of integer / boolean vectors (from flat array)\n\nfunction setValueV2iArray( gl, v ) {\n\n\tgl.uniform2iv( this.addr, v );\n\n}\n\nfunction setValueV3iArray( gl, v ) {\n\n\tgl.uniform3iv( this.addr, v );\n\n}\n\nfunction setValueV4iArray( gl, v ) {\n\n\tgl.uniform4iv( this.addr, v );\n\n}\n\n// Array of unsigned integer\n\nfunction setValueV1uiArray( gl, v ) {\n\n\tgl.uniform1uiv( this.addr, v );\n\n}\n\n// Array of unsigned integer vectors (from flat array)\n\nfunction setValueV2uiArray( gl, v ) {\n\n\tgl.uniform2uiv( this.addr, v );\n\n}\n\nfunction setValueV3uiArray( gl, v ) {\n\n\tgl.uniform3uiv( this.addr, v );\n\n}\n\nfunction setValueV4uiArray( gl, v ) {\n\n\tgl.uniform4uiv( this.addr, v );\n\n}\n\n\n// Array of textures (2D / 3D / Cube / 2DArray)\n\nfunction setValueT1Array( gl, v, textures ) {\n\n\tconst cache = this.cache;\n\n\tconst n = v.length;\n\n\tconst units = allocTexUnits( textures, n );\n\n\tif ( ! arraysEqual( cache, units ) ) {\n\n\t\tgl.uniform1iv( this.addr, units );\n\n\t\tcopyArray( cache, units );\n\n\t}\n\n\tfor ( let i = 0; i !== n; ++ i ) {\n\n\t\ttextures.setTexture2D( v[ i ] || emptyTexture, units[ i ] );\n\n\t}\n\n}\n\nfunction setValueT3DArray( gl, v, textures ) {\n\n\tconst cache = this.cache;\n\n\tconst n = v.length;\n\n\tconst units = allocTexUnits( textures, n );\n\n\tif ( ! arraysEqual( cache, units ) ) {\n\n\t\tgl.uniform1iv( this.addr, units );\n\n\t\tcopyArray( cache, units );\n\n\t}\n\n\tfor ( let i = 0; i !== n; ++ i ) {\n\n\t\ttextures.setTexture3D( v[ i ] || empty3dTexture, units[ i ] );\n\n\t}\n\n}\n\nfunction setValueT6Array( gl, v, textures ) {\n\n\tconst cache = this.cache;\n\n\tconst n = v.length;\n\n\tconst units = allocTexUnits( textures, n );\n\n\tif ( ! arraysEqual( cache, units ) ) {\n\n\t\tgl.uniform1iv( this.addr, units );\n\n\t\tcopyArray( cache, units );\n\n\t}\n\n\tfor ( let i = 0; i !== n; ++ i ) {\n\n\t\ttextures.setTextureCube( v[ i ] || emptyCubeTexture, units[ i ] );\n\n\t}\n\n}\n\nfunction setValueT2DArrayArray( gl, v, textures ) {\n\n\tconst cache = this.cache;\n\n\tconst n = v.length;\n\n\tconst units = allocTexUnits( textures, n );\n\n\tif ( ! arraysEqual( cache, units ) ) {\n\n\t\tgl.uniform1iv( this.addr, units );\n\n\t\tcopyArray( cache, units );\n\n\t}\n\n\tfor ( let i = 0; i !== n; ++ i ) {\n\n\t\ttextures.setTexture2DArray( v[ i ] || emptyArrayTexture, units[ i ] );\n\n\t}\n\n}\n\n\n// Helper to pick the right setter for a pure (bottom-level) array\n\nfunction getPureArraySetter( type ) {\n\n\tswitch ( type ) {\n\n\t\tcase 0x1406: return setValueV1fArray; // FLOAT\n\t\tcase 0x8b50: return setValueV2fArray; // _VEC2\n\t\tcase 0x8b51: return setValueV3fArray; // _VEC3\n\t\tcase 0x8b52: return setValueV4fArray; // _VEC4\n\n\t\tcase 0x8b5a: return setValueM2Array; // _MAT2\n\t\tcase 0x8b5b: return setValueM3Array; // _MAT3\n\t\tcase 0x8b5c: return setValueM4Array; // _MAT4\n\n\t\tcase 0x1404: case 0x8b56: return setValueV1iArray; // INT, BOOL\n\t\tcase 0x8b53: case 0x8b57: return setValueV2iArray; // _VEC2\n\t\tcase 0x8b54: case 0x8b58: return setValueV3iArray; // _VEC3\n\t\tcase 0x8b55: case 0x8b59: return setValueV4iArray; // _VEC4\n\n\t\tcase 0x1405: return setValueV1uiArray; // UINT\n\t\tcase 0x8dc6: return setValueV2uiArray; // _VEC2\n\t\tcase 0x8dc7: return setValueV3uiArray; // _VEC3\n\t\tcase 0x8dc8: return setValueV4uiArray; // _VEC4\n\n\t\tcase 0x8b5e: // SAMPLER_2D\n\t\tcase 0x8d66: // SAMPLER_EXTERNAL_OES\n\t\tcase 0x8dca: // INT_SAMPLER_2D\n\t\tcase 0x8dd2: // UNSIGNED_INT_SAMPLER_2D\n\t\tcase 0x8b62: // SAMPLER_2D_SHADOW\n\t\t\treturn setValueT1Array;\n\n\t\tcase 0x8b5f: // SAMPLER_3D\n\t\tcase 0x8dcb: // INT_SAMPLER_3D\n\t\tcase 0x8dd3: // UNSIGNED_INT_SAMPLER_3D\n\t\t\treturn setValueT3DArray;\n\n\t\tcase 0x8b60: // SAMPLER_CUBE\n\t\tcase 0x8dcc: // INT_SAMPLER_CUBE\n\t\tcase 0x8dd4: // UNSIGNED_INT_SAMPLER_CUBE\n\t\tcase 0x8dc5: // SAMPLER_CUBE_SHADOW\n\t\t\treturn setValueT6Array;\n\n\t\tcase 0x8dc1: // SAMPLER_2D_ARRAY\n\t\tcase 0x8dcf: // INT_SAMPLER_2D_ARRAY\n\t\tcase 0x8dd7: // UNSIGNED_INT_SAMPLER_2D_ARRAY\n\t\tcase 0x8dc4: // SAMPLER_2D_ARRAY_SHADOW\n\t\t\treturn setValueT2DArrayArray;\n\n\t}\n\n}\n\n// --- Uniform Classes ---\n\nclass SingleUniform {\n\n\tconstructor( id, activeInfo, addr ) {\n\n\t\tthis.id = id;\n\t\tthis.addr = addr;\n\t\tthis.cache = [];\n\t\tthis.type = activeInfo.type;\n\t\tthis.setValue = getSingularSetter( activeInfo.type );\n\n\t\t// this.path = activeInfo.name; // DEBUG\n\n\t}\n\n}\n\nclass PureArrayUniform {\n\n\tconstructor( id, activeInfo, addr ) {\n\n\t\tthis.id = id;\n\t\tthis.addr = addr;\n\t\tthis.cache = [];\n\t\tthis.type = activeInfo.type;\n\t\tthis.size = activeInfo.size;\n\t\tthis.setValue = getPureArraySetter( activeInfo.type );\n\n\t\t// this.path = activeInfo.name; // DEBUG\n\n\t}\n\n}\n\nclass StructuredUniform {\n\n\tconstructor( id ) {\n\n\t\tthis.id = id;\n\n\t\tthis.seq = [];\n\t\tthis.map = {};\n\n\t}\n\n\tsetValue( gl, value, textures ) {\n\n\t\tconst seq = this.seq;\n\n\t\tfor ( let i = 0, n = seq.length; i !== n; ++ i ) {\n\n\t\t\tconst u = seq[ i ];\n\t\t\tu.setValue( gl, value[ u.id ], textures );\n\n\t\t}\n\n\t}\n\n}\n\n// --- Top-level ---\n\n// Parser - builds up the property tree from the path strings\n\nconst RePathPart = /(\\w+)(\\])?(\\[|\\.)?/g;\n\n// extracts\n// \t- the identifier (member name or array index)\n// - followed by an optional right bracket (found when array index)\n// - followed by an optional left bracket or dot (type of subscript)\n//\n// Note: These portions can be read in a non-overlapping fashion and\n// allow straightforward parsing of the hierarchy that WebGL encodes\n// in the uniform names.\n\nfunction addUniform( container, uniformObject ) {\n\n\tcontainer.seq.push( uniformObject );\n\tcontainer.map[ uniformObject.id ] = uniformObject;\n\n}\n\nfunction parseUniform( activeInfo, addr, container ) {\n\n\tconst path = activeInfo.name,\n\t\tpathLength = path.length;\n\n\t// reset RegExp object, because of the early exit of a previous run\n\tRePathPart.lastIndex = 0;\n\n\twhile ( true ) {\n\n\t\tconst match = RePathPart.exec( path ),\n\t\t\tmatchEnd = RePathPart.lastIndex;\n\n\t\tlet id = match[ 1 ];\n\t\tconst idIsIndex = match[ 2 ] === ']',\n\t\t\tsubscript = match[ 3 ];\n\n\t\tif ( idIsIndex ) id = id | 0; // convert to integer\n\n\t\tif ( subscript === undefined || subscript === '[' && matchEnd + 2 === pathLength ) {\n\n\t\t\t// bare name or \"pure\" bottom-level array \"[0]\" suffix\n\n\t\t\taddUniform( container, subscript === undefined ?\n\t\t\t\tnew SingleUniform( id, activeInfo, addr ) :\n\t\t\t\tnew PureArrayUniform( id, activeInfo, addr ) );\n\n\t\t\tbreak;\n\n\t\t} else {\n\n\t\t\t// step into inner node / create it in case it doesn't exist\n\n\t\t\tconst map = container.map;\n\t\t\tlet next = map[ id ];\n\n\t\t\tif ( next === undefined ) {\n\n\t\t\t\tnext = new StructuredUniform( id );\n\t\t\t\taddUniform( container, next );\n\n\t\t\t}\n\n\t\t\tcontainer = next;\n\n\t\t}\n\n\t}\n\n}\n\n// Root Container\n\nclass WebGLUniforms {\n\n\tconstructor( gl, program ) {\n\n\t\tthis.seq = [];\n\t\tthis.map = {};\n\n\t\tconst n = gl.getProgramParameter( program, gl.ACTIVE_UNIFORMS );\n\n\t\tfor ( let i = 0; i < n; ++ i ) {\n\n\t\t\tconst info = gl.getActiveUniform( program, i ),\n\t\t\t\taddr = gl.getUniformLocation( program, info.name );\n\n\t\t\tparseUniform( info, addr, this );\n\n\t\t}\n\n\t}\n\n\tsetValue( gl, name, value, textures ) {\n\n\t\tconst u = this.map[ name ];\n\n\t\tif ( u !== undefined ) u.setValue( gl, value, textures );\n\n\t}\n\n\tsetOptional( gl, object, name ) {\n\n\t\tconst v = object[ name ];\n\n\t\tif ( v !== undefined ) this.setValue( gl, name, v );\n\n\t}\n\n\tstatic upload( gl, seq, values, textures ) {\n\n\t\tfor ( let i = 0, n = seq.length; i !== n; ++ i ) {\n\n\t\t\tconst u = seq[ i ],\n\t\t\t\tv = values[ u.id ];\n\n\t\t\tif ( v.needsUpdate !== false ) {\n\n\t\t\t\t// note: always updating when .needsUpdate is undefined\n\t\t\t\tu.setValue( gl, v.value, textures );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tstatic seqWithValue( seq, values ) {\n\n\t\tconst r = [];\n\n\t\tfor ( let i = 0, n = seq.length; i !== n; ++ i ) {\n\n\t\t\tconst u = seq[ i ];\n\t\t\tif ( u.id in values ) r.push( u );\n\n\t\t}\n\n\t\treturn r;\n\n\t}\n\n}\n\nfunction WebGLShader( gl, type, string ) {\n\n\tconst shader = gl.createShader( type );\n\n\tgl.shaderSource( shader, string );\n\tgl.compileShader( shader );\n\n\treturn shader;\n\n}\n\n// From https://www.khronos.org/registry/webgl/extensions/KHR_parallel_shader_compile/\nconst COMPLETION_STATUS_KHR = 0x91B1;\n\nlet programIdCount = 0;\n\nfunction handleSource( string, errorLine ) {\n\n\tconst lines = string.split( '\\n' );\n\tconst lines2 = [];\n\n\tconst from = Math.max( errorLine - 6, 0 );\n\tconst to = Math.min( errorLine + 6, lines.length );\n\n\tfor ( let i = from; i < to; i ++ ) {\n\n\t\tconst line = i + 1;\n\t\tlines2.push( `${line === errorLine ? '>' : ' '} ${line}: ${lines[ i ]}` );\n\n\t}\n\n\treturn lines2.join( '\\n' );\n\n}\n\nconst _m0 = /*@__PURE__*/ new Matrix3();\n\nfunction getEncodingComponents( colorSpace ) {\n\n\tColorManagement._getMatrix( _m0, ColorManagement.workingColorSpace, colorSpace );\n\n\tconst encodingMatrix = `mat3( ${ _m0.elements.map( ( v ) => v.toFixed( 4 ) ) } )`;\n\n\tswitch ( ColorManagement.getTransfer( colorSpace ) ) {\n\n\t\tcase LinearTransfer:\n\t\t\treturn [ encodingMatrix, 'LinearTransferOETF' ];\n\n\t\tcase SRGBTransfer:\n\t\t\treturn [ encodingMatrix, 'sRGBTransferOETF' ];\n\n\t\tdefault:\n\t\t\tconsole.warn( 'THREE.WebGLProgram: Unsupported color space: ', colorSpace );\n\t\t\treturn [ encodingMatrix, 'LinearTransferOETF' ];\n\n\t}\n\n}\n\nfunction getShaderErrors( gl, shader, type ) {\n\n\tconst status = gl.getShaderParameter( shader, gl.COMPILE_STATUS );\n\tconst errors = gl.getShaderInfoLog( shader ).trim();\n\n\tif ( status && errors === '' ) return '';\n\n\tconst errorMatches = /ERROR: 0:(\\d+)/.exec( errors );\n\tif ( errorMatches ) {\n\n\t\t// --enable-privileged-webgl-extension\n\t\t// console.log( '**' + type + '**', gl.getExtension( 'WEBGL_debug_shaders' ).getTranslatedShaderSource( shader ) );\n\n\t\tconst errorLine = parseInt( errorMatches[ 1 ] );\n\t\treturn type.toUpperCase() + '\\n\\n' + errors + '\\n\\n' + handleSource( gl.getShaderSource( shader ), errorLine );\n\n\t} else {\n\n\t\treturn errors;\n\n\t}\n\n}\n\nfunction getTexelEncodingFunction( functionName, colorSpace ) {\n\n\tconst components = getEncodingComponents( colorSpace );\n\n\treturn [\n\n\t\t`vec4 ${functionName}( vec4 value ) {`,\n\n\t\t`\treturn ${components[ 1 ]}( vec4( value.rgb * ${components[ 0 ]}, value.a ) );`,\n\n\t\t'}',\n\n\t].join( '\\n' );\n\n}\n\nfunction getToneMappingFunction( functionName, toneMapping ) {\n\n\tlet toneMappingName;\n\n\tswitch ( toneMapping ) {\n\n\t\tcase LinearToneMapping:\n\t\t\ttoneMappingName = 'Linear';\n\t\t\tbreak;\n\n\t\tcase ReinhardToneMapping:\n\t\t\ttoneMappingName = 'Reinhard';\n\t\t\tbreak;\n\n\t\tcase CineonToneMapping:\n\t\t\ttoneMappingName = 'Cineon';\n\t\t\tbreak;\n\n\t\tcase ACESFilmicToneMapping:\n\t\t\ttoneMappingName = 'ACESFilmic';\n\t\t\tbreak;\n\n\t\tcase AgXToneMapping:\n\t\t\ttoneMappingName = 'AgX';\n\t\t\tbreak;\n\n\t\tcase NeutralToneMapping:\n\t\t\ttoneMappingName = 'Neutral';\n\t\t\tbreak;\n\n\t\tcase CustomToneMapping:\n\t\t\ttoneMappingName = 'Custom';\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tconsole.warn( 'THREE.WebGLProgram: Unsupported toneMapping:', toneMapping );\n\t\t\ttoneMappingName = 'Linear';\n\n\t}\n\n\treturn 'vec3 ' + functionName + '( vec3 color ) { return ' + toneMappingName + 'ToneMapping( color ); }';\n\n}\n\nconst _v0$1 = /*@__PURE__*/ new Vector3();\n\nfunction getLuminanceFunction() {\n\n\tColorManagement.getLuminanceCoefficients( _v0$1 );\n\n\tconst r = _v0$1.x.toFixed( 4 );\n\tconst g = _v0$1.y.toFixed( 4 );\n\tconst b = _v0$1.z.toFixed( 4 );\n\n\treturn [\n\n\t\t'float luminance( const in vec3 rgb ) {',\n\n\t\t`\tconst vec3 weights = vec3( ${ r }, ${ g }, ${ b } );`,\n\n\t\t'\treturn dot( weights, rgb );',\n\n\t\t'}'\n\n\t].join( '\\n' );\n\n}\n\nfunction generateVertexExtensions( parameters ) {\n\n\tconst chunks = [\n\t\tparameters.extensionClipCullDistance ? '#extension GL_ANGLE_clip_cull_distance : require' : '',\n\t\tparameters.extensionMultiDraw ? '#extension GL_ANGLE_multi_draw : require' : '',\n\t];\n\n\treturn chunks.filter( filterEmptyLine ).join( '\\n' );\n\n}\n\nfunction generateDefines( defines ) {\n\n\tconst chunks = [];\n\n\tfor ( const name in defines ) {\n\n\t\tconst value = defines[ name ];\n\n\t\tif ( value === false ) continue;\n\n\t\tchunks.push( '#define ' + name + ' ' + value );\n\n\t}\n\n\treturn chunks.join( '\\n' );\n\n}\n\nfunction fetchAttributeLocations( gl, program ) {\n\n\tconst attributes = {};\n\n\tconst n = gl.getProgramParameter( program, gl.ACTIVE_ATTRIBUTES );\n\n\tfor ( let i = 0; i < n; i ++ ) {\n\n\t\tconst info = gl.getActiveAttrib( program, i );\n\t\tconst name = info.name;\n\n\t\tlet locationSize = 1;\n\t\tif ( info.type === gl.FLOAT_MAT2 ) locationSize = 2;\n\t\tif ( info.type === gl.FLOAT_MAT3 ) locationSize = 3;\n\t\tif ( info.type === gl.FLOAT_MAT4 ) locationSize = 4;\n\n\t\t// console.log( 'THREE.WebGLProgram: ACTIVE VERTEX ATTRIBUTE:', name, i );\n\n\t\tattributes[ name ] = {\n\t\t\ttype: info.type,\n\t\t\tlocation: gl.getAttribLocation( program, name ),\n\t\t\tlocationSize: locationSize\n\t\t};\n\n\t}\n\n\treturn attributes;\n\n}\n\nfunction filterEmptyLine( string ) {\n\n\treturn string !== '';\n\n}\n\nfunction replaceLightNums( string, parameters ) {\n\n\tconst numSpotLightCoords = parameters.numSpotLightShadows + parameters.numSpotLightMaps - parameters.numSpotLightShadowsWithMaps;\n\n\treturn string\n\t\t.replace( /NUM_DIR_LIGHTS/g, parameters.numDirLights )\n\t\t.replace( /NUM_SPOT_LIGHTS/g, parameters.numSpotLights )\n\t\t.replace( /NUM_SPOT_LIGHT_MAPS/g, parameters.numSpotLightMaps )\n\t\t.replace( /NUM_SPOT_LIGHT_COORDS/g, numSpotLightCoords )\n\t\t.replace( /NUM_RECT_AREA_LIGHTS/g, parameters.numRectAreaLights )\n\t\t.replace( /NUM_POINT_LIGHTS/g, parameters.numPointLights )\n\t\t.replace( /NUM_HEMI_LIGHTS/g, parameters.numHemiLights )\n\t\t.replace( /NUM_DIR_LIGHT_SHADOWS/g, parameters.numDirLightShadows )\n\t\t.replace( /NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g, parameters.numSpotLightShadowsWithMaps )\n\t\t.replace( /NUM_SPOT_LIGHT_SHADOWS/g, parameters.numSpotLightShadows )\n\t\t.replace( /NUM_POINT_LIGHT_SHADOWS/g, parameters.numPointLightShadows );\n\n}\n\nfunction replaceClippingPlaneNums( string, parameters ) {\n\n\treturn string\n\t\t.replace( /NUM_CLIPPING_PLANES/g, parameters.numClippingPlanes )\n\t\t.replace( /UNION_CLIPPING_PLANES/g, ( parameters.numClippingPlanes - parameters.numClipIntersection ) );\n\n}\n\n// Resolve Includes\n\nconst includePattern = /^[ \\t]*#include +<([\\w\\d./]+)>/gm;\n\nfunction resolveIncludes( string ) {\n\n\treturn string.replace( includePattern, includeReplacer );\n\n}\n\nconst shaderChunkMap = new Map();\n\nfunction includeReplacer( match, include ) {\n\n\tlet string = ShaderChunk[ include ];\n\n\tif ( string === undefined ) {\n\n\t\tconst newInclude = shaderChunkMap.get( include );\n\n\t\tif ( newInclude !== undefined ) {\n\n\t\t\tstring = ShaderChunk[ newInclude ];\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: Shader chunk \"%s\" has been deprecated. Use \"%s\" instead.', include, newInclude );\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'Can not resolve #include <' + include + '>' );\n\n\t\t}\n\n\t}\n\n\treturn resolveIncludes( string );\n\n}\n\n// Unroll Loops\n\nconst unrollLoopPattern = /#pragma unroll_loop_start\\s+for\\s*\\(\\s*int\\s+i\\s*=\\s*(\\d+)\\s*;\\s*i\\s*<\\s*(\\d+)\\s*;\\s*i\\s*\\+\\+\\s*\\)\\s*{([\\s\\S]+?)}\\s+#pragma unroll_loop_end/g;\n\nfunction unrollLoops( string ) {\n\n\treturn string.replace( unrollLoopPattern, loopReplacer );\n\n}\n\nfunction loopReplacer( match, start, end, snippet ) {\n\n\tlet string = '';\n\n\tfor ( let i = parseInt( start ); i < parseInt( end ); i ++ ) {\n\n\t\tstring += snippet\n\t\t\t.replace( /\\[\\s*i\\s*\\]/g, '[ ' + i + ' ]' )\n\t\t\t.replace( /UNROLLED_LOOP_INDEX/g, i );\n\n\t}\n\n\treturn string;\n\n}\n\n//\n\nfunction generatePrecision( parameters ) {\n\n\tlet precisionstring = `precision ${parameters.precision} float;\n\tprecision ${parameters.precision} int;\n\tprecision ${parameters.precision} sampler2D;\n\tprecision ${parameters.precision} samplerCube;\n\tprecision ${parameters.precision} sampler3D;\n\tprecision ${parameters.precision} sampler2DArray;\n\tprecision ${parameters.precision} sampler2DShadow;\n\tprecision ${parameters.precision} samplerCubeShadow;\n\tprecision ${parameters.precision} sampler2DArrayShadow;\n\tprecision ${parameters.precision} isampler2D;\n\tprecision ${parameters.precision} isampler3D;\n\tprecision ${parameters.precision} isamplerCube;\n\tprecision ${parameters.precision} isampler2DArray;\n\tprecision ${parameters.precision} usampler2D;\n\tprecision ${parameters.precision} usampler3D;\n\tprecision ${parameters.precision} usamplerCube;\n\tprecision ${parameters.precision} usampler2DArray;\n\t`;\n\n\tif ( parameters.precision === 'highp' ) {\n\n\t\tprecisionstring += '\\n#define HIGH_PRECISION';\n\n\t} else if ( parameters.precision === 'mediump' ) {\n\n\t\tprecisionstring += '\\n#define MEDIUM_PRECISION';\n\n\t} else if ( parameters.precision === 'lowp' ) {\n\n\t\tprecisionstring += '\\n#define LOW_PRECISION';\n\n\t}\n\n\treturn precisionstring;\n\n}\n\nfunction generateShadowMapTypeDefine( parameters ) {\n\n\tlet shadowMapTypeDefine = 'SHADOWMAP_TYPE_BASIC';\n\n\tif ( parameters.shadowMapType === PCFShadowMap ) {\n\n\t\tshadowMapTypeDefine = 'SHADOWMAP_TYPE_PCF';\n\n\t} else if ( parameters.shadowMapType === PCFSoftShadowMap ) {\n\n\t\tshadowMapTypeDefine = 'SHADOWMAP_TYPE_PCF_SOFT';\n\n\t} else if ( parameters.shadowMapType === VSMShadowMap ) {\n\n\t\tshadowMapTypeDefine = 'SHADOWMAP_TYPE_VSM';\n\n\t}\n\n\treturn shadowMapTypeDefine;\n\n}\n\nfunction generateEnvMapTypeDefine( parameters ) {\n\n\tlet envMapTypeDefine = 'ENVMAP_TYPE_CUBE';\n\n\tif ( parameters.envMap ) {\n\n\t\tswitch ( parameters.envMapMode ) {\n\n\t\t\tcase CubeReflectionMapping:\n\t\t\tcase CubeRefractionMapping:\n\t\t\t\tenvMapTypeDefine = 'ENVMAP_TYPE_CUBE';\n\t\t\t\tbreak;\n\n\t\t\tcase CubeUVReflectionMapping:\n\t\t\t\tenvMapTypeDefine = 'ENVMAP_TYPE_CUBE_UV';\n\t\t\t\tbreak;\n\n\t\t}\n\n\t}\n\n\treturn envMapTypeDefine;\n\n}\n\nfunction generateEnvMapModeDefine( parameters ) {\n\n\tlet envMapModeDefine = 'ENVMAP_MODE_REFLECTION';\n\n\tif ( parameters.envMap ) {\n\n\t\tswitch ( parameters.envMapMode ) {\n\n\t\t\tcase CubeRefractionMapping:\n\n\t\t\t\tenvMapModeDefine = 'ENVMAP_MODE_REFRACTION';\n\t\t\t\tbreak;\n\n\t\t}\n\n\t}\n\n\treturn envMapModeDefine;\n\n}\n\nfunction generateEnvMapBlendingDefine( parameters ) {\n\n\tlet envMapBlendingDefine = 'ENVMAP_BLENDING_NONE';\n\n\tif ( parameters.envMap ) {\n\n\t\tswitch ( parameters.combine ) {\n\n\t\t\tcase MultiplyOperation:\n\t\t\t\tenvMapBlendingDefine = 'ENVMAP_BLENDING_MULTIPLY';\n\t\t\t\tbreak;\n\n\t\t\tcase MixOperation:\n\t\t\t\tenvMapBlendingDefine = 'ENVMAP_BLENDING_MIX';\n\t\t\t\tbreak;\n\n\t\t\tcase AddOperation:\n\t\t\t\tenvMapBlendingDefine = 'ENVMAP_BLENDING_ADD';\n\t\t\t\tbreak;\n\n\t\t}\n\n\t}\n\n\treturn envMapBlendingDefine;\n\n}\n\nfunction generateCubeUVSize( parameters ) {\n\n\tconst imageHeight = parameters.envMapCubeUVHeight;\n\n\tif ( imageHeight === null ) return null;\n\n\tconst maxMip = Math.log2( imageHeight ) - 2;\n\n\tconst texelHeight = 1.0 / imageHeight;\n\n\tconst texelWidth = 1.0 / ( 3 * Math.max( Math.pow( 2, maxMip ), 7 * 16 ) );\n\n\treturn { texelWidth, texelHeight, maxMip };\n\n}\n\nfunction WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {\n\n\t// TODO Send this event to Three.js DevTools\n\t// console.log( 'WebGLProgram', cacheKey );\n\n\tconst gl = renderer.getContext();\n\n\tconst defines = parameters.defines;\n\n\tlet vertexShader = parameters.vertexShader;\n\tlet fragmentShader = parameters.fragmentShader;\n\n\tconst shadowMapTypeDefine = generateShadowMapTypeDefine( parameters );\n\tconst envMapTypeDefine = generateEnvMapTypeDefine( parameters );\n\tconst envMapModeDefine = generateEnvMapModeDefine( parameters );\n\tconst envMapBlendingDefine = generateEnvMapBlendingDefine( parameters );\n\tconst envMapCubeUVSize = generateCubeUVSize( parameters );\n\n\tconst customVertexExtensions = generateVertexExtensions( parameters );\n\n\tconst customDefines = generateDefines( defines );\n\n\tconst program = gl.createProgram();\n\n\tlet prefixVertex, prefixFragment;\n\tlet versionString = parameters.glslVersion ? '#version ' + parameters.glslVersion + '\\n' : '';\n\n\tif ( parameters.isRawShaderMaterial ) {\n\n\t\tprefixVertex = [\n\n\t\t\t'#define SHADER_TYPE ' + parameters.shaderType,\n\t\t\t'#define SHADER_NAME ' + parameters.shaderName,\n\n\t\t\tcustomDefines\n\n\t\t].filter( filterEmptyLine ).join( '\\n' );\n\n\t\tif ( prefixVertex.length > 0 ) {\n\n\t\t\tprefixVertex += '\\n';\n\n\t\t}\n\n\t\tprefixFragment = [\n\n\t\t\t'#define SHADER_TYPE ' + parameters.shaderType,\n\t\t\t'#define SHADER_NAME ' + parameters.shaderName,\n\n\t\t\tcustomDefines\n\n\t\t].filter( filterEmptyLine ).join( '\\n' );\n\n\t\tif ( prefixFragment.length > 0 ) {\n\n\t\t\tprefixFragment += '\\n';\n\n\t\t}\n\n\t} else {\n\n\t\tprefixVertex = [\n\n\t\t\tgeneratePrecision( parameters ),\n\n\t\t\t'#define SHADER_TYPE ' + parameters.shaderType,\n\t\t\t'#define SHADER_NAME ' + parameters.shaderName,\n\n\t\t\tcustomDefines,\n\n\t\t\tparameters.extensionClipCullDistance ? '#define USE_CLIP_DISTANCE' : '',\n\t\t\tparameters.batching ? '#define USE_BATCHING' : '',\n\t\t\tparameters.batchingColor ? '#define USE_BATCHING_COLOR' : '',\n\t\t\tparameters.instancing ? '#define USE_INSTANCING' : '',\n\t\t\tparameters.instancingColor ? '#define USE_INSTANCING_COLOR' : '',\n\t\t\tparameters.instancingMorph ? '#define USE_INSTANCING_MORPH' : '',\n\n\t\t\tparameters.useFog && parameters.fog ? '#define USE_FOG' : '',\n\t\t\tparameters.useFog && parameters.fogExp2 ? '#define FOG_EXP2' : '',\n\n\t\t\tparameters.map ? '#define USE_MAP' : '',\n\t\t\tparameters.envMap ? '#define USE_ENVMAP' : '',\n\t\t\tparameters.envMap ? '#define ' + envMapModeDefine : '',\n\t\t\tparameters.lightMap ? '#define USE_LIGHTMAP' : '',\n\t\t\tparameters.aoMap ? '#define USE_AOMAP' : '',\n\t\t\tparameters.bumpMap ? '#define USE_BUMPMAP' : '',\n\t\t\tparameters.normalMap ? '#define USE_NORMALMAP' : '',\n\t\t\tparameters.normalMapObjectSpace ? '#define USE_NORMALMAP_OBJECTSPACE' : '',\n\t\t\tparameters.normalMapTangentSpace ? '#define USE_NORMALMAP_TANGENTSPACE' : '',\n\t\t\tparameters.displacementMap ? '#define USE_DISPLACEMENTMAP' : '',\n\t\t\tparameters.emissiveMap ? '#define USE_EMISSIVEMAP' : '',\n\n\t\t\tparameters.anisotropy ? '#define USE_ANISOTROPY' : '',\n\t\t\tparameters.anisotropyMap ? '#define USE_ANISOTROPYMAP' : '',\n\n\t\t\tparameters.clearcoatMap ? '#define USE_CLEARCOATMAP' : '',\n\t\t\tparameters.clearcoatRoughnessMap ? '#define USE_CLEARCOAT_ROUGHNESSMAP' : '',\n\t\t\tparameters.clearcoatNormalMap ? '#define USE_CLEARCOAT_NORMALMAP' : '',\n\n\t\t\tparameters.iridescenceMap ? '#define USE_IRIDESCENCEMAP' : '',\n\t\t\tparameters.iridescenceThicknessMap ? '#define USE_IRIDESCENCE_THICKNESSMAP' : '',\n\n\t\t\tparameters.specularMap ? '#define USE_SPECULARMAP' : '',\n\t\t\tparameters.specularColorMap ? '#define USE_SPECULAR_COLORMAP' : '',\n\t\t\tparameters.specularIntensityMap ? '#define USE_SPECULAR_INTENSITYMAP' : '',\n\n\t\t\tparameters.roughnessMap ? '#define USE_ROUGHNESSMAP' : '',\n\t\t\tparameters.metalnessMap ? '#define USE_METALNESSMAP' : '',\n\t\t\tparameters.alphaMap ? '#define USE_ALPHAMAP' : '',\n\t\t\tparameters.alphaHash ? '#define USE_ALPHAHASH' : '',\n\n\t\t\tparameters.transmission ? '#define USE_TRANSMISSION' : '',\n\t\t\tparameters.transmissionMap ? '#define USE_TRANSMISSIONMAP' : '',\n\t\t\tparameters.thicknessMap ? '#define USE_THICKNESSMAP' : '',\n\n\t\t\tparameters.sheenColorMap ? '#define USE_SHEEN_COLORMAP' : '',\n\t\t\tparameters.sheenRoughnessMap ? '#define USE_SHEEN_ROUGHNESSMAP' : '',\n\n\t\t\t//\n\n\t\t\tparameters.mapUv ? '#define MAP_UV ' + parameters.mapUv : '',\n\t\t\tparameters.alphaMapUv ? '#define ALPHAMAP_UV ' + parameters.alphaMapUv : '',\n\t\t\tparameters.lightMapUv ? '#define LIGHTMAP_UV ' + parameters.lightMapUv : '',\n\t\t\tparameters.aoMapUv ? '#define AOMAP_UV ' + parameters.aoMapUv : '',\n\t\t\tparameters.emissiveMapUv ? '#define EMISSIVEMAP_UV ' + parameters.emissiveMapUv : '',\n\t\t\tparameters.bumpMapUv ? '#define BUMPMAP_UV ' + parameters.bumpMapUv : '',\n\t\t\tparameters.normalMapUv ? '#define NORMALMAP_UV ' + parameters.normalMapUv : '',\n\t\t\tparameters.displacementMapUv ? '#define DISPLACEMENTMAP_UV ' + parameters.displacementMapUv : '',\n\n\t\t\tparameters.metalnessMapUv ? '#define METALNESSMAP_UV ' + parameters.metalnessMapUv : '',\n\t\t\tparameters.roughnessMapUv ? '#define ROUGHNESSMAP_UV ' + parameters.roughnessMapUv : '',\n\n\t\t\tparameters.anisotropyMapUv ? '#define ANISOTROPYMAP_UV ' + parameters.anisotropyMapUv : '',\n\n\t\t\tparameters.clearcoatMapUv ? '#define CLEARCOATMAP_UV ' + parameters.clearcoatMapUv : '',\n\t\t\tparameters.clearcoatNormalMapUv ? '#define CLEARCOAT_NORMALMAP_UV ' + parameters.clearcoatNormalMapUv : '',\n\t\t\tparameters.clearcoatRoughnessMapUv ? '#define CLEARCOAT_ROUGHNESSMAP_UV ' + parameters.clearcoatRoughnessMapUv : '',\n\n\t\t\tparameters.iridescenceMapUv ? '#define IRIDESCENCEMAP_UV ' + parameters.iridescenceMapUv : '',\n\t\t\tparameters.iridescenceThicknessMapUv ? '#define IRIDESCENCE_THICKNESSMAP_UV ' + parameters.iridescenceThicknessMapUv : '',\n\n\t\t\tparameters.sheenColorMapUv ? '#define SHEEN_COLORMAP_UV ' + parameters.sheenColorMapUv : '',\n\t\t\tparameters.sheenRoughnessMapUv ? '#define SHEEN_ROUGHNESSMAP_UV ' + parameters.sheenRoughnessMapUv : '',\n\n\t\t\tparameters.specularMapUv ? '#define SPECULARMAP_UV ' + parameters.specularMapUv : '',\n\t\t\tparameters.specularColorMapUv ? '#define SPECULAR_COLORMAP_UV ' + parameters.specularColorMapUv : '',\n\t\t\tparameters.specularIntensityMapUv ? '#define SPECULAR_INTENSITYMAP_UV ' + parameters.specularIntensityMapUv : '',\n\n\t\t\tparameters.transmissionMapUv ? '#define TRANSMISSIONMAP_UV ' + parameters.transmissionMapUv : '',\n\t\t\tparameters.thicknessMapUv ? '#define THICKNESSMAP_UV ' + parameters.thicknessMapUv : '',\n\n\t\t\t//\n\n\t\t\tparameters.vertexTangents && parameters.flatShading === false ? '#define USE_TANGENT' : '',\n\t\t\tparameters.vertexColors ? '#define USE_COLOR' : '',\n\t\t\tparameters.vertexAlphas ? '#define USE_COLOR_ALPHA' : '',\n\t\t\tparameters.vertexUv1s ? '#define USE_UV1' : '',\n\t\t\tparameters.vertexUv2s ? '#define USE_UV2' : '',\n\t\t\tparameters.vertexUv3s ? '#define USE_UV3' : '',\n\n\t\t\tparameters.pointsUvs ? '#define USE_POINTS_UV' : '',\n\n\t\t\tparameters.flatShading ? '#define FLAT_SHADED' : '',\n\n\t\t\tparameters.skinning ? '#define USE_SKINNING' : '',\n\n\t\t\tparameters.morphTargets ? '#define USE_MORPHTARGETS' : '',\n\t\t\tparameters.morphNormals && parameters.flatShading === false ? '#define USE_MORPHNORMALS' : '',\n\t\t\t( parameters.morphColors ) ? '#define USE_MORPHCOLORS' : '',\n\t\t\t( parameters.morphTargetsCount > 0 ) ? '#define MORPHTARGETS_TEXTURE_STRIDE ' + parameters.morphTextureStride : '',\n\t\t\t( parameters.morphTargetsCount > 0 ) ? '#define MORPHTARGETS_COUNT ' + parameters.morphTargetsCount : '',\n\t\t\tparameters.doubleSided ? '#define DOUBLE_SIDED' : '',\n\t\t\tparameters.flipSided ? '#define FLIP_SIDED' : '',\n\n\t\t\tparameters.shadowMapEnabled ? '#define USE_SHADOWMAP' : '',\n\t\t\tparameters.shadowMapEnabled ? '#define ' + shadowMapTypeDefine : '',\n\n\t\t\tparameters.sizeAttenuation ? '#define USE_SIZEATTENUATION' : '',\n\n\t\t\tparameters.numLightProbes > 0 ? '#define USE_LIGHT_PROBES' : '',\n\n\t\t\tparameters.logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '',\n\t\t\tparameters.reverseDepthBuffer ? '#define USE_REVERSEDEPTHBUF' : '',\n\n\t\t\t'uniform mat4 modelMatrix;',\n\t\t\t'uniform mat4 modelViewMatrix;',\n\t\t\t'uniform mat4 projectionMatrix;',\n\t\t\t'uniform mat4 viewMatrix;',\n\t\t\t'uniform mat3 normalMatrix;',\n\t\t\t'uniform vec3 cameraPosition;',\n\t\t\t'uniform bool isOrthographic;',\n\n\t\t\t'#ifdef USE_INSTANCING',\n\n\t\t\t'\tattribute mat4 instanceMatrix;',\n\n\t\t\t'#endif',\n\n\t\t\t'#ifdef USE_INSTANCING_COLOR',\n\n\t\t\t'\tattribute vec3 instanceColor;',\n\n\t\t\t'#endif',\n\n\t\t\t'#ifdef USE_INSTANCING_MORPH',\n\n\t\t\t'\tuniform sampler2D morphTexture;',\n\n\t\t\t'#endif',\n\n\t\t\t'attribute vec3 position;',\n\t\t\t'attribute vec3 normal;',\n\t\t\t'attribute vec2 uv;',\n\n\t\t\t'#ifdef USE_UV1',\n\n\t\t\t'\tattribute vec2 uv1;',\n\n\t\t\t'#endif',\n\n\t\t\t'#ifdef USE_UV2',\n\n\t\t\t'\tattribute vec2 uv2;',\n\n\t\t\t'#endif',\n\n\t\t\t'#ifdef USE_UV3',\n\n\t\t\t'\tattribute vec2 uv3;',\n\n\t\t\t'#endif',\n\n\t\t\t'#ifdef USE_TANGENT',\n\n\t\t\t'\tattribute vec4 tangent;',\n\n\t\t\t'#endif',\n\n\t\t\t'#if defined( USE_COLOR_ALPHA )',\n\n\t\t\t'\tattribute vec4 color;',\n\n\t\t\t'#elif defined( USE_COLOR )',\n\n\t\t\t'\tattribute vec3 color;',\n\n\t\t\t'#endif',\n\n\t\t\t'#ifdef USE_SKINNING',\n\n\t\t\t'\tattribute vec4 skinIndex;',\n\t\t\t'\tattribute vec4 skinWeight;',\n\n\t\t\t'#endif',\n\n\t\t\t'\\n'\n\n\t\t].filter( filterEmptyLine ).join( '\\n' );\n\n\t\tprefixFragment = [\n\n\t\t\tgeneratePrecision( parameters ),\n\n\t\t\t'#define SHADER_TYPE ' + parameters.shaderType,\n\t\t\t'#define SHADER_NAME ' + parameters.shaderName,\n\n\t\t\tcustomDefines,\n\n\t\t\tparameters.useFog && parameters.fog ? '#define USE_FOG' : '',\n\t\t\tparameters.useFog && parameters.fogExp2 ? '#define FOG_EXP2' : '',\n\n\t\t\tparameters.alphaToCoverage ? '#define ALPHA_TO_COVERAGE' : '',\n\t\t\tparameters.map ? '#define USE_MAP' : '',\n\t\t\tparameters.matcap ? '#define USE_MATCAP' : '',\n\t\t\tparameters.envMap ? '#define USE_ENVMAP' : '',\n\t\t\tparameters.envMap ? '#define ' + envMapTypeDefine : '',\n\t\t\tparameters.envMap ? '#define ' + envMapModeDefine : '',\n\t\t\tparameters.envMap ? '#define ' + envMapBlendingDefine : '',\n\t\t\tenvMapCubeUVSize ? '#define CUBEUV_TEXEL_WIDTH ' + envMapCubeUVSize.texelWidth : '',\n\t\t\tenvMapCubeUVSize ? '#define CUBEUV_TEXEL_HEIGHT ' + envMapCubeUVSize.texelHeight : '',\n\t\t\tenvMapCubeUVSize ? '#define CUBEUV_MAX_MIP ' + envMapCubeUVSize.maxMip + '.0' : '',\n\t\t\tparameters.lightMap ? '#define USE_LIGHTMAP' : '',\n\t\t\tparameters.aoMap ? '#define USE_AOMAP' : '',\n\t\t\tparameters.bumpMap ? '#define USE_BUMPMAP' : '',\n\t\t\tparameters.normalMap ? '#define USE_NORMALMAP' : '',\n\t\t\tparameters.normalMapObjectSpace ? '#define USE_NORMALMAP_OBJECTSPACE' : '',\n\t\t\tparameters.normalMapTangentSpace ? '#define USE_NORMALMAP_TANGENTSPACE' : '',\n\t\t\tparameters.emissiveMap ? '#define USE_EMISSIVEMAP' : '',\n\n\t\t\tparameters.anisotropy ? '#define USE_ANISOTROPY' : '',\n\t\t\tparameters.anisotropyMap ? '#define USE_ANISOTROPYMAP' : '',\n\n\t\t\tparameters.clearcoat ? '#define USE_CLEARCOAT' : '',\n\t\t\tparameters.clearcoatMap ? '#define USE_CLEARCOATMAP' : '',\n\t\t\tparameters.clearcoatRoughnessMap ? '#define USE_CLEARCOAT_ROUGHNESSMAP' : '',\n\t\t\tparameters.clearcoatNormalMap ? '#define USE_CLEARCOAT_NORMALMAP' : '',\n\n\t\t\tparameters.dispersion ? '#define USE_DISPERSION' : '',\n\n\t\t\tparameters.iridescence ? '#define USE_IRIDESCENCE' : '',\n\t\t\tparameters.iridescenceMap ? '#define USE_IRIDESCENCEMAP' : '',\n\t\t\tparameters.iridescenceThicknessMap ? '#define USE_IRIDESCENCE_THICKNESSMAP' : '',\n\n\t\t\tparameters.specularMap ? '#define USE_SPECULARMAP' : '',\n\t\t\tparameters.specularColorMap ? '#define USE_SPECULAR_COLORMAP' : '',\n\t\t\tparameters.specularIntensityMap ? '#define USE_SPECULAR_INTENSITYMAP' : '',\n\n\t\t\tparameters.roughnessMap ? '#define USE_ROUGHNESSMAP' : '',\n\t\t\tparameters.metalnessMap ? '#define USE_METALNESSMAP' : '',\n\n\t\t\tparameters.alphaMap ? '#define USE_ALPHAMAP' : '',\n\t\t\tparameters.alphaTest ? '#define USE_ALPHATEST' : '',\n\t\t\tparameters.alphaHash ? '#define USE_ALPHAHASH' : '',\n\n\t\t\tparameters.sheen ? '#define USE_SHEEN' : '',\n\t\t\tparameters.sheenColorMap ? '#define USE_SHEEN_COLORMAP' : '',\n\t\t\tparameters.sheenRoughnessMap ? '#define USE_SHEEN_ROUGHNESSMAP' : '',\n\n\t\t\tparameters.transmission ? '#define USE_TRANSMISSION' : '',\n\t\t\tparameters.transmissionMap ? '#define USE_TRANSMISSIONMAP' : '',\n\t\t\tparameters.thicknessMap ? '#define USE_THICKNESSMAP' : '',\n\n\t\t\tparameters.vertexTangents && parameters.flatShading === false ? '#define USE_TANGENT' : '',\n\t\t\tparameters.vertexColors || parameters.instancingColor || parameters.batchingColor ? '#define USE_COLOR' : '',\n\t\t\tparameters.vertexAlphas ? '#define USE_COLOR_ALPHA' : '',\n\t\t\tparameters.vertexUv1s ? '#define USE_UV1' : '',\n\t\t\tparameters.vertexUv2s ? '#define USE_UV2' : '',\n\t\t\tparameters.vertexUv3s ? '#define USE_UV3' : '',\n\n\t\t\tparameters.pointsUvs ? '#define USE_POINTS_UV' : '',\n\n\t\t\tparameters.gradientMap ? '#define USE_GRADIENTMAP' : '',\n\n\t\t\tparameters.flatShading ? '#define FLAT_SHADED' : '',\n\n\t\t\tparameters.doubleSided ? '#define DOUBLE_SIDED' : '',\n\t\t\tparameters.flipSided ? '#define FLIP_SIDED' : '',\n\n\t\t\tparameters.shadowMapEnabled ? '#define USE_SHADOWMAP' : '',\n\t\t\tparameters.shadowMapEnabled ? '#define ' + shadowMapTypeDefine : '',\n\n\t\t\tparameters.premultipliedAlpha ? '#define PREMULTIPLIED_ALPHA' : '',\n\n\t\t\tparameters.numLightProbes > 0 ? '#define USE_LIGHT_PROBES' : '',\n\n\t\t\tparameters.decodeVideoTexture ? '#define DECODE_VIDEO_TEXTURE' : '',\n\t\t\tparameters.decodeVideoTextureEmissive ? '#define DECODE_VIDEO_TEXTURE_EMISSIVE' : '',\n\n\t\t\tparameters.logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '',\n\t\t\tparameters.reverseDepthBuffer ? '#define USE_REVERSEDEPTHBUF' : '',\n\n\t\t\t'uniform mat4 viewMatrix;',\n\t\t\t'uniform vec3 cameraPosition;',\n\t\t\t'uniform bool isOrthographic;',\n\n\t\t\t( parameters.toneMapping !== NoToneMapping ) ? '#define TONE_MAPPING' : '',\n\t\t\t( parameters.toneMapping !== NoToneMapping ) ? ShaderChunk[ 'tonemapping_pars_fragment' ] : '', // this code is required here because it is used by the toneMapping() function defined below\n\t\t\t( parameters.toneMapping !== NoToneMapping ) ? getToneMappingFunction( 'toneMapping', parameters.toneMapping ) : '',\n\n\t\t\tparameters.dithering ? '#define DITHERING' : '',\n\t\t\tparameters.opaque ? '#define OPAQUE' : '',\n\n\t\t\tShaderChunk[ 'colorspace_pars_fragment' ], // this code is required here because it is used by the various encoding/decoding function defined below\n\t\t\tgetTexelEncodingFunction( 'linearToOutputTexel', parameters.outputColorSpace ),\n\t\t\tgetLuminanceFunction(),\n\n\t\t\tparameters.useDepthPacking ? '#define DEPTH_PACKING ' + parameters.depthPacking : '',\n\n\t\t\t'\\n'\n\n\t\t].filter( filterEmptyLine ).join( '\\n' );\n\n\t}\n\n\tvertexShader = resolveIncludes( vertexShader );\n\tvertexShader = replaceLightNums( vertexShader, parameters );\n\tvertexShader = replaceClippingPlaneNums( vertexShader, parameters );\n\n\tfragmentShader = resolveIncludes( fragmentShader );\n\tfragmentShader = replaceLightNums( fragmentShader, parameters );\n\tfragmentShader = replaceClippingPlaneNums( fragmentShader, parameters );\n\n\tvertexShader = unrollLoops( vertexShader );\n\tfragmentShader = unrollLoops( fragmentShader );\n\n\tif ( parameters.isRawShaderMaterial !== true ) {\n\n\t\t// GLSL 3.0 conversion for built-in materials and ShaderMaterial\n\n\t\tversionString = '#version 300 es\\n';\n\n\t\tprefixVertex = [\n\t\t\tcustomVertexExtensions,\n\t\t\t'#define attribute in',\n\t\t\t'#define varying out',\n\t\t\t'#define texture2D texture'\n\t\t].join( '\\n' ) + '\\n' + prefixVertex;\n\n\t\tprefixFragment = [\n\t\t\t'#define varying in',\n\t\t\t( parameters.glslVersion === GLSL3 ) ? '' : 'layout(location = 0) out highp vec4 pc_fragColor;',\n\t\t\t( parameters.glslVersion === GLSL3 ) ? '' : '#define gl_FragColor pc_fragColor',\n\t\t\t'#define gl_FragDepthEXT gl_FragDepth',\n\t\t\t'#define texture2D texture',\n\t\t\t'#define textureCube texture',\n\t\t\t'#define texture2DProj textureProj',\n\t\t\t'#define texture2DLodEXT textureLod',\n\t\t\t'#define texture2DProjLodEXT textureProjLod',\n\t\t\t'#define textureCubeLodEXT textureLod',\n\t\t\t'#define texture2DGradEXT textureGrad',\n\t\t\t'#define texture2DProjGradEXT textureProjGrad',\n\t\t\t'#define textureCubeGradEXT textureGrad'\n\t\t].join( '\\n' ) + '\\n' + prefixFragment;\n\n\t}\n\n\tconst vertexGlsl = versionString + prefixVertex + vertexShader;\n\tconst fragmentGlsl = versionString + prefixFragment + fragmentShader;\n\n\t// console.log( '*VERTEX*', vertexGlsl );\n\t// console.log( '*FRAGMENT*', fragmentGlsl );\n\n\tconst glVertexShader = WebGLShader( gl, gl.VERTEX_SHADER, vertexGlsl );\n\tconst glFragmentShader = WebGLShader( gl, gl.FRAGMENT_SHADER, fragmentGlsl );\n\n\tgl.attachShader( program, glVertexShader );\n\tgl.attachShader( program, glFragmentShader );\n\n\t// Force a particular attribute to index 0.\n\n\tif ( parameters.index0AttributeName !== undefined ) {\n\n\t\tgl.bindAttribLocation( program, 0, parameters.index0AttributeName );\n\n\t} else if ( parameters.morphTargets === true ) {\n\n\t\t// programs with morphTargets displace position out of attribute 0\n\t\tgl.bindAttribLocation( program, 0, 'position' );\n\n\t}\n\n\tgl.linkProgram( program );\n\n\tfunction onFirstUse( self ) {\n\n\t\t// check for link errors\n\t\tif ( renderer.debug.checkShaderErrors ) {\n\n\t\t\tconst programLog = gl.getProgramInfoLog( program ).trim();\n\t\t\tconst vertexLog = gl.getShaderInfoLog( glVertexShader ).trim();\n\t\t\tconst fragmentLog = gl.getShaderInfoLog( glFragmentShader ).trim();\n\n\t\t\tlet runnable = true;\n\t\t\tlet haveDiagnostics = true;\n\n\t\t\tif ( gl.getProgramParameter( program, gl.LINK_STATUS ) === false ) {\n\n\t\t\t\trunnable = false;\n\n\t\t\t\tif ( typeof renderer.debug.onShaderError === 'function' ) {\n\n\t\t\t\t\trenderer.debug.onShaderError( gl, program, glVertexShader, glFragmentShader );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// default error reporting\n\n\t\t\t\t\tconst vertexErrors = getShaderErrors( gl, glVertexShader, 'vertex' );\n\t\t\t\t\tconst fragmentErrors = getShaderErrors( gl, glFragmentShader, 'fragment' );\n\n\t\t\t\t\tconsole.error(\n\t\t\t\t\t\t'THREE.WebGLProgram: Shader Error ' + gl.getError() + ' - ' +\n\t\t\t\t\t\t'VALIDATE_STATUS ' + gl.getProgramParameter( program, gl.VALIDATE_STATUS ) + '\\n\\n' +\n\t\t\t\t\t\t'Material Name: ' + self.name + '\\n' +\n\t\t\t\t\t\t'Material Type: ' + self.type + '\\n\\n' +\n\t\t\t\t\t\t'Program Info Log: ' + programLog + '\\n' +\n\t\t\t\t\t\tvertexErrors + '\\n' +\n\t\t\t\t\t\tfragmentErrors\n\t\t\t\t\t);\n\n\t\t\t\t}\n\n\t\t\t} else if ( programLog !== '' ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebGLProgram: Program Info Log:', programLog );\n\n\t\t\t} else if ( vertexLog === '' || fragmentLog === '' ) {\n\n\t\t\t\thaveDiagnostics = false;\n\n\t\t\t}\n\n\t\t\tif ( haveDiagnostics ) {\n\n\t\t\t\tself.diagnostics = {\n\n\t\t\t\t\trunnable: runnable,\n\n\t\t\t\t\tprogramLog: programLog,\n\n\t\t\t\t\tvertexShader: {\n\n\t\t\t\t\t\tlog: vertexLog,\n\t\t\t\t\t\tprefix: prefixVertex\n\n\t\t\t\t\t},\n\n\t\t\t\t\tfragmentShader: {\n\n\t\t\t\t\t\tlog: fragmentLog,\n\t\t\t\t\t\tprefix: prefixFragment\n\n\t\t\t\t\t}\n\n\t\t\t\t};\n\n\t\t\t}\n\n\t\t}\n\n\t\t// Clean up\n\n\t\t// Crashes in iOS9 and iOS10. #18402\n\t\t// gl.detachShader( program, glVertexShader );\n\t\t// gl.detachShader( program, glFragmentShader );\n\n\t\tgl.deleteShader( glVertexShader );\n\t\tgl.deleteShader( glFragmentShader );\n\n\t\tcachedUniforms = new WebGLUniforms( gl, program );\n\t\tcachedAttributes = fetchAttributeLocations( gl, program );\n\n\t}\n\n\t// set up caching for uniform locations\n\n\tlet cachedUniforms;\n\n\tthis.getUniforms = function () {\n\n\t\tif ( cachedUniforms === undefined ) {\n\n\t\t\t// Populates cachedUniforms and cachedAttributes\n\t\t\tonFirstUse( this );\n\n\t\t}\n\n\t\treturn cachedUniforms;\n\n\t};\n\n\t// set up caching for attribute locations\n\n\tlet cachedAttributes;\n\n\tthis.getAttributes = function () {\n\n\t\tif ( cachedAttributes === undefined ) {\n\n\t\t\t// Populates cachedAttributes and cachedUniforms\n\t\t\tonFirstUse( this );\n\n\t\t}\n\n\t\treturn cachedAttributes;\n\n\t};\n\n\t// indicate when the program is ready to be used. if the KHR_parallel_shader_compile extension isn't supported,\n\t// flag the program as ready immediately. It may cause a stall when it's first used.\n\n\tlet programReady = ( parameters.rendererExtensionParallelShaderCompile === false );\n\n\tthis.isReady = function () {\n\n\t\tif ( programReady === false ) {\n\n\t\t\tprogramReady = gl.getProgramParameter( program, COMPLETION_STATUS_KHR );\n\n\t\t}\n\n\t\treturn programReady;\n\n\t};\n\n\t// free resource\n\n\tthis.destroy = function () {\n\n\t\tbindingStates.releaseStatesOfProgram( this );\n\n\t\tgl.deleteProgram( program );\n\t\tthis.program = undefined;\n\n\t};\n\n\t//\n\n\tthis.type = parameters.shaderType;\n\tthis.name = parameters.shaderName;\n\tthis.id = programIdCount ++;\n\tthis.cacheKey = cacheKey;\n\tthis.usedTimes = 1;\n\tthis.program = program;\n\tthis.vertexShader = glVertexShader;\n\tthis.fragmentShader = glFragmentShader;\n\n\treturn this;\n\n}\n\nlet _id$1 = 0;\n\nclass WebGLShaderCache {\n\n\tconstructor() {\n\n\t\tthis.shaderCache = new Map();\n\t\tthis.materialCache = new Map();\n\n\t}\n\n\tupdate( material ) {\n\n\t\tconst vertexShader = material.vertexShader;\n\t\tconst fragmentShader = material.fragmentShader;\n\n\t\tconst vertexShaderStage = this._getShaderStage( vertexShader );\n\t\tconst fragmentShaderStage = this._getShaderStage( fragmentShader );\n\n\t\tconst materialShaders = this._getShaderCacheForMaterial( material );\n\n\t\tif ( materialShaders.has( vertexShaderStage ) === false ) {\n\n\t\t\tmaterialShaders.add( vertexShaderStage );\n\t\t\tvertexShaderStage.usedTimes ++;\n\n\t\t}\n\n\t\tif ( materialShaders.has( fragmentShaderStage ) === false ) {\n\n\t\t\tmaterialShaders.add( fragmentShaderStage );\n\t\t\tfragmentShaderStage.usedTimes ++;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tremove( material ) {\n\n\t\tconst materialShaders = this.materialCache.get( material );\n\n\t\tfor ( const shaderStage of materialShaders ) {\n\n\t\t\tshaderStage.usedTimes --;\n\n\t\t\tif ( shaderStage.usedTimes === 0 ) this.shaderCache.delete( shaderStage.code );\n\n\t\t}\n\n\t\tthis.materialCache.delete( material );\n\n\t\treturn this;\n\n\t}\n\n\tgetVertexShaderID( material ) {\n\n\t\treturn this._getShaderStage( material.vertexShader ).id;\n\n\t}\n\n\tgetFragmentShaderID( material ) {\n\n\t\treturn this._getShaderStage( material.fragmentShader ).id;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.shaderCache.clear();\n\t\tthis.materialCache.clear();\n\n\t}\n\n\t_getShaderCacheForMaterial( material ) {\n\n\t\tconst cache = this.materialCache;\n\t\tlet set = cache.get( material );\n\n\t\tif ( set === undefined ) {\n\n\t\t\tset = new Set();\n\t\t\tcache.set( material, set );\n\n\t\t}\n\n\t\treturn set;\n\n\t}\n\n\t_getShaderStage( code ) {\n\n\t\tconst cache = this.shaderCache;\n\t\tlet stage = cache.get( code );\n\n\t\tif ( stage === undefined ) {\n\n\t\t\tstage = new WebGLShaderStage( code );\n\t\t\tcache.set( code, stage );\n\n\t\t}\n\n\t\treturn stage;\n\n\t}\n\n}\n\nclass WebGLShaderStage {\n\n\tconstructor( code ) {\n\n\t\tthis.id = _id$1 ++;\n\n\t\tthis.code = code;\n\t\tthis.usedTimes = 0;\n\n\t}\n\n}\n\nfunction WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities, bindingStates, clipping ) {\n\n\tconst _programLayers = new Layers();\n\tconst _customShaders = new WebGLShaderCache();\n\tconst _activeChannels = new Set();\n\tconst programs = [];\n\n\tconst logarithmicDepthBuffer = capabilities.logarithmicDepthBuffer;\n\tconst SUPPORTS_VERTEX_TEXTURES = capabilities.vertexTextures;\n\n\tlet precision = capabilities.precision;\n\n\tconst shaderIDs = {\n\t\tMeshDepthMaterial: 'depth',\n\t\tMeshDistanceMaterial: 'distanceRGBA',\n\t\tMeshNormalMaterial: 'normal',\n\t\tMeshBasicMaterial: 'basic',\n\t\tMeshLambertMaterial: 'lambert',\n\t\tMeshPhongMaterial: 'phong',\n\t\tMeshToonMaterial: 'toon',\n\t\tMeshStandardMaterial: 'physical',\n\t\tMeshPhysicalMaterial: 'physical',\n\t\tMeshMatcapMaterial: 'matcap',\n\t\tLineBasicMaterial: 'basic',\n\t\tLineDashedMaterial: 'dashed',\n\t\tPointsMaterial: 'points',\n\t\tShadowMaterial: 'shadow',\n\t\tSpriteMaterial: 'sprite'\n\t};\n\n\tfunction getChannel( value ) {\n\n\t\t_activeChannels.add( value );\n\n\t\tif ( value === 0 ) return 'uv';\n\n\t\treturn `uv${ value }`;\n\n\t}\n\n\tfunction getParameters( material, lights, shadows, scene, object ) {\n\n\t\tconst fog = scene.fog;\n\t\tconst geometry = object.geometry;\n\t\tconst environment = material.isMeshStandardMaterial ? scene.environment : null;\n\n\t\tconst envMap = ( material.isMeshStandardMaterial ? cubeuvmaps : cubemaps ).get( material.envMap || environment );\n\t\tconst envMapCubeUVHeight = ( !! envMap ) && ( envMap.mapping === CubeUVReflectionMapping ) ? envMap.image.height : null;\n\n\t\tconst shaderID = shaderIDs[ material.type ];\n\n\t\t// heuristics to create shader parameters according to lights in the scene\n\t\t// (not to blow over maxLights budget)\n\n\t\tif ( material.precision !== null ) {\n\n\t\t\tprecision = capabilities.getMaxPrecision( material.precision );\n\n\t\t\tif ( precision !== material.precision ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebGLProgram.getParameters:', material.precision, 'not supported, using', precision, 'instead.' );\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tconst morphAttribute = geometry.morphAttributes.position || geometry.morphAttributes.normal || geometry.morphAttributes.color;\n\t\tconst morphTargetsCount = ( morphAttribute !== undefined ) ? morphAttribute.length : 0;\n\n\t\tlet morphTextureStride = 0;\n\n\t\tif ( geometry.morphAttributes.position !== undefined ) morphTextureStride = 1;\n\t\tif ( geometry.morphAttributes.normal !== undefined ) morphTextureStride = 2;\n\t\tif ( geometry.morphAttributes.color !== undefined ) morphTextureStride = 3;\n\n\t\t//\n\n\t\tlet vertexShader, fragmentShader;\n\t\tlet customVertexShaderID, customFragmentShaderID;\n\n\t\tif ( shaderID ) {\n\n\t\t\tconst shader = ShaderLib[ shaderID ];\n\n\t\t\tvertexShader = shader.vertexShader;\n\t\t\tfragmentShader = shader.fragmentShader;\n\n\t\t} else {\n\n\t\t\tvertexShader = material.vertexShader;\n\t\t\tfragmentShader = material.fragmentShader;\n\n\t\t\t_customShaders.update( material );\n\n\t\t\tcustomVertexShaderID = _customShaders.getVertexShaderID( material );\n\t\t\tcustomFragmentShaderID = _customShaders.getFragmentShaderID( material );\n\n\t\t}\n\n\t\tconst currentRenderTarget = renderer.getRenderTarget();\n\t\tconst reverseDepthBuffer = renderer.state.buffers.depth.getReversed();\n\n\t\tconst IS_INSTANCEDMESH = object.isInstancedMesh === true;\n\t\tconst IS_BATCHEDMESH = object.isBatchedMesh === true;\n\n\t\tconst HAS_MAP = !! material.map;\n\t\tconst HAS_MATCAP = !! material.matcap;\n\t\tconst HAS_ENVMAP = !! envMap;\n\t\tconst HAS_AOMAP = !! material.aoMap;\n\t\tconst HAS_LIGHTMAP = !! material.lightMap;\n\t\tconst HAS_BUMPMAP = !! material.bumpMap;\n\t\tconst HAS_NORMALMAP = !! material.normalMap;\n\t\tconst HAS_DISPLACEMENTMAP = !! material.displacementMap;\n\t\tconst HAS_EMISSIVEMAP = !! material.emissiveMap;\n\n\t\tconst HAS_METALNESSMAP = !! material.metalnessMap;\n\t\tconst HAS_ROUGHNESSMAP = !! material.roughnessMap;\n\n\t\tconst HAS_ANISOTROPY = material.anisotropy > 0;\n\t\tconst HAS_CLEARCOAT = material.clearcoat > 0;\n\t\tconst HAS_DISPERSION = material.dispersion > 0;\n\t\tconst HAS_IRIDESCENCE = material.iridescence > 0;\n\t\tconst HAS_SHEEN = material.sheen > 0;\n\t\tconst HAS_TRANSMISSION = material.transmission > 0;\n\n\t\tconst HAS_ANISOTROPYMAP = HAS_ANISOTROPY && !! material.anisotropyMap;\n\n\t\tconst HAS_CLEARCOATMAP = HAS_CLEARCOAT && !! material.clearcoatMap;\n\t\tconst HAS_CLEARCOAT_NORMALMAP = HAS_CLEARCOAT && !! material.clearcoatNormalMap;\n\t\tconst HAS_CLEARCOAT_ROUGHNESSMAP = HAS_CLEARCOAT && !! material.clearcoatRoughnessMap;\n\n\t\tconst HAS_IRIDESCENCEMAP = HAS_IRIDESCENCE && !! material.iridescenceMap;\n\t\tconst HAS_IRIDESCENCE_THICKNESSMAP = HAS_IRIDESCENCE && !! material.iridescenceThicknessMap;\n\n\t\tconst HAS_SHEEN_COLORMAP = HAS_SHEEN && !! material.sheenColorMap;\n\t\tconst HAS_SHEEN_ROUGHNESSMAP = HAS_SHEEN && !! material.sheenRoughnessMap;\n\n\t\tconst HAS_SPECULARMAP = !! material.specularMap;\n\t\tconst HAS_SPECULAR_COLORMAP = !! material.specularColorMap;\n\t\tconst HAS_SPECULAR_INTENSITYMAP = !! material.specularIntensityMap;\n\n\t\tconst HAS_TRANSMISSIONMAP = HAS_TRANSMISSION && !! material.transmissionMap;\n\t\tconst HAS_THICKNESSMAP = HAS_TRANSMISSION && !! material.thicknessMap;\n\n\t\tconst HAS_GRADIENTMAP = !! material.gradientMap;\n\n\t\tconst HAS_ALPHAMAP = !! material.alphaMap;\n\n\t\tconst HAS_ALPHATEST = material.alphaTest > 0;\n\n\t\tconst HAS_ALPHAHASH = !! material.alphaHash;\n\n\t\tconst HAS_EXTENSIONS = !! material.extensions;\n\n\t\tlet toneMapping = NoToneMapping;\n\n\t\tif ( material.toneMapped ) {\n\n\t\t\tif ( currentRenderTarget === null || currentRenderTarget.isXRRenderTarget === true ) {\n\n\t\t\t\ttoneMapping = renderer.toneMapping;\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst parameters = {\n\n\t\t\tshaderID: shaderID,\n\t\t\tshaderType: material.type,\n\t\t\tshaderName: material.name,\n\n\t\t\tvertexShader: vertexShader,\n\t\t\tfragmentShader: fragmentShader,\n\t\t\tdefines: material.defines,\n\n\t\t\tcustomVertexShaderID: customVertexShaderID,\n\t\t\tcustomFragmentShaderID: customFragmentShaderID,\n\n\t\t\tisRawShaderMaterial: material.isRawShaderMaterial === true,\n\t\t\tglslVersion: material.glslVersion,\n\n\t\t\tprecision: precision,\n\n\t\t\tbatching: IS_BATCHEDMESH,\n\t\t\tbatchingColor: IS_BATCHEDMESH && object._colorsTexture !== null,\n\t\t\tinstancing: IS_INSTANCEDMESH,\n\t\t\tinstancingColor: IS_INSTANCEDMESH && object.instanceColor !== null,\n\t\t\tinstancingMorph: IS_INSTANCEDMESH && object.morphTexture !== null,\n\n\t\t\tsupportsVertexTextures: SUPPORTS_VERTEX_TEXTURES,\n\t\t\toutputColorSpace: ( currentRenderTarget === null ) ? renderer.outputColorSpace : ( currentRenderTarget.isXRRenderTarget === true ? currentRenderTarget.texture.colorSpace : LinearSRGBColorSpace ),\n\t\t\talphaToCoverage: !! material.alphaToCoverage,\n\n\t\t\tmap: HAS_MAP,\n\t\t\tmatcap: HAS_MATCAP,\n\t\t\tenvMap: HAS_ENVMAP,\n\t\t\tenvMapMode: HAS_ENVMAP && envMap.mapping,\n\t\t\tenvMapCubeUVHeight: envMapCubeUVHeight,\n\t\t\taoMap: HAS_AOMAP,\n\t\t\tlightMap: HAS_LIGHTMAP,\n\t\t\tbumpMap: HAS_BUMPMAP,\n\t\t\tnormalMap: HAS_NORMALMAP,\n\t\t\tdisplacementMap: SUPPORTS_VERTEX_TEXTURES && HAS_DISPLACEMENTMAP,\n\t\t\temissiveMap: HAS_EMISSIVEMAP,\n\n\t\t\tnormalMapObjectSpace: HAS_NORMALMAP && material.normalMapType === ObjectSpaceNormalMap,\n\t\t\tnormalMapTangentSpace: HAS_NORMALMAP && material.normalMapType === TangentSpaceNormalMap,\n\n\t\t\tmetalnessMap: HAS_METALNESSMAP,\n\t\t\troughnessMap: HAS_ROUGHNESSMAP,\n\n\t\t\tanisotropy: HAS_ANISOTROPY,\n\t\t\tanisotropyMap: HAS_ANISOTROPYMAP,\n\n\t\t\tclearcoat: HAS_CLEARCOAT,\n\t\t\tclearcoatMap: HAS_CLEARCOATMAP,\n\t\t\tclearcoatNormalMap: HAS_CLEARCOAT_NORMALMAP,\n\t\t\tclearcoatRoughnessMap: HAS_CLEARCOAT_ROUGHNESSMAP,\n\n\t\t\tdispersion: HAS_DISPERSION,\n\n\t\t\tiridescence: HAS_IRIDESCENCE,\n\t\t\tiridescenceMap: HAS_IRIDESCENCEMAP,\n\t\t\tiridescenceThicknessMap: HAS_IRIDESCENCE_THICKNESSMAP,\n\n\t\t\tsheen: HAS_SHEEN,\n\t\t\tsheenColorMap: HAS_SHEEN_COLORMAP,\n\t\t\tsheenRoughnessMap: HAS_SHEEN_ROUGHNESSMAP,\n\n\t\t\tspecularMap: HAS_SPECULARMAP,\n\t\t\tspecularColorMap: HAS_SPECULAR_COLORMAP,\n\t\t\tspecularIntensityMap: HAS_SPECULAR_INTENSITYMAP,\n\n\t\t\ttransmission: HAS_TRANSMISSION,\n\t\t\ttransmissionMap: HAS_TRANSMISSIONMAP,\n\t\t\tthicknessMap: HAS_THICKNESSMAP,\n\n\t\t\tgradientMap: HAS_GRADIENTMAP,\n\n\t\t\topaque: material.transparent === false && material.blending === NormalBlending && material.alphaToCoverage === false,\n\n\t\t\talphaMap: HAS_ALPHAMAP,\n\t\t\talphaTest: HAS_ALPHATEST,\n\t\t\talphaHash: HAS_ALPHAHASH,\n\n\t\t\tcombine: material.combine,\n\n\t\t\t//\n\n\t\t\tmapUv: HAS_MAP && getChannel( material.map.channel ),\n\t\t\taoMapUv: HAS_AOMAP && getChannel( material.aoMap.channel ),\n\t\t\tlightMapUv: HAS_LIGHTMAP && getChannel( material.lightMap.channel ),\n\t\t\tbumpMapUv: HAS_BUMPMAP && getChannel( material.bumpMap.channel ),\n\t\t\tnormalMapUv: HAS_NORMALMAP && getChannel( material.normalMap.channel ),\n\t\t\tdisplacementMapUv: HAS_DISPLACEMENTMAP && getChannel( material.displacementMap.channel ),\n\t\t\temissiveMapUv: HAS_EMISSIVEMAP && getChannel( material.emissiveMap.channel ),\n\n\t\t\tmetalnessMapUv: HAS_METALNESSMAP && getChannel( material.metalnessMap.channel ),\n\t\t\troughnessMapUv: HAS_ROUGHNESSMAP && getChannel( material.roughnessMap.channel ),\n\n\t\t\tanisotropyMapUv: HAS_ANISOTROPYMAP && getChannel( material.anisotropyMap.channel ),\n\n\t\t\tclearcoatMapUv: HAS_CLEARCOATMAP && getChannel( material.clearcoatMap.channel ),\n\t\t\tclearcoatNormalMapUv: HAS_CLEARCOAT_NORMALMAP && getChannel( material.clearcoatNormalMap.channel ),\n\t\t\tclearcoatRoughnessMapUv: HAS_CLEARCOAT_ROUGHNESSMAP && getChannel( material.clearcoatRoughnessMap.channel ),\n\n\t\t\tiridescenceMapUv: HAS_IRIDESCENCEMAP && getChannel( material.iridescenceMap.channel ),\n\t\t\tiridescenceThicknessMapUv: HAS_IRIDESCENCE_THICKNESSMAP && getChannel( material.iridescenceThicknessMap.channel ),\n\n\t\t\tsheenColorMapUv: HAS_SHEEN_COLORMAP && getChannel( material.sheenColorMap.channel ),\n\t\t\tsheenRoughnessMapUv: HAS_SHEEN_ROUGHNESSMAP && getChannel( material.sheenRoughnessMap.channel ),\n\n\t\t\tspecularMapUv: HAS_SPECULARMAP && getChannel( material.specularMap.channel ),\n\t\t\tspecularColorMapUv: HAS_SPECULAR_COLORMAP && getChannel( material.specularColorMap.channel ),\n\t\t\tspecularIntensityMapUv: HAS_SPECULAR_INTENSITYMAP && getChannel( material.specularIntensityMap.channel ),\n\n\t\t\ttransmissionMapUv: HAS_TRANSMISSIONMAP && getChannel( material.transmissionMap.channel ),\n\t\t\tthicknessMapUv: HAS_THICKNESSMAP && getChannel( material.thicknessMap.channel ),\n\n\t\t\talphaMapUv: HAS_ALPHAMAP && getChannel( material.alphaMap.channel ),\n\n\t\t\t//\n\n\t\t\tvertexTangents: !! geometry.attributes.tangent && ( HAS_NORMALMAP || HAS_ANISOTROPY ),\n\t\t\tvertexColors: material.vertexColors,\n\t\t\tvertexAlphas: material.vertexColors === true && !! geometry.attributes.color && geometry.attributes.color.itemSize === 4,\n\n\t\t\tpointsUvs: object.isPoints === true && !! geometry.attributes.uv && ( HAS_MAP || HAS_ALPHAMAP ),\n\n\t\t\tfog: !! fog,\n\t\t\tuseFog: material.fog === true,\n\t\t\tfogExp2: ( !! fog && fog.isFogExp2 ),\n\n\t\t\tflatShading: material.flatShading === true,\n\n\t\t\tsizeAttenuation: material.sizeAttenuation === true,\n\t\t\tlogarithmicDepthBuffer: logarithmicDepthBuffer,\n\t\t\treverseDepthBuffer: reverseDepthBuffer,\n\n\t\t\tskinning: object.isSkinnedMesh === true,\n\n\t\t\tmorphTargets: geometry.morphAttributes.position !== undefined,\n\t\t\tmorphNormals: geometry.morphAttributes.normal !== undefined,\n\t\t\tmorphColors: geometry.morphAttributes.color !== undefined,\n\t\t\tmorphTargetsCount: morphTargetsCount,\n\t\t\tmorphTextureStride: morphTextureStride,\n\n\t\t\tnumDirLights: lights.directional.length,\n\t\t\tnumPointLights: lights.point.length,\n\t\t\tnumSpotLights: lights.spot.length,\n\t\t\tnumSpotLightMaps: lights.spotLightMap.length,\n\t\t\tnumRectAreaLights: lights.rectArea.length,\n\t\t\tnumHemiLights: lights.hemi.length,\n\n\t\t\tnumDirLightShadows: lights.directionalShadowMap.length,\n\t\t\tnumPointLightShadows: lights.pointShadowMap.length,\n\t\t\tnumSpotLightShadows: lights.spotShadowMap.length,\n\t\t\tnumSpotLightShadowsWithMaps: lights.numSpotLightShadowsWithMaps,\n\n\t\t\tnumLightProbes: lights.numLightProbes,\n\n\t\t\tnumClippingPlanes: clipping.numPlanes,\n\t\t\tnumClipIntersection: clipping.numIntersection,\n\n\t\t\tdithering: material.dithering,\n\n\t\t\tshadowMapEnabled: renderer.shadowMap.enabled && shadows.length > 0,\n\t\t\tshadowMapType: renderer.shadowMap.type,\n\n\t\t\ttoneMapping: toneMapping,\n\n\t\t\tdecodeVideoTexture: HAS_MAP && ( material.map.isVideoTexture === true ) && ( ColorManagement.getTransfer( material.map.colorSpace ) === SRGBTransfer ),\n\t\t\tdecodeVideoTextureEmissive: HAS_EMISSIVEMAP && ( material.emissiveMap.isVideoTexture === true ) && ( ColorManagement.getTransfer( material.emissiveMap.colorSpace ) === SRGBTransfer ),\n\n\t\t\tpremultipliedAlpha: material.premultipliedAlpha,\n\n\t\t\tdoubleSided: material.side === DoubleSide,\n\t\t\tflipSided: material.side === BackSide,\n\n\t\t\tuseDepthPacking: material.depthPacking >= 0,\n\t\t\tdepthPacking: material.depthPacking || 0,\n\n\t\t\tindex0AttributeName: material.index0AttributeName,\n\n\t\t\textensionClipCullDistance: HAS_EXTENSIONS && material.extensions.clipCullDistance === true && extensions.has( 'WEBGL_clip_cull_distance' ),\n\t\t\textensionMultiDraw: ( HAS_EXTENSIONS && material.extensions.multiDraw === true || IS_BATCHEDMESH ) && extensions.has( 'WEBGL_multi_draw' ),\n\n\t\t\trendererExtensionParallelShaderCompile: extensions.has( 'KHR_parallel_shader_compile' ),\n\n\t\t\tcustomProgramCacheKey: material.customProgramCacheKey()\n\n\t\t};\n\n\t\t// the usage of getChannel() determines the active texture channels for this shader\n\n\t\tparameters.vertexUv1s = _activeChannels.has( 1 );\n\t\tparameters.vertexUv2s = _activeChannels.has( 2 );\n\t\tparameters.vertexUv3s = _activeChannels.has( 3 );\n\n\t\t_activeChannels.clear();\n\n\t\treturn parameters;\n\n\t}\n\n\tfunction getProgramCacheKey( parameters ) {\n\n\t\tconst array = [];\n\n\t\tif ( parameters.shaderID ) {\n\n\t\t\tarray.push( parameters.shaderID );\n\n\t\t} else {\n\n\t\t\tarray.push( parameters.customVertexShaderID );\n\t\t\tarray.push( parameters.customFragmentShaderID );\n\n\t\t}\n\n\t\tif ( parameters.defines !== undefined ) {\n\n\t\t\tfor ( const name in parameters.defines ) {\n\n\t\t\t\tarray.push( name );\n\t\t\t\tarray.push( parameters.defines[ name ] );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( parameters.isRawShaderMaterial === false ) {\n\n\t\t\tgetProgramCacheKeyParameters( array, parameters );\n\t\t\tgetProgramCacheKeyBooleans( array, parameters );\n\t\t\tarray.push( renderer.outputColorSpace );\n\n\t\t}\n\n\t\tarray.push( parameters.customProgramCacheKey );\n\n\t\treturn array.join();\n\n\t}\n\n\tfunction getProgramCacheKeyParameters( array, parameters ) {\n\n\t\tarray.push( parameters.precision );\n\t\tarray.push( parameters.outputColorSpace );\n\t\tarray.push( parameters.envMapMode );\n\t\tarray.push( parameters.envMapCubeUVHeight );\n\t\tarray.push( parameters.mapUv );\n\t\tarray.push( parameters.alphaMapUv );\n\t\tarray.push( parameters.lightMapUv );\n\t\tarray.push( parameters.aoMapUv );\n\t\tarray.push( parameters.bumpMapUv );\n\t\tarray.push( parameters.normalMapUv );\n\t\tarray.push( parameters.displacementMapUv );\n\t\tarray.push( parameters.emissiveMapUv );\n\t\tarray.push( parameters.metalnessMapUv );\n\t\tarray.push( parameters.roughnessMapUv );\n\t\tarray.push( parameters.anisotropyMapUv );\n\t\tarray.push( parameters.clearcoatMapUv );\n\t\tarray.push( parameters.clearcoatNormalMapUv );\n\t\tarray.push( parameters.clearcoatRoughnessMapUv );\n\t\tarray.push( parameters.iridescenceMapUv );\n\t\tarray.push( parameters.iridescenceThicknessMapUv );\n\t\tarray.push( parameters.sheenColorMapUv );\n\t\tarray.push( parameters.sheenRoughnessMapUv );\n\t\tarray.push( parameters.specularMapUv );\n\t\tarray.push( parameters.specularColorMapUv );\n\t\tarray.push( parameters.specularIntensityMapUv );\n\t\tarray.push( parameters.transmissionMapUv );\n\t\tarray.push( parameters.thicknessMapUv );\n\t\tarray.push( parameters.combine );\n\t\tarray.push( parameters.fogExp2 );\n\t\tarray.push( parameters.sizeAttenuation );\n\t\tarray.push( parameters.morphTargetsCount );\n\t\tarray.push( parameters.morphAttributeCount );\n\t\tarray.push( parameters.numDirLights );\n\t\tarray.push( parameters.numPointLights );\n\t\tarray.push( parameters.numSpotLights );\n\t\tarray.push( parameters.numSpotLightMaps );\n\t\tarray.push( parameters.numHemiLights );\n\t\tarray.push( parameters.numRectAreaLights );\n\t\tarray.push( parameters.numDirLightShadows );\n\t\tarray.push( parameters.numPointLightShadows );\n\t\tarray.push( parameters.numSpotLightShadows );\n\t\tarray.push( parameters.numSpotLightShadowsWithMaps );\n\t\tarray.push( parameters.numLightProbes );\n\t\tarray.push( parameters.shadowMapType );\n\t\tarray.push( parameters.toneMapping );\n\t\tarray.push( parameters.numClippingPlanes );\n\t\tarray.push( parameters.numClipIntersection );\n\t\tarray.push( parameters.depthPacking );\n\n\t}\n\n\tfunction getProgramCacheKeyBooleans( array, parameters ) {\n\n\t\t_programLayers.disableAll();\n\n\t\tif ( parameters.supportsVertexTextures )\n\t\t\t_programLayers.enable( 0 );\n\t\tif ( parameters.instancing )\n\t\t\t_programLayers.enable( 1 );\n\t\tif ( parameters.instancingColor )\n\t\t\t_programLayers.enable( 2 );\n\t\tif ( parameters.instancingMorph )\n\t\t\t_programLayers.enable( 3 );\n\t\tif ( parameters.matcap )\n\t\t\t_programLayers.enable( 4 );\n\t\tif ( parameters.envMap )\n\t\t\t_programLayers.enable( 5 );\n\t\tif ( parameters.normalMapObjectSpace )\n\t\t\t_programLayers.enable( 6 );\n\t\tif ( parameters.normalMapTangentSpace )\n\t\t\t_programLayers.enable( 7 );\n\t\tif ( parameters.clearcoat )\n\t\t\t_programLayers.enable( 8 );\n\t\tif ( parameters.iridescence )\n\t\t\t_programLayers.enable( 9 );\n\t\tif ( parameters.alphaTest )\n\t\t\t_programLayers.enable( 10 );\n\t\tif ( parameters.vertexColors )\n\t\t\t_programLayers.enable( 11 );\n\t\tif ( parameters.vertexAlphas )\n\t\t\t_programLayers.enable( 12 );\n\t\tif ( parameters.vertexUv1s )\n\t\t\t_programLayers.enable( 13 );\n\t\tif ( parameters.vertexUv2s )\n\t\t\t_programLayers.enable( 14 );\n\t\tif ( parameters.vertexUv3s )\n\t\t\t_programLayers.enable( 15 );\n\t\tif ( parameters.vertexTangents )\n\t\t\t_programLayers.enable( 16 );\n\t\tif ( parameters.anisotropy )\n\t\t\t_programLayers.enable( 17 );\n\t\tif ( parameters.alphaHash )\n\t\t\t_programLayers.enable( 18 );\n\t\tif ( parameters.batching )\n\t\t\t_programLayers.enable( 19 );\n\t\tif ( parameters.dispersion )\n\t\t\t_programLayers.enable( 20 );\n\t\tif ( parameters.batchingColor )\n\t\t\t_programLayers.enable( 21 );\n\n\t\tarray.push( _programLayers.mask );\n\t\t_programLayers.disableAll();\n\n\t\tif ( parameters.fog )\n\t\t\t_programLayers.enable( 0 );\n\t\tif ( parameters.useFog )\n\t\t\t_programLayers.enable( 1 );\n\t\tif ( parameters.flatShading )\n\t\t\t_programLayers.enable( 2 );\n\t\tif ( parameters.logarithmicDepthBuffer )\n\t\t\t_programLayers.enable( 3 );\n\t\tif ( parameters.reverseDepthBuffer )\n\t\t\t_programLayers.enable( 4 );\n\t\tif ( parameters.skinning )\n\t\t\t_programLayers.enable( 5 );\n\t\tif ( parameters.morphTargets )\n\t\t\t_programLayers.enable( 6 );\n\t\tif ( parameters.morphNormals )\n\t\t\t_programLayers.enable( 7 );\n\t\tif ( parameters.morphColors )\n\t\t\t_programLayers.enable( 8 );\n\t\tif ( parameters.premultipliedAlpha )\n\t\t\t_programLayers.enable( 9 );\n\t\tif ( parameters.shadowMapEnabled )\n\t\t\t_programLayers.enable( 10 );\n\t\tif ( parameters.doubleSided )\n\t\t\t_programLayers.enable( 11 );\n\t\tif ( parameters.flipSided )\n\t\t\t_programLayers.enable( 12 );\n\t\tif ( parameters.useDepthPacking )\n\t\t\t_programLayers.enable( 13 );\n\t\tif ( parameters.dithering )\n\t\t\t_programLayers.enable( 14 );\n\t\tif ( parameters.transmission )\n\t\t\t_programLayers.enable( 15 );\n\t\tif ( parameters.sheen )\n\t\t\t_programLayers.enable( 16 );\n\t\tif ( parameters.opaque )\n\t\t\t_programLayers.enable( 17 );\n\t\tif ( parameters.pointsUvs )\n\t\t\t_programLayers.enable( 18 );\n\t\tif ( parameters.decodeVideoTexture )\n\t\t\t_programLayers.enable( 19 );\n\t\tif ( parameters.decodeVideoTextureEmissive )\n\t\t\t_programLayers.enable( 20 );\n\t\tif ( parameters.alphaToCoverage )\n\t\t\t_programLayers.enable( 21 );\n\n\t\tarray.push( _programLayers.mask );\n\n\t}\n\n\tfunction getUniforms( material ) {\n\n\t\tconst shaderID = shaderIDs[ material.type ];\n\t\tlet uniforms;\n\n\t\tif ( shaderID ) {\n\n\t\t\tconst shader = ShaderLib[ shaderID ];\n\t\t\tuniforms = UniformsUtils.clone( shader.uniforms );\n\n\t\t} else {\n\n\t\t\tuniforms = material.uniforms;\n\n\t\t}\n\n\t\treturn uniforms;\n\n\t}\n\n\tfunction acquireProgram( parameters, cacheKey ) {\n\n\t\tlet program;\n\n\t\t// Check if code has been already compiled\n\t\tfor ( let p = 0, pl = programs.length; p < pl; p ++ ) {\n\n\t\t\tconst preexistingProgram = programs[ p ];\n\n\t\t\tif ( preexistingProgram.cacheKey === cacheKey ) {\n\n\t\t\t\tprogram = preexistingProgram;\n\t\t\t\t++ program.usedTimes;\n\n\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( program === undefined ) {\n\n\t\t\tprogram = new WebGLProgram( renderer, cacheKey, parameters, bindingStates );\n\t\t\tprograms.push( program );\n\n\t\t}\n\n\t\treturn program;\n\n\t}\n\n\tfunction releaseProgram( program ) {\n\n\t\tif ( -- program.usedTimes === 0 ) {\n\n\t\t\t// Remove from unordered set\n\t\t\tconst i = programs.indexOf( program );\n\t\t\tprograms[ i ] = programs[ programs.length - 1 ];\n\t\t\tprograms.pop();\n\n\t\t\t// Free WebGL resources\n\t\t\tprogram.destroy();\n\n\t\t}\n\n\t}\n\n\tfunction releaseShaderCache( material ) {\n\n\t\t_customShaders.remove( material );\n\n\t}\n\n\tfunction dispose() {\n\n\t\t_customShaders.dispose();\n\n\t}\n\n\treturn {\n\t\tgetParameters: getParameters,\n\t\tgetProgramCacheKey: getProgramCacheKey,\n\t\tgetUniforms: getUniforms,\n\t\tacquireProgram: acquireProgram,\n\t\treleaseProgram: releaseProgram,\n\t\treleaseShaderCache: releaseShaderCache,\n\t\t// Exposed for resource monitoring & error feedback via renderer.info:\n\t\tprograms: programs,\n\t\tdispose: dispose\n\t};\n\n}\n\nfunction WebGLProperties() {\n\n\tlet properties = new WeakMap();\n\n\tfunction has( object ) {\n\n\t\treturn properties.has( object );\n\n\t}\n\n\tfunction get( object ) {\n\n\t\tlet map = properties.get( object );\n\n\t\tif ( map === undefined ) {\n\n\t\t\tmap = {};\n\t\t\tproperties.set( object, map );\n\n\t\t}\n\n\t\treturn map;\n\n\t}\n\n\tfunction remove( object ) {\n\n\t\tproperties.delete( object );\n\n\t}\n\n\tfunction update( object, key, value ) {\n\n\t\tproperties.get( object )[ key ] = value;\n\n\t}\n\n\tfunction dispose() {\n\n\t\tproperties = new WeakMap();\n\n\t}\n\n\treturn {\n\t\thas: has,\n\t\tget: get,\n\t\tremove: remove,\n\t\tupdate: update,\n\t\tdispose: dispose\n\t};\n\n}\n\nfunction painterSortStable( a, b ) {\n\n\tif ( a.groupOrder !== b.groupOrder ) {\n\n\t\treturn a.groupOrder - b.groupOrder;\n\n\t} else if ( a.renderOrder !== b.renderOrder ) {\n\n\t\treturn a.renderOrder - b.renderOrder;\n\n\t} else if ( a.material.id !== b.material.id ) {\n\n\t\treturn a.material.id - b.material.id;\n\n\t} else if ( a.z !== b.z ) {\n\n\t\treturn a.z - b.z;\n\n\t} else {\n\n\t\treturn a.id - b.id;\n\n\t}\n\n}\n\nfunction reversePainterSortStable( a, b ) {\n\n\tif ( a.groupOrder !== b.groupOrder ) {\n\n\t\treturn a.groupOrder - b.groupOrder;\n\n\t} else if ( a.renderOrder !== b.renderOrder ) {\n\n\t\treturn a.renderOrder - b.renderOrder;\n\n\t} else if ( a.z !== b.z ) {\n\n\t\treturn b.z - a.z;\n\n\t} else {\n\n\t\treturn a.id - b.id;\n\n\t}\n\n}\n\n\nfunction WebGLRenderList() {\n\n\tconst renderItems = [];\n\tlet renderItemsIndex = 0;\n\n\tconst opaque = [];\n\tconst transmissive = [];\n\tconst transparent = [];\n\n\tfunction init() {\n\n\t\trenderItemsIndex = 0;\n\n\t\topaque.length = 0;\n\t\ttransmissive.length = 0;\n\t\ttransparent.length = 0;\n\n\t}\n\n\tfunction getNextRenderItem( object, geometry, material, groupOrder, z, group ) {\n\n\t\tlet renderItem = renderItems[ renderItemsIndex ];\n\n\t\tif ( renderItem === undefined ) {\n\n\t\t\trenderItem = {\n\t\t\t\tid: object.id,\n\t\t\t\tobject: object,\n\t\t\t\tgeometry: geometry,\n\t\t\t\tmaterial: material,\n\t\t\t\tgroupOrder: groupOrder,\n\t\t\t\trenderOrder: object.renderOrder,\n\t\t\t\tz: z,\n\t\t\t\tgroup: group\n\t\t\t};\n\n\t\t\trenderItems[ renderItemsIndex ] = renderItem;\n\n\t\t} else {\n\n\t\t\trenderItem.id = object.id;\n\t\t\trenderItem.object = object;\n\t\t\trenderItem.geometry = geometry;\n\t\t\trenderItem.material = material;\n\t\t\trenderItem.groupOrder = groupOrder;\n\t\t\trenderItem.renderOrder = object.renderOrder;\n\t\t\trenderItem.z = z;\n\t\t\trenderItem.group = group;\n\n\t\t}\n\n\t\trenderItemsIndex ++;\n\n\t\treturn renderItem;\n\n\t}\n\n\tfunction push( object, geometry, material, groupOrder, z, group ) {\n\n\t\tconst renderItem = getNextRenderItem( object, geometry, material, groupOrder, z, group );\n\n\t\tif ( material.transmission > 0.0 ) {\n\n\t\t\ttransmissive.push( renderItem );\n\n\t\t} else if ( material.transparent === true ) {\n\n\t\t\ttransparent.push( renderItem );\n\n\t\t} else {\n\n\t\t\topaque.push( renderItem );\n\n\t\t}\n\n\t}\n\n\tfunction unshift( object, geometry, material, groupOrder, z, group ) {\n\n\t\tconst renderItem = getNextRenderItem( object, geometry, material, groupOrder, z, group );\n\n\t\tif ( material.transmission > 0.0 ) {\n\n\t\t\ttransmissive.unshift( renderItem );\n\n\t\t} else if ( material.transparent === true ) {\n\n\t\t\ttransparent.unshift( renderItem );\n\n\t\t} else {\n\n\t\t\topaque.unshift( renderItem );\n\n\t\t}\n\n\t}\n\n\tfunction sort( customOpaqueSort, customTransparentSort ) {\n\n\t\tif ( opaque.length > 1 ) opaque.sort( customOpaqueSort || painterSortStable );\n\t\tif ( transmissive.length > 1 ) transmissive.sort( customTransparentSort || reversePainterSortStable );\n\t\tif ( transparent.length > 1 ) transparent.sort( customTransparentSort || reversePainterSortStable );\n\n\t}\n\n\tfunction finish() {\n\n\t\t// Clear references from inactive renderItems in the list\n\n\t\tfor ( let i = renderItemsIndex, il = renderItems.length; i < il; i ++ ) {\n\n\t\t\tconst renderItem = renderItems[ i ];\n\n\t\t\tif ( renderItem.id === null ) break;\n\n\t\t\trenderItem.id = null;\n\t\t\trenderItem.object = null;\n\t\t\trenderItem.geometry = null;\n\t\t\trenderItem.material = null;\n\t\t\trenderItem.group = null;\n\n\t\t}\n\n\t}\n\n\treturn {\n\n\t\topaque: opaque,\n\t\ttransmissive: transmissive,\n\t\ttransparent: transparent,\n\n\t\tinit: init,\n\t\tpush: push,\n\t\tunshift: unshift,\n\t\tfinish: finish,\n\n\t\tsort: sort\n\t};\n\n}\n\nfunction WebGLRenderLists() {\n\n\tlet lists = new WeakMap();\n\n\tfunction get( scene, renderCallDepth ) {\n\n\t\tconst listArray = lists.get( scene );\n\t\tlet list;\n\n\t\tif ( listArray === undefined ) {\n\n\t\t\tlist = new WebGLRenderList();\n\t\t\tlists.set( scene, [ list ] );\n\n\t\t} else {\n\n\t\t\tif ( renderCallDepth >= listArray.length ) {\n\n\t\t\t\tlist = new WebGLRenderList();\n\t\t\t\tlistArray.push( list );\n\n\t\t\t} else {\n\n\t\t\t\tlist = listArray[ renderCallDepth ];\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn list;\n\n\t}\n\n\tfunction dispose() {\n\n\t\tlists = new WeakMap();\n\n\t}\n\n\treturn {\n\t\tget: get,\n\t\tdispose: dispose\n\t};\n\n}\n\nfunction UniformsCache() {\n\n\tconst lights = {};\n\n\treturn {\n\n\t\tget: function ( light ) {\n\n\t\t\tif ( lights[ light.id ] !== undefined ) {\n\n\t\t\t\treturn lights[ light.id ];\n\n\t\t\t}\n\n\t\t\tlet uniforms;\n\n\t\t\tswitch ( light.type ) {\n\n\t\t\t\tcase 'DirectionalLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tdirection: new Vector3(),\n\t\t\t\t\t\tcolor: new Color()\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'SpotLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tposition: new Vector3(),\n\t\t\t\t\t\tdirection: new Vector3(),\n\t\t\t\t\t\tcolor: new Color(),\n\t\t\t\t\t\tdistance: 0,\n\t\t\t\t\t\tconeCos: 0,\n\t\t\t\t\t\tpenumbraCos: 0,\n\t\t\t\t\t\tdecay: 0\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'PointLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tposition: new Vector3(),\n\t\t\t\t\t\tcolor: new Color(),\n\t\t\t\t\t\tdistance: 0,\n\t\t\t\t\t\tdecay: 0\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'HemisphereLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tdirection: new Vector3(),\n\t\t\t\t\t\tskyColor: new Color(),\n\t\t\t\t\t\tgroundColor: new Color()\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'RectAreaLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tcolor: new Color(),\n\t\t\t\t\t\tposition: new Vector3(),\n\t\t\t\t\t\thalfWidth: new Vector3(),\n\t\t\t\t\t\thalfHeight: new Vector3()\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t\tlights[ light.id ] = uniforms;\n\n\t\t\treturn uniforms;\n\n\t\t}\n\n\t};\n\n}\n\nfunction ShadowUniformsCache() {\n\n\tconst lights = {};\n\n\treturn {\n\n\t\tget: function ( light ) {\n\n\t\t\tif ( lights[ light.id ] !== undefined ) {\n\n\t\t\t\treturn lights[ light.id ];\n\n\t\t\t}\n\n\t\t\tlet uniforms;\n\n\t\t\tswitch ( light.type ) {\n\n\t\t\t\tcase 'DirectionalLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tshadowIntensity: 1,\n\t\t\t\t\t\tshadowBias: 0,\n\t\t\t\t\t\tshadowNormalBias: 0,\n\t\t\t\t\t\tshadowRadius: 1,\n\t\t\t\t\t\tshadowMapSize: new Vector2()\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'SpotLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tshadowIntensity: 1,\n\t\t\t\t\t\tshadowBias: 0,\n\t\t\t\t\t\tshadowNormalBias: 0,\n\t\t\t\t\t\tshadowRadius: 1,\n\t\t\t\t\t\tshadowMapSize: new Vector2()\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'PointLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tshadowIntensity: 1,\n\t\t\t\t\t\tshadowBias: 0,\n\t\t\t\t\t\tshadowNormalBias: 0,\n\t\t\t\t\t\tshadowRadius: 1,\n\t\t\t\t\t\tshadowMapSize: new Vector2(),\n\t\t\t\t\t\tshadowCameraNear: 1,\n\t\t\t\t\t\tshadowCameraFar: 1000\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t\t// TODO (abelnation): set RectAreaLight shadow uniforms\n\n\t\t\t}\n\n\t\t\tlights[ light.id ] = uniforms;\n\n\t\t\treturn uniforms;\n\n\t\t}\n\n\t};\n\n}\n\n\n\nlet nextVersion = 0;\n\nfunction shadowCastingAndTexturingLightsFirst( lightA, lightB ) {\n\n\treturn ( lightB.castShadow ? 2 : 0 ) - ( lightA.castShadow ? 2 : 0 ) + ( lightB.map ? 1 : 0 ) - ( lightA.map ? 1 : 0 );\n\n}\n\nfunction WebGLLights( extensions ) {\n\n\tconst cache = new UniformsCache();\n\n\tconst shadowCache = ShadowUniformsCache();\n\n\tconst state = {\n\n\t\tversion: 0,\n\n\t\thash: {\n\t\t\tdirectionalLength: - 1,\n\t\t\tpointLength: - 1,\n\t\t\tspotLength: - 1,\n\t\t\trectAreaLength: - 1,\n\t\t\themiLength: - 1,\n\n\t\t\tnumDirectionalShadows: - 1,\n\t\t\tnumPointShadows: - 1,\n\t\t\tnumSpotShadows: - 1,\n\t\t\tnumSpotMaps: - 1,\n\n\t\t\tnumLightProbes: - 1\n\t\t},\n\n\t\tambient: [ 0, 0, 0 ],\n\t\tprobe: [],\n\t\tdirectional: [],\n\t\tdirectionalShadow: [],\n\t\tdirectionalShadowMap: [],\n\t\tdirectionalShadowMatrix: [],\n\t\tspot: [],\n\t\tspotLightMap: [],\n\t\tspotShadow: [],\n\t\tspotShadowMap: [],\n\t\tspotLightMatrix: [],\n\t\trectArea: [],\n\t\trectAreaLTC1: null,\n\t\trectAreaLTC2: null,\n\t\tpoint: [],\n\t\tpointShadow: [],\n\t\tpointShadowMap: [],\n\t\tpointShadowMatrix: [],\n\t\themi: [],\n\t\tnumSpotLightShadowsWithMaps: 0,\n\t\tnumLightProbes: 0\n\n\t};\n\n\tfor ( let i = 0; i < 9; i ++ ) state.probe.push( new Vector3() );\n\n\tconst vector3 = new Vector3();\n\tconst matrix4 = new Matrix4();\n\tconst matrix42 = new Matrix4();\n\n\tfunction setup( lights ) {\n\n\t\tlet r = 0, g = 0, b = 0;\n\n\t\tfor ( let i = 0; i < 9; i ++ ) state.probe[ i ].set( 0, 0, 0 );\n\n\t\tlet directionalLength = 0;\n\t\tlet pointLength = 0;\n\t\tlet spotLength = 0;\n\t\tlet rectAreaLength = 0;\n\t\tlet hemiLength = 0;\n\n\t\tlet numDirectionalShadows = 0;\n\t\tlet numPointShadows = 0;\n\t\tlet numSpotShadows = 0;\n\t\tlet numSpotMaps = 0;\n\t\tlet numSpotShadowsWithMaps = 0;\n\n\t\tlet numLightProbes = 0;\n\n\t\t// ordering : [shadow casting + map texturing, map texturing, shadow casting, none ]\n\t\tlights.sort( shadowCastingAndTexturingLightsFirst );\n\n\t\tfor ( let i = 0, l = lights.length; i < l; i ++ ) {\n\n\t\t\tconst light = lights[ i ];\n\n\t\t\tconst color = light.color;\n\t\t\tconst intensity = light.intensity;\n\t\t\tconst distance = light.distance;\n\n\t\t\tconst shadowMap = ( light.shadow && light.shadow.map ) ? light.shadow.map.texture : null;\n\n\t\t\tif ( light.isAmbientLight ) {\n\n\t\t\t\tr += color.r * intensity;\n\t\t\t\tg += color.g * intensity;\n\t\t\t\tb += color.b * intensity;\n\n\t\t\t} else if ( light.isLightProbe ) {\n\n\t\t\t\tfor ( let j = 0; j < 9; j ++ ) {\n\n\t\t\t\t\tstate.probe[ j ].addScaledVector( light.sh.coefficients[ j ], intensity );\n\n\t\t\t\t}\n\n\t\t\t\tnumLightProbes ++;\n\n\t\t\t} else if ( light.isDirectionalLight ) {\n\n\t\t\t\tconst uniforms = cache.get( light );\n\n\t\t\t\tuniforms.color.copy( light.color ).multiplyScalar( light.intensity );\n\n\t\t\t\tif ( light.castShadow ) {\n\n\t\t\t\t\tconst shadow = light.shadow;\n\n\t\t\t\t\tconst shadowUniforms = shadowCache.get( light );\n\n\t\t\t\t\tshadowUniforms.shadowIntensity = shadow.intensity;\n\t\t\t\t\tshadowUniforms.shadowBias = shadow.bias;\n\t\t\t\t\tshadowUniforms.shadowNormalBias = shadow.normalBias;\n\t\t\t\t\tshadowUniforms.shadowRadius = shadow.radius;\n\t\t\t\t\tshadowUniforms.shadowMapSize = shadow.mapSize;\n\n\t\t\t\t\tstate.directionalShadow[ directionalLength ] = shadowUniforms;\n\t\t\t\t\tstate.directionalShadowMap[ directionalLength ] = shadowMap;\n\t\t\t\t\tstate.directionalShadowMatrix[ directionalLength ] = light.shadow.matrix;\n\n\t\t\t\t\tnumDirectionalShadows ++;\n\n\t\t\t\t}\n\n\t\t\t\tstate.directional[ directionalLength ] = uniforms;\n\n\t\t\t\tdirectionalLength ++;\n\n\t\t\t} else if ( light.isSpotLight ) {\n\n\t\t\t\tconst uniforms = cache.get( light );\n\n\t\t\t\tuniforms.position.setFromMatrixPosition( light.matrixWorld );\n\n\t\t\t\tuniforms.color.copy( color ).multiplyScalar( intensity );\n\t\t\t\tuniforms.distance = distance;\n\n\t\t\t\tuniforms.coneCos = Math.cos( light.angle );\n\t\t\t\tuniforms.penumbraCos = Math.cos( light.angle * ( 1 - light.penumbra ) );\n\t\t\t\tuniforms.decay = light.decay;\n\n\t\t\t\tstate.spot[ spotLength ] = uniforms;\n\n\t\t\t\tconst shadow = light.shadow;\n\n\t\t\t\tif ( light.map ) {\n\n\t\t\t\t\tstate.spotLightMap[ numSpotMaps ] = light.map;\n\t\t\t\t\tnumSpotMaps ++;\n\n\t\t\t\t\t// make sure the lightMatrix is up to date\n\t\t\t\t\t// TODO : do it if required only\n\t\t\t\t\tshadow.updateMatrices( light );\n\n\t\t\t\t\tif ( light.castShadow ) numSpotShadowsWithMaps ++;\n\n\t\t\t\t}\n\n\t\t\t\tstate.spotLightMatrix[ spotLength ] = shadow.matrix;\n\n\t\t\t\tif ( light.castShadow ) {\n\n\t\t\t\t\tconst shadowUniforms = shadowCache.get( light );\n\n\t\t\t\t\tshadowUniforms.shadowIntensity = shadow.intensity;\n\t\t\t\t\tshadowUniforms.shadowBias = shadow.bias;\n\t\t\t\t\tshadowUniforms.shadowNormalBias = shadow.normalBias;\n\t\t\t\t\tshadowUniforms.shadowRadius = shadow.radius;\n\t\t\t\t\tshadowUniforms.shadowMapSize = shadow.mapSize;\n\n\t\t\t\t\tstate.spotShadow[ spotLength ] = shadowUniforms;\n\t\t\t\t\tstate.spotShadowMap[ spotLength ] = shadowMap;\n\n\t\t\t\t\tnumSpotShadows ++;\n\n\t\t\t\t}\n\n\t\t\t\tspotLength ++;\n\n\t\t\t} else if ( light.isRectAreaLight ) {\n\n\t\t\t\tconst uniforms = cache.get( light );\n\n\t\t\t\tuniforms.color.copy( color ).multiplyScalar( intensity );\n\n\t\t\t\tuniforms.halfWidth.set( light.width * 0.5, 0.0, 0.0 );\n\t\t\t\tuniforms.halfHeight.set( 0.0, light.height * 0.5, 0.0 );\n\n\t\t\t\tstate.rectArea[ rectAreaLength ] = uniforms;\n\n\t\t\t\trectAreaLength ++;\n\n\t\t\t} else if ( light.isPointLight ) {\n\n\t\t\t\tconst uniforms = cache.get( light );\n\n\t\t\t\tuniforms.color.copy( light.color ).multiplyScalar( light.intensity );\n\t\t\t\tuniforms.distance = light.distance;\n\t\t\t\tuniforms.decay = light.decay;\n\n\t\t\t\tif ( light.castShadow ) {\n\n\t\t\t\t\tconst shadow = light.shadow;\n\n\t\t\t\t\tconst shadowUniforms = shadowCache.get( light );\n\n\t\t\t\t\tshadowUniforms.shadowIntensity = shadow.intensity;\n\t\t\t\t\tshadowUniforms.shadowBias = shadow.bias;\n\t\t\t\t\tshadowUniforms.shadowNormalBias = shadow.normalBias;\n\t\t\t\t\tshadowUniforms.shadowRadius = shadow.radius;\n\t\t\t\t\tshadowUniforms.shadowMapSize = shadow.mapSize;\n\t\t\t\t\tshadowUniforms.shadowCameraNear = shadow.camera.near;\n\t\t\t\t\tshadowUniforms.shadowCameraFar = shadow.camera.far;\n\n\t\t\t\t\tstate.pointShadow[ pointLength ] = shadowUniforms;\n\t\t\t\t\tstate.pointShadowMap[ pointLength ] = shadowMap;\n\t\t\t\t\tstate.pointShadowMatrix[ pointLength ] = light.shadow.matrix;\n\n\t\t\t\t\tnumPointShadows ++;\n\n\t\t\t\t}\n\n\t\t\t\tstate.point[ pointLength ] = uniforms;\n\n\t\t\t\tpointLength ++;\n\n\t\t\t} else if ( light.isHemisphereLight ) {\n\n\t\t\t\tconst uniforms = cache.get( light );\n\n\t\t\t\tuniforms.skyColor.copy( light.color ).multiplyScalar( intensity );\n\t\t\t\tuniforms.groundColor.copy( light.groundColor ).multiplyScalar( intensity );\n\n\t\t\t\tstate.hemi[ hemiLength ] = uniforms;\n\n\t\t\t\themiLength ++;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( rectAreaLength > 0 ) {\n\n\t\t\tif ( extensions.has( 'OES_texture_float_linear' ) === true ) {\n\n\t\t\t\tstate.rectAreaLTC1 = UniformsLib.LTC_FLOAT_1;\n\t\t\t\tstate.rectAreaLTC2 = UniformsLib.LTC_FLOAT_2;\n\n\t\t\t} else {\n\n\t\t\t\tstate.rectAreaLTC1 = UniformsLib.LTC_HALF_1;\n\t\t\t\tstate.rectAreaLTC2 = UniformsLib.LTC_HALF_2;\n\n\t\t\t}\n\n\t\t}\n\n\t\tstate.ambient[ 0 ] = r;\n\t\tstate.ambient[ 1 ] = g;\n\t\tstate.ambient[ 2 ] = b;\n\n\t\tconst hash = state.hash;\n\n\t\tif ( hash.directionalLength !== directionalLength ||\n\t\t\thash.pointLength !== pointLength ||\n\t\t\thash.spotLength !== spotLength ||\n\t\t\thash.rectAreaLength !== rectAreaLength ||\n\t\t\thash.hemiLength !== hemiLength ||\n\t\t\thash.numDirectionalShadows !== numDirectionalShadows ||\n\t\t\thash.numPointShadows !== numPointShadows ||\n\t\t\thash.numSpotShadows !== numSpotShadows ||\n\t\t\thash.numSpotMaps !== numSpotMaps ||\n\t\t\thash.numLightProbes !== numLightProbes ) {\n\n\t\t\tstate.directional.length = directionalLength;\n\t\t\tstate.spot.length = spotLength;\n\t\t\tstate.rectArea.length = rectAreaLength;\n\t\t\tstate.point.length = pointLength;\n\t\t\tstate.hemi.length = hemiLength;\n\n\t\t\tstate.directionalShadow.length = numDirectionalShadows;\n\t\t\tstate.directionalShadowMap.length = numDirectionalShadows;\n\t\t\tstate.pointShadow.length = numPointShadows;\n\t\t\tstate.pointShadowMap.length = numPointShadows;\n\t\t\tstate.spotShadow.length = numSpotShadows;\n\t\t\tstate.spotShadowMap.length = numSpotShadows;\n\t\t\tstate.directionalShadowMatrix.length = numDirectionalShadows;\n\t\t\tstate.pointShadowMatrix.length = numPointShadows;\n\t\t\tstate.spotLightMatrix.length = numSpotShadows + numSpotMaps - numSpotShadowsWithMaps;\n\t\t\tstate.spotLightMap.length = numSpotMaps;\n\t\t\tstate.numSpotLightShadowsWithMaps = numSpotShadowsWithMaps;\n\t\t\tstate.numLightProbes = numLightProbes;\n\n\t\t\thash.directionalLength = directionalLength;\n\t\t\thash.pointLength = pointLength;\n\t\t\thash.spotLength = spotLength;\n\t\t\thash.rectAreaLength = rectAreaLength;\n\t\t\thash.hemiLength = hemiLength;\n\n\t\t\thash.numDirectionalShadows = numDirectionalShadows;\n\t\t\thash.numPointShadows = numPointShadows;\n\t\t\thash.numSpotShadows = numSpotShadows;\n\t\t\thash.numSpotMaps = numSpotMaps;\n\n\t\t\thash.numLightProbes = numLightProbes;\n\n\t\t\tstate.version = nextVersion ++;\n\n\t\t}\n\n\t}\n\n\tfunction setupView( lights, camera ) {\n\n\t\tlet directionalLength = 0;\n\t\tlet pointLength = 0;\n\t\tlet spotLength = 0;\n\t\tlet rectAreaLength = 0;\n\t\tlet hemiLength = 0;\n\n\t\tconst viewMatrix = camera.matrixWorldInverse;\n\n\t\tfor ( let i = 0, l = lights.length; i < l; i ++ ) {\n\n\t\t\tconst light = lights[ i ];\n\n\t\t\tif ( light.isDirectionalLight ) {\n\n\t\t\t\tconst uniforms = state.directional[ directionalLength ];\n\n\t\t\t\tuniforms.direction.setFromMatrixPosition( light.matrixWorld );\n\t\t\t\tvector3.setFromMatrixPosition( light.target.matrixWorld );\n\t\t\t\tuniforms.direction.sub( vector3 );\n\t\t\t\tuniforms.direction.transformDirection( viewMatrix );\n\n\t\t\t\tdirectionalLength ++;\n\n\t\t\t} else if ( light.isSpotLight ) {\n\n\t\t\t\tconst uniforms = state.spot[ spotLength ];\n\n\t\t\t\tuniforms.position.setFromMatrixPosition( light.matrixWorld );\n\t\t\t\tuniforms.position.applyMatrix4( viewMatrix );\n\n\t\t\t\tuniforms.direction.setFromMatrixPosition( light.matrixWorld );\n\t\t\t\tvector3.setFromMatrixPosition( light.target.matrixWorld );\n\t\t\t\tuniforms.direction.sub( vector3 );\n\t\t\t\tuniforms.direction.transformDirection( viewMatrix );\n\n\t\t\t\tspotLength ++;\n\n\t\t\t} else if ( light.isRectAreaLight ) {\n\n\t\t\t\tconst uniforms = state.rectArea[ rectAreaLength ];\n\n\t\t\t\tuniforms.position.setFromMatrixPosition( light.matrixWorld );\n\t\t\t\tuniforms.position.applyMatrix4( viewMatrix );\n\n\t\t\t\t// extract local rotation of light to derive width/height half vectors\n\t\t\t\tmatrix42.identity();\n\t\t\t\tmatrix4.copy( light.matrixWorld );\n\t\t\t\tmatrix4.premultiply( viewMatrix );\n\t\t\t\tmatrix42.extractRotation( matrix4 );\n\n\t\t\t\tuniforms.halfWidth.set( light.width * 0.5, 0.0, 0.0 );\n\t\t\t\tuniforms.halfHeight.set( 0.0, light.height * 0.5, 0.0 );\n\n\t\t\t\tuniforms.halfWidth.applyMatrix4( matrix42 );\n\t\t\t\tuniforms.halfHeight.applyMatrix4( matrix42 );\n\n\t\t\t\trectAreaLength ++;\n\n\t\t\t} else if ( light.isPointLight ) {\n\n\t\t\t\tconst uniforms = state.point[ pointLength ];\n\n\t\t\t\tuniforms.position.setFromMatrixPosition( light.matrixWorld );\n\t\t\t\tuniforms.position.applyMatrix4( viewMatrix );\n\n\t\t\t\tpointLength ++;\n\n\t\t\t} else if ( light.isHemisphereLight ) {\n\n\t\t\t\tconst uniforms = state.hemi[ hemiLength ];\n\n\t\t\t\tuniforms.direction.setFromMatrixPosition( light.matrixWorld );\n\t\t\t\tuniforms.direction.transformDirection( viewMatrix );\n\n\t\t\t\themiLength ++;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\treturn {\n\t\tsetup: setup,\n\t\tsetupView: setupView,\n\t\tstate: state\n\t};\n\n}\n\nfunction WebGLRenderState( extensions ) {\n\n\tconst lights = new WebGLLights( extensions );\n\n\tconst lightsArray = [];\n\tconst shadowsArray = [];\n\n\tfunction init( camera ) {\n\n\t\tstate.camera = camera;\n\n\t\tlightsArray.length = 0;\n\t\tshadowsArray.length = 0;\n\n\t}\n\n\tfunction pushLight( light ) {\n\n\t\tlightsArray.push( light );\n\n\t}\n\n\tfunction pushShadow( shadowLight ) {\n\n\t\tshadowsArray.push( shadowLight );\n\n\t}\n\n\tfunction setupLights() {\n\n\t\tlights.setup( lightsArray );\n\n\t}\n\n\tfunction setupLightsView( camera ) {\n\n\t\tlights.setupView( lightsArray, camera );\n\n\t}\n\n\tconst state = {\n\t\tlightsArray: lightsArray,\n\t\tshadowsArray: shadowsArray,\n\n\t\tcamera: null,\n\n\t\tlights: lights,\n\n\t\ttransmissionRenderTarget: {}\n\t};\n\n\treturn {\n\t\tinit: init,\n\t\tstate: state,\n\t\tsetupLights: setupLights,\n\t\tsetupLightsView: setupLightsView,\n\n\t\tpushLight: pushLight,\n\t\tpushShadow: pushShadow\n\t};\n\n}\n\nfunction WebGLRenderStates( extensions ) {\n\n\tlet renderStates = new WeakMap();\n\n\tfunction get( scene, renderCallDepth = 0 ) {\n\n\t\tconst renderStateArray = renderStates.get( scene );\n\t\tlet renderState;\n\n\t\tif ( renderStateArray === undefined ) {\n\n\t\t\trenderState = new WebGLRenderState( extensions );\n\t\t\trenderStates.set( scene, [ renderState ] );\n\n\t\t} else {\n\n\t\t\tif ( renderCallDepth >= renderStateArray.length ) {\n\n\t\t\t\trenderState = new WebGLRenderState( extensions );\n\t\t\t\trenderStateArray.push( renderState );\n\n\t\t\t} else {\n\n\t\t\t\trenderState = renderStateArray[ renderCallDepth ];\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn renderState;\n\n\t}\n\n\tfunction dispose() {\n\n\t\trenderStates = new WeakMap();\n\n\t}\n\n\treturn {\n\t\tget: get,\n\t\tdispose: dispose\n\t};\n\n}\n\nclass MeshDepthMaterial extends Material {\n\n\tstatic get type() {\n\n\t\treturn 'MeshDepthMaterial';\n\n\t}\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isMeshDepthMaterial = true;\n\n\t\tthis.depthPacking = BasicDepthPacking;\n\n\t\tthis.map = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.depthPacking = source.depthPacking;\n\n\t\tthis.map = source.map;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass MeshDistanceMaterial extends Material {\n\n\tstatic get type() {\n\n\t\treturn 'MeshDistanceMaterial';\n\n\t}\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isMeshDistanceMaterial = true;\n\n\t\tthis.map = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.map = source.map;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\treturn this;\n\n\t}\n\n}\n\nconst vertex = \"void main() {\\n\\tgl_Position = vec4( position, 1.0 );\\n}\";\n\nconst fragment = \"uniform sampler2D shadow_pass;\\nuniform vec2 resolution;\\nuniform float radius;\\n#include \\nvoid main() {\\n\\tconst float samples = float( VSM_SAMPLES );\\n\\tfloat mean = 0.0;\\n\\tfloat squared_mean = 0.0;\\n\\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\\n\\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\\n\\tfor ( float i = 0.0; i < samples; i ++ ) {\\n\\t\\tfloat uvOffset = uvStart + i * uvStride;\\n\\t\\t#ifdef HORIZONTAL_PASS\\n\\t\\t\\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\\n\\t\\t\\tmean += distribution.x;\\n\\t\\t\\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\\n\\t\\t#else\\n\\t\\t\\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\\n\\t\\t\\tmean += depth;\\n\\t\\t\\tsquared_mean += depth * depth;\\n\\t\\t#endif\\n\\t}\\n\\tmean = mean / samples;\\n\\tsquared_mean = squared_mean / samples;\\n\\tfloat std_dev = sqrt( squared_mean - mean * mean );\\n\\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\\n}\";\n\nfunction WebGLShadowMap( renderer, objects, capabilities ) {\n\n\tlet _frustum = new Frustum();\n\n\tconst _shadowMapSize = new Vector2(),\n\t\t_viewportSize = new Vector2(),\n\n\t\t_viewport = new Vector4(),\n\n\t\t_depthMaterial = new MeshDepthMaterial( { depthPacking: RGBADepthPacking } ),\n\t\t_distanceMaterial = new MeshDistanceMaterial(),\n\n\t\t_materialCache = {},\n\n\t\t_maxTextureSize = capabilities.maxTextureSize;\n\n\tconst shadowSide = { [ FrontSide ]: BackSide, [ BackSide ]: FrontSide, [ DoubleSide ]: DoubleSide };\n\n\tconst shadowMaterialVertical = new ShaderMaterial( {\n\t\tdefines: {\n\t\t\tVSM_SAMPLES: 8\n\t\t},\n\t\tuniforms: {\n\t\t\tshadow_pass: { value: null },\n\t\t\tresolution: { value: new Vector2() },\n\t\t\tradius: { value: 4.0 }\n\t\t},\n\n\t\tvertexShader: vertex,\n\t\tfragmentShader: fragment\n\n\t} );\n\n\tconst shadowMaterialHorizontal = shadowMaterialVertical.clone();\n\tshadowMaterialHorizontal.defines.HORIZONTAL_PASS = 1;\n\n\tconst fullScreenTri = new BufferGeometry();\n\tfullScreenTri.setAttribute(\n\t\t'position',\n\t\tnew BufferAttribute(\n\t\t\tnew Float32Array( [ - 1, - 1, 0.5, 3, - 1, 0.5, - 1, 3, 0.5 ] ),\n\t\t\t3\n\t\t)\n\t);\n\n\tconst fullScreenMesh = new Mesh( fullScreenTri, shadowMaterialVertical );\n\n\tconst scope = this;\n\n\tthis.enabled = false;\n\n\tthis.autoUpdate = true;\n\tthis.needsUpdate = false;\n\n\tthis.type = PCFShadowMap;\n\tlet _previousType = this.type;\n\n\tthis.render = function ( lights, scene, camera ) {\n\n\t\tif ( scope.enabled === false ) return;\n\t\tif ( scope.autoUpdate === false && scope.needsUpdate === false ) return;\n\n\t\tif ( lights.length === 0 ) return;\n\n\t\tconst currentRenderTarget = renderer.getRenderTarget();\n\t\tconst activeCubeFace = renderer.getActiveCubeFace();\n\t\tconst activeMipmapLevel = renderer.getActiveMipmapLevel();\n\n\t\tconst _state = renderer.state;\n\n\t\t// Set GL state for depth map.\n\t\t_state.setBlending( NoBlending );\n\t\t_state.buffers.color.setClear( 1, 1, 1, 1 );\n\t\t_state.buffers.depth.setTest( true );\n\t\t_state.setScissorTest( false );\n\n\t\t// check for shadow map type changes\n\n\t\tconst toVSM = ( _previousType !== VSMShadowMap && this.type === VSMShadowMap );\n\t\tconst fromVSM = ( _previousType === VSMShadowMap && this.type !== VSMShadowMap );\n\n\t\t// render depth map\n\n\t\tfor ( let i = 0, il = lights.length; i < il; i ++ ) {\n\n\t\t\tconst light = lights[ i ];\n\t\t\tconst shadow = light.shadow;\n\n\t\t\tif ( shadow === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebGLShadowMap:', light, 'has no shadow.' );\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\tif ( shadow.autoUpdate === false && shadow.needsUpdate === false ) continue;\n\n\t\t\t_shadowMapSize.copy( shadow.mapSize );\n\n\t\t\tconst shadowFrameExtents = shadow.getFrameExtents();\n\n\t\t\t_shadowMapSize.multiply( shadowFrameExtents );\n\n\t\t\t_viewportSize.copy( shadow.mapSize );\n\n\t\t\tif ( _shadowMapSize.x > _maxTextureSize || _shadowMapSize.y > _maxTextureSize ) {\n\n\t\t\t\tif ( _shadowMapSize.x > _maxTextureSize ) {\n\n\t\t\t\t\t_viewportSize.x = Math.floor( _maxTextureSize / shadowFrameExtents.x );\n\t\t\t\t\t_shadowMapSize.x = _viewportSize.x * shadowFrameExtents.x;\n\t\t\t\t\tshadow.mapSize.x = _viewportSize.x;\n\n\t\t\t\t}\n\n\t\t\t\tif ( _shadowMapSize.y > _maxTextureSize ) {\n\n\t\t\t\t\t_viewportSize.y = Math.floor( _maxTextureSize / shadowFrameExtents.y );\n\t\t\t\t\t_shadowMapSize.y = _viewportSize.y * shadowFrameExtents.y;\n\t\t\t\t\tshadow.mapSize.y = _viewportSize.y;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( shadow.map === null || toVSM === true || fromVSM === true ) {\n\n\t\t\t\tconst pars = ( this.type !== VSMShadowMap ) ? { minFilter: NearestFilter, magFilter: NearestFilter } : {};\n\n\t\t\t\tif ( shadow.map !== null ) {\n\n\t\t\t\t\tshadow.map.dispose();\n\n\t\t\t\t}\n\n\t\t\t\tshadow.map = new WebGLRenderTarget( _shadowMapSize.x, _shadowMapSize.y, pars );\n\t\t\t\tshadow.map.texture.name = light.name + '.shadowMap';\n\n\t\t\t\tshadow.camera.updateProjectionMatrix();\n\n\t\t\t}\n\n\t\t\trenderer.setRenderTarget( shadow.map );\n\t\t\trenderer.clear();\n\n\t\t\tconst viewportCount = shadow.getViewportCount();\n\n\t\t\tfor ( let vp = 0; vp < viewportCount; vp ++ ) {\n\n\t\t\t\tconst viewport = shadow.getViewport( vp );\n\n\t\t\t\t_viewport.set(\n\t\t\t\t\t_viewportSize.x * viewport.x,\n\t\t\t\t\t_viewportSize.y * viewport.y,\n\t\t\t\t\t_viewportSize.x * viewport.z,\n\t\t\t\t\t_viewportSize.y * viewport.w\n\t\t\t\t);\n\n\t\t\t\t_state.viewport( _viewport );\n\n\t\t\t\tshadow.updateMatrices( light, vp );\n\n\t\t\t\t_frustum = shadow.getFrustum();\n\n\t\t\t\trenderObject( scene, camera, shadow.camera, light, this.type );\n\n\t\t\t}\n\n\t\t\t// do blur pass for VSM\n\n\t\t\tif ( shadow.isPointLightShadow !== true && this.type === VSMShadowMap ) {\n\n\t\t\t\tVSMPass( shadow, camera );\n\n\t\t\t}\n\n\t\t\tshadow.needsUpdate = false;\n\n\t\t}\n\n\t\t_previousType = this.type;\n\n\t\tscope.needsUpdate = false;\n\n\t\trenderer.setRenderTarget( currentRenderTarget, activeCubeFace, activeMipmapLevel );\n\n\t};\n\n\tfunction VSMPass( shadow, camera ) {\n\n\t\tconst geometry = objects.update( fullScreenMesh );\n\n\t\tif ( shadowMaterialVertical.defines.VSM_SAMPLES !== shadow.blurSamples ) {\n\n\t\t\tshadowMaterialVertical.defines.VSM_SAMPLES = shadow.blurSamples;\n\t\t\tshadowMaterialHorizontal.defines.VSM_SAMPLES = shadow.blurSamples;\n\n\t\t\tshadowMaterialVertical.needsUpdate = true;\n\t\t\tshadowMaterialHorizontal.needsUpdate = true;\n\n\t\t}\n\n\t\tif ( shadow.mapPass === null ) {\n\n\t\t\tshadow.mapPass = new WebGLRenderTarget( _shadowMapSize.x, _shadowMapSize.y );\n\n\t\t}\n\n\t\t// vertical pass\n\n\t\tshadowMaterialVertical.uniforms.shadow_pass.value = shadow.map.texture;\n\t\tshadowMaterialVertical.uniforms.resolution.value = shadow.mapSize;\n\t\tshadowMaterialVertical.uniforms.radius.value = shadow.radius;\n\t\trenderer.setRenderTarget( shadow.mapPass );\n\t\trenderer.clear();\n\t\trenderer.renderBufferDirect( camera, null, geometry, shadowMaterialVertical, fullScreenMesh, null );\n\n\t\t// horizontal pass\n\n\t\tshadowMaterialHorizontal.uniforms.shadow_pass.value = shadow.mapPass.texture;\n\t\tshadowMaterialHorizontal.uniforms.resolution.value = shadow.mapSize;\n\t\tshadowMaterialHorizontal.uniforms.radius.value = shadow.radius;\n\t\trenderer.setRenderTarget( shadow.map );\n\t\trenderer.clear();\n\t\trenderer.renderBufferDirect( camera, null, geometry, shadowMaterialHorizontal, fullScreenMesh, null );\n\n\t}\n\n\tfunction getDepthMaterial( object, material, light, type ) {\n\n\t\tlet result = null;\n\n\t\tconst customMaterial = ( light.isPointLight === true ) ? object.customDistanceMaterial : object.customDepthMaterial;\n\n\t\tif ( customMaterial !== undefined ) {\n\n\t\t\tresult = customMaterial;\n\n\t\t} else {\n\n\t\t\tresult = ( light.isPointLight === true ) ? _distanceMaterial : _depthMaterial;\n\n\t\t\tif ( ( renderer.localClippingEnabled && material.clipShadows === true && Array.isArray( material.clippingPlanes ) && material.clippingPlanes.length !== 0 ) ||\n\t\t\t\t( material.displacementMap && material.displacementScale !== 0 ) ||\n\t\t\t\t( material.alphaMap && material.alphaTest > 0 ) ||\n\t\t\t\t( material.map && material.alphaTest > 0 ) ) {\n\n\t\t\t\t// in this case we need a unique material instance reflecting the\n\t\t\t\t// appropriate state\n\n\t\t\t\tconst keyA = result.uuid, keyB = material.uuid;\n\n\t\t\t\tlet materialsForVariant = _materialCache[ keyA ];\n\n\t\t\t\tif ( materialsForVariant === undefined ) {\n\n\t\t\t\t\tmaterialsForVariant = {};\n\t\t\t\t\t_materialCache[ keyA ] = materialsForVariant;\n\n\t\t\t\t}\n\n\t\t\t\tlet cachedMaterial = materialsForVariant[ keyB ];\n\n\t\t\t\tif ( cachedMaterial === undefined ) {\n\n\t\t\t\t\tcachedMaterial = result.clone();\n\t\t\t\t\tmaterialsForVariant[ keyB ] = cachedMaterial;\n\t\t\t\t\tmaterial.addEventListener( 'dispose', onMaterialDispose );\n\n\t\t\t\t}\n\n\t\t\t\tresult = cachedMaterial;\n\n\t\t\t}\n\n\t\t}\n\n\t\tresult.visible = material.visible;\n\t\tresult.wireframe = material.wireframe;\n\n\t\tif ( type === VSMShadowMap ) {\n\n\t\t\tresult.side = ( material.shadowSide !== null ) ? material.shadowSide : material.side;\n\n\t\t} else {\n\n\t\t\tresult.side = ( material.shadowSide !== null ) ? material.shadowSide : shadowSide[ material.side ];\n\n\t\t}\n\n\t\tresult.alphaMap = material.alphaMap;\n\t\tresult.alphaTest = material.alphaTest;\n\t\tresult.map = material.map;\n\n\t\tresult.clipShadows = material.clipShadows;\n\t\tresult.clippingPlanes = material.clippingPlanes;\n\t\tresult.clipIntersection = material.clipIntersection;\n\n\t\tresult.displacementMap = material.displacementMap;\n\t\tresult.displacementScale = material.displacementScale;\n\t\tresult.displacementBias = material.displacementBias;\n\n\t\tresult.wireframeLinewidth = material.wireframeLinewidth;\n\t\tresult.linewidth = material.linewidth;\n\n\t\tif ( light.isPointLight === true && result.isMeshDistanceMaterial === true ) {\n\n\t\t\tconst materialProperties = renderer.properties.get( result );\n\t\t\tmaterialProperties.light = light;\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n\tfunction renderObject( object, camera, shadowCamera, light, type ) {\n\n\t\tif ( object.visible === false ) return;\n\n\t\tconst visible = object.layers.test( camera.layers );\n\n\t\tif ( visible && ( object.isMesh || object.isLine || object.isPoints ) ) {\n\n\t\t\tif ( ( object.castShadow || ( object.receiveShadow && type === VSMShadowMap ) ) && ( ! object.frustumCulled || _frustum.intersectsObject( object ) ) ) {\n\n\t\t\t\tobject.modelViewMatrix.multiplyMatrices( shadowCamera.matrixWorldInverse, object.matrixWorld );\n\n\t\t\t\tconst geometry = objects.update( object );\n\t\t\t\tconst material = object.material;\n\n\t\t\t\tif ( Array.isArray( material ) ) {\n\n\t\t\t\t\tconst groups = geometry.groups;\n\n\t\t\t\t\tfor ( let k = 0, kl = groups.length; k < kl; k ++ ) {\n\n\t\t\t\t\t\tconst group = groups[ k ];\n\t\t\t\t\t\tconst groupMaterial = material[ group.materialIndex ];\n\n\t\t\t\t\t\tif ( groupMaterial && groupMaterial.visible ) {\n\n\t\t\t\t\t\t\tconst depthMaterial = getDepthMaterial( object, groupMaterial, light, type );\n\n\t\t\t\t\t\t\tobject.onBeforeShadow( renderer, object, camera, shadowCamera, geometry, depthMaterial, group );\n\n\t\t\t\t\t\t\trenderer.renderBufferDirect( shadowCamera, null, geometry, depthMaterial, object, group );\n\n\t\t\t\t\t\t\tobject.onAfterShadow( renderer, object, camera, shadowCamera, geometry, depthMaterial, group );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} else if ( material.visible ) {\n\n\t\t\t\t\tconst depthMaterial = getDepthMaterial( object, material, light, type );\n\n\t\t\t\t\tobject.onBeforeShadow( renderer, object, camera, shadowCamera, geometry, depthMaterial, null );\n\n\t\t\t\t\trenderer.renderBufferDirect( shadowCamera, null, geometry, depthMaterial, object, null );\n\n\t\t\t\t\tobject.onAfterShadow( renderer, object, camera, shadowCamera, geometry, depthMaterial, null );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst children = object.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\trenderObject( children[ i ], camera, shadowCamera, light, type );\n\n\t\t}\n\n\t}\n\n\tfunction onMaterialDispose( event ) {\n\n\t\tconst material = event.target;\n\n\t\tmaterial.removeEventListener( 'dispose', onMaterialDispose );\n\n\t\t// make sure to remove the unique distance/depth materials used for shadow map rendering\n\n\t\tfor ( const id in _materialCache ) {\n\n\t\t\tconst cache = _materialCache[ id ];\n\n\t\t\tconst uuid = event.target.uuid;\n\n\t\t\tif ( uuid in cache ) {\n\n\t\t\t\tconst shadowMaterial = cache[ uuid ];\n\t\t\t\tshadowMaterial.dispose();\n\t\t\t\tdelete cache[ uuid ];\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n\nconst reversedFuncs = {\n\t[ NeverDepth ]: AlwaysDepth,\n\t[ LessDepth ]: GreaterDepth,\n\t[ EqualDepth ]: NotEqualDepth,\n\t[ LessEqualDepth ]: GreaterEqualDepth,\n\n\t[ AlwaysDepth ]: NeverDepth,\n\t[ GreaterDepth ]: LessDepth,\n\t[ NotEqualDepth ]: EqualDepth,\n\t[ GreaterEqualDepth ]: LessEqualDepth,\n};\n\nfunction WebGLState( gl, extensions ) {\n\n\tfunction ColorBuffer() {\n\n\t\tlet locked = false;\n\n\t\tconst color = new Vector4();\n\t\tlet currentColorMask = null;\n\t\tconst currentColorClear = new Vector4( 0, 0, 0, 0 );\n\n\t\treturn {\n\n\t\t\tsetMask: function ( colorMask ) {\n\n\t\t\t\tif ( currentColorMask !== colorMask && ! locked ) {\n\n\t\t\t\t\tgl.colorMask( colorMask, colorMask, colorMask, colorMask );\n\t\t\t\t\tcurrentColorMask = colorMask;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetLocked: function ( lock ) {\n\n\t\t\t\tlocked = lock;\n\n\t\t\t},\n\n\t\t\tsetClear: function ( r, g, b, a, premultipliedAlpha ) {\n\n\t\t\t\tif ( premultipliedAlpha === true ) {\n\n\t\t\t\t\tr *= a; g *= a; b *= a;\n\n\t\t\t\t}\n\n\t\t\t\tcolor.set( r, g, b, a );\n\n\t\t\t\tif ( currentColorClear.equals( color ) === false ) {\n\n\t\t\t\t\tgl.clearColor( r, g, b, a );\n\t\t\t\t\tcurrentColorClear.copy( color );\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\treset: function () {\n\n\t\t\t\tlocked = false;\n\n\t\t\t\tcurrentColorMask = null;\n\t\t\t\tcurrentColorClear.set( - 1, 0, 0, 0 ); // set to invalid state\n\n\t\t\t}\n\n\t\t};\n\n\t}\n\n\tfunction DepthBuffer() {\n\n\t\tlet locked = false;\n\t\tlet reversed = false;\n\n\t\tlet currentDepthMask = null;\n\t\tlet currentDepthFunc = null;\n\t\tlet currentDepthClear = null;\n\n\t\treturn {\n\n\t\t\tsetReversed: function ( value ) {\n\n\t\t\t\tif ( reversed !== value ) {\n\n\t\t\t\t\tconst ext = extensions.get( 'EXT_clip_control' );\n\n\t\t\t\t\tif ( reversed ) {\n\n\t\t\t\t\t\text.clipControlEXT( ext.LOWER_LEFT_EXT, ext.ZERO_TO_ONE_EXT );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\text.clipControlEXT( ext.LOWER_LEFT_EXT, ext.NEGATIVE_ONE_TO_ONE_EXT );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tconst oldDepth = currentDepthClear;\n\t\t\t\t\tcurrentDepthClear = null;\n\t\t\t\t\tthis.setClear( oldDepth );\n\n\t\t\t\t}\n\n\t\t\t\treversed = value;\n\n\t\t\t},\n\n\t\t\tgetReversed: function () {\n\n\t\t\t\treturn reversed;\n\n\t\t\t},\n\n\t\t\tsetTest: function ( depthTest ) {\n\n\t\t\t\tif ( depthTest ) {\n\n\t\t\t\t\tenable( gl.DEPTH_TEST );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tdisable( gl.DEPTH_TEST );\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetMask: function ( depthMask ) {\n\n\t\t\t\tif ( currentDepthMask !== depthMask && ! locked ) {\n\n\t\t\t\t\tgl.depthMask( depthMask );\n\t\t\t\t\tcurrentDepthMask = depthMask;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetFunc: function ( depthFunc ) {\n\n\t\t\t\tif ( reversed ) depthFunc = reversedFuncs[ depthFunc ];\n\n\t\t\t\tif ( currentDepthFunc !== depthFunc ) {\n\n\t\t\t\t\tswitch ( depthFunc ) {\n\n\t\t\t\t\t\tcase NeverDepth:\n\n\t\t\t\t\t\t\tgl.depthFunc( gl.NEVER );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase AlwaysDepth:\n\n\t\t\t\t\t\t\tgl.depthFunc( gl.ALWAYS );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase LessDepth:\n\n\t\t\t\t\t\t\tgl.depthFunc( gl.LESS );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase LessEqualDepth:\n\n\t\t\t\t\t\t\tgl.depthFunc( gl.LEQUAL );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase EqualDepth:\n\n\t\t\t\t\t\t\tgl.depthFunc( gl.EQUAL );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase GreaterEqualDepth:\n\n\t\t\t\t\t\t\tgl.depthFunc( gl.GEQUAL );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase GreaterDepth:\n\n\t\t\t\t\t\t\tgl.depthFunc( gl.GREATER );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase NotEqualDepth:\n\n\t\t\t\t\t\t\tgl.depthFunc( gl.NOTEQUAL );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tdefault:\n\n\t\t\t\t\t\t\tgl.depthFunc( gl.LEQUAL );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tcurrentDepthFunc = depthFunc;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetLocked: function ( lock ) {\n\n\t\t\t\tlocked = lock;\n\n\t\t\t},\n\n\t\t\tsetClear: function ( depth ) {\n\n\t\t\t\tif ( currentDepthClear !== depth ) {\n\n\t\t\t\t\tif ( reversed ) {\n\n\t\t\t\t\t\tdepth = 1 - depth;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tgl.clearDepth( depth );\n\t\t\t\t\tcurrentDepthClear = depth;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\treset: function () {\n\n\t\t\t\tlocked = false;\n\n\t\t\t\tcurrentDepthMask = null;\n\t\t\t\tcurrentDepthFunc = null;\n\t\t\t\tcurrentDepthClear = null;\n\t\t\t\treversed = false;\n\n\t\t\t}\n\n\t\t};\n\n\t}\n\n\tfunction StencilBuffer() {\n\n\t\tlet locked = false;\n\n\t\tlet currentStencilMask = null;\n\t\tlet currentStencilFunc = null;\n\t\tlet currentStencilRef = null;\n\t\tlet currentStencilFuncMask = null;\n\t\tlet currentStencilFail = null;\n\t\tlet currentStencilZFail = null;\n\t\tlet currentStencilZPass = null;\n\t\tlet currentStencilClear = null;\n\n\t\treturn {\n\n\t\t\tsetTest: function ( stencilTest ) {\n\n\t\t\t\tif ( ! locked ) {\n\n\t\t\t\t\tif ( stencilTest ) {\n\n\t\t\t\t\t\tenable( gl.STENCIL_TEST );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tdisable( gl.STENCIL_TEST );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetMask: function ( stencilMask ) {\n\n\t\t\t\tif ( currentStencilMask !== stencilMask && ! locked ) {\n\n\t\t\t\t\tgl.stencilMask( stencilMask );\n\t\t\t\t\tcurrentStencilMask = stencilMask;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetFunc: function ( stencilFunc, stencilRef, stencilMask ) {\n\n\t\t\t\tif ( currentStencilFunc !== stencilFunc ||\n\t\t\t\t currentStencilRef !== stencilRef ||\n\t\t\t\t currentStencilFuncMask !== stencilMask ) {\n\n\t\t\t\t\tgl.stencilFunc( stencilFunc, stencilRef, stencilMask );\n\n\t\t\t\t\tcurrentStencilFunc = stencilFunc;\n\t\t\t\t\tcurrentStencilRef = stencilRef;\n\t\t\t\t\tcurrentStencilFuncMask = stencilMask;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetOp: function ( stencilFail, stencilZFail, stencilZPass ) {\n\n\t\t\t\tif ( currentStencilFail !== stencilFail ||\n\t\t\t\t currentStencilZFail !== stencilZFail ||\n\t\t\t\t currentStencilZPass !== stencilZPass ) {\n\n\t\t\t\t\tgl.stencilOp( stencilFail, stencilZFail, stencilZPass );\n\n\t\t\t\t\tcurrentStencilFail = stencilFail;\n\t\t\t\t\tcurrentStencilZFail = stencilZFail;\n\t\t\t\t\tcurrentStencilZPass = stencilZPass;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetLocked: function ( lock ) {\n\n\t\t\t\tlocked = lock;\n\n\t\t\t},\n\n\t\t\tsetClear: function ( stencil ) {\n\n\t\t\t\tif ( currentStencilClear !== stencil ) {\n\n\t\t\t\t\tgl.clearStencil( stencil );\n\t\t\t\t\tcurrentStencilClear = stencil;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\treset: function () {\n\n\t\t\t\tlocked = false;\n\n\t\t\t\tcurrentStencilMask = null;\n\t\t\t\tcurrentStencilFunc = null;\n\t\t\t\tcurrentStencilRef = null;\n\t\t\t\tcurrentStencilFuncMask = null;\n\t\t\t\tcurrentStencilFail = null;\n\t\t\t\tcurrentStencilZFail = null;\n\t\t\t\tcurrentStencilZPass = null;\n\t\t\t\tcurrentStencilClear = null;\n\n\t\t\t}\n\n\t\t};\n\n\t}\n\n\t//\n\n\tconst colorBuffer = new ColorBuffer();\n\tconst depthBuffer = new DepthBuffer();\n\tconst stencilBuffer = new StencilBuffer();\n\n\tconst uboBindings = new WeakMap();\n\tconst uboProgramMap = new WeakMap();\n\n\tlet enabledCapabilities = {};\n\n\tlet currentBoundFramebuffers = {};\n\tlet currentDrawbuffers = new WeakMap();\n\tlet defaultDrawbuffers = [];\n\n\tlet currentProgram = null;\n\n\tlet currentBlendingEnabled = false;\n\tlet currentBlending = null;\n\tlet currentBlendEquation = null;\n\tlet currentBlendSrc = null;\n\tlet currentBlendDst = null;\n\tlet currentBlendEquationAlpha = null;\n\tlet currentBlendSrcAlpha = null;\n\tlet currentBlendDstAlpha = null;\n\tlet currentBlendColor = new Color( 0, 0, 0 );\n\tlet currentBlendAlpha = 0;\n\tlet currentPremultipledAlpha = false;\n\n\tlet currentFlipSided = null;\n\tlet currentCullFace = null;\n\n\tlet currentLineWidth = null;\n\n\tlet currentPolygonOffsetFactor = null;\n\tlet currentPolygonOffsetUnits = null;\n\n\tconst maxTextures = gl.getParameter( gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS );\n\n\tlet lineWidthAvailable = false;\n\tlet version = 0;\n\tconst glVersion = gl.getParameter( gl.VERSION );\n\n\tif ( glVersion.indexOf( 'WebGL' ) !== - 1 ) {\n\n\t\tversion = parseFloat( /^WebGL (\\d)/.exec( glVersion )[ 1 ] );\n\t\tlineWidthAvailable = ( version >= 1.0 );\n\n\t} else if ( glVersion.indexOf( 'OpenGL ES' ) !== - 1 ) {\n\n\t\tversion = parseFloat( /^OpenGL ES (\\d)/.exec( glVersion )[ 1 ] );\n\t\tlineWidthAvailable = ( version >= 2.0 );\n\n\t}\n\n\tlet currentTextureSlot = null;\n\tlet currentBoundTextures = {};\n\n\tconst scissorParam = gl.getParameter( gl.SCISSOR_BOX );\n\tconst viewportParam = gl.getParameter( gl.VIEWPORT );\n\n\tconst currentScissor = new Vector4().fromArray( scissorParam );\n\tconst currentViewport = new Vector4().fromArray( viewportParam );\n\n\tfunction createTexture( type, target, count, dimensions ) {\n\n\t\tconst data = new Uint8Array( 4 ); // 4 is required to match default unpack alignment of 4.\n\t\tconst texture = gl.createTexture();\n\n\t\tgl.bindTexture( type, texture );\n\t\tgl.texParameteri( type, gl.TEXTURE_MIN_FILTER, gl.NEAREST );\n\t\tgl.texParameteri( type, gl.TEXTURE_MAG_FILTER, gl.NEAREST );\n\n\t\tfor ( let i = 0; i < count; i ++ ) {\n\n\t\t\tif ( type === gl.TEXTURE_3D || type === gl.TEXTURE_2D_ARRAY ) {\n\n\t\t\t\tgl.texImage3D( target, 0, gl.RGBA, 1, 1, dimensions, 0, gl.RGBA, gl.UNSIGNED_BYTE, data );\n\n\t\t\t} else {\n\n\t\t\t\tgl.texImage2D( target + i, 0, gl.RGBA, 1, 1, 0, gl.RGBA, gl.UNSIGNED_BYTE, data );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn texture;\n\n\t}\n\n\tconst emptyTextures = {};\n\temptyTextures[ gl.TEXTURE_2D ] = createTexture( gl.TEXTURE_2D, gl.TEXTURE_2D, 1 );\n\temptyTextures[ gl.TEXTURE_CUBE_MAP ] = createTexture( gl.TEXTURE_CUBE_MAP, gl.TEXTURE_CUBE_MAP_POSITIVE_X, 6 );\n\temptyTextures[ gl.TEXTURE_2D_ARRAY ] = createTexture( gl.TEXTURE_2D_ARRAY, gl.TEXTURE_2D_ARRAY, 1, 1 );\n\temptyTextures[ gl.TEXTURE_3D ] = createTexture( gl.TEXTURE_3D, gl.TEXTURE_3D, 1, 1 );\n\n\t// init\n\n\tcolorBuffer.setClear( 0, 0, 0, 1 );\n\tdepthBuffer.setClear( 1 );\n\tstencilBuffer.setClear( 0 );\n\n\tenable( gl.DEPTH_TEST );\n\tdepthBuffer.setFunc( LessEqualDepth );\n\n\tsetFlipSided( false );\n\tsetCullFace( CullFaceBack );\n\tenable( gl.CULL_FACE );\n\n\tsetBlending( NoBlending );\n\n\t//\n\n\tfunction enable( id ) {\n\n\t\tif ( enabledCapabilities[ id ] !== true ) {\n\n\t\t\tgl.enable( id );\n\t\t\tenabledCapabilities[ id ] = true;\n\n\t\t}\n\n\t}\n\n\tfunction disable( id ) {\n\n\t\tif ( enabledCapabilities[ id ] !== false ) {\n\n\t\t\tgl.disable( id );\n\t\t\tenabledCapabilities[ id ] = false;\n\n\t\t}\n\n\t}\n\n\tfunction bindFramebuffer( target, framebuffer ) {\n\n\t\tif ( currentBoundFramebuffers[ target ] !== framebuffer ) {\n\n\t\t\tgl.bindFramebuffer( target, framebuffer );\n\n\t\t\tcurrentBoundFramebuffers[ target ] = framebuffer;\n\n\t\t\t// gl.DRAW_FRAMEBUFFER is equivalent to gl.FRAMEBUFFER\n\n\t\t\tif ( target === gl.DRAW_FRAMEBUFFER ) {\n\n\t\t\t\tcurrentBoundFramebuffers[ gl.FRAMEBUFFER ] = framebuffer;\n\n\t\t\t}\n\n\t\t\tif ( target === gl.FRAMEBUFFER ) {\n\n\t\t\t\tcurrentBoundFramebuffers[ gl.DRAW_FRAMEBUFFER ] = framebuffer;\n\n\t\t\t}\n\n\t\t\treturn true;\n\n\t\t}\n\n\t\treturn false;\n\n\t}\n\n\tfunction drawBuffers( renderTarget, framebuffer ) {\n\n\t\tlet drawBuffers = defaultDrawbuffers;\n\n\t\tlet needsUpdate = false;\n\n\t\tif ( renderTarget ) {\n\n\t\t\tdrawBuffers = currentDrawbuffers.get( framebuffer );\n\n\t\t\tif ( drawBuffers === undefined ) {\n\n\t\t\t\tdrawBuffers = [];\n\t\t\t\tcurrentDrawbuffers.set( framebuffer, drawBuffers );\n\n\t\t\t}\n\n\t\t\tconst textures = renderTarget.textures;\n\n\t\t\tif ( drawBuffers.length !== textures.length || drawBuffers[ 0 ] !== gl.COLOR_ATTACHMENT0 ) {\n\n\t\t\t\tfor ( let i = 0, il = textures.length; i < il; i ++ ) {\n\n\t\t\t\t\tdrawBuffers[ i ] = gl.COLOR_ATTACHMENT0 + i;\n\n\t\t\t\t}\n\n\t\t\t\tdrawBuffers.length = textures.length;\n\n\t\t\t\tneedsUpdate = true;\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tif ( drawBuffers[ 0 ] !== gl.BACK ) {\n\n\t\t\t\tdrawBuffers[ 0 ] = gl.BACK;\n\n\t\t\t\tneedsUpdate = true;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( needsUpdate ) {\n\n\t\t\tgl.drawBuffers( drawBuffers );\n\n\t\t}\n\n\t}\n\n\tfunction useProgram( program ) {\n\n\t\tif ( currentProgram !== program ) {\n\n\t\t\tgl.useProgram( program );\n\n\t\t\tcurrentProgram = program;\n\n\t\t\treturn true;\n\n\t\t}\n\n\t\treturn false;\n\n\t}\n\n\tconst equationToGL = {\n\t\t[ AddEquation ]: gl.FUNC_ADD,\n\t\t[ SubtractEquation ]: gl.FUNC_SUBTRACT,\n\t\t[ ReverseSubtractEquation ]: gl.FUNC_REVERSE_SUBTRACT\n\t};\n\n\tequationToGL[ MinEquation ] = gl.MIN;\n\tequationToGL[ MaxEquation ] = gl.MAX;\n\n\tconst factorToGL = {\n\t\t[ ZeroFactor ]: gl.ZERO,\n\t\t[ OneFactor ]: gl.ONE,\n\t\t[ SrcColorFactor ]: gl.SRC_COLOR,\n\t\t[ SrcAlphaFactor ]: gl.SRC_ALPHA,\n\t\t[ SrcAlphaSaturateFactor ]: gl.SRC_ALPHA_SATURATE,\n\t\t[ DstColorFactor ]: gl.DST_COLOR,\n\t\t[ DstAlphaFactor ]: gl.DST_ALPHA,\n\t\t[ OneMinusSrcColorFactor ]: gl.ONE_MINUS_SRC_COLOR,\n\t\t[ OneMinusSrcAlphaFactor ]: gl.ONE_MINUS_SRC_ALPHA,\n\t\t[ OneMinusDstColorFactor ]: gl.ONE_MINUS_DST_COLOR,\n\t\t[ OneMinusDstAlphaFactor ]: gl.ONE_MINUS_DST_ALPHA,\n\t\t[ ConstantColorFactor ]: gl.CONSTANT_COLOR,\n\t\t[ OneMinusConstantColorFactor ]: gl.ONE_MINUS_CONSTANT_COLOR,\n\t\t[ ConstantAlphaFactor ]: gl.CONSTANT_ALPHA,\n\t\t[ OneMinusConstantAlphaFactor ]: gl.ONE_MINUS_CONSTANT_ALPHA\n\t};\n\n\tfunction setBlending( blending, blendEquation, blendSrc, blendDst, blendEquationAlpha, blendSrcAlpha, blendDstAlpha, blendColor, blendAlpha, premultipliedAlpha ) {\n\n\t\tif ( blending === NoBlending ) {\n\n\t\t\tif ( currentBlendingEnabled === true ) {\n\n\t\t\t\tdisable( gl.BLEND );\n\t\t\t\tcurrentBlendingEnabled = false;\n\n\t\t\t}\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( currentBlendingEnabled === false ) {\n\n\t\t\tenable( gl.BLEND );\n\t\t\tcurrentBlendingEnabled = true;\n\n\t\t}\n\n\t\tif ( blending !== CustomBlending ) {\n\n\t\t\tif ( blending !== currentBlending || premultipliedAlpha !== currentPremultipledAlpha ) {\n\n\t\t\t\tif ( currentBlendEquation !== AddEquation || currentBlendEquationAlpha !== AddEquation ) {\n\n\t\t\t\t\tgl.blendEquation( gl.FUNC_ADD );\n\n\t\t\t\t\tcurrentBlendEquation = AddEquation;\n\t\t\t\t\tcurrentBlendEquationAlpha = AddEquation;\n\n\t\t\t\t}\n\n\t\t\t\tif ( premultipliedAlpha ) {\n\n\t\t\t\t\tswitch ( blending ) {\n\n\t\t\t\t\t\tcase NormalBlending:\n\t\t\t\t\t\t\tgl.blendFuncSeparate( gl.ONE, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase AdditiveBlending:\n\t\t\t\t\t\t\tgl.blendFunc( gl.ONE, gl.ONE );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase SubtractiveBlending:\n\t\t\t\t\t\t\tgl.blendFuncSeparate( gl.ZERO, gl.ONE_MINUS_SRC_COLOR, gl.ZERO, gl.ONE );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase MultiplyBlending:\n\t\t\t\t\t\t\tgl.blendFuncSeparate( gl.ZERO, gl.SRC_COLOR, gl.ZERO, gl.SRC_ALPHA );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tconsole.error( 'THREE.WebGLState: Invalid blending: ', blending );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tswitch ( blending ) {\n\n\t\t\t\t\t\tcase NormalBlending:\n\t\t\t\t\t\t\tgl.blendFuncSeparate( gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase AdditiveBlending:\n\t\t\t\t\t\t\tgl.blendFunc( gl.SRC_ALPHA, gl.ONE );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase SubtractiveBlending:\n\t\t\t\t\t\t\tgl.blendFuncSeparate( gl.ZERO, gl.ONE_MINUS_SRC_COLOR, gl.ZERO, gl.ONE );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase MultiplyBlending:\n\t\t\t\t\t\t\tgl.blendFunc( gl.ZERO, gl.SRC_COLOR );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tconsole.error( 'THREE.WebGLState: Invalid blending: ', blending );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tcurrentBlendSrc = null;\n\t\t\t\tcurrentBlendDst = null;\n\t\t\t\tcurrentBlendSrcAlpha = null;\n\t\t\t\tcurrentBlendDstAlpha = null;\n\t\t\t\tcurrentBlendColor.set( 0, 0, 0 );\n\t\t\t\tcurrentBlendAlpha = 0;\n\n\t\t\t\tcurrentBlending = blending;\n\t\t\t\tcurrentPremultipledAlpha = premultipliedAlpha;\n\n\t\t\t}\n\n\t\t\treturn;\n\n\t\t}\n\n\t\t// custom blending\n\n\t\tblendEquationAlpha = blendEquationAlpha || blendEquation;\n\t\tblendSrcAlpha = blendSrcAlpha || blendSrc;\n\t\tblendDstAlpha = blendDstAlpha || blendDst;\n\n\t\tif ( blendEquation !== currentBlendEquation || blendEquationAlpha !== currentBlendEquationAlpha ) {\n\n\t\t\tgl.blendEquationSeparate( equationToGL[ blendEquation ], equationToGL[ blendEquationAlpha ] );\n\n\t\t\tcurrentBlendEquation = blendEquation;\n\t\t\tcurrentBlendEquationAlpha = blendEquationAlpha;\n\n\t\t}\n\n\t\tif ( blendSrc !== currentBlendSrc || blendDst !== currentBlendDst || blendSrcAlpha !== currentBlendSrcAlpha || blendDstAlpha !== currentBlendDstAlpha ) {\n\n\t\t\tgl.blendFuncSeparate( factorToGL[ blendSrc ], factorToGL[ blendDst ], factorToGL[ blendSrcAlpha ], factorToGL[ blendDstAlpha ] );\n\n\t\t\tcurrentBlendSrc = blendSrc;\n\t\t\tcurrentBlendDst = blendDst;\n\t\t\tcurrentBlendSrcAlpha = blendSrcAlpha;\n\t\t\tcurrentBlendDstAlpha = blendDstAlpha;\n\n\t\t}\n\n\t\tif ( blendColor.equals( currentBlendColor ) === false || blendAlpha !== currentBlendAlpha ) {\n\n\t\t\tgl.blendColor( blendColor.r, blendColor.g, blendColor.b, blendAlpha );\n\n\t\t\tcurrentBlendColor.copy( blendColor );\n\t\t\tcurrentBlendAlpha = blendAlpha;\n\n\t\t}\n\n\t\tcurrentBlending = blending;\n\t\tcurrentPremultipledAlpha = false;\n\n\t}\n\n\tfunction setMaterial( material, frontFaceCW ) {\n\n\t\tmaterial.side === DoubleSide\n\t\t\t? disable( gl.CULL_FACE )\n\t\t\t: enable( gl.CULL_FACE );\n\n\t\tlet flipSided = ( material.side === BackSide );\n\t\tif ( frontFaceCW ) flipSided = ! flipSided;\n\n\t\tsetFlipSided( flipSided );\n\n\t\t( material.blending === NormalBlending && material.transparent === false )\n\t\t\t? setBlending( NoBlending )\n\t\t\t: setBlending( material.blending, material.blendEquation, material.blendSrc, material.blendDst, material.blendEquationAlpha, material.blendSrcAlpha, material.blendDstAlpha, material.blendColor, material.blendAlpha, material.premultipliedAlpha );\n\n\t\tdepthBuffer.setFunc( material.depthFunc );\n\t\tdepthBuffer.setTest( material.depthTest );\n\t\tdepthBuffer.setMask( material.depthWrite );\n\t\tcolorBuffer.setMask( material.colorWrite );\n\n\t\tconst stencilWrite = material.stencilWrite;\n\t\tstencilBuffer.setTest( stencilWrite );\n\t\tif ( stencilWrite ) {\n\n\t\t\tstencilBuffer.setMask( material.stencilWriteMask );\n\t\t\tstencilBuffer.setFunc( material.stencilFunc, material.stencilRef, material.stencilFuncMask );\n\t\t\tstencilBuffer.setOp( material.stencilFail, material.stencilZFail, material.stencilZPass );\n\n\t\t}\n\n\t\tsetPolygonOffset( material.polygonOffset, material.polygonOffsetFactor, material.polygonOffsetUnits );\n\n\t\tmaterial.alphaToCoverage === true\n\t\t\t? enable( gl.SAMPLE_ALPHA_TO_COVERAGE )\n\t\t\t: disable( gl.SAMPLE_ALPHA_TO_COVERAGE );\n\n\t}\n\n\t//\n\n\tfunction setFlipSided( flipSided ) {\n\n\t\tif ( currentFlipSided !== flipSided ) {\n\n\t\t\tif ( flipSided ) {\n\n\t\t\t\tgl.frontFace( gl.CW );\n\n\t\t\t} else {\n\n\t\t\t\tgl.frontFace( gl.CCW );\n\n\t\t\t}\n\n\t\t\tcurrentFlipSided = flipSided;\n\n\t\t}\n\n\t}\n\n\tfunction setCullFace( cullFace ) {\n\n\t\tif ( cullFace !== CullFaceNone ) {\n\n\t\t\tenable( gl.CULL_FACE );\n\n\t\t\tif ( cullFace !== currentCullFace ) {\n\n\t\t\t\tif ( cullFace === CullFaceBack ) {\n\n\t\t\t\t\tgl.cullFace( gl.BACK );\n\n\t\t\t\t} else if ( cullFace === CullFaceFront ) {\n\n\t\t\t\t\tgl.cullFace( gl.FRONT );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tgl.cullFace( gl.FRONT_AND_BACK );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tdisable( gl.CULL_FACE );\n\n\t\t}\n\n\t\tcurrentCullFace = cullFace;\n\n\t}\n\n\tfunction setLineWidth( width ) {\n\n\t\tif ( width !== currentLineWidth ) {\n\n\t\t\tif ( lineWidthAvailable ) gl.lineWidth( width );\n\n\t\t\tcurrentLineWidth = width;\n\n\t\t}\n\n\t}\n\n\tfunction setPolygonOffset( polygonOffset, factor, units ) {\n\n\t\tif ( polygonOffset ) {\n\n\t\t\tenable( gl.POLYGON_OFFSET_FILL );\n\n\t\t\tif ( currentPolygonOffsetFactor !== factor || currentPolygonOffsetUnits !== units ) {\n\n\t\t\t\tgl.polygonOffset( factor, units );\n\n\t\t\t\tcurrentPolygonOffsetFactor = factor;\n\t\t\t\tcurrentPolygonOffsetUnits = units;\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tdisable( gl.POLYGON_OFFSET_FILL );\n\n\t\t}\n\n\t}\n\n\tfunction setScissorTest( scissorTest ) {\n\n\t\tif ( scissorTest ) {\n\n\t\t\tenable( gl.SCISSOR_TEST );\n\n\t\t} else {\n\n\t\t\tdisable( gl.SCISSOR_TEST );\n\n\t\t}\n\n\t}\n\n\t// texture\n\n\tfunction activeTexture( webglSlot ) {\n\n\t\tif ( webglSlot === undefined ) webglSlot = gl.TEXTURE0 + maxTextures - 1;\n\n\t\tif ( currentTextureSlot !== webglSlot ) {\n\n\t\t\tgl.activeTexture( webglSlot );\n\t\t\tcurrentTextureSlot = webglSlot;\n\n\t\t}\n\n\t}\n\n\tfunction bindTexture( webglType, webglTexture, webglSlot ) {\n\n\t\tif ( webglSlot === undefined ) {\n\n\t\t\tif ( currentTextureSlot === null ) {\n\n\t\t\t\twebglSlot = gl.TEXTURE0 + maxTextures - 1;\n\n\t\t\t} else {\n\n\t\t\t\twebglSlot = currentTextureSlot;\n\n\t\t\t}\n\n\t\t}\n\n\t\tlet boundTexture = currentBoundTextures[ webglSlot ];\n\n\t\tif ( boundTexture === undefined ) {\n\n\t\t\tboundTexture = { type: undefined, texture: undefined };\n\t\t\tcurrentBoundTextures[ webglSlot ] = boundTexture;\n\n\t\t}\n\n\t\tif ( boundTexture.type !== webglType || boundTexture.texture !== webglTexture ) {\n\n\t\t\tif ( currentTextureSlot !== webglSlot ) {\n\n\t\t\t\tgl.activeTexture( webglSlot );\n\t\t\t\tcurrentTextureSlot = webglSlot;\n\n\t\t\t}\n\n\t\t\tgl.bindTexture( webglType, webglTexture || emptyTextures[ webglType ] );\n\n\t\t\tboundTexture.type = webglType;\n\t\t\tboundTexture.texture = webglTexture;\n\n\t\t}\n\n\t}\n\n\tfunction unbindTexture() {\n\n\t\tconst boundTexture = currentBoundTextures[ currentTextureSlot ];\n\n\t\tif ( boundTexture !== undefined && boundTexture.type !== undefined ) {\n\n\t\t\tgl.bindTexture( boundTexture.type, null );\n\n\t\t\tboundTexture.type = undefined;\n\t\t\tboundTexture.texture = undefined;\n\n\t\t}\n\n\t}\n\n\tfunction compressedTexImage2D() {\n\n\t\ttry {\n\n\t\t\tgl.compressedTexImage2D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction compressedTexImage3D() {\n\n\t\ttry {\n\n\t\t\tgl.compressedTexImage3D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction texSubImage2D() {\n\n\t\ttry {\n\n\t\t\tgl.texSubImage2D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction texSubImage3D() {\n\n\t\ttry {\n\n\t\t\tgl.texSubImage3D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction compressedTexSubImage2D() {\n\n\t\ttry {\n\n\t\t\tgl.compressedTexSubImage2D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction compressedTexSubImage3D() {\n\n\t\ttry {\n\n\t\t\tgl.compressedTexSubImage3D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction texStorage2D() {\n\n\t\ttry {\n\n\t\t\tgl.texStorage2D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction texStorage3D() {\n\n\t\ttry {\n\n\t\t\tgl.texStorage3D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction texImage2D() {\n\n\t\ttry {\n\n\t\t\tgl.texImage2D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction texImage3D() {\n\n\t\ttry {\n\n\t\t\tgl.texImage3D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\t//\n\n\tfunction scissor( scissor ) {\n\n\t\tif ( currentScissor.equals( scissor ) === false ) {\n\n\t\t\tgl.scissor( scissor.x, scissor.y, scissor.z, scissor.w );\n\t\t\tcurrentScissor.copy( scissor );\n\n\t\t}\n\n\t}\n\n\tfunction viewport( viewport ) {\n\n\t\tif ( currentViewport.equals( viewport ) === false ) {\n\n\t\t\tgl.viewport( viewport.x, viewport.y, viewport.z, viewport.w );\n\t\t\tcurrentViewport.copy( viewport );\n\n\t\t}\n\n\t}\n\n\tfunction updateUBOMapping( uniformsGroup, program ) {\n\n\t\tlet mapping = uboProgramMap.get( program );\n\n\t\tif ( mapping === undefined ) {\n\n\t\t\tmapping = new WeakMap();\n\n\t\t\tuboProgramMap.set( program, mapping );\n\n\t\t}\n\n\t\tlet blockIndex = mapping.get( uniformsGroup );\n\n\t\tif ( blockIndex === undefined ) {\n\n\t\t\tblockIndex = gl.getUniformBlockIndex( program, uniformsGroup.name );\n\n\t\t\tmapping.set( uniformsGroup, blockIndex );\n\n\t\t}\n\n\t}\n\n\tfunction uniformBlockBinding( uniformsGroup, program ) {\n\n\t\tconst mapping = uboProgramMap.get( program );\n\t\tconst blockIndex = mapping.get( uniformsGroup );\n\n\t\tif ( uboBindings.get( program ) !== blockIndex ) {\n\n\t\t\t// bind shader specific block index to global block point\n\t\t\tgl.uniformBlockBinding( program, blockIndex, uniformsGroup.__bindingPointIndex );\n\n\t\t\tuboBindings.set( program, blockIndex );\n\n\t\t}\n\n\t}\n\n\t//\n\n\tfunction reset() {\n\n\t\t// reset state\n\n\t\tgl.disable( gl.BLEND );\n\t\tgl.disable( gl.CULL_FACE );\n\t\tgl.disable( gl.DEPTH_TEST );\n\t\tgl.disable( gl.POLYGON_OFFSET_FILL );\n\t\tgl.disable( gl.SCISSOR_TEST );\n\t\tgl.disable( gl.STENCIL_TEST );\n\t\tgl.disable( gl.SAMPLE_ALPHA_TO_COVERAGE );\n\n\t\tgl.blendEquation( gl.FUNC_ADD );\n\t\tgl.blendFunc( gl.ONE, gl.ZERO );\n\t\tgl.blendFuncSeparate( gl.ONE, gl.ZERO, gl.ONE, gl.ZERO );\n\t\tgl.blendColor( 0, 0, 0, 0 );\n\n\t\tgl.colorMask( true, true, true, true );\n\t\tgl.clearColor( 0, 0, 0, 0 );\n\n\t\tgl.depthMask( true );\n\t\tgl.depthFunc( gl.LESS );\n\n\t\tdepthBuffer.setReversed( false );\n\n\t\tgl.clearDepth( 1 );\n\n\t\tgl.stencilMask( 0xffffffff );\n\t\tgl.stencilFunc( gl.ALWAYS, 0, 0xffffffff );\n\t\tgl.stencilOp( gl.KEEP, gl.KEEP, gl.KEEP );\n\t\tgl.clearStencil( 0 );\n\n\t\tgl.cullFace( gl.BACK );\n\t\tgl.frontFace( gl.CCW );\n\n\t\tgl.polygonOffset( 0, 0 );\n\n\t\tgl.activeTexture( gl.TEXTURE0 );\n\n\t\tgl.bindFramebuffer( gl.FRAMEBUFFER, null );\n\t\tgl.bindFramebuffer( gl.DRAW_FRAMEBUFFER, null );\n\t\tgl.bindFramebuffer( gl.READ_FRAMEBUFFER, null );\n\n\t\tgl.useProgram( null );\n\n\t\tgl.lineWidth( 1 );\n\n\t\tgl.scissor( 0, 0, gl.canvas.width, gl.canvas.height );\n\t\tgl.viewport( 0, 0, gl.canvas.width, gl.canvas.height );\n\n\t\t// reset internals\n\n\t\tenabledCapabilities = {};\n\n\t\tcurrentTextureSlot = null;\n\t\tcurrentBoundTextures = {};\n\n\t\tcurrentBoundFramebuffers = {};\n\t\tcurrentDrawbuffers = new WeakMap();\n\t\tdefaultDrawbuffers = [];\n\n\t\tcurrentProgram = null;\n\n\t\tcurrentBlendingEnabled = false;\n\t\tcurrentBlending = null;\n\t\tcurrentBlendEquation = null;\n\t\tcurrentBlendSrc = null;\n\t\tcurrentBlendDst = null;\n\t\tcurrentBlendEquationAlpha = null;\n\t\tcurrentBlendSrcAlpha = null;\n\t\tcurrentBlendDstAlpha = null;\n\t\tcurrentBlendColor = new Color( 0, 0, 0 );\n\t\tcurrentBlendAlpha = 0;\n\t\tcurrentPremultipledAlpha = false;\n\n\t\tcurrentFlipSided = null;\n\t\tcurrentCullFace = null;\n\n\t\tcurrentLineWidth = null;\n\n\t\tcurrentPolygonOffsetFactor = null;\n\t\tcurrentPolygonOffsetUnits = null;\n\n\t\tcurrentScissor.set( 0, 0, gl.canvas.width, gl.canvas.height );\n\t\tcurrentViewport.set( 0, 0, gl.canvas.width, gl.canvas.height );\n\n\t\tcolorBuffer.reset();\n\t\tdepthBuffer.reset();\n\t\tstencilBuffer.reset();\n\n\t}\n\n\treturn {\n\n\t\tbuffers: {\n\t\t\tcolor: colorBuffer,\n\t\t\tdepth: depthBuffer,\n\t\t\tstencil: stencilBuffer\n\t\t},\n\n\t\tenable: enable,\n\t\tdisable: disable,\n\n\t\tbindFramebuffer: bindFramebuffer,\n\t\tdrawBuffers: drawBuffers,\n\n\t\tuseProgram: useProgram,\n\n\t\tsetBlending: setBlending,\n\t\tsetMaterial: setMaterial,\n\n\t\tsetFlipSided: setFlipSided,\n\t\tsetCullFace: setCullFace,\n\n\t\tsetLineWidth: setLineWidth,\n\t\tsetPolygonOffset: setPolygonOffset,\n\n\t\tsetScissorTest: setScissorTest,\n\n\t\tactiveTexture: activeTexture,\n\t\tbindTexture: bindTexture,\n\t\tunbindTexture: unbindTexture,\n\t\tcompressedTexImage2D: compressedTexImage2D,\n\t\tcompressedTexImage3D: compressedTexImage3D,\n\t\ttexImage2D: texImage2D,\n\t\ttexImage3D: texImage3D,\n\n\t\tupdateUBOMapping: updateUBOMapping,\n\t\tuniformBlockBinding: uniformBlockBinding,\n\n\t\ttexStorage2D: texStorage2D,\n\t\ttexStorage3D: texStorage3D,\n\t\ttexSubImage2D: texSubImage2D,\n\t\ttexSubImage3D: texSubImage3D,\n\t\tcompressedTexSubImage2D: compressedTexSubImage2D,\n\t\tcompressedTexSubImage3D: compressedTexSubImage3D,\n\n\t\tscissor: scissor,\n\t\tviewport: viewport,\n\n\t\treset: reset\n\n\t};\n\n}\n\nfunction contain( texture, aspect ) {\n\n\tconst imageAspect = ( texture.image && texture.image.width ) ? texture.image.width / texture.image.height : 1;\n\n\tif ( imageAspect > aspect ) {\n\n\t\ttexture.repeat.x = 1;\n\t\ttexture.repeat.y = imageAspect / aspect;\n\n\t\ttexture.offset.x = 0;\n\t\ttexture.offset.y = ( 1 - texture.repeat.y ) / 2;\n\n\t} else {\n\n\t\ttexture.repeat.x = aspect / imageAspect;\n\t\ttexture.repeat.y = 1;\n\n\t\ttexture.offset.x = ( 1 - texture.repeat.x ) / 2;\n\t\ttexture.offset.y = 0;\n\n\t}\n\n\treturn texture;\n\n}\n\nfunction cover( texture, aspect ) {\n\n\tconst imageAspect = ( texture.image && texture.image.width ) ? texture.image.width / texture.image.height : 1;\n\n\tif ( imageAspect > aspect ) {\n\n\t\ttexture.repeat.x = aspect / imageAspect;\n\t\ttexture.repeat.y = 1;\n\n\t\ttexture.offset.x = ( 1 - texture.repeat.x ) / 2;\n\t\ttexture.offset.y = 0;\n\n\t} else {\n\n\t\ttexture.repeat.x = 1;\n\t\ttexture.repeat.y = imageAspect / aspect;\n\n\t\ttexture.offset.x = 0;\n\t\ttexture.offset.y = ( 1 - texture.repeat.y ) / 2;\n\n\t}\n\n\treturn texture;\n\n}\n\nfunction fill( texture ) {\n\n\ttexture.repeat.x = 1;\n\ttexture.repeat.y = 1;\n\n\ttexture.offset.x = 0;\n\ttexture.offset.y = 0;\n\n\treturn texture;\n\n}\n\n\n\n/**\n * Given the width, height, format, and type of a texture. Determines how many\n * bytes must be used to represent the texture.\n */\nfunction getByteLength( width, height, format, type ) {\n\n\tconst typeByteLength = getTextureTypeByteLength( type );\n\n\tswitch ( format ) {\n\n\t\t// https://registry.khronos.org/OpenGL-Refpages/es3.0/html/glTexImage2D.xhtml\n\t\tcase AlphaFormat:\n\t\t\treturn width * height;\n\t\tcase LuminanceFormat:\n\t\t\treturn width * height;\n\t\tcase LuminanceAlphaFormat:\n\t\t\treturn width * height * 2;\n\t\tcase RedFormat:\n\t\t\treturn ( ( width * height ) / typeByteLength.components ) * typeByteLength.byteLength;\n\t\tcase RedIntegerFormat:\n\t\t\treturn ( ( width * height ) / typeByteLength.components ) * typeByteLength.byteLength;\n\t\tcase RGFormat:\n\t\t\treturn ( ( width * height * 2 ) / typeByteLength.components ) * typeByteLength.byteLength;\n\t\tcase RGIntegerFormat:\n\t\t\treturn ( ( width * height * 2 ) / typeByteLength.components ) * typeByteLength.byteLength;\n\t\tcase RGBFormat:\n\t\t\treturn ( ( width * height * 3 ) / typeByteLength.components ) * typeByteLength.byteLength;\n\t\tcase RGBAFormat:\n\t\t\treturn ( ( width * height * 4 ) / typeByteLength.components ) * typeByteLength.byteLength;\n\t\tcase RGBAIntegerFormat:\n\t\t\treturn ( ( width * height * 4 ) / typeByteLength.components ) * typeByteLength.byteLength;\n\n\t\t// https://registry.khronos.org/webgl/extensions/WEBGL_compressed_texture_s3tc_srgb/\n\t\tcase RGB_S3TC_DXT1_Format:\n\t\tcase RGBA_S3TC_DXT1_Format:\n\t\t\treturn Math.floor( ( width + 3 ) / 4 ) * Math.floor( ( height + 3 ) / 4 ) * 8;\n\t\tcase RGBA_S3TC_DXT3_Format:\n\t\tcase RGBA_S3TC_DXT5_Format:\n\t\t\treturn Math.floor( ( width + 3 ) / 4 ) * Math.floor( ( height + 3 ) / 4 ) * 16;\n\n\t\t// https://registry.khronos.org/webgl/extensions/WEBGL_compressed_texture_pvrtc/\n\t\tcase RGB_PVRTC_2BPPV1_Format:\n\t\tcase RGBA_PVRTC_2BPPV1_Format:\n\t\t\treturn ( Math.max( width, 16 ) * Math.max( height, 8 ) ) / 4;\n\t\tcase RGB_PVRTC_4BPPV1_Format:\n\t\tcase RGBA_PVRTC_4BPPV1_Format:\n\t\t\treturn ( Math.max( width, 8 ) * Math.max( height, 8 ) ) / 2;\n\n\t\t// https://registry.khronos.org/webgl/extensions/WEBGL_compressed_texture_etc/\n\t\tcase RGB_ETC1_Format:\n\t\tcase RGB_ETC2_Format:\n\t\t\treturn Math.floor( ( width + 3 ) / 4 ) * Math.floor( ( height + 3 ) / 4 ) * 8;\n\t\tcase RGBA_ETC2_EAC_Format:\n\t\t\treturn Math.floor( ( width + 3 ) / 4 ) * Math.floor( ( height + 3 ) / 4 ) * 16;\n\n\t\t// https://registry.khronos.org/webgl/extensions/WEBGL_compressed_texture_astc/\n\t\tcase RGBA_ASTC_4x4_Format:\n\t\t\treturn Math.floor( ( width + 3 ) / 4 ) * Math.floor( ( height + 3 ) / 4 ) * 16;\n\t\tcase RGBA_ASTC_5x4_Format:\n\t\t\treturn Math.floor( ( width + 4 ) / 5 ) * Math.floor( ( height + 3 ) / 4 ) * 16;\n\t\tcase RGBA_ASTC_5x5_Format:\n\t\t\treturn Math.floor( ( width + 4 ) / 5 ) * Math.floor( ( height + 4 ) / 5 ) * 16;\n\t\tcase RGBA_ASTC_6x5_Format:\n\t\t\treturn Math.floor( ( width + 5 ) / 6 ) * Math.floor( ( height + 4 ) / 5 ) * 16;\n\t\tcase RGBA_ASTC_6x6_Format:\n\t\t\treturn Math.floor( ( width + 5 ) / 6 ) * Math.floor( ( height + 5 ) / 6 ) * 16;\n\t\tcase RGBA_ASTC_8x5_Format:\n\t\t\treturn Math.floor( ( width + 7 ) / 8 ) * Math.floor( ( height + 4 ) / 5 ) * 16;\n\t\tcase RGBA_ASTC_8x6_Format:\n\t\t\treturn Math.floor( ( width + 7 ) / 8 ) * Math.floor( ( height + 5 ) / 6 ) * 16;\n\t\tcase RGBA_ASTC_8x8_Format:\n\t\t\treturn Math.floor( ( width + 7 ) / 8 ) * Math.floor( ( height + 7 ) / 8 ) * 16;\n\t\tcase RGBA_ASTC_10x5_Format:\n\t\t\treturn Math.floor( ( width + 9 ) / 10 ) * Math.floor( ( height + 4 ) / 5 ) * 16;\n\t\tcase RGBA_ASTC_10x6_Format:\n\t\t\treturn Math.floor( ( width + 9 ) / 10 ) * Math.floor( ( height + 5 ) / 6 ) * 16;\n\t\tcase RGBA_ASTC_10x8_Format:\n\t\t\treturn Math.floor( ( width + 9 ) / 10 ) * Math.floor( ( height + 7 ) / 8 ) * 16;\n\t\tcase RGBA_ASTC_10x10_Format:\n\t\t\treturn Math.floor( ( width + 9 ) / 10 ) * Math.floor( ( height + 9 ) / 10 ) * 16;\n\t\tcase RGBA_ASTC_12x10_Format:\n\t\t\treturn Math.floor( ( width + 11 ) / 12 ) * Math.floor( ( height + 9 ) / 10 ) * 16;\n\t\tcase RGBA_ASTC_12x12_Format:\n\t\t\treturn Math.floor( ( width + 11 ) / 12 ) * Math.floor( ( height + 11 ) / 12 ) * 16;\n\n\t\t// https://registry.khronos.org/webgl/extensions/EXT_texture_compression_bptc/\n\t\tcase RGBA_BPTC_Format:\n\t\tcase RGB_BPTC_SIGNED_Format:\n\t\tcase RGB_BPTC_UNSIGNED_Format:\n\t\t\treturn Math.ceil( width / 4 ) * Math.ceil( height / 4 ) * 16;\n\n\t\t// https://registry.khronos.org/webgl/extensions/EXT_texture_compression_rgtc/\n\t\tcase RED_RGTC1_Format:\n\t\tcase SIGNED_RED_RGTC1_Format:\n\t\t\treturn Math.ceil( width / 4 ) * Math.ceil( height / 4 ) * 8;\n\t\tcase RED_GREEN_RGTC2_Format:\n\t\tcase SIGNED_RED_GREEN_RGTC2_Format:\n\t\t\treturn Math.ceil( width / 4 ) * Math.ceil( height / 4 ) * 16;\n\n\t}\n\n\tthrow new Error(\n\t\t`Unable to determine texture byte length for ${format} format.`,\n\t);\n\n}\n\nfunction getTextureTypeByteLength( type ) {\n\n\tswitch ( type ) {\n\n\t\tcase UnsignedByteType:\n\t\tcase ByteType:\n\t\t\treturn { byteLength: 1, components: 1 };\n\t\tcase UnsignedShortType:\n\t\tcase ShortType:\n\t\tcase HalfFloatType:\n\t\t\treturn { byteLength: 2, components: 1 };\n\t\tcase UnsignedShort4444Type:\n\t\tcase UnsignedShort5551Type:\n\t\t\treturn { byteLength: 2, components: 4 };\n\t\tcase UnsignedIntType:\n\t\tcase IntType:\n\t\tcase FloatType:\n\t\t\treturn { byteLength: 4, components: 1 };\n\t\tcase UnsignedInt5999Type:\n\t\t\treturn { byteLength: 4, components: 3 };\n\n\t}\n\n\tthrow new Error( `Unknown texture type ${type}.` );\n\n}\n\nconst TextureUtils = {\n\tcontain,\n\tcover,\n\tfill,\n\tgetByteLength\n};\n\nfunction WebGLTextures( _gl, extensions, state, properties, capabilities, utils, info ) {\n\n\tconst multisampledRTTExt = extensions.has( 'WEBGL_multisampled_render_to_texture' ) ? extensions.get( 'WEBGL_multisampled_render_to_texture' ) : null;\n\tconst supportsInvalidateFramebuffer = typeof navigator === 'undefined' ? false : /OculusBrowser/g.test( navigator.userAgent );\n\n\tconst _imageDimensions = new Vector2();\n\tconst _videoTextures = new WeakMap();\n\tlet _canvas;\n\n\tconst _sources = new WeakMap(); // maps WebglTexture objects to instances of Source\n\n\t// cordova iOS (as of 5.0) still uses UIWebView, which provides OffscreenCanvas,\n\t// also OffscreenCanvas.getContext(\"webgl\"), but not OffscreenCanvas.getContext(\"2d\")!\n\t// Some implementations may only implement OffscreenCanvas partially (e.g. lacking 2d).\n\n\tlet useOffscreenCanvas = false;\n\n\ttry {\n\n\t\tuseOffscreenCanvas = typeof OffscreenCanvas !== 'undefined'\n\t\t\t// eslint-disable-next-line compat/compat\n\t\t\t&& ( new OffscreenCanvas( 1, 1 ).getContext( '2d' ) ) !== null;\n\n\t} catch ( err ) {\n\n\t\t// Ignore any errors\n\n\t}\n\n\tfunction createCanvas( width, height ) {\n\n\t\t// Use OffscreenCanvas when available. Specially needed in web workers\n\n\t\treturn useOffscreenCanvas ?\n\t\t\t// eslint-disable-next-line compat/compat\n\t\t\tnew OffscreenCanvas( width, height ) : createElementNS( 'canvas' );\n\n\t}\n\n\tfunction resizeImage( image, needsNewCanvas, maxSize ) {\n\n\t\tlet scale = 1;\n\n\t\tconst dimensions = getDimensions( image );\n\n\t\t// handle case if texture exceeds max size\n\n\t\tif ( dimensions.width > maxSize || dimensions.height > maxSize ) {\n\n\t\t\tscale = maxSize / Math.max( dimensions.width, dimensions.height );\n\n\t\t}\n\n\t\t// only perform resize if necessary\n\n\t\tif ( scale < 1 ) {\n\n\t\t\t// only perform resize for certain image types\n\n\t\t\tif ( ( typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement ) ||\n\t\t\t\t( typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement ) ||\n\t\t\t\t( typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap ) ||\n\t\t\t\t( typeof VideoFrame !== 'undefined' && image instanceof VideoFrame ) ) {\n\n\t\t\t\tconst width = Math.floor( scale * dimensions.width );\n\t\t\t\tconst height = Math.floor( scale * dimensions.height );\n\n\t\t\t\tif ( _canvas === undefined ) _canvas = createCanvas( width, height );\n\n\t\t\t\t// cube textures can't reuse the same canvas\n\n\t\t\t\tconst canvas = needsNewCanvas ? createCanvas( width, height ) : _canvas;\n\n\t\t\t\tcanvas.width = width;\n\t\t\t\tcanvas.height = height;\n\n\t\t\t\tconst context = canvas.getContext( '2d' );\n\t\t\t\tcontext.drawImage( image, 0, 0, width, height );\n\n\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Texture has been resized from (' + dimensions.width + 'x' + dimensions.height + ') to (' + width + 'x' + height + ').' );\n\n\t\t\t\treturn canvas;\n\n\t\t\t} else {\n\n\t\t\t\tif ( 'data' in image ) {\n\n\t\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Image in DataTexture is too big (' + dimensions.width + 'x' + dimensions.height + ').' );\n\n\t\t\t\t}\n\n\t\t\t\treturn image;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn image;\n\n\t}\n\n\tfunction textureNeedsGenerateMipmaps( texture ) {\n\n\t\treturn texture.generateMipmaps;\n\n\t}\n\n\tfunction generateMipmap( target ) {\n\n\t\t_gl.generateMipmap( target );\n\n\t}\n\n\tfunction getTargetType( texture ) {\n\n\t\tif ( texture.isWebGLCubeRenderTarget ) return _gl.TEXTURE_CUBE_MAP;\n\t\tif ( texture.isWebGL3DRenderTarget ) return _gl.TEXTURE_3D;\n\t\tif ( texture.isWebGLArrayRenderTarget || texture.isCompressedArrayTexture ) return _gl.TEXTURE_2D_ARRAY;\n\t\treturn _gl.TEXTURE_2D;\n\n\t}\n\n\tfunction getInternalFormat( internalFormatName, glFormat, glType, colorSpace, forceLinearTransfer = false ) {\n\n\t\tif ( internalFormatName !== null ) {\n\n\t\t\tif ( _gl[ internalFormatName ] !== undefined ) return _gl[ internalFormatName ];\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format \\'' + internalFormatName + '\\'' );\n\n\t\t}\n\n\t\tlet internalFormat = glFormat;\n\n\t\tif ( glFormat === _gl.RED ) {\n\n\t\t\tif ( glType === _gl.FLOAT ) internalFormat = _gl.R32F;\n\t\t\tif ( glType === _gl.HALF_FLOAT ) internalFormat = _gl.R16F;\n\t\t\tif ( glType === _gl.UNSIGNED_BYTE ) internalFormat = _gl.R8;\n\n\t\t}\n\n\t\tif ( glFormat === _gl.RED_INTEGER ) {\n\n\t\t\tif ( glType === _gl.UNSIGNED_BYTE ) internalFormat = _gl.R8UI;\n\t\t\tif ( glType === _gl.UNSIGNED_SHORT ) internalFormat = _gl.R16UI;\n\t\t\tif ( glType === _gl.UNSIGNED_INT ) internalFormat = _gl.R32UI;\n\t\t\tif ( glType === _gl.BYTE ) internalFormat = _gl.R8I;\n\t\t\tif ( glType === _gl.SHORT ) internalFormat = _gl.R16I;\n\t\t\tif ( glType === _gl.INT ) internalFormat = _gl.R32I;\n\n\t\t}\n\n\t\tif ( glFormat === _gl.RG ) {\n\n\t\t\tif ( glType === _gl.FLOAT ) internalFormat = _gl.RG32F;\n\t\t\tif ( glType === _gl.HALF_FLOAT ) internalFormat = _gl.RG16F;\n\t\t\tif ( glType === _gl.UNSIGNED_BYTE ) internalFormat = _gl.RG8;\n\n\t\t}\n\n\t\tif ( glFormat === _gl.RG_INTEGER ) {\n\n\t\t\tif ( glType === _gl.UNSIGNED_BYTE ) internalFormat = _gl.RG8UI;\n\t\t\tif ( glType === _gl.UNSIGNED_SHORT ) internalFormat = _gl.RG16UI;\n\t\t\tif ( glType === _gl.UNSIGNED_INT ) internalFormat = _gl.RG32UI;\n\t\t\tif ( glType === _gl.BYTE ) internalFormat = _gl.RG8I;\n\t\t\tif ( glType === _gl.SHORT ) internalFormat = _gl.RG16I;\n\t\t\tif ( glType === _gl.INT ) internalFormat = _gl.RG32I;\n\n\t\t}\n\n\t\tif ( glFormat === _gl.RGB_INTEGER ) {\n\n\t\t\tif ( glType === _gl.UNSIGNED_BYTE ) internalFormat = _gl.RGB8UI;\n\t\t\tif ( glType === _gl.UNSIGNED_SHORT ) internalFormat = _gl.RGB16UI;\n\t\t\tif ( glType === _gl.UNSIGNED_INT ) internalFormat = _gl.RGB32UI;\n\t\t\tif ( glType === _gl.BYTE ) internalFormat = _gl.RGB8I;\n\t\t\tif ( glType === _gl.SHORT ) internalFormat = _gl.RGB16I;\n\t\t\tif ( glType === _gl.INT ) internalFormat = _gl.RGB32I;\n\n\t\t}\n\n\t\tif ( glFormat === _gl.RGBA_INTEGER ) {\n\n\t\t\tif ( glType === _gl.UNSIGNED_BYTE ) internalFormat = _gl.RGBA8UI;\n\t\t\tif ( glType === _gl.UNSIGNED_SHORT ) internalFormat = _gl.RGBA16UI;\n\t\t\tif ( glType === _gl.UNSIGNED_INT ) internalFormat = _gl.RGBA32UI;\n\t\t\tif ( glType === _gl.BYTE ) internalFormat = _gl.RGBA8I;\n\t\t\tif ( glType === _gl.SHORT ) internalFormat = _gl.RGBA16I;\n\t\t\tif ( glType === _gl.INT ) internalFormat = _gl.RGBA32I;\n\n\t\t}\n\n\t\tif ( glFormat === _gl.RGB ) {\n\n\t\t\tif ( glType === _gl.UNSIGNED_INT_5_9_9_9_REV ) internalFormat = _gl.RGB9_E5;\n\n\t\t}\n\n\t\tif ( glFormat === _gl.RGBA ) {\n\n\t\t\tconst transfer = forceLinearTransfer ? LinearTransfer : ColorManagement.getTransfer( colorSpace );\n\n\t\t\tif ( glType === _gl.FLOAT ) internalFormat = _gl.RGBA32F;\n\t\t\tif ( glType === _gl.HALF_FLOAT ) internalFormat = _gl.RGBA16F;\n\t\t\tif ( glType === _gl.UNSIGNED_BYTE ) internalFormat = ( transfer === SRGBTransfer ) ? _gl.SRGB8_ALPHA8 : _gl.RGBA8;\n\t\t\tif ( glType === _gl.UNSIGNED_SHORT_4_4_4_4 ) internalFormat = _gl.RGBA4;\n\t\t\tif ( glType === _gl.UNSIGNED_SHORT_5_5_5_1 ) internalFormat = _gl.RGB5_A1;\n\n\t\t}\n\n\t\tif ( internalFormat === _gl.R16F || internalFormat === _gl.R32F ||\n\t\t\tinternalFormat === _gl.RG16F || internalFormat === _gl.RG32F ||\n\t\t\tinternalFormat === _gl.RGBA16F || internalFormat === _gl.RGBA32F ) {\n\n\t\t\textensions.get( 'EXT_color_buffer_float' );\n\n\t\t}\n\n\t\treturn internalFormat;\n\n\t}\n\n\tfunction getInternalDepthFormat( useStencil, depthType ) {\n\n\t\tlet glInternalFormat;\n\t\tif ( useStencil ) {\n\n\t\t\tif ( depthType === null || depthType === UnsignedIntType || depthType === UnsignedInt248Type ) {\n\n\t\t\t\tglInternalFormat = _gl.DEPTH24_STENCIL8;\n\n\t\t\t} else if ( depthType === FloatType ) {\n\n\t\t\t\tglInternalFormat = _gl.DEPTH32F_STENCIL8;\n\n\t\t\t} else if ( depthType === UnsignedShortType ) {\n\n\t\t\t\tglInternalFormat = _gl.DEPTH24_STENCIL8;\n\t\t\t\tconsole.warn( 'DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.' );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tif ( depthType === null || depthType === UnsignedIntType || depthType === UnsignedInt248Type ) {\n\n\t\t\t\tglInternalFormat = _gl.DEPTH_COMPONENT24;\n\n\t\t\t} else if ( depthType === FloatType ) {\n\n\t\t\t\tglInternalFormat = _gl.DEPTH_COMPONENT32F;\n\n\t\t\t} else if ( depthType === UnsignedShortType ) {\n\n\t\t\t\tglInternalFormat = _gl.DEPTH_COMPONENT16;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn glInternalFormat;\n\n\t}\n\n\tfunction getMipLevels( texture, image ) {\n\n\t\tif ( textureNeedsGenerateMipmaps( texture ) === true || ( texture.isFramebufferTexture && texture.minFilter !== NearestFilter && texture.minFilter !== LinearFilter ) ) {\n\n\t\t\treturn Math.log2( Math.max( image.width, image.height ) ) + 1;\n\n\t\t} else if ( texture.mipmaps !== undefined && texture.mipmaps.length > 0 ) {\n\n\t\t\t// user-defined mipmaps\n\n\t\t\treturn texture.mipmaps.length;\n\n\t\t} else if ( texture.isCompressedTexture && Array.isArray( texture.image ) ) {\n\n\t\t\treturn image.mipmaps.length;\n\n\t\t} else {\n\n\t\t\t// texture without mipmaps (only base level)\n\n\t\t\treturn 1;\n\n\t\t}\n\n\t}\n\n\t//\n\n\tfunction onTextureDispose( event ) {\n\n\t\tconst texture = event.target;\n\n\t\ttexture.removeEventListener( 'dispose', onTextureDispose );\n\n\t\tdeallocateTexture( texture );\n\n\t\tif ( texture.isVideoTexture ) {\n\n\t\t\t_videoTextures.delete( texture );\n\n\t\t}\n\n\t}\n\n\tfunction onRenderTargetDispose( event ) {\n\n\t\tconst renderTarget = event.target;\n\n\t\trenderTarget.removeEventListener( 'dispose', onRenderTargetDispose );\n\n\t\tdeallocateRenderTarget( renderTarget );\n\n\t}\n\n\t//\n\n\tfunction deallocateTexture( texture ) {\n\n\t\tconst textureProperties = properties.get( texture );\n\n\t\tif ( textureProperties.__webglInit === undefined ) return;\n\n\t\t// check if it's necessary to remove the WebGLTexture object\n\n\t\tconst source = texture.source;\n\t\tconst webglTextures = _sources.get( source );\n\n\t\tif ( webglTextures ) {\n\n\t\t\tconst webglTexture = webglTextures[ textureProperties.__cacheKey ];\n\t\t\twebglTexture.usedTimes --;\n\n\t\t\t// the WebGLTexture object is not used anymore, remove it\n\n\t\t\tif ( webglTexture.usedTimes === 0 ) {\n\n\t\t\t\tdeleteTexture( texture );\n\n\t\t\t}\n\n\t\t\t// remove the weak map entry if no WebGLTexture uses the source anymore\n\n\t\t\tif ( Object.keys( webglTextures ).length === 0 ) {\n\n\t\t\t\t_sources.delete( source );\n\n\t\t\t}\n\n\t\t}\n\n\t\tproperties.remove( texture );\n\n\t}\n\n\tfunction deleteTexture( texture ) {\n\n\t\tconst textureProperties = properties.get( texture );\n\t\t_gl.deleteTexture( textureProperties.__webglTexture );\n\n\t\tconst source = texture.source;\n\t\tconst webglTextures = _sources.get( source );\n\t\tdelete webglTextures[ textureProperties.__cacheKey ];\n\n\t\tinfo.memory.textures --;\n\n\t}\n\n\tfunction deallocateRenderTarget( renderTarget ) {\n\n\t\tconst renderTargetProperties = properties.get( renderTarget );\n\n\t\tif ( renderTarget.depthTexture ) {\n\n\t\t\trenderTarget.depthTexture.dispose();\n\n\t\t\tproperties.remove( renderTarget.depthTexture );\n\n\t\t}\n\n\t\tif ( renderTarget.isWebGLCubeRenderTarget ) {\n\n\t\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\t\tif ( Array.isArray( renderTargetProperties.__webglFramebuffer[ i ] ) ) {\n\n\t\t\t\t\tfor ( let level = 0; level < renderTargetProperties.__webglFramebuffer[ i ].length; level ++ ) _gl.deleteFramebuffer( renderTargetProperties.__webglFramebuffer[ i ][ level ] );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t_gl.deleteFramebuffer( renderTargetProperties.__webglFramebuffer[ i ] );\n\n\t\t\t\t}\n\n\t\t\t\tif ( renderTargetProperties.__webglDepthbuffer ) _gl.deleteRenderbuffer( renderTargetProperties.__webglDepthbuffer[ i ] );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tif ( Array.isArray( renderTargetProperties.__webglFramebuffer ) ) {\n\n\t\t\t\tfor ( let level = 0; level < renderTargetProperties.__webglFramebuffer.length; level ++ ) _gl.deleteFramebuffer( renderTargetProperties.__webglFramebuffer[ level ] );\n\n\t\t\t} else {\n\n\t\t\t\t_gl.deleteFramebuffer( renderTargetProperties.__webglFramebuffer );\n\n\t\t\t}\n\n\t\t\tif ( renderTargetProperties.__webglDepthbuffer ) _gl.deleteRenderbuffer( renderTargetProperties.__webglDepthbuffer );\n\t\t\tif ( renderTargetProperties.__webglMultisampledFramebuffer ) _gl.deleteFramebuffer( renderTargetProperties.__webglMultisampledFramebuffer );\n\n\t\t\tif ( renderTargetProperties.__webglColorRenderbuffer ) {\n\n\t\t\t\tfor ( let i = 0; i < renderTargetProperties.__webglColorRenderbuffer.length; i ++ ) {\n\n\t\t\t\t\tif ( renderTargetProperties.__webglColorRenderbuffer[ i ] ) _gl.deleteRenderbuffer( renderTargetProperties.__webglColorRenderbuffer[ i ] );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( renderTargetProperties.__webglDepthRenderbuffer ) _gl.deleteRenderbuffer( renderTargetProperties.__webglDepthRenderbuffer );\n\n\t\t}\n\n\t\tconst textures = renderTarget.textures;\n\n\t\tfor ( let i = 0, il = textures.length; i < il; i ++ ) {\n\n\t\t\tconst attachmentProperties = properties.get( textures[ i ] );\n\n\t\t\tif ( attachmentProperties.__webglTexture ) {\n\n\t\t\t\t_gl.deleteTexture( attachmentProperties.__webglTexture );\n\n\t\t\t\tinfo.memory.textures --;\n\n\t\t\t}\n\n\t\t\tproperties.remove( textures[ i ] );\n\n\t\t}\n\n\t\tproperties.remove( renderTarget );\n\n\t}\n\n\t//\n\n\tlet textureUnits = 0;\n\n\tfunction resetTextureUnits() {\n\n\t\ttextureUnits = 0;\n\n\t}\n\n\tfunction allocateTextureUnit() {\n\n\t\tconst textureUnit = textureUnits;\n\n\t\tif ( textureUnit >= capabilities.maxTextures ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLTextures: Trying to use ' + textureUnit + ' texture units while this GPU supports only ' + capabilities.maxTextures );\n\n\t\t}\n\n\t\ttextureUnits += 1;\n\n\t\treturn textureUnit;\n\n\t}\n\n\tfunction getTextureCacheKey( texture ) {\n\n\t\tconst array = [];\n\n\t\tarray.push( texture.wrapS );\n\t\tarray.push( texture.wrapT );\n\t\tarray.push( texture.wrapR || 0 );\n\t\tarray.push( texture.magFilter );\n\t\tarray.push( texture.minFilter );\n\t\tarray.push( texture.anisotropy );\n\t\tarray.push( texture.internalFormat );\n\t\tarray.push( texture.format );\n\t\tarray.push( texture.type );\n\t\tarray.push( texture.generateMipmaps );\n\t\tarray.push( texture.premultiplyAlpha );\n\t\tarray.push( texture.flipY );\n\t\tarray.push( texture.unpackAlignment );\n\t\tarray.push( texture.colorSpace );\n\n\t\treturn array.join();\n\n\t}\n\n\t//\n\n\tfunction setTexture2D( texture, slot ) {\n\n\t\tconst textureProperties = properties.get( texture );\n\n\t\tif ( texture.isVideoTexture ) updateVideoTexture( texture );\n\n\t\tif ( texture.isRenderTargetTexture === false && texture.version > 0 && textureProperties.__version !== texture.version ) {\n\n\t\t\tconst image = texture.image;\n\n\t\t\tif ( image === null ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Texture marked for update but no image data found.' );\n\n\t\t\t} else if ( image.complete === false ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Texture marked for update but image is incomplete' );\n\n\t\t\t} else {\n\n\t\t\t\tuploadTexture( textureProperties, texture, slot );\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t}\n\n\t\tstate.bindTexture( _gl.TEXTURE_2D, textureProperties.__webglTexture, _gl.TEXTURE0 + slot );\n\n\t}\n\n\tfunction setTexture2DArray( texture, slot ) {\n\n\t\tconst textureProperties = properties.get( texture );\n\n\t\tif ( texture.version > 0 && textureProperties.__version !== texture.version ) {\n\n\t\t\tuploadTexture( textureProperties, texture, slot );\n\t\t\treturn;\n\n\t\t}\n\n\t\tstate.bindTexture( _gl.TEXTURE_2D_ARRAY, textureProperties.__webglTexture, _gl.TEXTURE0 + slot );\n\n\t}\n\n\tfunction setTexture3D( texture, slot ) {\n\n\t\tconst textureProperties = properties.get( texture );\n\n\t\tif ( texture.version > 0 && textureProperties.__version !== texture.version ) {\n\n\t\t\tuploadTexture( textureProperties, texture, slot );\n\t\t\treturn;\n\n\t\t}\n\n\t\tstate.bindTexture( _gl.TEXTURE_3D, textureProperties.__webglTexture, _gl.TEXTURE0 + slot );\n\n\t}\n\n\tfunction setTextureCube( texture, slot ) {\n\n\t\tconst textureProperties = properties.get( texture );\n\n\t\tif ( texture.version > 0 && textureProperties.__version !== texture.version ) {\n\n\t\t\tuploadCubeTexture( textureProperties, texture, slot );\n\t\t\treturn;\n\n\t\t}\n\n\t\tstate.bindTexture( _gl.TEXTURE_CUBE_MAP, textureProperties.__webglTexture, _gl.TEXTURE0 + slot );\n\n\t}\n\n\tconst wrappingToGL = {\n\t\t[ RepeatWrapping ]: _gl.REPEAT,\n\t\t[ ClampToEdgeWrapping ]: _gl.CLAMP_TO_EDGE,\n\t\t[ MirroredRepeatWrapping ]: _gl.MIRRORED_REPEAT\n\t};\n\n\tconst filterToGL = {\n\t\t[ NearestFilter ]: _gl.NEAREST,\n\t\t[ NearestMipmapNearestFilter ]: _gl.NEAREST_MIPMAP_NEAREST,\n\t\t[ NearestMipmapLinearFilter ]: _gl.NEAREST_MIPMAP_LINEAR,\n\n\t\t[ LinearFilter ]: _gl.LINEAR,\n\t\t[ LinearMipmapNearestFilter ]: _gl.LINEAR_MIPMAP_NEAREST,\n\t\t[ LinearMipmapLinearFilter ]: _gl.LINEAR_MIPMAP_LINEAR\n\t};\n\n\tconst compareToGL = {\n\t\t[ NeverCompare ]: _gl.NEVER,\n\t\t[ AlwaysCompare ]: _gl.ALWAYS,\n\t\t[ LessCompare ]: _gl.LESS,\n\t\t[ LessEqualCompare ]: _gl.LEQUAL,\n\t\t[ EqualCompare ]: _gl.EQUAL,\n\t\t[ GreaterEqualCompare ]: _gl.GEQUAL,\n\t\t[ GreaterCompare ]: _gl.GREATER,\n\t\t[ NotEqualCompare ]: _gl.NOTEQUAL\n\t};\n\n\tfunction setTextureParameters( textureType, texture ) {\n\n\t\tif ( texture.type === FloatType && extensions.has( 'OES_texture_float_linear' ) === false &&\n\t\t\t( texture.magFilter === LinearFilter || texture.magFilter === LinearMipmapNearestFilter || texture.magFilter === NearestMipmapLinearFilter || texture.magFilter === LinearMipmapLinearFilter ||\n\t\t\ttexture.minFilter === LinearFilter || texture.minFilter === LinearMipmapNearestFilter || texture.minFilter === NearestMipmapLinearFilter || texture.minFilter === LinearMipmapLinearFilter ) ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device.' );\n\n\t\t}\n\n\t\t_gl.texParameteri( textureType, _gl.TEXTURE_WRAP_S, wrappingToGL[ texture.wrapS ] );\n\t\t_gl.texParameteri( textureType, _gl.TEXTURE_WRAP_T, wrappingToGL[ texture.wrapT ] );\n\n\t\tif ( textureType === _gl.TEXTURE_3D || textureType === _gl.TEXTURE_2D_ARRAY ) {\n\n\t\t\t_gl.texParameteri( textureType, _gl.TEXTURE_WRAP_R, wrappingToGL[ texture.wrapR ] );\n\n\t\t}\n\n\t\t_gl.texParameteri( textureType, _gl.TEXTURE_MAG_FILTER, filterToGL[ texture.magFilter ] );\n\t\t_gl.texParameteri( textureType, _gl.TEXTURE_MIN_FILTER, filterToGL[ texture.minFilter ] );\n\n\t\tif ( texture.compareFunction ) {\n\n\t\t\t_gl.texParameteri( textureType, _gl.TEXTURE_COMPARE_MODE, _gl.COMPARE_REF_TO_TEXTURE );\n\t\t\t_gl.texParameteri( textureType, _gl.TEXTURE_COMPARE_FUNC, compareToGL[ texture.compareFunction ] );\n\n\t\t}\n\n\t\tif ( extensions.has( 'EXT_texture_filter_anisotropic' ) === true ) {\n\n\t\t\tif ( texture.magFilter === NearestFilter ) return;\n\t\t\tif ( texture.minFilter !== NearestMipmapLinearFilter && texture.minFilter !== LinearMipmapLinearFilter ) return;\n\t\t\tif ( texture.type === FloatType && extensions.has( 'OES_texture_float_linear' ) === false ) return; // verify extension\n\n\t\t\tif ( texture.anisotropy > 1 || properties.get( texture ).__currentAnisotropy ) {\n\n\t\t\t\tconst extension = extensions.get( 'EXT_texture_filter_anisotropic' );\n\t\t\t\t_gl.texParameterf( textureType, extension.TEXTURE_MAX_ANISOTROPY_EXT, Math.min( texture.anisotropy, capabilities.getMaxAnisotropy() ) );\n\t\t\t\tproperties.get( texture ).__currentAnisotropy = texture.anisotropy;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tfunction initTexture( textureProperties, texture ) {\n\n\t\tlet forceUpload = false;\n\n\t\tif ( textureProperties.__webglInit === undefined ) {\n\n\t\t\ttextureProperties.__webglInit = true;\n\n\t\t\ttexture.addEventListener( 'dispose', onTextureDispose );\n\n\t\t}\n\n\t\t// create Source <-> WebGLTextures mapping if necessary\n\n\t\tconst source = texture.source;\n\t\tlet webglTextures = _sources.get( source );\n\n\t\tif ( webglTextures === undefined ) {\n\n\t\t\twebglTextures = {};\n\t\t\t_sources.set( source, webglTextures );\n\n\t\t}\n\n\t\t// check if there is already a WebGLTexture object for the given texture parameters\n\n\t\tconst textureCacheKey = getTextureCacheKey( texture );\n\n\t\tif ( textureCacheKey !== textureProperties.__cacheKey ) {\n\n\t\t\t// if not, create a new instance of WebGLTexture\n\n\t\t\tif ( webglTextures[ textureCacheKey ] === undefined ) {\n\n\t\t\t\t// create new entry\n\n\t\t\t\twebglTextures[ textureCacheKey ] = {\n\t\t\t\t\ttexture: _gl.createTexture(),\n\t\t\t\t\tusedTimes: 0\n\t\t\t\t};\n\n\t\t\t\tinfo.memory.textures ++;\n\n\t\t\t\t// when a new instance of WebGLTexture was created, a texture upload is required\n\t\t\t\t// even if the image contents are identical\n\n\t\t\t\tforceUpload = true;\n\n\t\t\t}\n\n\t\t\twebglTextures[ textureCacheKey ].usedTimes ++;\n\n\t\t\t// every time the texture cache key changes, it's necessary to check if an instance of\n\t\t\t// WebGLTexture can be deleted in order to avoid a memory leak.\n\n\t\t\tconst webglTexture = webglTextures[ textureProperties.__cacheKey ];\n\n\t\t\tif ( webglTexture !== undefined ) {\n\n\t\t\t\twebglTextures[ textureProperties.__cacheKey ].usedTimes --;\n\n\t\t\t\tif ( webglTexture.usedTimes === 0 ) {\n\n\t\t\t\t\tdeleteTexture( texture );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// store references to cache key and WebGLTexture object\n\n\t\t\ttextureProperties.__cacheKey = textureCacheKey;\n\t\t\ttextureProperties.__webglTexture = webglTextures[ textureCacheKey ].texture;\n\n\t\t}\n\n\t\treturn forceUpload;\n\n\t}\n\n\tfunction uploadTexture( textureProperties, texture, slot ) {\n\n\t\tlet textureType = _gl.TEXTURE_2D;\n\n\t\tif ( texture.isDataArrayTexture || texture.isCompressedArrayTexture ) textureType = _gl.TEXTURE_2D_ARRAY;\n\t\tif ( texture.isData3DTexture ) textureType = _gl.TEXTURE_3D;\n\n\t\tconst forceUpload = initTexture( textureProperties, texture );\n\t\tconst source = texture.source;\n\n\t\tstate.bindTexture( textureType, textureProperties.__webglTexture, _gl.TEXTURE0 + slot );\n\n\t\tconst sourceProperties = properties.get( source );\n\n\t\tif ( source.version !== sourceProperties.__version || forceUpload === true ) {\n\n\t\t\tstate.activeTexture( _gl.TEXTURE0 + slot );\n\n\t\t\tconst workingPrimaries = ColorManagement.getPrimaries( ColorManagement.workingColorSpace );\n\t\t\tconst texturePrimaries = texture.colorSpace === NoColorSpace ? null : ColorManagement.getPrimaries( texture.colorSpace );\n\t\t\tconst unpackConversion = texture.colorSpace === NoColorSpace || workingPrimaries === texturePrimaries ? _gl.NONE : _gl.BROWSER_DEFAULT_WEBGL;\n\n\t\t\t_gl.pixelStorei( _gl.UNPACK_FLIP_Y_WEBGL, texture.flipY );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, texture.premultiplyAlpha );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_ALIGNMENT, texture.unpackAlignment );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, unpackConversion );\n\n\t\t\tlet image = resizeImage( texture.image, false, capabilities.maxTextureSize );\n\t\t\timage = verifyColorSpace( texture, image );\n\n\t\t\tconst glFormat = utils.convert( texture.format, texture.colorSpace );\n\n\t\t\tconst glType = utils.convert( texture.type );\n\t\t\tlet glInternalFormat = getInternalFormat( texture.internalFormat, glFormat, glType, texture.colorSpace, texture.isVideoTexture );\n\n\t\t\tsetTextureParameters( textureType, texture );\n\n\t\t\tlet mipmap;\n\t\t\tconst mipmaps = texture.mipmaps;\n\n\t\t\tconst useTexStorage = ( texture.isVideoTexture !== true );\n\t\t\tconst allocateMemory = ( sourceProperties.__version === undefined ) || ( forceUpload === true );\n\t\t\tconst dataReady = source.dataReady;\n\t\t\tconst levels = getMipLevels( texture, image );\n\n\t\t\tif ( texture.isDepthTexture ) {\n\n\t\t\t\tglInternalFormat = getInternalDepthFormat( texture.format === DepthStencilFormat, texture.type );\n\n\t\t\t\t//\n\n\t\t\t\tif ( allocateMemory ) {\n\n\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\tstate.texStorage2D( _gl.TEXTURE_2D, 1, glInternalFormat, image.width, image.height );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_2D, 0, glInternalFormat, image.width, image.height, 0, glFormat, glType, null );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else if ( texture.isDataTexture ) {\n\n\t\t\t\t// use manually created mipmaps if available\n\t\t\t\t// if there are no manual mipmaps\n\t\t\t\t// set 0 level mipmap and then use GL to generate other mipmap levels\n\n\t\t\t\tif ( mipmaps.length > 0 ) {\n\n\t\t\t\t\tif ( useTexStorage && allocateMemory ) {\n\n\t\t\t\t\t\tstate.texStorage2D( _gl.TEXTURE_2D, levels, glInternalFormat, mipmaps[ 0 ].width, mipmaps[ 0 ].height );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfor ( let i = 0, il = mipmaps.length; i < il; i ++ ) {\n\n\t\t\t\t\t\tmipmap = mipmaps[ i ];\n\n\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\tstate.texSubImage2D( _gl.TEXTURE_2D, i, 0, 0, mipmap.width, mipmap.height, glFormat, glType, mipmap.data );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_2D, i, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\ttexture.generateMipmaps = false;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\tif ( allocateMemory ) {\n\n\t\t\t\t\t\t\tstate.texStorage2D( _gl.TEXTURE_2D, levels, glInternalFormat, image.width, image.height );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\tstate.texSubImage2D( _gl.TEXTURE_2D, 0, 0, 0, image.width, image.height, glFormat, glType, image.data );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_2D, 0, glInternalFormat, image.width, image.height, 0, glFormat, glType, image.data );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else if ( texture.isCompressedTexture ) {\n\n\t\t\t\tif ( texture.isCompressedArrayTexture ) {\n\n\t\t\t\t\tif ( useTexStorage && allocateMemory ) {\n\n\t\t\t\t\t\tstate.texStorage3D( _gl.TEXTURE_2D_ARRAY, levels, glInternalFormat, mipmaps[ 0 ].width, mipmaps[ 0 ].height, image.depth );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfor ( let i = 0, il = mipmaps.length; i < il; i ++ ) {\n\n\t\t\t\t\t\tmipmap = mipmaps[ i ];\n\n\t\t\t\t\t\tif ( texture.format !== RGBAFormat ) {\n\n\t\t\t\t\t\t\tif ( glFormat !== null ) {\n\n\t\t\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\t\t\tif ( texture.layerUpdates.size > 0 ) {\n\n\t\t\t\t\t\t\t\t\t\t\tconst layerByteLength = getByteLength( mipmap.width, mipmap.height, texture.format, texture.type );\n\n\t\t\t\t\t\t\t\t\t\t\tfor ( const layerIndex of texture.layerUpdates ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\tconst layerData = mipmap.data.subarray(\n\t\t\t\t\t\t\t\t\t\t\t\t\tlayerIndex * layerByteLength / mipmap.data.BYTES_PER_ELEMENT,\n\t\t\t\t\t\t\t\t\t\t\t\t\t( layerIndex + 1 ) * layerByteLength / mipmap.data.BYTES_PER_ELEMENT\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\tstate.compressedTexSubImage3D( _gl.TEXTURE_2D_ARRAY, i, 0, 0, layerIndex, mipmap.width, mipmap.height, 1, glFormat, layerData );\n\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\ttexture.clearLayerUpdates();\n\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\tstate.compressedTexSubImage3D( _gl.TEXTURE_2D_ARRAY, i, 0, 0, 0, mipmap.width, mipmap.height, image.depth, glFormat, mipmap.data );\n\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\tstate.compressedTexImage3D( _gl.TEXTURE_2D_ARRAY, i, glInternalFormat, mipmap.width, mipmap.height, image.depth, 0, mipmap.data, 0, 0 );\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()' );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\t\tstate.texSubImage3D( _gl.TEXTURE_2D_ARRAY, i, 0, 0, 0, mipmap.width, mipmap.height, image.depth, glFormat, glType, mipmap.data );\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tstate.texImage3D( _gl.TEXTURE_2D_ARRAY, i, glInternalFormat, mipmap.width, mipmap.height, image.depth, 0, glFormat, glType, mipmap.data );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( useTexStorage && allocateMemory ) {\n\n\t\t\t\t\t\tstate.texStorage2D( _gl.TEXTURE_2D, levels, glInternalFormat, mipmaps[ 0 ].width, mipmaps[ 0 ].height );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfor ( let i = 0, il = mipmaps.length; i < il; i ++ ) {\n\n\t\t\t\t\t\tmipmap = mipmaps[ i ];\n\n\t\t\t\t\t\tif ( texture.format !== RGBAFormat ) {\n\n\t\t\t\t\t\t\tif ( glFormat !== null ) {\n\n\t\t\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\t\t\tstate.compressedTexSubImage2D( _gl.TEXTURE_2D, i, 0, 0, mipmap.width, mipmap.height, glFormat, mipmap.data );\n\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\tstate.compressedTexImage2D( _gl.TEXTURE_2D, i, glInternalFormat, mipmap.width, mipmap.height, 0, mipmap.data );\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()' );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\t\tstate.texSubImage2D( _gl.TEXTURE_2D, i, 0, 0, mipmap.width, mipmap.height, glFormat, glType, mipmap.data );\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_2D, i, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else if ( texture.isDataArrayTexture ) {\n\n\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\tif ( allocateMemory ) {\n\n\t\t\t\t\t\tstate.texStorage3D( _gl.TEXTURE_2D_ARRAY, levels, glInternalFormat, image.width, image.height, image.depth );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\tif ( texture.layerUpdates.size > 0 ) {\n\n\t\t\t\t\t\t\tconst layerByteLength = getByteLength( image.width, image.height, texture.format, texture.type );\n\n\t\t\t\t\t\t\tfor ( const layerIndex of texture.layerUpdates ) {\n\n\t\t\t\t\t\t\t\tconst layerData = image.data.subarray(\n\t\t\t\t\t\t\t\t\tlayerIndex * layerByteLength / image.data.BYTES_PER_ELEMENT,\n\t\t\t\t\t\t\t\t\t( layerIndex + 1 ) * layerByteLength / image.data.BYTES_PER_ELEMENT\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tstate.texSubImage3D( _gl.TEXTURE_2D_ARRAY, 0, 0, 0, layerIndex, image.width, image.height, 1, glFormat, glType, layerData );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\ttexture.clearLayerUpdates();\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tstate.texSubImage3D( _gl.TEXTURE_2D_ARRAY, 0, 0, 0, 0, image.width, image.height, image.depth, glFormat, glType, image.data );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tstate.texImage3D( _gl.TEXTURE_2D_ARRAY, 0, glInternalFormat, image.width, image.height, image.depth, 0, glFormat, glType, image.data );\n\n\t\t\t\t}\n\n\t\t\t} else if ( texture.isData3DTexture ) {\n\n\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\tif ( allocateMemory ) {\n\n\t\t\t\t\t\tstate.texStorage3D( _gl.TEXTURE_3D, levels, glInternalFormat, image.width, image.height, image.depth );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\tstate.texSubImage3D( _gl.TEXTURE_3D, 0, 0, 0, 0, image.width, image.height, image.depth, glFormat, glType, image.data );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tstate.texImage3D( _gl.TEXTURE_3D, 0, glInternalFormat, image.width, image.height, image.depth, 0, glFormat, glType, image.data );\n\n\t\t\t\t}\n\n\t\t\t} else if ( texture.isFramebufferTexture ) {\n\n\t\t\t\tif ( allocateMemory ) {\n\n\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\tstate.texStorage2D( _gl.TEXTURE_2D, levels, glInternalFormat, image.width, image.height );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tlet width = image.width, height = image.height;\n\n\t\t\t\t\t\tfor ( let i = 0; i < levels; i ++ ) {\n\n\t\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_2D, i, glInternalFormat, width, height, 0, glFormat, glType, null );\n\n\t\t\t\t\t\t\twidth >>= 1;\n\t\t\t\t\t\t\theight >>= 1;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t// regular Texture (image, video, canvas)\n\n\t\t\t\t// use manually created mipmaps if available\n\t\t\t\t// if there are no manual mipmaps\n\t\t\t\t// set 0 level mipmap and then use GL to generate other mipmap levels\n\n\t\t\t\tif ( mipmaps.length > 0 ) {\n\n\t\t\t\t\tif ( useTexStorage && allocateMemory ) {\n\n\t\t\t\t\t\tconst dimensions = getDimensions( mipmaps[ 0 ] );\n\n\t\t\t\t\t\tstate.texStorage2D( _gl.TEXTURE_2D, levels, glInternalFormat, dimensions.width, dimensions.height );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfor ( let i = 0, il = mipmaps.length; i < il; i ++ ) {\n\n\t\t\t\t\t\tmipmap = mipmaps[ i ];\n\n\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\tstate.texSubImage2D( _gl.TEXTURE_2D, i, 0, 0, glFormat, glType, mipmap );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_2D, i, glInternalFormat, glFormat, glType, mipmap );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\ttexture.generateMipmaps = false;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\tif ( allocateMemory ) {\n\n\t\t\t\t\t\t\tconst dimensions = getDimensions( image );\n\n\t\t\t\t\t\t\tstate.texStorage2D( _gl.TEXTURE_2D, levels, glInternalFormat, dimensions.width, dimensions.height );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\tstate.texSubImage2D( _gl.TEXTURE_2D, 0, 0, 0, glFormat, glType, image );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_2D, 0, glInternalFormat, glFormat, glType, image );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( textureNeedsGenerateMipmaps( texture ) ) {\n\n\t\t\t\tgenerateMipmap( textureType );\n\n\t\t\t}\n\n\t\t\tsourceProperties.__version = source.version;\n\n\t\t\tif ( texture.onUpdate ) texture.onUpdate( texture );\n\n\t\t}\n\n\t\ttextureProperties.__version = texture.version;\n\n\t}\n\n\tfunction uploadCubeTexture( textureProperties, texture, slot ) {\n\n\t\tif ( texture.image.length !== 6 ) return;\n\n\t\tconst forceUpload = initTexture( textureProperties, texture );\n\t\tconst source = texture.source;\n\n\t\tstate.bindTexture( _gl.TEXTURE_CUBE_MAP, textureProperties.__webglTexture, _gl.TEXTURE0 + slot );\n\n\t\tconst sourceProperties = properties.get( source );\n\n\t\tif ( source.version !== sourceProperties.__version || forceUpload === true ) {\n\n\t\t\tstate.activeTexture( _gl.TEXTURE0 + slot );\n\n\t\t\tconst workingPrimaries = ColorManagement.getPrimaries( ColorManagement.workingColorSpace );\n\t\t\tconst texturePrimaries = texture.colorSpace === NoColorSpace ? null : ColorManagement.getPrimaries( texture.colorSpace );\n\t\t\tconst unpackConversion = texture.colorSpace === NoColorSpace || workingPrimaries === texturePrimaries ? _gl.NONE : _gl.BROWSER_DEFAULT_WEBGL;\n\n\t\t\t_gl.pixelStorei( _gl.UNPACK_FLIP_Y_WEBGL, texture.flipY );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, texture.premultiplyAlpha );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_ALIGNMENT, texture.unpackAlignment );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, unpackConversion );\n\n\t\t\tconst isCompressed = ( texture.isCompressedTexture || texture.image[ 0 ].isCompressedTexture );\n\t\t\tconst isDataTexture = ( texture.image[ 0 ] && texture.image[ 0 ].isDataTexture );\n\n\t\t\tconst cubeImage = [];\n\n\t\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\t\tif ( ! isCompressed && ! isDataTexture ) {\n\n\t\t\t\t\tcubeImage[ i ] = resizeImage( texture.image[ i ], true, capabilities.maxCubemapSize );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tcubeImage[ i ] = isDataTexture ? texture.image[ i ].image : texture.image[ i ];\n\n\t\t\t\t}\n\n\t\t\t\tcubeImage[ i ] = verifyColorSpace( texture, cubeImage[ i ] );\n\n\t\t\t}\n\n\t\t\tconst image = cubeImage[ 0 ],\n\t\t\t\tglFormat = utils.convert( texture.format, texture.colorSpace ),\n\t\t\t\tglType = utils.convert( texture.type ),\n\t\t\t\tglInternalFormat = getInternalFormat( texture.internalFormat, glFormat, glType, texture.colorSpace );\n\n\t\t\tconst useTexStorage = ( texture.isVideoTexture !== true );\n\t\t\tconst allocateMemory = ( sourceProperties.__version === undefined ) || ( forceUpload === true );\n\t\t\tconst dataReady = source.dataReady;\n\t\t\tlet levels = getMipLevels( texture, image );\n\n\t\t\tsetTextureParameters( _gl.TEXTURE_CUBE_MAP, texture );\n\n\t\t\tlet mipmaps;\n\n\t\t\tif ( isCompressed ) {\n\n\t\t\t\tif ( useTexStorage && allocateMemory ) {\n\n\t\t\t\t\tstate.texStorage2D( _gl.TEXTURE_CUBE_MAP, levels, glInternalFormat, image.width, image.height );\n\n\t\t\t\t}\n\n\t\t\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\t\t\tmipmaps = cubeImage[ i ].mipmaps;\n\n\t\t\t\t\tfor ( let j = 0; j < mipmaps.length; j ++ ) {\n\n\t\t\t\t\t\tconst mipmap = mipmaps[ j ];\n\n\t\t\t\t\t\tif ( texture.format !== RGBAFormat ) {\n\n\t\t\t\t\t\t\tif ( glFormat !== null ) {\n\n\t\t\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\t\t\tstate.compressedTexSubImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j, 0, 0, mipmap.width, mipmap.height, glFormat, mipmap.data );\n\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\tstate.compressedTexImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j, glInternalFormat, mipmap.width, mipmap.height, 0, mipmap.data );\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()' );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\t\tstate.texSubImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j, 0, 0, mipmap.width, mipmap.height, glFormat, glType, mipmap.data );\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tmipmaps = texture.mipmaps;\n\n\t\t\t\tif ( useTexStorage && allocateMemory ) {\n\n\t\t\t\t\t// TODO: Uniformly handle mipmap definitions\n\t\t\t\t\t// Normal textures and compressed cube textures define base level + mips with their mipmap array\n\t\t\t\t\t// Uncompressed cube textures use their mipmap array only for mips (no base level)\n\n\t\t\t\t\tif ( mipmaps.length > 0 ) levels ++;\n\n\t\t\t\t\tconst dimensions = getDimensions( cubeImage[ 0 ] );\n\n\t\t\t\t\tstate.texStorage2D( _gl.TEXTURE_CUBE_MAP, levels, glInternalFormat, dimensions.width, dimensions.height );\n\n\t\t\t\t}\n\n\t\t\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\t\t\tif ( isDataTexture ) {\n\n\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\tstate.texSubImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, 0, 0, cubeImage[ i ].width, cubeImage[ i ].height, glFormat, glType, cubeImage[ i ].data );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, glInternalFormat, cubeImage[ i ].width, cubeImage[ i ].height, 0, glFormat, glType, cubeImage[ i ].data );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor ( let j = 0; j < mipmaps.length; j ++ ) {\n\n\t\t\t\t\t\t\tconst mipmap = mipmaps[ j ];\n\t\t\t\t\t\t\tconst mipmapImage = mipmap.image[ i ].image;\n\n\t\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\t\tstate.texSubImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j + 1, 0, 0, mipmapImage.width, mipmapImage.height, glFormat, glType, mipmapImage.data );\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j + 1, glInternalFormat, mipmapImage.width, mipmapImage.height, 0, glFormat, glType, mipmapImage.data );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\tstate.texSubImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, 0, 0, glFormat, glType, cubeImage[ i ] );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, glInternalFormat, glFormat, glType, cubeImage[ i ] );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor ( let j = 0; j < mipmaps.length; j ++ ) {\n\n\t\t\t\t\t\t\tconst mipmap = mipmaps[ j ];\n\n\t\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\t\tstate.texSubImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j + 1, 0, 0, glFormat, glType, mipmap.image[ i ] );\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j + 1, glInternalFormat, glFormat, glType, mipmap.image[ i ] );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( textureNeedsGenerateMipmaps( texture ) ) {\n\n\t\t\t\t// We assume images for cube map have the same size.\n\t\t\t\tgenerateMipmap( _gl.TEXTURE_CUBE_MAP );\n\n\t\t\t}\n\n\t\t\tsourceProperties.__version = source.version;\n\n\t\t\tif ( texture.onUpdate ) texture.onUpdate( texture );\n\n\t\t}\n\n\t\ttextureProperties.__version = texture.version;\n\n\t}\n\n\t// Render targets\n\n\t// Setup storage for target texture and bind it to correct framebuffer\n\tfunction setupFrameBufferTexture( framebuffer, renderTarget, texture, attachment, textureTarget, level ) {\n\n\t\tconst glFormat = utils.convert( texture.format, texture.colorSpace );\n\t\tconst glType = utils.convert( texture.type );\n\t\tconst glInternalFormat = getInternalFormat( texture.internalFormat, glFormat, glType, texture.colorSpace );\n\t\tconst renderTargetProperties = properties.get( renderTarget );\n\t\tconst textureProperties = properties.get( texture );\n\n\t\ttextureProperties.__renderTarget = renderTarget;\n\n\t\tif ( ! renderTargetProperties.__hasExternalTextures ) {\n\n\t\t\tconst width = Math.max( 1, renderTarget.width >> level );\n\t\t\tconst height = Math.max( 1, renderTarget.height >> level );\n\n\t\t\tif ( textureTarget === _gl.TEXTURE_3D || textureTarget === _gl.TEXTURE_2D_ARRAY ) {\n\n\t\t\t\tstate.texImage3D( textureTarget, level, glInternalFormat, width, height, renderTarget.depth, 0, glFormat, glType, null );\n\n\t\t\t} else {\n\n\t\t\t\tstate.texImage2D( textureTarget, level, glInternalFormat, width, height, 0, glFormat, glType, null );\n\n\t\t\t}\n\n\t\t}\n\n\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, framebuffer );\n\n\t\tif ( useMultisampledRTT( renderTarget ) ) {\n\n\t\t\tmultisampledRTTExt.framebufferTexture2DMultisampleEXT( _gl.FRAMEBUFFER, attachment, textureTarget, textureProperties.__webglTexture, 0, getRenderTargetSamples( renderTarget ) );\n\n\t\t} else if ( textureTarget === _gl.TEXTURE_2D || ( textureTarget >= _gl.TEXTURE_CUBE_MAP_POSITIVE_X && textureTarget <= _gl.TEXTURE_CUBE_MAP_NEGATIVE_Z ) ) { // see #24753\n\n\t\t\t_gl.framebufferTexture2D( _gl.FRAMEBUFFER, attachment, textureTarget, textureProperties.__webglTexture, level );\n\n\t\t}\n\n\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, null );\n\n\t}\n\n\t// Setup storage for internal depth/stencil buffers and bind to correct framebuffer\n\tfunction setupRenderBufferStorage( renderbuffer, renderTarget, isMultisample ) {\n\n\t\t_gl.bindRenderbuffer( _gl.RENDERBUFFER, renderbuffer );\n\n\t\tif ( renderTarget.depthBuffer ) {\n\n\t\t\t// retrieve the depth attachment types\n\t\t\tconst depthTexture = renderTarget.depthTexture;\n\t\t\tconst depthType = depthTexture && depthTexture.isDepthTexture ? depthTexture.type : null;\n\t\t\tconst glInternalFormat = getInternalDepthFormat( renderTarget.stencilBuffer, depthType );\n\t\t\tconst glAttachmentType = renderTarget.stencilBuffer ? _gl.DEPTH_STENCIL_ATTACHMENT : _gl.DEPTH_ATTACHMENT;\n\n\t\t\t// set up the attachment\n\t\t\tconst samples = getRenderTargetSamples( renderTarget );\n\t\t\tconst isUseMultisampledRTT = useMultisampledRTT( renderTarget );\n\t\t\tif ( isUseMultisampledRTT ) {\n\n\t\t\t\tmultisampledRTTExt.renderbufferStorageMultisampleEXT( _gl.RENDERBUFFER, samples, glInternalFormat, renderTarget.width, renderTarget.height );\n\n\t\t\t} else if ( isMultisample ) {\n\n\t\t\t\t_gl.renderbufferStorageMultisample( _gl.RENDERBUFFER, samples, glInternalFormat, renderTarget.width, renderTarget.height );\n\n\t\t\t} else {\n\n\t\t\t\t_gl.renderbufferStorage( _gl.RENDERBUFFER, glInternalFormat, renderTarget.width, renderTarget.height );\n\n\t\t\t}\n\n\t\t\t_gl.framebufferRenderbuffer( _gl.FRAMEBUFFER, glAttachmentType, _gl.RENDERBUFFER, renderbuffer );\n\n\t\t} else {\n\n\t\t\tconst textures = renderTarget.textures;\n\n\t\t\tfor ( let i = 0; i < textures.length; i ++ ) {\n\n\t\t\t\tconst texture = textures[ i ];\n\n\t\t\t\tconst glFormat = utils.convert( texture.format, texture.colorSpace );\n\t\t\t\tconst glType = utils.convert( texture.type );\n\t\t\t\tconst glInternalFormat = getInternalFormat( texture.internalFormat, glFormat, glType, texture.colorSpace );\n\t\t\t\tconst samples = getRenderTargetSamples( renderTarget );\n\n\t\t\t\tif ( isMultisample && useMultisampledRTT( renderTarget ) === false ) {\n\n\t\t\t\t\t_gl.renderbufferStorageMultisample( _gl.RENDERBUFFER, samples, glInternalFormat, renderTarget.width, renderTarget.height );\n\n\t\t\t\t} else if ( useMultisampledRTT( renderTarget ) ) {\n\n\t\t\t\t\tmultisampledRTTExt.renderbufferStorageMultisampleEXT( _gl.RENDERBUFFER, samples, glInternalFormat, renderTarget.width, renderTarget.height );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t_gl.renderbufferStorage( _gl.RENDERBUFFER, glInternalFormat, renderTarget.width, renderTarget.height );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t_gl.bindRenderbuffer( _gl.RENDERBUFFER, null );\n\n\t}\n\n\t// Setup resources for a Depth Texture for a FBO (needs an extension)\n\tfunction setupDepthTexture( framebuffer, renderTarget ) {\n\n\t\tconst isCube = ( renderTarget && renderTarget.isWebGLCubeRenderTarget );\n\t\tif ( isCube ) throw new Error( 'Depth Texture with cube render targets is not supported' );\n\n\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, framebuffer );\n\n\t\tif ( ! ( renderTarget.depthTexture && renderTarget.depthTexture.isDepthTexture ) ) {\n\n\t\t\tthrow new Error( 'renderTarget.depthTexture must be an instance of THREE.DepthTexture' );\n\n\t\t}\n\n\t\tconst textureProperties = properties.get( renderTarget.depthTexture );\n\t\ttextureProperties.__renderTarget = renderTarget;\n\n\t\t// upload an empty depth texture with framebuffer size\n\t\tif ( ! textureProperties.__webglTexture ||\n\t\t\t\trenderTarget.depthTexture.image.width !== renderTarget.width ||\n\t\t\t\trenderTarget.depthTexture.image.height !== renderTarget.height ) {\n\n\t\t\trenderTarget.depthTexture.image.width = renderTarget.width;\n\t\t\trenderTarget.depthTexture.image.height = renderTarget.height;\n\t\t\trenderTarget.depthTexture.needsUpdate = true;\n\n\t\t}\n\n\t\tsetTexture2D( renderTarget.depthTexture, 0 );\n\n\t\tconst webglDepthTexture = textureProperties.__webglTexture;\n\t\tconst samples = getRenderTargetSamples( renderTarget );\n\n\t\tif ( renderTarget.depthTexture.format === DepthFormat ) {\n\n\t\t\tif ( useMultisampledRTT( renderTarget ) ) {\n\n\t\t\t\tmultisampledRTTExt.framebufferTexture2DMultisampleEXT( _gl.FRAMEBUFFER, _gl.DEPTH_ATTACHMENT, _gl.TEXTURE_2D, webglDepthTexture, 0, samples );\n\n\t\t\t} else {\n\n\t\t\t\t_gl.framebufferTexture2D( _gl.FRAMEBUFFER, _gl.DEPTH_ATTACHMENT, _gl.TEXTURE_2D, webglDepthTexture, 0 );\n\n\t\t\t}\n\n\t\t} else if ( renderTarget.depthTexture.format === DepthStencilFormat ) {\n\n\t\t\tif ( useMultisampledRTT( renderTarget ) ) {\n\n\t\t\t\tmultisampledRTTExt.framebufferTexture2DMultisampleEXT( _gl.FRAMEBUFFER, _gl.DEPTH_STENCIL_ATTACHMENT, _gl.TEXTURE_2D, webglDepthTexture, 0, samples );\n\n\t\t\t} else {\n\n\t\t\t\t_gl.framebufferTexture2D( _gl.FRAMEBUFFER, _gl.DEPTH_STENCIL_ATTACHMENT, _gl.TEXTURE_2D, webglDepthTexture, 0 );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'Unknown depthTexture format' );\n\n\t\t}\n\n\t}\n\n\t// Setup GL resources for a non-texture depth buffer\n\tfunction setupDepthRenderbuffer( renderTarget ) {\n\n\t\tconst renderTargetProperties = properties.get( renderTarget );\n\t\tconst isCube = ( renderTarget.isWebGLCubeRenderTarget === true );\n\n\t\t// if the bound depth texture has changed\n\t\tif ( renderTargetProperties.__boundDepthTexture !== renderTarget.depthTexture ) {\n\n\t\t\t// fire the dispose event to get rid of stored state associated with the previously bound depth buffer\n\t\t\tconst depthTexture = renderTarget.depthTexture;\n\t\t\tif ( renderTargetProperties.__depthDisposeCallback ) {\n\n\t\t\t\trenderTargetProperties.__depthDisposeCallback();\n\n\t\t\t}\n\n\t\t\t// set up dispose listeners to track when the currently attached buffer is implicitly unbound\n\t\t\tif ( depthTexture ) {\n\n\t\t\t\tconst disposeEvent = () => {\n\n\t\t\t\t\tdelete renderTargetProperties.__boundDepthTexture;\n\t\t\t\t\tdelete renderTargetProperties.__depthDisposeCallback;\n\t\t\t\t\tdepthTexture.removeEventListener( 'dispose', disposeEvent );\n\n\t\t\t\t};\n\n\t\t\t\tdepthTexture.addEventListener( 'dispose', disposeEvent );\n\t\t\t\trenderTargetProperties.__depthDisposeCallback = disposeEvent;\n\n\t\t\t}\n\n\t\t\trenderTargetProperties.__boundDepthTexture = depthTexture;\n\n\t\t}\n\n\t\tif ( renderTarget.depthTexture && ! renderTargetProperties.__autoAllocateDepthBuffer ) {\n\n\t\t\tif ( isCube ) throw new Error( 'target.depthTexture not supported in Cube render targets' );\n\n\t\t\tsetupDepthTexture( renderTargetProperties.__webglFramebuffer, renderTarget );\n\n\t\t} else {\n\n\t\t\tif ( isCube ) {\n\n\t\t\t\trenderTargetProperties.__webglDepthbuffer = [];\n\n\t\t\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer[ i ] );\n\n\t\t\t\t\tif ( renderTargetProperties.__webglDepthbuffer[ i ] === undefined ) {\n\n\t\t\t\t\t\trenderTargetProperties.__webglDepthbuffer[ i ] = _gl.createRenderbuffer();\n\t\t\t\t\t\tsetupRenderBufferStorage( renderTargetProperties.__webglDepthbuffer[ i ], renderTarget, false );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// attach buffer if it's been created already\n\t\t\t\t\t\tconst glAttachmentType = renderTarget.stencilBuffer ? _gl.DEPTH_STENCIL_ATTACHMENT : _gl.DEPTH_ATTACHMENT;\n\t\t\t\t\t\tconst renderbuffer = renderTargetProperties.__webglDepthbuffer[ i ];\n\t\t\t\t\t\t_gl.bindRenderbuffer( _gl.RENDERBUFFER, renderbuffer );\n\t\t\t\t\t\t_gl.framebufferRenderbuffer( _gl.FRAMEBUFFER, glAttachmentType, _gl.RENDERBUFFER, renderbuffer );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer );\n\n\t\t\t\tif ( renderTargetProperties.__webglDepthbuffer === undefined ) {\n\n\t\t\t\t\trenderTargetProperties.__webglDepthbuffer = _gl.createRenderbuffer();\n\t\t\t\t\tsetupRenderBufferStorage( renderTargetProperties.__webglDepthbuffer, renderTarget, false );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// attach buffer if it's been created already\n\t\t\t\t\tconst glAttachmentType = renderTarget.stencilBuffer ? _gl.DEPTH_STENCIL_ATTACHMENT : _gl.DEPTH_ATTACHMENT;\n\t\t\t\t\tconst renderbuffer = renderTargetProperties.__webglDepthbuffer;\n\t\t\t\t\t_gl.bindRenderbuffer( _gl.RENDERBUFFER, renderbuffer );\n\t\t\t\t\t_gl.framebufferRenderbuffer( _gl.FRAMEBUFFER, glAttachmentType, _gl.RENDERBUFFER, renderbuffer );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, null );\n\n\t}\n\n\t// rebind framebuffer with external textures\n\tfunction rebindTextures( renderTarget, colorTexture, depthTexture ) {\n\n\t\tconst renderTargetProperties = properties.get( renderTarget );\n\n\t\tif ( colorTexture !== undefined ) {\n\n\t\t\tsetupFrameBufferTexture( renderTargetProperties.__webglFramebuffer, renderTarget, renderTarget.texture, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_2D, 0 );\n\n\t\t}\n\n\t\tif ( depthTexture !== undefined ) {\n\n\t\t\tsetupDepthRenderbuffer( renderTarget );\n\n\t\t}\n\n\t}\n\n\t// Set up GL resources for the render target\n\tfunction setupRenderTarget( renderTarget ) {\n\n\t\tconst texture = renderTarget.texture;\n\n\t\tconst renderTargetProperties = properties.get( renderTarget );\n\t\tconst textureProperties = properties.get( texture );\n\n\t\trenderTarget.addEventListener( 'dispose', onRenderTargetDispose );\n\n\t\tconst textures = renderTarget.textures;\n\n\t\tconst isCube = ( renderTarget.isWebGLCubeRenderTarget === true );\n\t\tconst isMultipleRenderTargets = ( textures.length > 1 );\n\n\t\tif ( ! isMultipleRenderTargets ) {\n\n\t\t\tif ( textureProperties.__webglTexture === undefined ) {\n\n\t\t\t\ttextureProperties.__webglTexture = _gl.createTexture();\n\n\t\t\t}\n\n\t\t\ttextureProperties.__version = texture.version;\n\t\t\tinfo.memory.textures ++;\n\n\t\t}\n\n\t\t// Setup framebuffer\n\n\t\tif ( isCube ) {\n\n\t\t\trenderTargetProperties.__webglFramebuffer = [];\n\n\t\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\t\tif ( texture.mipmaps && texture.mipmaps.length > 0 ) {\n\n\t\t\t\t\trenderTargetProperties.__webglFramebuffer[ i ] = [];\n\n\t\t\t\t\tfor ( let level = 0; level < texture.mipmaps.length; level ++ ) {\n\n\t\t\t\t\t\trenderTargetProperties.__webglFramebuffer[ i ][ level ] = _gl.createFramebuffer();\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\trenderTargetProperties.__webglFramebuffer[ i ] = _gl.createFramebuffer();\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tif ( texture.mipmaps && texture.mipmaps.length > 0 ) {\n\n\t\t\t\trenderTargetProperties.__webglFramebuffer = [];\n\n\t\t\t\tfor ( let level = 0; level < texture.mipmaps.length; level ++ ) {\n\n\t\t\t\t\trenderTargetProperties.__webglFramebuffer[ level ] = _gl.createFramebuffer();\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\trenderTargetProperties.__webglFramebuffer = _gl.createFramebuffer();\n\n\t\t\t}\n\n\t\t\tif ( isMultipleRenderTargets ) {\n\n\t\t\t\tfor ( let i = 0, il = textures.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst attachmentProperties = properties.get( textures[ i ] );\n\n\t\t\t\t\tif ( attachmentProperties.__webglTexture === undefined ) {\n\n\t\t\t\t\t\tattachmentProperties.__webglTexture = _gl.createTexture();\n\n\t\t\t\t\t\tinfo.memory.textures ++;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( ( renderTarget.samples > 0 ) && useMultisampledRTT( renderTarget ) === false ) {\n\n\t\t\t\trenderTargetProperties.__webglMultisampledFramebuffer = _gl.createFramebuffer();\n\t\t\t\trenderTargetProperties.__webglColorRenderbuffer = [];\n\n\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer );\n\n\t\t\t\tfor ( let i = 0; i < textures.length; i ++ ) {\n\n\t\t\t\t\tconst texture = textures[ i ];\n\t\t\t\t\trenderTargetProperties.__webglColorRenderbuffer[ i ] = _gl.createRenderbuffer();\n\n\t\t\t\t\t_gl.bindRenderbuffer( _gl.RENDERBUFFER, renderTargetProperties.__webglColorRenderbuffer[ i ] );\n\n\t\t\t\t\tconst glFormat = utils.convert( texture.format, texture.colorSpace );\n\t\t\t\t\tconst glType = utils.convert( texture.type );\n\t\t\t\t\tconst glInternalFormat = getInternalFormat( texture.internalFormat, glFormat, glType, texture.colorSpace, renderTarget.isXRRenderTarget === true );\n\t\t\t\t\tconst samples = getRenderTargetSamples( renderTarget );\n\t\t\t\t\t_gl.renderbufferStorageMultisample( _gl.RENDERBUFFER, samples, glInternalFormat, renderTarget.width, renderTarget.height );\n\n\t\t\t\t\t_gl.framebufferRenderbuffer( _gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0 + i, _gl.RENDERBUFFER, renderTargetProperties.__webglColorRenderbuffer[ i ] );\n\n\t\t\t\t}\n\n\t\t\t\t_gl.bindRenderbuffer( _gl.RENDERBUFFER, null );\n\n\t\t\t\tif ( renderTarget.depthBuffer ) {\n\n\t\t\t\t\trenderTargetProperties.__webglDepthRenderbuffer = _gl.createRenderbuffer();\n\t\t\t\t\tsetupRenderBufferStorage( renderTargetProperties.__webglDepthRenderbuffer, renderTarget, true );\n\n\t\t\t\t}\n\n\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, null );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// Setup color buffer\n\n\t\tif ( isCube ) {\n\n\t\t\tstate.bindTexture( _gl.TEXTURE_CUBE_MAP, textureProperties.__webglTexture );\n\t\t\tsetTextureParameters( _gl.TEXTURE_CUBE_MAP, texture );\n\n\t\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\t\tif ( texture.mipmaps && texture.mipmaps.length > 0 ) {\n\n\t\t\t\t\tfor ( let level = 0; level < texture.mipmaps.length; level ++ ) {\n\n\t\t\t\t\t\tsetupFrameBufferTexture( renderTargetProperties.__webglFramebuffer[ i ][ level ], renderTarget, texture, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, level );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tsetupFrameBufferTexture( renderTargetProperties.__webglFramebuffer[ i ], renderTarget, texture, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0 );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( textureNeedsGenerateMipmaps( texture ) ) {\n\n\t\t\t\tgenerateMipmap( _gl.TEXTURE_CUBE_MAP );\n\n\t\t\t}\n\n\t\t\tstate.unbindTexture();\n\n\t\t} else if ( isMultipleRenderTargets ) {\n\n\t\t\tfor ( let i = 0, il = textures.length; i < il; i ++ ) {\n\n\t\t\t\tconst attachment = textures[ i ];\n\t\t\t\tconst attachmentProperties = properties.get( attachment );\n\n\t\t\t\tstate.bindTexture( _gl.TEXTURE_2D, attachmentProperties.__webglTexture );\n\t\t\t\tsetTextureParameters( _gl.TEXTURE_2D, attachment );\n\t\t\t\tsetupFrameBufferTexture( renderTargetProperties.__webglFramebuffer, renderTarget, attachment, _gl.COLOR_ATTACHMENT0 + i, _gl.TEXTURE_2D, 0 );\n\n\t\t\t\tif ( textureNeedsGenerateMipmaps( attachment ) ) {\n\n\t\t\t\t\tgenerateMipmap( _gl.TEXTURE_2D );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tstate.unbindTexture();\n\n\t\t} else {\n\n\t\t\tlet glTextureType = _gl.TEXTURE_2D;\n\n\t\t\tif ( renderTarget.isWebGL3DRenderTarget || renderTarget.isWebGLArrayRenderTarget ) {\n\n\t\t\t\tglTextureType = renderTarget.isWebGL3DRenderTarget ? _gl.TEXTURE_3D : _gl.TEXTURE_2D_ARRAY;\n\n\t\t\t}\n\n\t\t\tstate.bindTexture( glTextureType, textureProperties.__webglTexture );\n\t\t\tsetTextureParameters( glTextureType, texture );\n\n\t\t\tif ( texture.mipmaps && texture.mipmaps.length > 0 ) {\n\n\t\t\t\tfor ( let level = 0; level < texture.mipmaps.length; level ++ ) {\n\n\t\t\t\t\tsetupFrameBufferTexture( renderTargetProperties.__webglFramebuffer[ level ], renderTarget, texture, _gl.COLOR_ATTACHMENT0, glTextureType, level );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tsetupFrameBufferTexture( renderTargetProperties.__webglFramebuffer, renderTarget, texture, _gl.COLOR_ATTACHMENT0, glTextureType, 0 );\n\n\t\t\t}\n\n\t\t\tif ( textureNeedsGenerateMipmaps( texture ) ) {\n\n\t\t\t\tgenerateMipmap( glTextureType );\n\n\t\t\t}\n\n\t\t\tstate.unbindTexture();\n\n\t\t}\n\n\t\t// Setup depth and stencil buffers\n\n\t\tif ( renderTarget.depthBuffer ) {\n\n\t\t\tsetupDepthRenderbuffer( renderTarget );\n\n\t\t}\n\n\t}\n\n\tfunction updateRenderTargetMipmap( renderTarget ) {\n\n\t\tconst textures = renderTarget.textures;\n\n\t\tfor ( let i = 0, il = textures.length; i < il; i ++ ) {\n\n\t\t\tconst texture = textures[ i ];\n\n\t\t\tif ( textureNeedsGenerateMipmaps( texture ) ) {\n\n\t\t\t\tconst targetType = getTargetType( renderTarget );\n\t\t\t\tconst webglTexture = properties.get( texture ).__webglTexture;\n\n\t\t\t\tstate.bindTexture( targetType, webglTexture );\n\t\t\t\tgenerateMipmap( targetType );\n\t\t\t\tstate.unbindTexture();\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tconst invalidationArrayRead = [];\n\tconst invalidationArrayDraw = [];\n\n\tfunction updateMultisampleRenderTarget( renderTarget ) {\n\n\t\tif ( renderTarget.samples > 0 ) {\n\n\t\t\tif ( useMultisampledRTT( renderTarget ) === false ) {\n\n\t\t\t\tconst textures = renderTarget.textures;\n\t\t\t\tconst width = renderTarget.width;\n\t\t\t\tconst height = renderTarget.height;\n\t\t\t\tlet mask = _gl.COLOR_BUFFER_BIT;\n\t\t\t\tconst depthStyle = renderTarget.stencilBuffer ? _gl.DEPTH_STENCIL_ATTACHMENT : _gl.DEPTH_ATTACHMENT;\n\t\t\t\tconst renderTargetProperties = properties.get( renderTarget );\n\t\t\t\tconst isMultipleRenderTargets = ( textures.length > 1 );\n\n\t\t\t\t// If MRT we need to remove FBO attachments\n\t\t\t\tif ( isMultipleRenderTargets ) {\n\n\t\t\t\t\tfor ( let i = 0; i < textures.length; i ++ ) {\n\n\t\t\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer );\n\t\t\t\t\t\t_gl.framebufferRenderbuffer( _gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0 + i, _gl.RENDERBUFFER, null );\n\n\t\t\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer );\n\t\t\t\t\t\t_gl.framebufferTexture2D( _gl.DRAW_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0 + i, _gl.TEXTURE_2D, null, 0 );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tstate.bindFramebuffer( _gl.READ_FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer );\n\t\t\t\tstate.bindFramebuffer( _gl.DRAW_FRAMEBUFFER, renderTargetProperties.__webglFramebuffer );\n\n\t\t\t\tfor ( let i = 0; i < textures.length; i ++ ) {\n\n\t\t\t\t\tif ( renderTarget.resolveDepthBuffer ) {\n\n\t\t\t\t\t\tif ( renderTarget.depthBuffer ) mask |= _gl.DEPTH_BUFFER_BIT;\n\n\t\t\t\t\t\t// resolving stencil is slow with a D3D backend. disable it for all transmission render targets (see #27799)\n\n\t\t\t\t\t\tif ( renderTarget.stencilBuffer && renderTarget.resolveStencilBuffer ) mask |= _gl.STENCIL_BUFFER_BIT;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( isMultipleRenderTargets ) {\n\n\t\t\t\t\t\t_gl.framebufferRenderbuffer( _gl.READ_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, _gl.RENDERBUFFER, renderTargetProperties.__webglColorRenderbuffer[ i ] );\n\n\t\t\t\t\t\tconst webglTexture = properties.get( textures[ i ] ).__webglTexture;\n\t\t\t\t\t\t_gl.framebufferTexture2D( _gl.DRAW_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_2D, webglTexture, 0 );\n\n\t\t\t\t\t}\n\n\t\t\t\t\t_gl.blitFramebuffer( 0, 0, width, height, 0, 0, width, height, mask, _gl.NEAREST );\n\n\t\t\t\t\tif ( supportsInvalidateFramebuffer === true ) {\n\n\t\t\t\t\t\tinvalidationArrayRead.length = 0;\n\t\t\t\t\t\tinvalidationArrayDraw.length = 0;\n\n\t\t\t\t\t\tinvalidationArrayRead.push( _gl.COLOR_ATTACHMENT0 + i );\n\n\t\t\t\t\t\tif ( renderTarget.depthBuffer && renderTarget.resolveDepthBuffer === false ) {\n\n\t\t\t\t\t\t\tinvalidationArrayRead.push( depthStyle );\n\t\t\t\t\t\t\tinvalidationArrayDraw.push( depthStyle );\n\n\t\t\t\t\t\t\t_gl.invalidateFramebuffer( _gl.DRAW_FRAMEBUFFER, invalidationArrayDraw );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t_gl.invalidateFramebuffer( _gl.READ_FRAMEBUFFER, invalidationArrayRead );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tstate.bindFramebuffer( _gl.READ_FRAMEBUFFER, null );\n\t\t\t\tstate.bindFramebuffer( _gl.DRAW_FRAMEBUFFER, null );\n\n\t\t\t\t// If MRT since pre-blit we removed the FBO we need to reconstruct the attachments\n\t\t\t\tif ( isMultipleRenderTargets ) {\n\n\t\t\t\t\tfor ( let i = 0; i < textures.length; i ++ ) {\n\n\t\t\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer );\n\t\t\t\t\t\t_gl.framebufferRenderbuffer( _gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0 + i, _gl.RENDERBUFFER, renderTargetProperties.__webglColorRenderbuffer[ i ] );\n\n\t\t\t\t\t\tconst webglTexture = properties.get( textures[ i ] ).__webglTexture;\n\n\t\t\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer );\n\t\t\t\t\t\t_gl.framebufferTexture2D( _gl.DRAW_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0 + i, _gl.TEXTURE_2D, webglTexture, 0 );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tstate.bindFramebuffer( _gl.DRAW_FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer );\n\n\t\t\t} else {\n\n\t\t\t\tif ( renderTarget.depthBuffer && renderTarget.resolveDepthBuffer === false && supportsInvalidateFramebuffer ) {\n\n\t\t\t\t\tconst depthStyle = renderTarget.stencilBuffer ? _gl.DEPTH_STENCIL_ATTACHMENT : _gl.DEPTH_ATTACHMENT;\n\n\t\t\t\t\t_gl.invalidateFramebuffer( _gl.DRAW_FRAMEBUFFER, [ depthStyle ] );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tfunction getRenderTargetSamples( renderTarget ) {\n\n\t\treturn Math.min( capabilities.maxSamples, renderTarget.samples );\n\n\t}\n\n\tfunction useMultisampledRTT( renderTarget ) {\n\n\t\tconst renderTargetProperties = properties.get( renderTarget );\n\n\t\treturn renderTarget.samples > 0 && extensions.has( 'WEBGL_multisampled_render_to_texture' ) === true && renderTargetProperties.__useRenderToTexture !== false;\n\n\t}\n\n\tfunction updateVideoTexture( texture ) {\n\n\t\tconst frame = info.render.frame;\n\n\t\t// Check the last frame we updated the VideoTexture\n\n\t\tif ( _videoTextures.get( texture ) !== frame ) {\n\n\t\t\t_videoTextures.set( texture, frame );\n\t\t\ttexture.update();\n\n\t\t}\n\n\t}\n\n\tfunction verifyColorSpace( texture, image ) {\n\n\t\tconst colorSpace = texture.colorSpace;\n\t\tconst format = texture.format;\n\t\tconst type = texture.type;\n\n\t\tif ( texture.isCompressedTexture === true || texture.isVideoTexture === true ) return image;\n\n\t\tif ( colorSpace !== LinearSRGBColorSpace && colorSpace !== NoColorSpace ) {\n\n\t\t\t// sRGB\n\n\t\t\tif ( ColorManagement.getTransfer( colorSpace ) === SRGBTransfer ) {\n\n\t\t\t\t// in WebGL 2 uncompressed textures can only be sRGB encoded if they have the RGBA8 format\n\n\t\t\t\tif ( format !== RGBAFormat || type !== UnsignedByteType ) {\n\n\t\t\t\t\tconsole.warn( 'THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType.' );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tconsole.error( 'THREE.WebGLTextures: Unsupported texture color space:', colorSpace );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn image;\n\n\t}\n\n\tfunction getDimensions( image ) {\n\n\t\tif ( typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement ) {\n\n\t\t\t// if intrinsic data are not available, fallback to width/height\n\n\t\t\t_imageDimensions.width = image.naturalWidth || image.width;\n\t\t\t_imageDimensions.height = image.naturalHeight || image.height;\n\n\t\t} else if ( typeof VideoFrame !== 'undefined' && image instanceof VideoFrame ) {\n\n\t\t\t_imageDimensions.width = image.displayWidth;\n\t\t\t_imageDimensions.height = image.displayHeight;\n\n\t\t} else {\n\n\t\t\t_imageDimensions.width = image.width;\n\t\t\t_imageDimensions.height = image.height;\n\n\t\t}\n\n\t\treturn _imageDimensions;\n\n\t}\n\n\t//\n\n\tthis.allocateTextureUnit = allocateTextureUnit;\n\tthis.resetTextureUnits = resetTextureUnits;\n\n\tthis.setTexture2D = setTexture2D;\n\tthis.setTexture2DArray = setTexture2DArray;\n\tthis.setTexture3D = setTexture3D;\n\tthis.setTextureCube = setTextureCube;\n\tthis.rebindTextures = rebindTextures;\n\tthis.setupRenderTarget = setupRenderTarget;\n\tthis.updateRenderTargetMipmap = updateRenderTargetMipmap;\n\tthis.updateMultisampleRenderTarget = updateMultisampleRenderTarget;\n\tthis.setupDepthRenderbuffer = setupDepthRenderbuffer;\n\tthis.setupFrameBufferTexture = setupFrameBufferTexture;\n\tthis.useMultisampledRTT = useMultisampledRTT;\n\n}\n\nfunction WebGLUtils( gl, extensions ) {\n\n\tfunction convert( p, colorSpace = NoColorSpace ) {\n\n\t\tlet extension;\n\n\t\tconst transfer = ColorManagement.getTransfer( colorSpace );\n\n\t\tif ( p === UnsignedByteType ) return gl.UNSIGNED_BYTE;\n\t\tif ( p === UnsignedShort4444Type ) return gl.UNSIGNED_SHORT_4_4_4_4;\n\t\tif ( p === UnsignedShort5551Type ) return gl.UNSIGNED_SHORT_5_5_5_1;\n\t\tif ( p === UnsignedInt5999Type ) return gl.UNSIGNED_INT_5_9_9_9_REV;\n\n\t\tif ( p === ByteType ) return gl.BYTE;\n\t\tif ( p === ShortType ) return gl.SHORT;\n\t\tif ( p === UnsignedShortType ) return gl.UNSIGNED_SHORT;\n\t\tif ( p === IntType ) return gl.INT;\n\t\tif ( p === UnsignedIntType ) return gl.UNSIGNED_INT;\n\t\tif ( p === FloatType ) return gl.FLOAT;\n\t\tif ( p === HalfFloatType ) return gl.HALF_FLOAT;\n\n\t\tif ( p === AlphaFormat ) return gl.ALPHA;\n\t\tif ( p === RGBFormat ) return gl.RGB;\n\t\tif ( p === RGBAFormat ) return gl.RGBA;\n\t\tif ( p === LuminanceFormat ) return gl.LUMINANCE;\n\t\tif ( p === LuminanceAlphaFormat ) return gl.LUMINANCE_ALPHA;\n\t\tif ( p === DepthFormat ) return gl.DEPTH_COMPONENT;\n\t\tif ( p === DepthStencilFormat ) return gl.DEPTH_STENCIL;\n\n\t\t// WebGL2 formats.\n\n\t\tif ( p === RedFormat ) return gl.RED;\n\t\tif ( p === RedIntegerFormat ) return gl.RED_INTEGER;\n\t\tif ( p === RGFormat ) return gl.RG;\n\t\tif ( p === RGIntegerFormat ) return gl.RG_INTEGER;\n\t\tif ( p === RGBAIntegerFormat ) return gl.RGBA_INTEGER;\n\n\t\t// S3TC\n\n\t\tif ( p === RGB_S3TC_DXT1_Format || p === RGBA_S3TC_DXT1_Format || p === RGBA_S3TC_DXT3_Format || p === RGBA_S3TC_DXT5_Format ) {\n\n\t\t\tif ( transfer === SRGBTransfer ) {\n\n\t\t\t\textension = extensions.get( 'WEBGL_compressed_texture_s3tc_srgb' );\n\n\t\t\t\tif ( extension !== null ) {\n\n\t\t\t\t\tif ( p === RGB_S3TC_DXT1_Format ) return extension.COMPRESSED_SRGB_S3TC_DXT1_EXT;\n\t\t\t\t\tif ( p === RGBA_S3TC_DXT1_Format ) return extension.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;\n\t\t\t\t\tif ( p === RGBA_S3TC_DXT3_Format ) return extension.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;\n\t\t\t\t\tif ( p === RGBA_S3TC_DXT5_Format ) return extension.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT;\n\n\t\t\t\t} else {\n\n\t\t\t\t\treturn null;\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\textension = extensions.get( 'WEBGL_compressed_texture_s3tc' );\n\n\t\t\t\tif ( extension !== null ) {\n\n\t\t\t\t\tif ( p === RGB_S3TC_DXT1_Format ) return extension.COMPRESSED_RGB_S3TC_DXT1_EXT;\n\t\t\t\t\tif ( p === RGBA_S3TC_DXT1_Format ) return extension.COMPRESSED_RGBA_S3TC_DXT1_EXT;\n\t\t\t\t\tif ( p === RGBA_S3TC_DXT3_Format ) return extension.COMPRESSED_RGBA_S3TC_DXT3_EXT;\n\t\t\t\t\tif ( p === RGBA_S3TC_DXT5_Format ) return extension.COMPRESSED_RGBA_S3TC_DXT5_EXT;\n\n\t\t\t\t} else {\n\n\t\t\t\t\treturn null;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t// PVRTC\n\n\t\tif ( p === RGB_PVRTC_4BPPV1_Format || p === RGB_PVRTC_2BPPV1_Format || p === RGBA_PVRTC_4BPPV1_Format || p === RGBA_PVRTC_2BPPV1_Format ) {\n\n\t\t\textension = extensions.get( 'WEBGL_compressed_texture_pvrtc' );\n\n\t\t\tif ( extension !== null ) {\n\n\t\t\t\tif ( p === RGB_PVRTC_4BPPV1_Format ) return extension.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;\n\t\t\t\tif ( p === RGB_PVRTC_2BPPV1_Format ) return extension.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;\n\t\t\t\tif ( p === RGBA_PVRTC_4BPPV1_Format ) return extension.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;\n\t\t\t\tif ( p === RGBA_PVRTC_2BPPV1_Format ) return extension.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG;\n\n\t\t\t} else {\n\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// ETC\n\n\t\tif ( p === RGB_ETC1_Format || p === RGB_ETC2_Format || p === RGBA_ETC2_EAC_Format ) {\n\n\t\t\textension = extensions.get( 'WEBGL_compressed_texture_etc' );\n\n\t\t\tif ( extension !== null ) {\n\n\t\t\t\tif ( p === RGB_ETC1_Format || p === RGB_ETC2_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ETC2 : extension.COMPRESSED_RGB8_ETC2;\n\t\t\t\tif ( p === RGBA_ETC2_EAC_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC : extension.COMPRESSED_RGBA8_ETC2_EAC;\n\n\t\t\t} else {\n\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// ASTC\n\n\t\tif ( p === RGBA_ASTC_4x4_Format || p === RGBA_ASTC_5x4_Format || p === RGBA_ASTC_5x5_Format ||\n\t\t\tp === RGBA_ASTC_6x5_Format || p === RGBA_ASTC_6x6_Format || p === RGBA_ASTC_8x5_Format ||\n\t\t\tp === RGBA_ASTC_8x6_Format || p === RGBA_ASTC_8x8_Format || p === RGBA_ASTC_10x5_Format ||\n\t\t\tp === RGBA_ASTC_10x6_Format || p === RGBA_ASTC_10x8_Format || p === RGBA_ASTC_10x10_Format ||\n\t\t\tp === RGBA_ASTC_12x10_Format || p === RGBA_ASTC_12x12_Format ) {\n\n\t\t\textension = extensions.get( 'WEBGL_compressed_texture_astc' );\n\n\t\t\tif ( extension !== null ) {\n\n\t\t\t\tif ( p === RGBA_ASTC_4x4_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR : extension.COMPRESSED_RGBA_ASTC_4x4_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_5x4_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR : extension.COMPRESSED_RGBA_ASTC_5x4_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_5x5_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR : extension.COMPRESSED_RGBA_ASTC_5x5_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_6x5_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR : extension.COMPRESSED_RGBA_ASTC_6x5_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_6x6_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR : extension.COMPRESSED_RGBA_ASTC_6x6_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_8x5_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR : extension.COMPRESSED_RGBA_ASTC_8x5_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_8x6_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR : extension.COMPRESSED_RGBA_ASTC_8x6_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_8x8_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR : extension.COMPRESSED_RGBA_ASTC_8x8_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_10x5_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR : extension.COMPRESSED_RGBA_ASTC_10x5_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_10x6_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR : extension.COMPRESSED_RGBA_ASTC_10x6_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_10x8_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR : extension.COMPRESSED_RGBA_ASTC_10x8_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_10x10_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR : extension.COMPRESSED_RGBA_ASTC_10x10_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_12x10_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR : extension.COMPRESSED_RGBA_ASTC_12x10_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_12x12_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR : extension.COMPRESSED_RGBA_ASTC_12x12_KHR;\n\n\t\t\t} else {\n\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// BPTC\n\n\t\tif ( p === RGBA_BPTC_Format || p === RGB_BPTC_SIGNED_Format || p === RGB_BPTC_UNSIGNED_Format ) {\n\n\t\t\textension = extensions.get( 'EXT_texture_compression_bptc' );\n\n\t\t\tif ( extension !== null ) {\n\n\t\t\t\tif ( p === RGBA_BPTC_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT : extension.COMPRESSED_RGBA_BPTC_UNORM_EXT;\n\t\t\t\tif ( p === RGB_BPTC_SIGNED_Format ) return extension.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;\n\t\t\t\tif ( p === RGB_BPTC_UNSIGNED_Format ) return extension.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT;\n\n\t\t\t} else {\n\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// RGTC\n\n\t\tif ( p === RED_RGTC1_Format || p === SIGNED_RED_RGTC1_Format || p === RED_GREEN_RGTC2_Format || p === SIGNED_RED_GREEN_RGTC2_Format ) {\n\n\t\t\textension = extensions.get( 'EXT_texture_compression_rgtc' );\n\n\t\t\tif ( extension !== null ) {\n\n\t\t\t\tif ( p === RGBA_BPTC_Format ) return extension.COMPRESSED_RED_RGTC1_EXT;\n\t\t\t\tif ( p === SIGNED_RED_RGTC1_Format ) return extension.COMPRESSED_SIGNED_RED_RGTC1_EXT;\n\t\t\t\tif ( p === RED_GREEN_RGTC2_Format ) return extension.COMPRESSED_RED_GREEN_RGTC2_EXT;\n\t\t\t\tif ( p === SIGNED_RED_GREEN_RGTC2_Format ) return extension.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT;\n\n\t\t\t} else {\n\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tif ( p === UnsignedInt248Type ) return gl.UNSIGNED_INT_24_8;\n\n\t\t// if \"p\" can't be resolved, assume the user defines a WebGL constant as a string (fallback/workaround for packed RGB formats)\n\n\t\treturn ( gl[ p ] !== undefined ) ? gl[ p ] : null;\n\n\t}\n\n\treturn { convert: convert };\n\n}\n\nclass ArrayCamera extends PerspectiveCamera {\n\n\tconstructor( array = [] ) {\n\n\t\tsuper();\n\n\t\tthis.isArrayCamera = true;\n\n\t\tthis.cameras = array;\n\n\t}\n\n}\n\nclass Group extends Object3D {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isGroup = true;\n\n\t\tthis.type = 'Group';\n\n\t}\n\n}\n\nconst _moveEvent = { type: 'move' };\n\nclass WebXRController {\n\n\tconstructor() {\n\n\t\tthis._targetRay = null;\n\t\tthis._grip = null;\n\t\tthis._hand = null;\n\n\t}\n\n\tgetHandSpace() {\n\n\t\tif ( this._hand === null ) {\n\n\t\t\tthis._hand = new Group();\n\t\t\tthis._hand.matrixAutoUpdate = false;\n\t\t\tthis._hand.visible = false;\n\n\t\t\tthis._hand.joints = {};\n\t\t\tthis._hand.inputState = { pinching: false };\n\n\t\t}\n\n\t\treturn this._hand;\n\n\t}\n\n\tgetTargetRaySpace() {\n\n\t\tif ( this._targetRay === null ) {\n\n\t\t\tthis._targetRay = new Group();\n\t\t\tthis._targetRay.matrixAutoUpdate = false;\n\t\t\tthis._targetRay.visible = false;\n\t\t\tthis._targetRay.hasLinearVelocity = false;\n\t\t\tthis._targetRay.linearVelocity = new Vector3();\n\t\t\tthis._targetRay.hasAngularVelocity = false;\n\t\t\tthis._targetRay.angularVelocity = new Vector3();\n\n\t\t}\n\n\t\treturn this._targetRay;\n\n\t}\n\n\tgetGripSpace() {\n\n\t\tif ( this._grip === null ) {\n\n\t\t\tthis._grip = new Group();\n\t\t\tthis._grip.matrixAutoUpdate = false;\n\t\t\tthis._grip.visible = false;\n\t\t\tthis._grip.hasLinearVelocity = false;\n\t\t\tthis._grip.linearVelocity = new Vector3();\n\t\t\tthis._grip.hasAngularVelocity = false;\n\t\t\tthis._grip.angularVelocity = new Vector3();\n\n\t\t}\n\n\t\treturn this._grip;\n\n\t}\n\n\tdispatchEvent( event ) {\n\n\t\tif ( this._targetRay !== null ) {\n\n\t\t\tthis._targetRay.dispatchEvent( event );\n\n\t\t}\n\n\t\tif ( this._grip !== null ) {\n\n\t\t\tthis._grip.dispatchEvent( event );\n\n\t\t}\n\n\t\tif ( this._hand !== null ) {\n\n\t\t\tthis._hand.dispatchEvent( event );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tconnect( inputSource ) {\n\n\t\tif ( inputSource && inputSource.hand ) {\n\n\t\t\tconst hand = this._hand;\n\n\t\t\tif ( hand ) {\n\n\t\t\t\tfor ( const inputjoint of inputSource.hand.values() ) {\n\n\t\t\t\t\t// Initialize hand with joints when connected\n\t\t\t\t\tthis._getHandJoint( hand, inputjoint );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis.dispatchEvent( { type: 'connected', data: inputSource } );\n\n\t\treturn this;\n\n\t}\n\n\tdisconnect( inputSource ) {\n\n\t\tthis.dispatchEvent( { type: 'disconnected', data: inputSource } );\n\n\t\tif ( this._targetRay !== null ) {\n\n\t\t\tthis._targetRay.visible = false;\n\n\t\t}\n\n\t\tif ( this._grip !== null ) {\n\n\t\t\tthis._grip.visible = false;\n\n\t\t}\n\n\t\tif ( this._hand !== null ) {\n\n\t\t\tthis._hand.visible = false;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tupdate( inputSource, frame, referenceSpace ) {\n\n\t\tlet inputPose = null;\n\t\tlet gripPose = null;\n\t\tlet handPose = null;\n\n\t\tconst targetRay = this._targetRay;\n\t\tconst grip = this._grip;\n\t\tconst hand = this._hand;\n\n\t\tif ( inputSource && frame.session.visibilityState !== 'visible-blurred' ) {\n\n\t\t\tif ( hand && inputSource.hand ) {\n\n\t\t\t\thandPose = true;\n\n\t\t\t\tfor ( const inputjoint of inputSource.hand.values() ) {\n\n\t\t\t\t\t// Update the joints groups with the XRJoint poses\n\t\t\t\t\tconst jointPose = frame.getJointPose( inputjoint, referenceSpace );\n\n\t\t\t\t\t// The transform of this joint will be updated with the joint pose on each frame\n\t\t\t\t\tconst joint = this._getHandJoint( hand, inputjoint );\n\n\t\t\t\t\tif ( jointPose !== null ) {\n\n\t\t\t\t\t\tjoint.matrix.fromArray( jointPose.transform.matrix );\n\t\t\t\t\t\tjoint.matrix.decompose( joint.position, joint.rotation, joint.scale );\n\t\t\t\t\t\tjoint.matrixWorldNeedsUpdate = true;\n\t\t\t\t\t\tjoint.jointRadius = jointPose.radius;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tjoint.visible = jointPose !== null;\n\n\t\t\t\t}\n\n\t\t\t\t// Custom events\n\n\t\t\t\t// Check pinchz\n\t\t\t\tconst indexTip = hand.joints[ 'index-finger-tip' ];\n\t\t\t\tconst thumbTip = hand.joints[ 'thumb-tip' ];\n\t\t\t\tconst distance = indexTip.position.distanceTo( thumbTip.position );\n\n\t\t\t\tconst distanceToPinch = 0.02;\n\t\t\t\tconst threshold = 0.005;\n\n\t\t\t\tif ( hand.inputState.pinching && distance > distanceToPinch + threshold ) {\n\n\t\t\t\t\thand.inputState.pinching = false;\n\t\t\t\t\tthis.dispatchEvent( {\n\t\t\t\t\t\ttype: 'pinchend',\n\t\t\t\t\t\thandedness: inputSource.handedness,\n\t\t\t\t\t\ttarget: this\n\t\t\t\t\t} );\n\n\t\t\t\t} else if ( ! hand.inputState.pinching && distance <= distanceToPinch - threshold ) {\n\n\t\t\t\t\thand.inputState.pinching = true;\n\t\t\t\t\tthis.dispatchEvent( {\n\t\t\t\t\t\ttype: 'pinchstart',\n\t\t\t\t\t\thandedness: inputSource.handedness,\n\t\t\t\t\t\ttarget: this\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tif ( grip !== null && inputSource.gripSpace ) {\n\n\t\t\t\t\tgripPose = frame.getPose( inputSource.gripSpace, referenceSpace );\n\n\t\t\t\t\tif ( gripPose !== null ) {\n\n\t\t\t\t\t\tgrip.matrix.fromArray( gripPose.transform.matrix );\n\t\t\t\t\t\tgrip.matrix.decompose( grip.position, grip.rotation, grip.scale );\n\t\t\t\t\t\tgrip.matrixWorldNeedsUpdate = true;\n\n\t\t\t\t\t\tif ( gripPose.linearVelocity ) {\n\n\t\t\t\t\t\t\tgrip.hasLinearVelocity = true;\n\t\t\t\t\t\t\tgrip.linearVelocity.copy( gripPose.linearVelocity );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tgrip.hasLinearVelocity = false;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( gripPose.angularVelocity ) {\n\n\t\t\t\t\t\t\tgrip.hasAngularVelocity = true;\n\t\t\t\t\t\t\tgrip.angularVelocity.copy( gripPose.angularVelocity );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tgrip.hasAngularVelocity = false;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( targetRay !== null ) {\n\n\t\t\t\tinputPose = frame.getPose( inputSource.targetRaySpace, referenceSpace );\n\n\t\t\t\t// Some runtimes (namely Vive Cosmos with Vive OpenXR Runtime) have only grip space and ray space is equal to it\n\t\t\t\tif ( inputPose === null && gripPose !== null ) {\n\n\t\t\t\t\tinputPose = gripPose;\n\n\t\t\t\t}\n\n\t\t\t\tif ( inputPose !== null ) {\n\n\t\t\t\t\ttargetRay.matrix.fromArray( inputPose.transform.matrix );\n\t\t\t\t\ttargetRay.matrix.decompose( targetRay.position, targetRay.rotation, targetRay.scale );\n\t\t\t\t\ttargetRay.matrixWorldNeedsUpdate = true;\n\n\t\t\t\t\tif ( inputPose.linearVelocity ) {\n\n\t\t\t\t\t\ttargetRay.hasLinearVelocity = true;\n\t\t\t\t\t\ttargetRay.linearVelocity.copy( inputPose.linearVelocity );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\ttargetRay.hasLinearVelocity = false;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( inputPose.angularVelocity ) {\n\n\t\t\t\t\t\ttargetRay.hasAngularVelocity = true;\n\t\t\t\t\t\ttargetRay.angularVelocity.copy( inputPose.angularVelocity );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\ttargetRay.hasAngularVelocity = false;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.dispatchEvent( _moveEvent );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\n\t\t}\n\n\t\tif ( targetRay !== null ) {\n\n\t\t\ttargetRay.visible = ( inputPose !== null );\n\n\t\t}\n\n\t\tif ( grip !== null ) {\n\n\t\t\tgrip.visible = ( gripPose !== null );\n\n\t\t}\n\n\t\tif ( hand !== null ) {\n\n\t\t\thand.visible = ( handPose !== null );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// private method\n\n\t_getHandJoint( hand, inputjoint ) {\n\n\t\tif ( hand.joints[ inputjoint.jointName ] === undefined ) {\n\n\t\t\tconst joint = new Group();\n\t\t\tjoint.matrixAutoUpdate = false;\n\t\t\tjoint.visible = false;\n\t\t\thand.joints[ inputjoint.jointName ] = joint;\n\n\t\t\thand.add( joint );\n\n\t\t}\n\n\t\treturn hand.joints[ inputjoint.jointName ];\n\n\t}\n\n}\n\nconst _occlusion_vertex = `\nvoid main() {\n\n\tgl_Position = vec4( position, 1.0 );\n\n}`;\n\nconst _occlusion_fragment = `\nuniform sampler2DArray depthColor;\nuniform float depthWidth;\nuniform float depthHeight;\n\nvoid main() {\n\n\tvec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight );\n\n\tif ( coord.x >= 1.0 ) {\n\n\t\tgl_FragDepth = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r;\n\n\t} else {\n\n\t\tgl_FragDepth = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r;\n\n\t}\n\n}`;\n\nclass WebXRDepthSensing {\n\n\tconstructor() {\n\n\t\tthis.texture = null;\n\t\tthis.mesh = null;\n\n\t\tthis.depthNear = 0;\n\t\tthis.depthFar = 0;\n\n\t}\n\n\tinit( renderer, depthData, renderState ) {\n\n\t\tif ( this.texture === null ) {\n\n\t\t\tconst texture = new Texture();\n\n\t\t\tconst texProps = renderer.properties.get( texture );\n\t\t\ttexProps.__webglTexture = depthData.texture;\n\n\t\t\tif ( ( depthData.depthNear != renderState.depthNear ) || ( depthData.depthFar != renderState.depthFar ) ) {\n\n\t\t\t\tthis.depthNear = depthData.depthNear;\n\t\t\t\tthis.depthFar = depthData.depthFar;\n\n\t\t\t}\n\n\t\t\tthis.texture = texture;\n\n\t\t}\n\n\t}\n\n\tgetMesh( cameraXR ) {\n\n\t\tif ( this.texture !== null ) {\n\n\t\t\tif ( this.mesh === null ) {\n\n\t\t\t\tconst viewport = cameraXR.cameras[ 0 ].viewport;\n\t\t\t\tconst material = new ShaderMaterial( {\n\t\t\t\t\tvertexShader: _occlusion_vertex,\n\t\t\t\t\tfragmentShader: _occlusion_fragment,\n\t\t\t\t\tuniforms: {\n\t\t\t\t\t\tdepthColor: { value: this.texture },\n\t\t\t\t\t\tdepthWidth: { value: viewport.z },\n\t\t\t\t\t\tdepthHeight: { value: viewport.w }\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\t\tthis.mesh = new Mesh( new PlaneGeometry( 20, 20 ), material );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn this.mesh;\n\n\t}\n\n\treset() {\n\n\t\tthis.texture = null;\n\t\tthis.mesh = null;\n\n\t}\n\n\tgetDepthTexture() {\n\n\t\treturn this.texture;\n\n\t}\n\n}\n\nclass WebXRManager extends EventDispatcher {\n\n\tconstructor( renderer, gl ) {\n\n\t\tsuper();\n\n\t\tconst scope = this;\n\n\t\tlet session = null;\n\n\t\tlet framebufferScaleFactor = 1.0;\n\n\t\tlet referenceSpace = null;\n\t\tlet referenceSpaceType = 'local-floor';\n\t\t// Set default foveation to maximum.\n\t\tlet foveation = 1.0;\n\t\tlet customReferenceSpace = null;\n\n\t\tlet pose = null;\n\t\tlet glBinding = null;\n\t\tlet glProjLayer = null;\n\t\tlet glBaseLayer = null;\n\t\tlet xrFrame = null;\n\n\t\tconst depthSensing = new WebXRDepthSensing();\n\t\tconst attributes = gl.getContextAttributes();\n\n\t\tlet initialRenderTarget = null;\n\t\tlet newRenderTarget = null;\n\n\t\tconst controllers = [];\n\t\tconst controllerInputSources = [];\n\n\t\tconst currentSize = new Vector2();\n\t\tlet currentPixelRatio = null;\n\n\t\t//\n\n\t\tconst cameraL = new PerspectiveCamera();\n\t\tcameraL.viewport = new Vector4();\n\n\t\tconst cameraR = new PerspectiveCamera();\n\t\tcameraR.viewport = new Vector4();\n\n\t\tconst cameras = [ cameraL, cameraR ];\n\n\t\tconst cameraXR = new ArrayCamera();\n\n\t\tlet _currentDepthNear = null;\n\t\tlet _currentDepthFar = null;\n\n\t\t//\n\n\t\tthis.cameraAutoUpdate = true;\n\t\tthis.enabled = false;\n\n\t\tthis.isPresenting = false;\n\n\t\tthis.getController = function ( index ) {\n\n\t\t\tlet controller = controllers[ index ];\n\n\t\t\tif ( controller === undefined ) {\n\n\t\t\t\tcontroller = new WebXRController();\n\t\t\t\tcontrollers[ index ] = controller;\n\n\t\t\t}\n\n\t\t\treturn controller.getTargetRaySpace();\n\n\t\t};\n\n\t\tthis.getControllerGrip = function ( index ) {\n\n\t\t\tlet controller = controllers[ index ];\n\n\t\t\tif ( controller === undefined ) {\n\n\t\t\t\tcontroller = new WebXRController();\n\t\t\t\tcontrollers[ index ] = controller;\n\n\t\t\t}\n\n\t\t\treturn controller.getGripSpace();\n\n\t\t};\n\n\t\tthis.getHand = function ( index ) {\n\n\t\t\tlet controller = controllers[ index ];\n\n\t\t\tif ( controller === undefined ) {\n\n\t\t\t\tcontroller = new WebXRController();\n\t\t\t\tcontrollers[ index ] = controller;\n\n\t\t\t}\n\n\t\t\treturn controller.getHandSpace();\n\n\t\t};\n\n\t\t//\n\n\t\tfunction onSessionEvent( event ) {\n\n\t\t\tconst controllerIndex = controllerInputSources.indexOf( event.inputSource );\n\n\t\t\tif ( controllerIndex === - 1 ) {\n\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\tconst controller = controllers[ controllerIndex ];\n\n\t\t\tif ( controller !== undefined ) {\n\n\t\t\t\tcontroller.update( event.inputSource, event.frame, customReferenceSpace || referenceSpace );\n\t\t\t\tcontroller.dispatchEvent( { type: event.type, data: event.inputSource } );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction onSessionEnd() {\n\n\t\t\tsession.removeEventListener( 'select', onSessionEvent );\n\t\t\tsession.removeEventListener( 'selectstart', onSessionEvent );\n\t\t\tsession.removeEventListener( 'selectend', onSessionEvent );\n\t\t\tsession.removeEventListener( 'squeeze', onSessionEvent );\n\t\t\tsession.removeEventListener( 'squeezestart', onSessionEvent );\n\t\t\tsession.removeEventListener( 'squeezeend', onSessionEvent );\n\t\t\tsession.removeEventListener( 'end', onSessionEnd );\n\t\t\tsession.removeEventListener( 'inputsourceschange', onInputSourcesChange );\n\n\t\t\tfor ( let i = 0; i < controllers.length; i ++ ) {\n\n\t\t\t\tconst inputSource = controllerInputSources[ i ];\n\n\t\t\t\tif ( inputSource === null ) continue;\n\n\t\t\t\tcontrollerInputSources[ i ] = null;\n\n\t\t\t\tcontrollers[ i ].disconnect( inputSource );\n\n\t\t\t}\n\n\t\t\t_currentDepthNear = null;\n\t\t\t_currentDepthFar = null;\n\n\t\t\tdepthSensing.reset();\n\n\t\t\t// restore framebuffer/rendering state\n\n\t\t\trenderer.setRenderTarget( initialRenderTarget );\n\n\t\t\tglBaseLayer = null;\n\t\t\tglProjLayer = null;\n\t\t\tglBinding = null;\n\t\t\tsession = null;\n\t\t\tnewRenderTarget = null;\n\n\t\t\t//\n\n\t\t\tanimation.stop();\n\n\t\t\tscope.isPresenting = false;\n\n\t\t\trenderer.setPixelRatio( currentPixelRatio );\n\t\t\trenderer.setSize( currentSize.width, currentSize.height, false );\n\n\t\t\tscope.dispatchEvent( { type: 'sessionend' } );\n\n\t\t}\n\n\t\tthis.setFramebufferScaleFactor = function ( value ) {\n\n\t\t\tframebufferScaleFactor = value;\n\n\t\t\tif ( scope.isPresenting === true ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebXRManager: Cannot change framebuffer scale while presenting.' );\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.setReferenceSpaceType = function ( value ) {\n\n\t\t\treferenceSpaceType = value;\n\n\t\t\tif ( scope.isPresenting === true ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebXRManager: Cannot change reference space type while presenting.' );\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.getReferenceSpace = function () {\n\n\t\t\treturn customReferenceSpace || referenceSpace;\n\n\t\t};\n\n\t\tthis.setReferenceSpace = function ( space ) {\n\n\t\t\tcustomReferenceSpace = space;\n\n\t\t};\n\n\t\tthis.getBaseLayer = function () {\n\n\t\t\treturn glProjLayer !== null ? glProjLayer : glBaseLayer;\n\n\t\t};\n\n\t\tthis.getBinding = function () {\n\n\t\t\treturn glBinding;\n\n\t\t};\n\n\t\tthis.getFrame = function () {\n\n\t\t\treturn xrFrame;\n\n\t\t};\n\n\t\tthis.getSession = function () {\n\n\t\t\treturn session;\n\n\t\t};\n\n\t\tthis.setSession = async function ( value ) {\n\n\t\t\tsession = value;\n\n\t\t\tif ( session !== null ) {\n\n\t\t\t\tinitialRenderTarget = renderer.getRenderTarget();\n\n\t\t\t\tsession.addEventListener( 'select', onSessionEvent );\n\t\t\t\tsession.addEventListener( 'selectstart', onSessionEvent );\n\t\t\t\tsession.addEventListener( 'selectend', onSessionEvent );\n\t\t\t\tsession.addEventListener( 'squeeze', onSessionEvent );\n\t\t\t\tsession.addEventListener( 'squeezestart', onSessionEvent );\n\t\t\t\tsession.addEventListener( 'squeezeend', onSessionEvent );\n\t\t\t\tsession.addEventListener( 'end', onSessionEnd );\n\t\t\t\tsession.addEventListener( 'inputsourceschange', onInputSourcesChange );\n\n\t\t\t\tif ( attributes.xrCompatible !== true ) {\n\n\t\t\t\t\tawait gl.makeXRCompatible();\n\n\t\t\t\t}\n\n\t\t\t\tcurrentPixelRatio = renderer.getPixelRatio();\n\t\t\t\trenderer.getSize( currentSize );\n\n\t\t\t\tif ( session.renderState.layers === undefined ) {\n\n\t\t\t\t\tconst layerInit = {\n\t\t\t\t\t\tantialias: attributes.antialias,\n\t\t\t\t\t\talpha: true,\n\t\t\t\t\t\tdepth: attributes.depth,\n\t\t\t\t\t\tstencil: attributes.stencil,\n\t\t\t\t\t\tframebufferScaleFactor: framebufferScaleFactor\n\t\t\t\t\t};\n\n\t\t\t\t\tglBaseLayer = new XRWebGLLayer( session, gl, layerInit );\n\n\t\t\t\t\tsession.updateRenderState( { baseLayer: glBaseLayer } );\n\n\t\t\t\t\trenderer.setPixelRatio( 1 );\n\t\t\t\t\trenderer.setSize( glBaseLayer.framebufferWidth, glBaseLayer.framebufferHeight, false );\n\n\t\t\t\t\tnewRenderTarget = new WebGLRenderTarget(\n\t\t\t\t\t\tglBaseLayer.framebufferWidth,\n\t\t\t\t\t\tglBaseLayer.framebufferHeight,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tformat: RGBAFormat,\n\t\t\t\t\t\t\ttype: UnsignedByteType,\n\t\t\t\t\t\t\tcolorSpace: renderer.outputColorSpace,\n\t\t\t\t\t\t\tstencilBuffer: attributes.stencil\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\n\t\t\t\t} else {\n\n\t\t\t\t\tlet depthFormat = null;\n\t\t\t\t\tlet depthType = null;\n\t\t\t\t\tlet glDepthFormat = null;\n\n\t\t\t\t\tif ( attributes.depth ) {\n\n\t\t\t\t\t\tglDepthFormat = attributes.stencil ? gl.DEPTH24_STENCIL8 : gl.DEPTH_COMPONENT24;\n\t\t\t\t\t\tdepthFormat = attributes.stencil ? DepthStencilFormat : DepthFormat;\n\t\t\t\t\t\tdepthType = attributes.stencil ? UnsignedInt248Type : UnsignedIntType;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tconst projectionlayerInit = {\n\t\t\t\t\t\tcolorFormat: gl.RGBA8,\n\t\t\t\t\t\tdepthFormat: glDepthFormat,\n\t\t\t\t\t\tscaleFactor: framebufferScaleFactor\n\t\t\t\t\t};\n\n\t\t\t\t\tglBinding = new XRWebGLBinding( session, gl );\n\n\t\t\t\t\tglProjLayer = glBinding.createProjectionLayer( projectionlayerInit );\n\n\t\t\t\t\tsession.updateRenderState( { layers: [ glProjLayer ] } );\n\n\t\t\t\t\trenderer.setPixelRatio( 1 );\n\t\t\t\t\trenderer.setSize( glProjLayer.textureWidth, glProjLayer.textureHeight, false );\n\n\t\t\t\t\tnewRenderTarget = new WebGLRenderTarget(\n\t\t\t\t\t\tglProjLayer.textureWidth,\n\t\t\t\t\t\tglProjLayer.textureHeight,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tformat: RGBAFormat,\n\t\t\t\t\t\t\ttype: UnsignedByteType,\n\t\t\t\t\t\t\tdepthTexture: new DepthTexture( glProjLayer.textureWidth, glProjLayer.textureHeight, depthType, undefined, undefined, undefined, undefined, undefined, undefined, depthFormat ),\n\t\t\t\t\t\t\tstencilBuffer: attributes.stencil,\n\t\t\t\t\t\t\tcolorSpace: renderer.outputColorSpace,\n\t\t\t\t\t\t\tsamples: attributes.antialias ? 4 : 0,\n\t\t\t\t\t\t\tresolveDepthBuffer: ( glProjLayer.ignoreDepthValues === false )\n\t\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t\tnewRenderTarget.isXRRenderTarget = true; // TODO Remove this when possible, see #23278\n\n\t\t\t\tthis.setFoveation( foveation );\n\n\t\t\t\tcustomReferenceSpace = null;\n\t\t\t\treferenceSpace = await session.requestReferenceSpace( referenceSpaceType );\n\n\t\t\t\tanimation.setContext( session );\n\t\t\t\tanimation.start();\n\n\t\t\t\tscope.isPresenting = true;\n\n\t\t\t\tscope.dispatchEvent( { type: 'sessionstart' } );\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.getEnvironmentBlendMode = function () {\n\n\t\t\tif ( session !== null ) {\n\n\t\t\t\treturn session.environmentBlendMode;\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.getDepthTexture = function () {\n\n\t\t\treturn depthSensing.getDepthTexture();\n\n\t\t};\n\n\t\tfunction onInputSourcesChange( event ) {\n\n\t\t\t// Notify disconnected\n\n\t\t\tfor ( let i = 0; i < event.removed.length; i ++ ) {\n\n\t\t\t\tconst inputSource = event.removed[ i ];\n\t\t\t\tconst index = controllerInputSources.indexOf( inputSource );\n\n\t\t\t\tif ( index >= 0 ) {\n\n\t\t\t\t\tcontrollerInputSources[ index ] = null;\n\t\t\t\t\tcontrollers[ index ].disconnect( inputSource );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// Notify connected\n\n\t\t\tfor ( let i = 0; i < event.added.length; i ++ ) {\n\n\t\t\t\tconst inputSource = event.added[ i ];\n\n\t\t\t\tlet controllerIndex = controllerInputSources.indexOf( inputSource );\n\n\t\t\t\tif ( controllerIndex === - 1 ) {\n\n\t\t\t\t\t// Assign input source a controller that currently has no input source\n\n\t\t\t\t\tfor ( let i = 0; i < controllers.length; i ++ ) {\n\n\t\t\t\t\t\tif ( i >= controllerInputSources.length ) {\n\n\t\t\t\t\t\t\tcontrollerInputSources.push( inputSource );\n\t\t\t\t\t\t\tcontrollerIndex = i;\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t} else if ( controllerInputSources[ i ] === null ) {\n\n\t\t\t\t\t\t\tcontrollerInputSources[ i ] = inputSource;\n\t\t\t\t\t\t\tcontrollerIndex = i;\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// If all controllers do currently receive input we ignore new ones\n\n\t\t\t\t\tif ( controllerIndex === - 1 ) break;\n\n\t\t\t\t}\n\n\t\t\t\tconst controller = controllers[ controllerIndex ];\n\n\t\t\t\tif ( controller ) {\n\n\t\t\t\t\tcontroller.connect( inputSource );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tconst cameraLPos = new Vector3();\n\t\tconst cameraRPos = new Vector3();\n\n\t\t/**\n\t\t * Assumes 2 cameras that are parallel and share an X-axis, and that\n\t\t * the cameras' projection and world matrices have already been set.\n\t\t * And that near and far planes are identical for both cameras.\n\t\t * Visualization of this technique: https://computergraphics.stackexchange.com/a/4765\n\t\t */\n\t\tfunction setProjectionFromUnion( camera, cameraL, cameraR ) {\n\n\t\t\tcameraLPos.setFromMatrixPosition( cameraL.matrixWorld );\n\t\t\tcameraRPos.setFromMatrixPosition( cameraR.matrixWorld );\n\n\t\t\tconst ipd = cameraLPos.distanceTo( cameraRPos );\n\n\t\t\tconst projL = cameraL.projectionMatrix.elements;\n\t\t\tconst projR = cameraR.projectionMatrix.elements;\n\n\t\t\t// VR systems will have identical far and near planes, and\n\t\t\t// most likely identical top and bottom frustum extents.\n\t\t\t// Use the left camera for these values.\n\t\t\tconst near = projL[ 14 ] / ( projL[ 10 ] - 1 );\n\t\t\tconst far = projL[ 14 ] / ( projL[ 10 ] + 1 );\n\t\t\tconst topFov = ( projL[ 9 ] + 1 ) / projL[ 5 ];\n\t\t\tconst bottomFov = ( projL[ 9 ] - 1 ) / projL[ 5 ];\n\n\t\t\tconst leftFov = ( projL[ 8 ] - 1 ) / projL[ 0 ];\n\t\t\tconst rightFov = ( projR[ 8 ] + 1 ) / projR[ 0 ];\n\t\t\tconst left = near * leftFov;\n\t\t\tconst right = near * rightFov;\n\n\t\t\t// Calculate the new camera's position offset from the\n\t\t\t// left camera. xOffset should be roughly half `ipd`.\n\t\t\tconst zOffset = ipd / ( - leftFov + rightFov );\n\t\t\tconst xOffset = zOffset * - leftFov;\n\n\t\t\t// TODO: Better way to apply this offset?\n\t\t\tcameraL.matrixWorld.decompose( camera.position, camera.quaternion, camera.scale );\n\t\t\tcamera.translateX( xOffset );\n\t\t\tcamera.translateZ( zOffset );\n\t\t\tcamera.matrixWorld.compose( camera.position, camera.quaternion, camera.scale );\n\t\t\tcamera.matrixWorldInverse.copy( camera.matrixWorld ).invert();\n\n\t\t\t// Check if the projection uses an infinite far plane.\n\t\t\tif ( projL[ 10 ] === - 1.0 ) {\n\n\t\t\t\t// Use the projection matrix from the left eye.\n\t\t\t\t// The camera offset is sufficient to include the view volumes\n\t\t\t\t// of both eyes (assuming symmetric projections).\n\t\t\t\tcamera.projectionMatrix.copy( cameraL.projectionMatrix );\n\t\t\t\tcamera.projectionMatrixInverse.copy( cameraL.projectionMatrixInverse );\n\n\t\t\t} else {\n\n\t\t\t\t// Find the union of the frustum values of the cameras and scale\n\t\t\t\t// the values so that the near plane's position does not change in world space,\n\t\t\t\t// although must now be relative to the new union camera.\n\t\t\t\tconst near2 = near + zOffset;\n\t\t\t\tconst far2 = far + zOffset;\n\t\t\t\tconst left2 = left - xOffset;\n\t\t\t\tconst right2 = right + ( ipd - xOffset );\n\t\t\t\tconst top2 = topFov * far / far2 * near2;\n\t\t\t\tconst bottom2 = bottomFov * far / far2 * near2;\n\n\t\t\t\tcamera.projectionMatrix.makePerspective( left2, right2, top2, bottom2, near2, far2 );\n\t\t\t\tcamera.projectionMatrixInverse.copy( camera.projectionMatrix ).invert();\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction updateCamera( camera, parent ) {\n\n\t\t\tif ( parent === null ) {\n\n\t\t\t\tcamera.matrixWorld.copy( camera.matrix );\n\n\t\t\t} else {\n\n\t\t\t\tcamera.matrixWorld.multiplyMatrices( parent.matrixWorld, camera.matrix );\n\n\t\t\t}\n\n\t\t\tcamera.matrixWorldInverse.copy( camera.matrixWorld ).invert();\n\n\t\t}\n\n\t\tthis.updateCamera = function ( camera ) {\n\n\t\t\tif ( session === null ) return;\n\n\t\t\tlet depthNear = camera.near;\n\t\t\tlet depthFar = camera.far;\n\n\t\t\tif ( depthSensing.texture !== null ) {\n\n\t\t\t\tif ( depthSensing.depthNear > 0 ) depthNear = depthSensing.depthNear;\n\t\t\t\tif ( depthSensing.depthFar > 0 ) depthFar = depthSensing.depthFar;\n\n\t\t\t}\n\n\t\t\tcameraXR.near = cameraR.near = cameraL.near = depthNear;\n\t\t\tcameraXR.far = cameraR.far = cameraL.far = depthFar;\n\n\t\t\tif ( _currentDepthNear !== cameraXR.near || _currentDepthFar !== cameraXR.far ) {\n\n\t\t\t\t// Note that the new renderState won't apply until the next frame. See #18320\n\n\t\t\t\tsession.updateRenderState( {\n\t\t\t\t\tdepthNear: cameraXR.near,\n\t\t\t\t\tdepthFar: cameraXR.far\n\t\t\t\t} );\n\n\t\t\t\t_currentDepthNear = cameraXR.near;\n\t\t\t\t_currentDepthFar = cameraXR.far;\n\n\t\t\t}\n\n\t\t\tcameraL.layers.mask = camera.layers.mask | 0b010;\n\t\t\tcameraR.layers.mask = camera.layers.mask | 0b100;\n\t\t\tcameraXR.layers.mask = cameraL.layers.mask | cameraR.layers.mask;\n\n\t\t\tconst parent = camera.parent;\n\t\t\tconst cameras = cameraXR.cameras;\n\n\t\t\tupdateCamera( cameraXR, parent );\n\n\t\t\tfor ( let i = 0; i < cameras.length; i ++ ) {\n\n\t\t\t\tupdateCamera( cameras[ i ], parent );\n\n\t\t\t}\n\n\t\t\t// update projection matrix for proper view frustum culling\n\n\t\t\tif ( cameras.length === 2 ) {\n\n\t\t\t\tsetProjectionFromUnion( cameraXR, cameraL, cameraR );\n\n\t\t\t} else {\n\n\t\t\t\t// assume single camera setup (AR)\n\n\t\t\t\tcameraXR.projectionMatrix.copy( cameraL.projectionMatrix );\n\n\t\t\t}\n\n\t\t\t// update user camera and its children\n\n\t\t\tupdateUserCamera( camera, cameraXR, parent );\n\n\t\t};\n\n\t\tfunction updateUserCamera( camera, cameraXR, parent ) {\n\n\t\t\tif ( parent === null ) {\n\n\t\t\t\tcamera.matrix.copy( cameraXR.matrixWorld );\n\n\t\t\t} else {\n\n\t\t\t\tcamera.matrix.copy( parent.matrixWorld );\n\t\t\t\tcamera.matrix.invert();\n\t\t\t\tcamera.matrix.multiply( cameraXR.matrixWorld );\n\n\t\t\t}\n\n\t\t\tcamera.matrix.decompose( camera.position, camera.quaternion, camera.scale );\n\t\t\tcamera.updateMatrixWorld( true );\n\n\t\t\tcamera.projectionMatrix.copy( cameraXR.projectionMatrix );\n\t\t\tcamera.projectionMatrixInverse.copy( cameraXR.projectionMatrixInverse );\n\n\t\t\tif ( camera.isPerspectiveCamera ) {\n\n\t\t\t\tcamera.fov = RAD2DEG * 2 * Math.atan( 1 / camera.projectionMatrix.elements[ 5 ] );\n\t\t\t\tcamera.zoom = 1;\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis.getCamera = function () {\n\n\t\t\treturn cameraXR;\n\n\t\t};\n\n\t\tthis.getFoveation = function () {\n\n\t\t\tif ( glProjLayer === null && glBaseLayer === null ) {\n\n\t\t\t\treturn undefined;\n\n\t\t\t}\n\n\t\t\treturn foveation;\n\n\t\t};\n\n\t\tthis.setFoveation = function ( value ) {\n\n\t\t\t// 0 = no foveation = full resolution\n\t\t\t// 1 = maximum foveation = the edges render at lower resolution\n\n\t\t\tfoveation = value;\n\n\t\t\tif ( glProjLayer !== null ) {\n\n\t\t\t\tglProjLayer.fixedFoveation = value;\n\n\t\t\t}\n\n\t\t\tif ( glBaseLayer !== null && glBaseLayer.fixedFoveation !== undefined ) {\n\n\t\t\t\tglBaseLayer.fixedFoveation = value;\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.hasDepthSensing = function () {\n\n\t\t\treturn depthSensing.texture !== null;\n\n\t\t};\n\n\t\tthis.getDepthSensingMesh = function () {\n\n\t\t\treturn depthSensing.getMesh( cameraXR );\n\n\t\t};\n\n\t\t// Animation Loop\n\n\t\tlet onAnimationFrameCallback = null;\n\n\t\tfunction onAnimationFrame( time, frame ) {\n\n\t\t\tpose = frame.getViewerPose( customReferenceSpace || referenceSpace );\n\t\t\txrFrame = frame;\n\n\t\t\tif ( pose !== null ) {\n\n\t\t\t\tconst views = pose.views;\n\n\t\t\t\tif ( glBaseLayer !== null ) {\n\n\t\t\t\t\trenderer.setRenderTargetFramebuffer( newRenderTarget, glBaseLayer.framebuffer );\n\t\t\t\t\trenderer.setRenderTarget( newRenderTarget );\n\n\t\t\t\t}\n\n\t\t\t\tlet cameraXRNeedsUpdate = false;\n\n\t\t\t\t// check if it's necessary to rebuild cameraXR's camera list\n\n\t\t\t\tif ( views.length !== cameraXR.cameras.length ) {\n\n\t\t\t\t\tcameraXR.cameras.length = 0;\n\t\t\t\t\tcameraXRNeedsUpdate = true;\n\n\t\t\t\t}\n\n\t\t\t\tfor ( let i = 0; i < views.length; i ++ ) {\n\n\t\t\t\t\tconst view = views[ i ];\n\n\t\t\t\t\tlet viewport = null;\n\n\t\t\t\t\tif ( glBaseLayer !== null ) {\n\n\t\t\t\t\t\tviewport = glBaseLayer.getViewport( view );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tconst glSubImage = glBinding.getViewSubImage( glProjLayer, view );\n\t\t\t\t\t\tviewport = glSubImage.viewport;\n\n\t\t\t\t\t\t// For side-by-side projection, we only produce a single texture for both eyes.\n\t\t\t\t\t\tif ( i === 0 ) {\n\n\t\t\t\t\t\t\trenderer.setRenderTargetTextures(\n\t\t\t\t\t\t\t\tnewRenderTarget,\n\t\t\t\t\t\t\t\tglSubImage.colorTexture,\n\t\t\t\t\t\t\t\tglProjLayer.ignoreDepthValues ? undefined : glSubImage.depthStencilTexture );\n\n\t\t\t\t\t\t\trenderer.setRenderTarget( newRenderTarget );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\tlet camera = cameras[ i ];\n\n\t\t\t\t\tif ( camera === undefined ) {\n\n\t\t\t\t\t\tcamera = new PerspectiveCamera();\n\t\t\t\t\t\tcamera.layers.enable( i );\n\t\t\t\t\t\tcamera.viewport = new Vector4();\n\t\t\t\t\t\tcameras[ i ] = camera;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tcamera.matrix.fromArray( view.transform.matrix );\n\t\t\t\t\tcamera.matrix.decompose( camera.position, camera.quaternion, camera.scale );\n\t\t\t\t\tcamera.projectionMatrix.fromArray( view.projectionMatrix );\n\t\t\t\t\tcamera.projectionMatrixInverse.copy( camera.projectionMatrix ).invert();\n\t\t\t\t\tcamera.viewport.set( viewport.x, viewport.y, viewport.width, viewport.height );\n\n\t\t\t\t\tif ( i === 0 ) {\n\n\t\t\t\t\t\tcameraXR.matrix.copy( camera.matrix );\n\t\t\t\t\t\tcameraXR.matrix.decompose( cameraXR.position, cameraXR.quaternion, cameraXR.scale );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( cameraXRNeedsUpdate === true ) {\n\n\t\t\t\t\t\tcameraXR.cameras.push( camera );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t//\n\n\t\t\t\tconst enabledFeatures = session.enabledFeatures;\n\n\t\t\t\tif ( enabledFeatures && enabledFeatures.includes( 'depth-sensing' ) ) {\n\n\t\t\t\t\tconst depthData = glBinding.getDepthInformation( views[ 0 ] );\n\n\t\t\t\t\tif ( depthData && depthData.isValid && depthData.texture ) {\n\n\t\t\t\t\t\tdepthSensing.init( renderer, depthData, session.renderState );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t//\n\n\t\t\tfor ( let i = 0; i < controllers.length; i ++ ) {\n\n\t\t\t\tconst inputSource = controllerInputSources[ i ];\n\t\t\t\tconst controller = controllers[ i ];\n\n\t\t\t\tif ( inputSource !== null && controller !== undefined ) {\n\n\t\t\t\t\tcontroller.update( inputSource, frame, customReferenceSpace || referenceSpace );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( onAnimationFrameCallback ) onAnimationFrameCallback( time, frame );\n\n\t\t\tif ( frame.detectedPlanes ) {\n\n\t\t\t\tscope.dispatchEvent( { type: 'planesdetected', data: frame } );\n\n\t\t\t}\n\n\t\t\txrFrame = null;\n\n\t\t}\n\n\t\tconst animation = new WebGLAnimation();\n\n\t\tanimation.setAnimationLoop( onAnimationFrame );\n\n\t\tthis.setAnimationLoop = function ( callback ) {\n\n\t\t\tonAnimationFrameCallback = callback;\n\n\t\t};\n\n\t\tthis.dispose = function () {};\n\n\t}\n\n}\n\nconst _e1 = /*@__PURE__*/ new Euler();\nconst _m1 = /*@__PURE__*/ new Matrix4();\n\nfunction WebGLMaterials( renderer, properties ) {\n\n\tfunction refreshTransformUniform( map, uniform ) {\n\n\t\tif ( map.matrixAutoUpdate === true ) {\n\n\t\t\tmap.updateMatrix();\n\n\t\t}\n\n\t\tuniform.value.copy( map.matrix );\n\n\t}\n\n\tfunction refreshFogUniforms( uniforms, fog ) {\n\n\t\tfog.color.getRGB( uniforms.fogColor.value, getUnlitUniformColorSpace( renderer ) );\n\n\t\tif ( fog.isFog ) {\n\n\t\t\tuniforms.fogNear.value = fog.near;\n\t\t\tuniforms.fogFar.value = fog.far;\n\n\t\t} else if ( fog.isFogExp2 ) {\n\n\t\t\tuniforms.fogDensity.value = fog.density;\n\n\t\t}\n\n\t}\n\n\tfunction refreshMaterialUniforms( uniforms, material, pixelRatio, height, transmissionRenderTarget ) {\n\n\t\tif ( material.isMeshBasicMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\n\t\t} else if ( material.isMeshLambertMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\n\t\t} else if ( material.isMeshToonMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\t\t\trefreshUniformsToon( uniforms, material );\n\n\t\t} else if ( material.isMeshPhongMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\t\t\trefreshUniformsPhong( uniforms, material );\n\n\t\t} else if ( material.isMeshStandardMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\t\t\trefreshUniformsStandard( uniforms, material );\n\n\t\t\tif ( material.isMeshPhysicalMaterial ) {\n\n\t\t\t\trefreshUniformsPhysical( uniforms, material, transmissionRenderTarget );\n\n\t\t\t}\n\n\t\t} else if ( material.isMeshMatcapMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\t\t\trefreshUniformsMatcap( uniforms, material );\n\n\t\t} else if ( material.isMeshDepthMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\n\t\t} else if ( material.isMeshDistanceMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\t\t\trefreshUniformsDistance( uniforms, material );\n\n\t\t} else if ( material.isMeshNormalMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\n\t\t} else if ( material.isLineBasicMaterial ) {\n\n\t\t\trefreshUniformsLine( uniforms, material );\n\n\t\t\tif ( material.isLineDashedMaterial ) {\n\n\t\t\t\trefreshUniformsDash( uniforms, material );\n\n\t\t\t}\n\n\t\t} else if ( material.isPointsMaterial ) {\n\n\t\t\trefreshUniformsPoints( uniforms, material, pixelRatio, height );\n\n\t\t} else if ( material.isSpriteMaterial ) {\n\n\t\t\trefreshUniformsSprites( uniforms, material );\n\n\t\t} else if ( material.isShadowMaterial ) {\n\n\t\t\tuniforms.color.value.copy( material.color );\n\t\t\tuniforms.opacity.value = material.opacity;\n\n\t\t} else if ( material.isShaderMaterial ) {\n\n\t\t\tmaterial.uniformsNeedUpdate = false; // #15581\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsCommon( uniforms, material ) {\n\n\t\tuniforms.opacity.value = material.opacity;\n\n\t\tif ( material.color ) {\n\n\t\t\tuniforms.diffuse.value.copy( material.color );\n\n\t\t}\n\n\t\tif ( material.emissive ) {\n\n\t\t\tuniforms.emissive.value.copy( material.emissive ).multiplyScalar( material.emissiveIntensity );\n\n\t\t}\n\n\t\tif ( material.map ) {\n\n\t\t\tuniforms.map.value = material.map;\n\n\t\t\trefreshTransformUniform( material.map, uniforms.mapTransform );\n\n\t\t}\n\n\t\tif ( material.alphaMap ) {\n\n\t\t\tuniforms.alphaMap.value = material.alphaMap;\n\n\t\t\trefreshTransformUniform( material.alphaMap, uniforms.alphaMapTransform );\n\n\t\t}\n\n\t\tif ( material.bumpMap ) {\n\n\t\t\tuniforms.bumpMap.value = material.bumpMap;\n\n\t\t\trefreshTransformUniform( material.bumpMap, uniforms.bumpMapTransform );\n\n\t\t\tuniforms.bumpScale.value = material.bumpScale;\n\n\t\t\tif ( material.side === BackSide ) {\n\n\t\t\t\tuniforms.bumpScale.value *= - 1;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( material.normalMap ) {\n\n\t\t\tuniforms.normalMap.value = material.normalMap;\n\n\t\t\trefreshTransformUniform( material.normalMap, uniforms.normalMapTransform );\n\n\t\t\tuniforms.normalScale.value.copy( material.normalScale );\n\n\t\t\tif ( material.side === BackSide ) {\n\n\t\t\t\tuniforms.normalScale.value.negate();\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( material.displacementMap ) {\n\n\t\t\tuniforms.displacementMap.value = material.displacementMap;\n\n\t\t\trefreshTransformUniform( material.displacementMap, uniforms.displacementMapTransform );\n\n\t\t\tuniforms.displacementScale.value = material.displacementScale;\n\t\t\tuniforms.displacementBias.value = material.displacementBias;\n\n\t\t}\n\n\t\tif ( material.emissiveMap ) {\n\n\t\t\tuniforms.emissiveMap.value = material.emissiveMap;\n\n\t\t\trefreshTransformUniform( material.emissiveMap, uniforms.emissiveMapTransform );\n\n\t\t}\n\n\t\tif ( material.specularMap ) {\n\n\t\t\tuniforms.specularMap.value = material.specularMap;\n\n\t\t\trefreshTransformUniform( material.specularMap, uniforms.specularMapTransform );\n\n\t\t}\n\n\t\tif ( material.alphaTest > 0 ) {\n\n\t\t\tuniforms.alphaTest.value = material.alphaTest;\n\n\t\t}\n\n\t\tconst materialProperties = properties.get( material );\n\n\t\tconst envMap = materialProperties.envMap;\n\t\tconst envMapRotation = materialProperties.envMapRotation;\n\n\t\tif ( envMap ) {\n\n\t\t\tuniforms.envMap.value = envMap;\n\n\t\t\t_e1.copy( envMapRotation );\n\n\t\t\t// accommodate left-handed frame\n\t\t\t_e1.x *= - 1; _e1.y *= - 1; _e1.z *= - 1;\n\n\t\t\tif ( envMap.isCubeTexture && envMap.isRenderTargetTexture === false ) {\n\n\t\t\t\t// environment maps which are not cube render targets or PMREMs follow a different convention\n\t\t\t\t_e1.y *= - 1;\n\t\t\t\t_e1.z *= - 1;\n\n\t\t\t}\n\n\t\t\tuniforms.envMapRotation.value.setFromMatrix4( _m1.makeRotationFromEuler( _e1 ) );\n\n\t\t\tuniforms.flipEnvMap.value = ( envMap.isCubeTexture && envMap.isRenderTargetTexture === false ) ? - 1 : 1;\n\n\t\t\tuniforms.reflectivity.value = material.reflectivity;\n\t\t\tuniforms.ior.value = material.ior;\n\t\t\tuniforms.refractionRatio.value = material.refractionRatio;\n\n\t\t}\n\n\t\tif ( material.lightMap ) {\n\n\t\t\tuniforms.lightMap.value = material.lightMap;\n\t\t\tuniforms.lightMapIntensity.value = material.lightMapIntensity;\n\n\t\t\trefreshTransformUniform( material.lightMap, uniforms.lightMapTransform );\n\n\t\t}\n\n\t\tif ( material.aoMap ) {\n\n\t\t\tuniforms.aoMap.value = material.aoMap;\n\t\t\tuniforms.aoMapIntensity.value = material.aoMapIntensity;\n\n\t\t\trefreshTransformUniform( material.aoMap, uniforms.aoMapTransform );\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsLine( uniforms, material ) {\n\n\t\tuniforms.diffuse.value.copy( material.color );\n\t\tuniforms.opacity.value = material.opacity;\n\n\t\tif ( material.map ) {\n\n\t\t\tuniforms.map.value = material.map;\n\n\t\t\trefreshTransformUniform( material.map, uniforms.mapTransform );\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsDash( uniforms, material ) {\n\n\t\tuniforms.dashSize.value = material.dashSize;\n\t\tuniforms.totalSize.value = material.dashSize + material.gapSize;\n\t\tuniforms.scale.value = material.scale;\n\n\t}\n\n\tfunction refreshUniformsPoints( uniforms, material, pixelRatio, height ) {\n\n\t\tuniforms.diffuse.value.copy( material.color );\n\t\tuniforms.opacity.value = material.opacity;\n\t\tuniforms.size.value = material.size * pixelRatio;\n\t\tuniforms.scale.value = height * 0.5;\n\n\t\tif ( material.map ) {\n\n\t\t\tuniforms.map.value = material.map;\n\n\t\t\trefreshTransformUniform( material.map, uniforms.uvTransform );\n\n\t\t}\n\n\t\tif ( material.alphaMap ) {\n\n\t\t\tuniforms.alphaMap.value = material.alphaMap;\n\n\t\t\trefreshTransformUniform( material.alphaMap, uniforms.alphaMapTransform );\n\n\t\t}\n\n\t\tif ( material.alphaTest > 0 ) {\n\n\t\t\tuniforms.alphaTest.value = material.alphaTest;\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsSprites( uniforms, material ) {\n\n\t\tuniforms.diffuse.value.copy( material.color );\n\t\tuniforms.opacity.value = material.opacity;\n\t\tuniforms.rotation.value = material.rotation;\n\n\t\tif ( material.map ) {\n\n\t\t\tuniforms.map.value = material.map;\n\n\t\t\trefreshTransformUniform( material.map, uniforms.mapTransform );\n\n\t\t}\n\n\t\tif ( material.alphaMap ) {\n\n\t\t\tuniforms.alphaMap.value = material.alphaMap;\n\n\t\t\trefreshTransformUniform( material.alphaMap, uniforms.alphaMapTransform );\n\n\t\t}\n\n\t\tif ( material.alphaTest > 0 ) {\n\n\t\t\tuniforms.alphaTest.value = material.alphaTest;\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsPhong( uniforms, material ) {\n\n\t\tuniforms.specular.value.copy( material.specular );\n\t\tuniforms.shininess.value = Math.max( material.shininess, 1e-4 ); // to prevent pow( 0.0, 0.0 )\n\n\t}\n\n\tfunction refreshUniformsToon( uniforms, material ) {\n\n\t\tif ( material.gradientMap ) {\n\n\t\t\tuniforms.gradientMap.value = material.gradientMap;\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsStandard( uniforms, material ) {\n\n\t\tuniforms.metalness.value = material.metalness;\n\n\t\tif ( material.metalnessMap ) {\n\n\t\t\tuniforms.metalnessMap.value = material.metalnessMap;\n\n\t\t\trefreshTransformUniform( material.metalnessMap, uniforms.metalnessMapTransform );\n\n\t\t}\n\n\t\tuniforms.roughness.value = material.roughness;\n\n\t\tif ( material.roughnessMap ) {\n\n\t\t\tuniforms.roughnessMap.value = material.roughnessMap;\n\n\t\t\trefreshTransformUniform( material.roughnessMap, uniforms.roughnessMapTransform );\n\n\t\t}\n\n\t\tif ( material.envMap ) {\n\n\t\t\t//uniforms.envMap.value = material.envMap; // part of uniforms common\n\n\t\t\tuniforms.envMapIntensity.value = material.envMapIntensity;\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsPhysical( uniforms, material, transmissionRenderTarget ) {\n\n\t\tuniforms.ior.value = material.ior; // also part of uniforms common\n\n\t\tif ( material.sheen > 0 ) {\n\n\t\t\tuniforms.sheenColor.value.copy( material.sheenColor ).multiplyScalar( material.sheen );\n\n\t\t\tuniforms.sheenRoughness.value = material.sheenRoughness;\n\n\t\t\tif ( material.sheenColorMap ) {\n\n\t\t\t\tuniforms.sheenColorMap.value = material.sheenColorMap;\n\n\t\t\t\trefreshTransformUniform( material.sheenColorMap, uniforms.sheenColorMapTransform );\n\n\t\t\t}\n\n\t\t\tif ( material.sheenRoughnessMap ) {\n\n\t\t\t\tuniforms.sheenRoughnessMap.value = material.sheenRoughnessMap;\n\n\t\t\t\trefreshTransformUniform( material.sheenRoughnessMap, uniforms.sheenRoughnessMapTransform );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( material.clearcoat > 0 ) {\n\n\t\t\tuniforms.clearcoat.value = material.clearcoat;\n\t\t\tuniforms.clearcoatRoughness.value = material.clearcoatRoughness;\n\n\t\t\tif ( material.clearcoatMap ) {\n\n\t\t\t\tuniforms.clearcoatMap.value = material.clearcoatMap;\n\n\t\t\t\trefreshTransformUniform( material.clearcoatMap, uniforms.clearcoatMapTransform );\n\n\t\t\t}\n\n\t\t\tif ( material.clearcoatRoughnessMap ) {\n\n\t\t\t\tuniforms.clearcoatRoughnessMap.value = material.clearcoatRoughnessMap;\n\n\t\t\t\trefreshTransformUniform( material.clearcoatRoughnessMap, uniforms.clearcoatRoughnessMapTransform );\n\n\t\t\t}\n\n\t\t\tif ( material.clearcoatNormalMap ) {\n\n\t\t\t\tuniforms.clearcoatNormalMap.value = material.clearcoatNormalMap;\n\n\t\t\t\trefreshTransformUniform( material.clearcoatNormalMap, uniforms.clearcoatNormalMapTransform );\n\n\t\t\t\tuniforms.clearcoatNormalScale.value.copy( material.clearcoatNormalScale );\n\n\t\t\t\tif ( material.side === BackSide ) {\n\n\t\t\t\t\tuniforms.clearcoatNormalScale.value.negate();\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( material.dispersion > 0 ) {\n\n\t\t\tuniforms.dispersion.value = material.dispersion;\n\n\t\t}\n\n\t\tif ( material.iridescence > 0 ) {\n\n\t\t\tuniforms.iridescence.value = material.iridescence;\n\t\t\tuniforms.iridescenceIOR.value = material.iridescenceIOR;\n\t\t\tuniforms.iridescenceThicknessMinimum.value = material.iridescenceThicknessRange[ 0 ];\n\t\t\tuniforms.iridescenceThicknessMaximum.value = material.iridescenceThicknessRange[ 1 ];\n\n\t\t\tif ( material.iridescenceMap ) {\n\n\t\t\t\tuniforms.iridescenceMap.value = material.iridescenceMap;\n\n\t\t\t\trefreshTransformUniform( material.iridescenceMap, uniforms.iridescenceMapTransform );\n\n\t\t\t}\n\n\t\t\tif ( material.iridescenceThicknessMap ) {\n\n\t\t\t\tuniforms.iridescenceThicknessMap.value = material.iridescenceThicknessMap;\n\n\t\t\t\trefreshTransformUniform( material.iridescenceThicknessMap, uniforms.iridescenceThicknessMapTransform );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( material.transmission > 0 ) {\n\n\t\t\tuniforms.transmission.value = material.transmission;\n\t\t\tuniforms.transmissionSamplerMap.value = transmissionRenderTarget.texture;\n\t\t\tuniforms.transmissionSamplerSize.value.set( transmissionRenderTarget.width, transmissionRenderTarget.height );\n\n\t\t\tif ( material.transmissionMap ) {\n\n\t\t\t\tuniforms.transmissionMap.value = material.transmissionMap;\n\n\t\t\t\trefreshTransformUniform( material.transmissionMap, uniforms.transmissionMapTransform );\n\n\t\t\t}\n\n\t\t\tuniforms.thickness.value = material.thickness;\n\n\t\t\tif ( material.thicknessMap ) {\n\n\t\t\t\tuniforms.thicknessMap.value = material.thicknessMap;\n\n\t\t\t\trefreshTransformUniform( material.thicknessMap, uniforms.thicknessMapTransform );\n\n\t\t\t}\n\n\t\t\tuniforms.attenuationDistance.value = material.attenuationDistance;\n\t\t\tuniforms.attenuationColor.value.copy( material.attenuationColor );\n\n\t\t}\n\n\t\tif ( material.anisotropy > 0 ) {\n\n\t\t\tuniforms.anisotropyVector.value.set( material.anisotropy * Math.cos( material.anisotropyRotation ), material.anisotropy * Math.sin( material.anisotropyRotation ) );\n\n\t\t\tif ( material.anisotropyMap ) {\n\n\t\t\t\tuniforms.anisotropyMap.value = material.anisotropyMap;\n\n\t\t\t\trefreshTransformUniform( material.anisotropyMap, uniforms.anisotropyMapTransform );\n\n\t\t\t}\n\n\t\t}\n\n\t\tuniforms.specularIntensity.value = material.specularIntensity;\n\t\tuniforms.specularColor.value.copy( material.specularColor );\n\n\t\tif ( material.specularColorMap ) {\n\n\t\t\tuniforms.specularColorMap.value = material.specularColorMap;\n\n\t\t\trefreshTransformUniform( material.specularColorMap, uniforms.specularColorMapTransform );\n\n\t\t}\n\n\t\tif ( material.specularIntensityMap ) {\n\n\t\t\tuniforms.specularIntensityMap.value = material.specularIntensityMap;\n\n\t\t\trefreshTransformUniform( material.specularIntensityMap, uniforms.specularIntensityMapTransform );\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsMatcap( uniforms, material ) {\n\n\t\tif ( material.matcap ) {\n\n\t\t\tuniforms.matcap.value = material.matcap;\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsDistance( uniforms, material ) {\n\n\t\tconst light = properties.get( material ).light;\n\n\t\tuniforms.referencePosition.value.setFromMatrixPosition( light.matrixWorld );\n\t\tuniforms.nearDistance.value = light.shadow.camera.near;\n\t\tuniforms.farDistance.value = light.shadow.camera.far;\n\n\t}\n\n\treturn {\n\t\trefreshFogUniforms: refreshFogUniforms,\n\t\trefreshMaterialUniforms: refreshMaterialUniforms\n\t};\n\n}\n\nfunction WebGLUniformsGroups( gl, info, capabilities, state ) {\n\n\tlet buffers = {};\n\tlet updateList = {};\n\tlet allocatedBindingPoints = [];\n\n\tconst maxBindingPoints = gl.getParameter( gl.MAX_UNIFORM_BUFFER_BINDINGS ); // binding points are global whereas block indices are per shader program\n\n\tfunction bind( uniformsGroup, program ) {\n\n\t\tconst webglProgram = program.program;\n\t\tstate.uniformBlockBinding( uniformsGroup, webglProgram );\n\n\t}\n\n\tfunction update( uniformsGroup, program ) {\n\n\t\tlet buffer = buffers[ uniformsGroup.id ];\n\n\t\tif ( buffer === undefined ) {\n\n\t\t\tprepareUniformsGroup( uniformsGroup );\n\n\t\t\tbuffer = createBuffer( uniformsGroup );\n\t\t\tbuffers[ uniformsGroup.id ] = buffer;\n\n\t\t\tuniformsGroup.addEventListener( 'dispose', onUniformsGroupsDispose );\n\n\t\t}\n\n\t\t// ensure to update the binding points/block indices mapping for this program\n\n\t\tconst webglProgram = program.program;\n\t\tstate.updateUBOMapping( uniformsGroup, webglProgram );\n\n\t\t// update UBO once per frame\n\n\t\tconst frame = info.render.frame;\n\n\t\tif ( updateList[ uniformsGroup.id ] !== frame ) {\n\n\t\t\tupdateBufferData( uniformsGroup );\n\n\t\t\tupdateList[ uniformsGroup.id ] = frame;\n\n\t\t}\n\n\t}\n\n\tfunction createBuffer( uniformsGroup ) {\n\n\t\t// the setup of an UBO is independent of a particular shader program but global\n\n\t\tconst bindingPointIndex = allocateBindingPointIndex();\n\t\tuniformsGroup.__bindingPointIndex = bindingPointIndex;\n\n\t\tconst buffer = gl.createBuffer();\n\t\tconst size = uniformsGroup.__size;\n\t\tconst usage = uniformsGroup.usage;\n\n\t\tgl.bindBuffer( gl.UNIFORM_BUFFER, buffer );\n\t\tgl.bufferData( gl.UNIFORM_BUFFER, size, usage );\n\t\tgl.bindBuffer( gl.UNIFORM_BUFFER, null );\n\t\tgl.bindBufferBase( gl.UNIFORM_BUFFER, bindingPointIndex, buffer );\n\n\t\treturn buffer;\n\n\t}\n\n\tfunction allocateBindingPointIndex() {\n\n\t\tfor ( let i = 0; i < maxBindingPoints; i ++ ) {\n\n\t\t\tif ( allocatedBindingPoints.indexOf( i ) === - 1 ) {\n\n\t\t\t\tallocatedBindingPoints.push( i );\n\t\t\t\treturn i;\n\n\t\t\t}\n\n\t\t}\n\n\t\tconsole.error( 'THREE.WebGLRenderer: Maximum number of simultaneously usable uniforms groups reached.' );\n\n\t\treturn 0;\n\n\t}\n\n\tfunction updateBufferData( uniformsGroup ) {\n\n\t\tconst buffer = buffers[ uniformsGroup.id ];\n\t\tconst uniforms = uniformsGroup.uniforms;\n\t\tconst cache = uniformsGroup.__cache;\n\n\t\tgl.bindBuffer( gl.UNIFORM_BUFFER, buffer );\n\n\t\tfor ( let i = 0, il = uniforms.length; i < il; i ++ ) {\n\n\t\t\tconst uniformArray = Array.isArray( uniforms[ i ] ) ? uniforms[ i ] : [ uniforms[ i ] ];\n\n\t\t\tfor ( let j = 0, jl = uniformArray.length; j < jl; j ++ ) {\n\n\t\t\t\tconst uniform = uniformArray[ j ];\n\n\t\t\t\tif ( hasUniformChanged( uniform, i, j, cache ) === true ) {\n\n\t\t\t\t\tconst offset = uniform.__offset;\n\n\t\t\t\t\tconst values = Array.isArray( uniform.value ) ? uniform.value : [ uniform.value ];\n\n\t\t\t\t\tlet arrayOffset = 0;\n\n\t\t\t\t\tfor ( let k = 0; k < values.length; k ++ ) {\n\n\t\t\t\t\t\tconst value = values[ k ];\n\n\t\t\t\t\t\tconst info = getUniformSize( value );\n\n\t\t\t\t\t\t// TODO add integer and struct support\n\t\t\t\t\t\tif ( typeof value === 'number' || typeof value === 'boolean' ) {\n\n\t\t\t\t\t\t\tuniform.__data[ 0 ] = value;\n\t\t\t\t\t\t\tgl.bufferSubData( gl.UNIFORM_BUFFER, offset + arrayOffset, uniform.__data );\n\n\t\t\t\t\t\t} else if ( value.isMatrix3 ) {\n\n\t\t\t\t\t\t\t// manually converting 3x3 to 3x4\n\n\t\t\t\t\t\t\tuniform.__data[ 0 ] = value.elements[ 0 ];\n\t\t\t\t\t\t\tuniform.__data[ 1 ] = value.elements[ 1 ];\n\t\t\t\t\t\t\tuniform.__data[ 2 ] = value.elements[ 2 ];\n\t\t\t\t\t\t\tuniform.__data[ 3 ] = 0;\n\t\t\t\t\t\t\tuniform.__data[ 4 ] = value.elements[ 3 ];\n\t\t\t\t\t\t\tuniform.__data[ 5 ] = value.elements[ 4 ];\n\t\t\t\t\t\t\tuniform.__data[ 6 ] = value.elements[ 5 ];\n\t\t\t\t\t\t\tuniform.__data[ 7 ] = 0;\n\t\t\t\t\t\t\tuniform.__data[ 8 ] = value.elements[ 6 ];\n\t\t\t\t\t\t\tuniform.__data[ 9 ] = value.elements[ 7 ];\n\t\t\t\t\t\t\tuniform.__data[ 10 ] = value.elements[ 8 ];\n\t\t\t\t\t\t\tuniform.__data[ 11 ] = 0;\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tvalue.toArray( uniform.__data, arrayOffset );\n\n\t\t\t\t\t\t\tarrayOffset += info.storage / Float32Array.BYTES_PER_ELEMENT;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\tgl.bufferSubData( gl.UNIFORM_BUFFER, offset, uniform.__data );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tgl.bindBuffer( gl.UNIFORM_BUFFER, null );\n\n\t}\n\n\tfunction hasUniformChanged( uniform, index, indexArray, cache ) {\n\n\t\tconst value = uniform.value;\n\t\tconst indexString = index + '_' + indexArray;\n\n\t\tif ( cache[ indexString ] === undefined ) {\n\n\t\t\t// cache entry does not exist so far\n\n\t\t\tif ( typeof value === 'number' || typeof value === 'boolean' ) {\n\n\t\t\t\tcache[ indexString ] = value;\n\n\t\t\t} else {\n\n\t\t\t\tcache[ indexString ] = value.clone();\n\n\t\t\t}\n\n\t\t\treturn true;\n\n\t\t} else {\n\n\t\t\tconst cachedObject = cache[ indexString ];\n\n\t\t\t// compare current value with cached entry\n\n\t\t\tif ( typeof value === 'number' || typeof value === 'boolean' ) {\n\n\t\t\t\tif ( cachedObject !== value ) {\n\n\t\t\t\t\tcache[ indexString ] = value;\n\t\t\t\t\treturn true;\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tif ( cachedObject.equals( value ) === false ) {\n\n\t\t\t\t\tcachedObject.copy( value );\n\t\t\t\t\treturn true;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn false;\n\n\t}\n\n\tfunction prepareUniformsGroup( uniformsGroup ) {\n\n\t\t// determine total buffer size according to the STD140 layout\n\t\t// Hint: STD140 is the only supported layout in WebGL 2\n\n\t\tconst uniforms = uniformsGroup.uniforms;\n\n\t\tlet offset = 0; // global buffer offset in bytes\n\t\tconst chunkSize = 16; // size of a chunk in bytes\n\n\t\tfor ( let i = 0, l = uniforms.length; i < l; i ++ ) {\n\n\t\t\tconst uniformArray = Array.isArray( uniforms[ i ] ) ? uniforms[ i ] : [ uniforms[ i ] ];\n\n\t\t\tfor ( let j = 0, jl = uniformArray.length; j < jl; j ++ ) {\n\n\t\t\t\tconst uniform = uniformArray[ j ];\n\n\t\t\t\tconst values = Array.isArray( uniform.value ) ? uniform.value : [ uniform.value ];\n\n\t\t\t\tfor ( let k = 0, kl = values.length; k < kl; k ++ ) {\n\n\t\t\t\t\tconst value = values[ k ];\n\n\t\t\t\t\tconst info = getUniformSize( value );\n\n\t\t\t\t\tconst chunkOffset = offset % chunkSize; // offset in the current chunk\n\t\t\t\t\tconst chunkPadding = chunkOffset % info.boundary; // required padding to match boundary\n\t\t\t\t\tconst chunkStart = chunkOffset + chunkPadding; // the start position in the current chunk for the data\n\n\t\t\t\t\toffset += chunkPadding;\n\n\t\t\t\t\t// Check for chunk overflow\n\t\t\t\t\tif ( chunkStart !== 0 && ( chunkSize - chunkStart ) < info.storage ) {\n\n\t\t\t\t\t\t// Add padding and adjust offset\n\t\t\t\t\t\toffset += ( chunkSize - chunkStart );\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// the following two properties will be used for partial buffer updates\n\t\t\t\t\tuniform.__data = new Float32Array( info.storage / Float32Array.BYTES_PER_ELEMENT );\n\t\t\t\t\tuniform.__offset = offset;\n\n\t\t\t\t\t// Update the global offset\n\t\t\t\t\toffset += info.storage;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t// ensure correct final padding\n\n\t\tconst chunkOffset = offset % chunkSize;\n\n\t\tif ( chunkOffset > 0 ) offset += ( chunkSize - chunkOffset );\n\n\t\t//\n\n\t\tuniformsGroup.__size = offset;\n\t\tuniformsGroup.__cache = {};\n\n\t\treturn this;\n\n\t}\n\n\tfunction getUniformSize( value ) {\n\n\t\tconst info = {\n\t\t\tboundary: 0, // bytes\n\t\t\tstorage: 0 // bytes\n\t\t};\n\n\t\t// determine sizes according to STD140\n\n\t\tif ( typeof value === 'number' || typeof value === 'boolean' ) {\n\n\t\t\t// float/int/bool\n\n\t\t\tinfo.boundary = 4;\n\t\t\tinfo.storage = 4;\n\n\t\t} else if ( value.isVector2 ) {\n\n\t\t\t// vec2\n\n\t\t\tinfo.boundary = 8;\n\t\t\tinfo.storage = 8;\n\n\t\t} else if ( value.isVector3 || value.isColor ) {\n\n\t\t\t// vec3\n\n\t\t\tinfo.boundary = 16;\n\t\t\tinfo.storage = 12; // evil: vec3 must start on a 16-byte boundary but it only consumes 12 bytes\n\n\t\t} else if ( value.isVector4 ) {\n\n\t\t\t// vec4\n\n\t\t\tinfo.boundary = 16;\n\t\t\tinfo.storage = 16;\n\n\t\t} else if ( value.isMatrix3 ) {\n\n\t\t\t// mat3 (in STD140 a 3x3 matrix is represented as 3x4)\n\n\t\t\tinfo.boundary = 48;\n\t\t\tinfo.storage = 48;\n\n\t\t} else if ( value.isMatrix4 ) {\n\n\t\t\t// mat4\n\n\t\t\tinfo.boundary = 64;\n\t\t\tinfo.storage = 64;\n\n\t\t} else if ( value.isTexture ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group.' );\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: Unsupported uniform value type.', value );\n\n\t\t}\n\n\t\treturn info;\n\n\t}\n\n\tfunction onUniformsGroupsDispose( event ) {\n\n\t\tconst uniformsGroup = event.target;\n\n\t\tuniformsGroup.removeEventListener( 'dispose', onUniformsGroupsDispose );\n\n\t\tconst index = allocatedBindingPoints.indexOf( uniformsGroup.__bindingPointIndex );\n\t\tallocatedBindingPoints.splice( index, 1 );\n\n\t\tgl.deleteBuffer( buffers[ uniformsGroup.id ] );\n\n\t\tdelete buffers[ uniformsGroup.id ];\n\t\tdelete updateList[ uniformsGroup.id ];\n\n\t}\n\n\tfunction dispose() {\n\n\t\tfor ( const id in buffers ) {\n\n\t\t\tgl.deleteBuffer( buffers[ id ] );\n\n\t\t}\n\n\t\tallocatedBindingPoints = [];\n\t\tbuffers = {};\n\t\tupdateList = {};\n\n\t}\n\n\treturn {\n\n\t\tbind: bind,\n\t\tupdate: update,\n\n\t\tdispose: dispose\n\n\t};\n\n}\n\nclass WebGLRenderer {\n\n\tconstructor( parameters = {} ) {\n\n\t\tconst {\n\t\t\tcanvas = createCanvasElement(),\n\t\t\tcontext = null,\n\t\t\tdepth = true,\n\t\t\tstencil = false,\n\t\t\talpha = false,\n\t\t\tantialias = false,\n\t\t\tpremultipliedAlpha = true,\n\t\t\tpreserveDrawingBuffer = false,\n\t\t\tpowerPreference = 'default',\n\t\t\tfailIfMajorPerformanceCaveat = false,\n\t\t\treverseDepthBuffer = false,\n\t\t} = parameters;\n\n\t\tthis.isWebGLRenderer = true;\n\n\t\tlet _alpha;\n\n\t\tif ( context !== null ) {\n\n\t\t\tif ( typeof WebGLRenderingContext !== 'undefined' && context instanceof WebGLRenderingContext ) {\n\n\t\t\t\tthrow new Error( 'THREE.WebGLRenderer: WebGL 1 is not supported since r163.' );\n\n\t\t\t}\n\n\t\t\t_alpha = context.getContextAttributes().alpha;\n\n\t\t} else {\n\n\t\t\t_alpha = alpha;\n\n\t\t}\n\n\t\tconst uintClearColor = new Uint32Array( 4 );\n\t\tconst intClearColor = new Int32Array( 4 );\n\n\t\tlet currentRenderList = null;\n\t\tlet currentRenderState = null;\n\n\t\t// render() can be called from within a callback triggered by another render.\n\t\t// We track this so that the nested render call gets its list and state isolated from the parent render call.\n\n\t\tconst renderListStack = [];\n\t\tconst renderStateStack = [];\n\n\t\t// public properties\n\n\t\tthis.domElement = canvas;\n\n\t\t// Debug configuration container\n\t\tthis.debug = {\n\n\t\t\t/**\n\t\t\t * Enables error checking and reporting when shader programs are being compiled\n\t\t\t * @type {boolean}\n\t\t\t */\n\t\t\tcheckShaderErrors: true,\n\t\t\t/**\n\t\t\t * Callback for custom error reporting.\n\t\t\t * @type {?Function}\n\t\t\t */\n\t\t\tonShaderError: null\n\t\t};\n\n\t\t// clearing\n\n\t\tthis.autoClear = true;\n\t\tthis.autoClearColor = true;\n\t\tthis.autoClearDepth = true;\n\t\tthis.autoClearStencil = true;\n\n\t\t// scene graph\n\n\t\tthis.sortObjects = true;\n\n\t\t// user-defined clipping\n\n\t\tthis.clippingPlanes = [];\n\t\tthis.localClippingEnabled = false;\n\n\t\t// physically based shading\n\n\t\tthis._outputColorSpace = SRGBColorSpace;\n\n\t\t// tone mapping\n\n\t\tthis.toneMapping = NoToneMapping;\n\t\tthis.toneMappingExposure = 1.0;\n\n\t\t// internal properties\n\n\t\tconst _this = this;\n\n\t\tlet _isContextLost = false;\n\n\t\t// internal state cache\n\n\t\tlet _currentActiveCubeFace = 0;\n\t\tlet _currentActiveMipmapLevel = 0;\n\t\tlet _currentRenderTarget = null;\n\t\tlet _currentMaterialId = - 1;\n\n\t\tlet _currentCamera = null;\n\n\t\tconst _currentViewport = new Vector4();\n\t\tconst _currentScissor = new Vector4();\n\t\tlet _currentScissorTest = null;\n\n\t\tconst _currentClearColor = new Color( 0x000000 );\n\t\tlet _currentClearAlpha = 0;\n\n\t\t//\n\n\t\tlet _width = canvas.width;\n\t\tlet _height = canvas.height;\n\n\t\tlet _pixelRatio = 1;\n\t\tlet _opaqueSort = null;\n\t\tlet _transparentSort = null;\n\n\t\tconst _viewport = new Vector4( 0, 0, _width, _height );\n\t\tconst _scissor = new Vector4( 0, 0, _width, _height );\n\t\tlet _scissorTest = false;\n\n\t\t// frustum\n\n\t\tconst _frustum = new Frustum();\n\n\t\t// clipping\n\n\t\tlet _clippingEnabled = false;\n\t\tlet _localClippingEnabled = false;\n\n\t\t// camera matrices cache\n\n\t\tconst _currentProjectionMatrix = new Matrix4();\n\t\tconst _projScreenMatrix = new Matrix4();\n\n\t\tconst _vector3 = new Vector3();\n\n\t\tconst _vector4 = new Vector4();\n\n\t\tconst _emptyScene = { background: null, fog: null, environment: null, overrideMaterial: null, isScene: true };\n\n\t\tlet _renderBackground = false;\n\n\t\tfunction getTargetPixelRatio() {\n\n\t\t\treturn _currentRenderTarget === null ? _pixelRatio : 1;\n\n\t\t}\n\n\t\t// initialize\n\n\t\tlet _gl = context;\n\n\t\tfunction getContext( contextName, contextAttributes ) {\n\n\t\t\treturn canvas.getContext( contextName, contextAttributes );\n\n\t\t}\n\n\t\ttry {\n\n\t\t\tconst contextAttributes = {\n\t\t\t\talpha: true,\n\t\t\t\tdepth,\n\t\t\t\tstencil,\n\t\t\t\tantialias,\n\t\t\t\tpremultipliedAlpha,\n\t\t\t\tpreserveDrawingBuffer,\n\t\t\t\tpowerPreference,\n\t\t\t\tfailIfMajorPerformanceCaveat,\n\t\t\t};\n\n\t\t\t// OffscreenCanvas does not have setAttribute, see #22811\n\t\t\tif ( 'setAttribute' in canvas ) canvas.setAttribute( 'data-engine', `three.js r${REVISION}` );\n\n\t\t\t// event listeners must be registered before WebGL context is created, see #12753\n\t\t\tcanvas.addEventListener( 'webglcontextlost', onContextLost, false );\n\t\t\tcanvas.addEventListener( 'webglcontextrestored', onContextRestore, false );\n\t\t\tcanvas.addEventListener( 'webglcontextcreationerror', onContextCreationError, false );\n\n\t\t\tif ( _gl === null ) {\n\n\t\t\t\tconst contextName = 'webgl2';\n\n\t\t\t\t_gl = getContext( contextName, contextAttributes );\n\n\t\t\t\tif ( _gl === null ) {\n\n\t\t\t\t\tif ( getContext( contextName ) ) {\n\n\t\t\t\t\t\tthrow new Error( 'Error creating WebGL context with your selected attributes.' );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tthrow new Error( 'Error creating WebGL context.' );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLRenderer: ' + error.message );\n\t\t\tthrow error;\n\n\t\t}\n\n\t\tlet extensions, capabilities, state, info;\n\t\tlet properties, textures, cubemaps, cubeuvmaps, attributes, geometries, objects;\n\t\tlet programCache, materials, renderLists, renderStates, clipping, shadowMap;\n\n\t\tlet background, morphtargets, bufferRenderer, indexedBufferRenderer;\n\n\t\tlet utils, bindingStates, uniformsGroups;\n\n\t\tfunction initGLContext() {\n\n\t\t\textensions = new WebGLExtensions( _gl );\n\t\t\textensions.init();\n\n\t\t\tutils = new WebGLUtils( _gl, extensions );\n\n\t\t\tcapabilities = new WebGLCapabilities( _gl, extensions, parameters, utils );\n\n\t\t\tstate = new WebGLState( _gl, extensions );\n\n\t\t\tif ( capabilities.reverseDepthBuffer && reverseDepthBuffer ) {\n\n\t\t\t\tstate.buffers.depth.setReversed( true );\n\n\t\t\t}\n\n\t\t\tinfo = new WebGLInfo( _gl );\n\t\t\tproperties = new WebGLProperties();\n\t\t\ttextures = new WebGLTextures( _gl, extensions, state, properties, capabilities, utils, info );\n\t\t\tcubemaps = new WebGLCubeMaps( _this );\n\t\t\tcubeuvmaps = new WebGLCubeUVMaps( _this );\n\t\t\tattributes = new WebGLAttributes( _gl );\n\t\t\tbindingStates = new WebGLBindingStates( _gl, attributes );\n\t\t\tgeometries = new WebGLGeometries( _gl, attributes, info, bindingStates );\n\t\t\tobjects = new WebGLObjects( _gl, geometries, attributes, info );\n\t\t\tmorphtargets = new WebGLMorphtargets( _gl, capabilities, textures );\n\t\t\tclipping = new WebGLClipping( properties );\n\t\t\tprogramCache = new WebGLPrograms( _this, cubemaps, cubeuvmaps, extensions, capabilities, bindingStates, clipping );\n\t\t\tmaterials = new WebGLMaterials( _this, properties );\n\t\t\trenderLists = new WebGLRenderLists();\n\t\t\trenderStates = new WebGLRenderStates( extensions );\n\t\t\tbackground = new WebGLBackground( _this, cubemaps, cubeuvmaps, state, objects, _alpha, premultipliedAlpha );\n\t\t\tshadowMap = new WebGLShadowMap( _this, objects, capabilities );\n\t\t\tuniformsGroups = new WebGLUniformsGroups( _gl, info, capabilities, state );\n\n\t\t\tbufferRenderer = new WebGLBufferRenderer( _gl, extensions, info );\n\t\t\tindexedBufferRenderer = new WebGLIndexedBufferRenderer( _gl, extensions, info );\n\n\t\t\tinfo.programs = programCache.programs;\n\n\t\t\t_this.capabilities = capabilities;\n\t\t\t_this.extensions = extensions;\n\t\t\t_this.properties = properties;\n\t\t\t_this.renderLists = renderLists;\n\t\t\t_this.shadowMap = shadowMap;\n\t\t\t_this.state = state;\n\t\t\t_this.info = info;\n\n\t\t}\n\n\t\tinitGLContext();\n\n\t\t// xr\n\n\t\tconst xr = new WebXRManager( _this, _gl );\n\n\t\tthis.xr = xr;\n\n\t\t// API\n\n\t\tthis.getContext = function () {\n\n\t\t\treturn _gl;\n\n\t\t};\n\n\t\tthis.getContextAttributes = function () {\n\n\t\t\treturn _gl.getContextAttributes();\n\n\t\t};\n\n\t\tthis.forceContextLoss = function () {\n\n\t\t\tconst extension = extensions.get( 'WEBGL_lose_context' );\n\t\t\tif ( extension ) extension.loseContext();\n\n\t\t};\n\n\t\tthis.forceContextRestore = function () {\n\n\t\t\tconst extension = extensions.get( 'WEBGL_lose_context' );\n\t\t\tif ( extension ) extension.restoreContext();\n\n\t\t};\n\n\t\tthis.getPixelRatio = function () {\n\n\t\t\treturn _pixelRatio;\n\n\t\t};\n\n\t\tthis.setPixelRatio = function ( value ) {\n\n\t\t\tif ( value === undefined ) return;\n\n\t\t\t_pixelRatio = value;\n\n\t\t\tthis.setSize( _width, _height, false );\n\n\t\t};\n\n\t\tthis.getSize = function ( target ) {\n\n\t\t\treturn target.set( _width, _height );\n\n\t\t};\n\n\t\tthis.setSize = function ( width, height, updateStyle = true ) {\n\n\t\t\tif ( xr.isPresenting ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Can\\'t change size while VR device is presenting.' );\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\t_width = width;\n\t\t\t_height = height;\n\n\t\t\tcanvas.width = Math.floor( width * _pixelRatio );\n\t\t\tcanvas.height = Math.floor( height * _pixelRatio );\n\n\t\t\tif ( updateStyle === true ) {\n\n\t\t\t\tcanvas.style.width = width + 'px';\n\t\t\t\tcanvas.style.height = height + 'px';\n\n\t\t\t}\n\n\t\t\tthis.setViewport( 0, 0, width, height );\n\n\t\t};\n\n\t\tthis.getDrawingBufferSize = function ( target ) {\n\n\t\t\treturn target.set( _width * _pixelRatio, _height * _pixelRatio ).floor();\n\n\t\t};\n\n\t\tthis.setDrawingBufferSize = function ( width, height, pixelRatio ) {\n\n\t\t\t_width = width;\n\t\t\t_height = height;\n\n\t\t\t_pixelRatio = pixelRatio;\n\n\t\t\tcanvas.width = Math.floor( width * pixelRatio );\n\t\t\tcanvas.height = Math.floor( height * pixelRatio );\n\n\t\t\tthis.setViewport( 0, 0, width, height );\n\n\t\t};\n\n\t\tthis.getCurrentViewport = function ( target ) {\n\n\t\t\treturn target.copy( _currentViewport );\n\n\t\t};\n\n\t\tthis.getViewport = function ( target ) {\n\n\t\t\treturn target.copy( _viewport );\n\n\t\t};\n\n\t\tthis.setViewport = function ( x, y, width, height ) {\n\n\t\t\tif ( x.isVector4 ) {\n\n\t\t\t\t_viewport.set( x.x, x.y, x.z, x.w );\n\n\t\t\t} else {\n\n\t\t\t\t_viewport.set( x, y, width, height );\n\n\t\t\t}\n\n\t\t\tstate.viewport( _currentViewport.copy( _viewport ).multiplyScalar( _pixelRatio ).round() );\n\n\t\t};\n\n\t\tthis.getScissor = function ( target ) {\n\n\t\t\treturn target.copy( _scissor );\n\n\t\t};\n\n\t\tthis.setScissor = function ( x, y, width, height ) {\n\n\t\t\tif ( x.isVector4 ) {\n\n\t\t\t\t_scissor.set( x.x, x.y, x.z, x.w );\n\n\t\t\t} else {\n\n\t\t\t\t_scissor.set( x, y, width, height );\n\n\t\t\t}\n\n\t\t\tstate.scissor( _currentScissor.copy( _scissor ).multiplyScalar( _pixelRatio ).round() );\n\n\t\t};\n\n\t\tthis.getScissorTest = function () {\n\n\t\t\treturn _scissorTest;\n\n\t\t};\n\n\t\tthis.setScissorTest = function ( boolean ) {\n\n\t\t\tstate.setScissorTest( _scissorTest = boolean );\n\n\t\t};\n\n\t\tthis.setOpaqueSort = function ( method ) {\n\n\t\t\t_opaqueSort = method;\n\n\t\t};\n\n\t\tthis.setTransparentSort = function ( method ) {\n\n\t\t\t_transparentSort = method;\n\n\t\t};\n\n\t\t// Clearing\n\n\t\tthis.getClearColor = function ( target ) {\n\n\t\t\treturn target.copy( background.getClearColor() );\n\n\t\t};\n\n\t\tthis.setClearColor = function () {\n\n\t\t\tbackground.setClearColor.apply( background, arguments );\n\n\t\t};\n\n\t\tthis.getClearAlpha = function () {\n\n\t\t\treturn background.getClearAlpha();\n\n\t\t};\n\n\t\tthis.setClearAlpha = function () {\n\n\t\t\tbackground.setClearAlpha.apply( background, arguments );\n\n\t\t};\n\n\t\tthis.clear = function ( color = true, depth = true, stencil = true ) {\n\n\t\t\tlet bits = 0;\n\n\t\t\tif ( color ) {\n\n\t\t\t\t// check if we're trying to clear an integer target\n\t\t\t\tlet isIntegerFormat = false;\n\t\t\t\tif ( _currentRenderTarget !== null ) {\n\n\t\t\t\t\tconst targetFormat = _currentRenderTarget.texture.format;\n\t\t\t\t\tisIntegerFormat = targetFormat === RGBAIntegerFormat ||\n\t\t\t\t\t\ttargetFormat === RGIntegerFormat ||\n\t\t\t\t\t\ttargetFormat === RedIntegerFormat;\n\n\t\t\t\t}\n\n\t\t\t\t// use the appropriate clear functions to clear the target if it's a signed\n\t\t\t\t// or unsigned integer target\n\t\t\t\tif ( isIntegerFormat ) {\n\n\t\t\t\t\tconst targetType = _currentRenderTarget.texture.type;\n\t\t\t\t\tconst isUnsignedType = targetType === UnsignedByteType ||\n\t\t\t\t\t\ttargetType === UnsignedIntType ||\n\t\t\t\t\t\ttargetType === UnsignedShortType ||\n\t\t\t\t\t\ttargetType === UnsignedInt248Type ||\n\t\t\t\t\t\ttargetType === UnsignedShort4444Type ||\n\t\t\t\t\t\ttargetType === UnsignedShort5551Type;\n\n\t\t\t\t\tconst clearColor = background.getClearColor();\n\t\t\t\t\tconst a = background.getClearAlpha();\n\t\t\t\t\tconst r = clearColor.r;\n\t\t\t\t\tconst g = clearColor.g;\n\t\t\t\t\tconst b = clearColor.b;\n\n\t\t\t\t\tif ( isUnsignedType ) {\n\n\t\t\t\t\t\tuintClearColor[ 0 ] = r;\n\t\t\t\t\t\tuintClearColor[ 1 ] = g;\n\t\t\t\t\t\tuintClearColor[ 2 ] = b;\n\t\t\t\t\t\tuintClearColor[ 3 ] = a;\n\t\t\t\t\t\t_gl.clearBufferuiv( _gl.COLOR, 0, uintClearColor );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tintClearColor[ 0 ] = r;\n\t\t\t\t\t\tintClearColor[ 1 ] = g;\n\t\t\t\t\t\tintClearColor[ 2 ] = b;\n\t\t\t\t\t\tintClearColor[ 3 ] = a;\n\t\t\t\t\t\t_gl.clearBufferiv( _gl.COLOR, 0, intClearColor );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tbits |= _gl.COLOR_BUFFER_BIT;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( depth ) {\n\n\t\t\t\tbits |= _gl.DEPTH_BUFFER_BIT;\n\n\t\t\t}\n\n\t\t\tif ( stencil ) {\n\n\t\t\t\tbits |= _gl.STENCIL_BUFFER_BIT;\n\t\t\t\tthis.state.buffers.stencil.setMask( 0xffffffff );\n\n\t\t\t}\n\n\t\t\t_gl.clear( bits );\n\n\t\t};\n\n\t\tthis.clearColor = function () {\n\n\t\t\tthis.clear( true, false, false );\n\n\t\t};\n\n\t\tthis.clearDepth = function () {\n\n\t\t\tthis.clear( false, true, false );\n\n\t\t};\n\n\t\tthis.clearStencil = function () {\n\n\t\t\tthis.clear( false, false, true );\n\n\t\t};\n\n\t\t//\n\n\t\tthis.dispose = function () {\n\n\t\t\tcanvas.removeEventListener( 'webglcontextlost', onContextLost, false );\n\t\t\tcanvas.removeEventListener( 'webglcontextrestored', onContextRestore, false );\n\t\t\tcanvas.removeEventListener( 'webglcontextcreationerror', onContextCreationError, false );\n\n\t\t\trenderLists.dispose();\n\t\t\trenderStates.dispose();\n\t\t\tproperties.dispose();\n\t\t\tcubemaps.dispose();\n\t\t\tcubeuvmaps.dispose();\n\t\t\tobjects.dispose();\n\t\t\tbindingStates.dispose();\n\t\t\tuniformsGroups.dispose();\n\t\t\tprogramCache.dispose();\n\n\t\t\txr.dispose();\n\n\t\t\txr.removeEventListener( 'sessionstart', onXRSessionStart );\n\t\t\txr.removeEventListener( 'sessionend', onXRSessionEnd );\n\n\t\t\tanimation.stop();\n\n\t\t};\n\n\t\t// Events\n\n\t\tfunction onContextLost( event ) {\n\n\t\t\tevent.preventDefault();\n\n\t\t\tconsole.log( 'THREE.WebGLRenderer: Context Lost.' );\n\n\t\t\t_isContextLost = true;\n\n\t\t}\n\n\t\tfunction onContextRestore( /* event */ ) {\n\n\t\t\tconsole.log( 'THREE.WebGLRenderer: Context Restored.' );\n\n\t\t\t_isContextLost = false;\n\n\t\t\tconst infoAutoReset = info.autoReset;\n\t\t\tconst shadowMapEnabled = shadowMap.enabled;\n\t\t\tconst shadowMapAutoUpdate = shadowMap.autoUpdate;\n\t\t\tconst shadowMapNeedsUpdate = shadowMap.needsUpdate;\n\t\t\tconst shadowMapType = shadowMap.type;\n\n\t\t\tinitGLContext();\n\n\t\t\tinfo.autoReset = infoAutoReset;\n\t\t\tshadowMap.enabled = shadowMapEnabled;\n\t\t\tshadowMap.autoUpdate = shadowMapAutoUpdate;\n\t\t\tshadowMap.needsUpdate = shadowMapNeedsUpdate;\n\t\t\tshadowMap.type = shadowMapType;\n\n\t\t}\n\n\t\tfunction onContextCreationError( event ) {\n\n\t\t\tconsole.error( 'THREE.WebGLRenderer: A WebGL context could not be created. Reason: ', event.statusMessage );\n\n\t\t}\n\n\t\tfunction onMaterialDispose( event ) {\n\n\t\t\tconst material = event.target;\n\n\t\t\tmaterial.removeEventListener( 'dispose', onMaterialDispose );\n\n\t\t\tdeallocateMaterial( material );\n\n\t\t}\n\n\t\t// Buffer deallocation\n\n\t\tfunction deallocateMaterial( material ) {\n\n\t\t\treleaseMaterialProgramReferences( material );\n\n\t\t\tproperties.remove( material );\n\n\t\t}\n\n\n\t\tfunction releaseMaterialProgramReferences( material ) {\n\n\t\t\tconst programs = properties.get( material ).programs;\n\n\t\t\tif ( programs !== undefined ) {\n\n\t\t\t\tprograms.forEach( function ( program ) {\n\n\t\t\t\t\tprogramCache.releaseProgram( program );\n\n\t\t\t\t} );\n\n\t\t\t\tif ( material.isShaderMaterial ) {\n\n\t\t\t\t\tprogramCache.releaseShaderCache( material );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t// Buffer rendering\n\n\t\tthis.renderBufferDirect = function ( camera, scene, geometry, material, object, group ) {\n\n\t\t\tif ( scene === null ) scene = _emptyScene; // renderBufferDirect second parameter used to be fog (could be null)\n\n\t\t\tconst frontFaceCW = ( object.isMesh && object.matrixWorld.determinant() < 0 );\n\n\t\t\tconst program = setProgram( camera, scene, geometry, material, object );\n\n\t\t\tstate.setMaterial( material, frontFaceCW );\n\n\t\t\t//\n\n\t\t\tlet index = geometry.index;\n\t\t\tlet rangeFactor = 1;\n\n\t\t\tif ( material.wireframe === true ) {\n\n\t\t\t\tindex = geometries.getWireframeAttribute( geometry );\n\n\t\t\t\tif ( index === undefined ) return;\n\n\t\t\t\trangeFactor = 2;\n\n\t\t\t}\n\n\t\t\t//\n\n\t\t\tconst drawRange = geometry.drawRange;\n\t\t\tconst position = geometry.attributes.position;\n\n\t\t\tlet drawStart = drawRange.start * rangeFactor;\n\t\t\tlet drawEnd = ( drawRange.start + drawRange.count ) * rangeFactor;\n\n\t\t\tif ( group !== null ) {\n\n\t\t\t\tdrawStart = Math.max( drawStart, group.start * rangeFactor );\n\t\t\t\tdrawEnd = Math.min( drawEnd, ( group.start + group.count ) * rangeFactor );\n\n\t\t\t}\n\n\t\t\tif ( index !== null ) {\n\n\t\t\t\tdrawStart = Math.max( drawStart, 0 );\n\t\t\t\tdrawEnd = Math.min( drawEnd, index.count );\n\n\t\t\t} else if ( position !== undefined && position !== null ) {\n\n\t\t\t\tdrawStart = Math.max( drawStart, 0 );\n\t\t\t\tdrawEnd = Math.min( drawEnd, position.count );\n\n\t\t\t}\n\n\t\t\tconst drawCount = drawEnd - drawStart;\n\n\t\t\tif ( drawCount < 0 || drawCount === Infinity ) return;\n\n\t\t\t//\n\n\t\t\tbindingStates.setup( object, material, program, geometry, index );\n\n\t\t\tlet attribute;\n\t\t\tlet renderer = bufferRenderer;\n\n\t\t\tif ( index !== null ) {\n\n\t\t\t\tattribute = attributes.get( index );\n\n\t\t\t\trenderer = indexedBufferRenderer;\n\t\t\t\trenderer.setIndex( attribute );\n\n\t\t\t}\n\n\t\t\t//\n\n\t\t\tif ( object.isMesh ) {\n\n\t\t\t\tif ( material.wireframe === true ) {\n\n\t\t\t\t\tstate.setLineWidth( material.wireframeLinewidth * getTargetPixelRatio() );\n\t\t\t\t\trenderer.setMode( _gl.LINES );\n\n\t\t\t\t} else {\n\n\t\t\t\t\trenderer.setMode( _gl.TRIANGLES );\n\n\t\t\t\t}\n\n\t\t\t} else if ( object.isLine ) {\n\n\t\t\t\tlet lineWidth = material.linewidth;\n\n\t\t\t\tif ( lineWidth === undefined ) lineWidth = 1; // Not using Line*Material\n\n\t\t\t\tstate.setLineWidth( lineWidth * getTargetPixelRatio() );\n\n\t\t\t\tif ( object.isLineSegments ) {\n\n\t\t\t\t\trenderer.setMode( _gl.LINES );\n\n\t\t\t\t} else if ( object.isLineLoop ) {\n\n\t\t\t\t\trenderer.setMode( _gl.LINE_LOOP );\n\n\t\t\t\t} else {\n\n\t\t\t\t\trenderer.setMode( _gl.LINE_STRIP );\n\n\t\t\t\t}\n\n\t\t\t} else if ( object.isPoints ) {\n\n\t\t\t\trenderer.setMode( _gl.POINTS );\n\n\t\t\t} else if ( object.isSprite ) {\n\n\t\t\t\trenderer.setMode( _gl.TRIANGLES );\n\n\t\t\t}\n\n\t\t\tif ( object.isBatchedMesh ) {\n\n\t\t\t\tif ( object._multiDrawInstances !== null ) {\n\n\t\t\t\t\trenderer.renderMultiDrawInstances( object._multiDrawStarts, object._multiDrawCounts, object._multiDrawCount, object._multiDrawInstances );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( ! extensions.get( 'WEBGL_multi_draw' ) ) {\n\n\t\t\t\t\t\tconst starts = object._multiDrawStarts;\n\t\t\t\t\t\tconst counts = object._multiDrawCounts;\n\t\t\t\t\t\tconst drawCount = object._multiDrawCount;\n\t\t\t\t\t\tconst bytesPerElement = index ? attributes.get( index ).bytesPerElement : 1;\n\t\t\t\t\t\tconst uniforms = properties.get( material ).currentProgram.getUniforms();\n\t\t\t\t\t\tfor ( let i = 0; i < drawCount; i ++ ) {\n\n\t\t\t\t\t\t\tuniforms.setValue( _gl, '_gl_DrawID', i );\n\t\t\t\t\t\t\trenderer.render( starts[ i ] / bytesPerElement, counts[ i ] );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\trenderer.renderMultiDraw( object._multiDrawStarts, object._multiDrawCounts, object._multiDrawCount );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else if ( object.isInstancedMesh ) {\n\n\t\t\t\trenderer.renderInstances( drawStart, drawCount, object.count );\n\n\t\t\t} else if ( geometry.isInstancedBufferGeometry ) {\n\n\t\t\t\tconst maxInstanceCount = geometry._maxInstanceCount !== undefined ? geometry._maxInstanceCount : Infinity;\n\t\t\t\tconst instanceCount = Math.min( geometry.instanceCount, maxInstanceCount );\n\n\t\t\t\trenderer.renderInstances( drawStart, drawCount, instanceCount );\n\n\t\t\t} else {\n\n\t\t\t\trenderer.render( drawStart, drawCount );\n\n\t\t\t}\n\n\t\t};\n\n\t\t// Compile\n\n\t\tfunction prepareMaterial( material, scene, object ) {\n\n\t\t\tif ( material.transparent === true && material.side === DoubleSide && material.forceSinglePass === false ) {\n\n\t\t\t\tmaterial.side = BackSide;\n\t\t\t\tmaterial.needsUpdate = true;\n\t\t\t\tgetProgram( material, scene, object );\n\n\t\t\t\tmaterial.side = FrontSide;\n\t\t\t\tmaterial.needsUpdate = true;\n\t\t\t\tgetProgram( material, scene, object );\n\n\t\t\t\tmaterial.side = DoubleSide;\n\n\t\t\t} else {\n\n\t\t\t\tgetProgram( material, scene, object );\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis.compile = function ( scene, camera, targetScene = null ) {\n\n\t\t\tif ( targetScene === null ) targetScene = scene;\n\n\t\t\tcurrentRenderState = renderStates.get( targetScene );\n\t\t\tcurrentRenderState.init( camera );\n\n\t\t\trenderStateStack.push( currentRenderState );\n\n\t\t\t// gather lights from both the target scene and the new object that will be added to the scene.\n\n\t\t\ttargetScene.traverseVisible( function ( object ) {\n\n\t\t\t\tif ( object.isLight && object.layers.test( camera.layers ) ) {\n\n\t\t\t\t\tcurrentRenderState.pushLight( object );\n\n\t\t\t\t\tif ( object.castShadow ) {\n\n\t\t\t\t\t\tcurrentRenderState.pushShadow( object );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t\tif ( scene !== targetScene ) {\n\n\t\t\t\tscene.traverseVisible( function ( object ) {\n\n\t\t\t\t\tif ( object.isLight && object.layers.test( camera.layers ) ) {\n\n\t\t\t\t\t\tcurrentRenderState.pushLight( object );\n\n\t\t\t\t\t\tif ( object.castShadow ) {\n\n\t\t\t\t\t\t\tcurrentRenderState.pushShadow( object );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t\tcurrentRenderState.setupLights();\n\n\t\t\t// Only initialize materials in the new scene, not the targetScene.\n\n\t\t\tconst materials = new Set();\n\n\t\t\tscene.traverse( function ( object ) {\n\n\t\t\t\tif ( ! ( object.isMesh || object.isPoints || object.isLine || object.isSprite ) ) {\n\n\t\t\t\t\treturn;\n\n\t\t\t\t}\n\n\t\t\t\tconst material = object.material;\n\n\t\t\t\tif ( material ) {\n\n\t\t\t\t\tif ( Array.isArray( material ) ) {\n\n\t\t\t\t\t\tfor ( let i = 0; i < material.length; i ++ ) {\n\n\t\t\t\t\t\t\tconst material2 = material[ i ];\n\n\t\t\t\t\t\t\tprepareMaterial( material2, targetScene, object );\n\t\t\t\t\t\t\tmaterials.add( material2 );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tprepareMaterial( material, targetScene, object );\n\t\t\t\t\t\tmaterials.add( material );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t\trenderStateStack.pop();\n\t\t\tcurrentRenderState = null;\n\n\t\t\treturn materials;\n\n\t\t};\n\n\t\t// compileAsync\n\n\t\tthis.compileAsync = function ( scene, camera, targetScene = null ) {\n\n\t\t\tconst materials = this.compile( scene, camera, targetScene );\n\n\t\t\t// Wait for all the materials in the new object to indicate that they're\n\t\t\t// ready to be used before resolving the promise.\n\n\t\t\treturn new Promise( ( resolve ) => {\n\n\t\t\t\tfunction checkMaterialsReady() {\n\n\t\t\t\t\tmaterials.forEach( function ( material ) {\n\n\t\t\t\t\t\tconst materialProperties = properties.get( material );\n\t\t\t\t\t\tconst program = materialProperties.currentProgram;\n\n\t\t\t\t\t\tif ( program.isReady() ) {\n\n\t\t\t\t\t\t\t// remove any programs that report they're ready to use from the list\n\t\t\t\t\t\t\tmaterials.delete( material );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} );\n\n\t\t\t\t\t// once the list of compiling materials is empty, call the callback\n\n\t\t\t\t\tif ( materials.size === 0 ) {\n\n\t\t\t\t\t\tresolve( scene );\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// if some materials are still not ready, wait a bit and check again\n\n\t\t\t\t\tsetTimeout( checkMaterialsReady, 10 );\n\n\t\t\t\t}\n\n\t\t\t\tif ( extensions.get( 'KHR_parallel_shader_compile' ) !== null ) {\n\n\t\t\t\t\t// If we can check the compilation status of the materials without\n\t\t\t\t\t// blocking then do so right away.\n\n\t\t\t\t\tcheckMaterialsReady();\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// Otherwise start by waiting a bit to give the materials we just\n\t\t\t\t\t// initialized a chance to finish.\n\n\t\t\t\t\tsetTimeout( checkMaterialsReady, 10 );\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t};\n\n\t\t// Animation Loop\n\n\t\tlet onAnimationFrameCallback = null;\n\n\t\tfunction onAnimationFrame( time ) {\n\n\t\t\tif ( onAnimationFrameCallback ) onAnimationFrameCallback( time );\n\n\t\t}\n\n\t\tfunction onXRSessionStart() {\n\n\t\t\tanimation.stop();\n\n\t\t}\n\n\t\tfunction onXRSessionEnd() {\n\n\t\t\tanimation.start();\n\n\t\t}\n\n\t\tconst animation = new WebGLAnimation();\n\t\tanimation.setAnimationLoop( onAnimationFrame );\n\n\t\tif ( typeof self !== 'undefined' ) animation.setContext( self );\n\n\t\tthis.setAnimationLoop = function ( callback ) {\n\n\t\t\tonAnimationFrameCallback = callback;\n\t\t\txr.setAnimationLoop( callback );\n\n\t\t\t( callback === null ) ? animation.stop() : animation.start();\n\n\t\t};\n\n\t\txr.addEventListener( 'sessionstart', onXRSessionStart );\n\t\txr.addEventListener( 'sessionend', onXRSessionEnd );\n\n\t\t// Rendering\n\n\t\tthis.render = function ( scene, camera ) {\n\n\t\t\tif ( camera !== undefined && camera.isCamera !== true ) {\n\n\t\t\t\tconsole.error( 'THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.' );\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\tif ( _isContextLost === true ) return;\n\n\t\t\t// update scene graph\n\n\t\t\tif ( scene.matrixWorldAutoUpdate === true ) scene.updateMatrixWorld();\n\n\t\t\t// update camera matrices and frustum\n\n\t\t\tif ( camera.parent === null && camera.matrixWorldAutoUpdate === true ) camera.updateMatrixWorld();\n\n\t\t\tif ( xr.enabled === true && xr.isPresenting === true ) {\n\n\t\t\t\tif ( xr.cameraAutoUpdate === true ) xr.updateCamera( camera );\n\n\t\t\t\tcamera = xr.getCamera(); // use XR camera for rendering\n\n\t\t\t}\n\n\t\t\t//\n\t\t\tif ( scene.isScene === true ) scene.onBeforeRender( _this, scene, camera, _currentRenderTarget );\n\n\t\t\tcurrentRenderState = renderStates.get( scene, renderStateStack.length );\n\t\t\tcurrentRenderState.init( camera );\n\n\t\t\trenderStateStack.push( currentRenderState );\n\n\t\t\t_projScreenMatrix.multiplyMatrices( camera.projectionMatrix, camera.matrixWorldInverse );\n\t\t\t_frustum.setFromProjectionMatrix( _projScreenMatrix );\n\n\t\t\t_localClippingEnabled = this.localClippingEnabled;\n\t\t\t_clippingEnabled = clipping.init( this.clippingPlanes, _localClippingEnabled );\n\n\t\t\tcurrentRenderList = renderLists.get( scene, renderListStack.length );\n\t\t\tcurrentRenderList.init();\n\n\t\t\trenderListStack.push( currentRenderList );\n\n\t\t\tif ( xr.enabled === true && xr.isPresenting === true ) {\n\n\t\t\t\tconst depthSensingMesh = _this.xr.getDepthSensingMesh();\n\n\t\t\t\tif ( depthSensingMesh !== null ) {\n\n\t\t\t\t\tprojectObject( depthSensingMesh, camera, - Infinity, _this.sortObjects );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tprojectObject( scene, camera, 0, _this.sortObjects );\n\n\t\t\tcurrentRenderList.finish();\n\n\t\t\tif ( _this.sortObjects === true ) {\n\n\t\t\t\tcurrentRenderList.sort( _opaqueSort, _transparentSort );\n\n\t\t\t}\n\n\t\t\t_renderBackground = xr.enabled === false || xr.isPresenting === false || xr.hasDepthSensing() === false;\n\t\t\tif ( _renderBackground ) {\n\n\t\t\t\tbackground.addToRenderList( currentRenderList, scene );\n\n\t\t\t}\n\n\t\t\t//\n\n\t\t\tthis.info.render.frame ++;\n\n\t\t\tif ( _clippingEnabled === true ) clipping.beginShadows();\n\n\t\t\tconst shadowsArray = currentRenderState.state.shadowsArray;\n\n\t\t\tshadowMap.render( shadowsArray, scene, camera );\n\n\t\t\tif ( _clippingEnabled === true ) clipping.endShadows();\n\n\t\t\t//\n\n\t\t\tif ( this.info.autoReset === true ) this.info.reset();\n\n\t\t\t// render scene\n\n\t\t\tconst opaqueObjects = currentRenderList.opaque;\n\t\t\tconst transmissiveObjects = currentRenderList.transmissive;\n\n\t\t\tcurrentRenderState.setupLights();\n\n\t\t\tif ( camera.isArrayCamera ) {\n\n\t\t\t\tconst cameras = camera.cameras;\n\n\t\t\t\tif ( transmissiveObjects.length > 0 ) {\n\n\t\t\t\t\tfor ( let i = 0, l = cameras.length; i < l; i ++ ) {\n\n\t\t\t\t\t\tconst camera2 = cameras[ i ];\n\n\t\t\t\t\t\trenderTransmissionPass( opaqueObjects, transmissiveObjects, scene, camera2 );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tif ( _renderBackground ) background.render( scene );\n\n\t\t\t\tfor ( let i = 0, l = cameras.length; i < l; i ++ ) {\n\n\t\t\t\t\tconst camera2 = cameras[ i ];\n\n\t\t\t\t\trenderScene( currentRenderList, scene, camera2, camera2.viewport );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tif ( transmissiveObjects.length > 0 ) renderTransmissionPass( opaqueObjects, transmissiveObjects, scene, camera );\n\n\t\t\t\tif ( _renderBackground ) background.render( scene );\n\n\t\t\t\trenderScene( currentRenderList, scene, camera );\n\n\t\t\t}\n\n\t\t\t//\n\n\t\t\tif ( _currentRenderTarget !== null ) {\n\n\t\t\t\t// resolve multisample renderbuffers to a single-sample texture if necessary\n\n\t\t\t\ttextures.updateMultisampleRenderTarget( _currentRenderTarget );\n\n\t\t\t\t// Generate mipmap if we're using any kind of mipmap filtering\n\n\t\t\t\ttextures.updateRenderTargetMipmap( _currentRenderTarget );\n\n\t\t\t}\n\n\t\t\t//\n\n\t\t\tif ( scene.isScene === true ) scene.onAfterRender( _this, scene, camera );\n\n\t\t\t// _gl.finish();\n\n\t\t\tbindingStates.resetDefaultState();\n\t\t\t_currentMaterialId = - 1;\n\t\t\t_currentCamera = null;\n\n\t\t\trenderStateStack.pop();\n\n\t\t\tif ( renderStateStack.length > 0 ) {\n\n\t\t\t\tcurrentRenderState = renderStateStack[ renderStateStack.length - 1 ];\n\n\t\t\t\tif ( _clippingEnabled === true ) clipping.setGlobalState( _this.clippingPlanes, currentRenderState.state.camera );\n\n\t\t\t} else {\n\n\t\t\t\tcurrentRenderState = null;\n\n\t\t\t}\n\n\t\t\trenderListStack.pop();\n\n\t\t\tif ( renderListStack.length > 0 ) {\n\n\t\t\t\tcurrentRenderList = renderListStack[ renderListStack.length - 1 ];\n\n\t\t\t} else {\n\n\t\t\t\tcurrentRenderList = null;\n\n\t\t\t}\n\n\t\t};\n\n\t\tfunction projectObject( object, camera, groupOrder, sortObjects ) {\n\n\t\t\tif ( object.visible === false ) return;\n\n\t\t\tconst visible = object.layers.test( camera.layers );\n\n\t\t\tif ( visible ) {\n\n\t\t\t\tif ( object.isGroup ) {\n\n\t\t\t\t\tgroupOrder = object.renderOrder;\n\n\t\t\t\t} else if ( object.isLOD ) {\n\n\t\t\t\t\tif ( object.autoUpdate === true ) object.update( camera );\n\n\t\t\t\t} else if ( object.isLight ) {\n\n\t\t\t\t\tcurrentRenderState.pushLight( object );\n\n\t\t\t\t\tif ( object.castShadow ) {\n\n\t\t\t\t\t\tcurrentRenderState.pushShadow( object );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else if ( object.isSprite ) {\n\n\t\t\t\t\tif ( ! object.frustumCulled || _frustum.intersectsSprite( object ) ) {\n\n\t\t\t\t\t\tif ( sortObjects ) {\n\n\t\t\t\t\t\t\t_vector4.setFromMatrixPosition( object.matrixWorld )\n\t\t\t\t\t\t\t\t.applyMatrix4( _projScreenMatrix );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst geometry = objects.update( object );\n\t\t\t\t\t\tconst material = object.material;\n\n\t\t\t\t\t\tif ( material.visible ) {\n\n\t\t\t\t\t\t\tcurrentRenderList.push( object, geometry, material, groupOrder, _vector4.z, null );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} else if ( object.isMesh || object.isLine || object.isPoints ) {\n\n\t\t\t\t\tif ( ! object.frustumCulled || _frustum.intersectsObject( object ) ) {\n\n\t\t\t\t\t\tconst geometry = objects.update( object );\n\t\t\t\t\t\tconst material = object.material;\n\n\t\t\t\t\t\tif ( sortObjects ) {\n\n\t\t\t\t\t\t\tif ( object.boundingSphere !== undefined ) {\n\n\t\t\t\t\t\t\t\tif ( object.boundingSphere === null ) object.computeBoundingSphere();\n\t\t\t\t\t\t\t\t_vector4.copy( object.boundingSphere.center );\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tif ( geometry.boundingSphere === null ) geometry.computeBoundingSphere();\n\t\t\t\t\t\t\t\t_vector4.copy( geometry.boundingSphere.center );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t_vector4\n\t\t\t\t\t\t\t\t.applyMatrix4( object.matrixWorld )\n\t\t\t\t\t\t\t\t.applyMatrix4( _projScreenMatrix );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( Array.isArray( material ) ) {\n\n\t\t\t\t\t\t\tconst groups = geometry.groups;\n\n\t\t\t\t\t\t\tfor ( let i = 0, l = groups.length; i < l; i ++ ) {\n\n\t\t\t\t\t\t\t\tconst group = groups[ i ];\n\t\t\t\t\t\t\t\tconst groupMaterial = material[ group.materialIndex ];\n\n\t\t\t\t\t\t\t\tif ( groupMaterial && groupMaterial.visible ) {\n\n\t\t\t\t\t\t\t\t\tcurrentRenderList.push( object, geometry, groupMaterial, groupOrder, _vector4.z, group );\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else if ( material.visible ) {\n\n\t\t\t\t\t\t\tcurrentRenderList.push( object, geometry, material, groupOrder, _vector4.z, null );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst children = object.children;\n\n\t\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\t\tprojectObject( children[ i ], camera, groupOrder, sortObjects );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction renderScene( currentRenderList, scene, camera, viewport ) {\n\n\t\t\tconst opaqueObjects = currentRenderList.opaque;\n\t\t\tconst transmissiveObjects = currentRenderList.transmissive;\n\t\t\tconst transparentObjects = currentRenderList.transparent;\n\n\t\t\tcurrentRenderState.setupLightsView( camera );\n\n\t\t\tif ( _clippingEnabled === true ) clipping.setGlobalState( _this.clippingPlanes, camera );\n\n\t\t\tif ( viewport ) state.viewport( _currentViewport.copy( viewport ) );\n\n\t\t\tif ( opaqueObjects.length > 0 ) renderObjects( opaqueObjects, scene, camera );\n\t\t\tif ( transmissiveObjects.length > 0 ) renderObjects( transmissiveObjects, scene, camera );\n\t\t\tif ( transparentObjects.length > 0 ) renderObjects( transparentObjects, scene, camera );\n\n\t\t\t// Ensure depth buffer writing is enabled so it can be cleared on next render\n\n\t\t\tstate.buffers.depth.setTest( true );\n\t\t\tstate.buffers.depth.setMask( true );\n\t\t\tstate.buffers.color.setMask( true );\n\n\t\t\tstate.setPolygonOffset( false );\n\n\t\t}\n\n\t\tfunction renderTransmissionPass( opaqueObjects, transmissiveObjects, scene, camera ) {\n\n\t\t\tconst overrideMaterial = scene.isScene === true ? scene.overrideMaterial : null;\n\n\t\t\tif ( overrideMaterial !== null ) {\n\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\tif ( currentRenderState.state.transmissionRenderTarget[ camera.id ] === undefined ) {\n\n\t\t\t\tcurrentRenderState.state.transmissionRenderTarget[ camera.id ] = new WebGLRenderTarget( 1, 1, {\n\t\t\t\t\tgenerateMipmaps: true,\n\t\t\t\t\ttype: ( extensions.has( 'EXT_color_buffer_half_float' ) || extensions.has( 'EXT_color_buffer_float' ) ) ? HalfFloatType : UnsignedByteType,\n\t\t\t\t\tminFilter: LinearMipmapLinearFilter,\n\t\t\t\t\tsamples: 4,\n\t\t\t\t\tstencilBuffer: stencil,\n\t\t\t\t\tresolveDepthBuffer: false,\n\t\t\t\t\tresolveStencilBuffer: false,\n\t\t\t\t\tcolorSpace: ColorManagement.workingColorSpace,\n\t\t\t\t} );\n\n\t\t\t\t// debug\n\n\t\t\t\t/*\n\t\t\t\tconst geometry = new PlaneGeometry();\n\t\t\t\tconst material = new MeshBasicMaterial( { map: _transmissionRenderTarget.texture } );\n\n\t\t\t\tconst mesh = new Mesh( geometry, material );\n\t\t\t\tscene.add( mesh );\n\t\t\t\t*/\n\n\t\t\t}\n\n\t\t\tconst transmissionRenderTarget = currentRenderState.state.transmissionRenderTarget[ camera.id ];\n\n\t\t\tconst activeViewport = camera.viewport || _currentViewport;\n\t\t\ttransmissionRenderTarget.setSize( activeViewport.z, activeViewport.w );\n\n\t\t\t//\n\n\t\t\tconst currentRenderTarget = _this.getRenderTarget();\n\t\t\t_this.setRenderTarget( transmissionRenderTarget );\n\n\t\t\t_this.getClearColor( _currentClearColor );\n\t\t\t_currentClearAlpha = _this.getClearAlpha();\n\t\t\tif ( _currentClearAlpha < 1 ) _this.setClearColor( 0xffffff, 0.5 );\n\n\t\t\t_this.clear();\n\n\t\t\tif ( _renderBackground ) background.render( scene );\n\n\t\t\t// Turn off the features which can affect the frag color for opaque objects pass.\n\t\t\t// Otherwise they are applied twice in opaque objects pass and transmission objects pass.\n\t\t\tconst currentToneMapping = _this.toneMapping;\n\t\t\t_this.toneMapping = NoToneMapping;\n\n\t\t\t// Remove viewport from camera to avoid nested render calls resetting viewport to it (e.g Reflector).\n\t\t\t// Transmission render pass requires viewport to match the transmissionRenderTarget.\n\t\t\tconst currentCameraViewport = camera.viewport;\n\t\t\tif ( camera.viewport !== undefined ) camera.viewport = undefined;\n\n\t\t\tcurrentRenderState.setupLightsView( camera );\n\n\t\t\tif ( _clippingEnabled === true ) clipping.setGlobalState( _this.clippingPlanes, camera );\n\n\t\t\trenderObjects( opaqueObjects, scene, camera );\n\n\t\t\ttextures.updateMultisampleRenderTarget( transmissionRenderTarget );\n\t\t\ttextures.updateRenderTargetMipmap( transmissionRenderTarget );\n\n\t\t\tif ( extensions.has( 'WEBGL_multisampled_render_to_texture' ) === false ) { // see #28131\n\n\t\t\t\tlet renderTargetNeedsUpdate = false;\n\n\t\t\t\tfor ( let i = 0, l = transmissiveObjects.length; i < l; i ++ ) {\n\n\t\t\t\t\tconst renderItem = transmissiveObjects[ i ];\n\n\t\t\t\t\tconst object = renderItem.object;\n\t\t\t\t\tconst geometry = renderItem.geometry;\n\t\t\t\t\tconst material = renderItem.material;\n\t\t\t\t\tconst group = renderItem.group;\n\n\t\t\t\t\tif ( material.side === DoubleSide && object.layers.test( camera.layers ) ) {\n\n\t\t\t\t\t\tconst currentSide = material.side;\n\n\t\t\t\t\t\tmaterial.side = BackSide;\n\t\t\t\t\t\tmaterial.needsUpdate = true;\n\n\t\t\t\t\t\trenderObject( object, scene, camera, geometry, material, group );\n\n\t\t\t\t\t\tmaterial.side = currentSide;\n\t\t\t\t\t\tmaterial.needsUpdate = true;\n\n\t\t\t\t\t\trenderTargetNeedsUpdate = true;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tif ( renderTargetNeedsUpdate === true ) {\n\n\t\t\t\t\ttextures.updateMultisampleRenderTarget( transmissionRenderTarget );\n\t\t\t\t\ttextures.updateRenderTargetMipmap( transmissionRenderTarget );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t_this.setRenderTarget( currentRenderTarget );\n\n\t\t\t_this.setClearColor( _currentClearColor, _currentClearAlpha );\n\n\t\t\tif ( currentCameraViewport !== undefined ) camera.viewport = currentCameraViewport;\n\n\t\t\t_this.toneMapping = currentToneMapping;\n\n\t\t}\n\n\t\tfunction renderObjects( renderList, scene, camera ) {\n\n\t\t\tconst overrideMaterial = scene.isScene === true ? scene.overrideMaterial : null;\n\n\t\t\tfor ( let i = 0, l = renderList.length; i < l; i ++ ) {\n\n\t\t\t\tconst renderItem = renderList[ i ];\n\n\t\t\t\tconst object = renderItem.object;\n\t\t\t\tconst geometry = renderItem.geometry;\n\t\t\t\tconst material = overrideMaterial === null ? renderItem.material : overrideMaterial;\n\t\t\t\tconst group = renderItem.group;\n\n\t\t\t\tif ( object.layers.test( camera.layers ) ) {\n\n\t\t\t\t\trenderObject( object, scene, camera, geometry, material, group );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction renderObject( object, scene, camera, geometry, material, group ) {\n\n\t\t\tobject.onBeforeRender( _this, scene, camera, geometry, material, group );\n\n\t\t\tobject.modelViewMatrix.multiplyMatrices( camera.matrixWorldInverse, object.matrixWorld );\n\t\t\tobject.normalMatrix.getNormalMatrix( object.modelViewMatrix );\n\n\t\t\tmaterial.onBeforeRender( _this, scene, camera, geometry, object, group );\n\n\t\t\tif ( material.transparent === true && material.side === DoubleSide && material.forceSinglePass === false ) {\n\n\t\t\t\tmaterial.side = BackSide;\n\t\t\t\tmaterial.needsUpdate = true;\n\t\t\t\t_this.renderBufferDirect( camera, scene, geometry, material, object, group );\n\n\t\t\t\tmaterial.side = FrontSide;\n\t\t\t\tmaterial.needsUpdate = true;\n\t\t\t\t_this.renderBufferDirect( camera, scene, geometry, material, object, group );\n\n\t\t\t\tmaterial.side = DoubleSide;\n\n\t\t\t} else {\n\n\t\t\t\t_this.renderBufferDirect( camera, scene, geometry, material, object, group );\n\n\t\t\t}\n\n\t\t\tobject.onAfterRender( _this, scene, camera, geometry, material, group );\n\n\t\t}\n\n\t\tfunction getProgram( material, scene, object ) {\n\n\t\t\tif ( scene.isScene !== true ) scene = _emptyScene; // scene could be a Mesh, Line, Points, ...\n\n\t\t\tconst materialProperties = properties.get( material );\n\n\t\t\tconst lights = currentRenderState.state.lights;\n\t\t\tconst shadowsArray = currentRenderState.state.shadowsArray;\n\n\t\t\tconst lightsStateVersion = lights.state.version;\n\n\t\t\tconst parameters = programCache.getParameters( material, lights.state, shadowsArray, scene, object );\n\t\t\tconst programCacheKey = programCache.getProgramCacheKey( parameters );\n\n\t\t\tlet programs = materialProperties.programs;\n\n\t\t\t// always update environment and fog - changing these trigger an getProgram call, but it's possible that the program doesn't change\n\n\t\t\tmaterialProperties.environment = material.isMeshStandardMaterial ? scene.environment : null;\n\t\t\tmaterialProperties.fog = scene.fog;\n\t\t\tmaterialProperties.envMap = ( material.isMeshStandardMaterial ? cubeuvmaps : cubemaps ).get( material.envMap || materialProperties.environment );\n\t\t\tmaterialProperties.envMapRotation = ( materialProperties.environment !== null && material.envMap === null ) ? scene.environmentRotation : material.envMapRotation;\n\n\t\t\tif ( programs === undefined ) {\n\n\t\t\t\t// new material\n\n\t\t\t\tmaterial.addEventListener( 'dispose', onMaterialDispose );\n\n\t\t\t\tprograms = new Map();\n\t\t\t\tmaterialProperties.programs = programs;\n\n\t\t\t}\n\n\t\t\tlet program = programs.get( programCacheKey );\n\n\t\t\tif ( program !== undefined ) {\n\n\t\t\t\t// early out if program and light state is identical\n\n\t\t\t\tif ( materialProperties.currentProgram === program && materialProperties.lightsStateVersion === lightsStateVersion ) {\n\n\t\t\t\t\tupdateCommonMaterialProperties( material, parameters );\n\n\t\t\t\t\treturn program;\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tparameters.uniforms = programCache.getUniforms( material );\n\n\t\t\t\tmaterial.onBeforeCompile( parameters, _this );\n\n\t\t\t\tprogram = programCache.acquireProgram( parameters, programCacheKey );\n\t\t\t\tprograms.set( programCacheKey, program );\n\n\t\t\t\tmaterialProperties.uniforms = parameters.uniforms;\n\n\t\t\t}\n\n\t\t\tconst uniforms = materialProperties.uniforms;\n\n\t\t\tif ( ( ! material.isShaderMaterial && ! material.isRawShaderMaterial ) || material.clipping === true ) {\n\n\t\t\t\tuniforms.clippingPlanes = clipping.uniform;\n\n\t\t\t}\n\n\t\t\tupdateCommonMaterialProperties( material, parameters );\n\n\t\t\t// store the light setup it was created for\n\n\t\t\tmaterialProperties.needsLights = materialNeedsLights( material );\n\t\t\tmaterialProperties.lightsStateVersion = lightsStateVersion;\n\n\t\t\tif ( materialProperties.needsLights ) {\n\n\t\t\t\t// wire up the material to this renderer's lighting state\n\n\t\t\t\tuniforms.ambientLightColor.value = lights.state.ambient;\n\t\t\t\tuniforms.lightProbe.value = lights.state.probe;\n\t\t\t\tuniforms.directionalLights.value = lights.state.directional;\n\t\t\t\tuniforms.directionalLightShadows.value = lights.state.directionalShadow;\n\t\t\t\tuniforms.spotLights.value = lights.state.spot;\n\t\t\t\tuniforms.spotLightShadows.value = lights.state.spotShadow;\n\t\t\t\tuniforms.rectAreaLights.value = lights.state.rectArea;\n\t\t\t\tuniforms.ltc_1.value = lights.state.rectAreaLTC1;\n\t\t\t\tuniforms.ltc_2.value = lights.state.rectAreaLTC2;\n\t\t\t\tuniforms.pointLights.value = lights.state.point;\n\t\t\t\tuniforms.pointLightShadows.value = lights.state.pointShadow;\n\t\t\t\tuniforms.hemisphereLights.value = lights.state.hemi;\n\n\t\t\t\tuniforms.directionalShadowMap.value = lights.state.directionalShadowMap;\n\t\t\t\tuniforms.directionalShadowMatrix.value = lights.state.directionalShadowMatrix;\n\t\t\t\tuniforms.spotShadowMap.value = lights.state.spotShadowMap;\n\t\t\t\tuniforms.spotLightMatrix.value = lights.state.spotLightMatrix;\n\t\t\t\tuniforms.spotLightMap.value = lights.state.spotLightMap;\n\t\t\t\tuniforms.pointShadowMap.value = lights.state.pointShadowMap;\n\t\t\t\tuniforms.pointShadowMatrix.value = lights.state.pointShadowMatrix;\n\t\t\t\t// TODO (abelnation): add area lights shadow info to uniforms\n\n\t\t\t}\n\n\t\t\tmaterialProperties.currentProgram = program;\n\t\t\tmaterialProperties.uniformsList = null;\n\n\t\t\treturn program;\n\n\t\t}\n\n\t\tfunction getUniformList( materialProperties ) {\n\n\t\t\tif ( materialProperties.uniformsList === null ) {\n\n\t\t\t\tconst progUniforms = materialProperties.currentProgram.getUniforms();\n\t\t\t\tmaterialProperties.uniformsList = WebGLUniforms.seqWithValue( progUniforms.seq, materialProperties.uniforms );\n\n\t\t\t}\n\n\t\t\treturn materialProperties.uniformsList;\n\n\t\t}\n\n\t\tfunction updateCommonMaterialProperties( material, parameters ) {\n\n\t\t\tconst materialProperties = properties.get( material );\n\n\t\t\tmaterialProperties.outputColorSpace = parameters.outputColorSpace;\n\t\t\tmaterialProperties.batching = parameters.batching;\n\t\t\tmaterialProperties.batchingColor = parameters.batchingColor;\n\t\t\tmaterialProperties.instancing = parameters.instancing;\n\t\t\tmaterialProperties.instancingColor = parameters.instancingColor;\n\t\t\tmaterialProperties.instancingMorph = parameters.instancingMorph;\n\t\t\tmaterialProperties.skinning = parameters.skinning;\n\t\t\tmaterialProperties.morphTargets = parameters.morphTargets;\n\t\t\tmaterialProperties.morphNormals = parameters.morphNormals;\n\t\t\tmaterialProperties.morphColors = parameters.morphColors;\n\t\t\tmaterialProperties.morphTargetsCount = parameters.morphTargetsCount;\n\t\t\tmaterialProperties.numClippingPlanes = parameters.numClippingPlanes;\n\t\t\tmaterialProperties.numIntersection = parameters.numClipIntersection;\n\t\t\tmaterialProperties.vertexAlphas = parameters.vertexAlphas;\n\t\t\tmaterialProperties.vertexTangents = parameters.vertexTangents;\n\t\t\tmaterialProperties.toneMapping = parameters.toneMapping;\n\n\t\t}\n\n\t\tfunction setProgram( camera, scene, geometry, material, object ) {\n\n\t\t\tif ( scene.isScene !== true ) scene = _emptyScene; // scene could be a Mesh, Line, Points, ...\n\n\t\t\ttextures.resetTextureUnits();\n\n\t\t\tconst fog = scene.fog;\n\t\t\tconst environment = material.isMeshStandardMaterial ? scene.environment : null;\n\t\t\tconst colorSpace = ( _currentRenderTarget === null ) ? _this.outputColorSpace : ( _currentRenderTarget.isXRRenderTarget === true ? _currentRenderTarget.texture.colorSpace : LinearSRGBColorSpace );\n\t\t\tconst envMap = ( material.isMeshStandardMaterial ? cubeuvmaps : cubemaps ).get( material.envMap || environment );\n\t\t\tconst vertexAlphas = material.vertexColors === true && !! geometry.attributes.color && geometry.attributes.color.itemSize === 4;\n\t\t\tconst vertexTangents = !! geometry.attributes.tangent && ( !! material.normalMap || material.anisotropy > 0 );\n\t\t\tconst morphTargets = !! geometry.morphAttributes.position;\n\t\t\tconst morphNormals = !! geometry.morphAttributes.normal;\n\t\t\tconst morphColors = !! geometry.morphAttributes.color;\n\n\t\t\tlet toneMapping = NoToneMapping;\n\n\t\t\tif ( material.toneMapped ) {\n\n\t\t\t\tif ( _currentRenderTarget === null || _currentRenderTarget.isXRRenderTarget === true ) {\n\n\t\t\t\t\ttoneMapping = _this.toneMapping;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst morphAttribute = geometry.morphAttributes.position || geometry.morphAttributes.normal || geometry.morphAttributes.color;\n\t\t\tconst morphTargetsCount = ( morphAttribute !== undefined ) ? morphAttribute.length : 0;\n\n\t\t\tconst materialProperties = properties.get( material );\n\t\t\tconst lights = currentRenderState.state.lights;\n\n\t\t\tif ( _clippingEnabled === true ) {\n\n\t\t\t\tif ( _localClippingEnabled === true || camera !== _currentCamera ) {\n\n\t\t\t\t\tconst useCache =\n\t\t\t\t\t\tcamera === _currentCamera &&\n\t\t\t\t\t\tmaterial.id === _currentMaterialId;\n\n\t\t\t\t\t// we might want to call this function with some ClippingGroup\n\t\t\t\t\t// object instead of the material, once it becomes feasible\n\t\t\t\t\t// (#8465, #8379)\n\t\t\t\t\tclipping.setState( material, camera, useCache );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t//\n\n\t\t\tlet needsProgramChange = false;\n\n\t\t\tif ( material.version === materialProperties.__version ) {\n\n\t\t\t\tif ( materialProperties.needsLights && ( materialProperties.lightsStateVersion !== lights.state.version ) ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( materialProperties.outputColorSpace !== colorSpace ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( object.isBatchedMesh && materialProperties.batching === false ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( ! object.isBatchedMesh && materialProperties.batching === true ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( object.isBatchedMesh && materialProperties.batchingColor === true && object.colorTexture === null ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( object.isBatchedMesh && materialProperties.batchingColor === false && object.colorTexture !== null ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( object.isInstancedMesh && materialProperties.instancing === false ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( ! object.isInstancedMesh && materialProperties.instancing === true ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( object.isSkinnedMesh && materialProperties.skinning === false ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( ! object.isSkinnedMesh && materialProperties.skinning === true ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( object.isInstancedMesh && materialProperties.instancingColor === true && object.instanceColor === null ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( object.isInstancedMesh && materialProperties.instancingColor === false && object.instanceColor !== null ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( object.isInstancedMesh && materialProperties.instancingMorph === true && object.morphTexture === null ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( object.isInstancedMesh && materialProperties.instancingMorph === false && object.morphTexture !== null ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( materialProperties.envMap !== envMap ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( material.fog === true && materialProperties.fog !== fog ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( materialProperties.numClippingPlanes !== undefined &&\n\t\t\t\t\t( materialProperties.numClippingPlanes !== clipping.numPlanes ||\n\t\t\t\t\tmaterialProperties.numIntersection !== clipping.numIntersection ) ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( materialProperties.vertexAlphas !== vertexAlphas ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( materialProperties.vertexTangents !== vertexTangents ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( materialProperties.morphTargets !== morphTargets ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( materialProperties.morphNormals !== morphNormals ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( materialProperties.morphColors !== morphColors ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( materialProperties.toneMapping !== toneMapping ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( materialProperties.morphTargetsCount !== morphTargetsCount ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tneedsProgramChange = true;\n\t\t\t\tmaterialProperties.__version = material.version;\n\n\t\t\t}\n\n\t\t\t//\n\n\t\t\tlet program = materialProperties.currentProgram;\n\n\t\t\tif ( needsProgramChange === true ) {\n\n\t\t\t\tprogram = getProgram( material, scene, object );\n\n\t\t\t}\n\n\t\t\tlet refreshProgram = false;\n\t\t\tlet refreshMaterial = false;\n\t\t\tlet refreshLights = false;\n\n\t\t\tconst p_uniforms = program.getUniforms(),\n\t\t\t\tm_uniforms = materialProperties.uniforms;\n\n\t\t\tif ( state.useProgram( program.program ) ) {\n\n\t\t\t\trefreshProgram = true;\n\t\t\t\trefreshMaterial = true;\n\t\t\t\trefreshLights = true;\n\n\t\t\t}\n\n\t\t\tif ( material.id !== _currentMaterialId ) {\n\n\t\t\t\t_currentMaterialId = material.id;\n\n\t\t\t\trefreshMaterial = true;\n\n\t\t\t}\n\n\t\t\tif ( refreshProgram || _currentCamera !== camera ) {\n\n\t\t\t\t// common camera uniforms\n\n\t\t\t\tconst reverseDepthBuffer = state.buffers.depth.getReversed();\n\n\t\t\t\tif ( reverseDepthBuffer ) {\n\n\t\t\t\t\t_currentProjectionMatrix.copy( camera.projectionMatrix );\n\n\t\t\t\t\ttoNormalizedProjectionMatrix( _currentProjectionMatrix );\n\t\t\t\t\ttoReversedProjectionMatrix( _currentProjectionMatrix );\n\n\t\t\t\t\tp_uniforms.setValue( _gl, 'projectionMatrix', _currentProjectionMatrix );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tp_uniforms.setValue( _gl, 'projectionMatrix', camera.projectionMatrix );\n\n\t\t\t\t}\n\n\t\t\t\tp_uniforms.setValue( _gl, 'viewMatrix', camera.matrixWorldInverse );\n\n\t\t\t\tconst uCamPos = p_uniforms.map.cameraPosition;\n\n\t\t\t\tif ( uCamPos !== undefined ) {\n\n\t\t\t\t\tuCamPos.setValue( _gl, _vector3.setFromMatrixPosition( camera.matrixWorld ) );\n\n\t\t\t\t}\n\n\t\t\t\tif ( capabilities.logarithmicDepthBuffer ) {\n\n\t\t\t\t\tp_uniforms.setValue( _gl, 'logDepthBufFC',\n\t\t\t\t\t\t2.0 / ( Math.log( camera.far + 1.0 ) / Math.LN2 ) );\n\n\t\t\t\t}\n\n\t\t\t\t// consider moving isOrthographic to UniformLib and WebGLMaterials, see https://github.com/mrdoob/three.js/pull/26467#issuecomment-1645185067\n\n\t\t\t\tif ( material.isMeshPhongMaterial ||\n\t\t\t\t\tmaterial.isMeshToonMaterial ||\n\t\t\t\t\tmaterial.isMeshLambertMaterial ||\n\t\t\t\t\tmaterial.isMeshBasicMaterial ||\n\t\t\t\t\tmaterial.isMeshStandardMaterial ||\n\t\t\t\t\tmaterial.isShaderMaterial ) {\n\n\t\t\t\t\tp_uniforms.setValue( _gl, 'isOrthographic', camera.isOrthographicCamera === true );\n\n\t\t\t\t}\n\n\t\t\t\tif ( _currentCamera !== camera ) {\n\n\t\t\t\t\t_currentCamera = camera;\n\n\t\t\t\t\t// lighting uniforms depend on the camera so enforce an update\n\t\t\t\t\t// now, in case this material supports lights - or later, when\n\t\t\t\t\t// the next material that does gets activated:\n\n\t\t\t\t\trefreshMaterial = true;\t\t// set to true on material change\n\t\t\t\t\trefreshLights = true;\t\t// remains set until update done\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// skinning and morph target uniforms must be set even if material didn't change\n\t\t\t// auto-setting of texture unit for bone and morph texture must go before other textures\n\t\t\t// otherwise textures used for skinning and morphing can take over texture units reserved for other material textures\n\n\t\t\tif ( object.isSkinnedMesh ) {\n\n\t\t\t\tp_uniforms.setOptional( _gl, object, 'bindMatrix' );\n\t\t\t\tp_uniforms.setOptional( _gl, object, 'bindMatrixInverse' );\n\n\t\t\t\tconst skeleton = object.skeleton;\n\n\t\t\t\tif ( skeleton ) {\n\n\t\t\t\t\tif ( skeleton.boneTexture === null ) skeleton.computeBoneTexture();\n\n\t\t\t\t\tp_uniforms.setValue( _gl, 'boneTexture', skeleton.boneTexture, textures );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( object.isBatchedMesh ) {\n\n\t\t\t\tp_uniforms.setOptional( _gl, object, 'batchingTexture' );\n\t\t\t\tp_uniforms.setValue( _gl, 'batchingTexture', object._matricesTexture, textures );\n\n\t\t\t\tp_uniforms.setOptional( _gl, object, 'batchingIdTexture' );\n\t\t\t\tp_uniforms.setValue( _gl, 'batchingIdTexture', object._indirectTexture, textures );\n\n\t\t\t\tp_uniforms.setOptional( _gl, object, 'batchingColorTexture' );\n\t\t\t\tif ( object._colorsTexture !== null ) {\n\n\t\t\t\t\tp_uniforms.setValue( _gl, 'batchingColorTexture', object._colorsTexture, textures );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst morphAttributes = geometry.morphAttributes;\n\n\t\t\tif ( morphAttributes.position !== undefined || morphAttributes.normal !== undefined || ( morphAttributes.color !== undefined ) ) {\n\n\t\t\t\tmorphtargets.update( object, geometry, program );\n\n\t\t\t}\n\n\t\t\tif ( refreshMaterial || materialProperties.receiveShadow !== object.receiveShadow ) {\n\n\t\t\t\tmaterialProperties.receiveShadow = object.receiveShadow;\n\t\t\t\tp_uniforms.setValue( _gl, 'receiveShadow', object.receiveShadow );\n\n\t\t\t}\n\n\t\t\t// https://github.com/mrdoob/three.js/pull/24467#issuecomment-1209031512\n\n\t\t\tif ( material.isMeshGouraudMaterial && material.envMap !== null ) {\n\n\t\t\t\tm_uniforms.envMap.value = envMap;\n\n\t\t\t\tm_uniforms.flipEnvMap.value = ( envMap.isCubeTexture && envMap.isRenderTargetTexture === false ) ? - 1 : 1;\n\n\t\t\t}\n\n\t\t\tif ( material.isMeshStandardMaterial && material.envMap === null && scene.environment !== null ) {\n\n\t\t\t\tm_uniforms.envMapIntensity.value = scene.environmentIntensity;\n\n\t\t\t}\n\n\t\t\tif ( refreshMaterial ) {\n\n\t\t\t\tp_uniforms.setValue( _gl, 'toneMappingExposure', _this.toneMappingExposure );\n\n\t\t\t\tif ( materialProperties.needsLights ) {\n\n\t\t\t\t\t// the current material requires lighting info\n\n\t\t\t\t\t// note: all lighting uniforms are always set correctly\n\t\t\t\t\t// they simply reference the renderer's state for their\n\t\t\t\t\t// values\n\t\t\t\t\t//\n\t\t\t\t\t// use the current material's .needsUpdate flags to set\n\t\t\t\t\t// the GL state when required\n\n\t\t\t\t\tmarkUniformsLightsNeedsUpdate( m_uniforms, refreshLights );\n\n\t\t\t\t}\n\n\t\t\t\t// refresh uniforms common to several materials\n\n\t\t\t\tif ( fog && material.fog === true ) {\n\n\t\t\t\t\tmaterials.refreshFogUniforms( m_uniforms, fog );\n\n\t\t\t\t}\n\n\t\t\t\tmaterials.refreshMaterialUniforms( m_uniforms, material, _pixelRatio, _height, currentRenderState.state.transmissionRenderTarget[ camera.id ] );\n\n\t\t\t\tWebGLUniforms.upload( _gl, getUniformList( materialProperties ), m_uniforms, textures );\n\n\t\t\t}\n\n\t\t\tif ( material.isShaderMaterial && material.uniformsNeedUpdate === true ) {\n\n\t\t\t\tWebGLUniforms.upload( _gl, getUniformList( materialProperties ), m_uniforms, textures );\n\t\t\t\tmaterial.uniformsNeedUpdate = false;\n\n\t\t\t}\n\n\t\t\tif ( material.isSpriteMaterial ) {\n\n\t\t\t\tp_uniforms.setValue( _gl, 'center', object.center );\n\n\t\t\t}\n\n\t\t\t// common matrices\n\n\t\t\tp_uniforms.setValue( _gl, 'modelViewMatrix', object.modelViewMatrix );\n\t\t\tp_uniforms.setValue( _gl, 'normalMatrix', object.normalMatrix );\n\t\t\tp_uniforms.setValue( _gl, 'modelMatrix', object.matrixWorld );\n\n\t\t\t// UBOs\n\n\t\t\tif ( material.isShaderMaterial || material.isRawShaderMaterial ) {\n\n\t\t\t\tconst groups = material.uniformsGroups;\n\n\t\t\t\tfor ( let i = 0, l = groups.length; i < l; i ++ ) {\n\n\t\t\t\t\tconst group = groups[ i ];\n\n\t\t\t\t\tuniformsGroups.update( group, program );\n\t\t\t\t\tuniformsGroups.bind( group, program );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn program;\n\n\t\t}\n\n\t\t// If uniforms are marked as clean, they don't need to be loaded to the GPU.\n\n\t\tfunction markUniformsLightsNeedsUpdate( uniforms, value ) {\n\n\t\t\tuniforms.ambientLightColor.needsUpdate = value;\n\t\t\tuniforms.lightProbe.needsUpdate = value;\n\n\t\t\tuniforms.directionalLights.needsUpdate = value;\n\t\t\tuniforms.directionalLightShadows.needsUpdate = value;\n\t\t\tuniforms.pointLights.needsUpdate = value;\n\t\t\tuniforms.pointLightShadows.needsUpdate = value;\n\t\t\tuniforms.spotLights.needsUpdate = value;\n\t\t\tuniforms.spotLightShadows.needsUpdate = value;\n\t\t\tuniforms.rectAreaLights.needsUpdate = value;\n\t\t\tuniforms.hemisphereLights.needsUpdate = value;\n\n\t\t}\n\n\t\tfunction materialNeedsLights( material ) {\n\n\t\t\treturn material.isMeshLambertMaterial || material.isMeshToonMaterial || material.isMeshPhongMaterial ||\n\t\t\t\tmaterial.isMeshStandardMaterial || material.isShadowMaterial ||\n\t\t\t\t( material.isShaderMaterial && material.lights === true );\n\n\t\t}\n\n\t\tthis.getActiveCubeFace = function () {\n\n\t\t\treturn _currentActiveCubeFace;\n\n\t\t};\n\n\t\tthis.getActiveMipmapLevel = function () {\n\n\t\t\treturn _currentActiveMipmapLevel;\n\n\t\t};\n\n\t\tthis.getRenderTarget = function () {\n\n\t\t\treturn _currentRenderTarget;\n\n\t\t};\n\n\t\tthis.setRenderTargetTextures = function ( renderTarget, colorTexture, depthTexture ) {\n\n\t\t\tproperties.get( renderTarget.texture ).__webglTexture = colorTexture;\n\t\t\tproperties.get( renderTarget.depthTexture ).__webglTexture = depthTexture;\n\n\t\t\tconst renderTargetProperties = properties.get( renderTarget );\n\t\t\trenderTargetProperties.__hasExternalTextures = true;\n\n\t\t\trenderTargetProperties.__autoAllocateDepthBuffer = depthTexture === undefined;\n\n\t\t\tif ( ! renderTargetProperties.__autoAllocateDepthBuffer ) {\n\n\t\t\t\t// The multisample_render_to_texture extension doesn't work properly if there\n\t\t\t\t// are midframe flushes and an external depth buffer. Disable use of the extension.\n\t\t\t\tif ( extensions.has( 'WEBGL_multisampled_render_to_texture' ) === true ) {\n\n\t\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided' );\n\t\t\t\t\trenderTargetProperties.__useRenderToTexture = false;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.setRenderTargetFramebuffer = function ( renderTarget, defaultFramebuffer ) {\n\n\t\t\tconst renderTargetProperties = properties.get( renderTarget );\n\t\t\trenderTargetProperties.__webglFramebuffer = defaultFramebuffer;\n\t\t\trenderTargetProperties.__useDefaultFramebuffer = defaultFramebuffer === undefined;\n\n\t\t};\n\n\t\tthis.setRenderTarget = function ( renderTarget, activeCubeFace = 0, activeMipmapLevel = 0 ) {\n\n\t\t\t_currentRenderTarget = renderTarget;\n\t\t\t_currentActiveCubeFace = activeCubeFace;\n\t\t\t_currentActiveMipmapLevel = activeMipmapLevel;\n\n\t\t\tlet useDefaultFramebuffer = true;\n\t\t\tlet framebuffer = null;\n\t\t\tlet isCube = false;\n\t\t\tlet isRenderTarget3D = false;\n\n\t\t\tif ( renderTarget ) {\n\n\t\t\t\tconst renderTargetProperties = properties.get( renderTarget );\n\n\t\t\t\tif ( renderTargetProperties.__useDefaultFramebuffer !== undefined ) {\n\n\t\t\t\t\t// We need to make sure to rebind the framebuffer.\n\t\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, null );\n\t\t\t\t\tuseDefaultFramebuffer = false;\n\n\t\t\t\t} else if ( renderTargetProperties.__webglFramebuffer === undefined ) {\n\n\t\t\t\t\ttextures.setupRenderTarget( renderTarget );\n\n\t\t\t\t} else if ( renderTargetProperties.__hasExternalTextures ) {\n\n\t\t\t\t\t// Color and depth texture must be rebound in order for the swapchain to update.\n\t\t\t\t\ttextures.rebindTextures( renderTarget, properties.get( renderTarget.texture ).__webglTexture, properties.get( renderTarget.depthTexture ).__webglTexture );\n\n\t\t\t\t} else if ( renderTarget.depthBuffer ) {\n\n\t\t\t\t\t// check if the depth texture is already bound to the frame buffer and that it's been initialized\n\t\t\t\t\tconst depthTexture = renderTarget.depthTexture;\n\t\t\t\t\tif ( renderTargetProperties.__boundDepthTexture !== depthTexture ) {\n\n\t\t\t\t\t\t// check if the depth texture is compatible\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tdepthTexture !== null &&\n\t\t\t\t\t\t\tproperties.has( depthTexture ) &&\n\t\t\t\t\t\t\t( renderTarget.width !== depthTexture.image.width || renderTarget.height !== depthTexture.image.height )\n\t\t\t\t\t\t) {\n\n\t\t\t\t\t\t\tthrow new Error( 'WebGLRenderTarget: Attached DepthTexture is initialized to the incorrect size.' );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Swap the depth buffer to the currently attached one\n\t\t\t\t\t\ttextures.setupDepthRenderbuffer( renderTarget );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tconst texture = renderTarget.texture;\n\n\t\t\t\tif ( texture.isData3DTexture || texture.isDataArrayTexture || texture.isCompressedArrayTexture ) {\n\n\t\t\t\t\tisRenderTarget3D = true;\n\n\t\t\t\t}\n\n\t\t\t\tconst __webglFramebuffer = properties.get( renderTarget ).__webglFramebuffer;\n\n\t\t\t\tif ( renderTarget.isWebGLCubeRenderTarget ) {\n\n\t\t\t\t\tif ( Array.isArray( __webglFramebuffer[ activeCubeFace ] ) ) {\n\n\t\t\t\t\t\tframebuffer = __webglFramebuffer[ activeCubeFace ][ activeMipmapLevel ];\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tframebuffer = __webglFramebuffer[ activeCubeFace ];\n\n\t\t\t\t\t}\n\n\t\t\t\t\tisCube = true;\n\n\t\t\t\t} else if ( ( renderTarget.samples > 0 ) && textures.useMultisampledRTT( renderTarget ) === false ) {\n\n\t\t\t\t\tframebuffer = properties.get( renderTarget ).__webglMultisampledFramebuffer;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( Array.isArray( __webglFramebuffer ) ) {\n\n\t\t\t\t\t\tframebuffer = __webglFramebuffer[ activeMipmapLevel ];\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tframebuffer = __webglFramebuffer;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t_currentViewport.copy( renderTarget.viewport );\n\t\t\t\t_currentScissor.copy( renderTarget.scissor );\n\t\t\t\t_currentScissorTest = renderTarget.scissorTest;\n\n\t\t\t} else {\n\n\t\t\t\t_currentViewport.copy( _viewport ).multiplyScalar( _pixelRatio ).floor();\n\t\t\t\t_currentScissor.copy( _scissor ).multiplyScalar( _pixelRatio ).floor();\n\t\t\t\t_currentScissorTest = _scissorTest;\n\n\t\t\t}\n\n\t\t\tconst framebufferBound = state.bindFramebuffer( _gl.FRAMEBUFFER, framebuffer );\n\n\t\t\tif ( framebufferBound && useDefaultFramebuffer ) {\n\n\t\t\t\tstate.drawBuffers( renderTarget, framebuffer );\n\n\t\t\t}\n\n\t\t\tstate.viewport( _currentViewport );\n\t\t\tstate.scissor( _currentScissor );\n\t\t\tstate.setScissorTest( _currentScissorTest );\n\n\t\t\tif ( isCube ) {\n\n\t\t\t\tconst textureProperties = properties.get( renderTarget.texture );\n\t\t\t\t_gl.framebufferTexture2D( _gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_CUBE_MAP_POSITIVE_X + activeCubeFace, textureProperties.__webglTexture, activeMipmapLevel );\n\n\t\t\t} else if ( isRenderTarget3D ) {\n\n\t\t\t\tconst textureProperties = properties.get( renderTarget.texture );\n\t\t\t\tconst layer = activeCubeFace || 0;\n\t\t\t\t_gl.framebufferTextureLayer( _gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, textureProperties.__webglTexture, activeMipmapLevel || 0, layer );\n\n\t\t\t}\n\n\t\t\t_currentMaterialId = - 1; // reset current material to ensure correct uniform bindings\n\n\t\t};\n\n\t\tthis.readRenderTargetPixels = function ( renderTarget, x, y, width, height, buffer, activeCubeFaceIndex ) {\n\n\t\t\tif ( ! ( renderTarget && renderTarget.isWebGLRenderTarget ) ) {\n\n\t\t\t\tconsole.error( 'THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.' );\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\tlet framebuffer = properties.get( renderTarget ).__webglFramebuffer;\n\n\t\t\tif ( renderTarget.isWebGLCubeRenderTarget && activeCubeFaceIndex !== undefined ) {\n\n\t\t\t\tframebuffer = framebuffer[ activeCubeFaceIndex ];\n\n\t\t\t}\n\n\t\t\tif ( framebuffer ) {\n\n\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, framebuffer );\n\n\t\t\t\ttry {\n\n\t\t\t\t\tconst texture = renderTarget.texture;\n\t\t\t\t\tconst textureFormat = texture.format;\n\t\t\t\t\tconst textureType = texture.type;\n\n\t\t\t\t\tif ( ! capabilities.textureFormatReadable( textureFormat ) ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.' );\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! capabilities.textureTypeReadable( textureType ) ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.' );\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// the following if statement ensures valid read requests (no out-of-bounds pixels, see #8604)\n\n\t\t\t\t\tif ( ( x >= 0 && x <= ( renderTarget.width - width ) ) && ( y >= 0 && y <= ( renderTarget.height - height ) ) ) {\n\n\t\t\t\t\t\t_gl.readPixels( x, y, width, height, utils.convert( textureFormat ), utils.convert( textureType ), buffer );\n\n\t\t\t\t\t}\n\n\t\t\t\t} finally {\n\n\t\t\t\t\t// restore framebuffer of current render target if necessary\n\n\t\t\t\t\tconst framebuffer = ( _currentRenderTarget !== null ) ? properties.get( _currentRenderTarget ).__webglFramebuffer : null;\n\t\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, framebuffer );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.readRenderTargetPixelsAsync = async function ( renderTarget, x, y, width, height, buffer, activeCubeFaceIndex ) {\n\n\t\t\tif ( ! ( renderTarget && renderTarget.isWebGLRenderTarget ) ) {\n\n\t\t\t\tthrow new Error( 'THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.' );\n\n\t\t\t}\n\n\t\t\tlet framebuffer = properties.get( renderTarget ).__webglFramebuffer;\n\t\t\tif ( renderTarget.isWebGLCubeRenderTarget && activeCubeFaceIndex !== undefined ) {\n\n\t\t\t\tframebuffer = framebuffer[ activeCubeFaceIndex ];\n\n\t\t\t}\n\n\t\t\tif ( framebuffer ) {\n\n\t\t\t\tconst texture = renderTarget.texture;\n\t\t\t\tconst textureFormat = texture.format;\n\t\t\t\tconst textureType = texture.type;\n\n\t\t\t\tif ( ! capabilities.textureFormatReadable( textureFormat ) ) {\n\n\t\t\t\t\tthrow new Error( 'THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.' );\n\n\t\t\t\t}\n\n\t\t\t\tif ( ! capabilities.textureTypeReadable( textureType ) ) {\n\n\t\t\t\t\tthrow new Error( 'THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.' );\n\n\t\t\t\t}\n\n\t\t\t\t// the following if statement ensures valid read requests (no out-of-bounds pixels, see #8604)\n\t\t\t\tif ( ( x >= 0 && x <= ( renderTarget.width - width ) ) && ( y >= 0 && y <= ( renderTarget.height - height ) ) ) {\n\n\t\t\t\t\t// set the active frame buffer to the one we want to read\n\t\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, framebuffer );\n\n\t\t\t\t\tconst glBuffer = _gl.createBuffer();\n\t\t\t\t\t_gl.bindBuffer( _gl.PIXEL_PACK_BUFFER, glBuffer );\n\t\t\t\t\t_gl.bufferData( _gl.PIXEL_PACK_BUFFER, buffer.byteLength, _gl.STREAM_READ );\n\t\t\t\t\t_gl.readPixels( x, y, width, height, utils.convert( textureFormat ), utils.convert( textureType ), 0 );\n\n\t\t\t\t\t// reset the frame buffer to the currently set buffer before waiting\n\t\t\t\t\tconst currFramebuffer = _currentRenderTarget !== null ? properties.get( _currentRenderTarget ).__webglFramebuffer : null;\n\t\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, currFramebuffer );\n\n\t\t\t\t\t// check if the commands have finished every 8 ms\n\t\t\t\t\tconst sync = _gl.fenceSync( _gl.SYNC_GPU_COMMANDS_COMPLETE, 0 );\n\n\t\t\t\t\t_gl.flush();\n\n\t\t\t\t\tawait probeAsync( _gl, sync, 4 );\n\n\t\t\t\t\t// read the data and delete the buffer\n\t\t\t\t\t_gl.bindBuffer( _gl.PIXEL_PACK_BUFFER, glBuffer );\n\t\t\t\t\t_gl.getBufferSubData( _gl.PIXEL_PACK_BUFFER, 0, buffer );\n\t\t\t\t\t_gl.deleteBuffer( glBuffer );\n\t\t\t\t\t_gl.deleteSync( sync );\n\n\t\t\t\t\treturn buffer;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthrow new Error( 'THREE.WebGLRenderer.readRenderTargetPixelsAsync: requested read bounds are out of range.' );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.copyFramebufferToTexture = function ( texture, position = null, level = 0 ) {\n\n\t\t\t// support previous signature with position first\n\t\t\tif ( texture.isTexture !== true ) {\n\n\t\t\t\t// @deprecated, r165\n\t\t\t\twarnOnce( 'WebGLRenderer: copyFramebufferToTexture function signature has changed.' );\n\n\t\t\t\tposition = arguments[ 0 ] || null;\n\t\t\t\ttexture = arguments[ 1 ];\n\n\t\t\t}\n\n\t\t\tconst levelScale = Math.pow( 2, - level );\n\t\t\tconst width = Math.floor( texture.image.width * levelScale );\n\t\t\tconst height = Math.floor( texture.image.height * levelScale );\n\n\t\t\tconst x = position !== null ? position.x : 0;\n\t\t\tconst y = position !== null ? position.y : 0;\n\n\t\t\ttextures.setTexture2D( texture, 0 );\n\n\t\t\t_gl.copyTexSubImage2D( _gl.TEXTURE_2D, level, 0, 0, x, y, width, height );\n\n\t\t\tstate.unbindTexture();\n\n\t\t};\n\n\t\tthis.copyTextureToTexture = function ( srcTexture, dstTexture, srcRegion = null, dstPosition = null, level = 0 ) {\n\n\t\t\t// support previous signature with dstPosition first\n\t\t\tif ( srcTexture.isTexture !== true ) {\n\n\t\t\t\t// @deprecated, r165\n\t\t\t\twarnOnce( 'WebGLRenderer: copyTextureToTexture function signature has changed.' );\n\n\t\t\t\tdstPosition = arguments[ 0 ] || null;\n\t\t\t\tsrcTexture = arguments[ 1 ];\n\t\t\t\tdstTexture = arguments[ 2 ];\n\t\t\t\tlevel = arguments[ 3 ] || 0;\n\t\t\t\tsrcRegion = null;\n\n\t\t\t}\n\n\t\t\t// gather the necessary dimensions to copy\n\t\t\tlet width, height, depth, minX, minY, minZ;\n\t\t\tlet dstX, dstY, dstZ;\n\t\t\tconst image = srcTexture.isCompressedTexture ? srcTexture.mipmaps[ level ] : srcTexture.image;\n\t\t\tif ( srcRegion !== null ) {\n\n\t\t\t\twidth = srcRegion.max.x - srcRegion.min.x;\n\t\t\t\theight = srcRegion.max.y - srcRegion.min.y;\n\t\t\t\tdepth = srcRegion.isBox3 ? srcRegion.max.z - srcRegion.min.z : 1;\n\t\t\t\tminX = srcRegion.min.x;\n\t\t\t\tminY = srcRegion.min.y;\n\t\t\t\tminZ = srcRegion.isBox3 ? srcRegion.min.z : 0;\n\n\t\t\t} else {\n\n\t\t\t\twidth = image.width;\n\t\t\t\theight = image.height;\n\t\t\t\tdepth = image.depth || 1;\n\t\t\t\tminX = 0;\n\t\t\t\tminY = 0;\n\t\t\t\tminZ = 0;\n\n\t\t\t}\n\n\t\t\tif ( dstPosition !== null ) {\n\n\t\t\t\tdstX = dstPosition.x;\n\t\t\t\tdstY = dstPosition.y;\n\t\t\t\tdstZ = dstPosition.z;\n\n\t\t\t} else {\n\n\t\t\t\tdstX = 0;\n\t\t\t\tdstY = 0;\n\t\t\t\tdstZ = 0;\n\n\t\t\t}\n\n\t\t\t// Set up the destination target\n\t\t\tconst glFormat = utils.convert( dstTexture.format );\n\t\t\tconst glType = utils.convert( dstTexture.type );\n\t\t\tlet glTarget;\n\n\t\t\tif ( dstTexture.isData3DTexture ) {\n\n\t\t\t\ttextures.setTexture3D( dstTexture, 0 );\n\t\t\t\tglTarget = _gl.TEXTURE_3D;\n\n\t\t\t} else if ( dstTexture.isDataArrayTexture || dstTexture.isCompressedArrayTexture ) {\n\n\t\t\t\ttextures.setTexture2DArray( dstTexture, 0 );\n\t\t\t\tglTarget = _gl.TEXTURE_2D_ARRAY;\n\n\t\t\t} else {\n\n\t\t\t\ttextures.setTexture2D( dstTexture, 0 );\n\t\t\t\tglTarget = _gl.TEXTURE_2D;\n\n\t\t\t}\n\n\t\t\t_gl.pixelStorei( _gl.UNPACK_FLIP_Y_WEBGL, dstTexture.flipY );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, dstTexture.premultiplyAlpha );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_ALIGNMENT, dstTexture.unpackAlignment );\n\n\t\t\t// used for copying data from cpu\n\t\t\tconst currentUnpackRowLen = _gl.getParameter( _gl.UNPACK_ROW_LENGTH );\n\t\t\tconst currentUnpackImageHeight = _gl.getParameter( _gl.UNPACK_IMAGE_HEIGHT );\n\t\t\tconst currentUnpackSkipPixels = _gl.getParameter( _gl.UNPACK_SKIP_PIXELS );\n\t\t\tconst currentUnpackSkipRows = _gl.getParameter( _gl.UNPACK_SKIP_ROWS );\n\t\t\tconst currentUnpackSkipImages = _gl.getParameter( _gl.UNPACK_SKIP_IMAGES );\n\n\t\t\t_gl.pixelStorei( _gl.UNPACK_ROW_LENGTH, image.width );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_IMAGE_HEIGHT, image.height );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_SKIP_PIXELS, minX );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_SKIP_ROWS, minY );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_SKIP_IMAGES, minZ );\n\n\t\t\t// set up the src texture\n\t\t\tconst isSrc3D = srcTexture.isDataArrayTexture || srcTexture.isData3DTexture;\n\t\t\tconst isDst3D = dstTexture.isDataArrayTexture || dstTexture.isData3DTexture;\n\t\t\tif ( srcTexture.isRenderTargetTexture || srcTexture.isDepthTexture ) {\n\n\t\t\t\tconst srcTextureProperties = properties.get( srcTexture );\n\t\t\t\tconst dstTextureProperties = properties.get( dstTexture );\n\t\t\t\tconst srcRenderTargetProperties = properties.get( srcTextureProperties.__renderTarget );\n\t\t\t\tconst dstRenderTargetProperties = properties.get( dstTextureProperties.__renderTarget );\n\n\t\t\t\tstate.bindFramebuffer( _gl.READ_FRAMEBUFFER, srcRenderTargetProperties.__webglFramebuffer );\n\t\t\t\tstate.bindFramebuffer( _gl.DRAW_FRAMEBUFFER, dstRenderTargetProperties.__webglFramebuffer );\n\n\t\t\t\tfor ( let i = 0; i < depth; i ++ ) {\n\n\t\t\t\t\t// if the source or destination are a 3d target then a layer needs to be bound\n\t\t\t\t\tif ( isSrc3D ) {\n\n\t\t\t\t\t\t_gl.framebufferTextureLayer( _gl.READ_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, properties.get( srcTexture ).__webglTexture, level, minZ + i );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( srcTexture.isDepthTexture ) {\n\n\t\t\t\t\t\tif ( isDst3D ) {\n\n\t\t\t\t\t\t\t_gl.framebufferTextureLayer( _gl.DRAW_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, properties.get( dstTexture ).__webglTexture, level, dstZ + i );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t_gl.blitFramebuffer( minX, minY, width, height, dstX, dstY, width, height, _gl.DEPTH_BUFFER_BIT, _gl.NEAREST );\n\n\t\t\t\t\t} else if ( isDst3D ) {\n\n\t\t\t\t\t\t_gl.copyTexSubImage3D( glTarget, level, dstX, dstY, dstZ + i, minX, minY, width, height );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t_gl.copyTexSubImage2D( glTarget, level, dstX, dstY, dstZ + i, minX, minY, width, height );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tstate.bindFramebuffer( _gl.READ_FRAMEBUFFER, null );\n\t\t\t\tstate.bindFramebuffer( _gl.DRAW_FRAMEBUFFER, null );\n\n\t\t\t} else {\n\n\t\t\t\tif ( isDst3D ) {\n\n\t\t\t\t\t// copy data into the 3d texture\n\t\t\t\t\tif ( srcTexture.isDataTexture || srcTexture.isData3DTexture ) {\n\n\t\t\t\t\t\t_gl.texSubImage3D( glTarget, level, dstX, dstY, dstZ, width, height, depth, glFormat, glType, image.data );\n\n\t\t\t\t\t} else if ( dstTexture.isCompressedArrayTexture ) {\n\n\t\t\t\t\t\t_gl.compressedTexSubImage3D( glTarget, level, dstX, dstY, dstZ, width, height, depth, glFormat, image.data );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t_gl.texSubImage3D( glTarget, level, dstX, dstY, dstZ, width, height, depth, glFormat, glType, image );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// copy data into the 2d texture\n\t\t\t\t\tif ( srcTexture.isDataTexture ) {\n\n\t\t\t\t\t\t_gl.texSubImage2D( _gl.TEXTURE_2D, level, dstX, dstY, width, height, glFormat, glType, image.data );\n\n\t\t\t\t\t} else if ( srcTexture.isCompressedTexture ) {\n\n\t\t\t\t\t\t_gl.compressedTexSubImage2D( _gl.TEXTURE_2D, level, dstX, dstY, image.width, image.height, glFormat, image.data );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t_gl.texSubImage2D( _gl.TEXTURE_2D, level, dstX, dstY, width, height, glFormat, glType, image );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// reset values\n\t\t\t_gl.pixelStorei( _gl.UNPACK_ROW_LENGTH, currentUnpackRowLen );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_IMAGE_HEIGHT, currentUnpackImageHeight );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_SKIP_PIXELS, currentUnpackSkipPixels );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_SKIP_ROWS, currentUnpackSkipRows );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_SKIP_IMAGES, currentUnpackSkipImages );\n\n\t\t\t// Generate mipmaps only when copying level 0\n\t\t\tif ( level === 0 && dstTexture.generateMipmaps ) {\n\n\t\t\t\t_gl.generateMipmap( glTarget );\n\n\t\t\t}\n\n\t\t\tstate.unbindTexture();\n\n\t\t};\n\n\t\tthis.copyTextureToTexture3D = function ( srcTexture, dstTexture, srcRegion = null, dstPosition = null, level = 0 ) {\n\n\t\t\t// support previous signature with source box first\n\t\t\tif ( srcTexture.isTexture !== true ) {\n\n\t\t\t\t// @deprecated, r165\n\t\t\t\twarnOnce( 'WebGLRenderer: copyTextureToTexture3D function signature has changed.' );\n\n\t\t\t\tsrcRegion = arguments[ 0 ] || null;\n\t\t\t\tdstPosition = arguments[ 1 ] || null;\n\t\t\t\tsrcTexture = arguments[ 2 ];\n\t\t\t\tdstTexture = arguments[ 3 ];\n\t\t\t\tlevel = arguments[ 4 ] || 0;\n\n\t\t\t}\n\n\t\t\t// @deprecated, r170\n\t\t\twarnOnce( 'WebGLRenderer: copyTextureToTexture3D function has been deprecated. Use \"copyTextureToTexture\" instead.' );\n\n\t\t\treturn this.copyTextureToTexture( srcTexture, dstTexture, srcRegion, dstPosition, level );\n\n\t\t};\n\n\t\tthis.initRenderTarget = function ( target ) {\n\n\t\t\tif ( properties.get( target ).__webglFramebuffer === undefined ) {\n\n\t\t\t\ttextures.setupRenderTarget( target );\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.initTexture = function ( texture ) {\n\n\t\t\tif ( texture.isCubeTexture ) {\n\n\t\t\t\ttextures.setTextureCube( texture, 0 );\n\n\t\t\t} else if ( texture.isData3DTexture ) {\n\n\t\t\t\ttextures.setTexture3D( texture, 0 );\n\n\t\t\t} else if ( texture.isDataArrayTexture || texture.isCompressedArrayTexture ) {\n\n\t\t\t\ttextures.setTexture2DArray( texture, 0 );\n\n\t\t\t} else {\n\n\t\t\t\ttextures.setTexture2D( texture, 0 );\n\n\t\t\t}\n\n\t\t\tstate.unbindTexture();\n\n\t\t};\n\n\t\tthis.resetState = function () {\n\n\t\t\t_currentActiveCubeFace = 0;\n\t\t\t_currentActiveMipmapLevel = 0;\n\t\t\t_currentRenderTarget = null;\n\n\t\t\tstate.reset();\n\t\t\tbindingStates.reset();\n\n\t\t};\n\n\t\tif ( typeof __THREE_DEVTOOLS__ !== 'undefined' ) {\n\n\t\t\t__THREE_DEVTOOLS__.dispatchEvent( new CustomEvent( 'observe', { detail: this } ) );\n\n\t\t}\n\n\t}\n\n\tget coordinateSystem() {\n\n\t\treturn WebGLCoordinateSystem;\n\n\t}\n\n\tget outputColorSpace() {\n\n\t\treturn this._outputColorSpace;\n\n\t}\n\n\tset outputColorSpace( colorSpace ) {\n\n\t\tthis._outputColorSpace = colorSpace;\n\n\t\tconst gl = this.getContext();\n\t\tgl.drawingBufferColorspace = ColorManagement._getDrawingBufferColorSpace( colorSpace );\n\t\tgl.unpackColorSpace = ColorManagement._getUnpackColorSpace();\n\n\t}\n\n}\n\nclass FogExp2 {\n\n\tconstructor( color, density = 0.00025 ) {\n\n\t\tthis.isFogExp2 = true;\n\n\t\tthis.name = '';\n\n\t\tthis.color = new Color( color );\n\t\tthis.density = density;\n\n\t}\n\n\tclone() {\n\n\t\treturn new FogExp2( this.color, this.density );\n\n\t}\n\n\ttoJSON( /* meta */ ) {\n\n\t\treturn {\n\t\t\ttype: 'FogExp2',\n\t\t\tname: this.name,\n\t\t\tcolor: this.color.getHex(),\n\t\t\tdensity: this.density\n\t\t};\n\n\t}\n\n}\n\nclass Fog {\n\n\tconstructor( color, near = 1, far = 1000 ) {\n\n\t\tthis.isFog = true;\n\n\t\tthis.name = '';\n\n\t\tthis.color = new Color( color );\n\n\t\tthis.near = near;\n\t\tthis.far = far;\n\n\t}\n\n\tclone() {\n\n\t\treturn new Fog( this.color, this.near, this.far );\n\n\t}\n\n\ttoJSON( /* meta */ ) {\n\n\t\treturn {\n\t\t\ttype: 'Fog',\n\t\t\tname: this.name,\n\t\t\tcolor: this.color.getHex(),\n\t\t\tnear: this.near,\n\t\t\tfar: this.far\n\t\t};\n\n\t}\n\n}\n\nclass Scene extends Object3D {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isScene = true;\n\n\t\tthis.type = 'Scene';\n\n\t\tthis.background = null;\n\t\tthis.environment = null;\n\t\tthis.fog = null;\n\n\t\tthis.backgroundBlurriness = 0;\n\t\tthis.backgroundIntensity = 1;\n\t\tthis.backgroundRotation = new Euler();\n\n\t\tthis.environmentIntensity = 1;\n\t\tthis.environmentRotation = new Euler();\n\n\t\tthis.overrideMaterial = null;\n\n\t\tif ( typeof __THREE_DEVTOOLS__ !== 'undefined' ) {\n\n\t\t\t__THREE_DEVTOOLS__.dispatchEvent( new CustomEvent( 'observe', { detail: this } ) );\n\n\t\t}\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tif ( source.background !== null ) this.background = source.background.clone();\n\t\tif ( source.environment !== null ) this.environment = source.environment.clone();\n\t\tif ( source.fog !== null ) this.fog = source.fog.clone();\n\n\t\tthis.backgroundBlurriness = source.backgroundBlurriness;\n\t\tthis.backgroundIntensity = source.backgroundIntensity;\n\t\tthis.backgroundRotation.copy( source.backgroundRotation );\n\n\t\tthis.environmentIntensity = source.environmentIntensity;\n\t\tthis.environmentRotation.copy( source.environmentRotation );\n\n\t\tif ( source.overrideMaterial !== null ) this.overrideMaterial = source.overrideMaterial.clone();\n\n\t\tthis.matrixAutoUpdate = source.matrixAutoUpdate;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tif ( this.fog !== null ) data.object.fog = this.fog.toJSON();\n\n\t\tif ( this.backgroundBlurriness > 0 ) data.object.backgroundBlurriness = this.backgroundBlurriness;\n\t\tif ( this.backgroundIntensity !== 1 ) data.object.backgroundIntensity = this.backgroundIntensity;\n\t\tdata.object.backgroundRotation = this.backgroundRotation.toArray();\n\n\t\tif ( this.environmentIntensity !== 1 ) data.object.environmentIntensity = this.environmentIntensity;\n\t\tdata.object.environmentRotation = this.environmentRotation.toArray();\n\n\t\treturn data;\n\n\t}\n\n}\n\nclass InterleavedBuffer {\n\n\tconstructor( array, stride ) {\n\n\t\tthis.isInterleavedBuffer = true;\n\n\t\tthis.array = array;\n\t\tthis.stride = stride;\n\t\tthis.count = array !== undefined ? array.length / stride : 0;\n\n\t\tthis.usage = StaticDrawUsage;\n\t\tthis.updateRanges = [];\n\n\t\tthis.version = 0;\n\n\t\tthis.uuid = generateUUID();\n\n\t}\n\n\tonUploadCallback() {}\n\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n\tsetUsage( value ) {\n\n\t\tthis.usage = value;\n\n\t\treturn this;\n\n\t}\n\n\taddUpdateRange( start, count ) {\n\n\t\tthis.updateRanges.push( { start, count } );\n\n\t}\n\n\tclearUpdateRanges() {\n\n\t\tthis.updateRanges.length = 0;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.array = new source.array.constructor( source.array );\n\t\tthis.count = source.count;\n\t\tthis.stride = source.stride;\n\t\tthis.usage = source.usage;\n\n\t\treturn this;\n\n\t}\n\n\tcopyAt( index1, attribute, index2 ) {\n\n\t\tindex1 *= this.stride;\n\t\tindex2 *= attribute.stride;\n\n\t\tfor ( let i = 0, l = this.stride; i < l; i ++ ) {\n\n\t\t\tthis.array[ index1 + i ] = attribute.array[ index2 + i ];\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tset( value, offset = 0 ) {\n\n\t\tthis.array.set( value, offset );\n\n\t\treturn this;\n\n\t}\n\n\tclone( data ) {\n\n\t\tif ( data.arrayBuffers === undefined ) {\n\n\t\t\tdata.arrayBuffers = {};\n\n\t\t}\n\n\t\tif ( this.array.buffer._uuid === undefined ) {\n\n\t\t\tthis.array.buffer._uuid = generateUUID();\n\n\t\t}\n\n\t\tif ( data.arrayBuffers[ this.array.buffer._uuid ] === undefined ) {\n\n\t\t\tdata.arrayBuffers[ this.array.buffer._uuid ] = this.array.slice( 0 ).buffer;\n\n\t\t}\n\n\t\tconst array = new this.array.constructor( data.arrayBuffers[ this.array.buffer._uuid ] );\n\n\t\tconst ib = new this.constructor( array, this.stride );\n\t\tib.setUsage( this.usage );\n\n\t\treturn ib;\n\n\t}\n\n\tonUpload( callback ) {\n\n\t\tthis.onUploadCallback = callback;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( data ) {\n\n\t\tif ( data.arrayBuffers === undefined ) {\n\n\t\t\tdata.arrayBuffers = {};\n\n\t\t}\n\n\t\t// generate UUID for array buffer if necessary\n\n\t\tif ( this.array.buffer._uuid === undefined ) {\n\n\t\t\tthis.array.buffer._uuid = generateUUID();\n\n\t\t}\n\n\t\tif ( data.arrayBuffers[ this.array.buffer._uuid ] === undefined ) {\n\n\t\t\tdata.arrayBuffers[ this.array.buffer._uuid ] = Array.from( new Uint32Array( this.array.buffer ) );\n\n\t\t}\n\n\t\t//\n\n\t\treturn {\n\t\t\tuuid: this.uuid,\n\t\t\tbuffer: this.array.buffer._uuid,\n\t\t\ttype: this.array.constructor.name,\n\t\t\tstride: this.stride\n\t\t};\n\n\t}\n\n}\n\nconst _vector$6 = /*@__PURE__*/ new Vector3();\n\nclass InterleavedBufferAttribute {\n\n\tconstructor( interleavedBuffer, itemSize, offset, normalized = false ) {\n\n\t\tthis.isInterleavedBufferAttribute = true;\n\n\t\tthis.name = '';\n\n\t\tthis.data = interleavedBuffer;\n\t\tthis.itemSize = itemSize;\n\t\tthis.offset = offset;\n\n\t\tthis.normalized = normalized;\n\n\t}\n\n\tget count() {\n\n\t\treturn this.data.count;\n\n\t}\n\n\tget array() {\n\n\t\treturn this.data.array;\n\n\t}\n\n\tset needsUpdate( value ) {\n\n\t\tthis.data.needsUpdate = value;\n\n\t}\n\n\tapplyMatrix4( m ) {\n\n\t\tfor ( let i = 0, l = this.data.count; i < l; i ++ ) {\n\n\t\t\t_vector$6.fromBufferAttribute( this, i );\n\n\t\t\t_vector$6.applyMatrix4( m );\n\n\t\t\tthis.setXYZ( i, _vector$6.x, _vector$6.y, _vector$6.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tapplyNormalMatrix( m ) {\n\n\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t_vector$6.fromBufferAttribute( this, i );\n\n\t\t\t_vector$6.applyNormalMatrix( m );\n\n\t\t\tthis.setXYZ( i, _vector$6.x, _vector$6.y, _vector$6.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttransformDirection( m ) {\n\n\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t_vector$6.fromBufferAttribute( this, i );\n\n\t\t\t_vector$6.transformDirection( m );\n\n\t\t\tthis.setXYZ( i, _vector$6.x, _vector$6.y, _vector$6.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetComponent( index, component ) {\n\n\t\tlet value = this.array[ index * this.data.stride + this.offset + component ];\n\n\t\tif ( this.normalized ) value = denormalize( value, this.array );\n\n\t\treturn value;\n\n\t}\n\n\tsetComponent( index, component, value ) {\n\n\t\tif ( this.normalized ) value = normalize( value, this.array );\n\n\t\tthis.data.array[ index * this.data.stride + this.offset + component ] = value;\n\n\t\treturn this;\n\n\t}\n\n\tsetX( index, x ) {\n\n\t\tif ( this.normalized ) x = normalize( x, this.array );\n\n\t\tthis.data.array[ index * this.data.stride + this.offset ] = x;\n\n\t\treturn this;\n\n\t}\n\n\tsetY( index, y ) {\n\n\t\tif ( this.normalized ) y = normalize( y, this.array );\n\n\t\tthis.data.array[ index * this.data.stride + this.offset + 1 ] = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetZ( index, z ) {\n\n\t\tif ( this.normalized ) z = normalize( z, this.array );\n\n\t\tthis.data.array[ index * this.data.stride + this.offset + 2 ] = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetW( index, w ) {\n\n\t\tif ( this.normalized ) w = normalize( w, this.array );\n\n\t\tthis.data.array[ index * this.data.stride + this.offset + 3 ] = w;\n\n\t\treturn this;\n\n\t}\n\n\tgetX( index ) {\n\n\t\tlet x = this.data.array[ index * this.data.stride + this.offset ];\n\n\t\tif ( this.normalized ) x = denormalize( x, this.array );\n\n\t\treturn x;\n\n\t}\n\n\tgetY( index ) {\n\n\t\tlet y = this.data.array[ index * this.data.stride + this.offset + 1 ];\n\n\t\tif ( this.normalized ) y = denormalize( y, this.array );\n\n\t\treturn y;\n\n\t}\n\n\tgetZ( index ) {\n\n\t\tlet z = this.data.array[ index * this.data.stride + this.offset + 2 ];\n\n\t\tif ( this.normalized ) z = denormalize( z, this.array );\n\n\t\treturn z;\n\n\t}\n\n\tgetW( index ) {\n\n\t\tlet w = this.data.array[ index * this.data.stride + this.offset + 3 ];\n\n\t\tif ( this.normalized ) w = denormalize( w, this.array );\n\n\t\treturn w;\n\n\t}\n\n\tsetXY( index, x, y ) {\n\n\t\tindex = index * this.data.stride + this.offset;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\n\t\t}\n\n\t\tthis.data.array[ index + 0 ] = x;\n\t\tthis.data.array[ index + 1 ] = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetXYZ( index, x, y, z ) {\n\n\t\tindex = index * this.data.stride + this.offset;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\t\t\tz = normalize( z, this.array );\n\n\t\t}\n\n\t\tthis.data.array[ index + 0 ] = x;\n\t\tthis.data.array[ index + 1 ] = y;\n\t\tthis.data.array[ index + 2 ] = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetXYZW( index, x, y, z, w ) {\n\n\t\tindex = index * this.data.stride + this.offset;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\t\t\tz = normalize( z, this.array );\n\t\t\tw = normalize( w, this.array );\n\n\t\t}\n\n\t\tthis.data.array[ index + 0 ] = x;\n\t\tthis.data.array[ index + 1 ] = y;\n\t\tthis.data.array[ index + 2 ] = z;\n\t\tthis.data.array[ index + 3 ] = w;\n\n\t\treturn this;\n\n\t}\n\n\tclone( data ) {\n\n\t\tif ( data === undefined ) {\n\n\t\t\tconsole.log( 'THREE.InterleavedBufferAttribute.clone(): Cloning an interleaved buffer attribute will de-interleave buffer data.' );\n\n\t\t\tconst array = [];\n\n\t\t\tfor ( let i = 0; i < this.count; i ++ ) {\n\n\t\t\t\tconst index = i * this.data.stride + this.offset;\n\n\t\t\t\tfor ( let j = 0; j < this.itemSize; j ++ ) {\n\n\t\t\t\t\tarray.push( this.data.array[ index + j ] );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn new BufferAttribute( new this.array.constructor( array ), this.itemSize, this.normalized );\n\n\t\t} else {\n\n\t\t\tif ( data.interleavedBuffers === undefined ) {\n\n\t\t\t\tdata.interleavedBuffers = {};\n\n\t\t\t}\n\n\t\t\tif ( data.interleavedBuffers[ this.data.uuid ] === undefined ) {\n\n\t\t\t\tdata.interleavedBuffers[ this.data.uuid ] = this.data.clone( data );\n\n\t\t\t}\n\n\t\t\treturn new InterleavedBufferAttribute( data.interleavedBuffers[ this.data.uuid ], this.itemSize, this.offset, this.normalized );\n\n\t\t}\n\n\t}\n\n\ttoJSON( data ) {\n\n\t\tif ( data === undefined ) {\n\n\t\t\tconsole.log( 'THREE.InterleavedBufferAttribute.toJSON(): Serializing an interleaved buffer attribute will de-interleave buffer data.' );\n\n\t\t\tconst array = [];\n\n\t\t\tfor ( let i = 0; i < this.count; i ++ ) {\n\n\t\t\t\tconst index = i * this.data.stride + this.offset;\n\n\t\t\t\tfor ( let j = 0; j < this.itemSize; j ++ ) {\n\n\t\t\t\t\tarray.push( this.data.array[ index + j ] );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// de-interleave data and save it as an ordinary buffer attribute for now\n\n\t\t\treturn {\n\t\t\t\titemSize: this.itemSize,\n\t\t\t\ttype: this.array.constructor.name,\n\t\t\t\tarray: array,\n\t\t\t\tnormalized: this.normalized\n\t\t\t};\n\n\t\t} else {\n\n\t\t\t// save as true interleaved attribute\n\n\t\t\tif ( data.interleavedBuffers === undefined ) {\n\n\t\t\t\tdata.interleavedBuffers = {};\n\n\t\t\t}\n\n\t\t\tif ( data.interleavedBuffers[ this.data.uuid ] === undefined ) {\n\n\t\t\t\tdata.interleavedBuffers[ this.data.uuid ] = this.data.toJSON( data );\n\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tisInterleavedBufferAttribute: true,\n\t\t\t\titemSize: this.itemSize,\n\t\t\t\tdata: this.data.uuid,\n\t\t\t\toffset: this.offset,\n\t\t\t\tnormalized: this.normalized\n\t\t\t};\n\n\t\t}\n\n\t}\n\n}\n\nclass SpriteMaterial extends Material {\n\n\tstatic get type() {\n\n\t\treturn 'SpriteMaterial';\n\n\t}\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isSpriteMaterial = true;\n\n\t\tthis.color = new Color( 0xffffff );\n\n\t\tthis.map = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.rotation = 0;\n\n\t\tthis.sizeAttenuation = true;\n\n\t\tthis.transparent = true;\n\n\t\tthis.fog = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.map = source.map;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.rotation = source.rotation;\n\n\t\tthis.sizeAttenuation = source.sizeAttenuation;\n\n\t\tthis.fog = source.fog;\n\n\t\treturn this;\n\n\t}\n\n}\n\nlet _geometry;\n\nconst _intersectPoint = /*@__PURE__*/ new Vector3();\nconst _worldScale = /*@__PURE__*/ new Vector3();\nconst _mvPosition = /*@__PURE__*/ new Vector3();\n\nconst _alignedPosition = /*@__PURE__*/ new Vector2();\nconst _rotatedPosition = /*@__PURE__*/ new Vector2();\nconst _viewWorldMatrix = /*@__PURE__*/ new Matrix4();\n\nconst _vA = /*@__PURE__*/ new Vector3();\nconst _vB = /*@__PURE__*/ new Vector3();\nconst _vC = /*@__PURE__*/ new Vector3();\n\nconst _uvA = /*@__PURE__*/ new Vector2();\nconst _uvB = /*@__PURE__*/ new Vector2();\nconst _uvC = /*@__PURE__*/ new Vector2();\n\nclass Sprite extends Object3D {\n\n\tconstructor( material = new SpriteMaterial() ) {\n\n\t\tsuper();\n\n\t\tthis.isSprite = true;\n\n\t\tthis.type = 'Sprite';\n\n\t\tif ( _geometry === undefined ) {\n\n\t\t\t_geometry = new BufferGeometry();\n\n\t\t\tconst float32Array = new Float32Array( [\n\t\t\t\t- 0.5, - 0.5, 0, 0, 0,\n\t\t\t\t0.5, - 0.5, 0, 1, 0,\n\t\t\t\t0.5, 0.5, 0, 1, 1,\n\t\t\t\t- 0.5, 0.5, 0, 0, 1\n\t\t\t] );\n\n\t\t\tconst interleavedBuffer = new InterleavedBuffer( float32Array, 5 );\n\n\t\t\t_geometry.setIndex( [ 0, 1, 2,\t0, 2, 3 ] );\n\t\t\t_geometry.setAttribute( 'position', new InterleavedBufferAttribute( interleavedBuffer, 3, 0, false ) );\n\t\t\t_geometry.setAttribute( 'uv', new InterleavedBufferAttribute( interleavedBuffer, 2, 3, false ) );\n\n\t\t}\n\n\t\tthis.geometry = _geometry;\n\t\tthis.material = material;\n\n\t\tthis.center = new Vector2( 0.5, 0.5 );\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tif ( raycaster.camera === null ) {\n\n\t\t\tconsole.error( 'THREE.Sprite: \"Raycaster.camera\" needs to be set in order to raycast against sprites.' );\n\n\t\t}\n\n\t\t_worldScale.setFromMatrixScale( this.matrixWorld );\n\n\t\t_viewWorldMatrix.copy( raycaster.camera.matrixWorld );\n\t\tthis.modelViewMatrix.multiplyMatrices( raycaster.camera.matrixWorldInverse, this.matrixWorld );\n\n\t\t_mvPosition.setFromMatrixPosition( this.modelViewMatrix );\n\n\t\tif ( raycaster.camera.isPerspectiveCamera && this.material.sizeAttenuation === false ) {\n\n\t\t\t_worldScale.multiplyScalar( - _mvPosition.z );\n\n\t\t}\n\n\t\tconst rotation = this.material.rotation;\n\t\tlet sin, cos;\n\n\t\tif ( rotation !== 0 ) {\n\n\t\t\tcos = Math.cos( rotation );\n\t\t\tsin = Math.sin( rotation );\n\n\t\t}\n\n\t\tconst center = this.center;\n\n\t\ttransformVertex( _vA.set( - 0.5, - 0.5, 0 ), _mvPosition, center, _worldScale, sin, cos );\n\t\ttransformVertex( _vB.set( 0.5, - 0.5, 0 ), _mvPosition, center, _worldScale, sin, cos );\n\t\ttransformVertex( _vC.set( 0.5, 0.5, 0 ), _mvPosition, center, _worldScale, sin, cos );\n\n\t\t_uvA.set( 0, 0 );\n\t\t_uvB.set( 1, 0 );\n\t\t_uvC.set( 1, 1 );\n\n\t\t// check first triangle\n\t\tlet intersect = raycaster.ray.intersectTriangle( _vA, _vB, _vC, false, _intersectPoint );\n\n\t\tif ( intersect === null ) {\n\n\t\t\t// check second triangle\n\t\t\ttransformVertex( _vB.set( - 0.5, 0.5, 0 ), _mvPosition, center, _worldScale, sin, cos );\n\t\t\t_uvB.set( 0, 1 );\n\n\t\t\tintersect = raycaster.ray.intersectTriangle( _vA, _vC, _vB, false, _intersectPoint );\n\t\t\tif ( intersect === null ) {\n\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst distance = raycaster.ray.origin.distanceTo( _intersectPoint );\n\n\t\tif ( distance < raycaster.near || distance > raycaster.far ) return;\n\n\t\tintersects.push( {\n\n\t\t\tdistance: distance,\n\t\t\tpoint: _intersectPoint.clone(),\n\t\t\tuv: Triangle.getInterpolation( _intersectPoint, _vA, _vB, _vC, _uvA, _uvB, _uvC, new Vector2() ),\n\t\t\tface: null,\n\t\t\tobject: this\n\n\t\t} );\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tif ( source.center !== undefined ) this.center.copy( source.center );\n\n\t\tthis.material = source.material;\n\n\t\treturn this;\n\n\t}\n\n}\n\nfunction transformVertex( vertexPosition, mvPosition, center, scale, sin, cos ) {\n\n\t// compute position in camera space\n\t_alignedPosition.subVectors( vertexPosition, center ).addScalar( 0.5 ).multiply( scale );\n\n\t// to check if rotation is not zero\n\tif ( sin !== undefined ) {\n\n\t\t_rotatedPosition.x = ( cos * _alignedPosition.x ) - ( sin * _alignedPosition.y );\n\t\t_rotatedPosition.y = ( sin * _alignedPosition.x ) + ( cos * _alignedPosition.y );\n\n\t} else {\n\n\t\t_rotatedPosition.copy( _alignedPosition );\n\n\t}\n\n\n\tvertexPosition.copy( mvPosition );\n\tvertexPosition.x += _rotatedPosition.x;\n\tvertexPosition.y += _rotatedPosition.y;\n\n\t// transform to world space\n\tvertexPosition.applyMatrix4( _viewWorldMatrix );\n\n}\n\nconst _v1$2 = /*@__PURE__*/ new Vector3();\nconst _v2$1 = /*@__PURE__*/ new Vector3();\n\nclass LOD extends Object3D {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis._currentLevel = 0;\n\n\t\tthis.type = 'LOD';\n\n\t\tObject.defineProperties( this, {\n\t\t\tlevels: {\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: []\n\t\t\t},\n\t\t\tisLOD: {\n\t\t\t\tvalue: true,\n\t\t\t}\n\t\t} );\n\n\t\tthis.autoUpdate = true;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source, false );\n\n\t\tconst levels = source.levels;\n\n\t\tfor ( let i = 0, l = levels.length; i < l; i ++ ) {\n\n\t\t\tconst level = levels[ i ];\n\n\t\t\tthis.addLevel( level.object.clone(), level.distance, level.hysteresis );\n\n\t\t}\n\n\t\tthis.autoUpdate = source.autoUpdate;\n\n\t\treturn this;\n\n\t}\n\n\taddLevel( object, distance = 0, hysteresis = 0 ) {\n\n\t\tdistance = Math.abs( distance );\n\n\t\tconst levels = this.levels;\n\n\t\tlet l;\n\n\t\tfor ( l = 0; l < levels.length; l ++ ) {\n\n\t\t\tif ( distance < levels[ l ].distance ) {\n\n\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t\tlevels.splice( l, 0, { distance: distance, hysteresis: hysteresis, object: object } );\n\n\t\tthis.add( object );\n\n\t\treturn this;\n\n\t}\n\n\tremoveLevel( distance ) {\n\n\t\tconst levels = this.levels;\n\n\t\tfor ( let i = 0; i < levels.length; i ++ ) {\n\n\t\t\tif ( levels[ i ].distance === distance ) {\n\n\t\t\t\tconst removedElements = levels.splice( i, 1 );\n\t\t\t\tthis.remove( removedElements[ 0 ].object );\n\n\t\t\t\treturn true;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn false;\n\n\t}\n\n\tgetCurrentLevel() {\n\n\t\treturn this._currentLevel;\n\n\t}\n\n\n\n\tgetObjectForDistance( distance ) {\n\n\t\tconst levels = this.levels;\n\n\t\tif ( levels.length > 0 ) {\n\n\t\t\tlet i, l;\n\n\t\t\tfor ( i = 1, l = levels.length; i < l; i ++ ) {\n\n\t\t\t\tlet levelDistance = levels[ i ].distance;\n\n\t\t\t\tif ( levels[ i ].object.visible ) {\n\n\t\t\t\t\tlevelDistance -= levelDistance * levels[ i ].hysteresis;\n\n\t\t\t\t}\n\n\t\t\t\tif ( distance < levelDistance ) {\n\n\t\t\t\t\tbreak;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn levels[ i - 1 ].object;\n\n\t\t}\n\n\t\treturn null;\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tconst levels = this.levels;\n\n\t\tif ( levels.length > 0 ) {\n\n\t\t\t_v1$2.setFromMatrixPosition( this.matrixWorld );\n\n\t\t\tconst distance = raycaster.ray.origin.distanceTo( _v1$2 );\n\n\t\t\tthis.getObjectForDistance( distance ).raycast( raycaster, intersects );\n\n\t\t}\n\n\t}\n\n\tupdate( camera ) {\n\n\t\tconst levels = this.levels;\n\n\t\tif ( levels.length > 1 ) {\n\n\t\t\t_v1$2.setFromMatrixPosition( camera.matrixWorld );\n\t\t\t_v2$1.setFromMatrixPosition( this.matrixWorld );\n\n\t\t\tconst distance = _v1$2.distanceTo( _v2$1 ) / camera.zoom;\n\n\t\t\tlevels[ 0 ].object.visible = true;\n\n\t\t\tlet i, l;\n\n\t\t\tfor ( i = 1, l = levels.length; i < l; i ++ ) {\n\n\t\t\t\tlet levelDistance = levels[ i ].distance;\n\n\t\t\t\tif ( levels[ i ].object.visible ) {\n\n\t\t\t\t\tlevelDistance -= levelDistance * levels[ i ].hysteresis;\n\n\t\t\t\t}\n\n\t\t\t\tif ( distance >= levelDistance ) {\n\n\t\t\t\t\tlevels[ i - 1 ].object.visible = false;\n\t\t\t\t\tlevels[ i ].object.visible = true;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tbreak;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis._currentLevel = i - 1;\n\n\t\t\tfor ( ; i < l; i ++ ) {\n\n\t\t\t\tlevels[ i ].object.visible = false;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tif ( this.autoUpdate === false ) data.object.autoUpdate = false;\n\n\t\tdata.object.levels = [];\n\n\t\tconst levels = this.levels;\n\n\t\tfor ( let i = 0, l = levels.length; i < l; i ++ ) {\n\n\t\t\tconst level = levels[ i ];\n\n\t\t\tdata.object.levels.push( {\n\t\t\t\tobject: level.object.uuid,\n\t\t\t\tdistance: level.distance,\n\t\t\t\thysteresis: level.hysteresis\n\t\t\t} );\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n}\n\nconst _basePosition = /*@__PURE__*/ new Vector3();\n\nconst _skinIndex = /*@__PURE__*/ new Vector4();\nconst _skinWeight = /*@__PURE__*/ new Vector4();\n\nconst _vector3 = /*@__PURE__*/ new Vector3();\nconst _matrix4 = /*@__PURE__*/ new Matrix4();\nconst _vertex = /*@__PURE__*/ new Vector3();\n\nconst _sphere$4 = /*@__PURE__*/ new Sphere();\nconst _inverseMatrix$2 = /*@__PURE__*/ new Matrix4();\nconst _ray$2 = /*@__PURE__*/ new Ray();\n\nclass SkinnedMesh extends Mesh {\n\n\tconstructor( geometry, material ) {\n\n\t\tsuper( geometry, material );\n\n\t\tthis.isSkinnedMesh = true;\n\n\t\tthis.type = 'SkinnedMesh';\n\n\t\tthis.bindMode = AttachedBindMode;\n\t\tthis.bindMatrix = new Matrix4();\n\t\tthis.bindMatrixInverse = new Matrix4();\n\n\t\tthis.boundingBox = null;\n\t\tthis.boundingSphere = null;\n\n\t}\n\n\tcomputeBoundingBox() {\n\n\t\tconst geometry = this.geometry;\n\n\t\tif ( this.boundingBox === null ) {\n\n\t\t\tthis.boundingBox = new Box3();\n\n\t\t}\n\n\t\tthis.boundingBox.makeEmpty();\n\n\t\tconst positionAttribute = geometry.getAttribute( 'position' );\n\n\t\tfor ( let i = 0; i < positionAttribute.count; i ++ ) {\n\n\t\t\tthis.getVertexPosition( i, _vertex );\n\t\t\tthis.boundingBox.expandByPoint( _vertex );\n\n\t\t}\n\n\t}\n\n\tcomputeBoundingSphere() {\n\n\t\tconst geometry = this.geometry;\n\n\t\tif ( this.boundingSphere === null ) {\n\n\t\t\tthis.boundingSphere = new Sphere();\n\n\t\t}\n\n\t\tthis.boundingSphere.makeEmpty();\n\n\t\tconst positionAttribute = geometry.getAttribute( 'position' );\n\n\t\tfor ( let i = 0; i < positionAttribute.count; i ++ ) {\n\n\t\t\tthis.getVertexPosition( i, _vertex );\n\t\t\tthis.boundingSphere.expandByPoint( _vertex );\n\n\t\t}\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.bindMode = source.bindMode;\n\t\tthis.bindMatrix.copy( source.bindMatrix );\n\t\tthis.bindMatrixInverse.copy( source.bindMatrixInverse );\n\n\t\tthis.skeleton = source.skeleton;\n\n\t\tif ( source.boundingBox !== null ) this.boundingBox = source.boundingBox.clone();\n\t\tif ( source.boundingSphere !== null ) this.boundingSphere = source.boundingSphere.clone();\n\n\t\treturn this;\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tconst material = this.material;\n\t\tconst matrixWorld = this.matrixWorld;\n\n\t\tif ( material === undefined ) return;\n\n\t\t// test with bounding sphere in world space\n\n\t\tif ( this.boundingSphere === null ) this.computeBoundingSphere();\n\n\t\t_sphere$4.copy( this.boundingSphere );\n\t\t_sphere$4.applyMatrix4( matrixWorld );\n\n\t\tif ( raycaster.ray.intersectsSphere( _sphere$4 ) === false ) return;\n\n\t\t// convert ray to local space of skinned mesh\n\n\t\t_inverseMatrix$2.copy( matrixWorld ).invert();\n\t\t_ray$2.copy( raycaster.ray ).applyMatrix4( _inverseMatrix$2 );\n\n\t\t// test with bounding box in local space\n\n\t\tif ( this.boundingBox !== null ) {\n\n\t\t\tif ( _ray$2.intersectsBox( this.boundingBox ) === false ) return;\n\n\t\t}\n\n\t\t// test for intersections with geometry\n\n\t\tthis._computeIntersections( raycaster, intersects, _ray$2 );\n\n\t}\n\n\tgetVertexPosition( index, target ) {\n\n\t\tsuper.getVertexPosition( index, target );\n\n\t\tthis.applyBoneTransform( index, target );\n\n\t\treturn target;\n\n\t}\n\n\tbind( skeleton, bindMatrix ) {\n\n\t\tthis.skeleton = skeleton;\n\n\t\tif ( bindMatrix === undefined ) {\n\n\t\t\tthis.updateMatrixWorld( true );\n\n\t\t\tthis.skeleton.calculateInverses();\n\n\t\t\tbindMatrix = this.matrixWorld;\n\n\t\t}\n\n\t\tthis.bindMatrix.copy( bindMatrix );\n\t\tthis.bindMatrixInverse.copy( bindMatrix ).invert();\n\n\t}\n\n\tpose() {\n\n\t\tthis.skeleton.pose();\n\n\t}\n\n\tnormalizeSkinWeights() {\n\n\t\tconst vector = new Vector4();\n\n\t\tconst skinWeight = this.geometry.attributes.skinWeight;\n\n\t\tfor ( let i = 0, l = skinWeight.count; i < l; i ++ ) {\n\n\t\t\tvector.fromBufferAttribute( skinWeight, i );\n\n\t\t\tconst scale = 1.0 / vector.manhattanLength();\n\n\t\t\tif ( scale !== Infinity ) {\n\n\t\t\t\tvector.multiplyScalar( scale );\n\n\t\t\t} else {\n\n\t\t\t\tvector.set( 1, 0, 0, 0 ); // do something reasonable\n\n\t\t\t}\n\n\t\t\tskinWeight.setXYZW( i, vector.x, vector.y, vector.z, vector.w );\n\n\t\t}\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tsuper.updateMatrixWorld( force );\n\n\t\tif ( this.bindMode === AttachedBindMode ) {\n\n\t\t\tthis.bindMatrixInverse.copy( this.matrixWorld ).invert();\n\n\t\t} else if ( this.bindMode === DetachedBindMode ) {\n\n\t\t\tthis.bindMatrixInverse.copy( this.bindMatrix ).invert();\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.SkinnedMesh: Unrecognized bindMode: ' + this.bindMode );\n\n\t\t}\n\n\t}\n\n\tapplyBoneTransform( index, vector ) {\n\n\t\tconst skeleton = this.skeleton;\n\t\tconst geometry = this.geometry;\n\n\t\t_skinIndex.fromBufferAttribute( geometry.attributes.skinIndex, index );\n\t\t_skinWeight.fromBufferAttribute( geometry.attributes.skinWeight, index );\n\n\t\t_basePosition.copy( vector ).applyMatrix4( this.bindMatrix );\n\n\t\tvector.set( 0, 0, 0 );\n\n\t\tfor ( let i = 0; i < 4; i ++ ) {\n\n\t\t\tconst weight = _skinWeight.getComponent( i );\n\n\t\t\tif ( weight !== 0 ) {\n\n\t\t\t\tconst boneIndex = _skinIndex.getComponent( i );\n\n\t\t\t\t_matrix4.multiplyMatrices( skeleton.bones[ boneIndex ].matrixWorld, skeleton.boneInverses[ boneIndex ] );\n\n\t\t\t\tvector.addScaledVector( _vector3.copy( _basePosition ).applyMatrix4( _matrix4 ), weight );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn vector.applyMatrix4( this.bindMatrixInverse );\n\n\t}\n\n}\n\nclass Bone extends Object3D {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isBone = true;\n\n\t\tthis.type = 'Bone';\n\n\t}\n\n}\n\nclass DataTexture extends Texture {\n\n\tconstructor( data = null, width = 1, height = 1, format, type, mapping, wrapS, wrapT, magFilter = NearestFilter, minFilter = NearestFilter, anisotropy, colorSpace ) {\n\n\t\tsuper( null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, colorSpace );\n\n\t\tthis.isDataTexture = true;\n\n\t\tthis.image = { data: data, width: width, height: height };\n\n\t\tthis.generateMipmaps = false;\n\t\tthis.flipY = false;\n\t\tthis.unpackAlignment = 1;\n\n\t}\n\n}\n\nconst _offsetMatrix = /*@__PURE__*/ new Matrix4();\nconst _identityMatrix = /*@__PURE__*/ new Matrix4();\n\nclass Skeleton {\n\n\tconstructor( bones = [], boneInverses = [] ) {\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.bones = bones.slice( 0 );\n\t\tthis.boneInverses = boneInverses;\n\t\tthis.boneMatrices = null;\n\n\t\tthis.boneTexture = null;\n\n\t\tthis.init();\n\n\t}\n\n\tinit() {\n\n\t\tconst bones = this.bones;\n\t\tconst boneInverses = this.boneInverses;\n\n\t\tthis.boneMatrices = new Float32Array( bones.length * 16 );\n\n\t\t// calculate inverse bone matrices if necessary\n\n\t\tif ( boneInverses.length === 0 ) {\n\n\t\t\tthis.calculateInverses();\n\n\t\t} else {\n\n\t\t\t// handle special case\n\n\t\t\tif ( bones.length !== boneInverses.length ) {\n\n\t\t\t\tconsole.warn( 'THREE.Skeleton: Number of inverse bone matrices does not match amount of bones.' );\n\n\t\t\t\tthis.boneInverses = [];\n\n\t\t\t\tfor ( let i = 0, il = this.bones.length; i < il; i ++ ) {\n\n\t\t\t\t\tthis.boneInverses.push( new Matrix4() );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tcalculateInverses() {\n\n\t\tthis.boneInverses.length = 0;\n\n\t\tfor ( let i = 0, il = this.bones.length; i < il; i ++ ) {\n\n\t\t\tconst inverse = new Matrix4();\n\n\t\t\tif ( this.bones[ i ] ) {\n\n\t\t\t\tinverse.copy( this.bones[ i ].matrixWorld ).invert();\n\n\t\t\t}\n\n\t\t\tthis.boneInverses.push( inverse );\n\n\t\t}\n\n\t}\n\n\tpose() {\n\n\t\t// recover the bind-time world matrices\n\n\t\tfor ( let i = 0, il = this.bones.length; i < il; i ++ ) {\n\n\t\t\tconst bone = this.bones[ i ];\n\n\t\t\tif ( bone ) {\n\n\t\t\t\tbone.matrixWorld.copy( this.boneInverses[ i ] ).invert();\n\n\t\t\t}\n\n\t\t}\n\n\t\t// compute the local matrices, positions, rotations and scales\n\n\t\tfor ( let i = 0, il = this.bones.length; i < il; i ++ ) {\n\n\t\t\tconst bone = this.bones[ i ];\n\n\t\t\tif ( bone ) {\n\n\t\t\t\tif ( bone.parent && bone.parent.isBone ) {\n\n\t\t\t\t\tbone.matrix.copy( bone.parent.matrixWorld ).invert();\n\t\t\t\t\tbone.matrix.multiply( bone.matrixWorld );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tbone.matrix.copy( bone.matrixWorld );\n\n\t\t\t\t}\n\n\t\t\t\tbone.matrix.decompose( bone.position, bone.quaternion, bone.scale );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tupdate() {\n\n\t\tconst bones = this.bones;\n\t\tconst boneInverses = this.boneInverses;\n\t\tconst boneMatrices = this.boneMatrices;\n\t\tconst boneTexture = this.boneTexture;\n\n\t\t// flatten bone matrices to array\n\n\t\tfor ( let i = 0, il = bones.length; i < il; i ++ ) {\n\n\t\t\t// compute the offset between the current and the original transform\n\n\t\t\tconst matrix = bones[ i ] ? bones[ i ].matrixWorld : _identityMatrix;\n\n\t\t\t_offsetMatrix.multiplyMatrices( matrix, boneInverses[ i ] );\n\t\t\t_offsetMatrix.toArray( boneMatrices, i * 16 );\n\n\t\t}\n\n\t\tif ( boneTexture !== null ) {\n\n\t\t\tboneTexture.needsUpdate = true;\n\n\t\t}\n\n\t}\n\n\tclone() {\n\n\t\treturn new Skeleton( this.bones, this.boneInverses );\n\n\t}\n\n\tcomputeBoneTexture() {\n\n\t\t// layout (1 matrix = 4 pixels)\n\t\t// RGBA RGBA RGBA RGBA (=> column1, column2, column3, column4)\n\t\t// with 8x8 pixel texture max 16 bones * 4 pixels = (8 * 8)\n\t\t// 16x16 pixel texture max 64 bones * 4 pixels = (16 * 16)\n\t\t// 32x32 pixel texture max 256 bones * 4 pixels = (32 * 32)\n\t\t// 64x64 pixel texture max 1024 bones * 4 pixels = (64 * 64)\n\n\t\tlet size = Math.sqrt( this.bones.length * 4 ); // 4 pixels needed for 1 matrix\n\t\tsize = Math.ceil( size / 4 ) * 4;\n\t\tsize = Math.max( size, 4 );\n\n\t\tconst boneMatrices = new Float32Array( size * size * 4 ); // 4 floats per RGBA pixel\n\t\tboneMatrices.set( this.boneMatrices ); // copy current values\n\n\t\tconst boneTexture = new DataTexture( boneMatrices, size, size, RGBAFormat, FloatType );\n\t\tboneTexture.needsUpdate = true;\n\n\t\tthis.boneMatrices = boneMatrices;\n\t\tthis.boneTexture = boneTexture;\n\n\t\treturn this;\n\n\t}\n\n\tgetBoneByName( name ) {\n\n\t\tfor ( let i = 0, il = this.bones.length; i < il; i ++ ) {\n\n\t\t\tconst bone = this.bones[ i ];\n\n\t\t\tif ( bone.name === name ) {\n\n\t\t\t\treturn bone;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn undefined;\n\n\t}\n\n\tdispose( ) {\n\n\t\tif ( this.boneTexture !== null ) {\n\n\t\t\tthis.boneTexture.dispose();\n\n\t\t\tthis.boneTexture = null;\n\n\t\t}\n\n\t}\n\n\tfromJSON( json, bones ) {\n\n\t\tthis.uuid = json.uuid;\n\n\t\tfor ( let i = 0, l = json.bones.length; i < l; i ++ ) {\n\n\t\t\tconst uuid = json.bones[ i ];\n\t\t\tlet bone = bones[ uuid ];\n\n\t\t\tif ( bone === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.Skeleton: No bone found with UUID:', uuid );\n\t\t\t\tbone = new Bone();\n\n\t\t\t}\n\n\t\t\tthis.bones.push( bone );\n\t\t\tthis.boneInverses.push( new Matrix4().fromArray( json.boneInverses[ i ] ) );\n\n\t\t}\n\n\t\tthis.init();\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = {\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.6,\n\t\t\t\ttype: 'Skeleton',\n\t\t\t\tgenerator: 'Skeleton.toJSON'\n\t\t\t},\n\t\t\tbones: [],\n\t\t\tboneInverses: []\n\t\t};\n\n\t\tdata.uuid = this.uuid;\n\n\t\tconst bones = this.bones;\n\t\tconst boneInverses = this.boneInverses;\n\n\t\tfor ( let i = 0, l = bones.length; i < l; i ++ ) {\n\n\t\t\tconst bone = bones[ i ];\n\t\t\tdata.bones.push( bone.uuid );\n\n\t\t\tconst boneInverse = boneInverses[ i ];\n\t\t\tdata.boneInverses.push( boneInverse.toArray() );\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n}\n\nclass InstancedBufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized, meshPerAttribute = 1 ) {\n\n\t\tsuper( array, itemSize, normalized );\n\n\t\tthis.isInstancedBufferAttribute = true;\n\n\t\tthis.meshPerAttribute = meshPerAttribute;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.meshPerAttribute = source.meshPerAttribute;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.meshPerAttribute = this.meshPerAttribute;\n\n\t\tdata.isInstancedBufferAttribute = true;\n\n\t\treturn data;\n\n\t}\n\n}\n\nconst _instanceLocalMatrix = /*@__PURE__*/ new Matrix4();\nconst _instanceWorldMatrix = /*@__PURE__*/ new Matrix4();\n\nconst _instanceIntersects = [];\n\nconst _box3 = /*@__PURE__*/ new Box3();\nconst _identity = /*@__PURE__*/ new Matrix4();\nconst _mesh$1 = /*@__PURE__*/ new Mesh();\nconst _sphere$3 = /*@__PURE__*/ new Sphere();\n\nclass InstancedMesh extends Mesh {\n\n\tconstructor( geometry, material, count ) {\n\n\t\tsuper( geometry, material );\n\n\t\tthis.isInstancedMesh = true;\n\n\t\tthis.instanceMatrix = new InstancedBufferAttribute( new Float32Array( count * 16 ), 16 );\n\t\tthis.instanceColor = null;\n\t\tthis.morphTexture = null;\n\n\t\tthis.count = count;\n\n\t\tthis.boundingBox = null;\n\t\tthis.boundingSphere = null;\n\n\t\tfor ( let i = 0; i < count; i ++ ) {\n\n\t\t\tthis.setMatrixAt( i, _identity );\n\n\t\t}\n\n\t}\n\n\tcomputeBoundingBox() {\n\n\t\tconst geometry = this.geometry;\n\t\tconst count = this.count;\n\n\t\tif ( this.boundingBox === null ) {\n\n\t\t\tthis.boundingBox = new Box3();\n\n\t\t}\n\n\t\tif ( geometry.boundingBox === null ) {\n\n\t\t\tgeometry.computeBoundingBox();\n\n\t\t}\n\n\t\tthis.boundingBox.makeEmpty();\n\n\t\tfor ( let i = 0; i < count; i ++ ) {\n\n\t\t\tthis.getMatrixAt( i, _instanceLocalMatrix );\n\n\t\t\t_box3.copy( geometry.boundingBox ).applyMatrix4( _instanceLocalMatrix );\n\n\t\t\tthis.boundingBox.union( _box3 );\n\n\t\t}\n\n\t}\n\n\tcomputeBoundingSphere() {\n\n\t\tconst geometry = this.geometry;\n\t\tconst count = this.count;\n\n\t\tif ( this.boundingSphere === null ) {\n\n\t\t\tthis.boundingSphere = new Sphere();\n\n\t\t}\n\n\t\tif ( geometry.boundingSphere === null ) {\n\n\t\t\tgeometry.computeBoundingSphere();\n\n\t\t}\n\n\t\tthis.boundingSphere.makeEmpty();\n\n\t\tfor ( let i = 0; i < count; i ++ ) {\n\n\t\t\tthis.getMatrixAt( i, _instanceLocalMatrix );\n\n\t\t\t_sphere$3.copy( geometry.boundingSphere ).applyMatrix4( _instanceLocalMatrix );\n\n\t\t\tthis.boundingSphere.union( _sphere$3 );\n\n\t\t}\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.instanceMatrix.copy( source.instanceMatrix );\n\n\t\tif ( source.morphTexture !== null ) this.morphTexture = source.morphTexture.clone();\n\t\tif ( source.instanceColor !== null ) this.instanceColor = source.instanceColor.clone();\n\n\t\tthis.count = source.count;\n\n\t\tif ( source.boundingBox !== null ) this.boundingBox = source.boundingBox.clone();\n\t\tif ( source.boundingSphere !== null ) this.boundingSphere = source.boundingSphere.clone();\n\n\t\treturn this;\n\n\t}\n\n\tgetColorAt( index, color ) {\n\n\t\tcolor.fromArray( this.instanceColor.array, index * 3 );\n\n\t}\n\n\tgetMatrixAt( index, matrix ) {\n\n\t\tmatrix.fromArray( this.instanceMatrix.array, index * 16 );\n\n\t}\n\n\tgetMorphAt( index, object ) {\n\n\t\tconst objectInfluences = object.morphTargetInfluences;\n\n\t\tconst array = this.morphTexture.source.data.data;\n\n\t\tconst len = objectInfluences.length + 1; // All influences + the baseInfluenceSum\n\n\t\tconst dataIndex = index * len + 1; // Skip the baseInfluenceSum at the beginning\n\n\t\tfor ( let i = 0; i < objectInfluences.length; i ++ ) {\n\n\t\t\tobjectInfluences[ i ] = array[ dataIndex + i ];\n\n\t\t}\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tconst matrixWorld = this.matrixWorld;\n\t\tconst raycastTimes = this.count;\n\n\t\t_mesh$1.geometry = this.geometry;\n\t\t_mesh$1.material = this.material;\n\n\t\tif ( _mesh$1.material === undefined ) return;\n\n\t\t// test with bounding sphere first\n\n\t\tif ( this.boundingSphere === null ) this.computeBoundingSphere();\n\n\t\t_sphere$3.copy( this.boundingSphere );\n\t\t_sphere$3.applyMatrix4( matrixWorld );\n\n\t\tif ( raycaster.ray.intersectsSphere( _sphere$3 ) === false ) return;\n\n\t\t// now test each instance\n\n\t\tfor ( let instanceId = 0; instanceId < raycastTimes; instanceId ++ ) {\n\n\t\t\t// calculate the world matrix for each instance\n\n\t\t\tthis.getMatrixAt( instanceId, _instanceLocalMatrix );\n\n\t\t\t_instanceWorldMatrix.multiplyMatrices( matrixWorld, _instanceLocalMatrix );\n\n\t\t\t// the mesh represents this single instance\n\n\t\t\t_mesh$1.matrixWorld = _instanceWorldMatrix;\n\n\t\t\t_mesh$1.raycast( raycaster, _instanceIntersects );\n\n\t\t\t// process the result of raycast\n\n\t\t\tfor ( let i = 0, l = _instanceIntersects.length; i < l; i ++ ) {\n\n\t\t\t\tconst intersect = _instanceIntersects[ i ];\n\t\t\t\tintersect.instanceId = instanceId;\n\t\t\t\tintersect.object = this;\n\t\t\t\tintersects.push( intersect );\n\n\t\t\t}\n\n\t\t\t_instanceIntersects.length = 0;\n\n\t\t}\n\n\t}\n\n\tsetColorAt( index, color ) {\n\n\t\tif ( this.instanceColor === null ) {\n\n\t\t\tthis.instanceColor = new InstancedBufferAttribute( new Float32Array( this.instanceMatrix.count * 3 ).fill( 1 ), 3 );\n\n\t\t}\n\n\t\tcolor.toArray( this.instanceColor.array, index * 3 );\n\n\t}\n\n\tsetMatrixAt( index, matrix ) {\n\n\t\tmatrix.toArray( this.instanceMatrix.array, index * 16 );\n\n\t}\n\n\tsetMorphAt( index, object ) {\n\n\t\tconst objectInfluences = object.morphTargetInfluences;\n\n\t\tconst len = objectInfluences.length + 1; // morphBaseInfluence + all influences\n\n\t\tif ( this.morphTexture === null ) {\n\n\t\t\tthis.morphTexture = new DataTexture( new Float32Array( len * this.count ), len, this.count, RedFormat, FloatType );\n\n\t\t}\n\n\t\tconst array = this.morphTexture.source.data.data;\n\n\t\tlet morphInfluencesSum = 0;\n\n\t\tfor ( let i = 0; i < objectInfluences.length; i ++ ) {\n\n\t\t\tmorphInfluencesSum += objectInfluences[ i ];\n\n\t\t}\n\n\t\tconst morphBaseInfluence = this.geometry.morphTargetsRelative ? 1 : 1 - morphInfluencesSum;\n\n\t\tconst dataIndex = len * index;\n\n\t\tarray[ dataIndex ] = morphBaseInfluence;\n\n\t\tarray.set( objectInfluences, dataIndex + 1 );\n\n\t}\n\n\tupdateMorphTargets() {\n\n\t}\n\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t\tif ( this.morphTexture !== null ) {\n\n\t\t\tthis.morphTexture.dispose();\n\t\t\tthis.morphTexture = null;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\nfunction ascIdSort( a, b ) {\n\n\treturn a - b;\n\n}\n\nfunction sortOpaque( a, b ) {\n\n\treturn a.z - b.z;\n\n}\n\nfunction sortTransparent( a, b ) {\n\n\treturn b.z - a.z;\n\n}\n\nclass MultiDrawRenderList {\n\n\tconstructor() {\n\n\t\tthis.index = 0;\n\t\tthis.pool = [];\n\t\tthis.list = [];\n\n\t}\n\n\tpush( start, count, z, index ) {\n\n\t\tconst pool = this.pool;\n\t\tconst list = this.list;\n\t\tif ( this.index >= pool.length ) {\n\n\t\t\tpool.push( {\n\n\t\t\t\tstart: - 1,\n\t\t\t\tcount: - 1,\n\t\t\t\tz: - 1,\n\t\t\t\tindex: - 1,\n\n\t\t\t} );\n\n\t\t}\n\n\t\tconst item = pool[ this.index ];\n\t\tlist.push( item );\n\t\tthis.index ++;\n\n\t\titem.start = start;\n\t\titem.count = count;\n\t\titem.z = z;\n\t\titem.index = index;\n\n\t}\n\n\treset() {\n\n\t\tthis.list.length = 0;\n\t\tthis.index = 0;\n\n\t}\n\n}\n\nconst _matrix$1 = /*@__PURE__*/ new Matrix4();\nconst _whiteColor = /*@__PURE__*/ new Color( 1, 1, 1 );\nconst _frustum = /*@__PURE__*/ new Frustum();\nconst _box$1 = /*@__PURE__*/ new Box3();\nconst _sphere$2 = /*@__PURE__*/ new Sphere();\nconst _vector$5 = /*@__PURE__*/ new Vector3();\nconst _forward = /*@__PURE__*/ new Vector3();\nconst _temp = /*@__PURE__*/ new Vector3();\nconst _renderList = /*@__PURE__*/ new MultiDrawRenderList();\nconst _mesh = /*@__PURE__*/ new Mesh();\nconst _batchIntersects = [];\n\n// copies data from attribute \"src\" into \"target\" starting at \"targetOffset\"\nfunction copyAttributeData( src, target, targetOffset = 0 ) {\n\n\tconst itemSize = target.itemSize;\n\tif ( src.isInterleavedBufferAttribute || src.array.constructor !== target.array.constructor ) {\n\n\t\t// use the component getters and setters if the array data cannot\n\t\t// be copied directly\n\t\tconst vertexCount = src.count;\n\t\tfor ( let i = 0; i < vertexCount; i ++ ) {\n\n\t\t\tfor ( let c = 0; c < itemSize; c ++ ) {\n\n\t\t\t\ttarget.setComponent( i + targetOffset, c, src.getComponent( i, c ) );\n\n\t\t\t}\n\n\t\t}\n\n\t} else {\n\n\t\t// faster copy approach using typed array set function\n\t\ttarget.array.set( src.array, targetOffset * itemSize );\n\n\t}\n\n\ttarget.needsUpdate = true;\n\n}\n\n// safely copies array contents to a potentially smaller array\nfunction copyArrayContents( src, target ) {\n\n\tif ( src.constructor !== target.constructor ) {\n\n\t\t// if arrays are of a different type (eg due to index size increasing) then data must be per-element copied\n\t\tconst len = Math.min( src.length, target.length );\n\t\tfor ( let i = 0; i < len; i ++ ) {\n\n\t\t\ttarget[ i ] = src[ i ];\n\n\t\t}\n\n\t} else {\n\n\t\t// if the arrays use the same data layout we can use a fast block copy\n\t\tconst len = Math.min( src.length, target.length );\n\t\ttarget.set( new src.constructor( src.buffer, 0, len ) );\n\n\t}\n\n}\n\nclass BatchedMesh extends Mesh {\n\n\tget maxInstanceCount() {\n\n\t\treturn this._maxInstanceCount;\n\n\t}\n\n\tget instanceCount() {\n\n\t\treturn this._instanceInfo.length - this._availableInstanceIds.length;\n\n\t}\n\n\tget unusedVertexCount() {\n\n\t\treturn this._maxVertexCount - this._nextVertexStart;\n\n\t}\n\n\tget unusedIndexCount() {\n\n\t\treturn this._maxIndexCount - this._nextIndexStart;\n\n\t}\n\n\tconstructor( maxInstanceCount, maxVertexCount, maxIndexCount = maxVertexCount * 2, material ) {\n\n\t\tsuper( new BufferGeometry(), material );\n\n\t\tthis.isBatchedMesh = true;\n\t\tthis.perObjectFrustumCulled = true;\n\t\tthis.sortObjects = true;\n\t\tthis.boundingBox = null;\n\t\tthis.boundingSphere = null;\n\t\tthis.customSort = null;\n\n\t\t// stores visible, active, and geometry id per instance and reserved buffer ranges for geometries\n\t\tthis._instanceInfo = [];\n\t\tthis._geometryInfo = [];\n\n\t\t// instance, geometry ids that have been set as inactive, and are available to be overwritten\n\t\tthis._availableInstanceIds = [];\n\t\tthis._availableGeometryIds = [];\n\n\t\t// used to track where the next point is that geometry should be inserted\n\t\tthis._nextIndexStart = 0;\n\t\tthis._nextVertexStart = 0;\n\t\tthis._geometryCount = 0;\n\n\t\t// flags\n\t\tthis._visibilityChanged = true;\n\t\tthis._geometryInitialized = false;\n\n\t\t// cached user options\n\t\tthis._maxInstanceCount = maxInstanceCount;\n\t\tthis._maxVertexCount = maxVertexCount;\n\t\tthis._maxIndexCount = maxIndexCount;\n\n\t\t// buffers for multi draw\n\t\tthis._multiDrawCounts = new Int32Array( maxInstanceCount );\n\t\tthis._multiDrawStarts = new Int32Array( maxInstanceCount );\n\t\tthis._multiDrawCount = 0;\n\t\tthis._multiDrawInstances = null;\n\n\t\t// Local matrix per geometry by using data texture\n\t\tthis._matricesTexture = null;\n\t\tthis._indirectTexture = null;\n\t\tthis._colorsTexture = null;\n\n\t\tthis._initMatricesTexture();\n\t\tthis._initIndirectTexture();\n\n\t}\n\n\t_initMatricesTexture() {\n\n\t\t// layout (1 matrix = 4 pixels)\n\t\t// RGBA RGBA RGBA RGBA (=> column1, column2, column3, column4)\n\t\t// with 8x8 pixel texture max 16 matrices * 4 pixels = (8 * 8)\n\t\t// 16x16 pixel texture max 64 matrices * 4 pixels = (16 * 16)\n\t\t// 32x32 pixel texture max 256 matrices * 4 pixels = (32 * 32)\n\t\t// 64x64 pixel texture max 1024 matrices * 4 pixels = (64 * 64)\n\n\t\tlet size = Math.sqrt( this._maxInstanceCount * 4 ); // 4 pixels needed for 1 matrix\n\t\tsize = Math.ceil( size / 4 ) * 4;\n\t\tsize = Math.max( size, 4 );\n\n\t\tconst matricesArray = new Float32Array( size * size * 4 ); // 4 floats per RGBA pixel\n\t\tconst matricesTexture = new DataTexture( matricesArray, size, size, RGBAFormat, FloatType );\n\n\t\tthis._matricesTexture = matricesTexture;\n\n\t}\n\n\t_initIndirectTexture() {\n\n\t\tlet size = Math.sqrt( this._maxInstanceCount );\n\t\tsize = Math.ceil( size );\n\n\t\tconst indirectArray = new Uint32Array( size * size );\n\t\tconst indirectTexture = new DataTexture( indirectArray, size, size, RedIntegerFormat, UnsignedIntType );\n\n\t\tthis._indirectTexture = indirectTexture;\n\n\t}\n\n\t_initColorsTexture() {\n\n\t\tlet size = Math.sqrt( this._maxInstanceCount );\n\t\tsize = Math.ceil( size );\n\n\t\t// 4 floats per RGBA pixel initialized to white\n\t\tconst colorsArray = new Float32Array( size * size * 4 ).fill( 1 );\n\t\tconst colorsTexture = new DataTexture( colorsArray, size, size, RGBAFormat, FloatType );\n\t\tcolorsTexture.colorSpace = ColorManagement.workingColorSpace;\n\n\t\tthis._colorsTexture = colorsTexture;\n\n\t}\n\n\t_initializeGeometry( reference ) {\n\n\t\tconst geometry = this.geometry;\n\t\tconst maxVertexCount = this._maxVertexCount;\n\t\tconst maxIndexCount = this._maxIndexCount;\n\t\tif ( this._geometryInitialized === false ) {\n\n\t\t\tfor ( const attributeName in reference.attributes ) {\n\n\t\t\t\tconst srcAttribute = reference.getAttribute( attributeName );\n\t\t\t\tconst { array, itemSize, normalized } = srcAttribute;\n\n\t\t\t\tconst dstArray = new array.constructor( maxVertexCount * itemSize );\n\t\t\t\tconst dstAttribute = new BufferAttribute( dstArray, itemSize, normalized );\n\n\t\t\t\tgeometry.setAttribute( attributeName, dstAttribute );\n\n\t\t\t}\n\n\t\t\tif ( reference.getIndex() !== null ) {\n\n\t\t\t\t// Reserve last u16 index for primitive restart.\n\t\t\t\tconst indexArray = maxVertexCount > 65535\n\t\t\t\t\t? new Uint32Array( maxIndexCount )\n\t\t\t\t\t: new Uint16Array( maxIndexCount );\n\n\t\t\t\tgeometry.setIndex( new BufferAttribute( indexArray, 1 ) );\n\n\t\t\t}\n\n\t\t\tthis._geometryInitialized = true;\n\n\t\t}\n\n\t}\n\n\t// Make sure the geometry is compatible with the existing combined geometry attributes\n\t_validateGeometry( geometry ) {\n\n\t\t// check to ensure the geometries are using consistent attributes and indices\n\t\tconst batchGeometry = this.geometry;\n\t\tif ( Boolean( geometry.getIndex() ) !== Boolean( batchGeometry.getIndex() ) ) {\n\n\t\t\tthrow new Error( 'BatchedMesh: All geometries must consistently have \"index\".' );\n\n\t\t}\n\n\t\tfor ( const attributeName in batchGeometry.attributes ) {\n\n\t\t\tif ( ! geometry.hasAttribute( attributeName ) ) {\n\n\t\t\t\tthrow new Error( `BatchedMesh: Added geometry missing \"${ attributeName }\". All geometries must have consistent attributes.` );\n\n\t\t\t}\n\n\t\t\tconst srcAttribute = geometry.getAttribute( attributeName );\n\t\t\tconst dstAttribute = batchGeometry.getAttribute( attributeName );\n\t\t\tif ( srcAttribute.itemSize !== dstAttribute.itemSize || srcAttribute.normalized !== dstAttribute.normalized ) {\n\n\t\t\t\tthrow new Error( 'BatchedMesh: All attributes must have a consistent itemSize and normalized value.' );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tsetCustomSort( func ) {\n\n\t\tthis.customSort = func;\n\t\treturn this;\n\n\t}\n\n\tcomputeBoundingBox() {\n\n\t\tif ( this.boundingBox === null ) {\n\n\t\t\tthis.boundingBox = new Box3();\n\n\t\t}\n\n\t\tconst boundingBox = this.boundingBox;\n\t\tconst instanceInfo = this._instanceInfo;\n\n\t\tboundingBox.makeEmpty();\n\t\tfor ( let i = 0, l = instanceInfo.length; i < l; i ++ ) {\n\n\t\t\tif ( instanceInfo[ i ].active === false ) continue;\n\n\t\t\tconst geometryId = instanceInfo[ i ].geometryIndex;\n\t\t\tthis.getMatrixAt( i, _matrix$1 );\n\t\t\tthis.getBoundingBoxAt( geometryId, _box$1 ).applyMatrix4( _matrix$1 );\n\t\t\tboundingBox.union( _box$1 );\n\n\t\t}\n\n\t}\n\n\tcomputeBoundingSphere() {\n\n\t\tif ( this.boundingSphere === null ) {\n\n\t\t\tthis.boundingSphere = new Sphere();\n\n\t\t}\n\n\t\tconst boundingSphere = this.boundingSphere;\n\t\tconst instanceInfo = this._instanceInfo;\n\n\t\tboundingSphere.makeEmpty();\n\t\tfor ( let i = 0, l = instanceInfo.length; i < l; i ++ ) {\n\n\t\t\tif ( instanceInfo[ i ].active === false ) continue;\n\n\t\t\tconst geometryId = instanceInfo[ i ].geometryIndex;\n\t\t\tthis.getMatrixAt( i, _matrix$1 );\n\t\t\tthis.getBoundingSphereAt( geometryId, _sphere$2 ).applyMatrix4( _matrix$1 );\n\t\t\tboundingSphere.union( _sphere$2 );\n\n\t\t}\n\n\t}\n\n\taddInstance( geometryId ) {\n\n\t\tconst atCapacity = this._instanceInfo.length >= this.maxInstanceCount;\n\n\t\t// ensure we're not over geometry\n\t\tif ( atCapacity && this._availableInstanceIds.length === 0 ) {\n\n\t\t\tthrow new Error( 'BatchedMesh: Maximum item count reached.' );\n\n\t\t}\n\n\t\tconst instanceInfo = {\n\t\t\tvisible: true,\n\t\t\tactive: true,\n\t\t\tgeometryIndex: geometryId,\n\t\t};\n\n\t\tlet drawId = null;\n\n\t\t// Prioritize using previously freed instance ids\n\t\tif ( this._availableInstanceIds.length > 0 ) {\n\n\t\t\tthis._availableInstanceIds.sort( ascIdSort );\n\n\t\t\tdrawId = this._availableInstanceIds.shift();\n\t\t\tthis._instanceInfo[ drawId ] = instanceInfo;\n\n\t\t} else {\n\n\t\t\tdrawId = this._instanceInfo.length;\n\t\t\tthis._instanceInfo.push( instanceInfo );\n\n\t\t}\n\n\t\tconst matricesTexture = this._matricesTexture;\n\t\t_matrix$1.identity().toArray( matricesTexture.image.data, drawId * 16 );\n\t\tmatricesTexture.needsUpdate = true;\n\n\t\tconst colorsTexture = this._colorsTexture;\n\t\tif ( colorsTexture ) {\n\n\t\t\t_whiteColor.toArray( colorsTexture.image.data, drawId * 4 );\n\t\t\tcolorsTexture.needsUpdate = true;\n\n\t\t}\n\n\t\tthis._visibilityChanged = true;\n\t\treturn drawId;\n\n\t}\n\n\taddGeometry( geometry, reservedVertexCount = - 1, reservedIndexCount = - 1 ) {\n\n\t\tthis._initializeGeometry( geometry );\n\n\t\tthis._validateGeometry( geometry );\n\n\t\tconst geometryInfo = {\n\t\t\t// geometry information\n\t\t\tvertexStart: - 1,\n\t\t\tvertexCount: - 1,\n\t\t\treservedVertexCount: - 1,\n\n\t\t\tindexStart: - 1,\n\t\t\tindexCount: - 1,\n\t\t\treservedIndexCount: - 1,\n\n\t\t\t// draw range information\n\t\t\tstart: - 1,\n\t\t\tcount: - 1,\n\n\t\t\t// state\n\t\t\tboundingBox: null,\n\t\t\tboundingSphere: null,\n\t\t\tactive: true,\n\t\t};\n\n\t\tconst geometryInfoList = this._geometryInfo;\n\t\tgeometryInfo.vertexStart = this._nextVertexStart;\n\t\tgeometryInfo.reservedVertexCount = reservedVertexCount === - 1 ? geometry.getAttribute( 'position' ).count : reservedVertexCount;\n\n\t\tconst index = geometry.getIndex();\n\t\tconst hasIndex = index !== null;\n\t\tif ( hasIndex ) {\n\n\t\t\tgeometryInfo.indexStart = this._nextIndexStart;\n\t\t\tgeometryInfo.reservedIndexCount = reservedIndexCount === - 1 ? index.count : reservedIndexCount;\n\n\t\t}\n\n\t\tif (\n\t\t\tgeometryInfo.indexStart !== - 1 &&\n\t\t\tgeometryInfo.indexStart + geometryInfo.reservedIndexCount > this._maxIndexCount ||\n\t\t\tgeometryInfo.vertexStart + geometryInfo.reservedVertexCount > this._maxVertexCount\n\t\t) {\n\n\t\t\tthrow new Error( 'BatchedMesh: Reserved space request exceeds the maximum buffer size.' );\n\n\t\t}\n\n\t\t// update id\n\t\tlet geometryId;\n\t\tif ( this._availableGeometryIds.length > 0 ) {\n\n\t\t\tthis._availableGeometryIds.sort( ascIdSort );\n\n\t\t\tgeometryId = this._availableGeometryIds.shift();\n\t\t\tgeometryInfoList[ geometryId ] = geometryInfo;\n\n\n\t\t} else {\n\n\t\t\tgeometryId = this._geometryCount;\n\t\t\tthis._geometryCount ++;\n\t\t\tgeometryInfoList.push( geometryInfo );\n\n\t\t}\n\n\t\t// update the geometry\n\t\tthis.setGeometryAt( geometryId, geometry );\n\n\t\t// increment the next geometry position\n\t\tthis._nextIndexStart = geometryInfo.indexStart + geometryInfo.reservedIndexCount;\n\t\tthis._nextVertexStart = geometryInfo.vertexStart + geometryInfo.reservedVertexCount;\n\n\t\treturn geometryId;\n\n\t}\n\n\tsetGeometryAt( geometryId, geometry ) {\n\n\t\tif ( geometryId >= this._geometryCount ) {\n\n\t\t\tthrow new Error( 'BatchedMesh: Maximum geometry count reached.' );\n\n\t\t}\n\n\t\tthis._validateGeometry( geometry );\n\n\t\tconst batchGeometry = this.geometry;\n\t\tconst hasIndex = batchGeometry.getIndex() !== null;\n\t\tconst dstIndex = batchGeometry.getIndex();\n\t\tconst srcIndex = geometry.getIndex();\n\t\tconst geometryInfo = this._geometryInfo[ geometryId ];\n\t\tif (\n\t\t\thasIndex &&\n\t\t\tsrcIndex.count > geometryInfo.reservedIndexCount ||\n\t\t\tgeometry.attributes.position.count > geometryInfo.reservedVertexCount\n\t\t) {\n\n\t\t\tthrow new Error( 'BatchedMesh: Reserved space not large enough for provided geometry.' );\n\n\t\t}\n\n\t\t// copy geometry buffer data over\n\t\tconst vertexStart = geometryInfo.vertexStart;\n\t\tconst reservedVertexCount = geometryInfo.reservedVertexCount;\n\t\tgeometryInfo.vertexCount = geometry.getAttribute( 'position' ).count;\n\n\t\tfor ( const attributeName in batchGeometry.attributes ) {\n\n\t\t\t// copy attribute data\n\t\t\tconst srcAttribute = geometry.getAttribute( attributeName );\n\t\t\tconst dstAttribute = batchGeometry.getAttribute( attributeName );\n\t\t\tcopyAttributeData( srcAttribute, dstAttribute, vertexStart );\n\n\t\t\t// fill the rest in with zeroes\n\t\t\tconst itemSize = srcAttribute.itemSize;\n\t\t\tfor ( let i = srcAttribute.count, l = reservedVertexCount; i < l; i ++ ) {\n\n\t\t\t\tconst index = vertexStart + i;\n\t\t\t\tfor ( let c = 0; c < itemSize; c ++ ) {\n\n\t\t\t\t\tdstAttribute.setComponent( index, c, 0 );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tdstAttribute.needsUpdate = true;\n\t\t\tdstAttribute.addUpdateRange( vertexStart * itemSize, reservedVertexCount * itemSize );\n\n\t\t}\n\n\t\t// copy index\n\t\tif ( hasIndex ) {\n\n\t\t\tconst indexStart = geometryInfo.indexStart;\n\t\t\tconst reservedIndexCount = geometryInfo.reservedIndexCount;\n\t\t\tgeometryInfo.indexCount = geometry.getIndex().count;\n\n\t\t\t// copy index data over\n\t\t\tfor ( let i = 0; i < srcIndex.count; i ++ ) {\n\n\t\t\t\tdstIndex.setX( indexStart + i, vertexStart + srcIndex.getX( i ) );\n\n\t\t\t}\n\n\t\t\t// fill the rest in with zeroes\n\t\t\tfor ( let i = srcIndex.count, l = reservedIndexCount; i < l; i ++ ) {\n\n\t\t\t\tdstIndex.setX( indexStart + i, vertexStart );\n\n\t\t\t}\n\n\t\t\tdstIndex.needsUpdate = true;\n\t\t\tdstIndex.addUpdateRange( indexStart, geometryInfo.reservedIndexCount );\n\n\t\t}\n\n\t\t// update the draw range\n\t\tgeometryInfo.start = hasIndex ? geometryInfo.indexStart : geometryInfo.vertexStart;\n\t\tgeometryInfo.count = hasIndex ? geometryInfo.indexCount : geometryInfo.vertexCount;\n\n\t\t// store the bounding boxes\n\t\tgeometryInfo.boundingBox = null;\n\t\tif ( geometry.boundingBox !== null ) {\n\n\t\t\tgeometryInfo.boundingBox = geometry.boundingBox.clone();\n\n\t\t}\n\n\t\tgeometryInfo.boundingSphere = null;\n\t\tif ( geometry.boundingSphere !== null ) {\n\n\t\t\tgeometryInfo.boundingSphere = geometry.boundingSphere.clone();\n\n\t\t}\n\n\t\tthis._visibilityChanged = true;\n\t\treturn geometryId;\n\n\t}\n\n\tdeleteGeometry( geometryId ) {\n\n\t\tconst geometryInfoList = this._geometryInfo;\n\t\tif ( geometryId >= geometryInfoList.length || geometryInfoList[ geometryId ].active === false ) {\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\t// delete any instances associated with this geometry\n\t\tconst instanceInfo = this._instanceInfo;\n\t\tfor ( let i = 0, l = instanceInfo.length; i < l; i ++ ) {\n\n\t\t\tif ( instanceInfo[ i ].geometryIndex === geometryId ) {\n\n\t\t\t\tthis.deleteInstance( i );\n\n\t\t\t}\n\n\t\t}\n\n\t\tgeometryInfoList[ geometryId ].active = false;\n\t\tthis._availableGeometryIds.push( geometryId );\n\t\tthis._visibilityChanged = true;\n\n\t\treturn this;\n\n\t}\n\n\tdeleteInstance( instanceId ) {\n\n\t\tconst instanceInfo = this._instanceInfo;\n\t\tif ( instanceId >= instanceInfo.length || instanceInfo[ instanceId ].active === false ) {\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tinstanceInfo[ instanceId ].active = false;\n\t\tthis._availableInstanceIds.push( instanceId );\n\t\tthis._visibilityChanged = true;\n\n\t\treturn this;\n\n\t}\n\n\toptimize() {\n\n\t\t// track the next indices to copy data to\n\t\tlet nextVertexStart = 0;\n\t\tlet nextIndexStart = 0;\n\n\t\t// Iterate over all geometry ranges in order sorted from earliest in the geometry buffer to latest\n\t\t// in the geometry buffer. Because draw range objects can be reused there is no guarantee of their order.\n\t\tconst geometryInfoList = this._geometryInfo;\n\t\tconst indices = geometryInfoList\n\t\t\t.map( ( e, i ) => i )\n\t\t\t.sort( ( a, b ) => {\n\n\t\t\t\treturn geometryInfoList[ a ].vertexStart - geometryInfoList[ b ].vertexStart;\n\n\t\t\t} );\n\n\t\tconst geometry = this.geometry;\n\t\tfor ( let i = 0, l = geometryInfoList.length; i < l; i ++ ) {\n\n\t\t\t// if a geometry range is inactive then don't copy anything\n\t\t\tconst index = indices[ i ];\n\t\t\tconst geometryInfo = geometryInfoList[ index ];\n\t\t\tif ( geometryInfo.active === false ) {\n\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\t// if a geometry contains an index buffer then shift it, as well\n\t\t\tif ( geometry.index !== null ) {\n\n\t\t\t\tif ( geometryInfo.indexStart !== nextIndexStart ) {\n\n\t\t\t\t\tconst { indexStart, vertexStart, reservedIndexCount } = geometryInfo;\n\t\t\t\t\tconst index = geometry.index;\n\t\t\t\t\tconst array = index.array;\n\n\t\t\t\t\t// shift the index pointers based on how the vertex data will shift\n\t\t\t\t\t// adjusting the index must happen first so the original vertex start value is available\n\t\t\t\t\tconst elementDelta = nextVertexStart - vertexStart;\n\t\t\t\t\tfor ( let j = indexStart; j < indexStart + reservedIndexCount; j ++ ) {\n\n\t\t\t\t\t\tarray[ j ] = array[ j ] + elementDelta;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tindex.array.copyWithin( nextIndexStart, indexStart, indexStart + reservedIndexCount );\n\t\t\t\t\tindex.addUpdateRange( nextIndexStart, reservedIndexCount );\n\n\t\t\t\t\tgeometryInfo.indexStart = nextIndexStart;\n\n\t\t\t\t}\n\n\t\t\t\tnextIndexStart += geometryInfo.reservedIndexCount;\n\n\t\t\t}\n\n\t\t\t// if a geometry needs to be moved then copy attribute data to overwrite unused space\n\t\t\tif ( geometryInfo.vertexStart !== nextVertexStart ) {\n\n\t\t\t\tconst { vertexStart, reservedVertexCount } = geometryInfo;\n\t\t\t\tconst attributes = geometry.attributes;\n\t\t\t\tfor ( const key in attributes ) {\n\n\t\t\t\t\tconst attribute = attributes[ key ];\n\t\t\t\t\tconst { array, itemSize } = attribute;\n\t\t\t\t\tarray.copyWithin( nextVertexStart * itemSize, vertexStart * itemSize, ( vertexStart + reservedVertexCount ) * itemSize );\n\t\t\t\t\tattribute.addUpdateRange( nextVertexStart * itemSize, reservedVertexCount * itemSize );\n\n\t\t\t\t}\n\n\t\t\t\tgeometryInfo.vertexStart = nextVertexStart;\n\n\t\t\t}\n\n\t\t\tnextVertexStart += geometryInfo.reservedVertexCount;\n\t\t\tgeometryInfo.start = geometry.index ? geometryInfo.indexStart : geometryInfo.vertexStart;\n\n\t\t\t// step the next geometry points to the shifted position\n\t\t\tthis._nextIndexStart = geometry.index ? geometryInfo.indexStart + geometryInfo.reservedIndexCount : 0;\n\t\t\tthis._nextVertexStart = geometryInfo.vertexStart + geometryInfo.reservedVertexCount;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// get bounding box and compute it if it doesn't exist\n\tgetBoundingBoxAt( geometryId, target ) {\n\n\t\tif ( geometryId >= this._geometryCount ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t// compute bounding box\n\t\tconst geometry = this.geometry;\n\t\tconst geometryInfo = this._geometryInfo[ geometryId ];\n\t\tif ( geometryInfo.boundingBox === null ) {\n\n\t\t\tconst box = new Box3();\n\t\t\tconst index = geometry.index;\n\t\t\tconst position = geometry.attributes.position;\n\t\t\tfor ( let i = geometryInfo.start, l = geometryInfo.start + geometryInfo.count; i < l; i ++ ) {\n\n\t\t\t\tlet iv = i;\n\t\t\t\tif ( index ) {\n\n\t\t\t\t\tiv = index.getX( iv );\n\n\t\t\t\t}\n\n\t\t\t\tbox.expandByPoint( _vector$5.fromBufferAttribute( position, iv ) );\n\n\t\t\t}\n\n\t\t\tgeometryInfo.boundingBox = box;\n\n\t\t}\n\n\t\ttarget.copy( geometryInfo.boundingBox );\n\t\treturn target;\n\n\t}\n\n\t// get bounding sphere and compute it if it doesn't exist\n\tgetBoundingSphereAt( geometryId, target ) {\n\n\t\tif ( geometryId >= this._geometryCount ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t// compute bounding sphere\n\t\tconst geometry = this.geometry;\n\t\tconst geometryInfo = this._geometryInfo[ geometryId ];\n\t\tif ( geometryInfo.boundingSphere === null ) {\n\n\t\t\tconst sphere = new Sphere();\n\t\t\tthis.getBoundingBoxAt( geometryId, _box$1 );\n\t\t\t_box$1.getCenter( sphere.center );\n\n\t\t\tconst index = geometry.index;\n\t\t\tconst position = geometry.attributes.position;\n\n\t\t\tlet maxRadiusSq = 0;\n\t\t\tfor ( let i = geometryInfo.start, l = geometryInfo.start + geometryInfo.count; i < l; i ++ ) {\n\n\t\t\t\tlet iv = i;\n\t\t\t\tif ( index ) {\n\n\t\t\t\t\tiv = index.getX( iv );\n\n\t\t\t\t}\n\n\t\t\t\t_vector$5.fromBufferAttribute( position, iv );\n\t\t\t\tmaxRadiusSq = Math.max( maxRadiusSq, sphere.center.distanceToSquared( _vector$5 ) );\n\n\t\t\t}\n\n\t\t\tsphere.radius = Math.sqrt( maxRadiusSq );\n\t\t\tgeometryInfo.boundingSphere = sphere;\n\n\t\t}\n\n\t\ttarget.copy( geometryInfo.boundingSphere );\n\t\treturn target;\n\n\t}\n\n\tsetMatrixAt( instanceId, matrix ) {\n\n\t\tconst instanceInfo = this._instanceInfo;\n\t\tconst matricesTexture = this._matricesTexture;\n\t\tconst matricesArray = this._matricesTexture.image.data;\n\t\tif ( instanceId >= instanceInfo.length || instanceInfo[ instanceId ].active === false ) {\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tmatrix.toArray( matricesArray, instanceId * 16 );\n\t\tmatricesTexture.needsUpdate = true;\n\n\t\treturn this;\n\n\t}\n\n\tgetMatrixAt( instanceId, matrix ) {\n\n\t\tconst instanceInfo = this._instanceInfo;\n\t\tconst matricesArray = this._matricesTexture.image.data;\n\t\tif ( instanceId >= instanceInfo.length || instanceInfo[ instanceId ].active === false ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\treturn matrix.fromArray( matricesArray, instanceId * 16 );\n\n\t}\n\n\tsetColorAt( instanceId, color ) {\n\n\t\tif ( this._colorsTexture === null ) {\n\n\t\t\tthis._initColorsTexture();\n\n\t\t}\n\n\t\tconst colorsTexture = this._colorsTexture;\n\t\tconst colorsArray = this._colorsTexture.image.data;\n\t\tconst instanceInfo = this._instanceInfo;\n\t\tif ( instanceId >= instanceInfo.length || instanceInfo[ instanceId ].active === false ) {\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tcolor.toArray( colorsArray, instanceId * 4 );\n\t\tcolorsTexture.needsUpdate = true;\n\n\t\treturn this;\n\n\t}\n\n\tgetColorAt( instanceId, color ) {\n\n\t\tconst colorsArray = this._colorsTexture.image.data;\n\t\tconst instanceInfo = this._instanceInfo;\n\t\tif ( instanceId >= instanceInfo.length || instanceInfo[ instanceId ].active === false ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\treturn color.fromArray( colorsArray, instanceId * 4 );\n\n\t}\n\n\tsetVisibleAt( instanceId, value ) {\n\n\t\t// if the geometry is out of range, not active, or visibility state\n\t\t// does not change then return early\n\t\tconst instanceInfo = this._instanceInfo;\n\t\tif (\n\t\t\tinstanceId >= instanceInfo.length ||\n\t\t\tinstanceInfo[ instanceId ].active === false ||\n\t\t\tinstanceInfo[ instanceId ].visible === value\n\t\t) {\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tinstanceInfo[ instanceId ].visible = value;\n\t\tthis._visibilityChanged = true;\n\n\t\treturn this;\n\n\t}\n\n\tgetVisibleAt( instanceId ) {\n\n\t\t// return early if the geometry is out of range or not active\n\t\tconst instanceInfo = this._instanceInfo;\n\t\tif ( instanceId >= instanceInfo.length || instanceInfo[ instanceId ].active === false ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\treturn instanceInfo[ instanceId ].visible;\n\n\t}\n\n\tsetGeometryIdAt( instanceId, geometryId ) {\n\n\t\t// return early if the geometry is out of range or not active\n\t\tconst instanceInfo = this._instanceInfo;\n\t\tconst geometryInfoList = this._geometryInfo;\n\t\tif ( instanceId >= instanceInfo.length || instanceInfo[ instanceId ].active === false ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t// check if the provided geometryId is within the valid range\n\t\tif ( geometryId >= geometryInfoList.length || geometryInfoList[ geometryId ].active === false ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tinstanceInfo[ instanceId ].geometryIndex = geometryId;\n\n\t\treturn this;\n\n\t}\n\n\tgetGeometryIdAt( instanceId ) {\n\n\t\tconst instanceInfo = this._instanceInfo;\n\t\tif ( instanceId >= instanceInfo.length || instanceInfo[ instanceId ].active === false ) {\n\n\t\t\treturn - 1;\n\n\t\t}\n\n\t\treturn instanceInfo[ instanceId ].geometryIndex;\n\n\t}\n\n\tgetGeometryRangeAt( geometryId, target = {} ) {\n\n\t\tif ( geometryId < 0 || geometryId >= this._geometryCount ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst geometryInfo = this._geometryInfo[ geometryId ];\n\t\ttarget.vertexStart = geometryInfo.vertexStart;\n\t\ttarget.vertexCount = geometryInfo.vertexCount;\n\t\ttarget.reservedVertexCount = geometryInfo.reservedVertexCount;\n\n\t\ttarget.indexStart = geometryInfo.indexStart;\n\t\ttarget.indexCount = geometryInfo.indexCount;\n\t\ttarget.reservedIndexCount = geometryInfo.reservedIndexCount;\n\n\t\ttarget.start = geometryInfo.start;\n\t\ttarget.count = geometryInfo.count;\n\n\t\treturn target;\n\n\t}\n\n\tsetInstanceCount( maxInstanceCount ) {\n\n\t\t// shrink the available instances as much as possible\n\t\tconst availableInstanceIds = this._availableInstanceIds;\n\t\tconst instanceInfo = this._instanceInfo;\n\t\tavailableInstanceIds.sort( ascIdSort );\n\t\twhile ( availableInstanceIds[ availableInstanceIds.length - 1 ] === instanceInfo.length ) {\n\n\t\t\tinstanceInfo.pop();\n\t\t\tavailableInstanceIds.pop();\n\n\t\t}\n\n\t\t// throw an error if it can't be shrunk to the desired size\n\t\tif ( maxInstanceCount < instanceInfo.length ) {\n\n\t\t\tthrow new Error( `BatchedMesh: Instance ids outside the range ${ maxInstanceCount } are being used. Cannot shrink instance count.` );\n\n\t\t}\n\n\t\t// copy the multi draw counts\n\t\tconst multiDrawCounts = new Int32Array( maxInstanceCount );\n\t\tconst multiDrawStarts = new Int32Array( maxInstanceCount );\n\t\tcopyArrayContents( this._multiDrawCounts, multiDrawCounts );\n\t\tcopyArrayContents( this._multiDrawStarts, multiDrawStarts );\n\n\t\tthis._multiDrawCounts = multiDrawCounts;\n\t\tthis._multiDrawStarts = multiDrawStarts;\n\t\tthis._maxInstanceCount = maxInstanceCount;\n\n\t\t// update texture data for instance sampling\n\t\tconst indirectTexture = this._indirectTexture;\n\t\tconst matricesTexture = this._matricesTexture;\n\t\tconst colorsTexture = this._colorsTexture;\n\n\t\tindirectTexture.dispose();\n\t\tthis._initIndirectTexture();\n\t\tcopyArrayContents( indirectTexture.image.data, this._indirectTexture.image.data );\n\n\t\tmatricesTexture.dispose();\n\t\tthis._initMatricesTexture();\n\t\tcopyArrayContents( matricesTexture.image.data, this._matricesTexture.image.data );\n\n\t\tif ( colorsTexture ) {\n\n\t\t\tcolorsTexture.dispose();\n\t\t\tthis._initColorsTexture();\n\t\t\tcopyArrayContents( colorsTexture.image.data, this._colorsTexture.image.data );\n\n\t\t}\n\n\t}\n\n\tsetGeometrySize( maxVertexCount, maxIndexCount ) {\n\n\t\t// Check if we can shrink to the requested vertex attribute size\n\t\tconst validRanges = [ ...this._geometryInfo ].filter( info => info.active );\n\t\tconst requiredVertexLength = Math.max( ...validRanges.map( range => range.vertexStart + range.reservedVertexCount ) );\n\t\tif ( requiredVertexLength > maxVertexCount ) {\n\n\t\t\tthrow new Error( `BatchedMesh: Geometry vertex values are being used outside the range ${ maxIndexCount }. Cannot shrink further.` );\n\n\t\t}\n\n\t\t// Check if we can shrink to the requested index attribute size\n\t\tif ( this.geometry.index ) {\n\n\t\t\tconst requiredIndexLength = Math.max( ...validRanges.map( range => range.indexStart + range.reservedIndexCount ) );\n\t\t\tif ( requiredIndexLength > maxIndexCount ) {\n\n\t\t\t\tthrow new Error( `BatchedMesh: Geometry index values are being used outside the range ${ maxIndexCount }. Cannot shrink further.` );\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\t// dispose of the previous geometry\n\t\tconst oldGeometry = this.geometry;\n\t\toldGeometry.dispose();\n\n\t\t// recreate the geometry needed based on the previous variant\n\t\tthis._maxVertexCount = maxVertexCount;\n\t\tthis._maxIndexCount = maxIndexCount;\n\n\t\tif ( this._geometryInitialized ) {\n\n\t\t\tthis._geometryInitialized = false;\n\t\t\tthis.geometry = new BufferGeometry();\n\t\t\tthis._initializeGeometry( oldGeometry );\n\n\t\t}\n\n\t\t// copy data from the previous geometry\n\t\tconst geometry = this.geometry;\n\t\tif ( oldGeometry.index ) {\n\n\t\t\tcopyArrayContents( oldGeometry.index.array, geometry.index.array );\n\n\t\t}\n\n\t\tfor ( const key in oldGeometry.attributes ) {\n\n\t\t\tcopyArrayContents( oldGeometry.attributes[ key ].array, geometry.attributes[ key ].array );\n\n\t\t}\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tconst instanceInfo = this._instanceInfo;\n\t\tconst geometryInfoList = this._geometryInfo;\n\t\tconst matrixWorld = this.matrixWorld;\n\t\tconst batchGeometry = this.geometry;\n\n\t\t// iterate over each geometry\n\t\t_mesh.material = this.material;\n\t\t_mesh.geometry.index = batchGeometry.index;\n\t\t_mesh.geometry.attributes = batchGeometry.attributes;\n\t\tif ( _mesh.geometry.boundingBox === null ) {\n\n\t\t\t_mesh.geometry.boundingBox = new Box3();\n\n\t\t}\n\n\t\tif ( _mesh.geometry.boundingSphere === null ) {\n\n\t\t\t_mesh.geometry.boundingSphere = new Sphere();\n\n\t\t}\n\n\t\tfor ( let i = 0, l = instanceInfo.length; i < l; i ++ ) {\n\n\t\t\tif ( ! instanceInfo[ i ].visible || ! instanceInfo[ i ].active ) {\n\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\tconst geometryId = instanceInfo[ i ].geometryIndex;\n\t\t\tconst geometryInfo = geometryInfoList[ geometryId ];\n\t\t\t_mesh.geometry.setDrawRange( geometryInfo.start, geometryInfo.count );\n\n\t\t\t// get the intersects\n\t\t\tthis.getMatrixAt( i, _mesh.matrixWorld ).premultiply( matrixWorld );\n\t\t\tthis.getBoundingBoxAt( geometryId, _mesh.geometry.boundingBox );\n\t\t\tthis.getBoundingSphereAt( geometryId, _mesh.geometry.boundingSphere );\n\t\t\t_mesh.raycast( raycaster, _batchIntersects );\n\n\t\t\t// add batch id to the intersects\n\t\t\tfor ( let j = 0, l = _batchIntersects.length; j < l; j ++ ) {\n\n\t\t\t\tconst intersect = _batchIntersects[ j ];\n\t\t\t\tintersect.object = this;\n\t\t\t\tintersect.batchId = i;\n\t\t\t\tintersects.push( intersect );\n\n\t\t\t}\n\n\t\t\t_batchIntersects.length = 0;\n\n\t\t}\n\n\t\t_mesh.material = null;\n\t\t_mesh.geometry.index = null;\n\t\t_mesh.geometry.attributes = {};\n\t\t_mesh.geometry.setDrawRange( 0, Infinity );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.geometry = source.geometry.clone();\n\t\tthis.perObjectFrustumCulled = source.perObjectFrustumCulled;\n\t\tthis.sortObjects = source.sortObjects;\n\t\tthis.boundingBox = source.boundingBox !== null ? source.boundingBox.clone() : null;\n\t\tthis.boundingSphere = source.boundingSphere !== null ? source.boundingSphere.clone() : null;\n\n\t\tthis._geometryInfo = source._geometryInfo.map( info => ( {\n\t\t\t...info,\n\n\t\t\tboundingBox: info.boundingBox !== null ? info.boundingBox.clone() : null,\n\t\t\tboundingSphere: info.boundingSphere !== null ? info.boundingSphere.clone() : null,\n\t\t} ) );\n\t\tthis._instanceInfo = source._instanceInfo.map( info => ( { ...info } ) );\n\n\t\tthis._maxInstanceCount = source._maxInstanceCount;\n\t\tthis._maxVertexCount = source._maxVertexCount;\n\t\tthis._maxIndexCount = source._maxIndexCount;\n\n\t\tthis._geometryInitialized = source._geometryInitialized;\n\t\tthis._geometryCount = source._geometryCount;\n\t\tthis._multiDrawCounts = source._multiDrawCounts.slice();\n\t\tthis._multiDrawStarts = source._multiDrawStarts.slice();\n\n\t\tthis._matricesTexture = source._matricesTexture.clone();\n\t\tthis._matricesTexture.image.data = this._matricesTexture.image.data.slice();\n\n\t\tif ( this._colorsTexture !== null ) {\n\n\t\t\tthis._colorsTexture = source._colorsTexture.clone();\n\t\t\tthis._colorsTexture.image.data = this._colorsTexture.image.data.slice();\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\t// Assuming the geometry is not shared with other meshes\n\t\tthis.geometry.dispose();\n\n\t\tthis._matricesTexture.dispose();\n\t\tthis._matricesTexture = null;\n\n\t\tthis._indirectTexture.dispose();\n\t\tthis._indirectTexture = null;\n\n\t\tif ( this._colorsTexture !== null ) {\n\n\t\t\tthis._colorsTexture.dispose();\n\t\t\tthis._colorsTexture = null;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tonBeforeRender( renderer, scene, camera, geometry, material/*, _group*/ ) {\n\n\t\t// if visibility has not changed and frustum culling and object sorting is not required\n\t\t// then skip iterating over all items\n\t\tif ( ! this._visibilityChanged && ! this.perObjectFrustumCulled && ! this.sortObjects ) {\n\n\t\t\treturn;\n\n\t\t}\n\n\t\t// the indexed version of the multi draw function requires specifying the start\n\t\t// offset in bytes.\n\t\tconst index = geometry.getIndex();\n\t\tconst bytesPerElement = index === null ? 1 : index.array.BYTES_PER_ELEMENT;\n\n\t\tconst instanceInfo = this._instanceInfo;\n\t\tconst multiDrawStarts = this._multiDrawStarts;\n\t\tconst multiDrawCounts = this._multiDrawCounts;\n\t\tconst geometryInfoList = this._geometryInfo;\n\t\tconst perObjectFrustumCulled = this.perObjectFrustumCulled;\n\t\tconst indirectTexture = this._indirectTexture;\n\t\tconst indirectArray = indirectTexture.image.data;\n\n\t\t// prepare the frustum in the local frame\n\t\tif ( perObjectFrustumCulled ) {\n\n\t\t\t_matrix$1\n\t\t\t\t.multiplyMatrices( camera.projectionMatrix, camera.matrixWorldInverse )\n\t\t\t\t.multiply( this.matrixWorld );\n\t\t\t_frustum.setFromProjectionMatrix(\n\t\t\t\t_matrix$1,\n\t\t\t\trenderer.coordinateSystem\n\t\t\t);\n\n\t\t}\n\n\t\tlet multiDrawCount = 0;\n\t\tif ( this.sortObjects ) {\n\n\t\t\t// get the camera position in the local frame\n\t\t\t_matrix$1.copy( this.matrixWorld ).invert();\n\t\t\t_vector$5.setFromMatrixPosition( camera.matrixWorld ).applyMatrix4( _matrix$1 );\n\t\t\t_forward.set( 0, 0, - 1 ).transformDirection( camera.matrixWorld ).transformDirection( _matrix$1 );\n\n\t\t\tfor ( let i = 0, l = instanceInfo.length; i < l; i ++ ) {\n\n\t\t\t\tif ( instanceInfo[ i ].visible && instanceInfo[ i ].active ) {\n\n\t\t\t\t\tconst geometryId = instanceInfo[ i ].geometryIndex;\n\n\t\t\t\t\t// get the bounds in world space\n\t\t\t\t\tthis.getMatrixAt( i, _matrix$1 );\n\t\t\t\t\tthis.getBoundingSphereAt( geometryId, _sphere$2 ).applyMatrix4( _matrix$1 );\n\n\t\t\t\t\t// determine whether the batched geometry is within the frustum\n\t\t\t\t\tlet culled = false;\n\t\t\t\t\tif ( perObjectFrustumCulled ) {\n\n\t\t\t\t\t\tculled = ! _frustum.intersectsSphere( _sphere$2 );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! culled ) {\n\n\t\t\t\t\t\t// get the distance from camera used for sorting\n\t\t\t\t\t\tconst geometryInfo = geometryInfoList[ geometryId ];\n\t\t\t\t\t\tconst z = _temp.subVectors( _sphere$2.center, _vector$5 ).dot( _forward );\n\t\t\t\t\t\t_renderList.push( geometryInfo.start, geometryInfo.count, z, i );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// Sort the draw ranges and prep for rendering\n\t\t\tconst list = _renderList.list;\n\t\t\tconst customSort = this.customSort;\n\t\t\tif ( customSort === null ) {\n\n\t\t\t\tlist.sort( material.transparent ? sortTransparent : sortOpaque );\n\n\t\t\t} else {\n\n\t\t\t\tcustomSort.call( this, list, camera );\n\n\t\t\t}\n\n\t\t\tfor ( let i = 0, l = list.length; i < l; i ++ ) {\n\n\t\t\t\tconst item = list[ i ];\n\t\t\t\tmultiDrawStarts[ multiDrawCount ] = item.start * bytesPerElement;\n\t\t\t\tmultiDrawCounts[ multiDrawCount ] = item.count;\n\t\t\t\tindirectArray[ multiDrawCount ] = item.index;\n\t\t\t\tmultiDrawCount ++;\n\n\t\t\t}\n\n\t\t\t_renderList.reset();\n\n\t\t} else {\n\n\t\t\tfor ( let i = 0, l = instanceInfo.length; i < l; i ++ ) {\n\n\t\t\t\tif ( instanceInfo[ i ].visible && instanceInfo[ i ].active ) {\n\n\t\t\t\t\tconst geometryId = instanceInfo[ i ].geometryIndex;\n\n\t\t\t\t\t// determine whether the batched geometry is within the frustum\n\t\t\t\t\tlet culled = false;\n\t\t\t\t\tif ( perObjectFrustumCulled ) {\n\n\t\t\t\t\t\t// get the bounds in world space\n\t\t\t\t\t\tthis.getMatrixAt( i, _matrix$1 );\n\t\t\t\t\t\tthis.getBoundingSphereAt( geometryId, _sphere$2 ).applyMatrix4( _matrix$1 );\n\t\t\t\t\t\tculled = ! _frustum.intersectsSphere( _sphere$2 );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! culled ) {\n\n\t\t\t\t\t\tconst geometryInfo = geometryInfoList[ geometryId ];\n\t\t\t\t\t\tmultiDrawStarts[ multiDrawCount ] = geometryInfo.start * bytesPerElement;\n\t\t\t\t\t\tmultiDrawCounts[ multiDrawCount ] = geometryInfo.count;\n\t\t\t\t\t\tindirectArray[ multiDrawCount ] = i;\n\t\t\t\t\t\tmultiDrawCount ++;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tindirectTexture.needsUpdate = true;\n\t\tthis._multiDrawCount = multiDrawCount;\n\t\tthis._visibilityChanged = false;\n\n\t}\n\n\tonBeforeShadow( renderer, object, camera, shadowCamera, geometry, depthMaterial/* , group */ ) {\n\n\t\tthis.onBeforeRender( renderer, null, shadowCamera, geometry, depthMaterial );\n\n\t}\n\n}\n\nclass LineBasicMaterial extends Material {\n\n\tstatic get type() {\n\n\t\treturn 'LineBasicMaterial';\n\n\t}\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isLineBasicMaterial = true;\n\n\t\tthis.color = new Color( 0xffffff );\n\n\t\tthis.map = null;\n\n\t\tthis.linewidth = 1;\n\t\tthis.linecap = 'round';\n\t\tthis.linejoin = 'round';\n\n\t\tthis.fog = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.map = source.map;\n\n\t\tthis.linewidth = source.linewidth;\n\t\tthis.linecap = source.linecap;\n\t\tthis.linejoin = source.linejoin;\n\n\t\tthis.fog = source.fog;\n\n\t\treturn this;\n\n\t}\n\n}\n\nconst _vStart = /*@__PURE__*/ new Vector3();\nconst _vEnd = /*@__PURE__*/ new Vector3();\n\nconst _inverseMatrix$1 = /*@__PURE__*/ new Matrix4();\nconst _ray$1 = /*@__PURE__*/ new Ray();\nconst _sphere$1 = /*@__PURE__*/ new Sphere();\n\nconst _intersectPointOnRay = /*@__PURE__*/ new Vector3();\nconst _intersectPointOnSegment = /*@__PURE__*/ new Vector3();\n\nclass Line extends Object3D {\n\n\tconstructor( geometry = new BufferGeometry(), material = new LineBasicMaterial() ) {\n\n\t\tsuper();\n\n\t\tthis.isLine = true;\n\n\t\tthis.type = 'Line';\n\n\t\tthis.geometry = geometry;\n\t\tthis.material = material;\n\n\t\tthis.updateMorphTargets();\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.material = Array.isArray( source.material ) ? source.material.slice() : source.material;\n\t\tthis.geometry = source.geometry;\n\n\t\treturn this;\n\n\t}\n\n\tcomputeLineDistances() {\n\n\t\tconst geometry = this.geometry;\n\n\t\t// we assume non-indexed geometry\n\n\t\tif ( geometry.index === null ) {\n\n\t\t\tconst positionAttribute = geometry.attributes.position;\n\t\t\tconst lineDistances = [ 0 ];\n\n\t\t\tfor ( let i = 1, l = positionAttribute.count; i < l; i ++ ) {\n\n\t\t\t\t_vStart.fromBufferAttribute( positionAttribute, i - 1 );\n\t\t\t\t_vEnd.fromBufferAttribute( positionAttribute, i );\n\n\t\t\t\tlineDistances[ i ] = lineDistances[ i - 1 ];\n\t\t\t\tlineDistances[ i ] += _vStart.distanceTo( _vEnd );\n\n\t\t\t}\n\n\t\t\tgeometry.setAttribute( 'lineDistance', new Float32BufferAttribute( lineDistances, 1 ) );\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.' );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tconst geometry = this.geometry;\n\t\tconst matrixWorld = this.matrixWorld;\n\t\tconst threshold = raycaster.params.Line.threshold;\n\t\tconst drawRange = geometry.drawRange;\n\n\t\t// Checking boundingSphere distance to ray\n\n\t\tif ( geometry.boundingSphere === null ) geometry.computeBoundingSphere();\n\n\t\t_sphere$1.copy( geometry.boundingSphere );\n\t\t_sphere$1.applyMatrix4( matrixWorld );\n\t\t_sphere$1.radius += threshold;\n\n\t\tif ( raycaster.ray.intersectsSphere( _sphere$1 ) === false ) return;\n\n\t\t//\n\n\t\t_inverseMatrix$1.copy( matrixWorld ).invert();\n\t\t_ray$1.copy( raycaster.ray ).applyMatrix4( _inverseMatrix$1 );\n\n\t\tconst localThreshold = threshold / ( ( this.scale.x + this.scale.y + this.scale.z ) / 3 );\n\t\tconst localThresholdSq = localThreshold * localThreshold;\n\n\t\tconst step = this.isLineSegments ? 2 : 1;\n\n\t\tconst index = geometry.index;\n\t\tconst attributes = geometry.attributes;\n\t\tconst positionAttribute = attributes.position;\n\n\t\tif ( index !== null ) {\n\n\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\tconst end = Math.min( index.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\tfor ( let i = start, l = end - 1; i < l; i += step ) {\n\n\t\t\t\tconst a = index.getX( i );\n\t\t\t\tconst b = index.getX( i + 1 );\n\n\t\t\t\tconst intersect = checkIntersection( this, raycaster, _ray$1, localThresholdSq, a, b );\n\n\t\t\t\tif ( intersect ) {\n\n\t\t\t\t\tintersects.push( intersect );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( this.isLineLoop ) {\n\n\t\t\t\tconst a = index.getX( end - 1 );\n\t\t\t\tconst b = index.getX( start );\n\n\t\t\t\tconst intersect = checkIntersection( this, raycaster, _ray$1, localThresholdSq, a, b );\n\n\t\t\t\tif ( intersect ) {\n\n\t\t\t\t\tintersects.push( intersect );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\tconst end = Math.min( positionAttribute.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\tfor ( let i = start, l = end - 1; i < l; i += step ) {\n\n\t\t\t\tconst intersect = checkIntersection( this, raycaster, _ray$1, localThresholdSq, i, i + 1 );\n\n\t\t\t\tif ( intersect ) {\n\n\t\t\t\t\tintersects.push( intersect );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( this.isLineLoop ) {\n\n\t\t\t\tconst intersect = checkIntersection( this, raycaster, _ray$1, localThresholdSq, end - 1, start );\n\n\t\t\t\tif ( intersect ) {\n\n\t\t\t\t\tintersects.push( intersect );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tupdateMorphTargets() {\n\n\t\tconst geometry = this.geometry;\n\n\t\tconst morphAttributes = geometry.morphAttributes;\n\t\tconst keys = Object.keys( morphAttributes );\n\n\t\tif ( keys.length > 0 ) {\n\n\t\t\tconst morphAttribute = morphAttributes[ keys[ 0 ] ];\n\n\t\t\tif ( morphAttribute !== undefined ) {\n\n\t\t\t\tthis.morphTargetInfluences = [];\n\t\t\t\tthis.morphTargetDictionary = {};\n\n\t\t\t\tfor ( let m = 0, ml = morphAttribute.length; m < ml; m ++ ) {\n\n\t\t\t\t\tconst name = morphAttribute[ m ].name || String( m );\n\n\t\t\t\t\tthis.morphTargetInfluences.push( 0 );\n\t\t\t\t\tthis.morphTargetDictionary[ name ] = m;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n\nfunction checkIntersection( object, raycaster, ray, thresholdSq, a, b ) {\n\n\tconst positionAttribute = object.geometry.attributes.position;\n\n\t_vStart.fromBufferAttribute( positionAttribute, a );\n\t_vEnd.fromBufferAttribute( positionAttribute, b );\n\n\tconst distSq = ray.distanceSqToSegment( _vStart, _vEnd, _intersectPointOnRay, _intersectPointOnSegment );\n\n\tif ( distSq > thresholdSq ) return;\n\n\t_intersectPointOnRay.applyMatrix4( object.matrixWorld ); // Move back to world space for distance calculation\n\n\tconst distance = raycaster.ray.origin.distanceTo( _intersectPointOnRay );\n\n\tif ( distance < raycaster.near || distance > raycaster.far ) return;\n\n\treturn {\n\n\t\tdistance: distance,\n\t\t// What do we want? intersection point on the ray or on the segment??\n\t\t// point: raycaster.ray.at( distance ),\n\t\tpoint: _intersectPointOnSegment.clone().applyMatrix4( object.matrixWorld ),\n\t\tindex: a,\n\t\tface: null,\n\t\tfaceIndex: null,\n\t\tbarycoord: null,\n\t\tobject: object\n\n\t};\n\n}\n\nconst _start = /*@__PURE__*/ new Vector3();\nconst _end = /*@__PURE__*/ new Vector3();\n\nclass LineSegments extends Line {\n\n\tconstructor( geometry, material ) {\n\n\t\tsuper( geometry, material );\n\n\t\tthis.isLineSegments = true;\n\n\t\tthis.type = 'LineSegments';\n\n\t}\n\n\tcomputeLineDistances() {\n\n\t\tconst geometry = this.geometry;\n\n\t\t// we assume non-indexed geometry\n\n\t\tif ( geometry.index === null ) {\n\n\t\t\tconst positionAttribute = geometry.attributes.position;\n\t\t\tconst lineDistances = [];\n\n\t\t\tfor ( let i = 0, l = positionAttribute.count; i < l; i += 2 ) {\n\n\t\t\t\t_start.fromBufferAttribute( positionAttribute, i );\n\t\t\t\t_end.fromBufferAttribute( positionAttribute, i + 1 );\n\n\t\t\t\tlineDistances[ i ] = ( i === 0 ) ? 0 : lineDistances[ i - 1 ];\n\t\t\t\tlineDistances[ i + 1 ] = lineDistances[ i ] + _start.distanceTo( _end );\n\n\t\t\t}\n\n\t\t\tgeometry.setAttribute( 'lineDistance', new Float32BufferAttribute( lineDistances, 1 ) );\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.' );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass LineLoop extends Line {\n\n\tconstructor( geometry, material ) {\n\n\t\tsuper( geometry, material );\n\n\t\tthis.isLineLoop = true;\n\n\t\tthis.type = 'LineLoop';\n\n\t}\n\n}\n\nclass PointsMaterial extends Material {\n\n\tstatic get type() {\n\n\t\treturn 'PointsMaterial';\n\n\t}\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isPointsMaterial = true;\n\n\t\tthis.color = new Color( 0xffffff );\n\n\t\tthis.map = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.size = 1;\n\t\tthis.sizeAttenuation = true;\n\n\t\tthis.fog = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.map = source.map;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.size = source.size;\n\t\tthis.sizeAttenuation = source.sizeAttenuation;\n\n\t\tthis.fog = source.fog;\n\n\t\treturn this;\n\n\t}\n\n}\n\nconst _inverseMatrix = /*@__PURE__*/ new Matrix4();\nconst _ray = /*@__PURE__*/ new Ray();\nconst _sphere = /*@__PURE__*/ new Sphere();\nconst _position$2 = /*@__PURE__*/ new Vector3();\n\nclass Points extends Object3D {\n\n\tconstructor( geometry = new BufferGeometry(), material = new PointsMaterial() ) {\n\n\t\tsuper();\n\n\t\tthis.isPoints = true;\n\n\t\tthis.type = 'Points';\n\n\t\tthis.geometry = geometry;\n\t\tthis.material = material;\n\n\t\tthis.updateMorphTargets();\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.material = Array.isArray( source.material ) ? source.material.slice() : source.material;\n\t\tthis.geometry = source.geometry;\n\n\t\treturn this;\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tconst geometry = this.geometry;\n\t\tconst matrixWorld = this.matrixWorld;\n\t\tconst threshold = raycaster.params.Points.threshold;\n\t\tconst drawRange = geometry.drawRange;\n\n\t\t// Checking boundingSphere distance to ray\n\n\t\tif ( geometry.boundingSphere === null ) geometry.computeBoundingSphere();\n\n\t\t_sphere.copy( geometry.boundingSphere );\n\t\t_sphere.applyMatrix4( matrixWorld );\n\t\t_sphere.radius += threshold;\n\n\t\tif ( raycaster.ray.intersectsSphere( _sphere ) === false ) return;\n\n\t\t//\n\n\t\t_inverseMatrix.copy( matrixWorld ).invert();\n\t\t_ray.copy( raycaster.ray ).applyMatrix4( _inverseMatrix );\n\n\t\tconst localThreshold = threshold / ( ( this.scale.x + this.scale.y + this.scale.z ) / 3 );\n\t\tconst localThresholdSq = localThreshold * localThreshold;\n\n\t\tconst index = geometry.index;\n\t\tconst attributes = geometry.attributes;\n\t\tconst positionAttribute = attributes.position;\n\n\t\tif ( index !== null ) {\n\n\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\tconst end = Math.min( index.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\tfor ( let i = start, il = end; i < il; i ++ ) {\n\n\t\t\t\tconst a = index.getX( i );\n\n\t\t\t\t_position$2.fromBufferAttribute( positionAttribute, a );\n\n\t\t\t\ttestPoint( _position$2, a, localThresholdSq, matrixWorld, raycaster, intersects, this );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\tconst end = Math.min( positionAttribute.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\tfor ( let i = start, l = end; i < l; i ++ ) {\n\n\t\t\t\t_position$2.fromBufferAttribute( positionAttribute, i );\n\n\t\t\t\ttestPoint( _position$2, i, localThresholdSq, matrixWorld, raycaster, intersects, this );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tupdateMorphTargets() {\n\n\t\tconst geometry = this.geometry;\n\n\t\tconst morphAttributes = geometry.morphAttributes;\n\t\tconst keys = Object.keys( morphAttributes );\n\n\t\tif ( keys.length > 0 ) {\n\n\t\t\tconst morphAttribute = morphAttributes[ keys[ 0 ] ];\n\n\t\t\tif ( morphAttribute !== undefined ) {\n\n\t\t\t\tthis.morphTargetInfluences = [];\n\t\t\t\tthis.morphTargetDictionary = {};\n\n\t\t\t\tfor ( let m = 0, ml = morphAttribute.length; m < ml; m ++ ) {\n\n\t\t\t\t\tconst name = morphAttribute[ m ].name || String( m );\n\n\t\t\t\t\tthis.morphTargetInfluences.push( 0 );\n\t\t\t\t\tthis.morphTargetDictionary[ name ] = m;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n\nfunction testPoint( point, index, localThresholdSq, matrixWorld, raycaster, intersects, object ) {\n\n\tconst rayPointDistanceSq = _ray.distanceSqToPoint( point );\n\n\tif ( rayPointDistanceSq < localThresholdSq ) {\n\n\t\tconst intersectPoint = new Vector3();\n\n\t\t_ray.closestPointToPoint( point, intersectPoint );\n\t\tintersectPoint.applyMatrix4( matrixWorld );\n\n\t\tconst distance = raycaster.ray.origin.distanceTo( intersectPoint );\n\n\t\tif ( distance < raycaster.near || distance > raycaster.far ) return;\n\n\t\tintersects.push( {\n\n\t\t\tdistance: distance,\n\t\t\tdistanceToRay: Math.sqrt( rayPointDistanceSq ),\n\t\t\tpoint: intersectPoint,\n\t\t\tindex: index,\n\t\t\tface: null,\n\t\t\tfaceIndex: null,\n\t\t\tbarycoord: null,\n\t\t\tobject: object\n\n\t\t} );\n\n\t}\n\n}\n\nclass VideoTexture extends Texture {\n\n\tconstructor( video, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy ) {\n\n\t\tsuper( video, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy );\n\n\t\tthis.isVideoTexture = true;\n\n\t\tthis.minFilter = minFilter !== undefined ? minFilter : LinearFilter;\n\t\tthis.magFilter = magFilter !== undefined ? magFilter : LinearFilter;\n\n\t\tthis.generateMipmaps = false;\n\n\t\tconst scope = this;\n\n\t\tfunction updateVideo() {\n\n\t\t\tscope.needsUpdate = true;\n\t\t\tvideo.requestVideoFrameCallback( updateVideo );\n\n\t\t}\n\n\t\tif ( 'requestVideoFrameCallback' in video ) {\n\n\t\t\tvideo.requestVideoFrameCallback( updateVideo );\n\n\t\t}\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.image ).copy( this );\n\n\t}\n\n\tupdate() {\n\n\t\tconst video = this.image;\n\t\tconst hasVideoFrameCallback = 'requestVideoFrameCallback' in video;\n\n\t\tif ( hasVideoFrameCallback === false && video.readyState >= video.HAVE_CURRENT_DATA ) {\n\n\t\t\tthis.needsUpdate = true;\n\n\t\t}\n\n\t}\n\n}\n\nclass FramebufferTexture extends Texture {\n\n\tconstructor( width, height ) {\n\n\t\tsuper( { width, height } );\n\n\t\tthis.isFramebufferTexture = true;\n\n\t\tthis.magFilter = NearestFilter;\n\t\tthis.minFilter = NearestFilter;\n\n\t\tthis.generateMipmaps = false;\n\n\t\tthis.needsUpdate = true;\n\n\t}\n\n}\n\nclass CompressedTexture extends Texture {\n\n\tconstructor( mipmaps, width, height, format, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, colorSpace ) {\n\n\t\tsuper( null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, colorSpace );\n\n\t\tthis.isCompressedTexture = true;\n\n\t\tthis.image = { width: width, height: height };\n\t\tthis.mipmaps = mipmaps;\n\n\t\t// no flipping for cube textures\n\t\t// (also flipping doesn't work for compressed textures )\n\n\t\tthis.flipY = false;\n\n\t\t// can't generate mipmaps for compressed textures\n\t\t// mips must be embedded in DDS files\n\n\t\tthis.generateMipmaps = false;\n\n\t}\n\n}\n\nclass CompressedArrayTexture extends CompressedTexture {\n\n\tconstructor( mipmaps, width, height, depth, format, type ) {\n\n\t\tsuper( mipmaps, width, height, format, type );\n\n\t\tthis.isCompressedArrayTexture = true;\n\t\tthis.image.depth = depth;\n\t\tthis.wrapR = ClampToEdgeWrapping;\n\n\t\tthis.layerUpdates = new Set();\n\n\t}\n\n\taddLayerUpdate( layerIndex ) {\n\n\t\tthis.layerUpdates.add( layerIndex );\n\n\t}\n\n\tclearLayerUpdates() {\n\n\t\tthis.layerUpdates.clear();\n\n\t}\n\n}\n\nclass CompressedCubeTexture extends CompressedTexture {\n\n\tconstructor( images, format, type ) {\n\n\t\tsuper( undefined, images[ 0 ].width, images[ 0 ].height, format, type, CubeReflectionMapping );\n\n\t\tthis.isCompressedCubeTexture = true;\n\t\tthis.isCubeTexture = true;\n\n\t\tthis.image = images;\n\n\t}\n\n}\n\nclass CanvasTexture extends Texture {\n\n\tconstructor( canvas, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy ) {\n\n\t\tsuper( canvas, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy );\n\n\t\tthis.isCanvasTexture = true;\n\n\t\tthis.needsUpdate = true;\n\n\t}\n\n}\n\n/**\n * Extensible curve object.\n *\n * Some common of curve methods:\n * .getPoint( t, optionalTarget ), .getTangent( t, optionalTarget )\n * .getPointAt( u, optionalTarget ), .getTangentAt( u, optionalTarget )\n * .getPoints(), .getSpacedPoints()\n * .getLength()\n * .updateArcLengths()\n *\n * This following curves inherit from THREE.Curve:\n *\n * -- 2D curves --\n * THREE.ArcCurve\n * THREE.CubicBezierCurve\n * THREE.EllipseCurve\n * THREE.LineCurve\n * THREE.QuadraticBezierCurve\n * THREE.SplineCurve\n *\n * -- 3D curves --\n * THREE.CatmullRomCurve3\n * THREE.CubicBezierCurve3\n * THREE.LineCurve3\n * THREE.QuadraticBezierCurve3\n *\n * A series of curves can be represented as a THREE.CurvePath.\n *\n **/\n\nclass Curve {\n\n\tconstructor() {\n\n\t\tthis.type = 'Curve';\n\n\t\tthis.arcLengthDivisions = 200;\n\n\t}\n\n\t// Virtual base class method to overwrite and implement in subclasses\n\t//\t- t [0 .. 1]\n\n\tgetPoint( /* t, optionalTarget */ ) {\n\n\t\tconsole.warn( 'THREE.Curve: .getPoint() not implemented.' );\n\t\treturn null;\n\n\t}\n\n\t// Get point at relative position in curve according to arc length\n\t// - u [0 .. 1]\n\n\tgetPointAt( u, optionalTarget ) {\n\n\t\tconst t = this.getUtoTmapping( u );\n\t\treturn this.getPoint( t, optionalTarget );\n\n\t}\n\n\t// Get sequence of points using getPoint( t )\n\n\tgetPoints( divisions = 5 ) {\n\n\t\tconst points = [];\n\n\t\tfor ( let d = 0; d <= divisions; d ++ ) {\n\n\t\t\tpoints.push( this.getPoint( d / divisions ) );\n\n\t\t}\n\n\t\treturn points;\n\n\t}\n\n\t// Get sequence of points using getPointAt( u )\n\n\tgetSpacedPoints( divisions = 5 ) {\n\n\t\tconst points = [];\n\n\t\tfor ( let d = 0; d <= divisions; d ++ ) {\n\n\t\t\tpoints.push( this.getPointAt( d / divisions ) );\n\n\t\t}\n\n\t\treturn points;\n\n\t}\n\n\t// Get total curve arc length\n\n\tgetLength() {\n\n\t\tconst lengths = this.getLengths();\n\t\treturn lengths[ lengths.length - 1 ];\n\n\t}\n\n\t// Get list of cumulative segment lengths\n\n\tgetLengths( divisions = this.arcLengthDivisions ) {\n\n\t\tif ( this.cacheArcLengths &&\n\t\t\t( this.cacheArcLengths.length === divisions + 1 ) &&\n\t\t\t! this.needsUpdate ) {\n\n\t\t\treturn this.cacheArcLengths;\n\n\t\t}\n\n\t\tthis.needsUpdate = false;\n\n\t\tconst cache = [];\n\t\tlet current, last = this.getPoint( 0 );\n\t\tlet sum = 0;\n\n\t\tcache.push( 0 );\n\n\t\tfor ( let p = 1; p <= divisions; p ++ ) {\n\n\t\t\tcurrent = this.getPoint( p / divisions );\n\t\t\tsum += current.distanceTo( last );\n\t\t\tcache.push( sum );\n\t\t\tlast = current;\n\n\t\t}\n\n\t\tthis.cacheArcLengths = cache;\n\n\t\treturn cache; // { sums: cache, sum: sum }; Sum is in the last element.\n\n\t}\n\n\tupdateArcLengths() {\n\n\t\tthis.needsUpdate = true;\n\t\tthis.getLengths();\n\n\t}\n\n\t// Given u ( 0 .. 1 ), get a t to find p. This gives you points which are equidistant\n\n\tgetUtoTmapping( u, distance ) {\n\n\t\tconst arcLengths = this.getLengths();\n\n\t\tlet i = 0;\n\t\tconst il = arcLengths.length;\n\n\t\tlet targetArcLength; // The targeted u distance value to get\n\n\t\tif ( distance ) {\n\n\t\t\ttargetArcLength = distance;\n\n\t\t} else {\n\n\t\t\ttargetArcLength = u * arcLengths[ il - 1 ];\n\n\t\t}\n\n\t\t// binary search for the index with largest value smaller than target u distance\n\n\t\tlet low = 0, high = il - 1, comparison;\n\n\t\twhile ( low <= high ) {\n\n\t\t\ti = Math.floor( low + ( high - low ) / 2 ); // less likely to overflow, though probably not issue here, JS doesn't really have integers, all numbers are floats\n\n\t\t\tcomparison = arcLengths[ i ] - targetArcLength;\n\n\t\t\tif ( comparison < 0 ) {\n\n\t\t\t\tlow = i + 1;\n\n\t\t\t} else if ( comparison > 0 ) {\n\n\t\t\t\thigh = i - 1;\n\n\t\t\t} else {\n\n\t\t\t\thigh = i;\n\t\t\t\tbreak;\n\n\t\t\t\t// DONE\n\n\t\t\t}\n\n\t\t}\n\n\t\ti = high;\n\n\t\tif ( arcLengths[ i ] === targetArcLength ) {\n\n\t\t\treturn i / ( il - 1 );\n\n\t\t}\n\n\t\t// we could get finer grain at lengths, or use simple interpolation between two points\n\n\t\tconst lengthBefore = arcLengths[ i ];\n\t\tconst lengthAfter = arcLengths[ i + 1 ];\n\n\t\tconst segmentLength = lengthAfter - lengthBefore;\n\n\t\t// determine where we are between the 'before' and 'after' points\n\n\t\tconst segmentFraction = ( targetArcLength - lengthBefore ) / segmentLength;\n\n\t\t// add that fractional amount to t\n\n\t\tconst t = ( i + segmentFraction ) / ( il - 1 );\n\n\t\treturn t;\n\n\t}\n\n\t// Returns a unit vector tangent at t\n\t// In case any sub curve does not implement its tangent derivation,\n\t// 2 points a small delta apart will be used to find its gradient\n\t// which seems to give a reasonable approximation\n\n\tgetTangent( t, optionalTarget ) {\n\n\t\tconst delta = 0.0001;\n\t\tlet t1 = t - delta;\n\t\tlet t2 = t + delta;\n\n\t\t// Capping in case of danger\n\n\t\tif ( t1 < 0 ) t1 = 0;\n\t\tif ( t2 > 1 ) t2 = 1;\n\n\t\tconst pt1 = this.getPoint( t1 );\n\t\tconst pt2 = this.getPoint( t2 );\n\n\t\tconst tangent = optionalTarget || ( ( pt1.isVector2 ) ? new Vector2() : new Vector3() );\n\n\t\ttangent.copy( pt2 ).sub( pt1 ).normalize();\n\n\t\treturn tangent;\n\n\t}\n\n\tgetTangentAt( u, optionalTarget ) {\n\n\t\tconst t = this.getUtoTmapping( u );\n\t\treturn this.getTangent( t, optionalTarget );\n\n\t}\n\n\tcomputeFrenetFrames( segments, closed ) {\n\n\t\t// see http://www.cs.indiana.edu/pub/techreports/TR425.pdf\n\n\t\tconst normal = new Vector3();\n\n\t\tconst tangents = [];\n\t\tconst normals = [];\n\t\tconst binormals = [];\n\n\t\tconst vec = new Vector3();\n\t\tconst mat = new Matrix4();\n\n\t\t// compute the tangent vectors for each segment on the curve\n\n\t\tfor ( let i = 0; i <= segments; i ++ ) {\n\n\t\t\tconst u = i / segments;\n\n\t\t\ttangents[ i ] = this.getTangentAt( u, new Vector3() );\n\n\t\t}\n\n\t\t// select an initial normal vector perpendicular to the first tangent vector,\n\t\t// and in the direction of the minimum tangent xyz component\n\n\t\tnormals[ 0 ] = new Vector3();\n\t\tbinormals[ 0 ] = new Vector3();\n\t\tlet min = Number.MAX_VALUE;\n\t\tconst tx = Math.abs( tangents[ 0 ].x );\n\t\tconst ty = Math.abs( tangents[ 0 ].y );\n\t\tconst tz = Math.abs( tangents[ 0 ].z );\n\n\t\tif ( tx <= min ) {\n\n\t\t\tmin = tx;\n\t\t\tnormal.set( 1, 0, 0 );\n\n\t\t}\n\n\t\tif ( ty <= min ) {\n\n\t\t\tmin = ty;\n\t\t\tnormal.set( 0, 1, 0 );\n\n\t\t}\n\n\t\tif ( tz <= min ) {\n\n\t\t\tnormal.set( 0, 0, 1 );\n\n\t\t}\n\n\t\tvec.crossVectors( tangents[ 0 ], normal ).normalize();\n\n\t\tnormals[ 0 ].crossVectors( tangents[ 0 ], vec );\n\t\tbinormals[ 0 ].crossVectors( tangents[ 0 ], normals[ 0 ] );\n\n\n\t\t// compute the slowly-varying normal and binormal vectors for each segment on the curve\n\n\t\tfor ( let i = 1; i <= segments; i ++ ) {\n\n\t\t\tnormals[ i ] = normals[ i - 1 ].clone();\n\n\t\t\tbinormals[ i ] = binormals[ i - 1 ].clone();\n\n\t\t\tvec.crossVectors( tangents[ i - 1 ], tangents[ i ] );\n\n\t\t\tif ( vec.length() > Number.EPSILON ) {\n\n\t\t\t\tvec.normalize();\n\n\t\t\t\tconst theta = Math.acos( clamp( tangents[ i - 1 ].dot( tangents[ i ] ), - 1, 1 ) ); // clamp for floating pt errors\n\n\t\t\t\tnormals[ i ].applyMatrix4( mat.makeRotationAxis( vec, theta ) );\n\n\t\t\t}\n\n\t\t\tbinormals[ i ].crossVectors( tangents[ i ], normals[ i ] );\n\n\t\t}\n\n\t\t// if the curve is closed, postprocess the vectors so the first and last normal vectors are the same\n\n\t\tif ( closed === true ) {\n\n\t\t\tlet theta = Math.acos( clamp( normals[ 0 ].dot( normals[ segments ] ), - 1, 1 ) );\n\t\t\ttheta /= segments;\n\n\t\t\tif ( tangents[ 0 ].dot( vec.crossVectors( normals[ 0 ], normals[ segments ] ) ) > 0 ) {\n\n\t\t\t\ttheta = - theta;\n\n\t\t\t}\n\n\t\t\tfor ( let i = 1; i <= segments; i ++ ) {\n\n\t\t\t\t// twist a little...\n\t\t\t\tnormals[ i ].applyMatrix4( mat.makeRotationAxis( tangents[ i ], theta * i ) );\n\t\t\t\tbinormals[ i ].crossVectors( tangents[ i ], normals[ i ] );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn {\n\t\t\ttangents: tangents,\n\t\t\tnormals: normals,\n\t\t\tbinormals: binormals\n\t\t};\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.arcLengthDivisions = source.arcLengthDivisions;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = {\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.6,\n\t\t\t\ttype: 'Curve',\n\t\t\t\tgenerator: 'Curve.toJSON'\n\t\t\t}\n\t\t};\n\n\t\tdata.arcLengthDivisions = this.arcLengthDivisions;\n\t\tdata.type = this.type;\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tthis.arcLengthDivisions = json.arcLengthDivisions;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass EllipseCurve extends Curve {\n\n\tconstructor( aX = 0, aY = 0, xRadius = 1, yRadius = 1, aStartAngle = 0, aEndAngle = Math.PI * 2, aClockwise = false, aRotation = 0 ) {\n\n\t\tsuper();\n\n\t\tthis.isEllipseCurve = true;\n\n\t\tthis.type = 'EllipseCurve';\n\n\t\tthis.aX = aX;\n\t\tthis.aY = aY;\n\n\t\tthis.xRadius = xRadius;\n\t\tthis.yRadius = yRadius;\n\n\t\tthis.aStartAngle = aStartAngle;\n\t\tthis.aEndAngle = aEndAngle;\n\n\t\tthis.aClockwise = aClockwise;\n\n\t\tthis.aRotation = aRotation;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector2() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tconst twoPi = Math.PI * 2;\n\t\tlet deltaAngle = this.aEndAngle - this.aStartAngle;\n\t\tconst samePoints = Math.abs( deltaAngle ) < Number.EPSILON;\n\n\t\t// ensures that deltaAngle is 0 .. 2 PI\n\t\twhile ( deltaAngle < 0 ) deltaAngle += twoPi;\n\t\twhile ( deltaAngle > twoPi ) deltaAngle -= twoPi;\n\n\t\tif ( deltaAngle < Number.EPSILON ) {\n\n\t\t\tif ( samePoints ) {\n\n\t\t\t\tdeltaAngle = 0;\n\n\t\t\t} else {\n\n\t\t\t\tdeltaAngle = twoPi;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( this.aClockwise === true && ! samePoints ) {\n\n\t\t\tif ( deltaAngle === twoPi ) {\n\n\t\t\t\tdeltaAngle = - twoPi;\n\n\t\t\t} else {\n\n\t\t\t\tdeltaAngle = deltaAngle - twoPi;\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst angle = this.aStartAngle + t * deltaAngle;\n\t\tlet x = this.aX + this.xRadius * Math.cos( angle );\n\t\tlet y = this.aY + this.yRadius * Math.sin( angle );\n\n\t\tif ( this.aRotation !== 0 ) {\n\n\t\t\tconst cos = Math.cos( this.aRotation );\n\t\t\tconst sin = Math.sin( this.aRotation );\n\n\t\t\tconst tx = x - this.aX;\n\t\t\tconst ty = y - this.aY;\n\n\t\t\t// Rotate the point about the center of the ellipse.\n\t\t\tx = tx * cos - ty * sin + this.aX;\n\t\t\ty = tx * sin + ty * cos + this.aY;\n\n\t\t}\n\n\t\treturn point.set( x, y );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.aX = source.aX;\n\t\tthis.aY = source.aY;\n\n\t\tthis.xRadius = source.xRadius;\n\t\tthis.yRadius = source.yRadius;\n\n\t\tthis.aStartAngle = source.aStartAngle;\n\t\tthis.aEndAngle = source.aEndAngle;\n\n\t\tthis.aClockwise = source.aClockwise;\n\n\t\tthis.aRotation = source.aRotation;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.aX = this.aX;\n\t\tdata.aY = this.aY;\n\n\t\tdata.xRadius = this.xRadius;\n\t\tdata.yRadius = this.yRadius;\n\n\t\tdata.aStartAngle = this.aStartAngle;\n\t\tdata.aEndAngle = this.aEndAngle;\n\n\t\tdata.aClockwise = this.aClockwise;\n\n\t\tdata.aRotation = this.aRotation;\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.aX = json.aX;\n\t\tthis.aY = json.aY;\n\n\t\tthis.xRadius = json.xRadius;\n\t\tthis.yRadius = json.yRadius;\n\n\t\tthis.aStartAngle = json.aStartAngle;\n\t\tthis.aEndAngle = json.aEndAngle;\n\n\t\tthis.aClockwise = json.aClockwise;\n\n\t\tthis.aRotation = json.aRotation;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass ArcCurve extends EllipseCurve {\n\n\tconstructor( aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise ) {\n\n\t\tsuper( aX, aY, aRadius, aRadius, aStartAngle, aEndAngle, aClockwise );\n\n\t\tthis.isArcCurve = true;\n\n\t\tthis.type = 'ArcCurve';\n\n\t}\n\n}\n\n/**\n * Centripetal CatmullRom Curve - which is useful for avoiding\n * cusps and self-intersections in non-uniform catmull rom curves.\n * http://www.cemyuksel.com/research/catmullrom_param/catmullrom.pdf\n *\n * curve.type accepts centripetal(default), chordal and catmullrom\n * curve.tension is used for catmullrom which defaults to 0.5\n */\n\n\n/*\nBased on an optimized c++ solution in\n - http://stackoverflow.com/questions/9489736/catmull-rom-curve-with-no-cusps-and-no-self-intersections/\n - http://ideone.com/NoEbVM\n\nThis CubicPoly class could be used for reusing some variables and calculations,\nbut for three.js curve use, it could be possible inlined and flatten into a single function call\nwhich can be placed in CurveUtils.\n*/\n\nfunction CubicPoly() {\n\n\tlet c0 = 0, c1 = 0, c2 = 0, c3 = 0;\n\n\t/*\n\t * Compute coefficients for a cubic polynomial\n\t * p(s) = c0 + c1*s + c2*s^2 + c3*s^3\n\t * such that\n\t * p(0) = x0, p(1) = x1\n\t * and\n\t * p'(0) = t0, p'(1) = t1.\n\t */\n\tfunction init( x0, x1, t0, t1 ) {\n\n\t\tc0 = x0;\n\t\tc1 = t0;\n\t\tc2 = - 3 * x0 + 3 * x1 - 2 * t0 - t1;\n\t\tc3 = 2 * x0 - 2 * x1 + t0 + t1;\n\n\t}\n\n\treturn {\n\n\t\tinitCatmullRom: function ( x0, x1, x2, x3, tension ) {\n\n\t\t\tinit( x1, x2, tension * ( x2 - x0 ), tension * ( x3 - x1 ) );\n\n\t\t},\n\n\t\tinitNonuniformCatmullRom: function ( x0, x1, x2, x3, dt0, dt1, dt2 ) {\n\n\t\t\t// compute tangents when parameterized in [t1,t2]\n\t\t\tlet t1 = ( x1 - x0 ) / dt0 - ( x2 - x0 ) / ( dt0 + dt1 ) + ( x2 - x1 ) / dt1;\n\t\t\tlet t2 = ( x2 - x1 ) / dt1 - ( x3 - x1 ) / ( dt1 + dt2 ) + ( x3 - x2 ) / dt2;\n\n\t\t\t// rescale tangents for parametrization in [0,1]\n\t\t\tt1 *= dt1;\n\t\t\tt2 *= dt1;\n\n\t\t\tinit( x1, x2, t1, t2 );\n\n\t\t},\n\n\t\tcalc: function ( t ) {\n\n\t\t\tconst t2 = t * t;\n\t\t\tconst t3 = t2 * t;\n\t\t\treturn c0 + c1 * t + c2 * t2 + c3 * t3;\n\n\t\t}\n\n\t};\n\n}\n\n//\n\nconst tmp = /*@__PURE__*/ new Vector3();\nconst px = /*@__PURE__*/ new CubicPoly();\nconst py = /*@__PURE__*/ new CubicPoly();\nconst pz = /*@__PURE__*/ new CubicPoly();\n\nclass CatmullRomCurve3 extends Curve {\n\n\tconstructor( points = [], closed = false, curveType = 'centripetal', tension = 0.5 ) {\n\n\t\tsuper();\n\n\t\tthis.isCatmullRomCurve3 = true;\n\n\t\tthis.type = 'CatmullRomCurve3';\n\n\t\tthis.points = points;\n\t\tthis.closed = closed;\n\t\tthis.curveType = curveType;\n\t\tthis.tension = tension;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector3() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tconst points = this.points;\n\t\tconst l = points.length;\n\n\t\tconst p = ( l - ( this.closed ? 0 : 1 ) ) * t;\n\t\tlet intPoint = Math.floor( p );\n\t\tlet weight = p - intPoint;\n\n\t\tif ( this.closed ) {\n\n\t\t\tintPoint += intPoint > 0 ? 0 : ( Math.floor( Math.abs( intPoint ) / l ) + 1 ) * l;\n\n\t\t} else if ( weight === 0 && intPoint === l - 1 ) {\n\n\t\t\tintPoint = l - 2;\n\t\t\tweight = 1;\n\n\t\t}\n\n\t\tlet p0, p3; // 4 points (p1 & p2 defined below)\n\n\t\tif ( this.closed || intPoint > 0 ) {\n\n\t\t\tp0 = points[ ( intPoint - 1 ) % l ];\n\n\t\t} else {\n\n\t\t\t// extrapolate first point\n\t\t\ttmp.subVectors( points[ 0 ], points[ 1 ] ).add( points[ 0 ] );\n\t\t\tp0 = tmp;\n\n\t\t}\n\n\t\tconst p1 = points[ intPoint % l ];\n\t\tconst p2 = points[ ( intPoint + 1 ) % l ];\n\n\t\tif ( this.closed || intPoint + 2 < l ) {\n\n\t\t\tp3 = points[ ( intPoint + 2 ) % l ];\n\n\t\t} else {\n\n\t\t\t// extrapolate last point\n\t\t\ttmp.subVectors( points[ l - 1 ], points[ l - 2 ] ).add( points[ l - 1 ] );\n\t\t\tp3 = tmp;\n\n\t\t}\n\n\t\tif ( this.curveType === 'centripetal' || this.curveType === 'chordal' ) {\n\n\t\t\t// init Centripetal / Chordal Catmull-Rom\n\t\t\tconst pow = this.curveType === 'chordal' ? 0.5 : 0.25;\n\t\t\tlet dt0 = Math.pow( p0.distanceToSquared( p1 ), pow );\n\t\t\tlet dt1 = Math.pow( p1.distanceToSquared( p2 ), pow );\n\t\t\tlet dt2 = Math.pow( p2.distanceToSquared( p3 ), pow );\n\n\t\t\t// safety check for repeated points\n\t\t\tif ( dt1 < 1e-4 ) dt1 = 1.0;\n\t\t\tif ( dt0 < 1e-4 ) dt0 = dt1;\n\t\t\tif ( dt2 < 1e-4 ) dt2 = dt1;\n\n\t\t\tpx.initNonuniformCatmullRom( p0.x, p1.x, p2.x, p3.x, dt0, dt1, dt2 );\n\t\t\tpy.initNonuniformCatmullRom( p0.y, p1.y, p2.y, p3.y, dt0, dt1, dt2 );\n\t\t\tpz.initNonuniformCatmullRom( p0.z, p1.z, p2.z, p3.z, dt0, dt1, dt2 );\n\n\t\t} else if ( this.curveType === 'catmullrom' ) {\n\n\t\t\tpx.initCatmullRom( p0.x, p1.x, p2.x, p3.x, this.tension );\n\t\t\tpy.initCatmullRom( p0.y, p1.y, p2.y, p3.y, this.tension );\n\t\t\tpz.initCatmullRom( p0.z, p1.z, p2.z, p3.z, this.tension );\n\n\t\t}\n\n\t\tpoint.set(\n\t\t\tpx.calc( weight ),\n\t\t\tpy.calc( weight ),\n\t\t\tpz.calc( weight )\n\t\t);\n\n\t\treturn point;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.points = [];\n\n\t\tfor ( let i = 0, l = source.points.length; i < l; i ++ ) {\n\n\t\t\tconst point = source.points[ i ];\n\n\t\t\tthis.points.push( point.clone() );\n\n\t\t}\n\n\t\tthis.closed = source.closed;\n\t\tthis.curveType = source.curveType;\n\t\tthis.tension = source.tension;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.points = [];\n\n\t\tfor ( let i = 0, l = this.points.length; i < l; i ++ ) {\n\n\t\t\tconst point = this.points[ i ];\n\t\t\tdata.points.push( point.toArray() );\n\n\t\t}\n\n\t\tdata.closed = this.closed;\n\t\tdata.curveType = this.curveType;\n\t\tdata.tension = this.tension;\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.points = [];\n\n\t\tfor ( let i = 0, l = json.points.length; i < l; i ++ ) {\n\n\t\t\tconst point = json.points[ i ];\n\t\t\tthis.points.push( new Vector3().fromArray( point ) );\n\n\t\t}\n\n\t\tthis.closed = json.closed;\n\t\tthis.curveType = json.curveType;\n\t\tthis.tension = json.tension;\n\n\t\treturn this;\n\n\t}\n\n}\n\n/**\n * Bezier Curves formulas obtained from\n * https://en.wikipedia.org/wiki/B%C3%A9zier_curve\n */\n\nfunction CatmullRom( t, p0, p1, p2, p3 ) {\n\n\tconst v0 = ( p2 - p0 ) * 0.5;\n\tconst v1 = ( p3 - p1 ) * 0.5;\n\tconst t2 = t * t;\n\tconst t3 = t * t2;\n\treturn ( 2 * p1 - 2 * p2 + v0 + v1 ) * t3 + ( - 3 * p1 + 3 * p2 - 2 * v0 - v1 ) * t2 + v0 * t + p1;\n\n}\n\n//\n\nfunction QuadraticBezierP0( t, p ) {\n\n\tconst k = 1 - t;\n\treturn k * k * p;\n\n}\n\nfunction QuadraticBezierP1( t, p ) {\n\n\treturn 2 * ( 1 - t ) * t * p;\n\n}\n\nfunction QuadraticBezierP2( t, p ) {\n\n\treturn t * t * p;\n\n}\n\nfunction QuadraticBezier( t, p0, p1, p2 ) {\n\n\treturn QuadraticBezierP0( t, p0 ) + QuadraticBezierP1( t, p1 ) +\n\t\tQuadraticBezierP2( t, p2 );\n\n}\n\n//\n\nfunction CubicBezierP0( t, p ) {\n\n\tconst k = 1 - t;\n\treturn k * k * k * p;\n\n}\n\nfunction CubicBezierP1( t, p ) {\n\n\tconst k = 1 - t;\n\treturn 3 * k * k * t * p;\n\n}\n\nfunction CubicBezierP2( t, p ) {\n\n\treturn 3 * ( 1 - t ) * t * t * p;\n\n}\n\nfunction CubicBezierP3( t, p ) {\n\n\treturn t * t * t * p;\n\n}\n\nfunction CubicBezier( t, p0, p1, p2, p3 ) {\n\n\treturn CubicBezierP0( t, p0 ) + CubicBezierP1( t, p1 ) + CubicBezierP2( t, p2 ) +\n\t\tCubicBezierP3( t, p3 );\n\n}\n\nclass CubicBezierCurve extends Curve {\n\n\tconstructor( v0 = new Vector2(), v1 = new Vector2(), v2 = new Vector2(), v3 = new Vector2() ) {\n\n\t\tsuper();\n\n\t\tthis.isCubicBezierCurve = true;\n\n\t\tthis.type = 'CubicBezierCurve';\n\n\t\tthis.v0 = v0;\n\t\tthis.v1 = v1;\n\t\tthis.v2 = v2;\n\t\tthis.v3 = v3;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector2() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tconst v0 = this.v0, v1 = this.v1, v2 = this.v2, v3 = this.v3;\n\n\t\tpoint.set(\n\t\t\tCubicBezier( t, v0.x, v1.x, v2.x, v3.x ),\n\t\t\tCubicBezier( t, v0.y, v1.y, v2.y, v3.y )\n\t\t);\n\n\t\treturn point;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.v0.copy( source.v0 );\n\t\tthis.v1.copy( source.v1 );\n\t\tthis.v2.copy( source.v2 );\n\t\tthis.v3.copy( source.v3 );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.v0 = this.v0.toArray();\n\t\tdata.v1 = this.v1.toArray();\n\t\tdata.v2 = this.v2.toArray();\n\t\tdata.v3 = this.v3.toArray();\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.v0.fromArray( json.v0 );\n\t\tthis.v1.fromArray( json.v1 );\n\t\tthis.v2.fromArray( json.v2 );\n\t\tthis.v3.fromArray( json.v3 );\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass CubicBezierCurve3 extends Curve {\n\n\tconstructor( v0 = new Vector3(), v1 = new Vector3(), v2 = new Vector3(), v3 = new Vector3() ) {\n\n\t\tsuper();\n\n\t\tthis.isCubicBezierCurve3 = true;\n\n\t\tthis.type = 'CubicBezierCurve3';\n\n\t\tthis.v0 = v0;\n\t\tthis.v1 = v1;\n\t\tthis.v2 = v2;\n\t\tthis.v3 = v3;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector3() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tconst v0 = this.v0, v1 = this.v1, v2 = this.v2, v3 = this.v3;\n\n\t\tpoint.set(\n\t\t\tCubicBezier( t, v0.x, v1.x, v2.x, v3.x ),\n\t\t\tCubicBezier( t, v0.y, v1.y, v2.y, v3.y ),\n\t\t\tCubicBezier( t, v0.z, v1.z, v2.z, v3.z )\n\t\t);\n\n\t\treturn point;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.v0.copy( source.v0 );\n\t\tthis.v1.copy( source.v1 );\n\t\tthis.v2.copy( source.v2 );\n\t\tthis.v3.copy( source.v3 );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.v0 = this.v0.toArray();\n\t\tdata.v1 = this.v1.toArray();\n\t\tdata.v2 = this.v2.toArray();\n\t\tdata.v3 = this.v3.toArray();\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.v0.fromArray( json.v0 );\n\t\tthis.v1.fromArray( json.v1 );\n\t\tthis.v2.fromArray( json.v2 );\n\t\tthis.v3.fromArray( json.v3 );\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass LineCurve extends Curve {\n\n\tconstructor( v1 = new Vector2(), v2 = new Vector2() ) {\n\n\t\tsuper();\n\n\t\tthis.isLineCurve = true;\n\n\t\tthis.type = 'LineCurve';\n\n\t\tthis.v1 = v1;\n\t\tthis.v2 = v2;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector2() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tif ( t === 1 ) {\n\n\t\t\tpoint.copy( this.v2 );\n\n\t\t} else {\n\n\t\t\tpoint.copy( this.v2 ).sub( this.v1 );\n\t\t\tpoint.multiplyScalar( t ).add( this.v1 );\n\n\t\t}\n\n\t\treturn point;\n\n\t}\n\n\t// Line curve is linear, so we can overwrite default getPointAt\n\tgetPointAt( u, optionalTarget ) {\n\n\t\treturn this.getPoint( u, optionalTarget );\n\n\t}\n\n\tgetTangent( t, optionalTarget = new Vector2() ) {\n\n\t\treturn optionalTarget.subVectors( this.v2, this.v1 ).normalize();\n\n\t}\n\n\tgetTangentAt( u, optionalTarget ) {\n\n\t\treturn this.getTangent( u, optionalTarget );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.v1.copy( source.v1 );\n\t\tthis.v2.copy( source.v2 );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.v1 = this.v1.toArray();\n\t\tdata.v2 = this.v2.toArray();\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.v1.fromArray( json.v1 );\n\t\tthis.v2.fromArray( json.v2 );\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass LineCurve3 extends Curve {\n\n\tconstructor( v1 = new Vector3(), v2 = new Vector3() ) {\n\n\t\tsuper();\n\n\t\tthis.isLineCurve3 = true;\n\n\t\tthis.type = 'LineCurve3';\n\n\t\tthis.v1 = v1;\n\t\tthis.v2 = v2;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector3() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tif ( t === 1 ) {\n\n\t\t\tpoint.copy( this.v2 );\n\n\t\t} else {\n\n\t\t\tpoint.copy( this.v2 ).sub( this.v1 );\n\t\t\tpoint.multiplyScalar( t ).add( this.v1 );\n\n\t\t}\n\n\t\treturn point;\n\n\t}\n\n\t// Line curve is linear, so we can overwrite default getPointAt\n\tgetPointAt( u, optionalTarget ) {\n\n\t\treturn this.getPoint( u, optionalTarget );\n\n\t}\n\n\tgetTangent( t, optionalTarget = new Vector3() ) {\n\n\t\treturn optionalTarget.subVectors( this.v2, this.v1 ).normalize();\n\n\t}\n\n\tgetTangentAt( u, optionalTarget ) {\n\n\t\treturn this.getTangent( u, optionalTarget );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.v1.copy( source.v1 );\n\t\tthis.v2.copy( source.v2 );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.v1 = this.v1.toArray();\n\t\tdata.v2 = this.v2.toArray();\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.v1.fromArray( json.v1 );\n\t\tthis.v2.fromArray( json.v2 );\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass QuadraticBezierCurve extends Curve {\n\n\tconstructor( v0 = new Vector2(), v1 = new Vector2(), v2 = new Vector2() ) {\n\n\t\tsuper();\n\n\t\tthis.isQuadraticBezierCurve = true;\n\n\t\tthis.type = 'QuadraticBezierCurve';\n\n\t\tthis.v0 = v0;\n\t\tthis.v1 = v1;\n\t\tthis.v2 = v2;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector2() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tconst v0 = this.v0, v1 = this.v1, v2 = this.v2;\n\n\t\tpoint.set(\n\t\t\tQuadraticBezier( t, v0.x, v1.x, v2.x ),\n\t\t\tQuadraticBezier( t, v0.y, v1.y, v2.y )\n\t\t);\n\n\t\treturn point;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.v0.copy( source.v0 );\n\t\tthis.v1.copy( source.v1 );\n\t\tthis.v2.copy( source.v2 );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.v0 = this.v0.toArray();\n\t\tdata.v1 = this.v1.toArray();\n\t\tdata.v2 = this.v2.toArray();\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.v0.fromArray( json.v0 );\n\t\tthis.v1.fromArray( json.v1 );\n\t\tthis.v2.fromArray( json.v2 );\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass QuadraticBezierCurve3 extends Curve {\n\n\tconstructor( v0 = new Vector3(), v1 = new Vector3(), v2 = new Vector3() ) {\n\n\t\tsuper();\n\n\t\tthis.isQuadraticBezierCurve3 = true;\n\n\t\tthis.type = 'QuadraticBezierCurve3';\n\n\t\tthis.v0 = v0;\n\t\tthis.v1 = v1;\n\t\tthis.v2 = v2;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector3() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tconst v0 = this.v0, v1 = this.v1, v2 = this.v2;\n\n\t\tpoint.set(\n\t\t\tQuadraticBezier( t, v0.x, v1.x, v2.x ),\n\t\t\tQuadraticBezier( t, v0.y, v1.y, v2.y ),\n\t\t\tQuadraticBezier( t, v0.z, v1.z, v2.z )\n\t\t);\n\n\t\treturn point;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.v0.copy( source.v0 );\n\t\tthis.v1.copy( source.v1 );\n\t\tthis.v2.copy( source.v2 );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.v0 = this.v0.toArray();\n\t\tdata.v1 = this.v1.toArray();\n\t\tdata.v2 = this.v2.toArray();\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.v0.fromArray( json.v0 );\n\t\tthis.v1.fromArray( json.v1 );\n\t\tthis.v2.fromArray( json.v2 );\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass SplineCurve extends Curve {\n\n\tconstructor( points = [] ) {\n\n\t\tsuper();\n\n\t\tthis.isSplineCurve = true;\n\n\t\tthis.type = 'SplineCurve';\n\n\t\tthis.points = points;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector2() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tconst points = this.points;\n\t\tconst p = ( points.length - 1 ) * t;\n\n\t\tconst intPoint = Math.floor( p );\n\t\tconst weight = p - intPoint;\n\n\t\tconst p0 = points[ intPoint === 0 ? intPoint : intPoint - 1 ];\n\t\tconst p1 = points[ intPoint ];\n\t\tconst p2 = points[ intPoint > points.length - 2 ? points.length - 1 : intPoint + 1 ];\n\t\tconst p3 = points[ intPoint > points.length - 3 ? points.length - 1 : intPoint + 2 ];\n\n\t\tpoint.set(\n\t\t\tCatmullRom( weight, p0.x, p1.x, p2.x, p3.x ),\n\t\t\tCatmullRom( weight, p0.y, p1.y, p2.y, p3.y )\n\t\t);\n\n\t\treturn point;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.points = [];\n\n\t\tfor ( let i = 0, l = source.points.length; i < l; i ++ ) {\n\n\t\t\tconst point = source.points[ i ];\n\n\t\t\tthis.points.push( point.clone() );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.points = [];\n\n\t\tfor ( let i = 0, l = this.points.length; i < l; i ++ ) {\n\n\t\t\tconst point = this.points[ i ];\n\t\t\tdata.points.push( point.toArray() );\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.points = [];\n\n\t\tfor ( let i = 0, l = json.points.length; i < l; i ++ ) {\n\n\t\t\tconst point = json.points[ i ];\n\t\t\tthis.points.push( new Vector2().fromArray( point ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\nvar Curves = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tArcCurve: ArcCurve,\n\tCatmullRomCurve3: CatmullRomCurve3,\n\tCubicBezierCurve: CubicBezierCurve,\n\tCubicBezierCurve3: CubicBezierCurve3,\n\tEllipseCurve: EllipseCurve,\n\tLineCurve: LineCurve,\n\tLineCurve3: LineCurve3,\n\tQuadraticBezierCurve: QuadraticBezierCurve,\n\tQuadraticBezierCurve3: QuadraticBezierCurve3,\n\tSplineCurve: SplineCurve\n});\n\n/**************************************************************\n *\tCurved Path - a curve path is simply a array of connected\n * curves, but retains the api of a curve\n **************************************************************/\n\nclass CurvePath extends Curve {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.type = 'CurvePath';\n\n\t\tthis.curves = [];\n\t\tthis.autoClose = false; // Automatically closes the path\n\n\t}\n\n\tadd( curve ) {\n\n\t\tthis.curves.push( curve );\n\n\t}\n\n\tclosePath() {\n\n\t\t// Add a line curve if start and end of lines are not connected\n\t\tconst startPoint = this.curves[ 0 ].getPoint( 0 );\n\t\tconst endPoint = this.curves[ this.curves.length - 1 ].getPoint( 1 );\n\n\t\tif ( ! startPoint.equals( endPoint ) ) {\n\n\t\t\tconst lineType = ( startPoint.isVector2 === true ) ? 'LineCurve' : 'LineCurve3';\n\t\t\tthis.curves.push( new Curves[ lineType ]( endPoint, startPoint ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// To get accurate point with reference to\n\t// entire path distance at time t,\n\t// following has to be done:\n\n\t// 1. Length of each sub path have to be known\n\t// 2. Locate and identify type of curve\n\t// 3. Get t for the curve\n\t// 4. Return curve.getPointAt(t')\n\n\tgetPoint( t, optionalTarget ) {\n\n\t\tconst d = t * this.getLength();\n\t\tconst curveLengths = this.getCurveLengths();\n\t\tlet i = 0;\n\n\t\t// To think about boundaries points.\n\n\t\twhile ( i < curveLengths.length ) {\n\n\t\t\tif ( curveLengths[ i ] >= d ) {\n\n\t\t\t\tconst diff = curveLengths[ i ] - d;\n\t\t\t\tconst curve = this.curves[ i ];\n\n\t\t\t\tconst segmentLength = curve.getLength();\n\t\t\t\tconst u = segmentLength === 0 ? 0 : 1 - diff / segmentLength;\n\n\t\t\t\treturn curve.getPointAt( u, optionalTarget );\n\n\t\t\t}\n\n\t\t\ti ++;\n\n\t\t}\n\n\t\treturn null;\n\n\t\t// loop where sum != 0, sum > d , sum+1 1 && ! points[ points.length - 1 ].equals( points[ 0 ] ) ) {\n\n\t\t\tpoints.push( points[ 0 ] );\n\n\t\t}\n\n\t\treturn points;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.curves = [];\n\n\t\tfor ( let i = 0, l = source.curves.length; i < l; i ++ ) {\n\n\t\t\tconst curve = source.curves[ i ];\n\n\t\t\tthis.curves.push( curve.clone() );\n\n\t\t}\n\n\t\tthis.autoClose = source.autoClose;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.autoClose = this.autoClose;\n\t\tdata.curves = [];\n\n\t\tfor ( let i = 0, l = this.curves.length; i < l; i ++ ) {\n\n\t\t\tconst curve = this.curves[ i ];\n\t\t\tdata.curves.push( curve.toJSON() );\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.autoClose = json.autoClose;\n\t\tthis.curves = [];\n\n\t\tfor ( let i = 0, l = json.curves.length; i < l; i ++ ) {\n\n\t\t\tconst curve = json.curves[ i ];\n\t\t\tthis.curves.push( new Curves[ curve.type ]().fromJSON( curve ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass Path extends CurvePath {\n\n\tconstructor( points ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'Path';\n\n\t\tthis.currentPoint = new Vector2();\n\n\t\tif ( points ) {\n\n\t\t\tthis.setFromPoints( points );\n\n\t\t}\n\n\t}\n\n\tsetFromPoints( points ) {\n\n\t\tthis.moveTo( points[ 0 ].x, points[ 0 ].y );\n\n\t\tfor ( let i = 1, l = points.length; i < l; i ++ ) {\n\n\t\t\tthis.lineTo( points[ i ].x, points[ i ].y );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tmoveTo( x, y ) {\n\n\t\tthis.currentPoint.set( x, y ); // TODO consider referencing vectors instead of copying?\n\n\t\treturn this;\n\n\t}\n\n\tlineTo( x, y ) {\n\n\t\tconst curve = new LineCurve( this.currentPoint.clone(), new Vector2( x, y ) );\n\t\tthis.curves.push( curve );\n\n\t\tthis.currentPoint.set( x, y );\n\n\t\treturn this;\n\n\t}\n\n\tquadraticCurveTo( aCPx, aCPy, aX, aY ) {\n\n\t\tconst curve = new QuadraticBezierCurve(\n\t\t\tthis.currentPoint.clone(),\n\t\t\tnew Vector2( aCPx, aCPy ),\n\t\t\tnew Vector2( aX, aY )\n\t\t);\n\n\t\tthis.curves.push( curve );\n\n\t\tthis.currentPoint.set( aX, aY );\n\n\t\treturn this;\n\n\t}\n\n\tbezierCurveTo( aCP1x, aCP1y, aCP2x, aCP2y, aX, aY ) {\n\n\t\tconst curve = new CubicBezierCurve(\n\t\t\tthis.currentPoint.clone(),\n\t\t\tnew Vector2( aCP1x, aCP1y ),\n\t\t\tnew Vector2( aCP2x, aCP2y ),\n\t\t\tnew Vector2( aX, aY )\n\t\t);\n\n\t\tthis.curves.push( curve );\n\n\t\tthis.currentPoint.set( aX, aY );\n\n\t\treturn this;\n\n\t}\n\n\tsplineThru( pts /*Array of Vector*/ ) {\n\n\t\tconst npts = [ this.currentPoint.clone() ].concat( pts );\n\n\t\tconst curve = new SplineCurve( npts );\n\t\tthis.curves.push( curve );\n\n\t\tthis.currentPoint.copy( pts[ pts.length - 1 ] );\n\n\t\treturn this;\n\n\t}\n\n\tarc( aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise ) {\n\n\t\tconst x0 = this.currentPoint.x;\n\t\tconst y0 = this.currentPoint.y;\n\n\t\tthis.absarc( aX + x0, aY + y0, aRadius,\n\t\t\taStartAngle, aEndAngle, aClockwise );\n\n\t\treturn this;\n\n\t}\n\n\tabsarc( aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise ) {\n\n\t\tthis.absellipse( aX, aY, aRadius, aRadius, aStartAngle, aEndAngle, aClockwise );\n\n\t\treturn this;\n\n\t}\n\n\tellipse( aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation ) {\n\n\t\tconst x0 = this.currentPoint.x;\n\t\tconst y0 = this.currentPoint.y;\n\n\t\tthis.absellipse( aX + x0, aY + y0, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation );\n\n\t\treturn this;\n\n\t}\n\n\tabsellipse( aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation ) {\n\n\t\tconst curve = new EllipseCurve( aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation );\n\n\t\tif ( this.curves.length > 0 ) {\n\n\t\t\t// if a previous curve is present, attempt to join\n\t\t\tconst firstPoint = curve.getPoint( 0 );\n\n\t\t\tif ( ! firstPoint.equals( this.currentPoint ) ) {\n\n\t\t\t\tthis.lineTo( firstPoint.x, firstPoint.y );\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis.curves.push( curve );\n\n\t\tconst lastPoint = curve.getPoint( 1 );\n\t\tthis.currentPoint.copy( lastPoint );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.currentPoint.copy( source.currentPoint );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.currentPoint = this.currentPoint.toArray();\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.currentPoint.fromArray( json.currentPoint );\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass LatheGeometry extends BufferGeometry {\n\n\tconstructor( points = [ new Vector2( 0, - 0.5 ), new Vector2( 0.5, 0 ), new Vector2( 0, 0.5 ) ], segments = 12, phiStart = 0, phiLength = Math.PI * 2 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'LatheGeometry';\n\n\t\tthis.parameters = {\n\t\t\tpoints: points,\n\t\t\tsegments: segments,\n\t\t\tphiStart: phiStart,\n\t\t\tphiLength: phiLength\n\t\t};\n\n\t\tsegments = Math.floor( segments );\n\n\t\t// clamp phiLength so it's in range of [ 0, 2PI ]\n\n\t\tphiLength = clamp( phiLength, 0, Math.PI * 2 );\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst uvs = [];\n\t\tconst initNormals = [];\n\t\tconst normals = [];\n\n\t\t// helper variables\n\n\t\tconst inverseSegments = 1.0 / segments;\n\t\tconst vertex = new Vector3();\n\t\tconst uv = new Vector2();\n\t\tconst normal = new Vector3();\n\t\tconst curNormal = new Vector3();\n\t\tconst prevNormal = new Vector3();\n\t\tlet dx = 0;\n\t\tlet dy = 0;\n\n\t\t// pre-compute normals for initial \"meridian\"\n\n\t\tfor ( let j = 0; j <= ( points.length - 1 ); j ++ ) {\n\n\t\t\tswitch ( j ) {\n\n\t\t\t\tcase 0:\t\t\t\t// special handling for 1st vertex on path\n\n\t\t\t\t\tdx = points[ j + 1 ].x - points[ j ].x;\n\t\t\t\t\tdy = points[ j + 1 ].y - points[ j ].y;\n\n\t\t\t\t\tnormal.x = dy * 1.0;\n\t\t\t\t\tnormal.y = - dx;\n\t\t\t\t\tnormal.z = dy * 0.0;\n\n\t\t\t\t\tprevNormal.copy( normal );\n\n\t\t\t\t\tnormal.normalize();\n\n\t\t\t\t\tinitNormals.push( normal.x, normal.y, normal.z );\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase ( points.length - 1 ):\t// special handling for last Vertex on path\n\n\t\t\t\t\tinitNormals.push( prevNormal.x, prevNormal.y, prevNormal.z );\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\t\t\t// default handling for all vertices in between\n\n\t\t\t\t\tdx = points[ j + 1 ].x - points[ j ].x;\n\t\t\t\t\tdy = points[ j + 1 ].y - points[ j ].y;\n\n\t\t\t\t\tnormal.x = dy * 1.0;\n\t\t\t\t\tnormal.y = - dx;\n\t\t\t\t\tnormal.z = dy * 0.0;\n\n\t\t\t\t\tcurNormal.copy( normal );\n\n\t\t\t\t\tnormal.x += prevNormal.x;\n\t\t\t\t\tnormal.y += prevNormal.y;\n\t\t\t\t\tnormal.z += prevNormal.z;\n\n\t\t\t\t\tnormal.normalize();\n\n\t\t\t\t\tinitNormals.push( normal.x, normal.y, normal.z );\n\n\t\t\t\t\tprevNormal.copy( curNormal );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// generate vertices, uvs and normals\n\n\t\tfor ( let i = 0; i <= segments; i ++ ) {\n\n\t\t\tconst phi = phiStart + i * inverseSegments * phiLength;\n\n\t\t\tconst sin = Math.sin( phi );\n\t\t\tconst cos = Math.cos( phi );\n\n\t\t\tfor ( let j = 0; j <= ( points.length - 1 ); j ++ ) {\n\n\t\t\t\t// vertex\n\n\t\t\t\tvertex.x = points[ j ].x * sin;\n\t\t\t\tvertex.y = points[ j ].y;\n\t\t\t\tvertex.z = points[ j ].x * cos;\n\n\t\t\t\tvertices.push( vertex.x, vertex.y, vertex.z );\n\n\t\t\t\t// uv\n\n\t\t\t\tuv.x = i / segments;\n\t\t\t\tuv.y = j / ( points.length - 1 );\n\n\t\t\t\tuvs.push( uv.x, uv.y );\n\n\t\t\t\t// normal\n\n\t\t\t\tconst x = initNormals[ 3 * j + 0 ] * sin;\n\t\t\t\tconst y = initNormals[ 3 * j + 1 ];\n\t\t\t\tconst z = initNormals[ 3 * j + 0 ] * cos;\n\n\t\t\t\tnormals.push( x, y, z );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// indices\n\n\t\tfor ( let i = 0; i < segments; i ++ ) {\n\n\t\t\tfor ( let j = 0; j < ( points.length - 1 ); j ++ ) {\n\n\t\t\t\tconst base = j + i * points.length;\n\n\t\t\t\tconst a = base;\n\t\t\t\tconst b = base + points.length;\n\t\t\t\tconst c = base + points.length + 1;\n\t\t\t\tconst d = base + 1;\n\n\t\t\t\t// faces\n\n\t\t\t\tindices.push( a, b, d );\n\t\t\t\tindices.push( c, d, b );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new LatheGeometry( data.points, data.segments, data.phiStart, data.phiLength );\n\n\t}\n\n}\n\nclass CapsuleGeometry extends LatheGeometry {\n\n\tconstructor( radius = 1, length = 1, capSegments = 4, radialSegments = 8 ) {\n\n\t\tconst path = new Path();\n\t\tpath.absarc( 0, - length / 2, radius, Math.PI * 1.5, 0 );\n\t\tpath.absarc( 0, length / 2, radius, 0, Math.PI * 0.5 );\n\n\t\tsuper( path.getPoints( capSegments ), radialSegments );\n\n\t\tthis.type = 'CapsuleGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\tlength: length,\n\t\t\tcapSegments: capSegments,\n\t\t\tradialSegments: radialSegments,\n\t\t};\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new CapsuleGeometry( data.radius, data.length, data.capSegments, data.radialSegments );\n\n\t}\n\n}\n\nclass CircleGeometry extends BufferGeometry {\n\n\tconstructor( radius = 1, segments = 32, thetaStart = 0, thetaLength = Math.PI * 2 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'CircleGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\tsegments: segments,\n\t\t\tthetaStart: thetaStart,\n\t\t\tthetaLength: thetaLength\n\t\t};\n\n\t\tsegments = Math.max( 3, segments );\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\t// helper variables\n\n\t\tconst vertex = new Vector3();\n\t\tconst uv = new Vector2();\n\n\t\t// center point\n\n\t\tvertices.push( 0, 0, 0 );\n\t\tnormals.push( 0, 0, 1 );\n\t\tuvs.push( 0.5, 0.5 );\n\n\t\tfor ( let s = 0, i = 3; s <= segments; s ++, i += 3 ) {\n\n\t\t\tconst segment = thetaStart + s / segments * thetaLength;\n\n\t\t\t// vertex\n\n\t\t\tvertex.x = radius * Math.cos( segment );\n\t\t\tvertex.y = radius * Math.sin( segment );\n\n\t\t\tvertices.push( vertex.x, vertex.y, vertex.z );\n\n\t\t\t// normal\n\n\t\t\tnormals.push( 0, 0, 1 );\n\n\t\t\t// uvs\n\n\t\t\tuv.x = ( vertices[ i ] / radius + 1 ) / 2;\n\t\t\tuv.y = ( vertices[ i + 1 ] / radius + 1 ) / 2;\n\n\t\t\tuvs.push( uv.x, uv.y );\n\n\t\t}\n\n\t\t// indices\n\n\t\tfor ( let i = 1; i <= segments; i ++ ) {\n\n\t\t\tindices.push( i, i + 1, 0 );\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new CircleGeometry( data.radius, data.segments, data.thetaStart, data.thetaLength );\n\n\t}\n\n}\n\nclass CylinderGeometry extends BufferGeometry {\n\n\tconstructor( radiusTop = 1, radiusBottom = 1, height = 1, radialSegments = 32, heightSegments = 1, openEnded = false, thetaStart = 0, thetaLength = Math.PI * 2 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'CylinderGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradiusTop: radiusTop,\n\t\t\tradiusBottom: radiusBottom,\n\t\t\theight: height,\n\t\t\tradialSegments: radialSegments,\n\t\t\theightSegments: heightSegments,\n\t\t\topenEnded: openEnded,\n\t\t\tthetaStart: thetaStart,\n\t\t\tthetaLength: thetaLength\n\t\t};\n\n\t\tconst scope = this;\n\n\t\tradialSegments = Math.floor( radialSegments );\n\t\theightSegments = Math.floor( heightSegments );\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\t// helper variables\n\n\t\tlet index = 0;\n\t\tconst indexArray = [];\n\t\tconst halfHeight = height / 2;\n\t\tlet groupStart = 0;\n\n\t\t// generate geometry\n\n\t\tgenerateTorso();\n\n\t\tif ( openEnded === false ) {\n\n\t\t\tif ( radiusTop > 0 ) generateCap( true );\n\t\t\tif ( radiusBottom > 0 ) generateCap( false );\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t\tfunction generateTorso() {\n\n\t\t\tconst normal = new Vector3();\n\t\t\tconst vertex = new Vector3();\n\n\t\t\tlet groupCount = 0;\n\n\t\t\t// this will be used to calculate the normal\n\t\t\tconst slope = ( radiusBottom - radiusTop ) / height;\n\n\t\t\t// generate vertices, normals and uvs\n\n\t\t\tfor ( let y = 0; y <= heightSegments; y ++ ) {\n\n\t\t\t\tconst indexRow = [];\n\n\t\t\t\tconst v = y / heightSegments;\n\n\t\t\t\t// calculate the radius of the current row\n\n\t\t\t\tconst radius = v * ( radiusBottom - radiusTop ) + radiusTop;\n\n\t\t\t\tfor ( let x = 0; x <= radialSegments; x ++ ) {\n\n\t\t\t\t\tconst u = x / radialSegments;\n\n\t\t\t\t\tconst theta = u * thetaLength + thetaStart;\n\n\t\t\t\t\tconst sinTheta = Math.sin( theta );\n\t\t\t\t\tconst cosTheta = Math.cos( theta );\n\n\t\t\t\t\t// vertex\n\n\t\t\t\t\tvertex.x = radius * sinTheta;\n\t\t\t\t\tvertex.y = - v * height + halfHeight;\n\t\t\t\t\tvertex.z = radius * cosTheta;\n\t\t\t\t\tvertices.push( vertex.x, vertex.y, vertex.z );\n\n\t\t\t\t\t// normal\n\n\t\t\t\t\tnormal.set( sinTheta, slope, cosTheta ).normalize();\n\t\t\t\t\tnormals.push( normal.x, normal.y, normal.z );\n\n\t\t\t\t\t// uv\n\n\t\t\t\t\tuvs.push( u, 1 - v );\n\n\t\t\t\t\t// save index of vertex in respective row\n\n\t\t\t\t\tindexRow.push( index ++ );\n\n\t\t\t\t}\n\n\t\t\t\t// now save vertices of the row in our index array\n\n\t\t\t\tindexArray.push( indexRow );\n\n\t\t\t}\n\n\t\t\t// generate indices\n\n\t\t\tfor ( let x = 0; x < radialSegments; x ++ ) {\n\n\t\t\t\tfor ( let y = 0; y < heightSegments; y ++ ) {\n\n\t\t\t\t\t// we use the index array to access the correct indices\n\n\t\t\t\t\tconst a = indexArray[ y ][ x ];\n\t\t\t\t\tconst b = indexArray[ y + 1 ][ x ];\n\t\t\t\t\tconst c = indexArray[ y + 1 ][ x + 1 ];\n\t\t\t\t\tconst d = indexArray[ y ][ x + 1 ];\n\n\t\t\t\t\t// faces\n\n\t\t\t\t\tif ( radiusTop > 0 || y !== 0 ) {\n\n\t\t\t\t\t\tindices.push( a, b, d );\n\t\t\t\t\t\tgroupCount += 3;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( radiusBottom > 0 || y !== heightSegments - 1 ) {\n\n\t\t\t\t\t\tindices.push( b, c, d );\n\t\t\t\t\t\tgroupCount += 3;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// add a group to the geometry. this will ensure multi material support\n\n\t\t\tscope.addGroup( groupStart, groupCount, 0 );\n\n\t\t\t// calculate new start value for groups\n\n\t\t\tgroupStart += groupCount;\n\n\t\t}\n\n\t\tfunction generateCap( top ) {\n\n\t\t\t// save the index of the first center vertex\n\t\t\tconst centerIndexStart = index;\n\n\t\t\tconst uv = new Vector2();\n\t\t\tconst vertex = new Vector3();\n\n\t\t\tlet groupCount = 0;\n\n\t\t\tconst radius = ( top === true ) ? radiusTop : radiusBottom;\n\t\t\tconst sign = ( top === true ) ? 1 : - 1;\n\n\t\t\t// first we generate the center vertex data of the cap.\n\t\t\t// because the geometry needs one set of uvs per face,\n\t\t\t// we must generate a center vertex per face/segment\n\n\t\t\tfor ( let x = 1; x <= radialSegments; x ++ ) {\n\n\t\t\t\t// vertex\n\n\t\t\t\tvertices.push( 0, halfHeight * sign, 0 );\n\n\t\t\t\t// normal\n\n\t\t\t\tnormals.push( 0, sign, 0 );\n\n\t\t\t\t// uv\n\n\t\t\t\tuvs.push( 0.5, 0.5 );\n\n\t\t\t\t// increase index\n\n\t\t\t\tindex ++;\n\n\t\t\t}\n\n\t\t\t// save the index of the last center vertex\n\t\t\tconst centerIndexEnd = index;\n\n\t\t\t// now we generate the surrounding vertices, normals and uvs\n\n\t\t\tfor ( let x = 0; x <= radialSegments; x ++ ) {\n\n\t\t\t\tconst u = x / radialSegments;\n\t\t\t\tconst theta = u * thetaLength + thetaStart;\n\n\t\t\t\tconst cosTheta = Math.cos( theta );\n\t\t\t\tconst sinTheta = Math.sin( theta );\n\n\t\t\t\t// vertex\n\n\t\t\t\tvertex.x = radius * sinTheta;\n\t\t\t\tvertex.y = halfHeight * sign;\n\t\t\t\tvertex.z = radius * cosTheta;\n\t\t\t\tvertices.push( vertex.x, vertex.y, vertex.z );\n\n\t\t\t\t// normal\n\n\t\t\t\tnormals.push( 0, sign, 0 );\n\n\t\t\t\t// uv\n\n\t\t\t\tuv.x = ( cosTheta * 0.5 ) + 0.5;\n\t\t\t\tuv.y = ( sinTheta * 0.5 * sign ) + 0.5;\n\t\t\t\tuvs.push( uv.x, uv.y );\n\n\t\t\t\t// increase index\n\n\t\t\t\tindex ++;\n\n\t\t\t}\n\n\t\t\t// generate indices\n\n\t\t\tfor ( let x = 0; x < radialSegments; x ++ ) {\n\n\t\t\t\tconst c = centerIndexStart + x;\n\t\t\t\tconst i = centerIndexEnd + x;\n\n\t\t\t\tif ( top === true ) {\n\n\t\t\t\t\t// face top\n\n\t\t\t\t\tindices.push( i, i + 1, c );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// face bottom\n\n\t\t\t\t\tindices.push( i + 1, i, c );\n\n\t\t\t\t}\n\n\t\t\t\tgroupCount += 3;\n\n\t\t\t}\n\n\t\t\t// add a group to the geometry. this will ensure multi material support\n\n\t\t\tscope.addGroup( groupStart, groupCount, top === true ? 1 : 2 );\n\n\t\t\t// calculate new start value for groups\n\n\t\t\tgroupStart += groupCount;\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new CylinderGeometry( data.radiusTop, data.radiusBottom, data.height, data.radialSegments, data.heightSegments, data.openEnded, data.thetaStart, data.thetaLength );\n\n\t}\n\n}\n\nclass ConeGeometry extends CylinderGeometry {\n\n\tconstructor( radius = 1, height = 1, radialSegments = 32, heightSegments = 1, openEnded = false, thetaStart = 0, thetaLength = Math.PI * 2 ) {\n\n\t\tsuper( 0, radius, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength );\n\n\t\tthis.type = 'ConeGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\theight: height,\n\t\t\tradialSegments: radialSegments,\n\t\t\theightSegments: heightSegments,\n\t\t\topenEnded: openEnded,\n\t\t\tthetaStart: thetaStart,\n\t\t\tthetaLength: thetaLength\n\t\t};\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new ConeGeometry( data.radius, data.height, data.radialSegments, data.heightSegments, data.openEnded, data.thetaStart, data.thetaLength );\n\n\t}\n\n}\n\nclass PolyhedronGeometry extends BufferGeometry {\n\n\tconstructor( vertices = [], indices = [], radius = 1, detail = 0 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'PolyhedronGeometry';\n\n\t\tthis.parameters = {\n\t\t\tvertices: vertices,\n\t\t\tindices: indices,\n\t\t\tradius: radius,\n\t\t\tdetail: detail\n\t\t};\n\n\t\t// default buffer data\n\n\t\tconst vertexBuffer = [];\n\t\tconst uvBuffer = [];\n\n\t\t// the subdivision creates the vertex buffer data\n\n\t\tsubdivide( detail );\n\n\t\t// all vertices should lie on a conceptual sphere with a given radius\n\n\t\tapplyRadius( radius );\n\n\t\t// finally, create the uv data\n\n\t\tgenerateUVs();\n\n\t\t// build non-indexed geometry\n\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertexBuffer, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( vertexBuffer.slice(), 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvBuffer, 2 ) );\n\n\t\tif ( detail === 0 ) {\n\n\t\t\tthis.computeVertexNormals(); // flat normals\n\n\t\t} else {\n\n\t\t\tthis.normalizeNormals(); // smooth normals\n\n\t\t}\n\n\t\t// helper functions\n\n\t\tfunction subdivide( detail ) {\n\n\t\t\tconst a = new Vector3();\n\t\t\tconst b = new Vector3();\n\t\t\tconst c = new Vector3();\n\n\t\t\t// iterate over all faces and apply a subdivision with the given detail value\n\n\t\t\tfor ( let i = 0; i < indices.length; i += 3 ) {\n\n\t\t\t\t// get the vertices of the face\n\n\t\t\t\tgetVertexByIndex( indices[ i + 0 ], a );\n\t\t\t\tgetVertexByIndex( indices[ i + 1 ], b );\n\t\t\t\tgetVertexByIndex( indices[ i + 2 ], c );\n\n\t\t\t\t// perform subdivision\n\n\t\t\t\tsubdivideFace( a, b, c, detail );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction subdivideFace( a, b, c, detail ) {\n\n\t\t\tconst cols = detail + 1;\n\n\t\t\t// we use this multidimensional array as a data structure for creating the subdivision\n\n\t\t\tconst v = [];\n\n\t\t\t// construct all of the vertices for this subdivision\n\n\t\t\tfor ( let i = 0; i <= cols; i ++ ) {\n\n\t\t\t\tv[ i ] = [];\n\n\t\t\t\tconst aj = a.clone().lerp( c, i / cols );\n\t\t\t\tconst bj = b.clone().lerp( c, i / cols );\n\n\t\t\t\tconst rows = cols - i;\n\n\t\t\t\tfor ( let j = 0; j <= rows; j ++ ) {\n\n\t\t\t\t\tif ( j === 0 && i === cols ) {\n\n\t\t\t\t\t\tv[ i ][ j ] = aj;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tv[ i ][ j ] = aj.clone().lerp( bj, j / rows );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// construct all of the faces\n\n\t\t\tfor ( let i = 0; i < cols; i ++ ) {\n\n\t\t\t\tfor ( let j = 0; j < 2 * ( cols - i ) - 1; j ++ ) {\n\n\t\t\t\t\tconst k = Math.floor( j / 2 );\n\n\t\t\t\t\tif ( j % 2 === 0 ) {\n\n\t\t\t\t\t\tpushVertex( v[ i ][ k + 1 ] );\n\t\t\t\t\t\tpushVertex( v[ i + 1 ][ k ] );\n\t\t\t\t\t\tpushVertex( v[ i ][ k ] );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tpushVertex( v[ i ][ k + 1 ] );\n\t\t\t\t\t\tpushVertex( v[ i + 1 ][ k + 1 ] );\n\t\t\t\t\t\tpushVertex( v[ i + 1 ][ k ] );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction applyRadius( radius ) {\n\n\t\t\tconst vertex = new Vector3();\n\n\t\t\t// iterate over the entire buffer and apply the radius to each vertex\n\n\t\t\tfor ( let i = 0; i < vertexBuffer.length; i += 3 ) {\n\n\t\t\t\tvertex.x = vertexBuffer[ i + 0 ];\n\t\t\t\tvertex.y = vertexBuffer[ i + 1 ];\n\t\t\t\tvertex.z = vertexBuffer[ i + 2 ];\n\n\t\t\t\tvertex.normalize().multiplyScalar( radius );\n\n\t\t\t\tvertexBuffer[ i + 0 ] = vertex.x;\n\t\t\t\tvertexBuffer[ i + 1 ] = vertex.y;\n\t\t\t\tvertexBuffer[ i + 2 ] = vertex.z;\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction generateUVs() {\n\n\t\t\tconst vertex = new Vector3();\n\n\t\t\tfor ( let i = 0; i < vertexBuffer.length; i += 3 ) {\n\n\t\t\t\tvertex.x = vertexBuffer[ i + 0 ];\n\t\t\t\tvertex.y = vertexBuffer[ i + 1 ];\n\t\t\t\tvertex.z = vertexBuffer[ i + 2 ];\n\n\t\t\t\tconst u = azimuth( vertex ) / 2 / Math.PI + 0.5;\n\t\t\t\tconst v = inclination( vertex ) / Math.PI + 0.5;\n\t\t\t\tuvBuffer.push( u, 1 - v );\n\n\t\t\t}\n\n\t\t\tcorrectUVs();\n\n\t\t\tcorrectSeam();\n\n\t\t}\n\n\t\tfunction correctSeam() {\n\n\t\t\t// handle case when face straddles the seam, see #3269\n\n\t\t\tfor ( let i = 0; i < uvBuffer.length; i += 6 ) {\n\n\t\t\t\t// uv data of a single face\n\n\t\t\t\tconst x0 = uvBuffer[ i + 0 ];\n\t\t\t\tconst x1 = uvBuffer[ i + 2 ];\n\t\t\t\tconst x2 = uvBuffer[ i + 4 ];\n\n\t\t\t\tconst max = Math.max( x0, x1, x2 );\n\t\t\t\tconst min = Math.min( x0, x1, x2 );\n\n\t\t\t\t// 0.9 is somewhat arbitrary\n\n\t\t\t\tif ( max > 0.9 && min < 0.1 ) {\n\n\t\t\t\t\tif ( x0 < 0.2 ) uvBuffer[ i + 0 ] += 1;\n\t\t\t\t\tif ( x1 < 0.2 ) uvBuffer[ i + 2 ] += 1;\n\t\t\t\t\tif ( x2 < 0.2 ) uvBuffer[ i + 4 ] += 1;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction pushVertex( vertex ) {\n\n\t\t\tvertexBuffer.push( vertex.x, vertex.y, vertex.z );\n\n\t\t}\n\n\t\tfunction getVertexByIndex( index, vertex ) {\n\n\t\t\tconst stride = index * 3;\n\n\t\t\tvertex.x = vertices[ stride + 0 ];\n\t\t\tvertex.y = vertices[ stride + 1 ];\n\t\t\tvertex.z = vertices[ stride + 2 ];\n\n\t\t}\n\n\t\tfunction correctUVs() {\n\n\t\t\tconst a = new Vector3();\n\t\t\tconst b = new Vector3();\n\t\t\tconst c = new Vector3();\n\n\t\t\tconst centroid = new Vector3();\n\n\t\t\tconst uvA = new Vector2();\n\t\t\tconst uvB = new Vector2();\n\t\t\tconst uvC = new Vector2();\n\n\t\t\tfor ( let i = 0, j = 0; i < vertexBuffer.length; i += 9, j += 6 ) {\n\n\t\t\t\ta.set( vertexBuffer[ i + 0 ], vertexBuffer[ i + 1 ], vertexBuffer[ i + 2 ] );\n\t\t\t\tb.set( vertexBuffer[ i + 3 ], vertexBuffer[ i + 4 ], vertexBuffer[ i + 5 ] );\n\t\t\t\tc.set( vertexBuffer[ i + 6 ], vertexBuffer[ i + 7 ], vertexBuffer[ i + 8 ] );\n\n\t\t\t\tuvA.set( uvBuffer[ j + 0 ], uvBuffer[ j + 1 ] );\n\t\t\t\tuvB.set( uvBuffer[ j + 2 ], uvBuffer[ j + 3 ] );\n\t\t\t\tuvC.set( uvBuffer[ j + 4 ], uvBuffer[ j + 5 ] );\n\n\t\t\t\tcentroid.copy( a ).add( b ).add( c ).divideScalar( 3 );\n\n\t\t\t\tconst azi = azimuth( centroid );\n\n\t\t\t\tcorrectUV( uvA, j + 0, a, azi );\n\t\t\t\tcorrectUV( uvB, j + 2, b, azi );\n\t\t\t\tcorrectUV( uvC, j + 4, c, azi );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction correctUV( uv, stride, vector, azimuth ) {\n\n\t\t\tif ( ( azimuth < 0 ) && ( uv.x === 1 ) ) {\n\n\t\t\t\tuvBuffer[ stride ] = uv.x - 1;\n\n\t\t\t}\n\n\t\t\tif ( ( vector.x === 0 ) && ( vector.z === 0 ) ) {\n\n\t\t\t\tuvBuffer[ stride ] = azimuth / 2 / Math.PI + 0.5;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// Angle around the Y axis, counter-clockwise when looking from above.\n\n\t\tfunction azimuth( vector ) {\n\n\t\t\treturn Math.atan2( vector.z, - vector.x );\n\n\t\t}\n\n\n\t\t// Angle above the XZ plane.\n\n\t\tfunction inclination( vector ) {\n\n\t\t\treturn Math.atan2( - vector.y, Math.sqrt( ( vector.x * vector.x ) + ( vector.z * vector.z ) ) );\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new PolyhedronGeometry( data.vertices, data.indices, data.radius, data.details );\n\n\t}\n\n}\n\nclass DodecahedronGeometry extends PolyhedronGeometry {\n\n\tconstructor( radius = 1, detail = 0 ) {\n\n\t\tconst t = ( 1 + Math.sqrt( 5 ) ) / 2;\n\t\tconst r = 1 / t;\n\n\t\tconst vertices = [\n\n\t\t\t// (±1, ±1, ±1)\n\t\t\t- 1, - 1, - 1,\t- 1, - 1, 1,\n\t\t\t- 1, 1, - 1, - 1, 1, 1,\n\t\t\t1, - 1, - 1, 1, - 1, 1,\n\t\t\t1, 1, - 1, 1, 1, 1,\n\n\t\t\t// (0, ±1/φ, ±φ)\n\t\t\t0, - r, - t, 0, - r, t,\n\t\t\t0, r, - t, 0, r, t,\n\n\t\t\t// (±1/φ, ±φ, 0)\n\t\t\t- r, - t, 0, - r, t, 0,\n\t\t\tr, - t, 0, r, t, 0,\n\n\t\t\t// (±φ, 0, ±1/φ)\n\t\t\t- t, 0, - r, t, 0, - r,\n\t\t\t- t, 0, r, t, 0, r\n\t\t];\n\n\t\tconst indices = [\n\t\t\t3, 11, 7, \t3, 7, 15, \t3, 15, 13,\n\t\t\t7, 19, 17, \t7, 17, 6, \t7, 6, 15,\n\t\t\t17, 4, 8, \t17, 8, 10, \t17, 10, 6,\n\t\t\t8, 0, 16, \t8, 16, 2, \t8, 2, 10,\n\t\t\t0, 12, 1, \t0, 1, 18, \t0, 18, 16,\n\t\t\t6, 10, 2, \t6, 2, 13, \t6, 13, 15,\n\t\t\t2, 16, 18, \t2, 18, 3, \t2, 3, 13,\n\t\t\t18, 1, 9, \t18, 9, 11, \t18, 11, 3,\n\t\t\t4, 14, 12, \t4, 12, 0, \t4, 0, 8,\n\t\t\t11, 9, 5, \t11, 5, 19, \t11, 19, 7,\n\t\t\t19, 5, 14, \t19, 14, 4, \t19, 4, 17,\n\t\t\t1, 12, 14, \t1, 14, 5, \t1, 5, 9\n\t\t];\n\n\t\tsuper( vertices, indices, radius, detail );\n\n\t\tthis.type = 'DodecahedronGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\tdetail: detail\n\t\t};\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new DodecahedronGeometry( data.radius, data.detail );\n\n\t}\n\n}\n\nconst _v0 = /*@__PURE__*/ new Vector3();\nconst _v1$1 = /*@__PURE__*/ new Vector3();\nconst _normal = /*@__PURE__*/ new Vector3();\nconst _triangle = /*@__PURE__*/ new Triangle();\n\nclass EdgesGeometry extends BufferGeometry {\n\n\tconstructor( geometry = null, thresholdAngle = 1 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'EdgesGeometry';\n\n\t\tthis.parameters = {\n\t\t\tgeometry: geometry,\n\t\t\tthresholdAngle: thresholdAngle\n\t\t};\n\n\t\tif ( geometry !== null ) {\n\n\t\t\tconst precisionPoints = 4;\n\t\t\tconst precision = Math.pow( 10, precisionPoints );\n\t\t\tconst thresholdDot = Math.cos( DEG2RAD * thresholdAngle );\n\n\t\t\tconst indexAttr = geometry.getIndex();\n\t\t\tconst positionAttr = geometry.getAttribute( 'position' );\n\t\t\tconst indexCount = indexAttr ? indexAttr.count : positionAttr.count;\n\n\t\t\tconst indexArr = [ 0, 0, 0 ];\n\t\t\tconst vertKeys = [ 'a', 'b', 'c' ];\n\t\t\tconst hashes = new Array( 3 );\n\n\t\t\tconst edgeData = {};\n\t\t\tconst vertices = [];\n\t\t\tfor ( let i = 0; i < indexCount; i += 3 ) {\n\n\t\t\t\tif ( indexAttr ) {\n\n\t\t\t\t\tindexArr[ 0 ] = indexAttr.getX( i );\n\t\t\t\t\tindexArr[ 1 ] = indexAttr.getX( i + 1 );\n\t\t\t\t\tindexArr[ 2 ] = indexAttr.getX( i + 2 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tindexArr[ 0 ] = i;\n\t\t\t\t\tindexArr[ 1 ] = i + 1;\n\t\t\t\t\tindexArr[ 2 ] = i + 2;\n\n\t\t\t\t}\n\n\t\t\t\tconst { a, b, c } = _triangle;\n\t\t\t\ta.fromBufferAttribute( positionAttr, indexArr[ 0 ] );\n\t\t\t\tb.fromBufferAttribute( positionAttr, indexArr[ 1 ] );\n\t\t\t\tc.fromBufferAttribute( positionAttr, indexArr[ 2 ] );\n\t\t\t\t_triangle.getNormal( _normal );\n\n\t\t\t\t// create hashes for the edge from the vertices\n\t\t\t\thashes[ 0 ] = `${ Math.round( a.x * precision ) },${ Math.round( a.y * precision ) },${ Math.round( a.z * precision ) }`;\n\t\t\t\thashes[ 1 ] = `${ Math.round( b.x * precision ) },${ Math.round( b.y * precision ) },${ Math.round( b.z * precision ) }`;\n\t\t\t\thashes[ 2 ] = `${ Math.round( c.x * precision ) },${ Math.round( c.y * precision ) },${ Math.round( c.z * precision ) }`;\n\n\t\t\t\t// skip degenerate triangles\n\t\t\t\tif ( hashes[ 0 ] === hashes[ 1 ] || hashes[ 1 ] === hashes[ 2 ] || hashes[ 2 ] === hashes[ 0 ] ) {\n\n\t\t\t\t\tcontinue;\n\n\t\t\t\t}\n\n\t\t\t\t// iterate over every edge\n\t\t\t\tfor ( let j = 0; j < 3; j ++ ) {\n\n\t\t\t\t\t// get the first and next vertex making up the edge\n\t\t\t\t\tconst jNext = ( j + 1 ) % 3;\n\t\t\t\t\tconst vecHash0 = hashes[ j ];\n\t\t\t\t\tconst vecHash1 = hashes[ jNext ];\n\t\t\t\t\tconst v0 = _triangle[ vertKeys[ j ] ];\n\t\t\t\t\tconst v1 = _triangle[ vertKeys[ jNext ] ];\n\n\t\t\t\t\tconst hash = `${ vecHash0 }_${ vecHash1 }`;\n\t\t\t\t\tconst reverseHash = `${ vecHash1 }_${ vecHash0 }`;\n\n\t\t\t\t\tif ( reverseHash in edgeData && edgeData[ reverseHash ] ) {\n\n\t\t\t\t\t\t// if we found a sibling edge add it into the vertex array if\n\t\t\t\t\t\t// it meets the angle threshold and delete the edge from the map.\n\t\t\t\t\t\tif ( _normal.dot( edgeData[ reverseHash ].normal ) <= thresholdDot ) {\n\n\t\t\t\t\t\t\tvertices.push( v0.x, v0.y, v0.z );\n\t\t\t\t\t\t\tvertices.push( v1.x, v1.y, v1.z );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tedgeData[ reverseHash ] = null;\n\n\t\t\t\t\t} else if ( ! ( hash in edgeData ) ) {\n\n\t\t\t\t\t\t// if we've already got an edge here then skip adding a new one\n\t\t\t\t\t\tedgeData[ hash ] = {\n\n\t\t\t\t\t\t\tindex0: indexArr[ j ],\n\t\t\t\t\t\t\tindex1: indexArr[ jNext ],\n\t\t\t\t\t\t\tnormal: _normal.clone(),\n\n\t\t\t\t\t\t};\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// iterate over all remaining, unmatched edges and add them to the vertex array\n\t\t\tfor ( const key in edgeData ) {\n\n\t\t\t\tif ( edgeData[ key ] ) {\n\n\t\t\t\t\tconst { index0, index1 } = edgeData[ key ];\n\t\t\t\t\t_v0.fromBufferAttribute( positionAttr, index0 );\n\t\t\t\t\t_v1$1.fromBufferAttribute( positionAttr, index1 );\n\n\t\t\t\t\tvertices.push( _v0.x, _v0.y, _v0.z );\n\t\t\t\t\tvertices.push( _v1$1.x, _v1$1.y, _v1$1.z );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass Shape extends Path {\n\n\tconstructor( points ) {\n\n\t\tsuper( points );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.type = 'Shape';\n\n\t\tthis.holes = [];\n\n\t}\n\n\tgetPointsHoles( divisions ) {\n\n\t\tconst holesPts = [];\n\n\t\tfor ( let i = 0, l = this.holes.length; i < l; i ++ ) {\n\n\t\t\tholesPts[ i ] = this.holes[ i ].getPoints( divisions );\n\n\t\t}\n\n\t\treturn holesPts;\n\n\t}\n\n\t// get points of shape and holes (keypoints based on segments parameter)\n\n\textractPoints( divisions ) {\n\n\t\treturn {\n\n\t\t\tshape: this.getPoints( divisions ),\n\t\t\tholes: this.getPointsHoles( divisions )\n\n\t\t};\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.holes = [];\n\n\t\tfor ( let i = 0, l = source.holes.length; i < l; i ++ ) {\n\n\t\t\tconst hole = source.holes[ i ];\n\n\t\t\tthis.holes.push( hole.clone() );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.uuid = this.uuid;\n\t\tdata.holes = [];\n\n\t\tfor ( let i = 0, l = this.holes.length; i < l; i ++ ) {\n\n\t\t\tconst hole = this.holes[ i ];\n\t\t\tdata.holes.push( hole.toJSON() );\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.uuid = json.uuid;\n\t\tthis.holes = [];\n\n\t\tfor ( let i = 0, l = json.holes.length; i < l; i ++ ) {\n\n\t\t\tconst hole = json.holes[ i ];\n\t\t\tthis.holes.push( new Path().fromJSON( hole ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\n/**\n * Port from https://github.com/mapbox/earcut (v2.2.4)\n */\n\nconst Earcut = {\n\n\ttriangulate: function ( data, holeIndices, dim = 2 ) {\n\n\t\tconst hasHoles = holeIndices && holeIndices.length;\n\t\tconst outerLen = hasHoles ? holeIndices[ 0 ] * dim : data.length;\n\t\tlet outerNode = linkedList( data, 0, outerLen, dim, true );\n\t\tconst triangles = [];\n\n\t\tif ( ! outerNode || outerNode.next === outerNode.prev ) return triangles;\n\n\t\tlet minX, minY, maxX, maxY, x, y, invSize;\n\n\t\tif ( hasHoles ) outerNode = eliminateHoles( data, holeIndices, outerNode, dim );\n\n\t\t// if the shape is not too simple, we'll use z-order curve hash later; calculate polygon bbox\n\t\tif ( data.length > 80 * dim ) {\n\n\t\t\tminX = maxX = data[ 0 ];\n\t\t\tminY = maxY = data[ 1 ];\n\n\t\t\tfor ( let i = dim; i < outerLen; i += dim ) {\n\n\t\t\t\tx = data[ i ];\n\t\t\t\ty = data[ i + 1 ];\n\t\t\t\tif ( x < minX ) minX = x;\n\t\t\t\tif ( y < minY ) minY = y;\n\t\t\t\tif ( x > maxX ) maxX = x;\n\t\t\t\tif ( y > maxY ) maxY = y;\n\n\t\t\t}\n\n\t\t\t// minX, minY and invSize are later used to transform coords into integers for z-order calculation\n\t\t\tinvSize = Math.max( maxX - minX, maxY - minY );\n\t\t\tinvSize = invSize !== 0 ? 32767 / invSize : 0;\n\n\t\t}\n\n\t\tearcutLinked( outerNode, triangles, dim, minX, minY, invSize, 0 );\n\n\t\treturn triangles;\n\n\t}\n\n};\n\n// create a circular doubly linked list from polygon points in the specified winding order\nfunction linkedList( data, start, end, dim, clockwise ) {\n\n\tlet i, last;\n\n\tif ( clockwise === ( signedArea( data, start, end, dim ) > 0 ) ) {\n\n\t\tfor ( i = start; i < end; i += dim ) last = insertNode( i, data[ i ], data[ i + 1 ], last );\n\n\t} else {\n\n\t\tfor ( i = end - dim; i >= start; i -= dim ) last = insertNode( i, data[ i ], data[ i + 1 ], last );\n\n\t}\n\n\tif ( last && equals( last, last.next ) ) {\n\n\t\tremoveNode( last );\n\t\tlast = last.next;\n\n\t}\n\n\treturn last;\n\n}\n\n// eliminate colinear or duplicate points\nfunction filterPoints( start, end ) {\n\n\tif ( ! start ) return start;\n\tif ( ! end ) end = start;\n\n\tlet p = start,\n\t\tagain;\n\tdo {\n\n\t\tagain = false;\n\n\t\tif ( ! p.steiner && ( equals( p, p.next ) || area( p.prev, p, p.next ) === 0 ) ) {\n\n\t\t\tremoveNode( p );\n\t\t\tp = end = p.prev;\n\t\t\tif ( p === p.next ) break;\n\t\t\tagain = true;\n\n\t\t} else {\n\n\t\t\tp = p.next;\n\n\t\t}\n\n\t} while ( again || p !== end );\n\n\treturn end;\n\n}\n\n// main ear slicing loop which triangulates a polygon (given as a linked list)\nfunction earcutLinked( ear, triangles, dim, minX, minY, invSize, pass ) {\n\n\tif ( ! ear ) return;\n\n\t// interlink polygon nodes in z-order\n\tif ( ! pass && invSize ) indexCurve( ear, minX, minY, invSize );\n\n\tlet stop = ear,\n\t\tprev, next;\n\n\t// iterate through ears, slicing them one by one\n\twhile ( ear.prev !== ear.next ) {\n\n\t\tprev = ear.prev;\n\t\tnext = ear.next;\n\n\t\tif ( invSize ? isEarHashed( ear, minX, minY, invSize ) : isEar( ear ) ) {\n\n\t\t\t// cut off the triangle\n\t\t\ttriangles.push( prev.i / dim | 0 );\n\t\t\ttriangles.push( ear.i / dim | 0 );\n\t\t\ttriangles.push( next.i / dim | 0 );\n\n\t\t\tremoveNode( ear );\n\n\t\t\t// skipping the next vertex leads to less sliver triangles\n\t\t\tear = next.next;\n\t\t\tstop = next.next;\n\n\t\t\tcontinue;\n\n\t\t}\n\n\t\tear = next;\n\n\t\t// if we looped through the whole remaining polygon and can't find any more ears\n\t\tif ( ear === stop ) {\n\n\t\t\t// try filtering points and slicing again\n\t\t\tif ( ! pass ) {\n\n\t\t\t\tearcutLinked( filterPoints( ear ), triangles, dim, minX, minY, invSize, 1 );\n\n\t\t\t\t// if this didn't work, try curing all small self-intersections locally\n\n\t\t\t} else if ( pass === 1 ) {\n\n\t\t\t\tear = cureLocalIntersections( filterPoints( ear ), triangles, dim );\n\t\t\t\tearcutLinked( ear, triangles, dim, minX, minY, invSize, 2 );\n\n\t\t\t\t// as a last resort, try splitting the remaining polygon into two\n\n\t\t\t} else if ( pass === 2 ) {\n\n\t\t\t\tsplitEarcut( ear, triangles, dim, minX, minY, invSize );\n\n\t\t\t}\n\n\t\t\tbreak;\n\n\t\t}\n\n\t}\n\n}\n\n// check whether a polygon node forms a valid ear with adjacent nodes\nfunction isEar( ear ) {\n\n\tconst a = ear.prev,\n\t\tb = ear,\n\t\tc = ear.next;\n\n\tif ( area( a, b, c ) >= 0 ) return false; // reflex, can't be an ear\n\n\t// now make sure we don't have other points inside the potential ear\n\tconst ax = a.x, bx = b.x, cx = c.x, ay = a.y, by = b.y, cy = c.y;\n\n\t// triangle bbox; min & max are calculated like this for speed\n\tconst x0 = ax < bx ? ( ax < cx ? ax : cx ) : ( bx < cx ? bx : cx ),\n\t\ty0 = ay < by ? ( ay < cy ? ay : cy ) : ( by < cy ? by : cy ),\n\t\tx1 = ax > bx ? ( ax > cx ? ax : cx ) : ( bx > cx ? bx : cx ),\n\t\ty1 = ay > by ? ( ay > cy ? ay : cy ) : ( by > cy ? by : cy );\n\n\tlet p = c.next;\n\twhile ( p !== a ) {\n\n\t\tif ( p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 &&\n\t\t\tpointInTriangle( ax, ay, bx, by, cx, cy, p.x, p.y ) &&\n\t\t\tarea( p.prev, p, p.next ) >= 0 ) return false;\n\t\tp = p.next;\n\n\t}\n\n\treturn true;\n\n}\n\nfunction isEarHashed( ear, minX, minY, invSize ) {\n\n\tconst a = ear.prev,\n\t\tb = ear,\n\t\tc = ear.next;\n\n\tif ( area( a, b, c ) >= 0 ) return false; // reflex, can't be an ear\n\n\tconst ax = a.x, bx = b.x, cx = c.x, ay = a.y, by = b.y, cy = c.y;\n\n\t// triangle bbox; min & max are calculated like this for speed\n\tconst x0 = ax < bx ? ( ax < cx ? ax : cx ) : ( bx < cx ? bx : cx ),\n\t\ty0 = ay < by ? ( ay < cy ? ay : cy ) : ( by < cy ? by : cy ),\n\t\tx1 = ax > bx ? ( ax > cx ? ax : cx ) : ( bx > cx ? bx : cx ),\n\t\ty1 = ay > by ? ( ay > cy ? ay : cy ) : ( by > cy ? by : cy );\n\n\t// z-order range for the current triangle bbox;\n\tconst minZ = zOrder( x0, y0, minX, minY, invSize ),\n\t\tmaxZ = zOrder( x1, y1, minX, minY, invSize );\n\n\tlet p = ear.prevZ,\n\t\tn = ear.nextZ;\n\n\t// look for points inside the triangle in both directions\n\twhile ( p && p.z >= minZ && n && n.z <= maxZ ) {\n\n\t\tif ( p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 && p !== a && p !== c &&\n\t\t\tpointInTriangle( ax, ay, bx, by, cx, cy, p.x, p.y ) && area( p.prev, p, p.next ) >= 0 ) return false;\n\t\tp = p.prevZ;\n\n\t\tif ( n.x >= x0 && n.x <= x1 && n.y >= y0 && n.y <= y1 && n !== a && n !== c &&\n\t\t\tpointInTriangle( ax, ay, bx, by, cx, cy, n.x, n.y ) && area( n.prev, n, n.next ) >= 0 ) return false;\n\t\tn = n.nextZ;\n\n\t}\n\n\t// look for remaining points in decreasing z-order\n\twhile ( p && p.z >= minZ ) {\n\n\t\tif ( p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 && p !== a && p !== c &&\n\t\t\tpointInTriangle( ax, ay, bx, by, cx, cy, p.x, p.y ) && area( p.prev, p, p.next ) >= 0 ) return false;\n\t\tp = p.prevZ;\n\n\t}\n\n\t// look for remaining points in increasing z-order\n\twhile ( n && n.z <= maxZ ) {\n\n\t\tif ( n.x >= x0 && n.x <= x1 && n.y >= y0 && n.y <= y1 && n !== a && n !== c &&\n\t\t\tpointInTriangle( ax, ay, bx, by, cx, cy, n.x, n.y ) && area( n.prev, n, n.next ) >= 0 ) return false;\n\t\tn = n.nextZ;\n\n\t}\n\n\treturn true;\n\n}\n\n// go through all polygon nodes and cure small local self-intersections\nfunction cureLocalIntersections( start, triangles, dim ) {\n\n\tlet p = start;\n\tdo {\n\n\t\tconst a = p.prev,\n\t\t\tb = p.next.next;\n\n\t\tif ( ! equals( a, b ) && intersects( a, p, p.next, b ) && locallyInside( a, b ) && locallyInside( b, a ) ) {\n\n\t\t\ttriangles.push( a.i / dim | 0 );\n\t\t\ttriangles.push( p.i / dim | 0 );\n\t\t\ttriangles.push( b.i / dim | 0 );\n\n\t\t\t// remove two nodes involved\n\t\t\tremoveNode( p );\n\t\t\tremoveNode( p.next );\n\n\t\t\tp = start = b;\n\n\t\t}\n\n\t\tp = p.next;\n\n\t} while ( p !== start );\n\n\treturn filterPoints( p );\n\n}\n\n// try splitting polygon into two and triangulate them independently\nfunction splitEarcut( start, triangles, dim, minX, minY, invSize ) {\n\n\t// look for a valid diagonal that divides the polygon into two\n\tlet a = start;\n\tdo {\n\n\t\tlet b = a.next.next;\n\t\twhile ( b !== a.prev ) {\n\n\t\t\tif ( a.i !== b.i && isValidDiagonal( a, b ) ) {\n\n\t\t\t\t// split the polygon in two by the diagonal\n\t\t\t\tlet c = splitPolygon( a, b );\n\n\t\t\t\t// filter colinear points around the cuts\n\t\t\t\ta = filterPoints( a, a.next );\n\t\t\t\tc = filterPoints( c, c.next );\n\n\t\t\t\t// run earcut on each half\n\t\t\t\tearcutLinked( a, triangles, dim, minX, minY, invSize, 0 );\n\t\t\t\tearcutLinked( c, triangles, dim, minX, minY, invSize, 0 );\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\tb = b.next;\n\n\t\t}\n\n\t\ta = a.next;\n\n\t} while ( a !== start );\n\n}\n\n// link every hole into the outer loop, producing a single-ring polygon without holes\nfunction eliminateHoles( data, holeIndices, outerNode, dim ) {\n\n\tconst queue = [];\n\tlet i, len, start, end, list;\n\n\tfor ( i = 0, len = holeIndices.length; i < len; i ++ ) {\n\n\t\tstart = holeIndices[ i ] * dim;\n\t\tend = i < len - 1 ? holeIndices[ i + 1 ] * dim : data.length;\n\t\tlist = linkedList( data, start, end, dim, false );\n\t\tif ( list === list.next ) list.steiner = true;\n\t\tqueue.push( getLeftmost( list ) );\n\n\t}\n\n\tqueue.sort( compareX );\n\n\t// process holes from left to right\n\tfor ( i = 0; i < queue.length; i ++ ) {\n\n\t\touterNode = eliminateHole( queue[ i ], outerNode );\n\n\t}\n\n\treturn outerNode;\n\n}\n\nfunction compareX( a, b ) {\n\n\treturn a.x - b.x;\n\n}\n\n// find a bridge between vertices that connects hole with an outer ring and link it\nfunction eliminateHole( hole, outerNode ) {\n\n\tconst bridge = findHoleBridge( hole, outerNode );\n\tif ( ! bridge ) {\n\n\t\treturn outerNode;\n\n\t}\n\n\tconst bridgeReverse = splitPolygon( bridge, hole );\n\n\t// filter collinear points around the cuts\n\tfilterPoints( bridgeReverse, bridgeReverse.next );\n\treturn filterPoints( bridge, bridge.next );\n\n}\n\n// David Eberly's algorithm for finding a bridge between hole and outer polygon\nfunction findHoleBridge( hole, outerNode ) {\n\n\tlet p = outerNode,\n\t\tqx = - Infinity,\n\t\tm;\n\n\tconst hx = hole.x, hy = hole.y;\n\n\t// find a segment intersected by a ray from the hole's leftmost point to the left;\n\t// segment's endpoint with lesser x will be potential connection point\n\tdo {\n\n\t\tif ( hy <= p.y && hy >= p.next.y && p.next.y !== p.y ) {\n\n\t\t\tconst x = p.x + ( hy - p.y ) * ( p.next.x - p.x ) / ( p.next.y - p.y );\n\t\t\tif ( x <= hx && x > qx ) {\n\n\t\t\t\tqx = x;\n\t\t\t\tm = p.x < p.next.x ? p : p.next;\n\t\t\t\tif ( x === hx ) return m; // hole touches outer segment; pick leftmost endpoint\n\n\t\t\t}\n\n\t\t}\n\n\t\tp = p.next;\n\n\t} while ( p !== outerNode );\n\n\tif ( ! m ) return null;\n\n\t// look for points inside the triangle of hole point, segment intersection and endpoint;\n\t// if there are no points found, we have a valid connection;\n\t// otherwise choose the point of the minimum angle with the ray as connection point\n\n\tconst stop = m,\n\t\tmx = m.x,\n\t\tmy = m.y;\n\tlet tanMin = Infinity, tan;\n\n\tp = m;\n\n\tdo {\n\n\t\tif ( hx >= p.x && p.x >= mx && hx !== p.x &&\n\t\t\t\tpointInTriangle( hy < my ? hx : qx, hy, mx, my, hy < my ? qx : hx, hy, p.x, p.y ) ) {\n\n\t\t\ttan = Math.abs( hy - p.y ) / ( hx - p.x ); // tangential\n\n\t\t\tif ( locallyInside( p, hole ) && ( tan < tanMin || ( tan === tanMin && ( p.x > m.x || ( p.x === m.x && sectorContainsSector( m, p ) ) ) ) ) ) {\n\n\t\t\t\tm = p;\n\t\t\t\ttanMin = tan;\n\n\t\t\t}\n\n\t\t}\n\n\t\tp = p.next;\n\n\t} while ( p !== stop );\n\n\treturn m;\n\n}\n\n// whether sector in vertex m contains sector in vertex p in the same coordinates\nfunction sectorContainsSector( m, p ) {\n\n\treturn area( m.prev, m, p.prev ) < 0 && area( p.next, m, m.next ) < 0;\n\n}\n\n// interlink polygon nodes in z-order\nfunction indexCurve( start, minX, minY, invSize ) {\n\n\tlet p = start;\n\tdo {\n\n\t\tif ( p.z === 0 ) p.z = zOrder( p.x, p.y, minX, minY, invSize );\n\t\tp.prevZ = p.prev;\n\t\tp.nextZ = p.next;\n\t\tp = p.next;\n\n\t} while ( p !== start );\n\n\tp.prevZ.nextZ = null;\n\tp.prevZ = null;\n\n\tsortLinked( p );\n\n}\n\n// Simon Tatham's linked list merge sort algorithm\n// http://www.chiark.greenend.org.uk/~sgtatham/algorithms/listsort.html\nfunction sortLinked( list ) {\n\n\tlet i, p, q, e, tail, numMerges, pSize, qSize,\n\t\tinSize = 1;\n\n\tdo {\n\n\t\tp = list;\n\t\tlist = null;\n\t\ttail = null;\n\t\tnumMerges = 0;\n\n\t\twhile ( p ) {\n\n\t\t\tnumMerges ++;\n\t\t\tq = p;\n\t\t\tpSize = 0;\n\t\t\tfor ( i = 0; i < inSize; i ++ ) {\n\n\t\t\t\tpSize ++;\n\t\t\t\tq = q.nextZ;\n\t\t\t\tif ( ! q ) break;\n\n\t\t\t}\n\n\t\t\tqSize = inSize;\n\n\t\t\twhile ( pSize > 0 || ( qSize > 0 && q ) ) {\n\n\t\t\t\tif ( pSize !== 0 && ( qSize === 0 || ! q || p.z <= q.z ) ) {\n\n\t\t\t\t\te = p;\n\t\t\t\t\tp = p.nextZ;\n\t\t\t\t\tpSize --;\n\n\t\t\t\t} else {\n\n\t\t\t\t\te = q;\n\t\t\t\t\tq = q.nextZ;\n\t\t\t\t\tqSize --;\n\n\t\t\t\t}\n\n\t\t\t\tif ( tail ) tail.nextZ = e;\n\t\t\t\telse list = e;\n\n\t\t\t\te.prevZ = tail;\n\t\t\t\ttail = e;\n\n\t\t\t}\n\n\t\t\tp = q;\n\n\t\t}\n\n\t\ttail.nextZ = null;\n\t\tinSize *= 2;\n\n\t} while ( numMerges > 1 );\n\n\treturn list;\n\n}\n\n// z-order of a point given coords and inverse of the longer side of data bbox\nfunction zOrder( x, y, minX, minY, invSize ) {\n\n\t// coords are transformed into non-negative 15-bit integer range\n\tx = ( x - minX ) * invSize | 0;\n\ty = ( y - minY ) * invSize | 0;\n\n\tx = ( x | ( x << 8 ) ) & 0x00FF00FF;\n\tx = ( x | ( x << 4 ) ) & 0x0F0F0F0F;\n\tx = ( x | ( x << 2 ) ) & 0x33333333;\n\tx = ( x | ( x << 1 ) ) & 0x55555555;\n\n\ty = ( y | ( y << 8 ) ) & 0x00FF00FF;\n\ty = ( y | ( y << 4 ) ) & 0x0F0F0F0F;\n\ty = ( y | ( y << 2 ) ) & 0x33333333;\n\ty = ( y | ( y << 1 ) ) & 0x55555555;\n\n\treturn x | ( y << 1 );\n\n}\n\n// find the leftmost node of a polygon ring\nfunction getLeftmost( start ) {\n\n\tlet p = start,\n\t\tleftmost = start;\n\tdo {\n\n\t\tif ( p.x < leftmost.x || ( p.x === leftmost.x && p.y < leftmost.y ) ) leftmost = p;\n\t\tp = p.next;\n\n\t} while ( p !== start );\n\n\treturn leftmost;\n\n}\n\n// check if a point lies within a convex triangle\nfunction pointInTriangle( ax, ay, bx, by, cx, cy, px, py ) {\n\n\treturn ( cx - px ) * ( ay - py ) >= ( ax - px ) * ( cy - py ) &&\n ( ax - px ) * ( by - py ) >= ( bx - px ) * ( ay - py ) &&\n ( bx - px ) * ( cy - py ) >= ( cx - px ) * ( by - py );\n\n}\n\n// check if a diagonal between two polygon nodes is valid (lies in polygon interior)\nfunction isValidDiagonal( a, b ) {\n\n\treturn a.next.i !== b.i && a.prev.i !== b.i && ! intersectsPolygon( a, b ) && // dones't intersect other edges\n ( locallyInside( a, b ) && locallyInside( b, a ) && middleInside( a, b ) && // locally visible\n ( area( a.prev, a, b.prev ) || area( a, b.prev, b ) ) || // does not create opposite-facing sectors\n equals( a, b ) && area( a.prev, a, a.next ) > 0 && area( b.prev, b, b.next ) > 0 ); // special zero-length case\n\n}\n\n// signed area of a triangle\nfunction area( p, q, r ) {\n\n\treturn ( q.y - p.y ) * ( r.x - q.x ) - ( q.x - p.x ) * ( r.y - q.y );\n\n}\n\n// check if two points are equal\nfunction equals( p1, p2 ) {\n\n\treturn p1.x === p2.x && p1.y === p2.y;\n\n}\n\n// check if two segments intersect\nfunction intersects( p1, q1, p2, q2 ) {\n\n\tconst o1 = sign( area( p1, q1, p2 ) );\n\tconst o2 = sign( area( p1, q1, q2 ) );\n\tconst o3 = sign( area( p2, q2, p1 ) );\n\tconst o4 = sign( area( p2, q2, q1 ) );\n\n\tif ( o1 !== o2 && o3 !== o4 ) return true; // general case\n\n\tif ( o1 === 0 && onSegment( p1, p2, q1 ) ) return true; // p1, q1 and p2 are collinear and p2 lies on p1q1\n\tif ( o2 === 0 && onSegment( p1, q2, q1 ) ) return true; // p1, q1 and q2 are collinear and q2 lies on p1q1\n\tif ( o3 === 0 && onSegment( p2, p1, q2 ) ) return true; // p2, q2 and p1 are collinear and p1 lies on p2q2\n\tif ( o4 === 0 && onSegment( p2, q1, q2 ) ) return true; // p2, q2 and q1 are collinear and q1 lies on p2q2\n\n\treturn false;\n\n}\n\n// for collinear points p, q, r, check if point q lies on segment pr\nfunction onSegment( p, q, r ) {\n\n\treturn q.x <= Math.max( p.x, r.x ) && q.x >= Math.min( p.x, r.x ) && q.y <= Math.max( p.y, r.y ) && q.y >= Math.min( p.y, r.y );\n\n}\n\nfunction sign( num ) {\n\n\treturn num > 0 ? 1 : num < 0 ? - 1 : 0;\n\n}\n\n// check if a polygon diagonal intersects any polygon segments\nfunction intersectsPolygon( a, b ) {\n\n\tlet p = a;\n\tdo {\n\n\t\tif ( p.i !== a.i && p.next.i !== a.i && p.i !== b.i && p.next.i !== b.i &&\n\t\t\tintersects( p, p.next, a, b ) ) return true;\n\t\tp = p.next;\n\n\t} while ( p !== a );\n\n\treturn false;\n\n}\n\n// check if a polygon diagonal is locally inside the polygon\nfunction locallyInside( a, b ) {\n\n\treturn area( a.prev, a, a.next ) < 0 ?\n\t\tarea( a, b, a.next ) >= 0 && area( a, a.prev, b ) >= 0 :\n\t\tarea( a, b, a.prev ) < 0 || area( a, a.next, b ) < 0;\n\n}\n\n// check if the middle point of a polygon diagonal is inside the polygon\nfunction middleInside( a, b ) {\n\n\tlet p = a,\n\t\tinside = false;\n\tconst px = ( a.x + b.x ) / 2,\n\t\tpy = ( a.y + b.y ) / 2;\n\tdo {\n\n\t\tif ( ( ( p.y > py ) !== ( p.next.y > py ) ) && p.next.y !== p.y &&\n\t\t\t( px < ( p.next.x - p.x ) * ( py - p.y ) / ( p.next.y - p.y ) + p.x ) )\n\t\t\tinside = ! inside;\n\t\tp = p.next;\n\n\t} while ( p !== a );\n\n\treturn inside;\n\n}\n\n// link two polygon vertices with a bridge; if the vertices belong to the same ring, it splits polygon into two;\n// if one belongs to the outer ring and another to a hole, it merges it into a single ring\nfunction splitPolygon( a, b ) {\n\n\tconst a2 = new Node( a.i, a.x, a.y ),\n\t\tb2 = new Node( b.i, b.x, b.y ),\n\t\tan = a.next,\n\t\tbp = b.prev;\n\n\ta.next = b;\n\tb.prev = a;\n\n\ta2.next = an;\n\tan.prev = a2;\n\n\tb2.next = a2;\n\ta2.prev = b2;\n\n\tbp.next = b2;\n\tb2.prev = bp;\n\n\treturn b2;\n\n}\n\n// create a node and optionally link it with previous one (in a circular doubly linked list)\nfunction insertNode( i, x, y, last ) {\n\n\tconst p = new Node( i, x, y );\n\n\tif ( ! last ) {\n\n\t\tp.prev = p;\n\t\tp.next = p;\n\n\t} else {\n\n\t\tp.next = last.next;\n\t\tp.prev = last;\n\t\tlast.next.prev = p;\n\t\tlast.next = p;\n\n\t}\n\n\treturn p;\n\n}\n\nfunction removeNode( p ) {\n\n\tp.next.prev = p.prev;\n\tp.prev.next = p.next;\n\n\tif ( p.prevZ ) p.prevZ.nextZ = p.nextZ;\n\tif ( p.nextZ ) p.nextZ.prevZ = p.prevZ;\n\n}\n\nfunction Node( i, x, y ) {\n\n\t// vertex index in coordinates array\n\tthis.i = i;\n\n\t// vertex coordinates\n\tthis.x = x;\n\tthis.y = y;\n\n\t// previous and next vertex nodes in a polygon ring\n\tthis.prev = null;\n\tthis.next = null;\n\n\t// z-order curve value\n\tthis.z = 0;\n\n\t// previous and next nodes in z-order\n\tthis.prevZ = null;\n\tthis.nextZ = null;\n\n\t// indicates whether this is a steiner point\n\tthis.steiner = false;\n\n}\n\nfunction signedArea( data, start, end, dim ) {\n\n\tlet sum = 0;\n\tfor ( let i = start, j = end - dim; i < end; i += dim ) {\n\n\t\tsum += ( data[ j ] - data[ i ] ) * ( data[ i + 1 ] + data[ j + 1 ] );\n\t\tj = i;\n\n\t}\n\n\treturn sum;\n\n}\n\nclass ShapeUtils {\n\n\t// calculate area of the contour polygon\n\n\tstatic area( contour ) {\n\n\t\tconst n = contour.length;\n\t\tlet a = 0.0;\n\n\t\tfor ( let p = n - 1, q = 0; q < n; p = q ++ ) {\n\n\t\t\ta += contour[ p ].x * contour[ q ].y - contour[ q ].x * contour[ p ].y;\n\n\t\t}\n\n\t\treturn a * 0.5;\n\n\t}\n\n\tstatic isClockWise( pts ) {\n\n\t\treturn ShapeUtils.area( pts ) < 0;\n\n\t}\n\n\tstatic triangulateShape( contour, holes ) {\n\n\t\tconst vertices = []; // flat array of vertices like [ x0,y0, x1,y1, x2,y2, ... ]\n\t\tconst holeIndices = []; // array of hole indices\n\t\tconst faces = []; // final array of vertex indices like [ [ a,b,d ], [ b,c,d ] ]\n\n\t\tremoveDupEndPts( contour );\n\t\taddContour( vertices, contour );\n\n\t\t//\n\n\t\tlet holeIndex = contour.length;\n\n\t\tholes.forEach( removeDupEndPts );\n\n\t\tfor ( let i = 0; i < holes.length; i ++ ) {\n\n\t\t\tholeIndices.push( holeIndex );\n\t\t\tholeIndex += holes[ i ].length;\n\t\t\taddContour( vertices, holes[ i ] );\n\n\t\t}\n\n\t\t//\n\n\t\tconst triangles = Earcut.triangulate( vertices, holeIndices );\n\n\t\t//\n\n\t\tfor ( let i = 0; i < triangles.length; i += 3 ) {\n\n\t\t\tfaces.push( triangles.slice( i, i + 3 ) );\n\n\t\t}\n\n\t\treturn faces;\n\n\t}\n\n}\n\nfunction removeDupEndPts( points ) {\n\n\tconst l = points.length;\n\n\tif ( l > 2 && points[ l - 1 ].equals( points[ 0 ] ) ) {\n\n\t\tpoints.pop();\n\n\t}\n\n}\n\nfunction addContour( vertices, contour ) {\n\n\tfor ( let i = 0; i < contour.length; i ++ ) {\n\n\t\tvertices.push( contour[ i ].x );\n\t\tvertices.push( contour[ i ].y );\n\n\t}\n\n}\n\n/**\n * Creates extruded geometry from a path shape.\n *\n * parameters = {\n *\n * curveSegments: , // number of points on the curves\n * steps: , // number of points for z-side extrusions / used for subdividing segments of extrude spline too\n * depth: , // Depth to extrude the shape\n *\n * bevelEnabled: , // turn on bevel\n * bevelThickness: , // how deep into the original shape bevel goes\n * bevelSize: , // how far from shape outline (including bevelOffset) is bevel\n * bevelOffset: , // how far from shape outline does bevel start\n * bevelSegments: , // number of bevel layers\n *\n * extrudePath: // curve to extrude shape along\n *\n * UVGenerator: // object that provides UV generator functions\n *\n * }\n */\n\n\nclass ExtrudeGeometry extends BufferGeometry {\n\n\tconstructor( shapes = new Shape( [ new Vector2( 0.5, 0.5 ), new Vector2( - 0.5, 0.5 ), new Vector2( - 0.5, - 0.5 ), new Vector2( 0.5, - 0.5 ) ] ), options = {} ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'ExtrudeGeometry';\n\n\t\tthis.parameters = {\n\t\t\tshapes: shapes,\n\t\t\toptions: options\n\t\t};\n\n\t\tshapes = Array.isArray( shapes ) ? shapes : [ shapes ];\n\n\t\tconst scope = this;\n\n\t\tconst verticesArray = [];\n\t\tconst uvArray = [];\n\n\t\tfor ( let i = 0, l = shapes.length; i < l; i ++ ) {\n\n\t\t\tconst shape = shapes[ i ];\n\t\t\taddShape( shape );\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( verticesArray, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvArray, 2 ) );\n\n\t\tthis.computeVertexNormals();\n\n\t\t// functions\n\n\t\tfunction addShape( shape ) {\n\n\t\t\tconst placeholder = [];\n\n\t\t\t// options\n\n\t\t\tconst curveSegments = options.curveSegments !== undefined ? options.curveSegments : 12;\n\t\t\tconst steps = options.steps !== undefined ? options.steps : 1;\n\t\t\tconst depth = options.depth !== undefined ? options.depth : 1;\n\n\t\t\tlet bevelEnabled = options.bevelEnabled !== undefined ? options.bevelEnabled : true;\n\t\t\tlet bevelThickness = options.bevelThickness !== undefined ? options.bevelThickness : 0.2;\n\t\t\tlet bevelSize = options.bevelSize !== undefined ? options.bevelSize : bevelThickness - 0.1;\n\t\t\tlet bevelOffset = options.bevelOffset !== undefined ? options.bevelOffset : 0;\n\t\t\tlet bevelSegments = options.bevelSegments !== undefined ? options.bevelSegments : 3;\n\n\t\t\tconst extrudePath = options.extrudePath;\n\n\t\t\tconst uvgen = options.UVGenerator !== undefined ? options.UVGenerator : WorldUVGenerator;\n\n\t\t\t//\n\n\t\t\tlet extrudePts, extrudeByPath = false;\n\t\t\tlet splineTube, binormal, normal, position2;\n\n\t\t\tif ( extrudePath ) {\n\n\t\t\t\textrudePts = extrudePath.getSpacedPoints( steps );\n\n\t\t\t\textrudeByPath = true;\n\t\t\t\tbevelEnabled = false; // bevels not supported for path extrusion\n\n\t\t\t\t// SETUP TNB variables\n\n\t\t\t\t// TODO1 - have a .isClosed in spline?\n\n\t\t\t\tsplineTube = extrudePath.computeFrenetFrames( steps, false );\n\n\t\t\t\t// console.log(splineTube, 'splineTube', splineTube.normals.length, 'steps', steps, 'extrudePts', extrudePts.length);\n\n\t\t\t\tbinormal = new Vector3();\n\t\t\t\tnormal = new Vector3();\n\t\t\t\tposition2 = new Vector3();\n\n\t\t\t}\n\n\t\t\t// Safeguards if bevels are not enabled\n\n\t\t\tif ( ! bevelEnabled ) {\n\n\t\t\t\tbevelSegments = 0;\n\t\t\t\tbevelThickness = 0;\n\t\t\t\tbevelSize = 0;\n\t\t\t\tbevelOffset = 0;\n\n\t\t\t}\n\n\t\t\t// Variables initialization\n\n\t\t\tconst shapePoints = shape.extractPoints( curveSegments );\n\n\t\t\tlet vertices = shapePoints.shape;\n\t\t\tconst holes = shapePoints.holes;\n\n\t\t\tconst reverse = ! ShapeUtils.isClockWise( vertices );\n\n\t\t\tif ( reverse ) {\n\n\t\t\t\tvertices = vertices.reverse();\n\n\t\t\t\t// Maybe we should also check if holes are in the opposite direction, just to be safe ...\n\n\t\t\t\tfor ( let h = 0, hl = holes.length; h < hl; h ++ ) {\n\n\t\t\t\t\tconst ahole = holes[ h ];\n\n\t\t\t\t\tif ( ShapeUtils.isClockWise( ahole ) ) {\n\n\t\t\t\t\t\tholes[ h ] = ahole.reverse();\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\n\t\t\tconst faces = ShapeUtils.triangulateShape( vertices, holes );\n\n\t\t\t/* Vertices */\n\n\t\t\tconst contour = vertices; // vertices has all points but contour has only points of circumference\n\n\t\t\tfor ( let h = 0, hl = holes.length; h < hl; h ++ ) {\n\n\t\t\t\tconst ahole = holes[ h ];\n\n\t\t\t\tvertices = vertices.concat( ahole );\n\n\t\t\t}\n\n\n\t\t\tfunction scalePt2( pt, vec, size ) {\n\n\t\t\t\tif ( ! vec ) console.error( 'THREE.ExtrudeGeometry: vec does not exist' );\n\n\t\t\t\treturn pt.clone().addScaledVector( vec, size );\n\n\t\t\t}\n\n\t\t\tconst vlen = vertices.length, flen = faces.length;\n\n\n\t\t\t// Find directions for point movement\n\n\n\t\t\tfunction getBevelVec( inPt, inPrev, inNext ) {\n\n\t\t\t\t// computes for inPt the corresponding point inPt' on a new contour\n\t\t\t\t// shifted by 1 unit (length of normalized vector) to the left\n\t\t\t\t// if we walk along contour clockwise, this new contour is outside the old one\n\t\t\t\t//\n\t\t\t\t// inPt' is the intersection of the two lines parallel to the two\n\t\t\t\t// adjacent edges of inPt at a distance of 1 unit on the left side.\n\n\t\t\t\tlet v_trans_x, v_trans_y, shrink_by; // resulting translation vector for inPt\n\n\t\t\t\t// good reading for geometry algorithms (here: line-line intersection)\n\t\t\t\t// http://geomalgorithms.com/a05-_intersect-1.html\n\n\t\t\t\tconst v_prev_x = inPt.x - inPrev.x,\n\t\t\t\t\tv_prev_y = inPt.y - inPrev.y;\n\t\t\t\tconst v_next_x = inNext.x - inPt.x,\n\t\t\t\t\tv_next_y = inNext.y - inPt.y;\n\n\t\t\t\tconst v_prev_lensq = ( v_prev_x * v_prev_x + v_prev_y * v_prev_y );\n\n\t\t\t\t// check for collinear edges\n\t\t\t\tconst collinear0 = ( v_prev_x * v_next_y - v_prev_y * v_next_x );\n\n\t\t\t\tif ( Math.abs( collinear0 ) > Number.EPSILON ) {\n\n\t\t\t\t\t// not collinear\n\n\t\t\t\t\t// length of vectors for normalizing\n\n\t\t\t\t\tconst v_prev_len = Math.sqrt( v_prev_lensq );\n\t\t\t\t\tconst v_next_len = Math.sqrt( v_next_x * v_next_x + v_next_y * v_next_y );\n\n\t\t\t\t\t// shift adjacent points by unit vectors to the left\n\n\t\t\t\t\tconst ptPrevShift_x = ( inPrev.x - v_prev_y / v_prev_len );\n\t\t\t\t\tconst ptPrevShift_y = ( inPrev.y + v_prev_x / v_prev_len );\n\n\t\t\t\t\tconst ptNextShift_x = ( inNext.x - v_next_y / v_next_len );\n\t\t\t\t\tconst ptNextShift_y = ( inNext.y + v_next_x / v_next_len );\n\n\t\t\t\t\t// scaling factor for v_prev to intersection point\n\n\t\t\t\t\tconst sf = ( ( ptNextShift_x - ptPrevShift_x ) * v_next_y -\n\t\t\t\t\t\t\t( ptNextShift_y - ptPrevShift_y ) * v_next_x ) /\n\t\t\t\t\t\t( v_prev_x * v_next_y - v_prev_y * v_next_x );\n\n\t\t\t\t\t// vector from inPt to intersection point\n\n\t\t\t\t\tv_trans_x = ( ptPrevShift_x + v_prev_x * sf - inPt.x );\n\t\t\t\t\tv_trans_y = ( ptPrevShift_y + v_prev_y * sf - inPt.y );\n\n\t\t\t\t\t// Don't normalize!, otherwise sharp corners become ugly\n\t\t\t\t\t// but prevent crazy spikes\n\t\t\t\t\tconst v_trans_lensq = ( v_trans_x * v_trans_x + v_trans_y * v_trans_y );\n\t\t\t\t\tif ( v_trans_lensq <= 2 ) {\n\n\t\t\t\t\t\treturn new Vector2( v_trans_x, v_trans_y );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tshrink_by = Math.sqrt( v_trans_lensq / 2 );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// handle special case of collinear edges\n\n\t\t\t\t\tlet direction_eq = false; // assumes: opposite\n\n\t\t\t\t\tif ( v_prev_x > Number.EPSILON ) {\n\n\t\t\t\t\t\tif ( v_next_x > Number.EPSILON ) {\n\n\t\t\t\t\t\t\tdirection_eq = true;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tif ( v_prev_x < - Number.EPSILON ) {\n\n\t\t\t\t\t\t\tif ( v_next_x < - Number.EPSILON ) {\n\n\t\t\t\t\t\t\t\tdirection_eq = true;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tif ( Math.sign( v_prev_y ) === Math.sign( v_next_y ) ) {\n\n\t\t\t\t\t\t\t\tdirection_eq = true;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( direction_eq ) {\n\n\t\t\t\t\t\t// console.log(\"Warning: lines are a straight sequence\");\n\t\t\t\t\t\tv_trans_x = - v_prev_y;\n\t\t\t\t\t\tv_trans_y = v_prev_x;\n\t\t\t\t\t\tshrink_by = Math.sqrt( v_prev_lensq );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// console.log(\"Warning: lines are a straight spike\");\n\t\t\t\t\t\tv_trans_x = v_prev_x;\n\t\t\t\t\t\tv_trans_y = v_prev_y;\n\t\t\t\t\t\tshrink_by = Math.sqrt( v_prev_lensq / 2 );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\treturn new Vector2( v_trans_x / shrink_by, v_trans_y / shrink_by );\n\n\t\t\t}\n\n\n\t\t\tconst contourMovements = [];\n\n\t\t\tfor ( let i = 0, il = contour.length, j = il - 1, k = i + 1; i < il; i ++, j ++, k ++ ) {\n\n\t\t\t\tif ( j === il ) j = 0;\n\t\t\t\tif ( k === il ) k = 0;\n\n\t\t\t\t// (j)---(i)---(k)\n\t\t\t\t// console.log('i,j,k', i, j , k)\n\n\t\t\t\tcontourMovements[ i ] = getBevelVec( contour[ i ], contour[ j ], contour[ k ] );\n\n\t\t\t}\n\n\t\t\tconst holesMovements = [];\n\t\t\tlet oneHoleMovements, verticesMovements = contourMovements.concat();\n\n\t\t\tfor ( let h = 0, hl = holes.length; h < hl; h ++ ) {\n\n\t\t\t\tconst ahole = holes[ h ];\n\n\t\t\t\toneHoleMovements = [];\n\n\t\t\t\tfor ( let i = 0, il = ahole.length, j = il - 1, k = i + 1; i < il; i ++, j ++, k ++ ) {\n\n\t\t\t\t\tif ( j === il ) j = 0;\n\t\t\t\t\tif ( k === il ) k = 0;\n\n\t\t\t\t\t// (j)---(i)---(k)\n\t\t\t\t\toneHoleMovements[ i ] = getBevelVec( ahole[ i ], ahole[ j ], ahole[ k ] );\n\n\t\t\t\t}\n\n\t\t\t\tholesMovements.push( oneHoleMovements );\n\t\t\t\tverticesMovements = verticesMovements.concat( oneHoleMovements );\n\n\t\t\t}\n\n\n\t\t\t// Loop bevelSegments, 1 for the front, 1 for the back\n\n\t\t\tfor ( let b = 0; b < bevelSegments; b ++ ) {\n\n\t\t\t\t//for ( b = bevelSegments; b > 0; b -- ) {\n\n\t\t\t\tconst t = b / bevelSegments;\n\t\t\t\tconst z = bevelThickness * Math.cos( t * Math.PI / 2 );\n\t\t\t\tconst bs = bevelSize * Math.sin( t * Math.PI / 2 ) + bevelOffset;\n\n\t\t\t\t// contract shape\n\n\t\t\t\tfor ( let i = 0, il = contour.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst vert = scalePt2( contour[ i ], contourMovements[ i ], bs );\n\n\t\t\t\t\tv( vert.x, vert.y, - z );\n\n\t\t\t\t}\n\n\t\t\t\t// expand holes\n\n\t\t\t\tfor ( let h = 0, hl = holes.length; h < hl; h ++ ) {\n\n\t\t\t\t\tconst ahole = holes[ h ];\n\t\t\t\t\toneHoleMovements = holesMovements[ h ];\n\n\t\t\t\t\tfor ( let i = 0, il = ahole.length; i < il; i ++ ) {\n\n\t\t\t\t\t\tconst vert = scalePt2( ahole[ i ], oneHoleMovements[ i ], bs );\n\n\t\t\t\t\t\tv( vert.x, vert.y, - z );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst bs = bevelSize + bevelOffset;\n\n\t\t\t// Back facing vertices\n\n\t\t\tfor ( let i = 0; i < vlen; i ++ ) {\n\n\t\t\t\tconst vert = bevelEnabled ? scalePt2( vertices[ i ], verticesMovements[ i ], bs ) : vertices[ i ];\n\n\t\t\t\tif ( ! extrudeByPath ) {\n\n\t\t\t\t\tv( vert.x, vert.y, 0 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// v( vert.x, vert.y + extrudePts[ 0 ].y, extrudePts[ 0 ].x );\n\n\t\t\t\t\tnormal.copy( splineTube.normals[ 0 ] ).multiplyScalar( vert.x );\n\t\t\t\t\tbinormal.copy( splineTube.binormals[ 0 ] ).multiplyScalar( vert.y );\n\n\t\t\t\t\tposition2.copy( extrudePts[ 0 ] ).add( normal ).add( binormal );\n\n\t\t\t\t\tv( position2.x, position2.y, position2.z );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// Add stepped vertices...\n\t\t\t// Including front facing vertices\n\n\t\t\tfor ( let s = 1; s <= steps; s ++ ) {\n\n\t\t\t\tfor ( let i = 0; i < vlen; i ++ ) {\n\n\t\t\t\t\tconst vert = bevelEnabled ? scalePt2( vertices[ i ], verticesMovements[ i ], bs ) : vertices[ i ];\n\n\t\t\t\t\tif ( ! extrudeByPath ) {\n\n\t\t\t\t\t\tv( vert.x, vert.y, depth / steps * s );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// v( vert.x, vert.y + extrudePts[ s - 1 ].y, extrudePts[ s - 1 ].x );\n\n\t\t\t\t\t\tnormal.copy( splineTube.normals[ s ] ).multiplyScalar( vert.x );\n\t\t\t\t\t\tbinormal.copy( splineTube.binormals[ s ] ).multiplyScalar( vert.y );\n\n\t\t\t\t\t\tposition2.copy( extrudePts[ s ] ).add( normal ).add( binormal );\n\n\t\t\t\t\t\tv( position2.x, position2.y, position2.z );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\n\t\t\t// Add bevel segments planes\n\n\t\t\t//for ( b = 1; b <= bevelSegments; b ++ ) {\n\t\t\tfor ( let b = bevelSegments - 1; b >= 0; b -- ) {\n\n\t\t\t\tconst t = b / bevelSegments;\n\t\t\t\tconst z = bevelThickness * Math.cos( t * Math.PI / 2 );\n\t\t\t\tconst bs = bevelSize * Math.sin( t * Math.PI / 2 ) + bevelOffset;\n\n\t\t\t\t// contract shape\n\n\t\t\t\tfor ( let i = 0, il = contour.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst vert = scalePt2( contour[ i ], contourMovements[ i ], bs );\n\t\t\t\t\tv( vert.x, vert.y, depth + z );\n\n\t\t\t\t}\n\n\t\t\t\t// expand holes\n\n\t\t\t\tfor ( let h = 0, hl = holes.length; h < hl; h ++ ) {\n\n\t\t\t\t\tconst ahole = holes[ h ];\n\t\t\t\t\toneHoleMovements = holesMovements[ h ];\n\n\t\t\t\t\tfor ( let i = 0, il = ahole.length; i < il; i ++ ) {\n\n\t\t\t\t\t\tconst vert = scalePt2( ahole[ i ], oneHoleMovements[ i ], bs );\n\n\t\t\t\t\t\tif ( ! extrudeByPath ) {\n\n\t\t\t\t\t\t\tv( vert.x, vert.y, depth + z );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tv( vert.x, vert.y + extrudePts[ steps - 1 ].y, extrudePts[ steps - 1 ].x + z );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t/* Faces */\n\n\t\t\t// Top and bottom faces\n\n\t\t\tbuildLidFaces();\n\n\t\t\t// Sides faces\n\n\t\t\tbuildSideFaces();\n\n\n\t\t\t///// Internal functions\n\n\t\t\tfunction buildLidFaces() {\n\n\t\t\t\tconst start = verticesArray.length / 3;\n\n\t\t\t\tif ( bevelEnabled ) {\n\n\t\t\t\t\tlet layer = 0; // steps + 1\n\t\t\t\t\tlet offset = vlen * layer;\n\n\t\t\t\t\t// Bottom faces\n\n\t\t\t\t\tfor ( let i = 0; i < flen; i ++ ) {\n\n\t\t\t\t\t\tconst face = faces[ i ];\n\t\t\t\t\t\tf3( face[ 2 ] + offset, face[ 1 ] + offset, face[ 0 ] + offset );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tlayer = steps + bevelSegments * 2;\n\t\t\t\t\toffset = vlen * layer;\n\n\t\t\t\t\t// Top faces\n\n\t\t\t\t\tfor ( let i = 0; i < flen; i ++ ) {\n\n\t\t\t\t\t\tconst face = faces[ i ];\n\t\t\t\t\t\tf3( face[ 0 ] + offset, face[ 1 ] + offset, face[ 2 ] + offset );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// Bottom faces\n\n\t\t\t\t\tfor ( let i = 0; i < flen; i ++ ) {\n\n\t\t\t\t\t\tconst face = faces[ i ];\n\t\t\t\t\t\tf3( face[ 2 ], face[ 1 ], face[ 0 ] );\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// Top faces\n\n\t\t\t\t\tfor ( let i = 0; i < flen; i ++ ) {\n\n\t\t\t\t\t\tconst face = faces[ i ];\n\t\t\t\t\t\tf3( face[ 0 ] + vlen * steps, face[ 1 ] + vlen * steps, face[ 2 ] + vlen * steps );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tscope.addGroup( start, verticesArray.length / 3 - start, 0 );\n\n\t\t\t}\n\n\t\t\t// Create faces for the z-sides of the shape\n\n\t\t\tfunction buildSideFaces() {\n\n\t\t\t\tconst start = verticesArray.length / 3;\n\t\t\t\tlet layeroffset = 0;\n\t\t\t\tsidewalls( contour, layeroffset );\n\t\t\t\tlayeroffset += contour.length;\n\n\t\t\t\tfor ( let h = 0, hl = holes.length; h < hl; h ++ ) {\n\n\t\t\t\t\tconst ahole = holes[ h ];\n\t\t\t\t\tsidewalls( ahole, layeroffset );\n\n\t\t\t\t\t//, true\n\t\t\t\t\tlayeroffset += ahole.length;\n\n\t\t\t\t}\n\n\n\t\t\t\tscope.addGroup( start, verticesArray.length / 3 - start, 1 );\n\n\n\t\t\t}\n\n\t\t\tfunction sidewalls( contour, layeroffset ) {\n\n\t\t\t\tlet i = contour.length;\n\n\t\t\t\twhile ( -- i >= 0 ) {\n\n\t\t\t\t\tconst j = i;\n\t\t\t\t\tlet k = i - 1;\n\t\t\t\t\tif ( k < 0 ) k = contour.length - 1;\n\n\t\t\t\t\t//console.log('b', i,j, i-1, k,vertices.length);\n\n\t\t\t\t\tfor ( let s = 0, sl = ( steps + bevelSegments * 2 ); s < sl; s ++ ) {\n\n\t\t\t\t\t\tconst slen1 = vlen * s;\n\t\t\t\t\t\tconst slen2 = vlen * ( s + 1 );\n\n\t\t\t\t\t\tconst a = layeroffset + j + slen1,\n\t\t\t\t\t\t\tb = layeroffset + k + slen1,\n\t\t\t\t\t\t\tc = layeroffset + k + slen2,\n\t\t\t\t\t\t\td = layeroffset + j + slen2;\n\n\t\t\t\t\t\tf4( a, b, c, d );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tfunction v( x, y, z ) {\n\n\t\t\t\tplaceholder.push( x );\n\t\t\t\tplaceholder.push( y );\n\t\t\t\tplaceholder.push( z );\n\n\t\t\t}\n\n\n\t\t\tfunction f3( a, b, c ) {\n\n\t\t\t\taddVertex( a );\n\t\t\t\taddVertex( b );\n\t\t\t\taddVertex( c );\n\n\t\t\t\tconst nextIndex = verticesArray.length / 3;\n\t\t\t\tconst uvs = uvgen.generateTopUV( scope, verticesArray, nextIndex - 3, nextIndex - 2, nextIndex - 1 );\n\n\t\t\t\taddUV( uvs[ 0 ] );\n\t\t\t\taddUV( uvs[ 1 ] );\n\t\t\t\taddUV( uvs[ 2 ] );\n\n\t\t\t}\n\n\t\t\tfunction f4( a, b, c, d ) {\n\n\t\t\t\taddVertex( a );\n\t\t\t\taddVertex( b );\n\t\t\t\taddVertex( d );\n\n\t\t\t\taddVertex( b );\n\t\t\t\taddVertex( c );\n\t\t\t\taddVertex( d );\n\n\n\t\t\t\tconst nextIndex = verticesArray.length / 3;\n\t\t\t\tconst uvs = uvgen.generateSideWallUV( scope, verticesArray, nextIndex - 6, nextIndex - 3, nextIndex - 2, nextIndex - 1 );\n\n\t\t\t\taddUV( uvs[ 0 ] );\n\t\t\t\taddUV( uvs[ 1 ] );\n\t\t\t\taddUV( uvs[ 3 ] );\n\n\t\t\t\taddUV( uvs[ 1 ] );\n\t\t\t\taddUV( uvs[ 2 ] );\n\t\t\t\taddUV( uvs[ 3 ] );\n\n\t\t\t}\n\n\t\t\tfunction addVertex( index ) {\n\n\t\t\t\tverticesArray.push( placeholder[ index * 3 + 0 ] );\n\t\t\t\tverticesArray.push( placeholder[ index * 3 + 1 ] );\n\t\t\t\tverticesArray.push( placeholder[ index * 3 + 2 ] );\n\n\t\t\t}\n\n\n\t\t\tfunction addUV( vector2 ) {\n\n\t\t\t\tuvArray.push( vector2.x );\n\t\t\t\tuvArray.push( vector2.y );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tconst shapes = this.parameters.shapes;\n\t\tconst options = this.parameters.options;\n\n\t\treturn toJSON$1( shapes, options, data );\n\n\t}\n\n\tstatic fromJSON( data, shapes ) {\n\n\t\tconst geometryShapes = [];\n\n\t\tfor ( let j = 0, jl = data.shapes.length; j < jl; j ++ ) {\n\n\t\t\tconst shape = shapes[ data.shapes[ j ] ];\n\n\t\t\tgeometryShapes.push( shape );\n\n\t\t}\n\n\t\tconst extrudePath = data.options.extrudePath;\n\n\t\tif ( extrudePath !== undefined ) {\n\n\t\t\tdata.options.extrudePath = new Curves[ extrudePath.type ]().fromJSON( extrudePath );\n\n\t\t}\n\n\t\treturn new ExtrudeGeometry( geometryShapes, data.options );\n\n\t}\n\n}\n\nconst WorldUVGenerator = {\n\n\tgenerateTopUV: function ( geometry, vertices, indexA, indexB, indexC ) {\n\n\t\tconst a_x = vertices[ indexA * 3 ];\n\t\tconst a_y = vertices[ indexA * 3 + 1 ];\n\t\tconst b_x = vertices[ indexB * 3 ];\n\t\tconst b_y = vertices[ indexB * 3 + 1 ];\n\t\tconst c_x = vertices[ indexC * 3 ];\n\t\tconst c_y = vertices[ indexC * 3 + 1 ];\n\n\t\treturn [\n\t\t\tnew Vector2( a_x, a_y ),\n\t\t\tnew Vector2( b_x, b_y ),\n\t\t\tnew Vector2( c_x, c_y )\n\t\t];\n\n\t},\n\n\tgenerateSideWallUV: function ( geometry, vertices, indexA, indexB, indexC, indexD ) {\n\n\t\tconst a_x = vertices[ indexA * 3 ];\n\t\tconst a_y = vertices[ indexA * 3 + 1 ];\n\t\tconst a_z = vertices[ indexA * 3 + 2 ];\n\t\tconst b_x = vertices[ indexB * 3 ];\n\t\tconst b_y = vertices[ indexB * 3 + 1 ];\n\t\tconst b_z = vertices[ indexB * 3 + 2 ];\n\t\tconst c_x = vertices[ indexC * 3 ];\n\t\tconst c_y = vertices[ indexC * 3 + 1 ];\n\t\tconst c_z = vertices[ indexC * 3 + 2 ];\n\t\tconst d_x = vertices[ indexD * 3 ];\n\t\tconst d_y = vertices[ indexD * 3 + 1 ];\n\t\tconst d_z = vertices[ indexD * 3 + 2 ];\n\n\t\tif ( Math.abs( a_y - b_y ) < Math.abs( a_x - b_x ) ) {\n\n\t\t\treturn [\n\t\t\t\tnew Vector2( a_x, 1 - a_z ),\n\t\t\t\tnew Vector2( b_x, 1 - b_z ),\n\t\t\t\tnew Vector2( c_x, 1 - c_z ),\n\t\t\t\tnew Vector2( d_x, 1 - d_z )\n\t\t\t];\n\n\t\t} else {\n\n\t\t\treturn [\n\t\t\t\tnew Vector2( a_y, 1 - a_z ),\n\t\t\t\tnew Vector2( b_y, 1 - b_z ),\n\t\t\t\tnew Vector2( c_y, 1 - c_z ),\n\t\t\t\tnew Vector2( d_y, 1 - d_z )\n\t\t\t];\n\n\t\t}\n\n\t}\n\n};\n\nfunction toJSON$1( shapes, options, data ) {\n\n\tdata.shapes = [];\n\n\tif ( Array.isArray( shapes ) ) {\n\n\t\tfor ( let i = 0, l = shapes.length; i < l; i ++ ) {\n\n\t\t\tconst shape = shapes[ i ];\n\n\t\t\tdata.shapes.push( shape.uuid );\n\n\t\t}\n\n\t} else {\n\n\t\tdata.shapes.push( shapes.uuid );\n\n\t}\n\n\tdata.options = Object.assign( {}, options );\n\n\tif ( options.extrudePath !== undefined ) data.options.extrudePath = options.extrudePath.toJSON();\n\n\treturn data;\n\n}\n\nclass IcosahedronGeometry extends PolyhedronGeometry {\n\n\tconstructor( radius = 1, detail = 0 ) {\n\n\t\tconst t = ( 1 + Math.sqrt( 5 ) ) / 2;\n\n\t\tconst vertices = [\n\t\t\t- 1, t, 0, \t1, t, 0, \t- 1, - t, 0, \t1, - t, 0,\n\t\t\t0, - 1, t, \t0, 1, t,\t0, - 1, - t, \t0, 1, - t,\n\t\t\tt, 0, - 1, \tt, 0, 1, \t- t, 0, - 1, \t- t, 0, 1\n\t\t];\n\n\t\tconst indices = [\n\t\t\t0, 11, 5, \t0, 5, 1, \t0, 1, 7, \t0, 7, 10, \t0, 10, 11,\n\t\t\t1, 5, 9, \t5, 11, 4,\t11, 10, 2,\t10, 7, 6,\t7, 1, 8,\n\t\t\t3, 9, 4, \t3, 4, 2,\t3, 2, 6,\t3, 6, 8,\t3, 8, 9,\n\t\t\t4, 9, 5, \t2, 4, 11,\t6, 2, 10,\t8, 6, 7,\t9, 8, 1\n\t\t];\n\n\t\tsuper( vertices, indices, radius, detail );\n\n\t\tthis.type = 'IcosahedronGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\tdetail: detail\n\t\t};\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new IcosahedronGeometry( data.radius, data.detail );\n\n\t}\n\n}\n\nclass OctahedronGeometry extends PolyhedronGeometry {\n\n\tconstructor( radius = 1, detail = 0 ) {\n\n\t\tconst vertices = [\n\t\t\t1, 0, 0, \t- 1, 0, 0,\t0, 1, 0,\n\t\t\t0, - 1, 0, \t0, 0, 1,\t0, 0, - 1\n\t\t];\n\n\t\tconst indices = [\n\t\t\t0, 2, 4,\t0, 4, 3,\t0, 3, 5,\n\t\t\t0, 5, 2,\t1, 2, 5,\t1, 5, 3,\n\t\t\t1, 3, 4,\t1, 4, 2\n\t\t];\n\n\t\tsuper( vertices, indices, radius, detail );\n\n\t\tthis.type = 'OctahedronGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\tdetail: detail\n\t\t};\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new OctahedronGeometry( data.radius, data.detail );\n\n\t}\n\n}\n\nclass RingGeometry extends BufferGeometry {\n\n\tconstructor( innerRadius = 0.5, outerRadius = 1, thetaSegments = 32, phiSegments = 1, thetaStart = 0, thetaLength = Math.PI * 2 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'RingGeometry';\n\n\t\tthis.parameters = {\n\t\t\tinnerRadius: innerRadius,\n\t\t\touterRadius: outerRadius,\n\t\t\tthetaSegments: thetaSegments,\n\t\t\tphiSegments: phiSegments,\n\t\t\tthetaStart: thetaStart,\n\t\t\tthetaLength: thetaLength\n\t\t};\n\n\t\tthetaSegments = Math.max( 3, thetaSegments );\n\t\tphiSegments = Math.max( 1, phiSegments );\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\t// some helper variables\n\n\t\tlet radius = innerRadius;\n\t\tconst radiusStep = ( ( outerRadius - innerRadius ) / phiSegments );\n\t\tconst vertex = new Vector3();\n\t\tconst uv = new Vector2();\n\n\t\t// generate vertices, normals and uvs\n\n\t\tfor ( let j = 0; j <= phiSegments; j ++ ) {\n\n\t\t\tfor ( let i = 0; i <= thetaSegments; i ++ ) {\n\n\t\t\t\t// values are generate from the inside of the ring to the outside\n\n\t\t\t\tconst segment = thetaStart + i / thetaSegments * thetaLength;\n\n\t\t\t\t// vertex\n\n\t\t\t\tvertex.x = radius * Math.cos( segment );\n\t\t\t\tvertex.y = radius * Math.sin( segment );\n\n\t\t\t\tvertices.push( vertex.x, vertex.y, vertex.z );\n\n\t\t\t\t// normal\n\n\t\t\t\tnormals.push( 0, 0, 1 );\n\n\t\t\t\t// uv\n\n\t\t\t\tuv.x = ( vertex.x / outerRadius + 1 ) / 2;\n\t\t\t\tuv.y = ( vertex.y / outerRadius + 1 ) / 2;\n\n\t\t\t\tuvs.push( uv.x, uv.y );\n\n\t\t\t}\n\n\t\t\t// increase the radius for next row of vertices\n\n\t\t\tradius += radiusStep;\n\n\t\t}\n\n\t\t// indices\n\n\t\tfor ( let j = 0; j < phiSegments; j ++ ) {\n\n\t\t\tconst thetaSegmentLevel = j * ( thetaSegments + 1 );\n\n\t\t\tfor ( let i = 0; i < thetaSegments; i ++ ) {\n\n\t\t\t\tconst segment = i + thetaSegmentLevel;\n\n\t\t\t\tconst a = segment;\n\t\t\t\tconst b = segment + thetaSegments + 1;\n\t\t\t\tconst c = segment + thetaSegments + 2;\n\t\t\t\tconst d = segment + 1;\n\n\t\t\t\t// faces\n\n\t\t\t\tindices.push( a, b, d );\n\t\t\t\tindices.push( b, c, d );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new RingGeometry( data.innerRadius, data.outerRadius, data.thetaSegments, data.phiSegments, data.thetaStart, data.thetaLength );\n\n\t}\n\n}\n\nclass ShapeGeometry extends BufferGeometry {\n\n\tconstructor( shapes = new Shape( [ new Vector2( 0, 0.5 ), new Vector2( - 0.5, - 0.5 ), new Vector2( 0.5, - 0.5 ) ] ), curveSegments = 12 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'ShapeGeometry';\n\n\t\tthis.parameters = {\n\t\t\tshapes: shapes,\n\t\t\tcurveSegments: curveSegments\n\t\t};\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\t// helper variables\n\n\t\tlet groupStart = 0;\n\t\tlet groupCount = 0;\n\n\t\t// allow single and array values for \"shapes\" parameter\n\n\t\tif ( Array.isArray( shapes ) === false ) {\n\n\t\t\taddShape( shapes );\n\n\t\t} else {\n\n\t\t\tfor ( let i = 0; i < shapes.length; i ++ ) {\n\n\t\t\t\taddShape( shapes[ i ] );\n\n\t\t\t\tthis.addGroup( groupStart, groupCount, i ); // enables MultiMaterial support\n\n\t\t\t\tgroupStart += groupCount;\n\t\t\t\tgroupCount = 0;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\n\t\t// helper functions\n\n\t\tfunction addShape( shape ) {\n\n\t\t\tconst indexOffset = vertices.length / 3;\n\t\t\tconst points = shape.extractPoints( curveSegments );\n\n\t\t\tlet shapeVertices = points.shape;\n\t\t\tconst shapeHoles = points.holes;\n\n\t\t\t// check direction of vertices\n\n\t\t\tif ( ShapeUtils.isClockWise( shapeVertices ) === false ) {\n\n\t\t\t\tshapeVertices = shapeVertices.reverse();\n\n\t\t\t}\n\n\t\t\tfor ( let i = 0, l = shapeHoles.length; i < l; i ++ ) {\n\n\t\t\t\tconst shapeHole = shapeHoles[ i ];\n\n\t\t\t\tif ( ShapeUtils.isClockWise( shapeHole ) === true ) {\n\n\t\t\t\t\tshapeHoles[ i ] = shapeHole.reverse();\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst faces = ShapeUtils.triangulateShape( shapeVertices, shapeHoles );\n\n\t\t\t// join vertices of inner and outer paths to a single array\n\n\t\t\tfor ( let i = 0, l = shapeHoles.length; i < l; i ++ ) {\n\n\t\t\t\tconst shapeHole = shapeHoles[ i ];\n\t\t\t\tshapeVertices = shapeVertices.concat( shapeHole );\n\n\t\t\t}\n\n\t\t\t// vertices, normals, uvs\n\n\t\t\tfor ( let i = 0, l = shapeVertices.length; i < l; i ++ ) {\n\n\t\t\t\tconst vertex = shapeVertices[ i ];\n\n\t\t\t\tvertices.push( vertex.x, vertex.y, 0 );\n\t\t\t\tnormals.push( 0, 0, 1 );\n\t\t\t\tuvs.push( vertex.x, vertex.y ); // world uvs\n\n\t\t\t}\n\n\t\t\t// indices\n\n\t\t\tfor ( let i = 0, l = faces.length; i < l; i ++ ) {\n\n\t\t\t\tconst face = faces[ i ];\n\n\t\t\t\tconst a = face[ 0 ] + indexOffset;\n\t\t\t\tconst b = face[ 1 ] + indexOffset;\n\t\t\t\tconst c = face[ 2 ] + indexOffset;\n\n\t\t\t\tindices.push( a, b, c );\n\t\t\t\tgroupCount += 3;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tconst shapes = this.parameters.shapes;\n\n\t\treturn toJSON( shapes, data );\n\n\t}\n\n\tstatic fromJSON( data, shapes ) {\n\n\t\tconst geometryShapes = [];\n\n\t\tfor ( let j = 0, jl = data.shapes.length; j < jl; j ++ ) {\n\n\t\t\tconst shape = shapes[ data.shapes[ j ] ];\n\n\t\t\tgeometryShapes.push( shape );\n\n\t\t}\n\n\t\treturn new ShapeGeometry( geometryShapes, data.curveSegments );\n\n\t}\n\n}\n\nfunction toJSON( shapes, data ) {\n\n\tdata.shapes = [];\n\n\tif ( Array.isArray( shapes ) ) {\n\n\t\tfor ( let i = 0, l = shapes.length; i < l; i ++ ) {\n\n\t\t\tconst shape = shapes[ i ];\n\n\t\t\tdata.shapes.push( shape.uuid );\n\n\t\t}\n\n\t} else {\n\n\t\tdata.shapes.push( shapes.uuid );\n\n\t}\n\n\treturn data;\n\n}\n\nclass SphereGeometry extends BufferGeometry {\n\n\tconstructor( radius = 1, widthSegments = 32, heightSegments = 16, phiStart = 0, phiLength = Math.PI * 2, thetaStart = 0, thetaLength = Math.PI ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'SphereGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\twidthSegments: widthSegments,\n\t\t\theightSegments: heightSegments,\n\t\t\tphiStart: phiStart,\n\t\t\tphiLength: phiLength,\n\t\t\tthetaStart: thetaStart,\n\t\t\tthetaLength: thetaLength\n\t\t};\n\n\t\twidthSegments = Math.max( 3, Math.floor( widthSegments ) );\n\t\theightSegments = Math.max( 2, Math.floor( heightSegments ) );\n\n\t\tconst thetaEnd = Math.min( thetaStart + thetaLength, Math.PI );\n\n\t\tlet index = 0;\n\t\tconst grid = [];\n\n\t\tconst vertex = new Vector3();\n\t\tconst normal = new Vector3();\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\t// generate vertices, normals and uvs\n\n\t\tfor ( let iy = 0; iy <= heightSegments; iy ++ ) {\n\n\t\t\tconst verticesRow = [];\n\n\t\t\tconst v = iy / heightSegments;\n\n\t\t\t// special case for the poles\n\n\t\t\tlet uOffset = 0;\n\n\t\t\tif ( iy === 0 && thetaStart === 0 ) {\n\n\t\t\t\tuOffset = 0.5 / widthSegments;\n\n\t\t\t} else if ( iy === heightSegments && thetaEnd === Math.PI ) {\n\n\t\t\t\tuOffset = - 0.5 / widthSegments;\n\n\t\t\t}\n\n\t\t\tfor ( let ix = 0; ix <= widthSegments; ix ++ ) {\n\n\t\t\t\tconst u = ix / widthSegments;\n\n\t\t\t\t// vertex\n\n\t\t\t\tvertex.x = - radius * Math.cos( phiStart + u * phiLength ) * Math.sin( thetaStart + v * thetaLength );\n\t\t\t\tvertex.y = radius * Math.cos( thetaStart + v * thetaLength );\n\t\t\t\tvertex.z = radius * Math.sin( phiStart + u * phiLength ) * Math.sin( thetaStart + v * thetaLength );\n\n\t\t\t\tvertices.push( vertex.x, vertex.y, vertex.z );\n\n\t\t\t\t// normal\n\n\t\t\t\tnormal.copy( vertex ).normalize();\n\t\t\t\tnormals.push( normal.x, normal.y, normal.z );\n\n\t\t\t\t// uv\n\n\t\t\t\tuvs.push( u + uOffset, 1 - v );\n\n\t\t\t\tverticesRow.push( index ++ );\n\n\t\t\t}\n\n\t\t\tgrid.push( verticesRow );\n\n\t\t}\n\n\t\t// indices\n\n\t\tfor ( let iy = 0; iy < heightSegments; iy ++ ) {\n\n\t\t\tfor ( let ix = 0; ix < widthSegments; ix ++ ) {\n\n\t\t\t\tconst a = grid[ iy ][ ix + 1 ];\n\t\t\t\tconst b = grid[ iy ][ ix ];\n\t\t\t\tconst c = grid[ iy + 1 ][ ix ];\n\t\t\t\tconst d = grid[ iy + 1 ][ ix + 1 ];\n\n\t\t\t\tif ( iy !== 0 || thetaStart > 0 ) indices.push( a, b, d );\n\t\t\t\tif ( iy !== heightSegments - 1 || thetaEnd < Math.PI ) indices.push( b, c, d );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new SphereGeometry( data.radius, data.widthSegments, data.heightSegments, data.phiStart, data.phiLength, data.thetaStart, data.thetaLength );\n\n\t}\n\n}\n\nclass TetrahedronGeometry extends PolyhedronGeometry {\n\n\tconstructor( radius = 1, detail = 0 ) {\n\n\t\tconst vertices = [\n\t\t\t1, 1, 1, \t- 1, - 1, 1, \t- 1, 1, - 1, \t1, - 1, - 1\n\t\t];\n\n\t\tconst indices = [\n\t\t\t2, 1, 0, \t0, 3, 2,\t1, 3, 0,\t2, 3, 1\n\t\t];\n\n\t\tsuper( vertices, indices, radius, detail );\n\n\t\tthis.type = 'TetrahedronGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\tdetail: detail\n\t\t};\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new TetrahedronGeometry( data.radius, data.detail );\n\n\t}\n\n}\n\nclass TorusGeometry extends BufferGeometry {\n\n\tconstructor( radius = 1, tube = 0.4, radialSegments = 12, tubularSegments = 48, arc = Math.PI * 2 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'TorusGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\ttube: tube,\n\t\t\tradialSegments: radialSegments,\n\t\t\ttubularSegments: tubularSegments,\n\t\t\tarc: arc\n\t\t};\n\n\t\tradialSegments = Math.floor( radialSegments );\n\t\ttubularSegments = Math.floor( tubularSegments );\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\t// helper variables\n\n\t\tconst center = new Vector3();\n\t\tconst vertex = new Vector3();\n\t\tconst normal = new Vector3();\n\n\t\t// generate vertices, normals and uvs\n\n\t\tfor ( let j = 0; j <= radialSegments; j ++ ) {\n\n\t\t\tfor ( let i = 0; i <= tubularSegments; i ++ ) {\n\n\t\t\t\tconst u = i / tubularSegments * arc;\n\t\t\t\tconst v = j / radialSegments * Math.PI * 2;\n\n\t\t\t\t// vertex\n\n\t\t\t\tvertex.x = ( radius + tube * Math.cos( v ) ) * Math.cos( u );\n\t\t\t\tvertex.y = ( radius + tube * Math.cos( v ) ) * Math.sin( u );\n\t\t\t\tvertex.z = tube * Math.sin( v );\n\n\t\t\t\tvertices.push( vertex.x, vertex.y, vertex.z );\n\n\t\t\t\t// normal\n\n\t\t\t\tcenter.x = radius * Math.cos( u );\n\t\t\t\tcenter.y = radius * Math.sin( u );\n\t\t\t\tnormal.subVectors( vertex, center ).normalize();\n\n\t\t\t\tnormals.push( normal.x, normal.y, normal.z );\n\n\t\t\t\t// uv\n\n\t\t\t\tuvs.push( i / tubularSegments );\n\t\t\t\tuvs.push( j / radialSegments );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// generate indices\n\n\t\tfor ( let j = 1; j <= radialSegments; j ++ ) {\n\n\t\t\tfor ( let i = 1; i <= tubularSegments; i ++ ) {\n\n\t\t\t\t// indices\n\n\t\t\t\tconst a = ( tubularSegments + 1 ) * j + i - 1;\n\t\t\t\tconst b = ( tubularSegments + 1 ) * ( j - 1 ) + i - 1;\n\t\t\t\tconst c = ( tubularSegments + 1 ) * ( j - 1 ) + i;\n\t\t\t\tconst d = ( tubularSegments + 1 ) * j + i;\n\n\t\t\t\t// faces\n\n\t\t\t\tindices.push( a, b, d );\n\t\t\t\tindices.push( b, c, d );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new TorusGeometry( data.radius, data.tube, data.radialSegments, data.tubularSegments, data.arc );\n\n\t}\n\n}\n\nclass TorusKnotGeometry extends BufferGeometry {\n\n\tconstructor( radius = 1, tube = 0.4, tubularSegments = 64, radialSegments = 8, p = 2, q = 3 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'TorusKnotGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\ttube: tube,\n\t\t\ttubularSegments: tubularSegments,\n\t\t\tradialSegments: radialSegments,\n\t\t\tp: p,\n\t\t\tq: q\n\t\t};\n\n\t\ttubularSegments = Math.floor( tubularSegments );\n\t\tradialSegments = Math.floor( radialSegments );\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\t// helper variables\n\n\t\tconst vertex = new Vector3();\n\t\tconst normal = new Vector3();\n\n\t\tconst P1 = new Vector3();\n\t\tconst P2 = new Vector3();\n\n\t\tconst B = new Vector3();\n\t\tconst T = new Vector3();\n\t\tconst N = new Vector3();\n\n\t\t// generate vertices, normals and uvs\n\n\t\tfor ( let i = 0; i <= tubularSegments; ++ i ) {\n\n\t\t\t// the radian \"u\" is used to calculate the position on the torus curve of the current tubular segment\n\n\t\t\tconst u = i / tubularSegments * p * Math.PI * 2;\n\n\t\t\t// now we calculate two points. P1 is our current position on the curve, P2 is a little farther ahead.\n\t\t\t// these points are used to create a special \"coordinate space\", which is necessary to calculate the correct vertex positions\n\n\t\t\tcalculatePositionOnCurve( u, p, q, radius, P1 );\n\t\t\tcalculatePositionOnCurve( u + 0.01, p, q, radius, P2 );\n\n\t\t\t// calculate orthonormal basis\n\n\t\t\tT.subVectors( P2, P1 );\n\t\t\tN.addVectors( P2, P1 );\n\t\t\tB.crossVectors( T, N );\n\t\t\tN.crossVectors( B, T );\n\n\t\t\t// normalize B, N. T can be ignored, we don't use it\n\n\t\t\tB.normalize();\n\t\t\tN.normalize();\n\n\t\t\tfor ( let j = 0; j <= radialSegments; ++ j ) {\n\n\t\t\t\t// now calculate the vertices. they are nothing more than an extrusion of the torus curve.\n\t\t\t\t// because we extrude a shape in the xy-plane, there is no need to calculate a z-value.\n\n\t\t\t\tconst v = j / radialSegments * Math.PI * 2;\n\t\t\t\tconst cx = - tube * Math.cos( v );\n\t\t\t\tconst cy = tube * Math.sin( v );\n\n\t\t\t\t// now calculate the final vertex position.\n\t\t\t\t// first we orient the extrusion with our basis vectors, then we add it to the current position on the curve\n\n\t\t\t\tvertex.x = P1.x + ( cx * N.x + cy * B.x );\n\t\t\t\tvertex.y = P1.y + ( cx * N.y + cy * B.y );\n\t\t\t\tvertex.z = P1.z + ( cx * N.z + cy * B.z );\n\n\t\t\t\tvertices.push( vertex.x, vertex.y, vertex.z );\n\n\t\t\t\t// normal (P1 is always the center/origin of the extrusion, thus we can use it to calculate the normal)\n\n\t\t\t\tnormal.subVectors( vertex, P1 ).normalize();\n\n\t\t\t\tnormals.push( normal.x, normal.y, normal.z );\n\n\t\t\t\t// uv\n\n\t\t\t\tuvs.push( i / tubularSegments );\n\t\t\t\tuvs.push( j / radialSegments );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// generate indices\n\n\t\tfor ( let j = 1; j <= tubularSegments; j ++ ) {\n\n\t\t\tfor ( let i = 1; i <= radialSegments; i ++ ) {\n\n\t\t\t\t// indices\n\n\t\t\t\tconst a = ( radialSegments + 1 ) * ( j - 1 ) + ( i - 1 );\n\t\t\t\tconst b = ( radialSegments + 1 ) * j + ( i - 1 );\n\t\t\t\tconst c = ( radialSegments + 1 ) * j + i;\n\t\t\t\tconst d = ( radialSegments + 1 ) * ( j - 1 ) + i;\n\n\t\t\t\t// faces\n\n\t\t\t\tindices.push( a, b, d );\n\t\t\t\tindices.push( b, c, d );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t\t// this function calculates the current position on the torus curve\n\n\t\tfunction calculatePositionOnCurve( u, p, q, radius, position ) {\n\n\t\t\tconst cu = Math.cos( u );\n\t\t\tconst su = Math.sin( u );\n\t\t\tconst quOverP = q / p * u;\n\t\t\tconst cs = Math.cos( quOverP );\n\n\t\t\tposition.x = radius * ( 2 + cs ) * 0.5 * cu;\n\t\t\tposition.y = radius * ( 2 + cs ) * su * 0.5;\n\t\t\tposition.z = radius * Math.sin( quOverP ) * 0.5;\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new TorusKnotGeometry( data.radius, data.tube, data.tubularSegments, data.radialSegments, data.p, data.q );\n\n\t}\n\n}\n\nclass TubeGeometry extends BufferGeometry {\n\n\tconstructor( path = new QuadraticBezierCurve3( new Vector3( - 1, - 1, 0 ), new Vector3( - 1, 1, 0 ), new Vector3( 1, 1, 0 ) ), tubularSegments = 64, radius = 1, radialSegments = 8, closed = false ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'TubeGeometry';\n\n\t\tthis.parameters = {\n\t\t\tpath: path,\n\t\t\ttubularSegments: tubularSegments,\n\t\t\tradius: radius,\n\t\t\tradialSegments: radialSegments,\n\t\t\tclosed: closed\n\t\t};\n\n\t\tconst frames = path.computeFrenetFrames( tubularSegments, closed );\n\n\t\t// expose internals\n\n\t\tthis.tangents = frames.tangents;\n\t\tthis.normals = frames.normals;\n\t\tthis.binormals = frames.binormals;\n\n\t\t// helper variables\n\n\t\tconst vertex = new Vector3();\n\t\tconst normal = new Vector3();\n\t\tconst uv = new Vector2();\n\t\tlet P = new Vector3();\n\n\t\t// buffer\n\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\t\tconst indices = [];\n\n\t\t// create buffer data\n\n\t\tgenerateBufferData();\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t\t// functions\n\n\t\tfunction generateBufferData() {\n\n\t\t\tfor ( let i = 0; i < tubularSegments; i ++ ) {\n\n\t\t\t\tgenerateSegment( i );\n\n\t\t\t}\n\n\t\t\t// if the geometry is not closed, generate the last row of vertices and normals\n\t\t\t// at the regular position on the given path\n\t\t\t//\n\t\t\t// if the geometry is closed, duplicate the first row of vertices and normals (uvs will differ)\n\n\t\t\tgenerateSegment( ( closed === false ) ? tubularSegments : 0 );\n\n\t\t\t// uvs are generated in a separate function.\n\t\t\t// this makes it easy compute correct values for closed geometries\n\n\t\t\tgenerateUVs();\n\n\t\t\t// finally create faces\n\n\t\t\tgenerateIndices();\n\n\t\t}\n\n\t\tfunction generateSegment( i ) {\n\n\t\t\t// we use getPointAt to sample evenly distributed points from the given path\n\n\t\t\tP = path.getPointAt( i / tubularSegments, P );\n\n\t\t\t// retrieve corresponding normal and binormal\n\n\t\t\tconst N = frames.normals[ i ];\n\t\t\tconst B = frames.binormals[ i ];\n\n\t\t\t// generate normals and vertices for the current segment\n\n\t\t\tfor ( let j = 0; j <= radialSegments; j ++ ) {\n\n\t\t\t\tconst v = j / radialSegments * Math.PI * 2;\n\n\t\t\t\tconst sin = Math.sin( v );\n\t\t\t\tconst cos = - Math.cos( v );\n\n\t\t\t\t// normal\n\n\t\t\t\tnormal.x = ( cos * N.x + sin * B.x );\n\t\t\t\tnormal.y = ( cos * N.y + sin * B.y );\n\t\t\t\tnormal.z = ( cos * N.z + sin * B.z );\n\t\t\t\tnormal.normalize();\n\n\t\t\t\tnormals.push( normal.x, normal.y, normal.z );\n\n\t\t\t\t// vertex\n\n\t\t\t\tvertex.x = P.x + radius * normal.x;\n\t\t\t\tvertex.y = P.y + radius * normal.y;\n\t\t\t\tvertex.z = P.z + radius * normal.z;\n\n\t\t\t\tvertices.push( vertex.x, vertex.y, vertex.z );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction generateIndices() {\n\n\t\t\tfor ( let j = 1; j <= tubularSegments; j ++ ) {\n\n\t\t\t\tfor ( let i = 1; i <= radialSegments; i ++ ) {\n\n\t\t\t\t\tconst a = ( radialSegments + 1 ) * ( j - 1 ) + ( i - 1 );\n\t\t\t\t\tconst b = ( radialSegments + 1 ) * j + ( i - 1 );\n\t\t\t\t\tconst c = ( radialSegments + 1 ) * j + i;\n\t\t\t\t\tconst d = ( radialSegments + 1 ) * ( j - 1 ) + i;\n\n\t\t\t\t\t// faces\n\n\t\t\t\t\tindices.push( a, b, d );\n\t\t\t\t\tindices.push( b, c, d );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction generateUVs() {\n\n\t\t\tfor ( let i = 0; i <= tubularSegments; i ++ ) {\n\n\t\t\t\tfor ( let j = 0; j <= radialSegments; j ++ ) {\n\n\t\t\t\t\tuv.x = i / tubularSegments;\n\t\t\t\t\tuv.y = j / radialSegments;\n\n\t\t\t\t\tuvs.push( uv.x, uv.y );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.path = this.parameters.path.toJSON();\n\n\t\treturn data;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\t// This only works for built-in curves (e.g. CatmullRomCurve3).\n\t\t// User defined curves or instances of CurvePath will not be deserialized.\n\t\treturn new TubeGeometry(\n\t\t\tnew Curves[ data.path.type ]().fromJSON( data.path ),\n\t\t\tdata.tubularSegments,\n\t\t\tdata.radius,\n\t\t\tdata.radialSegments,\n\t\t\tdata.closed\n\t\t);\n\n\t}\n\n}\n\nclass WireframeGeometry extends BufferGeometry {\n\n\tconstructor( geometry = null ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'WireframeGeometry';\n\n\t\tthis.parameters = {\n\t\t\tgeometry: geometry\n\t\t};\n\n\t\tif ( geometry !== null ) {\n\n\t\t\t// buffer\n\n\t\t\tconst vertices = [];\n\t\t\tconst edges = new Set();\n\n\t\t\t// helper variables\n\n\t\t\tconst start = new Vector3();\n\t\t\tconst end = new Vector3();\n\n\t\t\tif ( geometry.index !== null ) {\n\n\t\t\t\t// indexed BufferGeometry\n\n\t\t\t\tconst position = geometry.attributes.position;\n\t\t\t\tconst indices = geometry.index;\n\t\t\t\tlet groups = geometry.groups;\n\n\t\t\t\tif ( groups.length === 0 ) {\n\n\t\t\t\t\tgroups = [ { start: 0, count: indices.count, materialIndex: 0 } ];\n\n\t\t\t\t}\n\n\t\t\t\t// create a data structure that contains all edges without duplicates\n\n\t\t\t\tfor ( let o = 0, ol = groups.length; o < ol; ++ o ) {\n\n\t\t\t\t\tconst group = groups[ o ];\n\n\t\t\t\t\tconst groupStart = group.start;\n\t\t\t\t\tconst groupCount = group.count;\n\n\t\t\t\t\tfor ( let i = groupStart, l = ( groupStart + groupCount ); i < l; i += 3 ) {\n\n\t\t\t\t\t\tfor ( let j = 0; j < 3; j ++ ) {\n\n\t\t\t\t\t\t\tconst index1 = indices.getX( i + j );\n\t\t\t\t\t\t\tconst index2 = indices.getX( i + ( j + 1 ) % 3 );\n\n\t\t\t\t\t\t\tstart.fromBufferAttribute( position, index1 );\n\t\t\t\t\t\t\tend.fromBufferAttribute( position, index2 );\n\n\t\t\t\t\t\t\tif ( isUniqueEdge( start, end, edges ) === true ) {\n\n\t\t\t\t\t\t\t\tvertices.push( start.x, start.y, start.z );\n\t\t\t\t\t\t\t\tvertices.push( end.x, end.y, end.z );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t// non-indexed BufferGeometry\n\n\t\t\t\tconst position = geometry.attributes.position;\n\n\t\t\t\tfor ( let i = 0, l = ( position.count / 3 ); i < l; i ++ ) {\n\n\t\t\t\t\tfor ( let j = 0; j < 3; j ++ ) {\n\n\t\t\t\t\t\t// three edges per triangle, an edge is represented as (index1, index2)\n\t\t\t\t\t\t// e.g. the first triangle has the following edges: (0,1),(1,2),(2,0)\n\n\t\t\t\t\t\tconst index1 = 3 * i + j;\n\t\t\t\t\t\tconst index2 = 3 * i + ( ( j + 1 ) % 3 );\n\n\t\t\t\t\t\tstart.fromBufferAttribute( position, index1 );\n\t\t\t\t\t\tend.fromBufferAttribute( position, index2 );\n\n\t\t\t\t\t\tif ( isUniqueEdge( start, end, edges ) === true ) {\n\n\t\t\t\t\t\t\tvertices.push( start.x, start.y, start.z );\n\t\t\t\t\t\t\tvertices.push( end.x, end.y, end.z );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// build geometry\n\n\t\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n}\n\nfunction isUniqueEdge( start, end, edges ) {\n\n\tconst hash1 = `${start.x},${start.y},${start.z}-${end.x},${end.y},${end.z}`;\n\tconst hash2 = `${end.x},${end.y},${end.z}-${start.x},${start.y},${start.z}`; // coincident edge\n\n\tif ( edges.has( hash1 ) === true || edges.has( hash2 ) === true ) {\n\n\t\treturn false;\n\n\t} else {\n\n\t\tedges.add( hash1 );\n\t\tedges.add( hash2 );\n\t\treturn true;\n\n\t}\n\n}\n\nvar Geometries = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tBoxGeometry: BoxGeometry,\n\tCapsuleGeometry: CapsuleGeometry,\n\tCircleGeometry: CircleGeometry,\n\tConeGeometry: ConeGeometry,\n\tCylinderGeometry: CylinderGeometry,\n\tDodecahedronGeometry: DodecahedronGeometry,\n\tEdgesGeometry: EdgesGeometry,\n\tExtrudeGeometry: ExtrudeGeometry,\n\tIcosahedronGeometry: IcosahedronGeometry,\n\tLatheGeometry: LatheGeometry,\n\tOctahedronGeometry: OctahedronGeometry,\n\tPlaneGeometry: PlaneGeometry,\n\tPolyhedronGeometry: PolyhedronGeometry,\n\tRingGeometry: RingGeometry,\n\tShapeGeometry: ShapeGeometry,\n\tSphereGeometry: SphereGeometry,\n\tTetrahedronGeometry: TetrahedronGeometry,\n\tTorusGeometry: TorusGeometry,\n\tTorusKnotGeometry: TorusKnotGeometry,\n\tTubeGeometry: TubeGeometry,\n\tWireframeGeometry: WireframeGeometry\n});\n\nclass ShadowMaterial extends Material {\n\n\tstatic get type() {\n\n\t\treturn 'ShadowMaterial';\n\n\t}\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isShadowMaterial = true;\n\n\t\tthis.color = new Color( 0x000000 );\n\t\tthis.transparent = true;\n\n\t\tthis.fog = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.fog = source.fog;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass RawShaderMaterial extends ShaderMaterial {\n\n\tstatic get type() {\n\n\t\treturn 'RawShaderMaterial';\n\n\t}\n\n\tconstructor( parameters ) {\n\n\t\tsuper( parameters );\n\n\t\tthis.isRawShaderMaterial = true;\n\n\t}\n\n}\n\nclass MeshStandardMaterial extends Material {\n\n\tstatic get type() {\n\n\t\treturn 'MeshStandardMaterial';\n\n\t}\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isMeshStandardMaterial = true;\n\n\t\tthis.defines = { 'STANDARD': '' };\n\n\t\tthis.color = new Color( 0xffffff ); // diffuse\n\t\tthis.roughness = 1.0;\n\t\tthis.metalness = 0.0;\n\n\t\tthis.map = null;\n\n\t\tthis.lightMap = null;\n\t\tthis.lightMapIntensity = 1.0;\n\n\t\tthis.aoMap = null;\n\t\tthis.aoMapIntensity = 1.0;\n\n\t\tthis.emissive = new Color( 0x000000 );\n\t\tthis.emissiveIntensity = 1.0;\n\t\tthis.emissiveMap = null;\n\n\t\tthis.bumpMap = null;\n\t\tthis.bumpScale = 1;\n\n\t\tthis.normalMap = null;\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.roughnessMap = null;\n\n\t\tthis.metalnessMap = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.envMap = null;\n\t\tthis.envMapRotation = new Euler();\n\t\tthis.envMapIntensity = 1.0;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\t\tthis.wireframeLinecap = 'round';\n\t\tthis.wireframeLinejoin = 'round';\n\n\t\tthis.flatShading = false;\n\n\t\tthis.fog = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.defines = { 'STANDARD': '' };\n\n\t\tthis.color.copy( source.color );\n\t\tthis.roughness = source.roughness;\n\t\tthis.metalness = source.metalness;\n\n\t\tthis.map = source.map;\n\n\t\tthis.lightMap = source.lightMap;\n\t\tthis.lightMapIntensity = source.lightMapIntensity;\n\n\t\tthis.aoMap = source.aoMap;\n\t\tthis.aoMapIntensity = source.aoMapIntensity;\n\n\t\tthis.emissive.copy( source.emissive );\n\t\tthis.emissiveMap = source.emissiveMap;\n\t\tthis.emissiveIntensity = source.emissiveIntensity;\n\n\t\tthis.bumpMap = source.bumpMap;\n\t\tthis.bumpScale = source.bumpScale;\n\n\t\tthis.normalMap = source.normalMap;\n\t\tthis.normalMapType = source.normalMapType;\n\t\tthis.normalScale.copy( source.normalScale );\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\tthis.roughnessMap = source.roughnessMap;\n\n\t\tthis.metalnessMap = source.metalnessMap;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.envMap = source.envMap;\n\t\tthis.envMapRotation.copy( source.envMapRotation );\n\t\tthis.envMapIntensity = source.envMapIntensity;\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\t\tthis.wireframeLinecap = source.wireframeLinecap;\n\t\tthis.wireframeLinejoin = source.wireframeLinejoin;\n\n\t\tthis.flatShading = source.flatShading;\n\n\t\tthis.fog = source.fog;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass MeshPhysicalMaterial extends MeshStandardMaterial {\n\n\tstatic get type() {\n\n\t\treturn 'MeshPhysicalMaterial';\n\n\t}\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isMeshPhysicalMaterial = true;\n\n\t\tthis.defines = {\n\n\t\t\t'STANDARD': '',\n\t\t\t'PHYSICAL': ''\n\n\t\t};\n\n\t\tthis.anisotropyRotation = 0;\n\t\tthis.anisotropyMap = null;\n\n\t\tthis.clearcoatMap = null;\n\t\tthis.clearcoatRoughness = 0.0;\n\t\tthis.clearcoatRoughnessMap = null;\n\t\tthis.clearcoatNormalScale = new Vector2( 1, 1 );\n\t\tthis.clearcoatNormalMap = null;\n\n\t\tthis.ior = 1.5;\n\n\t\tObject.defineProperty( this, 'reflectivity', {\n\t\t\tget: function () {\n\n\t\t\t\treturn ( clamp( 2.5 * ( this.ior - 1 ) / ( this.ior + 1 ), 0, 1 ) );\n\n\t\t\t},\n\t\t\tset: function ( reflectivity ) {\n\n\t\t\t\tthis.ior = ( 1 + 0.4 * reflectivity ) / ( 1 - 0.4 * reflectivity );\n\n\t\t\t}\n\t\t} );\n\n\t\tthis.iridescenceMap = null;\n\t\tthis.iridescenceIOR = 1.3;\n\t\tthis.iridescenceThicknessRange = [ 100, 400 ];\n\t\tthis.iridescenceThicknessMap = null;\n\n\t\tthis.sheenColor = new Color( 0x000000 );\n\t\tthis.sheenColorMap = null;\n\t\tthis.sheenRoughness = 1.0;\n\t\tthis.sheenRoughnessMap = null;\n\n\t\tthis.transmissionMap = null;\n\n\t\tthis.thickness = 0;\n\t\tthis.thicknessMap = null;\n\t\tthis.attenuationDistance = Infinity;\n\t\tthis.attenuationColor = new Color( 1, 1, 1 );\n\n\t\tthis.specularIntensity = 1.0;\n\t\tthis.specularIntensityMap = null;\n\t\tthis.specularColor = new Color( 1, 1, 1 );\n\t\tthis.specularColorMap = null;\n\n\t\tthis._anisotropy = 0;\n\t\tthis._clearcoat = 0;\n\t\tthis._dispersion = 0;\n\t\tthis._iridescence = 0;\n\t\tthis._sheen = 0.0;\n\t\tthis._transmission = 0;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tget anisotropy() {\n\n\t\treturn this._anisotropy;\n\n\t}\n\n\tset anisotropy( value ) {\n\n\t\tif ( this._anisotropy > 0 !== value > 0 ) {\n\n\t\t\tthis.version ++;\n\n\t\t}\n\n\t\tthis._anisotropy = value;\n\n\t}\n\n\tget clearcoat() {\n\n\t\treturn this._clearcoat;\n\n\t}\n\n\tset clearcoat( value ) {\n\n\t\tif ( this._clearcoat > 0 !== value > 0 ) {\n\n\t\t\tthis.version ++;\n\n\t\t}\n\n\t\tthis._clearcoat = value;\n\n\t}\n\n\tget iridescence() {\n\n\t\treturn this._iridescence;\n\n\t}\n\n\tset iridescence( value ) {\n\n\t\tif ( this._iridescence > 0 !== value > 0 ) {\n\n\t\t\tthis.version ++;\n\n\t\t}\n\n\t\tthis._iridescence = value;\n\n\t}\n\n\tget dispersion() {\n\n\t\treturn this._dispersion;\n\n\t}\n\n\tset dispersion( value ) {\n\n\t\tif ( this._dispersion > 0 !== value > 0 ) {\n\n\t\t\tthis.version ++;\n\n\t\t}\n\n\t\tthis._dispersion = value;\n\n\t}\n\n\tget sheen() {\n\n\t\treturn this._sheen;\n\n\t}\n\n\tset sheen( value ) {\n\n\t\tif ( this._sheen > 0 !== value > 0 ) {\n\n\t\t\tthis.version ++;\n\n\t\t}\n\n\t\tthis._sheen = value;\n\n\t}\n\n\tget transmission() {\n\n\t\treturn this._transmission;\n\n\t}\n\n\tset transmission( value ) {\n\n\t\tif ( this._transmission > 0 !== value > 0 ) {\n\n\t\t\tthis.version ++;\n\n\t\t}\n\n\t\tthis._transmission = value;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.defines = {\n\n\t\t\t'STANDARD': '',\n\t\t\t'PHYSICAL': ''\n\n\t\t};\n\n\t\tthis.anisotropy = source.anisotropy;\n\t\tthis.anisotropyRotation = source.anisotropyRotation;\n\t\tthis.anisotropyMap = source.anisotropyMap;\n\n\t\tthis.clearcoat = source.clearcoat;\n\t\tthis.clearcoatMap = source.clearcoatMap;\n\t\tthis.clearcoatRoughness = source.clearcoatRoughness;\n\t\tthis.clearcoatRoughnessMap = source.clearcoatRoughnessMap;\n\t\tthis.clearcoatNormalMap = source.clearcoatNormalMap;\n\t\tthis.clearcoatNormalScale.copy( source.clearcoatNormalScale );\n\n\t\tthis.dispersion = source.dispersion;\n\t\tthis.ior = source.ior;\n\n\t\tthis.iridescence = source.iridescence;\n\t\tthis.iridescenceMap = source.iridescenceMap;\n\t\tthis.iridescenceIOR = source.iridescenceIOR;\n\t\tthis.iridescenceThicknessRange = [ ...source.iridescenceThicknessRange ];\n\t\tthis.iridescenceThicknessMap = source.iridescenceThicknessMap;\n\n\t\tthis.sheen = source.sheen;\n\t\tthis.sheenColor.copy( source.sheenColor );\n\t\tthis.sheenColorMap = source.sheenColorMap;\n\t\tthis.sheenRoughness = source.sheenRoughness;\n\t\tthis.sheenRoughnessMap = source.sheenRoughnessMap;\n\n\t\tthis.transmission = source.transmission;\n\t\tthis.transmissionMap = source.transmissionMap;\n\n\t\tthis.thickness = source.thickness;\n\t\tthis.thicknessMap = source.thicknessMap;\n\t\tthis.attenuationDistance = source.attenuationDistance;\n\t\tthis.attenuationColor.copy( source.attenuationColor );\n\n\t\tthis.specularIntensity = source.specularIntensity;\n\t\tthis.specularIntensityMap = source.specularIntensityMap;\n\t\tthis.specularColor.copy( source.specularColor );\n\t\tthis.specularColorMap = source.specularColorMap;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass MeshPhongMaterial extends Material {\n\n\tstatic get type() {\n\n\t\treturn 'MeshPhongMaterial';\n\n\t}\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isMeshPhongMaterial = true;\n\n\t\tthis.color = new Color( 0xffffff ); // diffuse\n\t\tthis.specular = new Color( 0x111111 );\n\t\tthis.shininess = 30;\n\n\t\tthis.map = null;\n\n\t\tthis.lightMap = null;\n\t\tthis.lightMapIntensity = 1.0;\n\n\t\tthis.aoMap = null;\n\t\tthis.aoMapIntensity = 1.0;\n\n\t\tthis.emissive = new Color( 0x000000 );\n\t\tthis.emissiveIntensity = 1.0;\n\t\tthis.emissiveMap = null;\n\n\t\tthis.bumpMap = null;\n\t\tthis.bumpScale = 1;\n\n\t\tthis.normalMap = null;\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.specularMap = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.envMap = null;\n\t\tthis.envMapRotation = new Euler();\n\t\tthis.combine = MultiplyOperation;\n\t\tthis.reflectivity = 1;\n\t\tthis.refractionRatio = 0.98;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\t\tthis.wireframeLinecap = 'round';\n\t\tthis.wireframeLinejoin = 'round';\n\n\t\tthis.flatShading = false;\n\n\t\tthis.fog = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\t\tthis.specular.copy( source.specular );\n\t\tthis.shininess = source.shininess;\n\n\t\tthis.map = source.map;\n\n\t\tthis.lightMap = source.lightMap;\n\t\tthis.lightMapIntensity = source.lightMapIntensity;\n\n\t\tthis.aoMap = source.aoMap;\n\t\tthis.aoMapIntensity = source.aoMapIntensity;\n\n\t\tthis.emissive.copy( source.emissive );\n\t\tthis.emissiveMap = source.emissiveMap;\n\t\tthis.emissiveIntensity = source.emissiveIntensity;\n\n\t\tthis.bumpMap = source.bumpMap;\n\t\tthis.bumpScale = source.bumpScale;\n\n\t\tthis.normalMap = source.normalMap;\n\t\tthis.normalMapType = source.normalMapType;\n\t\tthis.normalScale.copy( source.normalScale );\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\tthis.specularMap = source.specularMap;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.envMap = source.envMap;\n\t\tthis.envMapRotation.copy( source.envMapRotation );\n\t\tthis.combine = source.combine;\n\t\tthis.reflectivity = source.reflectivity;\n\t\tthis.refractionRatio = source.refractionRatio;\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\t\tthis.wireframeLinecap = source.wireframeLinecap;\n\t\tthis.wireframeLinejoin = source.wireframeLinejoin;\n\n\t\tthis.flatShading = source.flatShading;\n\n\t\tthis.fog = source.fog;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass MeshToonMaterial extends Material {\n\n\tstatic get type() {\n\n\t\treturn 'MeshToonMaterial';\n\n\t}\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isMeshToonMaterial = true;\n\n\t\tthis.defines = { 'TOON': '' };\n\n\t\tthis.color = new Color( 0xffffff );\n\n\t\tthis.map = null;\n\t\tthis.gradientMap = null;\n\n\t\tthis.lightMap = null;\n\t\tthis.lightMapIntensity = 1.0;\n\n\t\tthis.aoMap = null;\n\t\tthis.aoMapIntensity = 1.0;\n\n\t\tthis.emissive = new Color( 0x000000 );\n\t\tthis.emissiveIntensity = 1.0;\n\t\tthis.emissiveMap = null;\n\n\t\tthis.bumpMap = null;\n\t\tthis.bumpScale = 1;\n\n\t\tthis.normalMap = null;\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\t\tthis.wireframeLinecap = 'round';\n\t\tthis.wireframeLinejoin = 'round';\n\n\t\tthis.fog = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.map = source.map;\n\t\tthis.gradientMap = source.gradientMap;\n\n\t\tthis.lightMap = source.lightMap;\n\t\tthis.lightMapIntensity = source.lightMapIntensity;\n\n\t\tthis.aoMap = source.aoMap;\n\t\tthis.aoMapIntensity = source.aoMapIntensity;\n\n\t\tthis.emissive.copy( source.emissive );\n\t\tthis.emissiveMap = source.emissiveMap;\n\t\tthis.emissiveIntensity = source.emissiveIntensity;\n\n\t\tthis.bumpMap = source.bumpMap;\n\t\tthis.bumpScale = source.bumpScale;\n\n\t\tthis.normalMap = source.normalMap;\n\t\tthis.normalMapType = source.normalMapType;\n\t\tthis.normalScale.copy( source.normalScale );\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\t\tthis.wireframeLinecap = source.wireframeLinecap;\n\t\tthis.wireframeLinejoin = source.wireframeLinejoin;\n\n\t\tthis.fog = source.fog;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass MeshNormalMaterial extends Material {\n\n\tstatic get type() {\n\n\t\treturn 'MeshNormalMaterial';\n\n\t}\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isMeshNormalMaterial = true;\n\n\t\tthis.bumpMap = null;\n\t\tthis.bumpScale = 1;\n\n\t\tthis.normalMap = null;\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\n\t\tthis.flatShading = false;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.bumpMap = source.bumpMap;\n\t\tthis.bumpScale = source.bumpScale;\n\n\t\tthis.normalMap = source.normalMap;\n\t\tthis.normalMapType = source.normalMapType;\n\t\tthis.normalScale.copy( source.normalScale );\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\n\t\tthis.flatShading = source.flatShading;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass MeshLambertMaterial extends Material {\n\n\tstatic get type() {\n\n\t\treturn 'MeshLambertMaterial';\n\n\t}\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isMeshLambertMaterial = true;\n\n\t\tthis.color = new Color( 0xffffff ); // diffuse\n\n\t\tthis.map = null;\n\n\t\tthis.lightMap = null;\n\t\tthis.lightMapIntensity = 1.0;\n\n\t\tthis.aoMap = null;\n\t\tthis.aoMapIntensity = 1.0;\n\n\t\tthis.emissive = new Color( 0x000000 );\n\t\tthis.emissiveIntensity = 1.0;\n\t\tthis.emissiveMap = null;\n\n\t\tthis.bumpMap = null;\n\t\tthis.bumpScale = 1;\n\n\t\tthis.normalMap = null;\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.specularMap = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.envMap = null;\n\t\tthis.envMapRotation = new Euler();\n\t\tthis.combine = MultiplyOperation;\n\t\tthis.reflectivity = 1;\n\t\tthis.refractionRatio = 0.98;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\t\tthis.wireframeLinecap = 'round';\n\t\tthis.wireframeLinejoin = 'round';\n\n\t\tthis.flatShading = false;\n\n\t\tthis.fog = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.map = source.map;\n\n\t\tthis.lightMap = source.lightMap;\n\t\tthis.lightMapIntensity = source.lightMapIntensity;\n\n\t\tthis.aoMap = source.aoMap;\n\t\tthis.aoMapIntensity = source.aoMapIntensity;\n\n\t\tthis.emissive.copy( source.emissive );\n\t\tthis.emissiveMap = source.emissiveMap;\n\t\tthis.emissiveIntensity = source.emissiveIntensity;\n\n\t\tthis.bumpMap = source.bumpMap;\n\t\tthis.bumpScale = source.bumpScale;\n\n\t\tthis.normalMap = source.normalMap;\n\t\tthis.normalMapType = source.normalMapType;\n\t\tthis.normalScale.copy( source.normalScale );\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\tthis.specularMap = source.specularMap;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.envMap = source.envMap;\n\t\tthis.envMapRotation.copy( source.envMapRotation );\n\t\tthis.combine = source.combine;\n\t\tthis.reflectivity = source.reflectivity;\n\t\tthis.refractionRatio = source.refractionRatio;\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\t\tthis.wireframeLinecap = source.wireframeLinecap;\n\t\tthis.wireframeLinejoin = source.wireframeLinejoin;\n\n\t\tthis.flatShading = source.flatShading;\n\n\t\tthis.fog = source.fog;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass MeshMatcapMaterial extends Material {\n\n\tstatic get type() {\n\n\t\treturn 'MeshMatcapMaterial';\n\n\t}\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isMeshMatcapMaterial = true;\n\n\t\tthis.defines = { 'MATCAP': '' };\n\n\t\tthis.color = new Color( 0xffffff ); // diffuse\n\n\t\tthis.matcap = null;\n\n\t\tthis.map = null;\n\n\t\tthis.bumpMap = null;\n\t\tthis.bumpScale = 1;\n\n\t\tthis.normalMap = null;\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.flatShading = false;\n\n\t\tthis.fog = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.defines = { 'MATCAP': '' };\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.matcap = source.matcap;\n\n\t\tthis.map = source.map;\n\n\t\tthis.bumpMap = source.bumpMap;\n\t\tthis.bumpScale = source.bumpScale;\n\n\t\tthis.normalMap = source.normalMap;\n\t\tthis.normalMapType = source.normalMapType;\n\t\tthis.normalScale.copy( source.normalScale );\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.flatShading = source.flatShading;\n\n\t\tthis.fog = source.fog;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass LineDashedMaterial extends LineBasicMaterial {\n\n\tstatic get type() {\n\n\t\treturn 'LineDashedMaterial';\n\n\t}\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isLineDashedMaterial = true;\n\n\t\tthis.scale = 1;\n\t\tthis.dashSize = 3;\n\t\tthis.gapSize = 1;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.scale = source.scale;\n\t\tthis.dashSize = source.dashSize;\n\t\tthis.gapSize = source.gapSize;\n\n\t\treturn this;\n\n\t}\n\n}\n\n// converts an array to a specific type\nfunction convertArray( array, type, forceClone ) {\n\n\tif ( ! array || // let 'undefined' and 'null' pass\n\t\t! forceClone && array.constructor === type ) return array;\n\n\tif ( typeof type.BYTES_PER_ELEMENT === 'number' ) {\n\n\t\treturn new type( array ); // create typed array\n\n\t}\n\n\treturn Array.prototype.slice.call( array ); // create Array\n\n}\n\nfunction isTypedArray( object ) {\n\n\treturn ArrayBuffer.isView( object ) &&\n\t\t! ( object instanceof DataView );\n\n}\n\n// returns an array by which times and values can be sorted\nfunction getKeyframeOrder( times ) {\n\n\tfunction compareTime( i, j ) {\n\n\t\treturn times[ i ] - times[ j ];\n\n\t}\n\n\tconst n = times.length;\n\tconst result = new Array( n );\n\tfor ( let i = 0; i !== n; ++ i ) result[ i ] = i;\n\n\tresult.sort( compareTime );\n\n\treturn result;\n\n}\n\n// uses the array previously returned by 'getKeyframeOrder' to sort data\nfunction sortedArray( values, stride, order ) {\n\n\tconst nValues = values.length;\n\tconst result = new values.constructor( nValues );\n\n\tfor ( let i = 0, dstOffset = 0; dstOffset !== nValues; ++ i ) {\n\n\t\tconst srcOffset = order[ i ] * stride;\n\n\t\tfor ( let j = 0; j !== stride; ++ j ) {\n\n\t\t\tresult[ dstOffset ++ ] = values[ srcOffset + j ];\n\n\t\t}\n\n\t}\n\n\treturn result;\n\n}\n\n// function for parsing AOS keyframe formats\nfunction flattenJSON( jsonKeys, times, values, valuePropertyName ) {\n\n\tlet i = 1, key = jsonKeys[ 0 ];\n\n\twhile ( key !== undefined && key[ valuePropertyName ] === undefined ) {\n\n\t\tkey = jsonKeys[ i ++ ];\n\n\t}\n\n\tif ( key === undefined ) return; // no data\n\n\tlet value = key[ valuePropertyName ];\n\tif ( value === undefined ) return; // no data\n\n\tif ( Array.isArray( value ) ) {\n\n\t\tdo {\n\n\t\t\tvalue = key[ valuePropertyName ];\n\n\t\t\tif ( value !== undefined ) {\n\n\t\t\t\ttimes.push( key.time );\n\t\t\t\tvalues.push.apply( values, value ); // push all elements\n\n\t\t\t}\n\n\t\t\tkey = jsonKeys[ i ++ ];\n\n\t\t} while ( key !== undefined );\n\n\t} else if ( value.toArray !== undefined ) {\n\n\t\t// ...assume THREE.Math-ish\n\n\t\tdo {\n\n\t\t\tvalue = key[ valuePropertyName ];\n\n\t\t\tif ( value !== undefined ) {\n\n\t\t\t\ttimes.push( key.time );\n\t\t\t\tvalue.toArray( values, values.length );\n\n\t\t\t}\n\n\t\t\tkey = jsonKeys[ i ++ ];\n\n\t\t} while ( key !== undefined );\n\n\t} else {\n\n\t\t// otherwise push as-is\n\n\t\tdo {\n\n\t\t\tvalue = key[ valuePropertyName ];\n\n\t\t\tif ( value !== undefined ) {\n\n\t\t\t\ttimes.push( key.time );\n\t\t\t\tvalues.push( value );\n\n\t\t\t}\n\n\t\t\tkey = jsonKeys[ i ++ ];\n\n\t\t} while ( key !== undefined );\n\n\t}\n\n}\n\nfunction subclip( sourceClip, name, startFrame, endFrame, fps = 30 ) {\n\n\tconst clip = sourceClip.clone();\n\n\tclip.name = name;\n\n\tconst tracks = [];\n\n\tfor ( let i = 0; i < clip.tracks.length; ++ i ) {\n\n\t\tconst track = clip.tracks[ i ];\n\t\tconst valueSize = track.getValueSize();\n\n\t\tconst times = [];\n\t\tconst values = [];\n\n\t\tfor ( let j = 0; j < track.times.length; ++ j ) {\n\n\t\t\tconst frame = track.times[ j ] * fps;\n\n\t\t\tif ( frame < startFrame || frame >= endFrame ) continue;\n\n\t\t\ttimes.push( track.times[ j ] );\n\n\t\t\tfor ( let k = 0; k < valueSize; ++ k ) {\n\n\t\t\t\tvalues.push( track.values[ j * valueSize + k ] );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( times.length === 0 ) continue;\n\n\t\ttrack.times = convertArray( times, track.times.constructor );\n\t\ttrack.values = convertArray( values, track.values.constructor );\n\n\t\ttracks.push( track );\n\n\t}\n\n\tclip.tracks = tracks;\n\n\t// find minimum .times value across all tracks in the trimmed clip\n\n\tlet minStartTime = Infinity;\n\n\tfor ( let i = 0; i < clip.tracks.length; ++ i ) {\n\n\t\tif ( minStartTime > clip.tracks[ i ].times[ 0 ] ) {\n\n\t\t\tminStartTime = clip.tracks[ i ].times[ 0 ];\n\n\t\t}\n\n\t}\n\n\t// shift all tracks such that clip begins at t=0\n\n\tfor ( let i = 0; i < clip.tracks.length; ++ i ) {\n\n\t\tclip.tracks[ i ].shift( - 1 * minStartTime );\n\n\t}\n\n\tclip.resetDuration();\n\n\treturn clip;\n\n}\n\nfunction makeClipAdditive( targetClip, referenceFrame = 0, referenceClip = targetClip, fps = 30 ) {\n\n\tif ( fps <= 0 ) fps = 30;\n\n\tconst numTracks = referenceClip.tracks.length;\n\tconst referenceTime = referenceFrame / fps;\n\n\t// Make each track's values relative to the values at the reference frame\n\tfor ( let i = 0; i < numTracks; ++ i ) {\n\n\t\tconst referenceTrack = referenceClip.tracks[ i ];\n\t\tconst referenceTrackType = referenceTrack.ValueTypeName;\n\n\t\t// Skip this track if it's non-numeric\n\t\tif ( referenceTrackType === 'bool' || referenceTrackType === 'string' ) continue;\n\n\t\t// Find the track in the target clip whose name and type matches the reference track\n\t\tconst targetTrack = targetClip.tracks.find( function ( track ) {\n\n\t\t\treturn track.name === referenceTrack.name\n\t\t\t\t&& track.ValueTypeName === referenceTrackType;\n\n\t\t} );\n\n\t\tif ( targetTrack === undefined ) continue;\n\n\t\tlet referenceOffset = 0;\n\t\tconst referenceValueSize = referenceTrack.getValueSize();\n\n\t\tif ( referenceTrack.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline ) {\n\n\t\t\treferenceOffset = referenceValueSize / 3;\n\n\t\t}\n\n\t\tlet targetOffset = 0;\n\t\tconst targetValueSize = targetTrack.getValueSize();\n\n\t\tif ( targetTrack.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline ) {\n\n\t\t\ttargetOffset = targetValueSize / 3;\n\n\t\t}\n\n\t\tconst lastIndex = referenceTrack.times.length - 1;\n\t\tlet referenceValue;\n\n\t\t// Find the value to subtract out of the track\n\t\tif ( referenceTime <= referenceTrack.times[ 0 ] ) {\n\n\t\t\t// Reference frame is earlier than the first keyframe, so just use the first keyframe\n\t\t\tconst startIndex = referenceOffset;\n\t\t\tconst endIndex = referenceValueSize - referenceOffset;\n\t\t\treferenceValue = referenceTrack.values.slice( startIndex, endIndex );\n\n\t\t} else if ( referenceTime >= referenceTrack.times[ lastIndex ] ) {\n\n\t\t\t// Reference frame is after the last keyframe, so just use the last keyframe\n\t\t\tconst startIndex = lastIndex * referenceValueSize + referenceOffset;\n\t\t\tconst endIndex = startIndex + referenceValueSize - referenceOffset;\n\t\t\treferenceValue = referenceTrack.values.slice( startIndex, endIndex );\n\n\t\t} else {\n\n\t\t\t// Interpolate to the reference value\n\t\t\tconst interpolant = referenceTrack.createInterpolant();\n\t\t\tconst startIndex = referenceOffset;\n\t\t\tconst endIndex = referenceValueSize - referenceOffset;\n\t\t\tinterpolant.evaluate( referenceTime );\n\t\t\treferenceValue = interpolant.resultBuffer.slice( startIndex, endIndex );\n\n\t\t}\n\n\t\t// Conjugate the quaternion\n\t\tif ( referenceTrackType === 'quaternion' ) {\n\n\t\t\tconst referenceQuat = new Quaternion().fromArray( referenceValue ).normalize().conjugate();\n\t\t\treferenceQuat.toArray( referenceValue );\n\n\t\t}\n\n\t\t// Subtract the reference value from all of the track values\n\n\t\tconst numTimes = targetTrack.times.length;\n\t\tfor ( let j = 0; j < numTimes; ++ j ) {\n\n\t\t\tconst valueStart = j * targetValueSize + targetOffset;\n\n\t\t\tif ( referenceTrackType === 'quaternion' ) {\n\n\t\t\t\t// Multiply the conjugate for quaternion track types\n\t\t\t\tQuaternion.multiplyQuaternionsFlat(\n\t\t\t\t\ttargetTrack.values,\n\t\t\t\t\tvalueStart,\n\t\t\t\t\treferenceValue,\n\t\t\t\t\t0,\n\t\t\t\t\ttargetTrack.values,\n\t\t\t\t\tvalueStart\n\t\t\t\t);\n\n\t\t\t} else {\n\n\t\t\t\tconst valueEnd = targetValueSize - targetOffset * 2;\n\n\t\t\t\t// Subtract each value for all other numeric track types\n\t\t\t\tfor ( let k = 0; k < valueEnd; ++ k ) {\n\n\t\t\t\t\ttargetTrack.values[ valueStart + k ] -= referenceValue[ k ];\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\ttargetClip.blendMode = AdditiveAnimationBlendMode;\n\n\treturn targetClip;\n\n}\n\nconst AnimationUtils = {\n\tconvertArray: convertArray,\n\tisTypedArray: isTypedArray,\n\tgetKeyframeOrder: getKeyframeOrder,\n\tsortedArray: sortedArray,\n\tflattenJSON: flattenJSON,\n\tsubclip: subclip,\n\tmakeClipAdditive: makeClipAdditive\n};\n\n/**\n * Abstract base class of interpolants over parametric samples.\n *\n * The parameter domain is one dimensional, typically the time or a path\n * along a curve defined by the data.\n *\n * The sample values can have any dimensionality and derived classes may\n * apply special interpretations to the data.\n *\n * This class provides the interval seek in a Template Method, deferring\n * the actual interpolation to derived classes.\n *\n * Time complexity is O(1) for linear access crossing at most two points\n * and O(log N) for random access, where N is the number of positions.\n *\n * References:\n *\n * \t\thttp://www.oodesign.com/template-method-pattern.html\n *\n */\n\nclass Interpolant {\n\n\tconstructor( parameterPositions, sampleValues, sampleSize, resultBuffer ) {\n\n\t\tthis.parameterPositions = parameterPositions;\n\t\tthis._cachedIndex = 0;\n\n\t\tthis.resultBuffer = resultBuffer !== undefined ?\n\t\t\tresultBuffer : new sampleValues.constructor( sampleSize );\n\t\tthis.sampleValues = sampleValues;\n\t\tthis.valueSize = sampleSize;\n\n\t\tthis.settings = null;\n\t\tthis.DefaultSettings_ = {};\n\n\t}\n\n\tevaluate( t ) {\n\n\t\tconst pp = this.parameterPositions;\n\t\tlet i1 = this._cachedIndex,\n\t\t\tt1 = pp[ i1 ],\n\t\t\tt0 = pp[ i1 - 1 ];\n\n\t\tvalidate_interval: {\n\n\t\t\tseek: {\n\n\t\t\t\tlet right;\n\n\t\t\t\tlinear_scan: {\n\n\t\t\t\t\t//- See http://jsperf.com/comparison-to-undefined/3\n\t\t\t\t\t//- slower code:\n\t\t\t\t\t//-\n\t\t\t\t\t//- \t\t\t\tif ( t >= t1 || t1 === undefined ) {\n\t\t\t\t\tforward_scan: if ( ! ( t < t1 ) ) {\n\n\t\t\t\t\t\tfor ( let giveUpAt = i1 + 2; ; ) {\n\n\t\t\t\t\t\t\tif ( t1 === undefined ) {\n\n\t\t\t\t\t\t\t\tif ( t < t0 ) break forward_scan;\n\n\t\t\t\t\t\t\t\t// after end\n\n\t\t\t\t\t\t\t\ti1 = pp.length;\n\t\t\t\t\t\t\t\tthis._cachedIndex = i1;\n\t\t\t\t\t\t\t\treturn this.copySampleValue_( i1 - 1 );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( i1 === giveUpAt ) break; // this loop\n\n\t\t\t\t\t\t\tt0 = t1;\n\t\t\t\t\t\t\tt1 = pp[ ++ i1 ];\n\n\t\t\t\t\t\t\tif ( t < t1 ) {\n\n\t\t\t\t\t\t\t\t// we have arrived at the sought interval\n\t\t\t\t\t\t\t\tbreak seek;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// prepare binary search on the right side of the index\n\t\t\t\t\t\tright = pp.length;\n\t\t\t\t\t\tbreak linear_scan;\n\n\t\t\t\t\t}\n\n\t\t\t\t\t//- slower code:\n\t\t\t\t\t//-\t\t\t\t\tif ( t < t0 || t0 === undefined ) {\n\t\t\t\t\tif ( ! ( t >= t0 ) ) {\n\n\t\t\t\t\t\t// looping?\n\n\t\t\t\t\t\tconst t1global = pp[ 1 ];\n\n\t\t\t\t\t\tif ( t < t1global ) {\n\n\t\t\t\t\t\t\ti1 = 2; // + 1, using the scan for the details\n\t\t\t\t\t\t\tt0 = t1global;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// linear reverse scan\n\n\t\t\t\t\t\tfor ( let giveUpAt = i1 - 2; ; ) {\n\n\t\t\t\t\t\t\tif ( t0 === undefined ) {\n\n\t\t\t\t\t\t\t\t// before start\n\n\t\t\t\t\t\t\t\tthis._cachedIndex = 0;\n\t\t\t\t\t\t\t\treturn this.copySampleValue_( 0 );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( i1 === giveUpAt ) break; // this loop\n\n\t\t\t\t\t\t\tt1 = t0;\n\t\t\t\t\t\t\tt0 = pp[ -- i1 - 1 ];\n\n\t\t\t\t\t\t\tif ( t >= t0 ) {\n\n\t\t\t\t\t\t\t\t// we have arrived at the sought interval\n\t\t\t\t\t\t\t\tbreak seek;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// prepare binary search on the left side of the index\n\t\t\t\t\t\tright = i1;\n\t\t\t\t\t\ti1 = 0;\n\t\t\t\t\t\tbreak linear_scan;\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// the interval is valid\n\n\t\t\t\t\tbreak validate_interval;\n\n\t\t\t\t} // linear scan\n\n\t\t\t\t// binary search\n\n\t\t\t\twhile ( i1 < right ) {\n\n\t\t\t\t\tconst mid = ( i1 + right ) >>> 1;\n\n\t\t\t\t\tif ( t < pp[ mid ] ) {\n\n\t\t\t\t\t\tright = mid;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\ti1 = mid + 1;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tt1 = pp[ i1 ];\n\t\t\t\tt0 = pp[ i1 - 1 ];\n\n\t\t\t\t// check boundary cases, again\n\n\t\t\t\tif ( t0 === undefined ) {\n\n\t\t\t\t\tthis._cachedIndex = 0;\n\t\t\t\t\treturn this.copySampleValue_( 0 );\n\n\t\t\t\t}\n\n\t\t\t\tif ( t1 === undefined ) {\n\n\t\t\t\t\ti1 = pp.length;\n\t\t\t\t\tthis._cachedIndex = i1;\n\t\t\t\t\treturn this.copySampleValue_( i1 - 1 );\n\n\t\t\t\t}\n\n\t\t\t} // seek\n\n\t\t\tthis._cachedIndex = i1;\n\n\t\t\tthis.intervalChanged_( i1, t0, t1 );\n\n\t\t} // validate_interval\n\n\t\treturn this.interpolate_( i1, t0, t, t1 );\n\n\t}\n\n\tgetSettings_() {\n\n\t\treturn this.settings || this.DefaultSettings_;\n\n\t}\n\n\tcopySampleValue_( index ) {\n\n\t\t// copies a sample value to the result buffer\n\n\t\tconst result = this.resultBuffer,\n\t\t\tvalues = this.sampleValues,\n\t\t\tstride = this.valueSize,\n\t\t\toffset = index * stride;\n\n\t\tfor ( let i = 0; i !== stride; ++ i ) {\n\n\t\t\tresult[ i ] = values[ offset + i ];\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n\t// Template methods for derived classes:\n\n\tinterpolate_( /* i1, t0, t, t1 */ ) {\n\n\t\tthrow new Error( 'call to abstract method' );\n\t\t// implementations shall return this.resultBuffer\n\n\t}\n\n\tintervalChanged_( /* i1, t0, t1 */ ) {\n\n\t\t// empty\n\n\t}\n\n}\n\n/**\n * Fast and simple cubic spline interpolant.\n *\n * It was derived from a Hermitian construction setting the first derivative\n * at each sample position to the linear slope between neighboring positions\n * over their parameter interval.\n */\n\nclass CubicInterpolant extends Interpolant {\n\n\tconstructor( parameterPositions, sampleValues, sampleSize, resultBuffer ) {\n\n\t\tsuper( parameterPositions, sampleValues, sampleSize, resultBuffer );\n\n\t\tthis._weightPrev = - 0;\n\t\tthis._offsetPrev = - 0;\n\t\tthis._weightNext = - 0;\n\t\tthis._offsetNext = - 0;\n\n\t\tthis.DefaultSettings_ = {\n\n\t\t\tendingStart: ZeroCurvatureEnding,\n\t\t\tendingEnd: ZeroCurvatureEnding\n\n\t\t};\n\n\t}\n\n\tintervalChanged_( i1, t0, t1 ) {\n\n\t\tconst pp = this.parameterPositions;\n\t\tlet iPrev = i1 - 2,\n\t\t\tiNext = i1 + 1,\n\n\t\t\ttPrev = pp[ iPrev ],\n\t\t\ttNext = pp[ iNext ];\n\n\t\tif ( tPrev === undefined ) {\n\n\t\t\tswitch ( this.getSettings_().endingStart ) {\n\n\t\t\t\tcase ZeroSlopeEnding:\n\n\t\t\t\t\t// f'(t0) = 0\n\t\t\t\t\tiPrev = i1;\n\t\t\t\t\ttPrev = 2 * t0 - t1;\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase WrapAroundEnding:\n\n\t\t\t\t\t// use the other end of the curve\n\t\t\t\t\tiPrev = pp.length - 2;\n\t\t\t\t\ttPrev = t0 + pp[ iPrev ] - pp[ iPrev + 1 ];\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault: // ZeroCurvatureEnding\n\n\t\t\t\t\t// f''(t0) = 0 a.k.a. Natural Spline\n\t\t\t\t\tiPrev = i1;\n\t\t\t\t\ttPrev = t1;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( tNext === undefined ) {\n\n\t\t\tswitch ( this.getSettings_().endingEnd ) {\n\n\t\t\t\tcase ZeroSlopeEnding:\n\n\t\t\t\t\t// f'(tN) = 0\n\t\t\t\t\tiNext = i1;\n\t\t\t\t\ttNext = 2 * t1 - t0;\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase WrapAroundEnding:\n\n\t\t\t\t\t// use the other end of the curve\n\t\t\t\t\tiNext = 1;\n\t\t\t\t\ttNext = t1 + pp[ 1 ] - pp[ 0 ];\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault: // ZeroCurvatureEnding\n\n\t\t\t\t\t// f''(tN) = 0, a.k.a. Natural Spline\n\t\t\t\t\tiNext = i1 - 1;\n\t\t\t\t\ttNext = t0;\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst halfDt = ( t1 - t0 ) * 0.5,\n\t\t\tstride = this.valueSize;\n\n\t\tthis._weightPrev = halfDt / ( t0 - tPrev );\n\t\tthis._weightNext = halfDt / ( tNext - t1 );\n\t\tthis._offsetPrev = iPrev * stride;\n\t\tthis._offsetNext = iNext * stride;\n\n\t}\n\n\tinterpolate_( i1, t0, t, t1 ) {\n\n\t\tconst result = this.resultBuffer,\n\t\t\tvalues = this.sampleValues,\n\t\t\tstride = this.valueSize,\n\n\t\t\to1 = i1 * stride,\t\to0 = o1 - stride,\n\t\t\toP = this._offsetPrev, \toN = this._offsetNext,\n\t\t\twP = this._weightPrev,\twN = this._weightNext,\n\n\t\t\tp = ( t - t0 ) / ( t1 - t0 ),\n\t\t\tpp = p * p,\n\t\t\tppp = pp * p;\n\n\t\t// evaluate polynomials\n\n\t\tconst sP = - wP * ppp + 2 * wP * pp - wP * p;\n\t\tconst s0 = ( 1 + wP ) * ppp + ( - 1.5 - 2 * wP ) * pp + ( - 0.5 + wP ) * p + 1;\n\t\tconst s1 = ( - 1 - wN ) * ppp + ( 1.5 + wN ) * pp + 0.5 * p;\n\t\tconst sN = wN * ppp - wN * pp;\n\n\t\t// combine data linearly\n\n\t\tfor ( let i = 0; i !== stride; ++ i ) {\n\n\t\t\tresult[ i ] =\n\t\t\t\t\tsP * values[ oP + i ] +\n\t\t\t\t\ts0 * values[ o0 + i ] +\n\t\t\t\t\ts1 * values[ o1 + i ] +\n\t\t\t\t\tsN * values[ oN + i ];\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n}\n\nclass LinearInterpolant extends Interpolant {\n\n\tconstructor( parameterPositions, sampleValues, sampleSize, resultBuffer ) {\n\n\t\tsuper( parameterPositions, sampleValues, sampleSize, resultBuffer );\n\n\t}\n\n\tinterpolate_( i1, t0, t, t1 ) {\n\n\t\tconst result = this.resultBuffer,\n\t\t\tvalues = this.sampleValues,\n\t\t\tstride = this.valueSize,\n\n\t\t\toffset1 = i1 * stride,\n\t\t\toffset0 = offset1 - stride,\n\n\t\t\tweight1 = ( t - t0 ) / ( t1 - t0 ),\n\t\t\tweight0 = 1 - weight1;\n\n\t\tfor ( let i = 0; i !== stride; ++ i ) {\n\n\t\t\tresult[ i ] =\n\t\t\t\t\tvalues[ offset0 + i ] * weight0 +\n\t\t\t\t\tvalues[ offset1 + i ] * weight1;\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n}\n\n/**\n *\n * Interpolant that evaluates to the sample value at the position preceding\n * the parameter.\n */\n\nclass DiscreteInterpolant extends Interpolant {\n\n\tconstructor( parameterPositions, sampleValues, sampleSize, resultBuffer ) {\n\n\t\tsuper( parameterPositions, sampleValues, sampleSize, resultBuffer );\n\n\t}\n\n\tinterpolate_( i1 /*, t0, t, t1 */ ) {\n\n\t\treturn this.copySampleValue_( i1 - 1 );\n\n\t}\n\n}\n\nclass KeyframeTrack {\n\n\tconstructor( name, times, values, interpolation ) {\n\n\t\tif ( name === undefined ) throw new Error( 'THREE.KeyframeTrack: track name is undefined' );\n\t\tif ( times === undefined || times.length === 0 ) throw new Error( 'THREE.KeyframeTrack: no keyframes in track named ' + name );\n\n\t\tthis.name = name;\n\n\t\tthis.times = convertArray( times, this.TimeBufferType );\n\t\tthis.values = convertArray( values, this.ValueBufferType );\n\n\t\tthis.setInterpolation( interpolation || this.DefaultInterpolation );\n\n\t}\n\n\t// Serialization (in static context, because of constructor invocation\n\t// and automatic invocation of .toJSON):\n\n\tstatic toJSON( track ) {\n\n\t\tconst trackType = track.constructor;\n\n\t\tlet json;\n\n\t\t// derived classes can define a static toJSON method\n\t\tif ( trackType.toJSON !== this.toJSON ) {\n\n\t\t\tjson = trackType.toJSON( track );\n\n\t\t} else {\n\n\t\t\t// by default, we assume the data can be serialized as-is\n\t\t\tjson = {\n\n\t\t\t\t'name': track.name,\n\t\t\t\t'times': convertArray( track.times, Array ),\n\t\t\t\t'values': convertArray( track.values, Array )\n\n\t\t\t};\n\n\t\t\tconst interpolation = track.getInterpolation();\n\n\t\t\tif ( interpolation !== track.DefaultInterpolation ) {\n\n\t\t\t\tjson.interpolation = interpolation;\n\n\t\t\t}\n\n\t\t}\n\n\t\tjson.type = track.ValueTypeName; // mandatory\n\n\t\treturn json;\n\n\t}\n\n\tInterpolantFactoryMethodDiscrete( result ) {\n\n\t\treturn new DiscreteInterpolant( this.times, this.values, this.getValueSize(), result );\n\n\t}\n\n\tInterpolantFactoryMethodLinear( result ) {\n\n\t\treturn new LinearInterpolant( this.times, this.values, this.getValueSize(), result );\n\n\t}\n\n\tInterpolantFactoryMethodSmooth( result ) {\n\n\t\treturn new CubicInterpolant( this.times, this.values, this.getValueSize(), result );\n\n\t}\n\n\tsetInterpolation( interpolation ) {\n\n\t\tlet factoryMethod;\n\n\t\tswitch ( interpolation ) {\n\n\t\t\tcase InterpolateDiscrete:\n\n\t\t\t\tfactoryMethod = this.InterpolantFactoryMethodDiscrete;\n\n\t\t\t\tbreak;\n\n\t\t\tcase InterpolateLinear:\n\n\t\t\t\tfactoryMethod = this.InterpolantFactoryMethodLinear;\n\n\t\t\t\tbreak;\n\n\t\t\tcase InterpolateSmooth:\n\n\t\t\t\tfactoryMethod = this.InterpolantFactoryMethodSmooth;\n\n\t\t\t\tbreak;\n\n\t\t}\n\n\t\tif ( factoryMethod === undefined ) {\n\n\t\t\tconst message = 'unsupported interpolation for ' +\n\t\t\t\tthis.ValueTypeName + ' keyframe track named ' + this.name;\n\n\t\t\tif ( this.createInterpolant === undefined ) {\n\n\t\t\t\t// fall back to default, unless the default itself is messed up\n\t\t\t\tif ( interpolation !== this.DefaultInterpolation ) {\n\n\t\t\t\t\tthis.setInterpolation( this.DefaultInterpolation );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthrow new Error( message ); // fatal, in this case\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconsole.warn( 'THREE.KeyframeTrack:', message );\n\t\t\treturn this;\n\n\t\t}\n\n\t\tthis.createInterpolant = factoryMethod;\n\n\t\treturn this;\n\n\t}\n\n\tgetInterpolation() {\n\n\t\tswitch ( this.createInterpolant ) {\n\n\t\t\tcase this.InterpolantFactoryMethodDiscrete:\n\n\t\t\t\treturn InterpolateDiscrete;\n\n\t\t\tcase this.InterpolantFactoryMethodLinear:\n\n\t\t\t\treturn InterpolateLinear;\n\n\t\t\tcase this.InterpolantFactoryMethodSmooth:\n\n\t\t\t\treturn InterpolateSmooth;\n\n\t\t}\n\n\t}\n\n\tgetValueSize() {\n\n\t\treturn this.values.length / this.times.length;\n\n\t}\n\n\t// move all keyframes either forwards or backwards in time\n\tshift( timeOffset ) {\n\n\t\tif ( timeOffset !== 0.0 ) {\n\n\t\t\tconst times = this.times;\n\n\t\t\tfor ( let i = 0, n = times.length; i !== n; ++ i ) {\n\n\t\t\t\ttimes[ i ] += timeOffset;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// scale all keyframe times by a factor (useful for frame <-> seconds conversions)\n\tscale( timeScale ) {\n\n\t\tif ( timeScale !== 1.0 ) {\n\n\t\t\tconst times = this.times;\n\n\t\t\tfor ( let i = 0, n = times.length; i !== n; ++ i ) {\n\n\t\t\t\ttimes[ i ] *= timeScale;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// removes keyframes before and after animation without changing any values within the range [startTime, endTime].\n\t// IMPORTANT: We do not shift around keys to the start of the track time, because for interpolated keys this will change their values\n\ttrim( startTime, endTime ) {\n\n\t\tconst times = this.times,\n\t\t\tnKeys = times.length;\n\n\t\tlet from = 0,\n\t\t\tto = nKeys - 1;\n\n\t\twhile ( from !== nKeys && times[ from ] < startTime ) {\n\n\t\t\t++ from;\n\n\t\t}\n\n\t\twhile ( to !== - 1 && times[ to ] > endTime ) {\n\n\t\t\t-- to;\n\n\t\t}\n\n\t\t++ to; // inclusive -> exclusive bound\n\n\t\tif ( from !== 0 || to !== nKeys ) {\n\n\t\t\t// empty tracks are forbidden, so keep at least one keyframe\n\t\t\tif ( from >= to ) {\n\n\t\t\t\tto = Math.max( to, 1 );\n\t\t\t\tfrom = to - 1;\n\n\t\t\t}\n\n\t\t\tconst stride = this.getValueSize();\n\t\t\tthis.times = times.slice( from, to );\n\t\t\tthis.values = this.values.slice( from * stride, to * stride );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// ensure we do not get a GarbageInGarbageOut situation, make sure tracks are at least minimally viable\n\tvalidate() {\n\n\t\tlet valid = true;\n\n\t\tconst valueSize = this.getValueSize();\n\t\tif ( valueSize - Math.floor( valueSize ) !== 0 ) {\n\n\t\t\tconsole.error( 'THREE.KeyframeTrack: Invalid value size in track.', this );\n\t\t\tvalid = false;\n\n\t\t}\n\n\t\tconst times = this.times,\n\t\t\tvalues = this.values,\n\n\t\t\tnKeys = times.length;\n\n\t\tif ( nKeys === 0 ) {\n\n\t\t\tconsole.error( 'THREE.KeyframeTrack: Track is empty.', this );\n\t\t\tvalid = false;\n\n\t\t}\n\n\t\tlet prevTime = null;\n\n\t\tfor ( let i = 0; i !== nKeys; i ++ ) {\n\n\t\t\tconst currTime = times[ i ];\n\n\t\t\tif ( typeof currTime === 'number' && isNaN( currTime ) ) {\n\n\t\t\t\tconsole.error( 'THREE.KeyframeTrack: Time is not a valid number.', this, i, currTime );\n\t\t\t\tvalid = false;\n\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t\tif ( prevTime !== null && prevTime > currTime ) {\n\n\t\t\t\tconsole.error( 'THREE.KeyframeTrack: Out of order keys.', this, i, currTime, prevTime );\n\t\t\t\tvalid = false;\n\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t\tprevTime = currTime;\n\n\t\t}\n\n\t\tif ( values !== undefined ) {\n\n\t\t\tif ( isTypedArray( values ) ) {\n\n\t\t\t\tfor ( let i = 0, n = values.length; i !== n; ++ i ) {\n\n\t\t\t\t\tconst value = values[ i ];\n\n\t\t\t\t\tif ( isNaN( value ) ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.KeyframeTrack: Value is not a valid number.', this, i, value );\n\t\t\t\t\t\tvalid = false;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn valid;\n\n\t}\n\n\t// removes equivalent sequential keys as common in morph target sequences\n\t// (0,0,0,0,1,1,1,0,0,0,0,0,0,0) --> (0,0,1,1,0,0)\n\toptimize() {\n\n\t\t// times or values may be shared with other tracks, so overwriting is unsafe\n\t\tconst times = this.times.slice(),\n\t\t\tvalues = this.values.slice(),\n\t\t\tstride = this.getValueSize(),\n\n\t\t\tsmoothInterpolation = this.getInterpolation() === InterpolateSmooth,\n\n\t\t\tlastIndex = times.length - 1;\n\n\t\tlet writeIndex = 1;\n\n\t\tfor ( let i = 1; i < lastIndex; ++ i ) {\n\n\t\t\tlet keep = false;\n\n\t\t\tconst time = times[ i ];\n\t\t\tconst timeNext = times[ i + 1 ];\n\n\t\t\t// remove adjacent keyframes scheduled at the same time\n\n\t\t\tif ( time !== timeNext && ( i !== 1 || time !== times[ 0 ] ) ) {\n\n\t\t\t\tif ( ! smoothInterpolation ) {\n\n\t\t\t\t\t// remove unnecessary keyframes same as their neighbors\n\n\t\t\t\t\tconst offset = i * stride,\n\t\t\t\t\t\toffsetP = offset - stride,\n\t\t\t\t\t\toffsetN = offset + stride;\n\n\t\t\t\t\tfor ( let j = 0; j !== stride; ++ j ) {\n\n\t\t\t\t\t\tconst value = values[ offset + j ];\n\n\t\t\t\t\t\tif ( value !== values[ offsetP + j ] ||\n\t\t\t\t\t\t\tvalue !== values[ offsetN + j ] ) {\n\n\t\t\t\t\t\t\tkeep = true;\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tkeep = true;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// in-place compaction\n\n\t\t\tif ( keep ) {\n\n\t\t\t\tif ( i !== writeIndex ) {\n\n\t\t\t\t\ttimes[ writeIndex ] = times[ i ];\n\n\t\t\t\t\tconst readOffset = i * stride,\n\t\t\t\t\t\twriteOffset = writeIndex * stride;\n\n\t\t\t\t\tfor ( let j = 0; j !== stride; ++ j ) {\n\n\t\t\t\t\t\tvalues[ writeOffset + j ] = values[ readOffset + j ];\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t++ writeIndex;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// flush last keyframe (compaction looks ahead)\n\n\t\tif ( lastIndex > 0 ) {\n\n\t\t\ttimes[ writeIndex ] = times[ lastIndex ];\n\n\t\t\tfor ( let readOffset = lastIndex * stride, writeOffset = writeIndex * stride, j = 0; j !== stride; ++ j ) {\n\n\t\t\t\tvalues[ writeOffset + j ] = values[ readOffset + j ];\n\n\t\t\t}\n\n\t\t\t++ writeIndex;\n\n\t\t}\n\n\t\tif ( writeIndex !== times.length ) {\n\n\t\t\tthis.times = times.slice( 0, writeIndex );\n\t\t\tthis.values = values.slice( 0, writeIndex * stride );\n\n\t\t} else {\n\n\t\t\tthis.times = times;\n\t\t\tthis.values = values;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\tconst times = this.times.slice();\n\t\tconst values = this.values.slice();\n\n\t\tconst TypedKeyframeTrack = this.constructor;\n\t\tconst track = new TypedKeyframeTrack( this.name, times, values );\n\n\t\t// Interpolant argument to constructor is not saved, so copy the factory method directly.\n\t\ttrack.createInterpolant = this.createInterpolant;\n\n\t\treturn track;\n\n\t}\n\n}\n\nKeyframeTrack.prototype.TimeBufferType = Float32Array;\nKeyframeTrack.prototype.ValueBufferType = Float32Array;\nKeyframeTrack.prototype.DefaultInterpolation = InterpolateLinear;\n\n/**\n * A Track of Boolean keyframe values.\n */\nclass BooleanKeyframeTrack extends KeyframeTrack {\n\n\t// No interpolation parameter because only InterpolateDiscrete is valid.\n\tconstructor( name, times, values ) {\n\n\t\tsuper( name, times, values );\n\n\t}\n\n}\n\nBooleanKeyframeTrack.prototype.ValueTypeName = 'bool';\nBooleanKeyframeTrack.prototype.ValueBufferType = Array;\nBooleanKeyframeTrack.prototype.DefaultInterpolation = InterpolateDiscrete;\nBooleanKeyframeTrack.prototype.InterpolantFactoryMethodLinear = undefined;\nBooleanKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = undefined;\n\n/**\n * A Track of keyframe values that represent color.\n */\nclass ColorKeyframeTrack extends KeyframeTrack {}\n\nColorKeyframeTrack.prototype.ValueTypeName = 'color';\n\n/**\n * A Track of numeric keyframe values.\n */\nclass NumberKeyframeTrack extends KeyframeTrack {}\n\nNumberKeyframeTrack.prototype.ValueTypeName = 'number';\n\n/**\n * Spherical linear unit quaternion interpolant.\n */\n\nclass QuaternionLinearInterpolant extends Interpolant {\n\n\tconstructor( parameterPositions, sampleValues, sampleSize, resultBuffer ) {\n\n\t\tsuper( parameterPositions, sampleValues, sampleSize, resultBuffer );\n\n\t}\n\n\tinterpolate_( i1, t0, t, t1 ) {\n\n\t\tconst result = this.resultBuffer,\n\t\t\tvalues = this.sampleValues,\n\t\t\tstride = this.valueSize,\n\n\t\t\talpha = ( t - t0 ) / ( t1 - t0 );\n\n\t\tlet offset = i1 * stride;\n\n\t\tfor ( let end = offset + stride; offset !== end; offset += 4 ) {\n\n\t\t\tQuaternion.slerpFlat( result, 0, values, offset - stride, values, offset, alpha );\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n}\n\n/**\n * A Track of quaternion keyframe values.\n */\nclass QuaternionKeyframeTrack extends KeyframeTrack {\n\n\tInterpolantFactoryMethodLinear( result ) {\n\n\t\treturn new QuaternionLinearInterpolant( this.times, this.values, this.getValueSize(), result );\n\n\t}\n\n}\n\nQuaternionKeyframeTrack.prototype.ValueTypeName = 'quaternion';\n// ValueBufferType is inherited\n// DefaultInterpolation is inherited;\nQuaternionKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = undefined;\n\n/**\n * A Track that interpolates Strings\n */\nclass StringKeyframeTrack extends KeyframeTrack {\n\n\t// No interpolation parameter because only InterpolateDiscrete is valid.\n\tconstructor( name, times, values ) {\n\n\t\tsuper( name, times, values );\n\n\t}\n\n}\n\nStringKeyframeTrack.prototype.ValueTypeName = 'string';\nStringKeyframeTrack.prototype.ValueBufferType = Array;\nStringKeyframeTrack.prototype.DefaultInterpolation = InterpolateDiscrete;\nStringKeyframeTrack.prototype.InterpolantFactoryMethodLinear = undefined;\nStringKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = undefined;\n\n/**\n * A Track of vectored keyframe values.\n */\nclass VectorKeyframeTrack extends KeyframeTrack {}\n\nVectorKeyframeTrack.prototype.ValueTypeName = 'vector';\n\nclass AnimationClip {\n\n\tconstructor( name = '', duration = - 1, tracks = [], blendMode = NormalAnimationBlendMode ) {\n\n\t\tthis.name = name;\n\t\tthis.tracks = tracks;\n\t\tthis.duration = duration;\n\t\tthis.blendMode = blendMode;\n\n\t\tthis.uuid = generateUUID();\n\n\t\t// this means it should figure out its duration by scanning the tracks\n\t\tif ( this.duration < 0 ) {\n\n\t\t\tthis.resetDuration();\n\n\t\t}\n\n\t}\n\n\n\tstatic parse( json ) {\n\n\t\tconst tracks = [],\n\t\t\tjsonTracks = json.tracks,\n\t\t\tframeTime = 1.0 / ( json.fps || 1.0 );\n\n\t\tfor ( let i = 0, n = jsonTracks.length; i !== n; ++ i ) {\n\n\t\t\ttracks.push( parseKeyframeTrack( jsonTracks[ i ] ).scale( frameTime ) );\n\n\t\t}\n\n\t\tconst clip = new this( json.name, json.duration, tracks, json.blendMode );\n\t\tclip.uuid = json.uuid;\n\n\t\treturn clip;\n\n\t}\n\n\tstatic toJSON( clip ) {\n\n\t\tconst tracks = [],\n\t\t\tclipTracks = clip.tracks;\n\n\t\tconst json = {\n\n\t\t\t'name': clip.name,\n\t\t\t'duration': clip.duration,\n\t\t\t'tracks': tracks,\n\t\t\t'uuid': clip.uuid,\n\t\t\t'blendMode': clip.blendMode\n\n\t\t};\n\n\t\tfor ( let i = 0, n = clipTracks.length; i !== n; ++ i ) {\n\n\t\t\ttracks.push( KeyframeTrack.toJSON( clipTracks[ i ] ) );\n\n\t\t}\n\n\t\treturn json;\n\n\t}\n\n\tstatic CreateFromMorphTargetSequence( name, morphTargetSequence, fps, noLoop ) {\n\n\t\tconst numMorphTargets = morphTargetSequence.length;\n\t\tconst tracks = [];\n\n\t\tfor ( let i = 0; i < numMorphTargets; i ++ ) {\n\n\t\t\tlet times = [];\n\t\t\tlet values = [];\n\n\t\t\ttimes.push(\n\t\t\t\t( i + numMorphTargets - 1 ) % numMorphTargets,\n\t\t\t\ti,\n\t\t\t\t( i + 1 ) % numMorphTargets );\n\n\t\t\tvalues.push( 0, 1, 0 );\n\n\t\t\tconst order = getKeyframeOrder( times );\n\t\t\ttimes = sortedArray( times, 1, order );\n\t\t\tvalues = sortedArray( values, 1, order );\n\n\t\t\t// if there is a key at the first frame, duplicate it as the\n\t\t\t// last frame as well for perfect loop.\n\t\t\tif ( ! noLoop && times[ 0 ] === 0 ) {\n\n\t\t\t\ttimes.push( numMorphTargets );\n\t\t\t\tvalues.push( values[ 0 ] );\n\n\t\t\t}\n\n\t\t\ttracks.push(\n\t\t\t\tnew NumberKeyframeTrack(\n\t\t\t\t\t'.morphTargetInfluences[' + morphTargetSequence[ i ].name + ']',\n\t\t\t\t\ttimes, values\n\t\t\t\t).scale( 1.0 / fps ) );\n\n\t\t}\n\n\t\treturn new this( name, - 1, tracks );\n\n\t}\n\n\tstatic findByName( objectOrClipArray, name ) {\n\n\t\tlet clipArray = objectOrClipArray;\n\n\t\tif ( ! Array.isArray( objectOrClipArray ) ) {\n\n\t\t\tconst o = objectOrClipArray;\n\t\t\tclipArray = o.geometry && o.geometry.animations || o.animations;\n\n\t\t}\n\n\t\tfor ( let i = 0; i < clipArray.length; i ++ ) {\n\n\t\t\tif ( clipArray[ i ].name === name ) {\n\n\t\t\t\treturn clipArray[ i ];\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn null;\n\n\t}\n\n\tstatic CreateClipsFromMorphTargetSequences( morphTargets, fps, noLoop ) {\n\n\t\tconst animationToMorphTargets = {};\n\n\t\t// tested with https://regex101.com/ on trick sequences\n\t\t// such flamingo_flyA_003, flamingo_run1_003, crdeath0059\n\t\tconst pattern = /^([\\w-]*?)([\\d]+)$/;\n\n\t\t// sort morph target names into animation groups based\n\t\t// patterns like Walk_001, Walk_002, Run_001, Run_002\n\t\tfor ( let i = 0, il = morphTargets.length; i < il; i ++ ) {\n\n\t\t\tconst morphTarget = morphTargets[ i ];\n\t\t\tconst parts = morphTarget.name.match( pattern );\n\n\t\t\tif ( parts && parts.length > 1 ) {\n\n\t\t\t\tconst name = parts[ 1 ];\n\n\t\t\t\tlet animationMorphTargets = animationToMorphTargets[ name ];\n\n\t\t\t\tif ( ! animationMorphTargets ) {\n\n\t\t\t\t\tanimationToMorphTargets[ name ] = animationMorphTargets = [];\n\n\t\t\t\t}\n\n\t\t\t\tanimationMorphTargets.push( morphTarget );\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst clips = [];\n\n\t\tfor ( const name in animationToMorphTargets ) {\n\n\t\t\tclips.push( this.CreateFromMorphTargetSequence( name, animationToMorphTargets[ name ], fps, noLoop ) );\n\n\t\t}\n\n\t\treturn clips;\n\n\t}\n\n\t// parse the animation.hierarchy format\n\tstatic parseAnimation( animation, bones ) {\n\n\t\tif ( ! animation ) {\n\n\t\t\tconsole.error( 'THREE.AnimationClip: No animation in JSONLoader data.' );\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst addNonemptyTrack = function ( trackType, trackName, animationKeys, propertyName, destTracks ) {\n\n\t\t\t// only return track if there are actually keys.\n\t\t\tif ( animationKeys.length !== 0 ) {\n\n\t\t\t\tconst times = [];\n\t\t\t\tconst values = [];\n\n\t\t\t\tflattenJSON( animationKeys, times, values, propertyName );\n\n\t\t\t\t// empty keys are filtered out, so check again\n\t\t\t\tif ( times.length !== 0 ) {\n\n\t\t\t\t\tdestTracks.push( new trackType( trackName, times, values ) );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t};\n\n\t\tconst tracks = [];\n\n\t\tconst clipName = animation.name || 'default';\n\t\tconst fps = animation.fps || 30;\n\t\tconst blendMode = animation.blendMode;\n\n\t\t// automatic length determination in AnimationClip.\n\t\tlet duration = animation.length || - 1;\n\n\t\tconst hierarchyTracks = animation.hierarchy || [];\n\n\t\tfor ( let h = 0; h < hierarchyTracks.length; h ++ ) {\n\n\t\t\tconst animationKeys = hierarchyTracks[ h ].keys;\n\n\t\t\t// skip empty tracks\n\t\t\tif ( ! animationKeys || animationKeys.length === 0 ) continue;\n\n\t\t\t// process morph targets\n\t\t\tif ( animationKeys[ 0 ].morphTargets ) {\n\n\t\t\t\t// figure out all morph targets used in this track\n\t\t\t\tconst morphTargetNames = {};\n\n\t\t\t\tlet k;\n\n\t\t\t\tfor ( k = 0; k < animationKeys.length; k ++ ) {\n\n\t\t\t\t\tif ( animationKeys[ k ].morphTargets ) {\n\n\t\t\t\t\t\tfor ( let m = 0; m < animationKeys[ k ].morphTargets.length; m ++ ) {\n\n\t\t\t\t\t\t\tmorphTargetNames[ animationKeys[ k ].morphTargets[ m ] ] = - 1;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t// create a track for each morph target with all zero\n\t\t\t\t// morphTargetInfluences except for the keys in which\n\t\t\t\t// the morphTarget is named.\n\t\t\t\tfor ( const morphTargetName in morphTargetNames ) {\n\n\t\t\t\t\tconst times = [];\n\t\t\t\t\tconst values = [];\n\n\t\t\t\t\tfor ( let m = 0; m !== animationKeys[ k ].morphTargets.length; ++ m ) {\n\n\t\t\t\t\t\tconst animationKey = animationKeys[ k ];\n\n\t\t\t\t\t\ttimes.push( animationKey.time );\n\t\t\t\t\t\tvalues.push( ( animationKey.morphTarget === morphTargetName ) ? 1 : 0 );\n\n\t\t\t\t\t}\n\n\t\t\t\t\ttracks.push( new NumberKeyframeTrack( '.morphTargetInfluence[' + morphTargetName + ']', times, values ) );\n\n\t\t\t\t}\n\n\t\t\t\tduration = morphTargetNames.length * fps;\n\n\t\t\t} else {\n\n\t\t\t\t// ...assume skeletal animation\n\n\t\t\t\tconst boneName = '.bones[' + bones[ h ].name + ']';\n\n\t\t\t\taddNonemptyTrack(\n\t\t\t\t\tVectorKeyframeTrack, boneName + '.position',\n\t\t\t\t\tanimationKeys, 'pos', tracks );\n\n\t\t\t\taddNonemptyTrack(\n\t\t\t\t\tQuaternionKeyframeTrack, boneName + '.quaternion',\n\t\t\t\t\tanimationKeys, 'rot', tracks );\n\n\t\t\t\taddNonemptyTrack(\n\t\t\t\t\tVectorKeyframeTrack, boneName + '.scale',\n\t\t\t\t\tanimationKeys, 'scl', tracks );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( tracks.length === 0 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst clip = new this( clipName, duration, tracks, blendMode );\n\n\t\treturn clip;\n\n\t}\n\n\tresetDuration() {\n\n\t\tconst tracks = this.tracks;\n\t\tlet duration = 0;\n\n\t\tfor ( let i = 0, n = tracks.length; i !== n; ++ i ) {\n\n\t\t\tconst track = this.tracks[ i ];\n\n\t\t\tduration = Math.max( duration, track.times[ track.times.length - 1 ] );\n\n\t\t}\n\n\t\tthis.duration = duration;\n\n\t\treturn this;\n\n\t}\n\n\ttrim() {\n\n\t\tfor ( let i = 0; i < this.tracks.length; i ++ ) {\n\n\t\t\tthis.tracks[ i ].trim( 0, this.duration );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tvalidate() {\n\n\t\tlet valid = true;\n\n\t\tfor ( let i = 0; i < this.tracks.length; i ++ ) {\n\n\t\t\tvalid = valid && this.tracks[ i ].validate();\n\n\t\t}\n\n\t\treturn valid;\n\n\t}\n\n\toptimize() {\n\n\t\tfor ( let i = 0; i < this.tracks.length; i ++ ) {\n\n\t\t\tthis.tracks[ i ].optimize();\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\tconst tracks = [];\n\n\t\tfor ( let i = 0; i < this.tracks.length; i ++ ) {\n\n\t\t\ttracks.push( this.tracks[ i ].clone() );\n\n\t\t}\n\n\t\treturn new this.constructor( this.name, this.duration, tracks, this.blendMode );\n\n\t}\n\n\ttoJSON() {\n\n\t\treturn this.constructor.toJSON( this );\n\n\t}\n\n}\n\nfunction getTrackTypeForValueTypeName( typeName ) {\n\n\tswitch ( typeName.toLowerCase() ) {\n\n\t\tcase 'scalar':\n\t\tcase 'double':\n\t\tcase 'float':\n\t\tcase 'number':\n\t\tcase 'integer':\n\n\t\t\treturn NumberKeyframeTrack;\n\n\t\tcase 'vector':\n\t\tcase 'vector2':\n\t\tcase 'vector3':\n\t\tcase 'vector4':\n\n\t\t\treturn VectorKeyframeTrack;\n\n\t\tcase 'color':\n\n\t\t\treturn ColorKeyframeTrack;\n\n\t\tcase 'quaternion':\n\n\t\t\treturn QuaternionKeyframeTrack;\n\n\t\tcase 'bool':\n\t\tcase 'boolean':\n\n\t\t\treturn BooleanKeyframeTrack;\n\n\t\tcase 'string':\n\n\t\t\treturn StringKeyframeTrack;\n\n\t}\n\n\tthrow new Error( 'THREE.KeyframeTrack: Unsupported typeName: ' + typeName );\n\n}\n\nfunction parseKeyframeTrack( json ) {\n\n\tif ( json.type === undefined ) {\n\n\t\tthrow new Error( 'THREE.KeyframeTrack: track type undefined, can not parse' );\n\n\t}\n\n\tconst trackType = getTrackTypeForValueTypeName( json.type );\n\n\tif ( json.times === undefined ) {\n\n\t\tconst times = [], values = [];\n\n\t\tflattenJSON( json.keys, times, values, 'value' );\n\n\t\tjson.times = times;\n\t\tjson.values = values;\n\n\t}\n\n\t// derived classes can define a static parse method\n\tif ( trackType.parse !== undefined ) {\n\n\t\treturn trackType.parse( json );\n\n\t} else {\n\n\t\t// by default, we assume a constructor compatible with the base\n\t\treturn new trackType( json.name, json.times, json.values, json.interpolation );\n\n\t}\n\n}\n\nconst Cache = {\n\n\tenabled: false,\n\n\tfiles: {},\n\n\tadd: function ( key, file ) {\n\n\t\tif ( this.enabled === false ) return;\n\n\t\t// console.log( 'THREE.Cache', 'Adding key:', key );\n\n\t\tthis.files[ key ] = file;\n\n\t},\n\n\tget: function ( key ) {\n\n\t\tif ( this.enabled === false ) return;\n\n\t\t// console.log( 'THREE.Cache', 'Checking key:', key );\n\n\t\treturn this.files[ key ];\n\n\t},\n\n\tremove: function ( key ) {\n\n\t\tdelete this.files[ key ];\n\n\t},\n\n\tclear: function () {\n\n\t\tthis.files = {};\n\n\t}\n\n};\n\nclass LoadingManager {\n\n\tconstructor( onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tlet isLoading = false;\n\t\tlet itemsLoaded = 0;\n\t\tlet itemsTotal = 0;\n\t\tlet urlModifier = undefined;\n\t\tconst handlers = [];\n\n\t\t// Refer to #5689 for the reason why we don't set .onStart\n\t\t// in the constructor\n\n\t\tthis.onStart = undefined;\n\t\tthis.onLoad = onLoad;\n\t\tthis.onProgress = onProgress;\n\t\tthis.onError = onError;\n\n\t\tthis.itemStart = function ( url ) {\n\n\t\t\titemsTotal ++;\n\n\t\t\tif ( isLoading === false ) {\n\n\t\t\t\tif ( scope.onStart !== undefined ) {\n\n\t\t\t\t\tscope.onStart( url, itemsLoaded, itemsTotal );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tisLoading = true;\n\n\t\t};\n\n\t\tthis.itemEnd = function ( url ) {\n\n\t\t\titemsLoaded ++;\n\n\t\t\tif ( scope.onProgress !== undefined ) {\n\n\t\t\t\tscope.onProgress( url, itemsLoaded, itemsTotal );\n\n\t\t\t}\n\n\t\t\tif ( itemsLoaded === itemsTotal ) {\n\n\t\t\t\tisLoading = false;\n\n\t\t\t\tif ( scope.onLoad !== undefined ) {\n\n\t\t\t\t\tscope.onLoad();\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.itemError = function ( url ) {\n\n\t\t\tif ( scope.onError !== undefined ) {\n\n\t\t\t\tscope.onError( url );\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.resolveURL = function ( url ) {\n\n\t\t\tif ( urlModifier ) {\n\n\t\t\t\treturn urlModifier( url );\n\n\t\t\t}\n\n\t\t\treturn url;\n\n\t\t};\n\n\t\tthis.setURLModifier = function ( transform ) {\n\n\t\t\turlModifier = transform;\n\n\t\t\treturn this;\n\n\t\t};\n\n\t\tthis.addHandler = function ( regex, loader ) {\n\n\t\t\thandlers.push( regex, loader );\n\n\t\t\treturn this;\n\n\t\t};\n\n\t\tthis.removeHandler = function ( regex ) {\n\n\t\t\tconst index = handlers.indexOf( regex );\n\n\t\t\tif ( index !== - 1 ) {\n\n\t\t\t\thandlers.splice( index, 2 );\n\n\t\t\t}\n\n\t\t\treturn this;\n\n\t\t};\n\n\t\tthis.getHandler = function ( file ) {\n\n\t\t\tfor ( let i = 0, l = handlers.length; i < l; i += 2 ) {\n\n\t\t\t\tconst regex = handlers[ i ];\n\t\t\t\tconst loader = handlers[ i + 1 ];\n\n\t\t\t\tif ( regex.global ) regex.lastIndex = 0; // see #17920\n\n\t\t\t\tif ( regex.test( file ) ) {\n\n\t\t\t\t\treturn loader;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn null;\n\n\t\t};\n\n\t}\n\n}\n\nconst DefaultLoadingManager = /*@__PURE__*/ new LoadingManager();\n\nclass Loader {\n\n\tconstructor( manager ) {\n\n\t\tthis.manager = ( manager !== undefined ) ? manager : DefaultLoadingManager;\n\n\t\tthis.crossOrigin = 'anonymous';\n\t\tthis.withCredentials = false;\n\t\tthis.path = '';\n\t\tthis.resourcePath = '';\n\t\tthis.requestHeader = {};\n\n\t}\n\n\tload( /* url, onLoad, onProgress, onError */ ) {}\n\n\tloadAsync( url, onProgress ) {\n\n\t\tconst scope = this;\n\n\t\treturn new Promise( function ( resolve, reject ) {\n\n\t\t\tscope.load( url, resolve, onProgress, reject );\n\n\t\t} );\n\n\t}\n\n\tparse( /* data */ ) {}\n\n\tsetCrossOrigin( crossOrigin ) {\n\n\t\tthis.crossOrigin = crossOrigin;\n\t\treturn this;\n\n\t}\n\n\tsetWithCredentials( value ) {\n\n\t\tthis.withCredentials = value;\n\t\treturn this;\n\n\t}\n\n\tsetPath( path ) {\n\n\t\tthis.path = path;\n\t\treturn this;\n\n\t}\n\n\tsetResourcePath( resourcePath ) {\n\n\t\tthis.resourcePath = resourcePath;\n\t\treturn this;\n\n\t}\n\n\tsetRequestHeader( requestHeader ) {\n\n\t\tthis.requestHeader = requestHeader;\n\t\treturn this;\n\n\t}\n\n}\n\nLoader.DEFAULT_MATERIAL_NAME = '__DEFAULT';\n\nconst loading = {};\n\nclass HttpError extends Error {\n\n\tconstructor( message, response ) {\n\n\t\tsuper( message );\n\t\tthis.response = response;\n\n\t}\n\n}\n\nclass FileLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tif ( url === undefined ) url = '';\n\n\t\tif ( this.path !== undefined ) url = this.path + url;\n\n\t\turl = this.manager.resolveURL( url );\n\n\t\tconst cached = Cache.get( url );\n\n\t\tif ( cached !== undefined ) {\n\n\t\t\tthis.manager.itemStart( url );\n\n\t\t\tsetTimeout( () => {\n\n\t\t\t\tif ( onLoad ) onLoad( cached );\n\n\t\t\t\tthis.manager.itemEnd( url );\n\n\t\t\t}, 0 );\n\n\t\t\treturn cached;\n\n\t\t}\n\n\t\t// Check if request is duplicate\n\n\t\tif ( loading[ url ] !== undefined ) {\n\n\t\t\tloading[ url ].push( {\n\n\t\t\t\tonLoad: onLoad,\n\t\t\t\tonProgress: onProgress,\n\t\t\t\tonError: onError\n\n\t\t\t} );\n\n\t\t\treturn;\n\n\t\t}\n\n\t\t// Initialise array for duplicate requests\n\t\tloading[ url ] = [];\n\n\t\tloading[ url ].push( {\n\t\t\tonLoad: onLoad,\n\t\t\tonProgress: onProgress,\n\t\t\tonError: onError,\n\t\t} );\n\n\t\t// create request\n\t\tconst req = new Request( url, {\n\t\t\theaders: new Headers( this.requestHeader ),\n\t\t\tcredentials: this.withCredentials ? 'include' : 'same-origin',\n\t\t\t// An abort controller could be added within a future PR\n\t\t} );\n\n\t\t// record states ( avoid data race )\n\t\tconst mimeType = this.mimeType;\n\t\tconst responseType = this.responseType;\n\n\t\t// start the fetch\n\t\tfetch( req )\n\t\t\t.then( response => {\n\n\t\t\t\tif ( response.status === 200 || response.status === 0 ) {\n\n\t\t\t\t\t// Some browsers return HTTP Status 0 when using non-http protocol\n\t\t\t\t\t// e.g. 'file://' or 'data://'. Handle as success.\n\n\t\t\t\t\tif ( response.status === 0 ) {\n\n\t\t\t\t\t\tconsole.warn( 'THREE.FileLoader: HTTP Status 0 received.' );\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// Workaround: Checking if response.body === undefined for Alipay browser #23548\n\n\t\t\t\t\tif ( typeof ReadableStream === 'undefined' || response.body === undefined || response.body.getReader === undefined ) {\n\n\t\t\t\t\t\treturn response;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tconst callbacks = loading[ url ];\n\t\t\t\t\tconst reader = response.body.getReader();\n\n\t\t\t\t\t// Nginx needs X-File-Size check\n\t\t\t\t\t// https://serverfault.com/questions/482875/why-does-nginx-remove-content-length-header-for-chunked-content\n\t\t\t\t\tconst contentLength = response.headers.get( 'X-File-Size' ) || response.headers.get( 'Content-Length' );\n\t\t\t\t\tconst total = contentLength ? parseInt( contentLength ) : 0;\n\t\t\t\t\tconst lengthComputable = total !== 0;\n\t\t\t\t\tlet loaded = 0;\n\n\t\t\t\t\t// periodically read data into the new stream tracking while download progress\n\t\t\t\t\tconst stream = new ReadableStream( {\n\t\t\t\t\t\tstart( controller ) {\n\n\t\t\t\t\t\t\treadData();\n\n\t\t\t\t\t\t\tfunction readData() {\n\n\t\t\t\t\t\t\t\treader.read().then( ( { done, value } ) => {\n\n\t\t\t\t\t\t\t\t\tif ( done ) {\n\n\t\t\t\t\t\t\t\t\t\tcontroller.close();\n\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\tloaded += value.byteLength;\n\n\t\t\t\t\t\t\t\t\t\tconst event = new ProgressEvent( 'progress', { lengthComputable, loaded, total } );\n\t\t\t\t\t\t\t\t\t\tfor ( let i = 0, il = callbacks.length; i < il; i ++ ) {\n\n\t\t\t\t\t\t\t\t\t\t\tconst callback = callbacks[ i ];\n\t\t\t\t\t\t\t\t\t\t\tif ( callback.onProgress ) callback.onProgress( event );\n\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tcontroller.enqueue( value );\n\t\t\t\t\t\t\t\t\t\treadData();\n\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t}, ( e ) => {\n\n\t\t\t\t\t\t\t\t\tcontroller.error( e );\n\n\t\t\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} );\n\n\t\t\t\t\treturn new Response( stream );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthrow new HttpError( `fetch for \"${response.url}\" responded with ${response.status}: ${response.statusText}`, response );\n\n\t\t\t\t}\n\n\t\t\t} )\n\t\t\t.then( response => {\n\n\t\t\t\tswitch ( responseType ) {\n\n\t\t\t\t\tcase 'arraybuffer':\n\n\t\t\t\t\t\treturn response.arrayBuffer();\n\n\t\t\t\t\tcase 'blob':\n\n\t\t\t\t\t\treturn response.blob();\n\n\t\t\t\t\tcase 'document':\n\n\t\t\t\t\t\treturn response.text()\n\t\t\t\t\t\t\t.then( text => {\n\n\t\t\t\t\t\t\t\tconst parser = new DOMParser();\n\t\t\t\t\t\t\t\treturn parser.parseFromString( text, mimeType );\n\n\t\t\t\t\t\t\t} );\n\n\t\t\t\t\tcase 'json':\n\n\t\t\t\t\t\treturn response.json();\n\n\t\t\t\t\tdefault:\n\n\t\t\t\t\t\tif ( mimeType === undefined ) {\n\n\t\t\t\t\t\t\treturn response.text();\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// sniff encoding\n\t\t\t\t\t\t\tconst re = /charset=\"?([^;\"\\s]*)\"?/i;\n\t\t\t\t\t\t\tconst exec = re.exec( mimeType );\n\t\t\t\t\t\t\tconst label = exec && exec[ 1 ] ? exec[ 1 ].toLowerCase() : undefined;\n\t\t\t\t\t\t\tconst decoder = new TextDecoder( label );\n\t\t\t\t\t\t\treturn response.arrayBuffer().then( ab => decoder.decode( ab ) );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} )\n\t\t\t.then( data => {\n\n\t\t\t\t// Add to cache only on HTTP success, so that we do not cache\n\t\t\t\t// error response bodies as proper responses to requests.\n\t\t\t\tCache.add( url, data );\n\n\t\t\t\tconst callbacks = loading[ url ];\n\t\t\t\tdelete loading[ url ];\n\n\t\t\t\tfor ( let i = 0, il = callbacks.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst callback = callbacks[ i ];\n\t\t\t\t\tif ( callback.onLoad ) callback.onLoad( data );\n\n\t\t\t\t}\n\n\t\t\t} )\n\t\t\t.catch( err => {\n\n\t\t\t\t// Abort errors and other errors are handled the same\n\n\t\t\t\tconst callbacks = loading[ url ];\n\n\t\t\t\tif ( callbacks === undefined ) {\n\n\t\t\t\t\t// When onLoad was called and url was deleted in `loading`\n\t\t\t\t\tthis.manager.itemError( url );\n\t\t\t\t\tthrow err;\n\n\t\t\t\t}\n\n\t\t\t\tdelete loading[ url ];\n\n\t\t\t\tfor ( let i = 0, il = callbacks.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst callback = callbacks[ i ];\n\t\t\t\t\tif ( callback.onError ) callback.onError( err );\n\n\t\t\t\t}\n\n\t\t\t\tthis.manager.itemError( url );\n\n\t\t\t} )\n\t\t\t.finally( () => {\n\n\t\t\t\tthis.manager.itemEnd( url );\n\n\t\t\t} );\n\n\t\tthis.manager.itemStart( url );\n\n\t}\n\n\tsetResponseType( value ) {\n\n\t\tthis.responseType = value;\n\t\treturn this;\n\n\t}\n\n\tsetMimeType( value ) {\n\n\t\tthis.mimeType = value;\n\t\treturn this;\n\n\t}\n\n}\n\nclass AnimationLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tconst loader = new FileLoader( this.manager );\n\t\tloader.setPath( this.path );\n\t\tloader.setRequestHeader( this.requestHeader );\n\t\tloader.setWithCredentials( this.withCredentials );\n\t\tloader.load( url, function ( text ) {\n\n\t\t\ttry {\n\n\t\t\t\tonLoad( scope.parse( JSON.parse( text ) ) );\n\n\t\t\t} catch ( e ) {\n\n\t\t\t\tif ( onError ) {\n\n\t\t\t\t\tonError( e );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.error( e );\n\n\t\t\t\t}\n\n\t\t\t\tscope.manager.itemError( url );\n\n\t\t\t}\n\n\t\t}, onProgress, onError );\n\n\t}\n\n\tparse( json ) {\n\n\t\tconst animations = [];\n\n\t\tfor ( let i = 0; i < json.length; i ++ ) {\n\n\t\t\tconst clip = AnimationClip.parse( json[ i ] );\n\n\t\t\tanimations.push( clip );\n\n\t\t}\n\n\t\treturn animations;\n\n\t}\n\n}\n\n/**\n * Abstract Base class to block based textures loader (dds, pvr, ...)\n *\n * Sub classes have to implement the parse() method which will be used in load().\n */\n\nclass CompressedTextureLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tconst images = [];\n\n\t\tconst texture = new CompressedTexture();\n\n\t\tconst loader = new FileLoader( this.manager );\n\t\tloader.setPath( this.path );\n\t\tloader.setResponseType( 'arraybuffer' );\n\t\tloader.setRequestHeader( this.requestHeader );\n\t\tloader.setWithCredentials( scope.withCredentials );\n\n\t\tlet loaded = 0;\n\n\t\tfunction loadTexture( i ) {\n\n\t\t\tloader.load( url[ i ], function ( buffer ) {\n\n\t\t\t\tconst texDatas = scope.parse( buffer, true );\n\n\t\t\t\timages[ i ] = {\n\t\t\t\t\twidth: texDatas.width,\n\t\t\t\t\theight: texDatas.height,\n\t\t\t\t\tformat: texDatas.format,\n\t\t\t\t\tmipmaps: texDatas.mipmaps\n\t\t\t\t};\n\n\t\t\t\tloaded += 1;\n\n\t\t\t\tif ( loaded === 6 ) {\n\n\t\t\t\t\tif ( texDatas.mipmapCount === 1 ) texture.minFilter = LinearFilter;\n\n\t\t\t\t\ttexture.image = images;\n\t\t\t\t\ttexture.format = texDatas.format;\n\t\t\t\t\ttexture.needsUpdate = true;\n\n\t\t\t\t\tif ( onLoad ) onLoad( texture );\n\n\t\t\t\t}\n\n\t\t\t}, onProgress, onError );\n\n\t\t}\n\n\t\tif ( Array.isArray( url ) ) {\n\n\t\t\tfor ( let i = 0, il = url.length; i < il; ++ i ) {\n\n\t\t\t\tloadTexture( i );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// compressed cubemap texture stored in a single DDS file\n\n\t\t\tloader.load( url, function ( buffer ) {\n\n\t\t\t\tconst texDatas = scope.parse( buffer, true );\n\n\t\t\t\tif ( texDatas.isCubemap ) {\n\n\t\t\t\t\tconst faces = texDatas.mipmaps.length / texDatas.mipmapCount;\n\n\t\t\t\t\tfor ( let f = 0; f < faces; f ++ ) {\n\n\t\t\t\t\t\timages[ f ] = { mipmaps: [] };\n\n\t\t\t\t\t\tfor ( let i = 0; i < texDatas.mipmapCount; i ++ ) {\n\n\t\t\t\t\t\t\timages[ f ].mipmaps.push( texDatas.mipmaps[ f * texDatas.mipmapCount + i ] );\n\t\t\t\t\t\t\timages[ f ].format = texDatas.format;\n\t\t\t\t\t\t\timages[ f ].width = texDatas.width;\n\t\t\t\t\t\t\timages[ f ].height = texDatas.height;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\ttexture.image = images;\n\n\t\t\t\t} else {\n\n\t\t\t\t\ttexture.image.width = texDatas.width;\n\t\t\t\t\ttexture.image.height = texDatas.height;\n\t\t\t\t\ttexture.mipmaps = texDatas.mipmaps;\n\n\t\t\t\t}\n\n\t\t\t\tif ( texDatas.mipmapCount === 1 ) {\n\n\t\t\t\t\ttexture.minFilter = LinearFilter;\n\n\t\t\t\t}\n\n\t\t\t\ttexture.format = texDatas.format;\n\t\t\t\ttexture.needsUpdate = true;\n\n\t\t\t\tif ( onLoad ) onLoad( texture );\n\n\t\t\t}, onProgress, onError );\n\n\t\t}\n\n\t\treturn texture;\n\n\t}\n\n}\n\nclass ImageLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tif ( this.path !== undefined ) url = this.path + url;\n\n\t\turl = this.manager.resolveURL( url );\n\n\t\tconst scope = this;\n\n\t\tconst cached = Cache.get( url );\n\n\t\tif ( cached !== undefined ) {\n\n\t\t\tscope.manager.itemStart( url );\n\n\t\t\tsetTimeout( function () {\n\n\t\t\t\tif ( onLoad ) onLoad( cached );\n\n\t\t\t\tscope.manager.itemEnd( url );\n\n\t\t\t}, 0 );\n\n\t\t\treturn cached;\n\n\t\t}\n\n\t\tconst image = createElementNS( 'img' );\n\n\t\tfunction onImageLoad() {\n\n\t\t\tremoveEventListeners();\n\n\t\t\tCache.add( url, this );\n\n\t\t\tif ( onLoad ) onLoad( this );\n\n\t\t\tscope.manager.itemEnd( url );\n\n\t\t}\n\n\t\tfunction onImageError( event ) {\n\n\t\t\tremoveEventListeners();\n\n\t\t\tif ( onError ) onError( event );\n\n\t\t\tscope.manager.itemError( url );\n\t\t\tscope.manager.itemEnd( url );\n\n\t\t}\n\n\t\tfunction removeEventListeners() {\n\n\t\t\timage.removeEventListener( 'load', onImageLoad, false );\n\t\t\timage.removeEventListener( 'error', onImageError, false );\n\n\t\t}\n\n\t\timage.addEventListener( 'load', onImageLoad, false );\n\t\timage.addEventListener( 'error', onImageError, false );\n\n\t\tif ( url.slice( 0, 5 ) !== 'data:' ) {\n\n\t\t\tif ( this.crossOrigin !== undefined ) image.crossOrigin = this.crossOrigin;\n\n\t\t}\n\n\t\tscope.manager.itemStart( url );\n\n\t\timage.src = url;\n\n\t\treturn image;\n\n\t}\n\n}\n\nclass CubeTextureLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( urls, onLoad, onProgress, onError ) {\n\n\t\tconst texture = new CubeTexture();\n\t\ttexture.colorSpace = SRGBColorSpace;\n\n\t\tconst loader = new ImageLoader( this.manager );\n\t\tloader.setCrossOrigin( this.crossOrigin );\n\t\tloader.setPath( this.path );\n\n\t\tlet loaded = 0;\n\n\t\tfunction loadTexture( i ) {\n\n\t\t\tloader.load( urls[ i ], function ( image ) {\n\n\t\t\t\ttexture.images[ i ] = image;\n\n\t\t\t\tloaded ++;\n\n\t\t\t\tif ( loaded === 6 ) {\n\n\t\t\t\t\ttexture.needsUpdate = true;\n\n\t\t\t\t\tif ( onLoad ) onLoad( texture );\n\n\t\t\t\t}\n\n\t\t\t}, undefined, onError );\n\n\t\t}\n\n\t\tfor ( let i = 0; i < urls.length; ++ i ) {\n\n\t\t\tloadTexture( i );\n\n\t\t}\n\n\t\treturn texture;\n\n\t}\n\n}\n\n/**\n * Abstract Base class to load generic binary textures formats (rgbe, hdr, ...)\n *\n * Sub classes have to implement the parse() method which will be used in load().\n */\n\nclass DataTextureLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tconst texture = new DataTexture();\n\n\t\tconst loader = new FileLoader( this.manager );\n\t\tloader.setResponseType( 'arraybuffer' );\n\t\tloader.setRequestHeader( this.requestHeader );\n\t\tloader.setPath( this.path );\n\t\tloader.setWithCredentials( scope.withCredentials );\n\t\tloader.load( url, function ( buffer ) {\n\n\t\t\tlet texData;\n\n\t\t\ttry {\n\n\t\t\t\ttexData = scope.parse( buffer );\n\n\t\t\t} catch ( error ) {\n\n\t\t\t\tif ( onError !== undefined ) {\n\n\t\t\t\t\tonError( error );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.error( error );\n\t\t\t\t\treturn;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( texData.image !== undefined ) {\n\n\t\t\t\ttexture.image = texData.image;\n\n\t\t\t} else if ( texData.data !== undefined ) {\n\n\t\t\t\ttexture.image.width = texData.width;\n\t\t\t\ttexture.image.height = texData.height;\n\t\t\t\ttexture.image.data = texData.data;\n\n\t\t\t}\n\n\t\t\ttexture.wrapS = texData.wrapS !== undefined ? texData.wrapS : ClampToEdgeWrapping;\n\t\t\ttexture.wrapT = texData.wrapT !== undefined ? texData.wrapT : ClampToEdgeWrapping;\n\n\t\t\ttexture.magFilter = texData.magFilter !== undefined ? texData.magFilter : LinearFilter;\n\t\t\ttexture.minFilter = texData.minFilter !== undefined ? texData.minFilter : LinearFilter;\n\n\t\t\ttexture.anisotropy = texData.anisotropy !== undefined ? texData.anisotropy : 1;\n\n\t\t\tif ( texData.colorSpace !== undefined ) {\n\n\t\t\t\ttexture.colorSpace = texData.colorSpace;\n\n\t\t\t}\n\n\t\t\tif ( texData.flipY !== undefined ) {\n\n\t\t\t\ttexture.flipY = texData.flipY;\n\n\t\t\t}\n\n\t\t\tif ( texData.format !== undefined ) {\n\n\t\t\t\ttexture.format = texData.format;\n\n\t\t\t}\n\n\t\t\tif ( texData.type !== undefined ) {\n\n\t\t\t\ttexture.type = texData.type;\n\n\t\t\t}\n\n\t\t\tif ( texData.mipmaps !== undefined ) {\n\n\t\t\t\ttexture.mipmaps = texData.mipmaps;\n\t\t\t\ttexture.minFilter = LinearMipmapLinearFilter; // presumably...\n\n\t\t\t}\n\n\t\t\tif ( texData.mipmapCount === 1 ) {\n\n\t\t\t\ttexture.minFilter = LinearFilter;\n\n\t\t\t}\n\n\t\t\tif ( texData.generateMipmaps !== undefined ) {\n\n\t\t\t\ttexture.generateMipmaps = texData.generateMipmaps;\n\n\t\t\t}\n\n\t\t\ttexture.needsUpdate = true;\n\n\t\t\tif ( onLoad ) onLoad( texture, texData );\n\n\t\t}, onProgress, onError );\n\n\n\t\treturn texture;\n\n\t}\n\n}\n\nclass TextureLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst texture = new Texture();\n\n\t\tconst loader = new ImageLoader( this.manager );\n\t\tloader.setCrossOrigin( this.crossOrigin );\n\t\tloader.setPath( this.path );\n\n\t\tloader.load( url, function ( image ) {\n\n\t\t\ttexture.image = image;\n\t\t\ttexture.needsUpdate = true;\n\n\t\t\tif ( onLoad !== undefined ) {\n\n\t\t\t\tonLoad( texture );\n\n\t\t\t}\n\n\t\t}, onProgress, onError );\n\n\t\treturn texture;\n\n\t}\n\n}\n\nclass Light extends Object3D {\n\n\tconstructor( color, intensity = 1 ) {\n\n\t\tsuper();\n\n\t\tthis.isLight = true;\n\n\t\tthis.type = 'Light';\n\n\t\tthis.color = new Color( color );\n\t\tthis.intensity = intensity;\n\n\t}\n\n\tdispose() {\n\n\t\t// Empty here in base class; some subclasses override.\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.color.copy( source.color );\n\t\tthis.intensity = source.intensity;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tdata.object.color = this.color.getHex();\n\t\tdata.object.intensity = this.intensity;\n\n\t\tif ( this.groundColor !== undefined ) data.object.groundColor = this.groundColor.getHex();\n\n\t\tif ( this.distance !== undefined ) data.object.distance = this.distance;\n\t\tif ( this.angle !== undefined ) data.object.angle = this.angle;\n\t\tif ( this.decay !== undefined ) data.object.decay = this.decay;\n\t\tif ( this.penumbra !== undefined ) data.object.penumbra = this.penumbra;\n\n\t\tif ( this.shadow !== undefined ) data.object.shadow = this.shadow.toJSON();\n\t\tif ( this.target !== undefined ) data.object.target = this.target.uuid;\n\n\t\treturn data;\n\n\t}\n\n}\n\nclass HemisphereLight extends Light {\n\n\tconstructor( skyColor, groundColor, intensity ) {\n\n\t\tsuper( skyColor, intensity );\n\n\t\tthis.isHemisphereLight = true;\n\n\t\tthis.type = 'HemisphereLight';\n\n\t\tthis.position.copy( Object3D.DEFAULT_UP );\n\t\tthis.updateMatrix();\n\n\t\tthis.groundColor = new Color( groundColor );\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.groundColor.copy( source.groundColor );\n\n\t\treturn this;\n\n\t}\n\n}\n\nconst _projScreenMatrix$1 = /*@__PURE__*/ new Matrix4();\nconst _lightPositionWorld$1 = /*@__PURE__*/ new Vector3();\nconst _lookTarget$1 = /*@__PURE__*/ new Vector3();\n\nclass LightShadow {\n\n\tconstructor( camera ) {\n\n\t\tthis.camera = camera;\n\n\t\tthis.intensity = 1;\n\n\t\tthis.bias = 0;\n\t\tthis.normalBias = 0;\n\t\tthis.radius = 1;\n\t\tthis.blurSamples = 8;\n\n\t\tthis.mapSize = new Vector2( 512, 512 );\n\n\t\tthis.map = null;\n\t\tthis.mapPass = null;\n\t\tthis.matrix = new Matrix4();\n\n\t\tthis.autoUpdate = true;\n\t\tthis.needsUpdate = false;\n\n\t\tthis._frustum = new Frustum();\n\t\tthis._frameExtents = new Vector2( 1, 1 );\n\n\t\tthis._viewportCount = 1;\n\n\t\tthis._viewports = [\n\n\t\t\tnew Vector4( 0, 0, 1, 1 )\n\n\t\t];\n\n\t}\n\n\tgetViewportCount() {\n\n\t\treturn this._viewportCount;\n\n\t}\n\n\tgetFrustum() {\n\n\t\treturn this._frustum;\n\n\t}\n\n\tupdateMatrices( light ) {\n\n\t\tconst shadowCamera = this.camera;\n\t\tconst shadowMatrix = this.matrix;\n\n\t\t_lightPositionWorld$1.setFromMatrixPosition( light.matrixWorld );\n\t\tshadowCamera.position.copy( _lightPositionWorld$1 );\n\n\t\t_lookTarget$1.setFromMatrixPosition( light.target.matrixWorld );\n\t\tshadowCamera.lookAt( _lookTarget$1 );\n\t\tshadowCamera.updateMatrixWorld();\n\n\t\t_projScreenMatrix$1.multiplyMatrices( shadowCamera.projectionMatrix, shadowCamera.matrixWorldInverse );\n\t\tthis._frustum.setFromProjectionMatrix( _projScreenMatrix$1 );\n\n\t\tshadowMatrix.set(\n\t\t\t0.5, 0.0, 0.0, 0.5,\n\t\t\t0.0, 0.5, 0.0, 0.5,\n\t\t\t0.0, 0.0, 0.5, 0.5,\n\t\t\t0.0, 0.0, 0.0, 1.0\n\t\t);\n\n\t\tshadowMatrix.multiply( _projScreenMatrix$1 );\n\n\t}\n\n\tgetViewport( viewportIndex ) {\n\n\t\treturn this._viewports[ viewportIndex ];\n\n\t}\n\n\tgetFrameExtents() {\n\n\t\treturn this._frameExtents;\n\n\t}\n\n\tdispose() {\n\n\t\tif ( this.map ) {\n\n\t\t\tthis.map.dispose();\n\n\t\t}\n\n\t\tif ( this.mapPass ) {\n\n\t\t\tthis.mapPass.dispose();\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.camera = source.camera.clone();\n\n\t\tthis.intensity = source.intensity;\n\n\t\tthis.bias = source.bias;\n\t\tthis.radius = source.radius;\n\n\t\tthis.mapSize.copy( source.mapSize );\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst object = {};\n\n\t\tif ( this.intensity !== 1 ) object.intensity = this.intensity;\n\t\tif ( this.bias !== 0 ) object.bias = this.bias;\n\t\tif ( this.normalBias !== 0 ) object.normalBias = this.normalBias;\n\t\tif ( this.radius !== 1 ) object.radius = this.radius;\n\t\tif ( this.mapSize.x !== 512 || this.mapSize.y !== 512 ) object.mapSize = this.mapSize.toArray();\n\n\t\tobject.camera = this.camera.toJSON( false ).object;\n\t\tdelete object.camera.matrix;\n\n\t\treturn object;\n\n\t}\n\n}\n\nclass SpotLightShadow extends LightShadow {\n\n\tconstructor() {\n\n\t\tsuper( new PerspectiveCamera( 50, 1, 0.5, 500 ) );\n\n\t\tthis.isSpotLightShadow = true;\n\n\t\tthis.focus = 1;\n\n\t}\n\n\tupdateMatrices( light ) {\n\n\t\tconst camera = this.camera;\n\n\t\tconst fov = RAD2DEG * 2 * light.angle * this.focus;\n\t\tconst aspect = this.mapSize.width / this.mapSize.height;\n\t\tconst far = light.distance || camera.far;\n\n\t\tif ( fov !== camera.fov || aspect !== camera.aspect || far !== camera.far ) {\n\n\t\t\tcamera.fov = fov;\n\t\t\tcamera.aspect = aspect;\n\t\t\tcamera.far = far;\n\t\t\tcamera.updateProjectionMatrix();\n\n\t\t}\n\n\t\tsuper.updateMatrices( light );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.focus = source.focus;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass SpotLight extends Light {\n\n\tconstructor( color, intensity, distance = 0, angle = Math.PI / 3, penumbra = 0, decay = 2 ) {\n\n\t\tsuper( color, intensity );\n\n\t\tthis.isSpotLight = true;\n\n\t\tthis.type = 'SpotLight';\n\n\t\tthis.position.copy( Object3D.DEFAULT_UP );\n\t\tthis.updateMatrix();\n\n\t\tthis.target = new Object3D();\n\n\t\tthis.distance = distance;\n\t\tthis.angle = angle;\n\t\tthis.penumbra = penumbra;\n\t\tthis.decay = decay;\n\n\t\tthis.map = null;\n\n\t\tthis.shadow = new SpotLightShadow();\n\n\t}\n\n\tget power() {\n\n\t\t// compute the light's luminous power (in lumens) from its intensity (in candela)\n\t\t// by convention for a spotlight, luminous power (lm) = π * luminous intensity (cd)\n\t\treturn this.intensity * Math.PI;\n\n\t}\n\n\tset power( power ) {\n\n\t\t// set the light's intensity (in candela) from the desired luminous power (in lumens)\n\t\tthis.intensity = power / Math.PI;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.shadow.dispose();\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.distance = source.distance;\n\t\tthis.angle = source.angle;\n\t\tthis.penumbra = source.penumbra;\n\t\tthis.decay = source.decay;\n\n\t\tthis.target = source.target.clone();\n\n\t\tthis.shadow = source.shadow.clone();\n\n\t\treturn this;\n\n\t}\n\n}\n\nconst _projScreenMatrix = /*@__PURE__*/ new Matrix4();\nconst _lightPositionWorld = /*@__PURE__*/ new Vector3();\nconst _lookTarget = /*@__PURE__*/ new Vector3();\n\nclass PointLightShadow extends LightShadow {\n\n\tconstructor() {\n\n\t\tsuper( new PerspectiveCamera( 90, 1, 0.5, 500 ) );\n\n\t\tthis.isPointLightShadow = true;\n\n\t\tthis._frameExtents = new Vector2( 4, 2 );\n\n\t\tthis._viewportCount = 6;\n\n\t\tthis._viewports = [\n\t\t\t// These viewports map a cube-map onto a 2D texture with the\n\t\t\t// following orientation:\n\t\t\t//\n\t\t\t// xzXZ\n\t\t\t// y Y\n\t\t\t//\n\t\t\t// X - Positive x direction\n\t\t\t// x - Negative x direction\n\t\t\t// Y - Positive y direction\n\t\t\t// y - Negative y direction\n\t\t\t// Z - Positive z direction\n\t\t\t// z - Negative z direction\n\n\t\t\t// positive X\n\t\t\tnew Vector4( 2, 1, 1, 1 ),\n\t\t\t// negative X\n\t\t\tnew Vector4( 0, 1, 1, 1 ),\n\t\t\t// positive Z\n\t\t\tnew Vector4( 3, 1, 1, 1 ),\n\t\t\t// negative Z\n\t\t\tnew Vector4( 1, 1, 1, 1 ),\n\t\t\t// positive Y\n\t\t\tnew Vector4( 3, 0, 1, 1 ),\n\t\t\t// negative Y\n\t\t\tnew Vector4( 1, 0, 1, 1 )\n\t\t];\n\n\t\tthis._cubeDirections = [\n\t\t\tnew Vector3( 1, 0, 0 ), new Vector3( - 1, 0, 0 ), new Vector3( 0, 0, 1 ),\n\t\t\tnew Vector3( 0, 0, - 1 ), new Vector3( 0, 1, 0 ), new Vector3( 0, - 1, 0 )\n\t\t];\n\n\t\tthis._cubeUps = [\n\t\t\tnew Vector3( 0, 1, 0 ), new Vector3( 0, 1, 0 ), new Vector3( 0, 1, 0 ),\n\t\t\tnew Vector3( 0, 1, 0 ), new Vector3( 0, 0, 1 ),\tnew Vector3( 0, 0, - 1 )\n\t\t];\n\n\t}\n\n\tupdateMatrices( light, viewportIndex = 0 ) {\n\n\t\tconst camera = this.camera;\n\t\tconst shadowMatrix = this.matrix;\n\n\t\tconst far = light.distance || camera.far;\n\n\t\tif ( far !== camera.far ) {\n\n\t\t\tcamera.far = far;\n\t\t\tcamera.updateProjectionMatrix();\n\n\t\t}\n\n\t\t_lightPositionWorld.setFromMatrixPosition( light.matrixWorld );\n\t\tcamera.position.copy( _lightPositionWorld );\n\n\t\t_lookTarget.copy( camera.position );\n\t\t_lookTarget.add( this._cubeDirections[ viewportIndex ] );\n\t\tcamera.up.copy( this._cubeUps[ viewportIndex ] );\n\t\tcamera.lookAt( _lookTarget );\n\t\tcamera.updateMatrixWorld();\n\n\t\tshadowMatrix.makeTranslation( - _lightPositionWorld.x, - _lightPositionWorld.y, - _lightPositionWorld.z );\n\n\t\t_projScreenMatrix.multiplyMatrices( camera.projectionMatrix, camera.matrixWorldInverse );\n\t\tthis._frustum.setFromProjectionMatrix( _projScreenMatrix );\n\n\t}\n\n}\n\nclass PointLight extends Light {\n\n\tconstructor( color, intensity, distance = 0, decay = 2 ) {\n\n\t\tsuper( color, intensity );\n\n\t\tthis.isPointLight = true;\n\n\t\tthis.type = 'PointLight';\n\n\t\tthis.distance = distance;\n\t\tthis.decay = decay;\n\n\t\tthis.shadow = new PointLightShadow();\n\n\t}\n\n\tget power() {\n\n\t\t// compute the light's luminous power (in lumens) from its intensity (in candela)\n\t\t// for an isotropic light source, luminous power (lm) = 4 π luminous intensity (cd)\n\t\treturn this.intensity * 4 * Math.PI;\n\n\t}\n\n\tset power( power ) {\n\n\t\t// set the light's intensity (in candela) from the desired luminous power (in lumens)\n\t\tthis.intensity = power / ( 4 * Math.PI );\n\n\t}\n\n\tdispose() {\n\n\t\tthis.shadow.dispose();\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.distance = source.distance;\n\t\tthis.decay = source.decay;\n\n\t\tthis.shadow = source.shadow.clone();\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass DirectionalLightShadow extends LightShadow {\n\n\tconstructor() {\n\n\t\tsuper( new OrthographicCamera( - 5, 5, 5, - 5, 0.5, 500 ) );\n\n\t\tthis.isDirectionalLightShadow = true;\n\n\t}\n\n}\n\nclass DirectionalLight extends Light {\n\n\tconstructor( color, intensity ) {\n\n\t\tsuper( color, intensity );\n\n\t\tthis.isDirectionalLight = true;\n\n\t\tthis.type = 'DirectionalLight';\n\n\t\tthis.position.copy( Object3D.DEFAULT_UP );\n\t\tthis.updateMatrix();\n\n\t\tthis.target = new Object3D();\n\n\t\tthis.shadow = new DirectionalLightShadow();\n\n\t}\n\n\tdispose() {\n\n\t\tthis.shadow.dispose();\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.target = source.target.clone();\n\t\tthis.shadow = source.shadow.clone();\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass AmbientLight extends Light {\n\n\tconstructor( color, intensity ) {\n\n\t\tsuper( color, intensity );\n\n\t\tthis.isAmbientLight = true;\n\n\t\tthis.type = 'AmbientLight';\n\n\t}\n\n}\n\nclass RectAreaLight extends Light {\n\n\tconstructor( color, intensity, width = 10, height = 10 ) {\n\n\t\tsuper( color, intensity );\n\n\t\tthis.isRectAreaLight = true;\n\n\t\tthis.type = 'RectAreaLight';\n\n\t\tthis.width = width;\n\t\tthis.height = height;\n\n\t}\n\n\tget power() {\n\n\t\t// compute the light's luminous power (in lumens) from its intensity (in nits)\n\t\treturn this.intensity * this.width * this.height * Math.PI;\n\n\t}\n\n\tset power( power ) {\n\n\t\t// set the light's intensity (in nits) from the desired luminous power (in lumens)\n\t\tthis.intensity = power / ( this.width * this.height * Math.PI );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.width = source.width;\n\t\tthis.height = source.height;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tdata.object.width = this.width;\n\t\tdata.object.height = this.height;\n\n\t\treturn data;\n\n\t}\n\n}\n\n/**\n * Primary reference:\n * https://graphics.stanford.edu/papers/envmap/envmap.pdf\n *\n * Secondary reference:\n * https://www.ppsloan.org/publications/StupidSH36.pdf\n */\n\n// 3-band SH defined by 9 coefficients\n\nclass SphericalHarmonics3 {\n\n\tconstructor() {\n\n\t\tthis.isSphericalHarmonics3 = true;\n\n\t\tthis.coefficients = [];\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.coefficients.push( new Vector3() );\n\n\t\t}\n\n\t}\n\n\tset( coefficients ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.coefficients[ i ].copy( coefficients[ i ] );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tzero() {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.coefficients[ i ].set( 0, 0, 0 );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// get the radiance in the direction of the normal\n\t// target is a Vector3\n\tgetAt( normal, target ) {\n\n\t\t// normal is assumed to be unit length\n\n\t\tconst x = normal.x, y = normal.y, z = normal.z;\n\n\t\tconst coeff = this.coefficients;\n\n\t\t// band 0\n\t\ttarget.copy( coeff[ 0 ] ).multiplyScalar( 0.282095 );\n\n\t\t// band 1\n\t\ttarget.addScaledVector( coeff[ 1 ], 0.488603 * y );\n\t\ttarget.addScaledVector( coeff[ 2 ], 0.488603 * z );\n\t\ttarget.addScaledVector( coeff[ 3 ], 0.488603 * x );\n\n\t\t// band 2\n\t\ttarget.addScaledVector( coeff[ 4 ], 1.092548 * ( x * y ) );\n\t\ttarget.addScaledVector( coeff[ 5 ], 1.092548 * ( y * z ) );\n\t\ttarget.addScaledVector( coeff[ 6 ], 0.315392 * ( 3.0 * z * z - 1.0 ) );\n\t\ttarget.addScaledVector( coeff[ 7 ], 1.092548 * ( x * z ) );\n\t\ttarget.addScaledVector( coeff[ 8 ], 0.546274 * ( x * x - y * y ) );\n\n\t\treturn target;\n\n\t}\n\n\t// get the irradiance (radiance convolved with cosine lobe) in the direction of the normal\n\t// target is a Vector3\n\t// https://graphics.stanford.edu/papers/envmap/envmap.pdf\n\tgetIrradianceAt( normal, target ) {\n\n\t\t// normal is assumed to be unit length\n\n\t\tconst x = normal.x, y = normal.y, z = normal.z;\n\n\t\tconst coeff = this.coefficients;\n\n\t\t// band 0\n\t\ttarget.copy( coeff[ 0 ] ).multiplyScalar( 0.886227 ); // π * 0.282095\n\n\t\t// band 1\n\t\ttarget.addScaledVector( coeff[ 1 ], 2.0 * 0.511664 * y ); // ( 2 * π / 3 ) * 0.488603\n\t\ttarget.addScaledVector( coeff[ 2 ], 2.0 * 0.511664 * z );\n\t\ttarget.addScaledVector( coeff[ 3 ], 2.0 * 0.511664 * x );\n\n\t\t// band 2\n\t\ttarget.addScaledVector( coeff[ 4 ], 2.0 * 0.429043 * x * y ); // ( π / 4 ) * 1.092548\n\t\ttarget.addScaledVector( coeff[ 5 ], 2.0 * 0.429043 * y * z );\n\t\ttarget.addScaledVector( coeff[ 6 ], 0.743125 * z * z - 0.247708 ); // ( π / 4 ) * 0.315392 * 3\n\t\ttarget.addScaledVector( coeff[ 7 ], 2.0 * 0.429043 * x * z );\n\t\ttarget.addScaledVector( coeff[ 8 ], 0.429043 * ( x * x - y * y ) ); // ( π / 4 ) * 0.546274\n\n\t\treturn target;\n\n\t}\n\n\tadd( sh ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.coefficients[ i ].add( sh.coefficients[ i ] );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\taddScaledSH( sh, s ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.coefficients[ i ].addScaledVector( sh.coefficients[ i ], s );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tscale( s ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.coefficients[ i ].multiplyScalar( s );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tlerp( sh, alpha ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.coefficients[ i ].lerp( sh.coefficients[ i ], alpha );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tequals( sh ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tif ( ! this.coefficients[ i ].equals( sh.coefficients[ i ] ) ) {\n\n\t\t\t\treturn false;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tcopy( sh ) {\n\n\t\treturn this.set( sh.coefficients );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tconst coefficients = this.coefficients;\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tcoefficients[ i ].fromArray( array, offset + ( i * 3 ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tconst coefficients = this.coefficients;\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tcoefficients[ i ].toArray( array, offset + ( i * 3 ) );\n\n\t\t}\n\n\t\treturn array;\n\n\t}\n\n\t// evaluate the basis functions\n\t// shBasis is an Array[ 9 ]\n\tstatic getBasisAt( normal, shBasis ) {\n\n\t\t// normal is assumed to be unit length\n\n\t\tconst x = normal.x, y = normal.y, z = normal.z;\n\n\t\t// band 0\n\t\tshBasis[ 0 ] = 0.282095;\n\n\t\t// band 1\n\t\tshBasis[ 1 ] = 0.488603 * y;\n\t\tshBasis[ 2 ] = 0.488603 * z;\n\t\tshBasis[ 3 ] = 0.488603 * x;\n\n\t\t// band 2\n\t\tshBasis[ 4 ] = 1.092548 * x * y;\n\t\tshBasis[ 5 ] = 1.092548 * y * z;\n\t\tshBasis[ 6 ] = 0.315392 * ( 3 * z * z - 1 );\n\t\tshBasis[ 7 ] = 1.092548 * x * z;\n\t\tshBasis[ 8 ] = 0.546274 * ( x * x - y * y );\n\n\t}\n\n}\n\nclass LightProbe extends Light {\n\n\tconstructor( sh = new SphericalHarmonics3(), intensity = 1 ) {\n\n\t\tsuper( undefined, intensity );\n\n\t\tthis.isLightProbe = true;\n\n\t\tthis.sh = sh;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.sh.copy( source.sh );\n\n\t\treturn this;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tthis.intensity = json.intensity; // TODO: Move this bit to Light.fromJSON();\n\t\tthis.sh.fromArray( json.sh );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tdata.object.sh = this.sh.toArray();\n\n\t\treturn data;\n\n\t}\n\n}\n\nclass MaterialLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\t\tthis.textures = {};\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tconst loader = new FileLoader( scope.manager );\n\t\tloader.setPath( scope.path );\n\t\tloader.setRequestHeader( scope.requestHeader );\n\t\tloader.setWithCredentials( scope.withCredentials );\n\t\tloader.load( url, function ( text ) {\n\n\t\t\ttry {\n\n\t\t\t\tonLoad( scope.parse( JSON.parse( text ) ) );\n\n\t\t\t} catch ( e ) {\n\n\t\t\t\tif ( onError ) {\n\n\t\t\t\t\tonError( e );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.error( e );\n\n\t\t\t\t}\n\n\t\t\t\tscope.manager.itemError( url );\n\n\t\t\t}\n\n\t\t}, onProgress, onError );\n\n\t}\n\n\tparse( json ) {\n\n\t\tconst textures = this.textures;\n\n\t\tfunction getTexture( name ) {\n\n\t\t\tif ( textures[ name ] === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.MaterialLoader: Undefined texture', name );\n\n\t\t\t}\n\n\t\t\treturn textures[ name ];\n\n\t\t}\n\n\t\tconst material = this.createMaterialFromType( json.type );\n\n\t\tif ( json.uuid !== undefined ) material.uuid = json.uuid;\n\t\tif ( json.name !== undefined ) material.name = json.name;\n\t\tif ( json.color !== undefined && material.color !== undefined ) material.color.setHex( json.color );\n\t\tif ( json.roughness !== undefined ) material.roughness = json.roughness;\n\t\tif ( json.metalness !== undefined ) material.metalness = json.metalness;\n\t\tif ( json.sheen !== undefined ) material.sheen = json.sheen;\n\t\tif ( json.sheenColor !== undefined ) material.sheenColor = new Color().setHex( json.sheenColor );\n\t\tif ( json.sheenRoughness !== undefined ) material.sheenRoughness = json.sheenRoughness;\n\t\tif ( json.emissive !== undefined && material.emissive !== undefined ) material.emissive.setHex( json.emissive );\n\t\tif ( json.specular !== undefined && material.specular !== undefined ) material.specular.setHex( json.specular );\n\t\tif ( json.specularIntensity !== undefined ) material.specularIntensity = json.specularIntensity;\n\t\tif ( json.specularColor !== undefined && material.specularColor !== undefined ) material.specularColor.setHex( json.specularColor );\n\t\tif ( json.shininess !== undefined ) material.shininess = json.shininess;\n\t\tif ( json.clearcoat !== undefined ) material.clearcoat = json.clearcoat;\n\t\tif ( json.clearcoatRoughness !== undefined ) material.clearcoatRoughness = json.clearcoatRoughness;\n\t\tif ( json.dispersion !== undefined ) material.dispersion = json.dispersion;\n\t\tif ( json.iridescence !== undefined ) material.iridescence = json.iridescence;\n\t\tif ( json.iridescenceIOR !== undefined ) material.iridescenceIOR = json.iridescenceIOR;\n\t\tif ( json.iridescenceThicknessRange !== undefined ) material.iridescenceThicknessRange = json.iridescenceThicknessRange;\n\t\tif ( json.transmission !== undefined ) material.transmission = json.transmission;\n\t\tif ( json.thickness !== undefined ) material.thickness = json.thickness;\n\t\tif ( json.attenuationDistance !== undefined ) material.attenuationDistance = json.attenuationDistance;\n\t\tif ( json.attenuationColor !== undefined && material.attenuationColor !== undefined ) material.attenuationColor.setHex( json.attenuationColor );\n\t\tif ( json.anisotropy !== undefined ) material.anisotropy = json.anisotropy;\n\t\tif ( json.anisotropyRotation !== undefined ) material.anisotropyRotation = json.anisotropyRotation;\n\t\tif ( json.fog !== undefined ) material.fog = json.fog;\n\t\tif ( json.flatShading !== undefined ) material.flatShading = json.flatShading;\n\t\tif ( json.blending !== undefined ) material.blending = json.blending;\n\t\tif ( json.combine !== undefined ) material.combine = json.combine;\n\t\tif ( json.side !== undefined ) material.side = json.side;\n\t\tif ( json.shadowSide !== undefined ) material.shadowSide = json.shadowSide;\n\t\tif ( json.opacity !== undefined ) material.opacity = json.opacity;\n\t\tif ( json.transparent !== undefined ) material.transparent = json.transparent;\n\t\tif ( json.alphaTest !== undefined ) material.alphaTest = json.alphaTest;\n\t\tif ( json.alphaHash !== undefined ) material.alphaHash = json.alphaHash;\n\t\tif ( json.depthFunc !== undefined ) material.depthFunc = json.depthFunc;\n\t\tif ( json.depthTest !== undefined ) material.depthTest = json.depthTest;\n\t\tif ( json.depthWrite !== undefined ) material.depthWrite = json.depthWrite;\n\t\tif ( json.colorWrite !== undefined ) material.colorWrite = json.colorWrite;\n\t\tif ( json.blendSrc !== undefined ) material.blendSrc = json.blendSrc;\n\t\tif ( json.blendDst !== undefined ) material.blendDst = json.blendDst;\n\t\tif ( json.blendEquation !== undefined ) material.blendEquation = json.blendEquation;\n\t\tif ( json.blendSrcAlpha !== undefined ) material.blendSrcAlpha = json.blendSrcAlpha;\n\t\tif ( json.blendDstAlpha !== undefined ) material.blendDstAlpha = json.blendDstAlpha;\n\t\tif ( json.blendEquationAlpha !== undefined ) material.blendEquationAlpha = json.blendEquationAlpha;\n\t\tif ( json.blendColor !== undefined && material.blendColor !== undefined ) material.blendColor.setHex( json.blendColor );\n\t\tif ( json.blendAlpha !== undefined ) material.blendAlpha = json.blendAlpha;\n\t\tif ( json.stencilWriteMask !== undefined ) material.stencilWriteMask = json.stencilWriteMask;\n\t\tif ( json.stencilFunc !== undefined ) material.stencilFunc = json.stencilFunc;\n\t\tif ( json.stencilRef !== undefined ) material.stencilRef = json.stencilRef;\n\t\tif ( json.stencilFuncMask !== undefined ) material.stencilFuncMask = json.stencilFuncMask;\n\t\tif ( json.stencilFail !== undefined ) material.stencilFail = json.stencilFail;\n\t\tif ( json.stencilZFail !== undefined ) material.stencilZFail = json.stencilZFail;\n\t\tif ( json.stencilZPass !== undefined ) material.stencilZPass = json.stencilZPass;\n\t\tif ( json.stencilWrite !== undefined ) material.stencilWrite = json.stencilWrite;\n\n\t\tif ( json.wireframe !== undefined ) material.wireframe = json.wireframe;\n\t\tif ( json.wireframeLinewidth !== undefined ) material.wireframeLinewidth = json.wireframeLinewidth;\n\t\tif ( json.wireframeLinecap !== undefined ) material.wireframeLinecap = json.wireframeLinecap;\n\t\tif ( json.wireframeLinejoin !== undefined ) material.wireframeLinejoin = json.wireframeLinejoin;\n\n\t\tif ( json.rotation !== undefined ) material.rotation = json.rotation;\n\n\t\tif ( json.linewidth !== undefined ) material.linewidth = json.linewidth;\n\t\tif ( json.dashSize !== undefined ) material.dashSize = json.dashSize;\n\t\tif ( json.gapSize !== undefined ) material.gapSize = json.gapSize;\n\t\tif ( json.scale !== undefined ) material.scale = json.scale;\n\n\t\tif ( json.polygonOffset !== undefined ) material.polygonOffset = json.polygonOffset;\n\t\tif ( json.polygonOffsetFactor !== undefined ) material.polygonOffsetFactor = json.polygonOffsetFactor;\n\t\tif ( json.polygonOffsetUnits !== undefined ) material.polygonOffsetUnits = json.polygonOffsetUnits;\n\n\t\tif ( json.dithering !== undefined ) material.dithering = json.dithering;\n\n\t\tif ( json.alphaToCoverage !== undefined ) material.alphaToCoverage = json.alphaToCoverage;\n\t\tif ( json.premultipliedAlpha !== undefined ) material.premultipliedAlpha = json.premultipliedAlpha;\n\t\tif ( json.forceSinglePass !== undefined ) material.forceSinglePass = json.forceSinglePass;\n\n\t\tif ( json.visible !== undefined ) material.visible = json.visible;\n\n\t\tif ( json.toneMapped !== undefined ) material.toneMapped = json.toneMapped;\n\n\t\tif ( json.userData !== undefined ) material.userData = json.userData;\n\n\t\tif ( json.vertexColors !== undefined ) {\n\n\t\t\tif ( typeof json.vertexColors === 'number' ) {\n\n\t\t\t\tmaterial.vertexColors = ( json.vertexColors > 0 ) ? true : false;\n\n\t\t\t} else {\n\n\t\t\t\tmaterial.vertexColors = json.vertexColors;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// Shader Material\n\n\t\tif ( json.uniforms !== undefined ) {\n\n\t\t\tfor ( const name in json.uniforms ) {\n\n\t\t\t\tconst uniform = json.uniforms[ name ];\n\n\t\t\t\tmaterial.uniforms[ name ] = {};\n\n\t\t\t\tswitch ( uniform.type ) {\n\n\t\t\t\t\tcase 't':\n\t\t\t\t\t\tmaterial.uniforms[ name ].value = getTexture( uniform.value );\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'c':\n\t\t\t\t\t\tmaterial.uniforms[ name ].value = new Color().setHex( uniform.value );\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'v2':\n\t\t\t\t\t\tmaterial.uniforms[ name ].value = new Vector2().fromArray( uniform.value );\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'v3':\n\t\t\t\t\t\tmaterial.uniforms[ name ].value = new Vector3().fromArray( uniform.value );\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'v4':\n\t\t\t\t\t\tmaterial.uniforms[ name ].value = new Vector4().fromArray( uniform.value );\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'm3':\n\t\t\t\t\t\tmaterial.uniforms[ name ].value = new Matrix3().fromArray( uniform.value );\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'm4':\n\t\t\t\t\t\tmaterial.uniforms[ name ].value = new Matrix4().fromArray( uniform.value );\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tmaterial.uniforms[ name ].value = uniform.value;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( json.defines !== undefined ) material.defines = json.defines;\n\t\tif ( json.vertexShader !== undefined ) material.vertexShader = json.vertexShader;\n\t\tif ( json.fragmentShader !== undefined ) material.fragmentShader = json.fragmentShader;\n\t\tif ( json.glslVersion !== undefined ) material.glslVersion = json.glslVersion;\n\n\t\tif ( json.extensions !== undefined ) {\n\n\t\t\tfor ( const key in json.extensions ) {\n\n\t\t\t\tmaterial.extensions[ key ] = json.extensions[ key ];\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( json.lights !== undefined ) material.lights = json.lights;\n\t\tif ( json.clipping !== undefined ) material.clipping = json.clipping;\n\n\t\t// for PointsMaterial\n\n\t\tif ( json.size !== undefined ) material.size = json.size;\n\t\tif ( json.sizeAttenuation !== undefined ) material.sizeAttenuation = json.sizeAttenuation;\n\n\t\t// maps\n\n\t\tif ( json.map !== undefined ) material.map = getTexture( json.map );\n\t\tif ( json.matcap !== undefined ) material.matcap = getTexture( json.matcap );\n\n\t\tif ( json.alphaMap !== undefined ) material.alphaMap = getTexture( json.alphaMap );\n\n\t\tif ( json.bumpMap !== undefined ) material.bumpMap = getTexture( json.bumpMap );\n\t\tif ( json.bumpScale !== undefined ) material.bumpScale = json.bumpScale;\n\n\t\tif ( json.normalMap !== undefined ) material.normalMap = getTexture( json.normalMap );\n\t\tif ( json.normalMapType !== undefined ) material.normalMapType = json.normalMapType;\n\t\tif ( json.normalScale !== undefined ) {\n\n\t\t\tlet normalScale = json.normalScale;\n\n\t\t\tif ( Array.isArray( normalScale ) === false ) {\n\n\t\t\t\t// Blender exporter used to export a scalar. See #7459\n\n\t\t\t\tnormalScale = [ normalScale, normalScale ];\n\n\t\t\t}\n\n\t\t\tmaterial.normalScale = new Vector2().fromArray( normalScale );\n\n\t\t}\n\n\t\tif ( json.displacementMap !== undefined ) material.displacementMap = getTexture( json.displacementMap );\n\t\tif ( json.displacementScale !== undefined ) material.displacementScale = json.displacementScale;\n\t\tif ( json.displacementBias !== undefined ) material.displacementBias = json.displacementBias;\n\n\t\tif ( json.roughnessMap !== undefined ) material.roughnessMap = getTexture( json.roughnessMap );\n\t\tif ( json.metalnessMap !== undefined ) material.metalnessMap = getTexture( json.metalnessMap );\n\n\t\tif ( json.emissiveMap !== undefined ) material.emissiveMap = getTexture( json.emissiveMap );\n\t\tif ( json.emissiveIntensity !== undefined ) material.emissiveIntensity = json.emissiveIntensity;\n\n\t\tif ( json.specularMap !== undefined ) material.specularMap = getTexture( json.specularMap );\n\t\tif ( json.specularIntensityMap !== undefined ) material.specularIntensityMap = getTexture( json.specularIntensityMap );\n\t\tif ( json.specularColorMap !== undefined ) material.specularColorMap = getTexture( json.specularColorMap );\n\n\t\tif ( json.envMap !== undefined ) material.envMap = getTexture( json.envMap );\n\t\tif ( json.envMapRotation !== undefined ) material.envMapRotation.fromArray( json.envMapRotation );\n\t\tif ( json.envMapIntensity !== undefined ) material.envMapIntensity = json.envMapIntensity;\n\n\t\tif ( json.reflectivity !== undefined ) material.reflectivity = json.reflectivity;\n\t\tif ( json.refractionRatio !== undefined ) material.refractionRatio = json.refractionRatio;\n\n\t\tif ( json.lightMap !== undefined ) material.lightMap = getTexture( json.lightMap );\n\t\tif ( json.lightMapIntensity !== undefined ) material.lightMapIntensity = json.lightMapIntensity;\n\n\t\tif ( json.aoMap !== undefined ) material.aoMap = getTexture( json.aoMap );\n\t\tif ( json.aoMapIntensity !== undefined ) material.aoMapIntensity = json.aoMapIntensity;\n\n\t\tif ( json.gradientMap !== undefined ) material.gradientMap = getTexture( json.gradientMap );\n\n\t\tif ( json.clearcoatMap !== undefined ) material.clearcoatMap = getTexture( json.clearcoatMap );\n\t\tif ( json.clearcoatRoughnessMap !== undefined ) material.clearcoatRoughnessMap = getTexture( json.clearcoatRoughnessMap );\n\t\tif ( json.clearcoatNormalMap !== undefined ) material.clearcoatNormalMap = getTexture( json.clearcoatNormalMap );\n\t\tif ( json.clearcoatNormalScale !== undefined ) material.clearcoatNormalScale = new Vector2().fromArray( json.clearcoatNormalScale );\n\n\t\tif ( json.iridescenceMap !== undefined ) material.iridescenceMap = getTexture( json.iridescenceMap );\n\t\tif ( json.iridescenceThicknessMap !== undefined ) material.iridescenceThicknessMap = getTexture( json.iridescenceThicknessMap );\n\n\t\tif ( json.transmissionMap !== undefined ) material.transmissionMap = getTexture( json.transmissionMap );\n\t\tif ( json.thicknessMap !== undefined ) material.thicknessMap = getTexture( json.thicknessMap );\n\n\t\tif ( json.anisotropyMap !== undefined ) material.anisotropyMap = getTexture( json.anisotropyMap );\n\n\t\tif ( json.sheenColorMap !== undefined ) material.sheenColorMap = getTexture( json.sheenColorMap );\n\t\tif ( json.sheenRoughnessMap !== undefined ) material.sheenRoughnessMap = getTexture( json.sheenRoughnessMap );\n\n\t\treturn material;\n\n\t}\n\n\tsetTextures( value ) {\n\n\t\tthis.textures = value;\n\t\treturn this;\n\n\t}\n\n\tcreateMaterialFromType( type ) {\n\n\t\treturn MaterialLoader.createMaterialFromType( type );\n\n\t}\n\n\tstatic createMaterialFromType( type ) {\n\n\t\tconst materialLib = {\n\t\t\tShadowMaterial,\n\t\t\tSpriteMaterial,\n\t\t\tRawShaderMaterial,\n\t\t\tShaderMaterial,\n\t\t\tPointsMaterial,\n\t\t\tMeshPhysicalMaterial,\n\t\t\tMeshStandardMaterial,\n\t\t\tMeshPhongMaterial,\n\t\t\tMeshToonMaterial,\n\t\t\tMeshNormalMaterial,\n\t\t\tMeshLambertMaterial,\n\t\t\tMeshDepthMaterial,\n\t\t\tMeshDistanceMaterial,\n\t\t\tMeshBasicMaterial,\n\t\t\tMeshMatcapMaterial,\n\t\t\tLineDashedMaterial,\n\t\t\tLineBasicMaterial,\n\t\t\tMaterial\n\t\t};\n\n\t\treturn new materialLib[ type ]();\n\n\t}\n\n}\n\nclass LoaderUtils {\n\n\tstatic decodeText( array ) { // @deprecated, r165\n\n\t\tconsole.warn( 'THREE.LoaderUtils: decodeText() has been deprecated with r165 and will be removed with r175. Use TextDecoder instead.' );\n\n\t\tif ( typeof TextDecoder !== 'undefined' ) {\n\n\t\t\treturn new TextDecoder().decode( array );\n\n\t\t}\n\n\t\t// Avoid the String.fromCharCode.apply(null, array) shortcut, which\n\t\t// throws a \"maximum call stack size exceeded\" error for large arrays.\n\n\t\tlet s = '';\n\n\t\tfor ( let i = 0, il = array.length; i < il; i ++ ) {\n\n\t\t\t// Implicitly assumes little-endian.\n\t\t\ts += String.fromCharCode( array[ i ] );\n\n\t\t}\n\n\t\ttry {\n\n\t\t\t// merges multi-byte utf-8 characters.\n\n\t\t\treturn decodeURIComponent( escape( s ) );\n\n\t\t} catch ( e ) { // see #16358\n\n\t\t\treturn s;\n\n\t\t}\n\n\t}\n\n\tstatic extractUrlBase( url ) {\n\n\t\tconst index = url.lastIndexOf( '/' );\n\n\t\tif ( index === - 1 ) return './';\n\n\t\treturn url.slice( 0, index + 1 );\n\n\t}\n\n\tstatic resolveURL( url, path ) {\n\n\t\t// Invalid URL\n\t\tif ( typeof url !== 'string' || url === '' ) return '';\n\n\t\t// Host Relative URL\n\t\tif ( /^https?:\\/\\//i.test( path ) && /^\\//.test( url ) ) {\n\n\t\t\tpath = path.replace( /(^https?:\\/\\/[^\\/]+).*/i, '$1' );\n\n\t\t}\n\n\t\t// Absolute URL http://,https://,//\n\t\tif ( /^(https?:)?\\/\\//i.test( url ) ) return url;\n\n\t\t// Data URI\n\t\tif ( /^data:.*,.*$/i.test( url ) ) return url;\n\n\t\t// Blob URL\n\t\tif ( /^blob:.*$/i.test( url ) ) return url;\n\n\t\t// Relative URL\n\t\treturn path + url;\n\n\t}\n\n}\n\nclass InstancedBufferGeometry extends BufferGeometry {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isInstancedBufferGeometry = true;\n\n\t\tthis.type = 'InstancedBufferGeometry';\n\t\tthis.instanceCount = Infinity;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.instanceCount = source.instanceCount;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.instanceCount = this.instanceCount;\n\n\t\tdata.isInstancedBufferGeometry = true;\n\n\t\treturn data;\n\n\t}\n\n}\n\nclass BufferGeometryLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tconst loader = new FileLoader( scope.manager );\n\t\tloader.setPath( scope.path );\n\t\tloader.setRequestHeader( scope.requestHeader );\n\t\tloader.setWithCredentials( scope.withCredentials );\n\t\tloader.load( url, function ( text ) {\n\n\t\t\ttry {\n\n\t\t\t\tonLoad( scope.parse( JSON.parse( text ) ) );\n\n\t\t\t} catch ( e ) {\n\n\t\t\t\tif ( onError ) {\n\n\t\t\t\t\tonError( e );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.error( e );\n\n\t\t\t\t}\n\n\t\t\t\tscope.manager.itemError( url );\n\n\t\t\t}\n\n\t\t}, onProgress, onError );\n\n\t}\n\n\tparse( json ) {\n\n\t\tconst interleavedBufferMap = {};\n\t\tconst arrayBufferMap = {};\n\n\t\tfunction getInterleavedBuffer( json, uuid ) {\n\n\t\t\tif ( interleavedBufferMap[ uuid ] !== undefined ) return interleavedBufferMap[ uuid ];\n\n\t\t\tconst interleavedBuffers = json.interleavedBuffers;\n\t\t\tconst interleavedBuffer = interleavedBuffers[ uuid ];\n\n\t\t\tconst buffer = getArrayBuffer( json, interleavedBuffer.buffer );\n\n\t\t\tconst array = getTypedArray( interleavedBuffer.type, buffer );\n\t\t\tconst ib = new InterleavedBuffer( array, interleavedBuffer.stride );\n\t\t\tib.uuid = interleavedBuffer.uuid;\n\n\t\t\tinterleavedBufferMap[ uuid ] = ib;\n\n\t\t\treturn ib;\n\n\t\t}\n\n\t\tfunction getArrayBuffer( json, uuid ) {\n\n\t\t\tif ( arrayBufferMap[ uuid ] !== undefined ) return arrayBufferMap[ uuid ];\n\n\t\t\tconst arrayBuffers = json.arrayBuffers;\n\t\t\tconst arrayBuffer = arrayBuffers[ uuid ];\n\n\t\t\tconst ab = new Uint32Array( arrayBuffer ).buffer;\n\n\t\t\tarrayBufferMap[ uuid ] = ab;\n\n\t\t\treturn ab;\n\n\t\t}\n\n\t\tconst geometry = json.isInstancedBufferGeometry ? new InstancedBufferGeometry() : new BufferGeometry();\n\n\t\tconst index = json.data.index;\n\n\t\tif ( index !== undefined ) {\n\n\t\t\tconst typedArray = getTypedArray( index.type, index.array );\n\t\t\tgeometry.setIndex( new BufferAttribute( typedArray, 1 ) );\n\n\t\t}\n\n\t\tconst attributes = json.data.attributes;\n\n\t\tfor ( const key in attributes ) {\n\n\t\t\tconst attribute = attributes[ key ];\n\t\t\tlet bufferAttribute;\n\n\t\t\tif ( attribute.isInterleavedBufferAttribute ) {\n\n\t\t\t\tconst interleavedBuffer = getInterleavedBuffer( json.data, attribute.data );\n\t\t\t\tbufferAttribute = new InterleavedBufferAttribute( interleavedBuffer, attribute.itemSize, attribute.offset, attribute.normalized );\n\n\t\t\t} else {\n\n\t\t\t\tconst typedArray = getTypedArray( attribute.type, attribute.array );\n\t\t\t\tconst bufferAttributeConstr = attribute.isInstancedBufferAttribute ? InstancedBufferAttribute : BufferAttribute;\n\t\t\t\tbufferAttribute = new bufferAttributeConstr( typedArray, attribute.itemSize, attribute.normalized );\n\n\t\t\t}\n\n\t\t\tif ( attribute.name !== undefined ) bufferAttribute.name = attribute.name;\n\t\t\tif ( attribute.usage !== undefined ) bufferAttribute.setUsage( attribute.usage );\n\n\t\t\tgeometry.setAttribute( key, bufferAttribute );\n\n\t\t}\n\n\t\tconst morphAttributes = json.data.morphAttributes;\n\n\t\tif ( morphAttributes ) {\n\n\t\t\tfor ( const key in morphAttributes ) {\n\n\t\t\t\tconst attributeArray = morphAttributes[ key ];\n\n\t\t\t\tconst array = [];\n\n\t\t\t\tfor ( let i = 0, il = attributeArray.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst attribute = attributeArray[ i ];\n\t\t\t\t\tlet bufferAttribute;\n\n\t\t\t\t\tif ( attribute.isInterleavedBufferAttribute ) {\n\n\t\t\t\t\t\tconst interleavedBuffer = getInterleavedBuffer( json.data, attribute.data );\n\t\t\t\t\t\tbufferAttribute = new InterleavedBufferAttribute( interleavedBuffer, attribute.itemSize, attribute.offset, attribute.normalized );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tconst typedArray = getTypedArray( attribute.type, attribute.array );\n\t\t\t\t\t\tbufferAttribute = new BufferAttribute( typedArray, attribute.itemSize, attribute.normalized );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( attribute.name !== undefined ) bufferAttribute.name = attribute.name;\n\t\t\t\t\tarray.push( bufferAttribute );\n\n\t\t\t\t}\n\n\t\t\t\tgeometry.morphAttributes[ key ] = array;\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst morphTargetsRelative = json.data.morphTargetsRelative;\n\n\t\tif ( morphTargetsRelative ) {\n\n\t\t\tgeometry.morphTargetsRelative = true;\n\n\t\t}\n\n\t\tconst groups = json.data.groups || json.data.drawcalls || json.data.offsets;\n\n\t\tif ( groups !== undefined ) {\n\n\t\t\tfor ( let i = 0, n = groups.length; i !== n; ++ i ) {\n\n\t\t\t\tconst group = groups[ i ];\n\n\t\t\t\tgeometry.addGroup( group.start, group.count, group.materialIndex );\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst boundingSphere = json.data.boundingSphere;\n\n\t\tif ( boundingSphere !== undefined ) {\n\n\t\t\tconst center = new Vector3();\n\n\t\t\tif ( boundingSphere.center !== undefined ) {\n\n\t\t\t\tcenter.fromArray( boundingSphere.center );\n\n\t\t\t}\n\n\t\t\tgeometry.boundingSphere = new Sphere( center, boundingSphere.radius );\n\n\t\t}\n\n\t\tif ( json.name ) geometry.name = json.name;\n\t\tif ( json.userData ) geometry.userData = json.userData;\n\n\t\treturn geometry;\n\n\t}\n\n}\n\nclass ObjectLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tconst path = ( this.path === '' ) ? LoaderUtils.extractUrlBase( url ) : this.path;\n\t\tthis.resourcePath = this.resourcePath || path;\n\n\t\tconst loader = new FileLoader( this.manager );\n\t\tloader.setPath( this.path );\n\t\tloader.setRequestHeader( this.requestHeader );\n\t\tloader.setWithCredentials( this.withCredentials );\n\t\tloader.load( url, function ( text ) {\n\n\t\t\tlet json = null;\n\n\t\t\ttry {\n\n\t\t\t\tjson = JSON.parse( text );\n\n\t\t\t} catch ( error ) {\n\n\t\t\t\tif ( onError !== undefined ) onError( error );\n\n\t\t\t\tconsole.error( 'THREE:ObjectLoader: Can\\'t parse ' + url + '.', error.message );\n\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\tconst metadata = json.metadata;\n\n\t\t\tif ( metadata === undefined || metadata.type === undefined || metadata.type.toLowerCase() === 'geometry' ) {\n\n\t\t\t\tif ( onError !== undefined ) onError( new Error( 'THREE.ObjectLoader: Can\\'t load ' + url ) );\n\n\t\t\t\tconsole.error( 'THREE.ObjectLoader: Can\\'t load ' + url );\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\tscope.parse( json, onLoad );\n\n\t\t}, onProgress, onError );\n\n\t}\n\n\tasync loadAsync( url, onProgress ) {\n\n\t\tconst scope = this;\n\n\t\tconst path = ( this.path === '' ) ? LoaderUtils.extractUrlBase( url ) : this.path;\n\t\tthis.resourcePath = this.resourcePath || path;\n\n\t\tconst loader = new FileLoader( this.manager );\n\t\tloader.setPath( this.path );\n\t\tloader.setRequestHeader( this.requestHeader );\n\t\tloader.setWithCredentials( this.withCredentials );\n\n\t\tconst text = await loader.loadAsync( url, onProgress );\n\n\t\tconst json = JSON.parse( text );\n\n\t\tconst metadata = json.metadata;\n\n\t\tif ( metadata === undefined || metadata.type === undefined || metadata.type.toLowerCase() === 'geometry' ) {\n\n\t\t\tthrow new Error( 'THREE.ObjectLoader: Can\\'t load ' + url );\n\n\t\t}\n\n\t\treturn await scope.parseAsync( json );\n\n\t}\n\n\tparse( json, onLoad ) {\n\n\t\tconst animations = this.parseAnimations( json.animations );\n\t\tconst shapes = this.parseShapes( json.shapes );\n\t\tconst geometries = this.parseGeometries( json.geometries, shapes );\n\n\t\tconst images = this.parseImages( json.images, function () {\n\n\t\t\tif ( onLoad !== undefined ) onLoad( object );\n\n\t\t} );\n\n\t\tconst textures = this.parseTextures( json.textures, images );\n\t\tconst materials = this.parseMaterials( json.materials, textures );\n\n\t\tconst object = this.parseObject( json.object, geometries, materials, textures, animations );\n\t\tconst skeletons = this.parseSkeletons( json.skeletons, object );\n\n\t\tthis.bindSkeletons( object, skeletons );\n\t\tthis.bindLightTargets( object );\n\n\t\t//\n\n\t\tif ( onLoad !== undefined ) {\n\n\t\t\tlet hasImages = false;\n\n\t\t\tfor ( const uuid in images ) {\n\n\t\t\t\tif ( images[ uuid ].data instanceof HTMLImageElement ) {\n\n\t\t\t\t\thasImages = true;\n\t\t\t\t\tbreak;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( hasImages === false ) onLoad( object );\n\n\t\t}\n\n\t\treturn object;\n\n\t}\n\n\tasync parseAsync( json ) {\n\n\t\tconst animations = this.parseAnimations( json.animations );\n\t\tconst shapes = this.parseShapes( json.shapes );\n\t\tconst geometries = this.parseGeometries( json.geometries, shapes );\n\n\t\tconst images = await this.parseImagesAsync( json.images );\n\n\t\tconst textures = this.parseTextures( json.textures, images );\n\t\tconst materials = this.parseMaterials( json.materials, textures );\n\n\t\tconst object = this.parseObject( json.object, geometries, materials, textures, animations );\n\t\tconst skeletons = this.parseSkeletons( json.skeletons, object );\n\n\t\tthis.bindSkeletons( object, skeletons );\n\t\tthis.bindLightTargets( object );\n\n\t\treturn object;\n\n\t}\n\n\tparseShapes( json ) {\n\n\t\tconst shapes = {};\n\n\t\tif ( json !== undefined ) {\n\n\t\t\tfor ( let i = 0, l = json.length; i < l; i ++ ) {\n\n\t\t\t\tconst shape = new Shape().fromJSON( json[ i ] );\n\n\t\t\t\tshapes[ shape.uuid ] = shape;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn shapes;\n\n\t}\n\n\tparseSkeletons( json, object ) {\n\n\t\tconst skeletons = {};\n\t\tconst bones = {};\n\n\t\t// generate bone lookup table\n\n\t\tobject.traverse( function ( child ) {\n\n\t\t\tif ( child.isBone ) bones[ child.uuid ] = child;\n\n\t\t} );\n\n\t\t// create skeletons\n\n\t\tif ( json !== undefined ) {\n\n\t\t\tfor ( let i = 0, l = json.length; i < l; i ++ ) {\n\n\t\t\t\tconst skeleton = new Skeleton().fromJSON( json[ i ], bones );\n\n\t\t\t\tskeletons[ skeleton.uuid ] = skeleton;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn skeletons;\n\n\t}\n\n\tparseGeometries( json, shapes ) {\n\n\t\tconst geometries = {};\n\n\t\tif ( json !== undefined ) {\n\n\t\t\tconst bufferGeometryLoader = new BufferGeometryLoader();\n\n\t\t\tfor ( let i = 0, l = json.length; i < l; i ++ ) {\n\n\t\t\t\tlet geometry;\n\t\t\t\tconst data = json[ i ];\n\n\t\t\t\tswitch ( data.type ) {\n\n\t\t\t\t\tcase 'BufferGeometry':\n\t\t\t\t\tcase 'InstancedBufferGeometry':\n\n\t\t\t\t\t\tgeometry = bufferGeometryLoader.parse( data );\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tdefault:\n\n\t\t\t\t\t\tif ( data.type in Geometries ) {\n\n\t\t\t\t\t\t\tgeometry = Geometries[ data.type ].fromJSON( data, shapes );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tconsole.warn( `THREE.ObjectLoader: Unsupported geometry type \"${ data.type }\"` );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tgeometry.uuid = data.uuid;\n\n\t\t\t\tif ( data.name !== undefined ) geometry.name = data.name;\n\t\t\t\tif ( data.userData !== undefined ) geometry.userData = data.userData;\n\n\t\t\t\tgeometries[ data.uuid ] = geometry;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn geometries;\n\n\t}\n\n\tparseMaterials( json, textures ) {\n\n\t\tconst cache = {}; // MultiMaterial\n\t\tconst materials = {};\n\n\t\tif ( json !== undefined ) {\n\n\t\t\tconst loader = new MaterialLoader();\n\t\t\tloader.setTextures( textures );\n\n\t\t\tfor ( let i = 0, l = json.length; i < l; i ++ ) {\n\n\t\t\t\tconst data = json[ i ];\n\n\t\t\t\tif ( cache[ data.uuid ] === undefined ) {\n\n\t\t\t\t\tcache[ data.uuid ] = loader.parse( data );\n\n\t\t\t\t}\n\n\t\t\t\tmaterials[ data.uuid ] = cache[ data.uuid ];\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn materials;\n\n\t}\n\n\tparseAnimations( json ) {\n\n\t\tconst animations = {};\n\n\t\tif ( json !== undefined ) {\n\n\t\t\tfor ( let i = 0; i < json.length; i ++ ) {\n\n\t\t\t\tconst data = json[ i ];\n\n\t\t\t\tconst clip = AnimationClip.parse( data );\n\n\t\t\t\tanimations[ clip.uuid ] = clip;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn animations;\n\n\t}\n\n\tparseImages( json, onLoad ) {\n\n\t\tconst scope = this;\n\t\tconst images = {};\n\n\t\tlet loader;\n\n\t\tfunction loadImage( url ) {\n\n\t\t\tscope.manager.itemStart( url );\n\n\t\t\treturn loader.load( url, function () {\n\n\t\t\t\tscope.manager.itemEnd( url );\n\n\t\t\t}, undefined, function () {\n\n\t\t\t\tscope.manager.itemError( url );\n\t\t\t\tscope.manager.itemEnd( url );\n\n\t\t\t} );\n\n\t\t}\n\n\t\tfunction deserializeImage( image ) {\n\n\t\t\tif ( typeof image === 'string' ) {\n\n\t\t\t\tconst url = image;\n\n\t\t\t\tconst path = /^(\\/\\/)|([a-z]+:(\\/\\/)?)/i.test( url ) ? url : scope.resourcePath + url;\n\n\t\t\t\treturn loadImage( path );\n\n\t\t\t} else {\n\n\t\t\t\tif ( image.data ) {\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdata: getTypedArray( image.type, image.data ),\n\t\t\t\t\t\twidth: image.width,\n\t\t\t\t\t\theight: image.height\n\t\t\t\t\t};\n\n\t\t\t\t} else {\n\n\t\t\t\t\treturn null;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( json !== undefined && json.length > 0 ) {\n\n\t\t\tconst manager = new LoadingManager( onLoad );\n\n\t\t\tloader = new ImageLoader( manager );\n\t\t\tloader.setCrossOrigin( this.crossOrigin );\n\n\t\t\tfor ( let i = 0, il = json.length; i < il; i ++ ) {\n\n\t\t\t\tconst image = json[ i ];\n\t\t\t\tconst url = image.url;\n\n\t\t\t\tif ( Array.isArray( url ) ) {\n\n\t\t\t\t\t// load array of images e.g CubeTexture\n\n\t\t\t\t\tconst imageArray = [];\n\n\t\t\t\t\tfor ( let j = 0, jl = url.length; j < jl; j ++ ) {\n\n\t\t\t\t\t\tconst currentUrl = url[ j ];\n\n\t\t\t\t\t\tconst deserializedImage = deserializeImage( currentUrl );\n\n\t\t\t\t\t\tif ( deserializedImage !== null ) {\n\n\t\t\t\t\t\t\tif ( deserializedImage instanceof HTMLImageElement ) {\n\n\t\t\t\t\t\t\t\timageArray.push( deserializedImage );\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// special case: handle array of data textures for cube textures\n\n\t\t\t\t\t\t\t\timageArray.push( new DataTexture( deserializedImage.data, deserializedImage.width, deserializedImage.height ) );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\timages[ image.uuid ] = new Source( imageArray );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// load single image\n\n\t\t\t\t\tconst deserializedImage = deserializeImage( image.url );\n\t\t\t\t\timages[ image.uuid ] = new Source( deserializedImage );\n\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn images;\n\n\t}\n\n\tasync parseImagesAsync( json ) {\n\n\t\tconst scope = this;\n\t\tconst images = {};\n\n\t\tlet loader;\n\n\t\tasync function deserializeImage( image ) {\n\n\t\t\tif ( typeof image === 'string' ) {\n\n\t\t\t\tconst url = image;\n\n\t\t\t\tconst path = /^(\\/\\/)|([a-z]+:(\\/\\/)?)/i.test( url ) ? url : scope.resourcePath + url;\n\n\t\t\t\treturn await loader.loadAsync( path );\n\n\t\t\t} else {\n\n\t\t\t\tif ( image.data ) {\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdata: getTypedArray( image.type, image.data ),\n\t\t\t\t\t\twidth: image.width,\n\t\t\t\t\t\theight: image.height\n\t\t\t\t\t};\n\n\t\t\t\t} else {\n\n\t\t\t\t\treturn null;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( json !== undefined && json.length > 0 ) {\n\n\t\t\tloader = new ImageLoader( this.manager );\n\t\t\tloader.setCrossOrigin( this.crossOrigin );\n\n\t\t\tfor ( let i = 0, il = json.length; i < il; i ++ ) {\n\n\t\t\t\tconst image = json[ i ];\n\t\t\t\tconst url = image.url;\n\n\t\t\t\tif ( Array.isArray( url ) ) {\n\n\t\t\t\t\t// load array of images e.g CubeTexture\n\n\t\t\t\t\tconst imageArray = [];\n\n\t\t\t\t\tfor ( let j = 0, jl = url.length; j < jl; j ++ ) {\n\n\t\t\t\t\t\tconst currentUrl = url[ j ];\n\n\t\t\t\t\t\tconst deserializedImage = await deserializeImage( currentUrl );\n\n\t\t\t\t\t\tif ( deserializedImage !== null ) {\n\n\t\t\t\t\t\t\tif ( deserializedImage instanceof HTMLImageElement ) {\n\n\t\t\t\t\t\t\t\timageArray.push( deserializedImage );\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// special case: handle array of data textures for cube textures\n\n\t\t\t\t\t\t\t\timageArray.push( new DataTexture( deserializedImage.data, deserializedImage.width, deserializedImage.height ) );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\timages[ image.uuid ] = new Source( imageArray );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// load single image\n\n\t\t\t\t\tconst deserializedImage = await deserializeImage( image.url );\n\t\t\t\t\timages[ image.uuid ] = new Source( deserializedImage );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn images;\n\n\t}\n\n\tparseTextures( json, images ) {\n\n\t\tfunction parseConstant( value, type ) {\n\n\t\t\tif ( typeof value === 'number' ) return value;\n\n\t\t\tconsole.warn( 'THREE.ObjectLoader.parseTexture: Constant should be in numeric form.', value );\n\n\t\t\treturn type[ value ];\n\n\t\t}\n\n\t\tconst textures = {};\n\n\t\tif ( json !== undefined ) {\n\n\t\t\tfor ( let i = 0, l = json.length; i < l; i ++ ) {\n\n\t\t\t\tconst data = json[ i ];\n\n\t\t\t\tif ( data.image === undefined ) {\n\n\t\t\t\t\tconsole.warn( 'THREE.ObjectLoader: No \"image\" specified for', data.uuid );\n\n\t\t\t\t}\n\n\t\t\t\tif ( images[ data.image ] === undefined ) {\n\n\t\t\t\t\tconsole.warn( 'THREE.ObjectLoader: Undefined image', data.image );\n\n\t\t\t\t}\n\n\t\t\t\tconst source = images[ data.image ];\n\t\t\t\tconst image = source.data;\n\n\t\t\t\tlet texture;\n\n\t\t\t\tif ( Array.isArray( image ) ) {\n\n\t\t\t\t\ttexture = new CubeTexture();\n\n\t\t\t\t\tif ( image.length === 6 ) texture.needsUpdate = true;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( image && image.data ) {\n\n\t\t\t\t\t\ttexture = new DataTexture();\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\ttexture = new Texture();\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( image ) texture.needsUpdate = true; // textures can have undefined image data\n\n\t\t\t\t}\n\n\t\t\t\ttexture.source = source;\n\n\t\t\t\ttexture.uuid = data.uuid;\n\n\t\t\t\tif ( data.name !== undefined ) texture.name = data.name;\n\n\t\t\t\tif ( data.mapping !== undefined ) texture.mapping = parseConstant( data.mapping, TEXTURE_MAPPING );\n\t\t\t\tif ( data.channel !== undefined ) texture.channel = data.channel;\n\n\t\t\t\tif ( data.offset !== undefined ) texture.offset.fromArray( data.offset );\n\t\t\t\tif ( data.repeat !== undefined ) texture.repeat.fromArray( data.repeat );\n\t\t\t\tif ( data.center !== undefined ) texture.center.fromArray( data.center );\n\t\t\t\tif ( data.rotation !== undefined ) texture.rotation = data.rotation;\n\n\t\t\t\tif ( data.wrap !== undefined ) {\n\n\t\t\t\t\ttexture.wrapS = parseConstant( data.wrap[ 0 ], TEXTURE_WRAPPING );\n\t\t\t\t\ttexture.wrapT = parseConstant( data.wrap[ 1 ], TEXTURE_WRAPPING );\n\n\t\t\t\t}\n\n\t\t\t\tif ( data.format !== undefined ) texture.format = data.format;\n\t\t\t\tif ( data.internalFormat !== undefined ) texture.internalFormat = data.internalFormat;\n\t\t\t\tif ( data.type !== undefined ) texture.type = data.type;\n\t\t\t\tif ( data.colorSpace !== undefined ) texture.colorSpace = data.colorSpace;\n\n\t\t\t\tif ( data.minFilter !== undefined ) texture.minFilter = parseConstant( data.minFilter, TEXTURE_FILTER );\n\t\t\t\tif ( data.magFilter !== undefined ) texture.magFilter = parseConstant( data.magFilter, TEXTURE_FILTER );\n\t\t\t\tif ( data.anisotropy !== undefined ) texture.anisotropy = data.anisotropy;\n\n\t\t\t\tif ( data.flipY !== undefined ) texture.flipY = data.flipY;\n\n\t\t\t\tif ( data.generateMipmaps !== undefined ) texture.generateMipmaps = data.generateMipmaps;\n\t\t\t\tif ( data.premultiplyAlpha !== undefined ) texture.premultiplyAlpha = data.premultiplyAlpha;\n\t\t\t\tif ( data.unpackAlignment !== undefined ) texture.unpackAlignment = data.unpackAlignment;\n\t\t\t\tif ( data.compareFunction !== undefined ) texture.compareFunction = data.compareFunction;\n\n\t\t\t\tif ( data.userData !== undefined ) texture.userData = data.userData;\n\n\t\t\t\ttextures[ data.uuid ] = texture;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn textures;\n\n\t}\n\n\tparseObject( data, geometries, materials, textures, animations ) {\n\n\t\tlet object;\n\n\t\tfunction getGeometry( name ) {\n\n\t\t\tif ( geometries[ name ] === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.ObjectLoader: Undefined geometry', name );\n\n\t\t\t}\n\n\t\t\treturn geometries[ name ];\n\n\t\t}\n\n\t\tfunction getMaterial( name ) {\n\n\t\t\tif ( name === undefined ) return undefined;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\n\t\t\t\tconst array = [];\n\n\t\t\t\tfor ( let i = 0, l = name.length; i < l; i ++ ) {\n\n\t\t\t\t\tconst uuid = name[ i ];\n\n\t\t\t\t\tif ( materials[ uuid ] === undefined ) {\n\n\t\t\t\t\t\tconsole.warn( 'THREE.ObjectLoader: Undefined material', uuid );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tarray.push( materials[ uuid ] );\n\n\t\t\t\t}\n\n\t\t\t\treturn array;\n\n\t\t\t}\n\n\t\t\tif ( materials[ name ] === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.ObjectLoader: Undefined material', name );\n\n\t\t\t}\n\n\t\t\treturn materials[ name ];\n\n\t\t}\n\n\t\tfunction getTexture( uuid ) {\n\n\t\t\tif ( textures[ uuid ] === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.ObjectLoader: Undefined texture', uuid );\n\n\t\t\t}\n\n\t\t\treturn textures[ uuid ];\n\n\t\t}\n\n\t\tlet geometry, material;\n\n\t\tswitch ( data.type ) {\n\n\t\t\tcase 'Scene':\n\n\t\t\t\tobject = new Scene();\n\n\t\t\t\tif ( data.background !== undefined ) {\n\n\t\t\t\t\tif ( Number.isInteger( data.background ) ) {\n\n\t\t\t\t\t\tobject.background = new Color( data.background );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tobject.background = getTexture( data.background );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tif ( data.environment !== undefined ) {\n\n\t\t\t\t\tobject.environment = getTexture( data.environment );\n\n\t\t\t\t}\n\n\t\t\t\tif ( data.fog !== undefined ) {\n\n\t\t\t\t\tif ( data.fog.type === 'Fog' ) {\n\n\t\t\t\t\t\tobject.fog = new Fog( data.fog.color, data.fog.near, data.fog.far );\n\n\t\t\t\t\t} else if ( data.fog.type === 'FogExp2' ) {\n\n\t\t\t\t\t\tobject.fog = new FogExp2( data.fog.color, data.fog.density );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( data.fog.name !== '' ) {\n\n\t\t\t\t\t\tobject.fog.name = data.fog.name;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tif ( data.backgroundBlurriness !== undefined ) object.backgroundBlurriness = data.backgroundBlurriness;\n\t\t\t\tif ( data.backgroundIntensity !== undefined ) object.backgroundIntensity = data.backgroundIntensity;\n\t\t\t\tif ( data.backgroundRotation !== undefined ) object.backgroundRotation.fromArray( data.backgroundRotation );\n\n\t\t\t\tif ( data.environmentIntensity !== undefined ) object.environmentIntensity = data.environmentIntensity;\n\t\t\t\tif ( data.environmentRotation !== undefined ) object.environmentRotation.fromArray( data.environmentRotation );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'PerspectiveCamera':\n\n\t\t\t\tobject = new PerspectiveCamera( data.fov, data.aspect, data.near, data.far );\n\n\t\t\t\tif ( data.focus !== undefined ) object.focus = data.focus;\n\t\t\t\tif ( data.zoom !== undefined ) object.zoom = data.zoom;\n\t\t\t\tif ( data.filmGauge !== undefined ) object.filmGauge = data.filmGauge;\n\t\t\t\tif ( data.filmOffset !== undefined ) object.filmOffset = data.filmOffset;\n\t\t\t\tif ( data.view !== undefined ) object.view = Object.assign( {}, data.view );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'OrthographicCamera':\n\n\t\t\t\tobject = new OrthographicCamera( data.left, data.right, data.top, data.bottom, data.near, data.far );\n\n\t\t\t\tif ( data.zoom !== undefined ) object.zoom = data.zoom;\n\t\t\t\tif ( data.view !== undefined ) object.view = Object.assign( {}, data.view );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'AmbientLight':\n\n\t\t\t\tobject = new AmbientLight( data.color, data.intensity );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'DirectionalLight':\n\n\t\t\t\tobject = new DirectionalLight( data.color, data.intensity );\n\t\t\t\tobject.target = data.target || '';\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'PointLight':\n\n\t\t\t\tobject = new PointLight( data.color, data.intensity, data.distance, data.decay );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'RectAreaLight':\n\n\t\t\t\tobject = new RectAreaLight( data.color, data.intensity, data.width, data.height );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'SpotLight':\n\n\t\t\t\tobject = new SpotLight( data.color, data.intensity, data.distance, data.angle, data.penumbra, data.decay );\n\t\t\t\tobject.target = data.target || '';\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'HemisphereLight':\n\n\t\t\t\tobject = new HemisphereLight( data.color, data.groundColor, data.intensity );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'LightProbe':\n\n\t\t\t\tobject = new LightProbe().fromJSON( data );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'SkinnedMesh':\n\n\t\t\t\tgeometry = getGeometry( data.geometry );\n\t\t\t \tmaterial = getMaterial( data.material );\n\n\t\t\t\tobject = new SkinnedMesh( geometry, material );\n\n\t\t\t\tif ( data.bindMode !== undefined ) object.bindMode = data.bindMode;\n\t\t\t\tif ( data.bindMatrix !== undefined ) object.bindMatrix.fromArray( data.bindMatrix );\n\t\t\t\tif ( data.skeleton !== undefined ) object.skeleton = data.skeleton;\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'Mesh':\n\n\t\t\t\tgeometry = getGeometry( data.geometry );\n\t\t\t\tmaterial = getMaterial( data.material );\n\n\t\t\t\tobject = new Mesh( geometry, material );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'InstancedMesh':\n\n\t\t\t\tgeometry = getGeometry( data.geometry );\n\t\t\t\tmaterial = getMaterial( data.material );\n\t\t\t\tconst count = data.count;\n\t\t\t\tconst instanceMatrix = data.instanceMatrix;\n\t\t\t\tconst instanceColor = data.instanceColor;\n\n\t\t\t\tobject = new InstancedMesh( geometry, material, count );\n\t\t\t\tobject.instanceMatrix = new InstancedBufferAttribute( new Float32Array( instanceMatrix.array ), 16 );\n\t\t\t\tif ( instanceColor !== undefined ) object.instanceColor = new InstancedBufferAttribute( new Float32Array( instanceColor.array ), instanceColor.itemSize );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'BatchedMesh':\n\n\t\t\t\tgeometry = getGeometry( data.geometry );\n\t\t\t\tmaterial = getMaterial( data.material );\n\n\t\t\t\tobject = new BatchedMesh( data.maxInstanceCount, data.maxVertexCount, data.maxIndexCount, material );\n\t\t\t\tobject.geometry = geometry;\n\t\t\t\tobject.perObjectFrustumCulled = data.perObjectFrustumCulled;\n\t\t\t\tobject.sortObjects = data.sortObjects;\n\n\t\t\t\tobject._drawRanges = data.drawRanges;\n\t\t\t\tobject._reservedRanges = data.reservedRanges;\n\n\t\t\t\tobject._visibility = data.visibility;\n\t\t\t\tobject._active = data.active;\n\t\t\t\tobject._bounds = data.bounds.map( bound => {\n\n\t\t\t\t\tconst box = new Box3();\n\t\t\t\t\tbox.min.fromArray( bound.boxMin );\n\t\t\t\t\tbox.max.fromArray( bound.boxMax );\n\n\t\t\t\t\tconst sphere = new Sphere();\n\t\t\t\t\tsphere.radius = bound.sphereRadius;\n\t\t\t\t\tsphere.center.fromArray( bound.sphereCenter );\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tboxInitialized: bound.boxInitialized,\n\t\t\t\t\t\tbox: box,\n\n\t\t\t\t\t\tsphereInitialized: bound.sphereInitialized,\n\t\t\t\t\t\tsphere: sphere\n\t\t\t\t\t};\n\n\t\t\t\t} );\n\n\t\t\t\tobject._maxInstanceCount = data.maxInstanceCount;\n\t\t\t\tobject._maxVertexCount = data.maxVertexCount;\n\t\t\t\tobject._maxIndexCount = data.maxIndexCount;\n\n\t\t\t\tobject._geometryInitialized = data.geometryInitialized;\n\t\t\t\tobject._geometryCount = data.geometryCount;\n\n\t\t\t\tobject._matricesTexture = getTexture( data.matricesTexture.uuid );\n\t\t\t\tif ( data.colorsTexture !== undefined ) object._colorsTexture = getTexture( data.colorsTexture.uuid );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'LOD':\n\n\t\t\t\tobject = new LOD();\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'Line':\n\n\t\t\t\tobject = new Line( getGeometry( data.geometry ), getMaterial( data.material ) );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'LineLoop':\n\n\t\t\t\tobject = new LineLoop( getGeometry( data.geometry ), getMaterial( data.material ) );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'LineSegments':\n\n\t\t\t\tobject = new LineSegments( getGeometry( data.geometry ), getMaterial( data.material ) );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'PointCloud':\n\t\t\tcase 'Points':\n\n\t\t\t\tobject = new Points( getGeometry( data.geometry ), getMaterial( data.material ) );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'Sprite':\n\n\t\t\t\tobject = new Sprite( getMaterial( data.material ) );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'Group':\n\n\t\t\t\tobject = new Group();\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'Bone':\n\n\t\t\t\tobject = new Bone();\n\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\n\t\t\t\tobject = new Object3D();\n\n\t\t}\n\n\t\tobject.uuid = data.uuid;\n\n\t\tif ( data.name !== undefined ) object.name = data.name;\n\n\t\tif ( data.matrix !== undefined ) {\n\n\t\t\tobject.matrix.fromArray( data.matrix );\n\n\t\t\tif ( data.matrixAutoUpdate !== undefined ) object.matrixAutoUpdate = data.matrixAutoUpdate;\n\t\t\tif ( object.matrixAutoUpdate ) object.matrix.decompose( object.position, object.quaternion, object.scale );\n\n\t\t} else {\n\n\t\t\tif ( data.position !== undefined ) object.position.fromArray( data.position );\n\t\t\tif ( data.rotation !== undefined ) object.rotation.fromArray( data.rotation );\n\t\t\tif ( data.quaternion !== undefined ) object.quaternion.fromArray( data.quaternion );\n\t\t\tif ( data.scale !== undefined ) object.scale.fromArray( data.scale );\n\n\t\t}\n\n\t\tif ( data.up !== undefined ) object.up.fromArray( data.up );\n\n\t\tif ( data.castShadow !== undefined ) object.castShadow = data.castShadow;\n\t\tif ( data.receiveShadow !== undefined ) object.receiveShadow = data.receiveShadow;\n\n\t\tif ( data.shadow ) {\n\n\t\t\tif ( data.shadow.intensity !== undefined ) object.shadow.intensity = data.shadow.intensity;\n\t\t\tif ( data.shadow.bias !== undefined ) object.shadow.bias = data.shadow.bias;\n\t\t\tif ( data.shadow.normalBias !== undefined ) object.shadow.normalBias = data.shadow.normalBias;\n\t\t\tif ( data.shadow.radius !== undefined ) object.shadow.radius = data.shadow.radius;\n\t\t\tif ( data.shadow.mapSize !== undefined ) object.shadow.mapSize.fromArray( data.shadow.mapSize );\n\t\t\tif ( data.shadow.camera !== undefined ) object.shadow.camera = this.parseObject( data.shadow.camera );\n\n\t\t}\n\n\t\tif ( data.visible !== undefined ) object.visible = data.visible;\n\t\tif ( data.frustumCulled !== undefined ) object.frustumCulled = data.frustumCulled;\n\t\tif ( data.renderOrder !== undefined ) object.renderOrder = data.renderOrder;\n\t\tif ( data.userData !== undefined ) object.userData = data.userData;\n\t\tif ( data.layers !== undefined ) object.layers.mask = data.layers;\n\n\t\tif ( data.children !== undefined ) {\n\n\t\t\tconst children = data.children;\n\n\t\t\tfor ( let i = 0; i < children.length; i ++ ) {\n\n\t\t\t\tobject.add( this.parseObject( children[ i ], geometries, materials, textures, animations ) );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( data.animations !== undefined ) {\n\n\t\t\tconst objectAnimations = data.animations;\n\n\t\t\tfor ( let i = 0; i < objectAnimations.length; i ++ ) {\n\n\t\t\t\tconst uuid = objectAnimations[ i ];\n\n\t\t\t\tobject.animations.push( animations[ uuid ] );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( data.type === 'LOD' ) {\n\n\t\t\tif ( data.autoUpdate !== undefined ) object.autoUpdate = data.autoUpdate;\n\n\t\t\tconst levels = data.levels;\n\n\t\t\tfor ( let l = 0; l < levels.length; l ++ ) {\n\n\t\t\t\tconst level = levels[ l ];\n\t\t\t\tconst child = object.getObjectByProperty( 'uuid', level.object );\n\n\t\t\t\tif ( child !== undefined ) {\n\n\t\t\t\t\tobject.addLevel( child, level.distance, level.hysteresis );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn object;\n\n\t}\n\n\tbindSkeletons( object, skeletons ) {\n\n\t\tif ( Object.keys( skeletons ).length === 0 ) return;\n\n\t\tobject.traverse( function ( child ) {\n\n\t\t\tif ( child.isSkinnedMesh === true && child.skeleton !== undefined ) {\n\n\t\t\t\tconst skeleton = skeletons[ child.skeleton ];\n\n\t\t\t\tif ( skeleton === undefined ) {\n\n\t\t\t\t\tconsole.warn( 'THREE.ObjectLoader: No skeleton found with UUID:', child.skeleton );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tchild.bind( skeleton, child.bindMatrix );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} );\n\n\t}\n\n\tbindLightTargets( object ) {\n\n\t\tobject.traverse( function ( child ) {\n\n\t\t\tif ( child.isDirectionalLight || child.isSpotLight ) {\n\n\t\t\t\tconst uuid = child.target;\n\n\t\t\t\tconst target = object.getObjectByProperty( 'uuid', uuid );\n\n\t\t\t\tif ( target !== undefined ) {\n\n\t\t\t\t\tchild.target = target;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tchild.target = new Object3D();\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} );\n\n\t}\n\n}\n\nconst TEXTURE_MAPPING = {\n\tUVMapping: UVMapping,\n\tCubeReflectionMapping: CubeReflectionMapping,\n\tCubeRefractionMapping: CubeRefractionMapping,\n\tEquirectangularReflectionMapping: EquirectangularReflectionMapping,\n\tEquirectangularRefractionMapping: EquirectangularRefractionMapping,\n\tCubeUVReflectionMapping: CubeUVReflectionMapping\n};\n\nconst TEXTURE_WRAPPING = {\n\tRepeatWrapping: RepeatWrapping,\n\tClampToEdgeWrapping: ClampToEdgeWrapping,\n\tMirroredRepeatWrapping: MirroredRepeatWrapping\n};\n\nconst TEXTURE_FILTER = {\n\tNearestFilter: NearestFilter,\n\tNearestMipmapNearestFilter: NearestMipmapNearestFilter,\n\tNearestMipmapLinearFilter: NearestMipmapLinearFilter,\n\tLinearFilter: LinearFilter,\n\tLinearMipmapNearestFilter: LinearMipmapNearestFilter,\n\tLinearMipmapLinearFilter: LinearMipmapLinearFilter\n};\n\nclass ImageBitmapLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t\tthis.isImageBitmapLoader = true;\n\n\t\tif ( typeof createImageBitmap === 'undefined' ) {\n\n\t\t\tconsole.warn( 'THREE.ImageBitmapLoader: createImageBitmap() not supported.' );\n\n\t\t}\n\n\t\tif ( typeof fetch === 'undefined' ) {\n\n\t\t\tconsole.warn( 'THREE.ImageBitmapLoader: fetch() not supported.' );\n\n\t\t}\n\n\t\tthis.options = { premultiplyAlpha: 'none' };\n\n\t}\n\n\tsetOptions( options ) {\n\n\t\tthis.options = options;\n\n\t\treturn this;\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tif ( url === undefined ) url = '';\n\n\t\tif ( this.path !== undefined ) url = this.path + url;\n\n\t\turl = this.manager.resolveURL( url );\n\n\t\tconst scope = this;\n\n\t\tconst cached = Cache.get( url );\n\n\t\tif ( cached !== undefined ) {\n\n\t\t\tscope.manager.itemStart( url );\n\n\t\t\t// If cached is a promise, wait for it to resolve\n\t\t\tif ( cached.then ) {\n\n\t\t\t\tcached.then( imageBitmap => {\n\n\t\t\t\t\tif ( onLoad ) onLoad( imageBitmap );\n\n\t\t\t\t\tscope.manager.itemEnd( url );\n\n\t\t\t\t} ).catch( e => {\n\n\t\t\t\t\tif ( onError ) onError( e );\n\n\t\t\t\t} );\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\t// If cached is not a promise (i.e., it's already an imageBitmap)\n\t\t\tsetTimeout( function () {\n\n\t\t\t\tif ( onLoad ) onLoad( cached );\n\n\t\t\t\tscope.manager.itemEnd( url );\n\n\t\t\t}, 0 );\n\n\t\t\treturn cached;\n\n\t\t}\n\n\t\tconst fetchOptions = {};\n\t\tfetchOptions.credentials = ( this.crossOrigin === 'anonymous' ) ? 'same-origin' : 'include';\n\t\tfetchOptions.headers = this.requestHeader;\n\n\t\tconst promise = fetch( url, fetchOptions ).then( function ( res ) {\n\n\t\t\treturn res.blob();\n\n\t\t} ).then( function ( blob ) {\n\n\t\t\treturn createImageBitmap( blob, Object.assign( scope.options, { colorSpaceConversion: 'none' } ) );\n\n\t\t} ).then( function ( imageBitmap ) {\n\n\t\t\tCache.add( url, imageBitmap );\n\n\t\t\tif ( onLoad ) onLoad( imageBitmap );\n\n\t\t\tscope.manager.itemEnd( url );\n\n\t\t\treturn imageBitmap;\n\n\t\t} ).catch( function ( e ) {\n\n\t\t\tif ( onError ) onError( e );\n\n\t\t\tCache.remove( url );\n\n\t\t\tscope.manager.itemError( url );\n\t\t\tscope.manager.itemEnd( url );\n\n\t\t} );\n\n\t\tCache.add( url, promise );\n\t\tscope.manager.itemStart( url );\n\n\t}\n\n}\n\nlet _context;\n\nclass AudioContext {\n\n\tstatic getContext() {\n\n\t\tif ( _context === undefined ) {\n\n\t\t\t_context = new ( window.AudioContext || window.webkitAudioContext )();\n\n\t\t}\n\n\t\treturn _context;\n\n\t}\n\n\tstatic setContext( value ) {\n\n\t\t_context = value;\n\n\t}\n\n}\n\nclass AudioLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tconst loader = new FileLoader( this.manager );\n\t\tloader.setResponseType( 'arraybuffer' );\n\t\tloader.setPath( this.path );\n\t\tloader.setRequestHeader( this.requestHeader );\n\t\tloader.setWithCredentials( this.withCredentials );\n\t\tloader.load( url, function ( buffer ) {\n\n\t\t\ttry {\n\n\t\t\t\t// Create a copy of the buffer. The `decodeAudioData` method\n\t\t\t\t// detaches the buffer when complete, preventing reuse.\n\t\t\t\tconst bufferCopy = buffer.slice( 0 );\n\n\t\t\t\tconst context = AudioContext.getContext();\n\t\t\t\tcontext.decodeAudioData( bufferCopy, function ( audioBuffer ) {\n\n\t\t\t\t\tonLoad( audioBuffer );\n\n\t\t\t\t} ).catch( handleError );\n\n\t\t\t} catch ( e ) {\n\n\t\t\t\thandleError( e );\n\n\t\t\t}\n\n\t\t}, onProgress, onError );\n\n\t\tfunction handleError( e ) {\n\n\t\t\tif ( onError ) {\n\n\t\t\t\tonError( e );\n\n\t\t\t} else {\n\n\t\t\t\tconsole.error( e );\n\n\t\t\t}\n\n\t\t\tscope.manager.itemError( url );\n\n\t\t}\n\n\t}\n\n}\n\nconst _eyeRight = /*@__PURE__*/ new Matrix4();\nconst _eyeLeft = /*@__PURE__*/ new Matrix4();\nconst _projectionMatrix = /*@__PURE__*/ new Matrix4();\n\nclass StereoCamera {\n\n\tconstructor() {\n\n\t\tthis.type = 'StereoCamera';\n\n\t\tthis.aspect = 1;\n\n\t\tthis.eyeSep = 0.064;\n\n\t\tthis.cameraL = new PerspectiveCamera();\n\t\tthis.cameraL.layers.enable( 1 );\n\t\tthis.cameraL.matrixAutoUpdate = false;\n\n\t\tthis.cameraR = new PerspectiveCamera();\n\t\tthis.cameraR.layers.enable( 2 );\n\t\tthis.cameraR.matrixAutoUpdate = false;\n\n\t\tthis._cache = {\n\t\t\tfocus: null,\n\t\t\tfov: null,\n\t\t\taspect: null,\n\t\t\tnear: null,\n\t\t\tfar: null,\n\t\t\tzoom: null,\n\t\t\teyeSep: null\n\t\t};\n\n\t}\n\n\tupdate( camera ) {\n\n\t\tconst cache = this._cache;\n\n\t\tconst needsUpdate = cache.focus !== camera.focus || cache.fov !== camera.fov ||\n\t\t\tcache.aspect !== camera.aspect * this.aspect || cache.near !== camera.near ||\n\t\t\tcache.far !== camera.far || cache.zoom !== camera.zoom || cache.eyeSep !== this.eyeSep;\n\n\t\tif ( needsUpdate ) {\n\n\t\t\tcache.focus = camera.focus;\n\t\t\tcache.fov = camera.fov;\n\t\t\tcache.aspect = camera.aspect * this.aspect;\n\t\t\tcache.near = camera.near;\n\t\t\tcache.far = camera.far;\n\t\t\tcache.zoom = camera.zoom;\n\t\t\tcache.eyeSep = this.eyeSep;\n\n\t\t\t// Off-axis stereoscopic effect based on\n\t\t\t// http://paulbourke.net/stereographics/stereorender/\n\n\t\t\t_projectionMatrix.copy( camera.projectionMatrix );\n\t\t\tconst eyeSepHalf = cache.eyeSep / 2;\n\t\t\tconst eyeSepOnProjection = eyeSepHalf * cache.near / cache.focus;\n\t\t\tconst ymax = ( cache.near * Math.tan( DEG2RAD * cache.fov * 0.5 ) ) / cache.zoom;\n\t\t\tlet xmin, xmax;\n\n\t\t\t// translate xOffset\n\n\t\t\t_eyeLeft.elements[ 12 ] = - eyeSepHalf;\n\t\t\t_eyeRight.elements[ 12 ] = eyeSepHalf;\n\n\t\t\t// for left eye\n\n\t\t\txmin = - ymax * cache.aspect + eyeSepOnProjection;\n\t\t\txmax = ymax * cache.aspect + eyeSepOnProjection;\n\n\t\t\t_projectionMatrix.elements[ 0 ] = 2 * cache.near / ( xmax - xmin );\n\t\t\t_projectionMatrix.elements[ 8 ] = ( xmax + xmin ) / ( xmax - xmin );\n\n\t\t\tthis.cameraL.projectionMatrix.copy( _projectionMatrix );\n\n\t\t\t// for right eye\n\n\t\t\txmin = - ymax * cache.aspect - eyeSepOnProjection;\n\t\t\txmax = ymax * cache.aspect - eyeSepOnProjection;\n\n\t\t\t_projectionMatrix.elements[ 0 ] = 2 * cache.near / ( xmax - xmin );\n\t\t\t_projectionMatrix.elements[ 8 ] = ( xmax + xmin ) / ( xmax - xmin );\n\n\t\t\tthis.cameraR.projectionMatrix.copy( _projectionMatrix );\n\n\t\t}\n\n\t\tthis.cameraL.matrixWorld.copy( camera.matrixWorld ).multiply( _eyeLeft );\n\t\tthis.cameraR.matrixWorld.copy( camera.matrixWorld ).multiply( _eyeRight );\n\n\t}\n\n}\n\nclass Clock {\n\n\tconstructor( autoStart = true ) {\n\n\t\tthis.autoStart = autoStart;\n\n\t\tthis.startTime = 0;\n\t\tthis.oldTime = 0;\n\t\tthis.elapsedTime = 0;\n\n\t\tthis.running = false;\n\n\t}\n\n\tstart() {\n\n\t\tthis.startTime = now();\n\n\t\tthis.oldTime = this.startTime;\n\t\tthis.elapsedTime = 0;\n\t\tthis.running = true;\n\n\t}\n\n\tstop() {\n\n\t\tthis.getElapsedTime();\n\t\tthis.running = false;\n\t\tthis.autoStart = false;\n\n\t}\n\n\tgetElapsedTime() {\n\n\t\tthis.getDelta();\n\t\treturn this.elapsedTime;\n\n\t}\n\n\tgetDelta() {\n\n\t\tlet diff = 0;\n\n\t\tif ( this.autoStart && ! this.running ) {\n\n\t\t\tthis.start();\n\t\t\treturn 0;\n\n\t\t}\n\n\t\tif ( this.running ) {\n\n\t\t\tconst newTime = now();\n\n\t\t\tdiff = ( newTime - this.oldTime ) / 1000;\n\t\t\tthis.oldTime = newTime;\n\n\t\t\tthis.elapsedTime += diff;\n\n\t\t}\n\n\t\treturn diff;\n\n\t}\n\n}\n\nfunction now() {\n\n\treturn performance.now();\n\n}\n\nconst _position$1 = /*@__PURE__*/ new Vector3();\nconst _quaternion$1 = /*@__PURE__*/ new Quaternion();\nconst _scale$1 = /*@__PURE__*/ new Vector3();\nconst _orientation$1 = /*@__PURE__*/ new Vector3();\n\nclass AudioListener extends Object3D {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.type = 'AudioListener';\n\n\t\tthis.context = AudioContext.getContext();\n\n\t\tthis.gain = this.context.createGain();\n\t\tthis.gain.connect( this.context.destination );\n\n\t\tthis.filter = null;\n\n\t\tthis.timeDelta = 0;\n\n\t\t// private\n\n\t\tthis._clock = new Clock();\n\n\t}\n\n\tgetInput() {\n\n\t\treturn this.gain;\n\n\t}\n\n\tremoveFilter() {\n\n\t\tif ( this.filter !== null ) {\n\n\t\t\tthis.gain.disconnect( this.filter );\n\t\t\tthis.filter.disconnect( this.context.destination );\n\t\t\tthis.gain.connect( this.context.destination );\n\t\t\tthis.filter = null;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetFilter() {\n\n\t\treturn this.filter;\n\n\t}\n\n\tsetFilter( value ) {\n\n\t\tif ( this.filter !== null ) {\n\n\t\t\tthis.gain.disconnect( this.filter );\n\t\t\tthis.filter.disconnect( this.context.destination );\n\n\t\t} else {\n\n\t\t\tthis.gain.disconnect( this.context.destination );\n\n\t\t}\n\n\t\tthis.filter = value;\n\t\tthis.gain.connect( this.filter );\n\t\tthis.filter.connect( this.context.destination );\n\n\t\treturn this;\n\n\t}\n\n\tgetMasterVolume() {\n\n\t\treturn this.gain.gain.value;\n\n\t}\n\n\tsetMasterVolume( value ) {\n\n\t\tthis.gain.gain.setTargetAtTime( value, this.context.currentTime, 0.01 );\n\n\t\treturn this;\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tsuper.updateMatrixWorld( force );\n\n\t\tconst listener = this.context.listener;\n\t\tconst up = this.up;\n\n\t\tthis.timeDelta = this._clock.getDelta();\n\n\t\tthis.matrixWorld.decompose( _position$1, _quaternion$1, _scale$1 );\n\n\t\t_orientation$1.set( 0, 0, - 1 ).applyQuaternion( _quaternion$1 );\n\n\t\tif ( listener.positionX ) {\n\n\t\t\t// code path for Chrome (see #14393)\n\n\t\t\tconst endTime = this.context.currentTime + this.timeDelta;\n\n\t\t\tlistener.positionX.linearRampToValueAtTime( _position$1.x, endTime );\n\t\t\tlistener.positionY.linearRampToValueAtTime( _position$1.y, endTime );\n\t\t\tlistener.positionZ.linearRampToValueAtTime( _position$1.z, endTime );\n\t\t\tlistener.forwardX.linearRampToValueAtTime( _orientation$1.x, endTime );\n\t\t\tlistener.forwardY.linearRampToValueAtTime( _orientation$1.y, endTime );\n\t\t\tlistener.forwardZ.linearRampToValueAtTime( _orientation$1.z, endTime );\n\t\t\tlistener.upX.linearRampToValueAtTime( up.x, endTime );\n\t\t\tlistener.upY.linearRampToValueAtTime( up.y, endTime );\n\t\t\tlistener.upZ.linearRampToValueAtTime( up.z, endTime );\n\n\t\t} else {\n\n\t\t\tlistener.setPosition( _position$1.x, _position$1.y, _position$1.z );\n\t\t\tlistener.setOrientation( _orientation$1.x, _orientation$1.y, _orientation$1.z, up.x, up.y, up.z );\n\n\t\t}\n\n\t}\n\n}\n\nclass Audio extends Object3D {\n\n\tconstructor( listener ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'Audio';\n\n\t\tthis.listener = listener;\n\t\tthis.context = listener.context;\n\n\t\tthis.gain = this.context.createGain();\n\t\tthis.gain.connect( listener.getInput() );\n\n\t\tthis.autoplay = false;\n\n\t\tthis.buffer = null;\n\t\tthis.detune = 0;\n\t\tthis.loop = false;\n\t\tthis.loopStart = 0;\n\t\tthis.loopEnd = 0;\n\t\tthis.offset = 0;\n\t\tthis.duration = undefined;\n\t\tthis.playbackRate = 1;\n\t\tthis.isPlaying = false;\n\t\tthis.hasPlaybackControl = true;\n\t\tthis.source = null;\n\t\tthis.sourceType = 'empty';\n\n\t\tthis._startedAt = 0;\n\t\tthis._progress = 0;\n\t\tthis._connected = false;\n\n\t\tthis.filters = [];\n\n\t}\n\n\tgetOutput() {\n\n\t\treturn this.gain;\n\n\t}\n\n\tsetNodeSource( audioNode ) {\n\n\t\tthis.hasPlaybackControl = false;\n\t\tthis.sourceType = 'audioNode';\n\t\tthis.source = audioNode;\n\t\tthis.connect();\n\n\t\treturn this;\n\n\t}\n\n\tsetMediaElementSource( mediaElement ) {\n\n\t\tthis.hasPlaybackControl = false;\n\t\tthis.sourceType = 'mediaNode';\n\t\tthis.source = this.context.createMediaElementSource( mediaElement );\n\t\tthis.connect();\n\n\t\treturn this;\n\n\t}\n\n\tsetMediaStreamSource( mediaStream ) {\n\n\t\tthis.hasPlaybackControl = false;\n\t\tthis.sourceType = 'mediaStreamNode';\n\t\tthis.source = this.context.createMediaStreamSource( mediaStream );\n\t\tthis.connect();\n\n\t\treturn this;\n\n\t}\n\n\tsetBuffer( audioBuffer ) {\n\n\t\tthis.buffer = audioBuffer;\n\t\tthis.sourceType = 'buffer';\n\n\t\tif ( this.autoplay ) this.play();\n\n\t\treturn this;\n\n\t}\n\n\tplay( delay = 0 ) {\n\n\t\tif ( this.isPlaying === true ) {\n\n\t\t\tconsole.warn( 'THREE.Audio: Audio is already playing.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( this.hasPlaybackControl === false ) {\n\n\t\t\tconsole.warn( 'THREE.Audio: this Audio has no playback control.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tthis._startedAt = this.context.currentTime + delay;\n\n\t\tconst source = this.context.createBufferSource();\n\t\tsource.buffer = this.buffer;\n\t\tsource.loop = this.loop;\n\t\tsource.loopStart = this.loopStart;\n\t\tsource.loopEnd = this.loopEnd;\n\t\tsource.onended = this.onEnded.bind( this );\n\t\tsource.start( this._startedAt, this._progress + this.offset, this.duration );\n\n\t\tthis.isPlaying = true;\n\n\t\tthis.source = source;\n\n\t\tthis.setDetune( this.detune );\n\t\tthis.setPlaybackRate( this.playbackRate );\n\n\t\treturn this.connect();\n\n\t}\n\n\tpause() {\n\n\t\tif ( this.hasPlaybackControl === false ) {\n\n\t\t\tconsole.warn( 'THREE.Audio: this Audio has no playback control.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( this.isPlaying === true ) {\n\n\t\t\t// update current progress\n\n\t\t\tthis._progress += Math.max( this.context.currentTime - this._startedAt, 0 ) * this.playbackRate;\n\n\t\t\tif ( this.loop === true ) {\n\n\t\t\t\t// ensure _progress does not exceed duration with looped audios\n\n\t\t\t\tthis._progress = this._progress % ( this.duration || this.buffer.duration );\n\n\t\t\t}\n\n\t\t\tthis.source.stop();\n\t\t\tthis.source.onended = null;\n\n\t\t\tthis.isPlaying = false;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tstop( delay = 0 ) {\n\n\t\tif ( this.hasPlaybackControl === false ) {\n\n\t\t\tconsole.warn( 'THREE.Audio: this Audio has no playback control.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tthis._progress = 0;\n\n\t\tif ( this.source !== null ) {\n\n\t\t\tthis.source.stop( this.context.currentTime + delay );\n\t\t\tthis.source.onended = null;\n\n\t\t}\n\n\t\tthis.isPlaying = false;\n\n\t\treturn this;\n\n\t}\n\n\tconnect() {\n\n\t\tif ( this.filters.length > 0 ) {\n\n\t\t\tthis.source.connect( this.filters[ 0 ] );\n\n\t\t\tfor ( let i = 1, l = this.filters.length; i < l; i ++ ) {\n\n\t\t\t\tthis.filters[ i - 1 ].connect( this.filters[ i ] );\n\n\t\t\t}\n\n\t\t\tthis.filters[ this.filters.length - 1 ].connect( this.getOutput() );\n\n\t\t} else {\n\n\t\t\tthis.source.connect( this.getOutput() );\n\n\t\t}\n\n\t\tthis._connected = true;\n\n\t\treturn this;\n\n\t}\n\n\tdisconnect() {\n\n\t\tif ( this._connected === false ) {\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( this.filters.length > 0 ) {\n\n\t\t\tthis.source.disconnect( this.filters[ 0 ] );\n\n\t\t\tfor ( let i = 1, l = this.filters.length; i < l; i ++ ) {\n\n\t\t\t\tthis.filters[ i - 1 ].disconnect( this.filters[ i ] );\n\n\t\t\t}\n\n\t\t\tthis.filters[ this.filters.length - 1 ].disconnect( this.getOutput() );\n\n\t\t} else {\n\n\t\t\tthis.source.disconnect( this.getOutput() );\n\n\t\t}\n\n\t\tthis._connected = false;\n\n\t\treturn this;\n\n\t}\n\n\tgetFilters() {\n\n\t\treturn this.filters;\n\n\t}\n\n\tsetFilters( value ) {\n\n\t\tif ( ! value ) value = [];\n\n\t\tif ( this._connected === true ) {\n\n\t\t\tthis.disconnect();\n\t\t\tthis.filters = value.slice();\n\t\t\tthis.connect();\n\n\t\t} else {\n\n\t\t\tthis.filters = value.slice();\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetDetune( value ) {\n\n\t\tthis.detune = value;\n\n\t\tif ( this.isPlaying === true && this.source.detune !== undefined ) {\n\n\t\t\tthis.source.detune.setTargetAtTime( this.detune, this.context.currentTime, 0.01 );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetDetune() {\n\n\t\treturn this.detune;\n\n\t}\n\n\tgetFilter() {\n\n\t\treturn this.getFilters()[ 0 ];\n\n\t}\n\n\tsetFilter( filter ) {\n\n\t\treturn this.setFilters( filter ? [ filter ] : [] );\n\n\t}\n\n\tsetPlaybackRate( value ) {\n\n\t\tif ( this.hasPlaybackControl === false ) {\n\n\t\t\tconsole.warn( 'THREE.Audio: this Audio has no playback control.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tthis.playbackRate = value;\n\n\t\tif ( this.isPlaying === true ) {\n\n\t\t\tthis.source.playbackRate.setTargetAtTime( this.playbackRate, this.context.currentTime, 0.01 );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetPlaybackRate() {\n\n\t\treturn this.playbackRate;\n\n\t}\n\n\tonEnded() {\n\n\t\tthis.isPlaying = false;\n\n\t}\n\n\tgetLoop() {\n\n\t\tif ( this.hasPlaybackControl === false ) {\n\n\t\t\tconsole.warn( 'THREE.Audio: this Audio has no playback control.' );\n\t\t\treturn false;\n\n\t\t}\n\n\t\treturn this.loop;\n\n\t}\n\n\tsetLoop( value ) {\n\n\t\tif ( this.hasPlaybackControl === false ) {\n\n\t\t\tconsole.warn( 'THREE.Audio: this Audio has no playback control.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tthis.loop = value;\n\n\t\tif ( this.isPlaying === true ) {\n\n\t\t\tthis.source.loop = this.loop;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetLoopStart( value ) {\n\n\t\tthis.loopStart = value;\n\n\t\treturn this;\n\n\t}\n\n\tsetLoopEnd( value ) {\n\n\t\tthis.loopEnd = value;\n\n\t\treturn this;\n\n\t}\n\n\tgetVolume() {\n\n\t\treturn this.gain.gain.value;\n\n\t}\n\n\tsetVolume( value ) {\n\n\t\tthis.gain.gain.setTargetAtTime( value, this.context.currentTime, 0.01 );\n\n\t\treturn this;\n\n\t}\n\n}\n\nconst _position = /*@__PURE__*/ new Vector3();\nconst _quaternion = /*@__PURE__*/ new Quaternion();\nconst _scale = /*@__PURE__*/ new Vector3();\nconst _orientation = /*@__PURE__*/ new Vector3();\n\nclass PositionalAudio extends Audio {\n\n\tconstructor( listener ) {\n\n\t\tsuper( listener );\n\n\t\tthis.panner = this.context.createPanner();\n\t\tthis.panner.panningModel = 'HRTF';\n\t\tthis.panner.connect( this.gain );\n\n\t}\n\n\tconnect() {\n\n\t\tsuper.connect();\n\n\t\tthis.panner.connect( this.gain );\n\n\t}\n\n\tdisconnect() {\n\n\t\tsuper.disconnect();\n\n\t\tthis.panner.disconnect( this.gain );\n\n\t}\n\n\tgetOutput() {\n\n\t\treturn this.panner;\n\n\t}\n\n\tgetRefDistance() {\n\n\t\treturn this.panner.refDistance;\n\n\t}\n\n\tsetRefDistance( value ) {\n\n\t\tthis.panner.refDistance = value;\n\n\t\treturn this;\n\n\t}\n\n\tgetRolloffFactor() {\n\n\t\treturn this.panner.rolloffFactor;\n\n\t}\n\n\tsetRolloffFactor( value ) {\n\n\t\tthis.panner.rolloffFactor = value;\n\n\t\treturn this;\n\n\t}\n\n\tgetDistanceModel() {\n\n\t\treturn this.panner.distanceModel;\n\n\t}\n\n\tsetDistanceModel( value ) {\n\n\t\tthis.panner.distanceModel = value;\n\n\t\treturn this;\n\n\t}\n\n\tgetMaxDistance() {\n\n\t\treturn this.panner.maxDistance;\n\n\t}\n\n\tsetMaxDistance( value ) {\n\n\t\tthis.panner.maxDistance = value;\n\n\t\treturn this;\n\n\t}\n\n\tsetDirectionalCone( coneInnerAngle, coneOuterAngle, coneOuterGain ) {\n\n\t\tthis.panner.coneInnerAngle = coneInnerAngle;\n\t\tthis.panner.coneOuterAngle = coneOuterAngle;\n\t\tthis.panner.coneOuterGain = coneOuterGain;\n\n\t\treturn this;\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tsuper.updateMatrixWorld( force );\n\n\t\tif ( this.hasPlaybackControl === true && this.isPlaying === false ) return;\n\n\t\tthis.matrixWorld.decompose( _position, _quaternion, _scale );\n\n\t\t_orientation.set( 0, 0, 1 ).applyQuaternion( _quaternion );\n\n\t\tconst panner = this.panner;\n\n\t\tif ( panner.positionX ) {\n\n\t\t\t// code path for Chrome and Firefox (see #14393)\n\n\t\t\tconst endTime = this.context.currentTime + this.listener.timeDelta;\n\n\t\t\tpanner.positionX.linearRampToValueAtTime( _position.x, endTime );\n\t\t\tpanner.positionY.linearRampToValueAtTime( _position.y, endTime );\n\t\t\tpanner.positionZ.linearRampToValueAtTime( _position.z, endTime );\n\t\t\tpanner.orientationX.linearRampToValueAtTime( _orientation.x, endTime );\n\t\t\tpanner.orientationY.linearRampToValueAtTime( _orientation.y, endTime );\n\t\t\tpanner.orientationZ.linearRampToValueAtTime( _orientation.z, endTime );\n\n\t\t} else {\n\n\t\t\tpanner.setPosition( _position.x, _position.y, _position.z );\n\t\t\tpanner.setOrientation( _orientation.x, _orientation.y, _orientation.z );\n\n\t\t}\n\n\t}\n\n}\n\nclass AudioAnalyser {\n\n\tconstructor( audio, fftSize = 2048 ) {\n\n\t\tthis.analyser = audio.context.createAnalyser();\n\t\tthis.analyser.fftSize = fftSize;\n\n\t\tthis.data = new Uint8Array( this.analyser.frequencyBinCount );\n\n\t\taudio.getOutput().connect( this.analyser );\n\n\t}\n\n\n\tgetFrequencyData() {\n\n\t\tthis.analyser.getByteFrequencyData( this.data );\n\n\t\treturn this.data;\n\n\t}\n\n\tgetAverageFrequency() {\n\n\t\tlet value = 0;\n\t\tconst data = this.getFrequencyData();\n\n\t\tfor ( let i = 0; i < data.length; i ++ ) {\n\n\t\t\tvalue += data[ i ];\n\n\t\t}\n\n\t\treturn value / data.length;\n\n\t}\n\n}\n\nclass PropertyMixer {\n\n\tconstructor( binding, typeName, valueSize ) {\n\n\t\tthis.binding = binding;\n\t\tthis.valueSize = valueSize;\n\n\t\tlet mixFunction,\n\t\t\tmixFunctionAdditive,\n\t\t\tsetIdentity;\n\n\t\t// buffer layout: [ incoming | accu0 | accu1 | orig | addAccu | (optional work) ]\n\t\t//\n\t\t// interpolators can use .buffer as their .result\n\t\t// the data then goes to 'incoming'\n\t\t//\n\t\t// 'accu0' and 'accu1' are used frame-interleaved for\n\t\t// the cumulative result and are compared to detect\n\t\t// changes\n\t\t//\n\t\t// 'orig' stores the original state of the property\n\t\t//\n\t\t// 'add' is used for additive cumulative results\n\t\t//\n\t\t// 'work' is optional and is only present for quaternion types. It is used\n\t\t// to store intermediate quaternion multiplication results\n\n\t\tswitch ( typeName ) {\n\n\t\t\tcase 'quaternion':\n\t\t\t\tmixFunction = this._slerp;\n\t\t\t\tmixFunctionAdditive = this._slerpAdditive;\n\t\t\t\tsetIdentity = this._setAdditiveIdentityQuaternion;\n\n\t\t\t\tthis.buffer = new Float64Array( valueSize * 6 );\n\t\t\t\tthis._workIndex = 5;\n\t\t\t\tbreak;\n\n\t\t\tcase 'string':\n\t\t\tcase 'bool':\n\t\t\t\tmixFunction = this._select;\n\n\t\t\t\t// Use the regular mix function and for additive on these types,\n\t\t\t\t// additive is not relevant for non-numeric types\n\t\t\t\tmixFunctionAdditive = this._select;\n\n\t\t\t\tsetIdentity = this._setAdditiveIdentityOther;\n\n\t\t\t\tthis.buffer = new Array( valueSize * 5 );\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tmixFunction = this._lerp;\n\t\t\t\tmixFunctionAdditive = this._lerpAdditive;\n\t\t\t\tsetIdentity = this._setAdditiveIdentityNumeric;\n\n\t\t\t\tthis.buffer = new Float64Array( valueSize * 5 );\n\n\t\t}\n\n\t\tthis._mixBufferRegion = mixFunction;\n\t\tthis._mixBufferRegionAdditive = mixFunctionAdditive;\n\t\tthis._setIdentity = setIdentity;\n\t\tthis._origIndex = 3;\n\t\tthis._addIndex = 4;\n\n\t\tthis.cumulativeWeight = 0;\n\t\tthis.cumulativeWeightAdditive = 0;\n\n\t\tthis.useCount = 0;\n\t\tthis.referenceCount = 0;\n\n\t}\n\n\t// accumulate data in the 'incoming' region into 'accu'\n\taccumulate( accuIndex, weight ) {\n\n\t\t// note: happily accumulating nothing when weight = 0, the caller knows\n\t\t// the weight and shouldn't have made the call in the first place\n\n\t\tconst buffer = this.buffer,\n\t\t\tstride = this.valueSize,\n\t\t\toffset = accuIndex * stride + stride;\n\n\t\tlet currentWeight = this.cumulativeWeight;\n\n\t\tif ( currentWeight === 0 ) {\n\n\t\t\t// accuN := incoming * weight\n\n\t\t\tfor ( let i = 0; i !== stride; ++ i ) {\n\n\t\t\t\tbuffer[ offset + i ] = buffer[ i ];\n\n\t\t\t}\n\n\t\t\tcurrentWeight = weight;\n\n\t\t} else {\n\n\t\t\t// accuN := accuN + incoming * weight\n\n\t\t\tcurrentWeight += weight;\n\t\t\tconst mix = weight / currentWeight;\n\t\t\tthis._mixBufferRegion( buffer, offset, 0, mix, stride );\n\n\t\t}\n\n\t\tthis.cumulativeWeight = currentWeight;\n\n\t}\n\n\t// accumulate data in the 'incoming' region into 'add'\n\taccumulateAdditive( weight ) {\n\n\t\tconst buffer = this.buffer,\n\t\t\tstride = this.valueSize,\n\t\t\toffset = stride * this._addIndex;\n\n\t\tif ( this.cumulativeWeightAdditive === 0 ) {\n\n\t\t\t// add = identity\n\n\t\t\tthis._setIdentity();\n\n\t\t}\n\n\t\t// add := add + incoming * weight\n\n\t\tthis._mixBufferRegionAdditive( buffer, offset, 0, weight, stride );\n\t\tthis.cumulativeWeightAdditive += weight;\n\n\t}\n\n\t// apply the state of 'accu' to the binding when accus differ\n\tapply( accuIndex ) {\n\n\t\tconst stride = this.valueSize,\n\t\t\tbuffer = this.buffer,\n\t\t\toffset = accuIndex * stride + stride,\n\n\t\t\tweight = this.cumulativeWeight,\n\t\t\tweightAdditive = this.cumulativeWeightAdditive,\n\n\t\t\tbinding = this.binding;\n\n\t\tthis.cumulativeWeight = 0;\n\t\tthis.cumulativeWeightAdditive = 0;\n\n\t\tif ( weight < 1 ) {\n\n\t\t\t// accuN := accuN + original * ( 1 - cumulativeWeight )\n\n\t\t\tconst originalValueOffset = stride * this._origIndex;\n\n\t\t\tthis._mixBufferRegion(\n\t\t\t\tbuffer, offset, originalValueOffset, 1 - weight, stride );\n\n\t\t}\n\n\t\tif ( weightAdditive > 0 ) {\n\n\t\t\t// accuN := accuN + additive accuN\n\n\t\t\tthis._mixBufferRegionAdditive( buffer, offset, this._addIndex * stride, 1, stride );\n\n\t\t}\n\n\t\tfor ( let i = stride, e = stride + stride; i !== e; ++ i ) {\n\n\t\t\tif ( buffer[ i ] !== buffer[ i + stride ] ) {\n\n\t\t\t\t// value has changed -> update scene graph\n\n\t\t\t\tbinding.setValue( buffer, offset );\n\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t// remember the state of the bound property and copy it to both accus\n\tsaveOriginalState() {\n\n\t\tconst binding = this.binding;\n\n\t\tconst buffer = this.buffer,\n\t\t\tstride = this.valueSize,\n\n\t\t\toriginalValueOffset = stride * this._origIndex;\n\n\t\tbinding.getValue( buffer, originalValueOffset );\n\n\t\t// accu[0..1] := orig -- initially detect changes against the original\n\t\tfor ( let i = stride, e = originalValueOffset; i !== e; ++ i ) {\n\n\t\t\tbuffer[ i ] = buffer[ originalValueOffset + ( i % stride ) ];\n\n\t\t}\n\n\t\t// Add to identity for additive\n\t\tthis._setIdentity();\n\n\t\tthis.cumulativeWeight = 0;\n\t\tthis.cumulativeWeightAdditive = 0;\n\n\t}\n\n\t// apply the state previously taken via 'saveOriginalState' to the binding\n\trestoreOriginalState() {\n\n\t\tconst originalValueOffset = this.valueSize * 3;\n\t\tthis.binding.setValue( this.buffer, originalValueOffset );\n\n\t}\n\n\t_setAdditiveIdentityNumeric() {\n\n\t\tconst startIndex = this._addIndex * this.valueSize;\n\t\tconst endIndex = startIndex + this.valueSize;\n\n\t\tfor ( let i = startIndex; i < endIndex; i ++ ) {\n\n\t\t\tthis.buffer[ i ] = 0;\n\n\t\t}\n\n\t}\n\n\t_setAdditiveIdentityQuaternion() {\n\n\t\tthis._setAdditiveIdentityNumeric();\n\t\tthis.buffer[ this._addIndex * this.valueSize + 3 ] = 1;\n\n\t}\n\n\t_setAdditiveIdentityOther() {\n\n\t\tconst startIndex = this._origIndex * this.valueSize;\n\t\tconst targetIndex = this._addIndex * this.valueSize;\n\n\t\tfor ( let i = 0; i < this.valueSize; i ++ ) {\n\n\t\t\tthis.buffer[ targetIndex + i ] = this.buffer[ startIndex + i ];\n\n\t\t}\n\n\t}\n\n\n\t// mix functions\n\n\t_select( buffer, dstOffset, srcOffset, t, stride ) {\n\n\t\tif ( t >= 0.5 ) {\n\n\t\t\tfor ( let i = 0; i !== stride; ++ i ) {\n\n\t\t\t\tbuffer[ dstOffset + i ] = buffer[ srcOffset + i ];\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t_slerp( buffer, dstOffset, srcOffset, t ) {\n\n\t\tQuaternion.slerpFlat( buffer, dstOffset, buffer, dstOffset, buffer, srcOffset, t );\n\n\t}\n\n\t_slerpAdditive( buffer, dstOffset, srcOffset, t, stride ) {\n\n\t\tconst workOffset = this._workIndex * stride;\n\n\t\t// Store result in intermediate buffer offset\n\t\tQuaternion.multiplyQuaternionsFlat( buffer, workOffset, buffer, dstOffset, buffer, srcOffset );\n\n\t\t// Slerp to the intermediate result\n\t\tQuaternion.slerpFlat( buffer, dstOffset, buffer, dstOffset, buffer, workOffset, t );\n\n\t}\n\n\t_lerp( buffer, dstOffset, srcOffset, t, stride ) {\n\n\t\tconst s = 1 - t;\n\n\t\tfor ( let i = 0; i !== stride; ++ i ) {\n\n\t\t\tconst j = dstOffset + i;\n\n\t\t\tbuffer[ j ] = buffer[ j ] * s + buffer[ srcOffset + i ] * t;\n\n\t\t}\n\n\t}\n\n\t_lerpAdditive( buffer, dstOffset, srcOffset, t, stride ) {\n\n\t\tfor ( let i = 0; i !== stride; ++ i ) {\n\n\t\t\tconst j = dstOffset + i;\n\n\t\t\tbuffer[ j ] = buffer[ j ] + buffer[ srcOffset + i ] * t;\n\n\t\t}\n\n\t}\n\n}\n\n// Characters [].:/ are reserved for track binding syntax.\nconst _RESERVED_CHARS_RE = '\\\\[\\\\]\\\\.:\\\\/';\nconst _reservedRe = new RegExp( '[' + _RESERVED_CHARS_RE + ']', 'g' );\n\n// Attempts to allow node names from any language. ES5's `\\w` regexp matches\n// only latin characters, and the unicode \\p{L} is not yet supported. So\n// instead, we exclude reserved characters and match everything else.\nconst _wordChar = '[^' + _RESERVED_CHARS_RE + ']';\nconst _wordCharOrDot = '[^' + _RESERVED_CHARS_RE.replace( '\\\\.', '' ) + ']';\n\n// Parent directories, delimited by '/' or ':'. Currently unused, but must\n// be matched to parse the rest of the track name.\nconst _directoryRe = /*@__PURE__*/ /((?:WC+[\\/:])*)/.source.replace( 'WC', _wordChar );\n\n// Target node. May contain word characters (a-zA-Z0-9_) and '.' or '-'.\nconst _nodeRe = /*@__PURE__*/ /(WCOD+)?/.source.replace( 'WCOD', _wordCharOrDot );\n\n// Object on target node, and accessor. May not contain reserved\n// characters. Accessor may contain any character except closing bracket.\nconst _objectRe = /*@__PURE__*/ /(?:\\.(WC+)(?:\\[(.+)\\])?)?/.source.replace( 'WC', _wordChar );\n\n// Property and accessor. May not contain reserved characters. Accessor may\n// contain any non-bracket characters.\nconst _propertyRe = /*@__PURE__*/ /\\.(WC+)(?:\\[(.+)\\])?/.source.replace( 'WC', _wordChar );\n\nconst _trackRe = new RegExp( ''\n\t+ '^'\n\t+ _directoryRe\n\t+ _nodeRe\n\t+ _objectRe\n\t+ _propertyRe\n\t+ '$'\n);\n\nconst _supportedObjectNames = [ 'material', 'materials', 'bones', 'map' ];\n\nclass Composite {\n\n\tconstructor( targetGroup, path, optionalParsedPath ) {\n\n\t\tconst parsedPath = optionalParsedPath || PropertyBinding.parseTrackName( path );\n\n\t\tthis._targetGroup = targetGroup;\n\t\tthis._bindings = targetGroup.subscribe_( path, parsedPath );\n\n\t}\n\n\tgetValue( array, offset ) {\n\n\t\tthis.bind(); // bind all binding\n\n\t\tconst firstValidIndex = this._targetGroup.nCachedObjects_,\n\t\t\tbinding = this._bindings[ firstValidIndex ];\n\n\t\t// and only call .getValue on the first\n\t\tif ( binding !== undefined ) binding.getValue( array, offset );\n\n\t}\n\n\tsetValue( array, offset ) {\n\n\t\tconst bindings = this._bindings;\n\n\t\tfor ( let i = this._targetGroup.nCachedObjects_, n = bindings.length; i !== n; ++ i ) {\n\n\t\t\tbindings[ i ].setValue( array, offset );\n\n\t\t}\n\n\t}\n\n\tbind() {\n\n\t\tconst bindings = this._bindings;\n\n\t\tfor ( let i = this._targetGroup.nCachedObjects_, n = bindings.length; i !== n; ++ i ) {\n\n\t\t\tbindings[ i ].bind();\n\n\t\t}\n\n\t}\n\n\tunbind() {\n\n\t\tconst bindings = this._bindings;\n\n\t\tfor ( let i = this._targetGroup.nCachedObjects_, n = bindings.length; i !== n; ++ i ) {\n\n\t\t\tbindings[ i ].unbind();\n\n\t\t}\n\n\t}\n\n}\n\n// Note: This class uses a State pattern on a per-method basis:\n// 'bind' sets 'this.getValue' / 'setValue' and shadows the\n// prototype version of these methods with one that represents\n// the bound state. When the property is not found, the methods\n// become no-ops.\nclass PropertyBinding {\n\n\tconstructor( rootNode, path, parsedPath ) {\n\n\t\tthis.path = path;\n\t\tthis.parsedPath = parsedPath || PropertyBinding.parseTrackName( path );\n\n\t\tthis.node = PropertyBinding.findNode( rootNode, this.parsedPath.nodeName );\n\n\t\tthis.rootNode = rootNode;\n\n\t\t// initial state of these methods that calls 'bind'\n\t\tthis.getValue = this._getValue_unbound;\n\t\tthis.setValue = this._setValue_unbound;\n\n\t}\n\n\n\tstatic create( root, path, parsedPath ) {\n\n\t\tif ( ! ( root && root.isAnimationObjectGroup ) ) {\n\n\t\t\treturn new PropertyBinding( root, path, parsedPath );\n\n\t\t} else {\n\n\t\t\treturn new PropertyBinding.Composite( root, path, parsedPath );\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Replaces spaces with underscores and removes unsupported characters from\n\t * node names, to ensure compatibility with parseTrackName().\n\t *\n\t * @param {string} name Node name to be sanitized.\n\t * @return {string}\n\t */\n\tstatic sanitizeNodeName( name ) {\n\n\t\treturn name.replace( /\\s/g, '_' ).replace( _reservedRe, '' );\n\n\t}\n\n\tstatic parseTrackName( trackName ) {\n\n\t\tconst matches = _trackRe.exec( trackName );\n\n\t\tif ( matches === null ) {\n\n\t\t\tthrow new Error( 'PropertyBinding: Cannot parse trackName: ' + trackName );\n\n\t\t}\n\n\t\tconst results = {\n\t\t\t// directoryName: matches[ 1 ], // (tschw) currently unused\n\t\t\tnodeName: matches[ 2 ],\n\t\t\tobjectName: matches[ 3 ],\n\t\t\tobjectIndex: matches[ 4 ],\n\t\t\tpropertyName: matches[ 5 ], // required\n\t\t\tpropertyIndex: matches[ 6 ]\n\t\t};\n\n\t\tconst lastDot = results.nodeName && results.nodeName.lastIndexOf( '.' );\n\n\t\tif ( lastDot !== undefined && lastDot !== - 1 ) {\n\n\t\t\tconst objectName = results.nodeName.substring( lastDot + 1 );\n\n\t\t\t// Object names must be checked against an allowlist. Otherwise, there\n\t\t\t// is no way to parse 'foo.bar.baz': 'baz' must be a property, but\n\t\t\t// 'bar' could be the objectName, or part of a nodeName (which can\n\t\t\t// include '.' characters).\n\t\t\tif ( _supportedObjectNames.indexOf( objectName ) !== - 1 ) {\n\n\t\t\t\tresults.nodeName = results.nodeName.substring( 0, lastDot );\n\t\t\t\tresults.objectName = objectName;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( results.propertyName === null || results.propertyName.length === 0 ) {\n\n\t\t\tthrow new Error( 'PropertyBinding: can not parse propertyName from trackName: ' + trackName );\n\n\t\t}\n\n\t\treturn results;\n\n\t}\n\n\tstatic findNode( root, nodeName ) {\n\n\t\tif ( nodeName === undefined || nodeName === '' || nodeName === '.' || nodeName === - 1 || nodeName === root.name || nodeName === root.uuid ) {\n\n\t\t\treturn root;\n\n\t\t}\n\n\t\t// search into skeleton bones.\n\t\tif ( root.skeleton ) {\n\n\t\t\tconst bone = root.skeleton.getBoneByName( nodeName );\n\n\t\t\tif ( bone !== undefined ) {\n\n\t\t\t\treturn bone;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// search into node subtree.\n\t\tif ( root.children ) {\n\n\t\t\tconst searchNodeSubtree = function ( children ) {\n\n\t\t\t\tfor ( let i = 0; i < children.length; i ++ ) {\n\n\t\t\t\t\tconst childNode = children[ i ];\n\n\t\t\t\t\tif ( childNode.name === nodeName || childNode.uuid === nodeName ) {\n\n\t\t\t\t\t\treturn childNode;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tconst result = searchNodeSubtree( childNode.children );\n\n\t\t\t\t\tif ( result ) return result;\n\n\t\t\t\t}\n\n\t\t\t\treturn null;\n\n\t\t\t};\n\n\t\t\tconst subTreeNode = searchNodeSubtree( root.children );\n\n\t\t\tif ( subTreeNode ) {\n\n\t\t\t\treturn subTreeNode;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn null;\n\n\t}\n\n\t// these are used to \"bind\" a nonexistent property\n\t_getValue_unavailable() {}\n\t_setValue_unavailable() {}\n\n\t// Getters\n\n\t_getValue_direct( buffer, offset ) {\n\n\t\tbuffer[ offset ] = this.targetObject[ this.propertyName ];\n\n\t}\n\n\t_getValue_array( buffer, offset ) {\n\n\t\tconst source = this.resolvedProperty;\n\n\t\tfor ( let i = 0, n = source.length; i !== n; ++ i ) {\n\n\t\t\tbuffer[ offset ++ ] = source[ i ];\n\n\t\t}\n\n\t}\n\n\t_getValue_arrayElement( buffer, offset ) {\n\n\t\tbuffer[ offset ] = this.resolvedProperty[ this.propertyIndex ];\n\n\t}\n\n\t_getValue_toArray( buffer, offset ) {\n\n\t\tthis.resolvedProperty.toArray( buffer, offset );\n\n\t}\n\n\t// Direct\n\n\t_setValue_direct( buffer, offset ) {\n\n\t\tthis.targetObject[ this.propertyName ] = buffer[ offset ];\n\n\t}\n\n\t_setValue_direct_setNeedsUpdate( buffer, offset ) {\n\n\t\tthis.targetObject[ this.propertyName ] = buffer[ offset ];\n\t\tthis.targetObject.needsUpdate = true;\n\n\t}\n\n\t_setValue_direct_setMatrixWorldNeedsUpdate( buffer, offset ) {\n\n\t\tthis.targetObject[ this.propertyName ] = buffer[ offset ];\n\t\tthis.targetObject.matrixWorldNeedsUpdate = true;\n\n\t}\n\n\t// EntireArray\n\n\t_setValue_array( buffer, offset ) {\n\n\t\tconst dest = this.resolvedProperty;\n\n\t\tfor ( let i = 0, n = dest.length; i !== n; ++ i ) {\n\n\t\t\tdest[ i ] = buffer[ offset ++ ];\n\n\t\t}\n\n\t}\n\n\t_setValue_array_setNeedsUpdate( buffer, offset ) {\n\n\t\tconst dest = this.resolvedProperty;\n\n\t\tfor ( let i = 0, n = dest.length; i !== n; ++ i ) {\n\n\t\t\tdest[ i ] = buffer[ offset ++ ];\n\n\t\t}\n\n\t\tthis.targetObject.needsUpdate = true;\n\n\t}\n\n\t_setValue_array_setMatrixWorldNeedsUpdate( buffer, offset ) {\n\n\t\tconst dest = this.resolvedProperty;\n\n\t\tfor ( let i = 0, n = dest.length; i !== n; ++ i ) {\n\n\t\t\tdest[ i ] = buffer[ offset ++ ];\n\n\t\t}\n\n\t\tthis.targetObject.matrixWorldNeedsUpdate = true;\n\n\t}\n\n\t// ArrayElement\n\n\t_setValue_arrayElement( buffer, offset ) {\n\n\t\tthis.resolvedProperty[ this.propertyIndex ] = buffer[ offset ];\n\n\t}\n\n\t_setValue_arrayElement_setNeedsUpdate( buffer, offset ) {\n\n\t\tthis.resolvedProperty[ this.propertyIndex ] = buffer[ offset ];\n\t\tthis.targetObject.needsUpdate = true;\n\n\t}\n\n\t_setValue_arrayElement_setMatrixWorldNeedsUpdate( buffer, offset ) {\n\n\t\tthis.resolvedProperty[ this.propertyIndex ] = buffer[ offset ];\n\t\tthis.targetObject.matrixWorldNeedsUpdate = true;\n\n\t}\n\n\t// HasToFromArray\n\n\t_setValue_fromArray( buffer, offset ) {\n\n\t\tthis.resolvedProperty.fromArray( buffer, offset );\n\n\t}\n\n\t_setValue_fromArray_setNeedsUpdate( buffer, offset ) {\n\n\t\tthis.resolvedProperty.fromArray( buffer, offset );\n\t\tthis.targetObject.needsUpdate = true;\n\n\t}\n\n\t_setValue_fromArray_setMatrixWorldNeedsUpdate( buffer, offset ) {\n\n\t\tthis.resolvedProperty.fromArray( buffer, offset );\n\t\tthis.targetObject.matrixWorldNeedsUpdate = true;\n\n\t}\n\n\t_getValue_unbound( targetArray, offset ) {\n\n\t\tthis.bind();\n\t\tthis.getValue( targetArray, offset );\n\n\t}\n\n\t_setValue_unbound( sourceArray, offset ) {\n\n\t\tthis.bind();\n\t\tthis.setValue( sourceArray, offset );\n\n\t}\n\n\t// create getter / setter pair for a property in the scene graph\n\tbind() {\n\n\t\tlet targetObject = this.node;\n\t\tconst parsedPath = this.parsedPath;\n\n\t\tconst objectName = parsedPath.objectName;\n\t\tconst propertyName = parsedPath.propertyName;\n\t\tlet propertyIndex = parsedPath.propertyIndex;\n\n\t\tif ( ! targetObject ) {\n\n\t\t\ttargetObject = PropertyBinding.findNode( this.rootNode, parsedPath.nodeName );\n\n\t\t\tthis.node = targetObject;\n\n\t\t}\n\n\t\t// set fail state so we can just 'return' on error\n\t\tthis.getValue = this._getValue_unavailable;\n\t\tthis.setValue = this._setValue_unavailable;\n\n\t\t// ensure there is a value node\n\t\tif ( ! targetObject ) {\n\n\t\t\tconsole.warn( 'THREE.PropertyBinding: No target node found for track: ' + this.path + '.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( objectName ) {\n\n\t\t\tlet objectIndex = parsedPath.objectIndex;\n\n\t\t\t// special cases were we need to reach deeper into the hierarchy to get the face materials....\n\t\t\tswitch ( objectName ) {\n\n\t\t\t\tcase 'materials':\n\n\t\t\t\t\tif ( ! targetObject.material ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Can not bind to material as node does not have a material.', this );\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! targetObject.material.materials ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.', this );\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t}\n\n\t\t\t\t\ttargetObject = targetObject.material.materials;\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'bones':\n\n\t\t\t\t\tif ( ! targetObject.skeleton ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.', this );\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// potential future optimization: skip this if propertyIndex is already an integer\n\t\t\t\t\t// and convert the integer string to a true integer.\n\n\t\t\t\t\ttargetObject = targetObject.skeleton.bones;\n\n\t\t\t\t\t// support resolving morphTarget names into indices.\n\t\t\t\t\tfor ( let i = 0; i < targetObject.length; i ++ ) {\n\n\t\t\t\t\t\tif ( targetObject[ i ].name === objectIndex ) {\n\n\t\t\t\t\t\t\tobjectIndex = i;\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'map':\n\n\t\t\t\t\tif ( 'map' in targetObject ) {\n\n\t\t\t\t\t\ttargetObject = targetObject.map;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! targetObject.material ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Can not bind to material as node does not have a material.', this );\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! targetObject.material.map ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Can not bind to material.map as node.material does not have a map.', this );\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t}\n\n\t\t\t\t\ttargetObject = targetObject.material.map;\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\n\t\t\t\t\tif ( targetObject[ objectName ] === undefined ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Can not bind to objectName of node undefined.', this );\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t}\n\n\t\t\t\t\ttargetObject = targetObject[ objectName ];\n\n\t\t\t}\n\n\n\t\t\tif ( objectIndex !== undefined ) {\n\n\t\t\t\tif ( targetObject[ objectIndex ] === undefined ) {\n\n\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.', this, targetObject );\n\t\t\t\t\treturn;\n\n\t\t\t\t}\n\n\t\t\t\ttargetObject = targetObject[ objectIndex ];\n\n\t\t\t}\n\n\t\t}\n\n\t\t// resolve property\n\t\tconst nodeProperty = targetObject[ propertyName ];\n\n\t\tif ( nodeProperty === undefined ) {\n\n\t\t\tconst nodeName = parsedPath.nodeName;\n\n\t\t\tconsole.error( 'THREE.PropertyBinding: Trying to update property for track: ' + nodeName +\n\t\t\t\t'.' + propertyName + ' but it wasn\\'t found.', targetObject );\n\t\t\treturn;\n\n\t\t}\n\n\t\t// determine versioning scheme\n\t\tlet versioning = this.Versioning.None;\n\n\t\tthis.targetObject = targetObject;\n\n\t\tif ( targetObject.needsUpdate !== undefined ) { // material\n\n\t\t\tversioning = this.Versioning.NeedsUpdate;\n\n\t\t} else if ( targetObject.matrixWorldNeedsUpdate !== undefined ) { // node transform\n\n\t\t\tversioning = this.Versioning.MatrixWorldNeedsUpdate;\n\n\t\t}\n\n\t\t// determine how the property gets bound\n\t\tlet bindingType = this.BindingType.Direct;\n\n\t\tif ( propertyIndex !== undefined ) {\n\n\t\t\t// access a sub element of the property array (only primitives are supported right now)\n\n\t\t\tif ( propertyName === 'morphTargetInfluences' ) {\n\n\t\t\t\t// potential optimization, skip this if propertyIndex is already an integer, and convert the integer string to a true integer.\n\n\t\t\t\t// support resolving morphTarget names into indices.\n\t\t\t\tif ( ! targetObject.geometry ) {\n\n\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.', this );\n\t\t\t\t\treturn;\n\n\t\t\t\t}\n\n\t\t\t\tif ( ! targetObject.geometry.morphAttributes ) {\n\n\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.', this );\n\t\t\t\t\treturn;\n\n\t\t\t\t}\n\n\t\t\t\tif ( targetObject.morphTargetDictionary[ propertyIndex ] !== undefined ) {\n\n\t\t\t\t\tpropertyIndex = targetObject.morphTargetDictionary[ propertyIndex ];\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tbindingType = this.BindingType.ArrayElement;\n\n\t\t\tthis.resolvedProperty = nodeProperty;\n\t\t\tthis.propertyIndex = propertyIndex;\n\n\t\t} else if ( nodeProperty.fromArray !== undefined && nodeProperty.toArray !== undefined ) {\n\n\t\t\t// must use copy for Object3D.Euler/Quaternion\n\n\t\t\tbindingType = this.BindingType.HasFromToArray;\n\n\t\t\tthis.resolvedProperty = nodeProperty;\n\n\t\t} else if ( Array.isArray( nodeProperty ) ) {\n\n\t\t\tbindingType = this.BindingType.EntireArray;\n\n\t\t\tthis.resolvedProperty = nodeProperty;\n\n\t\t} else {\n\n\t\t\tthis.propertyName = propertyName;\n\n\t\t}\n\n\t\t// select getter / setter\n\t\tthis.getValue = this.GetterByBindingType[ bindingType ];\n\t\tthis.setValue = this.SetterByBindingTypeAndVersioning[ bindingType ][ versioning ];\n\n\t}\n\n\tunbind() {\n\n\t\tthis.node = null;\n\n\t\t// back to the prototype version of getValue / setValue\n\t\t// note: avoiding to mutate the shape of 'this' via 'delete'\n\t\tthis.getValue = this._getValue_unbound;\n\t\tthis.setValue = this._setValue_unbound;\n\n\t}\n\n}\n\nPropertyBinding.Composite = Composite;\n\nPropertyBinding.prototype.BindingType = {\n\tDirect: 0,\n\tEntireArray: 1,\n\tArrayElement: 2,\n\tHasFromToArray: 3\n};\n\nPropertyBinding.prototype.Versioning = {\n\tNone: 0,\n\tNeedsUpdate: 1,\n\tMatrixWorldNeedsUpdate: 2\n};\n\nPropertyBinding.prototype.GetterByBindingType = [\n\n\tPropertyBinding.prototype._getValue_direct,\n\tPropertyBinding.prototype._getValue_array,\n\tPropertyBinding.prototype._getValue_arrayElement,\n\tPropertyBinding.prototype._getValue_toArray,\n\n];\n\nPropertyBinding.prototype.SetterByBindingTypeAndVersioning = [\n\n\t[\n\t\t// Direct\n\t\tPropertyBinding.prototype._setValue_direct,\n\t\tPropertyBinding.prototype._setValue_direct_setNeedsUpdate,\n\t\tPropertyBinding.prototype._setValue_direct_setMatrixWorldNeedsUpdate,\n\n\t], [\n\n\t\t// EntireArray\n\n\t\tPropertyBinding.prototype._setValue_array,\n\t\tPropertyBinding.prototype._setValue_array_setNeedsUpdate,\n\t\tPropertyBinding.prototype._setValue_array_setMatrixWorldNeedsUpdate,\n\n\t], [\n\n\t\t// ArrayElement\n\t\tPropertyBinding.prototype._setValue_arrayElement,\n\t\tPropertyBinding.prototype._setValue_arrayElement_setNeedsUpdate,\n\t\tPropertyBinding.prototype._setValue_arrayElement_setMatrixWorldNeedsUpdate,\n\n\t], [\n\n\t\t// HasToFromArray\n\t\tPropertyBinding.prototype._setValue_fromArray,\n\t\tPropertyBinding.prototype._setValue_fromArray_setNeedsUpdate,\n\t\tPropertyBinding.prototype._setValue_fromArray_setMatrixWorldNeedsUpdate,\n\n\t]\n\n];\n\n/**\n *\n * A group of objects that receives a shared animation state.\n *\n * Usage:\n *\n * - Add objects you would otherwise pass as 'root' to the\n * constructor or the .clipAction method of AnimationMixer.\n *\n * - Instead pass this object as 'root'.\n *\n * - You can also add and remove objects later when the mixer\n * is running.\n *\n * Note:\n *\n * Objects of this class appear as one object to the mixer,\n * so cache control of the individual objects must be done\n * on the group.\n *\n * Limitation:\n *\n * - The animated properties must be compatible among the\n * all objects in the group.\n *\n * - A single property can either be controlled through a\n * target group or directly, but not both.\n */\n\nclass AnimationObjectGroup {\n\n\tconstructor() {\n\n\t\tthis.isAnimationObjectGroup = true;\n\n\t\tthis.uuid = generateUUID();\n\n\t\t// cached objects followed by the active ones\n\t\tthis._objects = Array.prototype.slice.call( arguments );\n\n\t\tthis.nCachedObjects_ = 0; // threshold\n\t\t// note: read by PropertyBinding.Composite\n\n\t\tconst indices = {};\n\t\tthis._indicesByUUID = indices; // for bookkeeping\n\n\t\tfor ( let i = 0, n = arguments.length; i !== n; ++ i ) {\n\n\t\t\tindices[ arguments[ i ].uuid ] = i;\n\n\t\t}\n\n\t\tthis._paths = []; // inside: string\n\t\tthis._parsedPaths = []; // inside: { we don't care, here }\n\t\tthis._bindings = []; // inside: Array< PropertyBinding >\n\t\tthis._bindingsIndicesByPath = {}; // inside: indices in these arrays\n\n\t\tconst scope = this;\n\n\t\tthis.stats = {\n\n\t\t\tobjects: {\n\t\t\t\tget total() {\n\n\t\t\t\t\treturn scope._objects.length;\n\n\t\t\t\t},\n\t\t\t\tget inUse() {\n\n\t\t\t\t\treturn this.total - scope.nCachedObjects_;\n\n\t\t\t\t}\n\t\t\t},\n\t\t\tget bindingsPerObject() {\n\n\t\t\t\treturn scope._bindings.length;\n\n\t\t\t}\n\n\t\t};\n\n\t}\n\n\tadd() {\n\n\t\tconst objects = this._objects,\n\t\t\tindicesByUUID = this._indicesByUUID,\n\t\t\tpaths = this._paths,\n\t\t\tparsedPaths = this._parsedPaths,\n\t\t\tbindings = this._bindings,\n\t\t\tnBindings = bindings.length;\n\n\t\tlet knownObject = undefined,\n\t\t\tnObjects = objects.length,\n\t\t\tnCachedObjects = this.nCachedObjects_;\n\n\t\tfor ( let i = 0, n = arguments.length; i !== n; ++ i ) {\n\n\t\t\tconst object = arguments[ i ],\n\t\t\t\tuuid = object.uuid;\n\t\t\tlet index = indicesByUUID[ uuid ];\n\n\t\t\tif ( index === undefined ) {\n\n\t\t\t\t// unknown object -> add it to the ACTIVE region\n\n\t\t\t\tindex = nObjects ++;\n\t\t\t\tindicesByUUID[ uuid ] = index;\n\t\t\t\tobjects.push( object );\n\n\t\t\t\t// accounting is done, now do the same for all bindings\n\n\t\t\t\tfor ( let j = 0, m = nBindings; j !== m; ++ j ) {\n\n\t\t\t\t\tbindings[ j ].push( new PropertyBinding( object, paths[ j ], parsedPaths[ j ] ) );\n\n\t\t\t\t}\n\n\t\t\t} else if ( index < nCachedObjects ) {\n\n\t\t\t\tknownObject = objects[ index ];\n\n\t\t\t\t// move existing object to the ACTIVE region\n\n\t\t\t\tconst firstActiveIndex = -- nCachedObjects,\n\t\t\t\t\tlastCachedObject = objects[ firstActiveIndex ];\n\n\t\t\t\tindicesByUUID[ lastCachedObject.uuid ] = index;\n\t\t\t\tobjects[ index ] = lastCachedObject;\n\n\t\t\t\tindicesByUUID[ uuid ] = firstActiveIndex;\n\t\t\t\tobjects[ firstActiveIndex ] = object;\n\n\t\t\t\t// accounting is done, now do the same for all bindings\n\n\t\t\t\tfor ( let j = 0, m = nBindings; j !== m; ++ j ) {\n\n\t\t\t\t\tconst bindingsForPath = bindings[ j ],\n\t\t\t\t\t\tlastCached = bindingsForPath[ firstActiveIndex ];\n\n\t\t\t\t\tlet binding = bindingsForPath[ index ];\n\n\t\t\t\t\tbindingsForPath[ index ] = lastCached;\n\n\t\t\t\t\tif ( binding === undefined ) {\n\n\t\t\t\t\t\t// since we do not bother to create new bindings\n\t\t\t\t\t\t// for objects that are cached, the binding may\n\t\t\t\t\t\t// or may not exist\n\n\t\t\t\t\t\tbinding = new PropertyBinding( object, paths[ j ], parsedPaths[ j ] );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbindingsForPath[ firstActiveIndex ] = binding;\n\n\t\t\t\t}\n\n\t\t\t} else if ( objects[ index ] !== knownObject ) {\n\n\t\t\t\tconsole.error( 'THREE.AnimationObjectGroup: Different objects with the same UUID ' +\n\t\t\t\t\t'detected. Clean the caches or recreate your infrastructure when reloading scenes.' );\n\n\t\t\t} // else the object is already where we want it to be\n\n\t\t} // for arguments\n\n\t\tthis.nCachedObjects_ = nCachedObjects;\n\n\t}\n\n\tremove() {\n\n\t\tconst objects = this._objects,\n\t\t\tindicesByUUID = this._indicesByUUID,\n\t\t\tbindings = this._bindings,\n\t\t\tnBindings = bindings.length;\n\n\t\tlet nCachedObjects = this.nCachedObjects_;\n\n\t\tfor ( let i = 0, n = arguments.length; i !== n; ++ i ) {\n\n\t\t\tconst object = arguments[ i ],\n\t\t\t\tuuid = object.uuid,\n\t\t\t\tindex = indicesByUUID[ uuid ];\n\n\t\t\tif ( index !== undefined && index >= nCachedObjects ) {\n\n\t\t\t\t// move existing object into the CACHED region\n\n\t\t\t\tconst lastCachedIndex = nCachedObjects ++,\n\t\t\t\t\tfirstActiveObject = objects[ lastCachedIndex ];\n\n\t\t\t\tindicesByUUID[ firstActiveObject.uuid ] = index;\n\t\t\t\tobjects[ index ] = firstActiveObject;\n\n\t\t\t\tindicesByUUID[ uuid ] = lastCachedIndex;\n\t\t\t\tobjects[ lastCachedIndex ] = object;\n\n\t\t\t\t// accounting is done, now do the same for all bindings\n\n\t\t\t\tfor ( let j = 0, m = nBindings; j !== m; ++ j ) {\n\n\t\t\t\t\tconst bindingsForPath = bindings[ j ],\n\t\t\t\t\t\tfirstActive = bindingsForPath[ lastCachedIndex ],\n\t\t\t\t\t\tbinding = bindingsForPath[ index ];\n\n\t\t\t\t\tbindingsForPath[ index ] = firstActive;\n\t\t\t\t\tbindingsForPath[ lastCachedIndex ] = binding;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} // for arguments\n\n\t\tthis.nCachedObjects_ = nCachedObjects;\n\n\t}\n\n\t// remove & forget\n\tuncache() {\n\n\t\tconst objects = this._objects,\n\t\t\tindicesByUUID = this._indicesByUUID,\n\t\t\tbindings = this._bindings,\n\t\t\tnBindings = bindings.length;\n\n\t\tlet nCachedObjects = this.nCachedObjects_,\n\t\t\tnObjects = objects.length;\n\n\t\tfor ( let i = 0, n = arguments.length; i !== n; ++ i ) {\n\n\t\t\tconst object = arguments[ i ],\n\t\t\t\tuuid = object.uuid,\n\t\t\t\tindex = indicesByUUID[ uuid ];\n\n\t\t\tif ( index !== undefined ) {\n\n\t\t\t\tdelete indicesByUUID[ uuid ];\n\n\t\t\t\tif ( index < nCachedObjects ) {\n\n\t\t\t\t\t// object is cached, shrink the CACHED region\n\n\t\t\t\t\tconst firstActiveIndex = -- nCachedObjects,\n\t\t\t\t\t\tlastCachedObject = objects[ firstActiveIndex ],\n\t\t\t\t\t\tlastIndex = -- nObjects,\n\t\t\t\t\t\tlastObject = objects[ lastIndex ];\n\n\t\t\t\t\t// last cached object takes this object's place\n\t\t\t\t\tindicesByUUID[ lastCachedObject.uuid ] = index;\n\t\t\t\t\tobjects[ index ] = lastCachedObject;\n\n\t\t\t\t\t// last object goes to the activated slot and pop\n\t\t\t\t\tindicesByUUID[ lastObject.uuid ] = firstActiveIndex;\n\t\t\t\t\tobjects[ firstActiveIndex ] = lastObject;\n\t\t\t\t\tobjects.pop();\n\n\t\t\t\t\t// accounting is done, now do the same for all bindings\n\n\t\t\t\t\tfor ( let j = 0, m = nBindings; j !== m; ++ j ) {\n\n\t\t\t\t\t\tconst bindingsForPath = bindings[ j ],\n\t\t\t\t\t\t\tlastCached = bindingsForPath[ firstActiveIndex ],\n\t\t\t\t\t\t\tlast = bindingsForPath[ lastIndex ];\n\n\t\t\t\t\t\tbindingsForPath[ index ] = lastCached;\n\t\t\t\t\t\tbindingsForPath[ firstActiveIndex ] = last;\n\t\t\t\t\t\tbindingsForPath.pop();\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// object is active, just swap with the last and pop\n\n\t\t\t\t\tconst lastIndex = -- nObjects,\n\t\t\t\t\t\tlastObject = objects[ lastIndex ];\n\n\t\t\t\t\tif ( lastIndex > 0 ) {\n\n\t\t\t\t\t\tindicesByUUID[ lastObject.uuid ] = index;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tobjects[ index ] = lastObject;\n\t\t\t\t\tobjects.pop();\n\n\t\t\t\t\t// accounting is done, now do the same for all bindings\n\n\t\t\t\t\tfor ( let j = 0, m = nBindings; j !== m; ++ j ) {\n\n\t\t\t\t\t\tconst bindingsForPath = bindings[ j ];\n\n\t\t\t\t\t\tbindingsForPath[ index ] = bindingsForPath[ lastIndex ];\n\t\t\t\t\t\tbindingsForPath.pop();\n\n\t\t\t\t\t}\n\n\t\t\t\t} // cached or active\n\n\t\t\t} // if object is known\n\n\t\t} // for arguments\n\n\t\tthis.nCachedObjects_ = nCachedObjects;\n\n\t}\n\n\t// Internal interface used by befriended PropertyBinding.Composite:\n\n\tsubscribe_( path, parsedPath ) {\n\n\t\t// returns an array of bindings for the given path that is changed\n\t\t// according to the contained objects in the group\n\n\t\tconst indicesByPath = this._bindingsIndicesByPath;\n\t\tlet index = indicesByPath[ path ];\n\t\tconst bindings = this._bindings;\n\n\t\tif ( index !== undefined ) return bindings[ index ];\n\n\t\tconst paths = this._paths,\n\t\t\tparsedPaths = this._parsedPaths,\n\t\t\tobjects = this._objects,\n\t\t\tnObjects = objects.length,\n\t\t\tnCachedObjects = this.nCachedObjects_,\n\t\t\tbindingsForPath = new Array( nObjects );\n\n\t\tindex = bindings.length;\n\n\t\tindicesByPath[ path ] = index;\n\n\t\tpaths.push( path );\n\t\tparsedPaths.push( parsedPath );\n\t\tbindings.push( bindingsForPath );\n\n\t\tfor ( let i = nCachedObjects, n = objects.length; i !== n; ++ i ) {\n\n\t\t\tconst object = objects[ i ];\n\t\t\tbindingsForPath[ i ] = new PropertyBinding( object, path, parsedPath );\n\n\t\t}\n\n\t\treturn bindingsForPath;\n\n\t}\n\n\tunsubscribe_( path ) {\n\n\t\t// tells the group to forget about a property path and no longer\n\t\t// update the array previously obtained with 'subscribe_'\n\n\t\tconst indicesByPath = this._bindingsIndicesByPath,\n\t\t\tindex = indicesByPath[ path ];\n\n\t\tif ( index !== undefined ) {\n\n\t\t\tconst paths = this._paths,\n\t\t\t\tparsedPaths = this._parsedPaths,\n\t\t\t\tbindings = this._bindings,\n\t\t\t\tlastBindingsIndex = bindings.length - 1,\n\t\t\t\tlastBindings = bindings[ lastBindingsIndex ],\n\t\t\t\tlastBindingsPath = path[ lastBindingsIndex ];\n\n\t\t\tindicesByPath[ lastBindingsPath ] = index;\n\n\t\t\tbindings[ index ] = lastBindings;\n\t\t\tbindings.pop();\n\n\t\t\tparsedPaths[ index ] = parsedPaths[ lastBindingsIndex ];\n\t\t\tparsedPaths.pop();\n\n\t\t\tpaths[ index ] = paths[ lastBindingsIndex ];\n\t\t\tpaths.pop();\n\n\t\t}\n\n\t}\n\n}\n\nclass AnimationAction {\n\n\tconstructor( mixer, clip, localRoot = null, blendMode = clip.blendMode ) {\n\n\t\tthis._mixer = mixer;\n\t\tthis._clip = clip;\n\t\tthis._localRoot = localRoot;\n\t\tthis.blendMode = blendMode;\n\n\t\tconst tracks = clip.tracks,\n\t\t\tnTracks = tracks.length,\n\t\t\tinterpolants = new Array( nTracks );\n\n\t\tconst interpolantSettings = {\n\t\t\tendingStart: ZeroCurvatureEnding,\n\t\t\tendingEnd: ZeroCurvatureEnding\n\t\t};\n\n\t\tfor ( let i = 0; i !== nTracks; ++ i ) {\n\n\t\t\tconst interpolant = tracks[ i ].createInterpolant( null );\n\t\t\tinterpolants[ i ] = interpolant;\n\t\t\tinterpolant.settings = interpolantSettings;\n\n\t\t}\n\n\t\tthis._interpolantSettings = interpolantSettings;\n\n\t\tthis._interpolants = interpolants; // bound by the mixer\n\n\t\t// inside: PropertyMixer (managed by the mixer)\n\t\tthis._propertyBindings = new Array( nTracks );\n\n\t\tthis._cacheIndex = null; // for the memory manager\n\t\tthis._byClipCacheIndex = null; // for the memory manager\n\n\t\tthis._timeScaleInterpolant = null;\n\t\tthis._weightInterpolant = null;\n\n\t\tthis.loop = LoopRepeat;\n\t\tthis._loopCount = - 1;\n\n\t\t// global mixer time when the action is to be started\n\t\t// it's set back to 'null' upon start of the action\n\t\tthis._startTime = null;\n\n\t\t// scaled local time of the action\n\t\t// gets clamped or wrapped to 0..clip.duration according to loop\n\t\tthis.time = 0;\n\n\t\tthis.timeScale = 1;\n\t\tthis._effectiveTimeScale = 1;\n\n\t\tthis.weight = 1;\n\t\tthis._effectiveWeight = 1;\n\n\t\tthis.repetitions = Infinity; // no. of repetitions when looping\n\n\t\tthis.paused = false; // true -> zero effective time scale\n\t\tthis.enabled = true; // false -> zero effective weight\n\n\t\tthis.clampWhenFinished = false;// keep feeding the last frame?\n\n\t\tthis.zeroSlopeAtStart = true;// for smooth interpolation w/o separate\n\t\tthis.zeroSlopeAtEnd = true;// clips for start, loop and end\n\n\t}\n\n\t// State & Scheduling\n\n\tplay() {\n\n\t\tthis._mixer._activateAction( this );\n\n\t\treturn this;\n\n\t}\n\n\tstop() {\n\n\t\tthis._mixer._deactivateAction( this );\n\n\t\treturn this.reset();\n\n\t}\n\n\treset() {\n\n\t\tthis.paused = false;\n\t\tthis.enabled = true;\n\n\t\tthis.time = 0; // restart clip\n\t\tthis._loopCount = - 1;// forget previous loops\n\t\tthis._startTime = null;// forget scheduling\n\n\t\treturn this.stopFading().stopWarping();\n\n\t}\n\n\tisRunning() {\n\n\t\treturn this.enabled && ! this.paused && this.timeScale !== 0 &&\n\t\t\tthis._startTime === null && this._mixer._isActiveAction( this );\n\n\t}\n\n\t// return true when play has been called\n\tisScheduled() {\n\n\t\treturn this._mixer._isActiveAction( this );\n\n\t}\n\n\tstartAt( time ) {\n\n\t\tthis._startTime = time;\n\n\t\treturn this;\n\n\t}\n\n\tsetLoop( mode, repetitions ) {\n\n\t\tthis.loop = mode;\n\t\tthis.repetitions = repetitions;\n\n\t\treturn this;\n\n\t}\n\n\t// Weight\n\n\t// set the weight stopping any scheduled fading\n\t// although .enabled = false yields an effective weight of zero, this\n\t// method does *not* change .enabled, because it would be confusing\n\tsetEffectiveWeight( weight ) {\n\n\t\tthis.weight = weight;\n\n\t\t// note: same logic as when updated at runtime\n\t\tthis._effectiveWeight = this.enabled ? weight : 0;\n\n\t\treturn this.stopFading();\n\n\t}\n\n\t// return the weight considering fading and .enabled\n\tgetEffectiveWeight() {\n\n\t\treturn this._effectiveWeight;\n\n\t}\n\n\tfadeIn( duration ) {\n\n\t\treturn this._scheduleFading( duration, 0, 1 );\n\n\t}\n\n\tfadeOut( duration ) {\n\n\t\treturn this._scheduleFading( duration, 1, 0 );\n\n\t}\n\n\tcrossFadeFrom( fadeOutAction, duration, warp ) {\n\n\t\tfadeOutAction.fadeOut( duration );\n\t\tthis.fadeIn( duration );\n\n\t\tif ( warp ) {\n\n\t\t\tconst fadeInDuration = this._clip.duration,\n\t\t\t\tfadeOutDuration = fadeOutAction._clip.duration,\n\n\t\t\t\tstartEndRatio = fadeOutDuration / fadeInDuration,\n\t\t\t\tendStartRatio = fadeInDuration / fadeOutDuration;\n\n\t\t\tfadeOutAction.warp( 1.0, startEndRatio, duration );\n\t\t\tthis.warp( endStartRatio, 1.0, duration );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tcrossFadeTo( fadeInAction, duration, warp ) {\n\n\t\treturn fadeInAction.crossFadeFrom( this, duration, warp );\n\n\t}\n\n\tstopFading() {\n\n\t\tconst weightInterpolant = this._weightInterpolant;\n\n\t\tif ( weightInterpolant !== null ) {\n\n\t\t\tthis._weightInterpolant = null;\n\t\t\tthis._mixer._takeBackControlInterpolant( weightInterpolant );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// Time Scale Control\n\n\t// set the time scale stopping any scheduled warping\n\t// although .paused = true yields an effective time scale of zero, this\n\t// method does *not* change .paused, because it would be confusing\n\tsetEffectiveTimeScale( timeScale ) {\n\n\t\tthis.timeScale = timeScale;\n\t\tthis._effectiveTimeScale = this.paused ? 0 : timeScale;\n\n\t\treturn this.stopWarping();\n\n\t}\n\n\t// return the time scale considering warping and .paused\n\tgetEffectiveTimeScale() {\n\n\t\treturn this._effectiveTimeScale;\n\n\t}\n\n\tsetDuration( duration ) {\n\n\t\tthis.timeScale = this._clip.duration / duration;\n\n\t\treturn this.stopWarping();\n\n\t}\n\n\tsyncWith( action ) {\n\n\t\tthis.time = action.time;\n\t\tthis.timeScale = action.timeScale;\n\n\t\treturn this.stopWarping();\n\n\t}\n\n\thalt( duration ) {\n\n\t\treturn this.warp( this._effectiveTimeScale, 0, duration );\n\n\t}\n\n\twarp( startTimeScale, endTimeScale, duration ) {\n\n\t\tconst mixer = this._mixer,\n\t\t\tnow = mixer.time,\n\t\t\ttimeScale = this.timeScale;\n\n\t\tlet interpolant = this._timeScaleInterpolant;\n\n\t\tif ( interpolant === null ) {\n\n\t\t\tinterpolant = mixer._lendControlInterpolant();\n\t\t\tthis._timeScaleInterpolant = interpolant;\n\n\t\t}\n\n\t\tconst times = interpolant.parameterPositions,\n\t\t\tvalues = interpolant.sampleValues;\n\n\t\ttimes[ 0 ] = now;\n\t\ttimes[ 1 ] = now + duration;\n\n\t\tvalues[ 0 ] = startTimeScale / timeScale;\n\t\tvalues[ 1 ] = endTimeScale / timeScale;\n\n\t\treturn this;\n\n\t}\n\n\tstopWarping() {\n\n\t\tconst timeScaleInterpolant = this._timeScaleInterpolant;\n\n\t\tif ( timeScaleInterpolant !== null ) {\n\n\t\t\tthis._timeScaleInterpolant = null;\n\t\t\tthis._mixer._takeBackControlInterpolant( timeScaleInterpolant );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// Object Accessors\n\n\tgetMixer() {\n\n\t\treturn this._mixer;\n\n\t}\n\n\tgetClip() {\n\n\t\treturn this._clip;\n\n\t}\n\n\tgetRoot() {\n\n\t\treturn this._localRoot || this._mixer._root;\n\n\t}\n\n\t// Interna\n\n\t_update( time, deltaTime, timeDirection, accuIndex ) {\n\n\t\t// called by the mixer\n\n\t\tif ( ! this.enabled ) {\n\n\t\t\t// call ._updateWeight() to update ._effectiveWeight\n\n\t\t\tthis._updateWeight( time );\n\t\t\treturn;\n\n\t\t}\n\n\t\tconst startTime = this._startTime;\n\n\t\tif ( startTime !== null ) {\n\n\t\t\t// check for scheduled start of action\n\n\t\t\tconst timeRunning = ( time - startTime ) * timeDirection;\n\t\t\tif ( timeRunning < 0 || timeDirection === 0 ) {\n\n\t\t\t\tdeltaTime = 0;\n\n\t\t\t} else {\n\n\n\t\t\t\tthis._startTime = null; // unschedule\n\t\t\t\tdeltaTime = timeDirection * timeRunning;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// apply time scale and advance time\n\n\t\tdeltaTime *= this._updateTimeScale( time );\n\t\tconst clipTime = this._updateTime( deltaTime );\n\n\t\t// note: _updateTime may disable the action resulting in\n\t\t// an effective weight of 0\n\n\t\tconst weight = this._updateWeight( time );\n\n\t\tif ( weight > 0 ) {\n\n\t\t\tconst interpolants = this._interpolants;\n\t\t\tconst propertyMixers = this._propertyBindings;\n\n\t\t\tswitch ( this.blendMode ) {\n\n\t\t\t\tcase AdditiveAnimationBlendMode:\n\n\t\t\t\t\tfor ( let j = 0, m = interpolants.length; j !== m; ++ j ) {\n\n\t\t\t\t\t\tinterpolants[ j ].evaluate( clipTime );\n\t\t\t\t\t\tpropertyMixers[ j ].accumulateAdditive( weight );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase NormalAnimationBlendMode:\n\t\t\t\tdefault:\n\n\t\t\t\t\tfor ( let j = 0, m = interpolants.length; j !== m; ++ j ) {\n\n\t\t\t\t\t\tinterpolants[ j ].evaluate( clipTime );\n\t\t\t\t\t\tpropertyMixers[ j ].accumulate( accuIndex, weight );\n\n\t\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t_updateWeight( time ) {\n\n\t\tlet weight = 0;\n\n\t\tif ( this.enabled ) {\n\n\t\t\tweight = this.weight;\n\t\t\tconst interpolant = this._weightInterpolant;\n\n\t\t\tif ( interpolant !== null ) {\n\n\t\t\t\tconst interpolantValue = interpolant.evaluate( time )[ 0 ];\n\n\t\t\t\tweight *= interpolantValue;\n\n\t\t\t\tif ( time > interpolant.parameterPositions[ 1 ] ) {\n\n\t\t\t\t\tthis.stopFading();\n\n\t\t\t\t\tif ( interpolantValue === 0 ) {\n\n\t\t\t\t\t\t// faded out, disable\n\t\t\t\t\t\tthis.enabled = false;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis._effectiveWeight = weight;\n\t\treturn weight;\n\n\t}\n\n\t_updateTimeScale( time ) {\n\n\t\tlet timeScale = 0;\n\n\t\tif ( ! this.paused ) {\n\n\t\t\ttimeScale = this.timeScale;\n\n\t\t\tconst interpolant = this._timeScaleInterpolant;\n\n\t\t\tif ( interpolant !== null ) {\n\n\t\t\t\tconst interpolantValue = interpolant.evaluate( time )[ 0 ];\n\n\t\t\t\ttimeScale *= interpolantValue;\n\n\t\t\t\tif ( time > interpolant.parameterPositions[ 1 ] ) {\n\n\t\t\t\t\tthis.stopWarping();\n\n\t\t\t\t\tif ( timeScale === 0 ) {\n\n\t\t\t\t\t\t// motion has halted, pause\n\t\t\t\t\t\tthis.paused = true;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// warp done - apply final time scale\n\t\t\t\t\t\tthis.timeScale = timeScale;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis._effectiveTimeScale = timeScale;\n\t\treturn timeScale;\n\n\t}\n\n\t_updateTime( deltaTime ) {\n\n\t\tconst duration = this._clip.duration;\n\t\tconst loop = this.loop;\n\n\t\tlet time = this.time + deltaTime;\n\t\tlet loopCount = this._loopCount;\n\n\t\tconst pingPong = ( loop === LoopPingPong );\n\n\t\tif ( deltaTime === 0 ) {\n\n\t\t\tif ( loopCount === - 1 ) return time;\n\n\t\t\treturn ( pingPong && ( loopCount & 1 ) === 1 ) ? duration - time : time;\n\n\t\t}\n\n\t\tif ( loop === LoopOnce ) {\n\n\t\t\tif ( loopCount === - 1 ) {\n\n\t\t\t\t// just started\n\n\t\t\t\tthis._loopCount = 0;\n\t\t\t\tthis._setEndings( true, true, false );\n\n\t\t\t}\n\n\t\t\thandle_stop: {\n\n\t\t\t\tif ( time >= duration ) {\n\n\t\t\t\t\ttime = duration;\n\n\t\t\t\t} else if ( time < 0 ) {\n\n\t\t\t\t\ttime = 0;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis.time = time;\n\n\t\t\t\t\tbreak handle_stop;\n\n\t\t\t\t}\n\n\t\t\t\tif ( this.clampWhenFinished ) this.paused = true;\n\t\t\t\telse this.enabled = false;\n\n\t\t\t\tthis.time = time;\n\n\t\t\t\tthis._mixer.dispatchEvent( {\n\t\t\t\t\ttype: 'finished', action: this,\n\t\t\t\t\tdirection: deltaTime < 0 ? - 1 : 1\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t} else { // repetitive Repeat or PingPong\n\n\t\t\tif ( loopCount === - 1 ) {\n\n\t\t\t\t// just started\n\n\t\t\t\tif ( deltaTime >= 0 ) {\n\n\t\t\t\t\tloopCount = 0;\n\n\t\t\t\t\tthis._setEndings( true, this.repetitions === 0, pingPong );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// when looping in reverse direction, the initial\n\t\t\t\t\t// transition through zero counts as a repetition,\n\t\t\t\t\t// so leave loopCount at -1\n\n\t\t\t\t\tthis._setEndings( this.repetitions === 0, true, pingPong );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( time >= duration || time < 0 ) {\n\n\t\t\t\t// wrap around\n\n\t\t\t\tconst loopDelta = Math.floor( time / duration ); // signed\n\t\t\t\ttime -= duration * loopDelta;\n\n\t\t\t\tloopCount += Math.abs( loopDelta );\n\n\t\t\t\tconst pending = this.repetitions - loopCount;\n\n\t\t\t\tif ( pending <= 0 ) {\n\n\t\t\t\t\t// have to stop (switch state, clamp time, fire event)\n\n\t\t\t\t\tif ( this.clampWhenFinished ) this.paused = true;\n\t\t\t\t\telse this.enabled = false;\n\n\t\t\t\t\ttime = deltaTime > 0 ? duration : 0;\n\n\t\t\t\t\tthis.time = time;\n\n\t\t\t\t\tthis._mixer.dispatchEvent( {\n\t\t\t\t\t\ttype: 'finished', action: this,\n\t\t\t\t\t\tdirection: deltaTime > 0 ? 1 : - 1\n\t\t\t\t\t} );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// keep running\n\n\t\t\t\t\tif ( pending === 1 ) {\n\n\t\t\t\t\t\t// entering the last round\n\n\t\t\t\t\t\tconst atStart = deltaTime < 0;\n\t\t\t\t\t\tthis._setEndings( atStart, ! atStart, pingPong );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tthis._setEndings( false, false, pingPong );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tthis._loopCount = loopCount;\n\n\t\t\t\t\tthis.time = time;\n\n\t\t\t\t\tthis._mixer.dispatchEvent( {\n\t\t\t\t\t\ttype: 'loop', action: this, loopDelta: loopDelta\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tthis.time = time;\n\n\t\t\t}\n\n\t\t\tif ( pingPong && ( loopCount & 1 ) === 1 ) {\n\n\t\t\t\t// invert time for the \"pong round\"\n\n\t\t\t\treturn duration - time;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn time;\n\n\t}\n\n\t_setEndings( atStart, atEnd, pingPong ) {\n\n\t\tconst settings = this._interpolantSettings;\n\n\t\tif ( pingPong ) {\n\n\t\t\tsettings.endingStart = ZeroSlopeEnding;\n\t\t\tsettings.endingEnd = ZeroSlopeEnding;\n\n\t\t} else {\n\n\t\t\t// assuming for LoopOnce atStart == atEnd == true\n\n\t\t\tif ( atStart ) {\n\n\t\t\t\tsettings.endingStart = this.zeroSlopeAtStart ? ZeroSlopeEnding : ZeroCurvatureEnding;\n\n\t\t\t} else {\n\n\t\t\t\tsettings.endingStart = WrapAroundEnding;\n\n\t\t\t}\n\n\t\t\tif ( atEnd ) {\n\n\t\t\t\tsettings.endingEnd = this.zeroSlopeAtEnd ? ZeroSlopeEnding : ZeroCurvatureEnding;\n\n\t\t\t} else {\n\n\t\t\t\tsettings.endingEnd \t = WrapAroundEnding;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t_scheduleFading( duration, weightNow, weightThen ) {\n\n\t\tconst mixer = this._mixer, now = mixer.time;\n\t\tlet interpolant = this._weightInterpolant;\n\n\t\tif ( interpolant === null ) {\n\n\t\t\tinterpolant = mixer._lendControlInterpolant();\n\t\t\tthis._weightInterpolant = interpolant;\n\n\t\t}\n\n\t\tconst times = interpolant.parameterPositions,\n\t\t\tvalues = interpolant.sampleValues;\n\n\t\ttimes[ 0 ] = now;\n\t\tvalues[ 0 ] = weightNow;\n\t\ttimes[ 1 ] = now + duration;\n\t\tvalues[ 1 ] = weightThen;\n\n\t\treturn this;\n\n\t}\n\n}\n\nconst _controlInterpolantsResultBuffer = new Float32Array( 1 );\n\n\nclass AnimationMixer extends EventDispatcher {\n\n\tconstructor( root ) {\n\n\t\tsuper();\n\n\t\tthis._root = root;\n\t\tthis._initMemoryManager();\n\t\tthis._accuIndex = 0;\n\t\tthis.time = 0;\n\t\tthis.timeScale = 1.0;\n\n\t}\n\n\t_bindAction( action, prototypeAction ) {\n\n\t\tconst root = action._localRoot || this._root,\n\t\t\ttracks = action._clip.tracks,\n\t\t\tnTracks = tracks.length,\n\t\t\tbindings = action._propertyBindings,\n\t\t\tinterpolants = action._interpolants,\n\t\t\trootUuid = root.uuid,\n\t\t\tbindingsByRoot = this._bindingsByRootAndName;\n\n\t\tlet bindingsByName = bindingsByRoot[ rootUuid ];\n\n\t\tif ( bindingsByName === undefined ) {\n\n\t\t\tbindingsByName = {};\n\t\t\tbindingsByRoot[ rootUuid ] = bindingsByName;\n\n\t\t}\n\n\t\tfor ( let i = 0; i !== nTracks; ++ i ) {\n\n\t\t\tconst track = tracks[ i ],\n\t\t\t\ttrackName = track.name;\n\n\t\t\tlet binding = bindingsByName[ trackName ];\n\n\t\t\tif ( binding !== undefined ) {\n\n\t\t\t\t++ binding.referenceCount;\n\t\t\t\tbindings[ i ] = binding;\n\n\t\t\t} else {\n\n\t\t\t\tbinding = bindings[ i ];\n\n\t\t\t\tif ( binding !== undefined ) {\n\n\t\t\t\t\t// existing binding, make sure the cache knows\n\n\t\t\t\t\tif ( binding._cacheIndex === null ) {\n\n\t\t\t\t\t\t++ binding.referenceCount;\n\t\t\t\t\t\tthis._addInactiveBinding( binding, rootUuid, trackName );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tcontinue;\n\n\t\t\t\t}\n\n\t\t\t\tconst path = prototypeAction && prototypeAction.\n\t\t\t\t\t_propertyBindings[ i ].binding.parsedPath;\n\n\t\t\t\tbinding = new PropertyMixer(\n\t\t\t\t\tPropertyBinding.create( root, trackName, path ),\n\t\t\t\t\ttrack.ValueTypeName, track.getValueSize() );\n\n\t\t\t\t++ binding.referenceCount;\n\t\t\t\tthis._addInactiveBinding( binding, rootUuid, trackName );\n\n\t\t\t\tbindings[ i ] = binding;\n\n\t\t\t}\n\n\t\t\tinterpolants[ i ].resultBuffer = binding.buffer;\n\n\t\t}\n\n\t}\n\n\t_activateAction( action ) {\n\n\t\tif ( ! this._isActiveAction( action ) ) {\n\n\t\t\tif ( action._cacheIndex === null ) {\n\n\t\t\t\t// this action has been forgotten by the cache, but the user\n\t\t\t\t// appears to be still using it -> rebind\n\n\t\t\t\tconst rootUuid = ( action._localRoot || this._root ).uuid,\n\t\t\t\t\tclipUuid = action._clip.uuid,\n\t\t\t\t\tactionsForClip = this._actionsByClip[ clipUuid ];\n\n\t\t\t\tthis._bindAction( action,\n\t\t\t\t\tactionsForClip && actionsForClip.knownActions[ 0 ] );\n\n\t\t\t\tthis._addInactiveAction( action, clipUuid, rootUuid );\n\n\t\t\t}\n\n\t\t\tconst bindings = action._propertyBindings;\n\n\t\t\t// increment reference counts / sort out state\n\t\t\tfor ( let i = 0, n = bindings.length; i !== n; ++ i ) {\n\n\t\t\t\tconst binding = bindings[ i ];\n\n\t\t\t\tif ( binding.useCount ++ === 0 ) {\n\n\t\t\t\t\tthis._lendBinding( binding );\n\t\t\t\t\tbinding.saveOriginalState();\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis._lendAction( action );\n\n\t\t}\n\n\t}\n\n\t_deactivateAction( action ) {\n\n\t\tif ( this._isActiveAction( action ) ) {\n\n\t\t\tconst bindings = action._propertyBindings;\n\n\t\t\t// decrement reference counts / sort out state\n\t\t\tfor ( let i = 0, n = bindings.length; i !== n; ++ i ) {\n\n\t\t\t\tconst binding = bindings[ i ];\n\n\t\t\t\tif ( -- binding.useCount === 0 ) {\n\n\t\t\t\t\tbinding.restoreOriginalState();\n\t\t\t\t\tthis._takeBackBinding( binding );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis._takeBackAction( action );\n\n\t\t}\n\n\t}\n\n\t// Memory manager\n\n\t_initMemoryManager() {\n\n\t\tthis._actions = []; // 'nActiveActions' followed by inactive ones\n\t\tthis._nActiveActions = 0;\n\n\t\tthis._actionsByClip = {};\n\t\t// inside:\n\t\t// {\n\t\t// \tknownActions: Array< AnimationAction > - used as prototypes\n\t\t// \tactionByRoot: AnimationAction - lookup\n\t\t// }\n\n\n\t\tthis._bindings = []; // 'nActiveBindings' followed by inactive ones\n\t\tthis._nActiveBindings = 0;\n\n\t\tthis._bindingsByRootAndName = {}; // inside: Map< name, PropertyMixer >\n\n\n\t\tthis._controlInterpolants = []; // same game as above\n\t\tthis._nActiveControlInterpolants = 0;\n\n\t\tconst scope = this;\n\n\t\tthis.stats = {\n\n\t\t\tactions: {\n\t\t\t\tget total() {\n\n\t\t\t\t\treturn scope._actions.length;\n\n\t\t\t\t},\n\t\t\t\tget inUse() {\n\n\t\t\t\t\treturn scope._nActiveActions;\n\n\t\t\t\t}\n\t\t\t},\n\t\t\tbindings: {\n\t\t\t\tget total() {\n\n\t\t\t\t\treturn scope._bindings.length;\n\n\t\t\t\t},\n\t\t\t\tget inUse() {\n\n\t\t\t\t\treturn scope._nActiveBindings;\n\n\t\t\t\t}\n\t\t\t},\n\t\t\tcontrolInterpolants: {\n\t\t\t\tget total() {\n\n\t\t\t\t\treturn scope._controlInterpolants.length;\n\n\t\t\t\t},\n\t\t\t\tget inUse() {\n\n\t\t\t\t\treturn scope._nActiveControlInterpolants;\n\n\t\t\t\t}\n\t\t\t}\n\n\t\t};\n\n\t}\n\n\t// Memory management for AnimationAction objects\n\n\t_isActiveAction( action ) {\n\n\t\tconst index = action._cacheIndex;\n\t\treturn index !== null && index < this._nActiveActions;\n\n\t}\n\n\t_addInactiveAction( action, clipUuid, rootUuid ) {\n\n\t\tconst actions = this._actions,\n\t\t\tactionsByClip = this._actionsByClip;\n\n\t\tlet actionsForClip = actionsByClip[ clipUuid ];\n\n\t\tif ( actionsForClip === undefined ) {\n\n\t\t\tactionsForClip = {\n\n\t\t\t\tknownActions: [ action ],\n\t\t\t\tactionByRoot: {}\n\n\t\t\t};\n\n\t\t\taction._byClipCacheIndex = 0;\n\n\t\t\tactionsByClip[ clipUuid ] = actionsForClip;\n\n\t\t} else {\n\n\t\t\tconst knownActions = actionsForClip.knownActions;\n\n\t\t\taction._byClipCacheIndex = knownActions.length;\n\t\t\tknownActions.push( action );\n\n\t\t}\n\n\t\taction._cacheIndex = actions.length;\n\t\tactions.push( action );\n\n\t\tactionsForClip.actionByRoot[ rootUuid ] = action;\n\n\t}\n\n\t_removeInactiveAction( action ) {\n\n\t\tconst actions = this._actions,\n\t\t\tlastInactiveAction = actions[ actions.length - 1 ],\n\t\t\tcacheIndex = action._cacheIndex;\n\n\t\tlastInactiveAction._cacheIndex = cacheIndex;\n\t\tactions[ cacheIndex ] = lastInactiveAction;\n\t\tactions.pop();\n\n\t\taction._cacheIndex = null;\n\n\n\t\tconst clipUuid = action._clip.uuid,\n\t\t\tactionsByClip = this._actionsByClip,\n\t\t\tactionsForClip = actionsByClip[ clipUuid ],\n\t\t\tknownActionsForClip = actionsForClip.knownActions,\n\n\t\t\tlastKnownAction =\n\t\t\t\tknownActionsForClip[ knownActionsForClip.length - 1 ],\n\n\t\t\tbyClipCacheIndex = action._byClipCacheIndex;\n\n\t\tlastKnownAction._byClipCacheIndex = byClipCacheIndex;\n\t\tknownActionsForClip[ byClipCacheIndex ] = lastKnownAction;\n\t\tknownActionsForClip.pop();\n\n\t\taction._byClipCacheIndex = null;\n\n\n\t\tconst actionByRoot = actionsForClip.actionByRoot,\n\t\t\trootUuid = ( action._localRoot || this._root ).uuid;\n\n\t\tdelete actionByRoot[ rootUuid ];\n\n\t\tif ( knownActionsForClip.length === 0 ) {\n\n\t\t\tdelete actionsByClip[ clipUuid ];\n\n\t\t}\n\n\t\tthis._removeInactiveBindingsForAction( action );\n\n\t}\n\n\t_removeInactiveBindingsForAction( action ) {\n\n\t\tconst bindings = action._propertyBindings;\n\n\t\tfor ( let i = 0, n = bindings.length; i !== n; ++ i ) {\n\n\t\t\tconst binding = bindings[ i ];\n\n\t\t\tif ( -- binding.referenceCount === 0 ) {\n\n\t\t\t\tthis._removeInactiveBinding( binding );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t_lendAction( action ) {\n\n\t\t// [ active actions | inactive actions ]\n\t\t// [ active actions >| inactive actions ]\n\t\t// s a\n\t\t// <-swap->\n\t\t// a s\n\n\t\tconst actions = this._actions,\n\t\t\tprevIndex = action._cacheIndex,\n\n\t\t\tlastActiveIndex = this._nActiveActions ++,\n\n\t\t\tfirstInactiveAction = actions[ lastActiveIndex ];\n\n\t\taction._cacheIndex = lastActiveIndex;\n\t\tactions[ lastActiveIndex ] = action;\n\n\t\tfirstInactiveAction._cacheIndex = prevIndex;\n\t\tactions[ prevIndex ] = firstInactiveAction;\n\n\t}\n\n\t_takeBackAction( action ) {\n\n\t\t// [ active actions | inactive actions ]\n\t\t// [ active actions |< inactive actions ]\n\t\t// a s\n\t\t// <-swap->\n\t\t// s a\n\n\t\tconst actions = this._actions,\n\t\t\tprevIndex = action._cacheIndex,\n\n\t\t\tfirstInactiveIndex = -- this._nActiveActions,\n\n\t\t\tlastActiveAction = actions[ firstInactiveIndex ];\n\n\t\taction._cacheIndex = firstInactiveIndex;\n\t\tactions[ firstInactiveIndex ] = action;\n\n\t\tlastActiveAction._cacheIndex = prevIndex;\n\t\tactions[ prevIndex ] = lastActiveAction;\n\n\t}\n\n\t// Memory management for PropertyMixer objects\n\n\t_addInactiveBinding( binding, rootUuid, trackName ) {\n\n\t\tconst bindingsByRoot = this._bindingsByRootAndName,\n\t\t\tbindings = this._bindings;\n\n\t\tlet bindingByName = bindingsByRoot[ rootUuid ];\n\n\t\tif ( bindingByName === undefined ) {\n\n\t\t\tbindingByName = {};\n\t\t\tbindingsByRoot[ rootUuid ] = bindingByName;\n\n\t\t}\n\n\t\tbindingByName[ trackName ] = binding;\n\n\t\tbinding._cacheIndex = bindings.length;\n\t\tbindings.push( binding );\n\n\t}\n\n\t_removeInactiveBinding( binding ) {\n\n\t\tconst bindings = this._bindings,\n\t\t\tpropBinding = binding.binding,\n\t\t\trootUuid = propBinding.rootNode.uuid,\n\t\t\ttrackName = propBinding.path,\n\t\t\tbindingsByRoot = this._bindingsByRootAndName,\n\t\t\tbindingByName = bindingsByRoot[ rootUuid ],\n\n\t\t\tlastInactiveBinding = bindings[ bindings.length - 1 ],\n\t\t\tcacheIndex = binding._cacheIndex;\n\n\t\tlastInactiveBinding._cacheIndex = cacheIndex;\n\t\tbindings[ cacheIndex ] = lastInactiveBinding;\n\t\tbindings.pop();\n\n\t\tdelete bindingByName[ trackName ];\n\n\t\tif ( Object.keys( bindingByName ).length === 0 ) {\n\n\t\t\tdelete bindingsByRoot[ rootUuid ];\n\n\t\t}\n\n\t}\n\n\t_lendBinding( binding ) {\n\n\t\tconst bindings = this._bindings,\n\t\t\tprevIndex = binding._cacheIndex,\n\n\t\t\tlastActiveIndex = this._nActiveBindings ++,\n\n\t\t\tfirstInactiveBinding = bindings[ lastActiveIndex ];\n\n\t\tbinding._cacheIndex = lastActiveIndex;\n\t\tbindings[ lastActiveIndex ] = binding;\n\n\t\tfirstInactiveBinding._cacheIndex = prevIndex;\n\t\tbindings[ prevIndex ] = firstInactiveBinding;\n\n\t}\n\n\t_takeBackBinding( binding ) {\n\n\t\tconst bindings = this._bindings,\n\t\t\tprevIndex = binding._cacheIndex,\n\n\t\t\tfirstInactiveIndex = -- this._nActiveBindings,\n\n\t\t\tlastActiveBinding = bindings[ firstInactiveIndex ];\n\n\t\tbinding._cacheIndex = firstInactiveIndex;\n\t\tbindings[ firstInactiveIndex ] = binding;\n\n\t\tlastActiveBinding._cacheIndex = prevIndex;\n\t\tbindings[ prevIndex ] = lastActiveBinding;\n\n\t}\n\n\n\t// Memory management of Interpolants for weight and time scale\n\n\t_lendControlInterpolant() {\n\n\t\tconst interpolants = this._controlInterpolants,\n\t\t\tlastActiveIndex = this._nActiveControlInterpolants ++;\n\n\t\tlet interpolant = interpolants[ lastActiveIndex ];\n\n\t\tif ( interpolant === undefined ) {\n\n\t\t\tinterpolant = new LinearInterpolant(\n\t\t\t\tnew Float32Array( 2 ), new Float32Array( 2 ),\n\t\t\t\t1, _controlInterpolantsResultBuffer );\n\n\t\t\tinterpolant.__cacheIndex = lastActiveIndex;\n\t\t\tinterpolants[ lastActiveIndex ] = interpolant;\n\n\t\t}\n\n\t\treturn interpolant;\n\n\t}\n\n\t_takeBackControlInterpolant( interpolant ) {\n\n\t\tconst interpolants = this._controlInterpolants,\n\t\t\tprevIndex = interpolant.__cacheIndex,\n\n\t\t\tfirstInactiveIndex = -- this._nActiveControlInterpolants,\n\n\t\t\tlastActiveInterpolant = interpolants[ firstInactiveIndex ];\n\n\t\tinterpolant.__cacheIndex = firstInactiveIndex;\n\t\tinterpolants[ firstInactiveIndex ] = interpolant;\n\n\t\tlastActiveInterpolant.__cacheIndex = prevIndex;\n\t\tinterpolants[ prevIndex ] = lastActiveInterpolant;\n\n\t}\n\n\t// return an action for a clip optionally using a custom root target\n\t// object (this method allocates a lot of dynamic memory in case a\n\t// previously unknown clip/root combination is specified)\n\tclipAction( clip, optionalRoot, blendMode ) {\n\n\t\tconst root = optionalRoot || this._root,\n\t\t\trootUuid = root.uuid;\n\n\t\tlet clipObject = typeof clip === 'string' ? AnimationClip.findByName( root, clip ) : clip;\n\n\t\tconst clipUuid = clipObject !== null ? clipObject.uuid : clip;\n\n\t\tconst actionsForClip = this._actionsByClip[ clipUuid ];\n\t\tlet prototypeAction = null;\n\n\t\tif ( blendMode === undefined ) {\n\n\t\t\tif ( clipObject !== null ) {\n\n\t\t\t\tblendMode = clipObject.blendMode;\n\n\t\t\t} else {\n\n\t\t\t\tblendMode = NormalAnimationBlendMode;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( actionsForClip !== undefined ) {\n\n\t\t\tconst existingAction = actionsForClip.actionByRoot[ rootUuid ];\n\n\t\t\tif ( existingAction !== undefined && existingAction.blendMode === blendMode ) {\n\n\t\t\t\treturn existingAction;\n\n\t\t\t}\n\n\t\t\t// we know the clip, so we don't have to parse all\n\t\t\t// the bindings again but can just copy\n\t\t\tprototypeAction = actionsForClip.knownActions[ 0 ];\n\n\t\t\t// also, take the clip from the prototype action\n\t\t\tif ( clipObject === null )\n\t\t\t\tclipObject = prototypeAction._clip;\n\n\t\t}\n\n\t\t// clip must be known when specified via string\n\t\tif ( clipObject === null ) return null;\n\n\t\t// allocate all resources required to run it\n\t\tconst newAction = new AnimationAction( this, clipObject, optionalRoot, blendMode );\n\n\t\tthis._bindAction( newAction, prototypeAction );\n\n\t\t// and make the action known to the memory manager\n\t\tthis._addInactiveAction( newAction, clipUuid, rootUuid );\n\n\t\treturn newAction;\n\n\t}\n\n\t// get an existing action\n\texistingAction( clip, optionalRoot ) {\n\n\t\tconst root = optionalRoot || this._root,\n\t\t\trootUuid = root.uuid,\n\n\t\t\tclipObject = typeof clip === 'string' ?\n\t\t\t\tAnimationClip.findByName( root, clip ) : clip,\n\n\t\t\tclipUuid = clipObject ? clipObject.uuid : clip,\n\n\t\t\tactionsForClip = this._actionsByClip[ clipUuid ];\n\n\t\tif ( actionsForClip !== undefined ) {\n\n\t\t\treturn actionsForClip.actionByRoot[ rootUuid ] || null;\n\n\t\t}\n\n\t\treturn null;\n\n\t}\n\n\t// deactivates all previously scheduled actions\n\tstopAllAction() {\n\n\t\tconst actions = this._actions,\n\t\t\tnActions = this._nActiveActions;\n\n\t\tfor ( let i = nActions - 1; i >= 0; -- i ) {\n\n\t\t\tactions[ i ].stop();\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// advance the time and update apply the animation\n\tupdate( deltaTime ) {\n\n\t\tdeltaTime *= this.timeScale;\n\n\t\tconst actions = this._actions,\n\t\t\tnActions = this._nActiveActions,\n\n\t\t\ttime = this.time += deltaTime,\n\t\t\ttimeDirection = Math.sign( deltaTime ),\n\n\t\t\taccuIndex = this._accuIndex ^= 1;\n\n\t\t// run active actions\n\n\t\tfor ( let i = 0; i !== nActions; ++ i ) {\n\n\t\t\tconst action = actions[ i ];\n\n\t\t\taction._update( time, deltaTime, timeDirection, accuIndex );\n\n\t\t}\n\n\t\t// update scene graph\n\n\t\tconst bindings = this._bindings,\n\t\t\tnBindings = this._nActiveBindings;\n\n\t\tfor ( let i = 0; i !== nBindings; ++ i ) {\n\n\t\t\tbindings[ i ].apply( accuIndex );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// Allows you to seek to a specific time in an animation.\n\tsetTime( timeInSeconds ) {\n\n\t\tthis.time = 0; // Zero out time attribute for AnimationMixer object;\n\t\tfor ( let i = 0; i < this._actions.length; i ++ ) {\n\n\t\t\tthis._actions[ i ].time = 0; // Zero out time attribute for all associated AnimationAction objects.\n\n\t\t}\n\n\t\treturn this.update( timeInSeconds ); // Update used to set exact time. Returns \"this\" AnimationMixer object.\n\n\t}\n\n\t// return this mixer's root target object\n\tgetRoot() {\n\n\t\treturn this._root;\n\n\t}\n\n\t// free all resources specific to a particular clip\n\tuncacheClip( clip ) {\n\n\t\tconst actions = this._actions,\n\t\t\tclipUuid = clip.uuid,\n\t\t\tactionsByClip = this._actionsByClip,\n\t\t\tactionsForClip = actionsByClip[ clipUuid ];\n\n\t\tif ( actionsForClip !== undefined ) {\n\n\t\t\t// note: just calling _removeInactiveAction would mess up the\n\t\t\t// iteration state and also require updating the state we can\n\t\t\t// just throw away\n\n\t\t\tconst actionsToRemove = actionsForClip.knownActions;\n\n\t\t\tfor ( let i = 0, n = actionsToRemove.length; i !== n; ++ i ) {\n\n\t\t\t\tconst action = actionsToRemove[ i ];\n\n\t\t\t\tthis._deactivateAction( action );\n\n\t\t\t\tconst cacheIndex = action._cacheIndex,\n\t\t\t\t\tlastInactiveAction = actions[ actions.length - 1 ];\n\n\t\t\t\taction._cacheIndex = null;\n\t\t\t\taction._byClipCacheIndex = null;\n\n\t\t\t\tlastInactiveAction._cacheIndex = cacheIndex;\n\t\t\t\tactions[ cacheIndex ] = lastInactiveAction;\n\t\t\t\tactions.pop();\n\n\t\t\t\tthis._removeInactiveBindingsForAction( action );\n\n\t\t\t}\n\n\t\t\tdelete actionsByClip[ clipUuid ];\n\n\t\t}\n\n\t}\n\n\t// free all resources specific to a particular root target object\n\tuncacheRoot( root ) {\n\n\t\tconst rootUuid = root.uuid,\n\t\t\tactionsByClip = this._actionsByClip;\n\n\t\tfor ( const clipUuid in actionsByClip ) {\n\n\t\t\tconst actionByRoot = actionsByClip[ clipUuid ].actionByRoot,\n\t\t\t\taction = actionByRoot[ rootUuid ];\n\n\t\t\tif ( action !== undefined ) {\n\n\t\t\t\tthis._deactivateAction( action );\n\t\t\t\tthis._removeInactiveAction( action );\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst bindingsByRoot = this._bindingsByRootAndName,\n\t\t\tbindingByName = bindingsByRoot[ rootUuid ];\n\n\t\tif ( bindingByName !== undefined ) {\n\n\t\t\tfor ( const trackName in bindingByName ) {\n\n\t\t\t\tconst binding = bindingByName[ trackName ];\n\t\t\t\tbinding.restoreOriginalState();\n\t\t\t\tthis._removeInactiveBinding( binding );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t// remove a targeted clip from the cache\n\tuncacheAction( clip, optionalRoot ) {\n\n\t\tconst action = this.existingAction( clip, optionalRoot );\n\n\t\tif ( action !== null ) {\n\n\t\t\tthis._deactivateAction( action );\n\t\t\tthis._removeInactiveAction( action );\n\n\t\t}\n\n\t}\n\n}\n\nclass Uniform {\n\n\tconstructor( value ) {\n\n\t\tthis.value = value;\n\n\t}\n\n\tclone() {\n\n\t\treturn new Uniform( this.value.clone === undefined ? this.value : this.value.clone() );\n\n\t}\n\n}\n\nlet _id = 0;\n\nclass UniformsGroup extends EventDispatcher {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isUniformsGroup = true;\n\n\t\tObject.defineProperty( this, 'id', { value: _id ++ } );\n\n\t\tthis.name = '';\n\n\t\tthis.usage = StaticDrawUsage;\n\t\tthis.uniforms = [];\n\n\t}\n\n\tadd( uniform ) {\n\n\t\tthis.uniforms.push( uniform );\n\n\t\treturn this;\n\n\t}\n\n\tremove( uniform ) {\n\n\t\tconst index = this.uniforms.indexOf( uniform );\n\n\t\tif ( index !== - 1 ) this.uniforms.splice( index, 1 );\n\n\t\treturn this;\n\n\t}\n\n\tsetName( name ) {\n\n\t\tthis.name = name;\n\n\t\treturn this;\n\n\t}\n\n\tsetUsage( value ) {\n\n\t\tthis.usage = value;\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.name = source.name;\n\t\tthis.usage = source.usage;\n\n\t\tconst uniformsSource = source.uniforms;\n\n\t\tthis.uniforms.length = 0;\n\n\t\tfor ( let i = 0, l = uniformsSource.length; i < l; i ++ ) {\n\n\t\t\tconst uniforms = Array.isArray( uniformsSource[ i ] ) ? uniformsSource[ i ] : [ uniformsSource[ i ] ];\n\n\t\t\tfor ( let j = 0; j < uniforms.length; j ++ ) {\n\n\t\t\t\tthis.uniforms.push( uniforms[ j ].clone() );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nclass InstancedInterleavedBuffer extends InterleavedBuffer {\n\n\tconstructor( array, stride, meshPerAttribute = 1 ) {\n\n\t\tsuper( array, stride );\n\n\t\tthis.isInstancedInterleavedBuffer = true;\n\n\t\tthis.meshPerAttribute = meshPerAttribute;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.meshPerAttribute = source.meshPerAttribute;\n\n\t\treturn this;\n\n\t}\n\n\tclone( data ) {\n\n\t\tconst ib = super.clone( data );\n\n\t\tib.meshPerAttribute = this.meshPerAttribute;\n\n\t\treturn ib;\n\n\t}\n\n\ttoJSON( data ) {\n\n\t\tconst json = super.toJSON( data );\n\n\t\tjson.isInstancedInterleavedBuffer = true;\n\t\tjson.meshPerAttribute = this.meshPerAttribute;\n\n\t\treturn json;\n\n\t}\n\n}\n\nclass GLBufferAttribute {\n\n\tconstructor( buffer, type, itemSize, elementSize, count ) {\n\n\t\tthis.isGLBufferAttribute = true;\n\n\t\tthis.name = '';\n\n\t\tthis.buffer = buffer;\n\t\tthis.type = type;\n\t\tthis.itemSize = itemSize;\n\t\tthis.elementSize = elementSize;\n\t\tthis.count = count;\n\n\t\tthis.version = 0;\n\n\t}\n\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n\tsetBuffer( buffer ) {\n\n\t\tthis.buffer = buffer;\n\n\t\treturn this;\n\n\t}\n\n\tsetType( type, elementSize ) {\n\n\t\tthis.type = type;\n\t\tthis.elementSize = elementSize;\n\n\t\treturn this;\n\n\t}\n\n\tsetItemSize( itemSize ) {\n\n\t\tthis.itemSize = itemSize;\n\n\t\treturn this;\n\n\t}\n\n\tsetCount( count ) {\n\n\t\tthis.count = count;\n\n\t\treturn this;\n\n\t}\n\n}\n\nconst _matrix = /*@__PURE__*/ new Matrix4();\n\nclass Raycaster {\n\n\tconstructor( origin, direction, near = 0, far = Infinity ) {\n\n\t\tthis.ray = new Ray( origin, direction );\n\t\t// direction is assumed to be normalized (for accurate distance calculations)\n\n\t\tthis.near = near;\n\t\tthis.far = far;\n\t\tthis.camera = null;\n\t\tthis.layers = new Layers();\n\n\t\tthis.params = {\n\t\t\tMesh: {},\n\t\t\tLine: { threshold: 1 },\n\t\t\tLOD: {},\n\t\t\tPoints: { threshold: 1 },\n\t\t\tSprite: {}\n\t\t};\n\n\t}\n\n\tset( origin, direction ) {\n\n\t\t// direction is assumed to be normalized (for accurate distance calculations)\n\n\t\tthis.ray.set( origin, direction );\n\n\t}\n\n\tsetFromCamera( coords, camera ) {\n\n\t\tif ( camera.isPerspectiveCamera ) {\n\n\t\t\tthis.ray.origin.setFromMatrixPosition( camera.matrixWorld );\n\t\t\tthis.ray.direction.set( coords.x, coords.y, 0.5 ).unproject( camera ).sub( this.ray.origin ).normalize();\n\t\t\tthis.camera = camera;\n\n\t\t} else if ( camera.isOrthographicCamera ) {\n\n\t\t\tthis.ray.origin.set( coords.x, coords.y, ( camera.near + camera.far ) / ( camera.near - camera.far ) ).unproject( camera ); // set origin in plane of camera\n\t\t\tthis.ray.direction.set( 0, 0, - 1 ).transformDirection( camera.matrixWorld );\n\t\t\tthis.camera = camera;\n\n\t\t} else {\n\n\t\t\tconsole.error( 'THREE.Raycaster: Unsupported camera type: ' + camera.type );\n\n\t\t}\n\n\t}\n\n\tsetFromXRController( controller ) {\n\n\t\t_matrix.identity().extractRotation( controller.matrixWorld );\n\n\t\tthis.ray.origin.setFromMatrixPosition( controller.matrixWorld );\n\t\tthis.ray.direction.set( 0, 0, - 1 ).applyMatrix4( _matrix );\n\n\t\treturn this;\n\n\t}\n\n\tintersectObject( object, recursive = true, intersects = [] ) {\n\n\t\tintersect( object, this, intersects, recursive );\n\n\t\tintersects.sort( ascSort );\n\n\t\treturn intersects;\n\n\t}\n\n\tintersectObjects( objects, recursive = true, intersects = [] ) {\n\n\t\tfor ( let i = 0, l = objects.length; i < l; i ++ ) {\n\n\t\t\tintersect( objects[ i ], this, intersects, recursive );\n\n\t\t}\n\n\t\tintersects.sort( ascSort );\n\n\t\treturn intersects;\n\n\t}\n\n}\n\nfunction ascSort( a, b ) {\n\n\treturn a.distance - b.distance;\n\n}\n\nfunction intersect( object, raycaster, intersects, recursive ) {\n\n\tlet propagate = true;\n\n\tif ( object.layers.test( raycaster.layers ) ) {\n\n\t\tconst result = object.raycast( raycaster, intersects );\n\n\t\tif ( result === false ) propagate = false;\n\n\t}\n\n\tif ( propagate === true && recursive === true ) {\n\n\t\tconst children = object.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tintersect( children[ i ], raycaster, intersects, true );\n\n\t\t}\n\n\t}\n\n}\n\n/**\n * Ref: https://en.wikipedia.org/wiki/Spherical_coordinate_system\n *\n * phi (the polar angle) is measured from the positive y-axis. The positive y-axis is up.\n * theta (the azimuthal angle) is measured from the positive z-axis.\n */\nclass Spherical {\n\n\tconstructor( radius = 1, phi = 0, theta = 0 ) {\n\n\t\tthis.radius = radius;\n\t\tthis.phi = phi; // polar angle\n\t\tthis.theta = theta; // azimuthal angle\n\n\t\treturn this;\n\n\t}\n\n\tset( radius, phi, theta ) {\n\n\t\tthis.radius = radius;\n\t\tthis.phi = phi;\n\t\tthis.theta = theta;\n\n\t\treturn this;\n\n\t}\n\n\tcopy( other ) {\n\n\t\tthis.radius = other.radius;\n\t\tthis.phi = other.phi;\n\t\tthis.theta = other.theta;\n\n\t\treturn this;\n\n\t}\n\n\t// restrict phi to be between EPS and PI-EPS\n\tmakeSafe() {\n\n\t\tconst EPS = 0.000001;\n\t\tthis.phi = Math.max( EPS, Math.min( Math.PI - EPS, this.phi ) );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromVector3( v ) {\n\n\t\treturn this.setFromCartesianCoords( v.x, v.y, v.z );\n\n\t}\n\n\tsetFromCartesianCoords( x, y, z ) {\n\n\t\tthis.radius = Math.sqrt( x * x + y * y + z * z );\n\n\t\tif ( this.radius === 0 ) {\n\n\t\t\tthis.theta = 0;\n\t\t\tthis.phi = 0;\n\n\t\t} else {\n\n\t\t\tthis.theta = Math.atan2( x, z );\n\t\t\tthis.phi = Math.acos( clamp( y / this.radius, - 1, 1 ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\n/**\n * Ref: https://en.wikipedia.org/wiki/Cylindrical_coordinate_system\n */\n\nclass Cylindrical {\n\n\tconstructor( radius = 1, theta = 0, y = 0 ) {\n\n\t\tthis.radius = radius; // distance from the origin to a point in the x-z plane\n\t\tthis.theta = theta; // counterclockwise angle in the x-z plane measured in radians from the positive z-axis\n\t\tthis.y = y; // height above the x-z plane\n\n\t\treturn this;\n\n\t}\n\n\tset( radius, theta, y ) {\n\n\t\tthis.radius = radius;\n\t\tthis.theta = theta;\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tcopy( other ) {\n\n\t\tthis.radius = other.radius;\n\t\tthis.theta = other.theta;\n\t\tthis.y = other.y;\n\n\t\treturn this;\n\n\t}\n\n\tsetFromVector3( v ) {\n\n\t\treturn this.setFromCartesianCoords( v.x, v.y, v.z );\n\n\t}\n\n\tsetFromCartesianCoords( x, y, z ) {\n\n\t\tthis.radius = Math.sqrt( x * x + z * z );\n\t\tthis.theta = Math.atan2( x, z );\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nclass Matrix2 {\n\n\tconstructor( n11, n12, n21, n22 ) {\n\n\t\tMatrix2.prototype.isMatrix2 = true;\n\n\t\tthis.elements = [\n\t\t\t1, 0,\n\t\t\t0, 1,\n\t\t];\n\n\t\tif ( n11 !== undefined ) {\n\n\t\t\tthis.set( n11, n12, n21, n22 );\n\n\t\t}\n\n\t}\n\n\tidentity() {\n\n\t\tthis.set(\n\t\t\t1, 0,\n\t\t\t0, 1,\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tfor ( let i = 0; i < 4; i ++ ) {\n\n\t\t\tthis.elements[ i ] = array[ i + offset ];\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tset( n11, n12, n21, n22 ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] = n11; te[ 2 ] = n12;\n\t\tte[ 1 ] = n21; te[ 3 ] = n22;\n\n\t\treturn this;\n\n\t}\n\n}\n\nconst _vector$4 = /*@__PURE__*/ new Vector2();\n\nclass Box2 {\n\n\tconstructor( min = new Vector2( + Infinity, + Infinity ), max = new Vector2( - Infinity, - Infinity ) ) {\n\n\t\tthis.isBox2 = true;\n\n\t\tthis.min = min;\n\t\tthis.max = max;\n\n\t}\n\n\tset( min, max ) {\n\n\t\tthis.min.copy( min );\n\t\tthis.max.copy( max );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromPoints( points ) {\n\n\t\tthis.makeEmpty();\n\n\t\tfor ( let i = 0, il = points.length; i < il; i ++ ) {\n\n\t\t\tthis.expandByPoint( points[ i ] );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetFromCenterAndSize( center, size ) {\n\n\t\tconst halfSize = _vector$4.copy( size ).multiplyScalar( 0.5 );\n\t\tthis.min.copy( center ).sub( halfSize );\n\t\tthis.max.copy( center ).add( halfSize );\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( box ) {\n\n\t\tthis.min.copy( box.min );\n\t\tthis.max.copy( box.max );\n\n\t\treturn this;\n\n\t}\n\n\tmakeEmpty() {\n\n\t\tthis.min.x = this.min.y = + Infinity;\n\t\tthis.max.x = this.max.y = - Infinity;\n\n\t\treturn this;\n\n\t}\n\n\tisEmpty() {\n\n\t\t// this is a more robust check for empty than ( volume <= 0 ) because volume can get positive with two negative axes\n\n\t\treturn ( this.max.x < this.min.x ) || ( this.max.y < this.min.y );\n\n\t}\n\n\tgetCenter( target ) {\n\n\t\treturn this.isEmpty() ? target.set( 0, 0 ) : target.addVectors( this.min, this.max ).multiplyScalar( 0.5 );\n\n\t}\n\n\tgetSize( target ) {\n\n\t\treturn this.isEmpty() ? target.set( 0, 0 ) : target.subVectors( this.max, this.min );\n\n\t}\n\n\texpandByPoint( point ) {\n\n\t\tthis.min.min( point );\n\t\tthis.max.max( point );\n\n\t\treturn this;\n\n\t}\n\n\texpandByVector( vector ) {\n\n\t\tthis.min.sub( vector );\n\t\tthis.max.add( vector );\n\n\t\treturn this;\n\n\t}\n\n\texpandByScalar( scalar ) {\n\n\t\tthis.min.addScalar( - scalar );\n\t\tthis.max.addScalar( scalar );\n\n\t\treturn this;\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\treturn point.x >= this.min.x && point.x <= this.max.x &&\n\t\t\tpoint.y >= this.min.y && point.y <= this.max.y;\n\n\t}\n\n\tcontainsBox( box ) {\n\n\t\treturn this.min.x <= box.min.x && box.max.x <= this.max.x &&\n\t\t\tthis.min.y <= box.min.y && box.max.y <= this.max.y;\n\n\t}\n\n\tgetParameter( point, target ) {\n\n\t\t// This can potentially have a divide by zero if the box\n\t\t// has a size dimension of 0.\n\n\t\treturn target.set(\n\t\t\t( point.x - this.min.x ) / ( this.max.x - this.min.x ),\n\t\t\t( point.y - this.min.y ) / ( this.max.y - this.min.y )\n\t\t);\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\t// using 4 splitting planes to rule out intersections\n\n\t\treturn box.max.x >= this.min.x && box.min.x <= this.max.x &&\n\t\t\tbox.max.y >= this.min.y && box.min.y <= this.max.y;\n\n\t}\n\n\tclampPoint( point, target ) {\n\n\t\treturn target.copy( point ).clamp( this.min, this.max );\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\treturn this.clampPoint( point, _vector$4 ).distanceTo( point );\n\n\t}\n\n\tintersect( box ) {\n\n\t\tthis.min.max( box.min );\n\t\tthis.max.min( box.max );\n\n\t\tif ( this.isEmpty() ) this.makeEmpty();\n\n\t\treturn this;\n\n\t}\n\n\tunion( box ) {\n\n\t\tthis.min.min( box.min );\n\t\tthis.max.max( box.max );\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( offset ) {\n\n\t\tthis.min.add( offset );\n\t\tthis.max.add( offset );\n\n\t\treturn this;\n\n\t}\n\n\tequals( box ) {\n\n\t\treturn box.min.equals( this.min ) && box.max.equals( this.max );\n\n\t}\n\n}\n\nconst _startP = /*@__PURE__*/ new Vector3();\nconst _startEnd = /*@__PURE__*/ new Vector3();\n\nclass Line3 {\n\n\tconstructor( start = new Vector3(), end = new Vector3() ) {\n\n\t\tthis.start = start;\n\t\tthis.end = end;\n\n\t}\n\n\tset( start, end ) {\n\n\t\tthis.start.copy( start );\n\t\tthis.end.copy( end );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( line ) {\n\n\t\tthis.start.copy( line.start );\n\t\tthis.end.copy( line.end );\n\n\t\treturn this;\n\n\t}\n\n\tgetCenter( target ) {\n\n\t\treturn target.addVectors( this.start, this.end ).multiplyScalar( 0.5 );\n\n\t}\n\n\tdelta( target ) {\n\n\t\treturn target.subVectors( this.end, this.start );\n\n\t}\n\n\tdistanceSq() {\n\n\t\treturn this.start.distanceToSquared( this.end );\n\n\t}\n\n\tdistance() {\n\n\t\treturn this.start.distanceTo( this.end );\n\n\t}\n\n\tat( t, target ) {\n\n\t\treturn this.delta( target ).multiplyScalar( t ).add( this.start );\n\n\t}\n\n\tclosestPointToPointParameter( point, clampToLine ) {\n\n\t\t_startP.subVectors( point, this.start );\n\t\t_startEnd.subVectors( this.end, this.start );\n\n\t\tconst startEnd2 = _startEnd.dot( _startEnd );\n\t\tconst startEnd_startP = _startEnd.dot( _startP );\n\n\t\tlet t = startEnd_startP / startEnd2;\n\n\t\tif ( clampToLine ) {\n\n\t\t\tt = clamp( t, 0, 1 );\n\n\t\t}\n\n\t\treturn t;\n\n\t}\n\n\tclosestPointToPoint( point, clampToLine, target ) {\n\n\t\tconst t = this.closestPointToPointParameter( point, clampToLine );\n\n\t\treturn this.delta( target ).multiplyScalar( t ).add( this.start );\n\n\t}\n\n\tapplyMatrix4( matrix ) {\n\n\t\tthis.start.applyMatrix4( matrix );\n\t\tthis.end.applyMatrix4( matrix );\n\n\t\treturn this;\n\n\t}\n\n\tequals( line ) {\n\n\t\treturn line.start.equals( this.start ) && line.end.equals( this.end );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nconst _vector$3 = /*@__PURE__*/ new Vector3();\n\nclass SpotLightHelper extends Object3D {\n\n\tconstructor( light, color ) {\n\n\t\tsuper();\n\n\t\tthis.light = light;\n\n\t\tthis.matrixAutoUpdate = false;\n\n\t\tthis.color = color;\n\n\t\tthis.type = 'SpotLightHelper';\n\n\t\tconst geometry = new BufferGeometry();\n\n\t\tconst positions = [\n\t\t\t0, 0, 0, \t0, 0, 1,\n\t\t\t0, 0, 0, \t1, 0, 1,\n\t\t\t0, 0, 0,\t- 1, 0, 1,\n\t\t\t0, 0, 0, \t0, 1, 1,\n\t\t\t0, 0, 0, \t0, - 1, 1\n\t\t];\n\n\t\tfor ( let i = 0, j = 1, l = 32; i < l; i ++, j ++ ) {\n\n\t\t\tconst p1 = ( i / l ) * Math.PI * 2;\n\t\t\tconst p2 = ( j / l ) * Math.PI * 2;\n\n\t\t\tpositions.push(\n\t\t\t\tMath.cos( p1 ), Math.sin( p1 ), 1,\n\t\t\t\tMath.cos( p2 ), Math.sin( p2 ), 1\n\t\t\t);\n\n\t\t}\n\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( positions, 3 ) );\n\n\t\tconst material = new LineBasicMaterial( { fog: false, toneMapped: false } );\n\n\t\tthis.cone = new LineSegments( geometry, material );\n\t\tthis.add( this.cone );\n\n\t\tthis.update();\n\n\t}\n\n\tdispose() {\n\n\t\tthis.cone.geometry.dispose();\n\t\tthis.cone.material.dispose();\n\n\t}\n\n\tupdate() {\n\n\t\tthis.light.updateWorldMatrix( true, false );\n\t\tthis.light.target.updateWorldMatrix( true, false );\n\n\t\t// update the local matrix based on the parent and light target transforms\n\t\tif ( this.parent ) {\n\n\t\t\tthis.parent.updateWorldMatrix( true );\n\n\t\t\tthis.matrix\n\t\t\t\t.copy( this.parent.matrixWorld )\n\t\t\t\t.invert()\n\t\t\t\t.multiply( this.light.matrixWorld );\n\n\t\t} else {\n\n\t\t\tthis.matrix.copy( this.light.matrixWorld );\n\n\t\t}\n\n\t\tthis.matrixWorld.copy( this.light.matrixWorld );\n\n\t\tconst coneLength = this.light.distance ? this.light.distance : 1000;\n\t\tconst coneWidth = coneLength * Math.tan( this.light.angle );\n\n\t\tthis.cone.scale.set( coneWidth, coneWidth, coneLength );\n\n\t\t_vector$3.setFromMatrixPosition( this.light.target.matrixWorld );\n\n\t\tthis.cone.lookAt( _vector$3 );\n\n\t\tif ( this.color !== undefined ) {\n\n\t\t\tthis.cone.material.color.set( this.color );\n\n\t\t} else {\n\n\t\t\tthis.cone.material.color.copy( this.light.color );\n\n\t\t}\n\n\t}\n\n}\n\nconst _vector$2 = /*@__PURE__*/ new Vector3();\nconst _boneMatrix = /*@__PURE__*/ new Matrix4();\nconst _matrixWorldInv = /*@__PURE__*/ new Matrix4();\n\n\nclass SkeletonHelper extends LineSegments {\n\n\tconstructor( object ) {\n\n\t\tconst bones = getBoneList( object );\n\n\t\tconst geometry = new BufferGeometry();\n\n\t\tconst vertices = [];\n\t\tconst colors = [];\n\n\t\tconst color1 = new Color( 0, 0, 1 );\n\t\tconst color2 = new Color( 0, 1, 0 );\n\n\t\tfor ( let i = 0; i < bones.length; i ++ ) {\n\n\t\t\tconst bone = bones[ i ];\n\n\t\t\tif ( bone.parent && bone.parent.isBone ) {\n\n\t\t\t\tvertices.push( 0, 0, 0 );\n\t\t\t\tvertices.push( 0, 0, 0 );\n\t\t\t\tcolors.push( color1.r, color1.g, color1.b );\n\t\t\t\tcolors.push( color2.r, color2.g, color2.b );\n\n\t\t\t}\n\n\t\t}\n\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tgeometry.setAttribute( 'color', new Float32BufferAttribute( colors, 3 ) );\n\n\t\tconst material = new LineBasicMaterial( { vertexColors: true, depthTest: false, depthWrite: false, toneMapped: false, transparent: true } );\n\n\t\tsuper( geometry, material );\n\n\t\tthis.isSkeletonHelper = true;\n\n\t\tthis.type = 'SkeletonHelper';\n\n\t\tthis.root = object;\n\t\tthis.bones = bones;\n\n\t\tthis.matrix = object.matrixWorld;\n\t\tthis.matrixAutoUpdate = false;\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tconst bones = this.bones;\n\n\t\tconst geometry = this.geometry;\n\t\tconst position = geometry.getAttribute( 'position' );\n\n\t\t_matrixWorldInv.copy( this.root.matrixWorld ).invert();\n\n\t\tfor ( let i = 0, j = 0; i < bones.length; i ++ ) {\n\n\t\t\tconst bone = bones[ i ];\n\n\t\t\tif ( bone.parent && bone.parent.isBone ) {\n\n\t\t\t\t_boneMatrix.multiplyMatrices( _matrixWorldInv, bone.matrixWorld );\n\t\t\t\t_vector$2.setFromMatrixPosition( _boneMatrix );\n\t\t\t\tposition.setXYZ( j, _vector$2.x, _vector$2.y, _vector$2.z );\n\n\t\t\t\t_boneMatrix.multiplyMatrices( _matrixWorldInv, bone.parent.matrixWorld );\n\t\t\t\t_vector$2.setFromMatrixPosition( _boneMatrix );\n\t\t\t\tposition.setXYZ( j + 1, _vector$2.x, _vector$2.y, _vector$2.z );\n\n\t\t\t\tj += 2;\n\n\t\t\t}\n\n\t\t}\n\n\t\tgeometry.getAttribute( 'position' ).needsUpdate = true;\n\n\t\tsuper.updateMatrixWorld( force );\n\n\t}\n\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\n\t}\n\n}\n\n\nfunction getBoneList( object ) {\n\n\tconst boneList = [];\n\n\tif ( object.isBone === true ) {\n\n\t\tboneList.push( object );\n\n\t}\n\n\tfor ( let i = 0; i < object.children.length; i ++ ) {\n\n\t\tboneList.push.apply( boneList, getBoneList( object.children[ i ] ) );\n\n\t}\n\n\treturn boneList;\n\n}\n\nclass PointLightHelper extends Mesh {\n\n\tconstructor( light, sphereSize, color ) {\n\n\t\tconst geometry = new SphereGeometry( sphereSize, 4, 2 );\n\t\tconst material = new MeshBasicMaterial( { wireframe: true, fog: false, toneMapped: false } );\n\n\t\tsuper( geometry, material );\n\n\t\tthis.light = light;\n\n\t\tthis.color = color;\n\n\t\tthis.type = 'PointLightHelper';\n\n\t\tthis.matrix = this.light.matrixWorld;\n\t\tthis.matrixAutoUpdate = false;\n\n\t\tthis.update();\n\n\n\t\t/*\n\t// TODO: delete this comment?\n\tconst distanceGeometry = new THREE.IcosahedronGeometry( 1, 2 );\n\tconst distanceMaterial = new THREE.MeshBasicMaterial( { color: hexColor, fog: false, wireframe: true, opacity: 0.1, transparent: true } );\n\n\tthis.lightSphere = new THREE.Mesh( bulbGeometry, bulbMaterial );\n\tthis.lightDistance = new THREE.Mesh( distanceGeometry, distanceMaterial );\n\n\tconst d = light.distance;\n\n\tif ( d === 0.0 ) {\n\n\t\tthis.lightDistance.visible = false;\n\n\t} else {\n\n\t\tthis.lightDistance.scale.set( d, d, d );\n\n\t}\n\n\tthis.add( this.lightDistance );\n\t*/\n\n\t}\n\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\n\t}\n\n\tupdate() {\n\n\t\tthis.light.updateWorldMatrix( true, false );\n\n\t\tif ( this.color !== undefined ) {\n\n\t\t\tthis.material.color.set( this.color );\n\n\t\t} else {\n\n\t\t\tthis.material.color.copy( this.light.color );\n\n\t\t}\n\n\t\t/*\n\t\tconst d = this.light.distance;\n\n\t\tif ( d === 0.0 ) {\n\n\t\t\tthis.lightDistance.visible = false;\n\n\t\t} else {\n\n\t\t\tthis.lightDistance.visible = true;\n\t\t\tthis.lightDistance.scale.set( d, d, d );\n\n\t\t}\n\t\t*/\n\n\t}\n\n}\n\nconst _vector$1 = /*@__PURE__*/ new Vector3();\nconst _color1 = /*@__PURE__*/ new Color();\nconst _color2 = /*@__PURE__*/ new Color();\n\nclass HemisphereLightHelper extends Object3D {\n\n\tconstructor( light, size, color ) {\n\n\t\tsuper();\n\n\t\tthis.light = light;\n\n\t\tthis.matrix = light.matrixWorld;\n\t\tthis.matrixAutoUpdate = false;\n\n\t\tthis.color = color;\n\n\t\tthis.type = 'HemisphereLightHelper';\n\n\t\tconst geometry = new OctahedronGeometry( size );\n\t\tgeometry.rotateY( Math.PI * 0.5 );\n\n\t\tthis.material = new MeshBasicMaterial( { wireframe: true, fog: false, toneMapped: false } );\n\t\tif ( this.color === undefined ) this.material.vertexColors = true;\n\n\t\tconst position = geometry.getAttribute( 'position' );\n\t\tconst colors = new Float32Array( position.count * 3 );\n\n\t\tgeometry.setAttribute( 'color', new BufferAttribute( colors, 3 ) );\n\n\t\tthis.add( new Mesh( geometry, this.material ) );\n\n\t\tthis.update();\n\n\t}\n\n\tdispose() {\n\n\t\tthis.children[ 0 ].geometry.dispose();\n\t\tthis.children[ 0 ].material.dispose();\n\n\t}\n\n\tupdate() {\n\n\t\tconst mesh = this.children[ 0 ];\n\n\t\tif ( this.color !== undefined ) {\n\n\t\t\tthis.material.color.set( this.color );\n\n\t\t} else {\n\n\t\t\tconst colors = mesh.geometry.getAttribute( 'color' );\n\n\t\t\t_color1.copy( this.light.color );\n\t\t\t_color2.copy( this.light.groundColor );\n\n\t\t\tfor ( let i = 0, l = colors.count; i < l; i ++ ) {\n\n\t\t\t\tconst color = ( i < ( l / 2 ) ) ? _color1 : _color2;\n\n\t\t\t\tcolors.setXYZ( i, color.r, color.g, color.b );\n\n\t\t\t}\n\n\t\t\tcolors.needsUpdate = true;\n\n\t\t}\n\n\t\tthis.light.updateWorldMatrix( true, false );\n\n\t\tmesh.lookAt( _vector$1.setFromMatrixPosition( this.light.matrixWorld ).negate() );\n\n\t}\n\n}\n\nclass GridHelper extends LineSegments {\n\n\tconstructor( size = 10, divisions = 10, color1 = 0x444444, color2 = 0x888888 ) {\n\n\t\tcolor1 = new Color( color1 );\n\t\tcolor2 = new Color( color2 );\n\n\t\tconst center = divisions / 2;\n\t\tconst step = size / divisions;\n\t\tconst halfSize = size / 2;\n\n\t\tconst vertices = [], colors = [];\n\n\t\tfor ( let i = 0, j = 0, k = - halfSize; i <= divisions; i ++, k += step ) {\n\n\t\t\tvertices.push( - halfSize, 0, k, halfSize, 0, k );\n\t\t\tvertices.push( k, 0, - halfSize, k, 0, halfSize );\n\n\t\t\tconst color = i === center ? color1 : color2;\n\n\t\t\tcolor.toArray( colors, j ); j += 3;\n\t\t\tcolor.toArray( colors, j ); j += 3;\n\t\t\tcolor.toArray( colors, j ); j += 3;\n\t\t\tcolor.toArray( colors, j ); j += 3;\n\n\t\t}\n\n\t\tconst geometry = new BufferGeometry();\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tgeometry.setAttribute( 'color', new Float32BufferAttribute( colors, 3 ) );\n\n\t\tconst material = new LineBasicMaterial( { vertexColors: true, toneMapped: false } );\n\n\t\tsuper( geometry, material );\n\n\t\tthis.type = 'GridHelper';\n\n\t}\n\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\n\t}\n\n}\n\nclass PolarGridHelper extends LineSegments {\n\n\tconstructor( radius = 10, sectors = 16, rings = 8, divisions = 64, color1 = 0x444444, color2 = 0x888888 ) {\n\n\t\tcolor1 = new Color( color1 );\n\t\tcolor2 = new Color( color2 );\n\n\t\tconst vertices = [];\n\t\tconst colors = [];\n\n\t\t// create the sectors\n\n\t\tif ( sectors > 1 ) {\n\n\t\t\tfor ( let i = 0; i < sectors; i ++ ) {\n\n\t\t\t\tconst v = ( i / sectors ) * ( Math.PI * 2 );\n\n\t\t\t\tconst x = Math.sin( v ) * radius;\n\t\t\t\tconst z = Math.cos( v ) * radius;\n\n\t\t\t\tvertices.push( 0, 0, 0 );\n\t\t\t\tvertices.push( x, 0, z );\n\n\t\t\t\tconst color = ( i & 1 ) ? color1 : color2;\n\n\t\t\t\tcolors.push( color.r, color.g, color.b );\n\t\t\t\tcolors.push( color.r, color.g, color.b );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// create the rings\n\n\t\tfor ( let i = 0; i < rings; i ++ ) {\n\n\t\t\tconst color = ( i & 1 ) ? color1 : color2;\n\n\t\t\tconst r = radius - ( radius / rings * i );\n\n\t\t\tfor ( let j = 0; j < divisions; j ++ ) {\n\n\t\t\t\t// first vertex\n\n\t\t\t\tlet v = ( j / divisions ) * ( Math.PI * 2 );\n\n\t\t\t\tlet x = Math.sin( v ) * r;\n\t\t\t\tlet z = Math.cos( v ) * r;\n\n\t\t\t\tvertices.push( x, 0, z );\n\t\t\t\tcolors.push( color.r, color.g, color.b );\n\n\t\t\t\t// second vertex\n\n\t\t\t\tv = ( ( j + 1 ) / divisions ) * ( Math.PI * 2 );\n\n\t\t\t\tx = Math.sin( v ) * r;\n\t\t\t\tz = Math.cos( v ) * r;\n\n\t\t\t\tvertices.push( x, 0, z );\n\t\t\t\tcolors.push( color.r, color.g, color.b );\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst geometry = new BufferGeometry();\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tgeometry.setAttribute( 'color', new Float32BufferAttribute( colors, 3 ) );\n\n\t\tconst material = new LineBasicMaterial( { vertexColors: true, toneMapped: false } );\n\n\t\tsuper( geometry, material );\n\n\t\tthis.type = 'PolarGridHelper';\n\n\t}\n\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\n\t}\n\n}\n\nconst _v1 = /*@__PURE__*/ new Vector3();\nconst _v2 = /*@__PURE__*/ new Vector3();\nconst _v3 = /*@__PURE__*/ new Vector3();\n\nclass DirectionalLightHelper extends Object3D {\n\n\tconstructor( light, size, color ) {\n\n\t\tsuper();\n\n\t\tthis.light = light;\n\n\t\tthis.matrix = light.matrixWorld;\n\t\tthis.matrixAutoUpdate = false;\n\n\t\tthis.color = color;\n\n\t\tthis.type = 'DirectionalLightHelper';\n\n\t\tif ( size === undefined ) size = 1;\n\n\t\tlet geometry = new BufferGeometry();\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( [\n\t\t\t- size, size, 0,\n\t\t\tsize, size, 0,\n\t\t\tsize, - size, 0,\n\t\t\t- size, - size, 0,\n\t\t\t- size, size, 0\n\t\t], 3 ) );\n\n\t\tconst material = new LineBasicMaterial( { fog: false, toneMapped: false } );\n\n\t\tthis.lightPlane = new Line( geometry, material );\n\t\tthis.add( this.lightPlane );\n\n\t\tgeometry = new BufferGeometry();\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( [ 0, 0, 0, 0, 0, 1 ], 3 ) );\n\n\t\tthis.targetLine = new Line( geometry, material );\n\t\tthis.add( this.targetLine );\n\n\t\tthis.update();\n\n\t}\n\n\tdispose() {\n\n\t\tthis.lightPlane.geometry.dispose();\n\t\tthis.lightPlane.material.dispose();\n\t\tthis.targetLine.geometry.dispose();\n\t\tthis.targetLine.material.dispose();\n\n\t}\n\n\tupdate() {\n\n\t\tthis.light.updateWorldMatrix( true, false );\n\t\tthis.light.target.updateWorldMatrix( true, false );\n\n\t\t_v1.setFromMatrixPosition( this.light.matrixWorld );\n\t\t_v2.setFromMatrixPosition( this.light.target.matrixWorld );\n\t\t_v3.subVectors( _v2, _v1 );\n\n\t\tthis.lightPlane.lookAt( _v2 );\n\n\t\tif ( this.color !== undefined ) {\n\n\t\t\tthis.lightPlane.material.color.set( this.color );\n\t\t\tthis.targetLine.material.color.set( this.color );\n\n\t\t} else {\n\n\t\t\tthis.lightPlane.material.color.copy( this.light.color );\n\t\t\tthis.targetLine.material.color.copy( this.light.color );\n\n\t\t}\n\n\t\tthis.targetLine.lookAt( _v2 );\n\t\tthis.targetLine.scale.z = _v3.length();\n\n\t}\n\n}\n\nconst _vector = /*@__PURE__*/ new Vector3();\nconst _camera = /*@__PURE__*/ new Camera();\n\n/**\n *\t- shows frustum, line of sight and up of the camera\n *\t- suitable for fast updates\n * \t- based on frustum visualization in lightgl.js shadowmap example\n *\t\thttps://github.com/evanw/lightgl.js/blob/master/tests/shadowmap.html\n */\n\nclass CameraHelper extends LineSegments {\n\n\tconstructor( camera ) {\n\n\t\tconst geometry = new BufferGeometry();\n\t\tconst material = new LineBasicMaterial( { color: 0xffffff, vertexColors: true, toneMapped: false } );\n\n\t\tconst vertices = [];\n\t\tconst colors = [];\n\n\t\tconst pointMap = {};\n\n\t\t// near\n\n\t\taddLine( 'n1', 'n2' );\n\t\taddLine( 'n2', 'n4' );\n\t\taddLine( 'n4', 'n3' );\n\t\taddLine( 'n3', 'n1' );\n\n\t\t// far\n\n\t\taddLine( 'f1', 'f2' );\n\t\taddLine( 'f2', 'f4' );\n\t\taddLine( 'f4', 'f3' );\n\t\taddLine( 'f3', 'f1' );\n\n\t\t// sides\n\n\t\taddLine( 'n1', 'f1' );\n\t\taddLine( 'n2', 'f2' );\n\t\taddLine( 'n3', 'f3' );\n\t\taddLine( 'n4', 'f4' );\n\n\t\t// cone\n\n\t\taddLine( 'p', 'n1' );\n\t\taddLine( 'p', 'n2' );\n\t\taddLine( 'p', 'n3' );\n\t\taddLine( 'p', 'n4' );\n\n\t\t// up\n\n\t\taddLine( 'u1', 'u2' );\n\t\taddLine( 'u2', 'u3' );\n\t\taddLine( 'u3', 'u1' );\n\n\t\t// target\n\n\t\taddLine( 'c', 't' );\n\t\taddLine( 'p', 'c' );\n\n\t\t// cross\n\n\t\taddLine( 'cn1', 'cn2' );\n\t\taddLine( 'cn3', 'cn4' );\n\n\t\taddLine( 'cf1', 'cf2' );\n\t\taddLine( 'cf3', 'cf4' );\n\n\t\tfunction addLine( a, b ) {\n\n\t\t\taddPoint( a );\n\t\t\taddPoint( b );\n\n\t\t}\n\n\t\tfunction addPoint( id ) {\n\n\t\t\tvertices.push( 0, 0, 0 );\n\t\t\tcolors.push( 0, 0, 0 );\n\n\t\t\tif ( pointMap[ id ] === undefined ) {\n\n\t\t\t\tpointMap[ id ] = [];\n\n\t\t\t}\n\n\t\t\tpointMap[ id ].push( ( vertices.length / 3 ) - 1 );\n\n\t\t}\n\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tgeometry.setAttribute( 'color', new Float32BufferAttribute( colors, 3 ) );\n\n\t\tsuper( geometry, material );\n\n\t\tthis.type = 'CameraHelper';\n\n\t\tthis.camera = camera;\n\t\tif ( this.camera.updateProjectionMatrix ) this.camera.updateProjectionMatrix();\n\n\t\tthis.matrix = camera.matrixWorld;\n\t\tthis.matrixAutoUpdate = false;\n\n\t\tthis.pointMap = pointMap;\n\n\t\tthis.update();\n\n\t\t// colors\n\n\t\tconst colorFrustum = new Color( 0xffaa00 );\n\t\tconst colorCone = new Color( 0xff0000 );\n\t\tconst colorUp = new Color( 0x00aaff );\n\t\tconst colorTarget = new Color( 0xffffff );\n\t\tconst colorCross = new Color( 0x333333 );\n\n\t\tthis.setColors( colorFrustum, colorCone, colorUp, colorTarget, colorCross );\n\n\t}\n\n\tsetColors( frustum, cone, up, target, cross ) {\n\n\t\tconst geometry = this.geometry;\n\n\t\tconst colorAttribute = geometry.getAttribute( 'color' );\n\n\t\t// near\n\n\t\tcolorAttribute.setXYZ( 0, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 1, frustum.r, frustum.g, frustum.b ); // n1, n2\n\t\tcolorAttribute.setXYZ( 2, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 3, frustum.r, frustum.g, frustum.b ); // n2, n4\n\t\tcolorAttribute.setXYZ( 4, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 5, frustum.r, frustum.g, frustum.b ); // n4, n3\n\t\tcolorAttribute.setXYZ( 6, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 7, frustum.r, frustum.g, frustum.b ); // n3, n1\n\n\t\t// far\n\n\t\tcolorAttribute.setXYZ( 8, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 9, frustum.r, frustum.g, frustum.b ); // f1, f2\n\t\tcolorAttribute.setXYZ( 10, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 11, frustum.r, frustum.g, frustum.b ); // f2, f4\n\t\tcolorAttribute.setXYZ( 12, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 13, frustum.r, frustum.g, frustum.b ); // f4, f3\n\t\tcolorAttribute.setXYZ( 14, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 15, frustum.r, frustum.g, frustum.b ); // f3, f1\n\n\t\t// sides\n\n\t\tcolorAttribute.setXYZ( 16, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 17, frustum.r, frustum.g, frustum.b ); // n1, f1\n\t\tcolorAttribute.setXYZ( 18, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 19, frustum.r, frustum.g, frustum.b ); // n2, f2\n\t\tcolorAttribute.setXYZ( 20, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 21, frustum.r, frustum.g, frustum.b ); // n3, f3\n\t\tcolorAttribute.setXYZ( 22, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 23, frustum.r, frustum.g, frustum.b ); // n4, f4\n\n\t\t// cone\n\n\t\tcolorAttribute.setXYZ( 24, cone.r, cone.g, cone.b ); colorAttribute.setXYZ( 25, cone.r, cone.g, cone.b ); // p, n1\n\t\tcolorAttribute.setXYZ( 26, cone.r, cone.g, cone.b ); colorAttribute.setXYZ( 27, cone.r, cone.g, cone.b ); // p, n2\n\t\tcolorAttribute.setXYZ( 28, cone.r, cone.g, cone.b ); colorAttribute.setXYZ( 29, cone.r, cone.g, cone.b ); // p, n3\n\t\tcolorAttribute.setXYZ( 30, cone.r, cone.g, cone.b ); colorAttribute.setXYZ( 31, cone.r, cone.g, cone.b ); // p, n4\n\n\t\t// up\n\n\t\tcolorAttribute.setXYZ( 32, up.r, up.g, up.b ); colorAttribute.setXYZ( 33, up.r, up.g, up.b ); // u1, u2\n\t\tcolorAttribute.setXYZ( 34, up.r, up.g, up.b ); colorAttribute.setXYZ( 35, up.r, up.g, up.b ); // u2, u3\n\t\tcolorAttribute.setXYZ( 36, up.r, up.g, up.b ); colorAttribute.setXYZ( 37, up.r, up.g, up.b ); // u3, u1\n\n\t\t// target\n\n\t\tcolorAttribute.setXYZ( 38, target.r, target.g, target.b ); colorAttribute.setXYZ( 39, target.r, target.g, target.b ); // c, t\n\t\tcolorAttribute.setXYZ( 40, cross.r, cross.g, cross.b ); colorAttribute.setXYZ( 41, cross.r, cross.g, cross.b ); // p, c\n\n\t\t// cross\n\n\t\tcolorAttribute.setXYZ( 42, cross.r, cross.g, cross.b ); colorAttribute.setXYZ( 43, cross.r, cross.g, cross.b ); // cn1, cn2\n\t\tcolorAttribute.setXYZ( 44, cross.r, cross.g, cross.b ); colorAttribute.setXYZ( 45, cross.r, cross.g, cross.b ); // cn3, cn4\n\n\t\tcolorAttribute.setXYZ( 46, cross.r, cross.g, cross.b ); colorAttribute.setXYZ( 47, cross.r, cross.g, cross.b ); // cf1, cf2\n\t\tcolorAttribute.setXYZ( 48, cross.r, cross.g, cross.b ); colorAttribute.setXYZ( 49, cross.r, cross.g, cross.b ); // cf3, cf4\n\n\t\tcolorAttribute.needsUpdate = true;\n\n\t}\n\n\tupdate() {\n\n\t\tconst geometry = this.geometry;\n\t\tconst pointMap = this.pointMap;\n\n\t\tconst w = 1, h = 1;\n\n\t\t// we need just camera projection matrix inverse\n\t\t// world matrix must be identity\n\n\t\t_camera.projectionMatrixInverse.copy( this.camera.projectionMatrixInverse );\n\n\t\t// center / target\n\n\t\tsetPoint( 'c', pointMap, geometry, _camera, 0, 0, - 1 );\n\t\tsetPoint( 't', pointMap, geometry, _camera, 0, 0, 1 );\n\n\t\t// near\n\n\t\tsetPoint( 'n1', pointMap, geometry, _camera, - w, - h, - 1 );\n\t\tsetPoint( 'n2', pointMap, geometry, _camera, w, - h, - 1 );\n\t\tsetPoint( 'n3', pointMap, geometry, _camera, - w, h, - 1 );\n\t\tsetPoint( 'n4', pointMap, geometry, _camera, w, h, - 1 );\n\n\t\t// far\n\n\t\tsetPoint( 'f1', pointMap, geometry, _camera, - w, - h, 1 );\n\t\tsetPoint( 'f2', pointMap, geometry, _camera, w, - h, 1 );\n\t\tsetPoint( 'f3', pointMap, geometry, _camera, - w, h, 1 );\n\t\tsetPoint( 'f4', pointMap, geometry, _camera, w, h, 1 );\n\n\t\t// up\n\n\t\tsetPoint( 'u1', pointMap, geometry, _camera, w * 0.7, h * 1.1, - 1 );\n\t\tsetPoint( 'u2', pointMap, geometry, _camera, - w * 0.7, h * 1.1, - 1 );\n\t\tsetPoint( 'u3', pointMap, geometry, _camera, 0, h * 2, - 1 );\n\n\t\t// cross\n\n\t\tsetPoint( 'cf1', pointMap, geometry, _camera, - w, 0, 1 );\n\t\tsetPoint( 'cf2', pointMap, geometry, _camera, w, 0, 1 );\n\t\tsetPoint( 'cf3', pointMap, geometry, _camera, 0, - h, 1 );\n\t\tsetPoint( 'cf4', pointMap, geometry, _camera, 0, h, 1 );\n\n\t\tsetPoint( 'cn1', pointMap, geometry, _camera, - w, 0, - 1 );\n\t\tsetPoint( 'cn2', pointMap, geometry, _camera, w, 0, - 1 );\n\t\tsetPoint( 'cn3', pointMap, geometry, _camera, 0, - h, - 1 );\n\t\tsetPoint( 'cn4', pointMap, geometry, _camera, 0, h, - 1 );\n\n\t\tgeometry.getAttribute( 'position' ).needsUpdate = true;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\n\t}\n\n}\n\n\nfunction setPoint( point, pointMap, geometry, camera, x, y, z ) {\n\n\t_vector.set( x, y, z ).unproject( camera );\n\n\tconst points = pointMap[ point ];\n\n\tif ( points !== undefined ) {\n\n\t\tconst position = geometry.getAttribute( 'position' );\n\n\t\tfor ( let i = 0, l = points.length; i < l; i ++ ) {\n\n\t\t\tposition.setXYZ( points[ i ], _vector.x, _vector.y, _vector.z );\n\n\t\t}\n\n\t}\n\n}\n\nconst _box = /*@__PURE__*/ new Box3();\n\nclass BoxHelper extends LineSegments {\n\n\tconstructor( object, color = 0xffff00 ) {\n\n\t\tconst indices = new Uint16Array( [ 0, 1, 1, 2, 2, 3, 3, 0, 4, 5, 5, 6, 6, 7, 7, 4, 0, 4, 1, 5, 2, 6, 3, 7 ] );\n\t\tconst positions = new Float32Array( 8 * 3 );\n\n\t\tconst geometry = new BufferGeometry();\n\t\tgeometry.setIndex( new BufferAttribute( indices, 1 ) );\n\t\tgeometry.setAttribute( 'position', new BufferAttribute( positions, 3 ) );\n\n\t\tsuper( geometry, new LineBasicMaterial( { color: color, toneMapped: false } ) );\n\n\t\tthis.object = object;\n\t\tthis.type = 'BoxHelper';\n\n\t\tthis.matrixAutoUpdate = false;\n\n\t\tthis.update();\n\n\t}\n\n\tupdate( object ) {\n\n\t\tif ( object !== undefined ) {\n\n\t\t\tconsole.warn( 'THREE.BoxHelper: .update() has no longer arguments.' );\n\n\t\t}\n\n\t\tif ( this.object !== undefined ) {\n\n\t\t\t_box.setFromObject( this.object );\n\n\t\t}\n\n\t\tif ( _box.isEmpty() ) return;\n\n\t\tconst min = _box.min;\n\t\tconst max = _box.max;\n\n\t\t/*\n\t\t\t5____4\n\t\t1/___0/|\n\t\t| 6__|_7\n\t\t2/___3/\n\n\t\t0: max.x, max.y, max.z\n\t\t1: min.x, max.y, max.z\n\t\t2: min.x, min.y, max.z\n\t\t3: max.x, min.y, max.z\n\t\t4: max.x, max.y, min.z\n\t\t5: min.x, max.y, min.z\n\t\t6: min.x, min.y, min.z\n\t\t7: max.x, min.y, min.z\n\t\t*/\n\n\t\tconst position = this.geometry.attributes.position;\n\t\tconst array = position.array;\n\n\t\tarray[ 0 ] = max.x; array[ 1 ] = max.y; array[ 2 ] = max.z;\n\t\tarray[ 3 ] = min.x; array[ 4 ] = max.y; array[ 5 ] = max.z;\n\t\tarray[ 6 ] = min.x; array[ 7 ] = min.y; array[ 8 ] = max.z;\n\t\tarray[ 9 ] = max.x; array[ 10 ] = min.y; array[ 11 ] = max.z;\n\t\tarray[ 12 ] = max.x; array[ 13 ] = max.y; array[ 14 ] = min.z;\n\t\tarray[ 15 ] = min.x; array[ 16 ] = max.y; array[ 17 ] = min.z;\n\t\tarray[ 18 ] = min.x; array[ 19 ] = min.y; array[ 20 ] = min.z;\n\t\tarray[ 21 ] = max.x; array[ 22 ] = min.y; array[ 23 ] = min.z;\n\n\t\tposition.needsUpdate = true;\n\n\t\tthis.geometry.computeBoundingSphere();\n\n\t}\n\n\tsetFromObject( object ) {\n\n\t\tthis.object = object;\n\t\tthis.update();\n\n\t\treturn this;\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.object = source.object;\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\n\t}\n\n}\n\nclass Box3Helper extends LineSegments {\n\n\tconstructor( box, color = 0xffff00 ) {\n\n\t\tconst indices = new Uint16Array( [ 0, 1, 1, 2, 2, 3, 3, 0, 4, 5, 5, 6, 6, 7, 7, 4, 0, 4, 1, 5, 2, 6, 3, 7 ] );\n\n\t\tconst positions = [ 1, 1, 1, - 1, 1, 1, - 1, - 1, 1, 1, - 1, 1, 1, 1, - 1, - 1, 1, - 1, - 1, - 1, - 1, 1, - 1, - 1 ];\n\n\t\tconst geometry = new BufferGeometry();\n\n\t\tgeometry.setIndex( new BufferAttribute( indices, 1 ) );\n\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( positions, 3 ) );\n\n\t\tsuper( geometry, new LineBasicMaterial( { color: color, toneMapped: false } ) );\n\n\t\tthis.box = box;\n\n\t\tthis.type = 'Box3Helper';\n\n\t\tthis.geometry.computeBoundingSphere();\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tconst box = this.box;\n\n\t\tif ( box.isEmpty() ) return;\n\n\t\tbox.getCenter( this.position );\n\n\t\tbox.getSize( this.scale );\n\n\t\tthis.scale.multiplyScalar( 0.5 );\n\n\t\tsuper.updateMatrixWorld( force );\n\n\t}\n\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\n\t}\n\n}\n\nclass PlaneHelper extends Line {\n\n\tconstructor( plane, size = 1, hex = 0xffff00 ) {\n\n\t\tconst color = hex;\n\n\t\tconst positions = [ 1, - 1, 0, - 1, 1, 0, - 1, - 1, 0, 1, 1, 0, - 1, 1, 0, - 1, - 1, 0, 1, - 1, 0, 1, 1, 0 ];\n\n\t\tconst geometry = new BufferGeometry();\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( positions, 3 ) );\n\t\tgeometry.computeBoundingSphere();\n\n\t\tsuper( geometry, new LineBasicMaterial( { color: color, toneMapped: false } ) );\n\n\t\tthis.type = 'PlaneHelper';\n\n\t\tthis.plane = plane;\n\n\t\tthis.size = size;\n\n\t\tconst positions2 = [ 1, 1, 0, - 1, 1, 0, - 1, - 1, 0, 1, 1, 0, - 1, - 1, 0, 1, - 1, 0 ];\n\n\t\tconst geometry2 = new BufferGeometry();\n\t\tgeometry2.setAttribute( 'position', new Float32BufferAttribute( positions2, 3 ) );\n\t\tgeometry2.computeBoundingSphere();\n\n\t\tthis.add( new Mesh( geometry2, new MeshBasicMaterial( { color: color, opacity: 0.2, transparent: true, depthWrite: false, toneMapped: false } ) ) );\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tthis.position.set( 0, 0, 0 );\n\n\t\tthis.scale.set( 0.5 * this.size, 0.5 * this.size, 1 );\n\n\t\tthis.lookAt( this.plane.normal );\n\n\t\tthis.translateZ( - this.plane.constant );\n\n\t\tsuper.updateMatrixWorld( force );\n\n\t}\n\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\t\tthis.children[ 0 ].geometry.dispose();\n\t\tthis.children[ 0 ].material.dispose();\n\n\t}\n\n}\n\nconst _axis = /*@__PURE__*/ new Vector3();\nlet _lineGeometry, _coneGeometry;\n\nclass ArrowHelper extends Object3D {\n\n\t// dir is assumed to be normalized\n\n\tconstructor( dir = new Vector3( 0, 0, 1 ), origin = new Vector3( 0, 0, 0 ), length = 1, color = 0xffff00, headLength = length * 0.2, headWidth = headLength * 0.2 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'ArrowHelper';\n\n\t\tif ( _lineGeometry === undefined ) {\n\n\t\t\t_lineGeometry = new BufferGeometry();\n\t\t\t_lineGeometry.setAttribute( 'position', new Float32BufferAttribute( [ 0, 0, 0, 0, 1, 0 ], 3 ) );\n\n\t\t\t_coneGeometry = new CylinderGeometry( 0, 0.5, 1, 5, 1 );\n\t\t\t_coneGeometry.translate( 0, - 0.5, 0 );\n\n\t\t}\n\n\t\tthis.position.copy( origin );\n\n\t\tthis.line = new Line( _lineGeometry, new LineBasicMaterial( { color: color, toneMapped: false } ) );\n\t\tthis.line.matrixAutoUpdate = false;\n\t\tthis.add( this.line );\n\n\t\tthis.cone = new Mesh( _coneGeometry, new MeshBasicMaterial( { color: color, toneMapped: false } ) );\n\t\tthis.cone.matrixAutoUpdate = false;\n\t\tthis.add( this.cone );\n\n\t\tthis.setDirection( dir );\n\t\tthis.setLength( length, headLength, headWidth );\n\n\t}\n\n\tsetDirection( dir ) {\n\n\t\t// dir is assumed to be normalized\n\n\t\tif ( dir.y > 0.99999 ) {\n\n\t\t\tthis.quaternion.set( 0, 0, 0, 1 );\n\n\t\t} else if ( dir.y < - 0.99999 ) {\n\n\t\t\tthis.quaternion.set( 1, 0, 0, 0 );\n\n\t\t} else {\n\n\t\t\t_axis.set( dir.z, 0, - dir.x ).normalize();\n\n\t\t\tconst radians = Math.acos( dir.y );\n\n\t\t\tthis.quaternion.setFromAxisAngle( _axis, radians );\n\n\t\t}\n\n\t}\n\n\tsetLength( length, headLength = length * 0.2, headWidth = headLength * 0.2 ) {\n\n\t\tthis.line.scale.set( 1, Math.max( 0.0001, length - headLength ), 1 ); // see #17458\n\t\tthis.line.updateMatrix();\n\n\t\tthis.cone.scale.set( headWidth, headLength, headWidth );\n\t\tthis.cone.position.y = length;\n\t\tthis.cone.updateMatrix();\n\n\t}\n\n\tsetColor( color ) {\n\n\t\tthis.line.material.color.set( color );\n\t\tthis.cone.material.color.set( color );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source, false );\n\n\t\tthis.line.copy( source.line );\n\t\tthis.cone.copy( source.cone );\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.line.geometry.dispose();\n\t\tthis.line.material.dispose();\n\t\tthis.cone.geometry.dispose();\n\t\tthis.cone.material.dispose();\n\n\t}\n\n}\n\nclass AxesHelper extends LineSegments {\n\n\tconstructor( size = 1 ) {\n\n\t\tconst vertices = [\n\t\t\t0, 0, 0,\tsize, 0, 0,\n\t\t\t0, 0, 0,\t0, size, 0,\n\t\t\t0, 0, 0,\t0, 0, size\n\t\t];\n\n\t\tconst colors = [\n\t\t\t1, 0, 0,\t1, 0.6, 0,\n\t\t\t0, 1, 0,\t0.6, 1, 0,\n\t\t\t0, 0, 1,\t0, 0.6, 1\n\t\t];\n\n\t\tconst geometry = new BufferGeometry();\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tgeometry.setAttribute( 'color', new Float32BufferAttribute( colors, 3 ) );\n\n\t\tconst material = new LineBasicMaterial( { vertexColors: true, toneMapped: false } );\n\n\t\tsuper( geometry, material );\n\n\t\tthis.type = 'AxesHelper';\n\n\t}\n\n\tsetColors( xAxisColor, yAxisColor, zAxisColor ) {\n\n\t\tconst color = new Color();\n\t\tconst array = this.geometry.attributes.color.array;\n\n\t\tcolor.set( xAxisColor );\n\t\tcolor.toArray( array, 0 );\n\t\tcolor.toArray( array, 3 );\n\n\t\tcolor.set( yAxisColor );\n\t\tcolor.toArray( array, 6 );\n\t\tcolor.toArray( array, 9 );\n\n\t\tcolor.set( zAxisColor );\n\t\tcolor.toArray( array, 12 );\n\t\tcolor.toArray( array, 15 );\n\n\t\tthis.geometry.attributes.color.needsUpdate = true;\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\n\t}\n\n}\n\nclass ShapePath {\n\n\tconstructor() {\n\n\t\tthis.type = 'ShapePath';\n\n\t\tthis.color = new Color();\n\n\t\tthis.subPaths = [];\n\t\tthis.currentPath = null;\n\n\t}\n\n\tmoveTo( x, y ) {\n\n\t\tthis.currentPath = new Path();\n\t\tthis.subPaths.push( this.currentPath );\n\t\tthis.currentPath.moveTo( x, y );\n\n\t\treturn this;\n\n\t}\n\n\tlineTo( x, y ) {\n\n\t\tthis.currentPath.lineTo( x, y );\n\n\t\treturn this;\n\n\t}\n\n\tquadraticCurveTo( aCPx, aCPy, aX, aY ) {\n\n\t\tthis.currentPath.quadraticCurveTo( aCPx, aCPy, aX, aY );\n\n\t\treturn this;\n\n\t}\n\n\tbezierCurveTo( aCP1x, aCP1y, aCP2x, aCP2y, aX, aY ) {\n\n\t\tthis.currentPath.bezierCurveTo( aCP1x, aCP1y, aCP2x, aCP2y, aX, aY );\n\n\t\treturn this;\n\n\t}\n\n\tsplineThru( pts ) {\n\n\t\tthis.currentPath.splineThru( pts );\n\n\t\treturn this;\n\n\t}\n\n\ttoShapes( isCCW ) {\n\n\t\tfunction toShapesNoHoles( inSubpaths ) {\n\n\t\t\tconst shapes = [];\n\n\t\t\tfor ( let i = 0, l = inSubpaths.length; i < l; i ++ ) {\n\n\t\t\t\tconst tmpPath = inSubpaths[ i ];\n\n\t\t\t\tconst tmpShape = new Shape();\n\t\t\t\ttmpShape.curves = tmpPath.curves;\n\n\t\t\t\tshapes.push( tmpShape );\n\n\t\t\t}\n\n\t\t\treturn shapes;\n\n\t\t}\n\n\t\tfunction isPointInsidePolygon( inPt, inPolygon ) {\n\n\t\t\tconst polyLen = inPolygon.length;\n\n\t\t\t// inPt on polygon contour => immediate success or\n\t\t\t// toggling of inside/outside at every single! intersection point of an edge\n\t\t\t// with the horizontal line through inPt, left of inPt\n\t\t\t// not counting lowerY endpoints of edges and whole edges on that line\n\t\t\tlet inside = false;\n\t\t\tfor ( let p = polyLen - 1, q = 0; q < polyLen; p = q ++ ) {\n\n\t\t\t\tlet edgeLowPt = inPolygon[ p ];\n\t\t\t\tlet edgeHighPt = inPolygon[ q ];\n\n\t\t\t\tlet edgeDx = edgeHighPt.x - edgeLowPt.x;\n\t\t\t\tlet edgeDy = edgeHighPt.y - edgeLowPt.y;\n\n\t\t\t\tif ( Math.abs( edgeDy ) > Number.EPSILON ) {\n\n\t\t\t\t\t// not parallel\n\t\t\t\t\tif ( edgeDy < 0 ) {\n\n\t\t\t\t\t\tedgeLowPt = inPolygon[ q ]; edgeDx = - edgeDx;\n\t\t\t\t\t\tedgeHighPt = inPolygon[ p ]; edgeDy = - edgeDy;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ( inPt.y < edgeLowPt.y ) || ( inPt.y > edgeHighPt.y ) ) \t\tcontinue;\n\n\t\t\t\t\tif ( inPt.y === edgeLowPt.y ) {\n\n\t\t\t\t\t\tif ( inPt.x === edgeLowPt.x )\t\treturn\ttrue;\t\t// inPt is on contour ?\n\t\t\t\t\t\t// continue;\t\t\t\t// no intersection or edgeLowPt => doesn't count !!!\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tconst perpEdge = edgeDy * ( inPt.x - edgeLowPt.x ) - edgeDx * ( inPt.y - edgeLowPt.y );\n\t\t\t\t\t\tif ( perpEdge === 0 )\t\t\t\treturn\ttrue;\t\t// inPt is on contour ?\n\t\t\t\t\t\tif ( perpEdge < 0 ) \t\t\t\tcontinue;\n\t\t\t\t\t\tinside = ! inside;\t\t// true intersection left of inPt\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// parallel or collinear\n\t\t\t\t\tif ( inPt.y !== edgeLowPt.y ) \t\tcontinue;\t\t\t// parallel\n\t\t\t\t\t// edge lies on the same horizontal line as inPt\n\t\t\t\t\tif ( ( ( edgeHighPt.x <= inPt.x ) && ( inPt.x <= edgeLowPt.x ) ) ||\n\t\t\t\t\t\t ( ( edgeLowPt.x <= inPt.x ) && ( inPt.x <= edgeHighPt.x ) ) )\t\treturn\ttrue;\t// inPt: Point on contour !\n\t\t\t\t\t// continue;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn\tinside;\n\n\t\t}\n\n\t\tconst isClockWise = ShapeUtils.isClockWise;\n\n\t\tconst subPaths = this.subPaths;\n\t\tif ( subPaths.length === 0 ) return [];\n\n\t\tlet solid, tmpPath, tmpShape;\n\t\tconst shapes = [];\n\n\t\tif ( subPaths.length === 1 ) {\n\n\t\t\ttmpPath = subPaths[ 0 ];\n\t\t\ttmpShape = new Shape();\n\t\t\ttmpShape.curves = tmpPath.curves;\n\t\t\tshapes.push( tmpShape );\n\t\t\treturn shapes;\n\n\t\t}\n\n\t\tlet holesFirst = ! isClockWise( subPaths[ 0 ].getPoints() );\n\t\tholesFirst = isCCW ? ! holesFirst : holesFirst;\n\n\t\t// console.log(\"Holes first\", holesFirst);\n\n\t\tconst betterShapeHoles = [];\n\t\tconst newShapes = [];\n\t\tlet newShapeHoles = [];\n\t\tlet mainIdx = 0;\n\t\tlet tmpPoints;\n\n\t\tnewShapes[ mainIdx ] = undefined;\n\t\tnewShapeHoles[ mainIdx ] = [];\n\n\t\tfor ( let i = 0, l = subPaths.length; i < l; i ++ ) {\n\n\t\t\ttmpPath = subPaths[ i ];\n\t\t\ttmpPoints = tmpPath.getPoints();\n\t\t\tsolid = isClockWise( tmpPoints );\n\t\t\tsolid = isCCW ? ! solid : solid;\n\n\t\t\tif ( solid ) {\n\n\t\t\t\tif ( ( ! holesFirst ) && ( newShapes[ mainIdx ] ) )\tmainIdx ++;\n\n\t\t\t\tnewShapes[ mainIdx ] = { s: new Shape(), p: tmpPoints };\n\t\t\t\tnewShapes[ mainIdx ].s.curves = tmpPath.curves;\n\n\t\t\t\tif ( holesFirst )\tmainIdx ++;\n\t\t\t\tnewShapeHoles[ mainIdx ] = [];\n\n\t\t\t\t//console.log('cw', i);\n\n\t\t\t} else {\n\n\t\t\t\tnewShapeHoles[ mainIdx ].push( { h: tmpPath, p: tmpPoints[ 0 ] } );\n\n\t\t\t\t//console.log('ccw', i);\n\n\t\t\t}\n\n\t\t}\n\n\t\t// only Holes? -> probably all Shapes with wrong orientation\n\t\tif ( ! newShapes[ 0 ] )\treturn\ttoShapesNoHoles( subPaths );\n\n\n\t\tif ( newShapes.length > 1 ) {\n\n\t\t\tlet ambiguous = false;\n\t\t\tlet toChange = 0;\n\n\t\t\tfor ( let sIdx = 0, sLen = newShapes.length; sIdx < sLen; sIdx ++ ) {\n\n\t\t\t\tbetterShapeHoles[ sIdx ] = [];\n\n\t\t\t}\n\n\t\t\tfor ( let sIdx = 0, sLen = newShapes.length; sIdx < sLen; sIdx ++ ) {\n\n\t\t\t\tconst sho = newShapeHoles[ sIdx ];\n\n\t\t\t\tfor ( let hIdx = 0; hIdx < sho.length; hIdx ++ ) {\n\n\t\t\t\t\tconst ho = sho[ hIdx ];\n\t\t\t\t\tlet hole_unassigned = true;\n\n\t\t\t\t\tfor ( let s2Idx = 0; s2Idx < newShapes.length; s2Idx ++ ) {\n\n\t\t\t\t\t\tif ( isPointInsidePolygon( ho.p, newShapes[ s2Idx ].p ) ) {\n\n\t\t\t\t\t\t\tif ( sIdx !== s2Idx )\ttoChange ++;\n\n\t\t\t\t\t\t\tif ( hole_unassigned ) {\n\n\t\t\t\t\t\t\t\thole_unassigned = false;\n\t\t\t\t\t\t\t\tbetterShapeHoles[ s2Idx ].push( ho );\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tambiguous = true;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( hole_unassigned ) {\n\n\t\t\t\t\t\tbetterShapeHoles[ sIdx ].push( ho );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( toChange > 0 && ambiguous === false ) {\n\n\t\t\t\tnewShapeHoles = betterShapeHoles;\n\n\t\t\t}\n\n\t\t}\n\n\t\tlet tmpHoles;\n\n\t\tfor ( let i = 0, il = newShapes.length; i < il; i ++ ) {\n\n\t\t\ttmpShape = newShapes[ i ].s;\n\t\t\tshapes.push( tmpShape );\n\t\t\ttmpHoles = newShapeHoles[ i ];\n\n\t\t\tfor ( let j = 0, jl = tmpHoles.length; j < jl; j ++ ) {\n\n\t\t\t\ttmpShape.holes.push( tmpHoles[ j ].h );\n\n\t\t\t}\n\n\t\t}\n\n\t\t//console.log(\"shape\", shapes);\n\n\t\treturn shapes;\n\n\t}\n\n}\n\nclass Controls extends EventDispatcher {\n\n\tconstructor( object, domElement = null ) {\n\n\t\tsuper();\n\n\t\tthis.object = object;\n\t\tthis.domElement = domElement;\n\n\t\tthis.enabled = true;\n\n\t\tthis.state = - 1;\n\n\t\tthis.keys = {};\n\t\tthis.mouseButtons = { LEFT: null, MIDDLE: null, RIGHT: null };\n\t\tthis.touches = { ONE: null, TWO: null };\n\n\t}\n\n\tconnect() {}\n\n\tdisconnect() {}\n\n\tdispose() {}\n\n\tupdate( /* delta */ ) {}\n\n}\n\nclass WebGLMultipleRenderTargets extends WebGLRenderTarget { // @deprecated, r162\n\n\tconstructor( width = 1, height = 1, count = 1, options = {} ) {\n\n\t\tconsole.warn( 'THREE.WebGLMultipleRenderTargets has been deprecated and will be removed in r172. Use THREE.WebGLRenderTarget and set the \"count\" parameter to enable MRT.' );\n\n\t\tsuper( width, height, { ...options, count } );\n\n\t\tthis.isWebGLMultipleRenderTargets = true;\n\n\t}\n\n\tget texture() {\n\n\t\treturn this.textures;\n\n\t}\n\n}\n\nif ( typeof __THREE_DEVTOOLS__ !== 'undefined' ) {\n\n\t__THREE_DEVTOOLS__.dispatchEvent( new CustomEvent( 'register', { detail: {\n\t\trevision: REVISION,\n\t} } ) );\n\n}\n\nif ( typeof window !== 'undefined' ) {\n\n\tif ( window.__THREE__ ) {\n\n\t\tconsole.warn( 'WARNING: Multiple instances of Three.js being imported.' );\n\n\t} else {\n\n\t\twindow.__THREE__ = REVISION;\n\n\t}\n\n}\n\nexport { ACESFilmicToneMapping, AddEquation, AddOperation, AdditiveAnimationBlendMode, AdditiveBlending, AgXToneMapping, AlphaFormat, AlwaysCompare, AlwaysDepth, AlwaysStencilFunc, AmbientLight, AnimationAction, AnimationClip, AnimationLoader, AnimationMixer, AnimationObjectGroup, AnimationUtils, ArcCurve, ArrayCamera, ArrowHelper, AttachedBindMode, Audio, AudioAnalyser, AudioContext, AudioListener, AudioLoader, AxesHelper, BackSide, BasicDepthPacking, BasicShadowMap, BatchedMesh, Bone, BooleanKeyframeTrack, Box2, Box3, Box3Helper, BoxGeometry, BoxHelper, BufferAttribute, BufferGeometry, BufferGeometryLoader, ByteType, Cache, Camera, CameraHelper, CanvasTexture, CapsuleGeometry, CatmullRomCurve3, CineonToneMapping, CircleGeometry, ClampToEdgeWrapping, Clock, Color, ColorKeyframeTrack, ColorManagement, CompressedArrayTexture, CompressedCubeTexture, CompressedTexture, CompressedTextureLoader, ConeGeometry, ConstantAlphaFactor, ConstantColorFactor, Controls, CubeCamera, CubeReflectionMapping, CubeRefractionMapping, CubeTexture, CubeTextureLoader, CubeUVReflectionMapping, CubicBezierCurve, CubicBezierCurve3, CubicInterpolant, CullFaceBack, CullFaceFront, CullFaceFrontBack, CullFaceNone, Curve, CurvePath, CustomBlending, CustomToneMapping, CylinderGeometry, Cylindrical, Data3DTexture, DataArrayTexture, DataTexture, DataTextureLoader, DataUtils, DecrementStencilOp, DecrementWrapStencilOp, DefaultLoadingManager, DepthFormat, DepthStencilFormat, DepthTexture, DetachedBindMode, DirectionalLight, DirectionalLightHelper, DiscreteInterpolant, DodecahedronGeometry, DoubleSide, DstAlphaFactor, DstColorFactor, DynamicCopyUsage, DynamicDrawUsage, DynamicReadUsage, EdgesGeometry, EllipseCurve, EqualCompare, EqualDepth, EqualStencilFunc, EquirectangularReflectionMapping, EquirectangularRefractionMapping, Euler, EventDispatcher, ExtrudeGeometry, FileLoader, Float16BufferAttribute, Float32BufferAttribute, FloatType, Fog, FogExp2, FramebufferTexture, FrontSide, Frustum, GLBufferAttribute, GLSL1, GLSL3, GreaterCompare, GreaterDepth, GreaterEqualCompare, GreaterEqualDepth, GreaterEqualStencilFunc, GreaterStencilFunc, GridHelper, Group, HalfFloatType, HemisphereLight, HemisphereLightHelper, IcosahedronGeometry, ImageBitmapLoader, ImageLoader, ImageUtils, IncrementStencilOp, IncrementWrapStencilOp, InstancedBufferAttribute, InstancedBufferGeometry, InstancedInterleavedBuffer, InstancedMesh, Int16BufferAttribute, Int32BufferAttribute, Int8BufferAttribute, IntType, InterleavedBuffer, InterleavedBufferAttribute, Interpolant, InterpolateDiscrete, InterpolateLinear, InterpolateSmooth, InvertStencilOp, KeepStencilOp, KeyframeTrack, LOD, LatheGeometry, Layers, LessCompare, LessDepth, LessEqualCompare, LessEqualDepth, LessEqualStencilFunc, LessStencilFunc, Light, LightProbe, Line, Line3, LineBasicMaterial, LineCurve, LineCurve3, LineDashedMaterial, LineLoop, LineSegments, LinearFilter, LinearInterpolant, LinearMipMapLinearFilter, LinearMipMapNearestFilter, LinearMipmapLinearFilter, LinearMipmapNearestFilter, LinearSRGBColorSpace, LinearToneMapping, LinearTransfer, Loader, LoaderUtils, LoadingManager, LoopOnce, LoopPingPong, LoopRepeat, LuminanceAlphaFormat, LuminanceFormat, MOUSE, Material, MaterialLoader, MathUtils, Matrix2, Matrix3, Matrix4, MaxEquation, Mesh, MeshBasicMaterial, MeshDepthMaterial, MeshDistanceMaterial, MeshLambertMaterial, MeshMatcapMaterial, MeshNormalMaterial, MeshPhongMaterial, MeshPhysicalMaterial, MeshStandardMaterial, MeshToonMaterial, MinEquation, MirroredRepeatWrapping, MixOperation, MultiplyBlending, MultiplyOperation, NearestFilter, NearestMipMapLinearFilter, NearestMipMapNearestFilter, NearestMipmapLinearFilter, NearestMipmapNearestFilter, NeutralToneMapping, NeverCompare, NeverDepth, NeverStencilFunc, NoBlending, NoColorSpace, NoToneMapping, NormalAnimationBlendMode, NormalBlending, NotEqualCompare, NotEqualDepth, NotEqualStencilFunc, NumberKeyframeTrack, Object3D, ObjectLoader, ObjectSpaceNormalMap, OctahedronGeometry, OneFactor, OneMinusConstantAlphaFactor, OneMinusConstantColorFactor, OneMinusDstAlphaFactor, OneMinusDstColorFactor, OneMinusSrcAlphaFactor, OneMinusSrcColorFactor, OrthographicCamera, PCFShadowMap, PCFSoftShadowMap, PMREMGenerator, Path, PerspectiveCamera, Plane, PlaneGeometry, PlaneHelper, PointLight, PointLightHelper, Points, PointsMaterial, PolarGridHelper, PolyhedronGeometry, PositionalAudio, PropertyBinding, PropertyMixer, QuadraticBezierCurve, QuadraticBezierCurve3, Quaternion, QuaternionKeyframeTrack, QuaternionLinearInterpolant, RED_GREEN_RGTC2_Format, RED_RGTC1_Format, REVISION, RGBADepthPacking, RGBAFormat, RGBAIntegerFormat, RGBA_ASTC_10x10_Format, RGBA_ASTC_10x5_Format, RGBA_ASTC_10x6_Format, RGBA_ASTC_10x8_Format, RGBA_ASTC_12x10_Format, RGBA_ASTC_12x12_Format, RGBA_ASTC_4x4_Format, RGBA_ASTC_5x4_Format, RGBA_ASTC_5x5_Format, RGBA_ASTC_6x5_Format, RGBA_ASTC_6x6_Format, RGBA_ASTC_8x5_Format, RGBA_ASTC_8x6_Format, RGBA_ASTC_8x8_Format, RGBA_BPTC_Format, RGBA_ETC2_EAC_Format, RGBA_PVRTC_2BPPV1_Format, RGBA_PVRTC_4BPPV1_Format, RGBA_S3TC_DXT1_Format, RGBA_S3TC_DXT3_Format, RGBA_S3TC_DXT5_Format, RGBDepthPacking, RGBFormat, RGBIntegerFormat, RGB_BPTC_SIGNED_Format, RGB_BPTC_UNSIGNED_Format, RGB_ETC1_Format, RGB_ETC2_Format, RGB_PVRTC_2BPPV1_Format, RGB_PVRTC_4BPPV1_Format, RGB_S3TC_DXT1_Format, RGDepthPacking, RGFormat, RGIntegerFormat, RawShaderMaterial, Ray, Raycaster, RectAreaLight, RedFormat, RedIntegerFormat, ReinhardToneMapping, RenderTarget, RepeatWrapping, ReplaceStencilOp, ReverseSubtractEquation, RingGeometry, SIGNED_RED_GREEN_RGTC2_Format, SIGNED_RED_RGTC1_Format, SRGBColorSpace, SRGBTransfer, Scene, ShaderChunk, ShaderLib, ShaderMaterial, ShadowMaterial, Shape, ShapeGeometry, ShapePath, ShapeUtils, ShortType, Skeleton, SkeletonHelper, SkinnedMesh, Source, Sphere, SphereGeometry, Spherical, SphericalHarmonics3, SplineCurve, SpotLight, SpotLightHelper, Sprite, SpriteMaterial, SrcAlphaFactor, SrcAlphaSaturateFactor, SrcColorFactor, StaticCopyUsage, StaticDrawUsage, StaticReadUsage, StereoCamera, StreamCopyUsage, StreamDrawUsage, StreamReadUsage, StringKeyframeTrack, SubtractEquation, SubtractiveBlending, TOUCH, TangentSpaceNormalMap, TetrahedronGeometry, Texture, TextureLoader, TextureUtils, TorusGeometry, TorusKnotGeometry, Triangle, TriangleFanDrawMode, TriangleStripDrawMode, TrianglesDrawMode, TubeGeometry, UVMapping, Uint16BufferAttribute, Uint32BufferAttribute, Uint8BufferAttribute, Uint8ClampedBufferAttribute, Uniform, UniformsGroup, UniformsLib, UniformsUtils, UnsignedByteType, UnsignedInt248Type, UnsignedInt5999Type, UnsignedIntType, UnsignedShort4444Type, UnsignedShort5551Type, UnsignedShortType, VSMShadowMap, Vector2, Vector3, Vector4, VectorKeyframeTrack, VideoTexture, WebGL3DRenderTarget, WebGLArrayRenderTarget, WebGLCoordinateSystem, WebGLCubeRenderTarget, WebGLMultipleRenderTargets, WebGLRenderTarget, WebGLRenderer, WebGLUtils, WebGPUCoordinateSystem, WireframeGeometry, WrapAroundEnding, ZeroCurvatureEnding, ZeroFactor, ZeroSlopeEnding, ZeroStencilOp, createCanvasElement };\n","import {\n\tControls,\n\tMOUSE,\n\tQuaternion,\n\tSpherical,\n\tTOUCH,\n\tVector2,\n\tVector3,\n\tPlane,\n\tRay,\n\tMathUtils\n} from 'three';\n\n// OrbitControls performs orbiting, dollying (zooming), and panning.\n// Unlike TrackballControls, it maintains the \"up\" direction object.up (+Y by default).\n//\n// Orbit - left mouse / touch: one-finger move\n// Zoom - middle mouse, or mousewheel / touch: two-finger spread or squish\n// Pan - right mouse, or left mouse + ctrl/meta/shiftKey, or arrow keys / touch: two-finger move\n\nconst _changeEvent = { type: 'change' };\nconst _startEvent = { type: 'start' };\nconst _endEvent = { type: 'end' };\nconst _ray = new Ray();\nconst _plane = new Plane();\nconst _TILT_LIMIT = Math.cos( 70 * MathUtils.DEG2RAD );\n\nconst _v = new Vector3();\nconst _twoPI = 2 * Math.PI;\n\nconst _STATE = {\n\tNONE: - 1,\n\tROTATE: 0,\n\tDOLLY: 1,\n\tPAN: 2,\n\tTOUCH_ROTATE: 3,\n\tTOUCH_PAN: 4,\n\tTOUCH_DOLLY_PAN: 5,\n\tTOUCH_DOLLY_ROTATE: 6\n};\nconst _EPS = 0.000001;\n\nclass OrbitControls extends Controls {\n\n\tconstructor( object, domElement = null ) {\n\n\t\tsuper( object, domElement );\n\n\t\tthis.state = _STATE.NONE;\n\n\t\t// Set to false to disable this control\n\t\tthis.enabled = true;\n\n\t\t// \"target\" sets the location of focus, where the object orbits around\n\t\tthis.target = new Vector3();\n\n\t\t// Sets the 3D cursor (similar to Blender), from which the maxTargetRadius takes effect\n\t\tthis.cursor = new Vector3();\n\n\t\t// How far you can dolly in and out ( PerspectiveCamera only )\n\t\tthis.minDistance = 0;\n\t\tthis.maxDistance = Infinity;\n\n\t\t// How far you can zoom in and out ( OrthographicCamera only )\n\t\tthis.minZoom = 0;\n\t\tthis.maxZoom = Infinity;\n\n\t\t// Limit camera target within a spherical area around the cursor\n\t\tthis.minTargetRadius = 0;\n\t\tthis.maxTargetRadius = Infinity;\n\n\t\t// How far you can orbit vertically, upper and lower limits.\n\t\t// Range is 0 to Math.PI radians.\n\t\tthis.minPolarAngle = 0; // radians\n\t\tthis.maxPolarAngle = Math.PI; // radians\n\n\t\t// How far you can orbit horizontally, upper and lower limits.\n\t\t// If set, the interval [ min, max ] must be a sub-interval of [ - 2 PI, 2 PI ], with ( max - min < 2 PI )\n\t\tthis.minAzimuthAngle = - Infinity; // radians\n\t\tthis.maxAzimuthAngle = Infinity; // radians\n\n\t\t// Set to true to enable damping (inertia)\n\t\t// If damping is enabled, you must call controls.update() in your animation loop\n\t\tthis.enableDamping = false;\n\t\tthis.dampingFactor = 0.05;\n\n\t\t// This option actually enables dollying in and out; left as \"zoom\" for backwards compatibility.\n\t\t// Set to false to disable zooming\n\t\tthis.enableZoom = true;\n\t\tthis.zoomSpeed = 1.0;\n\n\t\t// Set to false to disable rotating\n\t\tthis.enableRotate = true;\n\t\tthis.rotateSpeed = 1.0;\n\n\t\t// Set to false to disable panning\n\t\tthis.enablePan = true;\n\t\tthis.panSpeed = 1.0;\n\t\tthis.screenSpacePanning = true; // if false, pan orthogonal to world-space direction camera.up\n\t\tthis.keyPanSpeed = 7.0;\t// pixels moved per arrow key push\n\t\tthis.zoomToCursor = false;\n\n\t\t// Set to true to automatically rotate around the target\n\t\t// If auto-rotate is enabled, you must call controls.update() in your animation loop\n\t\tthis.autoRotate = false;\n\t\tthis.autoRotateSpeed = 2.0; // 30 seconds per orbit when fps is 60\n\n\t\t// The four arrow keys\n\t\tthis.keys = { LEFT: 'ArrowLeft', UP: 'ArrowUp', RIGHT: 'ArrowRight', BOTTOM: 'ArrowDown' };\n\n\t\t// Mouse buttons\n\t\tthis.mouseButtons = { LEFT: MOUSE.ROTATE, MIDDLE: MOUSE.DOLLY, RIGHT: MOUSE.PAN };\n\n\t\t// Touch fingers\n\t\tthis.touches = { ONE: TOUCH.ROTATE, TWO: TOUCH.DOLLY_PAN };\n\n\t\t// for reset\n\t\tthis.target0 = this.target.clone();\n\t\tthis.position0 = this.object.position.clone();\n\t\tthis.zoom0 = this.object.zoom;\n\n\t\t// the target DOM element for key events\n\t\tthis._domElementKeyEvents = null;\n\n\t\t// internals\n\n\t\tthis._lastPosition = new Vector3();\n\t\tthis._lastQuaternion = new Quaternion();\n\t\tthis._lastTargetPosition = new Vector3();\n\n\t\t// so camera.up is the orbit axis\n\t\tthis._quat = new Quaternion().setFromUnitVectors( object.up, new Vector3( 0, 1, 0 ) );\n\t\tthis._quatInverse = this._quat.clone().invert();\n\n\t\t// current position in spherical coordinates\n\t\tthis._spherical = new Spherical();\n\t\tthis._sphericalDelta = new Spherical();\n\n\t\tthis._scale = 1;\n\t\tthis._panOffset = new Vector3();\n\n\t\tthis._rotateStart = new Vector2();\n\t\tthis._rotateEnd = new Vector2();\n\t\tthis._rotateDelta = new Vector2();\n\n\t\tthis._panStart = new Vector2();\n\t\tthis._panEnd = new Vector2();\n\t\tthis._panDelta = new Vector2();\n\n\t\tthis._dollyStart = new Vector2();\n\t\tthis._dollyEnd = new Vector2();\n\t\tthis._dollyDelta = new Vector2();\n\n\t\tthis._dollyDirection = new Vector3();\n\t\tthis._mouse = new Vector2();\n\t\tthis._performCursorZoom = false;\n\n\t\tthis._pointers = [];\n\t\tthis._pointerPositions = {};\n\n\t\tthis._controlActive = false;\n\n\t\t// event listeners\n\n\t\tthis._onPointerMove = onPointerMove.bind( this );\n\t\tthis._onPointerDown = onPointerDown.bind( this );\n\t\tthis._onPointerUp = onPointerUp.bind( this );\n\t\tthis._onContextMenu = onContextMenu.bind( this );\n\t\tthis._onMouseWheel = onMouseWheel.bind( this );\n\t\tthis._onKeyDown = onKeyDown.bind( this );\n\n\t\tthis._onTouchStart = onTouchStart.bind( this );\n\t\tthis._onTouchMove = onTouchMove.bind( this );\n\n\t\tthis._onMouseDown = onMouseDown.bind( this );\n\t\tthis._onMouseMove = onMouseMove.bind( this );\n\n\t\tthis._interceptControlDown = interceptControlDown.bind( this );\n\t\tthis._interceptControlUp = interceptControlUp.bind( this );\n\n\t\t//\n\n\t\tif ( this.domElement !== null ) {\n\n\t\t\tthis.connect();\n\n\t\t}\n\n\t\tthis.update();\n\n\t}\n\n\tconnect() {\n\n\t\tthis.domElement.addEventListener( 'pointerdown', this._onPointerDown );\n\t\tthis.domElement.addEventListener( 'pointercancel', this._onPointerUp );\n\n\t\tthis.domElement.addEventListener( 'contextmenu', this._onContextMenu );\n\t\tthis.domElement.addEventListener( 'wheel', this._onMouseWheel, { passive: false } );\n\n\t\tconst document = this.domElement.getRootNode(); // offscreen canvas compatibility\n\t\tdocument.addEventListener( 'keydown', this._interceptControlDown, { passive: true, capture: true } );\n\n\t\tthis.domElement.style.touchAction = 'none'; // disable touch scroll\n\n\t}\n\n\tdisconnect() {\n\n\t\tthis.domElement.removeEventListener( 'pointerdown', this._onPointerDown );\n\t\tthis.domElement.removeEventListener( 'pointermove', this._onPointerMove );\n\t\tthis.domElement.removeEventListener( 'pointerup', this._onPointerUp );\n\t\tthis.domElement.removeEventListener( 'pointercancel', this._onPointerUp );\n\n\t\tthis.domElement.removeEventListener( 'wheel', this._onMouseWheel );\n\t\tthis.domElement.removeEventListener( 'contextmenu', this._onContextMenu );\n\n\t\tthis.stopListenToKeyEvents();\n\n\t\tconst document = this.domElement.getRootNode(); // offscreen canvas compatibility\n\t\tdocument.removeEventListener( 'keydown', this._interceptControlDown, { capture: true } );\n\n\t\tthis.domElement.style.touchAction = 'auto';\n\n\t}\n\n\tdispose() {\n\n\t\tthis.disconnect();\n\n\t}\n\n\tgetPolarAngle() {\n\n\t\treturn this._spherical.phi;\n\n\t}\n\n\tgetAzimuthalAngle() {\n\n\t\treturn this._spherical.theta;\n\n\t}\n\n\tgetDistance() {\n\n\t\treturn this.object.position.distanceTo( this.target );\n\n\t}\n\n\tlistenToKeyEvents( domElement ) {\n\n\t\tdomElement.addEventListener( 'keydown', this._onKeyDown );\n\t\tthis._domElementKeyEvents = domElement;\n\n\t}\n\n\tstopListenToKeyEvents() {\n\n\t\tif ( this._domElementKeyEvents !== null ) {\n\n\t\t\tthis._domElementKeyEvents.removeEventListener( 'keydown', this._onKeyDown );\n\t\t\tthis._domElementKeyEvents = null;\n\n\t\t}\n\n\t}\n\n\tsaveState() {\n\n\t\tthis.target0.copy( this.target );\n\t\tthis.position0.copy( this.object.position );\n\t\tthis.zoom0 = this.object.zoom;\n\n\t}\n\n\treset() {\n\n\t\tthis.target.copy( this.target0 );\n\t\tthis.object.position.copy( this.position0 );\n\t\tthis.object.zoom = this.zoom0;\n\n\t\tthis.object.updateProjectionMatrix();\n\t\tthis.dispatchEvent( _changeEvent );\n\n\t\tthis.update();\n\n\t\tthis.state = _STATE.NONE;\n\n\t}\n\n\tupdate( deltaTime = null ) {\n\n\t\tconst position = this.object.position;\n\n\t\t_v.copy( position ).sub( this.target );\n\n\t\t// rotate offset to \"y-axis-is-up\" space\n\t\t_v.applyQuaternion( this._quat );\n\n\t\t// angle from z-axis around y-axis\n\t\tthis._spherical.setFromVector3( _v );\n\n\t\tif ( this.autoRotate && this.state === _STATE.NONE ) {\n\n\t\t\tthis._rotateLeft( this._getAutoRotationAngle( deltaTime ) );\n\n\t\t}\n\n\t\tif ( this.enableDamping ) {\n\n\t\t\tthis._spherical.theta += this._sphericalDelta.theta * this.dampingFactor;\n\t\t\tthis._spherical.phi += this._sphericalDelta.phi * this.dampingFactor;\n\n\t\t} else {\n\n\t\t\tthis._spherical.theta += this._sphericalDelta.theta;\n\t\t\tthis._spherical.phi += this._sphericalDelta.phi;\n\n\t\t}\n\n\t\t// restrict theta to be between desired limits\n\n\t\tlet min = this.minAzimuthAngle;\n\t\tlet max = this.maxAzimuthAngle;\n\n\t\tif ( isFinite( min ) && isFinite( max ) ) {\n\n\t\t\tif ( min < - Math.PI ) min += _twoPI; else if ( min > Math.PI ) min -= _twoPI;\n\n\t\t\tif ( max < - Math.PI ) max += _twoPI; else if ( max > Math.PI ) max -= _twoPI;\n\n\t\t\tif ( min <= max ) {\n\n\t\t\t\tthis._spherical.theta = Math.max( min, Math.min( max, this._spherical.theta ) );\n\n\t\t\t} else {\n\n\t\t\t\tthis._spherical.theta = ( this._spherical.theta > ( min + max ) / 2 ) ?\n\t\t\t\t\tMath.max( min, this._spherical.theta ) :\n\t\t\t\t\tMath.min( max, this._spherical.theta );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// restrict phi to be between desired limits\n\t\tthis._spherical.phi = Math.max( this.minPolarAngle, Math.min( this.maxPolarAngle, this._spherical.phi ) );\n\n\t\tthis._spherical.makeSafe();\n\n\n\t\t// move target to panned location\n\n\t\tif ( this.enableDamping === true ) {\n\n\t\t\tthis.target.addScaledVector( this._panOffset, this.dampingFactor );\n\n\t\t} else {\n\n\t\t\tthis.target.add( this._panOffset );\n\n\t\t}\n\n\t\t// Limit the target distance from the cursor to create a sphere around the center of interest\n\t\tthis.target.sub( this.cursor );\n\t\tthis.target.clampLength( this.minTargetRadius, this.maxTargetRadius );\n\t\tthis.target.add( this.cursor );\n\n\t\tlet zoomChanged = false;\n\t\t// adjust the camera position based on zoom only if we're not zooming to the cursor or if it's an ortho camera\n\t\t// we adjust zoom later in these cases\n\t\tif ( this.zoomToCursor && this._performCursorZoom || this.object.isOrthographicCamera ) {\n\n\t\t\tthis._spherical.radius = this._clampDistance( this._spherical.radius );\n\n\t\t} else {\n\n\t\t\tconst prevRadius = this._spherical.radius;\n\t\t\tthis._spherical.radius = this._clampDistance( this._spherical.radius * this._scale );\n\t\t\tzoomChanged = prevRadius != this._spherical.radius;\n\n\t\t}\n\n\t\t_v.setFromSpherical( this._spherical );\n\n\t\t// rotate offset back to \"camera-up-vector-is-up\" space\n\t\t_v.applyQuaternion( this._quatInverse );\n\n\t\tposition.copy( this.target ).add( _v );\n\n\t\tthis.object.lookAt( this.target );\n\n\t\tif ( this.enableDamping === true ) {\n\n\t\t\tthis._sphericalDelta.theta *= ( 1 - this.dampingFactor );\n\t\t\tthis._sphericalDelta.phi *= ( 1 - this.dampingFactor );\n\n\t\t\tthis._panOffset.multiplyScalar( 1 - this.dampingFactor );\n\n\t\t} else {\n\n\t\t\tthis._sphericalDelta.set( 0, 0, 0 );\n\n\t\t\tthis._panOffset.set( 0, 0, 0 );\n\n\t\t}\n\n\t\t// adjust camera position\n\t\tif ( this.zoomToCursor && this._performCursorZoom ) {\n\n\t\t\tlet newRadius = null;\n\t\t\tif ( this.object.isPerspectiveCamera ) {\n\n\t\t\t\t// move the camera down the pointer ray\n\t\t\t\t// this method avoids floating point error\n\t\t\t\tconst prevRadius = _v.length();\n\t\t\t\tnewRadius = this._clampDistance( prevRadius * this._scale );\n\n\t\t\t\tconst radiusDelta = prevRadius - newRadius;\n\t\t\t\tthis.object.position.addScaledVector( this._dollyDirection, radiusDelta );\n\t\t\t\tthis.object.updateMatrixWorld();\n\n\t\t\t\tzoomChanged = !! radiusDelta;\n\n\t\t\t} else if ( this.object.isOrthographicCamera ) {\n\n\t\t\t\t// adjust the ortho camera position based on zoom changes\n\t\t\t\tconst mouseBefore = new Vector3( this._mouse.x, this._mouse.y, 0 );\n\t\t\t\tmouseBefore.unproject( this.object );\n\n\t\t\t\tconst prevZoom = this.object.zoom;\n\t\t\t\tthis.object.zoom = Math.max( this.minZoom, Math.min( this.maxZoom, this.object.zoom / this._scale ) );\n\t\t\t\tthis.object.updateProjectionMatrix();\n\n\t\t\t\tzoomChanged = prevZoom !== this.object.zoom;\n\n\t\t\t\tconst mouseAfter = new Vector3( this._mouse.x, this._mouse.y, 0 );\n\t\t\t\tmouseAfter.unproject( this.object );\n\n\t\t\t\tthis.object.position.sub( mouseAfter ).add( mouseBefore );\n\t\t\t\tthis.object.updateMatrixWorld();\n\n\t\t\t\tnewRadius = _v.length();\n\n\t\t\t} else {\n\n\t\t\t\tconsole.warn( 'WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled.' );\n\t\t\t\tthis.zoomToCursor = false;\n\n\t\t\t}\n\n\t\t\t// handle the placement of the target\n\t\t\tif ( newRadius !== null ) {\n\n\t\t\t\tif ( this.screenSpacePanning ) {\n\n\t\t\t\t\t// position the orbit target in front of the new camera position\n\t\t\t\t\tthis.target.set( 0, 0, - 1 )\n\t\t\t\t\t\t.transformDirection( this.object.matrix )\n\t\t\t\t\t\t.multiplyScalar( newRadius )\n\t\t\t\t\t\t.add( this.object.position );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// get the ray and translation plane to compute target\n\t\t\t\t\t_ray.origin.copy( this.object.position );\n\t\t\t\t\t_ray.direction.set( 0, 0, - 1 ).transformDirection( this.object.matrix );\n\n\t\t\t\t\t// if the camera is 20 degrees above the horizon then don't adjust the focus target to avoid\n\t\t\t\t\t// extremely large values\n\t\t\t\t\tif ( Math.abs( this.object.up.dot( _ray.direction ) ) < _TILT_LIMIT ) {\n\n\t\t\t\t\t\tthis.object.lookAt( this.target );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t_plane.setFromNormalAndCoplanarPoint( this.object.up, this.target );\n\t\t\t\t\t\t_ray.intersectPlane( _plane, this.target );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else if ( this.object.isOrthographicCamera ) {\n\n\t\t\tconst prevZoom = this.object.zoom;\n\t\t\tthis.object.zoom = Math.max( this.minZoom, Math.min( this.maxZoom, this.object.zoom / this._scale ) );\n\n\t\t\tif ( prevZoom !== this.object.zoom ) {\n\n\t\t\t\tthis.object.updateProjectionMatrix();\n\t\t\t\tzoomChanged = true;\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis._scale = 1;\n\t\tthis._performCursorZoom = false;\n\n\t\t// update condition is:\n\t\t// min(camera displacement, camera rotation in radians)^2 > EPS\n\t\t// using small-angle approximation cos(x/2) = 1 - x^2 / 8\n\n\t\tif ( zoomChanged ||\n\t\t\tthis._lastPosition.distanceToSquared( this.object.position ) > _EPS ||\n\t\t\t8 * ( 1 - this._lastQuaternion.dot( this.object.quaternion ) ) > _EPS ||\n\t\t\tthis._lastTargetPosition.distanceToSquared( this.target ) > _EPS ) {\n\n\t\t\tthis.dispatchEvent( _changeEvent );\n\n\t\t\tthis._lastPosition.copy( this.object.position );\n\t\t\tthis._lastQuaternion.copy( this.object.quaternion );\n\t\t\tthis._lastTargetPosition.copy( this.target );\n\n\t\t\treturn true;\n\n\t\t}\n\n\t\treturn false;\n\n\t}\n\n\t_getAutoRotationAngle( deltaTime ) {\n\n\t\tif ( deltaTime !== null ) {\n\n\t\t\treturn ( _twoPI / 60 * this.autoRotateSpeed ) * deltaTime;\n\n\t\t} else {\n\n\t\t\treturn _twoPI / 60 / 60 * this.autoRotateSpeed;\n\n\t\t}\n\n\t}\n\n\t_getZoomScale( delta ) {\n\n\t\tconst normalizedDelta = Math.abs( delta * 0.01 );\n\t\treturn Math.pow( 0.95, this.zoomSpeed * normalizedDelta );\n\n\t}\n\n\t_rotateLeft( angle ) {\n\n\t\tthis._sphericalDelta.theta -= angle;\n\n\t}\n\n\t_rotateUp( angle ) {\n\n\t\tthis._sphericalDelta.phi -= angle;\n\n\t}\n\n\t_panLeft( distance, objectMatrix ) {\n\n\t\t_v.setFromMatrixColumn( objectMatrix, 0 ); // get X column of objectMatrix\n\t\t_v.multiplyScalar( - distance );\n\n\t\tthis._panOffset.add( _v );\n\n\t}\n\n\t_panUp( distance, objectMatrix ) {\n\n\t\tif ( this.screenSpacePanning === true ) {\n\n\t\t\t_v.setFromMatrixColumn( objectMatrix, 1 );\n\n\t\t} else {\n\n\t\t\t_v.setFromMatrixColumn( objectMatrix, 0 );\n\t\t\t_v.crossVectors( this.object.up, _v );\n\n\t\t}\n\n\t\t_v.multiplyScalar( distance );\n\n\t\tthis._panOffset.add( _v );\n\n\t}\n\n\t// deltaX and deltaY are in pixels; right and down are positive\n\t_pan( deltaX, deltaY ) {\n\n\t\tconst element = this.domElement;\n\n\t\tif ( this.object.isPerspectiveCamera ) {\n\n\t\t\t// perspective\n\t\t\tconst position = this.object.position;\n\t\t\t_v.copy( position ).sub( this.target );\n\t\t\tlet targetDistance = _v.length();\n\n\t\t\t// half of the fov is center to top of screen\n\t\t\ttargetDistance *= Math.tan( ( this.object.fov / 2 ) * Math.PI / 180.0 );\n\n\t\t\t// we use only clientHeight here so aspect ratio does not distort speed\n\t\t\tthis._panLeft( 2 * deltaX * targetDistance / element.clientHeight, this.object.matrix );\n\t\t\tthis._panUp( 2 * deltaY * targetDistance / element.clientHeight, this.object.matrix );\n\n\t\t} else if ( this.object.isOrthographicCamera ) {\n\n\t\t\t// orthographic\n\t\t\tthis._panLeft( deltaX * ( this.object.right - this.object.left ) / this.object.zoom / element.clientWidth, this.object.matrix );\n\t\t\tthis._panUp( deltaY * ( this.object.top - this.object.bottom ) / this.object.zoom / element.clientHeight, this.object.matrix );\n\n\t\t} else {\n\n\t\t\t// camera neither orthographic nor perspective\n\t\t\tconsole.warn( 'WARNING: OrbitControls.js encountered an unknown camera type - pan disabled.' );\n\t\t\tthis.enablePan = false;\n\n\t\t}\n\n\t}\n\n\t_dollyOut( dollyScale ) {\n\n\t\tif ( this.object.isPerspectiveCamera || this.object.isOrthographicCamera ) {\n\n\t\t\tthis._scale /= dollyScale;\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.' );\n\t\t\tthis.enableZoom = false;\n\n\t\t}\n\n\t}\n\n\t_dollyIn( dollyScale ) {\n\n\t\tif ( this.object.isPerspectiveCamera || this.object.isOrthographicCamera ) {\n\n\t\t\tthis._scale *= dollyScale;\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.' );\n\t\t\tthis.enableZoom = false;\n\n\t\t}\n\n\t}\n\n\t_updateZoomParameters( x, y ) {\n\n\t\tif ( ! this.zoomToCursor ) {\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tthis._performCursorZoom = true;\n\n\t\tconst rect = this.domElement.getBoundingClientRect();\n\t\tconst dx = x - rect.left;\n\t\tconst dy = y - rect.top;\n\t\tconst w = rect.width;\n\t\tconst h = rect.height;\n\n\t\tthis._mouse.x = ( dx / w ) * 2 - 1;\n\t\tthis._mouse.y = - ( dy / h ) * 2 + 1;\n\n\t\tthis._dollyDirection.set( this._mouse.x, this._mouse.y, 1 ).unproject( this.object ).sub( this.object.position ).normalize();\n\n\t}\n\n\t_clampDistance( dist ) {\n\n\t\treturn Math.max( this.minDistance, Math.min( this.maxDistance, dist ) );\n\n\t}\n\n\t//\n\t// event callbacks - update the object state\n\t//\n\n\t_handleMouseDownRotate( event ) {\n\n\t\tthis._rotateStart.set( event.clientX, event.clientY );\n\n\t}\n\n\t_handleMouseDownDolly( event ) {\n\n\t\tthis._updateZoomParameters( event.clientX, event.clientX );\n\t\tthis._dollyStart.set( event.clientX, event.clientY );\n\n\t}\n\n\t_handleMouseDownPan( event ) {\n\n\t\tthis._panStart.set( event.clientX, event.clientY );\n\n\t}\n\n\t_handleMouseMoveRotate( event ) {\n\n\t\tthis._rotateEnd.set( event.clientX, event.clientY );\n\n\t\tthis._rotateDelta.subVectors( this._rotateEnd, this._rotateStart ).multiplyScalar( this.rotateSpeed );\n\n\t\tconst element = this.domElement;\n\n\t\tthis._rotateLeft( _twoPI * this._rotateDelta.x / element.clientHeight ); // yes, height\n\n\t\tthis._rotateUp( _twoPI * this._rotateDelta.y / element.clientHeight );\n\n\t\tthis._rotateStart.copy( this._rotateEnd );\n\n\t\tthis.update();\n\n\t}\n\n\t_handleMouseMoveDolly( event ) {\n\n\t\tthis._dollyEnd.set( event.clientX, event.clientY );\n\n\t\tthis._dollyDelta.subVectors( this._dollyEnd, this._dollyStart );\n\n\t\tif ( this._dollyDelta.y > 0 ) {\n\n\t\t\tthis._dollyOut( this._getZoomScale( this._dollyDelta.y ) );\n\n\t\t} else if ( this._dollyDelta.y < 0 ) {\n\n\t\t\tthis._dollyIn( this._getZoomScale( this._dollyDelta.y ) );\n\n\t\t}\n\n\t\tthis._dollyStart.copy( this._dollyEnd );\n\n\t\tthis.update();\n\n\t}\n\n\t_handleMouseMovePan( event ) {\n\n\t\tthis._panEnd.set( event.clientX, event.clientY );\n\n\t\tthis._panDelta.subVectors( this._panEnd, this._panStart ).multiplyScalar( this.panSpeed );\n\n\t\tthis._pan( this._panDelta.x, this._panDelta.y );\n\n\t\tthis._panStart.copy( this._panEnd );\n\n\t\tthis.update();\n\n\t}\n\n\t_handleMouseWheel( event ) {\n\n\t\tthis._updateZoomParameters( event.clientX, event.clientY );\n\n\t\tif ( event.deltaY < 0 ) {\n\n\t\t\tthis._dollyIn( this._getZoomScale( event.deltaY ) );\n\n\t\t} else if ( event.deltaY > 0 ) {\n\n\t\t\tthis._dollyOut( this._getZoomScale( event.deltaY ) );\n\n\t\t}\n\n\t\tthis.update();\n\n\t}\n\n\t_handleKeyDown( event ) {\n\n\t\tlet needsUpdate = false;\n\n\t\tswitch ( event.code ) {\n\n\t\t\tcase this.keys.UP:\n\n\t\t\t\tif ( event.ctrlKey || event.metaKey || event.shiftKey ) {\n\n\t\t\t\t\tthis._rotateUp( _twoPI * this.rotateSpeed / this.domElement.clientHeight );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._pan( 0, this.keyPanSpeed );\n\n\t\t\t\t}\n\n\t\t\t\tneedsUpdate = true;\n\t\t\t\tbreak;\n\n\t\t\tcase this.keys.BOTTOM:\n\n\t\t\t\tif ( event.ctrlKey || event.metaKey || event.shiftKey ) {\n\n\t\t\t\t\tthis._rotateUp( - _twoPI * this.rotateSpeed / this.domElement.clientHeight );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._pan( 0, - this.keyPanSpeed );\n\n\t\t\t\t}\n\n\t\t\t\tneedsUpdate = true;\n\t\t\t\tbreak;\n\n\t\t\tcase this.keys.LEFT:\n\n\t\t\t\tif ( event.ctrlKey || event.metaKey || event.shiftKey ) {\n\n\t\t\t\t\tthis._rotateLeft( _twoPI * this.rotateSpeed / this.domElement.clientHeight );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._pan( this.keyPanSpeed, 0 );\n\n\t\t\t\t}\n\n\t\t\t\tneedsUpdate = true;\n\t\t\t\tbreak;\n\n\t\t\tcase this.keys.RIGHT:\n\n\t\t\t\tif ( event.ctrlKey || event.metaKey || event.shiftKey ) {\n\n\t\t\t\t\tthis._rotateLeft( - _twoPI * this.rotateSpeed / this.domElement.clientHeight );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._pan( - this.keyPanSpeed, 0 );\n\n\t\t\t\t}\n\n\t\t\t\tneedsUpdate = true;\n\t\t\t\tbreak;\n\n\t\t}\n\n\t\tif ( needsUpdate ) {\n\n\t\t\t// prevent the browser from scrolling on cursor keys\n\t\t\tevent.preventDefault();\n\n\t\t\tthis.update();\n\n\t\t}\n\n\n\t}\n\n\t_handleTouchStartRotate( event ) {\n\n\t\tif ( this._pointers.length === 1 ) {\n\n\t\t\tthis._rotateStart.set( event.pageX, event.pageY );\n\n\t\t} else {\n\n\t\t\tconst position = this._getSecondPointerPosition( event );\n\n\t\t\tconst x = 0.5 * ( event.pageX + position.x );\n\t\t\tconst y = 0.5 * ( event.pageY + position.y );\n\n\t\t\tthis._rotateStart.set( x, y );\n\n\t\t}\n\n\t}\n\n\t_handleTouchStartPan( event ) {\n\n\t\tif ( this._pointers.length === 1 ) {\n\n\t\t\tthis._panStart.set( event.pageX, event.pageY );\n\n\t\t} else {\n\n\t\t\tconst position = this._getSecondPointerPosition( event );\n\n\t\t\tconst x = 0.5 * ( event.pageX + position.x );\n\t\t\tconst y = 0.5 * ( event.pageY + position.y );\n\n\t\t\tthis._panStart.set( x, y );\n\n\t\t}\n\n\t}\n\n\t_handleTouchStartDolly( event ) {\n\n\t\tconst position = this._getSecondPointerPosition( event );\n\n\t\tconst dx = event.pageX - position.x;\n\t\tconst dy = event.pageY - position.y;\n\n\t\tconst distance = Math.sqrt( dx * dx + dy * dy );\n\n\t\tthis._dollyStart.set( 0, distance );\n\n\t}\n\n\t_handleTouchStartDollyPan( event ) {\n\n\t\tif ( this.enableZoom ) this._handleTouchStartDolly( event );\n\n\t\tif ( this.enablePan ) this._handleTouchStartPan( event );\n\n\t}\n\n\t_handleTouchStartDollyRotate( event ) {\n\n\t\tif ( this.enableZoom ) this._handleTouchStartDolly( event );\n\n\t\tif ( this.enableRotate ) this._handleTouchStartRotate( event );\n\n\t}\n\n\t_handleTouchMoveRotate( event ) {\n\n\t\tif ( this._pointers.length == 1 ) {\n\n\t\t\tthis._rotateEnd.set( event.pageX, event.pageY );\n\n\t\t} else {\n\n\t\t\tconst position = this._getSecondPointerPosition( event );\n\n\t\t\tconst x = 0.5 * ( event.pageX + position.x );\n\t\t\tconst y = 0.5 * ( event.pageY + position.y );\n\n\t\t\tthis._rotateEnd.set( x, y );\n\n\t\t}\n\n\t\tthis._rotateDelta.subVectors( this._rotateEnd, this._rotateStart ).multiplyScalar( this.rotateSpeed );\n\n\t\tconst element = this.domElement;\n\n\t\tthis._rotateLeft( _twoPI * this._rotateDelta.x / element.clientHeight ); // yes, height\n\n\t\tthis._rotateUp( _twoPI * this._rotateDelta.y / element.clientHeight );\n\n\t\tthis._rotateStart.copy( this._rotateEnd );\n\n\t}\n\n\t_handleTouchMovePan( event ) {\n\n\t\tif ( this._pointers.length === 1 ) {\n\n\t\t\tthis._panEnd.set( event.pageX, event.pageY );\n\n\t\t} else {\n\n\t\t\tconst position = this._getSecondPointerPosition( event );\n\n\t\t\tconst x = 0.5 * ( event.pageX + position.x );\n\t\t\tconst y = 0.5 * ( event.pageY + position.y );\n\n\t\t\tthis._panEnd.set( x, y );\n\n\t\t}\n\n\t\tthis._panDelta.subVectors( this._panEnd, this._panStart ).multiplyScalar( this.panSpeed );\n\n\t\tthis._pan( this._panDelta.x, this._panDelta.y );\n\n\t\tthis._panStart.copy( this._panEnd );\n\n\t}\n\n\t_handleTouchMoveDolly( event ) {\n\n\t\tconst position = this._getSecondPointerPosition( event );\n\n\t\tconst dx = event.pageX - position.x;\n\t\tconst dy = event.pageY - position.y;\n\n\t\tconst distance = Math.sqrt( dx * dx + dy * dy );\n\n\t\tthis._dollyEnd.set( 0, distance );\n\n\t\tthis._dollyDelta.set( 0, Math.pow( this._dollyEnd.y / this._dollyStart.y, this.zoomSpeed ) );\n\n\t\tthis._dollyOut( this._dollyDelta.y );\n\n\t\tthis._dollyStart.copy( this._dollyEnd );\n\n\t\tconst centerX = ( event.pageX + position.x ) * 0.5;\n\t\tconst centerY = ( event.pageY + position.y ) * 0.5;\n\n\t\tthis._updateZoomParameters( centerX, centerY );\n\n\t}\n\n\t_handleTouchMoveDollyPan( event ) {\n\n\t\tif ( this.enableZoom ) this._handleTouchMoveDolly( event );\n\n\t\tif ( this.enablePan ) this._handleTouchMovePan( event );\n\n\t}\n\n\t_handleTouchMoveDollyRotate( event ) {\n\n\t\tif ( this.enableZoom ) this._handleTouchMoveDolly( event );\n\n\t\tif ( this.enableRotate ) this._handleTouchMoveRotate( event );\n\n\t}\n\n\t// pointers\n\n\t_addPointer( event ) {\n\n\t\tthis._pointers.push( event.pointerId );\n\n\t}\n\n\t_removePointer( event ) {\n\n\t\tdelete this._pointerPositions[ event.pointerId ];\n\n\t\tfor ( let i = 0; i < this._pointers.length; i ++ ) {\n\n\t\t\tif ( this._pointers[ i ] == event.pointerId ) {\n\n\t\t\t\tthis._pointers.splice( i, 1 );\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t_isTrackingPointer( event ) {\n\n\t\tfor ( let i = 0; i < this._pointers.length; i ++ ) {\n\n\t\t\tif ( this._pointers[ i ] == event.pointerId ) return true;\n\n\t\t}\n\n\t\treturn false;\n\n\t}\n\n\t_trackPointer( event ) {\n\n\t\tlet position = this._pointerPositions[ event.pointerId ];\n\n\t\tif ( position === undefined ) {\n\n\t\t\tposition = new Vector2();\n\t\t\tthis._pointerPositions[ event.pointerId ] = position;\n\n\t\t}\n\n\t\tposition.set( event.pageX, event.pageY );\n\n\t}\n\n\t_getSecondPointerPosition( event ) {\n\n\t\tconst pointerId = ( event.pointerId === this._pointers[ 0 ] ) ? this._pointers[ 1 ] : this._pointers[ 0 ];\n\n\t\treturn this._pointerPositions[ pointerId ];\n\n\t}\n\n\t//\n\n\t_customWheelEvent( event ) {\n\n\t\tconst mode = event.deltaMode;\n\n\t\t// minimal wheel event altered to meet delta-zoom demand\n\t\tconst newEvent = {\n\t\t\tclientX: event.clientX,\n\t\t\tclientY: event.clientY,\n\t\t\tdeltaY: event.deltaY,\n\t\t};\n\n\t\tswitch ( mode ) {\n\n\t\t\tcase 1: // LINE_MODE\n\t\t\t\tnewEvent.deltaY *= 16;\n\t\t\t\tbreak;\n\n\t\t\tcase 2: // PAGE_MODE\n\t\t\t\tnewEvent.deltaY *= 100;\n\t\t\t\tbreak;\n\n\t\t}\n\n\t\t// detect if event was triggered by pinching\n\t\tif ( event.ctrlKey && ! this._controlActive ) {\n\n\t\t\tnewEvent.deltaY *= 10;\n\n\t\t}\n\n\t\treturn newEvent;\n\n\t}\n\n}\n\nfunction onPointerDown( event ) {\n\n\tif ( this.enabled === false ) return;\n\n\tif ( this._pointers.length === 0 ) {\n\n\t\tthis.domElement.setPointerCapture( event.pointerId );\n\n\t\tthis.domElement.addEventListener( 'pointermove', this._onPointerMove );\n\t\tthis.domElement.addEventListener( 'pointerup', this._onPointerUp );\n\n\t}\n\n\t//\n\n\tif ( this._isTrackingPointer( event ) ) return;\n\n\t//\n\n\tthis._addPointer( event );\n\n\tif ( event.pointerType === 'touch' ) {\n\n\t\tthis._onTouchStart( event );\n\n\t} else {\n\n\t\tthis._onMouseDown( event );\n\n\t}\n\n}\n\nfunction onPointerMove( event ) {\n\n\tif ( this.enabled === false ) return;\n\n\tif ( event.pointerType === 'touch' ) {\n\n\t\tthis._onTouchMove( event );\n\n\t} else {\n\n\t\tthis._onMouseMove( event );\n\n\t}\n\n}\n\nfunction onPointerUp( event ) {\n\n\tthis._removePointer( event );\n\n\tswitch ( this._pointers.length ) {\n\n\t\tcase 0:\n\n\t\t\tthis.domElement.releasePointerCapture( event.pointerId );\n\n\t\t\tthis.domElement.removeEventListener( 'pointermove', this._onPointerMove );\n\t\t\tthis.domElement.removeEventListener( 'pointerup', this._onPointerUp );\n\n\t\t\tthis.dispatchEvent( _endEvent );\n\n\t\t\tthis.state = _STATE.NONE;\n\n\t\t\tbreak;\n\n\t\tcase 1:\n\n\t\t\tconst pointerId = this._pointers[ 0 ];\n\t\t\tconst position = this._pointerPositions[ pointerId ];\n\n\t\t\t// minimal placeholder event - allows state correction on pointer-up\n\t\t\tthis._onTouchStart( { pointerId: pointerId, pageX: position.x, pageY: position.y } );\n\n\t\t\tbreak;\n\n\t}\n\n}\n\nfunction onMouseDown( event ) {\n\n\tlet mouseAction;\n\n\tswitch ( event.button ) {\n\n\t\tcase 0:\n\n\t\t\tmouseAction = this.mouseButtons.LEFT;\n\t\t\tbreak;\n\n\t\tcase 1:\n\n\t\t\tmouseAction = this.mouseButtons.MIDDLE;\n\t\t\tbreak;\n\n\t\tcase 2:\n\n\t\t\tmouseAction = this.mouseButtons.RIGHT;\n\t\t\tbreak;\n\n\t\tdefault:\n\n\t\t\tmouseAction = - 1;\n\n\t}\n\n\tswitch ( mouseAction ) {\n\n\t\tcase MOUSE.DOLLY:\n\n\t\t\tif ( this.enableZoom === false ) return;\n\n\t\t\tthis._handleMouseDownDolly( event );\n\n\t\t\tthis.state = _STATE.DOLLY;\n\n\t\t\tbreak;\n\n\t\tcase MOUSE.ROTATE:\n\n\t\t\tif ( event.ctrlKey || event.metaKey || event.shiftKey ) {\n\n\t\t\t\tif ( this.enablePan === false ) return;\n\n\t\t\t\tthis._handleMouseDownPan( event );\n\n\t\t\t\tthis.state = _STATE.PAN;\n\n\t\t\t} else {\n\n\t\t\t\tif ( this.enableRotate === false ) return;\n\n\t\t\t\tthis._handleMouseDownRotate( event );\n\n\t\t\t\tthis.state = _STATE.ROTATE;\n\n\t\t\t}\n\n\t\t\tbreak;\n\n\t\tcase MOUSE.PAN:\n\n\t\t\tif ( event.ctrlKey || event.metaKey || event.shiftKey ) {\n\n\t\t\t\tif ( this.enableRotate === false ) return;\n\n\t\t\t\tthis._handleMouseDownRotate( event );\n\n\t\t\t\tthis.state = _STATE.ROTATE;\n\n\t\t\t} else {\n\n\t\t\t\tif ( this.enablePan === false ) return;\n\n\t\t\t\tthis._handleMouseDownPan( event );\n\n\t\t\t\tthis.state = _STATE.PAN;\n\n\t\t\t}\n\n\t\t\tbreak;\n\n\t\tdefault:\n\n\t\t\tthis.state = _STATE.NONE;\n\n\t}\n\n\tif ( this.state !== _STATE.NONE ) {\n\n\t\tthis.dispatchEvent( _startEvent );\n\n\t}\n\n}\n\nfunction onMouseMove( event ) {\n\n\tswitch ( this.state ) {\n\n\t\tcase _STATE.ROTATE:\n\n\t\t\tif ( this.enableRotate === false ) return;\n\n\t\t\tthis._handleMouseMoveRotate( event );\n\n\t\t\tbreak;\n\n\t\tcase _STATE.DOLLY:\n\n\t\t\tif ( this.enableZoom === false ) return;\n\n\t\t\tthis._handleMouseMoveDolly( event );\n\n\t\t\tbreak;\n\n\t\tcase _STATE.PAN:\n\n\t\t\tif ( this.enablePan === false ) return;\n\n\t\t\tthis._handleMouseMovePan( event );\n\n\t\t\tbreak;\n\n\t}\n\n}\n\nfunction onMouseWheel( event ) {\n\n\tif ( this.enabled === false || this.enableZoom === false || this.state !== _STATE.NONE ) return;\n\n\tevent.preventDefault();\n\n\tthis.dispatchEvent( _startEvent );\n\n\tthis._handleMouseWheel( this._customWheelEvent( event ) );\n\n\tthis.dispatchEvent( _endEvent );\n\n}\n\nfunction onKeyDown( event ) {\n\n\tif ( this.enabled === false || this.enablePan === false ) return;\n\n\tthis._handleKeyDown( event );\n\n}\n\nfunction onTouchStart( event ) {\n\n\tthis._trackPointer( event );\n\n\tswitch ( this._pointers.length ) {\n\n\t\tcase 1:\n\n\t\t\tswitch ( this.touches.ONE ) {\n\n\t\t\t\tcase TOUCH.ROTATE:\n\n\t\t\t\t\tif ( this.enableRotate === false ) return;\n\n\t\t\t\t\tthis._handleTouchStartRotate( event );\n\n\t\t\t\t\tthis.state = _STATE.TOUCH_ROTATE;\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase TOUCH.PAN:\n\n\t\t\t\t\tif ( this.enablePan === false ) return;\n\n\t\t\t\t\tthis._handleTouchStartPan( event );\n\n\t\t\t\t\tthis.state = _STATE.TOUCH_PAN;\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\n\t\t\t\t\tthis.state = _STATE.NONE;\n\n\t\t\t}\n\n\t\t\tbreak;\n\n\t\tcase 2:\n\n\t\t\tswitch ( this.touches.TWO ) {\n\n\t\t\t\tcase TOUCH.DOLLY_PAN:\n\n\t\t\t\t\tif ( this.enableZoom === false && this.enablePan === false ) return;\n\n\t\t\t\t\tthis._handleTouchStartDollyPan( event );\n\n\t\t\t\t\tthis.state = _STATE.TOUCH_DOLLY_PAN;\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase TOUCH.DOLLY_ROTATE:\n\n\t\t\t\t\tif ( this.enableZoom === false && this.enableRotate === false ) return;\n\n\t\t\t\t\tthis._handleTouchStartDollyRotate( event );\n\n\t\t\t\t\tthis.state = _STATE.TOUCH_DOLLY_ROTATE;\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\n\t\t\t\t\tthis.state = _STATE.NONE;\n\n\t\t\t}\n\n\t\t\tbreak;\n\n\t\tdefault:\n\n\t\t\tthis.state = _STATE.NONE;\n\n\t}\n\n\tif ( this.state !== _STATE.NONE ) {\n\n\t\tthis.dispatchEvent( _startEvent );\n\n\t}\n\n}\n\nfunction onTouchMove( event ) {\n\n\tthis._trackPointer( event );\n\n\tswitch ( this.state ) {\n\n\t\tcase _STATE.TOUCH_ROTATE:\n\n\t\t\tif ( this.enableRotate === false ) return;\n\n\t\t\tthis._handleTouchMoveRotate( event );\n\n\t\t\tthis.update();\n\n\t\t\tbreak;\n\n\t\tcase _STATE.TOUCH_PAN:\n\n\t\t\tif ( this.enablePan === false ) return;\n\n\t\t\tthis._handleTouchMovePan( event );\n\n\t\t\tthis.update();\n\n\t\t\tbreak;\n\n\t\tcase _STATE.TOUCH_DOLLY_PAN:\n\n\t\t\tif ( this.enableZoom === false && this.enablePan === false ) return;\n\n\t\t\tthis._handleTouchMoveDollyPan( event );\n\n\t\t\tthis.update();\n\n\t\t\tbreak;\n\n\t\tcase _STATE.TOUCH_DOLLY_ROTATE:\n\n\t\t\tif ( this.enableZoom === false && this.enableRotate === false ) return;\n\n\t\t\tthis._handleTouchMoveDollyRotate( event );\n\n\t\t\tthis.update();\n\n\t\t\tbreak;\n\n\t\tdefault:\n\n\t\t\tthis.state = _STATE.NONE;\n\n\t}\n\n}\n\nfunction onContextMenu( event ) {\n\n\tif ( this.enabled === false ) return;\n\n\tevent.preventDefault();\n\n}\n\nfunction interceptControlDown( event ) {\n\n\tif ( event.key === 'Control' ) {\n\n\t\tthis._controlActive = true;\n\n\t\tconst document = this.domElement.getRootNode(); // offscreen canvas compatibility\n\n\t\tdocument.addEventListener( 'keyup', this._interceptControlUp, { passive: true, capture: true } );\n\n\t}\n\n}\n\nfunction interceptControlUp( event ) {\n\n\tif ( event.key === 'Control' ) {\n\n\t\tthis._controlActive = false;\n\n\t\tconst document = this.domElement.getRootNode(); // offscreen canvas compatibility\n\n\t\tdocument.removeEventListener( 'keyup', this._interceptControlUp, { passive: true, capture: true } );\n\n\t}\n\n}\n\nexport { OrbitControls };\n","/*!\nfflate - fast JavaScript compression/decompression\n\nLicensed under MIT. https://github.com/101arrowz/fflate/blob/master/LICENSE\nversion 0.8.2\n*/\n\n// DEFLATE is a complex format; to read this code, you should probably check the RFC first:\n// https://tools.ietf.org/html/rfc1951\n// You may also wish to take a look at the guide I made about this program:\n// https://gist.github.com/101arrowz/253f31eb5abc3d9275ab943003ffecad\n// Some of the following code is similar to that of UZIP.js:\n// https://github.com/photopea/UZIP.js\n// However, the vast majority of the codebase has diverged from UZIP.js to increase performance and reduce bundle size.\n// Sometimes 0 will appear where -1 would be more appropriate. This is because using a uint\n// is better for memory in most engines (I *think*).\nvar ch2 = {};\nvar wk = (function (c, id, msg, transfer, cb) {\n var w = new Worker(ch2[id] || (ch2[id] = URL.createObjectURL(new Blob([\n c + ';addEventListener(\"error\",function(e){e=e.error;postMessage({$e$:[e.message,e.code,e.stack]})})'\n ], { type: 'text/javascript' }))));\n w.onmessage = function (e) {\n var d = e.data, ed = d.$e$;\n if (ed) {\n var err = new Error(ed[0]);\n err['code'] = ed[1];\n err.stack = ed[2];\n cb(err, null);\n }\n else\n cb(null, d);\n };\n w.postMessage(msg, transfer);\n return w;\n});\n\n// aliases for shorter compressed code (most minifers don't do this)\nvar u8 = Uint8Array, u16 = Uint16Array, i32 = Int32Array;\n// fixed length extra bits\nvar fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, /* unused */ 0, 0, /* impossible */ 0]);\n// fixed distance extra bits\nvar fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, /* unused */ 0, 0]);\n// code length index map\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n// get base, reverse index map from extra bits\nvar freb = function (eb, start) {\n var b = new u16(31);\n for (var i = 0; i < 31; ++i) {\n b[i] = start += 1 << eb[i - 1];\n }\n // numbers here are at max 18 bits\n var r = new i32(b[30]);\n for (var i = 1; i < 30; ++i) {\n for (var j = b[i]; j < b[i + 1]; ++j) {\n r[j] = ((j - b[i]) << 5) | i;\n }\n }\n return { b: b, r: r };\n};\nvar _a = freb(fleb, 2), fl = _a.b, revfl = _a.r;\n// we can ignore the fact that the other numbers are wrong; they never happen anyway\nfl[28] = 258, revfl[258] = 28;\nvar _b = freb(fdeb, 0), fd = _b.b, revfd = _b.r;\n// map of value to reverse (assuming 16 bits)\nvar rev = new u16(32768);\nfor (var i = 0; i < 32768; ++i) {\n // reverse table algorithm from SO\n var x = ((i & 0xAAAA) >> 1) | ((i & 0x5555) << 1);\n x = ((x & 0xCCCC) >> 2) | ((x & 0x3333) << 2);\n x = ((x & 0xF0F0) >> 4) | ((x & 0x0F0F) << 4);\n rev[i] = (((x & 0xFF00) >> 8) | ((x & 0x00FF) << 8)) >> 1;\n}\n// create huffman tree from u8 \"map\": index -> code length for code index\n// mb (max bits) must be at most 15\n// TODO: optimize/split up?\nvar hMap = (function (cd, mb, r) {\n var s = cd.length;\n // index\n var i = 0;\n // u16 \"map\": index -> # of codes with bit length = index\n var l = new u16(mb);\n // length of cd must be 288 (total # of codes)\n for (; i < s; ++i) {\n if (cd[i])\n ++l[cd[i] - 1];\n }\n // u16 \"map\": index -> minimum code for bit length = index\n var le = new u16(mb);\n for (i = 1; i < mb; ++i) {\n le[i] = (le[i - 1] + l[i - 1]) << 1;\n }\n var co;\n if (r) {\n // u16 \"map\": index -> number of actual bits, symbol for code\n co = new u16(1 << mb);\n // bits to remove for reverser\n var rvb = 15 - mb;\n for (i = 0; i < s; ++i) {\n // ignore 0 lengths\n if (cd[i]) {\n // num encoding both symbol and bits read\n var sv = (i << 4) | cd[i];\n // free bits\n var r_1 = mb - cd[i];\n // start value\n var v = le[cd[i] - 1]++ << r_1;\n // m is end value\n for (var m = v | ((1 << r_1) - 1); v <= m; ++v) {\n // every 16 bit value starting with the code yields the same result\n co[rev[v] >> rvb] = sv;\n }\n }\n }\n }\n else {\n co = new u16(s);\n for (i = 0; i < s; ++i) {\n if (cd[i]) {\n co[i] = rev[le[cd[i] - 1]++] >> (15 - cd[i]);\n }\n }\n }\n return co;\n});\n// fixed length tree\nvar flt = new u8(288);\nfor (var i = 0; i < 144; ++i)\n flt[i] = 8;\nfor (var i = 144; i < 256; ++i)\n flt[i] = 9;\nfor (var i = 256; i < 280; ++i)\n flt[i] = 7;\nfor (var i = 280; i < 288; ++i)\n flt[i] = 8;\n// fixed distance tree\nvar fdt = new u8(32);\nfor (var i = 0; i < 32; ++i)\n fdt[i] = 5;\n// fixed length map\nvar flm = /*#__PURE__*/ hMap(flt, 9, 0), flrm = /*#__PURE__*/ hMap(flt, 9, 1);\n// fixed distance map\nvar fdm = /*#__PURE__*/ hMap(fdt, 5, 0), fdrm = /*#__PURE__*/ hMap(fdt, 5, 1);\n// find max of array\nvar max = function (a) {\n var m = a[0];\n for (var i = 1; i < a.length; ++i) {\n if (a[i] > m)\n m = a[i];\n }\n return m;\n};\n// read d, starting at bit p and mask with m\nvar bits = function (d, p, m) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8)) >> (p & 7)) & m;\n};\n// read d, starting at bit p continuing for at least 16 bits\nvar bits16 = function (d, p) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8) | (d[o + 2] << 16)) >> (p & 7));\n};\n// get end of byte\nvar shft = function (p) { return ((p + 7) / 8) | 0; };\n// typed array slice - allows garbage collector to free original reference,\n// while being more compatible than .slice\nvar slc = function (v, s, e) {\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n // can't use .constructor in case user-supplied\n return new u8(v.subarray(s, e));\n};\n/**\n * Codes for errors generated within this library\n */\nexport var FlateErrorCode = {\n UnexpectedEOF: 0,\n InvalidBlockType: 1,\n InvalidLengthLiteral: 2,\n InvalidDistance: 3,\n StreamFinished: 4,\n NoStreamHandler: 5,\n InvalidHeader: 6,\n NoCallback: 7,\n InvalidUTF8: 8,\n ExtraFieldTooLong: 9,\n InvalidDate: 10,\n FilenameTooLong: 11,\n StreamFinishing: 12,\n InvalidZipData: 13,\n UnknownCompressionMethod: 14\n};\n// error codes\nvar ec = [\n 'unexpected EOF',\n 'invalid block type',\n 'invalid length/literal',\n 'invalid distance',\n 'stream finished',\n 'no stream handler',\n ,\n 'no callback',\n 'invalid UTF-8 data',\n 'extra field too long',\n 'date not in range 1980-2099',\n 'filename too long',\n 'stream finishing',\n 'invalid zip data'\n // determined by unknown compression method\n];\n;\nvar err = function (ind, msg, nt) {\n var e = new Error(msg || ec[ind]);\n e.code = ind;\n if (Error.captureStackTrace)\n Error.captureStackTrace(e, err);\n if (!nt)\n throw e;\n return e;\n};\n// expands raw DEFLATE data\nvar inflt = function (dat, st, buf, dict) {\n // source length dict length\n var sl = dat.length, dl = dict ? dict.length : 0;\n if (!sl || st.f && !st.l)\n return buf || new u8(0);\n var noBuf = !buf;\n // have to estimate size\n var resize = noBuf || st.i != 2;\n // no state\n var noSt = st.i;\n // Assumes roughly 33% compression ratio average\n if (noBuf)\n buf = new u8(sl * 3);\n // ensure buffer can fit at least l elements\n var cbuf = function (l) {\n var bl = buf.length;\n // need to increase size to fit\n if (l > bl) {\n // Double or set to necessary, whichever is greater\n var nbuf = new u8(Math.max(bl * 2, l));\n nbuf.set(buf);\n buf = nbuf;\n }\n };\n // last chunk bitpos bytes\n var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;\n // total bits\n var tbts = sl * 8;\n do {\n if (!lm) {\n // BFINAL - this is only 1 when last chunk is next\n final = bits(dat, pos, 1);\n // type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman\n var type = bits(dat, pos + 1, 3);\n pos += 3;\n if (!type) {\n // go to end of byte boundary\n var s = shft(pos) + 4, l = dat[s - 4] | (dat[s - 3] << 8), t = s + l;\n if (t > sl) {\n if (noSt)\n err(0);\n break;\n }\n // ensure size\n if (resize)\n cbuf(bt + l);\n // Copy over uncompressed data\n buf.set(dat.subarray(s, t), bt);\n // Get new bitpos, update byte count\n st.b = bt += l, st.p = pos = t * 8, st.f = final;\n continue;\n }\n else if (type == 1)\n lm = flrm, dm = fdrm, lbt = 9, dbt = 5;\n else if (type == 2) {\n // literal lengths\n var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;\n var tl = hLit + bits(dat, pos + 5, 31) + 1;\n pos += 14;\n // length+distance tree\n var ldt = new u8(tl);\n // code length tree\n var clt = new u8(19);\n for (var i = 0; i < hcLen; ++i) {\n // use index map to get real code\n clt[clim[i]] = bits(dat, pos + i * 3, 7);\n }\n pos += hcLen * 3;\n // code lengths bits\n var clb = max(clt), clbmsk = (1 << clb) - 1;\n // code lengths map\n var clm = hMap(clt, clb, 1);\n for (var i = 0; i < tl;) {\n var r = clm[bits(dat, pos, clbmsk)];\n // bits read\n pos += r & 15;\n // symbol\n var s = r >> 4;\n // code length to copy\n if (s < 16) {\n ldt[i++] = s;\n }\n else {\n // copy count\n var c = 0, n = 0;\n if (s == 16)\n n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];\n else if (s == 17)\n n = 3 + bits(dat, pos, 7), pos += 3;\n else if (s == 18)\n n = 11 + bits(dat, pos, 127), pos += 7;\n while (n--)\n ldt[i++] = c;\n }\n }\n // length tree distance tree\n var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);\n // max length bits\n lbt = max(lt);\n // max dist bits\n dbt = max(dt);\n lm = hMap(lt, lbt, 1);\n dm = hMap(dt, dbt, 1);\n }\n else\n err(1);\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n }\n // Make sure the buffer can hold this + the largest possible addition\n // Maximum chunk size (practically, theoretically infinite) is 2^17\n if (resize)\n cbuf(bt + 131072);\n var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;\n var lpos = pos;\n for (;; lpos = pos) {\n // bits read, code\n var c = lm[bits16(dat, pos) & lms], sym = c >> 4;\n pos += c & 15;\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (!c)\n err(2);\n if (sym < 256)\n buf[bt++] = sym;\n else if (sym == 256) {\n lpos = pos, lm = null;\n break;\n }\n else {\n var add = sym - 254;\n // no extra bits needed if less\n if (sym > 264) {\n // index\n var i = sym - 257, b = fleb[i];\n add = bits(dat, pos, (1 << b) - 1) + fl[i];\n pos += b;\n }\n // dist\n var d = dm[bits16(dat, pos) & dms], dsym = d >> 4;\n if (!d)\n err(3);\n pos += d & 15;\n var dt = fd[dsym];\n if (dsym > 3) {\n var b = fdeb[dsym];\n dt += bits16(dat, pos) & (1 << b) - 1, pos += b;\n }\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (resize)\n cbuf(bt + 131072);\n var end = bt + add;\n if (bt < dt) {\n var shift = dl - dt, dend = Math.min(dt, end);\n if (shift + bt < 0)\n err(3);\n for (; bt < dend; ++bt)\n buf[bt] = dict[shift + bt];\n }\n for (; bt < end; ++bt)\n buf[bt] = buf[bt - dt];\n }\n }\n st.l = lm, st.p = lpos, st.b = bt, st.f = final;\n if (lm)\n final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n } while (!final);\n // don't reallocate for streams or user buffers\n return bt != buf.length && noBuf ? slc(buf, 0, bt) : buf.subarray(0, bt);\n};\n// starting at p, write the minimum number of bits that can hold v to d\nvar wbits = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >> 8;\n};\n// starting at p, write the minimum number of bits (>8) that can hold v to d\nvar wbits16 = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >> 8;\n d[o + 2] |= v >> 16;\n};\n// creates code lengths from a frequency table\nvar hTree = function (d, mb) {\n // Need extra info to make a tree\n var t = [];\n for (var i = 0; i < d.length; ++i) {\n if (d[i])\n t.push({ s: i, f: d[i] });\n }\n var s = t.length;\n var t2 = t.slice();\n if (!s)\n return { t: et, l: 0 };\n if (s == 1) {\n var v = new u8(t[0].s + 1);\n v[t[0].s] = 1;\n return { t: v, l: 1 };\n }\n t.sort(function (a, b) { return a.f - b.f; });\n // after i2 reaches last ind, will be stopped\n // freq must be greater than largest possible number of symbols\n t.push({ s: -1, f: 25001 });\n var l = t[0], r = t[1], i0 = 0, i1 = 1, i2 = 2;\n t[0] = { s: -1, f: l.f + r.f, l: l, r: r };\n // efficient algorithm from UZIP.js\n // i0 is lookbehind, i2 is lookahead - after processing two low-freq\n // symbols that combined have high freq, will start processing i2 (high-freq,\n // non-composite) symbols instead\n // see https://reddit.com/r/photopea/comments/ikekht/uzipjs_questions/\n while (i1 != s - 1) {\n l = t[t[i0].f < t[i2].f ? i0++ : i2++];\n r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];\n t[i1++] = { s: -1, f: l.f + r.f, l: l, r: r };\n }\n var maxSym = t2[0].s;\n for (var i = 1; i < s; ++i) {\n if (t2[i].s > maxSym)\n maxSym = t2[i].s;\n }\n // code lengths\n var tr = new u16(maxSym + 1);\n // max bits in tree\n var mbt = ln(t[i1 - 1], tr, 0);\n if (mbt > mb) {\n // more algorithms from UZIP.js\n // TODO: find out how this code works (debt)\n // ind debt\n var i = 0, dt = 0;\n // left cost\n var lft = mbt - mb, cst = 1 << lft;\n t2.sort(function (a, b) { return tr[b.s] - tr[a.s] || a.f - b.f; });\n for (; i < s; ++i) {\n var i2_1 = t2[i].s;\n if (tr[i2_1] > mb) {\n dt += cst - (1 << (mbt - tr[i2_1]));\n tr[i2_1] = mb;\n }\n else\n break;\n }\n dt >>= lft;\n while (dt > 0) {\n var i2_2 = t2[i].s;\n if (tr[i2_2] < mb)\n dt -= 1 << (mb - tr[i2_2]++ - 1);\n else\n ++i;\n }\n for (; i >= 0 && dt; --i) {\n var i2_3 = t2[i].s;\n if (tr[i2_3] == mb) {\n --tr[i2_3];\n ++dt;\n }\n }\n mbt = mb;\n }\n return { t: new u8(tr), l: mbt };\n};\n// get the max length and assign length codes\nvar ln = function (n, l, d) {\n return n.s == -1\n ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1))\n : (l[n.s] = d);\n};\n// length codes generation\nvar lc = function (c) {\n var s = c.length;\n // Note that the semicolon was intentional\n while (s && !c[--s])\n ;\n var cl = new u16(++s);\n // ind num streak\n var cli = 0, cln = c[0], cls = 1;\n var w = function (v) { cl[cli++] = v; };\n for (var i = 1; i <= s; ++i) {\n if (c[i] == cln && i != s)\n ++cls;\n else {\n if (!cln && cls > 2) {\n for (; cls > 138; cls -= 138)\n w(32754);\n if (cls > 2) {\n w(cls > 10 ? ((cls - 11) << 5) | 28690 : ((cls - 3) << 5) | 12305);\n cls = 0;\n }\n }\n else if (cls > 3) {\n w(cln), --cls;\n for (; cls > 6; cls -= 6)\n w(8304);\n if (cls > 2)\n w(((cls - 3) << 5) | 8208), cls = 0;\n }\n while (cls--)\n w(cln);\n cls = 1;\n cln = c[i];\n }\n }\n return { c: cl.subarray(0, cli), n: s };\n};\n// calculate the length of output from tree, code lengths\nvar clen = function (cf, cl) {\n var l = 0;\n for (var i = 0; i < cl.length; ++i)\n l += cf[i] * cl[i];\n return l;\n};\n// writes a fixed block\n// returns the new bit pos\nvar wfblk = function (out, pos, dat) {\n // no need to write 00 as type: TypedArray defaults to 0\n var s = dat.length;\n var o = shft(pos + 2);\n out[o] = s & 255;\n out[o + 1] = s >> 8;\n out[o + 2] = out[o] ^ 255;\n out[o + 3] = out[o + 1] ^ 255;\n for (var i = 0; i < s; ++i)\n out[o + i + 4] = dat[i];\n return (o + 4 + s) * 8;\n};\n// writes a block\nvar wblk = function (dat, out, final, syms, lf, df, eb, li, bs, bl, p) {\n wbits(out, p++, final);\n ++lf[256];\n var _a = hTree(lf, 15), dlt = _a.t, mlb = _a.l;\n var _b = hTree(df, 15), ddt = _b.t, mdb = _b.l;\n var _c = lc(dlt), lclt = _c.c, nlc = _c.n;\n var _d = lc(ddt), lcdt = _d.c, ndc = _d.n;\n var lcfreq = new u16(19);\n for (var i = 0; i < lclt.length; ++i)\n ++lcfreq[lclt[i] & 31];\n for (var i = 0; i < lcdt.length; ++i)\n ++lcfreq[lcdt[i] & 31];\n var _e = hTree(lcfreq, 7), lct = _e.t, mlcb = _e.l;\n var nlcc = 19;\n for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)\n ;\n var flen = (bl + 5) << 3;\n var ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + 2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18];\n if (bs >= 0 && flen <= ftlen && flen <= dtlen)\n return wfblk(out, p, dat.subarray(bs, bs + bl));\n var lm, ll, dm, dl;\n wbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n if (dtlen < ftlen) {\n lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n var llm = hMap(lct, mlcb, 0);\n wbits(out, p, nlc - 257);\n wbits(out, p + 5, ndc - 1);\n wbits(out, p + 10, nlcc - 4);\n p += 14;\n for (var i = 0; i < nlcc; ++i)\n wbits(out, p + 3 * i, lct[clim[i]]);\n p += 3 * nlcc;\n var lcts = [lclt, lcdt];\n for (var it = 0; it < 2; ++it) {\n var clct = lcts[it];\n for (var i = 0; i < clct.length; ++i) {\n var len = clct[i] & 31;\n wbits(out, p, llm[len]), p += lct[len];\n if (len > 15)\n wbits(out, p, (clct[i] >> 5) & 127), p += clct[i] >> 12;\n }\n }\n }\n else {\n lm = flm, ll = flt, dm = fdm, dl = fdt;\n }\n for (var i = 0; i < li; ++i) {\n var sym = syms[i];\n if (sym > 255) {\n var len = (sym >> 18) & 31;\n wbits16(out, p, lm[len + 257]), p += ll[len + 257];\n if (len > 7)\n wbits(out, p, (sym >> 23) & 31), p += fleb[len];\n var dst = sym & 31;\n wbits16(out, p, dm[dst]), p += dl[dst];\n if (dst > 3)\n wbits16(out, p, (sym >> 5) & 8191), p += fdeb[dst];\n }\n else {\n wbits16(out, p, lm[sym]), p += ll[sym];\n }\n }\n wbits16(out, p, lm[256]);\n return p + ll[256];\n};\n// deflate options (nice << 13) | chain\nvar deo = /*#__PURE__*/ new i32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);\n// empty\nvar et = /*#__PURE__*/ new u8(0);\n// compresses data into a raw DEFLATE buffer\nvar dflt = function (dat, lvl, plvl, pre, post, st) {\n var s = st.z || dat.length;\n var o = new u8(pre + s + 5 * (1 + Math.ceil(s / 7000)) + post);\n // writing to this writes to the output buffer\n var w = o.subarray(pre, o.length - post);\n var lst = st.l;\n var pos = (st.r || 0) & 7;\n if (lvl) {\n if (pos)\n w[0] = st.r >> 3;\n var opt = deo[lvl - 1];\n var n = opt >> 13, c = opt & 8191;\n var msk_1 = (1 << plvl) - 1;\n // prev 2-byte val map curr 2-byte val map\n var prev = st.p || new u16(32768), head = st.h || new u16(msk_1 + 1);\n var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;\n var hsh = function (i) { return (dat[i] ^ (dat[i + 1] << bs1_1) ^ (dat[i + 2] << bs2_1)) & msk_1; };\n // 24576 is an arbitrary number of maximum symbols per block\n // 424 buffer for last block\n var syms = new i32(25000);\n // length/literal freq distance freq\n var lf = new u16(288), df = new u16(32);\n // l/lcnt exbits index l/lind waitdx blkpos\n var lc_1 = 0, eb = 0, i = st.i || 0, li = 0, wi = st.w || 0, bs = 0;\n for (; i + 2 < s; ++i) {\n // hash value\n var hv = hsh(i);\n // index mod 32768 previous index mod\n var imod = i & 32767, pimod = head[hv];\n prev[imod] = pimod;\n head[hv] = imod;\n // We always should modify head and prev, but only add symbols if\n // this data is not yet processed (\"wait\" for wait index)\n if (wi <= i) {\n // bytes remaining\n var rem = s - i;\n if ((lc_1 > 7000 || li > 24576) && (rem > 423 || !lst)) {\n pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);\n li = lc_1 = eb = 0, bs = i;\n for (var j = 0; j < 286; ++j)\n lf[j] = 0;\n for (var j = 0; j < 30; ++j)\n df[j] = 0;\n }\n // len dist chain\n var l = 2, d = 0, ch_1 = c, dif = imod - pimod & 32767;\n if (rem > 2 && hv == hsh(i - dif)) {\n var maxn = Math.min(n, rem) - 1;\n var maxd = Math.min(32767, i);\n // max possible length\n // not capped at dif because decompressors implement \"rolling\" index population\n var ml = Math.min(258, rem);\n while (dif <= maxd && --ch_1 && imod != pimod) {\n if (dat[i + l] == dat[i + l - dif]) {\n var nl = 0;\n for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl)\n ;\n if (nl > l) {\n l = nl, d = dif;\n // break out early when we reach \"nice\" (we are satisfied enough)\n if (nl > maxn)\n break;\n // now, find the rarest 2-byte sequence within this\n // length of literals and search for that instead.\n // Much faster than just using the start\n var mmd = Math.min(dif, nl - 2);\n var md = 0;\n for (var j = 0; j < mmd; ++j) {\n var ti = i - dif + j & 32767;\n var pti = prev[ti];\n var cd = ti - pti & 32767;\n if (cd > md)\n md = cd, pimod = ti;\n }\n }\n }\n // check the previous match\n imod = pimod, pimod = prev[imod];\n dif += imod - pimod & 32767;\n }\n }\n // d will be nonzero only when a match was found\n if (d) {\n // store both dist and len data in one int32\n // Make sure this is recognized as a len/dist with 28th bit (2^28)\n syms[li++] = 268435456 | (revfl[l] << 18) | revfd[d];\n var lin = revfl[l] & 31, din = revfd[d] & 31;\n eb += fleb[lin] + fdeb[din];\n ++lf[257 + lin];\n ++df[din];\n wi = i + l;\n ++lc_1;\n }\n else {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n }\n }\n for (i = Math.max(i, wi); i < s; ++i) {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);\n if (!lst) {\n st.r = (pos & 7) | w[(pos / 8) | 0] << 3;\n // shft(pos) now 1 less if pos & 7 != 0\n pos -= 7;\n st.h = head, st.p = prev, st.i = i, st.w = wi;\n }\n }\n else {\n for (var i = st.w || 0; i < s + lst; i += 65535) {\n // end\n var e = i + 65535;\n if (e >= s) {\n // write final block\n w[(pos / 8) | 0] = lst;\n e = s;\n }\n pos = wfblk(w, pos + 1, dat.subarray(i, e));\n }\n st.i = s;\n }\n return slc(o, 0, pre + shft(pos) + post);\n};\n// CRC32 table\nvar crct = /*#__PURE__*/ (function () {\n var t = new Int32Array(256);\n for (var i = 0; i < 256; ++i) {\n var c = i, k = 9;\n while (--k)\n c = ((c & 1) && -306674912) ^ (c >>> 1);\n t[i] = c;\n }\n return t;\n})();\n// CRC32\nvar crc = function () {\n var c = -1;\n return {\n p: function (d) {\n // closures have awful performance\n var cr = c;\n for (var i = 0; i < d.length; ++i)\n cr = crct[(cr & 255) ^ d[i]] ^ (cr >>> 8);\n c = cr;\n },\n d: function () { return ~c; }\n };\n};\n// Adler32\nvar adler = function () {\n var a = 1, b = 0;\n return {\n p: function (d) {\n // closures have awful performance\n var n = a, m = b;\n var l = d.length | 0;\n for (var i = 0; i != l;) {\n var e = Math.min(i + 2655, l);\n for (; i < e; ++i)\n m += n += d[i];\n n = (n & 65535) + 15 * (n >> 16), m = (m & 65535) + 15 * (m >> 16);\n }\n a = n, b = m;\n },\n d: function () {\n a %= 65521, b %= 65521;\n return (a & 255) << 24 | (a & 0xFF00) << 8 | (b & 255) << 8 | (b >> 8);\n }\n };\n};\n;\n// deflate with opts\nvar dopt = function (dat, opt, pre, post, st) {\n if (!st) {\n st = { l: 1 };\n if (opt.dictionary) {\n var dict = opt.dictionary.subarray(-32768);\n var newDat = new u8(dict.length + dat.length);\n newDat.set(dict);\n newDat.set(dat, dict.length);\n dat = newDat;\n st.w = dict.length;\n }\n }\n return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? (st.l ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : 20) : (12 + opt.mem), pre, post, st);\n};\n// Walmart object spread\nvar mrg = function (a, b) {\n var o = {};\n for (var k in a)\n o[k] = a[k];\n for (var k in b)\n o[k] = b[k];\n return o;\n};\n// worker clone\n// This is possibly the craziest part of the entire codebase, despite how simple it may seem.\n// The only parameter to this function is a closure that returns an array of variables outside of the function scope.\n// We're going to try to figure out the variable names used in the closure as strings because that is crucial for workerization.\n// We will return an object mapping of true variable name to value (basically, the current scope as a JS object).\n// The reason we can't just use the original variable names is minifiers mangling the toplevel scope.\n// This took me three weeks to figure out how to do.\nvar wcln = function (fn, fnStr, td) {\n var dt = fn();\n var st = fn.toString();\n var ks = st.slice(st.indexOf('[') + 1, st.lastIndexOf(']')).replace(/\\s+/g, '').split(',');\n for (var i = 0; i < dt.length; ++i) {\n var v = dt[i], k = ks[i];\n if (typeof v == 'function') {\n fnStr += ';' + k + '=';\n var st_1 = v.toString();\n if (v.prototype) {\n // for global objects\n if (st_1.indexOf('[native code]') != -1) {\n var spInd = st_1.indexOf(' ', 8) + 1;\n fnStr += st_1.slice(spInd, st_1.indexOf('(', spInd));\n }\n else {\n fnStr += st_1;\n for (var t in v.prototype)\n fnStr += ';' + k + '.prototype.' + t + '=' + v.prototype[t].toString();\n }\n }\n else\n fnStr += st_1;\n }\n else\n td[k] = v;\n }\n return fnStr;\n};\nvar ch = [];\n// clone bufs\nvar cbfs = function (v) {\n var tl = [];\n for (var k in v) {\n if (v[k].buffer) {\n tl.push((v[k] = new v[k].constructor(v[k])).buffer);\n }\n }\n return tl;\n};\n// use a worker to execute code\nvar wrkr = function (fns, init, id, cb) {\n if (!ch[id]) {\n var fnStr = '', td_1 = {}, m = fns.length - 1;\n for (var i = 0; i < m; ++i)\n fnStr = wcln(fns[i], fnStr, td_1);\n ch[id] = { c: wcln(fns[m], fnStr, td_1), e: td_1 };\n }\n var td = mrg({}, ch[id].e);\n return wk(ch[id].c + ';onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage=' + init.toString() + '}', id, td, cbfs(td), cb);\n};\n// base async inflate fn\nvar bInflt = function () { return [u8, u16, i32, fleb, fdeb, clim, fl, fd, flrm, fdrm, rev, ec, hMap, max, bits, bits16, shft, slc, err, inflt, inflateSync, pbf, gopt]; };\nvar bDflt = function () { return [u8, u16, i32, fleb, fdeb, clim, revfl, revfd, flm, flt, fdm, fdt, rev, deo, et, hMap, wbits, wbits16, hTree, ln, lc, clen, wfblk, wblk, shft, slc, dflt, dopt, deflateSync, pbf]; };\n// gzip extra\nvar gze = function () { return [gzh, gzhl, wbytes, crc, crct]; };\n// gunzip extra\nvar guze = function () { return [gzs, gzl]; };\n// zlib extra\nvar zle = function () { return [zlh, wbytes, adler]; };\n// unzlib extra\nvar zule = function () { return [zls]; };\n// post buf\nvar pbf = function (msg) { return postMessage(msg, [msg.buffer]); };\n// get opts\nvar gopt = function (o) { return o && {\n out: o.size && new u8(o.size),\n dictionary: o.dictionary\n}; };\n// async helper\nvar cbify = function (dat, opts, fns, init, id, cb) {\n var w = wrkr(fns, init, id, function (err, dat) {\n w.terminate();\n cb(err, dat);\n });\n w.postMessage([dat, opts], opts.consume ? [dat.buffer] : []);\n return function () { w.terminate(); };\n};\n// auto stream\nvar astrm = function (strm) {\n strm.ondata = function (dat, final) { return postMessage([dat, final], [dat.buffer]); };\n return function (ev) {\n if (ev.data.length) {\n strm.push(ev.data[0], ev.data[1]);\n postMessage([ev.data[0].length]);\n }\n else\n strm.flush();\n };\n};\n// async stream attach\nvar astrmify = function (fns, strm, opts, init, id, flush, ext) {\n var t;\n var w = wrkr(fns, init, id, function (err, dat) {\n if (err)\n w.terminate(), strm.ondata.call(strm, err);\n else if (!Array.isArray(dat))\n ext(dat);\n else if (dat.length == 1) {\n strm.queuedSize -= dat[0];\n if (strm.ondrain)\n strm.ondrain(dat[0]);\n }\n else {\n if (dat[1])\n w.terminate();\n strm.ondata.call(strm, err, dat[0], dat[1]);\n }\n });\n w.postMessage(opts);\n strm.queuedSize = 0;\n strm.push = function (d, f) {\n if (!strm.ondata)\n err(5);\n if (t)\n strm.ondata(err(4, 0, 1), null, !!f);\n strm.queuedSize += d.length;\n w.postMessage([d, t = f], [d.buffer]);\n };\n strm.terminate = function () { w.terminate(); };\n if (flush) {\n strm.flush = function () { w.postMessage([]); };\n }\n};\n// read 2 bytes\nvar b2 = function (d, b) { return d[b] | (d[b + 1] << 8); };\n// read 4 bytes\nvar b4 = function (d, b) { return (d[b] | (d[b + 1] << 8) | (d[b + 2] << 16) | (d[b + 3] << 24)) >>> 0; };\nvar b8 = function (d, b) { return b4(d, b) + (b4(d, b + 4) * 4294967296); };\n// write bytes\nvar wbytes = function (d, b, v) {\n for (; v; ++b)\n d[b] = v, v >>>= 8;\n};\n// gzip header\nvar gzh = function (c, o) {\n var fn = o.filename;\n c[0] = 31, c[1] = 139, c[2] = 8, c[8] = o.level < 2 ? 4 : o.level == 9 ? 2 : 0, c[9] = 3; // assume Unix\n if (o.mtime != 0)\n wbytes(c, 4, Math.floor(new Date(o.mtime || Date.now()) / 1000));\n if (fn) {\n c[3] = 8;\n for (var i = 0; i <= fn.length; ++i)\n c[i + 10] = fn.charCodeAt(i);\n }\n};\n// gzip footer: -8 to -4 = CRC, -4 to -0 is length\n// gzip start\nvar gzs = function (d) {\n if (d[0] != 31 || d[1] != 139 || d[2] != 8)\n err(6, 'invalid gzip data');\n var flg = d[3];\n var st = 10;\n if (flg & 4)\n st += (d[10] | d[11] << 8) + 2;\n for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++])\n ;\n return st + (flg & 2);\n};\n// gzip length\nvar gzl = function (d) {\n var l = d.length;\n return (d[l - 4] | d[l - 3] << 8 | d[l - 2] << 16 | d[l - 1] << 24) >>> 0;\n};\n// gzip header length\nvar gzhl = function (o) { return 10 + (o.filename ? o.filename.length + 1 : 0); };\n// zlib header\nvar zlh = function (c, o) {\n var lv = o.level, fl = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2;\n c[0] = 120, c[1] = (fl << 6) | (o.dictionary && 32);\n c[1] |= 31 - ((c[0] << 8) | c[1]) % 31;\n if (o.dictionary) {\n var h = adler();\n h.p(o.dictionary);\n wbytes(c, 2, h.d());\n }\n};\n// zlib start\nvar zls = function (d, dict) {\n if ((d[0] & 15) != 8 || (d[0] >> 4) > 7 || ((d[0] << 8 | d[1]) % 31))\n err(6, 'invalid zlib data');\n if ((d[1] >> 5 & 1) == +!dict)\n err(6, 'invalid zlib data: ' + (d[1] & 32 ? 'need' : 'unexpected') + ' dictionary');\n return (d[1] >> 3 & 4) + 2;\n};\nfunction StrmOpt(opts, cb) {\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n return opts;\n}\n/**\n * Streaming DEFLATE compression\n */\nvar Deflate = /*#__PURE__*/ (function () {\n function Deflate(opts, cb) {\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n this.o = opts || {};\n this.s = { l: 0, i: 32768, w: 32768, z: 32768 };\n // Buffer length must always be 0 mod 32768 for index calculations to be correct when modifying head and prev\n // 98304 = 32768 (lookback) + 65536 (common chunk size)\n this.b = new u8(98304);\n if (this.o.dictionary) {\n var dict = this.o.dictionary.subarray(-32768);\n this.b.set(dict, 32768 - dict.length);\n this.s.i = 32768 - dict.length;\n }\n }\n Deflate.prototype.p = function (c, f) {\n this.ondata(dopt(c, this.o, 0, 0, this.s), f);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Deflate.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.s.l)\n err(4);\n var endLen = chunk.length + this.s.z;\n if (endLen > this.b.length) {\n if (endLen > 2 * this.b.length - 32768) {\n var newBuf = new u8(endLen & -32768);\n newBuf.set(this.b.subarray(0, this.s.z));\n this.b = newBuf;\n }\n var split = this.b.length - this.s.z;\n this.b.set(chunk.subarray(0, split), this.s.z);\n this.s.z = this.b.length;\n this.p(this.b, false);\n this.b.set(this.b.subarray(-32768));\n this.b.set(chunk.subarray(split), 32768);\n this.s.z = chunk.length - split + 32768;\n this.s.i = 32766, this.s.w = 32768;\n }\n else {\n this.b.set(chunk, this.s.z);\n this.s.z += chunk.length;\n }\n this.s.l = final & 1;\n if (this.s.z > this.s.w + 8191 || final) {\n this.p(this.b, final || false);\n this.s.w = this.s.i, this.s.i -= 2;\n }\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * deflated output for small inputs.\n */\n Deflate.prototype.flush = function () {\n if (!this.ondata)\n err(5);\n if (this.s.l)\n err(4);\n this.p(this.b, false);\n this.s.w = this.s.i, this.s.i -= 2;\n };\n return Deflate;\n}());\nexport { Deflate };\n/**\n * Asynchronous streaming DEFLATE compression\n */\nvar AsyncDeflate = /*#__PURE__*/ (function () {\n function AsyncDeflate(opts, cb) {\n astrmify([\n bDflt,\n function () { return [astrm, Deflate]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Deflate(ev.data);\n onmessage = astrm(strm);\n }, 6, 1);\n }\n return AsyncDeflate;\n}());\nexport { AsyncDeflate };\nexport function deflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n ], function (ev) { return pbf(deflateSync(ev.data[0], ev.data[1])); }, 0, cb);\n}\n/**\n * Compresses data with DEFLATE without any wrapper\n * @param data The data to compress\n * @param opts The compression options\n * @returns The deflated version of the data\n */\nexport function deflateSync(data, opts) {\n return dopt(data, opts || {}, 0, 0);\n}\n/**\n * Streaming DEFLATE decompression\n */\nvar Inflate = /*#__PURE__*/ (function () {\n function Inflate(opts, cb) {\n // no StrmOpt here to avoid adding to workerizer\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n var dict = opts && opts.dictionary && opts.dictionary.subarray(-32768);\n this.s = { i: 0, b: dict ? dict.length : 0 };\n this.o = new u8(32768);\n this.p = new u8(0);\n if (dict)\n this.o.set(dict);\n }\n Inflate.prototype.e = function (c) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n if (!this.p.length)\n this.p = c;\n else if (c.length) {\n var n = new u8(this.p.length + c.length);\n n.set(this.p), n.set(c, this.p.length), this.p = n;\n }\n };\n Inflate.prototype.c = function (final) {\n this.s.i = +(this.d = final || false);\n var bts = this.s.b;\n var dt = inflt(this.p, this.s, this.o);\n this.ondata(slc(dt, bts, this.s.b), this.d);\n this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length;\n this.p = slc(this.p, (this.s.p / 8) | 0), this.s.p &= 7;\n };\n /**\n * Pushes a chunk to be inflated\n * @param chunk The chunk to push\n * @param final Whether this is the final chunk\n */\n Inflate.prototype.push = function (chunk, final) {\n this.e(chunk), this.c(final);\n };\n return Inflate;\n}());\nexport { Inflate };\n/**\n * Asynchronous streaming DEFLATE decompression\n */\nvar AsyncInflate = /*#__PURE__*/ (function () {\n function AsyncInflate(opts, cb) {\n astrmify([\n bInflt,\n function () { return [astrm, Inflate]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Inflate(ev.data);\n onmessage = astrm(strm);\n }, 7, 0);\n }\n return AsyncInflate;\n}());\nexport { AsyncInflate };\nexport function inflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt\n ], function (ev) { return pbf(inflateSync(ev.data[0], gopt(ev.data[1]))); }, 1, cb);\n}\n/**\n * Expands DEFLATE data with no wrapper\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function inflateSync(data, opts) {\n return inflt(data, { i: 2 }, opts && opts.out, opts && opts.dictionary);\n}\n// before you yell at me for not just using extends, my reason is that TS inheritance is hard to workerize.\n/**\n * Streaming GZIP compression\n */\nvar Gzip = /*#__PURE__*/ (function () {\n function Gzip(opts, cb) {\n this.c = crc();\n this.l = 0;\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gzip.prototype.push = function (chunk, final) {\n this.c.p(chunk);\n this.l += chunk.length;\n Deflate.prototype.push.call(this, chunk, final);\n };\n Gzip.prototype.p = function (c, f) {\n var raw = dopt(c, this.o, this.v && gzhl(this.o), f && 8, this.s);\n if (this.v)\n gzh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 8, this.c.d()), wbytes(raw, raw.length - 4, this.l);\n this.ondata(raw, f);\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * GZIPped output for small inputs.\n */\n Gzip.prototype.flush = function () {\n Deflate.prototype.flush.call(this);\n };\n return Gzip;\n}());\nexport { Gzip };\n/**\n * Asynchronous streaming GZIP compression\n */\nvar AsyncGzip = /*#__PURE__*/ (function () {\n function AsyncGzip(opts, cb) {\n astrmify([\n bDflt,\n gze,\n function () { return [astrm, Deflate, Gzip]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Gzip(ev.data);\n onmessage = astrm(strm);\n }, 8, 1);\n }\n return AsyncGzip;\n}());\nexport { AsyncGzip };\nexport function gzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n gze,\n function () { return [gzipSync]; }\n ], function (ev) { return pbf(gzipSync(ev.data[0], ev.data[1])); }, 2, cb);\n}\n/**\n * Compresses data with GZIP\n * @param data The data to compress\n * @param opts The compression options\n * @returns The gzipped version of the data\n */\nexport function gzipSync(data, opts) {\n if (!opts)\n opts = {};\n var c = crc(), l = data.length;\n c.p(data);\n var d = dopt(data, opts, gzhl(opts), 8), s = d.length;\n return gzh(d, opts), wbytes(d, s - 8, c.d()), wbytes(d, s - 4, l), d;\n}\n/**\n * Streaming single or multi-member GZIP decompression\n */\nvar Gunzip = /*#__PURE__*/ (function () {\n function Gunzip(opts, cb) {\n this.v = 1;\n this.r = 0;\n Inflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GUNZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gunzip.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n this.r += chunk.length;\n if (this.v) {\n var p = this.p.subarray(this.v - 1);\n var s = p.length > 3 ? gzs(p) : 4;\n if (s > p.length) {\n if (!final)\n return;\n }\n else if (this.v > 1 && this.onmember) {\n this.onmember(this.r - p.length);\n }\n this.p = p.subarray(s), this.v = 0;\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n // process concatenated GZIP\n if (this.s.f && !this.s.l && !final) {\n this.v = shft(this.s.p) + 9;\n this.s = { i: 0 };\n this.o = new u8(0);\n this.push(new u8(0), final);\n }\n };\n return Gunzip;\n}());\nexport { Gunzip };\n/**\n * Asynchronous streaming single or multi-member GZIP decompression\n */\nvar AsyncGunzip = /*#__PURE__*/ (function () {\n function AsyncGunzip(opts, cb) {\n var _this = this;\n astrmify([\n bInflt,\n guze,\n function () { return [astrm, Inflate, Gunzip]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Gunzip(ev.data);\n strm.onmember = function (offset) { return postMessage(offset); };\n onmessage = astrm(strm);\n }, 9, 0, function (offset) { return _this.onmember && _this.onmember(offset); });\n }\n return AsyncGunzip;\n}());\nexport { AsyncGunzip };\nexport function gunzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n guze,\n function () { return [gunzipSync]; }\n ], function (ev) { return pbf(gunzipSync(ev.data[0], ev.data[1])); }, 3, cb);\n}\n/**\n * Expands GZIP data\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function gunzipSync(data, opts) {\n var st = gzs(data);\n if (st + 8 > data.length)\n err(6, 'invalid gzip data');\n return inflt(data.subarray(st, -8), { i: 2 }, opts && opts.out || new u8(gzl(data)), opts && opts.dictionary);\n}\n/**\n * Streaming Zlib compression\n */\nvar Zlib = /*#__PURE__*/ (function () {\n function Zlib(opts, cb) {\n this.c = adler();\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be zlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Zlib.prototype.push = function (chunk, final) {\n this.c.p(chunk);\n Deflate.prototype.push.call(this, chunk, final);\n };\n Zlib.prototype.p = function (c, f) {\n var raw = dopt(c, this.o, this.v && (this.o.dictionary ? 6 : 2), f && 4, this.s);\n if (this.v)\n zlh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 4, this.c.d());\n this.ondata(raw, f);\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * zlibbed output for small inputs.\n */\n Zlib.prototype.flush = function () {\n Deflate.prototype.flush.call(this);\n };\n return Zlib;\n}());\nexport { Zlib };\n/**\n * Asynchronous streaming Zlib compression\n */\nvar AsyncZlib = /*#__PURE__*/ (function () {\n function AsyncZlib(opts, cb) {\n astrmify([\n bDflt,\n zle,\n function () { return [astrm, Deflate, Zlib]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Zlib(ev.data);\n onmessage = astrm(strm);\n }, 10, 1);\n }\n return AsyncZlib;\n}());\nexport { AsyncZlib };\nexport function zlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n zle,\n function () { return [zlibSync]; }\n ], function (ev) { return pbf(zlibSync(ev.data[0], ev.data[1])); }, 4, cb);\n}\n/**\n * Compress data with Zlib\n * @param data The data to compress\n * @param opts The compression options\n * @returns The zlib-compressed version of the data\n */\nexport function zlibSync(data, opts) {\n if (!opts)\n opts = {};\n var a = adler();\n a.p(data);\n var d = dopt(data, opts, opts.dictionary ? 6 : 2, 4);\n return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d;\n}\n/**\n * Streaming Zlib decompression\n */\nvar Unzlib = /*#__PURE__*/ (function () {\n function Unzlib(opts, cb) {\n Inflate.call(this, opts, cb);\n this.v = opts && opts.dictionary ? 2 : 1;\n }\n /**\n * Pushes a chunk to be unzlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzlib.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n if (this.p.length < 6 && !final)\n return;\n this.p = this.p.subarray(zls(this.p, this.v - 1)), this.v = 0;\n }\n if (final) {\n if (this.p.length < 4)\n err(6, 'invalid zlib data');\n this.p = this.p.subarray(0, -4);\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n };\n return Unzlib;\n}());\nexport { Unzlib };\n/**\n * Asynchronous streaming Zlib decompression\n */\nvar AsyncUnzlib = /*#__PURE__*/ (function () {\n function AsyncUnzlib(opts, cb) {\n astrmify([\n bInflt,\n zule,\n function () { return [astrm, Inflate, Unzlib]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Unzlib(ev.data);\n onmessage = astrm(strm);\n }, 11, 0);\n }\n return AsyncUnzlib;\n}());\nexport { AsyncUnzlib };\nexport function unzlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n zule,\n function () { return [unzlibSync]; }\n ], function (ev) { return pbf(unzlibSync(ev.data[0], gopt(ev.data[1]))); }, 5, cb);\n}\n/**\n * Expands Zlib data\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function unzlibSync(data, opts) {\n return inflt(data.subarray(zls(data, opts && opts.dictionary), -4), { i: 2 }, opts && opts.out, opts && opts.dictionary);\n}\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzip as compress, AsyncGzip as AsyncCompress };\nexport { gzipSync as compressSync, Gzip as Compress };\n/**\n * Streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar Decompress = /*#__PURE__*/ (function () {\n function Decompress(opts, cb) {\n this.o = StrmOpt.call(this, opts, cb) || {};\n this.G = Gunzip;\n this.I = Inflate;\n this.Z = Unzlib;\n }\n // init substream\n // overriden by AsyncDecompress\n Decompress.prototype.i = function () {\n var _this = this;\n this.s.ondata = function (dat, final) {\n _this.ondata(dat, final);\n };\n };\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Decompress.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (!this.s) {\n if (this.p && this.p.length) {\n var n = new u8(this.p.length + chunk.length);\n n.set(this.p), n.set(chunk, this.p.length);\n }\n else\n this.p = chunk;\n if (this.p.length > 2) {\n this.s = (this.p[0] == 31 && this.p[1] == 139 && this.p[2] == 8)\n ? new this.G(this.o)\n : ((this.p[0] & 15) != 8 || (this.p[0] >> 4) > 7 || ((this.p[0] << 8 | this.p[1]) % 31))\n ? new this.I(this.o)\n : new this.Z(this.o);\n this.i();\n this.s.push(this.p, final);\n this.p = null;\n }\n }\n else\n this.s.push(chunk, final);\n };\n return Decompress;\n}());\nexport { Decompress };\n/**\n * Asynchronous streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar AsyncDecompress = /*#__PURE__*/ (function () {\n function AsyncDecompress(opts, cb) {\n Decompress.call(this, opts, cb);\n this.queuedSize = 0;\n this.G = AsyncGunzip;\n this.I = AsyncInflate;\n this.Z = AsyncUnzlib;\n }\n AsyncDecompress.prototype.i = function () {\n var _this = this;\n this.s.ondata = function (err, dat, final) {\n _this.ondata(err, dat, final);\n };\n this.s.ondrain = function (size) {\n _this.queuedSize -= size;\n if (_this.ondrain)\n _this.ondrain(size);\n };\n };\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncDecompress.prototype.push = function (chunk, final) {\n this.queuedSize += chunk.length;\n Decompress.prototype.push.call(this, chunk, final);\n };\n return AsyncDecompress;\n}());\nexport { AsyncDecompress };\nexport function decompress(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzip(data, opts, cb)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflate(data, opts, cb)\n : unzlib(data, opts, cb);\n}\n/**\n * Expands compressed GZIP, Zlib, or raw DEFLATE data, automatically detecting the format\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function decompressSync(data, opts) {\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzipSync(data, opts)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflateSync(data, opts)\n : unzlibSync(data, opts);\n}\n// flatten a directory structure\nvar fltn = function (d, p, t, o) {\n for (var k in d) {\n var val = d[k], n = p + k, op = o;\n if (Array.isArray(val))\n op = mrg(o, val[1]), val = val[0];\n if (val instanceof u8)\n t[n] = [val, op];\n else {\n t[n += '/'] = [new u8(0), op];\n fltn(val, n, t, o);\n }\n }\n};\n// text encoder\nvar te = typeof TextEncoder != 'undefined' && /*#__PURE__*/ new TextEncoder();\n// text decoder\nvar td = typeof TextDecoder != 'undefined' && /*#__PURE__*/ new TextDecoder();\n// text decoder stream\nvar tds = 0;\ntry {\n td.decode(et, { stream: true });\n tds = 1;\n}\ncatch (e) { }\n// decode UTF8\nvar dutf8 = function (d) {\n for (var r = '', i = 0;;) {\n var c = d[i++];\n var eb = (c > 127) + (c > 223) + (c > 239);\n if (i + eb > d.length)\n return { s: r, r: slc(d, i - 1) };\n if (!eb)\n r += String.fromCharCode(c);\n else if (eb == 3) {\n c = ((c & 15) << 18 | (d[i++] & 63) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63)) - 65536,\n r += String.fromCharCode(55296 | (c >> 10), 56320 | (c & 1023));\n }\n else if (eb & 1)\n r += String.fromCharCode((c & 31) << 6 | (d[i++] & 63));\n else\n r += String.fromCharCode((c & 15) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63));\n }\n};\n/**\n * Streaming UTF-8 decoding\n */\nvar DecodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is decoded\n */\n function DecodeUTF8(cb) {\n this.ondata = cb;\n if (tds)\n this.t = new TextDecoder();\n else\n this.p = et;\n }\n /**\n * Pushes a chunk to be decoded from UTF-8 binary\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n DecodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n final = !!final;\n if (this.t) {\n this.ondata(this.t.decode(chunk, { stream: true }), final);\n if (final) {\n if (this.t.decode().length)\n err(8);\n this.t = null;\n }\n return;\n }\n if (!this.p)\n err(4);\n var dat = new u8(this.p.length + chunk.length);\n dat.set(this.p);\n dat.set(chunk, this.p.length);\n var _a = dutf8(dat), s = _a.s, r = _a.r;\n if (final) {\n if (r.length)\n err(8);\n this.p = null;\n }\n else\n this.p = r;\n this.ondata(s, final);\n };\n return DecodeUTF8;\n}());\nexport { DecodeUTF8 };\n/**\n * Streaming UTF-8 encoding\n */\nvar EncodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is encoded\n */\n function EncodeUTF8(cb) {\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be encoded to UTF-8\n * @param chunk The string data to push\n * @param final Whether this is the last chunk\n */\n EncodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n this.ondata(strToU8(chunk), this.d = final || false);\n };\n return EncodeUTF8;\n}());\nexport { EncodeUTF8 };\n/**\n * Converts a string into a Uint8Array for use with compression/decompression methods\n * @param str The string to encode\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless decoding a binary string.\n * @returns The string encoded in UTF-8/Latin-1 binary\n */\nexport function strToU8(str, latin1) {\n if (latin1) {\n var ar_1 = new u8(str.length);\n for (var i = 0; i < str.length; ++i)\n ar_1[i] = str.charCodeAt(i);\n return ar_1;\n }\n if (te)\n return te.encode(str);\n var l = str.length;\n var ar = new u8(str.length + (str.length >> 1));\n var ai = 0;\n var w = function (v) { ar[ai++] = v; };\n for (var i = 0; i < l; ++i) {\n if (ai + 5 > ar.length) {\n var n = new u8(ai + 8 + ((l - i) << 1));\n n.set(ar);\n ar = n;\n }\n var c = str.charCodeAt(i);\n if (c < 128 || latin1)\n w(c);\n else if (c < 2048)\n w(192 | (c >> 6)), w(128 | (c & 63));\n else if (c > 55295 && c < 57344)\n c = 65536 + (c & 1023 << 10) | (str.charCodeAt(++i) & 1023),\n w(240 | (c >> 18)), w(128 | ((c >> 12) & 63)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n else\n w(224 | (c >> 12)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n }\n return slc(ar, 0, ai);\n}\n/**\n * Converts a Uint8Array to a string\n * @param dat The data to decode to string\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless encoding to binary string.\n * @returns The original UTF-8/Latin-1 string\n */\nexport function strFromU8(dat, latin1) {\n if (latin1) {\n var r = '';\n for (var i = 0; i < dat.length; i += 16384)\n r += String.fromCharCode.apply(null, dat.subarray(i, i + 16384));\n return r;\n }\n else if (td) {\n return td.decode(dat);\n }\n else {\n var _a = dutf8(dat), s = _a.s, r = _a.r;\n if (r.length)\n err(8);\n return s;\n }\n}\n;\n// deflate bit flag\nvar dbf = function (l) { return l == 1 ? 3 : l < 6 ? 2 : l == 9 ? 1 : 0; };\n// skip local zip header\nvar slzh = function (d, b) { return b + 30 + b2(d, b + 26) + b2(d, b + 28); };\n// read zip header\nvar zh = function (d, b, z) {\n var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl, bs = b4(d, b + 20);\n var _a = z && bs == 4294967295 ? z64e(d, es) : [bs, b4(d, b + 24), b4(d, b + 42)], sc = _a[0], su = _a[1], off = _a[2];\n return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off];\n};\n// read zip64 extra field\nvar z64e = function (d, b) {\n for (; b2(d, b) != 1; b += 4 + b2(d, b + 2))\n ;\n return [b8(d, b + 12), b8(d, b + 4), b8(d, b + 20)];\n};\n// extra field length\nvar exfl = function (ex) {\n var le = 0;\n if (ex) {\n for (var k in ex) {\n var l = ex[k].length;\n if (l > 65535)\n err(9);\n le += l + 4;\n }\n }\n return le;\n};\n// write zip header\nvar wzh = function (d, b, f, fn, u, c, ce, co) {\n var fl = fn.length, ex = f.extra, col = co && co.length;\n var exl = exfl(ex);\n wbytes(d, b, ce != null ? 0x2014B50 : 0x4034B50), b += 4;\n if (ce != null)\n d[b++] = 20, d[b++] = f.os;\n d[b] = 20, b += 2; // spec compliance? what's that?\n d[b++] = (f.flag << 1) | (c < 0 && 8), d[b++] = u && 8;\n d[b++] = f.compression & 255, d[b++] = f.compression >> 8;\n var dt = new Date(f.mtime == null ? Date.now() : f.mtime), y = dt.getFullYear() - 1980;\n if (y < 0 || y > 119)\n err(10);\n wbytes(d, b, (y << 25) | ((dt.getMonth() + 1) << 21) | (dt.getDate() << 16) | (dt.getHours() << 11) | (dt.getMinutes() << 5) | (dt.getSeconds() >> 1)), b += 4;\n if (c != -1) {\n wbytes(d, b, f.crc);\n wbytes(d, b + 4, c < 0 ? -c - 2 : c);\n wbytes(d, b + 8, f.size);\n }\n wbytes(d, b + 12, fl);\n wbytes(d, b + 14, exl), b += 16;\n if (ce != null) {\n wbytes(d, b, col);\n wbytes(d, b + 6, f.attrs);\n wbytes(d, b + 10, ce), b += 14;\n }\n d.set(fn, b);\n b += fl;\n if (exl) {\n for (var k in ex) {\n var exf = ex[k], l = exf.length;\n wbytes(d, b, +k);\n wbytes(d, b + 2, l);\n d.set(exf, b + 4), b += 4 + l;\n }\n }\n if (col)\n d.set(co, b), b += col;\n return b;\n};\n// write zip footer (end of central directory)\nvar wzf = function (o, b, c, d, e) {\n wbytes(o, b, 0x6054B50); // skip disk\n wbytes(o, b + 8, c);\n wbytes(o, b + 10, c);\n wbytes(o, b + 12, d);\n wbytes(o, b + 16, e);\n};\n/**\n * A pass-through stream to keep data uncompressed in a ZIP archive.\n */\nvar ZipPassThrough = /*#__PURE__*/ (function () {\n /**\n * Creates a pass-through stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n */\n function ZipPassThrough(filename) {\n this.filename = filename;\n this.c = crc();\n this.size = 0;\n this.compression = 0;\n }\n /**\n * Processes a chunk and pushes to the output stream. You can override this\n * method in a subclass for custom behavior, but by default this passes\n * the data through. You must call this.ondata(err, chunk, final) at some\n * point in this method.\n * @param chunk The chunk to process\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.process = function (chunk, final) {\n this.ondata(null, chunk, final);\n };\n /**\n * Pushes a chunk to be added. If you are subclassing this with a custom\n * compression algorithm, note that you must push data from the source\n * file only, pre-compression.\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n this.c.p(chunk);\n this.size += chunk.length;\n if (final)\n this.crc = this.c.d();\n this.process(chunk, final || false);\n };\n return ZipPassThrough;\n}());\nexport { ZipPassThrough };\n// I don't extend because TypeScript extension adds 1kB of runtime bloat\n/**\n * Streaming DEFLATE compression for ZIP archives. Prefer using AsyncZipDeflate\n * for better performance\n */\nvar ZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function ZipDeflate(filename, opts) {\n var _this = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new Deflate(opts, function (dat, final) {\n _this.ondata(null, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n }\n ZipDeflate.prototype.process = function (chunk, final) {\n try {\n this.d.push(chunk, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return ZipDeflate;\n}());\nexport { ZipDeflate };\n/**\n * Asynchronous streaming DEFLATE compression for ZIP archives\n */\nvar AsyncZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function AsyncZipDeflate(filename, opts) {\n var _this = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new AsyncDeflate(opts, function (err, dat, final) {\n _this.ondata(err, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n this.terminate = this.d.terminate;\n }\n AsyncZipDeflate.prototype.process = function (chunk, final) {\n this.d.push(chunk, final);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return AsyncZipDeflate;\n}());\nexport { AsyncZipDeflate };\n// TODO: Better tree shaking\n/**\n * A zippable archive to which files can incrementally be added\n */\nvar Zip = /*#__PURE__*/ (function () {\n /**\n * Creates an empty ZIP archive to which files can be added\n * @param cb The callback to call whenever data for the generated ZIP archive\n * is available\n */\n function Zip(cb) {\n this.ondata = cb;\n this.u = [];\n this.d = 1;\n }\n /**\n * Adds a file to the ZIP archive\n * @param file The file stream to add\n */\n Zip.prototype.add = function (file) {\n var _this = this;\n if (!this.ondata)\n err(5);\n // finishing or finished\n if (this.d & 2)\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, false);\n else {\n var f = strToU8(file.filename), fl_1 = f.length;\n var com = file.comment, o = com && strToU8(com);\n var u = fl_1 != file.filename.length || (o && (com.length != o.length));\n var hl_1 = fl_1 + exfl(file.extra) + 30;\n if (fl_1 > 65535)\n this.ondata(err(11, 0, 1), null, false);\n var header = new u8(hl_1);\n wzh(header, 0, file, f, u, -1);\n var chks_1 = [header];\n var pAll_1 = function () {\n for (var _i = 0, chks_2 = chks_1; _i < chks_2.length; _i++) {\n var chk = chks_2[_i];\n _this.ondata(null, chk, false);\n }\n chks_1 = [];\n };\n var tr_1 = this.d;\n this.d = 0;\n var ind_1 = this.u.length;\n var uf_1 = mrg(file, {\n f: f,\n u: u,\n o: o,\n t: function () {\n if (file.terminate)\n file.terminate();\n },\n r: function () {\n pAll_1();\n if (tr_1) {\n var nxt = _this.u[ind_1 + 1];\n if (nxt)\n nxt.r();\n else\n _this.d = 1;\n }\n tr_1 = 1;\n }\n });\n var cl_1 = 0;\n file.ondata = function (err, dat, final) {\n if (err) {\n _this.ondata(err, dat, final);\n _this.terminate();\n }\n else {\n cl_1 += dat.length;\n chks_1.push(dat);\n if (final) {\n var dd = new u8(16);\n wbytes(dd, 0, 0x8074B50);\n wbytes(dd, 4, file.crc);\n wbytes(dd, 8, cl_1);\n wbytes(dd, 12, file.size);\n chks_1.push(dd);\n uf_1.c = cl_1, uf_1.b = hl_1 + cl_1 + 16, uf_1.crc = file.crc, uf_1.size = file.size;\n if (tr_1)\n uf_1.r();\n tr_1 = 1;\n }\n else if (tr_1)\n pAll_1();\n }\n };\n this.u.push(uf_1);\n }\n };\n /**\n * Ends the process of adding files and prepares to emit the final chunks.\n * This *must* be called after adding all desired files for the resulting\n * ZIP file to work properly.\n */\n Zip.prototype.end = function () {\n var _this = this;\n if (this.d & 2) {\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, true);\n return;\n }\n if (this.d)\n this.e();\n else\n this.u.push({\n r: function () {\n if (!(_this.d & 1))\n return;\n _this.u.splice(-1, 1);\n _this.e();\n },\n t: function () { }\n });\n this.d = 3;\n };\n Zip.prototype.e = function () {\n var bt = 0, l = 0, tl = 0;\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n tl += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0);\n }\n var out = new u8(tl + 22);\n for (var _b = 0, _c = this.u; _b < _c.length; _b++) {\n var f = _c[_b];\n wzh(out, bt, f, f.f, f.u, -f.c - 2, l, f.o);\n bt += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0), l += f.b;\n }\n wzf(out, bt, this.u.length, tl, l);\n this.ondata(null, out, true);\n this.d = 2;\n };\n /**\n * A method to terminate any internal workers used by the stream. Subsequent\n * calls to add() will fail.\n */\n Zip.prototype.terminate = function () {\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n f.t();\n }\n this.d = 2;\n };\n return Zip;\n}());\nexport { Zip };\nexport function zip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var r = {};\n fltn(data, '', r, opts);\n var k = Object.keys(r);\n var lft = k.length, o = 0, tot = 0;\n var slft = lft, files = new Array(lft);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var cbf = function () {\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n tot = 0;\n for (var i = 0; i < slft; ++i) {\n var f = files[i];\n try {\n var l = f.c.length;\n wzh(out, tot, f, f.f, f.u, l);\n var badd = 30 + f.f.length + exfl(f.extra);\n var loc = tot + badd;\n out.set(f.c, loc);\n wzh(out, o, f, f.f, f.u, l, tot, f.m), o += 16 + badd + (f.m ? f.m.length : 0), tot = loc + l;\n }\n catch (e) {\n return cbd(e, null);\n }\n }\n wzf(out, o, files.length, cdl, oe);\n cbd(null, out);\n };\n if (!lft)\n cbf();\n var _loop_1 = function (i) {\n var fn = k[i];\n var _a = r[fn], file = _a[0], p = _a[1];\n var c = crc(), size = file.length;\n c.p(file);\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n var compression = p.level == 0 ? 0 : 8;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n var l = d.length;\n files[i] = mrg(p, {\n size: size,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n compression: compression\n });\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n if (!--lft)\n cbf();\n }\n };\n if (s > 65535)\n cbl(err(11, 0, 1), null);\n if (!compression)\n cbl(null, file);\n else if (size < 160000) {\n try {\n cbl(null, deflateSync(file, p));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(deflate(file, p, cbl));\n };\n // Cannot use lft because it can decrease\n for (var i = 0; i < slft; ++i) {\n _loop_1(i);\n }\n return tAll;\n}\n/**\n * Synchronously creates a ZIP file. Prefer using `zip` for better performance\n * with more than one file.\n * @param data The directory structure for the ZIP archive\n * @param opts The main options, merged with per-file options\n * @returns The generated ZIP archive\n */\nexport function zipSync(data, opts) {\n if (!opts)\n opts = {};\n var r = {};\n var files = [];\n fltn(data, '', r, opts);\n var o = 0;\n var tot = 0;\n for (var fn in r) {\n var _a = r[fn], file = _a[0], p = _a[1];\n var compression = p.level == 0 ? 0 : 8;\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n if (s > 65535)\n err(11);\n var d = compression ? deflateSync(file, p) : file, l = d.length;\n var c = crc();\n c.p(file);\n files.push(mrg(p, {\n size: file.length,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n o: o,\n compression: compression\n }));\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n }\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n for (var i = 0; i < files.length; ++i) {\n var f = files[i];\n wzh(out, f.o, f, f.f, f.u, f.c.length);\n var badd = 30 + f.f.length + exfl(f.extra);\n out.set(f.c, f.o + badd);\n wzh(out, o, f, f.f, f.u, f.c.length, f.o, f.m), o += 16 + badd + (f.m ? f.m.length : 0);\n }\n wzf(out, o, files.length, cdl, oe);\n return out;\n}\n/**\n * Streaming pass-through decompression for ZIP archives\n */\nvar UnzipPassThrough = /*#__PURE__*/ (function () {\n function UnzipPassThrough() {\n }\n UnzipPassThrough.prototype.push = function (data, final) {\n this.ondata(null, data, final);\n };\n UnzipPassThrough.compression = 0;\n return UnzipPassThrough;\n}());\nexport { UnzipPassThrough };\n/**\n * Streaming DEFLATE decompression for ZIP archives. Prefer AsyncZipInflate for\n * better performance.\n */\nvar UnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function UnzipInflate() {\n var _this = this;\n this.i = new Inflate(function (dat, final) {\n _this.ondata(null, dat, final);\n });\n }\n UnzipInflate.prototype.push = function (data, final) {\n try {\n this.i.push(data, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n UnzipInflate.compression = 8;\n return UnzipInflate;\n}());\nexport { UnzipInflate };\n/**\n * Asynchronous streaming DEFLATE decompression for ZIP archives\n */\nvar AsyncUnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function AsyncUnzipInflate(_, sz) {\n var _this = this;\n if (sz < 320000) {\n this.i = new Inflate(function (dat, final) {\n _this.ondata(null, dat, final);\n });\n }\n else {\n this.i = new AsyncInflate(function (err, dat, final) {\n _this.ondata(err, dat, final);\n });\n this.terminate = this.i.terminate;\n }\n }\n AsyncUnzipInflate.prototype.push = function (data, final) {\n if (this.i.terminate)\n data = slc(data, 0);\n this.i.push(data, final);\n };\n AsyncUnzipInflate.compression = 8;\n return AsyncUnzipInflate;\n}());\nexport { AsyncUnzipInflate };\n/**\n * A ZIP archive decompression stream that emits files as they are discovered\n */\nvar Unzip = /*#__PURE__*/ (function () {\n /**\n * Creates a ZIP decompression stream\n * @param cb The callback to call whenever a file in the ZIP archive is found\n */\n function Unzip(cb) {\n this.onfile = cb;\n this.k = [];\n this.o = {\n 0: UnzipPassThrough\n };\n this.p = et;\n }\n /**\n * Pushes a chunk to be unzipped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzip.prototype.push = function (chunk, final) {\n var _this = this;\n if (!this.onfile)\n err(5);\n if (!this.p)\n err(4);\n if (this.c > 0) {\n var len = Math.min(this.c, chunk.length);\n var toAdd = chunk.subarray(0, len);\n this.c -= len;\n if (this.d)\n this.d.push(toAdd, !this.c);\n else\n this.k[0].push(toAdd);\n chunk = chunk.subarray(len);\n if (chunk.length)\n return this.push(chunk, final);\n }\n else {\n var f = 0, i = 0, is = void 0, buf = void 0;\n if (!this.p.length)\n buf = chunk;\n else if (!chunk.length)\n buf = this.p;\n else {\n buf = new u8(this.p.length + chunk.length);\n buf.set(this.p), buf.set(chunk, this.p.length);\n }\n var l = buf.length, oc = this.c, add = oc && this.d;\n var _loop_2 = function () {\n var _a;\n var sig = b4(buf, i);\n if (sig == 0x4034B50) {\n f = 1, is = i;\n this_1.d = null;\n this_1.c = 0;\n var bf = b2(buf, i + 6), cmp_1 = b2(buf, i + 8), u = bf & 2048, dd = bf & 8, fnl = b2(buf, i + 26), es = b2(buf, i + 28);\n if (l > i + 30 + fnl + es) {\n var chks_3 = [];\n this_1.k.unshift(chks_3);\n f = 2;\n var sc_1 = b4(buf, i + 18), su_1 = b4(buf, i + 22);\n var fn_1 = strFromU8(buf.subarray(i + 30, i += 30 + fnl), !u);\n if (sc_1 == 4294967295) {\n _a = dd ? [-2] : z64e(buf, i), sc_1 = _a[0], su_1 = _a[1];\n }\n else if (dd)\n sc_1 = -1;\n i += es;\n this_1.c = sc_1;\n var d_1;\n var file_1 = {\n name: fn_1,\n compression: cmp_1,\n start: function () {\n if (!file_1.ondata)\n err(5);\n if (!sc_1)\n file_1.ondata(null, et, true);\n else {\n var ctr = _this.o[cmp_1];\n if (!ctr)\n file_1.ondata(err(14, 'unknown compression type ' + cmp_1, 1), null, false);\n d_1 = sc_1 < 0 ? new ctr(fn_1) : new ctr(fn_1, sc_1, su_1);\n d_1.ondata = function (err, dat, final) { file_1.ondata(err, dat, final); };\n for (var _i = 0, chks_4 = chks_3; _i < chks_4.length; _i++) {\n var dat = chks_4[_i];\n d_1.push(dat, false);\n }\n if (_this.k[0] == chks_3 && _this.c)\n _this.d = d_1;\n else\n d_1.push(et, true);\n }\n },\n terminate: function () {\n if (d_1 && d_1.terminate)\n d_1.terminate();\n }\n };\n if (sc_1 >= 0)\n file_1.size = sc_1, file_1.originalSize = su_1;\n this_1.onfile(file_1);\n }\n return \"break\";\n }\n else if (oc) {\n if (sig == 0x8074B50) {\n is = i += 12 + (oc == -2 && 8), f = 3, this_1.c = 0;\n return \"break\";\n }\n else if (sig == 0x2014B50) {\n is = i -= 4, f = 3, this_1.c = 0;\n return \"break\";\n }\n }\n };\n var this_1 = this;\n for (; i < l - 4; ++i) {\n var state_1 = _loop_2();\n if (state_1 === \"break\")\n break;\n }\n this.p = et;\n if (oc < 0) {\n var dat = f ? buf.subarray(0, is - 12 - (oc == -2 && 8) - (b4(buf, is - 16) == 0x8074B50 && 4)) : buf.subarray(0, i);\n if (add)\n add.push(dat, !!f);\n else\n this.k[+(f == 2)].push(dat);\n }\n if (f & 2)\n return this.push(buf.subarray(i), final);\n this.p = buf.subarray(i);\n }\n if (final) {\n if (this.c)\n err(13);\n this.p = null;\n }\n };\n /**\n * Registers a decoder with the stream, allowing for files compressed with\n * the compression type provided to be expanded correctly\n * @param decoder The decoder constructor\n */\n Unzip.prototype.register = function (decoder) {\n this.o[decoder.compression] = decoder;\n };\n return Unzip;\n}());\nexport { Unzip };\nvar mt = typeof queueMicrotask == 'function' ? queueMicrotask : typeof setTimeout == 'function' ? setTimeout : function (fn) { fn(); };\nexport function unzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var files = {};\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558) {\n cbd(err(13, 0, 1), null);\n return tAll;\n }\n }\n ;\n var lft = b2(data, e + 8);\n if (lft) {\n var c = lft;\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = lft = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n var _loop_3 = function (i) {\n var _a = zh(data, o, z), c_1 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n if (d)\n files[fn] = d;\n if (!--lft)\n cbd(null, files);\n }\n };\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_1\n })) {\n if (!c_1)\n cbl(null, slc(data, b, b + sc));\n else if (c_1 == 8) {\n var infl = data.subarray(b, b + sc);\n // Synchronously decompress under 512KB, or barely-compressed data\n if (su < 524288 || sc > 0.8 * su) {\n try {\n cbl(null, inflateSync(infl, { out: new u8(su) }));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(inflate(infl, { size: su }, cbl));\n }\n else\n cbl(err(14, 'unknown compression type ' + c_1, 1), null);\n }\n else\n cbl(null, null);\n };\n for (var i = 0; i < c; ++i) {\n _loop_3(i);\n }\n }\n else\n cbd(null, {});\n return tAll;\n}\n/**\n * Synchronously decompresses a ZIP archive. Prefer using `unzip` for better\n * performance with more than one file.\n * @param data The raw compressed ZIP file\n * @param opts The ZIP extraction options\n * @returns The decompressed files\n */\nexport function unzipSync(data, opts) {\n var files = {};\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558)\n err(13);\n }\n ;\n var c = b2(data, e + 8);\n if (!c)\n return {};\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n for (var i = 0; i < c; ++i) {\n var _a = zh(data, o, z), c_2 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_2\n })) {\n if (!c_2)\n files[fn] = slc(data, b, b + sc);\n else if (c_2 == 8)\n files[fn] = inflateSync(data.subarray(b, b + sc), { out: new u8(su) });\n else\n err(14, 'unknown compression type ' + c_2);\n }\n }\n return files;\n}\n","import {\n\tVector3,\n\tVector4\n} from 'three';\n\n/**\n * NURBS utils\n *\n * See NURBSCurve and NURBSSurface.\n **/\n\n\n/**************************************************************\n *\tNURBS Utils\n **************************************************************/\n\n/*\nFinds knot vector span.\n\np : degree\nu : parametric value\nU : knot vector\n\nreturns the span\n*/\nfunction findSpan( p, u, U ) {\n\n\tconst n = U.length - p - 1;\n\n\tif ( u >= U[ n ] ) {\n\n\t\treturn n - 1;\n\n\t}\n\n\tif ( u <= U[ p ] ) {\n\n\t\treturn p;\n\n\t}\n\n\tlet low = p;\n\tlet high = n;\n\tlet mid = Math.floor( ( low + high ) / 2 );\n\n\twhile ( u < U[ mid ] || u >= U[ mid + 1 ] ) {\n\n\t\tif ( u < U[ mid ] ) {\n\n\t\t\thigh = mid;\n\n\t\t} else {\n\n\t\t\tlow = mid;\n\n\t\t}\n\n\t\tmid = Math.floor( ( low + high ) / 2 );\n\n\t}\n\n\treturn mid;\n\n}\n\n\n/*\nCalculate basis functions. See The NURBS Book, page 70, algorithm A2.2\n\nspan : span in which u lies\nu : parametric point\np : degree\nU : knot vector\n\nreturns array[p+1] with basis functions values.\n*/\nfunction calcBasisFunctions( span, u, p, U ) {\n\n\tconst N = [];\n\tconst left = [];\n\tconst right = [];\n\tN[ 0 ] = 1.0;\n\n\tfor ( let j = 1; j <= p; ++ j ) {\n\n\t\tleft[ j ] = u - U[ span + 1 - j ];\n\t\tright[ j ] = U[ span + j ] - u;\n\n\t\tlet saved = 0.0;\n\n\t\tfor ( let r = 0; r < j; ++ r ) {\n\n\t\t\tconst rv = right[ r + 1 ];\n\t\t\tconst lv = left[ j - r ];\n\t\t\tconst temp = N[ r ] / ( rv + lv );\n\t\t\tN[ r ] = saved + rv * temp;\n\t\t\tsaved = lv * temp;\n\n\t\t}\n\n\t\tN[ j ] = saved;\n\n\t}\n\n\treturn N;\n\n}\n\n\n/*\nCalculate B-Spline curve points. See The NURBS Book, page 82, algorithm A3.1.\n\np : degree of B-Spline\nU : knot vector\nP : control points (x, y, z, w)\nu : parametric point\n\nreturns point for given u\n*/\nfunction calcBSplinePoint( p, U, P, u ) {\n\n\tconst span = findSpan( p, u, U );\n\tconst N = calcBasisFunctions( span, u, p, U );\n\tconst C = new Vector4( 0, 0, 0, 0 );\n\n\tfor ( let j = 0; j <= p; ++ j ) {\n\n\t\tconst point = P[ span - p + j ];\n\t\tconst Nj = N[ j ];\n\t\tconst wNj = point.w * Nj;\n\t\tC.x += point.x * wNj;\n\t\tC.y += point.y * wNj;\n\t\tC.z += point.z * wNj;\n\t\tC.w += point.w * Nj;\n\n\t}\n\n\treturn C;\n\n}\n\n\n/*\nCalculate basis functions derivatives. See The NURBS Book, page 72, algorithm A2.3.\n\nspan : span in which u lies\nu : parametric point\np : degree\nn : number of derivatives to calculate\nU : knot vector\n\nreturns array[n+1][p+1] with basis functions derivatives\n*/\nfunction calcBasisFunctionDerivatives( span, u, p, n, U ) {\n\n\tconst zeroArr = [];\n\tfor ( let i = 0; i <= p; ++ i )\n\t\tzeroArr[ i ] = 0.0;\n\n\tconst ders = [];\n\n\tfor ( let i = 0; i <= n; ++ i )\n\t\tders[ i ] = zeroArr.slice( 0 );\n\n\tconst ndu = [];\n\n\tfor ( let i = 0; i <= p; ++ i )\n\t\tndu[ i ] = zeroArr.slice( 0 );\n\n\tndu[ 0 ][ 0 ] = 1.0;\n\n\tconst left = zeroArr.slice( 0 );\n\tconst right = zeroArr.slice( 0 );\n\n\tfor ( let j = 1; j <= p; ++ j ) {\n\n\t\tleft[ j ] = u - U[ span + 1 - j ];\n\t\tright[ j ] = U[ span + j ] - u;\n\n\t\tlet saved = 0.0;\n\n\t\tfor ( let r = 0; r < j; ++ r ) {\n\n\t\t\tconst rv = right[ r + 1 ];\n\t\t\tconst lv = left[ j - r ];\n\t\t\tndu[ j ][ r ] = rv + lv;\n\n\t\t\tconst temp = ndu[ r ][ j - 1 ] / ndu[ j ][ r ];\n\t\t\tndu[ r ][ j ] = saved + rv * temp;\n\t\t\tsaved = lv * temp;\n\n\t\t}\n\n\t\tndu[ j ][ j ] = saved;\n\n\t}\n\n\tfor ( let j = 0; j <= p; ++ j ) {\n\n\t\tders[ 0 ][ j ] = ndu[ j ][ p ];\n\n\t}\n\n\tfor ( let r = 0; r <= p; ++ r ) {\n\n\t\tlet s1 = 0;\n\t\tlet s2 = 1;\n\n\t\tconst a = [];\n\t\tfor ( let i = 0; i <= p; ++ i ) {\n\n\t\t\ta[ i ] = zeroArr.slice( 0 );\n\n\t\t}\n\n\t\ta[ 0 ][ 0 ] = 1.0;\n\n\t\tfor ( let k = 1; k <= n; ++ k ) {\n\n\t\t\tlet d = 0.0;\n\t\t\tconst rk = r - k;\n\t\t\tconst pk = p - k;\n\n\t\t\tif ( r >= k ) {\n\n\t\t\t\ta[ s2 ][ 0 ] = a[ s1 ][ 0 ] / ndu[ pk + 1 ][ rk ];\n\t\t\t\td = a[ s2 ][ 0 ] * ndu[ rk ][ pk ];\n\n\t\t\t}\n\n\t\t\tconst j1 = ( rk >= - 1 ) ? 1 : - rk;\n\t\t\tconst j2 = ( r - 1 <= pk ) ? k - 1 : p - r;\n\n\t\t\tfor ( let j = j1; j <= j2; ++ j ) {\n\n\t\t\t\ta[ s2 ][ j ] = ( a[ s1 ][ j ] - a[ s1 ][ j - 1 ] ) / ndu[ pk + 1 ][ rk + j ];\n\t\t\t\td += a[ s2 ][ j ] * ndu[ rk + j ][ pk ];\n\n\t\t\t}\n\n\t\t\tif ( r <= pk ) {\n\n\t\t\t\ta[ s2 ][ k ] = - a[ s1 ][ k - 1 ] / ndu[ pk + 1 ][ r ];\n\t\t\t\td += a[ s2 ][ k ] * ndu[ r ][ pk ];\n\n\t\t\t}\n\n\t\t\tders[ k ][ r ] = d;\n\n\t\t\tconst j = s1;\n\t\t\ts1 = s2;\n\t\t\ts2 = j;\n\n\t\t}\n\n\t}\n\n\tlet r = p;\n\n\tfor ( let k = 1; k <= n; ++ k ) {\n\n\t\tfor ( let j = 0; j <= p; ++ j ) {\n\n\t\t\tders[ k ][ j ] *= r;\n\n\t\t}\n\n\t\tr *= p - k;\n\n\t}\n\n\treturn ders;\n\n}\n\n\n/*\n\tCalculate derivatives of a B-Spline. See The NURBS Book, page 93, algorithm A3.2.\n\n\tp : degree\n\tU : knot vector\n\tP : control points\n\tu : Parametric points\n\tnd : number of derivatives\n\n\treturns array[d+1] with derivatives\n\t*/\nfunction calcBSplineDerivatives( p, U, P, u, nd ) {\n\n\tconst du = nd < p ? nd : p;\n\tconst CK = [];\n\tconst span = findSpan( p, u, U );\n\tconst nders = calcBasisFunctionDerivatives( span, u, p, du, U );\n\tconst Pw = [];\n\n\tfor ( let i = 0; i < P.length; ++ i ) {\n\n\t\tconst point = P[ i ].clone();\n\t\tconst w = point.w;\n\n\t\tpoint.x *= w;\n\t\tpoint.y *= w;\n\t\tpoint.z *= w;\n\n\t\tPw[ i ] = point;\n\n\t}\n\n\tfor ( let k = 0; k <= du; ++ k ) {\n\n\t\tconst point = Pw[ span - p ].clone().multiplyScalar( nders[ k ][ 0 ] );\n\n\t\tfor ( let j = 1; j <= p; ++ j ) {\n\n\t\t\tpoint.add( Pw[ span - p + j ].clone().multiplyScalar( nders[ k ][ j ] ) );\n\n\t\t}\n\n\t\tCK[ k ] = point;\n\n\t}\n\n\tfor ( let k = du + 1; k <= nd + 1; ++ k ) {\n\n\t\tCK[ k ] = new Vector4( 0, 0, 0 );\n\n\t}\n\n\treturn CK;\n\n}\n\n\n/*\nCalculate \"K over I\"\n\nreturns k!/(i!(k-i)!)\n*/\nfunction calcKoverI( k, i ) {\n\n\tlet nom = 1;\n\n\tfor ( let j = 2; j <= k; ++ j ) {\n\n\t\tnom *= j;\n\n\t}\n\n\tlet denom = 1;\n\n\tfor ( let j = 2; j <= i; ++ j ) {\n\n\t\tdenom *= j;\n\n\t}\n\n\tfor ( let j = 2; j <= k - i; ++ j ) {\n\n\t\tdenom *= j;\n\n\t}\n\n\treturn nom / denom;\n\n}\n\n\n/*\nCalculate derivatives (0-nd) of rational curve. See The NURBS Book, page 127, algorithm A4.2.\n\nPders : result of function calcBSplineDerivatives\n\nreturns array with derivatives for rational curve.\n*/\nfunction calcRationalCurveDerivatives( Pders ) {\n\n\tconst nd = Pders.length;\n\tconst Aders = [];\n\tconst wders = [];\n\n\tfor ( let i = 0; i < nd; ++ i ) {\n\n\t\tconst point = Pders[ i ];\n\t\tAders[ i ] = new Vector3( point.x, point.y, point.z );\n\t\twders[ i ] = point.w;\n\n\t}\n\n\tconst CK = [];\n\n\tfor ( let k = 0; k < nd; ++ k ) {\n\n\t\tconst v = Aders[ k ].clone();\n\n\t\tfor ( let i = 1; i <= k; ++ i ) {\n\n\t\t\tv.sub( CK[ k - i ].clone().multiplyScalar( calcKoverI( k, i ) * wders[ i ] ) );\n\n\t\t}\n\n\t\tCK[ k ] = v.divideScalar( wders[ 0 ] );\n\n\t}\n\n\treturn CK;\n\n}\n\n\n/*\nCalculate NURBS curve derivatives. See The NURBS Book, page 127, algorithm A4.2.\n\np : degree\nU : knot vector\nP : control points in homogeneous space\nu : parametric points\nnd : number of derivatives\n\nreturns array with derivatives.\n*/\nfunction calcNURBSDerivatives( p, U, P, u, nd ) {\n\n\tconst Pders = calcBSplineDerivatives( p, U, P, u, nd );\n\treturn calcRationalCurveDerivatives( Pders );\n\n}\n\n\n/*\nCalculate rational B-Spline surface point. See The NURBS Book, page 134, algorithm A4.3.\n\np, q : degrees of B-Spline surface\nU, V : knot vectors\nP : control points (x, y, z, w)\nu, v : parametric values\n\nreturns point for given (u, v)\n*/\nfunction calcSurfacePoint( p, q, U, V, P, u, v, target ) {\n\n\tconst uspan = findSpan( p, u, U );\n\tconst vspan = findSpan( q, v, V );\n\tconst Nu = calcBasisFunctions( uspan, u, p, U );\n\tconst Nv = calcBasisFunctions( vspan, v, q, V );\n\tconst temp = [];\n\n\tfor ( let l = 0; l <= q; ++ l ) {\n\n\t\ttemp[ l ] = new Vector4( 0, 0, 0, 0 );\n\t\tfor ( let k = 0; k <= p; ++ k ) {\n\n\t\t\tconst point = P[ uspan - p + k ][ vspan - q + l ].clone();\n\t\t\tconst w = point.w;\n\t\t\tpoint.x *= w;\n\t\t\tpoint.y *= w;\n\t\t\tpoint.z *= w;\n\t\t\ttemp[ l ].add( point.multiplyScalar( Nu[ k ] ) );\n\n\t\t}\n\n\t}\n\n\tconst Sw = new Vector4( 0, 0, 0, 0 );\n\tfor ( let l = 0; l <= q; ++ l ) {\n\n\t\tSw.add( temp[ l ].multiplyScalar( Nv[ l ] ) );\n\n\t}\n\n\tSw.divideScalar( Sw.w );\n\ttarget.set( Sw.x, Sw.y, Sw.z );\n\n}\n\n/*\nCalculate rational B-Spline volume point. See The NURBS Book, page 134, algorithm A4.3.\n\np, q, r : degrees of B-Splinevolume\nU, V, W : knot vectors\nP : control points (x, y, z, w)\nu, v, w : parametric values\n\nreturns point for given (u, v, w)\n*/\nfunction calcVolumePoint( p, q, r, U, V, W, P, u, v, w, target ) {\n\n\tconst uspan = findSpan( p, u, U );\n\tconst vspan = findSpan( q, v, V );\n\tconst wspan = findSpan( r, w, W );\n\tconst Nu = calcBasisFunctions( uspan, u, p, U );\n\tconst Nv = calcBasisFunctions( vspan, v, q, V );\n\tconst Nw = calcBasisFunctions( wspan, w, r, W );\n\tconst temp = [];\n\n\tfor ( let m = 0; m <= r; ++ m ) {\n\n\t\ttemp[ m ] = [];\n\n\t\tfor ( let l = 0; l <= q; ++ l ) {\n\n\t\t\ttemp[ m ][ l ] = new Vector4( 0, 0, 0, 0 );\n\t\t\tfor ( let k = 0; k <= p; ++ k ) {\n\n\t\t\t\tconst point = P[ uspan - p + k ][ vspan - q + l ][ wspan - r + m ].clone();\n\t\t\t\tconst w = point.w;\n\t\t\t\tpoint.x *= w;\n\t\t\t\tpoint.y *= w;\n\t\t\t\tpoint.z *= w;\n\t\t\t\ttemp[ m ][ l ].add( point.multiplyScalar( Nu[ k ] ) );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\tconst Sw = new Vector4( 0, 0, 0, 0 );\n\tfor ( let m = 0; m <= r; ++ m ) {\n\t\tfor ( let l = 0; l <= q; ++ l ) {\n\n\t\t\tSw.add( temp[ m ][ l ].multiplyScalar( Nw[ m ] ).multiplyScalar( Nv[ l ] ) );\n\n\t\t}\n\t}\n\n\tSw.divideScalar( Sw.w );\n\ttarget.set( Sw.x, Sw.y, Sw.z );\n\n}\n\n\nexport {\n\tfindSpan,\n\tcalcBasisFunctions,\n\tcalcBSplinePoint,\n\tcalcBasisFunctionDerivatives,\n\tcalcBSplineDerivatives,\n\tcalcKoverI,\n\tcalcRationalCurveDerivatives,\n\tcalcNURBSDerivatives,\n\tcalcSurfacePoint,\n\tcalcVolumePoint,\n};\n","import {\n\tCurve,\n\tVector3,\n\tVector4\n} from 'three';\nimport * as NURBSUtils from '../curves/NURBSUtils.js';\n\n/**\n * NURBS curve object\n *\n * Derives from Curve, overriding getPoint and getTangent.\n *\n * Implementation is based on (x, y [, z=0 [, w=1]]) control points with w=weight.\n *\n **/\n\nclass NURBSCurve extends Curve {\n\n\tconstructor(\n\t\tdegree,\n\t\tknots /* array of reals */,\n\t\tcontrolPoints /* array of Vector(2|3|4) */,\n\t\tstartKnot /* index in knots */,\n\t\tendKnot /* index in knots */\n\t) {\n\n\t\tsuper();\n\n\t\tconst knotsLength = knots ? knots.length - 1 : 0;\n\t\tconst pointsLength = controlPoints ? controlPoints.length : 0;\n\n\t\tthis.degree = degree;\n\t\tthis.knots = knots;\n\t\tthis.controlPoints = [];\n\t\t// Used by periodic NURBS to remove hidden spans\n\t\tthis.startKnot = startKnot || 0;\n\t\tthis.endKnot = endKnot || knotsLength;\n\n\t\tfor ( let i = 0; i < pointsLength; ++ i ) {\n\n\t\t\t// ensure Vector4 for control points\n\t\t\tconst point = controlPoints[ i ];\n\t\t\tthis.controlPoints[ i ] = new Vector4( point.x, point.y, point.z, point.w );\n\n\t\t}\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector3() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tconst u = this.knots[ this.startKnot ] + t * ( this.knots[ this.endKnot ] - this.knots[ this.startKnot ] ); // linear mapping t->u\n\n\t\t// following results in (wx, wy, wz, w) homogeneous point\n\t\tconst hpoint = NURBSUtils.calcBSplinePoint( this.degree, this.knots, this.controlPoints, u );\n\n\t\tif ( hpoint.w !== 1.0 ) {\n\n\t\t\t// project to 3D space: (wx, wy, wz, w) -> (x, y, z, 1)\n\t\t\thpoint.divideScalar( hpoint.w );\n\n\t\t}\n\n\t\treturn point.set( hpoint.x, hpoint.y, hpoint.z );\n\n\t}\n\n\tgetTangent( t, optionalTarget = new Vector3() ) {\n\n\t\tconst tangent = optionalTarget;\n\n\t\tconst u = this.knots[ 0 ] + t * ( this.knots[ this.knots.length - 1 ] - this.knots[ 0 ] );\n\t\tconst ders = NURBSUtils.calcNURBSDerivatives( this.degree, this.knots, this.controlPoints, u, 1 );\n\t\ttangent.copy( ders[ 1 ] ).normalize();\n\n\t\treturn tangent;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.degree = this.degree;\n\t\tdata.knots = [ ...this.knots ];\n\t\tdata.controlPoints = this.controlPoints.map( p => p.toArray() );\n\t\tdata.startKnot = this.startKnot;\n\t\tdata.endKnot = this.endKnot;\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.degree = json.degree;\n\t\tthis.knots = [ ...json.knots ];\n\t\tthis.controlPoints = json.controlPoints.map( p => new Vector4( p[ 0 ], p[ 1 ], p[ 2 ], p[ 3 ] ) );\n\t\tthis.startKnot = json.startKnot;\n\t\tthis.endKnot = json.endKnot;\n\n\t\treturn this;\n\n\t}\n\n}\n\nexport { NURBSCurve };","import {\n\tAmbientLight,\n\tAnimationClip,\n\tBone,\n\tBufferGeometry,\n\tClampToEdgeWrapping,\n\tColor,\n\tColorManagement,\n\tDirectionalLight,\n\tEquirectangularReflectionMapping,\n\tEuler,\n\tFileLoader,\n\tFloat32BufferAttribute,\n\tGroup,\n\tLine,\n\tLineBasicMaterial,\n\tLoader,\n\tLoaderUtils,\n\tMathUtils,\n\tMatrix3,\n\tMatrix4,\n\tMesh,\n\tMeshLambertMaterial,\n\tMeshPhongMaterial,\n\tNumberKeyframeTrack,\n\tObject3D,\n\tPerspectiveCamera,\n\tPointLight,\n\tPropertyBinding,\n\tQuaternion,\n\tQuaternionKeyframeTrack,\n\tRepeatWrapping,\n\tSRGBColorSpace,\n\tShapeUtils,\n\tSkeleton,\n\tSkinnedMesh,\n\tSpotLight,\n\tTexture,\n\tTextureLoader,\n\tUint16BufferAttribute,\n\tVector2,\n\tVector3,\n\tVector4,\n\tVectorKeyframeTrack\n} from 'three';\n\nimport * as fflate from '../libs/fflate.module.js';\nimport { NURBSCurve } from '../curves/NURBSCurve.js';\n\n/**\n * Loader loads FBX file and generates Group representing FBX scene.\n * Requires FBX file to be >= 7.0 and in ASCII or >= 6400 in Binary format\n * Versions lower than this may load but will probably have errors\n *\n * Needs Support:\n * Morph normals / blend shape normals\n *\n * FBX format references:\n * \thttps://help.autodesk.com/view/FBX/2017/ENU/?guid=__cpp_ref_index_html (C++ SDK reference)\n *\n * Binary format specification:\n *\thttps://code.blender.org/2013/08/fbx-binary-file-format-specification/\n */\n\n\nlet fbxTree;\nlet connections;\nlet sceneGraph;\n\nclass FBXLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tconst path = ( scope.path === '' ) ? LoaderUtils.extractUrlBase( url ) : scope.path;\n\n\t\tconst loader = new FileLoader( this.manager );\n\t\tloader.setPath( scope.path );\n\t\tloader.setResponseType( 'arraybuffer' );\n\t\tloader.setRequestHeader( scope.requestHeader );\n\t\tloader.setWithCredentials( scope.withCredentials );\n\n\t\tloader.load( url, function ( buffer ) {\n\n\t\t\ttry {\n\n\t\t\t\tonLoad( scope.parse( buffer, path ) );\n\n\t\t\t} catch ( e ) {\n\n\t\t\t\tif ( onError ) {\n\n\t\t\t\t\tonError( e );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.error( e );\n\n\t\t\t\t}\n\n\t\t\t\tscope.manager.itemError( url );\n\n\t\t\t}\n\n\t\t}, onProgress, onError );\n\n\t}\n\n\tparse( FBXBuffer, path ) {\n\n\t\tif ( isFbxFormatBinary( FBXBuffer ) ) {\n\n\t\t\tfbxTree = new BinaryParser().parse( FBXBuffer );\n\n\t\t} else {\n\n\t\t\tconst FBXText = convertArrayBufferToString( FBXBuffer );\n\n\t\t\tif ( ! isFbxFormatASCII( FBXText ) ) {\n\n\t\t\t\tthrow new Error( 'THREE.FBXLoader: Unknown format.' );\n\n\t\t\t}\n\n\t\t\tif ( getFbxVersion( FBXText ) < 7000 ) {\n\n\t\t\t\tthrow new Error( 'THREE.FBXLoader: FBX version not supported, FileVersion: ' + getFbxVersion( FBXText ) );\n\n\t\t\t}\n\n\t\t\tfbxTree = new TextParser().parse( FBXText );\n\n\t\t}\n\n\t\t// console.log( fbxTree );\n\n\t\tconst textureLoader = new TextureLoader( this.manager ).setPath( this.resourcePath || path ).setCrossOrigin( this.crossOrigin );\n\n\t\treturn new FBXTreeParser( textureLoader, this.manager ).parse( fbxTree );\n\n\t}\n\n}\n\n// Parse the FBXTree object returned by the BinaryParser or TextParser and return a Group\nclass FBXTreeParser {\n\n\tconstructor( textureLoader, manager ) {\n\n\t\tthis.textureLoader = textureLoader;\n\t\tthis.manager = manager;\n\n\t}\n\n\tparse() {\n\n\t\tconnections = this.parseConnections();\n\n\t\tconst images = this.parseImages();\n\t\tconst textures = this.parseTextures( images );\n\t\tconst materials = this.parseMaterials( textures );\n\t\tconst deformers = this.parseDeformers();\n\t\tconst geometryMap = new GeometryParser().parse( deformers );\n\n\t\tthis.parseScene( deformers, geometryMap, materials );\n\n\t\treturn sceneGraph;\n\n\t}\n\n\t// Parses FBXTree.Connections which holds parent-child connections between objects (e.g. material -> texture, model->geometry )\n\t// and details the connection type\n\tparseConnections() {\n\n\t\tconst connectionMap = new Map();\n\n\t\tif ( 'Connections' in fbxTree ) {\n\n\t\t\tconst rawConnections = fbxTree.Connections.connections;\n\n\t\t\trawConnections.forEach( function ( rawConnection ) {\n\n\t\t\t\tconst fromID = rawConnection[ 0 ];\n\t\t\t\tconst toID = rawConnection[ 1 ];\n\t\t\t\tconst relationship = rawConnection[ 2 ];\n\n\t\t\t\tif ( ! connectionMap.has( fromID ) ) {\n\n\t\t\t\t\tconnectionMap.set( fromID, {\n\t\t\t\t\t\tparents: [],\n\t\t\t\t\t\tchildren: []\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t\tconst parentRelationship = { ID: toID, relationship: relationship };\n\t\t\t\tconnectionMap.get( fromID ).parents.push( parentRelationship );\n\n\t\t\t\tif ( ! connectionMap.has( toID ) ) {\n\n\t\t\t\t\tconnectionMap.set( toID, {\n\t\t\t\t\t\tparents: [],\n\t\t\t\t\t\tchildren: []\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t\tconst childRelationship = { ID: fromID, relationship: relationship };\n\t\t\t\tconnectionMap.get( toID ).children.push( childRelationship );\n\n\t\t\t} );\n\n\t\t}\n\n\t\treturn connectionMap;\n\n\t}\n\n\t// Parse FBXTree.Objects.Video for embedded image data\n\t// These images are connected to textures in FBXTree.Objects.Textures\n\t// via FBXTree.Connections.\n\tparseImages() {\n\n\t\tconst images = {};\n\t\tconst blobs = {};\n\n\t\tif ( 'Video' in fbxTree.Objects ) {\n\n\t\t\tconst videoNodes = fbxTree.Objects.Video;\n\n\t\t\tfor ( const nodeID in videoNodes ) {\n\n\t\t\t\tconst videoNode = videoNodes[ nodeID ];\n\n\t\t\t\tconst id = parseInt( nodeID );\n\n\t\t\t\timages[ id ] = videoNode.RelativeFilename || videoNode.Filename;\n\n\t\t\t\t// raw image data is in videoNode.Content\n\t\t\t\tif ( 'Content' in videoNode ) {\n\n\t\t\t\t\tconst arrayBufferContent = ( videoNode.Content instanceof ArrayBuffer ) && ( videoNode.Content.byteLength > 0 );\n\t\t\t\t\tconst base64Content = ( typeof videoNode.Content === 'string' ) && ( videoNode.Content !== '' );\n\n\t\t\t\t\tif ( arrayBufferContent || base64Content ) {\n\n\t\t\t\t\t\tconst image = this.parseImage( videoNodes[ nodeID ] );\n\n\t\t\t\t\t\tblobs[ videoNode.RelativeFilename || videoNode.Filename ] = image;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tfor ( const id in images ) {\n\n\t\t\tconst filename = images[ id ];\n\n\t\t\tif ( blobs[ filename ] !== undefined ) images[ id ] = blobs[ filename ];\n\t\t\telse images[ id ] = images[ id ].split( '\\\\' ).pop();\n\n\t\t}\n\n\t\treturn images;\n\n\t}\n\n\t// Parse embedded image data in FBXTree.Video.Content\n\tparseImage( videoNode ) {\n\n\t\tconst content = videoNode.Content;\n\t\tconst fileName = videoNode.RelativeFilename || videoNode.Filename;\n\t\tconst extension = fileName.slice( fileName.lastIndexOf( '.' ) + 1 ).toLowerCase();\n\n\t\tlet type;\n\n\t\tswitch ( extension ) {\n\n\t\t\tcase 'bmp':\n\n\t\t\t\ttype = 'image/bmp';\n\t\t\t\tbreak;\n\n\t\t\tcase 'jpg':\n\t\t\tcase 'jpeg':\n\n\t\t\t\ttype = 'image/jpeg';\n\t\t\t\tbreak;\n\n\t\t\tcase 'png':\n\n\t\t\t\ttype = 'image/png';\n\t\t\t\tbreak;\n\n\t\t\tcase 'tif':\n\n\t\t\t\ttype = 'image/tiff';\n\t\t\t\tbreak;\n\n\t\t\tcase 'tga':\n\n\t\t\t\tif ( this.manager.getHandler( '.tga' ) === null ) {\n\n\t\t\t\t\tconsole.warn( 'FBXLoader: TGA loader not found, skipping ', fileName );\n\n\t\t\t\t}\n\n\t\t\t\ttype = 'image/tga';\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\n\t\t\t\tconsole.warn( 'FBXLoader: Image type \"' + extension + '\" is not supported.' );\n\t\t\t\treturn;\n\n\t\t}\n\n\t\tif ( typeof content === 'string' ) { // ASCII format\n\n\t\t\treturn 'data:' + type + ';base64,' + content;\n\n\t\t} else { // Binary Format\n\n\t\t\tconst array = new Uint8Array( content );\n\t\t\treturn window.URL.createObjectURL( new Blob( [ array ], { type: type } ) );\n\n\t\t}\n\n\t}\n\n\t// Parse nodes in FBXTree.Objects.Texture\n\t// These contain details such as UV scaling, cropping, rotation etc and are connected\n\t// to images in FBXTree.Objects.Video\n\tparseTextures( images ) {\n\n\t\tconst textureMap = new Map();\n\n\t\tif ( 'Texture' in fbxTree.Objects ) {\n\n\t\t\tconst textureNodes = fbxTree.Objects.Texture;\n\t\t\tfor ( const nodeID in textureNodes ) {\n\n\t\t\t\tconst texture = this.parseTexture( textureNodes[ nodeID ], images );\n\t\t\t\ttextureMap.set( parseInt( nodeID ), texture );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn textureMap;\n\n\t}\n\n\t// Parse individual node in FBXTree.Objects.Texture\n\tparseTexture( textureNode, images ) {\n\n\t\tconst texture = this.loadTexture( textureNode, images );\n\n\t\ttexture.ID = textureNode.id;\n\n\t\ttexture.name = textureNode.attrName;\n\n\t\tconst wrapModeU = textureNode.WrapModeU;\n\t\tconst wrapModeV = textureNode.WrapModeV;\n\n\t\tconst valueU = wrapModeU !== undefined ? wrapModeU.value : 0;\n\t\tconst valueV = wrapModeV !== undefined ? wrapModeV.value : 0;\n\n\t\t// http://download.autodesk.com/us/fbx/SDKdocs/FBX_SDK_Help/files/fbxsdkref/class_k_fbx_texture.html#889640e63e2e681259ea81061b85143a\n\t\t// 0: repeat(default), 1: clamp\n\n\t\ttexture.wrapS = valueU === 0 ? RepeatWrapping : ClampToEdgeWrapping;\n\t\ttexture.wrapT = valueV === 0 ? RepeatWrapping : ClampToEdgeWrapping;\n\n\t\tif ( 'Scaling' in textureNode ) {\n\n\t\t\tconst values = textureNode.Scaling.value;\n\n\t\t\ttexture.repeat.x = values[ 0 ];\n\t\t\ttexture.repeat.y = values[ 1 ];\n\n\t\t}\n\n\t\tif ( 'Translation' in textureNode ) {\n\n\t\t\tconst values = textureNode.Translation.value;\n\n\t\t\ttexture.offset.x = values[ 0 ];\n\t\t\ttexture.offset.y = values[ 1 ];\n\n\t\t}\n\n\t\treturn texture;\n\n\t}\n\n\t// load a texture specified as a blob or data URI, or via an external URL using TextureLoader\n\tloadTexture( textureNode, images ) {\n\n\t\tconst nonNativeExtensions = new Set( [ 'tga', 'tif', 'tiff', 'exr', 'dds', 'hdr', 'ktx2' ] );\n\n\t\tconst extension = textureNode.FileName.split( '.' ).pop().toLowerCase();\n\n\t\tconst loader = nonNativeExtensions.has( extension ) ? this.manager.getHandler( `.${extension}` ) : this.textureLoader;\n\n\t\tif ( ! loader ) {\n\n\t\t\tconsole.warn(\n\t\t\t\t`FBXLoader: ${extension.toUpperCase()} loader not found, creating placeholder texture for`,\n\t\t\t\ttextureNode.RelativeFilename\n\t\t\t);\n\t\t\treturn new Texture();\n\n\t\t}\n\n\t\tconst loaderPath = loader.path;\n\n\t\tif ( ! loaderPath ) {\n\n\t\t\tloader.setPath( this.textureLoader.path );\n\n\t\t}\n\n\t\tconst children = connections.get( textureNode.id ).children;\n\n\t\tlet fileName;\n\n\t\tif ( children !== undefined && children.length > 0 && images[ children[ 0 ].ID ] !== undefined ) {\n\n\t\t\tfileName = images[ children[ 0 ].ID ];\n\n\t\t\tif ( fileName.indexOf( 'blob:' ) === 0 || fileName.indexOf( 'data:' ) === 0 ) {\n\n\t\t\t\tloader.setPath( undefined );\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst texture = loader.load( fileName );\n\n\t\t// revert to initial path\n\t\tloader.setPath( loaderPath );\n\n\t\treturn texture;\n\n\t}\n\n\t// Parse nodes in FBXTree.Objects.Material\n\tparseMaterials( textureMap ) {\n\n\t\tconst materialMap = new Map();\n\n\t\tif ( 'Material' in fbxTree.Objects ) {\n\n\t\t\tconst materialNodes = fbxTree.Objects.Material;\n\n\t\t\tfor ( const nodeID in materialNodes ) {\n\n\t\t\t\tconst material = this.parseMaterial( materialNodes[ nodeID ], textureMap );\n\n\t\t\t\tif ( material !== null ) materialMap.set( parseInt( nodeID ), material );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn materialMap;\n\n\t}\n\n\t// Parse single node in FBXTree.Objects.Material\n\t// Materials are connected to texture maps in FBXTree.Objects.Textures\n\t// FBX format currently only supports Lambert and Phong shading models\n\tparseMaterial( materialNode, textureMap ) {\n\n\t\tconst ID = materialNode.id;\n\t\tconst name = materialNode.attrName;\n\t\tlet type = materialNode.ShadingModel;\n\n\t\t// Case where FBX wraps shading model in property object.\n\t\tif ( typeof type === 'object' ) {\n\n\t\t\ttype = type.value;\n\n\t\t}\n\n\t\t// Ignore unused materials which don't have any connections.\n\t\tif ( ! connections.has( ID ) ) return null;\n\n\t\tconst parameters = this.parseParameters( materialNode, textureMap, ID );\n\n\t\tlet material;\n\n\t\tswitch ( type.toLowerCase() ) {\n\n\t\t\tcase 'phong':\n\t\t\t\tmaterial = new MeshPhongMaterial();\n\t\t\t\tbreak;\n\t\t\tcase 'lambert':\n\t\t\t\tmaterial = new MeshLambertMaterial();\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tconsole.warn( 'THREE.FBXLoader: unknown material type \"%s\". Defaulting to MeshPhongMaterial.', type );\n\t\t\t\tmaterial = new MeshPhongMaterial();\n\t\t\t\tbreak;\n\n\t\t}\n\n\t\tmaterial.setValues( parameters );\n\t\tmaterial.name = name;\n\n\t\treturn material;\n\n\t}\n\n\t// Parse FBX material and return parameters suitable for a three.js material\n\t// Also parse the texture map and return any textures associated with the material\n\tparseParameters( materialNode, textureMap, ID ) {\n\n\t\tconst parameters = {};\n\n\t\tif ( materialNode.BumpFactor ) {\n\n\t\t\tparameters.bumpScale = materialNode.BumpFactor.value;\n\n\t\t}\n\n\t\tif ( materialNode.Diffuse ) {\n\n\t\t\tparameters.color = ColorManagement.toWorkingColorSpace( new Color().fromArray( materialNode.Diffuse.value ), SRGBColorSpace );\n\n\t\t} else if ( materialNode.DiffuseColor && ( materialNode.DiffuseColor.type === 'Color' || materialNode.DiffuseColor.type === 'ColorRGB' ) ) {\n\n\t\t\t// The blender exporter exports diffuse here instead of in materialNode.Diffuse\n\t\t\tparameters.color = ColorManagement.toWorkingColorSpace( new Color().fromArray( materialNode.DiffuseColor.value ), SRGBColorSpace );\n\n\t\t}\n\n\t\tif ( materialNode.DisplacementFactor ) {\n\n\t\t\tparameters.displacementScale = materialNode.DisplacementFactor.value;\n\n\t\t}\n\n\t\tif ( materialNode.Emissive ) {\n\n\t\t\tparameters.emissive = ColorManagement.toWorkingColorSpace( new Color().fromArray( materialNode.Emissive.value ), SRGBColorSpace );\n\n\t\t} else if ( materialNode.EmissiveColor && ( materialNode.EmissiveColor.type === 'Color' || materialNode.EmissiveColor.type === 'ColorRGB' ) ) {\n\n\t\t\t// The blender exporter exports emissive color here instead of in materialNode.Emissive\n\t\t\tparameters.emissive = ColorManagement.toWorkingColorSpace( new Color().fromArray( materialNode.EmissiveColor.value ), SRGBColorSpace );\n\n\t\t}\n\n\t\tif ( materialNode.EmissiveFactor ) {\n\n\t\t\tparameters.emissiveIntensity = parseFloat( materialNode.EmissiveFactor.value );\n\n\t\t}\n\n\t\t// the transparency handling is implemented based on Blender/Unity's approach: https://github.com/sobotka/blender-addons/blob/7d80f2f97161fc8e353a657b179b9aa1f8e5280b/io_scene_fbx/import_fbx.py#L1444-L1459\n\n\t\tparameters.opacity = 1 - ( materialNode.TransparencyFactor ? parseFloat( materialNode.TransparencyFactor.value ) : 0 );\n\n\t\tif ( parameters.opacity === 1 || parameters.opacity === 0 ) {\n\n\t\t\tparameters.opacity = ( materialNode.Opacity ? parseFloat( materialNode.Opacity.value ) : null );\n\n\t\t\tif ( parameters.opacity === null ) {\n\n\t\t\t\tparameters.opacity = 1 - ( materialNode.TransparentColor ? parseFloat( materialNode.TransparentColor.value[ 0 ] ) : 0 );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( parameters.opacity < 1.0 ) {\n\n\t\t\tparameters.transparent = true;\n\n\t\t}\n\n\t\tif ( materialNode.ReflectionFactor ) {\n\n\t\t\tparameters.reflectivity = materialNode.ReflectionFactor.value;\n\n\t\t}\n\n\t\tif ( materialNode.Shininess ) {\n\n\t\t\tparameters.shininess = materialNode.Shininess.value;\n\n\t\t}\n\n\t\tif ( materialNode.Specular ) {\n\n\t\t\tparameters.specular = ColorManagement.toWorkingColorSpace( new Color().fromArray( materialNode.Specular.value ), SRGBColorSpace );\n\n\t\t} else if ( materialNode.SpecularColor && materialNode.SpecularColor.type === 'Color' ) {\n\n\t\t\t// The blender exporter exports specular color here instead of in materialNode.Specular\n\t\t\tparameters.specular = ColorManagement.toWorkingColorSpace( new Color().fromArray( materialNode.SpecularColor.value ), SRGBColorSpace );\n\n\t\t}\n\n\t\tconst scope = this;\n\t\tconnections.get( ID ).children.forEach( function ( child ) {\n\n\t\t\tconst type = child.relationship;\n\n\t\t\tswitch ( type ) {\n\n\t\t\t\tcase 'Bump':\n\t\t\t\t\tparameters.bumpMap = scope.getTexture( textureMap, child.ID );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Maya|TEX_ao_map':\n\t\t\t\t\tparameters.aoMap = scope.getTexture( textureMap, child.ID );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'DiffuseColor':\n\t\t\t\tcase 'Maya|TEX_color_map':\n\t\t\t\t\tparameters.map = scope.getTexture( textureMap, child.ID );\n\t\t\t\t\tif ( parameters.map !== undefined ) {\n\n\t\t\t\t\t\tparameters.map.colorSpace = SRGBColorSpace;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'DisplacementColor':\n\t\t\t\t\tparameters.displacementMap = scope.getTexture( textureMap, child.ID );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'EmissiveColor':\n\t\t\t\t\tparameters.emissiveMap = scope.getTexture( textureMap, child.ID );\n\t\t\t\t\tif ( parameters.emissiveMap !== undefined ) {\n\n\t\t\t\t\t\tparameters.emissiveMap.colorSpace = SRGBColorSpace;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'NormalMap':\n\t\t\t\tcase 'Maya|TEX_normal_map':\n\t\t\t\t\tparameters.normalMap = scope.getTexture( textureMap, child.ID );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'ReflectionColor':\n\t\t\t\t\tparameters.envMap = scope.getTexture( textureMap, child.ID );\n\t\t\t\t\tif ( parameters.envMap !== undefined ) {\n\n\t\t\t\t\t\tparameters.envMap.mapping = EquirectangularReflectionMapping;\n\t\t\t\t\t\tparameters.envMap.colorSpace = SRGBColorSpace;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'SpecularColor':\n\t\t\t\t\tparameters.specularMap = scope.getTexture( textureMap, child.ID );\n\t\t\t\t\tif ( parameters.specularMap !== undefined ) {\n\n\t\t\t\t\t\tparameters.specularMap.colorSpace = SRGBColorSpace;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'TransparentColor':\n\t\t\t\tcase 'TransparencyFactor':\n\t\t\t\t\tparameters.alphaMap = scope.getTexture( textureMap, child.ID );\n\t\t\t\t\tparameters.transparent = true;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'AmbientColor':\n\t\t\t\tcase 'ShininessExponent': // AKA glossiness map\n\t\t\t\tcase 'SpecularFactor': // AKA specularLevel\n\t\t\t\tcase 'VectorDisplacementColor': // NOTE: Seems to be a copy of DisplacementColor\n\t\t\t\tdefault:\n\t\t\t\t\tconsole.warn( 'THREE.FBXLoader: %s map is not supported in three.js, skipping texture.', type );\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t} );\n\n\t\treturn parameters;\n\n\t}\n\n\t// get a texture from the textureMap for use by a material.\n\tgetTexture( textureMap, id ) {\n\n\t\t// if the texture is a layered texture, just use the first layer and issue a warning\n\t\tif ( 'LayeredTexture' in fbxTree.Objects && id in fbxTree.Objects.LayeredTexture ) {\n\n\t\t\tconsole.warn( 'THREE.FBXLoader: layered textures are not supported in three.js. Discarding all but first layer.' );\n\t\t\tid = connections.get( id ).children[ 0 ].ID;\n\n\t\t}\n\n\t\treturn textureMap.get( id );\n\n\t}\n\n\t// Parse nodes in FBXTree.Objects.Deformer\n\t// Deformer node can contain skinning or Vertex Cache animation data, however only skinning is supported here\n\t// Generates map of Skeleton-like objects for use later when generating and binding skeletons.\n\tparseDeformers() {\n\n\t\tconst skeletons = {};\n\t\tconst morphTargets = {};\n\n\t\tif ( 'Deformer' in fbxTree.Objects ) {\n\n\t\t\tconst DeformerNodes = fbxTree.Objects.Deformer;\n\n\t\t\tfor ( const nodeID in DeformerNodes ) {\n\n\t\t\t\tconst deformerNode = DeformerNodes[ nodeID ];\n\n\t\t\t\tconst relationships = connections.get( parseInt( nodeID ) );\n\n\t\t\t\tif ( deformerNode.attrType === 'Skin' ) {\n\n\t\t\t\t\tconst skeleton = this.parseSkeleton( relationships, DeformerNodes );\n\t\t\t\t\tskeleton.ID = nodeID;\n\n\t\t\t\t\tif ( relationships.parents.length > 1 ) console.warn( 'THREE.FBXLoader: skeleton attached to more than one geometry is not supported.' );\n\t\t\t\t\tskeleton.geometryID = relationships.parents[ 0 ].ID;\n\n\t\t\t\t\tskeletons[ nodeID ] = skeleton;\n\n\t\t\t\t} else if ( deformerNode.attrType === 'BlendShape' ) {\n\n\t\t\t\t\tconst morphTarget = {\n\t\t\t\t\t\tid: nodeID,\n\t\t\t\t\t};\n\n\t\t\t\t\tmorphTarget.rawTargets = this.parseMorphTargets( relationships, DeformerNodes );\n\t\t\t\t\tmorphTarget.id = nodeID;\n\n\t\t\t\t\tif ( relationships.parents.length > 1 ) console.warn( 'THREE.FBXLoader: morph target attached to more than one geometry is not supported.' );\n\n\t\t\t\t\tmorphTargets[ nodeID ] = morphTarget;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn {\n\n\t\t\tskeletons: skeletons,\n\t\t\tmorphTargets: morphTargets,\n\n\t\t};\n\n\t}\n\n\t// Parse single nodes in FBXTree.Objects.Deformer\n\t// The top level skeleton node has type 'Skin' and sub nodes have type 'Cluster'\n\t// Each skin node represents a skeleton and each cluster node represents a bone\n\tparseSkeleton( relationships, deformerNodes ) {\n\n\t\tconst rawBones = [];\n\n\t\trelationships.children.forEach( function ( child ) {\n\n\t\t\tconst boneNode = deformerNodes[ child.ID ];\n\n\t\t\tif ( boneNode.attrType !== 'Cluster' ) return;\n\n\t\t\tconst rawBone = {\n\n\t\t\t\tID: child.ID,\n\t\t\t\tindices: [],\n\t\t\t\tweights: [],\n\t\t\t\ttransformLink: new Matrix4().fromArray( boneNode.TransformLink.a ),\n\t\t\t\t// transform: new Matrix4().fromArray( boneNode.Transform.a ),\n\t\t\t\t// linkMode: boneNode.Mode,\n\n\t\t\t};\n\n\t\t\tif ( 'Indexes' in boneNode ) {\n\n\t\t\t\trawBone.indices = boneNode.Indexes.a;\n\t\t\t\trawBone.weights = boneNode.Weights.a;\n\n\t\t\t}\n\n\t\t\trawBones.push( rawBone );\n\n\t\t} );\n\n\t\treturn {\n\n\t\t\trawBones: rawBones,\n\t\t\tbones: []\n\n\t\t};\n\n\t}\n\n\t// The top level morph deformer node has type \"BlendShape\" and sub nodes have type \"BlendShapeChannel\"\n\tparseMorphTargets( relationships, deformerNodes ) {\n\n\t\tconst rawMorphTargets = [];\n\n\t\tfor ( let i = 0; i < relationships.children.length; i ++ ) {\n\n\t\t\tconst child = relationships.children[ i ];\n\n\t\t\tconst morphTargetNode = deformerNodes[ child.ID ];\n\n\t\t\tconst rawMorphTarget = {\n\n\t\t\t\tname: morphTargetNode.attrName,\n\t\t\t\tinitialWeight: morphTargetNode.DeformPercent,\n\t\t\t\tid: morphTargetNode.id,\n\t\t\t\tfullWeights: morphTargetNode.FullWeights.a\n\n\t\t\t};\n\n\t\t\tif ( morphTargetNode.attrType !== 'BlendShapeChannel' ) return;\n\n\t\t\trawMorphTarget.geoID = connections.get( parseInt( child.ID ) ).children.filter( function ( child ) {\n\n\t\t\t\treturn child.relationship === undefined;\n\n\t\t\t} )[ 0 ].ID;\n\n\t\t\trawMorphTargets.push( rawMorphTarget );\n\n\t\t}\n\n\t\treturn rawMorphTargets;\n\n\t}\n\n\t// create the main Group() to be returned by the loader\n\tparseScene( deformers, geometryMap, materialMap ) {\n\n\t\tsceneGraph = new Group();\n\n\t\tconst modelMap = this.parseModels( deformers.skeletons, geometryMap, materialMap );\n\n\t\tconst modelNodes = fbxTree.Objects.Model;\n\n\t\tconst scope = this;\n\t\tmodelMap.forEach( function ( model ) {\n\n\t\t\tconst modelNode = modelNodes[ model.ID ];\n\t\t\tscope.setLookAtProperties( model, modelNode );\n\n\t\t\tconst parentConnections = connections.get( model.ID ).parents;\n\n\t\t\tparentConnections.forEach( function ( connection ) {\n\n\t\t\t\tconst parent = modelMap.get( connection.ID );\n\t\t\t\tif ( parent !== undefined ) parent.add( model );\n\n\t\t\t} );\n\n\t\t\tif ( model.parent === null ) {\n\n\t\t\t\tsceneGraph.add( model );\n\n\t\t\t}\n\n\n\t\t} );\n\n\t\tthis.bindSkeleton( deformers.skeletons, geometryMap, modelMap );\n\n\t\tthis.addGlobalSceneSettings();\n\n\t\tsceneGraph.traverse( function ( node ) {\n\n\t\t\tif ( node.userData.transformData ) {\n\n\t\t\t\tif ( node.parent ) {\n\n\t\t\t\t\tnode.userData.transformData.parentMatrix = node.parent.matrix;\n\t\t\t\t\tnode.userData.transformData.parentMatrixWorld = node.parent.matrixWorld;\n\n\t\t\t\t}\n\n\t\t\t\tconst transform = generateTransform( node.userData.transformData );\n\n\t\t\t\tnode.applyMatrix4( transform );\n\t\t\t\tnode.updateWorldMatrix();\n\n\t\t\t}\n\n\t\t} );\n\n\t\tconst animations = new AnimationParser().parse();\n\n\t\t// if all the models where already combined in a single group, just return that\n\t\tif ( sceneGraph.children.length === 1 && sceneGraph.children[ 0 ].isGroup ) {\n\n\t\t\tsceneGraph.children[ 0 ].animations = animations;\n\t\t\tsceneGraph = sceneGraph.children[ 0 ];\n\n\t\t}\n\n\t\tsceneGraph.animations = animations;\n\n\t}\n\n\t// parse nodes in FBXTree.Objects.Model\n\tparseModels( skeletons, geometryMap, materialMap ) {\n\n\t\tconst modelMap = new Map();\n\t\tconst modelNodes = fbxTree.Objects.Model;\n\n\t\tfor ( const nodeID in modelNodes ) {\n\n\t\t\tconst id = parseInt( nodeID );\n\t\t\tconst node = modelNodes[ nodeID ];\n\t\t\tconst relationships = connections.get( id );\n\n\t\t\tlet model = this.buildSkeleton( relationships, skeletons, id, node.attrName );\n\n\t\t\tif ( ! model ) {\n\n\t\t\t\tswitch ( node.attrType ) {\n\n\t\t\t\t\tcase 'Camera':\n\t\t\t\t\t\tmodel = this.createCamera( relationships );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'Light':\n\t\t\t\t\t\tmodel = this.createLight( relationships );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'Mesh':\n\t\t\t\t\t\tmodel = this.createMesh( relationships, geometryMap, materialMap );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'NurbsCurve':\n\t\t\t\t\t\tmodel = this.createCurve( relationships, geometryMap );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'LimbNode':\n\t\t\t\t\tcase 'Root':\n\t\t\t\t\t\tmodel = new Bone();\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'Null':\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tmodel = new Group();\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t}\n\n\t\t\t\tmodel.name = node.attrName ? PropertyBinding.sanitizeNodeName( node.attrName ) : '';\n\t\t\t\tmodel.userData.originalName = node.attrName;\n\n\t\t\t\tmodel.ID = id;\n\n\t\t\t}\n\n\t\t\tthis.getTransformData( model, node );\n\t\t\tmodelMap.set( id, model );\n\n\t\t}\n\n\t\treturn modelMap;\n\n\t}\n\n\tbuildSkeleton( relationships, skeletons, id, name ) {\n\n\t\tlet bone = null;\n\n\t\trelationships.parents.forEach( function ( parent ) {\n\n\t\t\tfor ( const ID in skeletons ) {\n\n\t\t\t\tconst skeleton = skeletons[ ID ];\n\n\t\t\t\tskeleton.rawBones.forEach( function ( rawBone, i ) {\n\n\t\t\t\t\tif ( rawBone.ID === parent.ID ) {\n\n\t\t\t\t\t\tconst subBone = bone;\n\t\t\t\t\t\tbone = new Bone();\n\n\t\t\t\t\t\tbone.matrixWorld.copy( rawBone.transformLink );\n\n\t\t\t\t\t\t// set name and id here - otherwise in cases where \"subBone\" is created it will not have a name / id\n\n\t\t\t\t\t\tbone.name = name ? PropertyBinding.sanitizeNodeName( name ) : '';\n\t\t\t\t\t\tbone.userData.originalName = name;\n\t\t\t\t\t\tbone.ID = id;\n\n\t\t\t\t\t\tskeleton.bones[ i ] = bone;\n\n\t\t\t\t\t\t// In cases where a bone is shared between multiple meshes\n\t\t\t\t\t\t// duplicate the bone here and and it as a child of the first bone\n\t\t\t\t\t\tif ( subBone !== null ) {\n\n\t\t\t\t\t\t\tbone.add( subBone );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t} );\n\n\t\treturn bone;\n\n\t}\n\n\t// create a PerspectiveCamera or OrthographicCamera\n\tcreateCamera( relationships ) {\n\n\t\tlet model;\n\t\tlet cameraAttribute;\n\n\t\trelationships.children.forEach( function ( child ) {\n\n\t\t\tconst attr = fbxTree.Objects.NodeAttribute[ child.ID ];\n\n\t\t\tif ( attr !== undefined ) {\n\n\t\t\t\tcameraAttribute = attr;\n\n\t\t\t}\n\n\t\t} );\n\n\t\tif ( cameraAttribute === undefined ) {\n\n\t\t\tmodel = new Object3D();\n\n\t\t} else {\n\n\t\t\tlet type = 0;\n\t\t\tif ( cameraAttribute.CameraProjectionType !== undefined && cameraAttribute.CameraProjectionType.value === 1 ) {\n\n\t\t\t\ttype = 1;\n\n\t\t\t}\n\n\t\t\tlet nearClippingPlane = 1;\n\t\t\tif ( cameraAttribute.NearPlane !== undefined ) {\n\n\t\t\t\tnearClippingPlane = cameraAttribute.NearPlane.value / 1000;\n\n\t\t\t}\n\n\t\t\tlet farClippingPlane = 1000;\n\t\t\tif ( cameraAttribute.FarPlane !== undefined ) {\n\n\t\t\t\tfarClippingPlane = cameraAttribute.FarPlane.value / 1000;\n\n\t\t\t}\n\n\n\t\t\tlet width = window.innerWidth;\n\t\t\tlet height = window.innerHeight;\n\n\t\t\tif ( cameraAttribute.AspectWidth !== undefined && cameraAttribute.AspectHeight !== undefined ) {\n\n\t\t\t\twidth = cameraAttribute.AspectWidth.value;\n\t\t\t\theight = cameraAttribute.AspectHeight.value;\n\n\t\t\t}\n\n\t\t\tconst aspect = width / height;\n\n\t\t\tlet fov = 45;\n\t\t\tif ( cameraAttribute.FieldOfView !== undefined ) {\n\n\t\t\t\tfov = cameraAttribute.FieldOfView.value;\n\n\t\t\t}\n\n\t\t\tconst focalLength = cameraAttribute.FocalLength ? cameraAttribute.FocalLength.value : null;\n\n\t\t\tswitch ( type ) {\n\n\t\t\t\tcase 0: // Perspective\n\t\t\t\t\tmodel = new PerspectiveCamera( fov, aspect, nearClippingPlane, farClippingPlane );\n\t\t\t\t\tif ( focalLength !== null ) model.setFocalLength( focalLength );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 1: // Orthographic\n\t\t\t\t\tconsole.warn( 'THREE.FBXLoader: Orthographic cameras not supported yet.' );\n\t\t\t\t\tmodel = new Object3D();\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\t\t\t\t\tconsole.warn( 'THREE.FBXLoader: Unknown camera type ' + type + '.' );\n\t\t\t\t\tmodel = new Object3D();\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn model;\n\n\t}\n\n\t// Create a DirectionalLight, PointLight or SpotLight\n\tcreateLight( relationships ) {\n\n\t\tlet model;\n\t\tlet lightAttribute;\n\n\t\trelationships.children.forEach( function ( child ) {\n\n\t\t\tconst attr = fbxTree.Objects.NodeAttribute[ child.ID ];\n\n\t\t\tif ( attr !== undefined ) {\n\n\t\t\t\tlightAttribute = attr;\n\n\t\t\t}\n\n\t\t} );\n\n\t\tif ( lightAttribute === undefined ) {\n\n\t\t\tmodel = new Object3D();\n\n\t\t} else {\n\n\t\t\tlet type;\n\n\t\t\t// LightType can be undefined for Point lights\n\t\t\tif ( lightAttribute.LightType === undefined ) {\n\n\t\t\t\ttype = 0;\n\n\t\t\t} else {\n\n\t\t\t\ttype = lightAttribute.LightType.value;\n\n\t\t\t}\n\n\t\t\tlet color = 0xffffff;\n\n\t\t\tif ( lightAttribute.Color !== undefined ) {\n\n\t\t\t\tcolor = ColorManagement.toWorkingColorSpace( new Color().fromArray( lightAttribute.Color.value ), SRGBColorSpace );\n\n\t\t\t}\n\n\t\t\tlet intensity = ( lightAttribute.Intensity === undefined ) ? 1 : lightAttribute.Intensity.value / 100;\n\n\t\t\t// light disabled\n\t\t\tif ( lightAttribute.CastLightOnObject !== undefined && lightAttribute.CastLightOnObject.value === 0 ) {\n\n\t\t\t\tintensity = 0;\n\n\t\t\t}\n\n\t\t\tlet distance = 0;\n\t\t\tif ( lightAttribute.FarAttenuationEnd !== undefined ) {\n\n\t\t\t\tif ( lightAttribute.EnableFarAttenuation !== undefined && lightAttribute.EnableFarAttenuation.value === 0 ) {\n\n\t\t\t\t\tdistance = 0;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tdistance = lightAttribute.FarAttenuationEnd.value;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// TODO: could this be calculated linearly from FarAttenuationStart to FarAttenuationEnd?\n\t\t\tconst decay = 1;\n\n\t\t\tswitch ( type ) {\n\n\t\t\t\tcase 0: // Point\n\t\t\t\t\tmodel = new PointLight( color, intensity, distance, decay );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 1: // Directional\n\t\t\t\t\tmodel = new DirectionalLight( color, intensity );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 2: // Spot\n\t\t\t\t\tlet angle = Math.PI / 3;\n\n\t\t\t\t\tif ( lightAttribute.InnerAngle !== undefined ) {\n\n\t\t\t\t\t\tangle = MathUtils.degToRad( lightAttribute.InnerAngle.value );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tlet penumbra = 0;\n\t\t\t\t\tif ( lightAttribute.OuterAngle !== undefined ) {\n\n\t\t\t\t\t\t// TODO: this is not correct - FBX calculates outer and inner angle in degrees\n\t\t\t\t\t\t// with OuterAngle > InnerAngle && OuterAngle <= Math.PI\n\t\t\t\t\t\t// while three.js uses a penumbra between (0, 1) to attenuate the inner angle\n\t\t\t\t\t\tpenumbra = MathUtils.degToRad( lightAttribute.OuterAngle.value );\n\t\t\t\t\t\tpenumbra = Math.max( penumbra, 1 );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tmodel = new SpotLight( color, intensity, distance, angle, penumbra, decay );\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\t\t\t\t\tconsole.warn( 'THREE.FBXLoader: Unknown light type ' + lightAttribute.LightType.value + ', defaulting to a PointLight.' );\n\t\t\t\t\tmodel = new PointLight( color, intensity );\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t\tif ( lightAttribute.CastShadows !== undefined && lightAttribute.CastShadows.value === 1 ) {\n\n\t\t\t\tmodel.castShadow = true;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn model;\n\n\t}\n\n\tcreateMesh( relationships, geometryMap, materialMap ) {\n\n\t\tlet model;\n\t\tlet geometry = null;\n\t\tlet material = null;\n\t\tconst materials = [];\n\n\t\t// get geometry and materials(s) from connections\n\t\trelationships.children.forEach( function ( child ) {\n\n\t\t\tif ( geometryMap.has( child.ID ) ) {\n\n\t\t\t\tgeometry = geometryMap.get( child.ID );\n\n\t\t\t}\n\n\t\t\tif ( materialMap.has( child.ID ) ) {\n\n\t\t\t\tmaterials.push( materialMap.get( child.ID ) );\n\n\t\t\t}\n\n\t\t} );\n\n\t\tif ( materials.length > 1 ) {\n\n\t\t\tmaterial = materials;\n\n\t\t} else if ( materials.length > 0 ) {\n\n\t\t\tmaterial = materials[ 0 ];\n\n\t\t} else {\n\n\t\t\tmaterial = new MeshPhongMaterial( {\n\t\t\t\tname: Loader.DEFAULT_MATERIAL_NAME,\n\t\t\t\tcolor: 0xcccccc\n\t\t\t} );\n\t\t\tmaterials.push( material );\n\n\t\t}\n\n\t\tif ( 'color' in geometry.attributes ) {\n\n\t\t\tmaterials.forEach( function ( material ) {\n\n\t\t\t\tmaterial.vertexColors = true;\n\n\t\t\t} );\n\n\t\t}\n\n\t\tif ( geometry.FBX_Deformer ) {\n\n\t\t\tmodel = new SkinnedMesh( geometry, material );\n\t\t\tmodel.normalizeSkinWeights();\n\n\t\t} else {\n\n\t\t\tmodel = new Mesh( geometry, material );\n\n\t\t}\n\n\t\treturn model;\n\n\t}\n\n\tcreateCurve( relationships, geometryMap ) {\n\n\t\tconst geometry = relationships.children.reduce( function ( geo, child ) {\n\n\t\t\tif ( geometryMap.has( child.ID ) ) geo = geometryMap.get( child.ID );\n\n\t\t\treturn geo;\n\n\t\t}, null );\n\n\t\t// FBX does not list materials for Nurbs lines, so we'll just put our own in here.\n\t\tconst material = new LineBasicMaterial( {\n\t\t\tname: Loader.DEFAULT_MATERIAL_NAME,\n\t\t\tcolor: 0x3300ff,\n\t\t\tlinewidth: 1\n\t\t} );\n\t\treturn new Line( geometry, material );\n\n\t}\n\n\t// parse the model node for transform data\n\tgetTransformData( model, modelNode ) {\n\n\t\tconst transformData = {};\n\n\t\tif ( 'InheritType' in modelNode ) transformData.inheritType = parseInt( modelNode.InheritType.value );\n\n\t\tif ( 'RotationOrder' in modelNode ) transformData.eulerOrder = getEulerOrder( modelNode.RotationOrder.value );\n\t\telse transformData.eulerOrder = getEulerOrder( 0 );\n\n\t\tif ( 'Lcl_Translation' in modelNode ) transformData.translation = modelNode.Lcl_Translation.value;\n\n\t\tif ( 'PreRotation' in modelNode ) transformData.preRotation = modelNode.PreRotation.value;\n\t\tif ( 'Lcl_Rotation' in modelNode ) transformData.rotation = modelNode.Lcl_Rotation.value;\n\t\tif ( 'PostRotation' in modelNode ) transformData.postRotation = modelNode.PostRotation.value;\n\n\t\tif ( 'Lcl_Scaling' in modelNode ) transformData.scale = modelNode.Lcl_Scaling.value;\n\n\t\tif ( 'ScalingOffset' in modelNode ) transformData.scalingOffset = modelNode.ScalingOffset.value;\n\t\tif ( 'ScalingPivot' in modelNode ) transformData.scalingPivot = modelNode.ScalingPivot.value;\n\n\t\tif ( 'RotationOffset' in modelNode ) transformData.rotationOffset = modelNode.RotationOffset.value;\n\t\tif ( 'RotationPivot' in modelNode ) transformData.rotationPivot = modelNode.RotationPivot.value;\n\n\t\tmodel.userData.transformData = transformData;\n\n\t}\n\n\tsetLookAtProperties( model, modelNode ) {\n\n\t\tif ( 'LookAtProperty' in modelNode ) {\n\n\t\t\tconst children = connections.get( model.ID ).children;\n\n\t\t\tchildren.forEach( function ( child ) {\n\n\t\t\t\tif ( child.relationship === 'LookAtProperty' ) {\n\n\t\t\t\t\tconst lookAtTarget = fbxTree.Objects.Model[ child.ID ];\n\n\t\t\t\t\tif ( 'Lcl_Translation' in lookAtTarget ) {\n\n\t\t\t\t\t\tconst pos = lookAtTarget.Lcl_Translation.value;\n\n\t\t\t\t\t\t// DirectionalLight, SpotLight\n\t\t\t\t\t\tif ( model.target !== undefined ) {\n\n\t\t\t\t\t\t\tmodel.target.position.fromArray( pos );\n\t\t\t\t\t\t\tsceneGraph.add( model.target );\n\n\t\t\t\t\t\t} else { // Cameras and other Object3Ds\n\n\t\t\t\t\t\t\tmodel.lookAt( new Vector3().fromArray( pos ) );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t}\n\n\t}\n\n\tbindSkeleton( skeletons, geometryMap, modelMap ) {\n\n\t\tconst bindMatrices = this.parsePoseNodes();\n\n\t\tfor ( const ID in skeletons ) {\n\n\t\t\tconst skeleton = skeletons[ ID ];\n\n\t\t\tconst parents = connections.get( parseInt( skeleton.ID ) ).parents;\n\n\t\t\tparents.forEach( function ( parent ) {\n\n\t\t\t\tif ( geometryMap.has( parent.ID ) ) {\n\n\t\t\t\t\tconst geoID = parent.ID;\n\t\t\t\t\tconst geoRelationships = connections.get( geoID );\n\n\t\t\t\t\tgeoRelationships.parents.forEach( function ( geoConnParent ) {\n\n\t\t\t\t\t\tif ( modelMap.has( geoConnParent.ID ) ) {\n\n\t\t\t\t\t\t\tconst model = modelMap.get( geoConnParent.ID );\n\n\t\t\t\t\t\t\tmodel.bind( new Skeleton( skeleton.bones ), bindMatrices[ geoConnParent.ID ] );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t}\n\n\t}\n\n\tparsePoseNodes() {\n\n\t\tconst bindMatrices = {};\n\n\t\tif ( 'Pose' in fbxTree.Objects ) {\n\n\t\t\tconst BindPoseNode = fbxTree.Objects.Pose;\n\n\t\t\tfor ( const nodeID in BindPoseNode ) {\n\n\t\t\t\tif ( BindPoseNode[ nodeID ].attrType === 'BindPose' && BindPoseNode[ nodeID ].NbPoseNodes > 0 ) {\n\n\t\t\t\t\tconst poseNodes = BindPoseNode[ nodeID ].PoseNode;\n\n\t\t\t\t\tif ( Array.isArray( poseNodes ) ) {\n\n\t\t\t\t\t\tposeNodes.forEach( function ( poseNode ) {\n\n\t\t\t\t\t\t\tbindMatrices[ poseNode.Node ] = new Matrix4().fromArray( poseNode.Matrix.a );\n\n\t\t\t\t\t\t} );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tbindMatrices[ poseNodes.Node ] = new Matrix4().fromArray( poseNodes.Matrix.a );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn bindMatrices;\n\n\t}\n\n\taddGlobalSceneSettings() {\n\n\t\tif ( 'GlobalSettings' in fbxTree ) {\n\n\t\t\tif ( 'AmbientColor' in fbxTree.GlobalSettings ) {\n\n\t\t\t\t// Parse ambient color - if it's not set to black (default), create an ambient light\n\n\t\t\t\tconst ambientColor = fbxTree.GlobalSettings.AmbientColor.value;\n\t\t\t\tconst r = ambientColor[ 0 ];\n\t\t\t\tconst g = ambientColor[ 1 ];\n\t\t\t\tconst b = ambientColor[ 2 ];\n\n\t\t\t\tif ( r !== 0 || g !== 0 || b !== 0 ) {\n\n\t\t\t\t\tconst color = new Color().setRGB( r, g, b, SRGBColorSpace );\n\t\t\t\t\tsceneGraph.add( new AmbientLight( color, 1 ) );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( 'UnitScaleFactor' in fbxTree.GlobalSettings ) {\n\n\t\t\t\tsceneGraph.userData.unitScaleFactor = fbxTree.GlobalSettings.UnitScaleFactor.value;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n\n// parse Geometry data from FBXTree and return map of BufferGeometries\nclass GeometryParser {\n\n\tconstructor() {\n\n\t\tthis.negativeMaterialIndices = false;\n\n\t}\n\n\t// Parse nodes in FBXTree.Objects.Geometry\n\tparse( deformers ) {\n\n\t\tconst geometryMap = new Map();\n\n\t\tif ( 'Geometry' in fbxTree.Objects ) {\n\n\t\t\tconst geoNodes = fbxTree.Objects.Geometry;\n\n\t\t\tfor ( const nodeID in geoNodes ) {\n\n\t\t\t\tconst relationships = connections.get( parseInt( nodeID ) );\n\t\t\t\tconst geo = this.parseGeometry( relationships, geoNodes[ nodeID ], deformers );\n\n\t\t\t\tgeometryMap.set( parseInt( nodeID ), geo );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// report warnings\n\n\t\tif ( this.negativeMaterialIndices === true ) {\n\n\t\t\tconsole.warn( 'THREE.FBXLoader: The FBX file contains invalid (negative) material indices. The asset might not render as expected.' );\n\n\t\t}\n\n\t\treturn geometryMap;\n\n\t}\n\n\t// Parse single node in FBXTree.Objects.Geometry\n\tparseGeometry( relationships, geoNode, deformers ) {\n\n\t\tswitch ( geoNode.attrType ) {\n\n\t\t\tcase 'Mesh':\n\t\t\t\treturn this.parseMeshGeometry( relationships, geoNode, deformers );\n\t\t\t\tbreak;\n\n\t\t\tcase 'NurbsCurve':\n\t\t\t\treturn this.parseNurbsGeometry( geoNode );\n\t\t\t\tbreak;\n\n\t\t}\n\n\t}\n\n\t// Parse single node mesh geometry in FBXTree.Objects.Geometry\n\tparseMeshGeometry( relationships, geoNode, deformers ) {\n\n\t\tconst skeletons = deformers.skeletons;\n\t\tconst morphTargets = [];\n\n\t\tconst modelNodes = relationships.parents.map( function ( parent ) {\n\n\t\t\treturn fbxTree.Objects.Model[ parent.ID ];\n\n\t\t} );\n\n\t\t// don't create geometry if it is not associated with any models\n\t\tif ( modelNodes.length === 0 ) return;\n\n\t\tconst skeleton = relationships.children.reduce( function ( skeleton, child ) {\n\n\t\t\tif ( skeletons[ child.ID ] !== undefined ) skeleton = skeletons[ child.ID ];\n\n\t\t\treturn skeleton;\n\n\t\t}, null );\n\n\t\trelationships.children.forEach( function ( child ) {\n\n\t\t\tif ( deformers.morphTargets[ child.ID ] !== undefined ) {\n\n\t\t\t\tmorphTargets.push( deformers.morphTargets[ child.ID ] );\n\n\t\t\t}\n\n\t\t} );\n\n\t\t// Assume one model and get the preRotation from that\n\t\t// if there is more than one model associated with the geometry this may cause problems\n\t\tconst modelNode = modelNodes[ 0 ];\n\n\t\tconst transformData = {};\n\n\t\tif ( 'RotationOrder' in modelNode ) transformData.eulerOrder = getEulerOrder( modelNode.RotationOrder.value );\n\t\tif ( 'InheritType' in modelNode ) transformData.inheritType = parseInt( modelNode.InheritType.value );\n\n\t\tif ( 'GeometricTranslation' in modelNode ) transformData.translation = modelNode.GeometricTranslation.value;\n\t\tif ( 'GeometricRotation' in modelNode ) transformData.rotation = modelNode.GeometricRotation.value;\n\t\tif ( 'GeometricScaling' in modelNode ) transformData.scale = modelNode.GeometricScaling.value;\n\n\t\tconst transform = generateTransform( transformData );\n\n\t\treturn this.genGeometry( geoNode, skeleton, morphTargets, transform );\n\n\t}\n\n\t// Generate a BufferGeometry from a node in FBXTree.Objects.Geometry\n\tgenGeometry( geoNode, skeleton, morphTargets, preTransform ) {\n\n\t\tconst geo = new BufferGeometry();\n\t\tif ( geoNode.attrName ) geo.name = geoNode.attrName;\n\n\t\tconst geoInfo = this.parseGeoNode( geoNode, skeleton );\n\t\tconst buffers = this.genBuffers( geoInfo );\n\n\t\tconst positionAttribute = new Float32BufferAttribute( buffers.vertex, 3 );\n\n\t\tpositionAttribute.applyMatrix4( preTransform );\n\n\t\tgeo.setAttribute( 'position', positionAttribute );\n\n\t\tif ( buffers.colors.length > 0 ) {\n\n\t\t\tgeo.setAttribute( 'color', new Float32BufferAttribute( buffers.colors, 3 ) );\n\n\t\t}\n\n\t\tif ( skeleton ) {\n\n\t\t\tgeo.setAttribute( 'skinIndex', new Uint16BufferAttribute( buffers.weightsIndices, 4 ) );\n\n\t\t\tgeo.setAttribute( 'skinWeight', new Float32BufferAttribute( buffers.vertexWeights, 4 ) );\n\n\t\t\t// used later to bind the skeleton to the model\n\t\t\tgeo.FBX_Deformer = skeleton;\n\n\t\t}\n\n\t\tif ( buffers.normal.length > 0 ) {\n\n\t\t\tconst normalMatrix = new Matrix3().getNormalMatrix( preTransform );\n\n\t\t\tconst normalAttribute = new Float32BufferAttribute( buffers.normal, 3 );\n\t\t\tnormalAttribute.applyNormalMatrix( normalMatrix );\n\n\t\t\tgeo.setAttribute( 'normal', normalAttribute );\n\n\t\t}\n\n\t\tbuffers.uvs.forEach( function ( uvBuffer, i ) {\n\n\t\t\tconst name = i === 0 ? 'uv' : `uv${ i }`;\n\n\t\t\tgeo.setAttribute( name, new Float32BufferAttribute( buffers.uvs[ i ], 2 ) );\n\n\t\t} );\n\n\t\tif ( geoInfo.material && geoInfo.material.mappingType !== 'AllSame' ) {\n\n\t\t\t// Convert the material indices of each vertex into rendering groups on the geometry.\n\t\t\tlet prevMaterialIndex = buffers.materialIndex[ 0 ];\n\t\t\tlet startIndex = 0;\n\n\t\t\tbuffers.materialIndex.forEach( function ( currentIndex, i ) {\n\n\t\t\t\tif ( currentIndex !== prevMaterialIndex ) {\n\n\t\t\t\t\tgeo.addGroup( startIndex, i - startIndex, prevMaterialIndex );\n\n\t\t\t\t\tprevMaterialIndex = currentIndex;\n\t\t\t\t\tstartIndex = i;\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t\t// the loop above doesn't add the last group, do that here.\n\t\t\tif ( geo.groups.length > 0 ) {\n\n\t\t\t\tconst lastGroup = geo.groups[ geo.groups.length - 1 ];\n\t\t\t\tconst lastIndex = lastGroup.start + lastGroup.count;\n\n\t\t\t\tif ( lastIndex !== buffers.materialIndex.length ) {\n\n\t\t\t\t\tgeo.addGroup( lastIndex, buffers.materialIndex.length - lastIndex, prevMaterialIndex );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// case where there are multiple materials but the whole geometry is only\n\t\t\t// using one of them\n\t\t\tif ( geo.groups.length === 0 ) {\n\n\t\t\t\tgeo.addGroup( 0, buffers.materialIndex.length, buffers.materialIndex[ 0 ] );\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis.addMorphTargets( geo, geoNode, morphTargets, preTransform );\n\n\t\treturn geo;\n\n\t}\n\n\tparseGeoNode( geoNode, skeleton ) {\n\n\t\tconst geoInfo = {};\n\n\t\tgeoInfo.vertexPositions = ( geoNode.Vertices !== undefined ) ? geoNode.Vertices.a : [];\n\t\tgeoInfo.vertexIndices = ( geoNode.PolygonVertexIndex !== undefined ) ? geoNode.PolygonVertexIndex.a : [];\n\n\t\tif ( geoNode.LayerElementColor ) {\n\n\t\t\tgeoInfo.color = this.parseVertexColors( geoNode.LayerElementColor[ 0 ] );\n\n\t\t}\n\n\t\tif ( geoNode.LayerElementMaterial ) {\n\n\t\t\tgeoInfo.material = this.parseMaterialIndices( geoNode.LayerElementMaterial[ 0 ] );\n\n\t\t}\n\n\t\tif ( geoNode.LayerElementNormal ) {\n\n\t\t\tgeoInfo.normal = this.parseNormals( geoNode.LayerElementNormal[ 0 ] );\n\n\t\t}\n\n\t\tif ( geoNode.LayerElementUV ) {\n\n\t\t\tgeoInfo.uv = [];\n\n\t\t\tlet i = 0;\n\t\t\twhile ( geoNode.LayerElementUV[ i ] ) {\n\n\t\t\t\tif ( geoNode.LayerElementUV[ i ].UV ) {\n\n\t\t\t\t\tgeoInfo.uv.push( this.parseUVs( geoNode.LayerElementUV[ i ] ) );\n\n\t\t\t\t}\n\n\t\t\t\ti ++;\n\n\t\t\t}\n\n\t\t}\n\n\t\tgeoInfo.weightTable = {};\n\n\t\tif ( skeleton !== null ) {\n\n\t\t\tgeoInfo.skeleton = skeleton;\n\n\t\t\tskeleton.rawBones.forEach( function ( rawBone, i ) {\n\n\t\t\t\t// loop over the bone's vertex indices and weights\n\t\t\t\trawBone.indices.forEach( function ( index, j ) {\n\n\t\t\t\t\tif ( geoInfo.weightTable[ index ] === undefined ) geoInfo.weightTable[ index ] = [];\n\n\t\t\t\t\tgeoInfo.weightTable[ index ].push( {\n\n\t\t\t\t\t\tid: i,\n\t\t\t\t\t\tweight: rawBone.weights[ j ],\n\n\t\t\t\t\t} );\n\n\t\t\t\t} );\n\n\t\t\t} );\n\n\t\t}\n\n\t\treturn geoInfo;\n\n\t}\n\n\tgenBuffers( geoInfo ) {\n\n\t\tconst buffers = {\n\t\t\tvertex: [],\n\t\t\tnormal: [],\n\t\t\tcolors: [],\n\t\t\tuvs: [],\n\t\t\tmaterialIndex: [],\n\t\t\tvertexWeights: [],\n\t\t\tweightsIndices: [],\n\t\t};\n\n\t\tlet polygonIndex = 0;\n\t\tlet faceLength = 0;\n\t\tlet displayedWeightsWarning = false;\n\n\t\t// these will hold data for a single face\n\t\tlet facePositionIndexes = [];\n\t\tlet faceNormals = [];\n\t\tlet faceColors = [];\n\t\tlet faceUVs = [];\n\t\tlet faceWeights = [];\n\t\tlet faceWeightIndices = [];\n\n\t\tconst scope = this;\n\t\tgeoInfo.vertexIndices.forEach( function ( vertexIndex, polygonVertexIndex ) {\n\n\t\t\tlet materialIndex;\n\t\t\tlet endOfFace = false;\n\n\t\t\t// Face index and vertex index arrays are combined in a single array\n\t\t\t// A cube with quad faces looks like this:\n\t\t\t// PolygonVertexIndex: *24 {\n\t\t\t// a: 0, 1, 3, -3, 2, 3, 5, -5, 4, 5, 7, -7, 6, 7, 1, -1, 1, 7, 5, -4, 6, 0, 2, -5\n\t\t\t// }\n\t\t\t// Negative numbers mark the end of a face - first face here is 0, 1, 3, -3\n\t\t\t// to find index of last vertex bit shift the index: ^ - 1\n\t\t\tif ( vertexIndex < 0 ) {\n\n\t\t\t\tvertexIndex = vertexIndex ^ - 1; // equivalent to ( x * -1 ) - 1\n\t\t\t\tendOfFace = true;\n\n\t\t\t}\n\n\t\t\tlet weightIndices = [];\n\t\t\tlet weights = [];\n\n\t\t\tfacePositionIndexes.push( vertexIndex * 3, vertexIndex * 3 + 1, vertexIndex * 3 + 2 );\n\n\t\t\tif ( geoInfo.color ) {\n\n\t\t\t\tconst data = getData( polygonVertexIndex, polygonIndex, vertexIndex, geoInfo.color );\n\n\t\t\t\tfaceColors.push( data[ 0 ], data[ 1 ], data[ 2 ] );\n\n\t\t\t}\n\n\t\t\tif ( geoInfo.skeleton ) {\n\n\t\t\t\tif ( geoInfo.weightTable[ vertexIndex ] !== undefined ) {\n\n\t\t\t\t\tgeoInfo.weightTable[ vertexIndex ].forEach( function ( wt ) {\n\n\t\t\t\t\t\tweights.push( wt.weight );\n\t\t\t\t\t\tweightIndices.push( wt.id );\n\n\t\t\t\t\t} );\n\n\n\t\t\t\t}\n\n\t\t\t\tif ( weights.length > 4 ) {\n\n\t\t\t\t\tif ( ! displayedWeightsWarning ) {\n\n\t\t\t\t\t\tconsole.warn( 'THREE.FBXLoader: Vertex has more than 4 skinning weights assigned to vertex. Deleting additional weights.' );\n\t\t\t\t\t\tdisplayedWeightsWarning = true;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tconst wIndex = [ 0, 0, 0, 0 ];\n\t\t\t\t\tconst Weight = [ 0, 0, 0, 0 ];\n\n\t\t\t\t\tweights.forEach( function ( weight, weightIndex ) {\n\n\t\t\t\t\t\tlet currentWeight = weight;\n\t\t\t\t\t\tlet currentIndex = weightIndices[ weightIndex ];\n\n\t\t\t\t\t\tWeight.forEach( function ( comparedWeight, comparedWeightIndex, comparedWeightArray ) {\n\n\t\t\t\t\t\t\tif ( currentWeight > comparedWeight ) {\n\n\t\t\t\t\t\t\t\tcomparedWeightArray[ comparedWeightIndex ] = currentWeight;\n\t\t\t\t\t\t\t\tcurrentWeight = comparedWeight;\n\n\t\t\t\t\t\t\t\tconst tmp = wIndex[ comparedWeightIndex ];\n\t\t\t\t\t\t\t\twIndex[ comparedWeightIndex ] = currentIndex;\n\t\t\t\t\t\t\t\tcurrentIndex = tmp;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} );\n\n\t\t\t\t\t} );\n\n\t\t\t\t\tweightIndices = wIndex;\n\t\t\t\t\tweights = Weight;\n\n\t\t\t\t}\n\n\t\t\t\t// if the weight array is shorter than 4 pad with 0s\n\t\t\t\twhile ( weights.length < 4 ) {\n\n\t\t\t\t\tweights.push( 0 );\n\t\t\t\t\tweightIndices.push( 0 );\n\n\t\t\t\t}\n\n\t\t\t\tfor ( let i = 0; i < 4; ++ i ) {\n\n\t\t\t\t\tfaceWeights.push( weights[ i ] );\n\t\t\t\t\tfaceWeightIndices.push( weightIndices[ i ] );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( geoInfo.normal ) {\n\n\t\t\t\tconst data = getData( polygonVertexIndex, polygonIndex, vertexIndex, geoInfo.normal );\n\n\t\t\t\tfaceNormals.push( data[ 0 ], data[ 1 ], data[ 2 ] );\n\n\t\t\t}\n\n\t\t\tif ( geoInfo.material && geoInfo.material.mappingType !== 'AllSame' ) {\n\n\t\t\t\tmaterialIndex = getData( polygonVertexIndex, polygonIndex, vertexIndex, geoInfo.material )[ 0 ];\n\n\t\t\t\tif ( materialIndex < 0 ) {\n\n\t\t\t\t\tscope.negativeMaterialIndices = true;\n\t\t\t\t\tmaterialIndex = 0; // fallback\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( geoInfo.uv ) {\n\n\t\t\t\tgeoInfo.uv.forEach( function ( uv, i ) {\n\n\t\t\t\t\tconst data = getData( polygonVertexIndex, polygonIndex, vertexIndex, uv );\n\n\t\t\t\t\tif ( faceUVs[ i ] === undefined ) {\n\n\t\t\t\t\t\tfaceUVs[ i ] = [];\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfaceUVs[ i ].push( data[ 0 ] );\n\t\t\t\t\tfaceUVs[ i ].push( data[ 1 ] );\n\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t\tfaceLength ++;\n\n\t\t\tif ( endOfFace ) {\n\n\t\t\t\tscope.genFace( buffers, geoInfo, facePositionIndexes, materialIndex, faceNormals, faceColors, faceUVs, faceWeights, faceWeightIndices, faceLength );\n\n\t\t\t\tpolygonIndex ++;\n\t\t\t\tfaceLength = 0;\n\n\t\t\t\t// reset arrays for the next face\n\t\t\t\tfacePositionIndexes = [];\n\t\t\t\tfaceNormals = [];\n\t\t\t\tfaceColors = [];\n\t\t\t\tfaceUVs = [];\n\t\t\t\tfaceWeights = [];\n\t\t\t\tfaceWeightIndices = [];\n\n\t\t\t}\n\n\t\t} );\n\n\t\treturn buffers;\n\n\t}\n\n\t// See https://www.khronos.org/opengl/wiki/Calculating_a_Surface_Normal\n\tgetNormalNewell( vertices ) {\n\n\t\tconst normal = new Vector3( 0.0, 0.0, 0.0 );\n\n\t\tfor ( let i = 0; i < vertices.length; i ++ ) {\n\n\t\t\tconst current = vertices[ i ];\n\t\t\tconst next = vertices[ ( i + 1 ) % vertices.length ];\n\n\t\t\tnormal.x += ( current.y - next.y ) * ( current.z + next.z );\n\t\t\tnormal.y += ( current.z - next.z ) * ( current.x + next.x );\n\t\t\tnormal.z += ( current.x - next.x ) * ( current.y + next.y );\n\n\t\t}\n\n\t\tnormal.normalize();\n\n\t\treturn normal;\n\n\t}\n\n\tgetNormalTangentAndBitangent( vertices ) {\n\n\t\tconst normalVector = this.getNormalNewell( vertices );\n\t\t// Avoid up being equal or almost equal to normalVector\n\t\tconst up = Math.abs( normalVector.z ) > 0.5 ? new Vector3( 0.0, 1.0, 0.0 ) : new Vector3( 0.0, 0.0, 1.0 );\n\t\tconst tangent = up.cross( normalVector ).normalize();\n\t\tconst bitangent = normalVector.clone().cross( tangent ).normalize();\n\n\t\treturn {\n\t\t\tnormal: normalVector,\n\t\t\ttangent: tangent,\n\t\t\tbitangent: bitangent\n\t\t};\n\n\t}\n\n\tflattenVertex( vertex, normalTangent, normalBitangent ) {\n\n\t\treturn new Vector2(\n\t\t\tvertex.dot( normalTangent ),\n\t\t\tvertex.dot( normalBitangent )\n\t\t);\n\n\t}\n\n\t// Generate data for a single face in a geometry. If the face is a quad then split it into 2 tris\n\tgenFace( buffers, geoInfo, facePositionIndexes, materialIndex, faceNormals, faceColors, faceUVs, faceWeights, faceWeightIndices, faceLength ) {\n\n\t\tlet triangles;\n\n\t\tif ( faceLength > 3 ) {\n\n\t\t\t// Triangulate n-gon using earcut\n\n\t\t\tconst vertices = [];\n\t\t\t// in morphing scenario vertexPositions represent morphPositions\n\t\t\t// while baseVertexPositions represent the original geometry's positions\n\t\t\tconst positions = geoInfo.baseVertexPositions || geoInfo.vertexPositions;\n\t\t\tfor ( let i = 0; i < facePositionIndexes.length; i += 3 ) {\n\n\t\t\t\tvertices.push(\n\t\t\t\t\tnew Vector3(\n\t\t\t\t\t\tpositions[ facePositionIndexes[ i ] ],\n\t\t\t\t\t\tpositions[ facePositionIndexes[ i + 1 ] ],\n\t\t\t\t\t\tpositions[ facePositionIndexes[ i + 2 ] ]\n\t\t\t\t\t)\n\t\t\t\t);\n\n\t\t\t}\n\n\t\t\tconst { tangent, bitangent } = this.getNormalTangentAndBitangent( vertices );\n\t\t\tconst triangulationInput = [];\n\n\t\t\tfor ( const vertex of vertices ) {\n\n\t\t\t\ttriangulationInput.push( this.flattenVertex( vertex, tangent, bitangent ) );\n\n\t\t\t}\n\n\t\t\t// When vertices is an array of [0,0,0] elements (which is the case for vertices not participating in morph)\n\t\t\t// the triangulationInput will be an array of [0,0] elements\n\t\t\t// resulting in an array of 0 triangles being returned from ShapeUtils.triangulateShape\n\t\t\t// leading to not pushing into buffers.vertex the redundant vertices (the vertices that are not morphed).\n\t\t\t// That's why, in order to support morphing scenario, \"positions\" is looking first for baseVertexPositions,\n\t\t\t// so that we don't end up with an array of 0 triangles for the faces not participating in morph.\n\t\t\ttriangles = ShapeUtils.triangulateShape( triangulationInput, [] );\n\n\t\t} else {\n\n\t\t\t// Regular triangle, skip earcut triangulation step\n\t\t\ttriangles = [[ 0, 1, 2 ]];\n\n\t\t}\n\n\t\tfor ( const [ i0, i1, i2 ] of triangles ) {\n\n\t\t\tbuffers.vertex.push( geoInfo.vertexPositions[ facePositionIndexes[ i0 * 3 ] ] );\n\t\t\tbuffers.vertex.push( geoInfo.vertexPositions[ facePositionIndexes[ i0 * 3 + 1 ] ] );\n\t\t\tbuffers.vertex.push( geoInfo.vertexPositions[ facePositionIndexes[ i0 * 3 + 2 ] ] );\n\n\t\t\tbuffers.vertex.push( geoInfo.vertexPositions[ facePositionIndexes[ i1 * 3 ] ] );\n\t\t\tbuffers.vertex.push( geoInfo.vertexPositions[ facePositionIndexes[ i1 * 3 + 1 ] ] );\n\t\t\tbuffers.vertex.push( geoInfo.vertexPositions[ facePositionIndexes[ i1 * 3 + 2 ] ] );\n\n\t\t\tbuffers.vertex.push( geoInfo.vertexPositions[ facePositionIndexes[ i2 * 3 ] ] );\n\t\t\tbuffers.vertex.push( geoInfo.vertexPositions[ facePositionIndexes[ i2 * 3 + 1 ] ] );\n\t\t\tbuffers.vertex.push( geoInfo.vertexPositions[ facePositionIndexes[ i2 * 3 + 2 ] ] );\n\n\t\t\tif ( geoInfo.skeleton ) {\n\n\t\t\t\tbuffers.vertexWeights.push( faceWeights[ i0 * 4 ] );\n\t\t\t\tbuffers.vertexWeights.push( faceWeights[ i0 * 4 + 1 ] );\n\t\t\t\tbuffers.vertexWeights.push( faceWeights[ i0 * 4 + 2 ] );\n\t\t\t\tbuffers.vertexWeights.push( faceWeights[ i0 * 4 + 3 ] );\n\n\t\t\t\tbuffers.vertexWeights.push( faceWeights[ i1 * 4 ] );\n\t\t\t\tbuffers.vertexWeights.push( faceWeights[ i1 * 4 + 1 ] );\n\t\t\t\tbuffers.vertexWeights.push( faceWeights[ i1 * 4 + 2 ] );\n\t\t\t\tbuffers.vertexWeights.push( faceWeights[ i1 * 4 + 3 ] );\n\n\t\t\t\tbuffers.vertexWeights.push( faceWeights[ i2 * 4 ] );\n\t\t\t\tbuffers.vertexWeights.push( faceWeights[ i2 * 4 + 1 ] );\n\t\t\t\tbuffers.vertexWeights.push( faceWeights[ i2 * 4 + 2 ] );\n\t\t\t\tbuffers.vertexWeights.push( faceWeights[ i2 * 4 + 3 ] );\n\n\t\t\t\tbuffers.weightsIndices.push( faceWeightIndices[ i0 * 4 ] );\n\t\t\t\tbuffers.weightsIndices.push( faceWeightIndices[ i0 * 4 + 1 ] );\n\t\t\t\tbuffers.weightsIndices.push( faceWeightIndices[ i0 * 4 + 2 ] );\n\t\t\t\tbuffers.weightsIndices.push( faceWeightIndices[ i0 * 4 + 3 ] );\n\n\t\t\t\tbuffers.weightsIndices.push( faceWeightIndices[ i1 * 4 ] );\n\t\t\t\tbuffers.weightsIndices.push( faceWeightIndices[ i1 * 4 + 1 ] );\n\t\t\t\tbuffers.weightsIndices.push( faceWeightIndices[ i1 * 4 + 2 ] );\n\t\t\t\tbuffers.weightsIndices.push( faceWeightIndices[ i1 * 4 + 3 ] );\n\n\t\t\t\tbuffers.weightsIndices.push( faceWeightIndices[ i2 * 4 ] );\n\t\t\t\tbuffers.weightsIndices.push( faceWeightIndices[ i2 * 4 + 1 ] );\n\t\t\t\tbuffers.weightsIndices.push( faceWeightIndices[ i2 * 4 + 2 ] );\n\t\t\t\tbuffers.weightsIndices.push( faceWeightIndices[ i2 * 4 + 3 ] );\n\n\t\t\t}\n\n\t\t\tif ( geoInfo.color ) {\n\n\t\t\t\tbuffers.colors.push( faceColors[ i0 * 3 ] );\n\t\t\t\tbuffers.colors.push( faceColors[ i0 * 3 + 1 ] );\n\t\t\t\tbuffers.colors.push( faceColors[ i0 * 3 + 2 ] );\n\n\t\t\t\tbuffers.colors.push( faceColors[ i1 * 3 ] );\n\t\t\t\tbuffers.colors.push( faceColors[ i1 * 3 + 1 ] );\n\t\t\t\tbuffers.colors.push( faceColors[ i1 * 3 + 2 ] );\n\n\t\t\t\tbuffers.colors.push( faceColors[ i2 * 3 ] );\n\t\t\t\tbuffers.colors.push( faceColors[ i2 * 3 + 1 ] );\n\t\t\t\tbuffers.colors.push( faceColors[ i2 * 3 + 2 ] );\n\n\t\t\t}\n\n\t\t\tif ( geoInfo.material && geoInfo.material.mappingType !== 'AllSame' ) {\n\n\t\t\t\tbuffers.materialIndex.push( materialIndex );\n\t\t\t\tbuffers.materialIndex.push( materialIndex );\n\t\t\t\tbuffers.materialIndex.push( materialIndex );\n\n\t\t\t}\n\n\t\t\tif ( geoInfo.normal ) {\n\n\t\t\t\tbuffers.normal.push( faceNormals[ i0 * 3 ] );\n\t\t\t\tbuffers.normal.push( faceNormals[ i0 * 3 + 1 ] );\n\t\t\t\tbuffers.normal.push( faceNormals[ i0 * 3 + 2 ] );\n\n\t\t\t\tbuffers.normal.push( faceNormals[ i1 * 3 ] );\n\t\t\t\tbuffers.normal.push( faceNormals[ i1 * 3 + 1 ] );\n\t\t\t\tbuffers.normal.push( faceNormals[ i1 * 3 + 2 ] );\n\n\t\t\t\tbuffers.normal.push( faceNormals[ i2 * 3 ] );\n\t\t\t\tbuffers.normal.push( faceNormals[ i2 * 3 + 1 ] );\n\t\t\t\tbuffers.normal.push( faceNormals[ i2 * 3 + 2 ] );\n\n\t\t\t}\n\n\t\t\tif ( geoInfo.uv ) {\n\n\t\t\t\tgeoInfo.uv.forEach( function ( uv, j ) {\n\n\t\t\t\t\tif ( buffers.uvs[ j ] === undefined ) buffers.uvs[ j ] = [];\n\n\t\t\t\t\tbuffers.uvs[ j ].push( faceUVs[ j ][ i0 * 2 ] );\n\t\t\t\t\tbuffers.uvs[ j ].push( faceUVs[ j ][ i0 * 2 + 1 ] );\n\n\t\t\t\t\tbuffers.uvs[ j ].push( faceUVs[ j ][ i1 * 2 ] );\n\t\t\t\t\tbuffers.uvs[ j ].push( faceUVs[ j ][ i1 * 2 + 1 ] );\n\n\t\t\t\t\tbuffers.uvs[ j ].push( faceUVs[ j ][ i2 * 2 ] );\n\t\t\t\t\tbuffers.uvs[ j ].push( faceUVs[ j ][ i2 * 2 + 1 ] );\n\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\taddMorphTargets( parentGeo, parentGeoNode, morphTargets, preTransform ) {\n\n\t\tif ( morphTargets.length === 0 ) return;\n\n\t\tparentGeo.morphTargetsRelative = true;\n\n\t\tparentGeo.morphAttributes.position = [];\n\t\t// parentGeo.morphAttributes.normal = []; // not implemented\n\n\t\tconst scope = this;\n\t\tmorphTargets.forEach( function ( morphTarget ) {\n\n\t\t\tmorphTarget.rawTargets.forEach( function ( rawTarget ) {\n\n\t\t\t\tconst morphGeoNode = fbxTree.Objects.Geometry[ rawTarget.geoID ];\n\n\t\t\t\tif ( morphGeoNode !== undefined ) {\n\n\t\t\t\t\tscope.genMorphGeometry( parentGeo, parentGeoNode, morphGeoNode, preTransform, rawTarget.name );\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t} );\n\n\t}\n\n\t// a morph geometry node is similar to a standard node, and the node is also contained\n\t// in FBXTree.Objects.Geometry, however it can only have attributes for position, normal\n\t// and a special attribute Index defining which vertices of the original geometry are affected\n\t// Normal and position attributes only have data for the vertices that are affected by the morph\n\tgenMorphGeometry( parentGeo, parentGeoNode, morphGeoNode, preTransform, name ) {\n\n\t\tconst basePositions = parentGeoNode.Vertices !== undefined ? parentGeoNode.Vertices.a : [];\n\t\tconst baseIndices = parentGeoNode.PolygonVertexIndex !== undefined ? parentGeoNode.PolygonVertexIndex.a : [];\n\n\t\tconst morphPositionsSparse = morphGeoNode.Vertices !== undefined ? morphGeoNode.Vertices.a : [];\n\t\tconst morphIndices = morphGeoNode.Indexes !== undefined ? morphGeoNode.Indexes.a : [];\n\n\t\tconst length = parentGeo.attributes.position.count * 3;\n\t\tconst morphPositions = new Float32Array( length );\n\n\t\tfor ( let i = 0; i < morphIndices.length; i ++ ) {\n\n\t\t\tconst morphIndex = morphIndices[ i ] * 3;\n\n\t\t\tmorphPositions[ morphIndex ] = morphPositionsSparse[ i * 3 ];\n\t\t\tmorphPositions[ morphIndex + 1 ] = morphPositionsSparse[ i * 3 + 1 ];\n\t\t\tmorphPositions[ morphIndex + 2 ] = morphPositionsSparse[ i * 3 + 2 ];\n\n\t\t}\n\n\t\t// TODO: add morph normal support\n\t\tconst morphGeoInfo = {\n\t\t\tvertexIndices: baseIndices,\n\t\t\tvertexPositions: morphPositions,\n\t\t\tbaseVertexPositions: basePositions\n\t\t};\n\n\t\tconst morphBuffers = this.genBuffers( morphGeoInfo );\n\n\t\tconst positionAttribute = new Float32BufferAttribute( morphBuffers.vertex, 3 );\n\t\tpositionAttribute.name = name || morphGeoNode.attrName;\n\n\t\tpositionAttribute.applyMatrix4( preTransform );\n\n\t\tparentGeo.morphAttributes.position.push( positionAttribute );\n\n\t}\n\n\t// Parse normal from FBXTree.Objects.Geometry.LayerElementNormal if it exists\n\tparseNormals( NormalNode ) {\n\n\t\tconst mappingType = NormalNode.MappingInformationType;\n\t\tconst referenceType = NormalNode.ReferenceInformationType;\n\t\tconst buffer = NormalNode.Normals.a;\n\t\tlet indexBuffer = [];\n\t\tif ( referenceType === 'IndexToDirect' ) {\n\n\t\t\tif ( 'NormalIndex' in NormalNode ) {\n\n\t\t\t\tindexBuffer = NormalNode.NormalIndex.a;\n\n\t\t\t} else if ( 'NormalsIndex' in NormalNode ) {\n\n\t\t\t\tindexBuffer = NormalNode.NormalsIndex.a;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn {\n\t\t\tdataSize: 3,\n\t\t\tbuffer: buffer,\n\t\t\tindices: indexBuffer,\n\t\t\tmappingType: mappingType,\n\t\t\treferenceType: referenceType\n\t\t};\n\n\t}\n\n\t// Parse UVs from FBXTree.Objects.Geometry.LayerElementUV if it exists\n\tparseUVs( UVNode ) {\n\n\t\tconst mappingType = UVNode.MappingInformationType;\n\t\tconst referenceType = UVNode.ReferenceInformationType;\n\t\tconst buffer = UVNode.UV.a;\n\t\tlet indexBuffer = [];\n\t\tif ( referenceType === 'IndexToDirect' ) {\n\n\t\t\tindexBuffer = UVNode.UVIndex.a;\n\n\t\t}\n\n\t\treturn {\n\t\t\tdataSize: 2,\n\t\t\tbuffer: buffer,\n\t\t\tindices: indexBuffer,\n\t\t\tmappingType: mappingType,\n\t\t\treferenceType: referenceType\n\t\t};\n\n\t}\n\n\t// Parse Vertex Colors from FBXTree.Objects.Geometry.LayerElementColor if it exists\n\tparseVertexColors( ColorNode ) {\n\n\t\tconst mappingType = ColorNode.MappingInformationType;\n\t\tconst referenceType = ColorNode.ReferenceInformationType;\n\t\tconst buffer = ColorNode.Colors.a;\n\t\tlet indexBuffer = [];\n\t\tif ( referenceType === 'IndexToDirect' ) {\n\n\t\t\tindexBuffer = ColorNode.ColorIndex.a;\n\n\t\t}\n\n\t\tfor ( let i = 0, c = new Color(); i < buffer.length; i += 4 ) {\n\n\t\t\tc.fromArray( buffer, i );\n\t\t\tColorManagement.toWorkingColorSpace( c, SRGBColorSpace );\n\t\t\tc.toArray( buffer, i );\n\n\t\t}\n\n\t\treturn {\n\t\t\tdataSize: 4,\n\t\t\tbuffer: buffer,\n\t\t\tindices: indexBuffer,\n\t\t\tmappingType: mappingType,\n\t\t\treferenceType: referenceType\n\t\t};\n\n\t}\n\n\t// Parse mapping and material data in FBXTree.Objects.Geometry.LayerElementMaterial if it exists\n\tparseMaterialIndices( MaterialNode ) {\n\n\t\tconst mappingType = MaterialNode.MappingInformationType;\n\t\tconst referenceType = MaterialNode.ReferenceInformationType;\n\n\t\tif ( mappingType === 'NoMappingInformation' ) {\n\n\t\t\treturn {\n\t\t\t\tdataSize: 1,\n\t\t\t\tbuffer: [ 0 ],\n\t\t\t\tindices: [ 0 ],\n\t\t\t\tmappingType: 'AllSame',\n\t\t\t\treferenceType: referenceType\n\t\t\t};\n\n\t\t}\n\n\t\tconst materialIndexBuffer = MaterialNode.Materials.a;\n\n\t\t// Since materials are stored as indices, there's a bit of a mismatch between FBX and what\n\t\t// we expect.So we create an intermediate buffer that points to the index in the buffer,\n\t\t// for conforming with the other functions we've written for other data.\n\t\tconst materialIndices = [];\n\n\t\tfor ( let i = 0; i < materialIndexBuffer.length; ++ i ) {\n\n\t\t\tmaterialIndices.push( i );\n\n\t\t}\n\n\t\treturn {\n\t\t\tdataSize: 1,\n\t\t\tbuffer: materialIndexBuffer,\n\t\t\tindices: materialIndices,\n\t\t\tmappingType: mappingType,\n\t\t\treferenceType: referenceType\n\t\t};\n\n\t}\n\n\t// Generate a NurbGeometry from a node in FBXTree.Objects.Geometry\n\tparseNurbsGeometry( geoNode ) {\n\n\t\tconst order = parseInt( geoNode.Order );\n\n\t\tif ( isNaN( order ) ) {\n\n\t\t\tconsole.error( 'THREE.FBXLoader: Invalid Order %s given for geometry ID: %s', geoNode.Order, geoNode.id );\n\t\t\treturn new BufferGeometry();\n\n\t\t}\n\n\t\tconst degree = order - 1;\n\n\t\tconst knots = geoNode.KnotVector.a;\n\t\tconst controlPoints = [];\n\t\tconst pointsValues = geoNode.Points.a;\n\n\t\tfor ( let i = 0, l = pointsValues.length; i < l; i += 4 ) {\n\n\t\t\tcontrolPoints.push( new Vector4().fromArray( pointsValues, i ) );\n\n\t\t}\n\n\t\tlet startKnot, endKnot;\n\n\t\tif ( geoNode.Form === 'Closed' ) {\n\n\t\t\tcontrolPoints.push( controlPoints[ 0 ] );\n\n\t\t} else if ( geoNode.Form === 'Periodic' ) {\n\n\t\t\tstartKnot = degree;\n\t\t\tendKnot = knots.length - 1 - startKnot;\n\n\t\t\tfor ( let i = 0; i < degree; ++ i ) {\n\n\t\t\t\tcontrolPoints.push( controlPoints[ i ] );\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst curve = new NURBSCurve( degree, knots, controlPoints, startKnot, endKnot );\n\t\tconst points = curve.getPoints( controlPoints.length * 12 );\n\n\t\treturn new BufferGeometry().setFromPoints( points );\n\n\t}\n\n}\n\n// parse animation data from FBXTree\nclass AnimationParser {\n\n\t// take raw animation clips and turn them into three.js animation clips\n\tparse() {\n\n\t\tconst animationClips = [];\n\n\t\tconst rawClips = this.parseClips();\n\n\t\tif ( rawClips !== undefined ) {\n\n\t\t\tfor ( const key in rawClips ) {\n\n\t\t\t\tconst rawClip = rawClips[ key ];\n\n\t\t\t\tconst clip = this.addClip( rawClip );\n\n\t\t\t\tanimationClips.push( clip );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn animationClips;\n\n\t}\n\n\tparseClips() {\n\n\t\t// since the actual transformation data is stored in FBXTree.Objects.AnimationCurve,\n\t\t// if this is undefined we can safely assume there are no animations\n\t\tif ( fbxTree.Objects.AnimationCurve === undefined ) return undefined;\n\n\t\tconst curveNodesMap = this.parseAnimationCurveNodes();\n\n\t\tthis.parseAnimationCurves( curveNodesMap );\n\n\t\tconst layersMap = this.parseAnimationLayers( curveNodesMap );\n\t\tconst rawClips = this.parseAnimStacks( layersMap );\n\n\t\treturn rawClips;\n\n\t}\n\n\t// parse nodes in FBXTree.Objects.AnimationCurveNode\n\t// each AnimationCurveNode holds data for an animation transform for a model (e.g. left arm rotation )\n\t// and is referenced by an AnimationLayer\n\tparseAnimationCurveNodes() {\n\n\t\tconst rawCurveNodes = fbxTree.Objects.AnimationCurveNode;\n\n\t\tconst curveNodesMap = new Map();\n\n\t\tfor ( const nodeID in rawCurveNodes ) {\n\n\t\t\tconst rawCurveNode = rawCurveNodes[ nodeID ];\n\n\t\t\tif ( rawCurveNode.attrName.match( /S|R|T|DeformPercent/ ) !== null ) {\n\n\t\t\t\tconst curveNode = {\n\n\t\t\t\t\tid: rawCurveNode.id,\n\t\t\t\t\tattr: rawCurveNode.attrName,\n\t\t\t\t\tcurves: {},\n\n\t\t\t\t};\n\n\t\t\t\tcurveNodesMap.set( curveNode.id, curveNode );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn curveNodesMap;\n\n\t}\n\n\t// parse nodes in FBXTree.Objects.AnimationCurve and connect them up to\n\t// previously parsed AnimationCurveNodes. Each AnimationCurve holds data for a single animated\n\t// axis ( e.g. times and values of x rotation)\n\tparseAnimationCurves( curveNodesMap ) {\n\n\t\tconst rawCurves = fbxTree.Objects.AnimationCurve;\n\n\t\t// TODO: Many values are identical up to roundoff error, but won't be optimised\n\t\t// e.g. position times: [0, 0.4, 0. 8]\n\t\t// position values: [7.23538335023477e-7, 93.67518615722656, -0.9982695579528809, 7.23538335023477e-7, 93.67518615722656, -0.9982695579528809, 7.235384487103147e-7, 93.67520904541016, -0.9982695579528809]\n\t\t// clearly, this should be optimised to\n\t\t// times: [0], positions [7.23538335023477e-7, 93.67518615722656, -0.9982695579528809]\n\t\t// this shows up in nearly every FBX file, and generally time array is length > 100\n\n\t\tfor ( const nodeID in rawCurves ) {\n\n\t\t\tconst animationCurve = {\n\n\t\t\t\tid: rawCurves[ nodeID ].id,\n\t\t\t\ttimes: rawCurves[ nodeID ].KeyTime.a.map( convertFBXTimeToSeconds ),\n\t\t\t\tvalues: rawCurves[ nodeID ].KeyValueFloat.a,\n\n\t\t\t};\n\n\t\t\tconst relationships = connections.get( animationCurve.id );\n\n\t\t\tif ( relationships !== undefined ) {\n\n\t\t\t\tconst animationCurveID = relationships.parents[ 0 ].ID;\n\t\t\t\tconst animationCurveRelationship = relationships.parents[ 0 ].relationship;\n\n\t\t\t\tif ( animationCurveRelationship.match( /X/ ) ) {\n\n\t\t\t\t\tcurveNodesMap.get( animationCurveID ).curves[ 'x' ] = animationCurve;\n\n\t\t\t\t} else if ( animationCurveRelationship.match( /Y/ ) ) {\n\n\t\t\t\t\tcurveNodesMap.get( animationCurveID ).curves[ 'y' ] = animationCurve;\n\n\t\t\t\t} else if ( animationCurveRelationship.match( /Z/ ) ) {\n\n\t\t\t\t\tcurveNodesMap.get( animationCurveID ).curves[ 'z' ] = animationCurve;\n\n\t\t\t\t} else if ( animationCurveRelationship.match( /DeformPercent/ ) && curveNodesMap.has( animationCurveID ) ) {\n\n\t\t\t\t\tcurveNodesMap.get( animationCurveID ).curves[ 'morph' ] = animationCurve;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t// parse nodes in FBXTree.Objects.AnimationLayer. Each layers holds references\n\t// to various AnimationCurveNodes and is referenced by an AnimationStack node\n\t// note: theoretically a stack can have multiple layers, however in practice there always seems to be one per stack\n\tparseAnimationLayers( curveNodesMap ) {\n\n\t\tconst rawLayers = fbxTree.Objects.AnimationLayer;\n\n\t\tconst layersMap = new Map();\n\n\t\tfor ( const nodeID in rawLayers ) {\n\n\t\t\tconst layerCurveNodes = [];\n\n\t\t\tconst connection = connections.get( parseInt( nodeID ) );\n\n\t\t\tif ( connection !== undefined ) {\n\n\t\t\t\t// all the animationCurveNodes used in the layer\n\t\t\t\tconst children = connection.children;\n\n\t\t\t\tchildren.forEach( function ( child, i ) {\n\n\t\t\t\t\tif ( curveNodesMap.has( child.ID ) ) {\n\n\t\t\t\t\t\tconst curveNode = curveNodesMap.get( child.ID );\n\n\t\t\t\t\t\t// check that the curves are defined for at least one axis, otherwise ignore the curveNode\n\t\t\t\t\t\tif ( curveNode.curves.x !== undefined || curveNode.curves.y !== undefined || curveNode.curves.z !== undefined ) {\n\n\t\t\t\t\t\t\tif ( layerCurveNodes[ i ] === undefined ) {\n\n\t\t\t\t\t\t\t\tconst modelID = connections.get( child.ID ).parents.filter( function ( parent ) {\n\n\t\t\t\t\t\t\t\t\treturn parent.relationship !== undefined;\n\n\t\t\t\t\t\t\t\t} )[ 0 ].ID;\n\n\t\t\t\t\t\t\t\tif ( modelID !== undefined ) {\n\n\t\t\t\t\t\t\t\t\tconst rawModel = fbxTree.Objects.Model[ modelID.toString() ];\n\n\t\t\t\t\t\t\t\t\tif ( rawModel === undefined ) {\n\n\t\t\t\t\t\t\t\t\t\tconsole.warn( 'THREE.FBXLoader: Encountered a unused curve.', child );\n\t\t\t\t\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tconst node = {\n\n\t\t\t\t\t\t\t\t\t\tmodelName: rawModel.attrName ? PropertyBinding.sanitizeNodeName( rawModel.attrName ) : '',\n\t\t\t\t\t\t\t\t\t\tID: rawModel.id,\n\t\t\t\t\t\t\t\t\t\tinitialPosition: [ 0, 0, 0 ],\n\t\t\t\t\t\t\t\t\t\tinitialRotation: [ 0, 0, 0 ],\n\t\t\t\t\t\t\t\t\t\tinitialScale: [ 1, 1, 1 ],\n\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\t\tsceneGraph.traverse( function ( child ) {\n\n\t\t\t\t\t\t\t\t\t\tif ( child.ID === rawModel.id ) {\n\n\t\t\t\t\t\t\t\t\t\t\tnode.transform = child.matrix;\n\n\t\t\t\t\t\t\t\t\t\t\tif ( child.userData.transformData ) node.eulerOrder = child.userData.transformData.eulerOrder;\n\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t\t\t\tif ( ! node.transform ) node.transform = new Matrix4();\n\n\t\t\t\t\t\t\t\t\t// if the animated model is pre rotated, we'll have to apply the pre rotations to every\n\t\t\t\t\t\t\t\t\t// animation value as well\n\t\t\t\t\t\t\t\t\tif ( 'PreRotation' in rawModel ) node.preRotation = rawModel.PreRotation.value;\n\t\t\t\t\t\t\t\t\tif ( 'PostRotation' in rawModel ) node.postRotation = rawModel.PostRotation.value;\n\n\t\t\t\t\t\t\t\t\tlayerCurveNodes[ i ] = node;\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( layerCurveNodes[ i ] ) layerCurveNodes[ i ][ curveNode.attr ] = curveNode;\n\n\t\t\t\t\t\t} else if ( curveNode.curves.morph !== undefined ) {\n\n\t\t\t\t\t\t\tif ( layerCurveNodes[ i ] === undefined ) {\n\n\t\t\t\t\t\t\t\tconst deformerID = connections.get( child.ID ).parents.filter( function ( parent ) {\n\n\t\t\t\t\t\t\t\t\treturn parent.relationship !== undefined;\n\n\t\t\t\t\t\t\t\t} )[ 0 ].ID;\n\n\t\t\t\t\t\t\t\tconst morpherID = connections.get( deformerID ).parents[ 0 ].ID;\n\t\t\t\t\t\t\t\tconst geoID = connections.get( morpherID ).parents[ 0 ].ID;\n\n\t\t\t\t\t\t\t\t// assuming geometry is not used in more than one model\n\t\t\t\t\t\t\t\tconst modelID = connections.get( geoID ).parents[ 0 ].ID;\n\n\t\t\t\t\t\t\t\tconst rawModel = fbxTree.Objects.Model[ modelID ];\n\n\t\t\t\t\t\t\t\tconst node = {\n\n\t\t\t\t\t\t\t\t\tmodelName: rawModel.attrName ? PropertyBinding.sanitizeNodeName( rawModel.attrName ) : '',\n\t\t\t\t\t\t\t\t\tmorphName: fbxTree.Objects.Deformer[ deformerID ].attrName,\n\n\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\tlayerCurveNodes[ i ] = node;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tlayerCurveNodes[ i ][ curveNode.attr ] = curveNode;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t\tlayersMap.set( parseInt( nodeID ), layerCurveNodes );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn layersMap;\n\n\t}\n\n\t// parse nodes in FBXTree.Objects.AnimationStack. These are the top level node in the animation\n\t// hierarchy. Each Stack node will be used to create a AnimationClip\n\tparseAnimStacks( layersMap ) {\n\n\t\tconst rawStacks = fbxTree.Objects.AnimationStack;\n\n\t\t// connect the stacks (clips) up to the layers\n\t\tconst rawClips = {};\n\n\t\tfor ( const nodeID in rawStacks ) {\n\n\t\t\tconst children = connections.get( parseInt( nodeID ) ).children;\n\n\t\t\tif ( children.length > 1 ) {\n\n\t\t\t\t// it seems like stacks will always be associated with a single layer. But just in case there are files\n\t\t\t\t// where there are multiple layers per stack, we'll display a warning\n\t\t\t\tconsole.warn( 'THREE.FBXLoader: Encountered an animation stack with multiple layers, this is currently not supported. Ignoring subsequent layers.' );\n\n\t\t\t}\n\n\t\t\tconst layer = layersMap.get( children[ 0 ].ID );\n\n\t\t\trawClips[ nodeID ] = {\n\n\t\t\t\tname: rawStacks[ nodeID ].attrName,\n\t\t\t\tlayer: layer,\n\n\t\t\t};\n\n\t\t}\n\n\t\treturn rawClips;\n\n\t}\n\n\taddClip( rawClip ) {\n\n\t\tlet tracks = [];\n\n\t\tconst scope = this;\n\t\trawClip.layer.forEach( function ( rawTracks ) {\n\n\t\t\ttracks = tracks.concat( scope.generateTracks( rawTracks ) );\n\n\t\t} );\n\n\t\treturn new AnimationClip( rawClip.name, - 1, tracks );\n\n\t}\n\n\tgenerateTracks( rawTracks ) {\n\n\t\tconst tracks = [];\n\n\t\tlet initialPosition = new Vector3();\n\t\tlet initialScale = new Vector3();\n\n\t\tif ( rawTracks.transform ) rawTracks.transform.decompose( initialPosition, new Quaternion(), initialScale );\n\n\t\tinitialPosition = initialPosition.toArray();\n\t\tinitialScale = initialScale.toArray();\n\n\t\tif ( rawTracks.T !== undefined && Object.keys( rawTracks.T.curves ).length > 0 ) {\n\n\t\t\tconst positionTrack = this.generateVectorTrack( rawTracks.modelName, rawTracks.T.curves, initialPosition, 'position' );\n\t\t\tif ( positionTrack !== undefined ) tracks.push( positionTrack );\n\n\t\t}\n\n\t\tif ( rawTracks.R !== undefined && Object.keys( rawTracks.R.curves ).length > 0 ) {\n\n\t\t\tconst rotationTrack = this.generateRotationTrack( rawTracks.modelName, rawTracks.R.curves, rawTracks.preRotation, rawTracks.postRotation, rawTracks.eulerOrder );\n\t\t\tif ( rotationTrack !== undefined ) tracks.push( rotationTrack );\n\n\t\t}\n\n\t\tif ( rawTracks.S !== undefined && Object.keys( rawTracks.S.curves ).length > 0 ) {\n\n\t\t\tconst scaleTrack = this.generateVectorTrack( rawTracks.modelName, rawTracks.S.curves, initialScale, 'scale' );\n\t\t\tif ( scaleTrack !== undefined ) tracks.push( scaleTrack );\n\n\t\t}\n\n\t\tif ( rawTracks.DeformPercent !== undefined ) {\n\n\t\t\tconst morphTrack = this.generateMorphTrack( rawTracks );\n\t\t\tif ( morphTrack !== undefined ) tracks.push( morphTrack );\n\n\t\t}\n\n\t\treturn tracks;\n\n\t}\n\n\tgenerateVectorTrack( modelName, curves, initialValue, type ) {\n\n\t\tconst times = this.getTimesForAllAxes( curves );\n\t\tconst values = this.getKeyframeTrackValues( times, curves, initialValue );\n\n\t\treturn new VectorKeyframeTrack( modelName + '.' + type, times, values );\n\n\t}\n\n\tgenerateRotationTrack( modelName, curves, preRotation, postRotation, eulerOrder ) {\n\n\t\tlet times;\n\t\tlet values;\n\n\t\tif ( curves.x !== undefined && curves.y !== undefined && curves.z !== undefined ) {\n\n\t\t\tconst result = this.interpolateRotations( curves.x, curves.y, curves.z, eulerOrder );\n\n\t\t\ttimes = result[ 0 ];\n\t\t\tvalues = result[ 1 ];\n\n\t\t}\n\n\t\t// For Maya models using \"Joint Orient\", Euler order only applies to rotation, not pre/post-rotations\n\t\tconst defaultEulerOrder = getEulerOrder( 0 );\n\n\t\tif ( preRotation !== undefined ) {\n\n\t\t\tpreRotation = preRotation.map( MathUtils.degToRad );\n\t\t\tpreRotation.push( defaultEulerOrder );\n\n\t\t\tpreRotation = new Euler().fromArray( preRotation );\n\t\t\tpreRotation = new Quaternion().setFromEuler( preRotation );\n\n\t\t}\n\n\t\tif ( postRotation !== undefined ) {\n\n\t\t\tpostRotation = postRotation.map( MathUtils.degToRad );\n\t\t\tpostRotation.push( defaultEulerOrder );\n\n\t\t\tpostRotation = new Euler().fromArray( postRotation );\n\t\t\tpostRotation = new Quaternion().setFromEuler( postRotation ).invert();\n\n\t\t}\n\n\t\tconst quaternion = new Quaternion();\n\t\tconst euler = new Euler();\n\n\t\tconst quaternionValues = [];\n\n\t\tif ( ! values || ! times ) return new QuaternionKeyframeTrack( modelName + '.quaternion', [ 0 ], [ 0 ] );\n\n\t\tfor ( let i = 0; i < values.length; i += 3 ) {\n\n\t\t\teuler.set( values[ i ], values[ i + 1 ], values[ i + 2 ], eulerOrder );\n\t\t\tquaternion.setFromEuler( euler );\n\n\t\t\tif ( preRotation !== undefined ) quaternion.premultiply( preRotation );\n\t\t\tif ( postRotation !== undefined ) quaternion.multiply( postRotation );\n\n\t\t\t// Check unroll\n\t\t\tif ( i > 2 ) {\n\n\t\t\t\tconst prevQuat = new Quaternion().fromArray(\n\t\t\t\t\tquaternionValues,\n\t\t\t\t\t( ( i - 3 ) / 3 ) * 4\n\t\t\t\t);\n\n\t\t\t\tif ( prevQuat.dot( quaternion ) < 0 ) {\n\n\t\t\t\t\tquaternion.set( - quaternion.x, - quaternion.y, - quaternion.z, - quaternion.w );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tquaternion.toArray( quaternionValues, ( i / 3 ) * 4 );\n\n\t\t}\n\n\t\treturn new QuaternionKeyframeTrack( modelName + '.quaternion', times, quaternionValues );\n\n\t}\n\n\tgenerateMorphTrack( rawTracks ) {\n\n\t\tconst curves = rawTracks.DeformPercent.curves.morph;\n\t\tconst values = curves.values.map( function ( val ) {\n\n\t\t\treturn val / 100;\n\n\t\t} );\n\n\t\tconst morphNum = sceneGraph.getObjectByName( rawTracks.modelName ).morphTargetDictionary[ rawTracks.morphName ];\n\n\t\treturn new NumberKeyframeTrack( rawTracks.modelName + '.morphTargetInfluences[' + morphNum + ']', curves.times, values );\n\n\t}\n\n\t// For all animated objects, times are defined separately for each axis\n\t// Here we'll combine the times into one sorted array without duplicates\n\tgetTimesForAllAxes( curves ) {\n\n\t\tlet times = [];\n\n\t\t// first join together the times for each axis, if defined\n\t\tif ( curves.x !== undefined ) times = times.concat( curves.x.times );\n\t\tif ( curves.y !== undefined ) times = times.concat( curves.y.times );\n\t\tif ( curves.z !== undefined ) times = times.concat( curves.z.times );\n\n\t\t// then sort them\n\t\ttimes = times.sort( function ( a, b ) {\n\n\t\t\treturn a - b;\n\n\t\t} );\n\n\t\t// and remove duplicates\n\t\tif ( times.length > 1 ) {\n\n\t\t\tlet targetIndex = 1;\n\t\t\tlet lastValue = times[ 0 ];\n\t\t\tfor ( let i = 1; i < times.length; i ++ ) {\n\n\t\t\t\tconst currentValue = times[ i ];\n\t\t\t\tif ( currentValue !== lastValue ) {\n\n\t\t\t\t\ttimes[ targetIndex ] = currentValue;\n\t\t\t\t\tlastValue = currentValue;\n\t\t\t\t\ttargetIndex ++;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\ttimes = times.slice( 0, targetIndex );\n\n\t\t}\n\n\t\treturn times;\n\n\t}\n\n\tgetKeyframeTrackValues( times, curves, initialValue ) {\n\n\t\tconst prevValue = initialValue;\n\n\t\tconst values = [];\n\n\t\tlet xIndex = - 1;\n\t\tlet yIndex = - 1;\n\t\tlet zIndex = - 1;\n\n\t\ttimes.forEach( function ( time ) {\n\n\t\t\tif ( curves.x ) xIndex = curves.x.times.indexOf( time );\n\t\t\tif ( curves.y ) yIndex = curves.y.times.indexOf( time );\n\t\t\tif ( curves.z ) zIndex = curves.z.times.indexOf( time );\n\n\t\t\t// if there is an x value defined for this frame, use that\n\t\t\tif ( xIndex !== - 1 ) {\n\n\t\t\t\tconst xValue = curves.x.values[ xIndex ];\n\t\t\t\tvalues.push( xValue );\n\t\t\t\tprevValue[ 0 ] = xValue;\n\n\t\t\t} else {\n\n\t\t\t\t// otherwise use the x value from the previous frame\n\t\t\t\tvalues.push( prevValue[ 0 ] );\n\n\t\t\t}\n\n\t\t\tif ( yIndex !== - 1 ) {\n\n\t\t\t\tconst yValue = curves.y.values[ yIndex ];\n\t\t\t\tvalues.push( yValue );\n\t\t\t\tprevValue[ 1 ] = yValue;\n\n\t\t\t} else {\n\n\t\t\t\tvalues.push( prevValue[ 1 ] );\n\n\t\t\t}\n\n\t\t\tif ( zIndex !== - 1 ) {\n\n\t\t\t\tconst zValue = curves.z.values[ zIndex ];\n\t\t\t\tvalues.push( zValue );\n\t\t\t\tprevValue[ 2 ] = zValue;\n\n\t\t\t} else {\n\n\t\t\t\tvalues.push( prevValue[ 2 ] );\n\n\t\t\t}\n\n\t\t} );\n\n\t\treturn values;\n\n\t}\n\n\t// Rotations are defined as Euler angles which can have values of any size\n\t// These will be converted to quaternions which don't support values greater than\n\t// PI, so we'll interpolate large rotations\n\tinterpolateRotations( curvex, curvey, curvez, eulerOrder ) {\n\n\t\tconst times = [];\n\t\tconst values = [];\n\n\t\t// Add first frame\n\t\ttimes.push( curvex.times[ 0 ] );\n\t\tvalues.push( MathUtils.degToRad( curvex.values[ 0 ] ) );\n\t\tvalues.push( MathUtils.degToRad( curvey.values[ 0 ] ) );\n\t\tvalues.push( MathUtils.degToRad( curvez.values[ 0 ] ) );\n\n\t\tfor ( let i = 1; i < curvex.values.length; i ++ ) {\n\n\t\t\tconst initialValue = [\n\t\t\t\tcurvex.values[ i - 1 ],\n\t\t\t\tcurvey.values[ i - 1 ],\n\t\t\t\tcurvez.values[ i - 1 ],\n\t\t\t];\n\n\t\t\tif ( isNaN( initialValue[ 0 ] ) || isNaN( initialValue[ 1 ] ) || isNaN( initialValue[ 2 ] ) ) {\n\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\tconst initialValueRad = initialValue.map( MathUtils.degToRad );\n\n\t\t\tconst currentValue = [\n\t\t\t\tcurvex.values[ i ],\n\t\t\t\tcurvey.values[ i ],\n\t\t\t\tcurvez.values[ i ],\n\t\t\t];\n\n\t\t\tif ( isNaN( currentValue[ 0 ] ) || isNaN( currentValue[ 1 ] ) || isNaN( currentValue[ 2 ] ) ) {\n\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\tconst currentValueRad = currentValue.map( MathUtils.degToRad );\n\n\t\t\tconst valuesSpan = [\n\t\t\t\tcurrentValue[ 0 ] - initialValue[ 0 ],\n\t\t\t\tcurrentValue[ 1 ] - initialValue[ 1 ],\n\t\t\t\tcurrentValue[ 2 ] - initialValue[ 2 ],\n\t\t\t];\n\n\t\t\tconst absoluteSpan = [\n\t\t\t\tMath.abs( valuesSpan[ 0 ] ),\n\t\t\t\tMath.abs( valuesSpan[ 1 ] ),\n\t\t\t\tMath.abs( valuesSpan[ 2 ] ),\n\t\t\t];\n\n\t\t\tif ( absoluteSpan[ 0 ] >= 180 || absoluteSpan[ 1 ] >= 180 || absoluteSpan[ 2 ] >= 180 ) {\n\n\t\t\t\tconst maxAbsSpan = Math.max( ...absoluteSpan );\n\n\t\t\t\tconst numSubIntervals = maxAbsSpan / 180;\n\n\t\t\t\tconst E1 = new Euler( ...initialValueRad, eulerOrder );\n\t\t\t\tconst E2 = new Euler( ...currentValueRad, eulerOrder );\n\n\t\t\t\tconst Q1 = new Quaternion().setFromEuler( E1 );\n\t\t\t\tconst Q2 = new Quaternion().setFromEuler( E2 );\n\n\t\t\t\t// Check unroll\n\t\t\t\tif ( Q1.dot( Q2 ) ) {\n\n\t\t\t\t\tQ2.set( - Q2.x, - Q2.y, - Q2.z, - Q2.w );\n\n\t\t\t\t}\n\n\t\t\t\t// Interpolate\n\t\t\t\tconst initialTime = curvex.times[ i - 1 ];\n\t\t\t\tconst timeSpan = curvex.times[ i ] - initialTime;\n\n\t\t\t\tconst Q = new Quaternion();\n\t\t\t\tconst E = new Euler();\n\t\t\t\tfor ( let t = 0; t < 1; t += 1 / numSubIntervals ) {\n\n\t\t\t\t\tQ.copy( Q1.clone().slerp( Q2.clone(), t ) );\n\n\t\t\t\t\ttimes.push( initialTime + t * timeSpan );\n\t\t\t\t\tE.setFromQuaternion( Q, eulerOrder );\n\n\t\t\t\t\tvalues.push( E.x );\n\t\t\t\t\tvalues.push( E.y );\n\t\t\t\t\tvalues.push( E.z );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\ttimes.push( curvex.times[ i ] );\n\t\t\t\tvalues.push( MathUtils.degToRad( curvex.values[ i ] ) );\n\t\t\t\tvalues.push( MathUtils.degToRad( curvey.values[ i ] ) );\n\t\t\t\tvalues.push( MathUtils.degToRad( curvez.values[ i ] ) );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn [ times, values ];\n\n\t}\n\n}\n\n// parse an FBX file in ASCII format\nclass TextParser {\n\n\tgetPrevNode() {\n\n\t\treturn this.nodeStack[ this.currentIndent - 2 ];\n\n\t}\n\n\tgetCurrentNode() {\n\n\t\treturn this.nodeStack[ this.currentIndent - 1 ];\n\n\t}\n\n\tgetCurrentProp() {\n\n\t\treturn this.currentProp;\n\n\t}\n\n\tpushStack( node ) {\n\n\t\tthis.nodeStack.push( node );\n\t\tthis.currentIndent += 1;\n\n\t}\n\n\tpopStack() {\n\n\t\tthis.nodeStack.pop();\n\t\tthis.currentIndent -= 1;\n\n\t}\n\n\tsetCurrentProp( val, name ) {\n\n\t\tthis.currentProp = val;\n\t\tthis.currentPropName = name;\n\n\t}\n\n\tparse( text ) {\n\n\t\tthis.currentIndent = 0;\n\n\t\tthis.allNodes = new FBXTree();\n\t\tthis.nodeStack = [];\n\t\tthis.currentProp = [];\n\t\tthis.currentPropName = '';\n\n\t\tconst scope = this;\n\n\t\tconst split = text.split( /[\\r\\n]+/ );\n\n\t\tsplit.forEach( function ( line, i ) {\n\n\t\t\tconst matchComment = line.match( /^[\\s\\t]*;/ );\n\t\t\tconst matchEmpty = line.match( /^[\\s\\t]*$/ );\n\n\t\t\tif ( matchComment || matchEmpty ) return;\n\n\t\t\tconst matchBeginning = line.match( '^\\\\t{' + scope.currentIndent + '}(\\\\w+):(.*){', '' );\n\t\t\tconst matchProperty = line.match( '^\\\\t{' + ( scope.currentIndent ) + '}(\\\\w+):[\\\\s\\\\t\\\\r\\\\n](.*)' );\n\t\t\tconst matchEnd = line.match( '^\\\\t{' + ( scope.currentIndent - 1 ) + '}}' );\n\n\t\t\tif ( matchBeginning ) {\n\n\t\t\t\tscope.parseNodeBegin( line, matchBeginning );\n\n\t\t\t} else if ( matchProperty ) {\n\n\t\t\t\tscope.parseNodeProperty( line, matchProperty, split[ ++ i ] );\n\n\t\t\t} else if ( matchEnd ) {\n\n\t\t\t\tscope.popStack();\n\n\t\t\t} else if ( line.match( /^[^\\s\\t}]/ ) ) {\n\n\t\t\t\t// large arrays are split over multiple lines terminated with a ',' character\n\t\t\t\t// if this is encountered the line needs to be joined to the previous line\n\t\t\t\tscope.parseNodePropertyContinued( line );\n\n\t\t\t}\n\n\t\t} );\n\n\t\treturn this.allNodes;\n\n\t}\n\n\tparseNodeBegin( line, property ) {\n\n\t\tconst nodeName = property[ 1 ].trim().replace( /^\"/, '' ).replace( /\"$/, '' );\n\n\t\tconst nodeAttrs = property[ 2 ].split( ',' ).map( function ( attr ) {\n\n\t\t\treturn attr.trim().replace( /^\"/, '' ).replace( /\"$/, '' );\n\n\t\t} );\n\n\t\tconst node = { name: nodeName };\n\t\tconst attrs = this.parseNodeAttr( nodeAttrs );\n\n\t\tconst currentNode = this.getCurrentNode();\n\n\t\t// a top node\n\t\tif ( this.currentIndent === 0 ) {\n\n\t\t\tthis.allNodes.add( nodeName, node );\n\n\t\t} else { // a subnode\n\n\t\t\t// if the subnode already exists, append it\n\t\t\tif ( nodeName in currentNode ) {\n\n\t\t\t\t// special case Pose needs PoseNodes as an array\n\t\t\t\tif ( nodeName === 'PoseNode' ) {\n\n\t\t\t\t\tcurrentNode.PoseNode.push( node );\n\n\t\t\t\t} else if ( currentNode[ nodeName ].id !== undefined ) {\n\n\t\t\t\t\tcurrentNode[ nodeName ] = {};\n\t\t\t\t\tcurrentNode[ nodeName ][ currentNode[ nodeName ].id ] = currentNode[ nodeName ];\n\n\t\t\t\t}\n\n\t\t\t\tif ( attrs.id !== '' ) currentNode[ nodeName ][ attrs.id ] = node;\n\n\t\t\t} else if ( typeof attrs.id === 'number' ) {\n\n\t\t\t\tcurrentNode[ nodeName ] = {};\n\t\t\t\tcurrentNode[ nodeName ][ attrs.id ] = node;\n\n\t\t\t} else if ( nodeName !== 'Properties70' ) {\n\n\t\t\t\tif ( nodeName === 'PoseNode' )\tcurrentNode[ nodeName ] = [ node ];\n\t\t\t\telse currentNode[ nodeName ] = node;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( typeof attrs.id === 'number' ) node.id = attrs.id;\n\t\tif ( attrs.name !== '' ) node.attrName = attrs.name;\n\t\tif ( attrs.type !== '' ) node.attrType = attrs.type;\n\n\t\tthis.pushStack( node );\n\n\t}\n\n\tparseNodeAttr( attrs ) {\n\n\t\tlet id = attrs[ 0 ];\n\n\t\tif ( attrs[ 0 ] !== '' ) {\n\n\t\t\tid = parseInt( attrs[ 0 ] );\n\n\t\t\tif ( isNaN( id ) ) {\n\n\t\t\t\tid = attrs[ 0 ];\n\n\t\t\t}\n\n\t\t}\n\n\t\tlet name = '', type = '';\n\n\t\tif ( attrs.length > 1 ) {\n\n\t\t\tname = attrs[ 1 ].replace( /^(\\w+)::/, '' );\n\t\t\ttype = attrs[ 2 ];\n\n\t\t}\n\n\t\treturn { id: id, name: name, type: type };\n\n\t}\n\n\tparseNodeProperty( line, property, contentLine ) {\n\n\t\tlet propName = property[ 1 ].replace( /^\"/, '' ).replace( /\"$/, '' ).trim();\n\t\tlet propValue = property[ 2 ].replace( /^\"/, '' ).replace( /\"$/, '' ).trim();\n\n\t\t// for special case: base64 image data follows \"Content: ,\" line\n\t\t//\tContent: ,\n\t\t//\t \"/9j/4RDaRXhpZgAATU0A...\"\n\t\tif ( propName === 'Content' && propValue === ',' ) {\n\n\t\t\tpropValue = contentLine.replace( /\"/g, '' ).replace( /,$/, '' ).trim();\n\n\t\t}\n\n\t\tconst currentNode = this.getCurrentNode();\n\t\tconst parentName = currentNode.name;\n\n\t\tif ( parentName === 'Properties70' ) {\n\n\t\t\tthis.parseNodeSpecialProperty( line, propName, propValue );\n\t\t\treturn;\n\n\t\t}\n\n\t\t// Connections\n\t\tif ( propName === 'C' ) {\n\n\t\t\tconst connProps = propValue.split( ',' ).slice( 1 );\n\t\t\tconst from = parseInt( connProps[ 0 ] );\n\t\t\tconst to = parseInt( connProps[ 1 ] );\n\n\t\t\tlet rest = propValue.split( ',' ).slice( 3 );\n\n\t\t\trest = rest.map( function ( elem ) {\n\n\t\t\t\treturn elem.trim().replace( /^\"/, '' );\n\n\t\t\t} );\n\n\t\t\tpropName = 'connections';\n\t\t\tpropValue = [ from, to ];\n\t\t\tappend( propValue, rest );\n\n\t\t\tif ( currentNode[ propName ] === undefined ) {\n\n\t\t\t\tcurrentNode[ propName ] = [];\n\n\t\t\t}\n\n\t\t}\n\n\t\t// Node\n\t\tif ( propName === 'Node' ) currentNode.id = propValue;\n\n\t\t// connections\n\t\tif ( propName in currentNode && Array.isArray( currentNode[ propName ] ) ) {\n\n\t\t\tcurrentNode[ propName ].push( propValue );\n\n\t\t} else {\n\n\t\t\tif ( propName !== 'a' ) currentNode[ propName ] = propValue;\n\t\t\telse currentNode.a = propValue;\n\n\t\t}\n\n\t\tthis.setCurrentProp( currentNode, propName );\n\n\t\t// convert string to array, unless it ends in ',' in which case more will be added to it\n\t\tif ( propName === 'a' && propValue.slice( - 1 ) !== ',' ) {\n\n\t\t\tcurrentNode.a = parseNumberArray( propValue );\n\n\t\t}\n\n\t}\n\n\tparseNodePropertyContinued( line ) {\n\n\t\tconst currentNode = this.getCurrentNode();\n\n\t\tcurrentNode.a += line;\n\n\t\t// if the line doesn't end in ',' we have reached the end of the property value\n\t\t// so convert the string to an array\n\t\tif ( line.slice( - 1 ) !== ',' ) {\n\n\t\t\tcurrentNode.a = parseNumberArray( currentNode.a );\n\n\t\t}\n\n\t}\n\n\t// parse \"Property70\"\n\tparseNodeSpecialProperty( line, propName, propValue ) {\n\n\t\t// split this\n\t\t// P: \"Lcl Scaling\", \"Lcl Scaling\", \"\", \"A\",1,1,1\n\t\t// into array like below\n\t\t// [\"Lcl Scaling\", \"Lcl Scaling\", \"\", \"A\", \"1,1,1\" ]\n\t\tconst props = propValue.split( '\",' ).map( function ( prop ) {\n\n\t\t\treturn prop.trim().replace( /^\\\"/, '' ).replace( /\\s/, '_' );\n\n\t\t} );\n\n\t\tconst innerPropName = props[ 0 ];\n\t\tconst innerPropType1 = props[ 1 ];\n\t\tconst innerPropType2 = props[ 2 ];\n\t\tconst innerPropFlag = props[ 3 ];\n\t\tlet innerPropValue = props[ 4 ];\n\n\t\t// cast values where needed, otherwise leave as strings\n\t\tswitch ( innerPropType1 ) {\n\n\t\t\tcase 'int':\n\t\t\tcase 'enum':\n\t\t\tcase 'bool':\n\t\t\tcase 'ULongLong':\n\t\t\tcase 'double':\n\t\t\tcase 'Number':\n\t\t\tcase 'FieldOfView':\n\t\t\t\tinnerPropValue = parseFloat( innerPropValue );\n\t\t\t\tbreak;\n\n\t\t\tcase 'Color':\n\t\t\tcase 'ColorRGB':\n\t\t\tcase 'Vector3D':\n\t\t\tcase 'Lcl_Translation':\n\t\t\tcase 'Lcl_Rotation':\n\t\t\tcase 'Lcl_Scaling':\n\t\t\t\tinnerPropValue = parseNumberArray( innerPropValue );\n\t\t\t\tbreak;\n\n\t\t}\n\n\t\t// CAUTION: these props must append to parent's parent\n\t\tthis.getPrevNode()[ innerPropName ] = {\n\n\t\t\t'type': innerPropType1,\n\t\t\t'type2': innerPropType2,\n\t\t\t'flag': innerPropFlag,\n\t\t\t'value': innerPropValue\n\n\t\t};\n\n\t\tthis.setCurrentProp( this.getPrevNode(), innerPropName );\n\n\t}\n\n}\n\n// Parse an FBX file in Binary format\nclass BinaryParser {\n\n\tparse( buffer ) {\n\n\t\tconst reader = new BinaryReader( buffer );\n\t\treader.skip( 23 ); // skip magic 23 bytes\n\n\t\tconst version = reader.getUint32();\n\n\t\tif ( version < 6400 ) {\n\n\t\t\tthrow new Error( 'THREE.FBXLoader: FBX version not supported, FileVersion: ' + version );\n\n\t\t}\n\n\t\tconst allNodes = new FBXTree();\n\n\t\twhile ( ! this.endOfContent( reader ) ) {\n\n\t\t\tconst node = this.parseNode( reader, version );\n\t\t\tif ( node !== null ) allNodes.add( node.name, node );\n\n\t\t}\n\n\t\treturn allNodes;\n\n\t}\n\n\t// Check if reader has reached the end of content.\n\tendOfContent( reader ) {\n\n\t\t// footer size: 160bytes + 16-byte alignment padding\n\t\t// - 16bytes: magic\n\t\t// - padding til 16-byte alignment (at least 1byte?)\n\t\t//\t(seems like some exporters embed fixed 15 or 16bytes?)\n\t\t// - 4bytes: magic\n\t\t// - 4bytes: version\n\t\t// - 120bytes: zero\n\t\t// - 16bytes: magic\n\t\tif ( reader.size() % 16 === 0 ) {\n\n\t\t\treturn ( ( reader.getOffset() + 160 + 16 ) & ~ 0xf ) >= reader.size();\n\n\t\t} else {\n\n\t\t\treturn reader.getOffset() + 160 + 16 >= reader.size();\n\n\t\t}\n\n\t}\n\n\t// recursively parse nodes until the end of the file is reached\n\tparseNode( reader, version ) {\n\n\t\tconst node = {};\n\n\t\t// The first three data sizes depends on version.\n\t\tconst endOffset = ( version >= 7500 ) ? reader.getUint64() : reader.getUint32();\n\t\tconst numProperties = ( version >= 7500 ) ? reader.getUint64() : reader.getUint32();\n\n\t\t( version >= 7500 ) ? reader.getUint64() : reader.getUint32(); // the returned propertyListLen is not used\n\n\t\tconst nameLen = reader.getUint8();\n\t\tconst name = reader.getString( nameLen );\n\n\t\t// Regards this node as NULL-record if endOffset is zero\n\t\tif ( endOffset === 0 ) return null;\n\n\t\tconst propertyList = [];\n\n\t\tfor ( let i = 0; i < numProperties; i ++ ) {\n\n\t\t\tpropertyList.push( this.parseProperty( reader ) );\n\n\t\t}\n\n\t\t// Regards the first three elements in propertyList as id, attrName, and attrType\n\t\tconst id = propertyList.length > 0 ? propertyList[ 0 ] : '';\n\t\tconst attrName = propertyList.length > 1 ? propertyList[ 1 ] : '';\n\t\tconst attrType = propertyList.length > 2 ? propertyList[ 2 ] : '';\n\n\t\t// check if this node represents just a single property\n\t\t// like (name, 0) set or (name2, [0, 1, 2]) set of {name: 0, name2: [0, 1, 2]}\n\t\tnode.singleProperty = ( numProperties === 1 && reader.getOffset() === endOffset ) ? true : false;\n\n\t\twhile ( endOffset > reader.getOffset() ) {\n\n\t\t\tconst subNode = this.parseNode( reader, version );\n\n\t\t\tif ( subNode !== null ) this.parseSubNode( name, node, subNode );\n\n\t\t}\n\n\t\tnode.propertyList = propertyList; // raw property list used by parent\n\n\t\tif ( typeof id === 'number' ) node.id = id;\n\t\tif ( attrName !== '' ) node.attrName = attrName;\n\t\tif ( attrType !== '' ) node.attrType = attrType;\n\t\tif ( name !== '' ) node.name = name;\n\n\t\treturn node;\n\n\t}\n\n\tparseSubNode( name, node, subNode ) {\n\n\t\t// special case: child node is single property\n\t\tif ( subNode.singleProperty === true ) {\n\n\t\t\tconst value = subNode.propertyList[ 0 ];\n\n\t\t\tif ( Array.isArray( value ) ) {\n\n\t\t\t\tnode[ subNode.name ] = subNode;\n\n\t\t\t\tsubNode.a = value;\n\n\t\t\t} else {\n\n\t\t\t\tnode[ subNode.name ] = value;\n\n\t\t\t}\n\n\t\t} else if ( name === 'Connections' && subNode.name === 'C' ) {\n\n\t\t\tconst array = [];\n\n\t\t\tsubNode.propertyList.forEach( function ( property, i ) {\n\n\t\t\t\t// first Connection is FBX type (OO, OP, etc.). We'll discard these\n\t\t\t\tif ( i !== 0 ) array.push( property );\n\n\t\t\t} );\n\n\t\t\tif ( node.connections === undefined ) {\n\n\t\t\t\tnode.connections = [];\n\n\t\t\t}\n\n\t\t\tnode.connections.push( array );\n\n\t\t} else if ( subNode.name === 'Properties70' ) {\n\n\t\t\tconst keys = Object.keys( subNode );\n\n\t\t\tkeys.forEach( function ( key ) {\n\n\t\t\t\tnode[ key ] = subNode[ key ];\n\n\t\t\t} );\n\n\t\t} else if ( name === 'Properties70' && subNode.name === 'P' ) {\n\n\t\t\tlet innerPropName = subNode.propertyList[ 0 ];\n\t\t\tlet innerPropType1 = subNode.propertyList[ 1 ];\n\t\t\tconst innerPropType2 = subNode.propertyList[ 2 ];\n\t\t\tconst innerPropFlag = subNode.propertyList[ 3 ];\n\t\t\tlet innerPropValue;\n\n\t\t\tif ( innerPropName.indexOf( 'Lcl ' ) === 0 ) innerPropName = innerPropName.replace( 'Lcl ', 'Lcl_' );\n\t\t\tif ( innerPropType1.indexOf( 'Lcl ' ) === 0 ) innerPropType1 = innerPropType1.replace( 'Lcl ', 'Lcl_' );\n\n\t\t\tif ( innerPropType1 === 'Color' || innerPropType1 === 'ColorRGB' || innerPropType1 === 'Vector' || innerPropType1 === 'Vector3D' || innerPropType1.indexOf( 'Lcl_' ) === 0 ) {\n\n\t\t\t\tinnerPropValue = [\n\t\t\t\t\tsubNode.propertyList[ 4 ],\n\t\t\t\t\tsubNode.propertyList[ 5 ],\n\t\t\t\t\tsubNode.propertyList[ 6 ]\n\t\t\t\t];\n\n\t\t\t} else {\n\n\t\t\t\tinnerPropValue = subNode.propertyList[ 4 ];\n\n\t\t\t}\n\n\t\t\t// this will be copied to parent, see above\n\t\t\tnode[ innerPropName ] = {\n\n\t\t\t\t'type': innerPropType1,\n\t\t\t\t'type2': innerPropType2,\n\t\t\t\t'flag': innerPropFlag,\n\t\t\t\t'value': innerPropValue\n\n\t\t\t};\n\n\t\t} else if ( node[ subNode.name ] === undefined ) {\n\n\t\t\tif ( typeof subNode.id === 'number' ) {\n\n\t\t\t\tnode[ subNode.name ] = {};\n\t\t\t\tnode[ subNode.name ][ subNode.id ] = subNode;\n\n\t\t\t} else {\n\n\t\t\t\tnode[ subNode.name ] = subNode;\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tif ( subNode.name === 'PoseNode' ) {\n\n\t\t\t\tif ( ! Array.isArray( node[ subNode.name ] ) ) {\n\n\t\t\t\t\tnode[ subNode.name ] = [ node[ subNode.name ] ];\n\n\t\t\t\t}\n\n\t\t\t\tnode[ subNode.name ].push( subNode );\n\n\t\t\t} else if ( node[ subNode.name ][ subNode.id ] === undefined ) {\n\n\t\t\t\tnode[ subNode.name ][ subNode.id ] = subNode;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tparseProperty( reader ) {\n\n\t\tconst type = reader.getString( 1 );\n\t\tlet length;\n\n\t\tswitch ( type ) {\n\n\t\t\tcase 'C':\n\t\t\t\treturn reader.getBoolean();\n\n\t\t\tcase 'D':\n\t\t\t\treturn reader.getFloat64();\n\n\t\t\tcase 'F':\n\t\t\t\treturn reader.getFloat32();\n\n\t\t\tcase 'I':\n\t\t\t\treturn reader.getInt32();\n\n\t\t\tcase 'L':\n\t\t\t\treturn reader.getInt64();\n\n\t\t\tcase 'R':\n\t\t\t\tlength = reader.getUint32();\n\t\t\t\treturn reader.getArrayBuffer( length );\n\n\t\t\tcase 'S':\n\t\t\t\tlength = reader.getUint32();\n\t\t\t\treturn reader.getString( length );\n\n\t\t\tcase 'Y':\n\t\t\t\treturn reader.getInt16();\n\n\t\t\tcase 'b':\n\t\t\tcase 'c':\n\t\t\tcase 'd':\n\t\t\tcase 'f':\n\t\t\tcase 'i':\n\t\t\tcase 'l':\n\n\t\t\t\tconst arrayLength = reader.getUint32();\n\t\t\t\tconst encoding = reader.getUint32(); // 0: non-compressed, 1: compressed\n\t\t\t\tconst compressedLength = reader.getUint32();\n\n\t\t\t\tif ( encoding === 0 ) {\n\n\t\t\t\t\tswitch ( type ) {\n\n\t\t\t\t\t\tcase 'b':\n\t\t\t\t\t\tcase 'c':\n\t\t\t\t\t\t\treturn reader.getBooleanArray( arrayLength );\n\n\t\t\t\t\t\tcase 'd':\n\t\t\t\t\t\t\treturn reader.getFloat64Array( arrayLength );\n\n\t\t\t\t\t\tcase 'f':\n\t\t\t\t\t\t\treturn reader.getFloat32Array( arrayLength );\n\n\t\t\t\t\t\tcase 'i':\n\t\t\t\t\t\t\treturn reader.getInt32Array( arrayLength );\n\n\t\t\t\t\t\tcase 'l':\n\t\t\t\t\t\t\treturn reader.getInt64Array( arrayLength );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tconst data = fflate.unzlibSync( new Uint8Array( reader.getArrayBuffer( compressedLength ) ) );\n\t\t\t\tconst reader2 = new BinaryReader( data.buffer );\n\n\t\t\t\tswitch ( type ) {\n\n\t\t\t\t\tcase 'b':\n\t\t\t\t\tcase 'c':\n\t\t\t\t\t\treturn reader2.getBooleanArray( arrayLength );\n\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\treturn reader2.getFloat64Array( arrayLength );\n\n\t\t\t\t\tcase 'f':\n\t\t\t\t\t\treturn reader2.getFloat32Array( arrayLength );\n\n\t\t\t\t\tcase 'i':\n\t\t\t\t\t\treturn reader2.getInt32Array( arrayLength );\n\n\t\t\t\t\tcase 'l':\n\t\t\t\t\t\treturn reader2.getInt64Array( arrayLength );\n\n\t\t\t\t}\n\n\t\t\t\tbreak; // cannot happen but is required by the DeepScan\n\n\t\t\tdefault:\n\t\t\t\tthrow new Error( 'THREE.FBXLoader: Unknown property type ' + type );\n\n\t\t}\n\n\t}\n\n}\n\nclass BinaryReader {\n\n\tconstructor( buffer, littleEndian ) {\n\n\t\tthis.dv = new DataView( buffer );\n\t\tthis.offset = 0;\n\t\tthis.littleEndian = ( littleEndian !== undefined ) ? littleEndian : true;\n\t\tthis._textDecoder = new TextDecoder();\n\n\t}\n\n\tgetOffset() {\n\n\t\treturn this.offset;\n\n\t}\n\n\tsize() {\n\n\t\treturn this.dv.buffer.byteLength;\n\n\t}\n\n\tskip( length ) {\n\n\t\tthis.offset += length;\n\n\t}\n\n\t// seems like true/false representation depends on exporter.\n\t// true: 1 or 'Y'(=0x59), false: 0 or 'T'(=0x54)\n\t// then sees LSB.\n\tgetBoolean() {\n\n\t\treturn ( this.getUint8() & 1 ) === 1;\n\n\t}\n\n\tgetBooleanArray( size ) {\n\n\t\tconst a = [];\n\n\t\tfor ( let i = 0; i < size; i ++ ) {\n\n\t\t\ta.push( this.getBoolean() );\n\n\t\t}\n\n\t\treturn a;\n\n\t}\n\n\tgetUint8() {\n\n\t\tconst value = this.dv.getUint8( this.offset );\n\t\tthis.offset += 1;\n\t\treturn value;\n\n\t}\n\n\tgetInt16() {\n\n\t\tconst value = this.dv.getInt16( this.offset, this.littleEndian );\n\t\tthis.offset += 2;\n\t\treturn value;\n\n\t}\n\n\tgetInt32() {\n\n\t\tconst value = this.dv.getInt32( this.offset, this.littleEndian );\n\t\tthis.offset += 4;\n\t\treturn value;\n\n\t}\n\n\tgetInt32Array( size ) {\n\n\t\tconst a = [];\n\n\t\tfor ( let i = 0; i < size; i ++ ) {\n\n\t\t\ta.push( this.getInt32() );\n\n\t\t}\n\n\t\treturn a;\n\n\t}\n\n\tgetUint32() {\n\n\t\tconst value = this.dv.getUint32( this.offset, this.littleEndian );\n\t\tthis.offset += 4;\n\t\treturn value;\n\n\t}\n\n\t// JavaScript doesn't support 64-bit integer so calculate this here\n\t// 1 << 32 will return 1 so using multiply operation instead here.\n\t// There's a possibility that this method returns wrong value if the value\n\t// is out of the range between Number.MAX_SAFE_INTEGER and Number.MIN_SAFE_INTEGER.\n\t// TODO: safely handle 64-bit integer\n\tgetInt64() {\n\n\t\tlet low, high;\n\n\t\tif ( this.littleEndian ) {\n\n\t\t\tlow = this.getUint32();\n\t\t\thigh = this.getUint32();\n\n\t\t} else {\n\n\t\t\thigh = this.getUint32();\n\t\t\tlow = this.getUint32();\n\n\t\t}\n\n\t\t// calculate negative value\n\t\tif ( high & 0x80000000 ) {\n\n\t\t\thigh = ~ high & 0xFFFFFFFF;\n\t\t\tlow = ~ low & 0xFFFFFFFF;\n\n\t\t\tif ( low === 0xFFFFFFFF ) high = ( high + 1 ) & 0xFFFFFFFF;\n\n\t\t\tlow = ( low + 1 ) & 0xFFFFFFFF;\n\n\t\t\treturn - ( high * 0x100000000 + low );\n\n\t\t}\n\n\t\treturn high * 0x100000000 + low;\n\n\t}\n\n\tgetInt64Array( size ) {\n\n\t\tconst a = [];\n\n\t\tfor ( let i = 0; i < size; i ++ ) {\n\n\t\t\ta.push( this.getInt64() );\n\n\t\t}\n\n\t\treturn a;\n\n\t}\n\n\t// Note: see getInt64() comment\n\tgetUint64() {\n\n\t\tlet low, high;\n\n\t\tif ( this.littleEndian ) {\n\n\t\t\tlow = this.getUint32();\n\t\t\thigh = this.getUint32();\n\n\t\t} else {\n\n\t\t\thigh = this.getUint32();\n\t\t\tlow = this.getUint32();\n\n\t\t}\n\n\t\treturn high * 0x100000000 + low;\n\n\t}\n\n\tgetFloat32() {\n\n\t\tconst value = this.dv.getFloat32( this.offset, this.littleEndian );\n\t\tthis.offset += 4;\n\t\treturn value;\n\n\t}\n\n\tgetFloat32Array( size ) {\n\n\t\tconst a = [];\n\n\t\tfor ( let i = 0; i < size; i ++ ) {\n\n\t\t\ta.push( this.getFloat32() );\n\n\t\t}\n\n\t\treturn a;\n\n\t}\n\n\tgetFloat64() {\n\n\t\tconst value = this.dv.getFloat64( this.offset, this.littleEndian );\n\t\tthis.offset += 8;\n\t\treturn value;\n\n\t}\n\n\tgetFloat64Array( size ) {\n\n\t\tconst a = [];\n\n\t\tfor ( let i = 0; i < size; i ++ ) {\n\n\t\t\ta.push( this.getFloat64() );\n\n\t\t}\n\n\t\treturn a;\n\n\t}\n\n\tgetArrayBuffer( size ) {\n\n\t\tconst value = this.dv.buffer.slice( this.offset, this.offset + size );\n\t\tthis.offset += size;\n\t\treturn value;\n\n\t}\n\n\tgetString( size ) {\n\n\t\tconst start = this.offset;\n\t\tlet a = new Uint8Array( this.dv.buffer, start, size );\n\n\t\tthis.skip( size );\n\n\t\tconst nullByte = a.indexOf( 0 );\n\t\tif ( nullByte >= 0 ) a = new Uint8Array( this.dv.buffer, start, nullByte );\n\n\t\treturn this._textDecoder.decode( a );\n\n\t}\n\n}\n\n// FBXTree holds a representation of the FBX data, returned by the TextParser ( FBX ASCII format)\n// and BinaryParser( FBX Binary format)\nclass FBXTree {\n\n\tadd( key, val ) {\n\n\t\tthis[ key ] = val;\n\n\t}\n\n}\n\n// ************** UTILITY FUNCTIONS **************\n\nfunction isFbxFormatBinary( buffer ) {\n\n\tconst CORRECT = 'Kaydara\\u0020FBX\\u0020Binary\\u0020\\u0020\\0';\n\n\treturn buffer.byteLength >= CORRECT.length && CORRECT === convertArrayBufferToString( buffer, 0, CORRECT.length );\n\n}\n\nfunction isFbxFormatASCII( text ) {\n\n\tconst CORRECT = [ 'K', 'a', 'y', 'd', 'a', 'r', 'a', '\\\\', 'F', 'B', 'X', '\\\\', 'B', 'i', 'n', 'a', 'r', 'y', '\\\\', '\\\\' ];\n\n\tlet cursor = 0;\n\n\tfunction read( offset ) {\n\n\t\tconst result = text[ offset - 1 ];\n\t\ttext = text.slice( cursor + offset );\n\t\tcursor ++;\n\t\treturn result;\n\n\t}\n\n\tfor ( let i = 0; i < CORRECT.length; ++ i ) {\n\n\t\tconst num = read( 1 );\n\t\tif ( num === CORRECT[ i ] ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t}\n\n\treturn true;\n\n}\n\nfunction getFbxVersion( text ) {\n\n\tconst versionRegExp = /FBXVersion: (\\d+)/;\n\tconst match = text.match( versionRegExp );\n\n\tif ( match ) {\n\n\t\tconst version = parseInt( match[ 1 ] );\n\t\treturn version;\n\n\t}\n\n\tthrow new Error( 'THREE.FBXLoader: Cannot find the version number for the file given.' );\n\n}\n\n// Converts FBX ticks into real time seconds.\nfunction convertFBXTimeToSeconds( time ) {\n\n\treturn time / 46186158000;\n\n}\n\nconst dataArray = [];\n\n// extracts the data from the correct position in the FBX array based on indexing type\nfunction getData( polygonVertexIndex, polygonIndex, vertexIndex, infoObject ) {\n\n\tlet index;\n\n\tswitch ( infoObject.mappingType ) {\n\n\t\tcase 'ByPolygonVertex' :\n\t\t\tindex = polygonVertexIndex;\n\t\t\tbreak;\n\t\tcase 'ByPolygon' :\n\t\t\tindex = polygonIndex;\n\t\t\tbreak;\n\t\tcase 'ByVertice' :\n\t\t\tindex = vertexIndex;\n\t\t\tbreak;\n\t\tcase 'AllSame' :\n\t\t\tindex = infoObject.indices[ 0 ];\n\t\t\tbreak;\n\t\tdefault :\n\t\t\tconsole.warn( 'THREE.FBXLoader: unknown attribute mapping type ' + infoObject.mappingType );\n\n\t}\n\n\tif ( infoObject.referenceType === 'IndexToDirect' ) index = infoObject.indices[ index ];\n\n\tconst from = index * infoObject.dataSize;\n\tconst to = from + infoObject.dataSize;\n\n\treturn slice( dataArray, infoObject.buffer, from, to );\n\n}\n\nconst tempEuler = new Euler();\nconst tempVec = new Vector3();\n\n// generate transformation from FBX transform data\n// ref: https://help.autodesk.com/view/FBX/2017/ENU/?guid=__files_GUID_10CDD63C_79C1_4F2D_BB28_AD2BE65A02ED_htm\n// ref: http://docs.autodesk.com/FBX/2014/ENU/FBX-SDK-Documentation/index.html?url=cpp_ref/_transformations_2main_8cxx-example.html,topicNumber=cpp_ref__transformations_2main_8cxx_example_htmlfc10a1e1-b18d-4e72-9dc0-70d0f1959f5e\nfunction generateTransform( transformData ) {\n\n\tconst lTranslationM = new Matrix4();\n\tconst lPreRotationM = new Matrix4();\n\tconst lRotationM = new Matrix4();\n\tconst lPostRotationM = new Matrix4();\n\n\tconst lScalingM = new Matrix4();\n\tconst lScalingPivotM = new Matrix4();\n\tconst lScalingOffsetM = new Matrix4();\n\tconst lRotationOffsetM = new Matrix4();\n\tconst lRotationPivotM = new Matrix4();\n\n\tconst lParentGX = new Matrix4();\n\tconst lParentLX = new Matrix4();\n\tconst lGlobalT = new Matrix4();\n\n\tconst inheritType = ( transformData.inheritType ) ? transformData.inheritType : 0;\n\n\tif ( transformData.translation ) lTranslationM.setPosition( tempVec.fromArray( transformData.translation ) );\n\n\t// For Maya models using \"Joint Orient\", Euler order only applies to rotation, not pre/post-rotations\n\tconst defaultEulerOrder = getEulerOrder( 0 );\n\n\tif ( transformData.preRotation ) {\n\n\t\tconst array = transformData.preRotation.map( MathUtils.degToRad );\n\t\tarray.push( defaultEulerOrder );\n\t\tlPreRotationM.makeRotationFromEuler( tempEuler.fromArray( array ) );\n\n\t}\n\n\tif ( transformData.rotation ) {\n\n\t\tconst array = transformData.rotation.map( MathUtils.degToRad );\n\t\tarray.push( transformData.eulerOrder || defaultEulerOrder );\n\t\tlRotationM.makeRotationFromEuler( tempEuler.fromArray( array ) );\n\n\t}\n\n\tif ( transformData.postRotation ) {\n\n\t\tconst array = transformData.postRotation.map( MathUtils.degToRad );\n\t\tarray.push( defaultEulerOrder );\n\t\tlPostRotationM.makeRotationFromEuler( tempEuler.fromArray( array ) );\n\t\tlPostRotationM.invert();\n\n\t}\n\n\tif ( transformData.scale ) lScalingM.scale( tempVec.fromArray( transformData.scale ) );\n\n\t// Pivots and offsets\n\tif ( transformData.scalingOffset ) lScalingOffsetM.setPosition( tempVec.fromArray( transformData.scalingOffset ) );\n\tif ( transformData.scalingPivot ) lScalingPivotM.setPosition( tempVec.fromArray( transformData.scalingPivot ) );\n\tif ( transformData.rotationOffset ) lRotationOffsetM.setPosition( tempVec.fromArray( transformData.rotationOffset ) );\n\tif ( transformData.rotationPivot ) lRotationPivotM.setPosition( tempVec.fromArray( transformData.rotationPivot ) );\n\n\t// parent transform\n\tif ( transformData.parentMatrixWorld ) {\n\n\t\tlParentLX.copy( transformData.parentMatrix );\n\t\tlParentGX.copy( transformData.parentMatrixWorld );\n\n\t}\n\n\tconst lLRM = lPreRotationM.clone().multiply( lRotationM ).multiply( lPostRotationM );\n\t// Global Rotation\n\tconst lParentGRM = new Matrix4();\n\tlParentGRM.extractRotation( lParentGX );\n\n\t// Global Shear*Scaling\n\tconst lParentTM = new Matrix4();\n\tlParentTM.copyPosition( lParentGX );\n\n\tconst lParentGRSM = lParentTM.clone().invert().multiply( lParentGX );\n\tconst lParentGSM = lParentGRM.clone().invert().multiply( lParentGRSM );\n\tconst lLSM = lScalingM;\n\n\tconst lGlobalRS = new Matrix4();\n\n\tif ( inheritType === 0 ) {\n\n\t\tlGlobalRS.copy( lParentGRM ).multiply( lLRM ).multiply( lParentGSM ).multiply( lLSM );\n\n\t} else if ( inheritType === 1 ) {\n\n\t\tlGlobalRS.copy( lParentGRM ).multiply( lParentGSM ).multiply( lLRM ).multiply( lLSM );\n\n\t} else {\n\n\t\tconst lParentLSM = new Matrix4().scale( new Vector3().setFromMatrixScale( lParentLX ) );\n\t\tconst lParentLSM_inv = lParentLSM.clone().invert();\n\t\tconst lParentGSM_noLocal = lParentGSM.clone().multiply( lParentLSM_inv );\n\n\t\tlGlobalRS.copy( lParentGRM ).multiply( lLRM ).multiply( lParentGSM_noLocal ).multiply( lLSM );\n\n\t}\n\n\tconst lRotationPivotM_inv = lRotationPivotM.clone().invert();\n\tconst lScalingPivotM_inv = lScalingPivotM.clone().invert();\n\t// Calculate the local transform matrix\n\tlet lTransform = lTranslationM.clone().multiply( lRotationOffsetM ).multiply( lRotationPivotM ).multiply( lPreRotationM ).multiply( lRotationM ).multiply( lPostRotationM ).multiply( lRotationPivotM_inv ).multiply( lScalingOffsetM ).multiply( lScalingPivotM ).multiply( lScalingM ).multiply( lScalingPivotM_inv );\n\n\tconst lLocalTWithAllPivotAndOffsetInfo = new Matrix4().copyPosition( lTransform );\n\n\tconst lGlobalTranslation = lParentGX.clone().multiply( lLocalTWithAllPivotAndOffsetInfo );\n\tlGlobalT.copyPosition( lGlobalTranslation );\n\n\tlTransform = lGlobalT.clone().multiply( lGlobalRS );\n\n\t// from global to local\n\tlTransform.premultiply( lParentGX.invert() );\n\n\treturn lTransform;\n\n}\n\n// Returns the three.js intrinsic Euler order corresponding to FBX extrinsic Euler order\n// ref: http://help.autodesk.com/view/FBX/2017/ENU/?guid=__cpp_ref_class_fbx_euler_html\nfunction getEulerOrder( order ) {\n\n\torder = order || 0;\n\n\tconst enums = [\n\t\t'ZYX', // -> XYZ extrinsic\n\t\t'YZX', // -> XZY extrinsic\n\t\t'XZY', // -> YZX extrinsic\n\t\t'ZXY', // -> YXZ extrinsic\n\t\t'YXZ', // -> ZXY extrinsic\n\t\t'XYZ', // -> ZYX extrinsic\n\t\t//'SphericXYZ', // not possible to support\n\t];\n\n\tif ( order === 6 ) {\n\n\t\tconsole.warn( 'THREE.FBXLoader: unsupported Euler Order: Spherical XYZ. Animations and rotations may be incorrect.' );\n\t\treturn enums[ 0 ];\n\n\t}\n\n\treturn enums[ order ];\n\n}\n\n// Parses comma separated list of numbers and returns them an array.\n// Used internally by the TextParser\nfunction parseNumberArray( value ) {\n\n\tconst array = value.split( ',' ).map( function ( val ) {\n\n\t\treturn parseFloat( val );\n\n\t} );\n\n\treturn array;\n\n}\n\nfunction convertArrayBufferToString( buffer, from, to ) {\n\n\tif ( from === undefined ) from = 0;\n\tif ( to === undefined ) to = buffer.byteLength;\n\n\treturn new TextDecoder().decode( new Uint8Array( buffer, from, to ) );\n\n}\n\nfunction append( a, b ) {\n\n\tfor ( let i = 0, j = a.length, l = b.length; i < l; i ++, j ++ ) {\n\n\t\ta[ j ] = b[ i ];\n\n\t}\n\n}\n\nfunction slice( a, b, from, to ) {\n\n\tfor ( let i = from, j = 0; i < to; i ++, j ++ ) {\n\n\t\ta[ j ] = b[ i ];\n\n\t}\n\n\treturn a;\n\n}\n\n\nexport { FBXLoader };\n","import {\n\tBufferAttribute,\n\tBufferGeometry,\n\tFloat32BufferAttribute,\n\tInstancedBufferAttribute,\n\tInterleavedBuffer,\n\tInterleavedBufferAttribute,\n\tTriangleFanDrawMode,\n\tTriangleStripDrawMode,\n\tTrianglesDrawMode,\n\tVector3,\n} from 'three';\n\nfunction computeMikkTSpaceTangents( geometry, MikkTSpace, negateSign = true ) {\n\n\tif ( ! MikkTSpace || ! MikkTSpace.isReady ) {\n\n\t\tthrow new Error( 'BufferGeometryUtils: Initialized MikkTSpace library required.' );\n\n\t}\n\n\tif ( ! geometry.hasAttribute( 'position' ) || ! geometry.hasAttribute( 'normal' ) || ! geometry.hasAttribute( 'uv' ) ) {\n\n\t\tthrow new Error( 'BufferGeometryUtils: Tangents require \"position\", \"normal\", and \"uv\" attributes.' );\n\n\t}\n\n\tfunction getAttributeArray( attribute ) {\n\n\t\tif ( attribute.normalized || attribute.isInterleavedBufferAttribute ) {\n\n\t\t\tconst dstArray = new Float32Array( attribute.count * attribute.itemSize );\n\n\t\t\tfor ( let i = 0, j = 0; i < attribute.count; i ++ ) {\n\n\t\t\t\tdstArray[ j ++ ] = attribute.getX( i );\n\t\t\t\tdstArray[ j ++ ] = attribute.getY( i );\n\n\t\t\t\tif ( attribute.itemSize > 2 ) {\n\n\t\t\t\t\tdstArray[ j ++ ] = attribute.getZ( i );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn dstArray;\n\n\t\t}\n\n\t\tif ( attribute.array instanceof Float32Array ) {\n\n\t\t\treturn attribute.array;\n\n\t\t}\n\n\t\treturn new Float32Array( attribute.array );\n\n\t}\n\n\t// MikkTSpace algorithm requires non-indexed input.\n\n\tconst _geometry = geometry.index ? geometry.toNonIndexed() : geometry;\n\n\t// Compute vertex tangents.\n\n\tconst tangents = MikkTSpace.generateTangents(\n\n\t\tgetAttributeArray( _geometry.attributes.position ),\n\t\tgetAttributeArray( _geometry.attributes.normal ),\n\t\tgetAttributeArray( _geometry.attributes.uv )\n\n\t);\n\n\t// Texture coordinate convention of glTF differs from the apparent\n\t// default of the MikkTSpace library; .w component must be flipped.\n\n\tif ( negateSign ) {\n\n\t\tfor ( let i = 3; i < tangents.length; i += 4 ) {\n\n\t\t\ttangents[ i ] *= - 1;\n\n\t\t}\n\n\t}\n\n\t//\n\n\t_geometry.setAttribute( 'tangent', new BufferAttribute( tangents, 4 ) );\n\n\tif ( geometry !== _geometry ) {\n\n\t\tgeometry.copy( _geometry );\n\n\t}\n\n\treturn geometry;\n\n}\n\n/**\n * @param {Array} geometries\n * @param {Boolean} useGroups\n * @return {BufferGeometry}\n */\nfunction mergeGeometries( geometries, useGroups = false ) {\n\n\tconst isIndexed = geometries[ 0 ].index !== null;\n\n\tconst attributesUsed = new Set( Object.keys( geometries[ 0 ].attributes ) );\n\tconst morphAttributesUsed = new Set( Object.keys( geometries[ 0 ].morphAttributes ) );\n\n\tconst attributes = {};\n\tconst morphAttributes = {};\n\n\tconst morphTargetsRelative = geometries[ 0 ].morphTargetsRelative;\n\n\tconst mergedGeometry = new BufferGeometry();\n\n\tlet offset = 0;\n\n\tfor ( let i = 0; i < geometries.length; ++ i ) {\n\n\t\tconst geometry = geometries[ i ];\n\t\tlet attributesCount = 0;\n\n\t\t// ensure that all geometries are indexed, or none\n\n\t\tif ( isIndexed !== ( geometry.index !== null ) ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index ' + i + '. All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them.' );\n\t\t\treturn null;\n\n\t\t}\n\n\t\t// gather attributes, exit early if they're different\n\n\t\tfor ( const name in geometry.attributes ) {\n\n\t\t\tif ( ! attributesUsed.has( name ) ) {\n\n\t\t\t\tconsole.error( 'THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index ' + i + '. All geometries must have compatible attributes; make sure \"' + name + '\" attribute exists among all geometries, or in none of them.' );\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t\tif ( attributes[ name ] === undefined ) attributes[ name ] = [];\n\n\t\t\tattributes[ name ].push( geometry.attributes[ name ] );\n\n\t\t\tattributesCount ++;\n\n\t\t}\n\n\t\t// ensure geometries have the same number of attributes\n\n\t\tif ( attributesCount !== attributesUsed.size ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index ' + i + '. Make sure all geometries have the same number of attributes.' );\n\t\t\treturn null;\n\n\t\t}\n\n\t\t// gather morph attributes, exit early if they're different\n\n\t\tif ( morphTargetsRelative !== geometry.morphTargetsRelative ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index ' + i + '. .morphTargetsRelative must be consistent throughout all geometries.' );\n\t\t\treturn null;\n\n\t\t}\n\n\t\tfor ( const name in geometry.morphAttributes ) {\n\n\t\t\tif ( ! morphAttributesUsed.has( name ) ) {\n\n\t\t\t\tconsole.error( 'THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index ' + i + '. .morphAttributes must be consistent throughout all geometries.' );\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t\tif ( morphAttributes[ name ] === undefined ) morphAttributes[ name ] = [];\n\n\t\t\tmorphAttributes[ name ].push( geometry.morphAttributes[ name ] );\n\n\t\t}\n\n\t\tif ( useGroups ) {\n\n\t\t\tlet count;\n\n\t\t\tif ( isIndexed ) {\n\n\t\t\t\tcount = geometry.index.count;\n\n\t\t\t} else if ( geometry.attributes.position !== undefined ) {\n\n\t\t\t\tcount = geometry.attributes.position.count;\n\n\t\t\t} else {\n\n\t\t\t\tconsole.error( 'THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index ' + i + '. The geometry must have either an index or a position attribute' );\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t\tmergedGeometry.addGroup( offset, count, i );\n\n\t\t\toffset += count;\n\n\t\t}\n\n\t}\n\n\t// merge indices\n\n\tif ( isIndexed ) {\n\n\t\tlet indexOffset = 0;\n\t\tconst mergedIndex = [];\n\n\t\tfor ( let i = 0; i < geometries.length; ++ i ) {\n\n\t\t\tconst index = geometries[ i ].index;\n\n\t\t\tfor ( let j = 0; j < index.count; ++ j ) {\n\n\t\t\t\tmergedIndex.push( index.getX( j ) + indexOffset );\n\n\t\t\t}\n\n\t\t\tindexOffset += geometries[ i ].attributes.position.count;\n\n\t\t}\n\n\t\tmergedGeometry.setIndex( mergedIndex );\n\n\t}\n\n\t// merge attributes\n\n\tfor ( const name in attributes ) {\n\n\t\tconst mergedAttribute = mergeAttributes( attributes[ name ] );\n\n\t\tif ( ! mergedAttribute ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the ' + name + ' attribute.' );\n\t\t\treturn null;\n\n\t\t}\n\n\t\tmergedGeometry.setAttribute( name, mergedAttribute );\n\n\t}\n\n\t// merge morph attributes\n\n\tfor ( const name in morphAttributes ) {\n\n\t\tconst numMorphTargets = morphAttributes[ name ][ 0 ].length;\n\n\t\tif ( numMorphTargets === 0 ) break;\n\n\t\tmergedGeometry.morphAttributes = mergedGeometry.morphAttributes || {};\n\t\tmergedGeometry.morphAttributes[ name ] = [];\n\n\t\tfor ( let i = 0; i < numMorphTargets; ++ i ) {\n\n\t\t\tconst morphAttributesToMerge = [];\n\n\t\t\tfor ( let j = 0; j < morphAttributes[ name ].length; ++ j ) {\n\n\t\t\t\tmorphAttributesToMerge.push( morphAttributes[ name ][ j ][ i ] );\n\n\t\t\t}\n\n\t\t\tconst mergedMorphAttribute = mergeAttributes( morphAttributesToMerge );\n\n\t\t\tif ( ! mergedMorphAttribute ) {\n\n\t\t\t\tconsole.error( 'THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the ' + name + ' morphAttribute.' );\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t\tmergedGeometry.morphAttributes[ name ].push( mergedMorphAttribute );\n\n\t\t}\n\n\t}\n\n\treturn mergedGeometry;\n\n}\n\n/**\n * @param {Array} attributes\n * @return {BufferAttribute}\n */\nfunction mergeAttributes( attributes ) {\n\n\tlet TypedArray;\n\tlet itemSize;\n\tlet normalized;\n\tlet gpuType = - 1;\n\tlet arrayLength = 0;\n\n\tfor ( let i = 0; i < attributes.length; ++ i ) {\n\n\t\tconst attribute = attributes[ i ];\n\n\t\tif ( TypedArray === undefined ) TypedArray = attribute.array.constructor;\n\t\tif ( TypedArray !== attribute.array.constructor ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes.' );\n\t\t\treturn null;\n\n\t\t}\n\n\t\tif ( itemSize === undefined ) itemSize = attribute.itemSize;\n\t\tif ( itemSize !== attribute.itemSize ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes.' );\n\t\t\treturn null;\n\n\t\t}\n\n\t\tif ( normalized === undefined ) normalized = attribute.normalized;\n\t\tif ( normalized !== attribute.normalized ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes.' );\n\t\t\treturn null;\n\n\t\t}\n\n\t\tif ( gpuType === - 1 ) gpuType = attribute.gpuType;\n\t\tif ( gpuType !== attribute.gpuType ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.gpuType must be consistent across matching attributes.' );\n\t\t\treturn null;\n\n\t\t}\n\n\t\tarrayLength += attribute.count * itemSize;\n\n\t}\n\n\tconst array = new TypedArray( arrayLength );\n\tconst result = new BufferAttribute( array, itemSize, normalized );\n\tlet offset = 0;\n\n\tfor ( let i = 0; i < attributes.length; ++ i ) {\n\n\t\tconst attribute = attributes[ i ];\n\t\tif ( attribute.isInterleavedBufferAttribute ) {\n\n\t\t\tconst tupleOffset = offset / itemSize;\n\t\t\tfor ( let j = 0, l = attribute.count; j < l; j ++ ) {\n\n\t\t\t\tfor ( let c = 0; c < itemSize; c ++ ) {\n\n\t\t\t\t\tconst value = attribute.getComponent( j, c );\n\t\t\t\t\tresult.setComponent( j + tupleOffset, c, value );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tarray.set( attribute.array, offset );\n\n\t\t}\n\n\t\toffset += attribute.count * itemSize;\n\n\t}\n\n\tif ( gpuType !== undefined ) {\n\n\t\tresult.gpuType = gpuType;\n\n\t}\n\n\treturn result;\n\n}\n\n/**\n * @param {BufferAttribute}\n * @return {BufferAttribute}\n */\nexport function deepCloneAttribute( attribute ) {\n\n\tif ( attribute.isInstancedInterleavedBufferAttribute || attribute.isInterleavedBufferAttribute ) {\n\n\t\treturn deinterleaveAttribute( attribute );\n\n\t}\n\n\tif ( attribute.isInstancedBufferAttribute ) {\n\n\t\treturn new InstancedBufferAttribute().copy( attribute );\n\n\t}\n\n\treturn new BufferAttribute().copy( attribute );\n\n}\n\n/**\n * @param {Array} attributes\n * @return {Array}\n */\nfunction interleaveAttributes( attributes ) {\n\n\t// Interleaves the provided attributes into an InterleavedBuffer and returns\n\t// a set of InterleavedBufferAttributes for each attribute\n\tlet TypedArray;\n\tlet arrayLength = 0;\n\tlet stride = 0;\n\n\t// calculate the length and type of the interleavedBuffer\n\tfor ( let i = 0, l = attributes.length; i < l; ++ i ) {\n\n\t\tconst attribute = attributes[ i ];\n\n\t\tif ( TypedArray === undefined ) TypedArray = attribute.array.constructor;\n\t\tif ( TypedArray !== attribute.array.constructor ) {\n\n\t\t\tconsole.error( 'AttributeBuffers of different types cannot be interleaved' );\n\t\t\treturn null;\n\n\t\t}\n\n\t\tarrayLength += attribute.array.length;\n\t\tstride += attribute.itemSize;\n\n\t}\n\n\t// Create the set of buffer attributes\n\tconst interleavedBuffer = new InterleavedBuffer( new TypedArray( arrayLength ), stride );\n\tlet offset = 0;\n\tconst res = [];\n\tconst getters = [ 'getX', 'getY', 'getZ', 'getW' ];\n\tconst setters = [ 'setX', 'setY', 'setZ', 'setW' ];\n\n\tfor ( let j = 0, l = attributes.length; j < l; j ++ ) {\n\n\t\tconst attribute = attributes[ j ];\n\t\tconst itemSize = attribute.itemSize;\n\t\tconst count = attribute.count;\n\t\tconst iba = new InterleavedBufferAttribute( interleavedBuffer, itemSize, offset, attribute.normalized );\n\t\tres.push( iba );\n\n\t\toffset += itemSize;\n\n\t\t// Move the data for each attribute into the new interleavedBuffer\n\t\t// at the appropriate offset\n\t\tfor ( let c = 0; c < count; c ++ ) {\n\n\t\t\tfor ( let k = 0; k < itemSize; k ++ ) {\n\n\t\t\t\tiba[ setters[ k ] ]( c, attribute[ getters[ k ] ]( c ) );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\treturn res;\n\n}\n\n// returns a new, non-interleaved version of the provided attribute\nexport function deinterleaveAttribute( attribute ) {\n\n\tconst cons = attribute.data.array.constructor;\n\tconst count = attribute.count;\n\tconst itemSize = attribute.itemSize;\n\tconst normalized = attribute.normalized;\n\n\tconst array = new cons( count * itemSize );\n\tlet newAttribute;\n\tif ( attribute.isInstancedInterleavedBufferAttribute ) {\n\n\t\tnewAttribute = new InstancedBufferAttribute( array, itemSize, normalized, attribute.meshPerAttribute );\n\n\t} else {\n\n\t\tnewAttribute = new BufferAttribute( array, itemSize, normalized );\n\n\t}\n\n\tfor ( let i = 0; i < count; i ++ ) {\n\n\t\tnewAttribute.setX( i, attribute.getX( i ) );\n\n\t\tif ( itemSize >= 2 ) {\n\n\t\t\tnewAttribute.setY( i, attribute.getY( i ) );\n\n\t\t}\n\n\t\tif ( itemSize >= 3 ) {\n\n\t\t\tnewAttribute.setZ( i, attribute.getZ( i ) );\n\n\t\t}\n\n\t\tif ( itemSize >= 4 ) {\n\n\t\t\tnewAttribute.setW( i, attribute.getW( i ) );\n\n\t\t}\n\n\t}\n\n\treturn newAttribute;\n\n}\n\n// deinterleaves all attributes on the geometry\nexport function deinterleaveGeometry( geometry ) {\n\n\tconst attributes = geometry.attributes;\n\tconst morphTargets = geometry.morphTargets;\n\tconst attrMap = new Map();\n\n\tfor ( const key in attributes ) {\n\n\t\tconst attr = attributes[ key ];\n\t\tif ( attr.isInterleavedBufferAttribute ) {\n\n\t\t\tif ( ! attrMap.has( attr ) ) {\n\n\t\t\t\tattrMap.set( attr, deinterleaveAttribute( attr ) );\n\n\t\t\t}\n\n\t\t\tattributes[ key ] = attrMap.get( attr );\n\n\t\t}\n\n\t}\n\n\tfor ( const key in morphTargets ) {\n\n\t\tconst attr = morphTargets[ key ];\n\t\tif ( attr.isInterleavedBufferAttribute ) {\n\n\t\t\tif ( ! attrMap.has( attr ) ) {\n\n\t\t\t\tattrMap.set( attr, deinterleaveAttribute( attr ) );\n\n\t\t\t}\n\n\t\t\tmorphTargets[ key ] = attrMap.get( attr );\n\n\t\t}\n\n\t}\n\n}\n\n/**\n * @param {BufferGeometry} geometry\n * @return {number}\n */\nfunction estimateBytesUsed( geometry ) {\n\n\t// Return the estimated memory used by this geometry in bytes\n\t// Calculate using itemSize, count, and BYTES_PER_ELEMENT to account\n\t// for InterleavedBufferAttributes.\n\tlet mem = 0;\n\tfor ( const name in geometry.attributes ) {\n\n\t\tconst attr = geometry.getAttribute( name );\n\t\tmem += attr.count * attr.itemSize * attr.array.BYTES_PER_ELEMENT;\n\n\t}\n\n\tconst indices = geometry.getIndex();\n\tmem += indices ? indices.count * indices.itemSize * indices.array.BYTES_PER_ELEMENT : 0;\n\treturn mem;\n\n}\n\n/**\n * @param {BufferGeometry} geometry\n * @param {number} tolerance\n * @return {BufferGeometry}\n */\nfunction mergeVertices( geometry, tolerance = 1e-4 ) {\n\n\ttolerance = Math.max( tolerance, Number.EPSILON );\n\n\t// Generate an index buffer if the geometry doesn't have one, or optimize it\n\t// if it's already available.\n\tconst hashToIndex = {};\n\tconst indices = geometry.getIndex();\n\tconst positions = geometry.getAttribute( 'position' );\n\tconst vertexCount = indices ? indices.count : positions.count;\n\n\t// next value for triangle indices\n\tlet nextIndex = 0;\n\n\t// attributes and new attribute arrays\n\tconst attributeNames = Object.keys( geometry.attributes );\n\tconst tmpAttributes = {};\n\tconst tmpMorphAttributes = {};\n\tconst newIndices = [];\n\tconst getters = [ 'getX', 'getY', 'getZ', 'getW' ];\n\tconst setters = [ 'setX', 'setY', 'setZ', 'setW' ];\n\n\t// Initialize the arrays, allocating space conservatively. Extra\n\t// space will be trimmed in the last step.\n\tfor ( let i = 0, l = attributeNames.length; i < l; i ++ ) {\n\n\t\tconst name = attributeNames[ i ];\n\t\tconst attr = geometry.attributes[ name ];\n\n\t\ttmpAttributes[ name ] = new attr.constructor(\n\t\t\tnew attr.array.constructor( attr.count * attr.itemSize ),\n\t\t\tattr.itemSize,\n\t\t\tattr.normalized\n\t\t);\n\n\t\tconst morphAttributes = geometry.morphAttributes[ name ];\n\t\tif ( morphAttributes ) {\n\n\t\t\tif ( ! tmpMorphAttributes[ name ] ) tmpMorphAttributes[ name ] = [];\n\t\t\tmorphAttributes.forEach( ( morphAttr, i ) => {\n\n\t\t\t\tconst array = new morphAttr.array.constructor( morphAttr.count * morphAttr.itemSize );\n\t\t\t\ttmpMorphAttributes[ name ][ i ] = new morphAttr.constructor( array, morphAttr.itemSize, morphAttr.normalized );\n\n\t\t\t} );\n\n\t\t}\n\n\t}\n\n\t// convert the error tolerance to an amount of decimal places to truncate to\n\tconst halfTolerance = tolerance * 0.5;\n\tconst exponent = Math.log10( 1 / tolerance );\n\tconst hashMultiplier = Math.pow( 10, exponent );\n\tconst hashAdditive = halfTolerance * hashMultiplier;\n\tfor ( let i = 0; i < vertexCount; i ++ ) {\n\n\t\tconst index = indices ? indices.getX( i ) : i;\n\n\t\t// Generate a hash for the vertex attributes at the current index 'i'\n\t\tlet hash = '';\n\t\tfor ( let j = 0, l = attributeNames.length; j < l; j ++ ) {\n\n\t\t\tconst name = attributeNames[ j ];\n\t\t\tconst attribute = geometry.getAttribute( name );\n\t\t\tconst itemSize = attribute.itemSize;\n\n\t\t\tfor ( let k = 0; k < itemSize; k ++ ) {\n\n\t\t\t\t// double tilde truncates the decimal value\n\t\t\t\thash += `${ ~ ~ ( attribute[ getters[ k ] ]( index ) * hashMultiplier + hashAdditive ) },`;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// Add another reference to the vertex if it's already\n\t\t// used by another index\n\t\tif ( hash in hashToIndex ) {\n\n\t\t\tnewIndices.push( hashToIndex[ hash ] );\n\n\t\t} else {\n\n\t\t\t// copy data to the new index in the temporary attributes\n\t\t\tfor ( let j = 0, l = attributeNames.length; j < l; j ++ ) {\n\n\t\t\t\tconst name = attributeNames[ j ];\n\t\t\t\tconst attribute = geometry.getAttribute( name );\n\t\t\t\tconst morphAttributes = geometry.morphAttributes[ name ];\n\t\t\t\tconst itemSize = attribute.itemSize;\n\t\t\t\tconst newArray = tmpAttributes[ name ];\n\t\t\t\tconst newMorphArrays = tmpMorphAttributes[ name ];\n\n\t\t\t\tfor ( let k = 0; k < itemSize; k ++ ) {\n\n\t\t\t\t\tconst getterFunc = getters[ k ];\n\t\t\t\t\tconst setterFunc = setters[ k ];\n\t\t\t\t\tnewArray[ setterFunc ]( nextIndex, attribute[ getterFunc ]( index ) );\n\n\t\t\t\t\tif ( morphAttributes ) {\n\n\t\t\t\t\t\tfor ( let m = 0, ml = morphAttributes.length; m < ml; m ++ ) {\n\n\t\t\t\t\t\t\tnewMorphArrays[ m ][ setterFunc ]( nextIndex, morphAttributes[ m ][ getterFunc ]( index ) );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\thashToIndex[ hash ] = nextIndex;\n\t\t\tnewIndices.push( nextIndex );\n\t\t\tnextIndex ++;\n\n\t\t}\n\n\t}\n\n\t// generate result BufferGeometry\n\tconst result = geometry.clone();\n\tfor ( const name in geometry.attributes ) {\n\n\t\tconst tmpAttribute = tmpAttributes[ name ];\n\n\t\tresult.setAttribute( name, new tmpAttribute.constructor(\n\t\t\ttmpAttribute.array.slice( 0, nextIndex * tmpAttribute.itemSize ),\n\t\t\ttmpAttribute.itemSize,\n\t\t\ttmpAttribute.normalized,\n\t\t) );\n\n\t\tif ( ! ( name in tmpMorphAttributes ) ) continue;\n\n\t\tfor ( let j = 0; j < tmpMorphAttributes[ name ].length; j ++ ) {\n\n\t\t\tconst tmpMorphAttribute = tmpMorphAttributes[ name ][ j ];\n\n\t\t\tresult.morphAttributes[ name ][ j ] = new tmpMorphAttribute.constructor(\n\t\t\t\ttmpMorphAttribute.array.slice( 0, nextIndex * tmpMorphAttribute.itemSize ),\n\t\t\t\ttmpMorphAttribute.itemSize,\n\t\t\t\ttmpMorphAttribute.normalized,\n\t\t\t);\n\n\t\t}\n\n\t}\n\n\t// indices\n\n\tresult.setIndex( newIndices );\n\n\treturn result;\n\n}\n\n/**\n * @param {BufferGeometry} geometry\n * @param {number} drawMode\n * @return {BufferGeometry}\n */\nfunction toTrianglesDrawMode( geometry, drawMode ) {\n\n\tif ( drawMode === TrianglesDrawMode ) {\n\n\t\tconsole.warn( 'THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles.' );\n\t\treturn geometry;\n\n\t}\n\n\tif ( drawMode === TriangleFanDrawMode || drawMode === TriangleStripDrawMode ) {\n\n\t\tlet index = geometry.getIndex();\n\n\t\t// generate index if not present\n\n\t\tif ( index === null ) {\n\n\t\t\tconst indices = [];\n\n\t\t\tconst position = geometry.getAttribute( 'position' );\n\n\t\t\tif ( position !== undefined ) {\n\n\t\t\t\tfor ( let i = 0; i < position.count; i ++ ) {\n\n\t\t\t\t\tindices.push( i );\n\n\t\t\t\t}\n\n\t\t\t\tgeometry.setIndex( indices );\n\t\t\t\tindex = geometry.getIndex();\n\n\t\t\t} else {\n\n\t\t\t\tconsole.error( 'THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible.' );\n\t\t\t\treturn geometry;\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tconst numberOfTriangles = index.count - 2;\n\t\tconst newIndices = [];\n\n\t\tif ( drawMode === TriangleFanDrawMode ) {\n\n\t\t\t// gl.TRIANGLE_FAN\n\n\t\t\tfor ( let i = 1; i <= numberOfTriangles; i ++ ) {\n\n\t\t\t\tnewIndices.push( index.getX( 0 ) );\n\t\t\t\tnewIndices.push( index.getX( i ) );\n\t\t\t\tnewIndices.push( index.getX( i + 1 ) );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// gl.TRIANGLE_STRIP\n\n\t\t\tfor ( let i = 0; i < numberOfTriangles; i ++ ) {\n\n\t\t\t\tif ( i % 2 === 0 ) {\n\n\t\t\t\t\tnewIndices.push( index.getX( i ) );\n\t\t\t\t\tnewIndices.push( index.getX( i + 1 ) );\n\t\t\t\t\tnewIndices.push( index.getX( i + 2 ) );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tnewIndices.push( index.getX( i + 2 ) );\n\t\t\t\t\tnewIndices.push( index.getX( i + 1 ) );\n\t\t\t\t\tnewIndices.push( index.getX( i ) );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( ( newIndices.length / 3 ) !== numberOfTriangles ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.' );\n\n\t\t}\n\n\t\t// build final geometry\n\n\t\tconst newGeometry = geometry.clone();\n\t\tnewGeometry.setIndex( newIndices );\n\t\tnewGeometry.clearGroups();\n\n\t\treturn newGeometry;\n\n\t} else {\n\n\t\tconsole.error( 'THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:', drawMode );\n\t\treturn geometry;\n\n\t}\n\n}\n\n/**\n * Calculates the morphed attributes of a morphed/skinned BufferGeometry.\n * Helpful for Raytracing or Decals.\n * @param {Mesh | Line | Points} object An instance of Mesh, Line or Points.\n * @return {Object} An Object with original position/normal attributes and morphed ones.\n */\nfunction computeMorphedAttributes( object ) {\n\n\tconst _vA = new Vector3();\n\tconst _vB = new Vector3();\n\tconst _vC = new Vector3();\n\n\tconst _tempA = new Vector3();\n\tconst _tempB = new Vector3();\n\tconst _tempC = new Vector3();\n\n\tconst _morphA = new Vector3();\n\tconst _morphB = new Vector3();\n\tconst _morphC = new Vector3();\n\n\tfunction _calculateMorphedAttributeData(\n\t\tobject,\n\t\tattribute,\n\t\tmorphAttribute,\n\t\tmorphTargetsRelative,\n\t\ta,\n\t\tb,\n\t\tc,\n\t\tmodifiedAttributeArray\n\t) {\n\n\t\t_vA.fromBufferAttribute( attribute, a );\n\t\t_vB.fromBufferAttribute( attribute, b );\n\t\t_vC.fromBufferAttribute( attribute, c );\n\n\t\tconst morphInfluences = object.morphTargetInfluences;\n\n\t\tif ( morphAttribute && morphInfluences ) {\n\n\t\t\t_morphA.set( 0, 0, 0 );\n\t\t\t_morphB.set( 0, 0, 0 );\n\t\t\t_morphC.set( 0, 0, 0 );\n\n\t\t\tfor ( let i = 0, il = morphAttribute.length; i < il; i ++ ) {\n\n\t\t\t\tconst influence = morphInfluences[ i ];\n\t\t\t\tconst morph = morphAttribute[ i ];\n\n\t\t\t\tif ( influence === 0 ) continue;\n\n\t\t\t\t_tempA.fromBufferAttribute( morph, a );\n\t\t\t\t_tempB.fromBufferAttribute( morph, b );\n\t\t\t\t_tempC.fromBufferAttribute( morph, c );\n\n\t\t\t\tif ( morphTargetsRelative ) {\n\n\t\t\t\t\t_morphA.addScaledVector( _tempA, influence );\n\t\t\t\t\t_morphB.addScaledVector( _tempB, influence );\n\t\t\t\t\t_morphC.addScaledVector( _tempC, influence );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t_morphA.addScaledVector( _tempA.sub( _vA ), influence );\n\t\t\t\t\t_morphB.addScaledVector( _tempB.sub( _vB ), influence );\n\t\t\t\t\t_morphC.addScaledVector( _tempC.sub( _vC ), influence );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t_vA.add( _morphA );\n\t\t\t_vB.add( _morphB );\n\t\t\t_vC.add( _morphC );\n\n\t\t}\n\n\t\tif ( object.isSkinnedMesh ) {\n\n\t\t\tobject.applyBoneTransform( a, _vA );\n\t\t\tobject.applyBoneTransform( b, _vB );\n\t\t\tobject.applyBoneTransform( c, _vC );\n\n\t\t}\n\n\t\tmodifiedAttributeArray[ a * 3 + 0 ] = _vA.x;\n\t\tmodifiedAttributeArray[ a * 3 + 1 ] = _vA.y;\n\t\tmodifiedAttributeArray[ a * 3 + 2 ] = _vA.z;\n\t\tmodifiedAttributeArray[ b * 3 + 0 ] = _vB.x;\n\t\tmodifiedAttributeArray[ b * 3 + 1 ] = _vB.y;\n\t\tmodifiedAttributeArray[ b * 3 + 2 ] = _vB.z;\n\t\tmodifiedAttributeArray[ c * 3 + 0 ] = _vC.x;\n\t\tmodifiedAttributeArray[ c * 3 + 1 ] = _vC.y;\n\t\tmodifiedAttributeArray[ c * 3 + 2 ] = _vC.z;\n\n\t}\n\n\tconst geometry = object.geometry;\n\tconst material = object.material;\n\n\tlet a, b, c;\n\tconst index = geometry.index;\n\tconst positionAttribute = geometry.attributes.position;\n\tconst morphPosition = geometry.morphAttributes.position;\n\tconst morphTargetsRelative = geometry.morphTargetsRelative;\n\tconst normalAttribute = geometry.attributes.normal;\n\tconst morphNormal = geometry.morphAttributes.position;\n\n\tconst groups = geometry.groups;\n\tconst drawRange = geometry.drawRange;\n\tlet i, j, il, jl;\n\tlet group;\n\tlet start, end;\n\n\tconst modifiedPosition = new Float32Array( positionAttribute.count * positionAttribute.itemSize );\n\tconst modifiedNormal = new Float32Array( normalAttribute.count * normalAttribute.itemSize );\n\n\tif ( index !== null ) {\n\n\t\t// indexed buffer geometry\n\n\t\tif ( Array.isArray( material ) ) {\n\n\t\t\tfor ( i = 0, il = groups.length; i < il; i ++ ) {\n\n\t\t\t\tgroup = groups[ i ];\n\n\t\t\t\tstart = Math.max( group.start, drawRange.start );\n\t\t\t\tend = Math.min( ( group.start + group.count ), ( drawRange.start + drawRange.count ) );\n\n\t\t\t\tfor ( j = start, jl = end; j < jl; j += 3 ) {\n\n\t\t\t\t\ta = index.getX( j );\n\t\t\t\t\tb = index.getX( j + 1 );\n\t\t\t\t\tc = index.getX( j + 2 );\n\n\t\t\t\t\t_calculateMorphedAttributeData(\n\t\t\t\t\t\tobject,\n\t\t\t\t\t\tpositionAttribute,\n\t\t\t\t\t\tmorphPosition,\n\t\t\t\t\t\tmorphTargetsRelative,\n\t\t\t\t\t\ta, b, c,\n\t\t\t\t\t\tmodifiedPosition\n\t\t\t\t\t);\n\n\t\t\t\t\t_calculateMorphedAttributeData(\n\t\t\t\t\t\tobject,\n\t\t\t\t\t\tnormalAttribute,\n\t\t\t\t\t\tmorphNormal,\n\t\t\t\t\t\tmorphTargetsRelative,\n\t\t\t\t\t\ta, b, c,\n\t\t\t\t\t\tmodifiedNormal\n\t\t\t\t\t);\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tstart = Math.max( 0, drawRange.start );\n\t\t\tend = Math.min( index.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\tfor ( i = start, il = end; i < il; i += 3 ) {\n\n\t\t\t\ta = index.getX( i );\n\t\t\t\tb = index.getX( i + 1 );\n\t\t\t\tc = index.getX( i + 2 );\n\n\t\t\t\t_calculateMorphedAttributeData(\n\t\t\t\t\tobject,\n\t\t\t\t\tpositionAttribute,\n\t\t\t\t\tmorphPosition,\n\t\t\t\t\tmorphTargetsRelative,\n\t\t\t\t\ta, b, c,\n\t\t\t\t\tmodifiedPosition\n\t\t\t\t);\n\n\t\t\t\t_calculateMorphedAttributeData(\n\t\t\t\t\tobject,\n\t\t\t\t\tnormalAttribute,\n\t\t\t\t\tmorphNormal,\n\t\t\t\t\tmorphTargetsRelative,\n\t\t\t\t\ta, b, c,\n\t\t\t\t\tmodifiedNormal\n\t\t\t\t);\n\n\t\t\t}\n\n\t\t}\n\n\t} else {\n\n\t\t// non-indexed buffer geometry\n\n\t\tif ( Array.isArray( material ) ) {\n\n\t\t\tfor ( i = 0, il = groups.length; i < il; i ++ ) {\n\n\t\t\t\tgroup = groups[ i ];\n\n\t\t\t\tstart = Math.max( group.start, drawRange.start );\n\t\t\t\tend = Math.min( ( group.start + group.count ), ( drawRange.start + drawRange.count ) );\n\n\t\t\t\tfor ( j = start, jl = end; j < jl; j += 3 ) {\n\n\t\t\t\t\ta = j;\n\t\t\t\t\tb = j + 1;\n\t\t\t\t\tc = j + 2;\n\n\t\t\t\t\t_calculateMorphedAttributeData(\n\t\t\t\t\t\tobject,\n\t\t\t\t\t\tpositionAttribute,\n\t\t\t\t\t\tmorphPosition,\n\t\t\t\t\t\tmorphTargetsRelative,\n\t\t\t\t\t\ta, b, c,\n\t\t\t\t\t\tmodifiedPosition\n\t\t\t\t\t);\n\n\t\t\t\t\t_calculateMorphedAttributeData(\n\t\t\t\t\t\tobject,\n\t\t\t\t\t\tnormalAttribute,\n\t\t\t\t\t\tmorphNormal,\n\t\t\t\t\t\tmorphTargetsRelative,\n\t\t\t\t\t\ta, b, c,\n\t\t\t\t\t\tmodifiedNormal\n\t\t\t\t\t);\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tstart = Math.max( 0, drawRange.start );\n\t\t\tend = Math.min( positionAttribute.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\tfor ( i = start, il = end; i < il; i += 3 ) {\n\n\t\t\t\ta = i;\n\t\t\t\tb = i + 1;\n\t\t\t\tc = i + 2;\n\n\t\t\t\t_calculateMorphedAttributeData(\n\t\t\t\t\tobject,\n\t\t\t\t\tpositionAttribute,\n\t\t\t\t\tmorphPosition,\n\t\t\t\t\tmorphTargetsRelative,\n\t\t\t\t\ta, b, c,\n\t\t\t\t\tmodifiedPosition\n\t\t\t\t);\n\n\t\t\t\t_calculateMorphedAttributeData(\n\t\t\t\t\tobject,\n\t\t\t\t\tnormalAttribute,\n\t\t\t\t\tmorphNormal,\n\t\t\t\t\tmorphTargetsRelative,\n\t\t\t\t\ta, b, c,\n\t\t\t\t\tmodifiedNormal\n\t\t\t\t);\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tconst morphedPositionAttribute = new Float32BufferAttribute( modifiedPosition, 3 );\n\tconst morphedNormalAttribute = new Float32BufferAttribute( modifiedNormal, 3 );\n\n\treturn {\n\n\t\tpositionAttribute: positionAttribute,\n\t\tnormalAttribute: normalAttribute,\n\t\tmorphedPositionAttribute: morphedPositionAttribute,\n\t\tmorphedNormalAttribute: morphedNormalAttribute\n\n\t};\n\n}\n\nfunction mergeGroups( geometry ) {\n\n\tif ( geometry.groups.length === 0 ) {\n\n\t\tconsole.warn( 'THREE.BufferGeometryUtils.mergeGroups(): No groups are defined. Nothing to merge.' );\n\t\treturn geometry;\n\n\t}\n\n\tlet groups = geometry.groups;\n\n\t// sort groups by material index\n\n\tgroups = groups.sort( ( a, b ) => {\n\n\t\tif ( a.materialIndex !== b.materialIndex ) return a.materialIndex - b.materialIndex;\n\n\t\treturn a.start - b.start;\n\n\t} );\n\n\t// create index for non-indexed geometries\n\n\tif ( geometry.getIndex() === null ) {\n\n\t\tconst positionAttribute = geometry.getAttribute( 'position' );\n\t\tconst indices = [];\n\n\t\tfor ( let i = 0; i < positionAttribute.count; i += 3 ) {\n\n\t\t\tindices.push( i, i + 1, i + 2 );\n\n\t\t}\n\n\t\tgeometry.setIndex( indices );\n\n\t}\n\n\t// sort index\n\n\tconst index = geometry.getIndex();\n\n\tconst newIndices = [];\n\n\tfor ( let i = 0; i < groups.length; i ++ ) {\n\n\t\tconst group = groups[ i ];\n\n\t\tconst groupStart = group.start;\n\t\tconst groupLength = groupStart + group.count;\n\n\t\tfor ( let j = groupStart; j < groupLength; j ++ ) {\n\n\t\t\tnewIndices.push( index.getX( j ) );\n\n\t\t}\n\n\t}\n\n\tgeometry.dispose(); // Required to force buffer recreation\n\tgeometry.setIndex( newIndices );\n\n\t// update groups indices\n\n\tlet start = 0;\n\n\tfor ( let i = 0; i < groups.length; i ++ ) {\n\n\t\tconst group = groups[ i ];\n\n\t\tgroup.start = start;\n\t\tstart += group.count;\n\n\t}\n\n\t// merge groups\n\n\tlet currentGroup = groups[ 0 ];\n\n\tgeometry.groups = [ currentGroup ];\n\n\tfor ( let i = 1; i < groups.length; i ++ ) {\n\n\t\tconst group = groups[ i ];\n\n\t\tif ( currentGroup.materialIndex === group.materialIndex ) {\n\n\t\t\tcurrentGroup.count += group.count;\n\n\t\t} else {\n\n\t\t\tcurrentGroup = group;\n\t\t\tgeometry.groups.push( currentGroup );\n\n\t\t}\n\n\t}\n\n\treturn geometry;\n\n}\n\n\n/**\n * Modifies the supplied geometry if it is non-indexed, otherwise creates a new,\n * non-indexed geometry. Returns the geometry with smooth normals everywhere except\n * faces that meet at an angle greater than the crease angle.\n *\n * @param {BufferGeometry} geometry\n * @param {number} [creaseAngle]\n * @return {BufferGeometry}\n */\nfunction toCreasedNormals( geometry, creaseAngle = Math.PI / 3 /* 60 degrees */ ) {\n\n\tconst creaseDot = Math.cos( creaseAngle );\n\tconst hashMultiplier = ( 1 + 1e-10 ) * 1e2;\n\n\t// reusable vectors\n\tconst verts = [ new Vector3(), new Vector3(), new Vector3() ];\n\tconst tempVec1 = new Vector3();\n\tconst tempVec2 = new Vector3();\n\tconst tempNorm = new Vector3();\n\tconst tempNorm2 = new Vector3();\n\n\t// hashes a vector\n\tfunction hashVertex( v ) {\n\n\t\tconst x = ~ ~ ( v.x * hashMultiplier );\n\t\tconst y = ~ ~ ( v.y * hashMultiplier );\n\t\tconst z = ~ ~ ( v.z * hashMultiplier );\n\t\treturn `${x},${y},${z}`;\n\n\t}\n\n\t// BufferGeometry.toNonIndexed() warns if the geometry is non-indexed\n\t// and returns the original geometry\n\tconst resultGeometry = geometry.index ? geometry.toNonIndexed() : geometry;\n\tconst posAttr = resultGeometry.attributes.position;\n\tconst vertexMap = {};\n\n\t// find all the normals shared by commonly located vertices\n\tfor ( let i = 0, l = posAttr.count / 3; i < l; i ++ ) {\n\n\t\tconst i3 = 3 * i;\n\t\tconst a = verts[ 0 ].fromBufferAttribute( posAttr, i3 + 0 );\n\t\tconst b = verts[ 1 ].fromBufferAttribute( posAttr, i3 + 1 );\n\t\tconst c = verts[ 2 ].fromBufferAttribute( posAttr, i3 + 2 );\n\n\t\ttempVec1.subVectors( c, b );\n\t\ttempVec2.subVectors( a, b );\n\n\t\t// add the normal to the map for all vertices\n\t\tconst normal = new Vector3().crossVectors( tempVec1, tempVec2 ).normalize();\n\t\tfor ( let n = 0; n < 3; n ++ ) {\n\n\t\t\tconst vert = verts[ n ];\n\t\t\tconst hash = hashVertex( vert );\n\t\t\tif ( ! ( hash in vertexMap ) ) {\n\n\t\t\t\tvertexMap[ hash ] = [];\n\n\t\t\t}\n\n\t\t\tvertexMap[ hash ].push( normal );\n\n\t\t}\n\n\t}\n\n\t// average normals from all vertices that share a common location if they are within the\n\t// provided crease threshold\n\tconst normalArray = new Float32Array( posAttr.count * 3 );\n\tconst normAttr = new BufferAttribute( normalArray, 3, false );\n\tfor ( let i = 0, l = posAttr.count / 3; i < l; i ++ ) {\n\n\t\t// get the face normal for this vertex\n\t\tconst i3 = 3 * i;\n\t\tconst a = verts[ 0 ].fromBufferAttribute( posAttr, i3 + 0 );\n\t\tconst b = verts[ 1 ].fromBufferAttribute( posAttr, i3 + 1 );\n\t\tconst c = verts[ 2 ].fromBufferAttribute( posAttr, i3 + 2 );\n\n\t\ttempVec1.subVectors( c, b );\n\t\ttempVec2.subVectors( a, b );\n\n\t\ttempNorm.crossVectors( tempVec1, tempVec2 ).normalize();\n\n\t\t// average all normals that meet the threshold and set the normal value\n\t\tfor ( let n = 0; n < 3; n ++ ) {\n\n\t\t\tconst vert = verts[ n ];\n\t\t\tconst hash = hashVertex( vert );\n\t\t\tconst otherNormals = vertexMap[ hash ];\n\t\t\ttempNorm2.set( 0, 0, 0 );\n\n\t\t\tfor ( let k = 0, lk = otherNormals.length; k < lk; k ++ ) {\n\n\t\t\t\tconst otherNorm = otherNormals[ k ];\n\t\t\t\tif ( tempNorm.dot( otherNorm ) > creaseDot ) {\n\n\t\t\t\t\ttempNorm2.add( otherNorm );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\ttempNorm2.normalize();\n\t\t\tnormAttr.setXYZ( i3 + n, tempNorm2.x, tempNorm2.y, tempNorm2.z );\n\n\t\t}\n\n\t}\n\n\tresultGeometry.setAttribute( 'normal', normAttr );\n\treturn resultGeometry;\n\n}\n\nexport {\n\tcomputeMikkTSpaceTangents,\n\tmergeGeometries,\n\tmergeAttributes,\n\tinterleaveAttributes,\n\testimateBytesUsed,\n\tmergeVertices,\n\ttoTrianglesDrawMode,\n\tcomputeMorphedAttributes,\n\tmergeGroups,\n\ttoCreasedNormals\n};\n","import {\n\tAnimationClip,\n\tBone,\n\tBox3,\n\tBufferAttribute,\n\tBufferGeometry,\n\tClampToEdgeWrapping,\n\tColor,\n\tColorManagement,\n\tDirectionalLight,\n\tDoubleSide,\n\tFileLoader,\n\tFrontSide,\n\tGroup,\n\tImageBitmapLoader,\n\tInstancedMesh,\n\tInterleavedBuffer,\n\tInterleavedBufferAttribute,\n\tInterpolant,\n\tInterpolateDiscrete,\n\tInterpolateLinear,\n\tLine,\n\tLineBasicMaterial,\n\tLineLoop,\n\tLineSegments,\n\tLinearFilter,\n\tLinearMipmapLinearFilter,\n\tLinearMipmapNearestFilter,\n\tLinearSRGBColorSpace,\n\tLoader,\n\tLoaderUtils,\n\tMaterial,\n\tMathUtils,\n\tMatrix4,\n\tMesh,\n\tMeshBasicMaterial,\n\tMeshPhysicalMaterial,\n\tMeshStandardMaterial,\n\tMirroredRepeatWrapping,\n\tNearestFilter,\n\tNearestMipmapLinearFilter,\n\tNearestMipmapNearestFilter,\n\tNumberKeyframeTrack,\n\tObject3D,\n\tOrthographicCamera,\n\tPerspectiveCamera,\n\tPointLight,\n\tPoints,\n\tPointsMaterial,\n\tPropertyBinding,\n\tQuaternion,\n\tQuaternionKeyframeTrack,\n\tRepeatWrapping,\n\tSkeleton,\n\tSkinnedMesh,\n\tSphere,\n\tSpotLight,\n\tTexture,\n\tTextureLoader,\n\tTriangleFanDrawMode,\n\tTriangleStripDrawMode,\n\tVector2,\n\tVector3,\n\tVectorKeyframeTrack,\n\tSRGBColorSpace,\n\tInstancedBufferAttribute\n} from 'three';\nimport { toTrianglesDrawMode } from '../utils/BufferGeometryUtils.js';\n\nclass GLTFLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t\tthis.dracoLoader = null;\n\t\tthis.ktx2Loader = null;\n\t\tthis.meshoptDecoder = null;\n\n\t\tthis.pluginCallbacks = [];\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFMaterialsClearcoatExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFMaterialsDispersionExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFTextureBasisUExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFTextureWebPExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFTextureAVIFExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFMaterialsSheenExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFMaterialsTransmissionExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFMaterialsVolumeExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFMaterialsIorExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFMaterialsEmissiveStrengthExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFMaterialsSpecularExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFMaterialsIridescenceExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFMaterialsAnisotropyExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFMaterialsBumpExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFLightsExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFMeshoptCompression( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFMeshGpuInstancing( parser );\n\n\t\t} );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tlet resourcePath;\n\n\t\tif ( this.resourcePath !== '' ) {\n\n\t\t\tresourcePath = this.resourcePath;\n\n\t\t} else if ( this.path !== '' ) {\n\n\t\t\t// If a base path is set, resources will be relative paths from that plus the relative path of the gltf file\n\t\t\t// Example path = 'https://my-cnd-server.com/', url = 'assets/models/model.gltf'\n\t\t\t// resourcePath = 'https://my-cnd-server.com/assets/models/'\n\t\t\t// referenced resource 'model.bin' will be loaded from 'https://my-cnd-server.com/assets/models/model.bin'\n\t\t\t// referenced resource '../textures/texture.png' will be loaded from 'https://my-cnd-server.com/assets/textures/texture.png'\n\t\t\tconst relativeUrl = LoaderUtils.extractUrlBase( url );\n\t\t\tresourcePath = LoaderUtils.resolveURL( relativeUrl, this.path );\n\n\t\t} else {\n\n\t\t\tresourcePath = LoaderUtils.extractUrlBase( url );\n\n\t\t}\n\n\t\t// Tells the LoadingManager to track an extra item, which resolves after\n\t\t// the model is fully loaded. This means the count of items loaded will\n\t\t// be incorrect, but ensures manager.onLoad() does not fire early.\n\t\tthis.manager.itemStart( url );\n\n\t\tconst _onError = function ( e ) {\n\n\t\t\tif ( onError ) {\n\n\t\t\t\tonError( e );\n\n\t\t\t} else {\n\n\t\t\t\tconsole.error( e );\n\n\t\t\t}\n\n\t\t\tscope.manager.itemError( url );\n\t\t\tscope.manager.itemEnd( url );\n\n\t\t};\n\n\t\tconst loader = new FileLoader( this.manager );\n\n\t\tloader.setPath( this.path );\n\t\tloader.setResponseType( 'arraybuffer' );\n\t\tloader.setRequestHeader( this.requestHeader );\n\t\tloader.setWithCredentials( this.withCredentials );\n\n\t\tloader.load( url, function ( data ) {\n\n\t\t\ttry {\n\n\t\t\t\tscope.parse( data, resourcePath, function ( gltf ) {\n\n\t\t\t\t\tonLoad( gltf );\n\n\t\t\t\t\tscope.manager.itemEnd( url );\n\n\t\t\t\t}, _onError );\n\n\t\t\t} catch ( e ) {\n\n\t\t\t\t_onError( e );\n\n\t\t\t}\n\n\t\t}, onProgress, _onError );\n\n\t}\n\n\tsetDRACOLoader( dracoLoader ) {\n\n\t\tthis.dracoLoader = dracoLoader;\n\t\treturn this;\n\n\t}\n\n\tsetKTX2Loader( ktx2Loader ) {\n\n\t\tthis.ktx2Loader = ktx2Loader;\n\t\treturn this;\n\n\t}\n\n\tsetMeshoptDecoder( meshoptDecoder ) {\n\n\t\tthis.meshoptDecoder = meshoptDecoder;\n\t\treturn this;\n\n\t}\n\n\tregister( callback ) {\n\n\t\tif ( this.pluginCallbacks.indexOf( callback ) === - 1 ) {\n\n\t\t\tthis.pluginCallbacks.push( callback );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tunregister( callback ) {\n\n\t\tif ( this.pluginCallbacks.indexOf( callback ) !== - 1 ) {\n\n\t\t\tthis.pluginCallbacks.splice( this.pluginCallbacks.indexOf( callback ), 1 );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tparse( data, path, onLoad, onError ) {\n\n\t\tlet json;\n\t\tconst extensions = {};\n\t\tconst plugins = {};\n\t\tconst textDecoder = new TextDecoder();\n\n\t\tif ( typeof data === 'string' ) {\n\n\t\t\tjson = JSON.parse( data );\n\n\t\t} else if ( data instanceof ArrayBuffer ) {\n\n\t\t\tconst magic = textDecoder.decode( new Uint8Array( data, 0, 4 ) );\n\n\t\t\tif ( magic === BINARY_EXTENSION_HEADER_MAGIC ) {\n\n\t\t\t\ttry {\n\n\t\t\t\t\textensions[ EXTENSIONS.KHR_BINARY_GLTF ] = new GLTFBinaryExtension( data );\n\n\t\t\t\t} catch ( error ) {\n\n\t\t\t\t\tif ( onError ) onError( error );\n\t\t\t\t\treturn;\n\n\t\t\t\t}\n\n\t\t\t\tjson = JSON.parse( extensions[ EXTENSIONS.KHR_BINARY_GLTF ].content );\n\n\t\t\t} else {\n\n\t\t\t\tjson = JSON.parse( textDecoder.decode( data ) );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tjson = data;\n\n\t\t}\n\n\t\tif ( json.asset === undefined || json.asset.version[ 0 ] < 2 ) {\n\n\t\t\tif ( onError ) onError( new Error( 'THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported.' ) );\n\t\t\treturn;\n\n\t\t}\n\n\t\tconst parser = new GLTFParser( json, {\n\n\t\t\tpath: path || this.resourcePath || '',\n\t\t\tcrossOrigin: this.crossOrigin,\n\t\t\trequestHeader: this.requestHeader,\n\t\t\tmanager: this.manager,\n\t\t\tktx2Loader: this.ktx2Loader,\n\t\t\tmeshoptDecoder: this.meshoptDecoder\n\n\t\t} );\n\n\t\tparser.fileLoader.setRequestHeader( this.requestHeader );\n\n\t\tfor ( let i = 0; i < this.pluginCallbacks.length; i ++ ) {\n\n\t\t\tconst plugin = this.pluginCallbacks[ i ]( parser );\n\n\t\t\tif ( ! plugin.name ) console.error( 'THREE.GLTFLoader: Invalid plugin found: missing name' );\n\n\t\t\tplugins[ plugin.name ] = plugin;\n\n\t\t\t// Workaround to avoid determining as unknown extension\n\t\t\t// in addUnknownExtensionsToUserData().\n\t\t\t// Remove this workaround if we move all the existing\n\t\t\t// extension handlers to plugin system\n\t\t\textensions[ plugin.name ] = true;\n\n\t\t}\n\n\t\tif ( json.extensionsUsed ) {\n\n\t\t\tfor ( let i = 0; i < json.extensionsUsed.length; ++ i ) {\n\n\t\t\t\tconst extensionName = json.extensionsUsed[ i ];\n\t\t\t\tconst extensionsRequired = json.extensionsRequired || [];\n\n\t\t\t\tswitch ( extensionName ) {\n\n\t\t\t\t\tcase EXTENSIONS.KHR_MATERIALS_UNLIT:\n\t\t\t\t\t\textensions[ extensionName ] = new GLTFMaterialsUnlitExtension();\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase EXTENSIONS.KHR_DRACO_MESH_COMPRESSION:\n\t\t\t\t\t\textensions[ extensionName ] = new GLTFDracoMeshCompressionExtension( json, this.dracoLoader );\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase EXTENSIONS.KHR_TEXTURE_TRANSFORM:\n\t\t\t\t\t\textensions[ extensionName ] = new GLTFTextureTransformExtension();\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase EXTENSIONS.KHR_MESH_QUANTIZATION:\n\t\t\t\t\t\textensions[ extensionName ] = new GLTFMeshQuantizationExtension();\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tdefault:\n\n\t\t\t\t\t\tif ( extensionsRequired.indexOf( extensionName ) >= 0 && plugins[ extensionName ] === undefined ) {\n\n\t\t\t\t\t\t\tconsole.warn( 'THREE.GLTFLoader: Unknown extension \"' + extensionName + '\".' );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tparser.setExtensions( extensions );\n\t\tparser.setPlugins( plugins );\n\t\tparser.parse( onLoad, onError );\n\n\t}\n\n\tparseAsync( data, path ) {\n\n\t\tconst scope = this;\n\n\t\treturn new Promise( function ( resolve, reject ) {\n\n\t\t\tscope.parse( data, path, resolve, reject );\n\n\t\t} );\n\n\t}\n\n}\n\n/* GLTFREGISTRY */\n\nfunction GLTFRegistry() {\n\n\tlet objects = {};\n\n\treturn\t{\n\n\t\tget: function ( key ) {\n\n\t\t\treturn objects[ key ];\n\n\t\t},\n\n\t\tadd: function ( key, object ) {\n\n\t\t\tobjects[ key ] = object;\n\n\t\t},\n\n\t\tremove: function ( key ) {\n\n\t\t\tdelete objects[ key ];\n\n\t\t},\n\n\t\tremoveAll: function () {\n\n\t\t\tobjects = {};\n\n\t\t}\n\n\t};\n\n}\n\n/*********************************/\n/********** EXTENSIONS ***********/\n/*********************************/\n\nconst EXTENSIONS = {\n\tKHR_BINARY_GLTF: 'KHR_binary_glTF',\n\tKHR_DRACO_MESH_COMPRESSION: 'KHR_draco_mesh_compression',\n\tKHR_LIGHTS_PUNCTUAL: 'KHR_lights_punctual',\n\tKHR_MATERIALS_CLEARCOAT: 'KHR_materials_clearcoat',\n\tKHR_MATERIALS_DISPERSION: 'KHR_materials_dispersion',\n\tKHR_MATERIALS_IOR: 'KHR_materials_ior',\n\tKHR_MATERIALS_SHEEN: 'KHR_materials_sheen',\n\tKHR_MATERIALS_SPECULAR: 'KHR_materials_specular',\n\tKHR_MATERIALS_TRANSMISSION: 'KHR_materials_transmission',\n\tKHR_MATERIALS_IRIDESCENCE: 'KHR_materials_iridescence',\n\tKHR_MATERIALS_ANISOTROPY: 'KHR_materials_anisotropy',\n\tKHR_MATERIALS_UNLIT: 'KHR_materials_unlit',\n\tKHR_MATERIALS_VOLUME: 'KHR_materials_volume',\n\tKHR_TEXTURE_BASISU: 'KHR_texture_basisu',\n\tKHR_TEXTURE_TRANSFORM: 'KHR_texture_transform',\n\tKHR_MESH_QUANTIZATION: 'KHR_mesh_quantization',\n\tKHR_MATERIALS_EMISSIVE_STRENGTH: 'KHR_materials_emissive_strength',\n\tEXT_MATERIALS_BUMP: 'EXT_materials_bump',\n\tEXT_TEXTURE_WEBP: 'EXT_texture_webp',\n\tEXT_TEXTURE_AVIF: 'EXT_texture_avif',\n\tEXT_MESHOPT_COMPRESSION: 'EXT_meshopt_compression',\n\tEXT_MESH_GPU_INSTANCING: 'EXT_mesh_gpu_instancing'\n};\n\n/**\n * Punctual Lights Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_lights_punctual\n */\nclass GLTFLightsExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.KHR_LIGHTS_PUNCTUAL;\n\n\t\t// Object3D instance caches\n\t\tthis.cache = { refs: {}, uses: {} };\n\n\t}\n\n\t_markDefs() {\n\n\t\tconst parser = this.parser;\n\t\tconst nodeDefs = this.parser.json.nodes || [];\n\n\t\tfor ( let nodeIndex = 0, nodeLength = nodeDefs.length; nodeIndex < nodeLength; nodeIndex ++ ) {\n\n\t\t\tconst nodeDef = nodeDefs[ nodeIndex ];\n\n\t\t\tif ( nodeDef.extensions\n\t\t\t\t\t&& nodeDef.extensions[ this.name ]\n\t\t\t\t\t&& nodeDef.extensions[ this.name ].light !== undefined ) {\n\n\t\t\t\tparser._addNodeRef( this.cache, nodeDef.extensions[ this.name ].light );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t_loadLight( lightIndex ) {\n\n\t\tconst parser = this.parser;\n\t\tconst cacheKey = 'light:' + lightIndex;\n\t\tlet dependency = parser.cache.get( cacheKey );\n\n\t\tif ( dependency ) return dependency;\n\n\t\tconst json = parser.json;\n\t\tconst extensions = ( json.extensions && json.extensions[ this.name ] ) || {};\n\t\tconst lightDefs = extensions.lights || [];\n\t\tconst lightDef = lightDefs[ lightIndex ];\n\t\tlet lightNode;\n\n\t\tconst color = new Color( 0xffffff );\n\n\t\tif ( lightDef.color !== undefined ) color.setRGB( lightDef.color[ 0 ], lightDef.color[ 1 ], lightDef.color[ 2 ], LinearSRGBColorSpace );\n\n\t\tconst range = lightDef.range !== undefined ? lightDef.range : 0;\n\n\t\tswitch ( lightDef.type ) {\n\n\t\t\tcase 'directional':\n\t\t\t\tlightNode = new DirectionalLight( color );\n\t\t\t\tlightNode.target.position.set( 0, 0, - 1 );\n\t\t\t\tlightNode.add( lightNode.target );\n\t\t\t\tbreak;\n\n\t\t\tcase 'point':\n\t\t\t\tlightNode = new PointLight( color );\n\t\t\t\tlightNode.distance = range;\n\t\t\t\tbreak;\n\n\t\t\tcase 'spot':\n\t\t\t\tlightNode = new SpotLight( color );\n\t\t\t\tlightNode.distance = range;\n\t\t\t\t// Handle spotlight properties.\n\t\t\t\tlightDef.spot = lightDef.spot || {};\n\t\t\t\tlightDef.spot.innerConeAngle = lightDef.spot.innerConeAngle !== undefined ? lightDef.spot.innerConeAngle : 0;\n\t\t\t\tlightDef.spot.outerConeAngle = lightDef.spot.outerConeAngle !== undefined ? lightDef.spot.outerConeAngle : Math.PI / 4.0;\n\t\t\t\tlightNode.angle = lightDef.spot.outerConeAngle;\n\t\t\t\tlightNode.penumbra = 1.0 - lightDef.spot.innerConeAngle / lightDef.spot.outerConeAngle;\n\t\t\t\tlightNode.target.position.set( 0, 0, - 1 );\n\t\t\t\tlightNode.add( lightNode.target );\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tthrow new Error( 'THREE.GLTFLoader: Unexpected light type: ' + lightDef.type );\n\n\t\t}\n\n\t\t// Some lights (e.g. spot) default to a position other than the origin. Reset the position\n\t\t// here, because node-level parsing will only override position if explicitly specified.\n\t\tlightNode.position.set( 0, 0, 0 );\n\n\t\tlightNode.decay = 2;\n\n\t\tassignExtrasToUserData( lightNode, lightDef );\n\n\t\tif ( lightDef.intensity !== undefined ) lightNode.intensity = lightDef.intensity;\n\n\t\tlightNode.name = parser.createUniqueName( lightDef.name || ( 'light_' + lightIndex ) );\n\n\t\tdependency = Promise.resolve( lightNode );\n\n\t\tparser.cache.add( cacheKey, dependency );\n\n\t\treturn dependency;\n\n\t}\n\n\tgetDependency( type, index ) {\n\n\t\tif ( type !== 'light' ) return;\n\n\t\treturn this._loadLight( index );\n\n\t}\n\n\tcreateNodeAttachment( nodeIndex ) {\n\n\t\tconst self = this;\n\t\tconst parser = this.parser;\n\t\tconst json = parser.json;\n\t\tconst nodeDef = json.nodes[ nodeIndex ];\n\t\tconst lightDef = ( nodeDef.extensions && nodeDef.extensions[ this.name ] ) || {};\n\t\tconst lightIndex = lightDef.light;\n\n\t\tif ( lightIndex === undefined ) return null;\n\n\t\treturn this._loadLight( lightIndex ).then( function ( light ) {\n\n\t\t\treturn parser._getNodeRef( self.cache, lightIndex, light );\n\n\t\t} );\n\n\t}\n\n}\n\n/**\n * Unlit Materials Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_unlit\n */\nclass GLTFMaterialsUnlitExtension {\n\n\tconstructor() {\n\n\t\tthis.name = EXTENSIONS.KHR_MATERIALS_UNLIT;\n\n\t}\n\n\tgetMaterialType() {\n\n\t\treturn MeshBasicMaterial;\n\n\t}\n\n\textendParams( materialParams, materialDef, parser ) {\n\n\t\tconst pending = [];\n\n\t\tmaterialParams.color = new Color( 1.0, 1.0, 1.0 );\n\t\tmaterialParams.opacity = 1.0;\n\n\t\tconst metallicRoughness = materialDef.pbrMetallicRoughness;\n\n\t\tif ( metallicRoughness ) {\n\n\t\t\tif ( Array.isArray( metallicRoughness.baseColorFactor ) ) {\n\n\t\t\t\tconst array = metallicRoughness.baseColorFactor;\n\n\t\t\t\tmaterialParams.color.setRGB( array[ 0 ], array[ 1 ], array[ 2 ], LinearSRGBColorSpace );\n\t\t\t\tmaterialParams.opacity = array[ 3 ];\n\n\t\t\t}\n\n\t\t\tif ( metallicRoughness.baseColorTexture !== undefined ) {\n\n\t\t\t\tpending.push( parser.assignTexture( materialParams, 'map', metallicRoughness.baseColorTexture, SRGBColorSpace ) );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn Promise.all( pending );\n\n\t}\n\n}\n\n/**\n * Materials Emissive Strength Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/blob/5768b3ce0ef32bc39cdf1bef10b948586635ead3/extensions/2.0/Khronos/KHR_materials_emissive_strength/README.md\n */\nclass GLTFMaterialsEmissiveStrengthExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.KHR_MATERIALS_EMISSIVE_STRENGTH;\n\n\t}\n\n\textendMaterialParams( materialIndex, materialParams ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) {\n\n\t\t\treturn Promise.resolve();\n\n\t\t}\n\n\t\tconst emissiveStrength = materialDef.extensions[ this.name ].emissiveStrength;\n\n\t\tif ( emissiveStrength !== undefined ) {\n\n\t\t\tmaterialParams.emissiveIntensity = emissiveStrength;\n\n\t\t}\n\n\t\treturn Promise.resolve();\n\n\t}\n\n}\n\n/**\n * Clearcoat Materials Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_clearcoat\n */\nclass GLTFMaterialsClearcoatExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.KHR_MATERIALS_CLEARCOAT;\n\n\t}\n\n\tgetMaterialType( materialIndex ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null;\n\n\t\treturn MeshPhysicalMaterial;\n\n\t}\n\n\textendMaterialParams( materialIndex, materialParams ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) {\n\n\t\t\treturn Promise.resolve();\n\n\t\t}\n\n\t\tconst pending = [];\n\n\t\tconst extension = materialDef.extensions[ this.name ];\n\n\t\tif ( extension.clearcoatFactor !== undefined ) {\n\n\t\t\tmaterialParams.clearcoat = extension.clearcoatFactor;\n\n\t\t}\n\n\t\tif ( extension.clearcoatTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'clearcoatMap', extension.clearcoatTexture ) );\n\n\t\t}\n\n\t\tif ( extension.clearcoatRoughnessFactor !== undefined ) {\n\n\t\t\tmaterialParams.clearcoatRoughness = extension.clearcoatRoughnessFactor;\n\n\t\t}\n\n\t\tif ( extension.clearcoatRoughnessTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'clearcoatRoughnessMap', extension.clearcoatRoughnessTexture ) );\n\n\t\t}\n\n\t\tif ( extension.clearcoatNormalTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'clearcoatNormalMap', extension.clearcoatNormalTexture ) );\n\n\t\t\tif ( extension.clearcoatNormalTexture.scale !== undefined ) {\n\n\t\t\t\tconst scale = extension.clearcoatNormalTexture.scale;\n\n\t\t\t\tmaterialParams.clearcoatNormalScale = new Vector2( scale, scale );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn Promise.all( pending );\n\n\t}\n\n}\n\n/**\n * Materials dispersion Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Khronos/KHR_materials_dispersion\n */\nclass GLTFMaterialsDispersionExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.KHR_MATERIALS_DISPERSION;\n\n\t}\n\n\tgetMaterialType( materialIndex ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null;\n\n\t\treturn MeshPhysicalMaterial;\n\n\t}\n\n\textendMaterialParams( materialIndex, materialParams ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) {\n\n\t\t\treturn Promise.resolve();\n\n\t\t}\n\n\t\tconst extension = materialDef.extensions[ this.name ];\n\n\t\tmaterialParams.dispersion = extension.dispersion !== undefined ? extension.dispersion : 0;\n\n\t\treturn Promise.resolve();\n\n\t}\n\n}\n\n/**\n * Iridescence Materials Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_iridescence\n */\nclass GLTFMaterialsIridescenceExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.KHR_MATERIALS_IRIDESCENCE;\n\n\t}\n\n\tgetMaterialType( materialIndex ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null;\n\n\t\treturn MeshPhysicalMaterial;\n\n\t}\n\n\textendMaterialParams( materialIndex, materialParams ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) {\n\n\t\t\treturn Promise.resolve();\n\n\t\t}\n\n\t\tconst pending = [];\n\n\t\tconst extension = materialDef.extensions[ this.name ];\n\n\t\tif ( extension.iridescenceFactor !== undefined ) {\n\n\t\t\tmaterialParams.iridescence = extension.iridescenceFactor;\n\n\t\t}\n\n\t\tif ( extension.iridescenceTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'iridescenceMap', extension.iridescenceTexture ) );\n\n\t\t}\n\n\t\tif ( extension.iridescenceIor !== undefined ) {\n\n\t\t\tmaterialParams.iridescenceIOR = extension.iridescenceIor;\n\n\t\t}\n\n\t\tif ( materialParams.iridescenceThicknessRange === undefined ) {\n\n\t\t\tmaterialParams.iridescenceThicknessRange = [ 100, 400 ];\n\n\t\t}\n\n\t\tif ( extension.iridescenceThicknessMinimum !== undefined ) {\n\n\t\t\tmaterialParams.iridescenceThicknessRange[ 0 ] = extension.iridescenceThicknessMinimum;\n\n\t\t}\n\n\t\tif ( extension.iridescenceThicknessMaximum !== undefined ) {\n\n\t\t\tmaterialParams.iridescenceThicknessRange[ 1 ] = extension.iridescenceThicknessMaximum;\n\n\t\t}\n\n\t\tif ( extension.iridescenceThicknessTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'iridescenceThicknessMap', extension.iridescenceThicknessTexture ) );\n\n\t\t}\n\n\t\treturn Promise.all( pending );\n\n\t}\n\n}\n\n/**\n * Sheen Materials Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Khronos/KHR_materials_sheen\n */\nclass GLTFMaterialsSheenExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.KHR_MATERIALS_SHEEN;\n\n\t}\n\n\tgetMaterialType( materialIndex ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null;\n\n\t\treturn MeshPhysicalMaterial;\n\n\t}\n\n\textendMaterialParams( materialIndex, materialParams ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) {\n\n\t\t\treturn Promise.resolve();\n\n\t\t}\n\n\t\tconst pending = [];\n\n\t\tmaterialParams.sheenColor = new Color( 0, 0, 0 );\n\t\tmaterialParams.sheenRoughness = 0;\n\t\tmaterialParams.sheen = 1;\n\n\t\tconst extension = materialDef.extensions[ this.name ];\n\n\t\tif ( extension.sheenColorFactor !== undefined ) {\n\n\t\t\tconst colorFactor = extension.sheenColorFactor;\n\t\t\tmaterialParams.sheenColor.setRGB( colorFactor[ 0 ], colorFactor[ 1 ], colorFactor[ 2 ], LinearSRGBColorSpace );\n\n\t\t}\n\n\t\tif ( extension.sheenRoughnessFactor !== undefined ) {\n\n\t\t\tmaterialParams.sheenRoughness = extension.sheenRoughnessFactor;\n\n\t\t}\n\n\t\tif ( extension.sheenColorTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'sheenColorMap', extension.sheenColorTexture, SRGBColorSpace ) );\n\n\t\t}\n\n\t\tif ( extension.sheenRoughnessTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'sheenRoughnessMap', extension.sheenRoughnessTexture ) );\n\n\t\t}\n\n\t\treturn Promise.all( pending );\n\n\t}\n\n}\n\n/**\n * Transmission Materials Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_transmission\n * Draft: https://github.com/KhronosGroup/glTF/pull/1698\n */\nclass GLTFMaterialsTransmissionExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.KHR_MATERIALS_TRANSMISSION;\n\n\t}\n\n\tgetMaterialType( materialIndex ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null;\n\n\t\treturn MeshPhysicalMaterial;\n\n\t}\n\n\textendMaterialParams( materialIndex, materialParams ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) {\n\n\t\t\treturn Promise.resolve();\n\n\t\t}\n\n\t\tconst pending = [];\n\n\t\tconst extension = materialDef.extensions[ this.name ];\n\n\t\tif ( extension.transmissionFactor !== undefined ) {\n\n\t\t\tmaterialParams.transmission = extension.transmissionFactor;\n\n\t\t}\n\n\t\tif ( extension.transmissionTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'transmissionMap', extension.transmissionTexture ) );\n\n\t\t}\n\n\t\treturn Promise.all( pending );\n\n\t}\n\n}\n\n/**\n * Materials Volume Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_volume\n */\nclass GLTFMaterialsVolumeExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.KHR_MATERIALS_VOLUME;\n\n\t}\n\n\tgetMaterialType( materialIndex ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null;\n\n\t\treturn MeshPhysicalMaterial;\n\n\t}\n\n\textendMaterialParams( materialIndex, materialParams ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) {\n\n\t\t\treturn Promise.resolve();\n\n\t\t}\n\n\t\tconst pending = [];\n\n\t\tconst extension = materialDef.extensions[ this.name ];\n\n\t\tmaterialParams.thickness = extension.thicknessFactor !== undefined ? extension.thicknessFactor : 0;\n\n\t\tif ( extension.thicknessTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'thicknessMap', extension.thicknessTexture ) );\n\n\t\t}\n\n\t\tmaterialParams.attenuationDistance = extension.attenuationDistance || Infinity;\n\n\t\tconst colorArray = extension.attenuationColor || [ 1, 1, 1 ];\n\t\tmaterialParams.attenuationColor = new Color().setRGB( colorArray[ 0 ], colorArray[ 1 ], colorArray[ 2 ], LinearSRGBColorSpace );\n\n\t\treturn Promise.all( pending );\n\n\t}\n\n}\n\n/**\n * Materials ior Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_ior\n */\nclass GLTFMaterialsIorExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.KHR_MATERIALS_IOR;\n\n\t}\n\n\tgetMaterialType( materialIndex ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null;\n\n\t\treturn MeshPhysicalMaterial;\n\n\t}\n\n\textendMaterialParams( materialIndex, materialParams ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) {\n\n\t\t\treturn Promise.resolve();\n\n\t\t}\n\n\t\tconst extension = materialDef.extensions[ this.name ];\n\n\t\tmaterialParams.ior = extension.ior !== undefined ? extension.ior : 1.5;\n\n\t\treturn Promise.resolve();\n\n\t}\n\n}\n\n/**\n * Materials specular Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_specular\n */\nclass GLTFMaterialsSpecularExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.KHR_MATERIALS_SPECULAR;\n\n\t}\n\n\tgetMaterialType( materialIndex ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null;\n\n\t\treturn MeshPhysicalMaterial;\n\n\t}\n\n\textendMaterialParams( materialIndex, materialParams ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) {\n\n\t\t\treturn Promise.resolve();\n\n\t\t}\n\n\t\tconst pending = [];\n\n\t\tconst extension = materialDef.extensions[ this.name ];\n\n\t\tmaterialParams.specularIntensity = extension.specularFactor !== undefined ? extension.specularFactor : 1.0;\n\n\t\tif ( extension.specularTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'specularIntensityMap', extension.specularTexture ) );\n\n\t\t}\n\n\t\tconst colorArray = extension.specularColorFactor || [ 1, 1, 1 ];\n\t\tmaterialParams.specularColor = new Color().setRGB( colorArray[ 0 ], colorArray[ 1 ], colorArray[ 2 ], LinearSRGBColorSpace );\n\n\t\tif ( extension.specularColorTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'specularColorMap', extension.specularColorTexture, SRGBColorSpace ) );\n\n\t\t}\n\n\t\treturn Promise.all( pending );\n\n\t}\n\n}\n\n\n/**\n * Materials bump Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/EXT_materials_bump\n */\nclass GLTFMaterialsBumpExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.EXT_MATERIALS_BUMP;\n\n\t}\n\n\tgetMaterialType( materialIndex ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null;\n\n\t\treturn MeshPhysicalMaterial;\n\n\t}\n\n\textendMaterialParams( materialIndex, materialParams ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) {\n\n\t\t\treturn Promise.resolve();\n\n\t\t}\n\n\t\tconst pending = [];\n\n\t\tconst extension = materialDef.extensions[ this.name ];\n\n\t\tmaterialParams.bumpScale = extension.bumpFactor !== undefined ? extension.bumpFactor : 1.0;\n\n\t\tif ( extension.bumpTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'bumpMap', extension.bumpTexture ) );\n\n\t\t}\n\n\t\treturn Promise.all( pending );\n\n\t}\n\n}\n\n/**\n * Materials anisotropy Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_anisotropy\n */\nclass GLTFMaterialsAnisotropyExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.KHR_MATERIALS_ANISOTROPY;\n\n\t}\n\n\tgetMaterialType( materialIndex ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null;\n\n\t\treturn MeshPhysicalMaterial;\n\n\t}\n\n\textendMaterialParams( materialIndex, materialParams ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) {\n\n\t\t\treturn Promise.resolve();\n\n\t\t}\n\n\t\tconst pending = [];\n\n\t\tconst extension = materialDef.extensions[ this.name ];\n\n\t\tif ( extension.anisotropyStrength !== undefined ) {\n\n\t\t\tmaterialParams.anisotropy = extension.anisotropyStrength;\n\n\t\t}\n\n\t\tif ( extension.anisotropyRotation !== undefined ) {\n\n\t\t\tmaterialParams.anisotropyRotation = extension.anisotropyRotation;\n\n\t\t}\n\n\t\tif ( extension.anisotropyTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'anisotropyMap', extension.anisotropyTexture ) );\n\n\t\t}\n\n\t\treturn Promise.all( pending );\n\n\t}\n\n}\n\n/**\n * BasisU Texture Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_texture_basisu\n */\nclass GLTFTextureBasisUExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.KHR_TEXTURE_BASISU;\n\n\t}\n\n\tloadTexture( textureIndex ) {\n\n\t\tconst parser = this.parser;\n\t\tconst json = parser.json;\n\n\t\tconst textureDef = json.textures[ textureIndex ];\n\n\t\tif ( ! textureDef.extensions || ! textureDef.extensions[ this.name ] ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst extension = textureDef.extensions[ this.name ];\n\t\tconst loader = parser.options.ktx2Loader;\n\n\t\tif ( ! loader ) {\n\n\t\t\tif ( json.extensionsRequired && json.extensionsRequired.indexOf( this.name ) >= 0 ) {\n\n\t\t\t\tthrow new Error( 'THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures' );\n\n\t\t\t} else {\n\n\t\t\t\t// Assumes that the extension is optional and that a fallback texture is present\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn parser.loadTextureImage( textureIndex, extension.source, loader );\n\n\t}\n\n}\n\n/**\n * WebP Texture Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/EXT_texture_webp\n */\nclass GLTFTextureWebPExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.EXT_TEXTURE_WEBP;\n\t\tthis.isSupported = null;\n\n\t}\n\n\tloadTexture( textureIndex ) {\n\n\t\tconst name = this.name;\n\t\tconst parser = this.parser;\n\t\tconst json = parser.json;\n\n\t\tconst textureDef = json.textures[ textureIndex ];\n\n\t\tif ( ! textureDef.extensions || ! textureDef.extensions[ name ] ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst extension = textureDef.extensions[ name ];\n\t\tconst source = json.images[ extension.source ];\n\n\t\tlet loader = parser.textureLoader;\n\t\tif ( source.uri ) {\n\n\t\t\tconst handler = parser.options.manager.getHandler( source.uri );\n\t\t\tif ( handler !== null ) loader = handler;\n\n\t\t}\n\n\t\treturn this.detectSupport().then( function ( isSupported ) {\n\n\t\t\tif ( isSupported ) return parser.loadTextureImage( textureIndex, extension.source, loader );\n\n\t\t\tif ( json.extensionsRequired && json.extensionsRequired.indexOf( name ) >= 0 ) {\n\n\t\t\t\tthrow new Error( 'THREE.GLTFLoader: WebP required by asset but unsupported.' );\n\n\t\t\t}\n\n\t\t\t// Fall back to PNG or JPEG.\n\t\t\treturn parser.loadTexture( textureIndex );\n\n\t\t} );\n\n\t}\n\n\tdetectSupport() {\n\n\t\tif ( ! this.isSupported ) {\n\n\t\t\tthis.isSupported = new Promise( function ( resolve ) {\n\n\t\t\t\tconst image = new Image();\n\n\t\t\t\t// Lossy test image. Support for lossy images doesn't guarantee support for all\n\t\t\t\t// WebP images, unfortunately.\n\t\t\t\timage.src = 'data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA';\n\n\t\t\t\timage.onload = image.onerror = function () {\n\n\t\t\t\t\tresolve( image.height === 1 );\n\n\t\t\t\t};\n\n\t\t\t} );\n\n\t\t}\n\n\t\treturn this.isSupported;\n\n\t}\n\n}\n\n/**\n * AVIF Texture Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/EXT_texture_avif\n */\nclass GLTFTextureAVIFExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.EXT_TEXTURE_AVIF;\n\t\tthis.isSupported = null;\n\n\t}\n\n\tloadTexture( textureIndex ) {\n\n\t\tconst name = this.name;\n\t\tconst parser = this.parser;\n\t\tconst json = parser.json;\n\n\t\tconst textureDef = json.textures[ textureIndex ];\n\n\t\tif ( ! textureDef.extensions || ! textureDef.extensions[ name ] ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst extension = textureDef.extensions[ name ];\n\t\tconst source = json.images[ extension.source ];\n\n\t\tlet loader = parser.textureLoader;\n\t\tif ( source.uri ) {\n\n\t\t\tconst handler = parser.options.manager.getHandler( source.uri );\n\t\t\tif ( handler !== null ) loader = handler;\n\n\t\t}\n\n\t\treturn this.detectSupport().then( function ( isSupported ) {\n\n\t\t\tif ( isSupported ) return parser.loadTextureImage( textureIndex, extension.source, loader );\n\n\t\t\tif ( json.extensionsRequired && json.extensionsRequired.indexOf( name ) >= 0 ) {\n\n\t\t\t\tthrow new Error( 'THREE.GLTFLoader: AVIF required by asset but unsupported.' );\n\n\t\t\t}\n\n\t\t\t// Fall back to PNG or JPEG.\n\t\t\treturn parser.loadTexture( textureIndex );\n\n\t\t} );\n\n\t}\n\n\tdetectSupport() {\n\n\t\tif ( ! this.isSupported ) {\n\n\t\t\tthis.isSupported = new Promise( function ( resolve ) {\n\n\t\t\t\tconst image = new Image();\n\n\t\t\t\t// Lossy test image.\n\t\t\t\timage.src = 'data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=';\n\t\t\t\timage.onload = image.onerror = function () {\n\n\t\t\t\t\tresolve( image.height === 1 );\n\n\t\t\t\t};\n\n\t\t\t} );\n\n\t\t}\n\n\t\treturn this.isSupported;\n\n\t}\n\n}\n\n/**\n * meshopt BufferView Compression Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/EXT_meshopt_compression\n */\nclass GLTFMeshoptCompression {\n\n\tconstructor( parser ) {\n\n\t\tthis.name = EXTENSIONS.EXT_MESHOPT_COMPRESSION;\n\t\tthis.parser = parser;\n\n\t}\n\n\tloadBufferView( index ) {\n\n\t\tconst json = this.parser.json;\n\t\tconst bufferView = json.bufferViews[ index ];\n\n\t\tif ( bufferView.extensions && bufferView.extensions[ this.name ] ) {\n\n\t\t\tconst extensionDef = bufferView.extensions[ this.name ];\n\n\t\t\tconst buffer = this.parser.getDependency( 'buffer', extensionDef.buffer );\n\t\t\tconst decoder = this.parser.options.meshoptDecoder;\n\n\t\t\tif ( ! decoder || ! decoder.supported ) {\n\n\t\t\t\tif ( json.extensionsRequired && json.extensionsRequired.indexOf( this.name ) >= 0 ) {\n\n\t\t\t\t\tthrow new Error( 'THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files' );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// Assumes that the extension is optional and that fallback buffer data is present\n\t\t\t\t\treturn null;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn buffer.then( function ( res ) {\n\n\t\t\t\tconst byteOffset = extensionDef.byteOffset || 0;\n\t\t\t\tconst byteLength = extensionDef.byteLength || 0;\n\n\t\t\t\tconst count = extensionDef.count;\n\t\t\t\tconst stride = extensionDef.byteStride;\n\n\t\t\t\tconst source = new Uint8Array( res, byteOffset, byteLength );\n\n\t\t\t\tif ( decoder.decodeGltfBufferAsync ) {\n\n\t\t\t\t\treturn decoder.decodeGltfBufferAsync( count, stride, source, extensionDef.mode, extensionDef.filter ).then( function ( res ) {\n\n\t\t\t\t\t\treturn res.buffer;\n\n\t\t\t\t\t} );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// Support for MeshoptDecoder 0.18 or earlier, without decodeGltfBufferAsync\n\t\t\t\t\treturn decoder.ready.then( function () {\n\n\t\t\t\t\t\tconst result = new ArrayBuffer( count * stride );\n\t\t\t\t\t\tdecoder.decodeGltfBuffer( new Uint8Array( result ), count, stride, source, extensionDef.mode, extensionDef.filter );\n\t\t\t\t\t\treturn result;\n\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t} else {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t}\n\n}\n\n/**\n * GPU Instancing Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/EXT_mesh_gpu_instancing\n *\n */\nclass GLTFMeshGpuInstancing {\n\n\tconstructor( parser ) {\n\n\t\tthis.name = EXTENSIONS.EXT_MESH_GPU_INSTANCING;\n\t\tthis.parser = parser;\n\n\t}\n\n\tcreateNodeMesh( nodeIndex ) {\n\n\t\tconst json = this.parser.json;\n\t\tconst nodeDef = json.nodes[ nodeIndex ];\n\n\t\tif ( ! nodeDef.extensions || ! nodeDef.extensions[ this.name ] ||\n\t\t\tnodeDef.mesh === undefined ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst meshDef = json.meshes[ nodeDef.mesh ];\n\n\t\t// No Points or Lines + Instancing support yet\n\n\t\tfor ( const primitive of meshDef.primitives ) {\n\n\t\t\tif ( primitive.mode !== WEBGL_CONSTANTS.TRIANGLES &&\n\t\t\t\t primitive.mode !== WEBGL_CONSTANTS.TRIANGLE_STRIP &&\n\t\t\t\t primitive.mode !== WEBGL_CONSTANTS.TRIANGLE_FAN &&\n\t\t\t\t primitive.mode !== undefined ) {\n\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst extensionDef = nodeDef.extensions[ this.name ];\n\t\tconst attributesDef = extensionDef.attributes;\n\n\t\t// @TODO: Can we support InstancedMesh + SkinnedMesh?\n\n\t\tconst pending = [];\n\t\tconst attributes = {};\n\n\t\tfor ( const key in attributesDef ) {\n\n\t\t\tpending.push( this.parser.getDependency( 'accessor', attributesDef[ key ] ).then( accessor => {\n\n\t\t\t\tattributes[ key ] = accessor;\n\t\t\t\treturn attributes[ key ];\n\n\t\t\t} ) );\n\n\t\t}\n\n\t\tif ( pending.length < 1 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tpending.push( this.parser.createNodeMesh( nodeIndex ) );\n\n\t\treturn Promise.all( pending ).then( results => {\n\n\t\t\tconst nodeObject = results.pop();\n\t\t\tconst meshes = nodeObject.isGroup ? nodeObject.children : [ nodeObject ];\n\t\t\tconst count = results[ 0 ].count; // All attribute counts should be same\n\t\t\tconst instancedMeshes = [];\n\n\t\t\tfor ( const mesh of meshes ) {\n\n\t\t\t\t// Temporal variables\n\t\t\t\tconst m = new Matrix4();\n\t\t\t\tconst p = new Vector3();\n\t\t\t\tconst q = new Quaternion();\n\t\t\t\tconst s = new Vector3( 1, 1, 1 );\n\n\t\t\t\tconst instancedMesh = new InstancedMesh( mesh.geometry, mesh.material, count );\n\n\t\t\t\tfor ( let i = 0; i < count; i ++ ) {\n\n\t\t\t\t\tif ( attributes.TRANSLATION ) {\n\n\t\t\t\t\t\tp.fromBufferAttribute( attributes.TRANSLATION, i );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( attributes.ROTATION ) {\n\n\t\t\t\t\t\tq.fromBufferAttribute( attributes.ROTATION, i );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( attributes.SCALE ) {\n\n\t\t\t\t\t\ts.fromBufferAttribute( attributes.SCALE, i );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tinstancedMesh.setMatrixAt( i, m.compose( p, q, s ) );\n\n\t\t\t\t}\n\n\t\t\t\t// Add instance attributes to the geometry, excluding TRS.\n\t\t\t\tfor ( const attributeName in attributes ) {\n\n\t\t\t\t\tif ( attributeName === '_COLOR_0' ) {\n\n\t\t\t\t\t\tconst attr = attributes[ attributeName ];\n\t\t\t\t\t\tinstancedMesh.instanceColor = new InstancedBufferAttribute( attr.array, attr.itemSize, attr.normalized );\n\n\t\t\t\t\t} else if ( attributeName !== 'TRANSLATION' &&\n\t\t\t\t\t\t attributeName !== 'ROTATION' &&\n\t\t\t\t\t\t attributeName !== 'SCALE' ) {\n\n\t\t\t\t\t\tmesh.geometry.setAttribute( attributeName, attributes[ attributeName ] );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t// Just in case\n\t\t\t\tObject3D.prototype.copy.call( instancedMesh, mesh );\n\n\t\t\t\tthis.parser.assignFinalMaterial( instancedMesh );\n\n\t\t\t\tinstancedMeshes.push( instancedMesh );\n\n\t\t\t}\n\n\t\t\tif ( nodeObject.isGroup ) {\n\n\t\t\t\tnodeObject.clear();\n\n\t\t\t\tnodeObject.add( ... instancedMeshes );\n\n\t\t\t\treturn nodeObject;\n\n\t\t\t}\n\n\t\t\treturn instancedMeshes[ 0 ];\n\n\t\t} );\n\n\t}\n\n}\n\n/* BINARY EXTENSION */\nconst BINARY_EXTENSION_HEADER_MAGIC = 'glTF';\nconst BINARY_EXTENSION_HEADER_LENGTH = 12;\nconst BINARY_EXTENSION_CHUNK_TYPES = { JSON: 0x4E4F534A, BIN: 0x004E4942 };\n\nclass GLTFBinaryExtension {\n\n\tconstructor( data ) {\n\n\t\tthis.name = EXTENSIONS.KHR_BINARY_GLTF;\n\t\tthis.content = null;\n\t\tthis.body = null;\n\n\t\tconst headerView = new DataView( data, 0, BINARY_EXTENSION_HEADER_LENGTH );\n\t\tconst textDecoder = new TextDecoder();\n\n\t\tthis.header = {\n\t\t\tmagic: textDecoder.decode( new Uint8Array( data.slice( 0, 4 ) ) ),\n\t\t\tversion: headerView.getUint32( 4, true ),\n\t\t\tlength: headerView.getUint32( 8, true )\n\t\t};\n\n\t\tif ( this.header.magic !== BINARY_EXTENSION_HEADER_MAGIC ) {\n\n\t\t\tthrow new Error( 'THREE.GLTFLoader: Unsupported glTF-Binary header.' );\n\n\t\t} else if ( this.header.version < 2.0 ) {\n\n\t\t\tthrow new Error( 'THREE.GLTFLoader: Legacy binary file detected.' );\n\n\t\t}\n\n\t\tconst chunkContentsLength = this.header.length - BINARY_EXTENSION_HEADER_LENGTH;\n\t\tconst chunkView = new DataView( data, BINARY_EXTENSION_HEADER_LENGTH );\n\t\tlet chunkIndex = 0;\n\n\t\twhile ( chunkIndex < chunkContentsLength ) {\n\n\t\t\tconst chunkLength = chunkView.getUint32( chunkIndex, true );\n\t\t\tchunkIndex += 4;\n\n\t\t\tconst chunkType = chunkView.getUint32( chunkIndex, true );\n\t\t\tchunkIndex += 4;\n\n\t\t\tif ( chunkType === BINARY_EXTENSION_CHUNK_TYPES.JSON ) {\n\n\t\t\t\tconst contentArray = new Uint8Array( data, BINARY_EXTENSION_HEADER_LENGTH + chunkIndex, chunkLength );\n\t\t\t\tthis.content = textDecoder.decode( contentArray );\n\n\t\t\t} else if ( chunkType === BINARY_EXTENSION_CHUNK_TYPES.BIN ) {\n\n\t\t\t\tconst byteOffset = BINARY_EXTENSION_HEADER_LENGTH + chunkIndex;\n\t\t\t\tthis.body = data.slice( byteOffset, byteOffset + chunkLength );\n\n\t\t\t}\n\n\t\t\t// Clients must ignore chunks with unknown types.\n\n\t\t\tchunkIndex += chunkLength;\n\n\t\t}\n\n\t\tif ( this.content === null ) {\n\n\t\t\tthrow new Error( 'THREE.GLTFLoader: JSON content not found.' );\n\n\t\t}\n\n\t}\n\n}\n\n/**\n * DRACO Mesh Compression Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_draco_mesh_compression\n */\nclass GLTFDracoMeshCompressionExtension {\n\n\tconstructor( json, dracoLoader ) {\n\n\t\tif ( ! dracoLoader ) {\n\n\t\t\tthrow new Error( 'THREE.GLTFLoader: No DRACOLoader instance provided.' );\n\n\t\t}\n\n\t\tthis.name = EXTENSIONS.KHR_DRACO_MESH_COMPRESSION;\n\t\tthis.json = json;\n\t\tthis.dracoLoader = dracoLoader;\n\t\tthis.dracoLoader.preload();\n\n\t}\n\n\tdecodePrimitive( primitive, parser ) {\n\n\t\tconst json = this.json;\n\t\tconst dracoLoader = this.dracoLoader;\n\t\tconst bufferViewIndex = primitive.extensions[ this.name ].bufferView;\n\t\tconst gltfAttributeMap = primitive.extensions[ this.name ].attributes;\n\t\tconst threeAttributeMap = {};\n\t\tconst attributeNormalizedMap = {};\n\t\tconst attributeTypeMap = {};\n\n\t\tfor ( const attributeName in gltfAttributeMap ) {\n\n\t\t\tconst threeAttributeName = ATTRIBUTES[ attributeName ] || attributeName.toLowerCase();\n\n\t\t\tthreeAttributeMap[ threeAttributeName ] = gltfAttributeMap[ attributeName ];\n\n\t\t}\n\n\t\tfor ( const attributeName in primitive.attributes ) {\n\n\t\t\tconst threeAttributeName = ATTRIBUTES[ attributeName ] || attributeName.toLowerCase();\n\n\t\t\tif ( gltfAttributeMap[ attributeName ] !== undefined ) {\n\n\t\t\t\tconst accessorDef = json.accessors[ primitive.attributes[ attributeName ] ];\n\t\t\t\tconst componentType = WEBGL_COMPONENT_TYPES[ accessorDef.componentType ];\n\n\t\t\t\tattributeTypeMap[ threeAttributeName ] = componentType.name;\n\t\t\t\tattributeNormalizedMap[ threeAttributeName ] = accessorDef.normalized === true;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn parser.getDependency( 'bufferView', bufferViewIndex ).then( function ( bufferView ) {\n\n\t\t\treturn new Promise( function ( resolve, reject ) {\n\n\t\t\t\tdracoLoader.decodeDracoFile( bufferView, function ( geometry ) {\n\n\t\t\t\t\tfor ( const attributeName in geometry.attributes ) {\n\n\t\t\t\t\t\tconst attribute = geometry.attributes[ attributeName ];\n\t\t\t\t\t\tconst normalized = attributeNormalizedMap[ attributeName ];\n\n\t\t\t\t\t\tif ( normalized !== undefined ) attribute.normalized = normalized;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tresolve( geometry );\n\n\t\t\t\t}, threeAttributeMap, attributeTypeMap, LinearSRGBColorSpace, reject );\n\n\t\t\t} );\n\n\t\t} );\n\n\t}\n\n}\n\n/**\n * Texture Transform Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_texture_transform\n */\nclass GLTFTextureTransformExtension {\n\n\tconstructor() {\n\n\t\tthis.name = EXTENSIONS.KHR_TEXTURE_TRANSFORM;\n\n\t}\n\n\textendTexture( texture, transform ) {\n\n\t\tif ( ( transform.texCoord === undefined || transform.texCoord === texture.channel )\n\t\t\t&& transform.offset === undefined\n\t\t\t&& transform.rotation === undefined\n\t\t\t&& transform.scale === undefined ) {\n\n\t\t\t// See https://github.com/mrdoob/three.js/issues/21819.\n\t\t\treturn texture;\n\n\t\t}\n\n\t\ttexture = texture.clone();\n\n\t\tif ( transform.texCoord !== undefined ) {\n\n\t\t\ttexture.channel = transform.texCoord;\n\n\t\t}\n\n\t\tif ( transform.offset !== undefined ) {\n\n\t\t\ttexture.offset.fromArray( transform.offset );\n\n\t\t}\n\n\t\tif ( transform.rotation !== undefined ) {\n\n\t\t\ttexture.rotation = transform.rotation;\n\n\t\t}\n\n\t\tif ( transform.scale !== undefined ) {\n\n\t\t\ttexture.repeat.fromArray( transform.scale );\n\n\t\t}\n\n\t\ttexture.needsUpdate = true;\n\n\t\treturn texture;\n\n\t}\n\n}\n\n/**\n * Mesh Quantization Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_mesh_quantization\n */\nclass GLTFMeshQuantizationExtension {\n\n\tconstructor() {\n\n\t\tthis.name = EXTENSIONS.KHR_MESH_QUANTIZATION;\n\n\t}\n\n}\n\n/*********************************/\n/********** INTERPOLATION ********/\n/*********************************/\n\n// Spline Interpolation\n// Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#appendix-c-spline-interpolation\nclass GLTFCubicSplineInterpolant extends Interpolant {\n\n\tconstructor( parameterPositions, sampleValues, sampleSize, resultBuffer ) {\n\n\t\tsuper( parameterPositions, sampleValues, sampleSize, resultBuffer );\n\n\t}\n\n\tcopySampleValue_( index ) {\n\n\t\t// Copies a sample value to the result buffer. See description of glTF\n\t\t// CUBICSPLINE values layout in interpolate_() function below.\n\n\t\tconst result = this.resultBuffer,\n\t\t\tvalues = this.sampleValues,\n\t\t\tvalueSize = this.valueSize,\n\t\t\toffset = index * valueSize * 3 + valueSize;\n\n\t\tfor ( let i = 0; i !== valueSize; i ++ ) {\n\n\t\t\tresult[ i ] = values[ offset + i ];\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n\tinterpolate_( i1, t0, t, t1 ) {\n\n\t\tconst result = this.resultBuffer;\n\t\tconst values = this.sampleValues;\n\t\tconst stride = this.valueSize;\n\n\t\tconst stride2 = stride * 2;\n\t\tconst stride3 = stride * 3;\n\n\t\tconst td = t1 - t0;\n\n\t\tconst p = ( t - t0 ) / td;\n\t\tconst pp = p * p;\n\t\tconst ppp = pp * p;\n\n\t\tconst offset1 = i1 * stride3;\n\t\tconst offset0 = offset1 - stride3;\n\n\t\tconst s2 = - 2 * ppp + 3 * pp;\n\t\tconst s3 = ppp - pp;\n\t\tconst s0 = 1 - s2;\n\t\tconst s1 = s3 - pp + p;\n\n\t\t// Layout of keyframe output values for CUBICSPLINE animations:\n\t\t// [ inTangent_1, splineVertex_1, outTangent_1, inTangent_2, splineVertex_2, ... ]\n\t\tfor ( let i = 0; i !== stride; i ++ ) {\n\n\t\t\tconst p0 = values[ offset0 + i + stride ]; // splineVertex_k\n\t\t\tconst m0 = values[ offset0 + i + stride2 ] * td; // outTangent_k * (t_k+1 - t_k)\n\t\t\tconst p1 = values[ offset1 + i + stride ]; // splineVertex_k+1\n\t\t\tconst m1 = values[ offset1 + i ] * td; // inTangent_k+1 * (t_k+1 - t_k)\n\n\t\t\tresult[ i ] = s0 * p0 + s1 * m0 + s2 * p1 + s3 * m1;\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n}\n\nconst _q = new Quaternion();\n\nclass GLTFCubicSplineQuaternionInterpolant extends GLTFCubicSplineInterpolant {\n\n\tinterpolate_( i1, t0, t, t1 ) {\n\n\t\tconst result = super.interpolate_( i1, t0, t, t1 );\n\n\t\t_q.fromArray( result ).normalize().toArray( result );\n\n\t\treturn result;\n\n\t}\n\n}\n\n\n/*********************************/\n/********** INTERNALS ************/\n/*********************************/\n\n/* CONSTANTS */\n\nconst WEBGL_CONSTANTS = {\n\tFLOAT: 5126,\n\t//FLOAT_MAT2: 35674,\n\tFLOAT_MAT3: 35675,\n\tFLOAT_MAT4: 35676,\n\tFLOAT_VEC2: 35664,\n\tFLOAT_VEC3: 35665,\n\tFLOAT_VEC4: 35666,\n\tLINEAR: 9729,\n\tREPEAT: 10497,\n\tSAMPLER_2D: 35678,\n\tPOINTS: 0,\n\tLINES: 1,\n\tLINE_LOOP: 2,\n\tLINE_STRIP: 3,\n\tTRIANGLES: 4,\n\tTRIANGLE_STRIP: 5,\n\tTRIANGLE_FAN: 6,\n\tUNSIGNED_BYTE: 5121,\n\tUNSIGNED_SHORT: 5123\n};\n\nconst WEBGL_COMPONENT_TYPES = {\n\t5120: Int8Array,\n\t5121: Uint8Array,\n\t5122: Int16Array,\n\t5123: Uint16Array,\n\t5125: Uint32Array,\n\t5126: Float32Array\n};\n\nconst WEBGL_FILTERS = {\n\t9728: NearestFilter,\n\t9729: LinearFilter,\n\t9984: NearestMipmapNearestFilter,\n\t9985: LinearMipmapNearestFilter,\n\t9986: NearestMipmapLinearFilter,\n\t9987: LinearMipmapLinearFilter\n};\n\nconst WEBGL_WRAPPINGS = {\n\t33071: ClampToEdgeWrapping,\n\t33648: MirroredRepeatWrapping,\n\t10497: RepeatWrapping\n};\n\nconst WEBGL_TYPE_SIZES = {\n\t'SCALAR': 1,\n\t'VEC2': 2,\n\t'VEC3': 3,\n\t'VEC4': 4,\n\t'MAT2': 4,\n\t'MAT3': 9,\n\t'MAT4': 16\n};\n\nconst ATTRIBUTES = {\n\tPOSITION: 'position',\n\tNORMAL: 'normal',\n\tTANGENT: 'tangent',\n\tTEXCOORD_0: 'uv',\n\tTEXCOORD_1: 'uv1',\n\tTEXCOORD_2: 'uv2',\n\tTEXCOORD_3: 'uv3',\n\tCOLOR_0: 'color',\n\tWEIGHTS_0: 'skinWeight',\n\tJOINTS_0: 'skinIndex',\n};\n\nconst PATH_PROPERTIES = {\n\tscale: 'scale',\n\ttranslation: 'position',\n\trotation: 'quaternion',\n\tweights: 'morphTargetInfluences'\n};\n\nconst INTERPOLATION = {\n\tCUBICSPLINE: undefined, // We use a custom interpolant (GLTFCubicSplineInterpolation) for CUBICSPLINE tracks. Each\n\t\t // keyframe track will be initialized with a default interpolation type, then modified.\n\tLINEAR: InterpolateLinear,\n\tSTEP: InterpolateDiscrete\n};\n\nconst ALPHA_MODES = {\n\tOPAQUE: 'OPAQUE',\n\tMASK: 'MASK',\n\tBLEND: 'BLEND'\n};\n\n/**\n * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#default-material\n */\nfunction createDefaultMaterial( cache ) {\n\n\tif ( cache[ 'DefaultMaterial' ] === undefined ) {\n\n\t\tcache[ 'DefaultMaterial' ] = new MeshStandardMaterial( {\n\t\t\tcolor: 0xFFFFFF,\n\t\t\temissive: 0x000000,\n\t\t\tmetalness: 1,\n\t\t\troughness: 1,\n\t\t\ttransparent: false,\n\t\t\tdepthTest: true,\n\t\t\tside: FrontSide\n\t\t} );\n\n\t}\n\n\treturn cache[ 'DefaultMaterial' ];\n\n}\n\nfunction addUnknownExtensionsToUserData( knownExtensions, object, objectDef ) {\n\n\t// Add unknown glTF extensions to an object's userData.\n\n\tfor ( const name in objectDef.extensions ) {\n\n\t\tif ( knownExtensions[ name ] === undefined ) {\n\n\t\t\tobject.userData.gltfExtensions = object.userData.gltfExtensions || {};\n\t\t\tobject.userData.gltfExtensions[ name ] = objectDef.extensions[ name ];\n\n\t\t}\n\n\t}\n\n}\n\n/**\n * @param {Object3D|Material|BufferGeometry} object\n * @param {GLTF.definition} gltfDef\n */\nfunction assignExtrasToUserData( object, gltfDef ) {\n\n\tif ( gltfDef.extras !== undefined ) {\n\n\t\tif ( typeof gltfDef.extras === 'object' ) {\n\n\t\t\tObject.assign( object.userData, gltfDef.extras );\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.GLTFLoader: Ignoring primitive type .extras, ' + gltfDef.extras );\n\n\t\t}\n\n\t}\n\n}\n\n/**\n * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#morph-targets\n *\n * @param {BufferGeometry} geometry\n * @param {Array} targets\n * @param {GLTFParser} parser\n * @return {Promise}\n */\nfunction addMorphTargets( geometry, targets, parser ) {\n\n\tlet hasMorphPosition = false;\n\tlet hasMorphNormal = false;\n\tlet hasMorphColor = false;\n\n\tfor ( let i = 0, il = targets.length; i < il; i ++ ) {\n\n\t\tconst target = targets[ i ];\n\n\t\tif ( target.POSITION !== undefined ) hasMorphPosition = true;\n\t\tif ( target.NORMAL !== undefined ) hasMorphNormal = true;\n\t\tif ( target.COLOR_0 !== undefined ) hasMorphColor = true;\n\n\t\tif ( hasMorphPosition && hasMorphNormal && hasMorphColor ) break;\n\n\t}\n\n\tif ( ! hasMorphPosition && ! hasMorphNormal && ! hasMorphColor ) return Promise.resolve( geometry );\n\n\tconst pendingPositionAccessors = [];\n\tconst pendingNormalAccessors = [];\n\tconst pendingColorAccessors = [];\n\n\tfor ( let i = 0, il = targets.length; i < il; i ++ ) {\n\n\t\tconst target = targets[ i ];\n\n\t\tif ( hasMorphPosition ) {\n\n\t\t\tconst pendingAccessor = target.POSITION !== undefined\n\t\t\t\t? parser.getDependency( 'accessor', target.POSITION )\n\t\t\t\t: geometry.attributes.position;\n\n\t\t\tpendingPositionAccessors.push( pendingAccessor );\n\n\t\t}\n\n\t\tif ( hasMorphNormal ) {\n\n\t\t\tconst pendingAccessor = target.NORMAL !== undefined\n\t\t\t\t? parser.getDependency( 'accessor', target.NORMAL )\n\t\t\t\t: geometry.attributes.normal;\n\n\t\t\tpendingNormalAccessors.push( pendingAccessor );\n\n\t\t}\n\n\t\tif ( hasMorphColor ) {\n\n\t\t\tconst pendingAccessor = target.COLOR_0 !== undefined\n\t\t\t\t? parser.getDependency( 'accessor', target.COLOR_0 )\n\t\t\t\t: geometry.attributes.color;\n\n\t\t\tpendingColorAccessors.push( pendingAccessor );\n\n\t\t}\n\n\t}\n\n\treturn Promise.all( [\n\t\tPromise.all( pendingPositionAccessors ),\n\t\tPromise.all( pendingNormalAccessors ),\n\t\tPromise.all( pendingColorAccessors )\n\t] ).then( function ( accessors ) {\n\n\t\tconst morphPositions = accessors[ 0 ];\n\t\tconst morphNormals = accessors[ 1 ];\n\t\tconst morphColors = accessors[ 2 ];\n\n\t\tif ( hasMorphPosition ) geometry.morphAttributes.position = morphPositions;\n\t\tif ( hasMorphNormal ) geometry.morphAttributes.normal = morphNormals;\n\t\tif ( hasMorphColor ) geometry.morphAttributes.color = morphColors;\n\t\tgeometry.morphTargetsRelative = true;\n\n\t\treturn geometry;\n\n\t} );\n\n}\n\n/**\n * @param {Mesh} mesh\n * @param {GLTF.Mesh} meshDef\n */\nfunction updateMorphTargets( mesh, meshDef ) {\n\n\tmesh.updateMorphTargets();\n\n\tif ( meshDef.weights !== undefined ) {\n\n\t\tfor ( let i = 0, il = meshDef.weights.length; i < il; i ++ ) {\n\n\t\t\tmesh.morphTargetInfluences[ i ] = meshDef.weights[ i ];\n\n\t\t}\n\n\t}\n\n\t// .extras has user-defined data, so check that .extras.targetNames is an array.\n\tif ( meshDef.extras && Array.isArray( meshDef.extras.targetNames ) ) {\n\n\t\tconst targetNames = meshDef.extras.targetNames;\n\n\t\tif ( mesh.morphTargetInfluences.length === targetNames.length ) {\n\n\t\t\tmesh.morphTargetDictionary = {};\n\n\t\t\tfor ( let i = 0, il = targetNames.length; i < il; i ++ ) {\n\n\t\t\t\tmesh.morphTargetDictionary[ targetNames[ i ] ] = i;\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.' );\n\n\t\t}\n\n\t}\n\n}\n\nfunction createPrimitiveKey( primitiveDef ) {\n\n\tlet geometryKey;\n\n\tconst dracoExtension = primitiveDef.extensions && primitiveDef.extensions[ EXTENSIONS.KHR_DRACO_MESH_COMPRESSION ];\n\n\tif ( dracoExtension ) {\n\n\t\tgeometryKey = 'draco:' + dracoExtension.bufferView\n\t\t\t\t+ ':' + dracoExtension.indices\n\t\t\t\t+ ':' + createAttributesKey( dracoExtension.attributes );\n\n\t} else {\n\n\t\tgeometryKey = primitiveDef.indices + ':' + createAttributesKey( primitiveDef.attributes ) + ':' + primitiveDef.mode;\n\n\t}\n\n\tif ( primitiveDef.targets !== undefined ) {\n\n\t\tfor ( let i = 0, il = primitiveDef.targets.length; i < il; i ++ ) {\n\n\t\t\tgeometryKey += ':' + createAttributesKey( primitiveDef.targets[ i ] );\n\n\t\t}\n\n\t}\n\n\treturn geometryKey;\n\n}\n\nfunction createAttributesKey( attributes ) {\n\n\tlet attributesKey = '';\n\n\tconst keys = Object.keys( attributes ).sort();\n\n\tfor ( let i = 0, il = keys.length; i < il; i ++ ) {\n\n\t\tattributesKey += keys[ i ] + ':' + attributes[ keys[ i ] ] + ';';\n\n\t}\n\n\treturn attributesKey;\n\n}\n\nfunction getNormalizedComponentScale( constructor ) {\n\n\t// Reference:\n\t// https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_mesh_quantization#encoding-quantized-data\n\n\tswitch ( constructor ) {\n\n\t\tcase Int8Array:\n\t\t\treturn 1 / 127;\n\n\t\tcase Uint8Array:\n\t\t\treturn 1 / 255;\n\n\t\tcase Int16Array:\n\t\t\treturn 1 / 32767;\n\n\t\tcase Uint16Array:\n\t\t\treturn 1 / 65535;\n\n\t\tdefault:\n\t\t\tthrow new Error( 'THREE.GLTFLoader: Unsupported normalized accessor component type.' );\n\n\t}\n\n}\n\nfunction getImageURIMimeType( uri ) {\n\n\tif ( uri.search( /\\.jpe?g($|\\?)/i ) > 0 || uri.search( /^data\\:image\\/jpeg/ ) === 0 ) return 'image/jpeg';\n\tif ( uri.search( /\\.webp($|\\?)/i ) > 0 || uri.search( /^data\\:image\\/webp/ ) === 0 ) return 'image/webp';\n\tif ( uri.search( /\\.ktx2($|\\?)/i ) > 0 || uri.search( /^data\\:image\\/ktx2/ ) === 0 ) return 'image/ktx2';\n\n\treturn 'image/png';\n\n}\n\nconst _identityMatrix = new Matrix4();\n\n/* GLTF PARSER */\n\nclass GLTFParser {\n\n\tconstructor( json = {}, options = {} ) {\n\n\t\tthis.json = json;\n\t\tthis.extensions = {};\n\t\tthis.plugins = {};\n\t\tthis.options = options;\n\n\t\t// loader object cache\n\t\tthis.cache = new GLTFRegistry();\n\n\t\t// associations between Three.js objects and glTF elements\n\t\tthis.associations = new Map();\n\n\t\t// BufferGeometry caching\n\t\tthis.primitiveCache = {};\n\n\t\t// Node cache\n\t\tthis.nodeCache = {};\n\n\t\t// Object3D instance caches\n\t\tthis.meshCache = { refs: {}, uses: {} };\n\t\tthis.cameraCache = { refs: {}, uses: {} };\n\t\tthis.lightCache = { refs: {}, uses: {} };\n\n\t\tthis.sourceCache = {};\n\t\tthis.textureCache = {};\n\n\t\t// Track node names, to ensure no duplicates\n\t\tthis.nodeNamesUsed = {};\n\n\t\t// Use an ImageBitmapLoader if imageBitmaps are supported. Moves much of the\n\t\t// expensive work of uploading a texture to the GPU off the main thread.\n\n\t\tlet isSafari = false;\n\t\tlet safariVersion = - 1;\n\t\tlet isFirefox = false;\n\t\tlet firefoxVersion = - 1;\n\n\t\tif ( typeof navigator !== 'undefined' ) {\n\n\t\t\tconst userAgent = navigator.userAgent;\n\n\t\t\tisSafari = /^((?!chrome|android).)*safari/i.test( userAgent ) === true;\n\t\t\tconst safariMatch = userAgent.match( /Version\\/(\\d+)/ );\n\t\t\tsafariVersion = isSafari && safariMatch ? parseInt( safariMatch[ 1 ], 10 ) : - 1;\n\n\t\t\tisFirefox = userAgent.indexOf( 'Firefox' ) > - 1;\n\t\t\tfirefoxVersion = isFirefox ? userAgent.match( /Firefox\\/([0-9]+)\\./ )[ 1 ] : - 1;\n\n\t\t}\n\n\t\tif ( typeof createImageBitmap === 'undefined' || ( isSafari && safariVersion < 17 ) || ( isFirefox && firefoxVersion < 98 ) ) {\n\n\t\t\tthis.textureLoader = new TextureLoader( this.options.manager );\n\n\t\t} else {\n\n\t\t\tthis.textureLoader = new ImageBitmapLoader( this.options.manager );\n\n\t\t}\n\n\t\tthis.textureLoader.setCrossOrigin( this.options.crossOrigin );\n\t\tthis.textureLoader.setRequestHeader( this.options.requestHeader );\n\n\t\tthis.fileLoader = new FileLoader( this.options.manager );\n\t\tthis.fileLoader.setResponseType( 'arraybuffer' );\n\n\t\tif ( this.options.crossOrigin === 'use-credentials' ) {\n\n\t\t\tthis.fileLoader.setWithCredentials( true );\n\n\t\t}\n\n\t}\n\n\tsetExtensions( extensions ) {\n\n\t\tthis.extensions = extensions;\n\n\t}\n\n\tsetPlugins( plugins ) {\n\n\t\tthis.plugins = plugins;\n\n\t}\n\n\tparse( onLoad, onError ) {\n\n\t\tconst parser = this;\n\t\tconst json = this.json;\n\t\tconst extensions = this.extensions;\n\n\t\t// Clear the loader cache\n\t\tthis.cache.removeAll();\n\t\tthis.nodeCache = {};\n\n\t\t// Mark the special nodes/meshes in json for efficient parse\n\t\tthis._invokeAll( function ( ext ) {\n\n\t\t\treturn ext._markDefs && ext._markDefs();\n\n\t\t} );\n\n\t\tPromise.all( this._invokeAll( function ( ext ) {\n\n\t\t\treturn ext.beforeRoot && ext.beforeRoot();\n\n\t\t} ) ).then( function () {\n\n\t\t\treturn Promise.all( [\n\n\t\t\t\tparser.getDependencies( 'scene' ),\n\t\t\t\tparser.getDependencies( 'animation' ),\n\t\t\t\tparser.getDependencies( 'camera' ),\n\n\t\t\t] );\n\n\t\t} ).then( function ( dependencies ) {\n\n\t\t\tconst result = {\n\t\t\t\tscene: dependencies[ 0 ][ json.scene || 0 ],\n\t\t\t\tscenes: dependencies[ 0 ],\n\t\t\t\tanimations: dependencies[ 1 ],\n\t\t\t\tcameras: dependencies[ 2 ],\n\t\t\t\tasset: json.asset,\n\t\t\t\tparser: parser,\n\t\t\t\tuserData: {}\n\t\t\t};\n\n\t\t\taddUnknownExtensionsToUserData( extensions, result, json );\n\n\t\t\tassignExtrasToUserData( result, json );\n\n\t\t\treturn Promise.all( parser._invokeAll( function ( ext ) {\n\n\t\t\t\treturn ext.afterRoot && ext.afterRoot( result );\n\n\t\t\t} ) ).then( function () {\n\n\t\t\t\tfor ( const scene of result.scenes ) {\n\n\t\t\t\t\tscene.updateMatrixWorld();\n\n\t\t\t\t}\n\n\t\t\t\tonLoad( result );\n\n\t\t\t} );\n\n\t\t} ).catch( onError );\n\n\t}\n\n\t/**\n\t * Marks the special nodes/meshes in json for efficient parse.\n\t */\n\t_markDefs() {\n\n\t\tconst nodeDefs = this.json.nodes || [];\n\t\tconst skinDefs = this.json.skins || [];\n\t\tconst meshDefs = this.json.meshes || [];\n\n\t\t// Nothing in the node definition indicates whether it is a Bone or an\n\t\t// Object3D. Use the skins' joint references to mark bones.\n\t\tfor ( let skinIndex = 0, skinLength = skinDefs.length; skinIndex < skinLength; skinIndex ++ ) {\n\n\t\t\tconst joints = skinDefs[ skinIndex ].joints;\n\n\t\t\tfor ( let i = 0, il = joints.length; i < il; i ++ ) {\n\n\t\t\t\tnodeDefs[ joints[ i ] ].isBone = true;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// Iterate over all nodes, marking references to shared resources,\n\t\t// as well as skeleton joints.\n\t\tfor ( let nodeIndex = 0, nodeLength = nodeDefs.length; nodeIndex < nodeLength; nodeIndex ++ ) {\n\n\t\t\tconst nodeDef = nodeDefs[ nodeIndex ];\n\n\t\t\tif ( nodeDef.mesh !== undefined ) {\n\n\t\t\t\tthis._addNodeRef( this.meshCache, nodeDef.mesh );\n\n\t\t\t\t// Nothing in the mesh definition indicates whether it is\n\t\t\t\t// a SkinnedMesh or Mesh. Use the node's mesh reference\n\t\t\t\t// to mark SkinnedMesh if node has skin.\n\t\t\t\tif ( nodeDef.skin !== undefined ) {\n\n\t\t\t\t\tmeshDefs[ nodeDef.mesh ].isSkinnedMesh = true;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( nodeDef.camera !== undefined ) {\n\n\t\t\t\tthis._addNodeRef( this.cameraCache, nodeDef.camera );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Counts references to shared node / Object3D resources. These resources\n\t * can be reused, or \"instantiated\", at multiple nodes in the scene\n\t * hierarchy. Mesh, Camera, and Light instances are instantiated and must\n\t * be marked. Non-scenegraph resources (like Materials, Geometries, and\n\t * Textures) can be reused directly and are not marked here.\n\t *\n\t * Example: CesiumMilkTruck sample model reuses \"Wheel\" meshes.\n\t */\n\t_addNodeRef( cache, index ) {\n\n\t\tif ( index === undefined ) return;\n\n\t\tif ( cache.refs[ index ] === undefined ) {\n\n\t\t\tcache.refs[ index ] = cache.uses[ index ] = 0;\n\n\t\t}\n\n\t\tcache.refs[ index ] ++;\n\n\t}\n\n\t/** Returns a reference to a shared resource, cloning it if necessary. */\n\t_getNodeRef( cache, index, object ) {\n\n\t\tif ( cache.refs[ index ] <= 1 ) return object;\n\n\t\tconst ref = object.clone();\n\n\t\t// Propagates mappings to the cloned object, prevents mappings on the\n\t\t// original object from being lost.\n\t\tconst updateMappings = ( original, clone ) => {\n\n\t\t\tconst mappings = this.associations.get( original );\n\t\t\tif ( mappings != null ) {\n\n\t\t\t\tthis.associations.set( clone, mappings );\n\n\t\t\t}\n\n\t\t\tfor ( const [ i, child ] of original.children.entries() ) {\n\n\t\t\t\tupdateMappings( child, clone.children[ i ] );\n\n\t\t\t}\n\n\t\t};\n\n\t\tupdateMappings( object, ref );\n\n\t\tref.name += '_instance_' + ( cache.uses[ index ] ++ );\n\n\t\treturn ref;\n\n\t}\n\n\t_invokeOne( func ) {\n\n\t\tconst extensions = Object.values( this.plugins );\n\t\textensions.push( this );\n\n\t\tfor ( let i = 0; i < extensions.length; i ++ ) {\n\n\t\t\tconst result = func( extensions[ i ] );\n\n\t\t\tif ( result ) return result;\n\n\t\t}\n\n\t\treturn null;\n\n\t}\n\n\t_invokeAll( func ) {\n\n\t\tconst extensions = Object.values( this.plugins );\n\t\textensions.unshift( this );\n\n\t\tconst pending = [];\n\n\t\tfor ( let i = 0; i < extensions.length; i ++ ) {\n\n\t\t\tconst result = func( extensions[ i ] );\n\n\t\t\tif ( result ) pending.push( result );\n\n\t\t}\n\n\t\treturn pending;\n\n\t}\n\n\t/**\n\t * Requests the specified dependency asynchronously, with caching.\n\t * @param {string} type\n\t * @param {number} index\n\t * @return {Promise}\n\t */\n\tgetDependency( type, index ) {\n\n\t\tconst cacheKey = type + ':' + index;\n\t\tlet dependency = this.cache.get( cacheKey );\n\n\t\tif ( ! dependency ) {\n\n\t\t\tswitch ( type ) {\n\n\t\t\t\tcase 'scene':\n\t\t\t\t\tdependency = this.loadScene( index );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'node':\n\t\t\t\t\tdependency = this._invokeOne( function ( ext ) {\n\n\t\t\t\t\t\treturn ext.loadNode && ext.loadNode( index );\n\n\t\t\t\t\t} );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'mesh':\n\t\t\t\t\tdependency = this._invokeOne( function ( ext ) {\n\n\t\t\t\t\t\treturn ext.loadMesh && ext.loadMesh( index );\n\n\t\t\t\t\t} );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'accessor':\n\t\t\t\t\tdependency = this.loadAccessor( index );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'bufferView':\n\t\t\t\t\tdependency = this._invokeOne( function ( ext ) {\n\n\t\t\t\t\t\treturn ext.loadBufferView && ext.loadBufferView( index );\n\n\t\t\t\t\t} );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'buffer':\n\t\t\t\t\tdependency = this.loadBuffer( index );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'material':\n\t\t\t\t\tdependency = this._invokeOne( function ( ext ) {\n\n\t\t\t\t\t\treturn ext.loadMaterial && ext.loadMaterial( index );\n\n\t\t\t\t\t} );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'texture':\n\t\t\t\t\tdependency = this._invokeOne( function ( ext ) {\n\n\t\t\t\t\t\treturn ext.loadTexture && ext.loadTexture( index );\n\n\t\t\t\t\t} );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'skin':\n\t\t\t\t\tdependency = this.loadSkin( index );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'animation':\n\t\t\t\t\tdependency = this._invokeOne( function ( ext ) {\n\n\t\t\t\t\t\treturn ext.loadAnimation && ext.loadAnimation( index );\n\n\t\t\t\t\t} );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'camera':\n\t\t\t\t\tdependency = this.loadCamera( index );\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\t\t\t\t\tdependency = this._invokeOne( function ( ext ) {\n\n\t\t\t\t\t\treturn ext != this && ext.getDependency && ext.getDependency( type, index );\n\n\t\t\t\t\t} );\n\n\t\t\t\t\tif ( ! dependency ) {\n\n\t\t\t\t\t\tthrow new Error( 'Unknown type: ' + type );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t\tthis.cache.add( cacheKey, dependency );\n\n\t\t}\n\n\t\treturn dependency;\n\n\t}\n\n\t/**\n\t * Requests all dependencies of the specified type asynchronously, with caching.\n\t * @param {string} type\n\t * @return {Promise>}\n\t */\n\tgetDependencies( type ) {\n\n\t\tlet dependencies = this.cache.get( type );\n\n\t\tif ( ! dependencies ) {\n\n\t\t\tconst parser = this;\n\t\t\tconst defs = this.json[ type + ( type === 'mesh' ? 'es' : 's' ) ] || [];\n\n\t\t\tdependencies = Promise.all( defs.map( function ( def, index ) {\n\n\t\t\t\treturn parser.getDependency( type, index );\n\n\t\t\t} ) );\n\n\t\t\tthis.cache.add( type, dependencies );\n\n\t\t}\n\n\t\treturn dependencies;\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#buffers-and-buffer-views\n\t * @param {number} bufferIndex\n\t * @return {Promise}\n\t */\n\tloadBuffer( bufferIndex ) {\n\n\t\tconst bufferDef = this.json.buffers[ bufferIndex ];\n\t\tconst loader = this.fileLoader;\n\n\t\tif ( bufferDef.type && bufferDef.type !== 'arraybuffer' ) {\n\n\t\t\tthrow new Error( 'THREE.GLTFLoader: ' + bufferDef.type + ' buffer type is not supported.' );\n\n\t\t}\n\n\t\t// If present, GLB container is required to be the first buffer.\n\t\tif ( bufferDef.uri === undefined && bufferIndex === 0 ) {\n\n\t\t\treturn Promise.resolve( this.extensions[ EXTENSIONS.KHR_BINARY_GLTF ].body );\n\n\t\t}\n\n\t\tconst options = this.options;\n\n\t\treturn new Promise( function ( resolve, reject ) {\n\n\t\t\tloader.load( LoaderUtils.resolveURL( bufferDef.uri, options.path ), resolve, undefined, function () {\n\n\t\t\t\treject( new Error( 'THREE.GLTFLoader: Failed to load buffer \"' + bufferDef.uri + '\".' ) );\n\n\t\t\t} );\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#buffers-and-buffer-views\n\t * @param {number} bufferViewIndex\n\t * @return {Promise}\n\t */\n\tloadBufferView( bufferViewIndex ) {\n\n\t\tconst bufferViewDef = this.json.bufferViews[ bufferViewIndex ];\n\n\t\treturn this.getDependency( 'buffer', bufferViewDef.buffer ).then( function ( buffer ) {\n\n\t\t\tconst byteLength = bufferViewDef.byteLength || 0;\n\t\t\tconst byteOffset = bufferViewDef.byteOffset || 0;\n\t\t\treturn buffer.slice( byteOffset, byteOffset + byteLength );\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#accessors\n\t * @param {number} accessorIndex\n\t * @return {Promise}\n\t */\n\tloadAccessor( accessorIndex ) {\n\n\t\tconst parser = this;\n\t\tconst json = this.json;\n\n\t\tconst accessorDef = this.json.accessors[ accessorIndex ];\n\n\t\tif ( accessorDef.bufferView === undefined && accessorDef.sparse === undefined ) {\n\n\t\t\tconst itemSize = WEBGL_TYPE_SIZES[ accessorDef.type ];\n\t\t\tconst TypedArray = WEBGL_COMPONENT_TYPES[ accessorDef.componentType ];\n\t\t\tconst normalized = accessorDef.normalized === true;\n\n\t\t\tconst array = new TypedArray( accessorDef.count * itemSize );\n\t\t\treturn Promise.resolve( new BufferAttribute( array, itemSize, normalized ) );\n\n\t\t}\n\n\t\tconst pendingBufferViews = [];\n\n\t\tif ( accessorDef.bufferView !== undefined ) {\n\n\t\t\tpendingBufferViews.push( this.getDependency( 'bufferView', accessorDef.bufferView ) );\n\n\t\t} else {\n\n\t\t\tpendingBufferViews.push( null );\n\n\t\t}\n\n\t\tif ( accessorDef.sparse !== undefined ) {\n\n\t\t\tpendingBufferViews.push( this.getDependency( 'bufferView', accessorDef.sparse.indices.bufferView ) );\n\t\t\tpendingBufferViews.push( this.getDependency( 'bufferView', accessorDef.sparse.values.bufferView ) );\n\n\t\t}\n\n\t\treturn Promise.all( pendingBufferViews ).then( function ( bufferViews ) {\n\n\t\t\tconst bufferView = bufferViews[ 0 ];\n\n\t\t\tconst itemSize = WEBGL_TYPE_SIZES[ accessorDef.type ];\n\t\t\tconst TypedArray = WEBGL_COMPONENT_TYPES[ accessorDef.componentType ];\n\n\t\t\t// For VEC3: itemSize is 3, elementBytes is 4, itemBytes is 12.\n\t\t\tconst elementBytes = TypedArray.BYTES_PER_ELEMENT;\n\t\t\tconst itemBytes = elementBytes * itemSize;\n\t\t\tconst byteOffset = accessorDef.byteOffset || 0;\n\t\t\tconst byteStride = accessorDef.bufferView !== undefined ? json.bufferViews[ accessorDef.bufferView ].byteStride : undefined;\n\t\t\tconst normalized = accessorDef.normalized === true;\n\t\t\tlet array, bufferAttribute;\n\n\t\t\t// The buffer is not interleaved if the stride is the item size in bytes.\n\t\t\tif ( byteStride && byteStride !== itemBytes ) {\n\n\t\t\t\t// Each \"slice\" of the buffer, as defined by 'count' elements of 'byteStride' bytes, gets its own InterleavedBuffer\n\t\t\t\t// This makes sure that IBA.count reflects accessor.count properly\n\t\t\t\tconst ibSlice = Math.floor( byteOffset / byteStride );\n\t\t\t\tconst ibCacheKey = 'InterleavedBuffer:' + accessorDef.bufferView + ':' + accessorDef.componentType + ':' + ibSlice + ':' + accessorDef.count;\n\t\t\t\tlet ib = parser.cache.get( ibCacheKey );\n\n\t\t\t\tif ( ! ib ) {\n\n\t\t\t\t\tarray = new TypedArray( bufferView, ibSlice * byteStride, accessorDef.count * byteStride / elementBytes );\n\n\t\t\t\t\t// Integer parameters to IB/IBA are in array elements, not bytes.\n\t\t\t\t\tib = new InterleavedBuffer( array, byteStride / elementBytes );\n\n\t\t\t\t\tparser.cache.add( ibCacheKey, ib );\n\n\t\t\t\t}\n\n\t\t\t\tbufferAttribute = new InterleavedBufferAttribute( ib, itemSize, ( byteOffset % byteStride ) / elementBytes, normalized );\n\n\t\t\t} else {\n\n\t\t\t\tif ( bufferView === null ) {\n\n\t\t\t\t\tarray = new TypedArray( accessorDef.count * itemSize );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tarray = new TypedArray( bufferView, byteOffset, accessorDef.count * itemSize );\n\n\t\t\t\t}\n\n\t\t\t\tbufferAttribute = new BufferAttribute( array, itemSize, normalized );\n\n\t\t\t}\n\n\t\t\t// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#sparse-accessors\n\t\t\tif ( accessorDef.sparse !== undefined ) {\n\n\t\t\t\tconst itemSizeIndices = WEBGL_TYPE_SIZES.SCALAR;\n\t\t\t\tconst TypedArrayIndices = WEBGL_COMPONENT_TYPES[ accessorDef.sparse.indices.componentType ];\n\n\t\t\t\tconst byteOffsetIndices = accessorDef.sparse.indices.byteOffset || 0;\n\t\t\t\tconst byteOffsetValues = accessorDef.sparse.values.byteOffset || 0;\n\n\t\t\t\tconst sparseIndices = new TypedArrayIndices( bufferViews[ 1 ], byteOffsetIndices, accessorDef.sparse.count * itemSizeIndices );\n\t\t\t\tconst sparseValues = new TypedArray( bufferViews[ 2 ], byteOffsetValues, accessorDef.sparse.count * itemSize );\n\n\t\t\t\tif ( bufferView !== null ) {\n\n\t\t\t\t\t// Avoid modifying the original ArrayBuffer, if the bufferView wasn't initialized with zeroes.\n\t\t\t\t\tbufferAttribute = new BufferAttribute( bufferAttribute.array.slice(), bufferAttribute.itemSize, bufferAttribute.normalized );\n\n\t\t\t\t}\n\n\t\t\t\t// Ignore normalized since we copy from sparse\n\t\t\t\tbufferAttribute.normalized = false;\n\n\t\t\t\tfor ( let i = 0, il = sparseIndices.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst index = sparseIndices[ i ];\n\n\t\t\t\t\tbufferAttribute.setX( index, sparseValues[ i * itemSize ] );\n\t\t\t\t\tif ( itemSize >= 2 ) bufferAttribute.setY( index, sparseValues[ i * itemSize + 1 ] );\n\t\t\t\t\tif ( itemSize >= 3 ) bufferAttribute.setZ( index, sparseValues[ i * itemSize + 2 ] );\n\t\t\t\t\tif ( itemSize >= 4 ) bufferAttribute.setW( index, sparseValues[ i * itemSize + 3 ] );\n\t\t\t\t\tif ( itemSize >= 5 ) throw new Error( 'THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.' );\n\n\t\t\t\t}\n\n\t\t\t\tbufferAttribute.normalized = normalized;\n\n\t\t\t}\n\n\t\t\treturn bufferAttribute;\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#textures\n\t * @param {number} textureIndex\n\t * @return {Promise}\n\t */\n\tloadTexture( textureIndex ) {\n\n\t\tconst json = this.json;\n\t\tconst options = this.options;\n\t\tconst textureDef = json.textures[ textureIndex ];\n\t\tconst sourceIndex = textureDef.source;\n\t\tconst sourceDef = json.images[ sourceIndex ];\n\n\t\tlet loader = this.textureLoader;\n\n\t\tif ( sourceDef.uri ) {\n\n\t\t\tconst handler = options.manager.getHandler( sourceDef.uri );\n\t\t\tif ( handler !== null ) loader = handler;\n\n\t\t}\n\n\t\treturn this.loadTextureImage( textureIndex, sourceIndex, loader );\n\n\t}\n\n\tloadTextureImage( textureIndex, sourceIndex, loader ) {\n\n\t\tconst parser = this;\n\t\tconst json = this.json;\n\n\t\tconst textureDef = json.textures[ textureIndex ];\n\t\tconst sourceDef = json.images[ sourceIndex ];\n\n\t\tconst cacheKey = ( sourceDef.uri || sourceDef.bufferView ) + ':' + textureDef.sampler;\n\n\t\tif ( this.textureCache[ cacheKey ] ) {\n\n\t\t\t// See https://github.com/mrdoob/three.js/issues/21559.\n\t\t\treturn this.textureCache[ cacheKey ];\n\n\t\t}\n\n\t\tconst promise = this.loadImageSource( sourceIndex, loader ).then( function ( texture ) {\n\n\t\t\ttexture.flipY = false;\n\n\t\t\ttexture.name = textureDef.name || sourceDef.name || '';\n\n\t\t\tif ( texture.name === '' && typeof sourceDef.uri === 'string' && sourceDef.uri.startsWith( 'data:image/' ) === false ) {\n\n\t\t\t\ttexture.name = sourceDef.uri;\n\n\t\t\t}\n\n\t\t\tconst samplers = json.samplers || {};\n\t\t\tconst sampler = samplers[ textureDef.sampler ] || {};\n\n\t\t\ttexture.magFilter = WEBGL_FILTERS[ sampler.magFilter ] || LinearFilter;\n\t\t\ttexture.minFilter = WEBGL_FILTERS[ sampler.minFilter ] || LinearMipmapLinearFilter;\n\t\t\ttexture.wrapS = WEBGL_WRAPPINGS[ sampler.wrapS ] || RepeatWrapping;\n\t\t\ttexture.wrapT = WEBGL_WRAPPINGS[ sampler.wrapT ] || RepeatWrapping;\n\t\t\ttexture.generateMipmaps = ! texture.isCompressedTexture && texture.minFilter !== NearestFilter && texture.minFilter !== LinearFilter;\n\n\t\t\tparser.associations.set( texture, { textures: textureIndex } );\n\n\t\t\treturn texture;\n\n\t\t} ).catch( function () {\n\n\t\t\treturn null;\n\n\t\t} );\n\n\t\tthis.textureCache[ cacheKey ] = promise;\n\n\t\treturn promise;\n\n\t}\n\n\tloadImageSource( sourceIndex, loader ) {\n\n\t\tconst parser = this;\n\t\tconst json = this.json;\n\t\tconst options = this.options;\n\n\t\tif ( this.sourceCache[ sourceIndex ] !== undefined ) {\n\n\t\t\treturn this.sourceCache[ sourceIndex ].then( ( texture ) => texture.clone() );\n\n\t\t}\n\n\t\tconst sourceDef = json.images[ sourceIndex ];\n\n\t\tconst URL = self.URL || self.webkitURL;\n\n\t\tlet sourceURI = sourceDef.uri || '';\n\t\tlet isObjectURL = false;\n\n\t\tif ( sourceDef.bufferView !== undefined ) {\n\n\t\t\t// Load binary image data from bufferView, if provided.\n\n\t\t\tsourceURI = parser.getDependency( 'bufferView', sourceDef.bufferView ).then( function ( bufferView ) {\n\n\t\t\t\tisObjectURL = true;\n\t\t\t\tconst blob = new Blob( [ bufferView ], { type: sourceDef.mimeType } );\n\t\t\t\tsourceURI = URL.createObjectURL( blob );\n\t\t\t\treturn sourceURI;\n\n\t\t\t} );\n\n\t\t} else if ( sourceDef.uri === undefined ) {\n\n\t\t\tthrow new Error( 'THREE.GLTFLoader: Image ' + sourceIndex + ' is missing URI and bufferView' );\n\n\t\t}\n\n\t\tconst promise = Promise.resolve( sourceURI ).then( function ( sourceURI ) {\n\n\t\t\treturn new Promise( function ( resolve, reject ) {\n\n\t\t\t\tlet onLoad = resolve;\n\n\t\t\t\tif ( loader.isImageBitmapLoader === true ) {\n\n\t\t\t\t\tonLoad = function ( imageBitmap ) {\n\n\t\t\t\t\t\tconst texture = new Texture( imageBitmap );\n\t\t\t\t\t\ttexture.needsUpdate = true;\n\n\t\t\t\t\t\tresolve( texture );\n\n\t\t\t\t\t};\n\n\t\t\t\t}\n\n\t\t\t\tloader.load( LoaderUtils.resolveURL( sourceURI, options.path ), onLoad, undefined, reject );\n\n\t\t\t} );\n\n\t\t} ).then( function ( texture ) {\n\n\t\t\t// Clean up resources and configure Texture.\n\n\t\t\tif ( isObjectURL === true ) {\n\n\t\t\t\tURL.revokeObjectURL( sourceURI );\n\n\t\t\t}\n\n\t\t\tassignExtrasToUserData( texture, sourceDef );\n\n\t\t\ttexture.userData.mimeType = sourceDef.mimeType || getImageURIMimeType( sourceDef.uri );\n\n\t\t\treturn texture;\n\n\t\t} ).catch( function ( error ) {\n\n\t\t\tconsole.error( 'THREE.GLTFLoader: Couldn\\'t load texture', sourceURI );\n\t\t\tthrow error;\n\n\t\t} );\n\n\t\tthis.sourceCache[ sourceIndex ] = promise;\n\t\treturn promise;\n\n\t}\n\n\t/**\n\t * Asynchronously assigns a texture to the given material parameters.\n\t * @param {Object} materialParams\n\t * @param {string} mapName\n\t * @param {Object} mapDef\n\t * @return {Promise}\n\t */\n\tassignTexture( materialParams, mapName, mapDef, colorSpace ) {\n\n\t\tconst parser = this;\n\n\t\treturn this.getDependency( 'texture', mapDef.index ).then( function ( texture ) {\n\n\t\t\tif ( ! texture ) return null;\n\n\t\t\tif ( mapDef.texCoord !== undefined && mapDef.texCoord > 0 ) {\n\n\t\t\t\ttexture = texture.clone();\n\t\t\t\ttexture.channel = mapDef.texCoord;\n\n\t\t\t}\n\n\t\t\tif ( parser.extensions[ EXTENSIONS.KHR_TEXTURE_TRANSFORM ] ) {\n\n\t\t\t\tconst transform = mapDef.extensions !== undefined ? mapDef.extensions[ EXTENSIONS.KHR_TEXTURE_TRANSFORM ] : undefined;\n\n\t\t\t\tif ( transform ) {\n\n\t\t\t\t\tconst gltfReference = parser.associations.get( texture );\n\t\t\t\t\ttexture = parser.extensions[ EXTENSIONS.KHR_TEXTURE_TRANSFORM ].extendTexture( texture, transform );\n\t\t\t\t\tparser.associations.set( texture, gltfReference );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( colorSpace !== undefined ) {\n\n\t\t\t\ttexture.colorSpace = colorSpace;\n\n\t\t\t}\n\n\t\t\tmaterialParams[ mapName ] = texture;\n\n\t\t\treturn texture;\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Assigns final material to a Mesh, Line, or Points instance. The instance\n\t * already has a material (generated from the glTF material options alone)\n\t * but reuse of the same glTF material may require multiple threejs materials\n\t * to accommodate different primitive types, defines, etc. New materials will\n\t * be created if necessary, and reused from a cache.\n\t * @param {Object3D} mesh Mesh, Line, or Points instance.\n\t */\n\tassignFinalMaterial( mesh ) {\n\n\t\tconst geometry = mesh.geometry;\n\t\tlet material = mesh.material;\n\n\t\tconst useDerivativeTangents = geometry.attributes.tangent === undefined;\n\t\tconst useVertexColors = geometry.attributes.color !== undefined;\n\t\tconst useFlatShading = geometry.attributes.normal === undefined;\n\n\t\tif ( mesh.isPoints ) {\n\n\t\t\tconst cacheKey = 'PointsMaterial:' + material.uuid;\n\n\t\t\tlet pointsMaterial = this.cache.get( cacheKey );\n\n\t\t\tif ( ! pointsMaterial ) {\n\n\t\t\t\tpointsMaterial = new PointsMaterial();\n\t\t\t\tMaterial.prototype.copy.call( pointsMaterial, material );\n\t\t\t\tpointsMaterial.color.copy( material.color );\n\t\t\t\tpointsMaterial.map = material.map;\n\t\t\t\tpointsMaterial.sizeAttenuation = false; // glTF spec says points should be 1px\n\n\t\t\t\tthis.cache.add( cacheKey, pointsMaterial );\n\n\t\t\t}\n\n\t\t\tmaterial = pointsMaterial;\n\n\t\t} else if ( mesh.isLine ) {\n\n\t\t\tconst cacheKey = 'LineBasicMaterial:' + material.uuid;\n\n\t\t\tlet lineMaterial = this.cache.get( cacheKey );\n\n\t\t\tif ( ! lineMaterial ) {\n\n\t\t\t\tlineMaterial = new LineBasicMaterial();\n\t\t\t\tMaterial.prototype.copy.call( lineMaterial, material );\n\t\t\t\tlineMaterial.color.copy( material.color );\n\t\t\t\tlineMaterial.map = material.map;\n\n\t\t\t\tthis.cache.add( cacheKey, lineMaterial );\n\n\t\t\t}\n\n\t\t\tmaterial = lineMaterial;\n\n\t\t}\n\n\t\t// Clone the material if it will be modified\n\t\tif ( useDerivativeTangents || useVertexColors || useFlatShading ) {\n\n\t\t\tlet cacheKey = 'ClonedMaterial:' + material.uuid + ':';\n\n\t\t\tif ( useDerivativeTangents ) cacheKey += 'derivative-tangents:';\n\t\t\tif ( useVertexColors ) cacheKey += 'vertex-colors:';\n\t\t\tif ( useFlatShading ) cacheKey += 'flat-shading:';\n\n\t\t\tlet cachedMaterial = this.cache.get( cacheKey );\n\n\t\t\tif ( ! cachedMaterial ) {\n\n\t\t\t\tcachedMaterial = material.clone();\n\n\t\t\t\tif ( useVertexColors ) cachedMaterial.vertexColors = true;\n\t\t\t\tif ( useFlatShading ) cachedMaterial.flatShading = true;\n\n\t\t\t\tif ( useDerivativeTangents ) {\n\n\t\t\t\t\t// https://github.com/mrdoob/three.js/issues/11438#issuecomment-507003995\n\t\t\t\t\tif ( cachedMaterial.normalScale ) cachedMaterial.normalScale.y *= - 1;\n\t\t\t\t\tif ( cachedMaterial.clearcoatNormalScale ) cachedMaterial.clearcoatNormalScale.y *= - 1;\n\n\t\t\t\t}\n\n\t\t\t\tthis.cache.add( cacheKey, cachedMaterial );\n\n\t\t\t\tthis.associations.set( cachedMaterial, this.associations.get( material ) );\n\n\t\t\t}\n\n\t\t\tmaterial = cachedMaterial;\n\n\t\t}\n\n\t\tmesh.material = material;\n\n\t}\n\n\tgetMaterialType( /* materialIndex */ ) {\n\n\t\treturn MeshStandardMaterial;\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#materials\n\t * @param {number} materialIndex\n\t * @return {Promise}\n\t */\n\tloadMaterial( materialIndex ) {\n\n\t\tconst parser = this;\n\t\tconst json = this.json;\n\t\tconst extensions = this.extensions;\n\t\tconst materialDef = json.materials[ materialIndex ];\n\n\t\tlet materialType;\n\t\tconst materialParams = {};\n\t\tconst materialExtensions = materialDef.extensions || {};\n\n\t\tconst pending = [];\n\n\t\tif ( materialExtensions[ EXTENSIONS.KHR_MATERIALS_UNLIT ] ) {\n\n\t\t\tconst kmuExtension = extensions[ EXTENSIONS.KHR_MATERIALS_UNLIT ];\n\t\t\tmaterialType = kmuExtension.getMaterialType();\n\t\t\tpending.push( kmuExtension.extendParams( materialParams, materialDef, parser ) );\n\n\t\t} else {\n\n\t\t\t// Specification:\n\t\t\t// https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#metallic-roughness-material\n\n\t\t\tconst metallicRoughness = materialDef.pbrMetallicRoughness || {};\n\n\t\t\tmaterialParams.color = new Color( 1.0, 1.0, 1.0 );\n\t\t\tmaterialParams.opacity = 1.0;\n\n\t\t\tif ( Array.isArray( metallicRoughness.baseColorFactor ) ) {\n\n\t\t\t\tconst array = metallicRoughness.baseColorFactor;\n\n\t\t\t\tmaterialParams.color.setRGB( array[ 0 ], array[ 1 ], array[ 2 ], LinearSRGBColorSpace );\n\t\t\t\tmaterialParams.opacity = array[ 3 ];\n\n\t\t\t}\n\n\t\t\tif ( metallicRoughness.baseColorTexture !== undefined ) {\n\n\t\t\t\tpending.push( parser.assignTexture( materialParams, 'map', metallicRoughness.baseColorTexture, SRGBColorSpace ) );\n\n\t\t\t}\n\n\t\t\tmaterialParams.metalness = metallicRoughness.metallicFactor !== undefined ? metallicRoughness.metallicFactor : 1.0;\n\t\t\tmaterialParams.roughness = metallicRoughness.roughnessFactor !== undefined ? metallicRoughness.roughnessFactor : 1.0;\n\n\t\t\tif ( metallicRoughness.metallicRoughnessTexture !== undefined ) {\n\n\t\t\t\tpending.push( parser.assignTexture( materialParams, 'metalnessMap', metallicRoughness.metallicRoughnessTexture ) );\n\t\t\t\tpending.push( parser.assignTexture( materialParams, 'roughnessMap', metallicRoughness.metallicRoughnessTexture ) );\n\n\t\t\t}\n\n\t\t\tmaterialType = this._invokeOne( function ( ext ) {\n\n\t\t\t\treturn ext.getMaterialType && ext.getMaterialType( materialIndex );\n\n\t\t\t} );\n\n\t\t\tpending.push( Promise.all( this._invokeAll( function ( ext ) {\n\n\t\t\t\treturn ext.extendMaterialParams && ext.extendMaterialParams( materialIndex, materialParams );\n\n\t\t\t} ) ) );\n\n\t\t}\n\n\t\tif ( materialDef.doubleSided === true ) {\n\n\t\t\tmaterialParams.side = DoubleSide;\n\n\t\t}\n\n\t\tconst alphaMode = materialDef.alphaMode || ALPHA_MODES.OPAQUE;\n\n\t\tif ( alphaMode === ALPHA_MODES.BLEND ) {\n\n\t\t\tmaterialParams.transparent = true;\n\n\t\t\t// See: https://github.com/mrdoob/three.js/issues/17706\n\t\t\tmaterialParams.depthWrite = false;\n\n\t\t} else {\n\n\t\t\tmaterialParams.transparent = false;\n\n\t\t\tif ( alphaMode === ALPHA_MODES.MASK ) {\n\n\t\t\t\tmaterialParams.alphaTest = materialDef.alphaCutoff !== undefined ? materialDef.alphaCutoff : 0.5;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( materialDef.normalTexture !== undefined && materialType !== MeshBasicMaterial ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'normalMap', materialDef.normalTexture ) );\n\n\t\t\tmaterialParams.normalScale = new Vector2( 1, 1 );\n\n\t\t\tif ( materialDef.normalTexture.scale !== undefined ) {\n\n\t\t\t\tconst scale = materialDef.normalTexture.scale;\n\n\t\t\t\tmaterialParams.normalScale.set( scale, scale );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( materialDef.occlusionTexture !== undefined && materialType !== MeshBasicMaterial ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'aoMap', materialDef.occlusionTexture ) );\n\n\t\t\tif ( materialDef.occlusionTexture.strength !== undefined ) {\n\n\t\t\t\tmaterialParams.aoMapIntensity = materialDef.occlusionTexture.strength;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( materialDef.emissiveFactor !== undefined && materialType !== MeshBasicMaterial ) {\n\n\t\t\tconst emissiveFactor = materialDef.emissiveFactor;\n\t\t\tmaterialParams.emissive = new Color().setRGB( emissiveFactor[ 0 ], emissiveFactor[ 1 ], emissiveFactor[ 2 ], LinearSRGBColorSpace );\n\n\t\t}\n\n\t\tif ( materialDef.emissiveTexture !== undefined && materialType !== MeshBasicMaterial ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'emissiveMap', materialDef.emissiveTexture, SRGBColorSpace ) );\n\n\t\t}\n\n\t\treturn Promise.all( pending ).then( function () {\n\n\t\t\tconst material = new materialType( materialParams );\n\n\t\t\tif ( materialDef.name ) material.name = materialDef.name;\n\n\t\t\tassignExtrasToUserData( material, materialDef );\n\n\t\t\tparser.associations.set( material, { materials: materialIndex } );\n\n\t\t\tif ( materialDef.extensions ) addUnknownExtensionsToUserData( extensions, material, materialDef );\n\n\t\t\treturn material;\n\n\t\t} );\n\n\t}\n\n\t/** When Object3D instances are targeted by animation, they need unique names. */\n\tcreateUniqueName( originalName ) {\n\n\t\tconst sanitizedName = PropertyBinding.sanitizeNodeName( originalName || '' );\n\n\t\tif ( sanitizedName in this.nodeNamesUsed ) {\n\n\t\t\treturn sanitizedName + '_' + ( ++ this.nodeNamesUsed[ sanitizedName ] );\n\n\t\t} else {\n\n\t\t\tthis.nodeNamesUsed[ sanitizedName ] = 0;\n\n\t\t\treturn sanitizedName;\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#geometry\n\t *\n\t * Creates BufferGeometries from primitives.\n\t *\n\t * @param {Array} primitives\n\t * @return {Promise>}\n\t */\n\tloadGeometries( primitives ) {\n\n\t\tconst parser = this;\n\t\tconst extensions = this.extensions;\n\t\tconst cache = this.primitiveCache;\n\n\t\tfunction createDracoPrimitive( primitive ) {\n\n\t\t\treturn extensions[ EXTENSIONS.KHR_DRACO_MESH_COMPRESSION ]\n\t\t\t\t.decodePrimitive( primitive, parser )\n\t\t\t\t.then( function ( geometry ) {\n\n\t\t\t\t\treturn addPrimitiveAttributes( geometry, primitive, parser );\n\n\t\t\t\t} );\n\n\t\t}\n\n\t\tconst pending = [];\n\n\t\tfor ( let i = 0, il = primitives.length; i < il; i ++ ) {\n\n\t\t\tconst primitive = primitives[ i ];\n\t\t\tconst cacheKey = createPrimitiveKey( primitive );\n\n\t\t\t// See if we've already created this geometry\n\t\t\tconst cached = cache[ cacheKey ];\n\n\t\t\tif ( cached ) {\n\n\t\t\t\t// Use the cached geometry if it exists\n\t\t\t\tpending.push( cached.promise );\n\n\t\t\t} else {\n\n\t\t\t\tlet geometryPromise;\n\n\t\t\t\tif ( primitive.extensions && primitive.extensions[ EXTENSIONS.KHR_DRACO_MESH_COMPRESSION ] ) {\n\n\t\t\t\t\t// Use DRACO geometry if available\n\t\t\t\t\tgeometryPromise = createDracoPrimitive( primitive );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// Otherwise create a new geometry\n\t\t\t\t\tgeometryPromise = addPrimitiveAttributes( new BufferGeometry(), primitive, parser );\n\n\t\t\t\t}\n\n\t\t\t\t// Cache this geometry\n\t\t\t\tcache[ cacheKey ] = { primitive: primitive, promise: geometryPromise };\n\n\t\t\t\tpending.push( geometryPromise );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn Promise.all( pending );\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#meshes\n\t * @param {number} meshIndex\n\t * @return {Promise}\n\t */\n\tloadMesh( meshIndex ) {\n\n\t\tconst parser = this;\n\t\tconst json = this.json;\n\t\tconst extensions = this.extensions;\n\n\t\tconst meshDef = json.meshes[ meshIndex ];\n\t\tconst primitives = meshDef.primitives;\n\n\t\tconst pending = [];\n\n\t\tfor ( let i = 0, il = primitives.length; i < il; i ++ ) {\n\n\t\t\tconst material = primitives[ i ].material === undefined\n\t\t\t\t? createDefaultMaterial( this.cache )\n\t\t\t\t: this.getDependency( 'material', primitives[ i ].material );\n\n\t\t\tpending.push( material );\n\n\t\t}\n\n\t\tpending.push( parser.loadGeometries( primitives ) );\n\n\t\treturn Promise.all( pending ).then( function ( results ) {\n\n\t\t\tconst materials = results.slice( 0, results.length - 1 );\n\t\t\tconst geometries = results[ results.length - 1 ];\n\n\t\t\tconst meshes = [];\n\n\t\t\tfor ( let i = 0, il = geometries.length; i < il; i ++ ) {\n\n\t\t\t\tconst geometry = geometries[ i ];\n\t\t\t\tconst primitive = primitives[ i ];\n\n\t\t\t\t// 1. create Mesh\n\n\t\t\t\tlet mesh;\n\n\t\t\t\tconst material = materials[ i ];\n\n\t\t\t\tif ( primitive.mode === WEBGL_CONSTANTS.TRIANGLES ||\n\t\t\t\t\t\tprimitive.mode === WEBGL_CONSTANTS.TRIANGLE_STRIP ||\n\t\t\t\t\t\tprimitive.mode === WEBGL_CONSTANTS.TRIANGLE_FAN ||\n\t\t\t\t\t\tprimitive.mode === undefined ) {\n\n\t\t\t\t\t// .isSkinnedMesh isn't in glTF spec. See ._markDefs()\n\t\t\t\t\tmesh = meshDef.isSkinnedMesh === true\n\t\t\t\t\t\t? new SkinnedMesh( geometry, material )\n\t\t\t\t\t\t: new Mesh( geometry, material );\n\n\t\t\t\t\tif ( mesh.isSkinnedMesh === true ) {\n\n\t\t\t\t\t\t// normalize skin weights to fix malformed assets (see #15319)\n\t\t\t\t\t\tmesh.normalizeSkinWeights();\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( primitive.mode === WEBGL_CONSTANTS.TRIANGLE_STRIP ) {\n\n\t\t\t\t\t\tmesh.geometry = toTrianglesDrawMode( mesh.geometry, TriangleStripDrawMode );\n\n\t\t\t\t\t} else if ( primitive.mode === WEBGL_CONSTANTS.TRIANGLE_FAN ) {\n\n\t\t\t\t\t\tmesh.geometry = toTrianglesDrawMode( mesh.geometry, TriangleFanDrawMode );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else if ( primitive.mode === WEBGL_CONSTANTS.LINES ) {\n\n\t\t\t\t\tmesh = new LineSegments( geometry, material );\n\n\t\t\t\t} else if ( primitive.mode === WEBGL_CONSTANTS.LINE_STRIP ) {\n\n\t\t\t\t\tmesh = new Line( geometry, material );\n\n\t\t\t\t} else if ( primitive.mode === WEBGL_CONSTANTS.LINE_LOOP ) {\n\n\t\t\t\t\tmesh = new LineLoop( geometry, material );\n\n\t\t\t\t} else if ( primitive.mode === WEBGL_CONSTANTS.POINTS ) {\n\n\t\t\t\t\tmesh = new Points( geometry, material );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthrow new Error( 'THREE.GLTFLoader: Primitive mode unsupported: ' + primitive.mode );\n\n\t\t\t\t}\n\n\t\t\t\tif ( Object.keys( mesh.geometry.morphAttributes ).length > 0 ) {\n\n\t\t\t\t\tupdateMorphTargets( mesh, meshDef );\n\n\t\t\t\t}\n\n\t\t\t\tmesh.name = parser.createUniqueName( meshDef.name || ( 'mesh_' + meshIndex ) );\n\n\t\t\t\tassignExtrasToUserData( mesh, meshDef );\n\n\t\t\t\tif ( primitive.extensions ) addUnknownExtensionsToUserData( extensions, mesh, primitive );\n\n\t\t\t\tparser.assignFinalMaterial( mesh );\n\n\t\t\t\tmeshes.push( mesh );\n\n\t\t\t}\n\n\t\t\tfor ( let i = 0, il = meshes.length; i < il; i ++ ) {\n\n\t\t\t\tparser.associations.set( meshes[ i ], {\n\t\t\t\t\tmeshes: meshIndex,\n\t\t\t\t\tprimitives: i\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t\tif ( meshes.length === 1 ) {\n\n\t\t\t\tif ( meshDef.extensions ) addUnknownExtensionsToUserData( extensions, meshes[ 0 ], meshDef );\n\n\t\t\t\treturn meshes[ 0 ];\n\n\t\t\t}\n\n\t\t\tconst group = new Group();\n\n\t\t\tif ( meshDef.extensions ) addUnknownExtensionsToUserData( extensions, group, meshDef );\n\n\t\t\tparser.associations.set( group, { meshes: meshIndex } );\n\n\t\t\tfor ( let i = 0, il = meshes.length; i < il; i ++ ) {\n\n\t\t\t\tgroup.add( meshes[ i ] );\n\n\t\t\t}\n\n\t\t\treturn group;\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#cameras\n\t * @param {number} cameraIndex\n\t * @return {Promise}\n\t */\n\tloadCamera( cameraIndex ) {\n\n\t\tlet camera;\n\t\tconst cameraDef = this.json.cameras[ cameraIndex ];\n\t\tconst params = cameraDef[ cameraDef.type ];\n\n\t\tif ( ! params ) {\n\n\t\t\tconsole.warn( 'THREE.GLTFLoader: Missing camera parameters.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( cameraDef.type === 'perspective' ) {\n\n\t\t\tcamera = new PerspectiveCamera( MathUtils.radToDeg( params.yfov ), params.aspectRatio || 1, params.znear || 1, params.zfar || 2e6 );\n\n\t\t} else if ( cameraDef.type === 'orthographic' ) {\n\n\t\t\tcamera = new OrthographicCamera( - params.xmag, params.xmag, params.ymag, - params.ymag, params.znear, params.zfar );\n\n\t\t}\n\n\t\tif ( cameraDef.name ) camera.name = this.createUniqueName( cameraDef.name );\n\n\t\tassignExtrasToUserData( camera, cameraDef );\n\n\t\treturn Promise.resolve( camera );\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#skins\n\t * @param {number} skinIndex\n\t * @return {Promise}\n\t */\n\tloadSkin( skinIndex ) {\n\n\t\tconst skinDef = this.json.skins[ skinIndex ];\n\n\t\tconst pending = [];\n\n\t\tfor ( let i = 0, il = skinDef.joints.length; i < il; i ++ ) {\n\n\t\t\tpending.push( this._loadNodeShallow( skinDef.joints[ i ] ) );\n\n\t\t}\n\n\t\tif ( skinDef.inverseBindMatrices !== undefined ) {\n\n\t\t\tpending.push( this.getDependency( 'accessor', skinDef.inverseBindMatrices ) );\n\n\t\t} else {\n\n\t\t\tpending.push( null );\n\n\t\t}\n\n\t\treturn Promise.all( pending ).then( function ( results ) {\n\n\t\t\tconst inverseBindMatrices = results.pop();\n\t\t\tconst jointNodes = results;\n\n\t\t\t// Note that bones (joint nodes) may or may not be in the\n\t\t\t// scene graph at this time.\n\n\t\t\tconst bones = [];\n\t\t\tconst boneInverses = [];\n\n\t\t\tfor ( let i = 0, il = jointNodes.length; i < il; i ++ ) {\n\n\t\t\t\tconst jointNode = jointNodes[ i ];\n\n\t\t\t\tif ( jointNode ) {\n\n\t\t\t\t\tbones.push( jointNode );\n\n\t\t\t\t\tconst mat = new Matrix4();\n\n\t\t\t\t\tif ( inverseBindMatrices !== null ) {\n\n\t\t\t\t\t\tmat.fromArray( inverseBindMatrices.array, i * 16 );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tboneInverses.push( mat );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.warn( 'THREE.GLTFLoader: Joint \"%s\" could not be found.', skinDef.joints[ i ] );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn new Skeleton( bones, boneInverses );\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#animations\n\t * @param {number} animationIndex\n\t * @return {Promise}\n\t */\n\tloadAnimation( animationIndex ) {\n\n\t\tconst json = this.json;\n\t\tconst parser = this;\n\n\t\tconst animationDef = json.animations[ animationIndex ];\n\t\tconst animationName = animationDef.name ? animationDef.name : 'animation_' + animationIndex;\n\n\t\tconst pendingNodes = [];\n\t\tconst pendingInputAccessors = [];\n\t\tconst pendingOutputAccessors = [];\n\t\tconst pendingSamplers = [];\n\t\tconst pendingTargets = [];\n\n\t\tfor ( let i = 0, il = animationDef.channels.length; i < il; i ++ ) {\n\n\t\t\tconst channel = animationDef.channels[ i ];\n\t\t\tconst sampler = animationDef.samplers[ channel.sampler ];\n\t\t\tconst target = channel.target;\n\t\t\tconst name = target.node;\n\t\t\tconst input = animationDef.parameters !== undefined ? animationDef.parameters[ sampler.input ] : sampler.input;\n\t\t\tconst output = animationDef.parameters !== undefined ? animationDef.parameters[ sampler.output ] : sampler.output;\n\n\t\t\tif ( target.node === undefined ) continue;\n\n\t\t\tpendingNodes.push( this.getDependency( 'node', name ) );\n\t\t\tpendingInputAccessors.push( this.getDependency( 'accessor', input ) );\n\t\t\tpendingOutputAccessors.push( this.getDependency( 'accessor', output ) );\n\t\t\tpendingSamplers.push( sampler );\n\t\t\tpendingTargets.push( target );\n\n\t\t}\n\n\t\treturn Promise.all( [\n\n\t\t\tPromise.all( pendingNodes ),\n\t\t\tPromise.all( pendingInputAccessors ),\n\t\t\tPromise.all( pendingOutputAccessors ),\n\t\t\tPromise.all( pendingSamplers ),\n\t\t\tPromise.all( pendingTargets )\n\n\t\t] ).then( function ( dependencies ) {\n\n\t\t\tconst nodes = dependencies[ 0 ];\n\t\t\tconst inputAccessors = dependencies[ 1 ];\n\t\t\tconst outputAccessors = dependencies[ 2 ];\n\t\t\tconst samplers = dependencies[ 3 ];\n\t\t\tconst targets = dependencies[ 4 ];\n\n\t\t\tconst tracks = [];\n\n\t\t\tfor ( let i = 0, il = nodes.length; i < il; i ++ ) {\n\n\t\t\t\tconst node = nodes[ i ];\n\t\t\t\tconst inputAccessor = inputAccessors[ i ];\n\t\t\t\tconst outputAccessor = outputAccessors[ i ];\n\t\t\t\tconst sampler = samplers[ i ];\n\t\t\t\tconst target = targets[ i ];\n\n\t\t\t\tif ( node === undefined ) continue;\n\n\t\t\t\tif ( node.updateMatrix ) {\n\n\t\t\t\t\tnode.updateMatrix();\n\n\t\t\t\t}\n\n\t\t\t\tconst createdTracks = parser._createAnimationTracks( node, inputAccessor, outputAccessor, sampler, target );\n\n\t\t\t\tif ( createdTracks ) {\n\n\t\t\t\t\tfor ( let k = 0; k < createdTracks.length; k ++ ) {\n\n\t\t\t\t\t\ttracks.push( createdTracks[ k ] );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn new AnimationClip( animationName, undefined, tracks );\n\n\t\t} );\n\n\t}\n\n\tcreateNodeMesh( nodeIndex ) {\n\n\t\tconst json = this.json;\n\t\tconst parser = this;\n\t\tconst nodeDef = json.nodes[ nodeIndex ];\n\n\t\tif ( nodeDef.mesh === undefined ) return null;\n\n\t\treturn parser.getDependency( 'mesh', nodeDef.mesh ).then( function ( mesh ) {\n\n\t\t\tconst node = parser._getNodeRef( parser.meshCache, nodeDef.mesh, mesh );\n\n\t\t\t// if weights are provided on the node, override weights on the mesh.\n\t\t\tif ( nodeDef.weights !== undefined ) {\n\n\t\t\t\tnode.traverse( function ( o ) {\n\n\t\t\t\t\tif ( ! o.isMesh ) return;\n\n\t\t\t\t\tfor ( let i = 0, il = nodeDef.weights.length; i < il; i ++ ) {\n\n\t\t\t\t\t\to.morphTargetInfluences[ i ] = nodeDef.weights[ i ];\n\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t\treturn node;\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#nodes-and-hierarchy\n\t * @param {number} nodeIndex\n\t * @return {Promise}\n\t */\n\tloadNode( nodeIndex ) {\n\n\t\tconst json = this.json;\n\t\tconst parser = this;\n\n\t\tconst nodeDef = json.nodes[ nodeIndex ];\n\n\t\tconst nodePending = parser._loadNodeShallow( nodeIndex );\n\n\t\tconst childPending = [];\n\t\tconst childrenDef = nodeDef.children || [];\n\n\t\tfor ( let i = 0, il = childrenDef.length; i < il; i ++ ) {\n\n\t\t\tchildPending.push( parser.getDependency( 'node', childrenDef[ i ] ) );\n\n\t\t}\n\n\t\tconst skeletonPending = nodeDef.skin === undefined\n\t\t\t? Promise.resolve( null )\n\t\t\t: parser.getDependency( 'skin', nodeDef.skin );\n\n\t\treturn Promise.all( [\n\t\t\tnodePending,\n\t\t\tPromise.all( childPending ),\n\t\t\tskeletonPending\n\t\t] ).then( function ( results ) {\n\n\t\t\tconst node = results[ 0 ];\n\t\t\tconst children = results[ 1 ];\n\t\t\tconst skeleton = results[ 2 ];\n\n\t\t\tif ( skeleton !== null ) {\n\n\t\t\t\t// This full traverse should be fine because\n\t\t\t\t// child glTF nodes have not been added to this node yet.\n\t\t\t\tnode.traverse( function ( mesh ) {\n\n\t\t\t\t\tif ( ! mesh.isSkinnedMesh ) return;\n\n\t\t\t\t\tmesh.bind( skeleton, _identityMatrix );\n\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t\tfor ( let i = 0, il = children.length; i < il; i ++ ) {\n\n\t\t\t\tnode.add( children[ i ] );\n\n\t\t\t}\n\n\t\t\treturn node;\n\n\t\t} );\n\n\t}\n\n\t// ._loadNodeShallow() parses a single node.\n\t// skin and child nodes are created and added in .loadNode() (no '_' prefix).\n\t_loadNodeShallow( nodeIndex ) {\n\n\t\tconst json = this.json;\n\t\tconst extensions = this.extensions;\n\t\tconst parser = this;\n\n\t\t// This method is called from .loadNode() and .loadSkin().\n\t\t// Cache a node to avoid duplication.\n\n\t\tif ( this.nodeCache[ nodeIndex ] !== undefined ) {\n\n\t\t\treturn this.nodeCache[ nodeIndex ];\n\n\t\t}\n\n\t\tconst nodeDef = json.nodes[ nodeIndex ];\n\n\t\t// reserve node's name before its dependencies, so the root has the intended name.\n\t\tconst nodeName = nodeDef.name ? parser.createUniqueName( nodeDef.name ) : '';\n\n\t\tconst pending = [];\n\n\t\tconst meshPromise = parser._invokeOne( function ( ext ) {\n\n\t\t\treturn ext.createNodeMesh && ext.createNodeMesh( nodeIndex );\n\n\t\t} );\n\n\t\tif ( meshPromise ) {\n\n\t\t\tpending.push( meshPromise );\n\n\t\t}\n\n\t\tif ( nodeDef.camera !== undefined ) {\n\n\t\t\tpending.push( parser.getDependency( 'camera', nodeDef.camera ).then( function ( camera ) {\n\n\t\t\t\treturn parser._getNodeRef( parser.cameraCache, nodeDef.camera, camera );\n\n\t\t\t} ) );\n\n\t\t}\n\n\t\tparser._invokeAll( function ( ext ) {\n\n\t\t\treturn ext.createNodeAttachment && ext.createNodeAttachment( nodeIndex );\n\n\t\t} ).forEach( function ( promise ) {\n\n\t\t\tpending.push( promise );\n\n\t\t} );\n\n\t\tthis.nodeCache[ nodeIndex ] = Promise.all( pending ).then( function ( objects ) {\n\n\t\t\tlet node;\n\n\t\t\t// .isBone isn't in glTF spec. See ._markDefs\n\t\t\tif ( nodeDef.isBone === true ) {\n\n\t\t\t\tnode = new Bone();\n\n\t\t\t} else if ( objects.length > 1 ) {\n\n\t\t\t\tnode = new Group();\n\n\t\t\t} else if ( objects.length === 1 ) {\n\n\t\t\t\tnode = objects[ 0 ];\n\n\t\t\t} else {\n\n\t\t\t\tnode = new Object3D();\n\n\t\t\t}\n\n\t\t\tif ( node !== objects[ 0 ] ) {\n\n\t\t\t\tfor ( let i = 0, il = objects.length; i < il; i ++ ) {\n\n\t\t\t\t\tnode.add( objects[ i ] );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( nodeDef.name ) {\n\n\t\t\t\tnode.userData.name = nodeDef.name;\n\t\t\t\tnode.name = nodeName;\n\n\t\t\t}\n\n\t\t\tassignExtrasToUserData( node, nodeDef );\n\n\t\t\tif ( nodeDef.extensions ) addUnknownExtensionsToUserData( extensions, node, nodeDef );\n\n\t\t\tif ( nodeDef.matrix !== undefined ) {\n\n\t\t\t\tconst matrix = new Matrix4();\n\t\t\t\tmatrix.fromArray( nodeDef.matrix );\n\t\t\t\tnode.applyMatrix4( matrix );\n\n\t\t\t} else {\n\n\t\t\t\tif ( nodeDef.translation !== undefined ) {\n\n\t\t\t\t\tnode.position.fromArray( nodeDef.translation );\n\n\t\t\t\t}\n\n\t\t\t\tif ( nodeDef.rotation !== undefined ) {\n\n\t\t\t\t\tnode.quaternion.fromArray( nodeDef.rotation );\n\n\t\t\t\t}\n\n\t\t\t\tif ( nodeDef.scale !== undefined ) {\n\n\t\t\t\t\tnode.scale.fromArray( nodeDef.scale );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( ! parser.associations.has( node ) ) {\n\n\t\t\t\tparser.associations.set( node, {} );\n\n\t\t\t}\n\n\t\t\tparser.associations.get( node ).nodes = nodeIndex;\n\n\t\t\treturn node;\n\n\t\t} );\n\n\t\treturn this.nodeCache[ nodeIndex ];\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#scenes\n\t * @param {number} sceneIndex\n\t * @return {Promise}\n\t */\n\tloadScene( sceneIndex ) {\n\n\t\tconst extensions = this.extensions;\n\t\tconst sceneDef = this.json.scenes[ sceneIndex ];\n\t\tconst parser = this;\n\n\t\t// Loader returns Group, not Scene.\n\t\t// See: https://github.com/mrdoob/three.js/issues/18342#issuecomment-578981172\n\t\tconst scene = new Group();\n\t\tif ( sceneDef.name ) scene.name = parser.createUniqueName( sceneDef.name );\n\n\t\tassignExtrasToUserData( scene, sceneDef );\n\n\t\tif ( sceneDef.extensions ) addUnknownExtensionsToUserData( extensions, scene, sceneDef );\n\n\t\tconst nodeIds = sceneDef.nodes || [];\n\n\t\tconst pending = [];\n\n\t\tfor ( let i = 0, il = nodeIds.length; i < il; i ++ ) {\n\n\t\t\tpending.push( parser.getDependency( 'node', nodeIds[ i ] ) );\n\n\t\t}\n\n\t\treturn Promise.all( pending ).then( function ( nodes ) {\n\n\t\t\tfor ( let i = 0, il = nodes.length; i < il; i ++ ) {\n\n\t\t\t\tscene.add( nodes[ i ] );\n\n\t\t\t}\n\n\t\t\t// Removes dangling associations, associations that reference a node that\n\t\t\t// didn't make it into the scene.\n\t\t\tconst reduceAssociations = ( node ) => {\n\n\t\t\t\tconst reducedAssociations = new Map();\n\n\t\t\t\tfor ( const [ key, value ] of parser.associations ) {\n\n\t\t\t\t\tif ( key instanceof Material || key instanceof Texture ) {\n\n\t\t\t\t\t\treducedAssociations.set( key, value );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tnode.traverse( ( node ) => {\n\n\t\t\t\t\tconst mappings = parser.associations.get( node );\n\n\t\t\t\t\tif ( mappings != null ) {\n\n\t\t\t\t\t\treducedAssociations.set( node, mappings );\n\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t\treturn reducedAssociations;\n\n\t\t\t};\n\n\t\t\tparser.associations = reduceAssociations( scene );\n\n\t\t\treturn scene;\n\n\t\t} );\n\n\t}\n\n\t_createAnimationTracks( node, inputAccessor, outputAccessor, sampler, target ) {\n\n\t\tconst tracks = [];\n\n\t\tconst targetName = node.name ? node.name : node.uuid;\n\t\tconst targetNames = [];\n\n\t\tif ( PATH_PROPERTIES[ target.path ] === PATH_PROPERTIES.weights ) {\n\n\t\t\tnode.traverse( function ( object ) {\n\n\t\t\t\tif ( object.morphTargetInfluences ) {\n\n\t\t\t\t\ttargetNames.push( object.name ? object.name : object.uuid );\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t} else {\n\n\t\t\ttargetNames.push( targetName );\n\n\t\t}\n\n\t\tlet TypedKeyframeTrack;\n\n\t\tswitch ( PATH_PROPERTIES[ target.path ] ) {\n\n\t\t\tcase PATH_PROPERTIES.weights:\n\n\t\t\t\tTypedKeyframeTrack = NumberKeyframeTrack;\n\t\t\t\tbreak;\n\n\t\t\tcase PATH_PROPERTIES.rotation:\n\n\t\t\t\tTypedKeyframeTrack = QuaternionKeyframeTrack;\n\t\t\t\tbreak;\n\n\t\t\tcase PATH_PROPERTIES.position:\n\t\t\tcase PATH_PROPERTIES.scale:\n\n\t\t\t\tTypedKeyframeTrack = VectorKeyframeTrack;\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\n\t\t\t\tswitch ( outputAccessor.itemSize ) {\n\n\t\t\t\t\tcase 1:\n\t\t\t\t\t\tTypedKeyframeTrack = NumberKeyframeTrack;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 2:\n\t\t\t\t\tcase 3:\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tTypedKeyframeTrack = VectorKeyframeTrack;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t}\n\n\t\tconst interpolation = sampler.interpolation !== undefined ? INTERPOLATION[ sampler.interpolation ] : InterpolateLinear;\n\n\n\t\tconst outputArray = this._getArrayFromAccessor( outputAccessor );\n\n\t\tfor ( let j = 0, jl = targetNames.length; j < jl; j ++ ) {\n\n\t\t\tconst track = new TypedKeyframeTrack(\n\t\t\t\ttargetNames[ j ] + '.' + PATH_PROPERTIES[ target.path ],\n\t\t\t\tinputAccessor.array,\n\t\t\t\toutputArray,\n\t\t\t\tinterpolation\n\t\t\t);\n\n\t\t\t// Override interpolation with custom factory method.\n\t\t\tif ( sampler.interpolation === 'CUBICSPLINE' ) {\n\n\t\t\t\tthis._createCubicSplineTrackInterpolant( track );\n\n\t\t\t}\n\n\t\t\ttracks.push( track );\n\n\t\t}\n\n\t\treturn tracks;\n\n\t}\n\n\t_getArrayFromAccessor( accessor ) {\n\n\t\tlet outputArray = accessor.array;\n\n\t\tif ( accessor.normalized ) {\n\n\t\t\tconst scale = getNormalizedComponentScale( outputArray.constructor );\n\t\t\tconst scaled = new Float32Array( outputArray.length );\n\n\t\t\tfor ( let j = 0, jl = outputArray.length; j < jl; j ++ ) {\n\n\t\t\t\tscaled[ j ] = outputArray[ j ] * scale;\n\n\t\t\t}\n\n\t\t\toutputArray = scaled;\n\n\t\t}\n\n\t\treturn outputArray;\n\n\t}\n\n\t_createCubicSplineTrackInterpolant( track ) {\n\n\t\ttrack.createInterpolant = function InterpolantFactoryMethodGLTFCubicSpline( result ) {\n\n\t\t\t// A CUBICSPLINE keyframe in glTF has three output values for each input value,\n\t\t\t// representing inTangent, splineVertex, and outTangent. As a result, track.getValueSize()\n\t\t\t// must be divided by three to get the interpolant's sampleSize argument.\n\n\t\t\tconst interpolantType = ( this instanceof QuaternionKeyframeTrack ) ? GLTFCubicSplineQuaternionInterpolant : GLTFCubicSplineInterpolant;\n\n\t\t\treturn new interpolantType( this.times, this.values, this.getValueSize() / 3, result );\n\n\t\t};\n\n\t\t// Mark as CUBICSPLINE. `track.getInterpolation()` doesn't support custom interpolants.\n\t\ttrack.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline = true;\n\n\t}\n\n}\n\n/**\n * @param {BufferGeometry} geometry\n * @param {GLTF.Primitive} primitiveDef\n * @param {GLTFParser} parser\n */\nfunction computeBounds( geometry, primitiveDef, parser ) {\n\n\tconst attributes = primitiveDef.attributes;\n\n\tconst box = new Box3();\n\n\tif ( attributes.POSITION !== undefined ) {\n\n\t\tconst accessor = parser.json.accessors[ attributes.POSITION ];\n\n\t\tconst min = accessor.min;\n\t\tconst max = accessor.max;\n\n\t\t// glTF requires 'min' and 'max', but VRM (which extends glTF) currently ignores that requirement.\n\n\t\tif ( min !== undefined && max !== undefined ) {\n\n\t\t\tbox.set(\n\t\t\t\tnew Vector3( min[ 0 ], min[ 1 ], min[ 2 ] ),\n\t\t\t\tnew Vector3( max[ 0 ], max[ 1 ], max[ 2 ] )\n\t\t\t);\n\n\t\t\tif ( accessor.normalized ) {\n\n\t\t\t\tconst boxScale = getNormalizedComponentScale( WEBGL_COMPONENT_TYPES[ accessor.componentType ] );\n\t\t\t\tbox.min.multiplyScalar( boxScale );\n\t\t\t\tbox.max.multiplyScalar( boxScale );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.GLTFLoader: Missing min/max properties for accessor POSITION.' );\n\n\t\t\treturn;\n\n\t\t}\n\n\t} else {\n\n\t\treturn;\n\n\t}\n\n\tconst targets = primitiveDef.targets;\n\n\tif ( targets !== undefined ) {\n\n\t\tconst maxDisplacement = new Vector3();\n\t\tconst vector = new Vector3();\n\n\t\tfor ( let i = 0, il = targets.length; i < il; i ++ ) {\n\n\t\t\tconst target = targets[ i ];\n\n\t\t\tif ( target.POSITION !== undefined ) {\n\n\t\t\t\tconst accessor = parser.json.accessors[ target.POSITION ];\n\t\t\t\tconst min = accessor.min;\n\t\t\t\tconst max = accessor.max;\n\n\t\t\t\t// glTF requires 'min' and 'max', but VRM (which extends glTF) currently ignores that requirement.\n\n\t\t\t\tif ( min !== undefined && max !== undefined ) {\n\n\t\t\t\t\t// we need to get max of absolute components because target weight is [-1,1]\n\t\t\t\t\tvector.setX( Math.max( Math.abs( min[ 0 ] ), Math.abs( max[ 0 ] ) ) );\n\t\t\t\t\tvector.setY( Math.max( Math.abs( min[ 1 ] ), Math.abs( max[ 1 ] ) ) );\n\t\t\t\t\tvector.setZ( Math.max( Math.abs( min[ 2 ] ), Math.abs( max[ 2 ] ) ) );\n\n\n\t\t\t\t\tif ( accessor.normalized ) {\n\n\t\t\t\t\t\tconst boxScale = getNormalizedComponentScale( WEBGL_COMPONENT_TYPES[ accessor.componentType ] );\n\t\t\t\t\t\tvector.multiplyScalar( boxScale );\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// Note: this assumes that the sum of all weights is at most 1. This isn't quite correct - it's more conservative\n\t\t\t\t\t// to assume that each target can have a max weight of 1. However, for some use cases - notably, when morph targets\n\t\t\t\t\t// are used to implement key-frame animations and as such only two are active at a time - this results in very large\n\t\t\t\t\t// boxes. So for now we make a box that's sometimes a touch too small but is hopefully mostly of reasonable size.\n\t\t\t\t\tmaxDisplacement.max( vector );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.warn( 'THREE.GLTFLoader: Missing min/max properties for accessor POSITION.' );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t// As per comment above this box isn't conservative, but has a reasonable size for a very large number of morph targets.\n\t\tbox.expandByVector( maxDisplacement );\n\n\t}\n\n\tgeometry.boundingBox = box;\n\n\tconst sphere = new Sphere();\n\n\tbox.getCenter( sphere.center );\n\tsphere.radius = box.min.distanceTo( box.max ) / 2;\n\n\tgeometry.boundingSphere = sphere;\n\n}\n\n/**\n * @param {BufferGeometry} geometry\n * @param {GLTF.Primitive} primitiveDef\n * @param {GLTFParser} parser\n * @return {Promise}\n */\nfunction addPrimitiveAttributes( geometry, primitiveDef, parser ) {\n\n\tconst attributes = primitiveDef.attributes;\n\n\tconst pending = [];\n\n\tfunction assignAttributeAccessor( accessorIndex, attributeName ) {\n\n\t\treturn parser.getDependency( 'accessor', accessorIndex )\n\t\t\t.then( function ( accessor ) {\n\n\t\t\t\tgeometry.setAttribute( attributeName, accessor );\n\n\t\t\t} );\n\n\t}\n\n\tfor ( const gltfAttributeName in attributes ) {\n\n\t\tconst threeAttributeName = ATTRIBUTES[ gltfAttributeName ] || gltfAttributeName.toLowerCase();\n\n\t\t// Skip attributes already provided by e.g. Draco extension.\n\t\tif ( threeAttributeName in geometry.attributes ) continue;\n\n\t\tpending.push( assignAttributeAccessor( attributes[ gltfAttributeName ], threeAttributeName ) );\n\n\t}\n\n\tif ( primitiveDef.indices !== undefined && ! geometry.index ) {\n\n\t\tconst accessor = parser.getDependency( 'accessor', primitiveDef.indices ).then( function ( accessor ) {\n\n\t\t\tgeometry.setIndex( accessor );\n\n\t\t} );\n\n\t\tpending.push( accessor );\n\n\t}\n\n\tif ( ColorManagement.workingColorSpace !== LinearSRGBColorSpace && 'COLOR_0' in attributes ) {\n\n\t\tconsole.warn( `THREE.GLTFLoader: Converting vertex colors from \"srgb-linear\" to \"${ColorManagement.workingColorSpace}\" not supported.` );\n\n\t}\n\n\tassignExtrasToUserData( geometry, primitiveDef );\n\n\tcomputeBounds( geometry, primitiveDef, parser );\n\n\treturn Promise.all( pending ).then( function () {\n\n\t\treturn primitiveDef.targets !== undefined\n\t\t\t? addMorphTargets( geometry, primitiveDef.targets, parser )\n\t\t\t: geometry;\n\n\t} );\n\n}\n\nexport { GLTFLoader };\n","import {\n\tColor,\n\tColorManagement,\n\tDefaultLoadingManager,\n\tFileLoader,\n\tFrontSide,\n\tLoader,\n\tLoaderUtils,\n\tMeshPhongMaterial,\n\tRepeatWrapping,\n\tTextureLoader,\n\tVector2,\n\tSRGBColorSpace\n} from 'three';\n\n/**\n * Loads a Wavefront .mtl file specifying materials\n */\n\nclass MTLLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\t/**\n\t * Loads and parses a MTL asset from a URL.\n\t *\n\t * @param {String} url - URL to the MTL file.\n\t * @param {Function} [onLoad] - Callback invoked with the loaded object.\n\t * @param {Function} [onProgress] - Callback for download progress.\n\t * @param {Function} [onError] - Callback for download errors.\n\t *\n\t * @see setPath setResourcePath\n\t *\n\t * @note In order for relative texture references to resolve correctly\n\t * you must call setResourcePath() explicitly prior to load.\n\t */\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tconst path = ( this.path === '' ) ? LoaderUtils.extractUrlBase( url ) : this.path;\n\n\t\tconst loader = new FileLoader( this.manager );\n\t\tloader.setPath( this.path );\n\t\tloader.setRequestHeader( this.requestHeader );\n\t\tloader.setWithCredentials( this.withCredentials );\n\t\tloader.load( url, function ( text ) {\n\n\t\t\ttry {\n\n\t\t\t\tonLoad( scope.parse( text, path ) );\n\n\t\t\t} catch ( e ) {\n\n\t\t\t\tif ( onError ) {\n\n\t\t\t\t\tonError( e );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.error( e );\n\n\t\t\t\t}\n\n\t\t\t\tscope.manager.itemError( url );\n\n\t\t\t}\n\n\t\t}, onProgress, onError );\n\n\t}\n\n\tsetMaterialOptions( value ) {\n\n\t\tthis.materialOptions = value;\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Parses a MTL file.\n\t *\n\t * @param {String} text - Content of MTL file\n\t * @return {MaterialCreator}\n\t *\n\t * @see setPath setResourcePath\n\t *\n\t * @note In order for relative texture references to resolve correctly\n\t * you must call setResourcePath() explicitly prior to parse.\n\t */\n\tparse( text, path ) {\n\n\t\tconst lines = text.split( '\\n' );\n\t\tlet info = {};\n\t\tconst delimiter_pattern = /\\s+/;\n\t\tconst materialsInfo = {};\n\n\t\tfor ( let i = 0; i < lines.length; i ++ ) {\n\n\t\t\tlet line = lines[ i ];\n\t\t\tline = line.trim();\n\n\t\t\tif ( line.length === 0 || line.charAt( 0 ) === '#' ) {\n\n\t\t\t\t// Blank line or comment ignore\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\tconst pos = line.indexOf( ' ' );\n\n\t\t\tlet key = ( pos >= 0 ) ? line.substring( 0, pos ) : line;\n\t\t\tkey = key.toLowerCase();\n\n\t\t\tlet value = ( pos >= 0 ) ? line.substring( pos + 1 ) : '';\n\t\t\tvalue = value.trim();\n\n\t\t\tif ( key === 'newmtl' ) {\n\n\t\t\t\t// New material\n\n\t\t\t\tinfo = { name: value };\n\t\t\t\tmaterialsInfo[ value ] = info;\n\n\t\t\t} else {\n\n\t\t\t\tif ( key === 'ka' || key === 'kd' || key === 'ks' || key === 'ke' ) {\n\n\t\t\t\t\tconst ss = value.split( delimiter_pattern, 3 );\n\t\t\t\t\tinfo[ key ] = [ parseFloat( ss[ 0 ] ), parseFloat( ss[ 1 ] ), parseFloat( ss[ 2 ] ) ];\n\n\t\t\t\t} else {\n\n\t\t\t\t\tinfo[ key ] = value;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst materialCreator = new MaterialCreator( this.resourcePath || path, this.materialOptions );\n\t\tmaterialCreator.setCrossOrigin( this.crossOrigin );\n\t\tmaterialCreator.setManager( this.manager );\n\t\tmaterialCreator.setMaterials( materialsInfo );\n\t\treturn materialCreator;\n\n\t}\n\n}\n\n/**\n * Create a new MTLLoader.MaterialCreator\n * @param baseUrl - Url relative to which textures are loaded\n * @param options - Set of options on how to construct the materials\n * side: Which side to apply the material\n * FrontSide (default), THREE.BackSide, THREE.DoubleSide\n * wrap: What type of wrapping to apply for textures\n * RepeatWrapping (default), THREE.ClampToEdgeWrapping, THREE.MirroredRepeatWrapping\n * normalizeRGB: RGBs need to be normalized to 0-1 from 0-255\n * Default: false, assumed to be already normalized\n * ignoreZeroRGBs: Ignore values of RGBs (Ka,Kd,Ks) that are all 0's\n * Default: false\n * @constructor\n */\n\nclass MaterialCreator {\n\n\tconstructor( baseUrl = '', options = {} ) {\n\n\t\tthis.baseUrl = baseUrl;\n\t\tthis.options = options;\n\t\tthis.materialsInfo = {};\n\t\tthis.materials = {};\n\t\tthis.materialsArray = [];\n\t\tthis.nameLookup = {};\n\n\t\tthis.crossOrigin = 'anonymous';\n\n\t\tthis.side = ( this.options.side !== undefined ) ? this.options.side : FrontSide;\n\t\tthis.wrap = ( this.options.wrap !== undefined ) ? this.options.wrap : RepeatWrapping;\n\n\t}\n\n\tsetCrossOrigin( value ) {\n\n\t\tthis.crossOrigin = value;\n\t\treturn this;\n\n\t}\n\n\tsetManager( value ) {\n\n\t\tthis.manager = value;\n\n\t}\n\n\tsetMaterials( materialsInfo ) {\n\n\t\tthis.materialsInfo = this.convert( materialsInfo );\n\t\tthis.materials = {};\n\t\tthis.materialsArray = [];\n\t\tthis.nameLookup = {};\n\n\t}\n\n\tconvert( materialsInfo ) {\n\n\t\tif ( ! this.options ) return materialsInfo;\n\n\t\tconst converted = {};\n\n\t\tfor ( const mn in materialsInfo ) {\n\n\t\t\t// Convert materials info into normalized form based on options\n\n\t\t\tconst mat = materialsInfo[ mn ];\n\n\t\t\tconst covmat = {};\n\n\t\t\tconverted[ mn ] = covmat;\n\n\t\t\tfor ( const prop in mat ) {\n\n\t\t\t\tlet save = true;\n\t\t\t\tlet value = mat[ prop ];\n\t\t\t\tconst lprop = prop.toLowerCase();\n\n\t\t\t\tswitch ( lprop ) {\n\n\t\t\t\t\tcase 'kd':\n\t\t\t\t\tcase 'ka':\n\t\t\t\t\tcase 'ks':\n\n\t\t\t\t\t\t// Diffuse color (color under white light) using RGB values\n\n\t\t\t\t\t\tif ( this.options && this.options.normalizeRGB ) {\n\n\t\t\t\t\t\t\tvalue = [ value[ 0 ] / 255, value[ 1 ] / 255, value[ 2 ] / 255 ];\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( this.options && this.options.ignoreZeroRGBs ) {\n\n\t\t\t\t\t\t\tif ( value[ 0 ] === 0 && value[ 1 ] === 0 && value[ 2 ] === 0 ) {\n\n\t\t\t\t\t\t\t\t// ignore\n\n\t\t\t\t\t\t\t\tsave = false;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tdefault:\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t}\n\n\t\t\t\tif ( save ) {\n\n\t\t\t\t\tcovmat[ lprop ] = value;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn converted;\n\n\t}\n\n\tpreload() {\n\n\t\tfor ( const mn in this.materialsInfo ) {\n\n\t\t\tthis.create( mn );\n\n\t\t}\n\n\t}\n\n\tgetIndex( materialName ) {\n\n\t\treturn this.nameLookup[ materialName ];\n\n\t}\n\n\tgetAsArray() {\n\n\t\tlet index = 0;\n\n\t\tfor ( const mn in this.materialsInfo ) {\n\n\t\t\tthis.materialsArray[ index ] = this.create( mn );\n\t\t\tthis.nameLookup[ mn ] = index;\n\t\t\tindex ++;\n\n\t\t}\n\n\t\treturn this.materialsArray;\n\n\t}\n\n\tcreate( materialName ) {\n\n\t\tif ( this.materials[ materialName ] === undefined ) {\n\n\t\t\tthis.createMaterial_( materialName );\n\n\t\t}\n\n\t\treturn this.materials[ materialName ];\n\n\t}\n\n\tcreateMaterial_( materialName ) {\n\n\t\t// Create material\n\n\t\tconst scope = this;\n\t\tconst mat = this.materialsInfo[ materialName ];\n\t\tconst params = {\n\n\t\t\tname: materialName,\n\t\t\tside: this.side\n\n\t\t};\n\n\t\tfunction resolveURL( baseUrl, url ) {\n\n\t\t\tif ( typeof url !== 'string' || url === '' )\n\t\t\t\treturn '';\n\n\t\t\t// Absolute URL\n\t\t\tif ( /^https?:\\/\\//i.test( url ) ) return url;\n\n\t\t\treturn baseUrl + url;\n\n\t\t}\n\n\t\tfunction setMapForType( mapType, value ) {\n\n\t\t\tif ( params[ mapType ] ) return; // Keep the first encountered texture\n\n\t\t\tconst texParams = scope.getTextureParams( value, params );\n\t\t\tconst map = scope.loadTexture( resolveURL( scope.baseUrl, texParams.url ) );\n\n\t\t\tmap.repeat.copy( texParams.scale );\n\t\t\tmap.offset.copy( texParams.offset );\n\n\t\t\tmap.wrapS = scope.wrap;\n\t\t\tmap.wrapT = scope.wrap;\n\n\t\t\tif ( mapType === 'map' || mapType === 'emissiveMap' ) {\n\n\t\t\t\tmap.colorSpace = SRGBColorSpace;\n\n\t\t\t}\n\n\t\t\tparams[ mapType ] = map;\n\n\t\t}\n\n\t\tfor ( const prop in mat ) {\n\n\t\t\tconst value = mat[ prop ];\n\t\t\tlet n;\n\n\t\t\tif ( value === '' ) continue;\n\n\t\t\tswitch ( prop.toLowerCase() ) {\n\n\t\t\t\t// Ns is material specular exponent\n\n\t\t\t\tcase 'kd':\n\n\t\t\t\t\t// Diffuse color (color under white light) using RGB values\n\n\t\t\t\t\tparams.color = ColorManagement.toWorkingColorSpace( new Color().fromArray( value ), SRGBColorSpace );\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'ks':\n\n\t\t\t\t\t// Specular color (color when light is reflected from shiny surface) using RGB values\n\t\t\t\t\tparams.specular = ColorManagement.toWorkingColorSpace( new Color().fromArray( value ), SRGBColorSpace );\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'ke':\n\n\t\t\t\t\t// Emissive using RGB values\n\t\t\t\t\tparams.emissive = ColorManagement.toWorkingColorSpace( new Color().fromArray( value ), SRGBColorSpace );\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'map_kd':\n\n\t\t\t\t\t// Diffuse texture map\n\n\t\t\t\t\tsetMapForType( 'map', value );\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'map_ks':\n\n\t\t\t\t\t// Specular map\n\n\t\t\t\t\tsetMapForType( 'specularMap', value );\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'map_ke':\n\n\t\t\t\t\t// Emissive map\n\n\t\t\t\t\tsetMapForType( 'emissiveMap', value );\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'norm':\n\n\t\t\t\t\tsetMapForType( 'normalMap', value );\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'map_bump':\n\t\t\t\tcase 'bump':\n\n\t\t\t\t\t// Bump texture map\n\n\t\t\t\t\tsetMapForType( 'bumpMap', value );\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'map_d':\n\n\t\t\t\t\t// Alpha map\n\n\t\t\t\t\tsetMapForType( 'alphaMap', value );\n\t\t\t\t\tparams.transparent = true;\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'ns':\n\n\t\t\t\t\t// The specular exponent (defines the focus of the specular highlight)\n\t\t\t\t\t// A high exponent results in a tight, concentrated highlight. Ns values normally range from 0 to 1000.\n\n\t\t\t\t\tparams.shininess = parseFloat( value );\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'd':\n\t\t\t\t\tn = parseFloat( value );\n\n\t\t\t\t\tif ( n < 1 ) {\n\n\t\t\t\t\t\tparams.opacity = n;\n\t\t\t\t\t\tparams.transparent = true;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'tr':\n\t\t\t\t\tn = parseFloat( value );\n\n\t\t\t\t\tif ( this.options && this.options.invertTrProperty ) n = 1 - n;\n\n\t\t\t\t\tif ( n > 0 ) {\n\n\t\t\t\t\t\tparams.opacity = 1 - n;\n\t\t\t\t\t\tparams.transparent = true;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis.materials[ materialName ] = new MeshPhongMaterial( params );\n\t\treturn this.materials[ materialName ];\n\n\t}\n\n\tgetTextureParams( value, matParams ) {\n\n\t\tconst texParams = {\n\n\t\t\tscale: new Vector2( 1, 1 ),\n\t\t\toffset: new Vector2( 0, 0 )\n\n\t\t };\n\n\t\tconst items = value.split( /\\s+/ );\n\t\tlet pos;\n\n\t\tpos = items.indexOf( '-bm' );\n\n\t\tif ( pos >= 0 ) {\n\n\t\t\tmatParams.bumpScale = parseFloat( items[ pos + 1 ] );\n\t\t\titems.splice( pos, 2 );\n\n\t\t}\n\n\t\tpos = items.indexOf( '-s' );\n\n\t\tif ( pos >= 0 ) {\n\n\t\t\ttexParams.scale.set( parseFloat( items[ pos + 1 ] ), parseFloat( items[ pos + 2 ] ) );\n\t\t\titems.splice( pos, 4 ); // we expect 3 parameters here!\n\n\t\t}\n\n\t\tpos = items.indexOf( '-o' );\n\n\t\tif ( pos >= 0 ) {\n\n\t\t\ttexParams.offset.set( parseFloat( items[ pos + 1 ] ), parseFloat( items[ pos + 2 ] ) );\n\t\t\titems.splice( pos, 4 ); // we expect 3 parameters here!\n\n\t\t}\n\n\t\ttexParams.url = items.join( ' ' ).trim();\n\t\treturn texParams;\n\n\t}\n\n\tloadTexture( url, mapping, onLoad, onProgress, onError ) {\n\n\t\tconst manager = ( this.manager !== undefined ) ? this.manager : DefaultLoadingManager;\n\t\tlet loader = manager.getHandler( url );\n\n\t\tif ( loader === null ) {\n\n\t\t\tloader = new TextureLoader( manager );\n\n\t\t}\n\n\t\tif ( loader.setCrossOrigin ) loader.setCrossOrigin( this.crossOrigin );\n\n\t\tconst texture = loader.load( url, onLoad, onProgress, onError );\n\n\t\tif ( mapping !== undefined ) texture.mapping = mapping;\n\n\t\treturn texture;\n\n\t}\n\n}\n\nexport { MTLLoader };\n","import {\n\tBufferGeometry,\n\tFileLoader,\n\tFloat32BufferAttribute,\n\tGroup,\n\tLineBasicMaterial,\n\tLineSegments,\n\tLoader,\n\tMaterial,\n\tMesh,\n\tMeshPhongMaterial,\n\tPoints,\n\tPointsMaterial,\n\tVector3,\n\tColor,\n\tSRGBColorSpace\n} from 'three';\n\n// o object_name | g group_name\nconst _object_pattern = /^[og]\\s*(.+)?/;\n// mtllib file_reference\nconst _material_library_pattern = /^mtllib /;\n// usemtl material_name\nconst _material_use_pattern = /^usemtl /;\n// usemap map_name\nconst _map_use_pattern = /^usemap /;\nconst _face_vertex_data_separator_pattern = /\\s+/;\n\nconst _vA = new Vector3();\nconst _vB = new Vector3();\nconst _vC = new Vector3();\n\nconst _ab = new Vector3();\nconst _cb = new Vector3();\n\nconst _color = new Color();\n\nfunction ParserState() {\n\n\tconst state = {\n\t\tobjects: [],\n\t\tobject: {},\n\n\t\tvertices: [],\n\t\tnormals: [],\n\t\tcolors: [],\n\t\tuvs: [],\n\n\t\tmaterials: {},\n\t\tmaterialLibraries: [],\n\n\t\tstartObject: function ( name, fromDeclaration ) {\n\n\t\t\t// If the current object (initial from reset) is not from a g/o declaration in the parsed\n\t\t\t// file. We need to use it for the first parsed g/o to keep things in sync.\n\t\t\tif ( this.object && this.object.fromDeclaration === false ) {\n\n\t\t\t\tthis.object.name = name;\n\t\t\t\tthis.object.fromDeclaration = ( fromDeclaration !== false );\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\tconst previousMaterial = ( this.object && typeof this.object.currentMaterial === 'function' ? this.object.currentMaterial() : undefined );\n\n\t\t\tif ( this.object && typeof this.object._finalize === 'function' ) {\n\n\t\t\t\tthis.object._finalize( true );\n\n\t\t\t}\n\n\t\t\tthis.object = {\n\t\t\t\tname: name || '',\n\t\t\t\tfromDeclaration: ( fromDeclaration !== false ),\n\n\t\t\t\tgeometry: {\n\t\t\t\t\tvertices: [],\n\t\t\t\t\tnormals: [],\n\t\t\t\t\tcolors: [],\n\t\t\t\t\tuvs: [],\n\t\t\t\t\thasUVIndices: false\n\t\t\t\t},\n\t\t\t\tmaterials: [],\n\t\t\t\tsmooth: true,\n\n\t\t\t\tstartMaterial: function ( name, libraries ) {\n\n\t\t\t\t\tconst previous = this._finalize( false );\n\n\t\t\t\t\t// New usemtl declaration overwrites an inherited material, except if faces were declared\n\t\t\t\t\t// after the material, then it must be preserved for proper MultiMaterial continuation.\n\t\t\t\t\tif ( previous && ( previous.inherited || previous.groupCount <= 0 ) ) {\n\n\t\t\t\t\t\tthis.materials.splice( previous.index, 1 );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tconst material = {\n\t\t\t\t\t\tindex: this.materials.length,\n\t\t\t\t\t\tname: name || '',\n\t\t\t\t\t\tmtllib: ( Array.isArray( libraries ) && libraries.length > 0 ? libraries[ libraries.length - 1 ] : '' ),\n\t\t\t\t\t\tsmooth: ( previous !== undefined ? previous.smooth : this.smooth ),\n\t\t\t\t\t\tgroupStart: ( previous !== undefined ? previous.groupEnd : 0 ),\n\t\t\t\t\t\tgroupEnd: - 1,\n\t\t\t\t\t\tgroupCount: - 1,\n\t\t\t\t\t\tinherited: false,\n\n\t\t\t\t\t\tclone: function ( index ) {\n\n\t\t\t\t\t\t\tconst cloned = {\n\t\t\t\t\t\t\t\tindex: ( typeof index === 'number' ? index : this.index ),\n\t\t\t\t\t\t\t\tname: this.name,\n\t\t\t\t\t\t\t\tmtllib: this.mtllib,\n\t\t\t\t\t\t\t\tsmooth: this.smooth,\n\t\t\t\t\t\t\t\tgroupStart: 0,\n\t\t\t\t\t\t\t\tgroupEnd: - 1,\n\t\t\t\t\t\t\t\tgroupCount: - 1,\n\t\t\t\t\t\t\t\tinherited: false\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tcloned.clone = this.clone.bind( cloned );\n\t\t\t\t\t\t\treturn cloned;\n\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\n\t\t\t\t\tthis.materials.push( material );\n\n\t\t\t\t\treturn material;\n\n\t\t\t\t},\n\n\t\t\t\tcurrentMaterial: function () {\n\n\t\t\t\t\tif ( this.materials.length > 0 ) {\n\n\t\t\t\t\t\treturn this.materials[ this.materials.length - 1 ];\n\n\t\t\t\t\t}\n\n\t\t\t\t\treturn undefined;\n\n\t\t\t\t},\n\n\t\t\t\t_finalize: function ( end ) {\n\n\t\t\t\t\tconst lastMultiMaterial = this.currentMaterial();\n\t\t\t\t\tif ( lastMultiMaterial && lastMultiMaterial.groupEnd === - 1 ) {\n\n\t\t\t\t\t\tlastMultiMaterial.groupEnd = this.geometry.vertices.length / 3;\n\t\t\t\t\t\tlastMultiMaterial.groupCount = lastMultiMaterial.groupEnd - lastMultiMaterial.groupStart;\n\t\t\t\t\t\tlastMultiMaterial.inherited = false;\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// Ignore objects tail materials if no face declarations followed them before a new o/g started.\n\t\t\t\t\tif ( end && this.materials.length > 1 ) {\n\n\t\t\t\t\t\tfor ( let mi = this.materials.length - 1; mi >= 0; mi -- ) {\n\n\t\t\t\t\t\t\tif ( this.materials[ mi ].groupCount <= 0 ) {\n\n\t\t\t\t\t\t\t\tthis.materials.splice( mi, 1 );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// Guarantee at least one empty material, this makes the creation later more straight forward.\n\t\t\t\t\tif ( end && this.materials.length === 0 ) {\n\n\t\t\t\t\t\tthis.materials.push( {\n\t\t\t\t\t\t\tname: '',\n\t\t\t\t\t\t\tsmooth: this.smooth\n\t\t\t\t\t\t} );\n\n\t\t\t\t\t}\n\n\t\t\t\t\treturn lastMultiMaterial;\n\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t// Inherit previous objects material.\n\t\t\t// Spec tells us that a declared material must be set to all objects until a new material is declared.\n\t\t\t// If a usemtl declaration is encountered while this new object is being parsed, it will\n\t\t\t// overwrite the inherited material. Exception being that there was already face declarations\n\t\t\t// to the inherited material, then it will be preserved for proper MultiMaterial continuation.\n\n\t\t\tif ( previousMaterial && previousMaterial.name && typeof previousMaterial.clone === 'function' ) {\n\n\t\t\t\tconst declared = previousMaterial.clone( 0 );\n\t\t\t\tdeclared.inherited = true;\n\t\t\t\tthis.object.materials.push( declared );\n\n\t\t\t}\n\n\t\t\tthis.objects.push( this.object );\n\n\t\t},\n\n\t\tfinalize: function () {\n\n\t\t\tif ( this.object && typeof this.object._finalize === 'function' ) {\n\n\t\t\t\tthis.object._finalize( true );\n\n\t\t\t}\n\n\t\t},\n\n\t\tparseVertexIndex: function ( value, len ) {\n\n\t\t\tconst index = parseInt( value, 10 );\n\t\t\treturn ( index >= 0 ? index - 1 : index + len / 3 ) * 3;\n\n\t\t},\n\n\t\tparseNormalIndex: function ( value, len ) {\n\n\t\t\tconst index = parseInt( value, 10 );\n\t\t\treturn ( index >= 0 ? index - 1 : index + len / 3 ) * 3;\n\n\t\t},\n\n\t\tparseUVIndex: function ( value, len ) {\n\n\t\t\tconst index = parseInt( value, 10 );\n\t\t\treturn ( index >= 0 ? index - 1 : index + len / 2 ) * 2;\n\n\t\t},\n\n\t\taddVertex: function ( a, b, c ) {\n\n\t\t\tconst src = this.vertices;\n\t\t\tconst dst = this.object.geometry.vertices;\n\n\t\t\tdst.push( src[ a + 0 ], src[ a + 1 ], src[ a + 2 ] );\n\t\t\tdst.push( src[ b + 0 ], src[ b + 1 ], src[ b + 2 ] );\n\t\t\tdst.push( src[ c + 0 ], src[ c + 1 ], src[ c + 2 ] );\n\n\t\t},\n\n\t\taddVertexPoint: function ( a ) {\n\n\t\t\tconst src = this.vertices;\n\t\t\tconst dst = this.object.geometry.vertices;\n\n\t\t\tdst.push( src[ a + 0 ], src[ a + 1 ], src[ a + 2 ] );\n\n\t\t},\n\n\t\taddVertexLine: function ( a ) {\n\n\t\t\tconst src = this.vertices;\n\t\t\tconst dst = this.object.geometry.vertices;\n\n\t\t\tdst.push( src[ a + 0 ], src[ a + 1 ], src[ a + 2 ] );\n\n\t\t},\n\n\t\taddNormal: function ( a, b, c ) {\n\n\t\t\tconst src = this.normals;\n\t\t\tconst dst = this.object.geometry.normals;\n\n\t\t\tdst.push( src[ a + 0 ], src[ a + 1 ], src[ a + 2 ] );\n\t\t\tdst.push( src[ b + 0 ], src[ b + 1 ], src[ b + 2 ] );\n\t\t\tdst.push( src[ c + 0 ], src[ c + 1 ], src[ c + 2 ] );\n\n\t\t},\n\n\t\taddFaceNormal: function ( a, b, c ) {\n\n\t\t\tconst src = this.vertices;\n\t\t\tconst dst = this.object.geometry.normals;\n\n\t\t\t_vA.fromArray( src, a );\n\t\t\t_vB.fromArray( src, b );\n\t\t\t_vC.fromArray( src, c );\n\n\t\t\t_cb.subVectors( _vC, _vB );\n\t\t\t_ab.subVectors( _vA, _vB );\n\t\t\t_cb.cross( _ab );\n\n\t\t\t_cb.normalize();\n\n\t\t\tdst.push( _cb.x, _cb.y, _cb.z );\n\t\t\tdst.push( _cb.x, _cb.y, _cb.z );\n\t\t\tdst.push( _cb.x, _cb.y, _cb.z );\n\n\t\t},\n\n\t\taddColor: function ( a, b, c ) {\n\n\t\t\tconst src = this.colors;\n\t\t\tconst dst = this.object.geometry.colors;\n\n\t\t\tif ( src[ a ] !== undefined ) dst.push( src[ a + 0 ], src[ a + 1 ], src[ a + 2 ] );\n\t\t\tif ( src[ b ] !== undefined ) dst.push( src[ b + 0 ], src[ b + 1 ], src[ b + 2 ] );\n\t\t\tif ( src[ c ] !== undefined ) dst.push( src[ c + 0 ], src[ c + 1 ], src[ c + 2 ] );\n\n\t\t},\n\n\t\taddUV: function ( a, b, c ) {\n\n\t\t\tconst src = this.uvs;\n\t\t\tconst dst = this.object.geometry.uvs;\n\n\t\t\tdst.push( src[ a + 0 ], src[ a + 1 ] );\n\t\t\tdst.push( src[ b + 0 ], src[ b + 1 ] );\n\t\t\tdst.push( src[ c + 0 ], src[ c + 1 ] );\n\n\t\t},\n\n\t\taddDefaultUV: function () {\n\n\t\t\tconst dst = this.object.geometry.uvs;\n\n\t\t\tdst.push( 0, 0 );\n\t\t\tdst.push( 0, 0 );\n\t\t\tdst.push( 0, 0 );\n\n\t\t},\n\n\t\taddUVLine: function ( a ) {\n\n\t\t\tconst src = this.uvs;\n\t\t\tconst dst = this.object.geometry.uvs;\n\n\t\t\tdst.push( src[ a + 0 ], src[ a + 1 ] );\n\n\t\t},\n\n\t\taddFace: function ( a, b, c, ua, ub, uc, na, nb, nc ) {\n\n\t\t\tconst vLen = this.vertices.length;\n\n\t\t\tlet ia = this.parseVertexIndex( a, vLen );\n\t\t\tlet ib = this.parseVertexIndex( b, vLen );\n\t\t\tlet ic = this.parseVertexIndex( c, vLen );\n\n\t\t\tthis.addVertex( ia, ib, ic );\n\t\t\tthis.addColor( ia, ib, ic );\n\n\t\t\t// normals\n\n\t\t\tif ( na !== undefined && na !== '' ) {\n\n\t\t\t\tconst nLen = this.normals.length;\n\n\t\t\t\tia = this.parseNormalIndex( na, nLen );\n\t\t\t\tib = this.parseNormalIndex( nb, nLen );\n\t\t\t\tic = this.parseNormalIndex( nc, nLen );\n\n\t\t\t\tthis.addNormal( ia, ib, ic );\n\n\t\t\t} else {\n\n\t\t\t\tthis.addFaceNormal( ia, ib, ic );\n\n\t\t\t}\n\n\t\t\t// uvs\n\n\t\t\tif ( ua !== undefined && ua !== '' ) {\n\n\t\t\t\tconst uvLen = this.uvs.length;\n\n\t\t\t\tia = this.parseUVIndex( ua, uvLen );\n\t\t\t\tib = this.parseUVIndex( ub, uvLen );\n\t\t\t\tic = this.parseUVIndex( uc, uvLen );\n\n\t\t\t\tthis.addUV( ia, ib, ic );\n\n\t\t\t\tthis.object.geometry.hasUVIndices = true;\n\n\t\t\t} else {\n\n\t\t\t\t// add placeholder values (for inconsistent face definitions)\n\n\t\t\t\tthis.addDefaultUV();\n\n\t\t\t}\n\n\t\t},\n\n\t\taddPointGeometry: function ( vertices ) {\n\n\t\t\tthis.object.geometry.type = 'Points';\n\n\t\t\tconst vLen = this.vertices.length;\n\n\t\t\tfor ( let vi = 0, l = vertices.length; vi < l; vi ++ ) {\n\n\t\t\t\tconst index = this.parseVertexIndex( vertices[ vi ], vLen );\n\n\t\t\t\tthis.addVertexPoint( index );\n\t\t\t\tthis.addColor( index );\n\n\t\t\t}\n\n\t\t},\n\n\t\taddLineGeometry: function ( vertices, uvs ) {\n\n\t\t\tthis.object.geometry.type = 'Line';\n\n\t\t\tconst vLen = this.vertices.length;\n\t\t\tconst uvLen = this.uvs.length;\n\n\t\t\tfor ( let vi = 0, l = vertices.length; vi < l; vi ++ ) {\n\n\t\t\t\tthis.addVertexLine( this.parseVertexIndex( vertices[ vi ], vLen ) );\n\n\t\t\t}\n\n\t\t\tfor ( let uvi = 0, l = uvs.length; uvi < l; uvi ++ ) {\n\n\t\t\t\tthis.addUVLine( this.parseUVIndex( uvs[ uvi ], uvLen ) );\n\n\t\t\t}\n\n\t\t}\n\n\t};\n\n\tstate.startObject( '', false );\n\n\treturn state;\n\n}\n\n//\n\nclass OBJLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t\tthis.materials = null;\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tconst loader = new FileLoader( this.manager );\n\t\tloader.setPath( this.path );\n\t\tloader.setRequestHeader( this.requestHeader );\n\t\tloader.setWithCredentials( this.withCredentials );\n\t\tloader.load( url, function ( text ) {\n\n\t\t\ttry {\n\n\t\t\t\tonLoad( scope.parse( text ) );\n\n\t\t\t} catch ( e ) {\n\n\t\t\t\tif ( onError ) {\n\n\t\t\t\t\tonError( e );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.error( e );\n\n\t\t\t\t}\n\n\t\t\t\tscope.manager.itemError( url );\n\n\t\t\t}\n\n\t\t}, onProgress, onError );\n\n\t}\n\n\tsetMaterials( materials ) {\n\n\t\tthis.materials = materials;\n\n\t\treturn this;\n\n\t}\n\n\tparse( text ) {\n\n\t\tconst state = new ParserState();\n\n\t\tif ( text.indexOf( '\\r\\n' ) !== - 1 ) {\n\n\t\t\t// This is faster than String.split with regex that splits on both\n\t\t\ttext = text.replace( /\\r\\n/g, '\\n' );\n\n\t\t}\n\n\t\tif ( text.indexOf( '\\\\\\n' ) !== - 1 ) {\n\n\t\t\t// join lines separated by a line continuation character (\\)\n\t\t\ttext = text.replace( /\\\\\\n/g, '' );\n\n\t\t}\n\n\t\tconst lines = text.split( '\\n' );\n\t\tlet result = [];\n\n\t\tfor ( let i = 0, l = lines.length; i < l; i ++ ) {\n\n\t\t\tconst line = lines[ i ].trimStart();\n\n\t\t\tif ( line.length === 0 ) continue;\n\n\t\t\tconst lineFirstChar = line.charAt( 0 );\n\n\t\t\t// @todo invoke passed in handler if any\n\t\t\tif ( lineFirstChar === '#' ) continue; // skip comments\n\n\t\t\tif ( lineFirstChar === 'v' ) {\n\n\t\t\t\tconst data = line.split( _face_vertex_data_separator_pattern );\n\n\t\t\t\tswitch ( data[ 0 ] ) {\n\n\t\t\t\t\tcase 'v':\n\t\t\t\t\t\tstate.vertices.push(\n\t\t\t\t\t\t\tparseFloat( data[ 1 ] ),\n\t\t\t\t\t\t\tparseFloat( data[ 2 ] ),\n\t\t\t\t\t\t\tparseFloat( data[ 3 ] )\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif ( data.length >= 7 ) {\n\n\t\t\t\t\t\t\t_color.setRGB(\n\t\t\t\t\t\t\t\tparseFloat( data[ 4 ] ),\n\t\t\t\t\t\t\t\tparseFloat( data[ 5 ] ),\n\t\t\t\t\t\t\t\tparseFloat( data[ 6 ] ),\n\t\t\t\t\t\t\t\tSRGBColorSpace\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tstate.colors.push( _color.r, _color.g, _color.b );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// if no colors are defined, add placeholders so color and vertex indices match\n\n\t\t\t\t\t\t\tstate.colors.push( undefined, undefined, undefined );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'vn':\n\t\t\t\t\t\tstate.normals.push(\n\t\t\t\t\t\t\tparseFloat( data[ 1 ] ),\n\t\t\t\t\t\t\tparseFloat( data[ 2 ] ),\n\t\t\t\t\t\t\tparseFloat( data[ 3 ] )\n\t\t\t\t\t\t);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'vt':\n\t\t\t\t\t\tstate.uvs.push(\n\t\t\t\t\t\t\tparseFloat( data[ 1 ] ),\n\t\t\t\t\t\t\tparseFloat( data[ 2 ] )\n\t\t\t\t\t\t);\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t}\n\n\t\t\t} else if ( lineFirstChar === 'f' ) {\n\n\t\t\t\tconst lineData = line.slice( 1 ).trim();\n\t\t\t\tconst vertexData = lineData.split( _face_vertex_data_separator_pattern );\n\t\t\t\tconst faceVertices = [];\n\n\t\t\t\t// Parse the face vertex data into an easy to work with format\n\n\t\t\t\tfor ( let j = 0, jl = vertexData.length; j < jl; j ++ ) {\n\n\t\t\t\t\tconst vertex = vertexData[ j ];\n\n\t\t\t\t\tif ( vertex.length > 0 ) {\n\n\t\t\t\t\t\tconst vertexParts = vertex.split( '/' );\n\t\t\t\t\t\tfaceVertices.push( vertexParts );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t// Draw an edge between the first vertex and all subsequent vertices to form an n-gon\n\n\t\t\t\tconst v1 = faceVertices[ 0 ];\n\n\t\t\t\tfor ( let j = 1, jl = faceVertices.length - 1; j < jl; j ++ ) {\n\n\t\t\t\t\tconst v2 = faceVertices[ j ];\n\t\t\t\t\tconst v3 = faceVertices[ j + 1 ];\n\n\t\t\t\t\tstate.addFace(\n\t\t\t\t\t\tv1[ 0 ], v2[ 0 ], v3[ 0 ],\n\t\t\t\t\t\tv1[ 1 ], v2[ 1 ], v3[ 1 ],\n\t\t\t\t\t\tv1[ 2 ], v2[ 2 ], v3[ 2 ]\n\t\t\t\t\t);\n\n\t\t\t\t}\n\n\t\t\t} else if ( lineFirstChar === 'l' ) {\n\n\t\t\t\tconst lineParts = line.substring( 1 ).trim().split( ' ' );\n\t\t\t\tlet lineVertices = [];\n\t\t\t\tconst lineUVs = [];\n\n\t\t\t\tif ( line.indexOf( '/' ) === - 1 ) {\n\n\t\t\t\t\tlineVertices = lineParts;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tfor ( let li = 0, llen = lineParts.length; li < llen; li ++ ) {\n\n\t\t\t\t\t\tconst parts = lineParts[ li ].split( '/' );\n\n\t\t\t\t\t\tif ( parts[ 0 ] !== '' ) lineVertices.push( parts[ 0 ] );\n\t\t\t\t\t\tif ( parts[ 1 ] !== '' ) lineUVs.push( parts[ 1 ] );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tstate.addLineGeometry( lineVertices, lineUVs );\n\n\t\t\t} else if ( lineFirstChar === 'p' ) {\n\n\t\t\t\tconst lineData = line.slice( 1 ).trim();\n\t\t\t\tconst pointData = lineData.split( ' ' );\n\n\t\t\t\tstate.addPointGeometry( pointData );\n\n\t\t\t} else if ( ( result = _object_pattern.exec( line ) ) !== null ) {\n\n\t\t\t\t// o object_name\n\t\t\t\t// or\n\t\t\t\t// g group_name\n\n\t\t\t\t// WORKAROUND: https://bugs.chromium.org/p/v8/issues/detail?id=2869\n\t\t\t\t// let name = result[ 0 ].slice( 1 ).trim();\n\t\t\t\tconst name = ( ' ' + result[ 0 ].slice( 1 ).trim() ).slice( 1 );\n\n\t\t\t\tstate.startObject( name );\n\n\t\t\t} else if ( _material_use_pattern.test( line ) ) {\n\n\t\t\t\t// material\n\n\t\t\t\tstate.object.startMaterial( line.substring( 7 ).trim(), state.materialLibraries );\n\n\t\t\t} else if ( _material_library_pattern.test( line ) ) {\n\n\t\t\t\t// mtl file\n\n\t\t\t\tstate.materialLibraries.push( line.substring( 7 ).trim() );\n\n\t\t\t} else if ( _map_use_pattern.test( line ) ) {\n\n\t\t\t\t// the line is parsed but ignored since the loader assumes textures are defined MTL files\n\t\t\t\t// (according to https://www.okino.com/conv/imp_wave.htm, 'usemap' is the old-style Wavefront texture reference method)\n\n\t\t\t\tconsole.warn( 'THREE.OBJLoader: Rendering identifier \"usemap\" not supported. Textures must be defined in MTL files.' );\n\n\t\t\t} else if ( lineFirstChar === 's' ) {\n\n\t\t\t\tresult = line.split( ' ' );\n\n\t\t\t\t// smooth shading\n\n\t\t\t\t// @todo Handle files that have varying smooth values for a set of faces inside one geometry,\n\t\t\t\t// but does not define a usemtl for each face set.\n\t\t\t\t// This should be detected and a dummy material created (later MultiMaterial and geometry groups).\n\t\t\t\t// This requires some care to not create extra material on each smooth value for \"normal\" obj files.\n\t\t\t\t// where explicit usemtl defines geometry groups.\n\t\t\t\t// Example asset: examples/models/obj/cerberus/Cerberus.obj\n\n\t\t\t\t/*\n\t\t\t\t\t * http://paulbourke.net/dataformats/obj/\n\t\t\t\t\t *\n\t\t\t\t\t * From chapter \"Grouping\" Syntax explanation \"s group_number\":\n\t\t\t\t\t * \"group_number is the smoothing group number. To turn off smoothing groups, use a value of 0 or off.\n\t\t\t\t\t * Polygonal elements use group numbers to put elements in different smoothing groups. For free-form\n\t\t\t\t\t * surfaces, smoothing groups are either turned on or off; there is no difference between values greater\n\t\t\t\t\t * than 0.\"\n\t\t\t\t\t */\n\t\t\t\tif ( result.length > 1 ) {\n\n\t\t\t\t\tconst value = result[ 1 ].trim().toLowerCase();\n\t\t\t\t\tstate.object.smooth = ( value !== '0' && value !== 'off' );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// ZBrush can produce \"s\" lines #11707\n\t\t\t\t\tstate.object.smooth = true;\n\n\t\t\t\t}\n\n\t\t\t\tconst material = state.object.currentMaterial();\n\t\t\t\tif ( material ) material.smooth = state.object.smooth;\n\n\t\t\t} else {\n\n\t\t\t\t// Handle null terminated files without exception\n\t\t\t\tif ( line === '\\0' ) continue;\n\n\t\t\t\tconsole.warn( 'THREE.OBJLoader: Unexpected line: \"' + line + '\"' );\n\n\t\t\t}\n\n\t\t}\n\n\t\tstate.finalize();\n\n\t\tconst container = new Group();\n\t\tcontainer.materialLibraries = [].concat( state.materialLibraries );\n\n\t\tconst hasPrimitives = ! ( state.objects.length === 1 && state.objects[ 0 ].geometry.vertices.length === 0 );\n\n\t\tif ( hasPrimitives === true ) {\n\n\t\t\tfor ( let i = 0, l = state.objects.length; i < l; i ++ ) {\n\n\t\t\t\tconst object = state.objects[ i ];\n\t\t\t\tconst geometry = object.geometry;\n\t\t\t\tconst materials = object.materials;\n\t\t\t\tconst isLine = ( geometry.type === 'Line' );\n\t\t\t\tconst isPoints = ( geometry.type === 'Points' );\n\t\t\t\tlet hasVertexColors = false;\n\n\t\t\t\t// Skip o/g line declarations that did not follow with any faces\n\t\t\t\tif ( geometry.vertices.length === 0 ) continue;\n\n\t\t\t\tconst buffergeometry = new BufferGeometry();\n\n\t\t\t\tbuffergeometry.setAttribute( 'position', new Float32BufferAttribute( geometry.vertices, 3 ) );\n\n\t\t\t\tif ( geometry.normals.length > 0 ) {\n\n\t\t\t\t\tbuffergeometry.setAttribute( 'normal', new Float32BufferAttribute( geometry.normals, 3 ) );\n\n\t\t\t\t}\n\n\t\t\t\tif ( geometry.colors.length > 0 ) {\n\n\t\t\t\t\thasVertexColors = true;\n\t\t\t\t\tbuffergeometry.setAttribute( 'color', new Float32BufferAttribute( geometry.colors, 3 ) );\n\n\t\t\t\t}\n\n\t\t\t\tif ( geometry.hasUVIndices === true ) {\n\n\t\t\t\t\tbuffergeometry.setAttribute( 'uv', new Float32BufferAttribute( geometry.uvs, 2 ) );\n\n\t\t\t\t}\n\n\t\t\t\t// Create materials\n\n\t\t\t\tconst createdMaterials = [];\n\n\t\t\t\tfor ( let mi = 0, miLen = materials.length; mi < miLen; mi ++ ) {\n\n\t\t\t\t\tconst sourceMaterial = materials[ mi ];\n\t\t\t\t\tconst materialHash = sourceMaterial.name + '_' + sourceMaterial.smooth + '_' + hasVertexColors;\n\t\t\t\t\tlet material = state.materials[ materialHash ];\n\n\t\t\t\t\tif ( this.materials !== null ) {\n\n\t\t\t\t\t\tmaterial = this.materials.create( sourceMaterial.name );\n\n\t\t\t\t\t\t// mtl etc. loaders probably can't create line materials correctly, copy properties to a line material.\n\t\t\t\t\t\tif ( isLine && material && ! ( material instanceof LineBasicMaterial ) ) {\n\n\t\t\t\t\t\t\tconst materialLine = new LineBasicMaterial();\n\t\t\t\t\t\t\tMaterial.prototype.copy.call( materialLine, material );\n\t\t\t\t\t\t\tmaterialLine.color.copy( material.color );\n\t\t\t\t\t\t\tmaterial = materialLine;\n\n\t\t\t\t\t\t} else if ( isPoints && material && ! ( material instanceof PointsMaterial ) ) {\n\n\t\t\t\t\t\t\tconst materialPoints = new PointsMaterial( { size: 10, sizeAttenuation: false } );\n\t\t\t\t\t\t\tMaterial.prototype.copy.call( materialPoints, material );\n\t\t\t\t\t\t\tmaterialPoints.color.copy( material.color );\n\t\t\t\t\t\t\tmaterialPoints.map = material.map;\n\t\t\t\t\t\t\tmaterial = materialPoints;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( material === undefined ) {\n\n\t\t\t\t\t\tif ( isLine ) {\n\n\t\t\t\t\t\t\tmaterial = new LineBasicMaterial();\n\n\t\t\t\t\t\t} else if ( isPoints ) {\n\n\t\t\t\t\t\t\tmaterial = new PointsMaterial( { size: 1, sizeAttenuation: false } );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tmaterial = new MeshPhongMaterial();\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tmaterial.name = sourceMaterial.name;\n\t\t\t\t\t\tmaterial.flatShading = sourceMaterial.smooth ? false : true;\n\t\t\t\t\t\tmaterial.vertexColors = hasVertexColors;\n\n\t\t\t\t\t\tstate.materials[ materialHash ] = material;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tcreatedMaterials.push( material );\n\n\t\t\t\t}\n\n\t\t\t\t// Create mesh\n\n\t\t\t\tlet mesh;\n\n\t\t\t\tif ( createdMaterials.length > 1 ) {\n\n\t\t\t\t\tfor ( let mi = 0, miLen = materials.length; mi < miLen; mi ++ ) {\n\n\t\t\t\t\t\tconst sourceMaterial = materials[ mi ];\n\t\t\t\t\t\tbuffergeometry.addGroup( sourceMaterial.groupStart, sourceMaterial.groupCount, mi );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( isLine ) {\n\n\t\t\t\t\t\tmesh = new LineSegments( buffergeometry, createdMaterials );\n\n\t\t\t\t\t} else if ( isPoints ) {\n\n\t\t\t\t\t\tmesh = new Points( buffergeometry, createdMaterials );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tmesh = new Mesh( buffergeometry, createdMaterials );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( isLine ) {\n\n\t\t\t\t\t\tmesh = new LineSegments( buffergeometry, createdMaterials[ 0 ] );\n\n\t\t\t\t\t} else if ( isPoints ) {\n\n\t\t\t\t\t\tmesh = new Points( buffergeometry, createdMaterials[ 0 ] );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tmesh = new Mesh( buffergeometry, createdMaterials[ 0 ] );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tmesh.name = object.name;\n\n\t\t\t\tcontainer.add( mesh );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// if there is only the default parser state object with no geometry data, interpret data as point cloud\n\n\t\t\tif ( state.vertices.length > 0 ) {\n\n\t\t\t\tconst material = new PointsMaterial( { size: 1, sizeAttenuation: false } );\n\n\t\t\t\tconst buffergeometry = new BufferGeometry();\n\n\t\t\t\tbuffergeometry.setAttribute( 'position', new Float32BufferAttribute( state.vertices, 3 ) );\n\n\t\t\t\tif ( state.colors.length > 0 && state.colors[ 0 ] !== undefined ) {\n\n\t\t\t\t\tbuffergeometry.setAttribute( 'color', new Float32BufferAttribute( state.colors, 3 ) );\n\t\t\t\t\tmaterial.vertexColors = true;\n\n\t\t\t\t}\n\n\t\t\t\tconst points = new Points( buffergeometry, material );\n\t\t\t\tcontainer.add( points );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn container;\n\n\t}\n\n}\n\nexport { OBJLoader };\n","import {\n\tBufferAttribute,\n\tBufferGeometry,\n\tColor,\n\tFileLoader,\n\tFloat32BufferAttribute,\n\tLoader,\n\tVector3,\n\tSRGBColorSpace\n} from 'three';\n\n/**\n * Description: A THREE loader for STL ASCII files, as created by Solidworks and other CAD programs.\n *\n * Supports both binary and ASCII encoded files, with automatic detection of type.\n *\n * The loader returns a non-indexed buffer geometry.\n *\n * Limitations:\n * Binary decoding supports \"Magics\" color format (http://en.wikipedia.org/wiki/STL_(file_format)#Color_in_binary_STL).\n * There is perhaps some question as to how valid it is to always assume little-endian-ness.\n * ASCII decoding assumes file is UTF-8.\n *\n * Usage:\n * const loader = new STLLoader();\n * loader.load( './models/stl/slotted_disk.stl', function ( geometry ) {\n * scene.add( new THREE.Mesh( geometry ) );\n * });\n *\n * For binary STLs geometry might contain colors for vertices. To use it:\n * // use the same code to load STL as above\n * if (geometry.hasColors) {\n * material = new THREE.MeshPhongMaterial({ opacity: geometry.alpha, vertexColors: true });\n * } else { .... }\n * const mesh = new THREE.Mesh( geometry, material );\n *\n * For ASCII STLs containing multiple solids, each solid is assigned to a different group.\n * Groups can be used to assign a different color by defining an array of materials with the same length of\n * geometry.groups and passing it to the Mesh constructor:\n *\n * const mesh = new THREE.Mesh( geometry, material );\n *\n * For example:\n *\n * const materials = [];\n * const nGeometryGroups = geometry.groups.length;\n *\n * const colorMap = ...; // Some logic to index colors.\n *\n * for (let i = 0; i < nGeometryGroups; i++) {\n *\n *\t\tconst material = new THREE.MeshPhongMaterial({\n *\t\t\tcolor: colorMap[i],\n *\t\t\twireframe: false\n *\t\t});\n *\n * }\n *\n * materials.push(material);\n * const mesh = new THREE.Mesh(geometry, materials);\n */\n\n\nclass STLLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tconst loader = new FileLoader( this.manager );\n\t\tloader.setPath( this.path );\n\t\tloader.setResponseType( 'arraybuffer' );\n\t\tloader.setRequestHeader( this.requestHeader );\n\t\tloader.setWithCredentials( this.withCredentials );\n\n\t\tloader.load( url, function ( text ) {\n\n\t\t\ttry {\n\n\t\t\t\tonLoad( scope.parse( text ) );\n\n\t\t\t} catch ( e ) {\n\n\t\t\t\tif ( onError ) {\n\n\t\t\t\t\tonError( e );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.error( e );\n\n\t\t\t\t}\n\n\t\t\t\tscope.manager.itemError( url );\n\n\t\t\t}\n\n\t\t}, onProgress, onError );\n\n\t}\n\n\tparse( data ) {\n\n\t\tfunction isBinary( data ) {\n\n\t\t\tconst reader = new DataView( data );\n\t\t\tconst face_size = ( 32 / 8 * 3 ) + ( ( 32 / 8 * 3 ) * 3 ) + ( 16 / 8 );\n\t\t\tconst n_faces = reader.getUint32( 80, true );\n\t\t\tconst expect = 80 + ( 32 / 8 ) + ( n_faces * face_size );\n\n\t\t\tif ( expect === reader.byteLength ) {\n\n\t\t\t\treturn true;\n\n\t\t\t}\n\n\t\t\t// An ASCII STL data must begin with 'solid ' as the first six bytes.\n\t\t\t// However, ASCII STLs lacking the SPACE after the 'd' are known to be\n\t\t\t// plentiful. So, check the first 5 bytes for 'solid'.\n\n\t\t\t// Several encodings, such as UTF-8, precede the text with up to 5 bytes:\n\t\t\t// https://en.wikipedia.org/wiki/Byte_order_mark#Byte_order_marks_by_encoding\n\t\t\t// Search for \"solid\" to start anywhere after those prefixes.\n\n\t\t\t// US-ASCII ordinal values for 's', 'o', 'l', 'i', 'd'\n\n\t\t\tconst solid = [ 115, 111, 108, 105, 100 ];\n\n\t\t\tfor ( let off = 0; off < 5; off ++ ) {\n\n\t\t\t\t// If \"solid\" text is matched to the current offset, declare it to be an ASCII STL.\n\n\t\t\t\tif ( matchDataViewAt( solid, reader, off ) ) return false;\n\n\t\t\t}\n\n\t\t\t// Couldn't find \"solid\" text at the beginning; it is binary STL.\n\n\t\t\treturn true;\n\n\t\t}\n\n\t\tfunction matchDataViewAt( query, reader, offset ) {\n\n\t\t\t// Check if each byte in query matches the corresponding byte from the current offset\n\n\t\t\tfor ( let i = 0, il = query.length; i < il; i ++ ) {\n\n\t\t\t\tif ( query[ i ] !== reader.getUint8( offset + i ) ) return false;\n\n\t\t\t}\n\n\t\t\treturn true;\n\n\t\t}\n\n\t\tfunction parseBinary( data ) {\n\n\t\t\tconst reader = new DataView( data );\n\t\t\tconst faces = reader.getUint32( 80, true );\n\n\t\t\tlet r, g, b, hasColors = false, colors;\n\t\t\tlet defaultR, defaultG, defaultB, alpha;\n\n\t\t\t// process STL header\n\t\t\t// check for default color in header (\"COLOR=rgba\" sequence).\n\n\t\t\tfor ( let index = 0; index < 80 - 10; index ++ ) {\n\n\t\t\t\tif ( ( reader.getUint32( index, false ) == 0x434F4C4F /*COLO*/ ) &&\n\t\t\t\t\t( reader.getUint8( index + 4 ) == 0x52 /*'R'*/ ) &&\n\t\t\t\t\t( reader.getUint8( index + 5 ) == 0x3D /*'='*/ ) ) {\n\n\t\t\t\t\thasColors = true;\n\t\t\t\t\tcolors = new Float32Array( faces * 3 * 3 );\n\n\t\t\t\t\tdefaultR = reader.getUint8( index + 6 ) / 255;\n\t\t\t\t\tdefaultG = reader.getUint8( index + 7 ) / 255;\n\t\t\t\t\tdefaultB = reader.getUint8( index + 8 ) / 255;\n\t\t\t\t\talpha = reader.getUint8( index + 9 ) / 255;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst dataOffset = 84;\n\t\t\tconst faceLength = 12 * 4 + 2;\n\n\t\t\tconst geometry = new BufferGeometry();\n\n\t\t\tconst vertices = new Float32Array( faces * 3 * 3 );\n\t\t\tconst normals = new Float32Array( faces * 3 * 3 );\n\n\t\t\tconst color = new Color();\n\n\t\t\tfor ( let face = 0; face < faces; face ++ ) {\n\n\t\t\t\tconst start = dataOffset + face * faceLength;\n\t\t\t\tconst normalX = reader.getFloat32( start, true );\n\t\t\t\tconst normalY = reader.getFloat32( start + 4, true );\n\t\t\t\tconst normalZ = reader.getFloat32( start + 8, true );\n\n\t\t\t\tif ( hasColors ) {\n\n\t\t\t\t\tconst packedColor = reader.getUint16( start + 48, true );\n\n\t\t\t\t\tif ( ( packedColor & 0x8000 ) === 0 ) {\n\n\t\t\t\t\t\t// facet has its own unique color\n\n\t\t\t\t\t\tr = ( packedColor & 0x1F ) / 31;\n\t\t\t\t\t\tg = ( ( packedColor >> 5 ) & 0x1F ) / 31;\n\t\t\t\t\t\tb = ( ( packedColor >> 10 ) & 0x1F ) / 31;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tr = defaultR;\n\t\t\t\t\t\tg = defaultG;\n\t\t\t\t\t\tb = defaultB;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tfor ( let i = 1; i <= 3; i ++ ) {\n\n\t\t\t\t\tconst vertexstart = start + i * 12;\n\t\t\t\t\tconst componentIdx = ( face * 3 * 3 ) + ( ( i - 1 ) * 3 );\n\n\t\t\t\t\tvertices[ componentIdx ] = reader.getFloat32( vertexstart, true );\n\t\t\t\t\tvertices[ componentIdx + 1 ] = reader.getFloat32( vertexstart + 4, true );\n\t\t\t\t\tvertices[ componentIdx + 2 ] = reader.getFloat32( vertexstart + 8, true );\n\n\t\t\t\t\tnormals[ componentIdx ] = normalX;\n\t\t\t\t\tnormals[ componentIdx + 1 ] = normalY;\n\t\t\t\t\tnormals[ componentIdx + 2 ] = normalZ;\n\n\t\t\t\t\tif ( hasColors ) {\n\n\t\t\t\t\t\tcolor.setRGB( r, g, b, SRGBColorSpace );\n\n\t\t\t\t\t\tcolors[ componentIdx ] = color.r;\n\t\t\t\t\t\tcolors[ componentIdx + 1 ] = color.g;\n\t\t\t\t\t\tcolors[ componentIdx + 2 ] = color.b;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tgeometry.setAttribute( 'position', new BufferAttribute( vertices, 3 ) );\n\t\t\tgeometry.setAttribute( 'normal', new BufferAttribute( normals, 3 ) );\n\n\t\t\tif ( hasColors ) {\n\n\t\t\t\tgeometry.setAttribute( 'color', new BufferAttribute( colors, 3 ) );\n\t\t\t\tgeometry.hasColors = true;\n\t\t\t\tgeometry.alpha = alpha;\n\n\t\t\t}\n\n\t\t\treturn geometry;\n\n\t\t}\n\n\t\tfunction parseASCII( data ) {\n\n\t\t\tconst geometry = new BufferGeometry();\n\t\t\tconst patternSolid = /solid([\\s\\S]*?)endsolid/g;\n\t\t\tconst patternFace = /facet([\\s\\S]*?)endfacet/g;\n\t\t\tconst patternName = /solid\\s(.+)/;\n\t\t\tlet faceCounter = 0;\n\n\t\t\tconst patternFloat = /[\\s]+([+-]?(?:\\d*)(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)/.source;\n\t\t\tconst patternVertex = new RegExp( 'vertex' + patternFloat + patternFloat + patternFloat, 'g' );\n\t\t\tconst patternNormal = new RegExp( 'normal' + patternFloat + patternFloat + patternFloat, 'g' );\n\n\t\t\tconst vertices = [];\n\t\t\tconst normals = [];\n\t\t\tconst groupNames = [];\n\n\t\t\tconst normal = new Vector3();\n\n\t\t\tlet result;\n\n\t\t\tlet groupCount = 0;\n\t\t\tlet startVertex = 0;\n\t\t\tlet endVertex = 0;\n\n\t\t\twhile ( ( result = patternSolid.exec( data ) ) !== null ) {\n\n\t\t\t\tstartVertex = endVertex;\n\n\t\t\t\tconst solid = result[ 0 ];\n\n\t\t\t\tconst name = ( result = patternName.exec( solid ) ) !== null ? result[ 1 ] : '';\n\t\t\t\tgroupNames.push( name );\n\n\t\t\t\twhile ( ( result = patternFace.exec( solid ) ) !== null ) {\n\n\t\t\t\t\tlet vertexCountPerFace = 0;\n\t\t\t\t\tlet normalCountPerFace = 0;\n\n\t\t\t\t\tconst text = result[ 0 ];\n\n\t\t\t\t\twhile ( ( result = patternNormal.exec( text ) ) !== null ) {\n\n\t\t\t\t\t\tnormal.x = parseFloat( result[ 1 ] );\n\t\t\t\t\t\tnormal.y = parseFloat( result[ 2 ] );\n\t\t\t\t\t\tnormal.z = parseFloat( result[ 3 ] );\n\t\t\t\t\t\tnormalCountPerFace ++;\n\n\t\t\t\t\t}\n\n\t\t\t\t\twhile ( ( result = patternVertex.exec( text ) ) !== null ) {\n\n\t\t\t\t\t\tvertices.push( parseFloat( result[ 1 ] ), parseFloat( result[ 2 ] ), parseFloat( result[ 3 ] ) );\n\t\t\t\t\t\tnormals.push( normal.x, normal.y, normal.z );\n\t\t\t\t\t\tvertexCountPerFace ++;\n\t\t\t\t\t\tendVertex ++;\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// every face have to own ONE valid normal\n\n\t\t\t\t\tif ( normalCountPerFace !== 1 ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.STLLoader: Something isn\\'t right with the normal of face number ' + faceCounter );\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// each face have to own THREE valid vertices\n\n\t\t\t\t\tif ( vertexCountPerFace !== 3 ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.STLLoader: Something isn\\'t right with the vertices of face number ' + faceCounter );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfaceCounter ++;\n\n\t\t\t\t}\n\n\t\t\t\tconst start = startVertex;\n\t\t\t\tconst count = endVertex - startVertex;\n\n\t\t\t\tgeometry.userData.groupNames = groupNames;\n\n\t\t\t\tgeometry.addGroup( start, count, groupCount );\n\t\t\t\tgroupCount ++;\n\n\t\t\t}\n\n\t\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\t\tgeometry.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\n\t\t\treturn geometry;\n\n\t\t}\n\n\t\tfunction ensureString( buffer ) {\n\n\t\t\tif ( typeof buffer !== 'string' ) {\n\n\t\t\t\treturn new TextDecoder().decode( buffer );\n\n\t\t\t}\n\n\t\t\treturn buffer;\n\n\t\t}\n\n\t\tfunction ensureBinary( buffer ) {\n\n\t\t\tif ( typeof buffer === 'string' ) {\n\n\t\t\t\tconst array_buffer = new Uint8Array( buffer.length );\n\t\t\t\tfor ( let i = 0; i < buffer.length; i ++ ) {\n\n\t\t\t\t\tarray_buffer[ i ] = buffer.charCodeAt( i ) & 0xff; // implicitly assumes little-endian\n\n\t\t\t\t}\n\n\t\t\t\treturn array_buffer.buffer || array_buffer;\n\n\t\t\t} else {\n\n\t\t\t\treturn buffer;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// start\n\n\t\tconst binData = ensureBinary( data );\n\n\t\treturn isBinary( binData ) ? parseBinary( binData ) : parseASCII( ensureString( data ) );\n\n\t}\n\n}\n\nexport { STLLoader };\n","// @ts-strict-ignore\nimport { IWidget } from '@comfyorg/litegraph'\nimport * as THREE from 'three'\nimport { OrbitControls } from 'three/examples/jsm/controls/OrbitControls'\nimport { FBXLoader } from 'three/examples/jsm/loaders/FBXLoader'\nimport { GLTF, GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'\nimport { MTLLoader } from 'three/examples/jsm/loaders/MTLLoader'\nimport { OBJLoader } from 'three/examples/jsm/loaders/OBJLoader'\nimport { STLLoader } from 'three/examples/jsm/loaders/STLLoader'\nimport { nextTick } from 'vue'\n\nimport { api } from '@/scripts/api'\nimport { app } from '@/scripts/app'\nimport { useToastStore } from '@/stores/toastStore'\n\nasync function uploadTempImage(imageData, prefix) {\n const blob = await fetch(imageData).then((r) => r.blob())\n const name = `${prefix}_${Date.now()}.png`\n const file = new File([blob], name)\n\n const body = new FormData()\n body.append('image', file)\n body.append('subfolder', 'threed')\n body.append('type', 'temp')\n\n const resp = await api.fetchApi('/upload/image', {\n method: 'POST',\n body\n })\n\n if (resp.status !== 200) {\n const err = `Error uploading temp image: ${resp.status} - ${resp.statusText}`\n useToastStore().addAlert(err)\n throw new Error(err)\n }\n\n return await resp.json()\n}\n\nasync function uploadFile(\n load3d: Load3d,\n file: File,\n fileInput?: HTMLInputElement\n) {\n let uploadPath\n\n try {\n const body = new FormData()\n body.append('image', file)\n body.append('subfolder', '3d')\n\n const resp = await api.fetchApi('/upload/image', {\n method: 'POST',\n body\n })\n\n if (resp.status === 200) {\n const data = await resp.json()\n let path = data.name\n\n if (data.subfolder) path = data.subfolder + '/' + path\n\n uploadPath = path\n\n const modelUrl = api.apiURL(\n getResourceURL(...splitFilePath(path), 'input')\n )\n await load3d.loadModel(modelUrl, file.name)\n\n const fileExt = file.name.split('.').pop()?.toLowerCase()\n if (fileExt === 'obj' && fileInput?.files) {\n try {\n const mtlFile = Array.from(fileInput.files).find((f) =>\n f.name.toLowerCase().endsWith('.mtl')\n )\n\n if (mtlFile) {\n const mtlFormData = new FormData()\n mtlFormData.append('image', mtlFile)\n mtlFormData.append('subfolder', '3d')\n\n await api.fetchApi('/upload/image', {\n method: 'POST',\n body: mtlFormData\n })\n }\n } catch (mtlError) {\n console.warn('Failed to upload MTL file:', mtlError)\n }\n }\n } else {\n useToastStore().addAlert(resp.status + ' - ' + resp.statusText)\n }\n } catch (error) {\n console.error('Upload error:', error)\n useToastStore().addAlert(\n error instanceof Error ? error.message : 'Upload failed'\n )\n }\n\n return uploadPath\n}\n\nclass Load3d {\n scene: THREE.Scene\n perspectiveCamera: THREE.PerspectiveCamera\n orthographicCamera: THREE.OrthographicCamera\n activeCamera: THREE.Camera\n renderer: THREE.WebGLRenderer\n controls: OrbitControls\n gltfLoader: GLTFLoader\n objLoader: OBJLoader\n mtlLoader: MTLLoader\n fbxLoader: FBXLoader\n stlLoader: STLLoader\n currentModel: THREE.Object3D | null = null\n originalModel: THREE.Object3D | THREE.BufferGeometry | GLTF | null = null\n node: any\n private animationFrameId: number | null = null\n gridHelper: THREE.GridHelper\n lights: THREE.Light[] = []\n clock: THREE.Clock\n normalMaterial: THREE.MeshNormalMaterial\n standardMaterial: THREE.MeshStandardMaterial\n wireframeMaterial: THREE.MeshBasicMaterial\n depthMaterial: THREE.MeshDepthMaterial\n originalMaterials: WeakMap =\n new WeakMap()\n\n materialMode: 'original' | 'normal' | 'wireframe' | 'depth' = 'original'\n currentUpDirection: 'original' | '-x' | '+x' | '-y' | '+y' | '-z' | '+z' =\n 'original'\n originalRotation: THREE.Euler | null = null\n\n constructor(container: Element | HTMLElement) {\n this.scene = new THREE.Scene()\n\n this.perspectiveCamera = new THREE.PerspectiveCamera(75, 1, 0.1, 1000)\n this.perspectiveCamera.position.set(5, 5, 5)\n\n const frustumSize = 10\n this.orthographicCamera = new THREE.OrthographicCamera(\n -frustumSize / 2,\n frustumSize / 2,\n frustumSize / 2,\n -frustumSize / 2,\n 0.1,\n 1000\n )\n this.orthographicCamera.position.set(5, 5, 5)\n\n this.activeCamera = this.perspectiveCamera\n\n this.perspectiveCamera.lookAt(0, 0, 0)\n this.orthographicCamera.lookAt(0, 0, 0)\n\n this.renderer = new THREE.WebGLRenderer({ alpha: true, antialias: true })\n this.renderer.setSize(300, 300)\n this.renderer.setClearColor(0x282828)\n\n const rendererDomElement: HTMLCanvasElement = this.renderer.domElement\n\n container.appendChild(rendererDomElement)\n\n this.controls = new OrbitControls(\n this.activeCamera,\n this.renderer.domElement\n )\n this.controls.enableDamping = true\n\n this.gltfLoader = new GLTFLoader()\n this.objLoader = new OBJLoader()\n this.mtlLoader = new MTLLoader()\n this.fbxLoader = new FBXLoader()\n this.stlLoader = new STLLoader()\n this.clock = new THREE.Clock()\n\n this.setupLights()\n\n this.gridHelper = new THREE.GridHelper(10, 10)\n this.gridHelper.position.set(0, 0, 0)\n this.scene.add(this.gridHelper)\n\n this.normalMaterial = new THREE.MeshNormalMaterial({\n flatShading: false,\n side: THREE.DoubleSide,\n normalScale: new THREE.Vector2(1, 1),\n transparent: false,\n opacity: 1.0\n })\n\n this.wireframeMaterial = new THREE.MeshBasicMaterial({\n color: 0xffffff,\n wireframe: true,\n transparent: false,\n opacity: 1.0\n })\n\n this.depthMaterial = new THREE.MeshDepthMaterial({\n depthPacking: THREE.BasicDepthPacking,\n side: THREE.DoubleSide\n })\n\n this.standardMaterial = this.createSTLMaterial()\n\n this.animate()\n\n this.handleResize()\n\n this.startAnimation()\n }\n\n setFOV(fov: number) {\n if (this.activeCamera === this.perspectiveCamera) {\n this.perspectiveCamera.fov = fov\n this.perspectiveCamera.updateProjectionMatrix()\n this.renderer.render(this.scene, this.activeCamera)\n }\n }\n\n getCameraState() {\n const currentType = this.getCurrentCameraType()\n return {\n position: this.activeCamera.position.clone(),\n target: this.controls.target.clone(),\n zoom:\n this.activeCamera instanceof THREE.OrthographicCamera\n ? this.activeCamera.zoom\n : (this.activeCamera as THREE.PerspectiveCamera).zoom,\n cameraType: currentType\n }\n }\n\n setCameraState(state: {\n position: THREE.Vector3\n target: THREE.Vector3\n zoom: number\n cameraType: 'perspective' | 'orthographic'\n }) {\n if (\n this.activeCamera !==\n (state.cameraType === 'perspective'\n ? this.perspectiveCamera\n : this.orthographicCamera)\n ) {\n this.toggleCamera(state.cameraType)\n }\n\n this.activeCamera.position.copy(state.position)\n\n this.controls.target.copy(state.target)\n\n if (this.activeCamera instanceof THREE.OrthographicCamera) {\n this.activeCamera.zoom = state.zoom\n this.activeCamera.updateProjectionMatrix()\n } else if (this.activeCamera instanceof THREE.PerspectiveCamera) {\n this.activeCamera.zoom = state.zoom\n this.activeCamera.updateProjectionMatrix()\n }\n\n this.controls.update()\n }\n\n setUpDirection(\n direction: 'original' | '-x' | '+x' | '-y' | '+y' | '-z' | '+z'\n ) {\n if (!this.currentModel) return\n\n if (!this.originalRotation && this.currentModel.rotation) {\n this.originalRotation = this.currentModel.rotation.clone()\n }\n\n this.currentUpDirection = direction\n\n if (this.originalRotation) {\n this.currentModel.rotation.copy(this.originalRotation)\n }\n\n switch (direction) {\n case 'original':\n break\n case '-x':\n this.currentModel.rotation.z = Math.PI / 2\n break\n case '+x':\n this.currentModel.rotation.z = -Math.PI / 2\n break\n case '-y':\n this.currentModel.rotation.x = Math.PI\n break\n case '+y':\n break\n case '-z':\n this.currentModel.rotation.x = Math.PI / 2\n break\n case '+z':\n this.currentModel.rotation.x = -Math.PI / 2\n break\n }\n\n this.renderer.render(this.scene, this.activeCamera)\n }\n\n setMaterialMode(mode: 'original' | 'normal' | 'wireframe' | 'depth') {\n this.materialMode = mode\n\n if (this.currentModel) {\n if (mode === 'depth') {\n this.renderer.outputColorSpace = THREE.LinearSRGBColorSpace\n } else {\n this.renderer.outputColorSpace = THREE.SRGBColorSpace\n }\n\n this.currentModel.traverse((child) => {\n if (child instanceof THREE.Mesh) {\n switch (mode) {\n case 'depth':\n if (!this.originalMaterials.has(child)) {\n this.originalMaterials.set(child, child.material)\n }\n const depthMat = new THREE.MeshDepthMaterial({\n depthPacking: THREE.BasicDepthPacking,\n side: THREE.DoubleSide\n })\n\n depthMat.onBeforeCompile = (shader) => {\n shader.uniforms.cameraType = {\n value:\n this.activeCamera instanceof THREE.OrthographicCamera\n ? 1.0\n : 0.0\n }\n\n shader.fragmentShader = `\n uniform float cameraType;\n ${shader.fragmentShader}\n `\n\n shader.fragmentShader = shader.fragmentShader.replace(\n /gl_FragColor\\s*=\\s*vec4\\(\\s*vec3\\(\\s*1.0\\s*-\\s*fragCoordZ\\s*\\)\\s*,\\s*opacity\\s*\\)\\s*;/,\n `\n float depth = 1.0 - fragCoordZ;\n if (cameraType > 0.5) {\n depth = pow(depth, 400.0);\n } else {\n depth = pow(depth, 0.6);\n }\n gl_FragColor = vec4(vec3(depth), opacity);\n `\n )\n }\n\n depthMat.customProgramCacheKey = () => {\n return this.activeCamera instanceof THREE.OrthographicCamera\n ? 'ortho'\n : 'persp'\n }\n\n child.material = depthMat\n break\n case 'normal':\n if (!this.originalMaterials.has(child)) {\n this.originalMaterials.set(child, child.material)\n }\n child.material = new THREE.MeshNormalMaterial({\n flatShading: false,\n side: THREE.DoubleSide,\n normalScale: new THREE.Vector2(1, 1),\n transparent: false,\n opacity: 1.0\n })\n child.geometry.computeVertexNormals()\n break\n\n case 'wireframe':\n if (!this.originalMaterials.has(child)) {\n this.originalMaterials.set(child, child.material)\n }\n child.material = new THREE.MeshBasicMaterial({\n color: 0xffffff,\n wireframe: true,\n transparent: false,\n opacity: 1.0\n })\n break\n\n case 'original':\n const originalMaterial = this.originalMaterials.get(child)\n if (originalMaterial) {\n child.material = originalMaterial\n } else {\n child.material = this.standardMaterial\n }\n break\n }\n }\n })\n\n this.renderer.render(this.scene, this.activeCamera)\n }\n }\n\n setupLights() {\n const ambientLight = new THREE.AmbientLight(0xffffff, 0.5)\n this.scene.add(ambientLight)\n this.lights.push(ambientLight)\n\n const mainLight = new THREE.DirectionalLight(0xffffff, 0.8)\n mainLight.position.set(0, 10, 10)\n this.scene.add(mainLight)\n this.lights.push(mainLight)\n\n const backLight = new THREE.DirectionalLight(0xffffff, 0.5)\n backLight.position.set(0, 10, -10)\n this.scene.add(backLight)\n this.lights.push(backLight)\n\n const leftFillLight = new THREE.DirectionalLight(0xffffff, 0.3)\n leftFillLight.position.set(-10, 0, 0)\n this.scene.add(leftFillLight)\n this.lights.push(leftFillLight)\n\n const rightFillLight = new THREE.DirectionalLight(0xffffff, 0.3)\n rightFillLight.position.set(10, 0, 0)\n this.scene.add(rightFillLight)\n this.lights.push(rightFillLight)\n\n const bottomLight = new THREE.DirectionalLight(0xffffff, 0.2)\n bottomLight.position.set(0, -10, 0)\n this.scene.add(bottomLight)\n this.lights.push(bottomLight)\n }\n\n toggleCamera(cameraType?: 'perspective' | 'orthographic') {\n const oldCamera = this.activeCamera\n\n const position = oldCamera.position.clone()\n const rotation = oldCamera.rotation.clone()\n const target = this.controls.target.clone()\n\n if (!cameraType) {\n this.activeCamera =\n oldCamera === this.perspectiveCamera\n ? this.orthographicCamera\n : this.perspectiveCamera\n } else {\n this.activeCamera =\n cameraType === 'perspective'\n ? this.perspectiveCamera\n : this.orthographicCamera\n\n if (oldCamera === this.activeCamera) {\n return\n }\n }\n\n this.activeCamera.position.copy(position)\n this.activeCamera.rotation.copy(rotation)\n\n if (this.materialMode === 'depth' && oldCamera !== this.activeCamera) {\n this.setMaterialMode('depth')\n }\n\n this.controls.object = this.activeCamera\n this.controls.target.copy(target)\n this.controls.update()\n\n this.handleResize()\n }\n\n getCurrentCameraType(): 'perspective' | 'orthographic' {\n return this.activeCamera === this.perspectiveCamera\n ? 'perspective'\n : 'orthographic'\n }\n\n toggleGrid(showGrid: boolean) {\n if (this.gridHelper) {\n this.gridHelper.visible = showGrid\n }\n }\n\n setLightIntensity(intensity: number) {\n this.lights.forEach((light) => {\n if (light instanceof THREE.DirectionalLight) {\n if (light === this.lights[1]) {\n light.intensity = intensity * 0.8\n } else if (light === this.lights[2]) {\n light.intensity = intensity * 0.5\n } else if (light === this.lights[5]) {\n light.intensity = intensity * 0.2\n } else {\n light.intensity = intensity * 0.3\n }\n } else if (light instanceof THREE.AmbientLight) {\n light.intensity = intensity * 0.5\n }\n })\n }\n\n startAnimation() {\n const animate = () => {\n this.animationFrameId = requestAnimationFrame(animate)\n this.controls.update()\n this.renderer.render(this.scene, this.activeCamera)\n }\n animate()\n }\n\n clearModel() {\n const objectsToRemove: THREE.Object3D[] = []\n\n this.scene.traverse((object) => {\n const isEnvironmentObject =\n object === this.gridHelper ||\n this.lights.includes(object as THREE.Light) ||\n object === this.perspectiveCamera ||\n object === this.orthographicCamera\n\n if (!isEnvironmentObject) {\n objectsToRemove.push(object)\n }\n })\n\n objectsToRemove.forEach((obj) => {\n if (obj.parent && obj.parent !== this.scene) {\n obj.parent.remove(obj)\n } else {\n this.scene.remove(obj)\n }\n\n if (obj instanceof THREE.Mesh) {\n obj.geometry?.dispose()\n if (Array.isArray(obj.material)) {\n obj.material.forEach((material) => material.dispose())\n } else {\n obj.material?.dispose()\n }\n }\n })\n\n this.resetScene()\n }\n\n protected resetScene() {\n this.currentModel = null\n this.originalRotation = null\n\n const defaultDistance = 10\n this.perspectiveCamera.position.set(\n defaultDistance,\n defaultDistance,\n defaultDistance\n )\n this.orthographicCamera.position.set(\n defaultDistance,\n defaultDistance,\n defaultDistance\n )\n\n this.perspectiveCamera.lookAt(0, 0, 0)\n this.orthographicCamera.lookAt(0, 0, 0)\n\n const frustumSize = 10\n const aspect =\n this.renderer.domElement.width / this.renderer.domElement.height\n this.orthographicCamera.left = (-frustumSize * aspect) / 2\n this.orthographicCamera.right = (frustumSize * aspect) / 2\n this.orthographicCamera.top = frustumSize / 2\n this.orthographicCamera.bottom = -frustumSize / 2\n\n this.perspectiveCamera.updateProjectionMatrix()\n this.orthographicCamera.updateProjectionMatrix()\n\n this.controls.target.set(0, 0, 0)\n this.controls.update()\n\n this.renderer.render(this.scene, this.activeCamera)\n\n this.materialMode = 'original'\n this.originalMaterials = new WeakMap()\n this.renderer.outputColorSpace = THREE.SRGBColorSpace\n }\n\n remove() {\n if (this.animationFrameId !== null) {\n cancelAnimationFrame(this.animationFrameId)\n }\n\n this.controls.dispose()\n this.renderer.dispose()\n this.renderer.domElement.remove()\n this.scene.clear()\n }\n\n protected async loadModelInternal(\n url: string,\n fileExtension: string\n ): Promise {\n let model: THREE.Object3D | null = null\n\n switch (fileExtension) {\n case 'stl':\n const geometry = await this.stlLoader.loadAsync(url)\n\n this.originalModel = geometry\n\n geometry.computeVertexNormals()\n const mesh = new THREE.Mesh(geometry, this.standardMaterial)\n const group = new THREE.Group()\n group.add(mesh)\n model = group\n break\n\n case 'fbx':\n const fbxModel = await this.fbxLoader.loadAsync(url)\n\n this.originalModel = fbxModel\n\n model = fbxModel\n\n fbxModel.traverse((child) => {\n if (child instanceof THREE.Mesh) {\n this.originalMaterials.set(child, child.material)\n }\n })\n\n break\n\n case 'obj':\n if (this.materialMode === 'original') {\n const mtlUrl = url.replace(/\\.obj([^.]*$)/, '.mtl$1')\n try {\n const materials = await this.mtlLoader.loadAsync(mtlUrl)\n materials.preload()\n this.objLoader.setMaterials(materials)\n } catch (e) {\n console.log(\n 'No MTL file found or error loading it, continuing without materials'\n )\n }\n }\n model = await this.objLoader.loadAsync(url)\n model.traverse((child) => {\n if (child instanceof THREE.Mesh) {\n this.originalMaterials.set(child, child.material)\n }\n })\n break\n\n case 'gltf':\n case 'glb':\n const gltf = await this.gltfLoader.loadAsync(url)\n\n this.originalModel = gltf\n\n model = gltf.scene\n gltf.scene.traverse((child) => {\n if (child instanceof THREE.Mesh) {\n child.geometry.computeVertexNormals()\n this.originalMaterials.set(child, child.material)\n }\n })\n break\n }\n\n return model\n }\n\n async loadModel(url: string, originalFileName?: string) {\n try {\n this.clearModel()\n\n let fileExtension: string | undefined\n if (originalFileName) {\n fileExtension = originalFileName.split('.').pop()?.toLowerCase()\n } else {\n const filename = new URLSearchParams(url.split('?')[1]).get('filename')\n fileExtension = filename?.split('.').pop()?.toLowerCase()\n }\n\n if (!fileExtension) {\n useToastStore().addAlert('Could not determine file type')\n return\n }\n\n let model = await this.loadModelInternal(url, fileExtension)\n\n if (model) {\n this.currentModel = model\n await this.setupModel(model)\n }\n } catch (error) {\n console.error('Error loading model:', error)\n }\n }\n\n protected async setupModel(model: THREE.Object3D) {\n const box = new THREE.Box3().setFromObject(model)\n const size = box.getSize(new THREE.Vector3())\n const center = box.getCenter(new THREE.Vector3())\n\n const maxDim = Math.max(size.x, size.y, size.z)\n const targetSize = 5\n const scale = targetSize / maxDim\n model.scale.multiplyScalar(scale)\n\n box.setFromObject(model)\n box.getCenter(center)\n box.getSize(size)\n\n model.position.set(-center.x, -box.min.y, -center.z)\n\n this.scene.add(model)\n\n if (this.materialMode !== 'original') {\n this.setMaterialMode(this.materialMode)\n }\n\n if (this.currentUpDirection !== 'original') {\n this.setUpDirection(this.currentUpDirection)\n }\n\n await this.setupCamera(size)\n }\n\n protected async setupCamera(size: THREE.Vector3) {\n const distance = Math.max(size.x, size.z) * 2\n const height = size.y * 2\n\n this.perspectiveCamera.position.set(distance, height, distance)\n this.orthographicCamera.position.set(distance, height, distance)\n\n if (this.activeCamera === this.perspectiveCamera) {\n this.perspectiveCamera.lookAt(0, size.y / 2, 0)\n this.perspectiveCamera.updateProjectionMatrix()\n } else {\n const frustumSize = Math.max(size.x, size.y, size.z) * 2\n const aspect =\n this.renderer.domElement.width / this.renderer.domElement.height\n this.orthographicCamera.left = (-frustumSize * aspect) / 2\n this.orthographicCamera.right = (frustumSize * aspect) / 2\n this.orthographicCamera.top = frustumSize / 2\n this.orthographicCamera.bottom = -frustumSize / 2\n this.orthographicCamera.lookAt(0, size.y / 2, 0)\n this.orthographicCamera.updateProjectionMatrix()\n }\n\n this.controls.target.set(0, size.y / 2, 0)\n this.controls.update()\n\n this.renderer.outputColorSpace = THREE.SRGBColorSpace\n this.renderer.toneMapping = THREE.ACESFilmicToneMapping\n this.renderer.toneMappingExposure = 1\n\n this.handleResize()\n }\n\n handleResize() {\n const parentElement = this.renderer?.domElement?.parentElement\n\n if (!parentElement) {\n console.warn('Parent element not found')\n return\n }\n\n const width = parentElement?.clientWidth\n const height = parentElement?.clientHeight\n\n if (this.activeCamera === this.perspectiveCamera) {\n this.perspectiveCamera.aspect = width / height\n this.perspectiveCamera.updateProjectionMatrix()\n } else {\n const frustumSize = 10\n const aspect = width / height\n this.orthographicCamera.left = (-frustumSize * aspect) / 2\n this.orthographicCamera.right = (frustumSize * aspect) / 2\n this.orthographicCamera.top = frustumSize / 2\n this.orthographicCamera.bottom = -frustumSize / 2\n this.orthographicCamera.updateProjectionMatrix()\n }\n\n this.renderer.setSize(width, height)\n }\n\n animate = () => {\n requestAnimationFrame(this.animate)\n\n this.controls.update()\n this.renderer.render(this.scene, this.activeCamera)\n }\n\n captureScene(\n width: number,\n height: number\n ): Promise<{ scene: string; mask: string }> {\n return new Promise(async (resolve, reject) => {\n try {\n const originalWidth = this.renderer.domElement.width\n const originalHeight = this.renderer.domElement.height\n const originalClearColor = this.renderer.getClearColor(\n new THREE.Color()\n )\n const originalClearAlpha = this.renderer.getClearAlpha()\n\n this.renderer.setSize(width, height)\n\n if (this.activeCamera === this.perspectiveCamera) {\n this.perspectiveCamera.aspect = width / height\n this.perspectiveCamera.updateProjectionMatrix()\n } else {\n const frustumSize = 10\n const aspect = width / height\n this.orthographicCamera.left = (-frustumSize * aspect) / 2\n this.orthographicCamera.right = (frustumSize * aspect) / 2\n this.orthographicCamera.top = frustumSize / 2\n this.orthographicCamera.bottom = -frustumSize / 2\n this.orthographicCamera.updateProjectionMatrix()\n }\n\n this.renderer.render(this.scene, this.activeCamera)\n const sceneData = this.renderer.domElement.toDataURL('image/png')\n\n this.renderer.setClearColor(0x000000, 0)\n this.renderer.render(this.scene, this.activeCamera)\n const maskData = this.renderer.domElement.toDataURL('image/png')\n\n this.renderer.setClearColor(originalClearColor, originalClearAlpha)\n this.renderer.setSize(originalWidth, originalHeight)\n this.handleResize()\n\n resolve({ scene: sceneData, mask: maskData })\n } catch (error) {\n reject(error)\n }\n })\n }\n\n createSTLMaterial() {\n return new THREE.MeshStandardMaterial({\n color: 0x808080,\n metalness: 0.1,\n roughness: 0.8,\n flatShading: false,\n side: THREE.DoubleSide\n })\n }\n\n setViewPosition(position: 'front' | 'top' | 'right' | 'isometric') {\n if (!this.currentModel) {\n return\n }\n\n const box = new THREE.Box3()\n let center = new THREE.Vector3()\n let size = new THREE.Vector3()\n\n if (this.currentModel) {\n box.setFromObject(this.currentModel)\n box.getCenter(center)\n box.getSize(size)\n }\n\n const maxDim = Math.max(size.x, size.y, size.z)\n const distance = maxDim * 2\n\n switch (position) {\n case 'front':\n this.activeCamera.position.set(0, 0, distance)\n break\n case 'top':\n this.activeCamera.position.set(0, distance, 0)\n break\n case 'right':\n this.activeCamera.position.set(distance, 0, 0)\n break\n case 'isometric':\n this.activeCamera.position.set(distance, distance, distance)\n break\n }\n\n this.activeCamera.lookAt(center)\n this.controls.target.copy(center)\n this.controls.update()\n }\n\n setBackgroundColor(color: string) {\n this.renderer.setClearColor(new THREE.Color(color))\n this.renderer.render(this.scene, this.activeCamera)\n }\n}\n\nclass Load3dAnimation extends Load3d {\n currentAnimation: THREE.AnimationMixer | null = null\n animationActions: THREE.AnimationAction[] = []\n animationClips: THREE.AnimationClip[] = []\n selectedAnimationIndex: number = 0\n isAnimationPlaying: boolean = false\n\n animationSpeed: number = 1.0\n\n constructor(container: Element | HTMLElement) {\n super(container)\n }\n\n protected async setupModel(model: THREE.Object3D) {\n await super.setupModel(model)\n\n if (this.currentAnimation) {\n this.currentAnimation.stopAllAction()\n this.animationActions = []\n }\n\n let animations: THREE.AnimationClip[] = []\n if (model.animations?.length > 0) {\n animations = model.animations\n } else if (this.originalModel && 'animations' in this.originalModel) {\n animations = (\n this.originalModel as unknown as { animations: THREE.AnimationClip[] }\n ).animations\n }\n\n if (animations.length > 0) {\n this.animationClips = animations\n if (model.type === 'Scene') {\n this.currentAnimation = new THREE.AnimationMixer(model)\n } else {\n this.currentAnimation = new THREE.AnimationMixer(this.currentModel!)\n }\n\n if (this.animationClips.length > 0) {\n this.updateSelectedAnimation(0)\n }\n }\n }\n\n setAnimationSpeed(speed: number) {\n this.animationSpeed = speed\n this.animationActions.forEach((action) => {\n action.setEffectiveTimeScale(speed)\n })\n }\n\n updateSelectedAnimation(index: number) {\n if (\n !this.currentAnimation ||\n !this.animationClips ||\n index >= this.animationClips.length\n ) {\n console.warn('Invalid animation update request')\n return\n }\n\n this.animationActions.forEach((action) => {\n action.stop()\n })\n this.currentAnimation.stopAllAction()\n this.animationActions = []\n\n this.selectedAnimationIndex = index\n const clip = this.animationClips[index]\n\n const action = this.currentAnimation.clipAction(clip)\n\n action.setEffectiveTimeScale(this.animationSpeed)\n\n action.reset()\n action.clampWhenFinished = false\n action.loop = THREE.LoopRepeat\n\n if (this.isAnimationPlaying) {\n action.play()\n } else {\n action.play()\n action.paused = true\n }\n\n this.animationActions = [action]\n }\n\n clearModel() {\n if (this.currentAnimation) {\n this.animationActions.forEach((action) => {\n action.stop()\n })\n this.currentAnimation = null\n }\n this.animationActions = []\n this.animationClips = []\n this.selectedAnimationIndex = 0\n this.isAnimationPlaying = false\n this.animationSpeed = 1.0\n\n super.clearModel()\n }\n\n getAnimationNames(): string[] {\n return this.animationClips.map((clip, index) => {\n return clip.name || `Animation ${index + 1}`\n })\n }\n\n toggleAnimation(play?: boolean) {\n if (!this.currentAnimation || this.animationActions.length === 0) {\n console.warn('No animation to toggle')\n return\n }\n\n this.isAnimationPlaying = play ?? !this.isAnimationPlaying\n\n this.animationActions.forEach((action) => {\n if (this.isAnimationPlaying) {\n action.paused = false\n if (action.time === 0 || action.time === action.getClip().duration) {\n action.reset()\n }\n } else {\n action.paused = true\n }\n })\n }\n\n animate = () => {\n requestAnimationFrame(this.animate)\n\n if (this.currentAnimation && this.isAnimationPlaying) {\n const delta = this.clock.getDelta()\n this.currentAnimation.update(delta)\n }\n\n this.controls.update()\n this.renderer.render(this.scene, this.activeCamera)\n }\n}\n\nfunction splitFilePath(path: string): [string, string] {\n const folder_separator = path.lastIndexOf('/')\n if (folder_separator === -1) {\n return ['', path]\n }\n return [\n path.substring(0, folder_separator),\n path.substring(folder_separator + 1)\n ]\n}\n\nfunction getResourceURL(\n subfolder: string,\n filename: string,\n type: string = 'input'\n): string {\n const params = [\n 'filename=' + encodeURIComponent(filename),\n 'type=' + type,\n 'subfolder=' + subfolder,\n app.getRandParam().substring(1)\n ].join('&')\n\n return `/view?${params}`\n}\n\nconst load3dCSSCLASS = `display: flex;\n flex-direction: column;\n background: transparent;\n flex: 1;\n position: relative;\n overflow: hidden;`\n\nconst load3dCanvasCSSCLASS = `display: flex;\n width: 100% !important;\n height: 100% !important;`\n\nconst containerToLoad3D = new Map()\n\nfunction configureLoad3D(\n load3d: Load3d,\n loadFolder: 'input' | 'output',\n modelWidget: IWidget,\n showGrid: IWidget,\n cameraType: IWidget,\n view: IWidget,\n material: IWidget,\n bgColor: IWidget,\n lightIntensity: IWidget,\n upDirection: IWidget,\n fov: IWidget,\n cameraState?: any,\n postModelUpdateFunc?: (load3d: Load3d) => void\n) {\n const createModelUpdateHandler = () => {\n let isFirstLoad = true\n\n return async (value: string | number | boolean | object) => {\n if (!value) return\n\n const filename = value as string\n const modelUrl = api.apiURL(\n getResourceURL(...splitFilePath(filename), loadFolder)\n )\n\n await load3d.loadModel(modelUrl, filename)\n\n load3d.setMaterialMode(\n material.value as 'original' | 'normal' | 'wireframe'\n )\n\n load3d.setUpDirection(\n upDirection.value as\n | 'original'\n | '-x'\n | '+x'\n | '-y'\n | '+y'\n | '-z'\n | '+z'\n )\n\n if (postModelUpdateFunc) {\n postModelUpdateFunc(load3d)\n }\n\n if (isFirstLoad && cameraState && typeof cameraState === 'object') {\n try {\n load3d.setCameraState(cameraState)\n } catch (error) {\n console.warn('Failed to restore camera state:', error)\n }\n isFirstLoad = false\n }\n }\n }\n\n const onModelWidgetUpdate = createModelUpdateHandler()\n\n if (modelWidget.value) {\n onModelWidgetUpdate(modelWidget.value)\n }\n\n modelWidget.callback = onModelWidgetUpdate\n\n load3d.toggleGrid(showGrid.value as boolean)\n\n showGrid.callback = (value: boolean) => {\n load3d.toggleGrid(value)\n }\n\n load3d.toggleCamera(cameraType.value as 'perspective' | 'orthographic')\n\n cameraType.callback = (value: 'perspective' | 'orthographic') => {\n load3d.toggleCamera(value)\n }\n\n view.callback = (value: 'front' | 'top' | 'right' | 'isometric') => {\n load3d.setViewPosition(value)\n }\n\n material.callback = (value: 'original' | 'normal' | 'wireframe') => {\n load3d.setMaterialMode(value)\n }\n\n load3d.setMaterialMode(material.value as 'original' | 'normal' | 'wireframe')\n\n load3d.setBackgroundColor(bgColor.value as string)\n\n bgColor.callback = (value: string) => {\n load3d.setBackgroundColor(value)\n }\n\n load3d.setLightIntensity(lightIntensity.value as number)\n\n lightIntensity.callback = (value: number) => {\n load3d.setLightIntensity(value)\n }\n\n upDirection.callback = (\n value: 'original' | '-x' | '+x' | '-y' | '+y' | '-z' | '+z'\n ) => {\n load3d.setUpDirection(value)\n }\n\n load3d.setUpDirection(\n upDirection.value as 'original' | '-x' | '+x' | '-y' | '+y' | '-z' | '+z'\n )\n\n fov.callback = (value: number) => {\n load3d.setFOV(value)\n }\n\n load3d.setFOV(fov.value as number)\n}\n\napp.registerExtension({\n name: 'Comfy.Load3D',\n\n getCustomWidgets(app) {\n return {\n LOAD_3D(node, inputName) {\n let load3dNode = app.graph._nodes.filter((wi) => wi.type == 'Load3D')\n\n node.addProperty('Camera Info', '')\n\n const container = document.createElement('div')\n container.id = `comfy-load-3d-${load3dNode.length}`\n container.classList.add('comfy-load-3d')\n\n const load3d = new Load3d(container)\n\n containerToLoad3D.set(container.id, load3d)\n\n node.onResize = function () {\n if (load3d) {\n load3d.handleResize()\n }\n }\n\n const origOnRemoved = node.onRemoved\n\n node.onRemoved = function () {\n if (load3d) {\n load3d.remove()\n }\n\n containerToLoad3D.delete(container.id)\n\n origOnRemoved?.apply(this, [])\n }\n\n node.onDrawBackground = function () {\n load3d.renderer.domElement.hidden = this.flags.collapsed ?? false\n }\n\n const fileInput = document.createElement('input')\n fileInput.type = 'file'\n fileInput.accept = '.gltf,.glb,.obj,.mtl,.fbx,.stl'\n fileInput.style.display = 'none'\n fileInput.onchange = async () => {\n if (fileInput.files?.length) {\n const modelWidget = node.widgets?.find(\n (w: IWidget) => w.name === 'model_file'\n )\n const uploadPath = await uploadFile(\n load3d,\n fileInput.files[0],\n fileInput\n ).catch((error) => {\n console.error('File upload failed:', error)\n useToastStore().addAlert('File upload failed')\n })\n\n if (uploadPath && modelWidget) {\n if (!modelWidget.options?.values?.includes(uploadPath)) {\n modelWidget.options?.values?.push(uploadPath)\n }\n\n modelWidget.value = uploadPath\n }\n }\n }\n\n node.addWidget('button', 'upload 3d model', 'upload3dmodel', () => {\n fileInput.click()\n })\n\n node.addWidget('button', 'clear', 'clear', () => {\n load3d.clearModel()\n const modelWidget = node.widgets?.find(\n (w: IWidget) => w.name === 'model_file'\n )\n if (modelWidget) {\n modelWidget.value = ''\n }\n })\n\n return {\n widget: node.addDOMWidget(inputName, 'LOAD_3D', container)\n }\n }\n }\n },\n\n init() {\n const style = document.createElement('style')\n\n style.innerText = `\n .comfy-load-3d {\n ${load3dCSSCLASS}\n }\n \n .comfy-load-3d canvas {\n ${load3dCanvasCSSCLASS}\n }\n `\n document.head.appendChild(style)\n },\n\n async nodeCreated(node) {\n if (node.constructor.comfyClass !== 'Load3D') return\n\n const [oldWidth, oldHeight] = node.size\n\n node.setSize([Math.max(oldWidth, 300), Math.max(oldHeight, 600)])\n\n await nextTick()\n\n const sceneWidget = node.widgets.find((w: IWidget) => w.name === 'image')\n\n const container = sceneWidget.element\n\n const load3d = containerToLoad3D.get(container.id)\n\n const modelWidget = node.widgets.find(\n (w: IWidget) => w.name === 'model_file'\n )\n\n const showGrid = node.widgets.find((w: IWidget) => w.name === 'show_grid')\n\n const cameraType = node.widgets.find(\n (w: IWidget) => w.name === 'camera_type'\n )\n\n const view = node.widgets.find((w: IWidget) => w.name === 'view')\n\n const material = node.widgets.find((w: IWidget) => w.name === 'material')\n\n const bgColor = node.widgets.find((w: IWidget) => w.name === 'bg_color')\n\n const lightIntensity = node.widgets.find(\n (w: IWidget) => w.name === 'light_intensity'\n )\n\n const upDirection = node.widgets.find(\n (w: IWidget) => w.name === 'up_direction'\n )\n\n const fov = node.widgets.find((w: IWidget) => w.name === 'fov')\n\n let cameraState\n try {\n const cameraInfo = node.properties['Camera Info']\n if (\n cameraInfo &&\n typeof cameraInfo === 'string' &&\n cameraInfo.trim() !== ''\n ) {\n cameraState = JSON.parse(cameraInfo)\n }\n } catch (error) {\n console.warn('Failed to parse camera state:', error)\n cameraState = undefined\n }\n\n configureLoad3D(\n load3d,\n 'input',\n modelWidget,\n showGrid,\n cameraType,\n view,\n material,\n bgColor,\n lightIntensity,\n upDirection,\n fov,\n cameraState\n )\n\n const w = node.widgets.find((w: IWidget) => w.name === 'width')\n const h = node.widgets.find((w: IWidget) => w.name === 'height')\n\n // @ts-expect-error hacky override\n sceneWidget.serializeValue = async () => {\n node.properties['Camera Info'] = JSON.stringify(load3d.getCameraState())\n\n const { scene: imageData, mask: maskData } = await load3d.captureScene(\n w.value,\n h.value\n )\n\n const [data, dataMask] = await Promise.all([\n uploadTempImage(imageData, 'scene'),\n uploadTempImage(maskData, 'scene_mask')\n ])\n\n return {\n image: `threed/${data.name} [temp]`,\n mask: `threed/${dataMask.name} [temp]`\n }\n }\n }\n})\n\napp.registerExtension({\n name: 'Comfy.Load3DAnimation',\n\n getCustomWidgets(app) {\n return {\n LOAD_3D_ANIMATION(node, inputName) {\n let load3dNode = app.graph._nodes.filter(\n (wi) => wi.type == 'Load3DAnimation'\n )\n\n node.addProperty('Camera Info', '')\n\n const container = document.createElement('div')\n container.id = `comfy-load-3d-animation-${load3dNode.length}`\n container.classList.add('comfy-load-3d-animation')\n\n const load3d = new Load3dAnimation(container)\n\n containerToLoad3D.set(container.id, load3d)\n\n node.onResize = function () {\n if (load3d) {\n load3d.handleResize()\n }\n }\n\n const origOnRemoved = node.onRemoved\n\n node.onRemoved = function () {\n if (load3d) {\n load3d.remove()\n }\n\n containerToLoad3D.delete(container.id)\n\n origOnRemoved?.apply(this, [])\n }\n\n node.onDrawBackground = function () {\n load3d.renderer.domElement.hidden = this.flags.collapsed ?? false\n }\n\n const fileInput = document.createElement('input')\n fileInput.type = 'file'\n fileInput.accept = '.fbx,glb,gltf'\n fileInput.style.display = 'none'\n fileInput.onchange = async () => {\n if (fileInput.files?.length) {\n const modelWidget = node.widgets?.find(\n (w: IWidget) => w.name === 'model_file'\n )\n const uploadPath = await uploadFile(\n load3d,\n fileInput.files[0],\n fileInput\n ).catch((error) => {\n console.error('File upload failed:', error)\n useToastStore().addAlert('File upload failed')\n })\n\n if (uploadPath && modelWidget) {\n if (!modelWidget.options?.values?.includes(uploadPath)) {\n modelWidget.options?.values?.push(uploadPath)\n }\n\n modelWidget.value = uploadPath\n }\n }\n }\n\n node.addWidget('button', 'upload 3d model', 'upload3dmodel', () => {\n fileInput.click()\n })\n\n node.addWidget('button', 'clear', 'clear', () => {\n load3d.clearModel()\n const modelWidget = node.widgets?.find(\n (w: IWidget) => w.name === 'model_file'\n )\n if (modelWidget) {\n modelWidget.value = ''\n }\n\n const animationSelect = node.widgets?.find(\n (w: IWidget) => w.name === 'animation'\n )\n\n if (animationSelect) {\n animationSelect.options.values = []\n animationSelect.value = ''\n }\n\n const speedSelect = node.widgets?.find(\n (w: IWidget) => w.name === 'animation_speed'\n )\n\n if (speedSelect) {\n speedSelect.value = '1'\n }\n })\n\n node.addWidget(\n 'button',\n 'Play/Pause Animation',\n 'toggle_animation',\n () => {\n load3d.toggleAnimation()\n }\n )\n\n const animationSelect = node.addWidget(\n 'combo',\n 'animation',\n '',\n () => '',\n {\n values: []\n }\n ) as IWidget\n\n animationSelect.callback = (value: string) => {\n const names = load3d.getAnimationNames()\n const index = names.indexOf(value)\n\n if (index !== -1) {\n const wasPlaying = load3d.isAnimationPlaying\n\n if (wasPlaying) {\n load3d.toggleAnimation(false)\n }\n\n load3d.updateSelectedAnimation(index)\n\n if (wasPlaying) {\n load3d.toggleAnimation(true)\n }\n }\n }\n\n return {\n widget: node.addDOMWidget(inputName, 'LOAD_3D_ANIMATION', container)\n }\n }\n }\n },\n\n init() {\n const style = document.createElement('style')\n\n style.innerText = `\n .comfy-load-3d-animation {\n ${load3dCSSCLASS}\n }\n \n .comfy-load-3d-animation canvas {\n ${load3dCanvasCSSCLASS}\n }\n `\n document.head.appendChild(style)\n },\n\n async nodeCreated(node) {\n if (node.constructor.comfyClass !== 'Load3DAnimation') return\n\n const [oldWidth, oldHeight] = node.size\n\n node.setSize([Math.max(oldWidth, 300), Math.max(oldHeight, 700)])\n\n await nextTick()\n\n const sceneWidget = node.widgets.find((w: IWidget) => w.name === 'image')\n\n const container = sceneWidget.element\n\n const load3d = containerToLoad3D.get(container.id)\n\n const modelWidget = node.widgets.find(\n (w: IWidget) => w.name === 'model_file'\n )\n\n const showGrid = node.widgets.find((w: IWidget) => w.name === 'show_grid')\n\n const cameraType = node.widgets.find(\n (w: IWidget) => w.name === 'camera_type'\n )\n\n const view = node.widgets.find((w: IWidget) => w.name === 'view')\n\n const material = node.widgets.find((w: IWidget) => w.name === 'material')\n\n const bgColor = node.widgets.find((w: IWidget) => w.name === 'bg_color')\n\n const lightIntensity = node.widgets.find(\n (w: IWidget) => w.name === 'light_intensity'\n )\n\n const upDirection = node.widgets.find(\n (w: IWidget) => w.name === 'up_direction'\n )\n\n const speedSelect = node.widgets.find(\n (w: IWidget) => w.name === 'animation_speed'\n )\n\n speedSelect.callback = (value: string) => {\n const load3d = containerToLoad3D.get(container.id) as Load3dAnimation\n if (load3d) {\n load3d.setAnimationSpeed(parseFloat(value))\n }\n }\n\n const fov = node.widgets.find((w: IWidget) => w.name === 'fov')\n\n let cameraState\n try {\n const cameraInfo = node.properties['Camera Info']\n if (\n cameraInfo &&\n typeof cameraInfo === 'string' &&\n cameraInfo.trim() !== ''\n ) {\n cameraState = JSON.parse(cameraInfo)\n }\n } catch (error) {\n console.warn('Failed to parse camera state:', error)\n cameraState = undefined\n }\n\n configureLoad3D(\n load3d,\n 'input',\n modelWidget,\n showGrid,\n cameraType,\n view,\n material,\n bgColor,\n lightIntensity,\n upDirection,\n fov,\n cameraState,\n (load3d: Load3d) => {\n const animationLoad3d = load3d as Load3dAnimation\n const names = animationLoad3d.getAnimationNames()\n\n const animationSelect = node.widgets.find(\n (w: IWidget) => w.name === 'animation'\n )\n\n animationSelect.options.values = names\n if (names.length) {\n animationSelect.value = names[0]\n }\n }\n )\n\n const w = node.widgets.find((w: IWidget) => w.name === 'width')\n const h = node.widgets.find((w: IWidget) => w.name === 'height')\n\n // @ts-expect-error hacky override\n sceneWidget.serializeValue = async () => {\n node.properties['Camera Info'] = JSON.stringify(load3d.getCameraState())\n\n const { scene: imageData, mask: maskData } = await load3d.captureScene(\n w.value,\n h.value\n )\n\n const [data, dataMask] = await Promise.all([\n uploadTempImage(imageData, 'scene'),\n uploadTempImage(maskData, 'scene_mask')\n ])\n\n return {\n image: `threed/${data.name} [temp]`,\n mask: `threed/${dataMask.name} [temp]`\n }\n }\n }\n})\n\napp.registerExtension({\n name: 'Comfy.Preview3D',\n\n async beforeRegisterNodeDef(nodeType, nodeData) {\n if (\n // @ts-expect-error ComfyNode\n ['Preview3D'].includes(nodeType.comfyClass)\n ) {\n nodeData.input.required.image = ['PREVIEW_3D']\n }\n },\n\n getCustomWidgets(app) {\n return {\n PREVIEW_3D(node, inputName) {\n let load3dNode = app.graph._nodes.filter((wi) => wi.type == 'Preview3D')\n\n const container = document.createElement('div')\n container.id = `comfy-preview-3d-${load3dNode.length}`\n container.classList.add('comfy-preview-3d')\n\n const load3d = new Load3d(container)\n\n containerToLoad3D.set(container.id, load3d)\n\n node.onResize = function () {\n if (load3d) {\n load3d.handleResize()\n }\n }\n\n const origOnRemoved = node.onRemoved\n\n node.onRemoved = function () {\n if (load3d) {\n load3d.remove()\n }\n\n containerToLoad3D.delete(container.id)\n\n origOnRemoved?.apply(this, [])\n }\n\n node.onDrawBackground = function () {\n load3d.renderer.domElement.hidden = this.flags.collapsed ?? false\n }\n\n return {\n widget: node.addDOMWidget(inputName, 'PREVIEW_3D', container)\n }\n }\n }\n },\n\n init() {\n const style = document.createElement('style')\n\n style.innerText = `\n .comfy-preview-3d {\n ${load3dCSSCLASS}\n }\n \n .comfy-preview-3d canvas {\n ${load3dCanvasCSSCLASS}\n }\n `\n document.head.appendChild(style)\n },\n\n async nodeCreated(node) {\n if (node.constructor.comfyClass !== 'Preview3D') return\n\n const [oldWidth, oldHeight] = node.size\n\n node.setSize([Math.max(oldWidth, 300), Math.max(oldHeight, 550)])\n\n await nextTick()\n\n const sceneWidget = node.widgets.find((w: IWidget) => w.name === 'image')\n\n const container = sceneWidget.element\n\n const load3d = containerToLoad3D.get(container.id)\n\n const modelWidget = node.widgets.find(\n (w: IWidget) => w.name === 'model_file'\n )\n\n const showGrid = node.widgets.find((w: IWidget) => w.name === 'show_grid')\n\n const cameraType = node.widgets.find(\n (w: IWidget) => w.name === 'camera_type'\n )\n\n const view = node.widgets.find((w: IWidget) => w.name === 'view')\n\n const material = node.widgets.find((w: IWidget) => w.name === 'material')\n\n const bgColor = node.widgets.find((w: IWidget) => w.name === 'bg_color')\n\n const lightIntensity = node.widgets.find(\n (w: IWidget) => w.name === 'light_intensity'\n )\n\n const upDirection = node.widgets.find(\n (w: IWidget) => w.name === 'up_direction'\n )\n\n const fov = node.widgets.find((w: IWidget) => w.name === 'fov')\n\n const onExecuted = node.onExecuted\n\n node.onExecuted = function (message: any) {\n onExecuted?.apply(this, arguments)\n\n let filePath = message.model_file[0]\n\n if (!filePath) {\n const msg = 'unable to get model file path.'\n\n console.error(msg)\n\n useToastStore().addAlert(msg)\n }\n\n modelWidget.value = filePath.replaceAll('\\\\', '/')\n\n configureLoad3D(\n load3d,\n 'output',\n modelWidget,\n showGrid,\n cameraType,\n view,\n material,\n bgColor,\n lightIntensity,\n upDirection,\n fov\n )\n }\n }\n})\n","// @ts-strict-ignore\nimport { api } from '../../scripts/api'\nimport { app } from '../../scripts/app'\nimport { ComfyApp } from '../../scripts/app'\nimport { $el, ComfyDialog } from '../../scripts/ui'\nimport { ClipspaceDialog } from './clipspace'\n\n// Helper function to convert a data URL to a Blob object\nfunction dataURLToBlob(dataURL) {\n const parts = dataURL.split(';base64,')\n const contentType = parts[0].split(':')[1]\n const byteString = atob(parts[1])\n const arrayBuffer = new ArrayBuffer(byteString.length)\n const uint8Array = new Uint8Array(arrayBuffer)\n for (let i = 0; i < byteString.length; i++) {\n uint8Array[i] = byteString.charCodeAt(i)\n }\n return new Blob([arrayBuffer], { type: contentType })\n}\n\nfunction loadedImageToBlob(image) {\n const canvas = document.createElement('canvas')\n\n canvas.width = image.width\n canvas.height = image.height\n\n const ctx = canvas.getContext('2d')\n\n ctx.drawImage(image, 0, 0)\n\n const dataURL = canvas.toDataURL('image/png', 1)\n const blob = dataURLToBlob(dataURL)\n\n return blob\n}\n\nfunction loadImage(imagePath) {\n return new Promise((resolve, reject) => {\n const image = new Image()\n\n image.onload = function () {\n resolve(image)\n }\n\n image.src = imagePath\n })\n}\n\nasync function uploadMask(filepath, formData) {\n await api\n .fetchApi('/upload/mask', {\n method: 'POST',\n body: formData\n })\n .then((response) => {})\n .catch((error) => {\n console.error('Error:', error)\n })\n\n ComfyApp.clipspace.imgs[ComfyApp.clipspace['selectedIndex']] = new Image()\n ComfyApp.clipspace.imgs[ComfyApp.clipspace['selectedIndex']].src = api.apiURL(\n '/view?' +\n new URLSearchParams(filepath).toString() +\n app.getPreviewFormatParam() +\n app.getRandParam()\n )\n\n if (ComfyApp.clipspace.images)\n ComfyApp.clipspace.images[ComfyApp.clipspace['selectedIndex']] = filepath\n\n ClipspaceDialog.invalidatePreview()\n}\n\nfunction prepare_mask(image, maskCanvas, maskCtx, maskColor) {\n // paste mask data into alpha channel\n maskCtx.drawImage(image, 0, 0, maskCanvas.width, maskCanvas.height)\n const maskData = maskCtx.getImageData(\n 0,\n 0,\n maskCanvas.width,\n maskCanvas.height\n )\n\n // invert mask\n for (let i = 0; i < maskData.data.length; i += 4) {\n if (maskData.data[i + 3] == 255) maskData.data[i + 3] = 0\n else maskData.data[i + 3] = 255\n\n maskData.data[i] = maskColor.r\n maskData.data[i + 1] = maskColor.g\n maskData.data[i + 2] = maskColor.b\n }\n\n maskCtx.globalCompositeOperation = 'source-over'\n maskCtx.putImageData(maskData, 0, 0)\n}\n\n// Define the PointerType enum\nenum PointerType {\n Arc = 'arc',\n Rect = 'rect'\n}\n\nenum CompositionOperation {\n SourceOver = 'source-over',\n DestinationOut = 'destination-out'\n}\n\nexport class MaskEditorDialogOld extends ComfyDialog {\n static instance = null\n static mousedown_x: number | null = null\n static mousedown_y: number | null = null\n\n brush: HTMLDivElement\n maskCtx: any\n maskCanvas: HTMLCanvasElement\n brush_size_slider: HTMLDivElement\n brush_opacity_slider: HTMLDivElement\n colorButton: HTMLButtonElement\n saveButton: HTMLButtonElement\n zoom_ratio: number\n pan_x: number\n pan_y: number\n imgCanvas: HTMLCanvasElement\n last_display_style: string\n is_visible: boolean\n image: HTMLImageElement\n handler_registered: boolean\n brush_slider_input: HTMLInputElement\n cursorX: number\n cursorY: number\n mousedown_pan_x: number\n mousedown_pan_y: number\n last_pressure: number\n pointer_type: PointerType\n brush_pointer_type_select: HTMLDivElement\n\n static getInstance() {\n if (!MaskEditorDialogOld.instance) {\n MaskEditorDialogOld.instance = new MaskEditorDialogOld()\n }\n\n return MaskEditorDialogOld.instance\n }\n\n is_layout_created = false\n\n constructor() {\n super()\n this.element = $el('div.comfy-modal', { parent: document.body }, [\n $el('div.comfy-modal-content', [...this.createButtons()])\n ])\n }\n\n createButtons() {\n return []\n }\n\n createButton(name, callback): HTMLButtonElement {\n var button = document.createElement('button')\n button.style.pointerEvents = 'auto'\n button.innerText = name\n button.addEventListener('click', callback)\n return button\n }\n\n createLeftButton(name, callback) {\n var button = this.createButton(name, callback)\n button.style.cssFloat = 'left'\n button.style.marginRight = '4px'\n return button\n }\n\n createRightButton(name, callback) {\n var button = this.createButton(name, callback)\n button.style.cssFloat = 'right'\n button.style.marginLeft = '4px'\n return button\n }\n\n createLeftSlider(self, name, callback): HTMLDivElement {\n const divElement = document.createElement('div')\n divElement.id = 'maskeditor-slider'\n divElement.style.cssFloat = 'left'\n divElement.style.fontFamily = 'sans-serif'\n divElement.style.marginRight = '4px'\n divElement.style.color = 'var(--input-text)'\n divElement.style.backgroundColor = 'var(--comfy-input-bg)'\n divElement.style.borderRadius = '8px'\n divElement.style.borderColor = 'var(--border-color)'\n divElement.style.borderStyle = 'solid'\n divElement.style.fontSize = '15px'\n divElement.style.height = '25px'\n divElement.style.padding = '1px 6px'\n divElement.style.display = 'flex'\n divElement.style.position = 'relative'\n divElement.style.top = '2px'\n divElement.style.pointerEvents = 'auto'\n self.brush_slider_input = document.createElement('input')\n self.brush_slider_input.setAttribute('type', 'range')\n self.brush_slider_input.setAttribute('min', '1')\n self.brush_slider_input.setAttribute('max', '100')\n self.brush_slider_input.setAttribute('value', '10')\n const labelElement = document.createElement('label')\n labelElement.textContent = name\n\n divElement.appendChild(labelElement)\n divElement.appendChild(self.brush_slider_input)\n\n self.brush_slider_input.addEventListener('change', callback)\n\n return divElement\n }\n\n createOpacitySlider(self, name, callback): HTMLDivElement {\n const divElement = document.createElement('div')\n divElement.id = 'maskeditor-opacity-slider'\n divElement.style.cssFloat = 'left'\n divElement.style.fontFamily = 'sans-serif'\n divElement.style.marginRight = '4px'\n divElement.style.color = 'var(--input-text)'\n divElement.style.backgroundColor = 'var(--comfy-input-bg)'\n divElement.style.borderRadius = '8px'\n divElement.style.borderColor = 'var(--border-color)'\n divElement.style.borderStyle = 'solid'\n divElement.style.fontSize = '15px'\n divElement.style.height = '25px'\n divElement.style.padding = '1px 6px'\n divElement.style.display = 'flex'\n divElement.style.position = 'relative'\n divElement.style.top = '2px'\n divElement.style.pointerEvents = 'auto'\n self.opacity_slider_input = document.createElement('input')\n self.opacity_slider_input.setAttribute('type', 'range')\n self.opacity_slider_input.setAttribute('min', '0.1')\n self.opacity_slider_input.setAttribute('max', '1.0')\n self.opacity_slider_input.setAttribute('step', '0.01')\n self.opacity_slider_input.setAttribute('value', '0.7')\n const labelElement = document.createElement('label')\n labelElement.textContent = name\n\n divElement.appendChild(labelElement)\n divElement.appendChild(self.opacity_slider_input)\n\n self.opacity_slider_input.addEventListener('input', callback)\n\n return divElement\n }\n\n createPointerTypeSelect(self: any): HTMLDivElement {\n const divElement = document.createElement('div')\n divElement.id = 'maskeditor-pointer-type'\n divElement.style.cssFloat = 'left'\n divElement.style.fontFamily = 'sans-serif'\n divElement.style.marginRight = '4px'\n divElement.style.color = 'var(--input-text)'\n divElement.style.backgroundColor = 'var(--comfy-input-bg)'\n divElement.style.borderRadius = '8px'\n divElement.style.borderColor = 'var(--border-color)'\n divElement.style.borderStyle = 'solid'\n divElement.style.fontSize = '15px'\n divElement.style.height = '25px'\n divElement.style.padding = '1px 6px'\n divElement.style.display = 'flex'\n divElement.style.position = 'relative'\n divElement.style.top = '2px'\n divElement.style.pointerEvents = 'auto'\n\n const labelElement = document.createElement('label')\n labelElement.textContent = 'Pointer Type:'\n\n const selectElement = document.createElement('select')\n selectElement.style.borderRadius = '0'\n selectElement.style.borderColor = 'transparent'\n selectElement.style.borderStyle = 'unset'\n selectElement.style.fontSize = '0.9em'\n\n const optionArc = document.createElement('option')\n optionArc.value = 'arc'\n optionArc.text = 'Circle'\n optionArc.selected = true // Fix for TypeScript, \"selected\" should be boolean\n\n const optionRect = document.createElement('option')\n optionRect.value = 'rect'\n optionRect.text = 'Square'\n\n selectElement.appendChild(optionArc)\n selectElement.appendChild(optionRect)\n\n selectElement.addEventListener('change', (event: Event) => {\n const target = event.target as HTMLSelectElement\n self.pointer_type = target.value\n this.setBrushBorderRadius(self)\n })\n\n divElement.appendChild(labelElement)\n divElement.appendChild(selectElement)\n\n return divElement\n }\n\n setBrushBorderRadius(self: any): void {\n if (self.pointer_type === PointerType.Rect) {\n this.brush.style.borderRadius = '0%'\n // @ts-expect-error\n this.brush.style.MozBorderRadius = '0%'\n // @ts-expect-error\n this.brush.style.WebkitBorderRadius = '0%'\n } else {\n this.brush.style.borderRadius = '50%'\n // @ts-expect-error\n this.brush.style.MozBorderRadius = '50%'\n // @ts-expect-error\n this.brush.style.WebkitBorderRadius = '50%'\n }\n }\n\n setlayout(imgCanvas: HTMLCanvasElement, maskCanvas: HTMLCanvasElement) {\n const self = this\n self.pointer_type = PointerType.Arc\n\n // If it is specified as relative, using it only as a hidden placeholder for padding is recommended\n // to prevent anomalies where it exceeds a certain size and goes outside of the window.\n var bottom_panel = document.createElement('div')\n bottom_panel.style.position = 'absolute'\n bottom_panel.style.bottom = '0px'\n bottom_panel.style.left = '20px'\n bottom_panel.style.right = '20px'\n bottom_panel.style.height = '50px'\n bottom_panel.style.pointerEvents = 'none'\n\n var brush = document.createElement('div')\n brush.id = 'brush'\n brush.style.backgroundColor = 'transparent'\n brush.style.outline = '1px dashed black'\n brush.style.boxShadow = '0 0 0 1px white'\n brush.style.position = 'absolute'\n brush.style.zIndex = '8889'\n brush.style.pointerEvents = 'none'\n this.brush = brush\n this.setBrushBorderRadius(self)\n this.element.appendChild(imgCanvas)\n this.element.appendChild(maskCanvas)\n this.element.appendChild(bottom_panel)\n document.body.appendChild(brush)\n\n var clearButton = this.createLeftButton('Clear', () => {\n self.maskCtx.clearRect(\n 0,\n 0,\n self.maskCanvas.width,\n self.maskCanvas.height\n )\n })\n\n this.brush_size_slider = this.createLeftSlider(\n self,\n 'Thickness',\n (event) => {\n self.brush_size = event.target.value\n self.updateBrushPreview(self)\n }\n )\n\n this.brush_opacity_slider = this.createOpacitySlider(\n self,\n 'Opacity',\n (event) => {\n self.brush_opacity = event.target.value\n if (self.brush_color_mode !== 'negative') {\n self.maskCanvas.style.opacity = self.brush_opacity.toString()\n }\n }\n )\n\n this.brush_pointer_type_select = this.createPointerTypeSelect(self)\n this.colorButton = this.createLeftButton(this.getColorButtonText(), () => {\n if (self.brush_color_mode === 'black') {\n self.brush_color_mode = 'white'\n } else if (self.brush_color_mode === 'white') {\n self.brush_color_mode = 'negative'\n } else {\n self.brush_color_mode = 'black'\n }\n\n self.updateWhenBrushColorModeChanged()\n })\n\n var cancelButton = this.createRightButton('Cancel', () => {\n document.removeEventListener('keydown', MaskEditorDialogOld.handleKeyDown)\n self.close()\n })\n\n this.saveButton = this.createRightButton('Save', () => {\n document.removeEventListener('keydown', MaskEditorDialogOld.handleKeyDown)\n self.save()\n })\n\n this.element.appendChild(imgCanvas)\n this.element.appendChild(maskCanvas)\n this.element.appendChild(bottom_panel)\n\n bottom_panel.appendChild(clearButton)\n bottom_panel.appendChild(this.saveButton)\n bottom_panel.appendChild(cancelButton)\n bottom_panel.appendChild(this.brush_size_slider)\n bottom_panel.appendChild(this.brush_opacity_slider)\n bottom_panel.appendChild(this.brush_pointer_type_select)\n bottom_panel.appendChild(this.colorButton)\n\n imgCanvas.style.position = 'absolute'\n maskCanvas.style.position = 'absolute'\n\n imgCanvas.style.top = '200'\n imgCanvas.style.left = '0'\n\n maskCanvas.style.top = imgCanvas.style.top\n maskCanvas.style.left = imgCanvas.style.left\n\n const maskCanvasStyle = this.getMaskCanvasStyle()\n maskCanvas.style.mixBlendMode = maskCanvasStyle.mixBlendMode\n maskCanvas.style.opacity = maskCanvasStyle.opacity.toString()\n }\n\n async show() {\n this.zoom_ratio = 1.0\n this.pan_x = 0\n this.pan_y = 0\n\n if (!this.is_layout_created) {\n // layout\n const imgCanvas = document.createElement('canvas')\n const maskCanvas = document.createElement('canvas')\n\n imgCanvas.id = 'imageCanvas'\n maskCanvas.id = 'maskCanvas'\n\n this.setlayout(imgCanvas, maskCanvas)\n\n // prepare content\n this.imgCanvas = imgCanvas\n this.maskCanvas = maskCanvas\n this.maskCtx = maskCanvas.getContext('2d', { willReadFrequently: true })\n\n this.setEventHandler(maskCanvas)\n\n this.is_layout_created = true\n\n // replacement of onClose hook since close is not real close\n const self = this\n const observer = new MutationObserver(function (mutations) {\n mutations.forEach(function (mutation) {\n if (\n mutation.type === 'attributes' &&\n mutation.attributeName === 'style'\n ) {\n if (\n self.last_display_style &&\n self.last_display_style != 'none' &&\n self.element.style.display == 'none'\n ) {\n self.brush.style.display = 'none'\n ComfyApp.onClipspaceEditorClosed()\n }\n\n self.last_display_style = self.element.style.display\n }\n })\n })\n\n const config = { attributes: true }\n observer.observe(this.element, config)\n }\n\n // The keydown event needs to be reconfigured when closing the dialog as it gets removed.\n document.addEventListener('keydown', MaskEditorDialogOld.handleKeyDown)\n\n if (ComfyApp.clipspace_return_node) {\n this.saveButton.innerText = 'Save to node'\n } else {\n this.saveButton.innerText = 'Save'\n }\n this.saveButton.disabled = false\n\n this.element.style.display = 'block'\n this.element.style.width = '85%'\n this.element.style.margin = '0 7.5%'\n this.element.style.height = '100vh'\n this.element.style.top = '50%'\n this.element.style.left = '42%'\n this.element.style.zIndex = '8888' // NOTE: alert dialog must be high priority.\n\n await this.setImages(this.imgCanvas)\n\n this.is_visible = true\n }\n\n isOpened() {\n return this.element.style.display == 'block'\n }\n\n invalidateCanvas(orig_image, mask_image) {\n this.imgCanvas.width = orig_image.width\n this.imgCanvas.height = orig_image.height\n\n this.maskCanvas.width = orig_image.width\n this.maskCanvas.height = orig_image.height\n\n let imgCtx = this.imgCanvas.getContext('2d', { willReadFrequently: true })\n let maskCtx = this.maskCanvas.getContext('2d', {\n willReadFrequently: true\n })\n\n imgCtx.drawImage(orig_image, 0, 0, orig_image.width, orig_image.height)\n prepare_mask(mask_image, this.maskCanvas, maskCtx, this.getMaskColor())\n }\n\n async setImages(imgCanvas) {\n let self = this\n\n const imgCtx = imgCanvas.getContext('2d', { willReadFrequently: true })\n const maskCtx = this.maskCtx\n const maskCanvas = this.maskCanvas\n\n imgCtx.clearRect(0, 0, this.imgCanvas.width, this.imgCanvas.height)\n maskCtx.clearRect(0, 0, this.maskCanvas.width, this.maskCanvas.height)\n\n // image load\n const filepath = ComfyApp.clipspace.images\n\n const alpha_url = new URL(\n ComfyApp.clipspace.imgs[ComfyApp.clipspace['selectedIndex']].src\n )\n alpha_url.searchParams.delete('channel')\n alpha_url.searchParams.delete('preview')\n alpha_url.searchParams.set('channel', 'a')\n let mask_image = await loadImage(alpha_url)\n\n // original image load\n const rgb_url = new URL(\n ComfyApp.clipspace.imgs[ComfyApp.clipspace['selectedIndex']].src\n )\n rgb_url.searchParams.delete('channel')\n rgb_url.searchParams.set('channel', 'rgb')\n this.image = new Image()\n this.image.onload = function () {\n maskCanvas.width = self.image.width\n maskCanvas.height = self.image.height\n\n self.invalidateCanvas(self.image, mask_image)\n self.initializeCanvasPanZoom()\n }\n this.image.src = rgb_url.toString()\n }\n\n initializeCanvasPanZoom() {\n // set initialize\n let drawWidth = this.image.width\n let drawHeight = this.image.height\n\n let width = this.element.clientWidth\n let height = this.element.clientHeight\n\n if (this.image.width > width) {\n drawWidth = width\n drawHeight = (drawWidth / this.image.width) * this.image.height\n }\n\n if (drawHeight > height) {\n drawHeight = height\n drawWidth = (drawHeight / this.image.height) * this.image.width\n }\n\n this.zoom_ratio = drawWidth / this.image.width\n\n const canvasX = (width - drawWidth) / 2\n const canvasY = (height - drawHeight) / 2\n this.pan_x = canvasX\n this.pan_y = canvasY\n\n this.invalidatePanZoom()\n }\n\n invalidatePanZoom() {\n let raw_width = this.image.width * this.zoom_ratio\n let raw_height = this.image.height * this.zoom_ratio\n\n if (this.pan_x + raw_width < 10) {\n this.pan_x = 10 - raw_width\n }\n\n if (this.pan_y + raw_height < 10) {\n this.pan_y = 10 - raw_height\n }\n\n let width = `${raw_width}px`\n let height = `${raw_height}px`\n\n let left = `${this.pan_x}px`\n let top = `${this.pan_y}px`\n\n this.maskCanvas.style.width = width\n this.maskCanvas.style.height = height\n this.maskCanvas.style.left = left\n this.maskCanvas.style.top = top\n\n this.imgCanvas.style.width = width\n this.imgCanvas.style.height = height\n this.imgCanvas.style.left = left\n this.imgCanvas.style.top = top\n }\n\n setEventHandler(maskCanvas) {\n const self = this\n\n if (!this.handler_registered) {\n maskCanvas.addEventListener('contextmenu', (event) => {\n event.preventDefault()\n })\n\n this.element.addEventListener('wheel', (event) =>\n this.handleWheelEvent(self, event)\n )\n this.element.addEventListener('pointermove', (event) =>\n this.pointMoveEvent(self, event)\n )\n this.element.addEventListener('touchmove', (event) =>\n this.pointMoveEvent(self, event)\n )\n\n this.element.addEventListener('dragstart', (event) => {\n if (event.ctrlKey) {\n event.preventDefault()\n }\n })\n\n maskCanvas.addEventListener('pointerdown', (event) =>\n this.handlePointerDown(self, event)\n )\n maskCanvas.addEventListener('pointermove', (event) =>\n this.draw_move(self, event)\n )\n maskCanvas.addEventListener('touchmove', (event) =>\n this.draw_move(self, event)\n )\n maskCanvas.addEventListener('pointerover', (event) => {\n this.brush.style.display = 'block'\n })\n maskCanvas.addEventListener('pointerleave', (event) => {\n this.brush.style.display = 'none'\n })\n\n document.addEventListener(\n 'pointerup',\n MaskEditorDialogOld.handlePointerUp\n )\n\n this.handler_registered = true\n }\n }\n\n getMaskCanvasStyle() {\n if (this.brush_color_mode === 'negative') {\n return {\n mixBlendMode: 'difference',\n opacity: '1'\n }\n } else {\n return {\n mixBlendMode: 'initial',\n opacity: this.brush_opacity\n }\n }\n }\n\n getMaskColor() {\n if (this.brush_color_mode === 'black') {\n return { r: 0, g: 0, b: 0 }\n }\n if (this.brush_color_mode === 'white') {\n return { r: 255, g: 255, b: 255 }\n }\n if (this.brush_color_mode === 'negative') {\n // negative effect only works with white color\n return { r: 255, g: 255, b: 255 }\n }\n\n return { r: 0, g: 0, b: 0 }\n }\n\n getMaskFillStyle() {\n const maskColor = this.getMaskColor()\n\n return 'rgb(' + maskColor.r + ',' + maskColor.g + ',' + maskColor.b + ')'\n }\n\n getColorButtonText() {\n let colorCaption = 'unknown'\n\n if (this.brush_color_mode === 'black') {\n colorCaption = 'black'\n } else if (this.brush_color_mode === 'white') {\n colorCaption = 'white'\n } else if (this.brush_color_mode === 'negative') {\n colorCaption = 'negative'\n }\n\n return 'Color: ' + colorCaption\n }\n\n updateWhenBrushColorModeChanged() {\n this.colorButton.innerText = this.getColorButtonText()\n\n // update mask canvas css styles\n\n const maskCanvasStyle = this.getMaskCanvasStyle()\n this.maskCanvas.style.mixBlendMode = maskCanvasStyle.mixBlendMode\n this.maskCanvas.style.opacity = maskCanvasStyle.opacity.toString()\n\n // update mask canvas rgb colors\n\n const maskColor = this.getMaskColor()\n\n const maskData = this.maskCtx.getImageData(\n 0,\n 0,\n this.maskCanvas.width,\n this.maskCanvas.height\n )\n\n for (let i = 0; i < maskData.data.length; i += 4) {\n maskData.data[i] = maskColor.r\n maskData.data[i + 1] = maskColor.g\n maskData.data[i + 2] = maskColor.b\n }\n\n this.maskCtx.putImageData(maskData, 0, 0)\n }\n\n brush_opacity = 0.7\n brush_size = 10\n brush_color_mode = 'black'\n drawing_mode = false\n lastx = -1\n lasty = -1\n lasttime = 0\n\n static handleKeyDown(event) {\n const self = MaskEditorDialogOld.instance\n if (event.key === ']') {\n self.brush_size = Math.min(self.brush_size + 2, 100)\n self.brush_slider_input.value = self.brush_size\n } else if (event.key === '[') {\n self.brush_size = Math.max(self.brush_size - 2, 1)\n self.brush_slider_input.value = self.brush_size\n } else if (event.key === 'Enter') {\n self.save()\n }\n\n self.updateBrushPreview(self)\n }\n\n static handlePointerUp(event) {\n event.preventDefault()\n\n this.mousedown_x = null\n this.mousedown_y = null\n\n MaskEditorDialogOld.instance.drawing_mode = false\n }\n\n updateBrushPreview(self) {\n const brush = self.brush\n\n var centerX = self.cursorX\n var centerY = self.cursorY\n\n brush.style.width = self.brush_size * 2 * this.zoom_ratio + 'px'\n brush.style.height = self.brush_size * 2 * this.zoom_ratio + 'px'\n brush.style.left = centerX - self.brush_size * this.zoom_ratio + 'px'\n brush.style.top = centerY - self.brush_size * this.zoom_ratio + 'px'\n }\n\n handleWheelEvent(self, event) {\n event.preventDefault()\n\n if (event.ctrlKey) {\n // zoom canvas\n if (event.deltaY < 0) {\n this.zoom_ratio = Math.min(10.0, this.zoom_ratio + 0.2)\n } else {\n this.zoom_ratio = Math.max(0.2, this.zoom_ratio - 0.2)\n }\n\n this.invalidatePanZoom()\n } else {\n // adjust brush size\n if (event.deltaY < 0) this.brush_size = Math.min(this.brush_size + 2, 100)\n else this.brush_size = Math.max(this.brush_size - 2, 1)\n\n this.brush_slider_input.value = this.brush_size.toString()\n\n this.updateBrushPreview(this)\n }\n }\n\n pointMoveEvent(self, event) {\n this.cursorX = event.pageX\n this.cursorY = event.pageY\n\n self.updateBrushPreview(self)\n\n if (event.ctrlKey) {\n event.preventDefault()\n self.pan_move(self, event)\n }\n\n let left_button_down =\n (window.TouchEvent && event instanceof TouchEvent) || event.buttons == 1\n\n if (event.shiftKey && left_button_down) {\n self.drawing_mode = false\n\n const y = event.clientY\n let delta = (self.zoom_lasty - y) * 0.005\n self.zoom_ratio = Math.max(\n Math.min(10.0, self.last_zoom_ratio - delta),\n 0.2\n )\n\n this.invalidatePanZoom()\n return\n }\n }\n\n pan_move(self, event) {\n if (event.buttons == 1) {\n if (MaskEditorDialogOld.mousedown_x) {\n let deltaX = MaskEditorDialogOld.mousedown_x - event.clientX\n let deltaY = MaskEditorDialogOld.mousedown_y - event.clientY\n\n self.pan_x = this.mousedown_pan_x - deltaX\n self.pan_y = this.mousedown_pan_y - deltaY\n\n self.invalidatePanZoom()\n }\n }\n }\n\n draw_move(self, event) {\n if (event.ctrlKey || event.shiftKey) {\n return\n }\n\n event.preventDefault()\n\n this.cursorX = event.pageX\n this.cursorY = event.pageY\n\n self.updateBrushPreview(self)\n\n let left_button_down =\n (window.TouchEvent && event instanceof TouchEvent) || event.buttons == 1\n let right_button_down = [2, 5, 32].includes(event.buttons)\n\n if (!event.altKey && left_button_down) {\n var diff = performance.now() - self.lasttime\n\n const maskRect = self.maskCanvas.getBoundingClientRect()\n\n var x = event.offsetX\n var y = event.offsetY\n\n if (event.offsetX == null) {\n x = event.targetTouches[0].clientX - maskRect.left\n }\n\n if (event.offsetY == null) {\n y = event.targetTouches[0].clientY - maskRect.top\n }\n\n x /= self.zoom_ratio\n y /= self.zoom_ratio\n\n var brush_size = this.brush_size\n if (event instanceof PointerEvent && event.pointerType == 'pen') {\n brush_size *= event.pressure\n this.last_pressure = event.pressure\n } else if (\n window.TouchEvent &&\n event instanceof TouchEvent &&\n diff < 20\n ) {\n // The firing interval of PointerEvents in Pen is unreliable, so it is supplemented by TouchEvents.\n brush_size *= this.last_pressure\n } else {\n brush_size = this.brush_size\n }\n\n if (diff > 20 && !this.drawing_mode)\n requestAnimationFrame(() => {\n self.init_shape(self, CompositionOperation.SourceOver)\n self.draw_shape(self, x, y, brush_size)\n self.lastx = x\n self.lasty = y\n })\n else\n requestAnimationFrame(() => {\n self.init_shape(self, CompositionOperation.SourceOver)\n\n var dx = x - self.lastx\n var dy = y - self.lasty\n\n var distance = Math.sqrt(dx * dx + dy * dy)\n var directionX = dx / distance\n var directionY = dy / distance\n\n for (var i = 0; i < distance; i += 5) {\n var px = self.lastx + directionX * i\n var py = self.lasty + directionY * i\n self.draw_shape(self, px, py, brush_size)\n }\n self.lastx = x\n self.lasty = y\n })\n\n self.lasttime = performance.now()\n } else if ((event.altKey && left_button_down) || right_button_down) {\n const maskRect = self.maskCanvas.getBoundingClientRect()\n const x =\n (event.offsetX || event.targetTouches[0].clientX - maskRect.left) /\n self.zoom_ratio\n const y =\n (event.offsetY || event.targetTouches[0].clientY - maskRect.top) /\n self.zoom_ratio\n\n var brush_size = this.brush_size\n if (event instanceof PointerEvent && event.pointerType == 'pen') {\n brush_size *= event.pressure\n this.last_pressure = event.pressure\n } else if (\n window.TouchEvent &&\n event instanceof TouchEvent &&\n diff < 20\n ) {\n brush_size *= this.last_pressure\n } else {\n brush_size = this.brush_size\n }\n\n if (diff > 20 && !this.drawing_mode)\n // cannot tracking drawing_mode for touch event\n requestAnimationFrame(() => {\n self.init_shape(self, CompositionOperation.DestinationOut)\n self.draw_shape(self, x, y, brush_size)\n self.lastx = x\n self.lasty = y\n })\n else\n requestAnimationFrame(() => {\n self.init_shape(self, CompositionOperation.DestinationOut)\n\n var dx = x - self.lastx\n var dy = y - self.lasty\n\n var distance = Math.sqrt(dx * dx + dy * dy)\n var directionX = dx / distance\n var directionY = dy / distance\n\n for (var i = 0; i < distance; i += 5) {\n var px = self.lastx + directionX * i\n var py = self.lasty + directionY * i\n self.draw_shape(self, px, py, brush_size)\n }\n self.lastx = x\n self.lasty = y\n })\n\n self.lasttime = performance.now()\n }\n }\n\n handlePointerDown(self, event) {\n if (event.ctrlKey) {\n if (event.buttons == 1) {\n MaskEditorDialogOld.mousedown_x = event.clientX\n MaskEditorDialogOld.mousedown_y = event.clientY\n\n this.mousedown_pan_x = this.pan_x\n this.mousedown_pan_y = this.pan_y\n }\n return\n }\n\n var brush_size = this.brush_size\n if (event instanceof PointerEvent && event.pointerType == 'pen') {\n brush_size *= event.pressure\n this.last_pressure = event.pressure\n }\n\n if ([0, 2, 5].includes(event.button)) {\n self.drawing_mode = true\n\n event.preventDefault()\n\n if (event.shiftKey) {\n self.zoom_lasty = event.clientY\n self.last_zoom_ratio = self.zoom_ratio\n return\n }\n\n const maskRect = self.maskCanvas.getBoundingClientRect()\n const x =\n (event.offsetX || event.targetTouches[0].clientX - maskRect.left) /\n self.zoom_ratio\n const y =\n (event.offsetY || event.targetTouches[0].clientY - maskRect.top) /\n self.zoom_ratio\n\n if (!event.altKey && event.button == 0) {\n self.init_shape(self, CompositionOperation.SourceOver)\n } else {\n self.init_shape(self, CompositionOperation.DestinationOut)\n }\n self.draw_shape(self, x, y, brush_size)\n self.lastx = x\n self.lasty = y\n self.lasttime = performance.now()\n }\n }\n\n init_shape(self, compositionOperation) {\n self.maskCtx.beginPath()\n if (compositionOperation == CompositionOperation.SourceOver) {\n self.maskCtx.fillStyle = this.getMaskFillStyle()\n self.maskCtx.globalCompositeOperation = CompositionOperation.SourceOver\n } else if (compositionOperation == CompositionOperation.DestinationOut) {\n self.maskCtx.globalCompositeOperation =\n CompositionOperation.DestinationOut\n }\n }\n\n draw_shape(self, x, y, brush_size) {\n if (self.pointer_type === PointerType.Rect) {\n self.maskCtx.rect(\n x - brush_size,\n y - brush_size,\n brush_size * 2,\n brush_size * 2\n )\n } else {\n self.maskCtx.arc(x, y, brush_size, 0, Math.PI * 2, false)\n }\n self.maskCtx.fill()\n }\n\n async save() {\n const backupCanvas = document.createElement('canvas')\n const backupCtx = backupCanvas.getContext('2d', {\n willReadFrequently: true\n })\n backupCanvas.width = this.image.width\n backupCanvas.height = this.image.height\n\n backupCtx.clearRect(0, 0, backupCanvas.width, backupCanvas.height)\n backupCtx.drawImage(\n this.maskCanvas,\n 0,\n 0,\n this.maskCanvas.width,\n this.maskCanvas.height,\n 0,\n 0,\n backupCanvas.width,\n backupCanvas.height\n )\n\n // paste mask data into alpha channel\n const backupData = backupCtx.getImageData(\n 0,\n 0,\n backupCanvas.width,\n backupCanvas.height\n )\n\n // refine mask image\n for (let i = 0; i < backupData.data.length; i += 4) {\n if (backupData.data[i + 3] == 255) backupData.data[i + 3] = 0\n else backupData.data[i + 3] = 255\n\n backupData.data[i] = 0\n backupData.data[i + 1] = 0\n backupData.data[i + 2] = 0\n }\n\n backupCtx.globalCompositeOperation = CompositionOperation.SourceOver\n backupCtx.putImageData(backupData, 0, 0)\n\n const formData = new FormData()\n const filename = 'clipspace-mask-' + performance.now() + '.png'\n\n const item = {\n filename: filename,\n subfolder: 'clipspace',\n type: 'input'\n }\n\n if (ComfyApp.clipspace.images) ComfyApp.clipspace.images[0] = item\n\n if (ComfyApp.clipspace.widgets) {\n const index = ComfyApp.clipspace.widgets.findIndex(\n (obj) => obj.name === 'image'\n )\n\n if (index >= 0) ComfyApp.clipspace.widgets[index].value = item\n }\n\n const dataURL = backupCanvas.toDataURL()\n const blob = dataURLToBlob(dataURL)\n\n let original_url = new URL(this.image.src)\n\n type Ref = { filename: string; subfolder?: string; type?: string }\n\n const original_ref: Ref = {\n filename: original_url.searchParams.get('filename')\n }\n\n let original_subfolder = original_url.searchParams.get('subfolder')\n if (original_subfolder) original_ref.subfolder = original_subfolder\n\n let original_type = original_url.searchParams.get('type')\n if (original_type) original_ref.type = original_type\n\n formData.append('image', blob, filename)\n formData.append('original_ref', JSON.stringify(original_ref))\n formData.append('type', 'input')\n formData.append('subfolder', 'clipspace')\n\n this.saveButton.innerText = 'Saving...'\n this.saveButton.disabled = true\n await uploadMask(item, formData)\n ComfyApp.onClipspaceEditorSave()\n this.close()\n }\n}\n","import { api } from '../../scripts/api'\nimport { app } from '../../scripts/app'\nimport { ComfyApp } from '../../scripts/app'\nimport { $el, ComfyDialog } from '../../scripts/ui'\nimport { ClipspaceDialog } from './clipspace'\nimport { MaskEditorDialogOld } from './maskEditorOld'\n\nvar styles = `\n #maskEditorContainer {\n display: fixed;\n }\n #maskEditor_brush {\n position: absolute;\n backgroundColor: transparent;\n z-index: 8889;\n pointer-events: none;\n border-radius: 50%;\n overflow: visible;\n outline: 1px dashed black;\n box-shadow: 0 0 0 1px white;\n }\n #maskEditor_brushPreviewGradient {\n position: absolute;\n width: 100%;\n height: 100%;\n border-radius: 50%;\n display: none;\n }\n #maskEditor {\n display: block;\n width: 100%;\n height: 100vh;\n left: 0;\n z-index: 8888;\n position: fixed;\n background: rgba(50,50,50,0.75);\n backdrop-filter: blur(10px);\n overflow: hidden;\n user-select: none;\n }\n #maskEditor_sidePanelContainer {\n height: 100%;\n width: 220px;\n z-index: 8888;\n display: flex;\n flex-direction: column;\n }\n #maskEditor_sidePanel {\n background: var(--comfy-menu-bg);\n height: 100%;\n display: flex;\n align-items: center;\n overflow-y: hidden;\n width: 220px;\n }\n #maskEditor_sidePanelShortcuts {\n display: flex;\n flex-direction: row;\n width: 200px;\n margin-top: 10px;\n gap: 10px;\n justify-content: center;\n }\n .maskEditor_sidePanelIconButton {\n width: 40px;\n height: 40px;\n pointer-events: auto;\n display: flex;\n justify-content: center;\n align-items: center;\n transition: background-color 0.1s;\n }\n .maskEditor_sidePanelIconButton:hover {\n background-color: rgba(0, 0, 0, 0.2);\n }\n #maskEditor_sidePanelBrushSettings {\n display: flex;\n flex-direction: column;\n gap: 10px;\n width: 200px;\n padding: 10px;\n }\n .maskEditor_sidePanelTitle {\n text-align: center;\n font-size: 15px;\n font-family: sans-serif;\n color: var(--descrip-text);\n margin-top: 10px;\n }\n #maskEditor_sidePanelBrushShapeContainer {\n display: flex;\n width: 180px;\n height: 50px;\n border: 1px solid var(--border-color);\n pointer-events: auto;\n background: rgba(0, 0, 0, 0.2);\n }\n #maskEditor_sidePanelBrushShapeCircle {\n width: 35px;\n height: 35px;\n border-radius: 50%;\n border: 1px solid var(--border-color);\n pointer-events: auto;\n transition: background 0.1s;\n margin-left: 7.5px;\n }\n .maskEditor_sidePanelBrushRange {\n width: 180px;\n -webkit-appearance: none;\n appearance: none;\n background: transparent;\n cursor: pointer;\n }\n .maskEditor_sidePanelBrushRange::-webkit-slider-thumb {\n height: 20px;\n width: 20px;\n border-radius: 50%;\n cursor: grab;\n margin-top: -8px;\n background: var(--p-surface-700);\n border: 1px solid var(--border-color);\n }\n .maskEditor_sidePanelBrushRange::-moz-range-thumb {\n height: 20px;\n width: 20px;\n border-radius: 50%;\n cursor: grab;\n background: var(--p-surface-800);\n border: 1px solid var(--border-color);\n }\n .maskEditor_sidePanelBrushRange::-webkit-slider-runnable-track {\n background: var(--p-surface-700);\n height: 3px;\n }\n .maskEditor_sidePanelBrushRange::-moz-range-track {\n background: var(--p-surface-700);\n height: 3px;\n }\n\n #maskEditor_sidePanelBrushShapeSquare {\n width: 35px;\n height: 35px;\n margin: 5px;\n border: 1px solid var(--border-color);\n pointer-events: auto;\n transition: background 0.1s;\n }\n\n .maskEditor_brushShape_dark {\n background: transparent;\n }\n\n .maskEditor_brushShape_dark:hover {\n background: var(--p-surface-900);\n }\n\n .maskEditor_brushShape_light {\n background: transparent;\n }\n\n .maskEditor_brushShape_light:hover {\n background: var(--comfy-menu-bg);\n }\n\n #maskEditor_sidePanelImageLayerSettings {\n display: flex;\n flex-direction: column;\n gap: 10px;\n width: 200px;\n align-items: center;\n }\n .maskEditor_sidePanelLayer {\n display: flex;\n width: 200px;\n height: 50px;\n }\n .maskEditor_sidePanelLayerVisibilityContainer {\n width: 50px;\n height: 50px;\n border-radius: 8px;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n .maskEditor_sidePanelVisibilityToggle {\n width: 12px;\n height: 12px;\n border-radius: 50%;\n pointer-events: auto;\n }\n .maskEditor_sidePanelLayerIconContainer {\n width: 60px;\n height: 50px;\n border-radius: 8px;\n display: flex;\n justify-content: center;\n align-items: center;\n fill: var(--input-text);\n }\n .maskEditor_sidePanelLayerIconContainer svg {\n width: 30px;\n height: 30px;\n }\n #maskEditor_sidePanelMaskLayerBlendingContainer {\n width: 80px;\n height: 50px;\n border-radius: 8px;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n #maskEditor_sidePanelMaskLayerBlendingSelect {\n width: 80px;\n height: 30px;\n border: 1px solid var(--border-color);\n background-color: rgba(0, 0, 0, 0.2);\n color: var(--input-text);\n font-family: sans-serif;\n font-size: 15px;\n pointer-events: auto;\n transition: background-color border 0.1s;\n }\n #maskEditor_sidePanelClearCanvasButton:hover {\n background-color: var(--p-overlaybadge-outline-color);\n border: none;\n }\n #maskEditor_sidePanelClearCanvasButton {\n width: 180px;\n height: 30px;\n border: none;\n background: rgba(0, 0, 0, 0.2);\n border: 1px solid var(--border-color);\n color: var(--input-text);\n font-family: sans-serif;\n font-size: 15px;\n pointer-events: auto;\n transition: background-color 0.1s;\n }\n #maskEditor_sidePanelClearCanvasButton:hover {\n background-color: var(--p-overlaybadge-outline-color);\n }\n #maskEditor_sidePanelHorizontalButtonContainer {\n display: flex;\n gap: 10px;\n height: 40px;\n }\n .maskEditor_sidePanelBigButton {\n width: 85px;\n height: 30px;\n border: none;\n background: rgba(0, 0, 0, 0.2);\n border: 1px solid var(--border-color);\n color: var(--input-text);\n font-family: sans-serif;\n font-size: 15px;\n pointer-events: auto;\n transition: background-color border 0.1s;\n }\n .maskEditor_sidePanelBigButton:hover {\n background-color: var(--p-overlaybadge-outline-color);\n border: none;\n }\n #maskEditor_toolPanel {\n height: 100%;\n width: var(--sidebar-width);\n z-index: 8888;\n background: var(--comfy-menu-bg);\n display: flex;\n flex-direction: column;\n }\n .maskEditor_toolPanelContainer {\n width: var(--sidebar-width);\n height: var(--sidebar-width);\n display: flex;\n justify-content: center;\n align-items: center;\n position: relative;\n transition: background-color 0.2s;\n }\n .maskEditor_toolPanelContainerSelected svg {\n fill: var(--p-button-text-primary-color) !important;\n }\n .maskEditor_toolPanelContainerSelected .maskEditor_toolPanelIndicator {\n display: block;\n }\n .maskEditor_toolPanelContainer svg {\n width: 75%;\n aspect-ratio: 1/1;\n fill: var(--p-button-text-secondary-color);\n }\n\n .maskEditor_toolPanelContainerDark:hover {\n background-color: var(--p-surface-800);\n }\n\n .maskEditor_toolPanelContainerLight:hover {\n background-color: var(--p-surface-300);\n }\n\n .maskEditor_toolPanelIndicator {\n display: none;\n height: 100%;\n width: 4px;\n position: absolute;\n left: 0;\n background: var(--p-button-text-primary-color);\n }\n #maskEditor_sidePanelPaintBucketSettings {\n display: flex;\n flex-direction: column;\n gap: 10px;\n width: 200px;\n padding: 10px;\n }\n #canvasBackground {\n background: white;\n width: 100%;\n height: 100%;\n }\n #maskEditor_sidePanelButtonsContainer {\n display: flex;\n flex-direction: column;\n gap: 10px;\n margin-top: 10px;\n }\n .maskEditor_sidePanelSeparator {\n width: 200px;\n height: 2px;\n background: var(--border-color);\n margin-top: 5px;\n margin-bottom: 5px;\n }\n #maskEditor_pointerZone {\n width: calc(100% - var(--sidebar-width) - 220px);\n height: 100%;\n }\n #maskEditor_uiContainer {\n width: 100%;\n height: 100%;\n position: absolute;\n z-index: 8888;\n display: flex;\n flex-direction: column;\n }\n #maskEditorCanvasContainer {\n position: absolute;\n width: 1000px;\n height: 667px;\n left: 359px;\n top: 280px;\n }\n #imageCanvas {\n width: 100%;\n height: 100%;\n }\n #maskCanvas {\n width: 100%;\n height: 100%;\n }\n #maskEditor_uiHorizontalContainer {\n width: 100%;\n height: 100%;\n display: flex;\n }\n #maskEditor_topBar {\n display: flex;\n height: 44px;\n align-items: center;\n background: var(--comfy-menu-bg);\n }\n #maskEditor_topBarTitle {\n margin: 0;\n margin-left: 0.5rem;\n margin-right: 0.5rem;\n font-size: 1.2em;\n }\n #maskEditor_topBarButtonContainer {\n display: flex;\n gap: 10px;\n margin-right: 0.5rem;\n position: absolute;\n right: 0;\n width: 200px;\n }\n #maskEditor_topBarShortcutsContainer {\n display: flex;\n gap: 10px;\n margin-left: 5px;\n }\n\n .maskEditor_topPanelIconButton_dark {\n width: 50px;\n height: 30px;\n pointer-events: auto;\n display: flex;\n justify-content: center;\n align-items: center;\n transition: background-color 0.1s;\n background: var(--p-surface-800);\n border: 1px solid var(--p-form-field-border-color);\n border-radius: 10px;\n }\n\n .maskEditor_topPanelIconButton_dark:hover {\n background-color: var(--p-surface-900);\n }\n\n .maskEditor_topPanelIconButton_dark svg {\n width: 25px;\n height: 25px;\n pointer-events: none;\n fill: var(--input-text);\n }\n\n .maskEditor_topPanelIconButton_light {\n width: 50px;\n height: 30px;\n pointer-events: auto;\n display: flex;\n justify-content: center;\n align-items: center;\n transition: background-color 0.1s;\n background: var(--comfy-menu-bg);\n border: 1px solid var(--p-form-field-border-color);\n border-radius: 10px;\n }\n\n .maskEditor_topPanelIconButton_light:hover {\n background-color: var(--p-surface-300);\n }\n\n .maskEditor_topPanelIconButton_light svg {\n width: 25px;\n height: 25px;\n pointer-events: none;\n fill: var(--input-text);\n }\n\n .maskEditor_topPanelButton_dark {\n height: 30px;\n background: var(--p-surface-800);\n border: 1px solid var(--p-form-field-border-color);\n border-radius: 10px;\n color: var(--input-text);\n font-family: sans-serif;\n pointer-events: auto;\n transition: 0.1s;\n width: 60px;\n }\n\n .maskEditor_topPanelButton_dark:hover {\n background-color: var(--p-surface-900);\n }\n\n .maskEditor_topPanelButton_light {\n height: 30px;\n background: var(--comfy-menu-bg);\n border: 1px solid var(--p-form-field-border-color);\n border-radius: 10px;\n color: var(--input-text);\n font-family: sans-serif;\n pointer-events: auto;\n transition: 0.1s;\n width: 60px;\n }\n\n .maskEditor_topPanelButton_light:hover {\n background-color: var(--p-surface-300);\n }\n\n\n #maskEditor_sidePanelColorSelectSettings {\n flex-direction: column;\n }\n \n .maskEditor_sidePanel_paintBucket_Container {\n width: 180px;\n display: flex;\n flex-direction: column;\n position: relative;\n }\n\n .maskEditor_sidePanel_colorSelect_Container {\n display: flex;\n width: 180px;\n align-items: center;\n gap: 5px;\n height: 30px;\n }\n \n #maskEditor_sidePanelVisibilityToggle {\n position: absolute;\n right: 0;\n }\n\n #maskEditor_sidePanelColorSelectMethodSelect {\n position: absolute;\n right: 0;\n height: 30px;\n border-radius: 0;\n border: 1px solid var(--border-color);\n background: rgba(0,0,0,0.2);\n }\n\n #maskEditor_sidePanelVisibilityToggle {\n position: absolute;\n right: 0;\n }\n\n .maskEditor_sidePanel_colorSelect_tolerance_container {\n display: flex;\n flex-direction: column;\n gap: 10px;\n margin-bottom: 10px;\n }\n\n .maskEditor_sidePanelContainerColumn {\n display: flex;\n flex-direction: column;\n gap: 12px;\n }\n\n .maskEditor_sidePanelContainerRow {\n display: flex;\n flex-direction: row;\n gap: 10px;\n align-items: center;\n min-height: 24px;\n position: relative;\n }\n\n .maskEditor_accent_bg_dark {\n background: var(--p-surface-800);\n }\n\n .maskEditor_accent_bg_very_dark {\n background: var(--p-surface-900);\n }\n\n .maskEditor_accent_bg_light {\n background: var(--p-surface-300);\n }\n\n .maskEditor_accent_bg_very_light {\n background: var(--comfy-menu-bg);\n }\n\n #maskEditor_paintBucketSettings {\n display: none;\n }\n\n #maskEditor_colorSelectSettings {\n display: none;\n }\n\n .maskEditor_sidePanelToggleContainer {\n cursor: pointer;\n display: inline-block;\n position: absolute;\n right: 0;\n }\n\n .maskEditor_toggle_bg_dark {\n background: var(--p-surface-700);\n }\n\n .maskEditor_toggle_bg_light {\n background: var(--p-surface-300);\n }\n\n .maskEditor_sidePanelToggleSwitch {\n display: inline-block;\n border-radius: 16px;\n width: 40px;\n height: 24px;\n position: relative;\n vertical-align: middle;\n transition: background 0.25s;\n }\n .maskEditor_sidePanelToggleSwitch:before, .maskEditor_sidePanelToggleSwitch:after {\n content: \"\";\n }\n .maskEditor_sidePanelToggleSwitch:before {\n display: block;\n background: linear-gradient(to bottom, #fff 0%, #eee 100%);\n border-radius: 50%;\n width: 16px;\n height: 16px;\n position: absolute;\n top: 4px;\n left: 4px;\n transition: ease 0.2s;\n }\n .maskEditor_sidePanelToggleContainer:hover .maskEditor_sidePanelToggleSwitch:before {\n background: linear-gradient(to bottom, #fff 0%, #fff 100%);\n }\n .maskEditor_sidePanelToggleCheckbox:checked + .maskEditor_sidePanelToggleSwitch {\n background: var(--p-button-text-primary-color);\n }\n .maskEditor_sidePanelToggleCheckbox:checked + .maskEditor_toggle_bg_dark:before {\n background: var(--p-surface-900);\n }\n .maskEditor_sidePanelToggleCheckbox:checked + .maskEditor_toggle_bg_light:before {\n background: var(--comfy-menu-bg);\n }\n .maskEditor_sidePanelToggleCheckbox:checked + .maskEditor_sidePanelToggleSwitch:before {\n left: 20px;\n }\n\n .maskEditor_sidePanelToggleCheckbox {\n position: absolute;\n visibility: hidden;\n }\n\n .maskEditor_sidePanelDropdown_dark {\n border: 1px solid var(--p-form-field-border-color);\n background: var(--p-surface-900);\n height: 24px;\n padding-left: 5px;\n padding-right: 5px;\n border-radius: 6px;\n transition: background 0.1s;\n }\n\n .maskEditor_sidePanelDropdown_dark option {\n background: var(--p-surface-900);\n }\n\n .maskEditor_sidePanelDropdown_dark:focus {\n outline: 1px solid var(--p-button-text-primary-color);\n }\n\n .maskEditor_sidePanelDropdown_dark option:hover {\n background: white;\n }\n .maskEditor_sidePanelDropdown_dark option:active {\n background: var(--p-highlight-background);\n }\n\n .maskEditor_sidePanelDropdown_light {\n border: 1px solid var(--p-form-field-border-color);\n background: var(--comfy-menu-bg);\n height: 24px;\n padding-left: 5px;\n padding-right: 5px;\n border-radius: 6px;\n transition: background 0.1s;\n }\n\n .maskEditor_sidePanelDropdown_light option {\n background: var(--comfy-menu-bg);\n }\n\n .maskEditor_sidePanelDropdown_light:focus {\n outline: 1px solid var(--p-surface-300);\n }\n\n .maskEditor_sidePanelDropdown_light option:hover {\n background: white;\n }\n .maskEditor_sidePanelDropdown_light option:active {\n background: var(--p-surface-300);\n }\n\n .maskEditor_layerRow {\n height: 50px;\n width: 200px;\n border-radius: 10px;\n }\n\n .maskEditor_sidePanelLayerPreviewContainer {\n width: 40px;\n height: 30px;\n }\n\n .maskEditor_sidePanelLayerPreviewContainer > svg{\n width: 100%;\n height: 100%;\n object-fit: contain;\n fill: var(--p-surface-100);\n }\n\n #maskEditor_sidePanelImageLayerImage {\n width: 100%;\n height: 100%;\n object-fit: contain;\n }\n\n .maskEditor_sidePanelSubTitle {\n text-align: left;\n font-size: 12px;\n font-family: sans-serif;\n color: var(--descrip-text);\n }\n\n .maskEditor_containerDropdown {\n position: absolute;\n right: 0;\n }\n\n .maskEditor_sidePanelLayerCheckbox {\n margin-left: 15px;\n }\n\n .maskEditor_toolPanelZoomIndicator {\n width: var(--sidebar-width);\n height: var(--sidebar-width);\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 5px;\n color: var(--p-button-text-secondary-color);\n position: absolute;\n bottom: 0;\n transition: background-color 0.2s;\n }\n\n #maskEditor_toolPanelDimensionsText {\n font-size: 12px;\n }\n\n #maskEditor_topBarSaveButton {\n background: var(--p-primary-color) !important;\n color: var(--p-button-primary-color) !important;\n }\n\n #maskEditor_topBarSaveButton:hover {\n background: var(--p-primary-hover-color) !important;\n }\n\n`\n\nvar styleSheet = document.createElement('style')\nstyleSheet.type = 'text/css'\nstyleSheet.innerText = styles\ndocument.head.appendChild(styleSheet)\n\nenum BrushShape {\n Arc = 'arc',\n Rect = 'rect'\n}\n\nenum Tools {\n Pen = 'pen',\n Eraser = 'eraser',\n PaintBucket = 'paintBucket',\n ColorSelect = 'colorSelect'\n}\n\nenum CompositionOperation {\n SourceOver = 'source-over',\n DestinationOut = 'destination-out'\n}\n\nenum MaskBlendMode {\n Black = 'black',\n White = 'white',\n Negative = 'negative'\n}\n\nenum ColorComparisonMethod {\n Simple = 'simple',\n HSL = 'hsl',\n LAB = 'lab'\n}\n\ninterface Point {\n x: number\n y: number\n}\n\ninterface Offset {\n x: number\n y: number\n}\n\nexport interface Brush {\n size: number\n opacity: number\n hardness: number\n type: BrushShape\n}\n\ntype Callback = (data?: any) => void\n\nclass MaskEditorDialog extends ComfyDialog {\n static instance: MaskEditorDialog | null = null\n\n //new\n private uiManager!: UIManager\n private toolManager!: ToolManager\n private panAndZoomManager!: PanAndZoomManager\n private brushTool!: BrushTool\n private paintBucketTool!: PaintBucketTool\n private colorSelectTool!: ColorSelectTool\n private canvasHistory!: CanvasHistory\n private messageBroker!: MessageBroker\n private keyboardManager!: KeyboardManager\n\n private rootElement!: HTMLElement\n private imageURL!: string\n\n private isLayoutCreated: boolean = false\n private isOpen: boolean = false\n\n //variables needed?\n last_display_style: string | null = null\n\n constructor() {\n super()\n this.rootElement = $el(\n 'div.maskEditor_hidden',\n { parent: document.body },\n []\n )\n\n this.element = this.rootElement\n }\n\n static getInstance() {\n if (!ComfyApp.clipspace || !ComfyApp.clipspace.imgs) {\n throw new Error('No clipspace images found')\n }\n const currentSrc =\n ComfyApp.clipspace.imgs[ComfyApp.clipspace['selectedIndex']].src\n\n if (\n !MaskEditorDialog.instance ||\n currentSrc !== MaskEditorDialog.instance.imageURL\n ) {\n MaskEditorDialog.instance = new MaskEditorDialog()\n }\n return MaskEditorDialog.instance\n }\n\n async show() {\n this.cleanup()\n if (!this.isLayoutCreated) {\n // layout\n this.messageBroker = new MessageBroker()\n this.canvasHistory = new CanvasHistory(this, 20)\n this.paintBucketTool = new PaintBucketTool(this)\n this.brushTool = new BrushTool(this)\n this.panAndZoomManager = new PanAndZoomManager(this)\n this.toolManager = new ToolManager(this)\n this.keyboardManager = new KeyboardManager(this)\n this.uiManager = new UIManager(this.rootElement, this)\n this.colorSelectTool = new ColorSelectTool(this)\n\n // replacement of onClose hook since close is not real close\n const self = this\n const observer = new MutationObserver(function (mutations) {\n mutations.forEach(function (mutation) {\n if (\n mutation.type === 'attributes' &&\n mutation.attributeName === 'style'\n ) {\n if (\n self.last_display_style &&\n self.last_display_style != 'none' &&\n self.element.style.display == 'none'\n ) {\n //self.brush.style.display = 'none'\n ComfyApp.onClipspaceEditorClosed()\n }\n\n self.last_display_style = self.element.style.display\n }\n })\n })\n\n const config = { attributes: true }\n observer.observe(this.rootElement, config)\n\n this.isLayoutCreated = true\n\n await this.uiManager.setlayout()\n }\n\n //this.zoomAndPanManager.reset()\n\n this.rootElement.id = 'maskEditor'\n this.rootElement.style.display = 'flex'\n this.element.style.display = 'flex'\n await this.uiManager.initUI()\n this.paintBucketTool.initPaintBucketTool()\n this.colorSelectTool.initColorSelectTool()\n await this.canvasHistory.saveInitialState()\n this.isOpen = true\n if (ComfyApp.clipspace && ComfyApp.clipspace.imgs) {\n this.uiManager.setSidebarImage()\n }\n this.keyboardManager.addListeners()\n }\n\n private cleanup() {\n // Remove all maskEditor elements\n const maskEditors = document.querySelectorAll('[id^=\"maskEditor\"]')\n maskEditors.forEach((element) => element.remove())\n\n // Remove brush elements specifically\n const brushElements = document.querySelectorAll('#maskEditor_brush')\n brushElements.forEach((element) => element.remove())\n }\n\n isOpened() {\n return this.isOpen\n }\n\n async save() {\n const backupCanvas = document.createElement('canvas')\n const imageCanvas = this.uiManager.getImgCanvas()\n const maskCanvas = this.uiManager.getMaskCanvas()\n const image = this.uiManager.getImage()\n const backupCtx = backupCanvas.getContext('2d', {\n willReadFrequently: true\n })\n\n backupCanvas.width = imageCanvas.width\n backupCanvas.height = imageCanvas.height\n\n if (!backupCtx) {\n return\n }\n\n // Ensure the mask image is fully loaded\n const maskImageLoaded = new Promise((resolve, reject) => {\n const maskImage = new Image()\n maskImage.src = maskCanvas.toDataURL()\n maskImage.onload = () => {\n resolve()\n }\n maskImage.onerror = (error) => {\n reject(error)\n }\n })\n\n try {\n await maskImageLoaded\n } catch (error) {\n console.error('Error loading mask image:', error)\n return\n }\n\n backupCtx.clearRect(0, 0, backupCanvas.width, backupCanvas.height)\n backupCtx.drawImage(\n maskCanvas,\n 0,\n 0,\n maskCanvas.width,\n maskCanvas.height,\n 0,\n 0,\n backupCanvas.width,\n backupCanvas.height\n )\n\n let maskHasContent = false\n const maskData = backupCtx.getImageData(\n 0,\n 0,\n backupCanvas.width,\n backupCanvas.height\n )\n\n for (let i = 0; i < maskData.data.length; i += 4) {\n if (maskData.data[i + 3] !== 0) {\n maskHasContent = true\n break\n }\n }\n\n // paste mask data into alpha channel\n const backupData = backupCtx.getImageData(\n 0,\n 0,\n backupCanvas.width,\n backupCanvas.height\n )\n\n let backupHasContent = false\n for (let i = 0; i < backupData.data.length; i += 4) {\n if (backupData.data[i + 3] !== 0) {\n backupHasContent = true\n break\n }\n }\n\n if (maskHasContent && !backupHasContent) {\n console.error('Mask appears to be empty')\n alert('Cannot save empty mask')\n return\n }\n\n // refine mask image\n for (let i = 0; i < backupData.data.length; i += 4) {\n const alpha = backupData.data[i + 3]\n backupData.data[i] = 0\n backupData.data[i + 1] = 0\n backupData.data[i + 2] = 0\n backupData.data[i + 3] = 255 - alpha\n }\n\n backupCtx.globalCompositeOperation = CompositionOperation.SourceOver\n backupCtx.putImageData(backupData, 0, 0)\n\n const formData = new FormData()\n const filename = 'clipspace-mask-' + performance.now() + '.png'\n\n const item = {\n filename: filename,\n subfolder: 'clipspace',\n type: 'input'\n }\n\n if (ComfyApp?.clipspace?.widgets?.length) {\n const index = ComfyApp.clipspace.widgets.findIndex(\n (obj) => obj?.name === 'image'\n )\n\n if (index >= 0 && item !== undefined) {\n try {\n ComfyApp.clipspace.widgets[index].value = item\n } catch (err) {\n console.warn('Failed to set widget value:', err)\n }\n }\n }\n\n const dataURL = backupCanvas.toDataURL()\n const blob = this.dataURLToBlob(dataURL)\n\n let original_url = new URL(image.src)\n\n type Ref = { filename: string; subfolder?: string; type?: string }\n\n this.uiManager.setBrushOpacity(0)\n\n const filenameRef = original_url.searchParams.get('filename')\n if (!filenameRef) {\n throw new Error('filename parameter is required')\n }\n const original_ref: Ref = {\n filename: filenameRef\n }\n\n let original_subfolder = original_url.searchParams.get('subfolder')\n if (original_subfolder) original_ref.subfolder = original_subfolder\n\n let original_type = original_url.searchParams.get('type')\n if (original_type) original_ref.type = original_type\n\n formData.append('image', blob, filename)\n formData.append('original_ref', JSON.stringify(original_ref))\n formData.append('type', 'input')\n formData.append('subfolder', 'clipspace')\n\n this.uiManager.setSaveButtonText('Saving')\n this.uiManager.setSaveButtonEnabled(false)\n this.keyboardManager.removeListeners()\n\n // Retry mechanism\n const maxRetries = 3\n let attempt = 0\n let success = false\n\n while (attempt < maxRetries && !success) {\n try {\n await this.uploadMask(item, formData)\n success = true\n } catch (error) {\n console.error(`Upload attempt ${attempt + 1} failed:`, error)\n attempt++\n if (attempt < maxRetries) {\n console.log('Retrying upload...')\n } else {\n console.log('Max retries reached. Upload failed.')\n }\n }\n }\n\n if (success) {\n ComfyApp.onClipspaceEditorSave()\n this.close()\n this.isOpen = false\n } else {\n this.uiManager.setSaveButtonText('Save')\n this.uiManager.setSaveButtonEnabled(true)\n this.keyboardManager.addListeners()\n }\n }\n\n getMessageBroker() {\n return this.messageBroker\n }\n\n // Helper function to convert a data URL to a Blob object\n private dataURLToBlob(dataURL: string) {\n const parts = dataURL.split(';base64,')\n const contentType = parts[0].split(':')[1]\n const byteString = atob(parts[1])\n const arrayBuffer = new ArrayBuffer(byteString.length)\n const uint8Array = new Uint8Array(arrayBuffer)\n for (let i = 0; i < byteString.length; i++) {\n uint8Array[i] = byteString.charCodeAt(i)\n }\n return new Blob([arrayBuffer], { type: contentType })\n }\n\n private async uploadMask(\n filepath: { filename: string; subfolder: string; type: string },\n formData: FormData,\n retries = 3\n ) {\n if (retries <= 0) {\n throw new Error('Max retries reached')\n return\n }\n await api\n .fetchApi('/upload/mask', {\n method: 'POST',\n body: formData\n })\n .then((response) => {\n if (!response.ok) {\n console.log('Failed to upload mask:', response)\n this.uploadMask(filepath, formData, 2)\n }\n })\n .catch((error) => {\n console.error('Error:', error)\n })\n\n try {\n const selectedIndex = ComfyApp.clipspace?.selectedIndex\n if (ComfyApp.clipspace?.imgs && selectedIndex !== undefined) {\n // Create and set new image\n const newImage = new Image()\n newImage.src = api.apiURL(\n '/view?' +\n new URLSearchParams(filepath).toString() +\n app.getPreviewFormatParam() +\n app.getRandParam()\n )\n ComfyApp.clipspace.imgs[selectedIndex] = newImage\n\n // Update images array if it exists\n if (ComfyApp.clipspace.images) {\n ComfyApp.clipspace.images[selectedIndex] = filepath\n }\n }\n } catch (err) {\n console.warn('Failed to update clipspace image:', err)\n }\n ClipspaceDialog.invalidatePreview()\n }\n}\n\nclass CanvasHistory {\n private maskEditor!: MaskEditorDialog\n private messageBroker!: MessageBroker\n\n private canvas!: HTMLCanvasElement\n private ctx!: CanvasRenderingContext2D\n private states: ImageData[] = []\n private currentStateIndex: number = -1\n private maxStates: number = 20\n private initialized: boolean = false\n\n constructor(maskEditor: MaskEditorDialog, maxStates = 20) {\n this.maskEditor = maskEditor\n this.messageBroker = maskEditor.getMessageBroker()\n this.maxStates = maxStates\n this.createListeners()\n }\n\n private async pullCanvas() {\n this.canvas = await this.messageBroker.pull('maskCanvas')\n this.ctx = await this.messageBroker.pull('maskCtx')\n }\n\n private createListeners() {\n this.messageBroker.subscribe('saveState', () => this.saveState())\n this.messageBroker.subscribe('undo', () => this.undo())\n this.messageBroker.subscribe('redo', () => this.redo())\n }\n\n clearStates() {\n this.states = []\n this.currentStateIndex = -1\n this.initialized = false\n }\n\n async saveInitialState() {\n await this.pullCanvas()\n if (!this.canvas.width || !this.canvas.height) {\n // Canvas not ready yet, defer initialization\n requestAnimationFrame(() => this.saveInitialState())\n return\n }\n\n this.clearStates()\n const state = this.ctx.getImageData(\n 0,\n 0,\n this.canvas.width,\n this.canvas.height\n )\n\n this.states.push(state)\n this.currentStateIndex = 0\n this.initialized = true\n }\n\n saveState() {\n // Ensure we have an initial state\n if (!this.initialized || this.currentStateIndex === -1) {\n this.saveInitialState()\n return\n }\n\n this.states = this.states.slice(0, this.currentStateIndex + 1)\n const state = this.ctx.getImageData(\n 0,\n 0,\n this.canvas.width,\n this.canvas.height\n )\n this.states.push(state)\n this.currentStateIndex++\n\n if (this.states.length > this.maxStates) {\n this.states.shift()\n this.currentStateIndex--\n }\n }\n\n undo() {\n if (this.states.length > 1 && this.currentStateIndex > 0) {\n this.currentStateIndex--\n this.restoreState(this.states[this.currentStateIndex])\n } else {\n alert('No more undo states available')\n }\n }\n\n redo() {\n if (\n this.states.length > 1 &&\n this.currentStateIndex < this.states.length - 1\n ) {\n this.currentStateIndex++\n this.restoreState(this.states[this.currentStateIndex])\n } else {\n alert('No more redo states available')\n }\n }\n\n restoreState(state: ImageData) {\n if (state && this.initialized) {\n this.ctx.putImageData(state, 0, 0)\n }\n }\n}\n\nclass PaintBucketTool {\n maskEditor: MaskEditorDialog\n messageBroker: MessageBroker\n\n private canvas!: HTMLCanvasElement\n private ctx!: CanvasRenderingContext2D\n private width: number | null = null\n private height: number | null = null\n private imageData: ImageData | null = null\n private data: Uint8ClampedArray | null = null\n private tolerance: number = 5\n\n constructor(maskEditor: MaskEditorDialog) {\n this.maskEditor = maskEditor\n this.messageBroker = maskEditor.getMessageBroker()\n this.createListeners()\n this.addPullTopics()\n }\n\n initPaintBucketTool() {\n this.pullCanvas()\n }\n\n private async pullCanvas() {\n this.canvas = await this.messageBroker.pull('maskCanvas')\n this.ctx = await this.messageBroker.pull('maskCtx')\n }\n\n private createListeners() {\n this.messageBroker.subscribe(\n 'setPaintBucketTolerance',\n (tolerance: number) => this.setTolerance(tolerance)\n )\n\n this.messageBroker.subscribe('paintBucketFill', (point: Point) =>\n this.floodFill(point)\n )\n\n this.messageBroker.subscribe('invert', () => this.invertMask())\n }\n\n private addPullTopics() {\n this.messageBroker.createPullTopic(\n 'getTolerance',\n async () => this.tolerance\n )\n }\n\n private getPixel(x: number, y: number): number {\n return this.data![(y * this.width! + x) * 4 + 3]\n }\n\n private setPixel(\n x: number,\n y: number,\n alpha: number,\n color: { r: number; g: number; b: number }\n ): void {\n const index = (y * this.width! + x) * 4\n this.data![index] = color.r // R\n this.data![index + 1] = color.g // G\n this.data![index + 2] = color.b // B\n this.data![index + 3] = alpha // A\n }\n\n private shouldProcessPixel(\n currentAlpha: number,\n targetAlpha: number,\n tolerance: number,\n isFillMode: boolean\n ): boolean {\n if (currentAlpha === -1) return false\n\n if (isFillMode) {\n // Fill mode: process pixels that are empty/similar to target\n return (\n currentAlpha !== 255 &&\n Math.abs(currentAlpha - targetAlpha) <= tolerance\n )\n } else {\n // Erase mode: process pixels that are filled/similar to target\n return (\n currentAlpha === 255 ||\n Math.abs(currentAlpha - targetAlpha) <= tolerance\n )\n }\n }\n\n private async floodFill(point: Point): Promise {\n let startX = Math.floor(point.x)\n let startY = Math.floor(point.y)\n this.width = this.canvas.width\n this.height = this.canvas.height\n\n if (\n startX < 0 ||\n startX >= this.width ||\n startY < 0 ||\n startY >= this.height\n ) {\n return\n }\n\n this.imageData = this.ctx.getImageData(0, 0, this.width, this.height)\n this.data = this.imageData.data\n\n const targetAlpha = this.getPixel(startX, startY)\n const isFillMode = targetAlpha !== 255 // Determine mode based on clicked pixel\n\n if (targetAlpha === -1) return\n\n const maskColor = await this.messageBroker.pull('getMaskColor')\n const stack: Array<[number, number]> = []\n const visited = new Uint8Array(this.width * this.height)\n\n if (\n this.shouldProcessPixel(\n targetAlpha,\n targetAlpha,\n this.tolerance,\n isFillMode\n )\n ) {\n stack.push([startX, startY])\n }\n\n while (stack.length > 0) {\n const [x, y] = stack.pop()!\n const visitedIndex = y * this.width + x\n\n if (visited[visitedIndex]) continue\n\n const currentAlpha = this.getPixel(x, y)\n if (\n !this.shouldProcessPixel(\n currentAlpha,\n targetAlpha,\n this.tolerance,\n isFillMode\n )\n ) {\n continue\n }\n\n visited[visitedIndex] = 1\n // Set alpha to 255 for fill mode, 0 for erase mode\n this.setPixel(x, y, isFillMode ? 255 : 0, maskColor)\n\n // Check neighbors\n const checkNeighbor = (nx: number, ny: number) => {\n if (nx < 0 || nx >= this.width! || ny < 0 || ny >= this.height!) return\n if (!visited[ny * this.width! + nx]) {\n const alpha = this.getPixel(nx, ny)\n if (\n this.shouldProcessPixel(\n alpha,\n targetAlpha,\n this.tolerance,\n isFillMode\n )\n ) {\n stack.push([nx, ny])\n }\n }\n }\n\n checkNeighbor(x - 1, y) // Left\n checkNeighbor(x + 1, y) // Right\n checkNeighbor(x, y - 1) // Up\n checkNeighbor(x, y + 1) // Down\n }\n\n this.ctx.putImageData(this.imageData, 0, 0)\n this.imageData = null\n this.data = null\n }\n\n setTolerance(tolerance: number): void {\n this.tolerance = tolerance\n }\n\n getTolerance(): number {\n return this.tolerance\n }\n\n //invert mask\n\n private invertMask() {\n const imageData = this.ctx.getImageData(\n 0,\n 0,\n this.canvas.width,\n this.canvas.height\n )\n const data = imageData.data\n\n // Find first non-transparent pixel to get mask color\n let maskR = 0,\n maskG = 0,\n maskB = 0\n for (let i = 0; i < data.length; i += 4) {\n if (data[i + 3] > 0) {\n maskR = data[i]\n maskG = data[i + 1]\n maskB = data[i + 2]\n break\n }\n }\n\n // Process each pixel\n for (let i = 0; i < data.length; i += 4) {\n const alpha = data[i + 3]\n // Invert alpha channel (0 becomes 255, 255 becomes 0)\n data[i + 3] = 255 - alpha\n\n // If this was originally transparent (now opaque), fill with mask color\n if (alpha === 0) {\n data[i] = maskR\n data[i + 1] = maskG\n data[i + 2] = maskB\n }\n }\n\n this.ctx.putImageData(imageData, 0, 0)\n this.messageBroker.publish('saveState')\n }\n}\n\nclass ColorSelectTool {\n private maskEditor!: MaskEditorDialog\n private messageBroker!: MessageBroker\n private width: number | null = null\n private height: number | null = null\n private canvas!: HTMLCanvasElement\n private maskCTX!: CanvasRenderingContext2D\n private imageCTX!: CanvasRenderingContext2D\n private maskData: Uint8ClampedArray | null = null\n private imageData: Uint8ClampedArray | null = null\n private tolerance: number = 20\n private livePreview: boolean = false\n private lastPoint: Point | null = null\n private colorComparisonMethod: ColorComparisonMethod =\n ColorComparisonMethod.Simple\n private applyWholeImage: boolean = false\n private maskBoundry: boolean = false\n private maskTolerance: number = 0\n\n constructor(maskEditor: MaskEditorDialog) {\n this.maskEditor = maskEditor\n this.messageBroker = maskEditor.getMessageBroker()\n this.createListeners()\n this.addPullTopics()\n }\n\n async initColorSelectTool() {\n await this.pullCanvas()\n }\n\n private async pullCanvas() {\n this.canvas = await this.messageBroker.pull('imgCanvas')\n this.maskCTX = await this.messageBroker.pull('maskCtx')\n this.imageCTX = await this.messageBroker.pull('imageCtx')\n }\n\n private createListeners() {\n this.messageBroker.subscribe('colorSelectFill', (point: Point) =>\n this.fillColorSelection(point)\n )\n this.messageBroker.subscribe(\n 'setColorSelectTolerance',\n (tolerance: number) => this.setTolerance(tolerance)\n )\n this.messageBroker.subscribe('setLivePreview', (livePreview: boolean) =>\n this.setLivePreview(livePreview)\n )\n this.messageBroker.subscribe(\n 'setColorComparisonMethod',\n (method: ColorComparisonMethod) => this.setComparisonMethod(method)\n )\n\n this.messageBroker.subscribe('clearLastPoint', () => this.clearLastPoint())\n\n this.messageBroker.subscribe('setWholeImage', (applyWholeImage: boolean) =>\n this.setApplyWholeImage(applyWholeImage)\n )\n\n this.messageBroker.subscribe('setMaskBoundary', (maskBoundry: boolean) =>\n this.setMaskBoundary(maskBoundry)\n )\n\n this.messageBroker.subscribe('setMaskTolerance', (maskTolerance: number) =>\n this.setMaskTolerance(maskTolerance)\n )\n }\n\n private async addPullTopics() {\n this.messageBroker.createPullTopic(\n 'getLivePreview',\n async () => this.livePreview\n )\n }\n\n private getPixel(x: number, y: number): { r: number; g: number; b: number } {\n const index = (y * this.width! + x) * 4\n return {\n r: this.imageData![index],\n g: this.imageData![index + 1],\n b: this.imageData![index + 2]\n }\n }\n\n private getMaskAlpha(x: number, y: number): number {\n return this.maskData![(y * this.width! + x) * 4 + 3]\n }\n\n private isPixelInRange(\n pixel: { r: number; g: number; b: number },\n target: { r: number; g: number; b: number }\n ): boolean {\n switch (this.colorComparisonMethod) {\n case ColorComparisonMethod.Simple:\n return this.isPixelInRangeSimple(pixel, target)\n case ColorComparisonMethod.HSL:\n return this.isPixelInRangeHSL(pixel, target)\n case ColorComparisonMethod.LAB:\n return this.isPixelInRangeLab(pixel, target)\n default:\n return this.isPixelInRangeSimple(pixel, target)\n }\n }\n\n private isPixelInRangeSimple(\n pixel: { r: number; g: number; b: number },\n target: { r: number; g: number; b: number }\n ): boolean {\n //calculate the euclidean distance between the two colors\n const distance = Math.sqrt(\n Math.pow(pixel.r - target.r, 2) +\n Math.pow(pixel.g - target.g, 2) +\n Math.pow(pixel.b - target.b, 2)\n )\n return distance <= this.tolerance\n }\n\n private isPixelInRangeHSL(\n pixel: { r: number; g: number; b: number },\n target: { r: number; g: number; b: number }\n ): boolean {\n // Convert RGB to HSL\n const pixelHSL = this.rgbToHSL(pixel.r, pixel.g, pixel.b)\n const targetHSL = this.rgbToHSL(target.r, target.g, target.b)\n\n // Compare mainly hue and saturation, be more lenient with lightness\n const hueDiff = Math.abs(pixelHSL.h - targetHSL.h)\n const satDiff = Math.abs(pixelHSL.s - targetHSL.s)\n const lightDiff = Math.abs(pixelHSL.l - targetHSL.l)\n\n const distance = Math.sqrt(\n Math.pow((hueDiff / 360) * 255, 2) +\n Math.pow((satDiff / 100) * 255, 2) +\n Math.pow((lightDiff / 100) * 255, 2)\n )\n return distance <= this.tolerance\n }\n\n private rgbToHSL(\n r: number,\n g: number,\n b: number\n ): { h: number; s: number; l: number } {\n r /= 255\n g /= 255\n b /= 255\n\n const max = Math.max(r, g, b)\n const min = Math.min(r, g, b)\n let h = 0,\n s = 0,\n l = (max + min) / 2\n\n if (max !== min) {\n const d = max - min\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min)\n\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0)\n break\n case g:\n h = (b - r) / d + 2\n break\n case b:\n h = (r - g) / d + 4\n break\n }\n h /= 6\n }\n\n return {\n h: h * 360,\n s: s * 100,\n l: l * 100\n }\n }\n\n private isPixelInRangeLab(\n pixel: { r: number; g: number; b: number },\n target: { r: number; g: number; b: number }\n ): boolean {\n const pixelLab = this.rgbToLab(pixel)\n const targetLab = this.rgbToLab(target)\n\n // Calculate Delta E (CIE76 formula)\n const deltaE = Math.sqrt(\n Math.pow(pixelLab.l - targetLab.l, 2) +\n Math.pow(pixelLab.a - targetLab.a, 2) +\n Math.pow(pixelLab.b - targetLab.b, 2)\n )\n\n const normalizedDeltaE = (deltaE / 100) * 255\n return normalizedDeltaE <= this.tolerance\n }\n\n private rgbToLab(rgb: { r: number; g: number; b: number }): {\n l: number\n a: number\n b: number\n } {\n // First convert RGB to XYZ\n let r = rgb.r / 255\n let g = rgb.g / 255\n let b = rgb.b / 255\n\n r = r > 0.04045 ? Math.pow((r + 0.055) / 1.055, 2.4) : r / 12.92\n g = g > 0.04045 ? Math.pow((g + 0.055) / 1.055, 2.4) : g / 12.92\n b = b > 0.04045 ? Math.pow((b + 0.055) / 1.055, 2.4) : b / 12.92\n\n r *= 100\n g *= 100\n b *= 100\n\n const x = r * 0.4124 + g * 0.3576 + b * 0.1805\n const y = r * 0.2126 + g * 0.7152 + b * 0.0722\n const z = r * 0.0193 + g * 0.1192 + b * 0.9505\n\n // Then XYZ to Lab\n const xn = 95.047\n const yn = 100.0\n const zn = 108.883\n\n const xyz = [x / xn, y / yn, z / zn]\n for (let i = 0; i < xyz.length; i++) {\n xyz[i] =\n xyz[i] > 0.008856 ? Math.pow(xyz[i], 1 / 3) : 7.787 * xyz[i] + 16 / 116\n }\n\n return {\n l: 116 * xyz[1] - 16,\n a: 500 * (xyz[0] - xyz[1]),\n b: 200 * (xyz[1] - xyz[2])\n }\n }\n\n private setPixel(\n x: number,\n y: number,\n alpha: number,\n color: { r: number; g: number; b: number }\n ): void {\n const index = (y * this.width! + x) * 4\n this.maskData![index] = color.r // R\n this.maskData![index + 1] = color.g // G\n this.maskData![index + 2] = color.b // B\n this.maskData![index + 3] = alpha // A\n }\n\n async fillColorSelection(point: Point) {\n this.width = this.canvas.width\n this.height = this.canvas.height\n this.lastPoint = point\n\n // Get image data\n const maskData = this.maskCTX.getImageData(0, 0, this.width, this.height)\n this.maskData = maskData.data\n this.imageData = this.imageCTX.getImageData(\n 0,\n 0,\n this.width,\n this.height\n ).data\n\n if (this.applyWholeImage) {\n // Process entire image\n const targetPixel = this.getPixel(\n Math.floor(point.x),\n Math.floor(point.y)\n )\n const maskColor = await this.messageBroker.pull('getMaskColor')\n\n // Use TypedArrays for better performance\n const width = this.width!\n const height = this.height!\n\n // Process in chunks for better performance\n const CHUNK_SIZE = 10000\n for (let i = 0; i < width * height; i += CHUNK_SIZE) {\n const endIndex = Math.min(i + CHUNK_SIZE, width * height)\n for (let pixelIndex = i; pixelIndex < endIndex; pixelIndex++) {\n const x = pixelIndex % width\n const y = Math.floor(pixelIndex / width)\n if (this.isPixelInRange(this.getPixel(x, y), targetPixel)) {\n this.setPixel(x, y, 255, maskColor)\n }\n }\n // Allow UI updates between chunks\n await new Promise((resolve) => setTimeout(resolve, 0))\n }\n } else {\n // Original flood fill logic\n let startX = Math.floor(point.x)\n let startY = Math.floor(point.y)\n\n if (\n startX < 0 ||\n startX >= this.width ||\n startY < 0 ||\n startY >= this.height\n ) {\n return\n }\n\n const pixel = this.getPixel(startX, startY)\n\n const stack: Array<[number, number]> = []\n const visited = new Uint8Array(this.width * this.height)\n\n stack.push([startX, startY])\n const maskColor = await this.messageBroker.pull('getMaskColor')\n\n while (stack.length > 0) {\n const [x, y] = stack.pop()!\n const visitedIndex = y * this.width + x\n\n if (\n visited[visitedIndex] ||\n !this.isPixelInRange(this.getPixel(x, y), pixel)\n ) {\n continue\n }\n\n visited[visitedIndex] = 1\n this.setPixel(x, y, 255, maskColor)\n\n // Inline direction checks for better performance\n if (\n x > 0 &&\n !visited[y * this.width + (x - 1)] &&\n this.isPixelInRange(this.getPixel(x - 1, y), pixel)\n ) {\n if (\n !this.maskBoundry ||\n 255 - this.getMaskAlpha(x - 1, y) > this.maskTolerance\n ) {\n stack.push([x - 1, y])\n }\n }\n if (\n x < this.width - 1 &&\n !visited[y * this.width + (x + 1)] &&\n this.isPixelInRange(this.getPixel(x + 1, y), pixel)\n ) {\n if (\n !this.maskBoundry ||\n 255 - this.getMaskAlpha(x + 1, y) > this.maskTolerance\n ) {\n stack.push([x + 1, y])\n }\n }\n if (\n y > 0 &&\n !visited[(y - 1) * this.width + x] &&\n this.isPixelInRange(this.getPixel(x, y - 1), pixel)\n ) {\n if (\n !this.maskBoundry ||\n 255 - this.getMaskAlpha(x, y - 1) > this.maskTolerance\n ) {\n stack.push([x, y - 1])\n }\n }\n if (\n y < this.height - 1 &&\n !visited[(y + 1) * this.width + x] &&\n this.isPixelInRange(this.getPixel(x, y + 1), pixel)\n ) {\n if (\n !this.maskBoundry ||\n 255 - this.getMaskAlpha(x, y + 1) > this.maskTolerance\n ) {\n stack.push([x, y + 1])\n }\n }\n }\n }\n\n this.maskCTX.putImageData(maskData, 0, 0)\n this.messageBroker.publish('saveState')\n this.maskData = null\n this.imageData = null\n }\n setTolerance(tolerance: number): void {\n this.tolerance = tolerance\n\n if (this.lastPoint && this.livePreview) {\n this.messageBroker.publish('undo')\n this.fillColorSelection(this.lastPoint)\n }\n }\n\n setLivePreview(livePreview: boolean): void {\n this.livePreview = livePreview\n }\n\n setComparisonMethod(method: ColorComparisonMethod): void {\n this.colorComparisonMethod = method\n\n if (this.lastPoint && this.livePreview) {\n this.messageBroker.publish('undo')\n this.fillColorSelection(this.lastPoint)\n }\n }\n\n clearLastPoint() {\n this.lastPoint = null\n }\n\n setApplyWholeImage(applyWholeImage: boolean): void {\n this.applyWholeImage = applyWholeImage\n }\n\n setMaskBoundary(maskBoundry: boolean): void {\n this.maskBoundry = maskBoundry\n }\n\n setMaskTolerance(maskTolerance: number): void {\n this.maskTolerance = maskTolerance\n }\n}\n\nclass BrushTool {\n brushSettings: Brush //this saves the current brush settings\n maskBlendMode: MaskBlendMode\n\n isDrawing: boolean = false\n isDrawingLine: boolean = false\n lineStartPoint: Point | null = null\n smoothingPrecision: number = 10\n smoothingCordsArray: Point[] = []\n smoothingLastDrawTime!: Date\n maskCtx: CanvasRenderingContext2D | null = null\n initialDraw: boolean = true\n\n brushStrokeCanvas: HTMLCanvasElement | null = null\n brushStrokeCtx: CanvasRenderingContext2D | null = null\n\n //brush adjustment\n isBrushAdjusting: boolean = false\n brushPreviewGradient: HTMLElement | null = null\n initialPoint: Point | null = null\n useDominantAxis: boolean = false\n brushAdjustmentSpeed: number = 1.0\n\n maskEditor: MaskEditorDialog\n messageBroker: MessageBroker\n\n constructor(maskEditor: MaskEditorDialog) {\n this.maskEditor = maskEditor\n this.messageBroker = maskEditor.getMessageBroker()\n this.createListeners()\n this.addPullTopics()\n\n this.useDominantAxis = app.extensionManager.setting.get(\n 'Comfy.MaskEditor.UseDominantAxis'\n )\n this.brushAdjustmentSpeed = app.extensionManager.setting.get(\n 'Comfy.MaskEditor.BrushAdjustmentSpeed'\n )\n\n this.brushSettings = {\n size: 10,\n opacity: 100,\n hardness: 1,\n type: BrushShape.Arc\n }\n this.maskBlendMode = MaskBlendMode.Black\n }\n\n private createListeners() {\n //setters\n this.messageBroker.subscribe('setBrushSize', (size: number) =>\n this.setBrushSize(size)\n )\n this.messageBroker.subscribe('setBrushOpacity', (opacity: number) =>\n this.setBrushOpacity(opacity)\n )\n this.messageBroker.subscribe('setBrushHardness', (hardness: number) =>\n this.setBrushHardness(hardness)\n )\n this.messageBroker.subscribe('setBrushShape', (type: BrushShape) =>\n this.setBrushType(type)\n )\n this.messageBroker.subscribe(\n 'setBrushSmoothingPrecision',\n (precision: number) => this.setBrushSmoothingPrecision(precision)\n )\n //brush adjustment\n this.messageBroker.subscribe(\n 'brushAdjustmentStart',\n (event: PointerEvent) => this.startBrushAdjustment(event)\n )\n this.messageBroker.subscribe('brushAdjustment', (event: PointerEvent) =>\n this.handleBrushAdjustment(event)\n )\n //drawing\n this.messageBroker.subscribe('drawStart', (event: PointerEvent) =>\n this.startDrawing(event)\n )\n this.messageBroker.subscribe('draw', (event: PointerEvent) =>\n this.handleDrawing(event)\n )\n this.messageBroker.subscribe('drawEnd', (event: PointerEvent) =>\n this.drawEnd(event)\n )\n }\n\n private addPullTopics() {\n this.messageBroker.createPullTopic(\n 'brushSize',\n async () => this.brushSettings.size\n )\n this.messageBroker.createPullTopic(\n 'brushOpacity',\n async () => this.brushSettings.opacity\n )\n this.messageBroker.createPullTopic(\n 'brushHardness',\n async () => this.brushSettings.hardness\n )\n this.messageBroker.createPullTopic(\n 'brushType',\n async () => this.brushSettings.type\n )\n this.messageBroker.createPullTopic(\n 'maskBlendMode',\n async () => this.maskBlendMode\n )\n this.messageBroker.createPullTopic(\n 'brushSettings',\n async () => this.brushSettings\n )\n }\n\n private async createBrushStrokeCanvas() {\n if (this.brushStrokeCanvas !== null) {\n return\n }\n\n const maskCanvas = await this.messageBroker.pull('maskCanvas')\n const canvas = document.createElement('canvas')\n canvas.width = maskCanvas.width\n canvas.height = maskCanvas.height\n\n this.brushStrokeCanvas = canvas\n this.brushStrokeCtx = canvas.getContext('2d')!\n }\n\n private async startDrawing(event: PointerEvent) {\n this.isDrawing = true\n let compositionOp: CompositionOperation\n let currentTool = await this.messageBroker.pull('currentTool')\n let coords = { x: event.offsetX, y: event.offsetY }\n let coords_canvas = await this.messageBroker.pull('screenToCanvas', coords)\n await this.createBrushStrokeCanvas()\n\n //set drawing mode\n if (currentTool === Tools.Eraser || event.buttons == 2) {\n compositionOp = CompositionOperation.DestinationOut //eraser\n } else {\n compositionOp = CompositionOperation.SourceOver //pen\n }\n\n //check if user wants to draw line or free draw\n if (event.shiftKey && this.lineStartPoint) {\n this.isDrawingLine = true\n this.drawLine(this.lineStartPoint, coords_canvas, compositionOp)\n } else {\n this.isDrawingLine = false\n this.init_shape(compositionOp)\n this.draw_shape(coords_canvas)\n }\n this.lineStartPoint = coords_canvas\n this.smoothingCordsArray = [coords_canvas] //used to smooth the drawing line\n this.smoothingLastDrawTime = new Date()\n }\n\n private async handleDrawing(event: PointerEvent) {\n var diff = performance.now() - this.smoothingLastDrawTime.getTime()\n let coords = { x: event.offsetX, y: event.offsetY }\n let coords_canvas = await this.messageBroker.pull('screenToCanvas', coords)\n let currentTool = await this.messageBroker.pull('currentTool')\n\n if (diff > 20 && !this.isDrawing)\n requestAnimationFrame(() => {\n this.init_shape(CompositionOperation.SourceOver)\n this.draw_shape(coords_canvas)\n this.smoothingCordsArray.push(coords_canvas)\n })\n else\n requestAnimationFrame(() => {\n if (currentTool === Tools.Eraser || event.buttons == 2) {\n this.init_shape(CompositionOperation.DestinationOut)\n } else {\n this.init_shape(CompositionOperation.SourceOver)\n }\n\n //use drawWithSmoothing for better performance or change step in drawWithBetterSmoothing\n this.drawWithBetterSmoothing(coords_canvas)\n })\n\n this.smoothingLastDrawTime = new Date()\n }\n\n private async drawEnd(event: PointerEvent) {\n const coords = { x: event.offsetX, y: event.offsetY }\n const coords_canvas = await this.messageBroker.pull(\n 'screenToCanvas',\n coords\n )\n\n if (this.isDrawing) {\n this.isDrawing = false\n this.messageBroker.publish('saveState')\n this.lineStartPoint = coords_canvas\n this.initialDraw = true\n }\n }\n\n private drawWithBetterSmoothing(point: Point) {\n // Add current point to the smoothing array\n if (!this.smoothingCordsArray) {\n this.smoothingCordsArray = []\n }\n const opacityConstant = 1 / (1 + Math.exp(3))\n const interpolatedOpacity =\n 1 / (1 + Math.exp(-6 * (this.brushSettings.opacity - 0.5))) -\n opacityConstant\n\n this.smoothingCordsArray.push(point)\n\n // Keep a moving window of points for the spline\n const POINTS_NR = 5\n if (this.smoothingCordsArray.length < POINTS_NR) {\n return\n }\n\n // Calculate total length more efficiently\n let totalLength = 0\n const points = this.smoothingCordsArray\n const len = points.length - 1\n\n // Use local variables for better performance\n let dx, dy\n for (let i = 0; i < len; i++) {\n dx = points[i + 1].x - points[i].x\n dy = points[i + 1].y - points[i].y\n totalLength += Math.sqrt(dx * dx + dy * dy)\n }\n\n const distanceBetweenPoints =\n (this.brushSettings.size / this.smoothingPrecision) * 6\n const stepNr = Math.ceil(totalLength / distanceBetweenPoints)\n\n let interpolatedPoints = points\n\n if (stepNr > 0) {\n //this calculation needs to be improved\n interpolatedPoints = this.generateEquidistantPoints(\n this.smoothingCordsArray,\n distanceBetweenPoints // Distance between interpolated points\n )\n }\n\n if (!this.initialDraw) {\n // Remove the first 3 points from the array to avoid drawing the same points twice\n const spliceIndex = interpolatedPoints.findIndex(\n (point) =>\n point.x === this.smoothingCordsArray[2].x &&\n point.y === this.smoothingCordsArray[2].y\n )\n\n if (spliceIndex !== -1) {\n interpolatedPoints = interpolatedPoints.slice(spliceIndex + 1)\n }\n }\n\n // Draw all interpolated points\n for (const point of interpolatedPoints) {\n this.draw_shape(point, interpolatedOpacity)\n }\n\n if (!this.initialDraw) {\n // initially draw on all 5 points, then remove the first 3 points to go into 2 new, 3 old points cycle\n this.smoothingCordsArray = this.smoothingCordsArray.slice(2)\n } else {\n this.initialDraw = false\n }\n }\n\n private async drawLine(\n p1: Point,\n p2: Point,\n compositionOp: CompositionOperation\n ) {\n const brush_size = await this.messageBroker.pull('brushSize')\n const distance = Math.sqrt((p2.x - p1.x) ** 2 + (p2.y - p1.y) ** 2)\n const steps = Math.ceil(\n distance / ((brush_size / this.smoothingPrecision) * 4)\n ) // Adjust for smoother lines\n const interpolatedOpacity =\n 1 / (1 + Math.exp(-6 * (this.brushSettings.opacity - 0.5))) -\n 1 / (1 + Math.exp(3))\n this.init_shape(compositionOp)\n\n for (let i = 0; i <= steps; i++) {\n const t = i / steps\n const x = p1.x + (p2.x - p1.x) * t\n const y = p1.y + (p2.y - p1.y) * t\n const point = { x: x, y: y }\n this.draw_shape(point, interpolatedOpacity)\n }\n }\n\n //brush adjustment\n\n private async startBrushAdjustment(event: PointerEvent) {\n event.preventDefault()\n const coords = { x: event.offsetX, y: event.offsetY }\n let coords_canvas = await this.messageBroker.pull('screenToCanvas', coords)\n this.messageBroker.publish('setBrushPreviewGradientVisibility', true)\n this.initialPoint = coords_canvas\n this.isBrushAdjusting = true\n return\n }\n\n private async handleBrushAdjustment(event: PointerEvent) {\n const coords = { x: event.offsetX, y: event.offsetY }\n const brushDeadZone = 5\n let coords_canvas = await this.messageBroker.pull('screenToCanvas', coords)\n\n const delta_x = coords_canvas.x - this.initialPoint!.x\n const delta_y = coords_canvas.y - this.initialPoint!.y\n\n const effectiveDeltaX = Math.abs(delta_x) < brushDeadZone ? 0 : delta_x\n const effectiveDeltaY = Math.abs(delta_y) < brushDeadZone ? 0 : delta_y\n\n // New dominant axis logic\n let finalDeltaX = effectiveDeltaX\n let finalDeltaY = effectiveDeltaY\n\n console.log(this.useDominantAxis)\n\n if (this.useDominantAxis) {\n // New setting flag\n const ratio = Math.abs(effectiveDeltaX) / Math.abs(effectiveDeltaY)\n const threshold = 2.0 // Configurable threshold\n\n if (ratio > threshold) {\n finalDeltaY = 0 // X is dominant\n } else if (ratio < 1 / threshold) {\n finalDeltaX = 0 // Y is dominant\n }\n }\n\n const cappedDeltaX = Math.max(-100, Math.min(100, finalDeltaX))\n const cappedDeltaY = Math.max(-100, Math.min(100, finalDeltaY))\n\n // Rest of the function remains the same\n const sizeDelta = cappedDeltaX / 40\n const hardnessDelta = cappedDeltaY / 800\n\n const newSize = Math.max(\n 1,\n Math.min(\n 100,\n this.brushSettings.size! +\n (cappedDeltaX / 35) * this.brushAdjustmentSpeed\n )\n )\n\n const newHardness = Math.max(\n 0,\n Math.min(\n 1,\n this.brushSettings!.hardness -\n (cappedDeltaY / 4000) * this.brushAdjustmentSpeed\n )\n )\n\n this.brushSettings.size = newSize\n this.brushSettings.hardness = newHardness\n\n this.messageBroker.publish('updateBrushPreview')\n }\n\n //helper functions\n\n private async draw_shape(point: Point, overrideOpacity?: number) {\n const brushSettings: Brush = this.brushSettings\n const maskCtx = this.maskCtx || (await this.messageBroker.pull('maskCtx'))\n const brushType = await this.messageBroker.pull('brushType')\n const maskColor = await this.messageBroker.pull('getMaskColor')\n const size = brushSettings.size\n const sliderOpacity = brushSettings.opacity\n const opacity =\n overrideOpacity == undefined ? sliderOpacity : overrideOpacity\n const hardness = brushSettings.hardness\n\n const x = point.x\n const y = point.y\n\n // Extend the gradient radius beyond the brush size\n const extendedSize = size * (2 - hardness)\n\n let gradient = maskCtx.createRadialGradient(x, y, 0, x, y, extendedSize)\n\n const isErasing = maskCtx.globalCompositeOperation === 'destination-out'\n\n if (hardness === 1) {\n console.log(sliderOpacity, opacity)\n gradient.addColorStop(\n 0,\n isErasing\n ? `rgba(255, 255, 255, ${opacity})`\n : `rgba(${maskColor.r}, ${maskColor.g}, ${maskColor.b}, ${opacity})`\n )\n gradient.addColorStop(\n 1,\n isErasing\n ? `rgba(255, 255, 255, ${opacity})`\n : `rgba(${maskColor.r}, ${maskColor.g}, ${maskColor.b}, ${opacity})`\n )\n } else {\n let softness = 1 - hardness\n let innerStop = Math.max(0, hardness - softness)\n let outerStop = size / extendedSize\n\n if (isErasing) {\n gradient.addColorStop(0, `rgba(255, 255, 255, ${opacity})`)\n gradient.addColorStop(innerStop, `rgba(255, 255, 255, ${opacity})`)\n gradient.addColorStop(outerStop, `rgba(255, 255, 255, ${opacity / 2})`)\n gradient.addColorStop(1, `rgba(255, 255, 255, 0)`)\n } else {\n gradient.addColorStop(\n 0,\n `rgba(${maskColor.r}, ${maskColor.g}, ${maskColor.b}, ${opacity})`\n )\n gradient.addColorStop(\n innerStop,\n `rgba(${maskColor.r}, ${maskColor.g}, ${maskColor.b}, ${opacity})`\n )\n gradient.addColorStop(\n outerStop,\n `rgba(${maskColor.r}, ${maskColor.g}, ${maskColor.b}, ${opacity / 2})`\n )\n gradient.addColorStop(\n 1,\n `rgba(${maskColor.r}, ${maskColor.g}, ${maskColor.b}, 0)`\n )\n }\n }\n\n maskCtx.fillStyle = gradient\n maskCtx.beginPath()\n if (brushType === BrushShape.Rect) {\n maskCtx.rect(\n x - extendedSize,\n y - extendedSize,\n extendedSize * 2,\n extendedSize * 2\n )\n } else {\n maskCtx.arc(x, y, extendedSize, 0, Math.PI * 2, false)\n }\n maskCtx.fill()\n }\n\n private async init_shape(compositionOperation: CompositionOperation) {\n const maskBlendMode = await this.messageBroker.pull('maskBlendMode')\n const maskCtx = this.maskCtx || (await this.messageBroker.pull('maskCtx'))\n maskCtx.beginPath()\n if (compositionOperation == CompositionOperation.SourceOver) {\n maskCtx.fillStyle = maskBlendMode\n maskCtx.globalCompositeOperation = CompositionOperation.SourceOver\n } else if (compositionOperation == CompositionOperation.DestinationOut) {\n maskCtx.globalCompositeOperation = CompositionOperation.DestinationOut\n }\n }\n\n private calculateCubicSplinePoints(\n points: Point[],\n numSegments: number = 10\n ): Point[] {\n const result: Point[] = []\n\n const xCoords = points.map((p) => p.x)\n const yCoords = points.map((p) => p.y)\n\n const xDerivatives = this.calculateSplineCoefficients(xCoords)\n const yDerivatives = this.calculateSplineCoefficients(yCoords)\n\n // Generate points along the spline\n for (let i = 0; i < points.length - 1; i++) {\n const p0 = points[i]\n const p1 = points[i + 1]\n const d0x = xDerivatives[i]\n const d1x = xDerivatives[i + 1]\n const d0y = yDerivatives[i]\n const d1y = yDerivatives[i + 1]\n\n for (let t = 0; t <= numSegments; t++) {\n const t_normalized = t / numSegments\n\n // Hermite basis functions\n const h00 = 2 * t_normalized ** 3 - 3 * t_normalized ** 2 + 1\n const h10 = t_normalized ** 3 - 2 * t_normalized ** 2 + t_normalized\n const h01 = -2 * t_normalized ** 3 + 3 * t_normalized ** 2\n const h11 = t_normalized ** 3 - t_normalized ** 2\n\n const x = h00 * p0.x + h10 * d0x + h01 * p1.x + h11 * d1x\n const y = h00 * p0.y + h10 * d0y + h01 * p1.y + h11 * d1y\n\n result.push({ x, y })\n }\n }\n\n return result\n }\n\n private generateEvenlyDistributedPoints(\n splinePoints: Point[],\n numPoints: number\n ): Point[] {\n const distances: number[] = [0]\n for (let i = 1; i < splinePoints.length; i++) {\n const dx = splinePoints[i].x - splinePoints[i - 1].x\n const dy = splinePoints[i].y - splinePoints[i - 1].y\n const dist = Math.hypot(dx, dy)\n distances.push(distances[i - 1] + dist)\n }\n\n const totalLength = distances[distances.length - 1]\n const interval = totalLength / (numPoints - 1)\n const result: Point[] = []\n let currentIndex = 0\n\n for (let i = 0; i < numPoints; i++) {\n const targetDistance = i * interval\n\n while (\n currentIndex < distances.length - 1 &&\n distances[currentIndex + 1] < targetDistance\n ) {\n currentIndex++\n }\n\n const t =\n (targetDistance - distances[currentIndex]) /\n (distances[currentIndex + 1] - distances[currentIndex])\n\n const x =\n splinePoints[currentIndex].x +\n t * (splinePoints[currentIndex + 1].x - splinePoints[currentIndex].x)\n const y =\n splinePoints[currentIndex].y +\n t * (splinePoints[currentIndex + 1].y - splinePoints[currentIndex].y)\n\n result.push({ x, y })\n }\n\n return result\n }\n\n private generateEquidistantPoints(\n points: Point[],\n distance: number\n ): Point[] {\n const result: Point[] = []\n const cumulativeDistances: number[] = [0]\n\n // Calculate cumulative distances between points\n for (let i = 1; i < points.length; i++) {\n const dx = points[i].x - points[i - 1].x\n const dy = points[i].y - points[i - 1].y\n const dist = Math.hypot(dx, dy)\n cumulativeDistances[i] = cumulativeDistances[i - 1] + dist\n }\n\n const totalLength = cumulativeDistances[cumulativeDistances.length - 1]\n const numPoints = Math.floor(totalLength / distance)\n\n for (let i = 0; i <= numPoints; i++) {\n const targetDistance = i * distance\n let idx = 0\n\n // Find the segment where the target distance falls\n while (\n idx < cumulativeDistances.length - 1 &&\n cumulativeDistances[idx + 1] < targetDistance\n ) {\n idx++\n }\n\n if (idx >= points.length - 1) {\n result.push(points[points.length - 1])\n continue\n }\n\n const d0 = cumulativeDistances[idx]\n const d1 = cumulativeDistances[idx + 1]\n const t = (targetDistance - d0) / (d1 - d0)\n\n const x = points[idx].x + t * (points[idx + 1].x - points[idx].x)\n const y = points[idx].y + t * (points[idx + 1].y - points[idx].y)\n\n result.push({ x, y })\n }\n\n return result\n }\n\n private calculateSplineCoefficients(values: number[]): number[] {\n const n = values.length - 1\n const matrix: number[][] = new Array(n + 1)\n .fill(0)\n .map(() => new Array(n + 1).fill(0))\n const rhs: number[] = new Array(n + 1).fill(0)\n\n // Set up tridiagonal matrix\n for (let i = 1; i < n; i++) {\n matrix[i][i - 1] = 1\n matrix[i][i] = 4\n matrix[i][i + 1] = 1\n rhs[i] = 3 * (values[i + 1] - values[i - 1])\n }\n\n // Set boundary conditions (natural spline)\n matrix[0][0] = 2\n matrix[0][1] = 1\n matrix[n][n - 1] = 1\n matrix[n][n] = 2\n rhs[0] = 3 * (values[1] - values[0])\n rhs[n] = 3 * (values[n] - values[n - 1])\n\n // Solve tridiagonal system using Thomas algorithm\n for (let i = 1; i <= n; i++) {\n const m = matrix[i][i - 1] / matrix[i - 1][i - 1]\n matrix[i][i] -= m * matrix[i - 1][i]\n rhs[i] -= m * rhs[i - 1]\n }\n\n const solution: number[] = new Array(n + 1)\n solution[n] = rhs[n] / matrix[n][n]\n for (let i = n - 1; i >= 0; i--) {\n solution[i] = (rhs[i] - matrix[i][i + 1] * solution[i + 1]) / matrix[i][i]\n }\n\n return solution\n }\n\n private setBrushSize(size: number) {\n this.brushSettings.size = size\n }\n\n private setBrushOpacity(opacity: number) {\n this.brushSettings.opacity = opacity\n }\n\n private setBrushHardness(hardness: number) {\n this.brushSettings.hardness = hardness\n }\n\n private setBrushType(type: BrushShape) {\n this.brushSettings.type = type\n }\n\n private setBrushSmoothingPrecision(precision: number) {\n //console.log('precision', precision)\n this.smoothingPrecision = precision\n }\n}\n\nclass UIManager {\n private rootElement: HTMLElement\n private brush!: HTMLDivElement\n private brushPreviewGradient!: HTMLDivElement\n private maskCtx!: CanvasRenderingContext2D\n private imageCtx!: CanvasRenderingContext2D\n private maskCanvas!: HTMLCanvasElement\n private imgCanvas!: HTMLCanvasElement\n private brushSettingsHTML!: HTMLDivElement\n private paintBucketSettingsHTML!: HTMLDivElement\n private colorSelectSettingsHTML!: HTMLDivElement\n private maskOpacitySlider!: HTMLInputElement\n private brushHardnessSlider!: HTMLInputElement\n private brushSizeSlider!: HTMLInputElement\n private brushOpacitySlider!: HTMLInputElement\n private sidebarImage!: HTMLImageElement\n private saveButton!: HTMLButtonElement\n private toolPanel!: HTMLDivElement\n private sidePanel!: HTMLDivElement\n private pointerZone!: HTMLDivElement\n private canvasBackground!: HTMLDivElement\n private canvasContainer!: HTMLDivElement\n private image!: HTMLImageElement\n private imageURL!: URL\n private darkMode: boolean = true\n\n private maskEditor: MaskEditorDialog\n private messageBroker: MessageBroker\n\n private mask_opacity: number = 1.0\n private maskBlendMode: MaskBlendMode = MaskBlendMode.Black\n\n private zoomTextHTML!: HTMLSpanElement\n private dimensionsTextHTML!: HTMLSpanElement\n\n constructor(rootElement: HTMLElement, maskEditor: MaskEditorDialog) {\n this.rootElement = rootElement\n this.maskEditor = maskEditor\n this.messageBroker = maskEditor.getMessageBroker()\n this.addListeners()\n this.addPullTopics()\n }\n\n addListeners() {\n this.messageBroker.subscribe('updateBrushPreview', async () =>\n this.updateBrushPreview()\n )\n\n this.messageBroker.subscribe(\n 'paintBucketCursor',\n (isPaintBucket: boolean) => this.handlePaintBucketCursor(isPaintBucket)\n )\n\n this.messageBroker.subscribe('panCursor', (isPan: boolean) =>\n this.handlePanCursor(isPan)\n )\n\n this.messageBroker.subscribe('setBrushVisibility', (isVisible: boolean) =>\n this.setBrushVisibility(isVisible)\n )\n\n this.messageBroker.subscribe(\n 'setBrushPreviewGradientVisibility',\n (isVisible: boolean) => this.setBrushPreviewGradientVisibility(isVisible)\n )\n\n this.messageBroker.subscribe('updateCursor', () => this.updateCursor())\n\n this.messageBroker.subscribe('setZoomText', (text: string) =>\n this.setZoomText(text)\n )\n }\n\n addPullTopics() {\n this.messageBroker.createPullTopic(\n 'maskCanvas',\n async () => this.maskCanvas\n )\n this.messageBroker.createPullTopic('maskCtx', async () => this.maskCtx)\n this.messageBroker.createPullTopic('imageCtx', async () => this.imageCtx)\n this.messageBroker.createPullTopic('imgCanvas', async () => this.imgCanvas)\n this.messageBroker.createPullTopic(\n 'screenToCanvas',\n async (coords: Point) => this.screenToCanvas(coords)\n )\n this.messageBroker.createPullTopic(\n 'getCanvasContainer',\n async () => this.canvasContainer\n )\n this.messageBroker.createPullTopic('getMaskColor', async () =>\n this.getMaskColor()\n )\n }\n\n async setlayout() {\n this.detectLightMode()\n var user_ui = await this.createUI()\n var canvasContainer = this.createBackgroundUI()\n\n var brush = await this.createBrush()\n await this.setBrushBorderRadius()\n this.setBrushOpacity(1)\n this.rootElement.appendChild(canvasContainer)\n this.rootElement.appendChild(user_ui)\n document.body.appendChild(brush)\n }\n\n private async createUI() {\n var ui_container = document.createElement('div')\n ui_container.id = 'maskEditor_uiContainer'\n\n var top_bar = await this.createTopBar()\n\n var ui_horizontal_container = document.createElement('div')\n ui_horizontal_container.id = 'maskEditor_uiHorizontalContainer'\n\n var side_panel_container = await this.createSidePanel()\n\n var pointer_zone = this.createPointerZone()\n\n var tool_panel = this.createToolPanel()\n\n ui_horizontal_container.appendChild(tool_panel)\n ui_horizontal_container.appendChild(pointer_zone)\n ui_horizontal_container.appendChild(side_panel_container)\n\n ui_container.appendChild(top_bar)\n ui_container.appendChild(ui_horizontal_container)\n\n return ui_container\n }\n\n private createBackgroundUI() {\n const canvasContainer = document.createElement('div')\n canvasContainer.id = 'maskEditorCanvasContainer'\n\n const imgCanvas = document.createElement('canvas')\n imgCanvas.id = 'imageCanvas'\n\n const maskCanvas = document.createElement('canvas')\n maskCanvas.id = 'maskCanvas'\n\n const canvas_background = document.createElement('div')\n canvas_background.id = 'canvasBackground'\n\n canvasContainer.appendChild(imgCanvas)\n canvasContainer.appendChild(maskCanvas)\n canvasContainer.appendChild(canvas_background)\n\n // prepare content\n this.imgCanvas = imgCanvas!\n this.maskCanvas = maskCanvas!\n this.canvasContainer = canvasContainer!\n this.canvasBackground = canvas_background!\n let maskCtx = maskCanvas!.getContext('2d', { willReadFrequently: true })\n if (maskCtx) {\n this.maskCtx = maskCtx\n }\n let imgCtx = imgCanvas!.getContext('2d', { willReadFrequently: true })\n if (imgCtx) {\n this.imageCtx = imgCtx\n }\n this.setEventHandler()\n\n //remove styling and move to css file\n\n this.imgCanvas.style.position = 'absolute'\n this.maskCanvas.style.position = 'absolute'\n\n this.imgCanvas.style.top = '200'\n this.imgCanvas.style.left = '0'\n\n this.maskCanvas.style.top = this.imgCanvas.style.top\n this.maskCanvas.style.left = this.imgCanvas.style.left\n\n const maskCanvasStyle = this.getMaskCanvasStyle()\n this.maskCanvas.style.mixBlendMode = maskCanvasStyle.mixBlendMode\n this.maskCanvas.style.opacity = maskCanvasStyle.opacity.toString()\n\n return canvasContainer\n }\n\n async setBrushBorderRadius() {\n const brushSettings = await this.messageBroker.pull('brushSettings')\n\n if (brushSettings.type === BrushShape.Rect) {\n this.brush.style.borderRadius = '0%'\n // @ts-expect-error\n this.brush.style.MozBorderRadius = '0%'\n // @ts-expect-error\n this.brush.style.WebkitBorderRadius = '0%'\n } else {\n this.brush.style.borderRadius = '50%'\n // @ts-expect-error\n this.brush.style.MozBorderRadius = '50%'\n // @ts-expect-error\n this.brush.style.WebkitBorderRadius = '50%'\n }\n }\n\n async initUI() {\n this.saveButton.innerText = 'Save'\n this.saveButton.disabled = false\n\n await this.setImages(this.imgCanvas) //probably change method to initImageCanvas\n }\n\n private async createSidePanel() {\n const side_panel = this.createContainer(true)\n side_panel.id = 'maskEditor_sidePanel'\n\n const brush_settings = await this.createBrushSettings()\n brush_settings.id = 'maskEditor_brushSettings'\n this.brushSettingsHTML = brush_settings\n\n const paint_bucket_settings = await this.createPaintBucketSettings()\n paint_bucket_settings.id = 'maskEditor_paintBucketSettings'\n this.paintBucketSettingsHTML = paint_bucket_settings\n\n const color_select_settings = await this.createColorSelectSettings()\n color_select_settings.id = 'maskEditor_colorSelectSettings'\n this.colorSelectSettingsHTML = color_select_settings\n\n const image_layer_settings = await this.createImageLayerSettings()\n\n const separator = this.createSeparator()\n\n side_panel.appendChild(brush_settings)\n side_panel.appendChild(paint_bucket_settings)\n side_panel.appendChild(color_select_settings)\n side_panel.appendChild(separator)\n side_panel.appendChild(image_layer_settings)\n\n return side_panel\n }\n\n private async createBrushSettings() {\n const shapeColor = this.darkMode\n ? 'maskEditor_brushShape_dark'\n : 'maskEditor_brushShape_light'\n const brush_settings_container = this.createContainer(true)\n\n const brush_settings_title = this.createHeadline('Brush Settings')\n\n const brush_shape_outer_container = this.createContainer(true)\n\n const brush_shape_title = this.createContainerTitle('Brush Shape')\n\n const brush_shape_container = this.createContainer(false)\n\n const accentColor = this.darkMode\n ? 'maskEditor_accent_bg_dark'\n : 'maskEditor_accent_bg_light'\n\n brush_shape_container.classList.add(accentColor)\n brush_shape_container.classList.add('maskEditor_layerRow')\n\n const circle_shape = document.createElement('div')\n circle_shape.id = 'maskEditor_sidePanelBrushShapeCircle'\n circle_shape.classList.add(shapeColor)\n circle_shape.style.background = 'var(--p-button-text-primary-color)'\n circle_shape.addEventListener('click', () => {\n this.messageBroker.publish('setBrushShape', BrushShape.Arc)\n this.setBrushBorderRadius()\n circle_shape.style.background = 'var(--p-button-text-primary-color)'\n square_shape.style.background = ''\n })\n\n const square_shape = document.createElement('div')\n square_shape.id = 'maskEditor_sidePanelBrushShapeSquare'\n square_shape.classList.add(shapeColor)\n square_shape.style.background = ''\n square_shape.addEventListener('click', () => {\n this.messageBroker.publish('setBrushShape', BrushShape.Rect)\n this.setBrushBorderRadius()\n square_shape.style.background = 'var(--p-button-text-primary-color)'\n circle_shape.style.background = ''\n })\n\n brush_shape_container.appendChild(circle_shape)\n brush_shape_container.appendChild(square_shape)\n\n brush_shape_outer_container.appendChild(brush_shape_title)\n brush_shape_outer_container.appendChild(brush_shape_container)\n\n const thicknesSliderObj = this.createSlider(\n 'Thickness',\n 1,\n 100,\n 1,\n 10,\n (event, value) => {\n this.messageBroker.publish('setBrushSize', parseInt(value))\n this.updateBrushPreview()\n }\n )\n this.brushSizeSlider = thicknesSliderObj.slider\n\n const opacitySliderObj = this.createSlider(\n 'Opacity',\n 0,\n 1,\n 0.01,\n 0.7,\n (event, value) => {\n this.messageBroker.publish('setBrushOpacity', parseFloat(value))\n this.updateBrushPreview()\n }\n )\n this.brushOpacitySlider = opacitySliderObj.slider\n\n const hardnessSliderObj = this.createSlider(\n 'Hardness',\n 0,\n 1,\n 0.01,\n 1,\n (event, value) => {\n this.messageBroker.publish('setBrushHardness', parseFloat(value))\n this.updateBrushPreview()\n }\n )\n this.brushHardnessSlider = hardnessSliderObj.slider\n\n const brushSmoothingPrecisionSliderObj = this.createSlider(\n 'Smoothing Precision',\n 1,\n 100,\n 1,\n 10,\n (event, value) => {\n this.messageBroker.publish(\n 'setBrushSmoothingPrecision',\n parseInt(value)\n )\n }\n )\n\n brush_settings_container.appendChild(brush_settings_title)\n brush_settings_container.appendChild(brush_shape_outer_container)\n brush_settings_container.appendChild(thicknesSliderObj.container)\n brush_settings_container.appendChild(opacitySliderObj.container)\n brush_settings_container.appendChild(hardnessSliderObj.container)\n brush_settings_container.appendChild(\n brushSmoothingPrecisionSliderObj.container\n )\n\n return brush_settings_container\n }\n\n private async createPaintBucketSettings() {\n const paint_bucket_settings_container = this.createContainer(true)\n\n const paint_bucket_settings_title = this.createHeadline(\n 'Paint Bucket Settings'\n )\n\n const tolerance = await this.messageBroker.pull('getTolerance')\n const paintBucketToleranceSliderObj = this.createSlider(\n 'Tolerance',\n 0,\n 255,\n 1,\n tolerance,\n (event, value) => {\n this.messageBroker.publish('setPaintBucketTolerance', parseInt(value))\n }\n )\n\n paint_bucket_settings_container.appendChild(paint_bucket_settings_title)\n paint_bucket_settings_container.appendChild(\n paintBucketToleranceSliderObj.container\n )\n\n return paint_bucket_settings_container\n }\n\n private async createColorSelectSettings() {\n const color_select_settings_container = this.createContainer(true)\n\n const color_select_settings_title = this.createHeadline(\n 'Color Select Settings'\n )\n\n var tolerance = await this.messageBroker.pull('getTolerance')\n const colorSelectToleranceSliderObj = this.createSlider(\n 'Tolerance',\n 0,\n 255,\n 1,\n tolerance,\n (event, value) => {\n this.messageBroker.publish('setColorSelectTolerance', parseInt(value))\n }\n )\n\n const livePreviewToggle = this.createToggle(\n 'Live Preview',\n (event, value) => {\n this.messageBroker.publish('setLivePreview', value)\n }\n )\n\n const wholeImageToggle = this.createToggle(\n 'Apply to Whole Image',\n (event, value) => {\n this.messageBroker.publish('setWholeImage', value)\n }\n )\n\n const methodOptions = Object.values(ColorComparisonMethod)\n const methodSelect = this.createDropdown(\n 'Method',\n methodOptions,\n (event, value) => {\n this.messageBroker.publish('setColorComparisonMethod', value)\n }\n )\n\n const maskBoundaryToggle = this.createToggle(\n 'Stop at mask',\n (event, value) => {\n this.messageBroker.publish('setMaskBoundary', value)\n }\n )\n\n const maskToleranceSliderObj = this.createSlider(\n 'Mask Tolerance',\n 0,\n 255,\n 1,\n 0,\n (event, value) => {\n this.messageBroker.publish('setMaskTolerance', parseInt(value))\n }\n )\n\n color_select_settings_container.appendChild(color_select_settings_title)\n color_select_settings_container.appendChild(\n colorSelectToleranceSliderObj.container\n )\n color_select_settings_container.appendChild(livePreviewToggle)\n color_select_settings_container.appendChild(wholeImageToggle)\n color_select_settings_container.appendChild(methodSelect)\n color_select_settings_container.appendChild(maskBoundaryToggle)\n color_select_settings_container.appendChild(\n maskToleranceSliderObj.container\n )\n\n return color_select_settings_container\n }\n\n private async createImageLayerSettings() {\n const accentColor = this.darkMode\n ? 'maskEditor_accent_bg_dark'\n : 'maskEditor_accent_bg_light'\n\n const image_layer_settings_container = this.createContainer(true)\n\n const image_layer_settings_title = this.createHeadline('Layers')\n\n const mask_layer_title = this.createContainerTitle('Mask Layer')\n\n const mask_layer_container = this.createContainer(false)\n mask_layer_container.classList.add(accentColor)\n mask_layer_container.classList.add('maskEditor_layerRow')\n\n const mask_layer_visibility_checkbox = document.createElement('input')\n mask_layer_visibility_checkbox.setAttribute('type', 'checkbox')\n mask_layer_visibility_checkbox.checked = true\n mask_layer_visibility_checkbox.classList.add(\n 'maskEditor_sidePanelLayerCheckbox'\n )\n mask_layer_visibility_checkbox.addEventListener('change', (event) => {\n if (!(event.target as HTMLInputElement)!.checked) {\n this.maskCanvas.style.opacity = '0'\n } else {\n this.maskCanvas.style.opacity = String(this.mask_opacity) //change name\n }\n })\n\n var mask_layer_image_container = document.createElement('div')\n mask_layer_image_container.classList.add(\n 'maskEditor_sidePanelLayerPreviewContainer'\n )\n mask_layer_image_container.innerHTML =\n ' '\n\n var blending_options = ['black', 'white', 'negative']\n\n const sidePanelDropdownAccent = this.darkMode\n ? 'maskEditor_sidePanelDropdown_dark'\n : 'maskEditor_sidePanelDropdown_light'\n\n var mask_layer_dropdown = document.createElement('select')\n mask_layer_dropdown.classList.add(sidePanelDropdownAccent)\n mask_layer_dropdown.classList.add(sidePanelDropdownAccent)\n blending_options.forEach((option) => {\n var option_element = document.createElement('option')\n option_element.value = option\n option_element.innerText = option\n mask_layer_dropdown.appendChild(option_element)\n\n if (option == this.maskBlendMode) {\n option_element.selected = true\n }\n })\n\n mask_layer_dropdown.addEventListener('change', (event) => {\n const selectedValue = (event.target as HTMLSelectElement)\n .value as MaskBlendMode\n this.maskBlendMode = selectedValue\n this.updateMaskColor()\n })\n\n mask_layer_container.appendChild(mask_layer_visibility_checkbox)\n mask_layer_container.appendChild(mask_layer_image_container)\n mask_layer_container.appendChild(mask_layer_dropdown)\n\n const mask_layer_opacity_sliderObj = this.createSlider(\n 'Mask Opacity',\n 0.0,\n 1.0,\n 0.01,\n this.mask_opacity,\n (event, value) => {\n this.mask_opacity = parseFloat(value)\n this.maskCanvas.style.opacity = String(this.mask_opacity)\n\n if (this.mask_opacity == 0) {\n mask_layer_visibility_checkbox.checked = false\n } else {\n mask_layer_visibility_checkbox.checked = true\n }\n }\n )\n this.maskOpacitySlider = mask_layer_opacity_sliderObj.slider\n\n const image_layer_title = this.createContainerTitle('Image Layer')\n\n const image_layer_container = this.createContainer(false)\n image_layer_container.classList.add(accentColor)\n image_layer_container.classList.add('maskEditor_layerRow')\n\n const image_layer_visibility_checkbox = document.createElement('input')\n image_layer_visibility_checkbox.setAttribute('type', 'checkbox')\n image_layer_visibility_checkbox.classList.add(\n 'maskEditor_sidePanelLayerCheckbox'\n )\n image_layer_visibility_checkbox.checked = true\n image_layer_visibility_checkbox.addEventListener('change', (event) => {\n if (!(event.target as HTMLInputElement)!.checked) {\n this.imgCanvas.style.opacity = '0'\n } else {\n this.imgCanvas.style.opacity = '1'\n }\n })\n\n const image_layer_image_container = document.createElement('div')\n image_layer_image_container.classList.add(\n 'maskEditor_sidePanelLayerPreviewContainer'\n )\n\n const image_layer_image = document.createElement('img')\n image_layer_image.id = 'maskEditor_sidePanelImageLayerImage'\n image_layer_image.src =\n ComfyApp.clipspace?.imgs?.[ComfyApp.clipspace?.selectedIndex ?? 0]?.src ??\n ''\n this.sidebarImage = image_layer_image\n\n image_layer_image_container.appendChild(image_layer_image)\n\n image_layer_container.appendChild(image_layer_visibility_checkbox)\n image_layer_container.appendChild(image_layer_image_container)\n\n image_layer_settings_container.appendChild(image_layer_settings_title)\n image_layer_settings_container.appendChild(mask_layer_title)\n image_layer_settings_container.appendChild(mask_layer_container)\n image_layer_settings_container.appendChild(\n mask_layer_opacity_sliderObj.container\n )\n image_layer_settings_container.appendChild(image_layer_title)\n image_layer_settings_container.appendChild(image_layer_container)\n\n return image_layer_settings_container\n }\n\n private createHeadline(title: string) {\n var headline = document.createElement('h3')\n headline.classList.add('maskEditor_sidePanelTitle')\n headline.innerText = title\n\n return headline\n }\n\n private createContainer(flexDirection: boolean) {\n var container = document.createElement('div')\n if (flexDirection) {\n container.classList.add('maskEditor_sidePanelContainerColumn')\n } else {\n container.classList.add('maskEditor_sidePanelContainerRow')\n }\n\n return container\n }\n\n private createContainerTitle(title: string) {\n var container_title = document.createElement('span')\n container_title.classList.add('maskEditor_sidePanelSubTitle')\n container_title.innerText = title\n\n return container_title\n }\n\n private createSlider(\n title: string,\n min: number,\n max: number,\n step: number,\n value: number,\n callback: (event: Event, value: string) => void\n ) {\n var slider_container = this.createContainer(true)\n var slider_title = this.createContainerTitle(title)\n\n var slider = document.createElement('input')\n slider.classList.add('maskEditor_sidePanelBrushRange')\n slider.setAttribute('type', 'range')\n slider.setAttribute('min', String(min))\n slider.setAttribute('max', String(max))\n slider.setAttribute('step', String(step))\n slider.setAttribute('value', String(value))\n slider.addEventListener('input', (event) => {\n callback(event, (event.target as HTMLInputElement).value)\n })\n slider_container.appendChild(slider_title)\n slider_container.appendChild(slider)\n\n return { container: slider_container, slider: slider }\n }\n\n private createToggle(\n title: string,\n callback: (event: Event, value: boolean) => void\n ) {\n var outer_Container = this.createContainer(false)\n var toggle_title = this.createContainerTitle(title)\n\n var toggle_container = document.createElement('label')\n toggle_container.classList.add('maskEditor_sidePanelToggleContainer')\n\n var toggle_checkbox = document.createElement('input')\n toggle_checkbox.setAttribute('type', 'checkbox')\n toggle_checkbox.classList.add('maskEditor_sidePanelToggleCheckbox')\n toggle_checkbox.addEventListener('change', (event) => {\n callback(event, (event.target as HTMLInputElement).checked)\n })\n\n var toggleAccentColor = this.darkMode\n ? 'maskEditor_toggle_bg_dark'\n : 'maskEditor_toggle_bg_light'\n\n var toggle_switch = document.createElement('div')\n toggle_switch.classList.add('maskEditor_sidePanelToggleSwitch')\n toggle_switch.classList.add(toggleAccentColor)\n\n toggle_container.appendChild(toggle_checkbox)\n toggle_container.appendChild(toggle_switch)\n\n outer_Container.appendChild(toggle_title)\n outer_Container.appendChild(toggle_container)\n\n return outer_Container\n }\n\n private createDropdown(\n title: string,\n options: string[],\n callback: (event: Event, value: string) => void\n ) {\n const sidePanelDropdownAccent = this.darkMode\n ? 'maskEditor_sidePanelDropdown_dark'\n : 'maskEditor_sidePanelDropdown_light'\n var dropdown_container = this.createContainer(false)\n var dropdown_title = this.createContainerTitle(title)\n\n var dropdown = document.createElement('select')\n dropdown.classList.add(sidePanelDropdownAccent)\n dropdown.classList.add('maskEditor_containerDropdown')\n\n options.forEach((option) => {\n var option_element = document.createElement('option')\n option_element.value = option\n option_element.innerText = option\n dropdown.appendChild(option_element)\n })\n\n dropdown.addEventListener('change', (event) => {\n callback(event, (event.target as HTMLSelectElement).value)\n })\n\n dropdown_container.appendChild(dropdown_title)\n dropdown_container.appendChild(dropdown)\n\n return dropdown_container\n }\n\n private createSeparator() {\n var separator = document.createElement('div')\n separator.classList.add('maskEditor_sidePanelSeparator')\n\n return separator\n }\n\n //----------------\n\n private async createTopBar() {\n const buttonAccentColor = this.darkMode\n ? 'maskEditor_topPanelButton_dark'\n : 'maskEditor_topPanelButton_light'\n\n const iconButtonAccentColor = this.darkMode\n ? 'maskEditor_topPanelIconButton_dark'\n : 'maskEditor_topPanelIconButton_light'\n\n var top_bar = document.createElement('div')\n top_bar.id = 'maskEditor_topBar'\n\n var top_bar_title_container = document.createElement('div')\n top_bar_title_container.id = 'maskEditor_topBarTitleContainer'\n\n var top_bar_title = document.createElement('h1')\n top_bar_title.id = 'maskEditor_topBarTitle'\n top_bar_title.innerText = 'ComfyUI'\n\n top_bar_title_container.appendChild(top_bar_title)\n\n var top_bar_shortcuts_container = document.createElement('div')\n top_bar_shortcuts_container.id = 'maskEditor_topBarShortcutsContainer'\n\n var top_bar_undo_button = document.createElement('div')\n top_bar_undo_button.id = 'maskEditor_topBarUndoButton'\n top_bar_undo_button.classList.add(iconButtonAccentColor)\n top_bar_undo_button.innerHTML =\n ' '\n\n top_bar_undo_button.addEventListener('click', () => {\n this.messageBroker.publish('undo')\n })\n\n var top_bar_redo_button = document.createElement('div')\n top_bar_redo_button.id = 'maskEditor_topBarRedoButton'\n top_bar_redo_button.classList.add(iconButtonAccentColor)\n top_bar_redo_button.innerHTML =\n ' '\n\n top_bar_redo_button.addEventListener('click', () => {\n this.messageBroker.publish('redo')\n })\n\n var top_bar_invert_button = document.createElement('button')\n top_bar_invert_button.id = 'maskEditor_topBarInvertButton'\n top_bar_invert_button.classList.add(buttonAccentColor)\n top_bar_invert_button.innerText = 'Invert'\n top_bar_invert_button.addEventListener('click', () => {\n this.messageBroker.publish('invert')\n })\n\n var top_bar_clear_button = document.createElement('button')\n top_bar_clear_button.id = 'maskEditor_topBarClearButton'\n top_bar_clear_button.classList.add(buttonAccentColor)\n top_bar_clear_button.innerText = 'Clear'\n\n top_bar_clear_button.addEventListener('click', () => {\n this.maskCtx.clearRect(\n 0,\n 0,\n this.maskCanvas.width,\n this.maskCanvas.height\n )\n this.messageBroker.publish('saveState')\n })\n\n var top_bar_save_button = document.createElement('button')\n top_bar_save_button.id = 'maskEditor_topBarSaveButton'\n top_bar_save_button.classList.add(buttonAccentColor)\n top_bar_save_button.innerText = 'Save'\n this.saveButton = top_bar_save_button\n\n top_bar_save_button.addEventListener('click', () => {\n this.maskEditor.save()\n })\n\n var top_bar_cancel_button = document.createElement('button')\n top_bar_cancel_button.id = 'maskEditor_topBarCancelButton'\n top_bar_cancel_button.classList.add(buttonAccentColor)\n top_bar_cancel_button.innerText = 'Cancel'\n\n top_bar_cancel_button.addEventListener('click', () => {\n this.maskEditor.close()\n })\n\n top_bar_shortcuts_container.appendChild(top_bar_undo_button)\n top_bar_shortcuts_container.appendChild(top_bar_redo_button)\n top_bar_shortcuts_container.appendChild(top_bar_invert_button)\n top_bar_shortcuts_container.appendChild(top_bar_clear_button)\n top_bar_shortcuts_container.appendChild(top_bar_save_button)\n top_bar_shortcuts_container.appendChild(top_bar_cancel_button)\n\n top_bar.appendChild(top_bar_title_container)\n top_bar.appendChild(top_bar_shortcuts_container)\n\n return top_bar\n }\n\n private createToolPanel() {\n var tool_panel = document.createElement('div')\n tool_panel.id = 'maskEditor_toolPanel'\n this.toolPanel = tool_panel\n var toolPanelHoverAccent = this.darkMode\n ? 'maskEditor_toolPanelContainerDark'\n : 'maskEditor_toolPanelContainerLight'\n\n var toolElements: HTMLElement[] = []\n\n //brush tool\n\n var toolPanel_brushToolContainer = document.createElement('div')\n toolPanel_brushToolContainer.classList.add('maskEditor_toolPanelContainer')\n toolPanel_brushToolContainer.classList.add(\n 'maskEditor_toolPanelContainerSelected'\n )\n toolPanel_brushToolContainer.classList.add(toolPanelHoverAccent)\n toolPanel_brushToolContainer.innerHTML = `\n \n \n \n \n `\n toolElements.push(toolPanel_brushToolContainer)\n\n toolPanel_brushToolContainer.addEventListener('click', () => {\n //move logic to tool manager\n this.messageBroker.publish('setTool', Tools.Pen)\n for (let toolElement of toolElements) {\n if (toolElement != toolPanel_brushToolContainer) {\n toolElement.classList.remove('maskEditor_toolPanelContainerSelected')\n } else {\n toolElement.classList.add('maskEditor_toolPanelContainerSelected')\n this.brushSettingsHTML.style.display = 'flex'\n this.colorSelectSettingsHTML.style.display = 'none'\n this.paintBucketSettingsHTML.style.display = 'none'\n }\n }\n this.messageBroker.publish('setTool', Tools.Pen)\n this.pointerZone.style.cursor = 'none'\n })\n\n var toolPanel_brushToolIndicator = document.createElement('div')\n toolPanel_brushToolIndicator.classList.add('maskEditor_toolPanelIndicator')\n\n toolPanel_brushToolContainer.appendChild(toolPanel_brushToolIndicator)\n\n //eraser tool\n\n var toolPanel_eraserToolContainer = document.createElement('div')\n toolPanel_eraserToolContainer.classList.add('maskEditor_toolPanelContainer')\n toolPanel_eraserToolContainer.classList.add(toolPanelHoverAccent)\n toolPanel_eraserToolContainer.innerHTML = `\n \n \n \n \n \n \n \n `\n toolElements.push(toolPanel_eraserToolContainer)\n\n toolPanel_eraserToolContainer.addEventListener('click', () => {\n //move logic to tool manager\n this.messageBroker.publish('setTool', Tools.Eraser)\n for (let toolElement of toolElements) {\n if (toolElement != toolPanel_eraserToolContainer) {\n toolElement.classList.remove('maskEditor_toolPanelContainerSelected')\n } else {\n toolElement.classList.add('maskEditor_toolPanelContainerSelected')\n this.brushSettingsHTML.style.display = 'flex'\n this.colorSelectSettingsHTML.style.display = 'none'\n this.paintBucketSettingsHTML.style.display = 'none'\n }\n }\n this.messageBroker.publish('setTool', Tools.Eraser)\n this.pointerZone.style.cursor = 'none'\n })\n\n var toolPanel_eraserToolIndicator = document.createElement('div')\n toolPanel_eraserToolIndicator.classList.add('maskEditor_toolPanelIndicator')\n\n toolPanel_eraserToolContainer.appendChild(toolPanel_eraserToolIndicator)\n\n //paint bucket tool\n\n var toolPanel_paintBucketToolContainer = document.createElement('div')\n toolPanel_paintBucketToolContainer.classList.add(\n 'maskEditor_toolPanelContainer'\n )\n toolPanel_paintBucketToolContainer.classList.add(toolPanelHoverAccent)\n toolPanel_paintBucketToolContainer.innerHTML = `\n \n \n \n \n \n `\n toolElements.push(toolPanel_paintBucketToolContainer)\n\n toolPanel_paintBucketToolContainer.addEventListener('click', () => {\n //move logic to tool manager\n this.messageBroker.publish('setTool', Tools.PaintBucket)\n for (let toolElement of toolElements) {\n if (toolElement != toolPanel_paintBucketToolContainer) {\n toolElement.classList.remove('maskEditor_toolPanelContainerSelected')\n } else {\n toolElement.classList.add('maskEditor_toolPanelContainerSelected')\n this.brushSettingsHTML.style.display = 'none'\n this.colorSelectSettingsHTML.style.display = 'none'\n this.paintBucketSettingsHTML.style.display = 'flex'\n }\n }\n this.messageBroker.publish('setTool', Tools.PaintBucket)\n this.pointerZone.style.cursor =\n \"url('/cursor/paintBucket.png') 30 25, auto\"\n this.brush.style.opacity = '0'\n })\n\n var toolPanel_paintBucketToolIndicator = document.createElement('div')\n toolPanel_paintBucketToolIndicator.classList.add(\n 'maskEditor_toolPanelIndicator'\n )\n\n toolPanel_paintBucketToolContainer.appendChild(\n toolPanel_paintBucketToolIndicator\n )\n\n //color select tool\n\n var toolPanel_colorSelectToolContainer = document.createElement('div')\n toolPanel_colorSelectToolContainer.classList.add(\n 'maskEditor_toolPanelContainer'\n )\n toolPanel_colorSelectToolContainer.classList.add(toolPanelHoverAccent)\n toolPanel_colorSelectToolContainer.innerHTML = `\n \n \n \n `\n toolElements.push(toolPanel_colorSelectToolContainer)\n toolPanel_colorSelectToolContainer.addEventListener('click', () => {\n this.messageBroker.publish('setTool', 'colorSelect')\n for (let toolElement of toolElements) {\n if (toolElement != toolPanel_colorSelectToolContainer) {\n toolElement.classList.remove('maskEditor_toolPanelContainerSelected')\n } else {\n toolElement.classList.add('maskEditor_toolPanelContainerSelected')\n this.brushSettingsHTML.style.display = 'none'\n this.paintBucketSettingsHTML.style.display = 'none'\n this.colorSelectSettingsHTML.style.display = 'flex'\n }\n }\n this.messageBroker.publish('setTool', Tools.ColorSelect)\n this.pointerZone.style.cursor =\n \"url('/cursor/colorSelect.png') 15 25, auto\"\n this.brush.style.opacity = '0'\n })\n\n var toolPanel_colorSelectToolIndicator = document.createElement('div')\n toolPanel_colorSelectToolIndicator.classList.add(\n 'maskEditor_toolPanelIndicator'\n )\n toolPanel_colorSelectToolContainer.appendChild(\n toolPanel_colorSelectToolIndicator\n )\n\n //zoom indicator\n var toolPanel_zoomIndicator = document.createElement('div')\n toolPanel_zoomIndicator.classList.add('maskEditor_toolPanelZoomIndicator')\n toolPanel_zoomIndicator.classList.add(toolPanelHoverAccent)\n\n var toolPanel_zoomText = document.createElement('span')\n toolPanel_zoomText.id = 'maskEditor_toolPanelZoomText'\n toolPanel_zoomText.innerText = '100%'\n this.zoomTextHTML = toolPanel_zoomText\n\n var toolPanel_DimensionsText = document.createElement('span')\n toolPanel_DimensionsText.id = 'maskEditor_toolPanelDimensionsText'\n toolPanel_DimensionsText.innerText = ' '\n this.dimensionsTextHTML = toolPanel_DimensionsText\n\n toolPanel_zoomIndicator.appendChild(toolPanel_zoomText)\n toolPanel_zoomIndicator.appendChild(toolPanel_DimensionsText)\n\n toolPanel_zoomIndicator.addEventListener('click', () => {\n this.messageBroker.publish('resetZoom')\n })\n\n tool_panel.appendChild(toolPanel_brushToolContainer)\n tool_panel.appendChild(toolPanel_eraserToolContainer)\n tool_panel.appendChild(toolPanel_paintBucketToolContainer)\n tool_panel.appendChild(toolPanel_colorSelectToolContainer)\n tool_panel.appendChild(toolPanel_zoomIndicator)\n\n return tool_panel\n }\n\n private createPointerZone() {\n const pointer_zone = document.createElement('div')\n pointer_zone.id = 'maskEditor_pointerZone'\n\n this.pointerZone = pointer_zone\n\n pointer_zone.addEventListener('pointerdown', (event: PointerEvent) => {\n this.messageBroker.publish('pointerDown', event)\n })\n\n pointer_zone.addEventListener('pointermove', (event: PointerEvent) => {\n this.messageBroker.publish('pointerMove', event)\n })\n\n pointer_zone.addEventListener('pointerup', (event: PointerEvent) => {\n this.messageBroker.publish('pointerUp', event)\n })\n\n pointer_zone.addEventListener('pointerleave', (event: PointerEvent) => {\n this.brush.style.opacity = '0'\n this.pointerZone.style.cursor = ''\n })\n\n pointer_zone.addEventListener('touchstart', (event: TouchEvent) => {\n this.messageBroker.publish('handleTouchStart', event)\n })\n\n pointer_zone.addEventListener('touchmove', (event: TouchEvent) => {\n this.messageBroker.publish('handleTouchMove', event)\n })\n\n pointer_zone.addEventListener('touchend', (event: TouchEvent) => {\n this.messageBroker.publish('handleTouchEnd', event)\n })\n\n pointer_zone.addEventListener('wheel', (event) =>\n this.messageBroker.publish('wheel', event)\n )\n\n pointer_zone.addEventListener(\n 'pointerenter',\n async (event: PointerEvent) => {\n this.updateCursor()\n }\n )\n\n return pointer_zone\n }\n\n async screenToCanvas(clientPoint: Point): Promise {\n // Get the bounding rectangles for both elements\n const zoomRatio = await this.messageBroker.pull('zoomRatio')\n const canvasRect = this.maskCanvas.getBoundingClientRect()\n\n // Calculate the offset between pointer zone and canvas\n const offsetX = clientPoint.x - canvasRect.left + this.toolPanel.clientWidth\n const offsetY = clientPoint.y - canvasRect.top + 44 // 44 is the height of the top menu\n\n const x = offsetX / zoomRatio\n const y = offsetY / zoomRatio\n\n return { x: x, y: y }\n }\n\n private setEventHandler() {\n this.maskCanvas.addEventListener('contextmenu', (event: Event) => {\n event.preventDefault()\n })\n\n this.rootElement.addEventListener('contextmenu', (event: Event) => {\n event.preventDefault()\n })\n\n this.rootElement.addEventListener('dragstart', (event) => {\n if (event.ctrlKey) {\n event.preventDefault()\n }\n })\n }\n\n private async createBrush() {\n var brush = document.createElement('div')\n const brushSettings = await this.messageBroker.pull('brushSettings')\n brush.id = 'maskEditor_brush'\n\n var brush_preview_gradient = document.createElement('div')\n brush_preview_gradient.id = 'maskEditor_brushPreviewGradient'\n\n brush.appendChild(brush_preview_gradient)\n\n this.brush = brush\n this.brushPreviewGradient = brush_preview_gradient\n\n return brush\n }\n\n async setImages(imgCanvas: HTMLCanvasElement) {\n const imgCtx = imgCanvas.getContext('2d', { willReadFrequently: true })\n const maskCtx = this.maskCtx\n const maskCanvas = this.maskCanvas\n\n imgCtx!.clearRect(0, 0, this.imgCanvas.width, this.imgCanvas.height)\n maskCtx.clearRect(0, 0, this.maskCanvas.width, this.maskCanvas.height)\n\n const alpha_url = new URL(\n ComfyApp.clipspace?.imgs?.[ComfyApp.clipspace?.selectedIndex ?? 0]?.src ??\n ''\n )\n alpha_url.searchParams.delete('channel')\n alpha_url.searchParams.delete('preview')\n alpha_url.searchParams.set('channel', 'a')\n let mask_image: HTMLImageElement = await this.loadImage(alpha_url)\n\n // original image load\n if (\n !ComfyApp.clipspace?.imgs?.[ComfyApp.clipspace?.selectedIndex ?? 0]?.src\n ) {\n throw new Error(\n 'Unable to access image source - clipspace or image is null'\n )\n }\n\n const rgb_url = new URL(\n ComfyApp.clipspace.imgs[ComfyApp.clipspace.selectedIndex].src\n )\n this.imageURL = rgb_url\n console.log(rgb_url)\n rgb_url.searchParams.delete('channel')\n rgb_url.searchParams.set('channel', 'rgb')\n this.image = new Image()\n\n this.image = await new Promise((resolve, reject) => {\n const img = new Image()\n img.onload = () => resolve(img)\n img.onerror = reject\n img.src = rgb_url.toString()\n })\n\n maskCanvas.width = this.image.width\n maskCanvas.height = this.image.height\n\n this.dimensionsTextHTML.innerText = `${this.image.width}x${this.image.height}`\n\n await this.invalidateCanvas(this.image, mask_image)\n this.messageBroker.publish('initZoomPan', [this.image, this.rootElement])\n }\n\n async invalidateCanvas(\n orig_image: HTMLImageElement,\n mask_image: HTMLImageElement\n ) {\n this.imgCanvas.width = orig_image.width\n this.imgCanvas.height = orig_image.height\n\n this.maskCanvas.width = orig_image.width\n this.maskCanvas.height = orig_image.height\n\n let imgCtx = this.imgCanvas.getContext('2d', { willReadFrequently: true })\n let maskCtx = this.maskCanvas.getContext('2d', {\n willReadFrequently: true\n })\n\n imgCtx!.drawImage(orig_image, 0, 0, orig_image.width, orig_image.height)\n await this.prepare_mask(\n mask_image,\n this.maskCanvas,\n maskCtx!,\n await this.getMaskColor()\n )\n }\n\n private async prepare_mask(\n image: HTMLImageElement,\n maskCanvas: HTMLCanvasElement,\n maskCtx: CanvasRenderingContext2D,\n maskColor: { r: number; g: number; b: number }\n ) {\n // paste mask data into alpha channel\n maskCtx.drawImage(image, 0, 0, maskCanvas.width, maskCanvas.height)\n const maskData = maskCtx.getImageData(\n 0,\n 0,\n maskCanvas.width,\n maskCanvas.height\n )\n\n // invert mask\n for (let i = 0; i < maskData.data.length; i += 4) {\n const alpha = maskData.data[i + 3]\n maskData.data[i] = maskColor.r\n maskData.data[i + 1] = maskColor.g\n maskData.data[i + 2] = maskColor.b\n maskData.data[i + 3] = 255 - alpha\n }\n\n maskCtx.globalCompositeOperation = 'source-over'\n maskCtx.putImageData(maskData, 0, 0)\n }\n\n private async updateMaskColor() {\n // update mask canvas css styles\n const maskCanvasStyle = this.getMaskCanvasStyle()\n this.maskCanvas.style.mixBlendMode = maskCanvasStyle.mixBlendMode\n this.maskCanvas.style.opacity = maskCanvasStyle.opacity.toString()\n\n // update mask canvas rgb colors\n const maskColor = await this.getMaskColor()\n this.maskCtx.fillStyle = `rgb(${maskColor.r}, ${maskColor.g}, ${maskColor.b})`\n\n //set canvas background color\n this.setCanvasBackground()\n\n const maskData = this.maskCtx.getImageData(\n 0,\n 0,\n this.maskCanvas.width,\n this.maskCanvas.height\n )\n for (let i = 0; i < maskData.data.length; i += 4) {\n maskData.data[i] = maskColor.r\n maskData.data[i + 1] = maskColor.g\n maskData.data[i + 2] = maskColor.b\n }\n this.maskCtx.putImageData(maskData, 0, 0)\n }\n\n getMaskCanvasStyle() {\n if (this.maskBlendMode === MaskBlendMode.Negative) {\n return {\n mixBlendMode: 'difference',\n opacity: '1'\n }\n } else {\n return {\n mixBlendMode: 'initial',\n opacity: this.mask_opacity\n }\n }\n }\n\n private detectLightMode() {\n this.darkMode = document.body.classList.contains('dark-theme')\n }\n\n private loadImage(imagePath: URL): Promise {\n return new Promise((resolve, reject) => {\n const image = new Image() as HTMLImageElement\n image.onload = function () {\n resolve(image)\n }\n image.onerror = function (error) {\n reject(error)\n }\n image.src = imagePath.href\n })\n }\n\n async updateBrushPreview() {\n const cursorPoint = await this.messageBroker.pull('cursorPoint')\n const pan_offset = await this.messageBroker.pull('panOffset')\n const brushSettings = await this.messageBroker.pull('brushSettings')\n const zoom_ratio = await this.messageBroker.pull('zoomRatio')\n const centerX = cursorPoint.x + pan_offset.x\n const centerY = cursorPoint.y + pan_offset.y\n const brush = this.brush\n const hardness = brushSettings.hardness\n const extendedSize = brushSettings.size * (2 - hardness) * 2 * zoom_ratio\n\n this.brushSizeSlider.value = String(brushSettings.size)\n this.brushHardnessSlider.value = String(hardness)\n\n brush.style.width = extendedSize + 'px'\n brush.style.height = extendedSize + 'px'\n brush.style.left = centerX - extendedSize / 2 + 'px'\n brush.style.top = centerY - extendedSize / 2 + 'px'\n\n if (hardness === 1) {\n this.brushPreviewGradient.style.background = 'rgba(255, 0, 0, 0.5)'\n return\n }\n\n const opacityStop = hardness / 4 + 0.25\n\n this.brushPreviewGradient.style.background = `\n radial-gradient(\n circle,\n rgba(255, 0, 0, 0.5) 0%,\n rgba(255, 0, 0, ${opacityStop}) ${hardness * 100}%,\n rgba(255, 0, 0, 0) 100%\n )\n `\n }\n\n getMaskBlendMode() {\n return this.maskBlendMode\n }\n\n setSidebarImage() {\n this.sidebarImage.src = this.imageURL.href\n }\n\n async getMaskColor() {\n if (this.maskBlendMode === MaskBlendMode.Black) {\n return { r: 0, g: 0, b: 0 }\n }\n if (this.maskBlendMode === MaskBlendMode.White) {\n return { r: 255, g: 255, b: 255 }\n }\n if (this.maskBlendMode === MaskBlendMode.Negative) {\n // negative effect only works with white color\n return { r: 255, g: 255, b: 255 }\n }\n\n return { r: 0, g: 0, b: 0 }\n }\n\n async getMaskFillStyle() {\n const maskColor = await this.getMaskColor()\n\n return 'rgb(' + maskColor.r + ',' + maskColor.g + ',' + maskColor.b + ')'\n }\n\n async setCanvasBackground() {\n if (this.maskBlendMode === MaskBlendMode.White) {\n this.canvasBackground.style.background = 'black'\n } else {\n this.canvasBackground.style.background = 'white'\n }\n }\n\n getMaskCanvas() {\n return this.maskCanvas\n }\n\n getImgCanvas() {\n return this.imgCanvas\n }\n\n getImage() {\n return this.image\n }\n\n setBrushOpacity(opacity: number) {\n this.brush.style.opacity = String(opacity)\n }\n\n setSaveButtonEnabled(enabled: boolean) {\n this.saveButton.disabled = !enabled\n }\n\n setSaveButtonText(text: string) {\n this.saveButton.innerText = text\n }\n\n handlePaintBucketCursor(isPaintBucket: boolean) {\n if (isPaintBucket) {\n this.pointerZone.style.cursor =\n \"url('/cursor/paintBucket.png') 30 25, auto\"\n } else {\n this.pointerZone.style.cursor = 'none'\n }\n }\n\n handlePanCursor(isPanning: boolean) {\n if (isPanning) {\n this.pointerZone.style.cursor = 'grabbing'\n } else {\n this.pointerZone.style.cursor = 'none'\n }\n }\n\n setBrushVisibility(visible: boolean) {\n this.brush.style.opacity = visible ? '1' : '0'\n }\n\n setBrushPreviewGradientVisibility(visible: boolean) {\n this.brushPreviewGradient.style.display = visible ? 'block' : 'none'\n }\n\n async updateCursor() {\n const currentTool = await this.messageBroker.pull('currentTool')\n if (currentTool === Tools.PaintBucket) {\n this.pointerZone.style.cursor =\n \"url('/cursor/paintBucket.png') 30 25, auto\"\n this.setBrushOpacity(0)\n } else if (currentTool === Tools.ColorSelect) {\n this.pointerZone.style.cursor =\n \"url('/cursor/colorSelect.png') 15 25, auto\"\n this.setBrushOpacity(0)\n } else {\n this.pointerZone.style.cursor = 'none'\n this.setBrushOpacity(1)\n }\n\n this.updateBrushPreview()\n this.setBrushPreviewGradientVisibility(false)\n }\n\n setZoomText(zoomText: string) {\n this.zoomTextHTML.innerText = zoomText\n }\n\n setDimensionsText(dimensionsText: string) {\n this.dimensionsTextHTML.innerText = dimensionsText\n }\n}\n\nclass ToolManager {\n maskEditor: MaskEditorDialog\n messageBroker: MessageBroker\n mouseDownPoint: Point | null = null\n\n currentTool: Tools = Tools.Pen\n isAdjustingBrush: boolean = false // is user adjusting brush size or hardness with alt + right mouse button\n\n constructor(maskEditor: MaskEditorDialog) {\n this.maskEditor = maskEditor\n this.messageBroker = maskEditor.getMessageBroker()\n this.addListeners()\n this.addPullTopics()\n }\n\n private addListeners() {\n this.messageBroker.subscribe('setTool', async (tool: Tools) => {\n this.setTool(tool)\n })\n\n this.messageBroker.subscribe('pointerDown', async (event: PointerEvent) => {\n this.handlePointerDown(event)\n })\n\n this.messageBroker.subscribe('pointerMove', async (event: PointerEvent) => {\n this.handlePointerMove(event)\n })\n\n this.messageBroker.subscribe('pointerUp', async (event: PointerEvent) => {\n this.handlePointerUp(event)\n })\n\n this.messageBroker.subscribe('wheel', async (event: WheelEvent) => {\n this.handleWheelEvent(event)\n })\n }\n\n private async addPullTopics() {\n this.messageBroker.createPullTopic('currentTool', async () =>\n this.getCurrentTool()\n )\n }\n\n //tools\n\n setTool(tool: Tools) {\n this.currentTool = tool\n\n if (tool != Tools.ColorSelect) {\n this.messageBroker.publish('clearLastPoint')\n }\n }\n\n getCurrentTool() {\n return this.currentTool\n }\n\n private async handlePointerDown(event: PointerEvent) {\n event.preventDefault()\n if (event.pointerType == 'touch') return\n\n var isSpacePressed = await this.messageBroker.pull('isKeyPressed', ' ')\n\n // Pan canvas\n if (event.buttons === 4 || (event.buttons === 1 && isSpacePressed)) {\n this.messageBroker.publish('panStart', event)\n this.messageBroker.publish('setBrushVisibility', false)\n return\n }\n\n //paint bucket\n if (this.currentTool === Tools.PaintBucket && event.button === 0) {\n const offset = { x: event.offsetX, y: event.offsetY }\n const coords_canvas = await this.messageBroker.pull(\n 'screenToCanvas',\n offset\n )\n this.messageBroker.publish('paintBucketFill', coords_canvas)\n this.messageBroker.publish('saveState')\n return\n }\n\n if (this.currentTool === Tools.ColorSelect && event.button === 0) {\n const offset = { x: event.offsetX, y: event.offsetY }\n const coords_canvas = await this.messageBroker.pull(\n 'screenToCanvas',\n offset\n )\n this.messageBroker.publish('colorSelectFill', coords_canvas)\n return\n }\n\n // (brush resize/change hardness) Check for alt + right mouse button\n if (event.altKey && event.button === 2) {\n this.isAdjustingBrush = true\n this.messageBroker.publish('brushAdjustmentStart', event)\n return\n }\n\n var isDrawingTool = [Tools.Pen, Tools.Eraser].includes(this.currentTool)\n //drawing\n if ([0, 2].includes(event.button) && isDrawingTool) {\n this.messageBroker.publish('drawStart', event)\n return\n }\n }\n\n private async handlePointerMove(event: PointerEvent) {\n event.preventDefault()\n if (event.pointerType == 'touch') return\n const newCursorPoint = { x: event.clientX, y: event.clientY }\n this.messageBroker.publish('cursorPoint', newCursorPoint)\n\n var isSpacePressed = await this.messageBroker.pull('isKeyPressed', ' ')\n this.messageBroker.publish('updateBrushPreview')\n\n //move the canvas\n if (event.buttons === 4 || (event.buttons === 1 && isSpacePressed)) {\n this.messageBroker.publish('panMove', event)\n return\n }\n\n //prevent drawing with other tools\n\n var isDrawingTool = [Tools.Pen, Tools.Eraser].includes(this.currentTool)\n if (!isDrawingTool) return\n\n // alt + right mouse button hold brush adjustment\n if (\n this.isAdjustingBrush &&\n (this.currentTool === Tools.Pen || this.currentTool === Tools.Eraser) &&\n event.altKey &&\n event.buttons === 2\n ) {\n this.messageBroker.publish('brushAdjustment', event)\n return\n }\n\n //draw with pen or eraser\n if (event.buttons == 1 || event.buttons == 2) {\n this.messageBroker.publish('draw', event)\n return\n }\n }\n\n private handlePointerUp(event: PointerEvent) {\n this.messageBroker.publish('panCursor', false)\n if (event.pointerType === 'touch') return\n this.messageBroker.publish('updateCursor')\n this.isAdjustingBrush = false\n this.messageBroker.publish('drawEnd', event)\n this.mouseDownPoint = null\n }\n\n private handleWheelEvent(event: WheelEvent) {\n this.messageBroker.publish('zoom', event)\n const newCursorPoint = { x: event.clientX, y: event.clientY }\n this.messageBroker.publish('cursorPoint', newCursorPoint)\n }\n}\n\nclass PanAndZoomManager {\n maskEditor: MaskEditorDialog\n messageBroker: MessageBroker\n\n DOUBLE_TAP_DELAY: number = 300\n lastTwoFingerTap: number = 0\n\n isTouchZooming: boolean = false\n lastTouchZoomDistance: number = 0\n lastTouchMidPoint: Point = { x: 0, y: 0 }\n lastTouchPoint: Point = { x: 0, y: 0 }\n\n zoom_ratio: number = 1\n interpolatedZoomRatio: number = 1\n pan_offset: Offset = { x: 0, y: 0 }\n\n mouseDownPoint: Point | null = null\n initialPan: Offset = { x: 0, y: 0 }\n\n canvasContainer: HTMLElement | null = null\n maskCanvas: HTMLCanvasElement | null = null\n rootElement: HTMLElement | null = null\n\n image: HTMLImageElement | null = null\n imageRootWidth: number = 0\n imageRootHeight: number = 0\n\n cursorPoint: Point = { x: 0, y: 0 }\n\n constructor(maskEditor: MaskEditorDialog) {\n this.maskEditor = maskEditor\n this.messageBroker = maskEditor.getMessageBroker()\n\n this.addListeners()\n this.addPullTopics()\n }\n\n private addListeners() {\n this.messageBroker.subscribe(\n 'initZoomPan',\n async (args: [HTMLImageElement, HTMLElement]) => {\n await this.initializeCanvasPanZoom(args[0], args[1])\n }\n )\n\n this.messageBroker.subscribe('panStart', async (event: PointerEvent) => {\n this.handlePanStart(event)\n })\n\n this.messageBroker.subscribe('panMove', async (event: PointerEvent) => {\n this.handlePanMove(event)\n })\n\n this.messageBroker.subscribe('zoom', async (event: WheelEvent) => {\n this.zoom(event)\n })\n\n this.messageBroker.subscribe('cursorPoint', async (point: Point) => {\n this.updateCursorPosition(point)\n })\n\n this.messageBroker.subscribe(\n 'handleTouchStart',\n async (event: TouchEvent) => {\n this.handleTouchStart(event)\n }\n )\n\n this.messageBroker.subscribe(\n 'handleTouchMove',\n async (event: TouchEvent) => {\n this.handleTouchMove(event)\n }\n )\n\n this.messageBroker.subscribe(\n 'handleTouchEnd',\n async (event: TouchEvent) => {\n this.handleTouchEnd(event)\n }\n )\n\n this.messageBroker.subscribe('resetZoom', async () => {\n if (this.interpolatedZoomRatio === 1) return\n await this.smoothResetView()\n })\n }\n\n private addPullTopics() {\n this.messageBroker.createPullTopic(\n 'cursorPoint',\n async () => this.cursorPoint\n )\n this.messageBroker.createPullTopic('zoomRatio', async () => this.zoom_ratio)\n this.messageBroker.createPullTopic('panOffset', async () => this.pan_offset)\n }\n\n handleTouchStart(event: TouchEvent) {\n event.preventDefault()\n if ((event.touches[0] as any).touchType === 'stylus') return\n this.messageBroker.publish('setBrushVisibility', false)\n if (event.touches.length === 2) {\n const currentTime = new Date().getTime()\n const tapTimeDiff = currentTime - this.lastTwoFingerTap\n\n if (tapTimeDiff < this.DOUBLE_TAP_DELAY) {\n // Double tap detected\n this.handleDoubleTap()\n this.lastTwoFingerTap = 0 // Reset to prevent triple-tap\n } else {\n this.lastTwoFingerTap = currentTime\n\n // Existing two-finger touch logic\n this.isTouchZooming = true\n this.lastTouchZoomDistance = this.getTouchDistance(event.touches)\n const midpoint = this.getTouchMidpoint(event.touches)\n this.lastTouchMidPoint = midpoint\n }\n } else if (event.touches.length === 1) {\n this.lastTouchPoint = {\n x: event.touches[0].clientX,\n y: event.touches[0].clientY\n }\n }\n }\n\n async handleTouchMove(event: TouchEvent) {\n event.preventDefault()\n if ((event.touches[0] as any).touchType === 'stylus') return\n\n this.lastTwoFingerTap = 0\n if (this.isTouchZooming && event.touches.length === 2) {\n // Handle zooming\n const newDistance = this.getTouchDistance(event.touches)\n const zoomFactor = newDistance / this.lastTouchZoomDistance\n const oldZoom = this.zoom_ratio\n this.zoom_ratio = Math.max(\n 0.2,\n Math.min(10.0, this.zoom_ratio * zoomFactor)\n )\n const newZoom = this.zoom_ratio\n\n // Calculate the midpoint of the two touches\n const midpoint = this.getTouchMidpoint(event.touches)\n\n // Handle panning - calculate the movement of the midpoint\n if (this.lastTouchMidPoint) {\n const deltaX = midpoint.x - this.lastTouchMidPoint.x\n const deltaY = midpoint.y - this.lastTouchMidPoint.y\n\n // Apply the pan\n this.pan_offset.x += deltaX\n this.pan_offset.y += deltaY\n }\n\n // Get touch position relative to the container\n if (this.maskCanvas === null) {\n this.maskCanvas = await this.messageBroker.pull('maskCanvas')\n }\n const rect = this.maskCanvas!.getBoundingClientRect()\n const touchX = midpoint.x - rect.left\n const touchY = midpoint.y - rect.top\n\n // Calculate new pan position based on zoom\n const scaleFactor = newZoom / oldZoom\n this.pan_offset.x += touchX - touchX * scaleFactor\n this.pan_offset.y += touchY - touchY * scaleFactor\n\n this.invalidatePanZoom()\n this.lastTouchZoomDistance = newDistance\n this.lastTouchMidPoint = midpoint\n } else if (event.touches.length === 1) {\n // Handle single touch pan\n this.handleSingleTouchPan(event.touches[0])\n }\n }\n\n handleTouchEnd(event: TouchEvent) {\n event.preventDefault()\n if (\n event.touches.length === 0 &&\n (event.touches[0] as any).touchType === 'stylus'\n ) {\n return\n }\n\n this.isTouchZooming = false\n this.lastTouchMidPoint = { x: 0, y: 0 }\n\n if (event.touches.length === 0) {\n this.lastTouchPoint = { x: 0, y: 0 }\n } else if (event.touches.length === 1) {\n this.lastTouchPoint = {\n x: event.touches[0].clientX,\n y: event.touches[0].clientY\n }\n }\n }\n\n private getTouchDistance(touches: TouchList) {\n const dx = touches[0].clientX - touches[1].clientX\n const dy = touches[0].clientY - touches[1].clientY\n return Math.sqrt(dx * dx + dy * dy)\n }\n\n private getTouchMidpoint(touches: TouchList) {\n return {\n x: (touches[0].clientX + touches[1].clientX) / 2,\n y: (touches[0].clientY + touches[1].clientY) / 2\n }\n }\n\n private async handleSingleTouchPan(touch: Touch) {\n if (this.lastTouchPoint === null) {\n this.lastTouchPoint = { x: touch.clientX, y: touch.clientY }\n return\n }\n\n const deltaX = touch.clientX - this.lastTouchPoint.x\n const deltaY = touch.clientY - this.lastTouchPoint.y\n\n this.pan_offset.x += deltaX\n this.pan_offset.y += deltaY\n\n await this.invalidatePanZoom()\n\n this.lastTouchPoint = { x: touch.clientX, y: touch.clientY }\n }\n\n private updateCursorPosition(clientPoint: Point) {\n var cursorX = clientPoint.x - this.pan_offset.x\n var cursorY = clientPoint.y - this.pan_offset.y\n\n this.cursorPoint = { x: cursorX, y: cursorY }\n }\n\n //prob redundant\n handleDoubleTap() {\n this.messageBroker.publish('undo')\n // Add any additional logic needed after undo\n }\n\n async zoom(event: WheelEvent) {\n // Store original cursor position\n const cursorPoint = { x: event.clientX, y: event.clientY }\n\n // zoom canvas\n const oldZoom = this.zoom_ratio\n const zoomFactor = event.deltaY < 0 ? 1.1 : 0.9\n this.zoom_ratio = Math.max(\n 0.2,\n Math.min(10.0, this.zoom_ratio * zoomFactor)\n )\n const newZoom = this.zoom_ratio\n\n const maskCanvas = await this.messageBroker.pull('maskCanvas')\n\n // Get mouse position relative to the container\n const rect = maskCanvas.getBoundingClientRect()\n const mouseX = cursorPoint.x - rect.left\n const mouseY = cursorPoint.y - rect.top\n\n console.log(oldZoom, newZoom)\n // Calculate new pan position\n const scaleFactor = newZoom / oldZoom\n this.pan_offset.x += mouseX - mouseX * scaleFactor\n this.pan_offset.y += mouseY - mouseY * scaleFactor\n\n // Update pan and zoom immediately\n await this.invalidatePanZoom()\n\n const newImageWidth = maskCanvas.clientWidth\n\n const zoomRatio = newImageWidth / this.imageRootWidth\n\n this.interpolatedZoomRatio = zoomRatio\n\n this.messageBroker.publish('setZoomText', `${Math.round(zoomRatio * 100)}%`)\n\n // Update cursor position with new pan values\n this.updateCursorPosition(cursorPoint)\n\n // Update brush preview after pan/zoom is complete\n requestAnimationFrame(() => {\n this.messageBroker.publish('updateBrushPreview')\n })\n }\n\n private async smoothResetView(duration: number = 500) {\n // Store initial state\n const startZoom = this.zoom_ratio\n const startPan = { ...this.pan_offset }\n\n // Panel dimensions\n const sidePanelWidth = 220\n const toolPanelWidth = 64\n const topBarHeight = 44\n\n // Calculate available space\n const availableWidth =\n this.rootElement!.clientWidth - sidePanelWidth - toolPanelWidth\n const availableHeight = this.rootElement!.clientHeight - topBarHeight\n\n // Calculate target zoom\n const zoomRatioWidth = availableWidth / this.image!.width\n const zoomRatioHeight = availableHeight / this.image!.height\n const targetZoom = Math.min(zoomRatioWidth, zoomRatioHeight)\n\n // Calculate final dimensions\n const aspectRatio = this.image!.width / this.image!.height\n let finalWidth = 0\n let finalHeight = 0\n\n // Calculate target pan position\n const targetPan = { x: toolPanelWidth, y: topBarHeight }\n\n if (zoomRatioHeight > zoomRatioWidth) {\n finalWidth = availableWidth\n finalHeight = finalWidth / aspectRatio\n targetPan.y = (availableHeight - finalHeight) / 2 + topBarHeight\n } else {\n finalHeight = availableHeight\n finalWidth = finalHeight * aspectRatio\n targetPan.x = (availableWidth - finalWidth) / 2 + toolPanelWidth\n }\n\n const startTime = performance.now()\n const animate = (currentTime: number) => {\n const elapsed = currentTime - startTime\n const progress = Math.min(elapsed / duration, 1)\n // Cubic easing out for smooth deceleration\n const eased = 1 - Math.pow(1 - progress, 3)\n\n // Calculate intermediate zoom and pan values\n const currentZoom = startZoom + (targetZoom - startZoom) * eased\n\n this.zoom_ratio = currentZoom\n this.pan_offset.x = startPan.x + (targetPan.x - startPan.x) * eased\n this.pan_offset.y = startPan.y + (targetPan.y - startPan.y) * eased\n\n this.invalidatePanZoom()\n\n const interpolatedZoomRatio = startZoom + (1.0 - startZoom) * eased\n\n this.messageBroker.publish(\n 'setZoomText',\n `${Math.round(interpolatedZoomRatio * 100)}%`\n )\n\n if (progress < 1) {\n requestAnimationFrame(animate)\n }\n }\n\n requestAnimationFrame(animate)\n this.interpolatedZoomRatio = 1.0\n }\n\n async initializeCanvasPanZoom(\n image: HTMLImageElement,\n rootElement: HTMLElement\n ) {\n // Get side panel width\n let sidePanelWidth = 220\n const toolPanelWidth = 64\n let topBarHeight = 44\n\n this.rootElement = rootElement\n\n // Calculate available width accounting for both side panels\n let availableWidth =\n rootElement.clientWidth - sidePanelWidth - toolPanelWidth\n let availableHeight = rootElement.clientHeight - topBarHeight\n\n let zoomRatioWidth = availableWidth / image.width\n let zoomRatioHeight = availableHeight / image.height\n\n let aspectRatio = image.width / image.height\n\n let finalWidth = 0\n let finalHeight = 0\n\n let pan_offset: Offset = { x: toolPanelWidth, y: topBarHeight }\n\n if (zoomRatioHeight > zoomRatioWidth) {\n finalWidth = availableWidth\n finalHeight = finalWidth / aspectRatio\n pan_offset.y = (availableHeight - finalHeight) / 2 + topBarHeight\n } else {\n finalHeight = availableHeight\n finalWidth = finalHeight * aspectRatio\n pan_offset.x = (availableWidth - finalWidth) / 2 + toolPanelWidth\n }\n\n if (this.image === null) {\n this.image = image\n }\n\n this.imageRootWidth = finalWidth\n this.imageRootHeight = finalHeight\n\n this.zoom_ratio = Math.min(zoomRatioWidth, zoomRatioHeight)\n this.pan_offset = pan_offset\n\n await this.invalidatePanZoom()\n }\n\n async invalidatePanZoom() {\n // Single validation check upfront\n if (\n !this.image?.width ||\n !this.image?.height ||\n !this.pan_offset ||\n !this.zoom_ratio\n ) {\n console.warn('Missing required properties for pan/zoom')\n return\n }\n\n // Now TypeScript knows these are non-null\n const raw_width = this.image.width * this.zoom_ratio\n const raw_height = this.image.height * this.zoom_ratio\n\n // Get canvas container\n this.canvasContainer ??=\n await this.messageBroker?.pull('getCanvasContainer')\n if (!this.canvasContainer) return\n\n // Apply styles\n Object.assign(this.canvasContainer.style, {\n width: `${raw_width}px`,\n height: `${raw_height}px`,\n left: `${this.pan_offset.x}px`,\n top: `${this.pan_offset.y}px`\n })\n }\n\n private handlePanStart(event: PointerEvent) {\n let coords_canvas = this.messageBroker.pull('screenToCanvas', {\n x: event.offsetX,\n y: event.offsetY\n })\n this.mouseDownPoint = { x: event.clientX, y: event.clientY }\n this.messageBroker.publish('panCursor', true)\n this.initialPan = this.pan_offset\n return\n }\n\n private handlePanMove(event: PointerEvent) {\n if (this.mouseDownPoint === null) throw new Error('mouseDownPoint is null')\n\n let deltaX = this.mouseDownPoint.x - event.clientX\n let deltaY = this.mouseDownPoint.y - event.clientY\n\n let pan_x = this.initialPan.x - deltaX\n let pan_y = this.initialPan.y - deltaY\n\n this.pan_offset = { x: pan_x, y: pan_y }\n\n this.invalidatePanZoom()\n }\n}\n\nclass MessageBroker {\n private pushTopics: Record = {}\n private pullTopics: Record Promise> = {}\n\n constructor() {\n this.registerListeners()\n }\n\n // Push\n\n private registerListeners() {\n // Register listeners\n this.createPushTopic('panStart')\n this.createPushTopic('paintBucketFill')\n this.createPushTopic('saveState')\n this.createPushTopic('brushAdjustmentStart')\n this.createPushTopic('drawStart')\n this.createPushTopic('panMove')\n this.createPushTopic('updateBrushPreview')\n this.createPushTopic('brushAdjustment')\n this.createPushTopic('draw')\n this.createPushTopic('paintBucketCursor')\n this.createPushTopic('panCursor')\n this.createPushTopic('drawEnd')\n this.createPushTopic('zoom')\n this.createPushTopic('undo')\n this.createPushTopic('redo')\n this.createPushTopic('cursorPoint')\n this.createPushTopic('panOffset')\n this.createPushTopic('zoomRatio')\n this.createPushTopic('getMaskCanvas')\n this.createPushTopic('getCanvasContainer')\n this.createPushTopic('screenToCanvas')\n this.createPushTopic('isKeyPressed')\n this.createPushTopic('isCombinationPressed')\n this.createPushTopic('setPaintBucketTolerance')\n this.createPushTopic('setBrushSize')\n this.createPushTopic('setBrushHardness')\n this.createPushTopic('setBrushOpacity')\n this.createPushTopic('setBrushShape')\n this.createPushTopic('initZoomPan')\n this.createPushTopic('setTool')\n this.createPushTopic('pointerDown')\n this.createPushTopic('pointerMove')\n this.createPushTopic('pointerUp')\n this.createPushTopic('wheel')\n this.createPushTopic('initPaintBucketTool')\n this.createPushTopic('setBrushVisibility')\n this.createPushTopic('setBrushPreviewGradientVisibility')\n this.createPushTopic('handleTouchStart')\n this.createPushTopic('handleTouchMove')\n this.createPushTopic('handleTouchEnd')\n this.createPushTopic('colorSelectFill')\n this.createPushTopic('setColorSelectTolerance')\n this.createPushTopic('setLivePreview')\n this.createPushTopic('updateCursor')\n this.createPushTopic('setColorComparisonMethod')\n this.createPushTopic('clearLastPoint')\n this.createPushTopic('setWholeImage')\n this.createPushTopic('setMaskBoundary')\n this.createPushTopic('setMaskTolerance')\n this.createPushTopic('setBrushSmoothingPrecision')\n this.createPushTopic('setZoomText')\n this.createPushTopic('resetZoom')\n this.createPushTopic('invert')\n }\n\n /**\n * Creates a new push topic (listener is notified)\n *\n * @param {string} topicName - The name of the topic to create.\n * @throws {Error} If the topic already exists.\n */\n createPushTopic(topicName: string) {\n if (this.topicExists(this.pushTopics, topicName)) {\n throw new Error('Topic already exists')\n }\n this.pushTopics[topicName] = []\n }\n\n /**\n * Subscribe a callback function to the given topic.\n *\n * @param {string} topicName - The name of the topic to subscribe to.\n * @param {Callback} callback - The callback function to be subscribed.\n * @throws {Error} If the topic does not exist.\n */\n subscribe(topicName: string, callback: Callback) {\n if (!this.topicExists(this.pushTopics, topicName)) {\n throw new Error(`Topic \"${topicName}\" does not exist!`)\n }\n this.pushTopics[topicName].push(callback)\n }\n\n /**\n * Removes a callback function from the list of subscribers for a given topic.\n *\n * @param {string} topicName - The name of the topic to unsubscribe from.\n * @param {Callback} callback - The callback function to remove from the subscribers list.\n * @throws {Error} If the topic does not exist in the list of topics.\n */\n unsubscribe(topicName: string, callback: Callback) {\n if (!this.topicExists(this.pushTopics, topicName)) {\n throw new Error('Topic does not exist')\n }\n const index = this.pushTopics[topicName].indexOf(callback)\n if (index > -1) {\n this.pushTopics[topicName].splice(index, 1)\n }\n }\n\n /**\n * Publishes data to a specified topic with variable number of arguments.\n * @param {string} topicName - The name of the topic to publish to.\n * @param {...any[]} args - Variable number of arguments to pass to subscribers\n * @throws {Error} If the specified topic does not exist.\n */\n publish(topicName: string, ...args: any[]) {\n if (!this.topicExists(this.pushTopics, topicName)) {\n throw new Error(`Topic \"${topicName}\" does not exist!`)\n }\n\n this.pushTopics[topicName].forEach((callback) => {\n callback(...args)\n })\n }\n\n // Pull\n\n /**\n * Creates a new pull topic (listener must request data)\n *\n * @param {string} topicName - The name of the topic to create.\n * @param {() => Promise} callBack - The callback function to be called when data is requested.\n * @throws {Error} If the topic already exists.\n */\n createPullTopic(topicName: string, callBack: (data?: any) => Promise) {\n if (this.topicExists(this.pullTopics, topicName)) {\n throw new Error('Topic already exists')\n }\n this.pullTopics[topicName] = callBack\n }\n\n /**\n * Requests data from a specified pull topic.\n * @param {string} topicName - The name of the topic to request data from.\n * @returns {Promise} - The data from the pull topic.\n * @throws {Error} If the specified topic does not exist.\n */\n async pull(topicName: string, data?: any): Promise {\n if (!this.topicExists(this.pullTopics, topicName)) {\n throw new Error('Topic does not exist')\n }\n\n const callBack = this.pullTopics[topicName]\n try {\n const result = await callBack(data)\n return result\n } catch (error) {\n console.error(`Error pulling data from topic \"${topicName}\":`, error)\n throw error\n }\n }\n\n // Helper Methods\n\n /**\n * Checks if a topic exists in the given topics object.\n * @param {Record} topics - The topics object to check.\n * @param {string} topicName - The name of the topic to check.\n * @returns {boolean} - True if the topic exists, false otherwise.\n */\n private topicExists(topics: Record, topicName: string): boolean {\n return topics.hasOwnProperty(topicName)\n }\n}\n\nclass KeyboardManager {\n private keysDown: string[] = []\n private maskEditor: MaskEditorDialog\n private messageBroker: MessageBroker\n\n constructor(maskEditor: MaskEditorDialog) {\n this.maskEditor = maskEditor\n this.messageBroker = maskEditor.getMessageBroker()\n this.addPullTopics()\n }\n\n private addPullTopics() {\n // isKeyPressed\n this.messageBroker.createPullTopic('isKeyPressed', (key: string) =>\n Promise.resolve(this.isKeyDown(key))\n )\n }\n\n addListeners() {\n document.addEventListener('keydown', (event) => this.handleKeyDown(event))\n document.addEventListener('keyup', (event) => this.handleKeyUp(event))\n window.addEventListener('blur', () => this.clearKeys())\n }\n\n removeListeners() {\n document.removeEventListener('keydown', (event) =>\n this.handleKeyDown(event)\n )\n document.removeEventListener('keyup', (event) => this.handleKeyUp(event))\n }\n\n private clearKeys() {\n this.keysDown = []\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n if (!this.keysDown.includes(event.key)) {\n this.keysDown.push(event.key)\n }\n //if (this.redoCombinationPressed()) return\n //this.undoCombinationPressed()\n }\n\n private handleKeyUp(event: KeyboardEvent) {\n this.keysDown = this.keysDown.filter((key) => key !== event.key)\n }\n\n private isKeyDown(key: string) {\n return this.keysDown.includes(key)\n }\n\n // combinations\n\n private undoCombinationPressed() {\n const combination = ['ctrl', 'z']\n const keysDownLower = this.keysDown.map((key) => key.toLowerCase())\n const result = combination.every((key) => keysDownLower.includes(key))\n if (result) this.messageBroker.publish('undo')\n return result\n }\n\n private redoCombinationPressed() {\n const combination = ['ctrl', 'shift', 'z']\n const keysDownLower = this.keysDown.map((key) => key.toLowerCase())\n const result = combination.every((key) => keysDownLower.includes(key))\n if (result) this.messageBroker.publish('redo')\n return result\n }\n}\n\napp.registerExtension({\n name: 'Comfy.MaskEditor',\n settings: [\n {\n id: 'Comfy.MaskEditor.UseNewEditor',\n category: ['Mask Editor', 'NewEditor'],\n name: 'Use new mask editor',\n tooltip: 'Switch to the new mask editor interface',\n type: 'boolean',\n defaultValue: true,\n experimental: true\n },\n {\n id: 'Comfy.MaskEditor.BrushAdjustmentSpeed',\n category: ['Mask Editor', 'BrushAdjustment', 'Sensitivity'],\n name: 'Brush adjustment speed multiplier',\n tooltip:\n 'Controls how quickly the brush size and hardness change when adjusting. Higher values mean faster changes.',\n experimental: true,\n type: 'slider',\n attrs: {\n min: 0.1,\n max: 2.0,\n step: 0.1\n },\n defaultValue: 1.0,\n versionAdded: '1.0.0'\n },\n {\n id: 'Comfy.MaskEditor.UseDominantAxis',\n category: ['Mask Editor', 'BrushAdjustment', 'UseDominantAxis'],\n name: 'Lock brush adjustment to dominant axis',\n tooltip:\n 'When enabled, brush adjustments will only affect size OR hardness based on which direction you move more',\n type: 'boolean',\n defaultValue: true,\n experimental: true\n }\n ],\n init(app) {\n // Create function before assignment\n function openMaskEditor(): void {\n const useNewEditor = app.extensionManager.setting.get(\n 'Comfy.MaskEditor.UseNewEditor'\n )\n if (useNewEditor) {\n const dlg = MaskEditorDialog.getInstance() as any\n if (dlg?.isOpened && !dlg.isOpened()) {\n dlg.show()\n }\n } else {\n const dlg = MaskEditorDialogOld.getInstance() as any\n if (dlg?.isOpened && !dlg.isOpened()) {\n dlg.show()\n }\n }\n }\n\n // Assign the created function\n ;(ComfyApp as any).open_maskeditor = openMaskEditor\n\n // Ensure boolean return type\n const context_predicate = (): boolean => {\n return !!(\n ComfyApp.clipspace &&\n ComfyApp.clipspace.imgs &&\n ComfyApp.clipspace.imgs.length > 0\n )\n }\n\n ClipspaceDialog.registerButton(\n 'MaskEditor',\n context_predicate,\n openMaskEditor\n )\n }\n})\n","// @ts-strict-ignore\nimport { LGraphCanvas } from '@comfyorg/litegraph'\n\nimport { t } from '@/i18n'\nimport { useDialogService } from '@/services/dialogService'\nimport { useToastStore } from '@/stores/toastStore'\nimport { deserialiseAndCreate } from '@/utils/vintageClipboard'\n\nimport { api } from '../../scripts/api'\nimport { app } from '../../scripts/app'\nimport { $el, ComfyDialog } from '../../scripts/ui'\nimport { GroupNodeConfig, GroupNodeHandler } from './groupNode'\n\n// Adds the ability to save and add multiple nodes as a template\n// To save:\n// Select multiple nodes (ctrl + drag to select a region or ctrl+click individual nodes)\n// Right click the canvas\n// Save Node Template -> give it a name\n//\n// To add:\n// Right click the canvas\n// Node templates -> click the one to add\n//\n// To delete/rename:\n// Right click the canvas\n// Node templates -> Manage\n//\n// To rearrange:\n// Open the manage dialog and Drag and drop elements using the \"Name:\" label as handle\n\nconst id = 'Comfy.NodeTemplates'\nconst file = 'comfy.templates.json'\n\nclass ManageTemplates extends ComfyDialog {\n templates: any[]\n draggedEl: HTMLElement | null\n saveVisualCue: number | null\n emptyImg: HTMLImageElement\n importInput: HTMLInputElement\n\n constructor() {\n super()\n this.load().then((v) => {\n this.templates = v\n })\n\n this.element.classList.add('comfy-manage-templates')\n this.draggedEl = null\n this.saveVisualCue = null\n this.emptyImg = new Image()\n this.emptyImg.src =\n 'data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs='\n\n this.importInput = $el('input', {\n type: 'file',\n accept: '.json',\n multiple: true,\n style: { display: 'none' },\n parent: document.body,\n onchange: () => this.importAll()\n }) as HTMLInputElement\n }\n\n createButtons() {\n const btns = super.createButtons()\n btns[0].textContent = 'Close'\n btns[0].onclick = (e) => {\n clearTimeout(this.saveVisualCue)\n this.close()\n }\n btns.unshift(\n $el('button', {\n type: 'button',\n textContent: 'Export',\n onclick: () => this.exportAll()\n })\n )\n btns.unshift(\n $el('button', {\n type: 'button',\n textContent: 'Import',\n onclick: () => {\n this.importInput.click()\n }\n })\n )\n return btns\n }\n\n async load() {\n let templates = []\n const res = await api.getUserData(file)\n if (res.status === 200) {\n try {\n templates = await res.json()\n } catch (error) {}\n } else if (res.status !== 404) {\n console.error(res.status + ' ' + res.statusText)\n }\n return templates ?? []\n }\n\n async store() {\n const templates = JSON.stringify(this.templates, undefined, 4)\n try {\n await api.storeUserData(file, templates, { stringify: false })\n } catch (error) {\n console.error(error)\n useToastStore().addAlert(error.message)\n }\n }\n\n async importAll() {\n for (const file of this.importInput.files) {\n if (file.type === 'application/json' || file.name.endsWith('.json')) {\n const reader = new FileReader()\n reader.onload = async () => {\n const importFile = JSON.parse(reader.result as string)\n if (importFile?.templates) {\n for (const template of importFile.templates) {\n if (template?.name && template?.data) {\n this.templates.push(template)\n }\n }\n await this.store()\n }\n }\n await reader.readAsText(file)\n }\n }\n\n this.importInput.value = null\n\n this.close()\n }\n\n exportAll() {\n if (this.templates.length == 0) {\n useToastStore().addAlert('No templates to export.')\n return\n }\n\n const json = JSON.stringify({ templates: this.templates }, null, 2) // convert the data to a JSON string\n const blob = new Blob([json], { type: 'application/json' })\n const url = URL.createObjectURL(blob)\n const a = $el('a', {\n href: url,\n download: 'node_templates.json',\n style: { display: 'none' },\n parent: document.body\n })\n a.click()\n setTimeout(function () {\n a.remove()\n window.URL.revokeObjectURL(url)\n }, 0)\n }\n\n show() {\n // Show list of template names + delete button\n super.show(\n $el(\n 'div',\n {},\n this.templates.flatMap((t, i) => {\n let nameInput\n return [\n $el(\n 'div',\n {\n dataset: { id: i.toString() },\n className: 'templateManagerRow',\n style: {\n display: 'grid',\n gridTemplateColumns: '1fr auto',\n border: '1px dashed transparent',\n gap: '5px',\n backgroundColor: 'var(--comfy-menu-bg)'\n },\n ondragstart: (e) => {\n this.draggedEl = e.currentTarget\n e.currentTarget.style.opacity = '0.6'\n e.currentTarget.style.border = '1px dashed yellow'\n e.dataTransfer.effectAllowed = 'move'\n e.dataTransfer.setDragImage(this.emptyImg, 0, 0)\n },\n ondragend: (e) => {\n e.target.style.opacity = '1'\n e.currentTarget.style.border = '1px dashed transparent'\n e.currentTarget.removeAttribute('draggable')\n\n // rearrange the elements\n this.element\n .querySelectorAll('.templateManagerRow')\n .forEach((el: HTMLElement, i) => {\n var prev_i = Number.parseInt(el.dataset.id)\n\n if (el == this.draggedEl && prev_i != i) {\n this.templates.splice(\n i,\n 0,\n this.templates.splice(prev_i, 1)[0]\n )\n }\n el.dataset.id = i.toString()\n })\n this.store()\n },\n ondragover: (e) => {\n e.preventDefault()\n if (e.currentTarget == this.draggedEl) return\n\n let rect = e.currentTarget.getBoundingClientRect()\n if (e.clientY > rect.top + rect.height / 2) {\n e.currentTarget.parentNode.insertBefore(\n this.draggedEl,\n e.currentTarget.nextSibling\n )\n } else {\n e.currentTarget.parentNode.insertBefore(\n this.draggedEl,\n e.currentTarget\n )\n }\n }\n },\n [\n $el(\n 'label',\n {\n textContent: 'Name: ',\n style: {\n cursor: 'grab'\n },\n onmousedown: (e) => {\n // enable dragging only from the label\n if (e.target.localName == 'label')\n e.currentTarget.parentNode.draggable = 'true'\n }\n },\n [\n $el('input', {\n value: t.name,\n dataset: { name: t.name },\n style: {\n transitionProperty: 'background-color',\n transitionDuration: '0s'\n },\n onchange: (e) => {\n clearTimeout(this.saveVisualCue)\n var el = e.target\n var row = el.parentNode.parentNode\n this.templates[row.dataset.id].name =\n el.value.trim() || 'untitled'\n this.store()\n el.style.backgroundColor = 'rgb(40, 95, 40)'\n el.style.transitionDuration = '0s'\n // @ts-expect-error\n // In browser env the return value is number.\n this.saveVisualCue = setTimeout(function () {\n el.style.transitionDuration = '.7s'\n el.style.backgroundColor = 'var(--comfy-input-bg)'\n }, 15)\n },\n onkeypress: (e) => {\n var el = e.target\n clearTimeout(this.saveVisualCue)\n el.style.transitionDuration = '0s'\n el.style.backgroundColor = 'var(--comfy-input-bg)'\n },\n $: (el) => (nameInput = el)\n })\n ]\n ),\n $el('div', {}, [\n $el('button', {\n textContent: 'Export',\n style: {\n fontSize: '12px',\n fontWeight: 'normal'\n },\n onclick: (e) => {\n const json = JSON.stringify({ templates: [t] }, null, 2) // convert the data to a JSON string\n const blob = new Blob([json], {\n type: 'application/json'\n })\n const url = URL.createObjectURL(blob)\n const a = $el('a', {\n href: url,\n download: (nameInput.value || t.name) + '.json',\n style: { display: 'none' },\n parent: document.body\n })\n a.click()\n setTimeout(function () {\n a.remove()\n window.URL.revokeObjectURL(url)\n }, 0)\n }\n }),\n $el('button', {\n textContent: 'Delete',\n style: {\n fontSize: '12px',\n color: 'red',\n fontWeight: 'normal'\n },\n onclick: (e) => {\n const item = e.target.parentNode.parentNode\n item.parentNode.removeChild(item)\n this.templates.splice(item.dataset.id * 1, 1)\n this.store()\n // update the rows index, setTimeout ensures that the list is updated\n var that = this\n setTimeout(function () {\n that.element\n .querySelectorAll('.templateManagerRow')\n .forEach((el: HTMLElement, i) => {\n el.dataset.id = i.toString()\n })\n }, 0)\n }\n })\n ])\n ]\n )\n ]\n })\n )\n )\n }\n}\n\napp.registerExtension({\n name: id,\n setup() {\n const manage = new ManageTemplates()\n\n const clipboardAction = async (cb) => {\n // We use the clipboard functions but dont want to overwrite the current user clipboard\n // Restore it after we've run our callback\n const old = localStorage.getItem('litegrapheditor_clipboard')\n await cb()\n localStorage.setItem('litegrapheditor_clipboard', old)\n }\n\n const orig = LGraphCanvas.prototype.getCanvasMenuOptions\n LGraphCanvas.prototype.getCanvasMenuOptions = function () {\n const options = orig.apply(this, arguments)\n\n options.push(null)\n options.push({\n content: `Save Selected as Template`,\n disabled: !Object.keys(app.canvas.selected_nodes || {}).length,\n callback: async () => {\n const name = await useDialogService().prompt({\n title: t('nodeTemplates.saveAsTemplate'),\n message: t('nodeTemplates.enterName'),\n defaultValue: ''\n })\n if (!name?.trim()) return\n\n clipboardAction(() => {\n app.canvas.copyToClipboard()\n let data = localStorage.getItem('litegrapheditor_clipboard')\n data = JSON.parse(data)\n const nodeIds = Object.keys(app.canvas.selected_nodes)\n for (let i = 0; i < nodeIds.length; i++) {\n const node = app.graph.getNodeById(nodeIds[i])\n const nodeData = node?.constructor.nodeData\n\n let groupData = GroupNodeHandler.getGroupData(node)\n if (groupData) {\n groupData = groupData.nodeData\n // @ts-expect-error\n if (!data.groupNodes) {\n // @ts-expect-error\n data.groupNodes = {}\n }\n // @ts-expect-error\n data.groupNodes[nodeData.name] = groupData\n // @ts-expect-error\n data.nodes[i].type = nodeData.name\n }\n }\n\n manage.templates.push({\n name,\n data: JSON.stringify(data)\n })\n manage.store()\n })\n }\n })\n\n // Map each template to a menu item\n const subItems = manage.templates.map((t) => {\n return {\n content: t.name,\n callback: () => {\n clipboardAction(async () => {\n const data = JSON.parse(t.data)\n await GroupNodeConfig.registerFromWorkflow(data.groupNodes, {})\n\n // Check for old clipboard format\n if (!data.reroutes) {\n deserialiseAndCreate(t.data, app.canvas)\n } else {\n localStorage.setItem('litegrapheditor_clipboard', t.data)\n app.canvas.pasteFromClipboard()\n }\n })\n }\n }\n })\n\n subItems.push(null, {\n content: 'Manage',\n callback: () => manage.show()\n })\n\n options.push({\n content: 'Node Templates',\n submenu: {\n options: subItems\n }\n })\n\n return options\n }\n }\n})\n","// @ts-strict-ignore\nimport { LGraphCanvas, LiteGraph } from '@comfyorg/litegraph'\nimport { LGraphNode } from '@comfyorg/litegraph'\n\nimport { app } from '../../scripts/app'\nimport { ComfyWidgets } from '../../scripts/widgets'\n\n// Node that add notes to your project\n\napp.registerExtension({\n name: 'Comfy.NoteNode',\n registerCustomNodes() {\n class NoteNode extends LGraphNode {\n static category: string\n\n color = LGraphCanvas.node_colors.yellow.color\n bgcolor = LGraphCanvas.node_colors.yellow.bgcolor\n groupcolor = LGraphCanvas.node_colors.yellow.groupcolor\n isVirtualNode: boolean\n collapsable: boolean\n title_mode: number\n\n constructor(title?: string) {\n super(title)\n if (!this.properties) {\n this.properties = { text: '' }\n }\n ComfyWidgets.STRING(\n // Should we extends LGraphNode? Yesss\n this,\n '',\n ['', { default: this.properties.text, multiline: true }],\n app\n )\n\n this.serialize_widgets = true\n this.isVirtualNode = true\n }\n }\n\n // Load default visibility\n\n LiteGraph.registerNodeType(\n 'Note',\n Object.assign(NoteNode, {\n title_mode: LiteGraph.NORMAL_TITLE,\n title: 'Note',\n collapsable: true\n })\n )\n\n NoteNode.category = 'utils'\n\n /** Markdown variant of NoteNode */\n class MarkdownNoteNode extends LGraphNode {\n static title = 'Markdown Note'\n\n color = LGraphCanvas.node_colors.yellow.color\n bgcolor = LGraphCanvas.node_colors.yellow.bgcolor\n groupcolor = LGraphCanvas.node_colors.yellow.groupcolor\n\n constructor(title?: string) {\n super(title)\n if (!this.properties) {\n this.properties = { text: '' }\n }\n ComfyWidgets.MARKDOWN(\n this,\n '',\n ['', { default: this.properties.text }],\n app\n )\n\n this.serialize_widgets = true\n this.isVirtualNode = true\n }\n }\n\n LiteGraph.registerNodeType('MarkdownNote', MarkdownNoteNode)\n MarkdownNoteNode.category = 'utils'\n }\n})\n","// @ts-strict-ignore\nimport type { IContextMenuValue } from '@comfyorg/litegraph'\nimport { LGraphCanvas, LGraphNode, LiteGraph } from '@comfyorg/litegraph'\n\nimport { app } from '../../scripts/app'\nimport { getWidgetConfig, mergeIfValid, setWidgetConfig } from './widgetInputs'\n\n// Node that allows you to redirect connections for cleaner graphs\n\napp.registerExtension({\n name: 'Comfy.RerouteNode',\n registerCustomNodes(app) {\n interface RerouteNode extends LGraphNode {\n __outputType?: string\n }\n\n class RerouteNode extends LGraphNode {\n static category: string | undefined\n static defaultVisibility = false\n\n constructor(title?: string) {\n super(title)\n if (!this.properties) {\n this.properties = {}\n }\n this.properties.showOutputText = RerouteNode.defaultVisibility\n this.properties.horizontal = false\n\n this.addInput('', '*')\n this.addOutput(this.properties.showOutputText ? '*' : '', '*')\n\n this.onAfterGraphConfigured = function () {\n requestAnimationFrame(() => {\n this.onConnectionsChange(LiteGraph.INPUT, null, true, null)\n })\n }\n\n this.onConnectionsChange = (type, index, connected, link_info) => {\n if (app.configuringGraph) return\n this.applyOrientation()\n\n // Prevent multiple connections to different types when we have no input\n if (connected && type === LiteGraph.OUTPUT) {\n // Ignore wildcard nodes as these will be updated to real types\n const types = new Set(\n this.outputs[0].links\n .map((l) => app.graph.links[l].type)\n .filter((t) => t !== '*')\n )\n if (types.size > 1) {\n const linksToDisconnect = []\n for (let i = 0; i < this.outputs[0].links.length - 1; i++) {\n const linkId = this.outputs[0].links[i]\n const link = app.graph.links[linkId]\n linksToDisconnect.push(link)\n }\n for (const link of linksToDisconnect) {\n const node = app.graph.getNodeById(link.target_id)\n node.disconnectInput(link.target_slot)\n }\n }\n }\n\n // Find root input\n let currentNode: LGraphNode | null = this\n let updateNodes = []\n let inputType = null\n let inputNode = null\n while (currentNode) {\n updateNodes.unshift(currentNode)\n const linkId = currentNode.inputs[0].link\n if (linkId !== null) {\n const link = app.graph.links[linkId]\n if (!link) return\n const node = app.graph.getNodeById(link.origin_id)\n const type = node.constructor.type\n if (type === 'Reroute') {\n if (node === this) {\n // We've found a circle\n currentNode.disconnectInput(link.target_slot)\n currentNode = null\n } else {\n // Move the previous node\n currentNode = node\n }\n } else {\n // We've found the end\n inputNode = currentNode\n inputType = node.outputs[link.origin_slot]?.type ?? null\n break\n }\n } else {\n // This path has no input node\n currentNode = null\n break\n }\n }\n\n // Find all outputs\n const nodes: LGraphNode[] = [this]\n let outputType = null\n while (nodes.length) {\n currentNode = nodes.pop()\n const outputs =\n (currentNode.outputs ? currentNode.outputs[0].links : []) || []\n if (outputs.length) {\n for (const linkId of outputs) {\n const link = app.graph.links[linkId]\n\n // When disconnecting sometimes the link is still registered\n if (!link) continue\n\n const node = app.graph.getNodeById(link.target_id)\n const type = node.constructor.type\n\n if (type === 'Reroute') {\n // Follow reroute nodes\n nodes.push(node)\n updateNodes.push(node)\n } else {\n // We've found an output\n const nodeOutType =\n node.inputs &&\n node.inputs[link?.target_slot] &&\n node.inputs[link.target_slot].type\n ? node.inputs[link.target_slot].type\n : null\n if (\n inputType &&\n !LiteGraph.isValidConnection(inputType, nodeOutType)\n ) {\n // The output doesnt match our input so disconnect it\n node.disconnectInput(link.target_slot)\n } else {\n outputType = nodeOutType\n }\n }\n }\n } else {\n // No more outputs for this path\n }\n }\n\n const displayType = inputType || outputType || '*'\n const color = LGraphCanvas.link_type_colors[displayType]\n\n let widgetConfig\n let targetWidget\n let widgetType\n // Update the types of each node\n for (const node of updateNodes) {\n // If we dont have an input type we are always wildcard but we'll show the output type\n // This lets you change the output link to a different type and all nodes will update\n node.outputs[0].type = inputType || '*'\n node.__outputType = displayType\n node.outputs[0].name = node.properties.showOutputText\n ? displayType\n : ''\n node.size = node.computeSize()\n node.applyOrientation()\n\n for (const l of node.outputs[0].links || []) {\n const link = app.graph.links[l]\n if (link) {\n link.color = color\n\n if (app.configuringGraph) continue\n const targetNode = app.graph.getNodeById(link.target_id)\n const targetInput = targetNode.inputs?.[link.target_slot]\n if (targetInput?.widget) {\n const config = getWidgetConfig(targetInput)\n if (!widgetConfig) {\n widgetConfig = config[1] ?? {}\n widgetType = config[0]\n }\n if (!targetWidget) {\n targetWidget = targetNode.widgets?.find(\n (w) => w.name === (targetInput.widget as any).name\n )\n }\n\n const merged = mergeIfValid(targetInput, [\n config[0],\n widgetConfig\n ])\n if (merged.customConfig) {\n widgetConfig = merged.customConfig\n }\n }\n }\n }\n }\n\n for (const node of updateNodes) {\n if (widgetConfig && outputType) {\n node.inputs[0].widget = { name: 'value' }\n setWidgetConfig(\n node.inputs[0],\n [widgetType ?? displayType, widgetConfig],\n targetWidget\n )\n } else {\n setWidgetConfig(node.inputs[0], null)\n }\n }\n\n if (inputNode) {\n const link = app.graph.links[inputNode.inputs[0].link]\n if (link) {\n link.color = color\n }\n }\n }\n\n this.clone = function () {\n const cloned = RerouteNode.prototype.clone.apply(this)\n cloned.removeOutput(0)\n cloned.addOutput(this.properties.showOutputText ? '*' : '', '*')\n cloned.size = cloned.computeSize()\n return cloned\n }\n\n // This node is purely frontend and does not impact the resulting prompt so should not be serialized\n this.isVirtualNode = true\n }\n\n getExtraMenuOptions(_, options): IContextMenuValue[] {\n options.unshift(\n {\n content:\n (this.properties.showOutputText ? 'Hide' : 'Show') + ' Type',\n callback: () => {\n this.properties.showOutputText = !this.properties.showOutputText\n if (this.properties.showOutputText) {\n this.outputs[0].name =\n this.__outputType || (this.outputs[0].type as string)\n } else {\n this.outputs[0].name = ''\n }\n this.size = this.computeSize()\n this.applyOrientation()\n app.graph.setDirtyCanvas(true, true)\n }\n },\n {\n content:\n (RerouteNode.defaultVisibility ? 'Hide' : 'Show') +\n ' Type By Default',\n callback: () => {\n RerouteNode.setDefaultTextVisibility(\n !RerouteNode.defaultVisibility\n )\n }\n },\n {\n // naming is inverted with respect to LiteGraphNode.horizontal\n // LiteGraphNode.horizontal == true means that\n // each slot in the inputs and outputs are laid out horizontally,\n // which is the opposite of the visual orientation of the inputs and outputs as a node\n content:\n 'Set ' + (this.properties.horizontal ? 'Horizontal' : 'Vertical'),\n callback: () => {\n this.properties.horizontal = !this.properties.horizontal\n this.applyOrientation()\n }\n }\n )\n return []\n }\n applyOrientation() {\n this.horizontal = this.properties.horizontal\n if (this.horizontal) {\n // we correct the input position, because LiteGraphNode.horizontal\n // doesn't account for title presence\n // which reroute nodes don't have\n this.inputs[0].pos = [this.size[0] / 2, 0]\n } else {\n delete this.inputs[0].pos\n }\n app.graph.setDirtyCanvas(true, true)\n }\n\n computeSize(): [number, number] {\n return [\n this.properties.showOutputText && this.outputs && this.outputs.length\n ? Math.max(\n 75,\n LiteGraph.NODE_TEXT_SIZE * this.outputs[0].name.length * 0.6 +\n 40\n )\n : 75,\n 26\n ]\n }\n\n static setDefaultTextVisibility(visible) {\n RerouteNode.defaultVisibility = visible\n if (visible) {\n localStorage['Comfy.RerouteNode.DefaultVisibility'] = 'true'\n } else {\n delete localStorage['Comfy.RerouteNode.DefaultVisibility']\n }\n }\n }\n\n // Load default visibility\n RerouteNode.setDefaultTextVisibility(\n !!localStorage['Comfy.RerouteNode.DefaultVisibility']\n )\n\n LiteGraph.registerNodeType(\n 'Reroute',\n Object.assign(RerouteNode, {\n title_mode: LiteGraph.NO_TITLE,\n title: 'Reroute',\n collapsable: false\n })\n )\n\n RerouteNode.category = 'utils'\n }\n})\n","// @ts-strict-ignore\nimport { app } from '../../scripts/app'\nimport { applyTextReplacements } from '../../scripts/utils'\n\n// Use widget values and dates in output filenames\n\napp.registerExtension({\n name: 'Comfy.SaveImageExtraOutput',\n async beforeRegisterNodeDef(nodeType, nodeData, app) {\n if (nodeData.name === 'SaveImage' || nodeData.name === 'SaveAnimatedWEBP') {\n const onNodeCreated = nodeType.prototype.onNodeCreated\n // When the SaveImage node is created we want to override the serialization of the output name widget to run our S&R\n nodeType.prototype.onNodeCreated = function () {\n const r = onNodeCreated\n ? onNodeCreated.apply(this, arguments)\n : undefined\n\n const widget = this.widgets.find((w) => w.name === 'filename_prefix')\n widget.serializeValue = () => {\n return applyTextReplacements(app, widget.value)\n }\n\n return r\n }\n } else {\n // When any other node is created add a property to alias the node\n const onNodeCreated = nodeType.prototype.onNodeCreated\n nodeType.prototype.onNodeCreated = function () {\n const r = onNodeCreated\n ? onNodeCreated.apply(this, arguments)\n : undefined\n\n if (!this.properties || !('Node name for S&R' in this.properties)) {\n this.addProperty('Node name for S&R', this.constructor.type, 'string')\n }\n\n return r\n }\n }\n }\n})\n","// @ts-strict-ignore\nimport { LGraphCanvas, LiteGraph } from '@comfyorg/litegraph'\n\nimport { app } from '../../scripts/app'\n\nlet touchZooming\nlet touchCount = 0\n\napp.registerExtension({\n name: 'Comfy.SimpleTouchSupport',\n setup() {\n let touchDist\n let touchTime\n let lastTouch\n let lastScale\n function getMultiTouchPos(e) {\n return Math.hypot(\n e.touches[0].clientX - e.touches[1].clientX,\n e.touches[0].clientY - e.touches[1].clientY\n )\n }\n\n function getMultiTouchCenter(e) {\n return {\n clientX: (e.touches[0].clientX + e.touches[1].clientX) / 2,\n clientY: (e.touches[0].clientY + e.touches[1].clientY) / 2\n }\n }\n\n app.canvasEl.parentElement.addEventListener(\n 'touchstart',\n (e: TouchEvent) => {\n touchCount++\n lastTouch = null\n lastScale = null\n if (e.touches?.length === 1) {\n // Store start time for press+hold for context menu\n touchTime = new Date()\n lastTouch = e.touches[0]\n } else {\n touchTime = null\n if (e.touches?.length === 2) {\n // Store center pos for zoom\n lastScale = app.canvas.ds.scale\n lastTouch = getMultiTouchCenter(e)\n\n touchDist = getMultiTouchPos(e)\n app.canvas.pointer.isDown = false\n }\n }\n },\n true\n )\n\n app.canvasEl.parentElement.addEventListener('touchend', (e: TouchEvent) => {\n touchCount--\n\n if (e.touches?.length !== 1) touchZooming = false\n if (touchTime && !e.touches?.length) {\n if (new Date().getTime() - touchTime > 600) {\n if (e.target === app.canvasEl) {\n app.canvasEl.dispatchEvent(\n new PointerEvent('pointerdown', {\n button: 2,\n clientX: e.changedTouches[0].clientX,\n clientY: e.changedTouches[0].clientY\n })\n )\n e.preventDefault()\n }\n }\n touchTime = null\n }\n })\n\n app.canvasEl.parentElement.addEventListener(\n 'touchmove',\n (e) => {\n touchTime = null\n if (e.touches?.length === 2 && lastTouch && !e.ctrlKey && !e.shiftKey) {\n e.preventDefault() // Prevent browser from zooming when two textareas are touched\n app.canvas.pointer.isDown = false\n touchZooming = true\n\n LiteGraph.closeAllContextMenus(window)\n // @ts-expect-error\n app.canvas.search_box?.close()\n const newTouchDist = getMultiTouchPos(e)\n\n const center = getMultiTouchCenter(e)\n\n let scale = (lastScale * newTouchDist) / touchDist\n\n const newX = (center.clientX - lastTouch.clientX) / scale\n const newY = (center.clientY - lastTouch.clientY) / scale\n\n // Code from LiteGraph\n if (scale < app.canvas.ds.min_scale) {\n scale = app.canvas.ds.min_scale\n } else if (scale > app.canvas.ds.max_scale) {\n scale = app.canvas.ds.max_scale\n }\n\n const oldScale = app.canvas.ds.scale\n\n app.canvas.ds.scale = scale\n\n // Code from LiteGraph\n if (Math.abs(app.canvas.ds.scale - 1) < 0.01) {\n app.canvas.ds.scale = 1\n }\n\n const newScale = app.canvas.ds.scale\n\n const convertScaleToOffset = (scale) => [\n center.clientX / scale - app.canvas.ds.offset[0],\n center.clientY / scale - app.canvas.ds.offset[1]\n ]\n var oldCenter = convertScaleToOffset(oldScale)\n var newCenter = convertScaleToOffset(newScale)\n\n app.canvas.ds.offset[0] += newX + newCenter[0] - oldCenter[0]\n app.canvas.ds.offset[1] += newY + newCenter[1] - oldCenter[1]\n\n lastTouch.clientX = center.clientX\n lastTouch.clientY = center.clientY\n\n app.canvas.setDirty(true, true)\n }\n },\n true\n )\n }\n})\n\nconst processMouseDown = LGraphCanvas.prototype.processMouseDown\nLGraphCanvas.prototype.processMouseDown = function (e) {\n if (touchZooming || touchCount) {\n return\n }\n app.canvas.pointer.isDown = false // Prevent context menu from opening on second tap\n return processMouseDown.apply(this, arguments)\n}\n\nconst processMouseMove = LGraphCanvas.prototype.processMouseMove\nLGraphCanvas.prototype.processMouseMove = function (e) {\n if (touchZooming || touchCount > 1) {\n return\n }\n return processMouseMove.apply(this, arguments)\n}\n","import { LiteGraph } from '@comfyorg/litegraph'\n\nimport { app } from '../../scripts/app'\nimport { ComfyWidgets } from '../../scripts/widgets'\n\n// Adds defaults for quickly adding nodes with middle click on the input/output\n\napp.registerExtension({\n name: 'Comfy.SlotDefaults',\n suggestionsNumber: null,\n init() {\n LiteGraph.search_filter_enabled = true\n LiteGraph.middle_click_slot_add_default_node = true\n this.suggestionsNumber = app.ui.settings.addSetting({\n id: 'Comfy.NodeSuggestions.number',\n category: ['Comfy', 'Node Search Box', 'NodeSuggestions'],\n name: 'Number of nodes suggestions',\n tooltip: 'Only for litegraph searchbox/context menu',\n type: 'slider',\n attrs: {\n min: 1,\n max: 100,\n step: 1\n },\n defaultValue: 5,\n onChange: (newVal, oldVal) => {\n this.setDefaults(newVal)\n }\n })\n },\n slot_types_default_out: {},\n slot_types_default_in: {},\n async beforeRegisterNodeDef(nodeType, nodeData, app) {\n var nodeId = nodeData.name\n const inputs = nodeData['input']?.['required'] //only show required inputs to reduce the mess also not logical to create node with optional inputs\n for (const inputKey in inputs) {\n var input = inputs[inputKey]\n if (typeof input[0] !== 'string') continue\n\n var type = input[0]\n if (type in ComfyWidgets) {\n var customProperties = input[1]\n if (!customProperties?.forceInput) continue //ignore widgets that don't force input\n }\n\n if (!(type in this.slot_types_default_out)) {\n this.slot_types_default_out[type] = ['Reroute']\n }\n if (this.slot_types_default_out[type].includes(nodeId)) continue\n this.slot_types_default_out[type].push(nodeId)\n\n // Input types have to be stored as lower case\n // Store each node that can handle this input type\n const lowerType = type.toLocaleLowerCase()\n if (!(lowerType in LiteGraph.registered_slot_in_types)) {\n LiteGraph.registered_slot_in_types[lowerType] = { nodes: [] }\n }\n LiteGraph.registered_slot_in_types[lowerType].nodes.push(\n // @ts-expect-error ComfyNode\n nodeType.comfyClass\n )\n }\n\n var outputs = nodeData['output'] ?? []\n for (const el of outputs) {\n const type = el as string\n if (!(type in this.slot_types_default_in)) {\n this.slot_types_default_in[type] = ['Reroute'] // [\"Reroute\", \"Primitive\"]; primitive doesn't always work :'()\n }\n\n this.slot_types_default_in[type].push(nodeId)\n\n // Store each node that can handle this output type\n if (!(type in LiteGraph.registered_slot_out_types)) {\n LiteGraph.registered_slot_out_types[type] = { nodes: [] }\n }\n // @ts-expect-error ComfyNode\n LiteGraph.registered_slot_out_types[type].nodes.push(nodeType.comfyClass)\n\n if (!LiteGraph.slot_types_out.includes(type)) {\n LiteGraph.slot_types_out.push(type)\n }\n }\n\n var maxNum = this.suggestionsNumber.value\n this.setDefaults(maxNum)\n },\n setDefaults(maxNum?: number | null) {\n LiteGraph.slot_types_default_out = {}\n LiteGraph.slot_types_default_in = {}\n\n for (const type in this.slot_types_default_out) {\n LiteGraph.slot_types_default_out[type] = this.slot_types_default_out[\n type\n ].slice(0, maxNum)\n }\n for (const type in this.slot_types_default_in) {\n LiteGraph.slot_types_default_in[type] = this.slot_types_default_in[\n type\n ].slice(0, maxNum)\n }\n }\n})\n","// @ts-strict-ignore\nimport type { IWidget } from '@comfyorg/litegraph'\n\nimport type { DOMWidget } from '@/scripts/domWidget'\nimport { useToastStore } from '@/stores/toastStore'\nimport { ComfyNodeDef } from '@/types/apiTypes'\n\nimport { api } from '../../scripts/api'\nimport { app } from '../../scripts/app'\n\ntype FolderType = 'input' | 'output' | 'temp'\n\nfunction splitFilePath(path: string): [string, string] {\n const folder_separator = path.lastIndexOf('/')\n if (folder_separator === -1) {\n return ['', path]\n }\n return [\n path.substring(0, folder_separator),\n path.substring(folder_separator + 1)\n ]\n}\n\nfunction getResourceURL(\n subfolder: string,\n filename: string,\n type: FolderType = 'input'\n): string {\n const params = [\n 'filename=' + encodeURIComponent(filename),\n 'type=' + type,\n 'subfolder=' + subfolder,\n app.getRandParam().substring(1)\n ].join('&')\n\n return `/view?${params}`\n}\n\nasync function uploadFile(\n audioWidget: IWidget,\n audioUIWidget: DOMWidget,\n file: File,\n updateNode: boolean,\n pasted: boolean = false\n) {\n try {\n // Wrap file in formdata so it includes filename\n const body = new FormData()\n body.append('image', file)\n if (pasted) body.append('subfolder', 'pasted')\n const resp = await api.fetchApi('/upload/image', {\n method: 'POST',\n body\n })\n\n if (resp.status === 200) {\n const data = await resp.json()\n // Add the file to the dropdown list and update the widget value\n let path = data.name\n if (data.subfolder) path = data.subfolder + '/' + path\n\n if (!audioWidget.options.values.includes(path)) {\n audioWidget.options.values.push(path)\n }\n\n if (updateNode) {\n audioUIWidget.element.src = api.apiURL(\n getResourceURL(...splitFilePath(path))\n )\n audioWidget.value = path\n }\n } else {\n useToastStore().addAlert(resp.status + ' - ' + resp.statusText)\n }\n } catch (error) {\n useToastStore().addAlert(error)\n }\n}\n\n// AudioWidget MUST be registered first, as AUDIOUPLOAD depends on AUDIO_UI to be\n// present.\napp.registerExtension({\n name: 'Comfy.AudioWidget',\n async beforeRegisterNodeDef(nodeType, nodeData) {\n if (\n // @ts-expect-error ComfyNode\n ['LoadAudio', 'SaveAudio', 'PreviewAudio'].includes(nodeType.comfyClass)\n ) {\n nodeData.input.required.audioUI = ['AUDIO_UI']\n }\n },\n getCustomWidgets() {\n return {\n AUDIO_UI(node, inputName: string) {\n const audio = document.createElement('audio')\n audio.controls = true\n audio.classList.add('comfy-audio')\n audio.setAttribute('name', 'media')\n\n const audioUIWidget: DOMWidget =\n node.addDOMWidget(inputName, /* name=*/ 'audioUI', audio, {\n serialize: false\n })\n\n const isOutputNode = node.constructor.nodeData.output_node\n if (isOutputNode) {\n // Hide the audio widget when there is no audio initially.\n audioUIWidget.element.classList.add('empty-audio-widget')\n // Populate the audio widget UI on node execution.\n const onExecuted = node.onExecuted\n node.onExecuted = function (message: any) {\n onExecuted?.apply(this, arguments)\n const audios = message.audio\n if (!audios) return\n const audio = audios[0]\n audioUIWidget.element.src = api.apiURL(\n getResourceURL(audio.subfolder, audio.filename, audio.type)\n )\n audioUIWidget.element.classList.remove('empty-audio-widget')\n }\n }\n return { widget: audioUIWidget }\n }\n }\n },\n onNodeOutputsUpdated(nodeOutputs: Record) {\n for (const [nodeId, output] of Object.entries(nodeOutputs)) {\n const node = app.graph.getNodeById(nodeId)\n if ('audio' in output) {\n const audioUIWidget = node.widgets.find(\n (w) => w.name === 'audioUI'\n ) as unknown as DOMWidget\n const audio = output.audio[0]\n audioUIWidget.element.src = api.apiURL(\n getResourceURL(audio.subfolder, audio.filename, audio.type)\n )\n audioUIWidget.element.classList.remove('empty-audio-widget')\n }\n }\n }\n})\n\napp.registerExtension({\n name: 'Comfy.UploadAudio',\n async beforeRegisterNodeDef(nodeType, nodeData: ComfyNodeDef) {\n if (nodeData?.input?.required?.audio?.[1]?.audio_upload === true) {\n nodeData.input.required.upload = ['AUDIOUPLOAD']\n }\n },\n getCustomWidgets() {\n return {\n AUDIOUPLOAD(node, inputName: string) {\n // The widget that allows user to select file.\n const audioWidget: IWidget = node.widgets.find(\n (w: IWidget) => w.name === 'audio'\n )\n const audioUIWidget = node.widgets.find(\n (w: IWidget) => w.name === 'audioUI'\n ) as unknown as DOMWidget\n\n const onAudioWidgetUpdate = () => {\n audioUIWidget.element.src = api.apiURL(\n getResourceURL(...splitFilePath(audioWidget.value as string))\n )\n }\n // Initially load default audio file to audioUIWidget.\n if (audioWidget.value) {\n onAudioWidgetUpdate()\n }\n audioWidget.callback = onAudioWidgetUpdate\n\n // Load saved audio file widget values if restoring from workflow\n const onGraphConfigured = node.onGraphConfigured\n node.onGraphConfigured = function () {\n onGraphConfigured?.apply(this, arguments)\n if (audioWidget.value) {\n onAudioWidgetUpdate()\n }\n }\n\n const fileInput = document.createElement('input')\n fileInput.type = 'file'\n fileInput.accept = 'audio/*'\n fileInput.style.display = 'none'\n fileInput.onchange = () => {\n if (fileInput.files.length) {\n uploadFile(audioWidget, audioUIWidget, fileInput.files[0], true)\n }\n }\n // The widget to pop up the upload dialog.\n const uploadWidget = node.addWidget(\n 'button',\n inputName,\n /* value=*/ '',\n () => {\n fileInput.click()\n },\n { serialize: false }\n )\n uploadWidget.label = 'choose file to upload'\n\n return { widget: uploadWidget }\n }\n }\n }\n})\n","import { ComfyNodeDef } from '@/types/apiTypes'\n\nimport { app } from '../../scripts/app'\n\n// Adds an upload button to the nodes\n\napp.registerExtension({\n name: 'Comfy.UploadImage',\n beforeRegisterNodeDef(nodeType, nodeData: ComfyNodeDef) {\n if (nodeData?.input?.required?.image?.[1]?.image_upload === true) {\n nodeData.input.required.upload = ['IMAGEUPLOAD']\n }\n }\n})\n","// @ts-strict-ignore\nimport { useToastStore } from '@/stores/toastStore'\n\nimport { api } from '../../scripts/api'\nimport { app } from '../../scripts/app'\n\nconst WEBCAM_READY = Symbol()\n\napp.registerExtension({\n name: 'Comfy.WebcamCapture',\n getCustomWidgets(app) {\n return {\n WEBCAM(node, inputName) {\n let res\n node[WEBCAM_READY] = new Promise((resolve) => (res = resolve))\n\n const container = document.createElement('div')\n container.style.background = 'rgba(0,0,0,0.25)'\n container.style.textAlign = 'center'\n\n const video = document.createElement('video')\n video.style.height = video.style.width = '100%'\n\n const loadVideo = async () => {\n try {\n const stream = await navigator.mediaDevices.getUserMedia({\n video: true,\n audio: false\n })\n container.replaceChildren(video)\n\n setTimeout(() => res(video), 500) // Fallback as loadedmetadata doesnt fire sometimes?\n video.addEventListener('loadedmetadata', () => res(video), false)\n video.srcObject = stream\n video.play()\n } catch (error) {\n const label = document.createElement('div')\n label.style.color = 'red'\n label.style.overflow = 'auto'\n label.style.maxHeight = '100%'\n label.style.whiteSpace = 'pre-wrap'\n\n if (window.isSecureContext) {\n label.textContent =\n 'Unable to load webcam, please ensure access is granted:\\n' +\n error.message\n } else {\n label.textContent =\n 'Unable to load webcam. A secure context is required, if you are not accessing ComfyUI on localhost (127.0.0.1) you will have to enable TLS (https)\\n\\n' +\n error.message\n }\n\n container.replaceChildren(label)\n }\n }\n\n loadVideo()\n\n return { widget: node.addDOMWidget(inputName, 'WEBCAM', container) }\n }\n }\n },\n nodeCreated(node) {\n if ((node.type, node.constructor.comfyClass !== 'WebcamCapture')) return\n\n let video\n const camera = node.widgets.find((w) => w.name === 'image')\n const w = node.widgets.find((w) => w.name === 'width')\n const h = node.widgets.find((w) => w.name === 'height')\n const captureOnQueue = node.widgets.find(\n (w) => w.name === 'capture_on_queue'\n )\n\n const canvas = document.createElement('canvas')\n\n const capture = () => {\n // @ts-expect-error widget value type narrow down\n canvas.width = w.value\n // @ts-expect-error widget value type narrow down\n canvas.height = h.value\n const ctx = canvas.getContext('2d')\n // @ts-expect-error widget value type narrow down\n ctx.drawImage(video, 0, 0, w.value, h.value)\n const data = canvas.toDataURL('image/png')\n\n const img = new Image()\n img.onload = () => {\n node.imgs = [img]\n app.graph.setDirtyCanvas(true)\n requestAnimationFrame(() => {\n node.setSizeForImage?.()\n })\n }\n img.src = data\n }\n\n const btn = node.addWidget(\n 'button',\n 'waiting for camera...',\n 'capture',\n capture\n )\n btn.disabled = true\n // @ts-expect-error hacky override\n btn.serializeValue = () => undefined\n\n // @ts-expect-error hacky override\n camera.serializeValue = async () => {\n if (captureOnQueue.value) {\n capture()\n } else if (!node.imgs?.length) {\n const err = `No webcam image captured`\n useToastStore().addAlert(err)\n throw new Error(err)\n }\n\n // Upload image to temp storage\n const blob = await new Promise((r) => canvas.toBlob(r))\n const name = `${+new Date()}.png`\n const file = new File([blob], name)\n const body = new FormData()\n body.append('image', file)\n body.append('subfolder', 'webcam')\n body.append('type', 'temp')\n const resp = await api.fetchApi('/upload/image', {\n method: 'POST',\n body\n })\n if (resp.status !== 200) {\n const err = `Error uploading camera image: ${resp.status} - ${resp.statusText}`\n useToastStore().addAlert(err)\n throw new Error(err)\n }\n return `webcam/${name} [temp]`\n }\n\n node[WEBCAM_READY].then((v) => {\n video = v\n // If width isnt specified then use video output resolution\n if (!w.value) {\n w.value = video.videoWidth || 640\n h.value = video.videoHeight || 480\n }\n btn.disabled = false\n btn.label = 'capture'\n })\n }\n})\n"],"names":["self","td","app","ext","electronAPI","getElectronAPI","PREFIX","SEPARATOR","type","t","id","links","widget","max","w","def","node","link","i","fill","group","b2","te","tmp","sign","_color","data","tmp2","indices","intersects","intersect","width","height","depth","fov","aspect","renderer","scene","alpha","attributes","precision","x","_frustum","drawBuffers","scissor","viewport","_canvas","err","texture","cameraL","cameraR","cameras","cameraXR","info","chunkOffset","_projScreenMatrix","_vector3","stencil","bits","drawCount","materials","currentRenderList","parameters","reverseDepthBuffer","framebuffer","_vA","_vB","_vC","_identityMatrix","index","l","_ray","t2","vertex","detail","radius","azimuth","px","py","bs","contour","p","q","file","json","loadImage","now","shapes","tmpPath","tmpShape","document","_a","_b","dat","fl","Deflate","AsyncDeflate","Inflate","AsyncInflate","Gzip","AsyncGzip","Gunzip","AsyncGunzip","Zlib","AsyncZlib","Unzlib","AsyncUnzlib","Decompress","AsyncDecompress","DecodeUTF8","EncodeUTF8","ZipPassThrough","ZipDeflate","AsyncZipDeflate","Zip","UnzipPassThrough","UnzipInflate","AsyncUnzipInflate","Unzip","final","e","r","j","NURBSUtils.calcBSplinePoint","NURBSUtils.calcNURBSDerivatives","child","material","skeleton","fflate.unzlibSync","_geometry","_tempA","_morphA","object","morphTargetsRelative","a","b","c","il","res","URL","sourceURI","accessor","name","uploadFile","getResourceURL","splitFilePath","THREE.Scene","THREE.PerspectiveCamera","THREE.OrthographicCamera","THREE.WebGLRenderer","THREE.Clock","THREE.GridHelper","THREE.MeshNormalMaterial","THREE.DoubleSide","THREE.Vector2","THREE.MeshBasicMaterial","THREE.MeshDepthMaterial","THREE.BasicDepthPacking","THREE.LinearSRGBColorSpace","THREE.SRGBColorSpace","THREE.Mesh","THREE.AmbientLight","THREE.DirectionalLight","THREE.Group","THREE.Box3","THREE.Vector3","THREE.ACESFilmicToneMapping","THREE.Color","THREE.MeshStandardMaterial","THREE.AnimationMixer","action","THREE.LoopRepeat","animationSelect","load3d","PointerType","CompositionOperation","y","BrushShape","Tools","MaskBlendMode","ColorComparisonMethod","point","scale","audio"],"mappings":"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B,MAAM,WAAW;AAEjB,MAAM,aAAa;AAEnB,MAAM,WAAW;AAEjB,MAAM,aAAa;AAEnB,MAAM,WAAW;AAEjB,MAAM,aAAa;AAEnB,MAAM,WAAW;AAEjB,MAAM,aAAa;AAEnB,MAAM,WAAW;AAEjB,MAAM,aAAa;AAEnB,MAAM,WAAW;AAEjB,MAAM,aAAa;AAEnB,MAAM,WAAW;AAEjB,MAAM,aAAa;AAEnB,MAAM,WAAW;AAEjB,MAAM,aAAa;AAEnB,MAAM,WAAW;AAEjB,MAAM,aAAa;AAEnB,MAAM,WAAW;AAEjB,MAAM,aAAa;AAEnB,MAAM,WAAW;AAEjB,MAAM,aAAa;AAEnB,MAAM,WAAW;AAEjB,MAAM,aAAa;AAEnB,MAAM,WAAW;AAEjB,MAAM,aAAa;AAEnB,MAAM,WAAW;AAEjB,MAAM,aAAa;AAEnB,MAAM,cAAc;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA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AA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA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","x_google_ignoreList":[10,11,12,13,14,15,16,17,18,19,20]} \ No newline at end of file diff --git a/web/assets/index-VIBj2YvH.js b/web/assets/index-B7ycxfFq.js similarity index 93% rename from web/assets/index-VIBj2YvH.js rename to web/assets/index-B7ycxfFq.js index 52ebb320092..2cfff2fa400 100644 --- a/web/assets/index-VIBj2YvH.js +++ b/web/assets/index-B7ycxfFq.js @@ -1,6 +1,6 @@ var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -import { ct as script$1, H as createBaseVNode, o as openBlock, f as createElementBlock, D as mergeProps } from "./index-BbhVsmQe.js"; +import { ct as script$1, H as createBaseVNode, o as openBlock, f as createElementBlock, D as mergeProps } from "./index-C4Fk50Nx.js"; var script = { name: "PlusIcon", "extends": script$1 @@ -24,4 +24,4 @@ script.render = render; export { script as s }; -//# sourceMappingURL=index-VIBj2YvH.js.map +//# sourceMappingURL=index-B7ycxfFq.js.map diff --git a/web/assets/index-B7ycxfFq.js.map b/web/assets/index-B7ycxfFq.js.map new file mode 100644 index 00000000000..8e4cd051e74 --- /dev/null +++ b/web/assets/index-B7ycxfFq.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index-B7ycxfFq.js","sources":["../../node_modules/@primevue/icons/plus/index.mjs"],"sourcesContent":["import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'PlusIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M7.67742 6.32258V0.677419C7.67742 0.497757 7.60605 0.325452 7.47901 0.198411C7.35197 0.0713707 7.17966 0 7 0C6.82034 0 6.64803 0.0713707 6.52099 0.198411C6.39395 0.325452 6.32258 0.497757 6.32258 0.677419V6.32258H0.677419C0.497757 6.32258 0.325452 6.39395 0.198411 6.52099C0.0713707 6.64803 0 6.82034 0 7C0 7.17966 0.0713707 7.35197 0.198411 7.47901C0.325452 7.60605 0.497757 7.67742 0.677419 7.67742H6.32258V13.3226C6.32492 13.5015 6.39704 13.6725 6.52358 13.799C6.65012 13.9255 6.82106 13.9977 7 14C7.17966 14 7.35197 13.9286 7.47901 13.8016C7.60605 13.6745 7.67742 13.5022 7.67742 13.3226V7.67742H13.3226C13.5022 7.67742 13.6745 7.60605 13.8016 7.47901C13.9286 7.35197 14 7.17966 14 7C13.9977 6.82106 13.9255 6.65012 13.799 6.52358C13.6725 6.39704 13.5015 6.32492 13.3226 6.32258H7.67742Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n"],"names":["BaseIcon","createElementVNode"],"mappings":";;;AAGG,IAAC,SAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWA;AACb;AAEA,IAAI,aAA0BC,gCAAmB,QAAQ;AAAA,EACvD,GAAG;AAAA,EACH,MAAM;AACR,GAAG,MAAM,EAAE;AACX,IAAI,aAAa,CAAC,UAAU;AAC5B,SAAS,OAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,EACR,GAAE,KAAK,IAAG,CAAE,GAAG,YAAY,EAAE;AAChC;AARS;AAUT,OAAO,SAAS;","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/web/assets/index-BbhVsmQe.js b/web/assets/index-C4Fk50Nx.js similarity index 99% rename from web/assets/index-BbhVsmQe.js rename to web/assets/index-C4Fk50Nx.js index a8bf26963af..0da0e4c9718 100644 --- a/web/assets/index-BbhVsmQe.js +++ b/web/assets/index-C4Fk50Nx.js @@ -1,4 +1,4 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./GraphView-BhIVbg_-.js","./index-BuE2B-Gw.js","./index-VIBj2YvH.js","./index-BQjD3NM4.js","./keybindingService-DohhteGb.js","./serverConfigStore-CdBr6oWT.js","./GraphView-CIRWBKTm.css","./UserSelectView-Bpmnopou.js","./BaseViewTemplate-qOhVwbhN.js","./ServerStartView-BA9I3WCH.js","./ServerStartView-CnyN4Ib6.css","./InstallView-ZoxdV0Ib.js","./InstallView-CwQdoH-C.css","./WelcomeView-Cg-dprpV.js","./WelcomeView-Brz3-luE.css","./NotSupportedView-sBtNsodN.js","./NotSupportedView-bFzHmqNj.css","./DownloadGitView-XzlZoglc.js","./ManualConfigurationView-CYxSElYw.js","./ManualConfigurationView-B6ecEClB.css","./KeybindingPanel-COhe3VgH.js","./index-DIIs-Ju9.js","./KeybindingPanel-DvrUYZ4S.css","./ExtensionPanel-C1yxn9cA.js","./ServerConfigPanel-BHbwCDu2.js","./index-CCg06AEp.js","./index-BRhY6FpL.css"])))=>i.map(i=>d[i]); +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./GraphView-DswvqURL.js","./index-hdfnBvYs.js","./index-B7ycxfFq.js","./index-lMQBwSDj.js","./keybindingService-D48fkLBy.js","./serverConfigStore-BawYAb1j.js","./GraphView-CIRWBKTm.css","./UserSelectView-2l9Kbchu.js","./BaseViewTemplate-CsEJhGbv.js","./ServerStartView-CiO_acWT.js","./ServerStartView-CnyN4Ib6.css","./InstallView-AV2llYNm.js","./InstallView-CwQdoH-C.css","./WelcomeView-CB7Th_kO.js","./WelcomeView-Brz3-luE.css","./NotSupportedView-CRaD8u74.js","./NotSupportedView-bFzHmqNj.css","./DownloadGitView-DP1MIWYX.js","./ManualConfigurationView-BA4Vtud8.js","./ManualConfigurationView-B6ecEClB.css","./KeybindingPanel-CxaJ1IiJ.js","./index-CK0rrCYF.js","./KeybindingPanel-DvrUYZ4S.css","./ExtensionPanel-CxijYN47.js","./ServerConfigPanel-TLv4HMGK.js","./index-5Sv744Dr.js","./index-BRhY6FpL.css"])))=>i.map(i=>d[i]); var __defProp2 = Object.defineProperty; var __name = (target, value4) => __defProp2(target, "name", { value: value4, configurable: true }); (/* @__PURE__ */ __name(function polyfill() { @@ -46123,7 +46123,7 @@ const router = createRouter({ { path: "", name: "GraphView", - component: /* @__PURE__ */ __name(() => __vitePreload(() => import("./GraphView-BhIVbg_-.js"), true ? __vite__mapDeps([0,1,2,3,4,5,6]) : void 0, import.meta.url), "component"), + component: /* @__PURE__ */ __name(() => __vitePreload(() => import("./GraphView-DswvqURL.js"), true ? __vite__mapDeps([0,1,2,3,4,5,6]) : void 0, import.meta.url), "component"), beforeEnter: /* @__PURE__ */ __name(async (to, from2, next2) => { const userStore = useUserStore(); await userStore.initialize(); @@ -46137,42 +46137,42 @@ const router = createRouter({ { path: "user-select", name: "UserSelectView", - component: /* @__PURE__ */ __name(() => __vitePreload(() => import("./UserSelectView-Bpmnopou.js"), true ? __vite__mapDeps([7,8]) : void 0, import.meta.url), "component") + component: /* @__PURE__ */ __name(() => __vitePreload(() => import("./UserSelectView-2l9Kbchu.js"), true ? __vite__mapDeps([7,8]) : void 0, import.meta.url), "component") }, { path: "server-start", name: "ServerStartView", - component: /* @__PURE__ */ __name(() => __vitePreload(() => import("./ServerStartView-BA9I3WCH.js"), true ? __vite__mapDeps([9,8,10]) : void 0, import.meta.url), "component"), + component: /* @__PURE__ */ __name(() => __vitePreload(() => import("./ServerStartView-CiO_acWT.js"), true ? __vite__mapDeps([9,8,10]) : void 0, import.meta.url), "component"), beforeEnter: guardElectronAccess }, { path: "install", name: "InstallView", - component: /* @__PURE__ */ __name(() => __vitePreload(() => import("./InstallView-ZoxdV0Ib.js"), true ? __vite__mapDeps([11,8,12]) : void 0, import.meta.url), "component"), + component: /* @__PURE__ */ __name(() => __vitePreload(() => import("./InstallView-AV2llYNm.js"), true ? __vite__mapDeps([11,8,12]) : void 0, import.meta.url), "component"), beforeEnter: guardElectronAccess }, { path: "welcome", name: "WelcomeView", - component: /* @__PURE__ */ __name(() => __vitePreload(() => import("./WelcomeView-Cg-dprpV.js"), true ? __vite__mapDeps([13,8,14]) : void 0, import.meta.url), "component"), + component: /* @__PURE__ */ __name(() => __vitePreload(() => import("./WelcomeView-CB7Th_kO.js"), true ? __vite__mapDeps([13,8,14]) : void 0, import.meta.url), "component"), beforeEnter: guardElectronAccess }, { path: "not-supported", name: "NotSupportedView", - component: /* @__PURE__ */ __name(() => __vitePreload(() => import("./NotSupportedView-sBtNsodN.js"), true ? __vite__mapDeps([15,8,16]) : void 0, import.meta.url), "component"), + component: /* @__PURE__ */ __name(() => __vitePreload(() => import("./NotSupportedView-CRaD8u74.js"), true ? __vite__mapDeps([15,8,16]) : void 0, import.meta.url), "component"), beforeEnter: guardElectronAccess }, { path: "download-git", name: "DownloadGitView", - component: /* @__PURE__ */ __name(() => __vitePreload(() => import("./DownloadGitView-XzlZoglc.js"), true ? __vite__mapDeps([17,8]) : void 0, import.meta.url), "component"), + component: /* @__PURE__ */ __name(() => __vitePreload(() => import("./DownloadGitView-DP1MIWYX.js"), true ? __vite__mapDeps([17,8]) : void 0, import.meta.url), "component"), beforeEnter: guardElectronAccess }, { path: "manual-configuration", name: "ManualConfigurationView", - component: /* @__PURE__ */ __name(() => __vitePreload(() => import("./ManualConfigurationView-CYxSElYw.js"), true ? __vite__mapDeps([18,1,2,8,19]) : void 0, import.meta.url), "component"), + component: /* @__PURE__ */ __name(() => __vitePreload(() => import("./ManualConfigurationView-BA4Vtud8.js"), true ? __vite__mapDeps([18,1,2,8,19]) : void 0, import.meta.url), "component"), beforeEnter: guardElectronAccess } ] @@ -58027,7 +58027,7 @@ const _sfc_main$Z = /* @__PURE__ */ defineComponent({ }); const config$1 = { app_title: "ComfyUI", - app_version: "1.6.16" + app_version: "1.6.17" }; /*! * shared v9.13.1 @@ -117954,7 +117954,7 @@ const useSystemStatsStore = /* @__PURE__ */ defineStore("systemStats", () => { }; }); const useAboutPanelStore = /* @__PURE__ */ defineStore("aboutPanel", () => { - const frontendVersion = "1.6.16"; + const frontendVersion = "1.6.17"; const extensionStore = useExtensionStore(); const systemStatsStore = useSystemStatsStore(); const coreVersion = computed( @@ -123467,13 +123467,13 @@ const _sfc_main$x = /* @__PURE__ */ defineComponent({ setup(__props) { const props = __props; const KeybindingPanel = /* @__PURE__ */ defineAsyncComponent( - () => __vitePreload(() => import("./KeybindingPanel-COhe3VgH.js"), true ? __vite__mapDeps([20,21,3,2,4,22]) : void 0, import.meta.url) + () => __vitePreload(() => import("./KeybindingPanel-CxaJ1IiJ.js"), true ? __vite__mapDeps([20,21,3,2,4,22]) : void 0, import.meta.url) ); const ExtensionPanel = /* @__PURE__ */ defineAsyncComponent( - () => __vitePreload(() => import("./ExtensionPanel-C1yxn9cA.js"), true ? __vite__mapDeps([23,21,3,2]) : void 0, import.meta.url) + () => __vitePreload(() => import("./ExtensionPanel-CxijYN47.js"), true ? __vite__mapDeps([23,21,3,2]) : void 0, import.meta.url) ); const ServerConfigPanel = /* @__PURE__ */ defineAsyncComponent( - () => __vitePreload(() => import("./ServerConfigPanel-BHbwCDu2.js"), true ? __vite__mapDeps([24,5]) : void 0, import.meta.url) + () => __vitePreload(() => import("./ServerConfigPanel-TLv4HMGK.js"), true ? __vite__mapDeps([24,5]) : void 0, import.meta.url) ); const aboutPanelNode = { key: "about", @@ -164042,7 +164042,7 @@ const useExtensionService = /* @__PURE__ */ __name(() => { settingStore.get("Comfy.Extension.Disabled") ); const extensions = await api.getExtensions(); - await __vitePreload(() => import("./index-CCg06AEp.js"), true ? __vite__mapDeps([25,26]) : void 0, import.meta.url); + await __vitePreload(() => import("./index-5Sv744Dr.js"), true ? __vite__mapDeps([25,26]) : void 0, import.meta.url); extensionStore.captureCoreExtensions(); await Promise.all( extensions.filter((extension) => !extension.includes("extensions/core")).map(async (ext) => { @@ -170371,6 +170371,18 @@ const SYSTEM_NODE_DEFS = { output_node: false, python_module: "nodes", description: "Node that add notes to your project" + }, + MarkdownNote: { + name: "MarkdownNote", + display_name: "Markdown Note", + category: "utils", + input: { required: {}, optional: {} }, + output: [], + output_name: [], + output_is_list: [], + output_node: false, + python_module: "nodes", + description: "Node that add notes to your project. Reformats text as markdown." } }; function buildNodeDefTree(nodeDefs) { @@ -184698,4 +184710,4 @@ export { getOuterWidth as y, getOuterHeight as z }; -//# sourceMappingURL=index-BbhVsmQe.js.map +//# sourceMappingURL=index-C4Fk50Nx.js.map diff --git a/web/assets/index-C4Fk50Nx.js.map b/web/assets/index-C4Fk50Nx.js.map new file mode 100644 index 00000000000..d3efb40a637 --- /dev/null +++ b/web/assets/index-C4Fk50Nx.js.map @@ -0,0 +1 @@ +{"version":3,"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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KAAU;AAAA,MAAM,KAAU;AAAA,MAAK,KAAU;AAAA,MAAK,KAAU;AAAA,MACxD,KAAU;AAAA,MAAM,KAAU;AAAA,MAAK,KAAU;AAAA,MAAK,KAAU;AAAA,MACxD,KAAU;AAAA,MAAM,KAAU;AAAA,MAAK,KAAU;AAAA,MAAK,KAAU;AAAA,MAAK,KAAU;AAAA,MACvE,KAAU;AAAA,MAAM,KAAU;AAAA,MAAK,KAAU;AAAA,MAAK,KAAU;AAAA,MAAK,KAAU;AAAA,MACvE,KAAU;AAAA,MAAM,KAAU;AAAA,MAC1B,KAAU;AAAA,MAAM,KAAU;AAAA,MAAK,KAAU;AAAA,MACzC,KAAU;AAAA,MAAM,KAAU;AAAA,MAAK,KAAU;AAAA,MAAK,KAAU;AAAA,MAAK,KAAU;AAAA,MACvE,KAAU;AAAA,MAAM,KAAU;AAAA,MAAK,KAAU;AAAA,MAAK,KAAU;AAAA,MAAK,KAAU;AAAA,MACvE,KAAU;AAAA,MAAM,KAAU;AAAA,MAAK,KAAU;AAAA,MAAK,KAAU;AAAA,MACxD,KAAU;AAAA,MAAM,KAAU;AAAA,MAAK,KAAU;AAAA,MAAK,KAAU;AAAA,MACxD,KAAU;AAAA,MAAM,KAAU;AAAA,MAAK,KAAU;AAAA,MACzC,KAAU;AAAA,MAAM,KAAU;AAAA,MAAK,KAAU;AAAA,MACzC,KAAU;AAAA,MAAM,KAAU;AAAA,MAAK,KAAU;AAAA,MACzC,KAAU;AAAA,MAAM,KAAU;AAAA,MAAK,KAAU;AAAA,MACzC,KAAU;AAAA,MAAM,KAAU;AAAA,MAAK,KAAU;AAAA,MAAK,KAAU;AAAA,MACxD,KAAU;AAAA,MAAM,KAAU;AAAA,MAAK,KAAU;AAAA,MAAK,KAAU;AAAA,MACxD,KAAU;AAAA,MAAM,KAAU;AAAA,MAAK,KAAU;AAAA,MACzC,KAAU;AAAA,MAAM,KAAU;AAAA,MAAK,KAAU;AAAA,MACzC,KAAU;AAAA,MAAM,KAAU;AAAA,MAAK,KAAU;AAAA,MAAK,KAAU;AAAA,MAAK,KAAU;AAAA,MAAK,KAAU;AAAA,MACtF,KAAU;AAAA,MAAM,KAAU;AAAA,MAAK,KAAU;AAAA,MAAK,KAAU;AAAA,MAAK,KAAU;AAAA,MAAK,KAAU;AAAA,M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a,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,aAAa,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAA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,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG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G,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,gBAAgB,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,G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Q,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAA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AAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,OAAM,KAAK,GAAE,CAAC,OAAM,KAAK,GAAE,CAAC,OAAM,KAAK,GAAE,CAAC,OAAM,KAAK,GAAE,CAAC,OAAM,KAAK,GAAE,CAAC,OAAM,KAAK,GAAE,CAAC,OAAM,KAAK,GAAE,CAAC,OAAM,KAAK,GAAE,CAAC,OAAM,KAAK,GAAE,CAAC,OAAM,KAAK,CAAC,GAAE,IAAE,CAAC,CAAC,OAAM,KAAK,GAAE,CAAC,OAAM,KAAK,GAAE,CAAC,O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","names":["__defProp","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","value","__spreadValues","prop","isEmpty","compare","value2","comparator","i","keys","isFunction","data","e","list","item","index","findLast","isObject","empty","resolve","isString","isArray","isDate","isNumber","regex","match","css","from","v","toTokenKey","handler","handlers","merge","toValue","prefix","color","hexToRgb","g","p","_a","theme","name","transform","matchRegex2","style","mergeKeys2","mergeOptions","options","matchRegex3","toKebabCase2","isObject2","set","defaults","isNotEmpty2","dark","resolve2","id","matchRegex4","toTokenKey2","isObject3","computed","_a2","css2","mode","newValue","mergeKeys3","mergeKeys4","accordion","autocomplete","avatar","badge","blockui","breadcrumb","button","datepicker","card","carousel","cascadeselect","checkbox","chip","colorpicker","confirmdialog","confirmpopup","contextmenu","dataview","datatable","dialog","divider","dock","drawer","editor","fieldset","fileupload","floatlabel","galleria","iconfield","image","inlinemessage","inplace","inputchips","inputgroup","inputnumber","inputtext","knob","listbox","megamenu","menu","menubar","message","metergroup","multiselect","orderlist","organizationchart","overlaybadge","popover","paginator","password","panel","panelmenu","picklist","progressbar","progressspinner","radiobutton","rating","scrollpanel","select","selectbutton","skeleton","slider","speeddial","splitter","splitbutton","stepper","steps","tabmenu","tabs","tabview","textarea","tieredmenu","tag","terminal","timeline","togglebutton","toggleswitch","tree","treeselect","treetable","toast","toolbar","virtualscroller","tooltip","ripple","extend","remove","hasOwnProperty","hasOwn","toTypeString","isRegExp","isSymbol","isPromise","objectToString","isPlainObject","cacheStringFunction","cache","camelizeRE","camelize","_","hyphenateRE","hyphenate","capitalize","oldValue","_globalThis","getGlobalThis","generateCodeFrame","start","escapeRE","escapeHtml","lastIndex","isRef","toDisplayString","warn","effect","trigger","get","isReadonly","isShallow","wrap","toReactive","has","add","get2","forEach","self","toRefs","toRef","warn$1","open","close","findInsertionIndex","seen","diff","map","app","version","Fragment","Text","validator","isValid","isModelListener","number","trim","prev","_id","attrs","emit","render","render2","root","isVNode","patch","createElement","hasWarned","next","parentNode","node","block","prepend","reset","lifecycle","modifiers","load","reject","error","ref2","callHook","created","beforeMount","mounted","beforeUpdate","updated","beforeUnmount","unmounted","register","_hook","h","base","hydrate","createApp","getType","t","isBoolean","normalizeSlot","ref","patchProp","insert","content","isFragment","next2","parentNode2","format","supported","perf","initFeatureFlags","multi","remove2","isFlushing","once","filter","matches","enterCbKey","onBeforeEnter","onEnter","onAfterEnter","onBeforeLeave","onLeave","onAfterLeave","disabled","mount","isBlockNode","text","setup","compile","track","i2","formatValue","devtools","doc","e2","def","isAsync","clone","modelValue","getValue","checked","assign","found","option","isVue2","isVue3","Vue2","install","del","now","pinia","MutationType","_global","saveAs","isSafari","formatDisplay","state","store","events","assign$1","api","noop","$reset","currentInstance","suffix","_createForOfIteratorHelper","_unsupportedIterableToArray","F","r","_arrayLikeToArray","contains","endsWith","equals","link","origin","width","createStyleTag","find","focus","getSelection","isAndroid","isClient","isIOS","attribute","_typeof","o","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","tryOnMounted","defaultDocument","document","first","stop","unload","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","dt","classes","inlineStyles","Theme","defaultOptions","PrimeVue","ThemeService","loadCommonTheme","ConfirmationService","require","ToastService","_typeof$1","_toPropertyKey$1","_toPrimitive$1","ConnectedOverlayScrollHandler","bindScrollListener","unbindScrollListener","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","_default","init","clear","helpers","global","fn","defaultPT","config","handleHook","loadCSS","loadTheme","isUnstyled","ptm","ptmo","cx","sx","handleWatch","create","position","getTarget","decode","parseQuery","location","stringifyQuery","NavigationType","NavigationDirection","delta","search","replace","history","queue","NavigationFailureType","regexp","re","parse","stringify","buffer","router","isActive","copy","label","route","parseQuery$1","matchedRoute","href","failure","_openBlock","_createElementBlock","_hoisted_1","bind","toString","prototype","descriptors","replacer","delimiter","DIGIT","size","stack","AxiosError","code","utils","toFormData","PlatformFormData","encode","URLSearchParams","FormData","Blob","platform","isFormData","isFileList","transitional","header","AxiosHeaders","isCancel","CanceledError","validateStatus","timestamp","invoke","isURLSameOrigin","domain","isAbsoluteURL","headersToObject","mergeConfig","handleError","signal","pos","done","test","res","adapter","adapters","VERSION","validators","schema","Axios","CancelToken","spread","isAxiosError","HttpStatusCode","all","util","items","objectUtil","errorMap","x","errorUtil","ctx","step","result","mask","issues","elements","processed","p2","ZodFirstPartyTypeKind","zod.ZodError","dist","node2","horizontal","setValue","clamp","selected","isSelected","range","options2","options3","name2","LGraph","NodeSourceType","NodeBadgeMode","LinkReleaseTriggerMode","LinkReleaseTriggerAction","inputSpec","split","initialize","v2","isDefined","set$1","y","inc","formatDate","toggle","_2","throttle","index2","renderList","window","elementRef","distance","isSupported","reverse","activeIndex","fr","navigator","data2","buildState","onChange","ta","mergeDefaults","pausableWatch","attribute2","confirm","listRef","shift","mode2","undo","redo","alpha","onUpdated","preventDefault","dataTypes","root2","icon","fetch","loading","setType","error2","enter","onScroll","x2","scrollTo","y2","scrollTop","scrollHeight","scrollWidth","page","orientation","_navigator","onTouchEnd","messages","diff2","ts","containerRef","itemSize","getOffset","size2","onClick","show","BaseComponentStyle","script","_mergeProps","_loadStyles","_load","_loadCoreStyles","_loadThemeStyles","_loadScopedThemeStyles","_themeChangeListener","_getPTValue","_getPTDatasets","_getPT","_usePT","_useDefaultPT","script$1","BaseComponent","provide","createElementVNode","BaseIcon","_hoisted_2","bindEvents","unbindEvents","SpinnerIcon","Badge","autoFocus","createFocusableElement","onFocus","inline","focus$1","findFocusableElement","onKeyDown","Button","Portal","WindowMinimizeIcon","WindowMaximizeIcon","TimesIcon","RE_ARGS","locale","isEmptyObject","join","src","des","warnMessages","errorMessages","DOT","context","skipSpaces","isLiteral","newline","baseCompile","normalize","type","i18n","code$1","inc$1","getWarnMessage","format$1","resolveValue","msg","source","custom","locales","_context","te","parts","apply","escape","composer","commands","undefined","INFINITY","collection","stringToArray","runInContext","Array","Date","Error","Function","Math","Object","RegExp","String","TypeError","uid","Buffer","Symbol","Uint8Array","DataView","Map","Promise","Set","WeakMap","lodash","isObjectLike","iteratee","values","isBuffer","isTypedArray","getTag","isSet","isMap","key","setTimeout","includes","object","identity","indexOf","baseToString","clearTimeout","cloneRegExp","ary","toNumber","othValue","reference","rand","findLastIndex","slice","uniq","toArray","parent","gt","gte","isArrayBuffer","isElement","isFinite","isNaN","isUndefined","lt","lte","findKey","omit","escapeRegExp","parseInt","repeat","startsWith","trimEnd","trimStart","unescape","bindAll","chain","floor","define","this","$attrsId","onKeyUp","onBlur","requestAnimationFrame","_hoisted_3","getPTOptions","hasFluid","numToleratedItems","calculateFirst","calculateCoord","scrollInView","calculateFirstInViewport","calculateNumItemsInViewport","calculateNumToleratedItems","calculateLast","vertical","setProp","calculateTranslateVal","setTransform","calculateScrollPos","calculateCurrentIndex","calculateTriggerIndex","contentRef","containerClass","_loop","InputText","VirtualScroller","InputIcon","IconField","SearchIcon","CheckIcon","BlankIcon","_hoisted_4","_hoisted_5","_hoisted_6","download","isVertical","onKeydown","TimesCircleIcon","debounce","buildTree","a11yAttrs","onPageDownKey","onPageUpKey","ChevronLeftIcon","ChevronRightIcon","InfoCircleIcon","ExclamationTriangleIcon","closeAriaLabel","getOptionIndex","getOptionLabel","getOptionValue","getOptionRenderKey","isOptionDisabled","isOptionGroup","getOptionGroupLabel","getOptionGroupChildren","getAriaPosInset","hide","_hide","onFirstHiddenFocus","onLastHiddenFocus","onOptionSelect","onOptionMouseMove","onFilterChange","onFilterKeyDown","onFilterBlur","onArrowDownKey","onArrowUpKey","onArrowLeftKey","onHomeKey","onEndKey","onEnterKey","onSpaceKey","alignOverlay","bindResizeListener","unbindResizeListener","isOptionMatched","isValidOption","isValidSelectedOption","findFirstOptionIndex","findLastOptionIndex","findNextOptionIndex","findPrevOptionIndex","findSelectedOptionIndex","findFirstFocusedOptionIndex","findLastFocusedOptionIndex","searchOptions","changeFocusedOptionIndex","autoUpdateModel","updateModel","flatOptions","virtualScrollerRef","visibleOptions","hasSelectedOption","equalityKey","searchFields","filterResultMessageText","filterMessageText","emptyFilterMessageText","emptyMessageText","selectionMessageText","emptySelectionMessageText","selectedMessageText","focusedOptionId","ariaSetSize","virtualScrollerDisabled","ChevronDownIcon","getOptions","formattedValue","parseValue","isDecimalSign","isMinusSign","maxFractionDigits","deleteRange","updateValue","clearTimer","filled","AngleUpIcon","AngleDownIcon","updateInput","onOverlayEnter","onOverlayLeave","onOverlayAfterLeave","onInputClick","bindOutsideClickListener","unbindOutsideClickListener","onOverlayClick","_useModel","fileInput","onDrag","onDragEnd","onMouseDown","bindDragListeners","unbindDragListeners","CustomFormValue","ToggleSwitch","InputNumber","InputSlider","Select","FormImageUpload","FormColorPicker","_withScopeId","_popScopeId","isCircular","onTabKey","createStyle","attributeSelector","ChevronUpIcon","indicator","PromptDialogContent","keybindings","command","Mark","mark","joinable","Node","active","nfa","edge","expr","states","NodeType","space","tr","lift","setBlockType","inject","TransformError","selectionToInsertionEnd","createKey","ie","mac","widget","spec","preMatch","focusNode","dom","event","click","handleTripleClick","sel","cut","getText","oldOffset","anchor","isInline","normalizeKeyName","deleteSelection","joinBackward","joinTextblockBackward","joinTextblockForward","selectNodeBackward","joinForward","selectNodeForward","joinUp","joinDown","newlineInCode","defaultBlockAt","exitCode","createParagraphNear","liftEmptyBlock","splitBlock","selectParentNode","selectAll","selectTextblockStart","selectTextblockEnd","wrapIn","toggleMark","canJoin","wrapInList","splitListItem","liftListItem","sinkListItem","run","run$1","removeMark","to","elementFromString","Node$1","output","newNextTypeAttributes","nextType","baseKeymap","blur","nextState","APOSTROPHE","SPACE","Nl","scheme","Token","Url","Url$1","autolink","pasteRegex","Link","table","NodeSelection2","PluginKey2","Fragment2","TextSelection2","Slice2","Slice3","Fragment3","start2","handleKeyDown","arrow","Selection2","Fragment4","TextSelection3","TableView","PluginKey3","DecorationSet2","Decoration2","Plugin2","Table","inputRegex","Blockquote","starInputRegex","starPasteRegex","underscoreInputRegex","underscorePasteRegex","Bold","ListItemName","TextStyleName","BulletList","Code","CodeBlock","Document","rect","HardBreak","Heading","RopeSequence","append","Leaf","Append","appendInner","HorizontalRule","Italic","ListItem","OrderedList","Paragraph","Strike","fromCodePoint","CharCodes","BinTrieFlags","EntityDecoderState","DecodingMode","errors","EntityLevel","EncodingMode","_class","entity","ucmicro.P","ucmicro.S","attrSet","md","isLinkOpen","isLinkClose","linkify","_rules","r_normalize","r_block","r_inline","r_linkify","r_replacements","r_smartquotes","r_text_join","nextLine","max","r_table","r_code","r_fence","r_blockquote","r_hr","r_list","r_reference","r_html_block","r_heading","r_lheading","r_paragraph","postProcess","r_text","r_newline","r_escape","r_backticks","r_link","r_image","r_autolink","r_html_inline","r_entity","r_balance_pairs","r_fragments_join","tlds","mdurl.parse","mdurl.encode","mdurl.format","mdurl.decode","utils.isString","ParserCore","utils.assign","tokenHandlers","tokens","MarkdownParser","MarkdownSerializer","MarkdownSerializerState","fence","markdownit","Image","Image$1","TaskItem","TaskItem$1","Text$1","renderer","extensions","onResize","TiptapMarkdown","TiptapEditor","TiptapStarterKit","TiptapLink","TiptapTable","TiptapTableCell","TiptapTableHeader","TiptapTableRow","uploadFile","s","n","a","P","c","l","d","f","m","S","w","u","b","z","FitAddon","Terminal","ComfyDialog","_ComfyDialog","preview","accept","defaultClone","diffFilter","patchFilter","reverseFilter","collectChildrenPatchFilter","collectChildrenReverseFilter","nestedPatchFilter","nested.collectChildrenDiffFilter","trivial.diffFilter","dates.diffFilter","texts.diffFilter","nested.objectsDiffFilter","arrays.diffFilter","nested.collectChildrenPatchFilter","arrays.collectChildrenPatchFilter","trivial.patchFilter","texts.patchFilter","nested.patchFilter","arrays.patchFilter","nested.collectChildrenReverseFilter","arrays.collectChildrenReverseFilter","trivial.reverseFilter","texts.reverseFilter","nested.reverseFilter","arrays.reverseFilter","undefinedType","logger","jsondiffpatch.diff","basePath","workflowStore","loadedWorkflow","ResourceState","obj","path","norm","score","pattern","searchers","query","createIndex","nodeDefs","memoize","comment","isLittleEndian","splitValues","setWidgetValue","onHide","closeOnEscape","item2","TaskItemDisplayStatus","tasks","script$2","AngleRightIcon","render$1","getItemProp","getItemLabel","isItemDisabled","isItemVisible","isItemGroup","activeItemPath","onItemClick","onItemMouseEnter","onItemMouseMove","onEscapeKey","processedItems","indeterminate","MinusIcon","_createForOfIteratorHelper$1","_unsupportedIterableToArray$1","ownKeys$1","_objectSpread$1","_defineProperty$1","_toConsumableArray$1","_arrayWithoutHoles$1","_iterableToArray$1","_nonIterableSpread$1","_arrayLikeToArray$1","Checkbox","_hoisted_1$1","childNodes","arrayLikeToArray","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","bind_1","unbind","bindAll_1","require$$0","require$$1","clientRect","arrayWithoutHoles","iterableToArray","nonIterableSpread","isFirefox","rafSchd","wrapperFn","dispatchEvent","hasChanged","addToRegistry","record","dispatchEventToSource","registerUsage","expandedKeys","handleMouseLeave","toggleNode","bindDocumentKeyDownListener","unbindDocumentKeyDownListener","destroyStyle","ToggleButton","bookmarks","NodeLibrarySidebarTab","isTargetClicked","getIndicatorPTOptions","navBackward","navForward","onIndicatorClick","onRightKey","onLeftKey","findFocusedIndicatorIndex","changedFocusedIndicator","ariaSlideNumber","ariaPageLabel","ariaSlideLabel","_hoisted_1$3","_hoisted_2$2","_hoisted_3$2","_hoisted_4$1","numVisible","stopSlideShow","onTransitionEnd","onTouchStart","onTouchMove","changePageOnTouch","calculatePosition","bindDocumentListeners","unbindDocumentListeners","isNavBackwardDisabled","isNavForwardDisabled","isItemActive","ariaPrevButtonLabel","ariaNextButtonLabel","_hoisted_1$2","_hoisted_2$1","_hoisted_3$1","maskRef","onMaskMouseDown","onMaskMouseUp","QueueSidebarTab","acceptLabel","rejectLabel","acceptIcon","rejectIcon","Dialog","WorkflowTreeType","workflowService","handleClick","workflow","WorkflowsSidebarTab","Aura","App"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,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,215,216,217,218,222,224,225,226,227,228,229,235,236,237,238,239,240,241,242,243,244,245,246,247,249,250,252,258,259,261,262,263,264,265,266,267,271,272,273,274,275,276,277,278,286,287,288,289,290,291,292,293,299,300,301,302,303,304,306,307,310,311,318,319,320,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,447,448,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,488,507,508,509,510,511,512,513,514,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,563,564,574,575,576,577,578,579,589,590,592,593,601,602],"sources":["../../node_modules/@primeuix/utils/object/index.mjs","../../node_modules/@primeuix/utils/eventbus/index.mjs","../../node_modules/@primeuix/styled/index.mjs","../../node_modules/@primevue/themes/aura/accordion/index.mjs","../../node_modules/@primevue/themes/aura/autocomplete/index.mjs","../../node_modules/@primevue/themes/aura/avatar/index.mjs","../../node_modules/@primevue/themes/aura/badge/index.mjs","../../node_modules/@primevue/themes/aura/blockui/index.mjs","../../node_modules/@primevue/themes/aura/breadcrumb/index.mjs","../../node_modules/@primevue/themes/aura/button/index.mjs","../../node_modules/@primevue/themes/aura/card/index.mjs","../../node_modules/@primevue/themes/aura/carousel/index.mjs","../../node_modules/@primevue/themes/aura/cascadeselect/index.mjs","../../node_modules/@primevue/themes/aura/checkbox/index.mjs","../../node_modules/@primevue/themes/aura/chip/index.mjs","../../node_modules/@primevue/themes/aura/colorpicker/index.mjs","../../node_modules/@primevue/themes/aura/confirmdialog/index.mjs","../../node_modules/@primevue/themes/aura/confirmpopup/index.mjs","../../node_modules/@primevue/themes/aura/contextmenu/index.mjs","../../node_modules/@primevue/themes/aura/datatable/index.mjs","../../node_modules/@primevue/themes/aura/dataview/index.mjs","../../node_modules/@primevue/themes/aura/datepicker/index.mjs","../../node_modules/@primevue/themes/aura/dialog/index.mjs","../../node_modules/@primevue/themes/aura/divider/index.mjs","../../node_modules/@primevue/themes/aura/dock/index.mjs","../../node_modules/@primevue/themes/aura/drawer/index.mjs","../../node_modules/@primevue/themes/aura/editor/index.mjs","../../node_modules/@primevue/themes/aura/fieldset/index.mjs","../../node_modules/@primevue/themes/aura/fileupload/index.mjs","../../node_modules/@primevue/themes/aura/floatlabel/index.mjs","../../node_modules/@primevue/themes/aura/galleria/index.mjs","../../node_modules/@primevue/themes/aura/iconfield/index.mjs","../../node_modules/@primevue/themes/aura/image/index.mjs","../../node_modules/@primevue/themes/aura/inlinemessage/index.mjs","../../node_modules/@primevue/themes/aura/inplace/index.mjs","../../node_modules/@primevue/themes/aura/inputchips/index.mjs","../../node_modules/@primevue/themes/aura/inputgroup/index.mjs","../../node_modules/@primevue/themes/aura/inputnumber/index.mjs","../../node_modules/@primevue/themes/aura/inputtext/index.mjs","../../node_modules/@primevue/themes/aura/knob/index.mjs","../../node_modules/@primevue/themes/aura/listbox/index.mjs","../../node_modules/@primevue/themes/aura/megamenu/index.mjs","../../node_modules/@primevue/themes/aura/menu/index.mjs","../../node_modules/@primevue/themes/aura/menubar/index.mjs","../../node_modules/@primevue/themes/aura/message/index.mjs","../../node_modules/@primevue/themes/aura/metergroup/index.mjs","../../node_modules/@primevue/themes/aura/multiselect/index.mjs","../../node_modules/@primevue/themes/aura/orderlist/index.mjs","../../node_modules/@primevue/themes/aura/organizationchart/index.mjs","../../node_modules/@primevue/themes/aura/overlaybadge/index.mjs","../../node_modules/@primevue/themes/aura/paginator/index.mjs","../../node_modules/@primevue/themes/aura/panel/index.mjs","../../node_modules/@primevue/themes/aura/panelmenu/index.mjs","../../node_modules/@primevue/themes/aura/password/index.mjs","../../node_modules/@primevue/themes/aura/picklist/index.mjs","../../node_modules/@primevue/themes/aura/popover/index.mjs","../../node_modules/@primevue/themes/aura/progressbar/index.mjs","../../node_modules/@primevue/themes/aura/progressspinner/index.mjs","../../node_modules/@primevue/themes/aura/radiobutton/index.mjs","../../node_modules/@primevue/themes/aura/rating/index.mjs","../../node_modules/@primevue/themes/aura/ripple/index.mjs","../../node_modules/@primevue/themes/aura/scrollpanel/index.mjs","../../node_modules/@primevue/themes/aura/select/index.mjs","../../node_modules/@primevue/themes/aura/selectbutton/index.mjs","../../node_modules/@primevue/themes/aura/skeleton/index.mjs","../../node_modules/@primevue/themes/aura/slider/index.mjs","../../node_modules/@primevue/themes/aura/speeddial/index.mjs","../../node_modules/@primevue/themes/aura/splitbutton/index.mjs","../../node_modules/@primevue/themes/aura/splitter/index.mjs","../../node_modules/@primevue/themes/aura/stepper/index.mjs","../../node_modules/@primevue/themes/aura/steps/index.mjs","../../node_modules/@primevue/themes/aura/tabmenu/index.mjs","../../node_modules/@primevue/themes/aura/tabs/index.mjs","../../node_modules/@primevue/themes/aura/tabview/index.mjs","../../node_modules/@primevue/themes/aura/tag/index.mjs","../../node_modules/@primevue/themes/aura/terminal/index.mjs","../../node_modules/@primevue/themes/aura/textarea/index.mjs","../../node_modules/@primevue/themes/aura/tieredmenu/index.mjs","../../node_modules/@primevue/themes/aura/timeline/index.mjs","../../node_modules/@primevue/themes/aura/toast/index.mjs","../../node_modules/@primevue/themes/aura/togglebutton/index.mjs","../../node_modules/@primevue/themes/aura/toggleswitch/index.mjs","../../node_modules/@primevue/themes/aura/toolbar/index.mjs","../../node_modules/@primevue/themes/aura/tooltip/index.mjs","../../node_modules/@primevue/themes/aura/tree/index.mjs","../../node_modules/@primevue/themes/aura/treeselect/index.mjs","../../node_modules/@primevue/themes/aura/treetable/index.mjs","../../node_modules/@primevue/themes/aura/virtualscroller/index.mjs","../../node_modules/@primevue/themes/aura/index.mjs","../../node_modules/@vue/shared/dist/shared.esm-bundler.js","../../node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","../../node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","../../node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","../../node_modules/vue/dist/vue.runtime.esm-bundler.js","../../node_modules/pinia/node_modules/vue-demi/lib/index.mjs","../../node_modules/@vue/devtools-api/lib/esm/env.js","../../node_modules/@vue/devtools-api/lib/esm/const.js","../../node_modules/@vue/devtools-api/lib/esm/time.js","../../node_modules/@vue/devtools-api/lib/esm/proxy.js","../../node_modules/@vue/devtools-api/lib/esm/index.js","../../node_modules/pinia/dist/pinia.mjs","../../node_modules/@primevue/core/api/index.mjs","../../node_modules/@primeuix/utils/dom/index.mjs","../../node_modules/@primevue/core/usestyle/index.mjs","../../node_modules/@primevue/core/base/style/index.mjs","../../node_modules/@primevue/core/service/index.mjs","../../node_modules/@primeuix/utils/uuid/index.mjs","../../node_modules/@primeuix/utils/zindex/index.mjs","../../node_modules/@primevue/core/config/index.mjs","../../node_modules/primevue/confirmationeventbus/index.mjs","../../node_modules/primevue/useconfirm/index.mjs","../../node_modules/primevue/confirmationservice/index.mjs","../../node_modules/primevue/toasteventbus/index.mjs","../../node_modules/primevue/usetoast/index.mjs","../../node_modules/primevue/toastservice/index.mjs","../../node_modules/@primevue/core/utils/index.mjs","../../node_modules/@primevue/core/base/index.mjs","../../node_modules/@primevue/core/basedirective/index.mjs","../../node_modules/primevue/tooltip/style/index.mjs","../../node_modules/primevue/tooltip/index.mjs","../../node_modules/vue-router/dist/vue-router.mjs","../../src/views/layouts/LayoutDefault.vue","../../node_modules/axios/lib/helpers/bind.js","../../node_modules/axios/lib/utils.js","../../node_modules/axios/lib/core/AxiosError.js","../../node_modules/axios/lib/helpers/null.js","../../node_modules/axios/lib/helpers/toFormData.js","../../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../../node_modules/axios/lib/helpers/buildURL.js","../../node_modules/axios/lib/core/InterceptorManager.js","../../node_modules/axios/lib/defaults/transitional.js","../../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../../node_modules/axios/lib/platform/browser/classes/FormData.js","../../node_modules/axios/lib/platform/browser/classes/Blob.js","../../node_modules/axios/lib/platform/browser/index.js","../../node_modules/axios/lib/platform/common/utils.js","../../node_modules/axios/lib/platform/index.js","../../node_modules/axios/lib/helpers/toURLEncodedForm.js","../../node_modules/axios/lib/helpers/formDataToJSON.js","../../node_modules/axios/lib/defaults/index.js","../../node_modules/axios/lib/helpers/parseHeaders.js","../../node_modules/axios/lib/core/AxiosHeaders.js","../../node_modules/axios/lib/core/transformData.js","../../node_modules/axios/lib/cancel/isCancel.js","../../node_modules/axios/lib/cancel/CanceledError.js","../../node_modules/axios/lib/core/settle.js","../../node_modules/axios/lib/helpers/parseProtocol.js","../../node_modules/axios/lib/helpers/speedometer.js","../../node_modules/axios/lib/helpers/throttle.js","../../node_modules/axios/lib/helpers/progressEventReducer.js","../../node_modules/axios/lib/helpers/isURLSameOrigin.js","../../node_modules/axios/lib/helpers/cookies.js","../../node_modules/axios/lib/helpers/isAbsoluteURL.js","../../node_modules/axios/lib/helpers/combineURLs.js","../../node_modules/axios/lib/core/buildFullPath.js","../../node_modules/axios/lib/core/mergeConfig.js","../../node_modules/axios/lib/helpers/resolveConfig.js","../../node_modules/axios/lib/adapters/xhr.js","../../node_modules/axios/lib/helpers/composeSignals.js","../../node_modules/axios/lib/helpers/trackStream.js","../../node_modules/axios/lib/adapters/fetch.js","../../node_modules/axios/lib/adapters/adapters.js","../../node_modules/axios/lib/core/dispatchRequest.js","../../node_modules/axios/lib/env/data.js","../../node_modules/axios/lib/helpers/validator.js","../../node_modules/axios/lib/core/Axios.js","../../node_modules/axios/lib/cancel/CancelToken.js","../../node_modules/axios/lib/helpers/spread.js","../../node_modules/axios/lib/helpers/isAxiosError.js","../../node_modules/axios/lib/helpers/HttpStatusCode.js","../../node_modules/axios/lib/axios.js","../../node_modules/axios/index.js","../../node_modules/zod/lib/index.mjs","../../node_modules/zod-validation-error/dist/index.mjs","../../node_modules/@comfyorg/litegraph/dist/litegraph.es.js","../../src/types/colorPaletteTypes.ts","../../src/types/comfyWorkflow.ts","../../src/types/keyBindingTypes.ts","../../src/types/nodeSource.ts","../../src/types/searchBoxTypes.ts","../../src/types/apiTypes.ts","../../src/scripts/api.ts","../../src/stores/userStore.ts","../../src/utils/envUtil.ts","../../src/router.ts","../../node_modules/@vueuse/shared/node_modules/vue-demi/lib/index.mjs","../../node_modules/@vueuse/shared/index.mjs","../../node_modules/@vueuse/core/node_modules/vue-demi/lib/index.mjs","../../node_modules/@vueuse/core/index.mjs","../../node_modules/@primevue/core/basecomponent/index.mjs","../../node_modules/primevue/blockui/style/index.mjs","../../node_modules/primevue/blockui/index.mjs","../../node_modules/primevue/progressspinner/style/index.mjs","../../node_modules/primevue/progressspinner/index.mjs","../../node_modules/@primevue/core/basecomponent/style/index.mjs","../../node_modules/@primevue/icons/baseicon/style/index.mjs","../../node_modules/@primevue/icons/baseicon/index.mjs","../../node_modules/@primevue/icons/times/index.mjs","../../node_modules/@primevue/icons/windowmaximize/index.mjs","../../node_modules/@primevue/icons/windowminimize/index.mjs","../../node_modules/@primevue/icons/spinner/index.mjs","../../node_modules/primevue/badge/style/index.mjs","../../node_modules/primevue/badge/index.mjs","../../node_modules/primevue/ripple/style/index.mjs","../../node_modules/primevue/ripple/index.mjs","../../node_modules/primevue/button/style/index.mjs","../../node_modules/primevue/button/index.mjs","../../node_modules/primevue/focustrap/style/index.mjs","../../node_modules/primevue/focustrap/index.mjs","../../node_modules/primevue/portal/index.mjs","../../node_modules/primevue/dialog/style/index.mjs","../../node_modules/primevue/dialog/index.mjs","../../src/stores/dialogStore.ts","../../src/components/dialog/GlobalDialog.vue","../../src/config.ts","../../node_modules/@intlify/shared/dist/shared.mjs","../../node_modules/@intlify/message-compiler/dist/message-compiler.esm-browser.js","../../node_modules/@intlify/core-base/dist/core-base.mjs","../../node_modules/vue-i18n/dist/vue-i18n.mjs","../../src/i18n.ts","../../src/stores/toastStore.ts","../../src/hooks/errorHooks.ts","../../node_modules/lodash/lodash.js","../../src/components/dialog/content/ConfirmationDialogContent.vue","../../node_modules/primevue/divider/style/index.mjs","../../node_modules/primevue/divider/index.mjs","../../node_modules/primevue/scrollpanel/style/index.mjs","../../node_modules/primevue/scrollpanel/index.mjs","../../node_modules/primevue/card/style/index.mjs","../../node_modules/primevue/card/index.mjs","../../src/components/common/NoResultsPlaceholder.vue","../../src/components/dialog/content/error/FindIssueButton.vue","../../src/components/dialog/content/error/ReportIssueButton.vue","../../src/hooks/clipboardHooks.ts","../../src/components/dialog/content/ExecutionErrorDialogContent.vue","../../node_modules/@primevue/icons/blank/index.mjs","../../node_modules/@primevue/icons/check/index.mjs","../../node_modules/@primevue/icons/search/index.mjs","../../node_modules/primevue/iconfield/style/index.mjs","../../node_modules/primevue/iconfield/index.mjs","../../node_modules/primevue/inputicon/style/index.mjs","../../node_modules/primevue/inputicon/index.mjs","../../node_modules/primevue/inputtext/style/index.mjs","../../node_modules/primevue/inputtext/index.mjs","../../node_modules/primevue/virtualscroller/style/index.mjs","../../node_modules/primevue/virtualscroller/index.mjs","../../node_modules/primevue/listbox/style/index.mjs","../../node_modules/primevue/listbox/index.mjs","../../src/components/dialog/content/LoadWorkflowWarning.vue","../../node_modules/primevue/progressbar/style/index.mjs","../../node_modules/primevue/progressbar/index.mjs","../../src/hooks/downloadHooks.ts","../../node_modules/@comfyorg/comfyui-electron-types/index.js","../../src/stores/electronDownloadStore.ts","../../src/utils/formatUtil.ts","../../src/components/common/ElectronFileDownload.vue","../../src/components/common/FileDownload.vue","../../src/components/dialog/content/MissingModelsWarning.vue","../../node_modules/primevue/floatlabel/style/index.mjs","../../node_modules/primevue/floatlabel/index.mjs","../../src/components/dialog/content/PromptDialogContent.vue","../../node_modules/primevue/tabpanels/style/index.mjs","../../node_modules/primevue/tabpanels/index.mjs","../../node_modules/primevue/tabs/style/index.mjs","../../node_modules/primevue/tabs/index.mjs","../../node_modules/@primevue/icons/timescircle/index.mjs","../../node_modules/primevue/chip/style/index.mjs","../../node_modules/primevue/chip/index.mjs","../../src/components/common/SearchBox.vue","../../src/utils/treeUtil.ts","../../src/stores/settingStore.ts","../../node_modules/primevue/tag/style/index.mjs","../../node_modules/primevue/tag/index.mjs","../../node_modules/primevue/tabpanel/style/index.mjs","../../node_modules/primevue/tabpanel/index.mjs","../../node_modules/@primevue/icons/chevronleft/index.mjs","../../node_modules/@primevue/icons/chevronright/index.mjs","../../node_modules/primevue/tabview/style/index.mjs","../../node_modules/primevue/tabview/index.mjs","../../src/components/common/DeviceInfo.vue","../../src/components/common/SystemStatsPanel.vue","../../src/stores/extensionStore.ts","../../src/stores/systemStatsStore.ts","../../src/stores/aboutPanelStore.ts","../../src/components/dialog/content/setting/PanelTemplate.vue","../../src/components/dialog/content/setting/AboutPanel.vue","../../node_modules/@primevue/icons/exclamationtriangle/index.mjs","../../node_modules/@primevue/icons/infocircle/index.mjs","../../node_modules/primevue/message/style/index.mjs","../../node_modules/primevue/message/index.mjs","../../node_modules/@primevue/icons/chevrondown/index.mjs","../../node_modules/primevue/overlayeventbus/index.mjs","../../node_modules/primevue/select/style/index.mjs","../../node_modules/primevue/select/index.mjs","../../src/constants/coreColorPalettes.ts","../../src/stores/workspace/colorPaletteStore.ts","../../src/components/dialog/content/setting/ColorPaletteMessage.vue","../../src/components/dialog/content/setting/CurrentUserMessage.vue","../../src/components/dialog/content/setting/FirstTimeUIMessage.vue","../../node_modules/@primevue/icons/angledown/index.mjs","../../node_modules/@primevue/icons/angleup/index.mjs","../../node_modules/primevue/inputnumber/style/index.mjs","../../node_modules/primevue/inputnumber/index.mjs","../../node_modules/primevue/toggleswitch/style/index.mjs","../../node_modules/primevue/toggleswitch/index.mjs","../../src/components/common/CustomFormValue.vue","../../node_modules/primevue/colorpicker/style/index.mjs","../../node_modules/primevue/colorpicker/index.mjs","../../src/components/common/FormColorPicker.vue","../../src/components/common/FormImageUpload.vue","../../node_modules/primevue/slider/style/index.mjs","../../node_modules/primevue/slider/index.mjs","../../src/components/common/InputSlider.vue","../../src/components/common/FormItem.vue","../../src/components/dialog/content/setting/SettingItem.vue","../../src/components/dialog/content/setting/SettingsPanel.vue","../../src/components/dialog/content/SettingDialogContent.vue","../../src/components/dialog/header/SettingDialogHeader.vue","../../node_modules/@primevue/icons/chevronup/index.mjs","../../node_modules/primevue/carousel/style/index.mjs","../../node_modules/primevue/carousel/index.mjs","../../src/components/templates/TemplateWorkflowCard.vue","../../src/stores/workflowTemplatesStore.ts","../../src/components/templates/TemplateWorkflowsContent.vue","../../src/services/dialogService.ts","../../src/stores/keybindingStore.ts","../../src/stores/commandStore.ts","../../src/constants/coreMenuCommands.ts","../../src/stores/menuItemStore.ts","../../node_modules/orderedmap/dist/index.js","../../node_modules/prosemirror-model/dist/index.js","../../node_modules/prosemirror-transform/dist/index.js","../../node_modules/prosemirror-state/dist/index.js","../../node_modules/prosemirror-view/dist/index.js","../../node_modules/w3c-keyname/index.js","../../node_modules/prosemirror-keymap/dist/index.js","../../node_modules/prosemirror-commands/dist/index.js","../../node_modules/prosemirror-schema-list/dist/index.js","../../node_modules/@tiptap/core/dist/index.js","../../node_modules/linkifyjs/dist/linkify.es.js","../../node_modules/@tiptap/extension-link/dist/index.js","../../node_modules/prosemirror-tables/dist/index.js","../../node_modules/@tiptap/extension-table/dist/index.js","../../node_modules/@tiptap/extension-table-cell/dist/index.js","../../node_modules/@tiptap/extension-table-header/dist/index.js","../../node_modules/@tiptap/extension-table-row/dist/index.js","../../node_modules/@tiptap/extension-blockquote/dist/index.js","../../node_modules/@tiptap/extension-bold/dist/index.js","../../node_modules/@tiptap/extension-bullet-list/dist/index.js","../../node_modules/@tiptap/extension-code/dist/index.js","../../node_modules/@tiptap/extension-code-block/dist/index.js","../../node_modules/@tiptap/extension-document/dist/index.js","../../node_modules/prosemirror-dropcursor/dist/index.js","../../node_modules/@tiptap/extension-dropcursor/dist/index.js","../../node_modules/prosemirror-gapcursor/dist/index.js","../../node_modules/@tiptap/extension-gapcursor/dist/index.js","../../node_modules/@tiptap/extension-hard-break/dist/index.js","../../node_modules/@tiptap/extension-heading/dist/index.js","../../node_modules/rope-sequence/dist/index.js","../../node_modules/prosemirror-history/dist/index.js","../../node_modules/@tiptap/extension-history/dist/index.js","../../node_modules/@tiptap/extension-horizontal-rule/dist/index.js","../../node_modules/@tiptap/extension-italic/dist/index.js","../../node_modules/@tiptap/extension-list-item/dist/index.js","../../node_modules/@tiptap/extension-ordered-list/dist/index.js","../../node_modules/@tiptap/extension-paragraph/dist/index.js","../../node_modules/@tiptap/extension-strike/dist/index.js","../../node_modules/@tiptap/extension-text/dist/index.js","../../node_modules/@tiptap/starter-kit/dist/index.js","../../node_modules/mdurl/lib/decode.mjs","../../node_modules/mdurl/lib/encode.mjs","../../node_modules/mdurl/lib/format.mjs","../../node_modules/mdurl/lib/parse.mjs","../../node_modules/uc.micro/properties/Any/regex.mjs","../../node_modules/uc.micro/categories/Cc/regex.mjs","../../node_modules/uc.micro/categories/Cf/regex.mjs","../../node_modules/uc.micro/categories/P/regex.mjs","../../node_modules/uc.micro/categories/S/regex.mjs","../../node_modules/uc.micro/categories/Z/regex.mjs","../../node_modules/entities/lib/esm/generated/decode-data-html.js","../../node_modules/entities/lib/esm/generated/decode-data-xml.js","../../node_modules/entities/lib/esm/decode_codepoint.js","../../node_modules/entities/lib/esm/decode.js","../../node_modules/entities/lib/esm/generated/encode-html.js","../../node_modules/entities/lib/esm/escape.js","../../node_modules/entities/lib/esm/encode.js","../../node_modules/entities/lib/esm/index.js","../../node_modules/markdown-it/lib/common/utils.mjs","../../node_modules/markdown-it/lib/helpers/parse_link_label.mjs","../../node_modules/markdown-it/lib/helpers/parse_link_destination.mjs","../../node_modules/markdown-it/lib/helpers/parse_link_title.mjs","../../node_modules/markdown-it/lib/renderer.mjs","../../node_modules/markdown-it/lib/ruler.mjs","../../node_modules/markdown-it/lib/token.mjs","../../node_modules/markdown-it/lib/rules_core/state_core.mjs","../../node_modules/markdown-it/lib/rules_core/normalize.mjs","../../node_modules/markdown-it/lib/rules_core/block.mjs","../../node_modules/markdown-it/lib/rules_core/inline.mjs","../../node_modules/markdown-it/lib/rules_core/linkify.mjs","../../node_modules/markdown-it/lib/rules_core/replacements.mjs","../../node_modules/markdown-it/lib/rules_core/smartquotes.mjs","../../node_modules/markdown-it/lib/rules_core/text_join.mjs","../../node_modules/markdown-it/lib/parser_core.mjs","../../node_modules/markdown-it/lib/rules_block/state_block.mjs","../../node_modules/markdown-it/lib/rules_block/table.mjs","../../node_modules/markdown-it/lib/rules_block/code.mjs","../../node_modules/markdown-it/lib/rules_block/fence.mjs","../../node_modules/markdown-it/lib/rules_block/blockquote.mjs","../../node_modules/markdown-it/lib/rules_block/hr.mjs","../../node_modules/markdown-it/lib/rules_block/list.mjs","../../node_modules/markdown-it/lib/rules_block/reference.mjs","../../node_modules/markdown-it/lib/common/html_blocks.mjs","../../node_modules/markdown-it/lib/common/html_re.mjs","../../node_modules/markdown-it/lib/rules_block/html_block.mjs","../../node_modules/markdown-it/lib/rules_block/heading.mjs","../../node_modules/markdown-it/lib/rules_block/lheading.mjs","../../node_modules/markdown-it/lib/rules_block/paragraph.mjs","../../node_modules/markdown-it/lib/parser_block.mjs","../../node_modules/markdown-it/lib/rules_inline/state_inline.mjs","../../node_modules/markdown-it/lib/rules_inline/text.mjs","../../node_modules/markdown-it/lib/rules_inline/linkify.mjs","../../node_modules/markdown-it/lib/rules_inline/newline.mjs","../../node_modules/markdown-it/lib/rules_inline/escape.mjs","../../node_modules/markdown-it/lib/rules_inline/backticks.mjs","../../node_modules/markdown-it/lib/rules_inline/strikethrough.mjs","../../node_modules/markdown-it/lib/rules_inline/emphasis.mjs","../../node_modules/markdown-it/lib/rules_inline/link.mjs","../../node_modules/markdown-it/lib/rules_inline/image.mjs","../../node_modules/markdown-it/lib/rules_inline/autolink.mjs","../../node_modules/markdown-it/lib/rules_inline/html_inline.mjs","../../node_modules/markdown-it/lib/rules_inline/entity.mjs","../../node_modules/markdown-it/lib/rules_inline/balance_pairs.mjs","../../node_modules/markdown-it/lib/rules_inline/fragments_join.mjs","../../node_modules/markdown-it/lib/parser_inline.mjs","../../node_modules/linkify-it/lib/re.mjs","../../node_modules/linkify-it/index.mjs","../../node_modules/punycode.js/punycode.es6.js","../../node_modules/markdown-it/lib/presets/default.mjs","../../node_modules/markdown-it/lib/presets/zero.mjs","../../node_modules/markdown-it/lib/presets/commonmark.mjs","../../node_modules/markdown-it/lib/index.mjs","../../node_modules/prosemirror-markdown/dist/index.js","../../node_modules/markdown-it-task-lists/index.js","../../node_modules/tiptap-markdown/dist/tiptap-markdown.es.js","../../src/scripts/domWidget.ts","../../src/scripts/widgets.ts","../../src/stores/widgetStore.ts","../../node_modules/@xterm/addon-fit/lib/addon-fit.js","../../node_modules/@xterm/xterm/lib/xterm.js","../../src/hooks/bottomPanelTabs/useTerminal.ts","../../src/components/bottomPanel/tabs/terminal/BaseTerminal.vue","../../src/components/bottomPanel/tabs/terminal/CommandTerminal.vue","../../src/stores/executionStore.ts","../../src/components/bottomPanel/tabs/terminal/LogsTerminal.vue","../../src/hooks/bottomPanelTabs/terminalTabs.ts","../../src/stores/workspace/bottomPanelStore.ts","../../src/services/extensionService.ts","../../src/scripts/ui/dialog.ts","../../src/scripts/ui/settings.ts","../../src/scripts/ui/toggleSwitch.ts","../../src/scripts/ui.ts","../../src/scripts/ui/imagePreview.ts","../../src/services/litegraphService.ts","../../src/scripts/defaultGraph.ts","../../src/scripts/utils.ts","../../node_modules/jsondiffpatch/lib/processor.js","../../node_modules/jsondiffpatch/lib/pipe.js","../../node_modules/jsondiffpatch/lib/contexts/context.js","../../node_modules/jsondiffpatch/lib/clone.js","../../node_modules/jsondiffpatch/lib/contexts/diff.js","../../node_modules/jsondiffpatch/lib/contexts/patch.js","../../node_modules/jsondiffpatch/lib/contexts/reverse.js","../../node_modules/jsondiffpatch/lib/filters/trivial.js","../../node_modules/jsondiffpatch/lib/filters/nested.js","../../node_modules/jsondiffpatch/lib/filters/lcs.js","../../node_modules/jsondiffpatch/lib/filters/arrays.js","../../node_modules/jsondiffpatch/lib/filters/dates.js","../../node_modules/jsondiffpatch/lib/filters/texts.js","../../node_modules/jsondiffpatch/lib/diffpatcher.js","../../node_modules/jsondiffpatch/lib/date-reviver.js","../../node_modules/jsondiffpatch/lib/index.js","../../node_modules/loglevel/lib/loglevel.js","../../src/scripts/changeTracker.ts","../../src/utils/syncUtil.ts","../../src/stores/userFileStore.ts","../../src/stores/workflowStore.ts","../../src/services/workflowService.ts","../../src/stores/modelStore.ts","../../node_modules/fuse.js/dist/fuse.mjs","../../src/services/nodeSearchService.ts","../../src/stores/nodeDefStore.ts","../../src/utils/colorUtil.ts","../../src/utils/vintageClipboard.ts","../../src/scripts/metadata/flac.ts","../../src/scripts/metadata/png.ts","../../src/scripts/pnginfo.ts","../../src/scripts/ui/components/buttonGroup.ts","../../src/scripts/ui/utils.ts","../../src/scripts/ui/components/button.ts","../../src/scripts/ui/components/popup.ts","../../src/scripts/ui/components/splitButton.ts","../../src/scripts/ui/components/asyncDialog.ts","../../src/scripts/ui/draggableList.ts","../../src/scripts/ui/menu/index.ts","../../src/scripts/app.ts","../../src/services/colorPaletteService.ts","../../src/stores/queueStore.ts","../../node_modules/primevue/contextmenu/style/index.mjs","../../node_modules/@primevue/icons/angleright/index.mjs","../../node_modules/primevue/contextmenu/index.mjs","../../node_modules/primevue/tree/style/index.mjs","../../node_modules/@primevue/icons/minus/index.mjs","../../node_modules/primevue/checkbox/style/index.mjs","../../node_modules/primevue/checkbox/index.mjs","../../node_modules/primevue/tree/index.mjs","../../src/components/common/EditableText.vue","../../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../../node_modules/bind-event-listener/dist/bind.js","../../node_modules/bind-event-listener/dist/bind-all.js","../../node_modules/bind-event-listener/dist/index.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/honey-pot-fix/honey-pot-data-attribute.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/honey-pot-fix/is-honey-pot-element.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/honey-pot-fix/get-element-from-point-without-honey-pot.js","../../node_modules/@babel/runtime/helpers/esm/typeof.js","../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/max-z-index.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/honey-pot-fix/make-honey-pot-fix.js","../../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/public-utils/once.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/is-firefox.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/is-safari.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/changing-window/count-events-for-safari.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/changing-window/is-from-another-window.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/changing-window/is-leaving-window.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/detect-broken-drag.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/get-input.js","../../node_modules/raf-schd/dist/raf-schd.esm.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/ledger/dispatch-consumer-event.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/ledger/lifecycle-manager.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/ledger/usage-ledger.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/public-utils/combine.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/add-attribute.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/make-adapter/make-drop-target.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/make-adapter/make-monitor.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/make-adapter/make-adapter.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/android.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/media-types/text-media-type.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/media-types/url-media-type.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/adapter/element-adapter-native-data-key.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/adapter/element-adapter.js","../../src/hooks/dndHooks.ts","../../src/components/common/TreeExplorerTreeNode.vue","../../src/components/common/TreeExplorer.vue","../../node_modules/primevue/toolbar/style/index.mjs","../../node_modules/primevue/toolbar/index.mjs","../../src/components/sidebar/tabs/SidebarTabTemplate.vue","../../src/components/sidebar/tabs/modelLibrary/DownloadItem.vue","../../src/components/sidebar/tabs/modelLibrary/ElectronDownloadItems.vue","../../src/components/sidebar/tabs/modelLibrary/ModelPreview.vue","../../src/components/sidebar/tabs/modelLibrary/ModelTreeLeaf.vue","../../src/hooks/treeHooks.ts","../../src/stores/modelToNodeStore.ts","../../src/components/sidebar/tabs/ModelLibrarySidebarTab.vue","../../src/hooks/sidebarTabs/modelLibrarySidebarTab.ts","../../node_modules/primevue/popover/style/index.mjs","../../node_modules/primevue/popover/index.mjs","../../node_modules/primevue/togglebutton/style/index.mjs","../../node_modules/primevue/togglebutton/index.mjs","../../node_modules/primevue/selectbutton/style/index.mjs","../../node_modules/primevue/selectbutton/index.mjs","../../src/components/searchbox/NodeSearchFilter.vue","../../src/components/node/NodePreview.vue","../../src/stores/nodeBookmarkStore.ts","../../src/components/sidebar/tabs/nodeLibrary/NodeTreeLeaf.vue","../../src/components/common/CustomizationDialog.vue","../../src/components/sidebar/tabs/nodeLibrary/NodeTreeFolder.vue","../../src/components/sidebar/tabs/nodeLibrary/NodeBookmarkTreeExplorer.vue","../../src/components/sidebar/tabs/NodeLibrarySidebarTab.vue","../../src/hooks/sidebarTabs/nodeLibrarySidebarTab.ts","../../node_modules/primevue/confirmpopup/style/index.mjs","../../node_modules/primevue/confirmpopup/index.mjs","../../src/components/common/VirtualGrid.vue","../../node_modules/primevue/galleria/style/index.mjs","../../node_modules/primevue/galleria/index.mjs","../../src/components/common/ComfyImage.vue","../../src/components/sidebar/tabs/queue/ResultVideo.vue","../../src/components/sidebar/tabs/queue/ResultGallery.vue","../../src/components/sidebar/tabs/queue/ResultItem.vue","../../src/components/sidebar/tabs/queue/TaskItem.vue","../../src/components/sidebar/tabs/QueueSidebarTab.vue","../../src/hooks/sidebarTabs/queueSidebarTab.ts","../../node_modules/primevue/confirmdialog/style/index.mjs","../../node_modules/primevue/confirmdialog/index.mjs","../../src/components/common/TextDivider.vue","../../src/components/sidebar/tabs/workflows/WorkflowTreeLeaf.vue","../../src/components/sidebar/tabs/WorkflowsSidebarTab.vue","../../src/hooks/sidebarTabs/workflowsSidebarTab.ts","../../src/stores/workspace/sidebarTabStore.ts","../../src/stores/workspaceStore.ts","../../src/App.vue","../../src/main.ts"],"sourcesContent":["var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\n\n// src/object/methods/isEmpty.ts\nfunction isEmpty(value) {\n return value === null || value === void 0 || value === \"\" || Array.isArray(value) && value.length === 0 || !(value instanceof Date) && typeof value === \"object\" && Object.keys(value).length === 0;\n}\n\n// src/object/methods/compare.ts\nfunction compare(value1, value2, comparator, order = 1) {\n let result = -1;\n const emptyValue1 = isEmpty(value1);\n const emptyValue2 = isEmpty(value2);\n if (emptyValue1 && emptyValue2) result = 0;\n else if (emptyValue1) result = order;\n else if (emptyValue2) result = -order;\n else if (typeof value1 === \"string\" && typeof value2 === \"string\") result = comparator(value1, value2);\n else result = value1 < value2 ? -1 : value1 > value2 ? 1 : 0;\n return result;\n}\n\n// src/object/methods/deepEquals.ts\nfunction deepEquals(obj1, obj2) {\n if (obj1 === obj2) return true;\n if (obj1 && obj2 && typeof obj1 == \"object\" && typeof obj2 == \"object\") {\n var arrObj1 = Array.isArray(obj1), arrObj2 = Array.isArray(obj2), i, length, key;\n if (arrObj1 && arrObj2) {\n length = obj1.length;\n if (length != obj2.length) return false;\n for (i = length; i-- !== 0; ) if (!deepEquals(obj1[i], obj2[i])) return false;\n return true;\n }\n if (arrObj1 != arrObj2) return false;\n var dateObj1 = obj1 instanceof Date, dateObj2 = obj2 instanceof Date;\n if (dateObj1 != dateObj2) return false;\n if (dateObj1 && dateObj2) return obj1.getTime() == obj2.getTime();\n var regexpObj1 = obj1 instanceof RegExp, regexpObj2 = obj2 instanceof RegExp;\n if (regexpObj1 != regexpObj2) return false;\n if (regexpObj1 && regexpObj2) return obj1.toString() == obj2.toString();\n var keys = Object.keys(obj1);\n length = keys.length;\n if (length !== Object.keys(obj2).length) return false;\n for (i = length; i-- !== 0; ) if (!Object.prototype.hasOwnProperty.call(obj2, keys[i])) return false;\n for (i = length; i-- !== 0; ) {\n key = keys[i];\n if (!deepEquals(obj1[key], obj2[key])) return false;\n }\n return true;\n }\n return obj1 !== obj1 && obj2 !== obj2;\n}\n\n// src/object/methods/isFunction.ts\nfunction isFunction(value) {\n return !!(value && value.constructor && value.call && value.apply);\n}\n\n// src/object/methods/isNotEmpty.ts\nfunction isNotEmpty(value) {\n return !isEmpty(value);\n}\n\n// src/object/methods/resolveFieldData.ts\nfunction resolveFieldData(data, field) {\n if (!data || !field) {\n return null;\n }\n try {\n const value = data[field];\n if (isNotEmpty(value)) return value;\n } catch (e) {\n }\n if (Object.keys(data).length) {\n if (isFunction(field)) {\n return field(data);\n } else if (field.indexOf(\".\") === -1) {\n return data[field];\n } else {\n let fields = field.split(\".\");\n let value = data;\n for (let i = 0, len = fields.length; i < len; ++i) {\n if (value == null) {\n return null;\n }\n value = value[fields[i]];\n }\n return value;\n }\n }\n return null;\n}\n\n// src/object/methods/equals.ts\nfunction equals(obj1, obj2, field) {\n if (field) return resolveFieldData(obj1, field) === resolveFieldData(obj2, field);\n else return deepEquals(obj1, obj2);\n}\n\n// src/object/methods/contains.ts\nfunction contains(value, list) {\n if (value != null && list && list.length) {\n for (let val of list) {\n if (equals(value, val)) return true;\n }\n }\n return false;\n}\n\n// src/object/methods/filter.ts\nfunction filter(value, fields, filterValue) {\n let filteredItems = [];\n if (value) {\n for (let item of value) {\n for (let field of fields) {\n if (String(resolveFieldData(item, field)).toLowerCase().indexOf(filterValue.toLowerCase()) > -1) {\n filteredItems.push(item);\n break;\n }\n }\n }\n }\n return filteredItems;\n}\n\n// src/object/methods/findIndexInList.ts\nfunction findIndexInList(value, list) {\n let index = -1;\n if (list) {\n for (let i = 0; i < list.length; i++) {\n if (list[i] === value) {\n index = i;\n break;\n }\n }\n }\n return index;\n}\n\n// src/object/methods/findLast.ts\nfunction findLast(arr, callback) {\n let item;\n if (isNotEmpty(arr)) {\n try {\n item = arr.findLast(callback);\n } catch (e) {\n item = [...arr].reverse().find(callback);\n }\n }\n return item;\n}\n\n// src/object/methods/findLastIndex.ts\nfunction findLastIndex(arr, callback) {\n let index = -1;\n if (isNotEmpty(arr)) {\n try {\n index = arr.findLastIndex(callback);\n } catch (e) {\n index = arr.lastIndexOf([...arr].reverse().find(callback));\n }\n }\n return index;\n}\n\n// src/object/methods/isObject.ts\nfunction isObject(value, empty = true) {\n return value instanceof Object && value.constructor === Object && (empty || Object.keys(value).length !== 0);\n}\n\n// src/object/methods/resolve.ts\nfunction resolve(obj, ...params) {\n return isFunction(obj) ? obj(...params) : obj;\n}\n\n// src/object/methods/isString.ts\nfunction isString(value, empty = true) {\n return typeof value === \"string\" && (empty || value !== \"\");\n}\n\n// src/object/methods/toFlatCase.ts\nfunction toFlatCase(str) {\n return isString(str) ? str.replace(/(-|_)/g, \"\").toLowerCase() : str;\n}\n\n// src/object/methods/getKeyValue.ts\nfunction getKeyValue(obj, key = \"\", params = {}) {\n const fKeys = toFlatCase(key).split(\".\");\n const fKey = fKeys.shift();\n return fKey ? isObject(obj) ? getKeyValue(resolve(obj[Object.keys(obj).find((k) => toFlatCase(k) === fKey) || \"\"], params), fKeys.join(\".\"), params) : void 0 : resolve(obj, params);\n}\n\n// src/object/methods/insertIntoOrderedArray.ts\nfunction insertIntoOrderedArray(item, index, arr, sourceArr) {\n if (arr.length > 0) {\n let injected = false;\n for (let i = 0; i < arr.length; i++) {\n let currentItemIndex = findIndexInList(arr[i], sourceArr);\n if (currentItemIndex > index) {\n arr.splice(i, 0, item);\n injected = true;\n break;\n }\n }\n if (!injected) {\n arr.push(item);\n }\n } else {\n arr.push(item);\n }\n}\n\n// src/object/methods/isArray.ts\nfunction isArray(value, empty = true) {\n return Array.isArray(value) && (empty || value.length !== 0);\n}\n\n// src/object/methods/isDate.ts\nfunction isDate(value) {\n return value instanceof Date && value.constructor === Date;\n}\n\n// src/object/methods/isNumber.ts\nfunction isNumber(value) {\n return isNotEmpty(value) && !isNaN(value);\n}\n\n// src/object/methods/isPrintableCharacter.ts\nfunction isPrintableCharacter(char = \"\") {\n return isNotEmpty(char) && char.length === 1 && !!char.match(/\\S| /);\n}\n\n// src/object/methods/localeComparator.ts\nfunction localeComparator() {\n return new Intl.Collator(void 0, { numeric: true }).compare;\n}\n\n// src/object/methods/matchRegex.ts\nfunction matchRegex(str, regex) {\n if (regex) {\n const match = regex.test(str);\n regex.lastIndex = 0;\n return match;\n }\n return false;\n}\n\n// src/object/methods/mergeKeys.ts\nfunction mergeKeys(...args) {\n const _mergeKeys = (target = {}, source = {}) => {\n const mergedObj = __spreadValues({}, target);\n Object.keys(source).forEach((key) => {\n if (isObject(source[key]) && key in target && isObject(target[key])) {\n mergedObj[key] = _mergeKeys(target[key], source[key]);\n } else {\n mergedObj[key] = source[key];\n }\n });\n return mergedObj;\n };\n return args.reduce((acc, obj, i) => i === 0 ? obj : _mergeKeys(acc, obj), {});\n}\n\n// src/object/methods/minifyCSS.ts\nfunction minifyCSS(css) {\n return css ? css.replace(/\\/\\*(?:(?!\\*\\/)[\\s\\S])*\\*\\/|[\\r\\n\\t]+/g, \"\").replace(/ {2,}/g, \" \").replace(/ ([{:}]) /g, \"$1\").replace(/([;,]) /g, \"$1\").replace(/ !/g, \"!\").replace(/: /g, \":\") : css;\n}\n\n// src/object/methods/nestedKeys.ts\nfunction nestedKeys(obj = {}, parentKey = \"\") {\n return Object.entries(obj).reduce((o, [key, value]) => {\n const currentKey = parentKey ? `${parentKey}.${key}` : key;\n isObject(value) ? o = o.concat(nestedKeys(value, currentKey)) : o.push(currentKey);\n return o;\n }, []);\n}\n\n// src/object/methods/removeAccents.ts\nfunction removeAccents(str) {\n if (str && str.search(/[\\xC0-\\xFF]/g) > -1) {\n str = str.replace(/[\\xC0-\\xC5]/g, \"A\").replace(/[\\xC6]/g, \"AE\").replace(/[\\xC7]/g, \"C\").replace(/[\\xC8-\\xCB]/g, \"E\").replace(/[\\xCC-\\xCF]/g, \"I\").replace(/[\\xD0]/g, \"D\").replace(/[\\xD1]/g, \"N\").replace(/[\\xD2-\\xD6\\xD8]/g, \"O\").replace(/[\\xD9-\\xDC]/g, \"U\").replace(/[\\xDD]/g, \"Y\").replace(/[\\xDE]/g, \"P\").replace(/[\\xE0-\\xE5]/g, \"a\").replace(/[\\xE6]/g, \"ae\").replace(/[\\xE7]/g, \"c\").replace(/[\\xE8-\\xEB]/g, \"e\").replace(/[\\xEC-\\xEF]/g, \"i\").replace(/[\\xF1]/g, \"n\").replace(/[\\xF2-\\xF6\\xF8]/g, \"o\").replace(/[\\xF9-\\xFC]/g, \"u\").replace(/[\\xFE]/g, \"p\").replace(/[\\xFD\\xFF]/g, \"y\");\n }\n return str;\n}\n\n// src/object/methods/reorderArray.ts\nfunction reorderArray(value, from, to) {\n if (value && from !== to) {\n if (to >= value.length) {\n to %= value.length;\n from %= value.length;\n }\n value.splice(to, 0, value.splice(from, 1)[0]);\n }\n}\n\n// src/object/methods/sort.ts\nfunction sort(value1, value2, order = 1, comparator, nullSortOrder = 1) {\n const result = compare(value1, value2, comparator, order);\n let finalSortOrder = order;\n if (isEmpty(value1) || isEmpty(value2)) {\n finalSortOrder = nullSortOrder === 1 ? order : nullSortOrder;\n }\n return finalSortOrder * result;\n}\n\n// src/object/methods/stringify.ts\nfunction stringify(value, indent = 2, currentIndent = 0) {\n const currentIndentStr = \" \".repeat(currentIndent);\n const nextIndentStr = \" \".repeat(currentIndent + indent);\n if (isArray(value)) {\n return \"[\" + value.map((v) => stringify(v, indent, currentIndent + indent)).join(\", \") + \"]\";\n } else if (isDate(value)) {\n return value.toISOString();\n } else if (isFunction(value)) {\n return value.toString();\n } else if (isObject(value)) {\n return \"{\\n\" + Object.entries(value).map(([k, v]) => `${nextIndentStr}${k}: ${stringify(v, indent, currentIndent + indent)}`).join(\",\\n\") + `\n${currentIndentStr}}`;\n } else {\n return JSON.stringify(value);\n }\n}\n\n// src/object/methods/toCapitalCase.ts\nfunction toCapitalCase(str) {\n return isString(str, false) ? str[0].toUpperCase() + str.slice(1) : str;\n}\n\n// src/object/methods/toKebabCase.ts\nfunction toKebabCase(str) {\n return isString(str) ? str.replace(/(_)/g, \"-\").replace(/[A-Z]/g, (c, i) => i === 0 ? c : \"-\" + c.toLowerCase()).toLowerCase() : str;\n}\n\n// src/object/methods/toTokenKey.ts\nfunction toTokenKey(str) {\n return isString(str) ? str.replace(/[A-Z]/g, (c, i) => i === 0 ? c : \".\" + c.toLowerCase()).toLowerCase() : str;\n}\nexport {\n compare,\n contains,\n deepEquals,\n equals,\n filter,\n findIndexInList,\n findLast,\n findLastIndex,\n getKeyValue,\n insertIntoOrderedArray,\n isArray,\n isDate,\n isEmpty,\n isFunction,\n isNotEmpty,\n isNumber,\n isObject,\n isPrintableCharacter,\n isString,\n localeComparator,\n matchRegex,\n mergeKeys,\n minifyCSS,\n nestedKeys,\n removeAccents,\n reorderArray,\n resolve,\n resolveFieldData,\n sort,\n stringify,\n toCapitalCase,\n toFlatCase,\n toKebabCase,\n toTokenKey\n};\n//# sourceMappingURL=index.mjs.map","// src/eventbus/index.ts\nfunction EventBus() {\n const allHandlers = /* @__PURE__ */ new Map();\n return {\n on(type, handler) {\n let handlers = allHandlers.get(type);\n if (!handlers) handlers = [handler];\n else handlers.push(handler);\n allHandlers.set(type, handlers);\n return this;\n },\n off(type, handler) {\n let handlers = allHandlers.get(type);\n if (handlers) {\n handlers.splice(handlers.indexOf(handler) >>> 0, 1);\n }\n return this;\n },\n emit(type, evt) {\n let handlers = allHandlers.get(type);\n if (handlers) {\n handlers.slice().map((handler) => {\n handler(evt);\n });\n }\n },\n clear() {\n allHandlers.clear();\n }\n };\n}\nexport {\n EventBus\n};\n//# sourceMappingURL=index.mjs.map","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\n\n// src/actions/definePreset.ts\nimport { mergeKeys } from \"@primeuix/utils/object\";\nfunction definePreset(...presets) {\n return mergeKeys(...presets);\n}\n\n// src/actions/updatePreset.ts\nimport { mergeKeys as mergeKeys3 } from \"@primeuix/utils/object\";\n\n// src/service/index.ts\nimport { EventBus } from \"@primeuix/utils/eventbus\";\nvar ThemeService = EventBus();\nvar service_default = ThemeService;\n\n// src/utils/sharedUtils.ts\nimport { getKeyValue, isArray, isNotEmpty, isNumber, isObject, isString, matchRegex, toKebabCase } from \"@primeuix/utils/object\";\nfunction toTokenKey(str) {\n return isString(str) ? str.replace(/[A-Z]/g, (c, i) => i === 0 ? c : \".\" + c.toLowerCase()).toLowerCase() : str;\n}\nfunction merge(value1, value2) {\n if (isArray(value1)) {\n value1.push(...value2 || []);\n } else if (isObject(value1)) {\n Object.assign(value1, value2);\n }\n}\nfunction toValue(value) {\n return isObject(value) && value.hasOwnProperty(\"value\") && value.hasOwnProperty(\"type\") ? value.value : value;\n}\nfunction toUnit(value, variable = \"\") {\n const excludedProperties = [\"opacity\", \"z-index\", \"line-height\", \"font-weight\", \"flex\", \"flex-grow\", \"flex-shrink\", \"order\"];\n if (!excludedProperties.some((property) => variable.endsWith(property))) {\n const val = `${value}`.trim();\n const valArr = val.split(\" \");\n return valArr.map((v) => isNumber(v) ? `${v}px` : v).join(\" \");\n }\n return value;\n}\nfunction toNormalizePrefix(prefix) {\n return prefix.replaceAll(/ /g, \"\").replace(/[^\\w]/g, \"-\");\n}\nfunction toNormalizeVariable(prefix = \"\", variable = \"\") {\n return toNormalizePrefix(`${isString(prefix, false) && isString(variable, false) ? `${prefix}-` : prefix}${variable}`);\n}\nfunction getVariableName(prefix = \"\", variable = \"\") {\n return `--${toNormalizeVariable(prefix, variable)}`;\n}\nfunction getVariableValue(value, variable = \"\", prefix = \"\", excludedKeyRegexes = [], fallback) {\n if (isString(value)) {\n const regex = /{([^}]*)}/g;\n const val = value.trim();\n if (matchRegex(val, regex)) {\n const _val = val.replaceAll(regex, (v) => {\n const path = v.replace(/{|}/g, \"\");\n const keys = path.split(\".\").filter((_v) => !excludedKeyRegexes.some((_r) => matchRegex(_v, _r)));\n return `var(${getVariableName(prefix, toKebabCase(keys.join(\"-\")))}${isNotEmpty(fallback) ? `, ${fallback}` : \"\"})`;\n });\n const calculationRegex = /(\\d+\\s+[\\+\\-\\*\\/]\\s+\\d+)/g;\n const cleanedVarRegex = /var\\([^)]+\\)/g;\n return matchRegex(_val.replace(cleanedVarRegex, \"0\"), calculationRegex) ? `calc(${_val})` : _val;\n }\n return toUnit(val, variable);\n } else if (isNumber(value)) {\n return toUnit(value, variable);\n }\n return void 0;\n}\nfunction getComputedValue(obj = {}, value) {\n if (isString(value)) {\n const regex = /{([^}]*)}/g;\n const val = value.trim();\n return matchRegex(val, regex) ? val.replaceAll(regex, (v) => getKeyValue(obj, v.replace(/{|}/g, \"\"))) : val;\n } else if (isNumber(value)) {\n return value;\n }\n return void 0;\n}\nfunction setProperty(properties, key, value) {\n if (isString(key, false)) {\n properties.push(`${key}:${value};`);\n }\n}\nfunction getRule(selector, properties) {\n if (selector) {\n return `${selector}{${properties}}`;\n }\n return \"\";\n}\n\n// src/utils/themeUtils.ts\nimport { isEmpty, isNotEmpty as isNotEmpty2, isObject as isObject3, matchRegex as matchRegex4, minifyCSS, resolve as resolve2, toTokenKey as toTokenKey2 } from \"@primeuix/utils/object\";\n\n// src/helpers/color/mix.ts\nfunction normalizeColor(color) {\n if (color.length === 4) {\n return `#${color[1]}${color[1]}${color[2]}${color[2]}${color[3]}${color[3]}`;\n }\n return color;\n}\nfunction hexToRgb(hex) {\n var bigint = parseInt(hex.substring(1), 16);\n var r = bigint >> 16 & 255;\n var g = bigint >> 8 & 255;\n var b = bigint & 255;\n return { r, g, b };\n}\nfunction rgbToHex(r, g, b) {\n return `#${r.toString(16).padStart(2, \"0\")}${g.toString(16).padStart(2, \"0\")}${b.toString(16).padStart(2, \"0\")}`;\n}\nvar mix_default = (color1, color2, weight) => {\n color1 = normalizeColor(color1);\n color2 = normalizeColor(color2);\n var p = weight / 100;\n var w = p * 2 - 1;\n var w1 = (w + 1) / 2;\n var w2 = 1 - w1;\n var rgb1 = hexToRgb(color1);\n var rgb2 = hexToRgb(color2);\n var r = Math.round(rgb1.r * w1 + rgb2.r * w2);\n var g = Math.round(rgb1.g * w1 + rgb2.g * w2);\n var b = Math.round(rgb1.b * w1 + rgb2.b * w2);\n return rgbToHex(r, g, b);\n};\n\n// src/helpers/color/shade.ts\nvar shade_default = (color, percent) => mix_default(\"#000000\", color, percent);\n\n// src/helpers/color/tint.ts\nvar tint_default = (color, percent) => mix_default(\"#ffffff\", color, percent);\n\n// src/helpers/color/palette.ts\nvar scales = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950];\nvar palette_default = (color) => {\n if (/{([^}]*)}/g.test(color)) {\n const token = color.replace(/{|}/g, \"\");\n return scales.reduce((acc, scale) => (acc[scale] = `{${token}.${scale}}`, acc), {});\n }\n return typeof color === \"string\" ? scales.reduce((acc, scale, i) => (acc[scale] = i <= 5 ? tint_default(color, (5 - i) * 19) : shade_default(color, (i - 5) * 15), acc), {}) : color;\n};\n\n// src/helpers/css.ts\nimport { resolve } from \"@primeuix/utils/object\";\n\n// src/helpers/dt.ts\nimport { matchRegex as matchRegex2 } from \"@primeuix/utils/object\";\nvar $dt = (tokenPath) => {\n var _a;\n const theme = config_default.getTheme();\n const variable = dtwt(theme, tokenPath, void 0, \"variable\");\n const name = (_a = variable.match(/--[\\w-]+/g)) == null ? void 0 : _a[0];\n const value = dtwt(theme, tokenPath, void 0, \"value\");\n return {\n name,\n variable,\n value\n };\n};\nvar dt = (...args) => {\n return dtwt(config_default.getTheme(), ...args);\n};\nvar dtwt = (theme = {}, tokenPath, fallback, type = \"variable\") => {\n if (tokenPath) {\n const { variable: VARIABLE, options: OPTIONS } = config_default.defaults || {};\n const { prefix, transform } = (theme == null ? void 0 : theme.options) || OPTIONS || {};\n const regex = /{([^}]*)}/g;\n const token = matchRegex2(tokenPath, regex) ? tokenPath : `{${tokenPath}}`;\n const isStrictTransform = type === \"value\" || transform === \"strict\";\n return isStrictTransform ? config_default.getTokenValue(tokenPath) : getVariableValue(token, void 0, prefix, [VARIABLE.excludedKeyRegex], fallback);\n }\n return \"\";\n};\n\n// src/helpers/css.ts\nfunction css(style) {\n return resolve(style, { dt });\n}\n\n// src/helpers/t.ts\nimport { mergeKeys as mergeKeys2 } from \"@primeuix/utils/object\";\nvar $t = (theme = {}) => {\n let { preset: _preset, options: _options } = theme;\n return {\n preset(value) {\n _preset = _preset ? mergeKeys2(_preset, value) : value;\n return this;\n },\n options(value) {\n _options = _options ? __spreadValues(__spreadValues({}, _options), value) : value;\n return this;\n },\n // features\n primaryPalette(primary) {\n const { semantic } = _preset || {};\n _preset = __spreadProps(__spreadValues({}, _preset), { semantic: __spreadProps(__spreadValues({}, semantic), { primary }) });\n return this;\n },\n surfacePalette(surface) {\n var _a, _b;\n const { semantic } = _preset || {};\n const lightSurface = (surface == null ? void 0 : surface.hasOwnProperty(\"light\")) ? surface == null ? void 0 : surface.light : surface;\n const darkSurface = (surface == null ? void 0 : surface.hasOwnProperty(\"dark\")) ? surface == null ? void 0 : surface.dark : surface;\n const newColorScheme = {\n colorScheme: {\n light: __spreadValues(__spreadValues({}, (_a = semantic == null ? void 0 : semantic.colorScheme) == null ? void 0 : _a.light), !!lightSurface && { surface: lightSurface }),\n dark: __spreadValues(__spreadValues({}, (_b = semantic == null ? void 0 : semantic.colorScheme) == null ? void 0 : _b.dark), !!darkSurface && { surface: darkSurface })\n }\n };\n _preset = __spreadProps(__spreadValues({}, _preset), { semantic: __spreadValues(__spreadValues({}, semantic), newColorScheme) });\n return this;\n },\n // actions\n define({ useDefaultPreset = false, useDefaultOptions = false } = {}) {\n return {\n preset: useDefaultPreset ? config_default.getPreset() : _preset,\n options: useDefaultOptions ? config_default.getOptions() : _options\n };\n },\n update({ mergePresets = true, mergeOptions = true } = {}) {\n const newTheme = {\n preset: mergePresets ? mergeKeys2(config_default.getPreset(), _preset) : _preset,\n options: mergeOptions ? __spreadValues(__spreadValues({}, config_default.getOptions()), _options) : _options\n };\n config_default.setTheme(newTheme);\n return newTheme;\n },\n use(options) {\n const newTheme = this.define(options);\n config_default.setTheme(newTheme);\n return newTheme;\n }\n };\n};\n\n// src/helpers/toVariables.ts\nimport { isObject as isObject2, matchRegex as matchRegex3, toKebabCase as toKebabCase2 } from \"@primeuix/utils/object\";\nfunction toVariables_default(theme, options = {}) {\n const VARIABLE = config_default.defaults.variable;\n const { prefix = VARIABLE.prefix, selector = VARIABLE.selector, excludedKeyRegex = VARIABLE.excludedKeyRegex } = options;\n const _toVariables = (_theme, _prefix = \"\") => {\n return Object.entries(_theme).reduce(\n (acc, [key, value]) => {\n const px = matchRegex3(key, excludedKeyRegex) ? toNormalizeVariable(_prefix) : toNormalizeVariable(_prefix, toKebabCase2(key));\n const v = toValue(value);\n if (isObject2(v)) {\n const { variables: variables2, tokens: tokens2 } = _toVariables(v, px);\n merge(acc[\"tokens\"], tokens2);\n merge(acc[\"variables\"], variables2);\n } else {\n acc[\"tokens\"].push((prefix ? px.replace(`${prefix}-`, \"\") : px).replaceAll(\"-\", \".\"));\n setProperty(acc[\"variables\"], getVariableName(px), getVariableValue(v, px, prefix, [excludedKeyRegex]));\n }\n return acc;\n },\n { variables: [], tokens: [] }\n );\n };\n const { variables, tokens } = _toVariables(theme, prefix);\n return {\n value: variables,\n tokens,\n declarations: variables.join(\"\"),\n css: getRule(selector, variables.join(\"\"))\n };\n}\n\n// src/utils/themeUtils.ts\nvar themeUtils_default = {\n regex: {\n rules: {\n class: {\n pattern: /^\\.([a-zA-Z][\\w-]*)$/,\n resolve(value) {\n return { type: \"class\", selector: value, matched: this.pattern.test(value.trim()) };\n }\n },\n attr: {\n pattern: /^\\[(.*)\\]$/,\n resolve(value) {\n return { type: \"attr\", selector: `:root${value}`, matched: this.pattern.test(value.trim()) };\n }\n },\n media: {\n pattern: /^@media (.*)$/,\n resolve(value) {\n return { type: \"media\", selector: `${value}{:root{[CSS]}}`, matched: this.pattern.test(value.trim()) };\n }\n },\n system: {\n pattern: /^system$/,\n resolve(value) {\n return { type: \"system\", selector: \"@media (prefers-color-scheme: dark){:root{[CSS]}}\", matched: this.pattern.test(value.trim()) };\n }\n },\n custom: {\n resolve(value) {\n return { type: \"custom\", selector: value, matched: true };\n }\n }\n },\n resolve(value) {\n const rules = Object.keys(this.rules).filter((k) => k !== \"custom\").map((r) => this.rules[r]);\n return [value].flat().map((v) => {\n var _a;\n return (_a = rules.map((r) => r.resolve(v)).find((rr) => rr.matched)) != null ? _a : this.rules.custom.resolve(v);\n });\n }\n },\n _toVariables(theme, options) {\n return toVariables_default(theme, { prefix: options == null ? void 0 : options.prefix });\n },\n getCommon({ name = \"\", theme = {}, params, set, defaults }) {\n var _c, _d, _e, _f;\n const { preset, options } = theme;\n let primitive_css, primitive_tokens, semantic_css, semantic_tokens;\n if (isNotEmpty2(preset)) {\n const { primitive, semantic } = preset;\n const _a = semantic || {}, { colorScheme } = _a, sRest = __objRest(_a, [\"colorScheme\"]);\n const _b = colorScheme || {}, { dark } = _b, csRest = __objRest(_b, [\"dark\"]);\n const prim_var = isNotEmpty2(primitive) ? this._toVariables({ primitive }, options) : {};\n const sRest_var = isNotEmpty2(sRest) ? this._toVariables({ semantic: sRest }, options) : {};\n const csRest_var = isNotEmpty2(csRest) ? this._toVariables({ light: csRest }, options) : {};\n const dark_var = isNotEmpty2(dark) ? this._toVariables({ dark }, options) : {};\n const [prim_css, prim_tokens] = [(_c = prim_var.declarations) != null ? _c : \"\", prim_var.tokens];\n const [sRest_css, sRest_tokens] = [(_d = sRest_var.declarations) != null ? _d : \"\", sRest_var.tokens || []];\n const [csRest_css, csRest_tokens] = [(_e = csRest_var.declarations) != null ? _e : \"\", csRest_var.tokens || []];\n const [dark_css, dark_tokens] = [(_f = dark_var.declarations) != null ? _f : \"\", dark_var.tokens || []];\n primitive_css = this.transformCSS(name, prim_css, \"light\", \"variable\", options, set, defaults);\n primitive_tokens = prim_tokens;\n const semantic_light_css = this.transformCSS(name, `${sRest_css}${csRest_css}color-scheme:light`, \"light\", \"variable\", options, set, defaults);\n const semantic_dark_css = this.transformCSS(name, `${dark_css}color-scheme:dark`, \"dark\", \"variable\", options, set, defaults);\n semantic_css = `${semantic_light_css}${semantic_dark_css}`;\n semantic_tokens = [.../* @__PURE__ */ new Set([...sRest_tokens, ...csRest_tokens, ...dark_tokens])];\n }\n return {\n primitive: {\n css: primitive_css,\n tokens: primitive_tokens\n },\n semantic: {\n css: semantic_css,\n tokens: semantic_tokens\n }\n };\n },\n getPreset({ name = \"\", preset = {}, options, params, set, defaults, selector }) {\n var _c, _d, _e;\n const _name = name.replace(\"-directive\", \"\");\n const _a = preset, { colorScheme } = _a, vRest = __objRest(_a, [\"colorScheme\"]);\n const _b = colorScheme || {}, { dark } = _b, csRest = __objRest(_b, [\"dark\"]);\n const vRest_var = isNotEmpty2(vRest) ? this._toVariables({ [_name]: vRest }, options) : {};\n const csRest_var = isNotEmpty2(csRest) ? this._toVariables({ [_name]: csRest }, options) : {};\n const dark_var = isNotEmpty2(dark) ? this._toVariables({ [_name]: dark }, options) : {};\n const [vRest_css, vRest_tokens] = [(_c = vRest_var.declarations) != null ? _c : \"\", vRest_var.tokens || []];\n const [csRest_css, csRest_tokens] = [(_d = csRest_var.declarations) != null ? _d : \"\", csRest_var.tokens || []];\n const [dark_css, dark_tokens] = [(_e = dark_var.declarations) != null ? _e : \"\", dark_var.tokens || []];\n const tokens = [.../* @__PURE__ */ new Set([...vRest_tokens, ...csRest_tokens, ...dark_tokens])];\n const light_variable_css = this.transformCSS(_name, `${vRest_css}${csRest_css}`, \"light\", \"variable\", options, set, defaults, selector);\n const dark_variable_css = this.transformCSS(_name, dark_css, \"dark\", \"variable\", options, set, defaults, selector);\n return {\n css: `${light_variable_css}${dark_variable_css}`,\n tokens\n };\n },\n getPresetC({ name = \"\", theme = {}, params, set, defaults }) {\n var _a;\n const { preset, options } = theme;\n const cPreset = (_a = preset == null ? void 0 : preset.components) == null ? void 0 : _a[name];\n return this.getPreset({ name, preset: cPreset, options, params, set, defaults });\n },\n getPresetD({ name = \"\", theme = {}, params, set, defaults }) {\n var _a;\n const dName = name.replace(\"-directive\", \"\");\n const { preset, options } = theme;\n const dPreset = (_a = preset == null ? void 0 : preset.directives) == null ? void 0 : _a[dName];\n return this.getPreset({ name: dName, preset: dPreset, options, params, set, defaults });\n },\n getColorSchemeOption(options, defaults) {\n var _a;\n return this.regex.resolve((_a = options.darkModeSelector) != null ? _a : defaults.options.darkModeSelector);\n },\n getLayerOrder(name, options = {}, params, defaults) {\n const { cssLayer } = options;\n if (cssLayer) {\n const order = resolve2(cssLayer.order || \"primeui\", params);\n return `@layer ${order}`;\n }\n return \"\";\n },\n getCommonStyleSheet({ name = \"\", theme = {}, params, props = {}, set, defaults }) {\n const common = this.getCommon({ name, theme, params, set, defaults });\n const _props = Object.entries(props).reduce((acc, [k, v]) => acc.push(`${k}=\"${v}\"`) && acc, []).join(\" \");\n return Object.entries(common || {}).reduce((acc, [key, value]) => {\n if (value == null ? void 0 : value.css) {\n const _css = minifyCSS(value == null ? void 0 : value.css);\n const id = `${key}-variables`;\n acc.push(``);\n }\n return acc;\n }, []).join(\"\");\n },\n getStyleSheet({ name = \"\", theme = {}, params, props = {}, set, defaults }) {\n var _a;\n const options = { name, theme, params, set, defaults };\n const preset_css = (_a = name.includes(\"-directive\") ? this.getPresetD(options) : this.getPresetC(options)) == null ? void 0 : _a.css;\n const _props = Object.entries(props).reduce((acc, [k, v]) => acc.push(`${k}=\"${v}\"`) && acc, []).join(\" \");\n return preset_css ? `` : \"\";\n },\n createTokens(obj = {}, defaults, parentKey = \"\", parentPath = \"\", tokens = {}) {\n Object.entries(obj).forEach(([key, value]) => {\n const currentKey = matchRegex4(key, defaults.variable.excludedKeyRegex) ? parentKey : parentKey ? `${parentKey}.${toTokenKey2(key)}` : toTokenKey2(key);\n const currentPath = parentPath ? `${parentPath}.${key}` : key;\n if (isObject3(value)) {\n this.createTokens(value, defaults, currentKey, currentPath, tokens);\n } else {\n tokens[currentKey] || (tokens[currentKey] = {\n paths: [],\n computed(colorScheme, tokenPathMap = {}) {\n if (colorScheme) {\n const path = this.paths.find((p) => p.scheme === colorScheme) || this.paths.find((p) => p.scheme === \"none\");\n return path == null ? void 0 : path.computed(colorScheme, tokenPathMap[\"binding\"]);\n }\n return this.paths.map((p) => p.computed(p.scheme, tokenPathMap[p.scheme]));\n }\n });\n tokens[currentKey].paths.push({\n path: currentPath,\n value,\n scheme: currentPath.includes(\"colorScheme.light\") ? \"light\" : currentPath.includes(\"colorScheme.dark\") ? \"dark\" : \"none\",\n computed(colorScheme, tokenPathMap = {}) {\n const regex = /{([^}]*)}/g;\n let computedValue = value;\n tokenPathMap[\"name\"] = this.path;\n tokenPathMap[\"binding\"] || (tokenPathMap[\"binding\"] = {});\n if (matchRegex4(value, regex)) {\n const val = value.trim();\n const _val = val.replaceAll(regex, (v) => {\n var _a, _b;\n const path = v.replace(/{|}/g, \"\");\n return (_b = (_a = tokens[path]) == null ? void 0 : _a.computed(colorScheme, tokenPathMap)) == null ? void 0 : _b.value;\n });\n const calculationRegex = /(\\d+\\w*\\s+[\\+\\-\\*\\/]\\s+\\d+\\w*)/g;\n const cleanedVarRegex = /var\\([^)]+\\)/g;\n computedValue = matchRegex4(_val.replace(cleanedVarRegex, \"0\"), calculationRegex) ? `calc(${_val})` : _val;\n }\n isEmpty(tokenPathMap[\"binding\"]) && delete tokenPathMap[\"binding\"];\n return {\n colorScheme,\n path: this.path,\n paths: tokenPathMap,\n value: computedValue.includes(\"undefined\") ? void 0 : computedValue\n };\n }\n });\n }\n });\n return tokens;\n },\n getTokenValue(tokens, path, defaults) {\n var _a;\n const normalizePath = (str) => {\n const strArr = str.split(\".\");\n return strArr.filter((s) => !matchRegex4(s.toLowerCase(), defaults.variable.excludedKeyRegex)).join(\".\");\n };\n const token = normalizePath(path);\n const colorScheme = path.includes(\"colorScheme.light\") ? \"light\" : path.includes(\"colorScheme.dark\") ? \"dark\" : void 0;\n const computedValues = [(_a = tokens[token]) == null ? void 0 : _a.computed(colorScheme)].flat().filter((computed) => computed);\n return computedValues.length === 1 ? computedValues[0].value : computedValues.reduce((acc = {}, computed) => {\n const _a2 = computed, { colorScheme: cs } = _a2, rest = __objRest(_a2, [\"colorScheme\"]);\n acc[cs] = rest;\n return acc;\n }, void 0);\n },\n transformCSS(name, css2, mode, type, options = {}, set, defaults, selector) {\n if (isNotEmpty2(css2)) {\n const { cssLayer } = options;\n if (type !== \"style\") {\n const colorSchemeOption = this.getColorSchemeOption(options, defaults);\n const _css = selector ? getRule(selector, css2) : css2;\n css2 = mode === \"dark\" ? colorSchemeOption.reduce((acc, { selector: _selector }) => {\n if (isNotEmpty2(_selector)) {\n acc += _selector.includes(\"[CSS]\") ? _selector.replace(\"[CSS]\", _css) : getRule(_selector, _css);\n }\n return acc;\n }, \"\") : getRule(selector != null ? selector : \":root\", css2);\n }\n if (cssLayer) {\n const layerOptions = {\n name: \"primeui\",\n order: \"primeui\"\n };\n isObject3(cssLayer) && (layerOptions.name = resolve2(cssLayer.name, { name, type }));\n if (isNotEmpty2(layerOptions.name)) {\n css2 = getRule(`@layer ${layerOptions.name}`, css2);\n set == null ? void 0 : set.layerNames(layerOptions.name);\n }\n }\n return css2;\n }\n return \"\";\n }\n};\n\n// src/config/index.ts\nvar config_default = {\n defaults: {\n variable: {\n prefix: \"p\",\n selector: \":root\",\n excludedKeyRegex: /^(primitive|semantic|components|directives|variables|colorscheme|light|dark|common|root|states)$/gi\n },\n options: {\n prefix: \"p\",\n darkModeSelector: \"system\",\n cssLayer: false\n }\n },\n _theme: void 0,\n _layerNames: /* @__PURE__ */ new Set(),\n _loadedStyleNames: /* @__PURE__ */ new Set(),\n _loadingStyles: /* @__PURE__ */ new Set(),\n _tokens: {},\n update(newValues = {}) {\n const { theme } = newValues;\n if (theme) {\n this._theme = __spreadProps(__spreadValues({}, theme), {\n options: __spreadValues(__spreadValues({}, this.defaults.options), theme.options)\n });\n this._tokens = themeUtils_default.createTokens(this.preset, this.defaults);\n this.clearLoadedStyleNames();\n }\n },\n get theme() {\n return this._theme;\n },\n get preset() {\n var _a;\n return ((_a = this.theme) == null ? void 0 : _a.preset) || {};\n },\n get options() {\n var _a;\n return ((_a = this.theme) == null ? void 0 : _a.options) || {};\n },\n get tokens() {\n return this._tokens;\n },\n getTheme() {\n return this.theme;\n },\n setTheme(newValue) {\n this.update({ theme: newValue });\n service_default.emit(\"theme:change\", newValue);\n },\n getPreset() {\n return this.preset;\n },\n setPreset(newValue) {\n this._theme = __spreadProps(__spreadValues({}, this.theme), { preset: newValue });\n this._tokens = themeUtils_default.createTokens(newValue, this.defaults);\n this.clearLoadedStyleNames();\n service_default.emit(\"preset:change\", newValue);\n service_default.emit(\"theme:change\", this.theme);\n },\n getOptions() {\n return this.options;\n },\n setOptions(newValue) {\n this._theme = __spreadProps(__spreadValues({}, this.theme), { options: newValue });\n this.clearLoadedStyleNames();\n service_default.emit(\"options:change\", newValue);\n service_default.emit(\"theme:change\", this.theme);\n },\n getLayerNames() {\n return [...this._layerNames];\n },\n setLayerNames(layerName) {\n this._layerNames.add(layerName);\n },\n getLoadedStyleNames() {\n return this._loadedStyleNames;\n },\n isStyleNameLoaded(name) {\n return this._loadedStyleNames.has(name);\n },\n setLoadedStyleName(name) {\n this._loadedStyleNames.add(name);\n },\n deleteLoadedStyleName(name) {\n this._loadedStyleNames.delete(name);\n },\n clearLoadedStyleNames() {\n this._loadedStyleNames.clear();\n },\n getTokenValue(tokenPath) {\n return themeUtils_default.getTokenValue(this.tokens, tokenPath, this.defaults);\n },\n getCommon(name = \"\", params) {\n return themeUtils_default.getCommon({ name, theme: this.theme, params, defaults: this.defaults, set: { layerNames: this.setLayerNames.bind(this) } });\n },\n getComponent(name = \"\", params) {\n const options = { name, theme: this.theme, params, defaults: this.defaults, set: { layerNames: this.setLayerNames.bind(this) } };\n return themeUtils_default.getPresetC(options);\n },\n getDirective(name = \"\", params) {\n const options = { name, theme: this.theme, params, defaults: this.defaults, set: { layerNames: this.setLayerNames.bind(this) } };\n return themeUtils_default.getPresetD(options);\n },\n getCustomPreset(name = \"\", preset, selector, params) {\n const options = { name, preset, options: this.options, selector, params, defaults: this.defaults, set: { layerNames: this.setLayerNames.bind(this) } };\n return themeUtils_default.getPreset(options);\n },\n getLayerOrderCSS(name = \"\") {\n return themeUtils_default.getLayerOrder(name, this.options, { names: this.getLayerNames() }, this.defaults);\n },\n transformCSS(name = \"\", css2, type = \"style\", mode) {\n return themeUtils_default.transformCSS(name, css2, mode, type, this.options, { layerNames: this.setLayerNames.bind(this) }, this.defaults);\n },\n getCommonStyleSheet(name = \"\", params, props = {}) {\n return themeUtils_default.getCommonStyleSheet({ name, theme: this.theme, params, props, defaults: this.defaults, set: { layerNames: this.setLayerNames.bind(this) } });\n },\n getStyleSheet(name, params, props = {}) {\n return themeUtils_default.getStyleSheet({ name, theme: this.theme, params, props, defaults: this.defaults, set: { layerNames: this.setLayerNames.bind(this) } });\n },\n onStyleMounted(name) {\n this._loadingStyles.add(name);\n },\n onStyleUpdated(name) {\n this._loadingStyles.add(name);\n },\n onStyleLoaded(event, { name }) {\n if (this._loadingStyles.size) {\n this._loadingStyles.delete(name);\n service_default.emit(`theme:${name}:load`, event);\n !this._loadingStyles.size && service_default.emit(\"theme:load\");\n }\n }\n};\n\n// src/actions/updatePreset.ts\nfunction updatePreset(...presets) {\n const newPreset = mergeKeys3(config_default.getPreset(), ...presets);\n config_default.setPreset(newPreset);\n return newPreset;\n}\n\n// src/actions/updatePrimaryPalette.ts\nfunction updatePrimaryPalette(primary) {\n return $t().primaryPalette(primary).update().preset;\n}\n\n// src/actions/updateSurfacePalette.ts\nfunction updateSurfacePalette(palette) {\n return $t().surfacePalette(palette).update().preset;\n}\n\n// src/actions/usePreset.ts\nimport { mergeKeys as mergeKeys4 } from \"@primeuix/utils/object\";\nfunction usePreset(...presets) {\n const newPreset = mergeKeys4(...presets);\n config_default.setPreset(newPreset);\n return newPreset;\n}\n\n// src/actions/useTheme.ts\nfunction useTheme(theme) {\n return $t(theme).update({ mergePresets: false });\n}\nexport {\n $dt,\n $t,\n config_default as Theme,\n service_default as ThemeService,\n themeUtils_default as ThemeUtils,\n css,\n definePreset,\n dt,\n dtwt,\n getComputedValue,\n getRule,\n getVariableName,\n getVariableValue,\n merge,\n mix_default as mix,\n palette_default as palette,\n setProperty,\n shade_default as shade,\n tint_default as tint,\n toNormalizePrefix,\n toNormalizeVariable,\n toTokenKey,\n toUnit,\n toValue,\n toVariables_default as toVariables,\n updatePreset,\n updatePrimaryPalette,\n updateSurfacePalette,\n usePreset,\n useTheme\n};\n//# sourceMappingURL=index.mjs.map","var index = {\n root: {\n transitionDuration: '{transition.duration}'\n },\n panel: {\n borderWidth: '0 0 1px 0',\n borderColor: '{content.border.color}'\n },\n header: {\n color: '{text.muted.color}',\n hoverColor: '{text.color}',\n activeColor: '{text.color}',\n padding: '1.125rem',\n fontWeight: '600',\n borderRadius: '0',\n borderWidth: '0',\n borderColor: '{content.border.color}',\n background: '{content.background}',\n hoverBackground: '{content.background}',\n activeBackground: '{content.background}',\n activeHoverBackground: '{content.background}',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n },\n toggleIcon: {\n color: '{text.muted.color}',\n hoverColor: '{text.color}',\n activeColor: '{text.color}',\n activeHoverColor: '{text.color}'\n },\n first: {\n topBorderRadius: '{content.border.radius}',\n borderWidth: '0'\n },\n last: {\n bottomBorderRadius: '{content.border.radius}',\n activeBottomBorderRadius: '0'\n }\n },\n content: {\n borderWidth: '0',\n borderColor: '{content.border.color}',\n background: '{content.background}',\n color: '{text.color}',\n padding: '0 1.125rem 1.125rem 1.125rem'\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n background: '{form.field.background}',\n disabledBackground: '{form.field.disabled.background}',\n filledBackground: '{form.field.filled.background}',\n filledFocusBackground: '{form.field.filled.focus.background}',\n borderColor: '{form.field.border.color}',\n hoverBorderColor: '{form.field.hover.border.color}',\n focusBorderColor: '{form.field.focus.border.color}',\n invalidBorderColor: '{form.field.invalid.border.color}',\n color: '{form.field.color}',\n disabledColor: '{form.field.disabled.color}',\n placeholderColor: '{form.field.placeholder.color}',\n shadow: '{form.field.shadow}',\n paddingX: '{form.field.padding.x}',\n paddingY: '{form.field.padding.y}',\n borderRadius: '{form.field.border.radius}',\n focusRing: {\n width: '{form.field.focus.ring.width}',\n style: '{form.field.focus.ring.style}',\n color: '{form.field.focus.ring.color}',\n offset: '{form.field.focus.ring.offset}',\n shadow: '{form.field.focus.ring.shadow}'\n },\n transitionDuration: '{form.field.transition.duration}'\n },\n overlay: {\n background: '{overlay.select.background}',\n borderColor: '{overlay.select.border.color}',\n borderRadius: '{overlay.select.border.radius}',\n color: '{overlay.select.color}',\n shadow: '{overlay.select.shadow}'\n },\n list: {\n padding: '{list.padding}',\n gap: '{list.gap}'\n },\n option: {\n focusBackground: '{list.option.focus.background}',\n selectedBackground: '{list.option.selected.background}',\n selectedFocusBackground: '{list.option.selected.focus.background}',\n color: '{list.option.color}',\n focusColor: '{list.option.focus.color}',\n selectedColor: '{list.option.selected.color}',\n selectedFocusColor: '{list.option.selected.focus.color}',\n padding: '{list.option.padding}',\n borderRadius: '{list.option.border.radius}'\n },\n optionGroup: {\n background: '{list.option.group.background}',\n color: '{list.option.group.color}',\n fontWeight: '{list.option.group.font.weight}',\n padding: '{list.option.group.padding}'\n },\n dropdown: {\n width: '2.5rem',\n borderColor: '{form.field.border.color}',\n hoverBorderColor: '{form.field.border.color}',\n activeBorderColor: '{form.field.border.color}',\n borderRadius: '{form.field.border.radius}',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n },\n chip: {\n borderRadius: '{border.radius.sm}'\n },\n emptyMessage: {\n padding: '{list.option.padding}'\n },\n colorScheme: {\n light: {\n dropdown: {\n background: '{surface.100}',\n hoverBackground: '{surface.200}',\n activeBackground: '{surface.300}',\n color: '{surface.600}',\n hoverColor: '{surface.700}',\n activeColor: '{surface.800}'\n }\n },\n dark: {\n dropdown: {\n background: '{surface.800}',\n hoverBackground: '{surface.700}',\n activeBackground: '{surface.600}',\n color: '{surface.300}',\n hoverColor: '{surface.200}',\n activeColor: '{surface.100}'\n }\n }\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n width: '2rem',\n height: '2rem',\n fontSize: '1rem',\n background: '{content.border.color}',\n borderRadius: '{content.border.radius}'\n },\n group: {\n borderColor: '{content.background}',\n offset: '-1rem'\n },\n lg: {\n width: '3rem',\n height: '3rem',\n fontSize: '1.5rem'\n },\n xl: {\n width: '4rem',\n height: '4rem',\n fontSize: '2rem'\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n borderRadius: '{border.radius.md}',\n padding: '0 0.5rem',\n fontSize: '0.75rem',\n fontWeight: '700',\n minWidth: '1.5rem',\n height: '1.5rem'\n },\n dot: {\n size: '0.5rem'\n },\n sm: {\n fontSize: '0.625rem',\n minWidth: '1.25rem',\n height: '1.25rem'\n },\n lg: {\n fontSize: '0.875rem',\n minWidth: '1.75rem',\n height: '1.75rem'\n },\n xl: {\n fontSize: '1rem',\n minWidth: '2rem',\n height: '2rem'\n },\n colorScheme: {\n light: {\n primary: {\n background: '{primary.color}',\n color: '{primary.contrast.color}'\n },\n secondary: {\n background: '{surface.100}',\n color: '{surface.600}'\n },\n success: {\n background: '{green.500}',\n color: '{surface.0}'\n },\n info: {\n background: '{sky.500}',\n color: '{surface.0}'\n },\n warn: {\n background: '{orange.500}',\n color: '{surface.0}'\n },\n danger: {\n background: '{red.500}',\n color: '{surface.0}'\n },\n contrast: {\n background: '{surface.950}',\n color: '{surface.0}'\n }\n },\n dark: {\n primary: {\n background: '{primary.color}',\n color: '{primary.contrast.color}'\n },\n secondary: {\n background: '{surface.800}',\n color: '{surface.300}'\n },\n success: {\n background: '{green.400}',\n color: '{green.950}'\n },\n info: {\n background: '{sky.400}',\n color: '{sky.950}'\n },\n warn: {\n background: '{orange.400}',\n color: '{orange.950}'\n },\n danger: {\n background: '{red.400}',\n color: '{red.950}'\n },\n contrast: {\n background: '{surface.0}',\n color: '{surface.950}'\n }\n }\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n borderRadius: '{content.border.radius}'\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n padding: '1rem',\n background: '{content.background}',\n gap: '0.5rem',\n transitionDuration: '{transition.duration}'\n },\n item: {\n color: '{text.muted.color}',\n hoverColor: '{text.color}',\n borderRadius: '{content.border.radius}',\n gap: '{navigation.item.gap}',\n icon: {\n color: '{navigation.item.icon.color}',\n hoverColor: '{navigation.item.icon.focus.color}'\n },\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n },\n separator: {\n color: '{navigation.item.icon.color}'\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n borderRadius: '{form.field.border.radius}',\n roundedBorderRadius: '2rem',\n gap: '0.5rem',\n paddingX: '{form.field.padding.x}',\n paddingY: '{form.field.padding.y}',\n iconOnlyWidth: '2.5rem',\n sm: {\n fontSize: '0.875rem',\n paddingX: '0.625rem',\n paddingY: '0.375rem'\n },\n lg: {\n fontSize: '1.125rem',\n paddingX: '0.875rem',\n paddingY: '0.625rem'\n },\n label: {\n fontWeight: '500'\n },\n raisedShadow: '0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12)',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n offset: '{focus.ring.offset}'\n },\n badgeSize: '1rem',\n transitionDuration: '{form.field.transition.duration}'\n },\n colorScheme: {\n light: {\n root: {\n primary: {\n background: '{primary.color}',\n hoverBackground: '{primary.hover.color}',\n activeBackground: '{primary.active.color}',\n borderColor: '{primary.color}',\n hoverBorderColor: '{primary.hover.color}',\n activeBorderColor: '{primary.active.color}',\n color: '{primary.contrast.color}',\n hoverColor: '{primary.contrast.color}',\n activeColor: '{primary.contrast.color}',\n focusRing: {\n color: '{primary.color}',\n shadow: 'none'\n }\n },\n secondary: {\n background: '{surface.100}',\n hoverBackground: '{surface.200}',\n activeBackground: '{surface.300}',\n borderColor: '{surface.100}',\n hoverBorderColor: '{surface.200}',\n activeBorderColor: '{surface.300}',\n color: '{surface.600}',\n hoverColor: '{surface.700}',\n activeColor: '{surface.800}',\n focusRing: {\n color: '{surface.600}',\n shadow: 'none'\n }\n },\n info: {\n background: '{sky.500}',\n hoverBackground: '{sky.600}',\n activeBackground: '{sky.700}',\n borderColor: '{sky.500}',\n hoverBorderColor: '{sky.600}',\n activeBorderColor: '{sky.700}',\n color: '#ffffff',\n hoverColor: '#ffffff',\n activeColor: '#ffffff',\n focusRing: {\n color: '{sky.500}',\n shadow: 'none'\n }\n },\n success: {\n background: '{green.500}',\n hoverBackground: '{green.600}',\n activeBackground: '{green.700}',\n borderColor: '{green.500}',\n hoverBorderColor: '{green.600}',\n activeBorderColor: '{green.700}',\n color: '#ffffff',\n hoverColor: '#ffffff',\n activeColor: '#ffffff',\n focusRing: {\n color: '{green.500}',\n shadow: 'none'\n }\n },\n warn: {\n background: '{orange.500}',\n hoverBackground: '{orange.600}',\n activeBackground: '{orange.700}',\n borderColor: '{orange.500}',\n hoverBorderColor: '{orange.600}',\n activeBorderColor: '{orange.700}',\n color: '#ffffff',\n hoverColor: '#ffffff',\n activeColor: '#ffffff',\n focusRing: {\n color: '{orange.500}',\n shadow: 'none'\n }\n },\n help: {\n background: '{purple.500}',\n hoverBackground: '{purple.600}',\n activeBackground: '{purple.700}',\n borderColor: '{purple.500}',\n hoverBorderColor: '{purple.600}',\n activeBorderColor: '{purple.700}',\n color: '#ffffff',\n hoverColor: '#ffffff',\n activeColor: '#ffffff',\n focusRing: {\n color: '{purple.500}',\n shadow: 'none'\n }\n },\n danger: {\n background: '{red.500}',\n hoverBackground: '{red.600}',\n activeBackground: '{red.700}',\n borderColor: '{red.500}',\n hoverBorderColor: '{red.600}',\n activeBorderColor: '{red.700}',\n color: '#ffffff',\n hoverColor: '#ffffff',\n activeColor: '#ffffff',\n focusRing: {\n color: '{red.500}',\n shadow: 'none'\n }\n },\n contrast: {\n background: '{surface.950}',\n hoverBackground: '{surface.900}',\n activeBackground: '{surface.800}',\n borderColor: '{surface.950}',\n hoverBorderColor: '{surface.900}',\n activeBorderColor: '{surface.800}',\n color: '{surface.0}',\n hoverColor: '{surface.0}',\n activeColor: '{surface.0}',\n focusRing: {\n color: '{surface.950}',\n shadow: 'none'\n }\n }\n },\n outlined: {\n primary: {\n hoverBackground: '{primary.50}',\n activeBackground: '{primary.100}',\n borderColor: '{primary.200}',\n color: '{primary.color}'\n },\n secondary: {\n hoverBackground: '{surface.50}',\n activeBackground: '{surface.100}',\n borderColor: '{surface.200}',\n color: '{surface.500}'\n },\n success: {\n hoverBackground: '{green.50}',\n activeBackground: '{green.100}',\n borderColor: '{green.200}',\n color: '{green.500}'\n },\n info: {\n hoverBackground: '{sky.50}',\n activeBackground: '{sky.100}',\n borderColor: '{sky.200}',\n color: '{sky.500}'\n },\n warn: {\n hoverBackground: '{orange.50}',\n activeBackground: '{orange.100}',\n borderColor: '{orange.200}',\n color: '{orange.500}'\n },\n help: {\n hoverBackground: '{purple.50}',\n activeBackground: '{purple.100}',\n borderColor: '{purple.200}',\n color: '{purple.500}'\n },\n danger: {\n hoverBackground: '{red.50}',\n activeBackground: '{red.100}',\n borderColor: '{red.200}',\n color: '{red.500}'\n },\n contrast: {\n hoverBackground: '{surface.50}',\n activeBackground: '{surface.100}',\n borderColor: '{surface.700}',\n color: '{surface.950}'\n },\n plain: {\n hoverBackground: '{surface.50}',\n activeBackground: '{surface.100}',\n borderColor: '{surface.200}',\n color: '{surface.700}'\n }\n },\n text: {\n primary: {\n hoverBackground: '{primary.50}',\n activeBackground: '{primary.100}',\n color: '{primary.color}'\n },\n secondary: {\n hoverBackground: '{surface.50}',\n activeBackground: '{surface.100}',\n color: '{surface.500}'\n },\n success: {\n hoverBackground: '{green.50}',\n activeBackground: '{green.100}',\n color: '{green.500}'\n },\n info: {\n hoverBackground: '{sky.50}',\n activeBackground: '{sky.100}',\n color: '{sky.500}'\n },\n warn: {\n hoverBackground: '{orange.50}',\n activeBackground: '{orange.100}',\n color: '{orange.500}'\n },\n help: {\n hoverBackground: '{purple.50}',\n activeBackground: '{purple.100}',\n color: '{purple.500}'\n },\n danger: {\n hoverBackground: '{red.50}',\n activeBackground: '{red.100}',\n color: '{red.500}'\n },\n plain: {\n hoverBackground: '{surface.50}',\n activeBackground: '{surface.100}',\n color: '{surface.700}'\n }\n },\n link: {\n color: '{primary.color}',\n hoverColor: '{primary.color}',\n activeColor: '{primary.color}'\n }\n },\n dark: {\n root: {\n primary: {\n background: '{primary.color}',\n hoverBackground: '{primary.hover.color}',\n activeBackground: '{primary.active.color}',\n borderColor: '{primary.color}',\n hoverBorderColor: '{primary.hover.color}',\n activeBorderColor: '{primary.active.color}',\n color: '{primary.contrast.color}',\n hoverColor: '{primary.contrast.color}',\n activeColor: '{primary.contrast.color}',\n focusRing: {\n color: '{primary.color}',\n shadow: 'none'\n }\n },\n secondary: {\n background: '{surface.800}',\n hoverBackground: '{surface.700}',\n activeBackground: '{surface.600}',\n borderColor: '{surface.800}',\n hoverBorderColor: '{surface.700}',\n activeBorderColor: '{surface.600}',\n color: '{surface.300}',\n hoverColor: '{surface.200}',\n activeColor: '{surface.100}',\n focusRing: {\n color: '{surface.300}',\n shadow: 'none'\n }\n },\n info: {\n background: '{sky.400}',\n hoverBackground: '{sky.300}',\n activeBackground: '{sky.200}',\n borderColor: '{sky.400}',\n hoverBorderColor: '{sky.300}',\n activeBorderColor: '{sky.200}',\n color: '{sky.950}',\n hoverColor: '{sky.950}',\n activeColor: '{sky.950}',\n focusRing: {\n color: '{sky.400}',\n shadow: 'none'\n }\n },\n success: {\n background: '{green.400}',\n hoverBackground: '{green.300}',\n activeBackground: '{green.200}',\n borderColor: '{green.400}',\n hoverBorderColor: '{green.300}',\n activeBorderColor: '{green.200}',\n color: '{green.950}',\n hoverColor: '{green.950}',\n activeColor: '{green.950}',\n focusRing: {\n color: '{green.400}',\n shadow: 'none'\n }\n },\n warn: {\n background: '{orange.400}',\n hoverBackground: '{orange.300}',\n activeBackground: '{orange.200}',\n borderColor: '{orange.400}',\n hoverBorderColor: '{orange.300}',\n activeBorderColor: '{orange.200}',\n color: '{orange.950}',\n hoverColor: '{orange.950}',\n activeColor: '{orange.950}',\n focusRing: {\n color: '{orange.400}',\n shadow: 'none'\n }\n },\n help: {\n background: '{purple.400}',\n hoverBackground: '{purple.300}',\n activeBackground: '{purple.200}',\n borderColor: '{purple.400}',\n hoverBorderColor: '{purple.300}',\n activeBorderColor: '{purple.200}',\n color: '{purple.950}',\n hoverColor: '{purple.950}',\n activeColor: '{purple.950}',\n focusRing: {\n color: '{purple.400}',\n shadow: 'none'\n }\n },\n danger: {\n background: '{red.400}',\n hoverBackground: '{red.300}',\n activeBackground: '{red.200}',\n borderColor: '{red.400}',\n hoverBorderColor: '{red.300}',\n activeBorderColor: '{red.200}',\n color: '{red.950}',\n hoverColor: '{red.950}',\n activeColor: '{red.950}',\n focusRing: {\n color: '{red.400}',\n shadow: 'none'\n }\n },\n contrast: {\n background: '{surface.0}',\n hoverBackground: '{surface.100}',\n activeBackground: '{surface.200}',\n borderColor: '{surface.0}',\n hoverBorderColor: '{surface.100}',\n activeBorderColor: '{surface.200}',\n color: '{surface.950}',\n hoverColor: '{surface.950}',\n activeColor: '{surface.950}',\n focusRing: {\n color: '{surface.0}',\n shadow: 'none'\n }\n }\n },\n outlined: {\n primary: {\n hoverBackground: 'color-mix(in srgb, {primary.color}, transparent 96%)',\n activeBackground: 'color-mix(in srgb, {primary.color}, transparent 84%)',\n borderColor: '{primary.700}',\n color: '{primary.color}'\n },\n secondary: {\n hoverBackground: 'rgba(255,255,255,0.04)',\n activeBackground: 'rgba(255,255,255,0.16)',\n borderColor: '{surface.700}',\n color: '{surface.400}'\n },\n success: {\n hoverBackground: 'color-mix(in srgb, {green.400}, transparent 96%)',\n activeBackground: 'color-mix(in srgb, {green.400}, transparent 84%)',\n borderColor: '{green.700}',\n color: '{green.400}'\n },\n info: {\n hoverBackground: 'color-mix(in srgb, {sky.400}, transparent 96%)',\n activeBackground: 'color-mix(in srgb, {sky.400}, transparent 84%)',\n borderColor: '{sky.700}',\n color: '{sky.400}'\n },\n warn: {\n hoverBackground: 'color-mix(in srgb, {orange.400}, transparent 96%)',\n activeBackground: 'color-mix(in srgb, {orange.400}, transparent 84%)',\n borderColor: '{orange.700}',\n color: '{orange.400}'\n },\n help: {\n hoverBackground: 'color-mix(in srgb, {purple.400}, transparent 96%)',\n activeBackground: 'color-mix(in srgb, {purple.400}, transparent 84%)',\n borderColor: '{purple.700}',\n color: '{purple.400}'\n },\n danger: {\n hoverBackground: 'color-mix(in srgb, {red.400}, transparent 96%)',\n activeBackground: 'color-mix(in srgb, {red.400}, transparent 84%)',\n borderColor: '{red.700}',\n color: '{red.400}'\n },\n contrast: {\n hoverBackground: '{surface.800}',\n activeBackground: '{surface.700}',\n borderColor: '{surface.500}',\n color: '{surface.0}'\n },\n plain: {\n hoverBackground: '{surface.800}',\n activeBackground: '{surface.700}',\n borderColor: '{surface.600}',\n color: '{surface.0}'\n }\n },\n text: {\n primary: {\n hoverBackground: 'color-mix(in srgb, {primary.color}, transparent 96%)',\n activeBackground: 'color-mix(in srgb, {primary.color}, transparent 84%)',\n color: '{primary.color}'\n },\n secondary: {\n hoverBackground: '{surface.800}',\n activeBackground: '{surface.700}',\n color: '{surface.400}'\n },\n success: {\n hoverBackground: 'color-mix(in srgb, {green.400}, transparent 96%)',\n activeBackground: 'color-mix(in srgb, {green.400}, transparent 84%)',\n color: '{green.400}'\n },\n info: {\n hoverBackground: 'color-mix(in srgb, {sky.400}, transparent 96%)',\n activeBackground: 'color-mix(in srgb, {sky.400}, transparent 84%)',\n color: '{sky.400}'\n },\n warn: {\n hoverBackground: 'color-mix(in srgb, {orange.400}, transparent 96%)',\n activeBackground: 'color-mix(in srgb, {orange.400}, transparent 84%)',\n color: '{orange.400}'\n },\n help: {\n hoverBackground: 'color-mix(in srgb, {purple.400}, transparent 96%)',\n activeBackground: 'color-mix(in srgb, {purple.400}, transparent 84%)',\n color: '{purple.400}'\n },\n danger: {\n hoverBackground: 'color-mix(in srgb, {red.400}, transparent 96%)',\n activeBackground: 'color-mix(in srgb, {red.400}, transparent 84%)',\n color: '{red.400}'\n },\n plain: {\n hoverBackground: '{surface.800}',\n activeBackground: '{surface.700}',\n color: '{surface.0}'\n }\n },\n link: {\n color: '{primary.color}',\n hoverColor: '{primary.color}',\n activeColor: '{primary.color}'\n }\n }\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n background: '{content.background}',\n borderRadius: '{border.radius.xl}',\n color: '{content.color}',\n shadow: '0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1)'\n },\n body: {\n padding: '1.25rem',\n gap: '0.5rem'\n },\n caption: {\n gap: '0.5rem'\n },\n title: {\n fontSize: '1.25rem',\n fontWeight: '500'\n },\n subtitle: {\n color: '{text.muted.color}'\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n transitionDuration: '{transition.duration}'\n },\n content: {\n gap: '0.25rem'\n },\n indicatorList: {\n padding: '1rem',\n gap: '0.5rem'\n },\n indicator: {\n width: '2rem',\n height: '0.5rem',\n borderRadius: '{content.border.radius}',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n },\n colorScheme: {\n light: {\n indicator: {\n background: '{surface.200}',\n hoverBackground: '{surface.300}',\n activeBackground: '{primary.color}'\n }\n },\n dark: {\n indicator: {\n background: '{surface.700}',\n hoverBackground: '{surface.600}',\n activeBackground: '{primary.color}'\n }\n }\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n background: '{form.field.background}',\n disabledBackground: '{form.field.disabled.background}',\n filledBackground: '{form.field.filled.background}',\n filledFocusBackground: '{form.field.filled.focus.background}',\n borderColor: '{form.field.border.color}',\n hoverBorderColor: '{form.field.hover.border.color}',\n focusBorderColor: '{form.field.focus.border.color}',\n invalidBorderColor: '{form.field.invalid.border.color}',\n color: '{form.field.color}',\n disabledColor: '{form.field.disabled.color}',\n placeholderColor: '{form.field.placeholder.color}',\n shadow: '{form.field.shadow}',\n paddingX: '{form.field.padding.x}',\n paddingY: '{form.field.padding.y}',\n borderRadius: '{form.field.border.radius}',\n focusRing: {\n width: '{form.field.focus.ring.width}',\n style: '{form.field.focus.ring.style}',\n color: '{form.field.focus.ring.color}',\n offset: '{form.field.focus.ring.offset}',\n shadow: '{form.field.focus.ring.shadow}'\n },\n transitionDuration: '{form.field.transition.duration}'\n },\n dropdown: {\n width: '2.5rem',\n color: '{form.field.icon.color}'\n },\n overlay: {\n background: '{overlay.select.background}',\n borderColor: '{overlay.select.border.color}',\n borderRadius: '{overlay.select.border.radius}',\n color: '{overlay.select.color}',\n shadow: '{overlay.select.shadow}'\n },\n list: {\n padding: '{list.padding}',\n gap: '{list.gap}'\n },\n option: {\n focusBackground: '{list.option.focus.background}',\n selectedBackground: '{list.option.selected.background}',\n selectedFocusBackground: '{list.option.selected.focus.background}',\n color: '{list.option.color}',\n focusColor: '{list.option.focus.color}',\n selectedColor: '{list.option.selected.color}',\n selectedFocusColor: '{list.option.selected.focus.color}',\n padding: '{list.option.padding}',\n borderRadius: '{list.option.border.radius}',\n icon: {\n color: '{list.option.icon.color}',\n focusColor: '{list.option.icon.focus.color}',\n size: '0.875rem'\n }\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n borderRadius: '{border.radius.sm}',\n width: '1.25rem',\n height: '1.25rem',\n background: '{form.field.background}',\n checkedBackground: '{primary.color}',\n checkedHoverBackground: '{primary.hover.color}',\n disabledBackground: '{form.field.disabled.background}',\n filledBackground: '{form.field.filled.background}',\n borderColor: '{form.field.border.color}',\n hoverBorderColor: '{form.field.hover.border.color}',\n focusBorderColor: '{form.field.border.color}',\n checkedBorderColor: '{primary.color}',\n checkedHoverBorderColor: '{primary.hover.color}',\n checkedFocusBorderColor: '{primary.color}',\n checkedDisabledBorderColor: '{form.field.border.color}',\n invalidBorderColor: '{form.field.invalid.border.color}',\n shadow: '{form.field.shadow}',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n },\n transitionDuration: '{form.field.transition.duration}'\n },\n icon: {\n size: '0.875rem',\n color: '{form.field.color}',\n checkedColor: '{primary.contrast.color}',\n checkedHoverColor: '{primary.contrast.color}',\n disabledColor: '{form.field.disabled.color}'\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n borderRadius: '16px',\n paddingX: '0.75rem',\n paddingY: '0.5rem',\n gap: '0.5rem',\n transitionDuration: '{transition.duration}'\n },\n image: {\n width: '2rem',\n height: '2rem'\n },\n icon: {\n size: '1rem'\n },\n removeIcon: {\n size: '1rem',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{form.field.focus.ring.shadow}'\n }\n },\n colorScheme: {\n light: {\n root: {\n background: '{surface.100}',\n color: '{surface.800}'\n },\n icon: {\n color: '{surface.800}'\n },\n removeIcon: {\n color: '{surface.800}'\n }\n },\n dark: {\n root: {\n background: '{surface.800}',\n color: '{surface.0}'\n },\n icon: {\n color: '{surface.0}'\n },\n removeIcon: {\n color: '{surface.0}'\n }\n }\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n transitionDuration: '{transition.duration}'\n },\n preview: {\n width: '1.5rem',\n height: '1.5rem',\n borderRadius: '{form.field.border.radius}',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n },\n panel: {\n shadow: '{overlay.popover.shadow}',\n borderRadius: '{overlay.popover.borderRadius}'\n },\n colorScheme: {\n light: {\n panel: {\n background: '{surface.800}',\n borderColor: '{surface.900}'\n },\n handle: {\n color: '{surface.0}'\n }\n },\n dark: {\n panel: {\n background: '{surface.900}',\n borderColor: '{surface.700}'\n },\n handle: {\n color: '{surface.0}'\n }\n }\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n icon: {\n size: '2rem',\n color: '{overlay.modal.color}'\n },\n content: {\n gap: '1rem'\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n background: '{overlay.popover.background}',\n borderColor: '{overlay.popover.border.color}',\n color: '{overlay.popover.color}',\n borderRadius: '{overlay.popover.border.radius}',\n shadow: '{overlay.popover.shadow}',\n gutter: '10px',\n arrowOffset: '1.25rem'\n },\n content: {\n padding: '{overlay.popover.padding}',\n gap: '1rem'\n },\n icon: {\n size: '1.5rem',\n color: '{overlay.popover.color}'\n },\n footer: {\n gap: '0.5rem',\n padding: '0 {overlay.popover.padding} {overlay.popover.padding} {overlay.popover.padding}'\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n background: '{content.background}',\n borderColor: '{content.border.color}',\n color: '{content.color}',\n borderRadius: '{content.border.radius}',\n shadow: '{overlay.navigation.shadow}',\n transitionDuration: '{transition.duration}'\n },\n list: {\n padding: '{navigation.list.padding}',\n gap: '{navigation.list.gap}'\n },\n item: {\n focusBackground: '{navigation.item.focus.background}',\n activeBackground: '{navigation.item.active.background}',\n color: '{navigation.item.color}',\n focusColor: '{navigation.item.focus.color}',\n activeColor: '{navigation.item.active.color}',\n padding: '{navigation.item.padding}',\n borderRadius: '{navigation.item.border.radius}',\n gap: '{navigation.item.gap}',\n icon: {\n color: '{navigation.item.icon.color}',\n focusColor: '{navigation.item.icon.focus.color}',\n activeColor: '{navigation.item.icon.active.color}'\n }\n },\n submenuIcon: {\n size: '{navigation.submenu.icon.size}',\n color: '{navigation.submenu.icon.color}',\n focusColor: '{navigation.submenu.icon.focus.color}',\n activeColor: '{navigation.submenu.icon.active.color}'\n },\n separator: {\n borderColor: '{content.border.color}'\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n transitionDuration: '{transition.duration}'\n },\n header: {\n background: '{content.background}',\n borderColor: '{datatable.border.color}',\n color: '{content.color}',\n borderWidth: '0 0 1px 0',\n padding: '0.75rem 1rem'\n },\n headerCell: {\n background: '{content.background}',\n hoverBackground: '{content.hover.background}',\n selectedBackground: '{highlight.background}',\n borderColor: '{datatable.border.color}',\n color: '{content.color}',\n hoverColor: '{content.hover.color}',\n selectedColor: '{highlight.color}',\n gap: '0.5rem',\n padding: '0.75rem 1rem',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '-1px',\n shadow: '{focus.ring.shadow}'\n }\n },\n columnTitle: {\n fontWeight: '600'\n },\n row: {\n background: '{content.background}',\n hoverBackground: '{content.hover.background}',\n selectedBackground: '{highlight.background}',\n color: '{content.color}',\n hoverColor: '{content.hover.color}',\n selectedColor: '{highlight.color}',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '-1px',\n shadow: '{focus.ring.shadow}'\n }\n },\n bodyCell: {\n borderColor: '{datatable.border.color}',\n padding: '0.75rem 1rem'\n },\n footerCell: {\n background: '{content.background}',\n borderColor: '{datatable.border.color}',\n color: '{content.color}',\n padding: '0.75rem 1rem'\n },\n columnFooter: {\n fontWeight: '600'\n },\n footer: {\n background: '{content.background}',\n borderColor: '{datatable.border.color}',\n color: '{content.color}',\n borderWidth: '0 0 1px 0',\n padding: '0.75rem 1rem'\n },\n dropPointColor: '{primary.color}',\n columnResizerWidth: '0.5rem',\n resizeIndicator: {\n width: '1px',\n color: '{primary.color}'\n },\n sortIcon: {\n color: '{text.muted.color}',\n hoverColor: '{text.hover.muted.color}'\n },\n loadingIcon: {\n size: '2rem'\n },\n rowToggleButton: {\n hoverBackground: '{content.hover.background}',\n selectedHoverBackground: '{content.background}',\n color: '{text.muted.color}',\n hoverColor: '{text.color}',\n selectedHoverColor: '{primary.color}',\n size: '1.75rem',\n borderRadius: '50%',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n },\n filter: {\n inlineGap: '0.5rem',\n overlaySelect: {\n background: '{overlay.select.background}',\n borderColor: '{overlay.select.border.color}',\n borderRadius: '{overlay.select.border.radius}',\n color: '{overlay.select.color}',\n shadow: '{overlay.select.shadow}'\n },\n overlayPopover: {\n background: '{overlay.popover.background}',\n borderColor: '{overlay.popover.border.color}',\n borderRadius: '{overlay.popover.border.radius}',\n color: '{overlay.popover.color}',\n shadow: '{overlay.popover.shadow}',\n padding: '{overlay.popover.padding}',\n gap: '0.5rem'\n },\n rule: {\n borderColor: '{content.border.color}'\n },\n constraintList: {\n padding: '{list.padding}',\n gap: '{list.gap}'\n },\n constraint: {\n focusBackground: '{list.option.focus.background}',\n selectedBackground: '{list.option.selected.background}',\n selectedFocusBackground: '{list.option.selected.focus.background}',\n color: '{list.option.color}',\n focusColor: '{list.option.focus.color}',\n selectedColor: '{list.option.selected.color}',\n selectedFocusColor: '{list.option.selected.focus.color}',\n separator: {\n borderColor: '{content.border.color}'\n },\n padding: '{list.option.padding}',\n borderRadius: '{list.option.border.radius}'\n }\n },\n paginatorTop: {\n borderColor: '{datatable.border.color}',\n borderWidth: '0 0 1px 0'\n },\n paginatorBottom: {\n borderColor: '{datatable.border.color}',\n borderWidth: '0 0 1px 0'\n },\n colorScheme: {\n light: {\n root: {\n borderColor: '{content.border.color}'\n },\n row: {\n stripedBackground: '{surface.50}'\n },\n bodyCell: {\n selectedBorderColor: '{primary.100}'\n }\n },\n dark: {\n root: {\n borderColor: '{surface.800}'\n },\n row: {\n stripedBackground: '{surface.950}'\n },\n bodyCell: {\n selectedBorderColor: '{primary.900}'\n }\n }\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n borderColor: 'transparent',\n borderWidth: '0',\n borderRadius: '0',\n padding: '0'\n },\n header: {\n background: '{content.background}',\n color: '{content.color}',\n borderColor: '{content.border.color}',\n borderWidth: '0 0 1px 0',\n padding: '0.75rem 1rem',\n borderRadius: '0'\n },\n content: {\n background: '{content.background}',\n color: '{content.color}',\n borderColor: 'transparent',\n borderWidth: '0',\n padding: '0',\n borderRadius: '0'\n },\n footer: {\n background: '{content.background}',\n color: '{content.color}',\n borderColor: '{content.border.color}',\n borderWidth: '1px 0 0 0',\n padding: '0.75rem 1rem',\n borderRadius: '0'\n },\n paginatorTop: {\n borderColor: '{content.border.color}',\n borderWidth: '0 0 1px 0'\n },\n paginatorBottom: {\n borderColor: '{content.border.color}',\n borderWidth: '1px 0 0 0'\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n transitionDuration: '{transition.duration}'\n },\n panel: {\n background: '{content.background}',\n borderColor: '{content.border.color}',\n color: '{content.color}',\n borderRadius: '{content.border.radius}',\n shadow: '{overlay.popover.shadow}',\n padding: '{overlay.popover.padding}'\n },\n header: {\n background: '{content.background}',\n borderColor: '{content.border.color}',\n color: '{content.color}',\n padding: '0 0 0.5rem 0',\n fontWeight: '500',\n gap: '0.5rem'\n },\n title: {\n gap: '0.5rem',\n fontWeight: '500'\n },\n dropdown: {\n width: '2.5rem',\n borderColor: '{form.field.border.color}',\n hoverBorderColor: '{form.field.border.color}',\n activeBorderColor: '{form.field.border.color}',\n borderRadius: '{form.field.border.radius}',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n },\n inputIcon: {\n color: '{form.field.icon.color}'\n },\n selectMonth: {\n hoverBackground: '{content.hover.background}',\n color: '{content.color}',\n hoverColor: '{content.hover.color}',\n padding: '0.25rem 0.5rem',\n borderRadius: '{content.border.radius}'\n },\n selectYear: {\n hoverBackground: '{content.hover.background}',\n color: '{content.color}',\n hoverColor: '{content.hover.color}',\n padding: '0.25rem 0.5rem',\n borderRadius: '{content.border.radius}'\n },\n group: {\n borderColor: '{content.border.color}',\n gap: '{overlay.popover.padding}'\n },\n dayView: {\n margin: '0.5rem 0 0 0'\n },\n weekDay: {\n padding: '0.25rem',\n fontWeight: '500',\n color: '{content.color}'\n },\n date: {\n hoverBackground: '{content.hover.background}',\n selectedBackground: '{primary.color}',\n rangeSelectedBackground: '{highlight.background}',\n color: '{content.color}',\n hoverColor: '{content.hover.color}',\n selectedColor: '{primary.contrast.color}',\n rangeSelectedColor: '{highlight.color}',\n width: '2rem',\n height: '2rem',\n borderRadius: '50%',\n padding: '0.25rem',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n },\n monthView: {\n margin: '0.5rem 0 0 0'\n },\n month: {\n borderRadius: '{content.border.radius}'\n },\n yearView: {\n margin: '0.5rem 0 0 0'\n },\n year: {\n borderRadius: '{content.border.radius}'\n },\n buttonbar: {\n padding: '0.5rem 0 0 0',\n borderColor: '{content.border.color}'\n },\n timePicker: {\n padding: '0.5rem 0 0 0',\n borderColor: '{content.border.color}',\n gap: '0.5rem',\n buttonGap: '0.25rem'\n },\n colorScheme: {\n light: {\n dropdown: {\n background: '{surface.100}',\n hoverBackground: '{surface.200}',\n activeBackground: '{surface.300}',\n color: '{surface.600}',\n hoverColor: '{surface.700}',\n activeColor: '{surface.800}'\n },\n today: {\n background: '{surface.200}',\n color: '{surface.900}'\n }\n },\n dark: {\n dropdown: {\n background: '{surface.800}',\n hoverBackground: '{surface.700}',\n activeBackground: '{surface.600}',\n color: '{surface.300}',\n hoverColor: '{surface.200}',\n activeColor: '{surface.100}'\n },\n today: {\n background: '{surface.700}',\n color: '{surface.0}'\n }\n }\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n background: '{overlay.modal.background}',\n borderColor: '{overlay.modal.border.color}',\n color: '{overlay.modal.color}',\n borderRadius: '{overlay.modal.border.radius}',\n shadow: '{overlay.modal.shadow}'\n },\n header: {\n padding: '{overlay.modal.padding}',\n gap: '0.5rem'\n },\n title: {\n fontSize: '1.25rem',\n fontWeight: '600'\n },\n content: {\n padding: '0 {overlay.modal.padding} {overlay.modal.padding} {overlay.modal.padding}'\n },\n footer: {\n padding: '0 {overlay.modal.padding} {overlay.modal.padding} {overlay.modal.padding}',\n gap: '0.5rem'\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n borderColor: '{content.border.color}'\n },\n content: {\n background: '{content.background}',\n color: '{text.color}'\n },\n horizontal: {\n margin: '1rem 0',\n padding: '0 1rem',\n content: {\n padding: '0 0.5rem'\n }\n },\n vertical: {\n margin: '0 1rem',\n padding: '0.5rem 0',\n content: {\n padding: '0.5rem 0'\n }\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n background: 'rgba(255, 255, 255, 0.1)',\n borderColor: 'rgba(255, 255, 255, 0.2)',\n padding: '0.5rem',\n borderRadius: '{border.radius.xl}'\n },\n item: {\n borderRadius: '{content.border.radius}',\n padding: '0.5rem',\n size: '3rem',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n background: '{overlay.modal.background}',\n borderColor: '{overlay.modal.border.color}',\n color: '{overlay.modal.color}',\n borderRadius: '{overlay.modal.border.radius}',\n shadow: '{overlay.modal.shadow}'\n },\n header: {\n padding: '{overlay.modal.padding}'\n },\n title: {\n fontSize: '1.5rem',\n fontWeight: '600'\n },\n content: {\n padding: '0 {overlay.modal.padding} {overlay.modal.padding} {overlay.modal.padding}'\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n toolbar: {\n background: '{content.background}',\n borderColor: '{content.border.color}',\n borderRadius: '{content.border.radius}'\n },\n toolbarItem: {\n color: '{text.muted.color}',\n hoverColor: '{text.color}',\n activeColor: '{primary.color}'\n },\n overlay: {\n background: '{overlay.select.background}',\n borderColor: '{overlay.select.border.color}',\n borderRadius: '{overlay.select.border.radius}',\n color: '{overlay.select.color}',\n shadow: '{overlay.select.shadow}',\n padding: '{list.padding}'\n },\n overlayOption: {\n focusBackground: '{list.option.focus.background}',\n color: '{list.option.color}',\n focusColor: '{list.option.focus.color}',\n padding: '{list.option.padding}',\n borderRadius: '{list.option.border.radius}'\n },\n content: {\n background: '{content.background}',\n borderColor: '{content.border.color}',\n color: '{content.color}',\n borderRadius: '{content.border.radius}'\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n background: '{content.background}',\n borderColor: '{content.border.color}',\n borderRadius: '{content.border.radius}',\n color: '{content.color}',\n padding: '0 1.125rem 1.125rem 1.125rem',\n transitionDuration: '{transition.duration}'\n },\n legend: {\n background: '{content.background}',\n hoverBackground: '{content.hover.background}',\n color: '{content.color}',\n hoverColor: '{content.hover.color}',\n borderRadius: '{content.border.radius}',\n borderWidth: '1px',\n borderColor: 'transparent',\n padding: '0.5rem 0.75rem',\n gap: '0.5rem',\n fontWeight: '600',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n },\n toggleIcon: {\n color: '{text.muted.color}',\n hoverColor: '{text.hover.muted.color}'\n },\n content: {\n padding: '0'\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n background: '{content.background}',\n borderColor: '{content.border.color}',\n color: '{content.color}',\n borderRadius: '{content.border.radius}',\n transitionDuration: '{transition.duration}'\n },\n header: {\n background: 'transparent',\n color: '{text.color}',\n padding: '1.125rem',\n borderWidth: '0',\n borderRadius: '0',\n gap: '0.5rem'\n },\n content: {\n highlightBorderColor: '{primary.color}',\n padding: '0 1.125rem 1.125rem 1.125rem'\n },\n file: {\n padding: '1rem',\n gap: '1rem',\n borderColor: '{content.border.color}',\n info: {\n gap: '0.5rem'\n }\n },\n progressbar: {\n height: '0.25rem'\n },\n basic: {\n gap: '0.5rem'\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n color: '{form.field.float.label.color}',\n focusColor: '{form.field.float.label.focus.color}',\n invalidColor: '{form.field.float.label.invalid.color}',\n transitionDuration: '0.2s'\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n borderWidth: '1px',\n borderColor: '{content.border.color}',\n borderRadius: '{content.border.radius}',\n transitionDuration: '{transition.duration}'\n },\n navButton: {\n background: 'rgba(255, 255, 255, 0.1)',\n hoverBackground: 'rgba(255, 255, 255, 0.2)',\n color: '{surface.100}',\n hoverColor: '{surface.0}',\n size: '3rem',\n gutter: '0.5rem',\n prev: {\n borderRadius: '50%'\n },\n next: {\n borderRadius: '50%'\n },\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n },\n navIcon: {\n size: '1.5rem'\n },\n thumbnailsContent: {\n background: '{content.background}',\n padding: '1rem 0.25rem'\n },\n thumbnailNavButton: {\n size: '2rem',\n borderRadius: '{content.border.radius}',\n gutter: '0.5rem',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n },\n thumbnailNavButtonIcon: {\n size: '1rem'\n },\n caption: {\n background: 'rgba(0, 0, 0, 0.5)',\n color: '{surface.100}',\n padding: '1rem'\n },\n indicatorList: {\n gap: '0.5rem',\n padding: '1rem'\n },\n indicatorButton: {\n width: '1rem',\n height: '1rem',\n activeBackground: '{primary.color}',\n borderRadius: '50%',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n },\n insetIndicatorList: {\n background: 'rgba(0, 0, 0, 0.5)'\n },\n insetIndicatorButton: {\n background: 'rgba(255, 255, 255, 0.4)',\n hoverBackground: 'rgba(255, 255, 255, 0.6)',\n activeBackground: 'rgba(255, 255, 255, 0.9)'\n },\n mask: {\n background: '{mask.background}',\n color: '{mask.color}'\n },\n closeButton: {\n size: '3rem',\n gutter: '0.5rem',\n background: 'rgba(255, 255, 255, 0.1)',\n hoverBackground: 'rgba(255, 255, 255, 0.2)',\n color: '{surface.50}',\n hoverColor: '{surface.0}',\n borderRadius: '50%',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n },\n closeButtonIcon: {\n size: '1.5rem'\n },\n colorScheme: {\n light: {\n thumbnailNavButton: {\n hoverBackground: '{surface.100}',\n color: '{surface.600}',\n hoverColor: '{surface.700}'\n },\n indicatorButton: {\n background: '{surface.200}',\n hoverBackground: '{surface.300}'\n }\n },\n dark: {\n thumbnailNavButton: {\n hoverBackground: '{surface.700}',\n color: '{surface.400}',\n hoverColor: '{surface.0}'\n },\n indicatorButton: {\n background: '{surface.700}',\n hoverBackground: '{surface.600}'\n }\n }\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n icon: {\n color: '{form.field.icon.color}'\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n transitionDuration: '{transition.duration}'\n },\n preview: {\n icon: {\n size: '1.5rem'\n },\n mask: {\n background: '{mask.background}',\n color: '{mask.color}'\n }\n },\n toolbar: {\n position: {\n left: 'auto',\n right: '1rem',\n top: '1rem',\n bottom: 'auto'\n },\n blur: '8px',\n background: 'rgba(255,255,255,0.1)',\n borderColor: 'rgba(255,255,255,0.2)',\n borderWidth: '1px',\n borderRadius: '30px',\n padding: '.5rem',\n gap: '0.5rem'\n },\n action: {\n hoverBackground: 'rgba(255,255,255,0.1)',\n color: '{surface.50}',\n hoverColor: '{surface.0}',\n size: '3rem',\n iconSize: '1.5rem',\n borderRadius: '50%',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n padding: '{form.field.padding.y} {form.field.padding.x}',\n borderRadius: '{content.border.radius}',\n gap: '0.5rem'\n },\n text: {\n fontWeight: '500'\n },\n icon: {\n size: '1rem'\n },\n colorScheme: {\n light: {\n info: {\n background: 'color-mix(in srgb, {blue.50}, transparent 5%)',\n borderColor: '{blue.200}',\n color: '{blue.600}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {blue.500}, transparent 96%)'\n },\n success: {\n background: 'color-mix(in srgb, {green.50}, transparent 5%)',\n borderColor: '{green.200}',\n color: '{green.600}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {green.500}, transparent 96%)'\n },\n warn: {\n background: 'color-mix(in srgb,{yellow.50}, transparent 5%)',\n borderColor: '{yellow.200}',\n color: '{yellow.600}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {yellow.500}, transparent 96%)'\n },\n error: {\n background: 'color-mix(in srgb, {red.50}, transparent 5%)',\n borderColor: '{red.200}',\n color: '{red.600}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {red.500}, transparent 96%)'\n },\n secondary: {\n background: '{surface.100}',\n borderColor: '{surface.200}',\n color: '{surface.600}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {surface.500}, transparent 96%)'\n },\n contrast: {\n background: '{surface.900}',\n borderColor: '{surface.950}',\n color: '{surface.50}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {surface.950}, transparent 96%)'\n }\n },\n dark: {\n info: {\n background: 'color-mix(in srgb, {blue.500}, transparent 84%)',\n borderColor: 'color-mix(in srgb, {blue.700}, transparent 64%)',\n color: '{blue.500}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {blue.500}, transparent 96%)'\n },\n success: {\n background: 'color-mix(in srgb, {green.500}, transparent 84%)',\n borderColor: 'color-mix(in srgb, {green.700}, transparent 64%)',\n color: '{green.500}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {green.500}, transparent 96%)'\n },\n warn: {\n background: 'color-mix(in srgb, {yellow.500}, transparent 84%)',\n borderColor: 'color-mix(in srgb, {yellow.700}, transparent 64%)',\n color: '{yellow.500}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {yellow.500}, transparent 96%)'\n },\n error: {\n background: 'color-mix(in srgb, {red.500}, transparent 84%)',\n borderColor: 'color-mix(in srgb, {red.700}, transparent 64%)',\n color: '{red.500}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {red.500}, transparent 96%)'\n },\n secondary: {\n background: '{surface.800}',\n borderColor: '{surface.700}',\n color: '{surface.300}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {surface.500}, transparent 96%)'\n },\n contrast: {\n background: '{surface.0}',\n borderColor: '{surface.100}',\n color: '{surface.950}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {surface.950}, transparent 96%)'\n }\n }\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n padding: '{form.field.padding.y} {form.field.padding.x}',\n borderRadius: '{content.border.radius}',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n },\n transitionDuration: '{transition.duration}'\n },\n display: {\n hoverBackground: '{content.hover.background}',\n hoverColor: '{content.hover.color}'\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n background: '{form.field.background}',\n disabledBackground: '{form.field.disabled.background}',\n filledBackground: '{form.field.filled.background}',\n filledFocusBackground: '{form.field.filled.focus.background}',\n borderColor: '{form.field.border.color}',\n hoverBorderColor: '{form.field.hover.border.color}',\n focusBorderColor: '{form.field.focus.border.color}',\n invalidBorderColor: '{form.field.invalid.border.color}',\n color: '{form.field.color}',\n disabledColor: '{form.field.disabled.color}',\n placeholderColor: '{form.field.placeholder.color}',\n shadow: '{form.field.shadow}',\n paddingX: '{form.field.padding.x}',\n paddingY: '{form.field.padding.y}',\n borderRadius: '{form.field.border.radius}',\n focusRing: {\n width: '{form.field.focus.ring.width}',\n style: '{form.field.focus.ring.style}',\n color: '{form.field.focus.ring.color}',\n offset: '{form.field.focus.ring.offset}',\n shadow: '{form.field.focus.ring.shadow}'\n },\n transitionDuration: '{form.field.transition.duration}'\n },\n chip: {\n borderRadius: '{border.radius.sm}'\n },\n colorScheme: {\n light: {\n chip: {\n focusBackground: '{surface.200}',\n color: '{surface.800}'\n }\n },\n dark: {\n chip: {\n focusBackground: '{surface.700}',\n color: '{surface.0}'\n }\n }\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n addon: {\n background: '{form.field.background}',\n borderColor: '{form.field.border.color}',\n color: '{form.field.icon.color}',\n borderRadius: '{form.field.border.radius}'\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n transitionDuration: '{transition.duration}'\n },\n button: {\n width: '2.5rem',\n borderRadius: '{form.field.border.radius}',\n verticalPadding: '{form.field.padding.y}'\n },\n colorScheme: {\n light: {\n button: {\n background: 'transparent',\n hoverBackground: '{surface.100}',\n activeBackground: '{surface.200}',\n borderColor: '{form.field.border.color}',\n hoverBorderColor: '{form.field.border.color}',\n activeBorderColor: '{form.field.border.color}',\n color: '{surface.400}',\n hoverColor: '{surface.500}',\n activeColor: '{surface.600}'\n }\n },\n dark: {\n button: {\n background: 'transparent',\n hoverBackground: '{surface.800}',\n activeBackground: '{surface.700}',\n borderColor: '{form.field.border.color}',\n hoverBorderColor: '{form.field.border.color}',\n activeBorderColor: '{form.field.border.color}',\n color: '{surface.400}',\n hoverColor: '{surface.300}',\n activeColor: '{surface.200}'\n }\n }\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n background: '{form.field.background}',\n disabledBackground: '{form.field.disabled.background}',\n filledBackground: '{form.field.filled.background}',\n filledFocusBackground: '{form.field.filled.focus.background}',\n borderColor: '{form.field.border.color}',\n hoverBorderColor: '{form.field.hover.border.color}',\n focusBorderColor: '{form.field.focus.border.color}',\n invalidBorderColor: '{form.field.invalid.border.color}',\n color: '{form.field.color}',\n disabledColor: '{form.field.disabled.color}',\n placeholderColor: '{form.field.placeholder.color}',\n shadow: '{form.field.shadow}',\n paddingX: '{form.field.padding.x}',\n paddingY: '{form.field.padding.y}',\n borderRadius: '{form.field.border.radius}',\n focusRing: {\n width: '{form.field.focus.ring.width}',\n style: '{form.field.focus.ring.style}',\n color: '{form.field.focus.ring.color}',\n offset: '{form.field.focus.ring.offset}',\n shadow: '{form.field.focus.ring.shadow}'\n },\n transitionDuration: '{form.field.transition.duration}',\n sm: {\n fontSize: '0.875rem',\n paddingX: '0.625rem',\n paddingY: '0.375rem'\n },\n lg: {\n fontSize: '1.125rem',\n paddingX: '0.875rem',\n paddingY: '0.625rem'\n }\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n transitionDuration: '{transition.duration}',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n },\n value: {\n background: '{primary.color}'\n },\n range: {\n background: '{content.border.color}'\n },\n text: {\n color: '{text.muted.color}'\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n background: '{form.field.background}',\n disabledBackground: '{form.field.disabled.background}',\n borderColor: '{form.field.border.color}',\n hoverBorderColor: '{form.field.hover.border.color}',\n focusBorderColor: '{form.field.focus.border.color}',\n invalidBorderColor: '{form.field.invalid.border.color}',\n color: '{form.field.color}',\n disabledColor: '{form.field.disabled.color}',\n shadow: '{form.field.shadow}',\n borderRadius: '{form.field.border.radius}',\n focusRing: {\n width: '{form.field.focus.ring.width}',\n style: '{form.field.focus.ring.style}',\n color: '{form.field.focus.ring.color}',\n offset: '{form.field.focus.ring.offset}',\n shadow: '{form.field.focus.ring.shadow}'\n },\n transitionDuration: '{form.field.transition.duration}'\n },\n list: {\n padding: '{list.padding}',\n gap: '{list.gap}',\n header: {\n padding: '{list.header.padding}'\n }\n },\n option: {\n focusBackground: '{list.option.focus.background}',\n selectedBackground: '{list.option.selected.background}',\n selectedFocusBackground: '{list.option.selected.focus.background}',\n color: '{list.option.color}',\n focusColor: '{list.option.focus.color}',\n selectedColor: '{list.option.selected.color}',\n selectedFocusColor: '{list.option.selected.focus.color}',\n padding: '{list.option.padding}',\n borderRadius: '{list.option.border.radius}'\n },\n optionGroup: {\n background: '{list.option.group.background}',\n color: '{list.option.group.color}',\n fontWeight: '{list.option.group.font.weight}',\n padding: '{list.option.group.padding}'\n },\n checkmark: {\n color: '{list.option.color}',\n gutterStart: '-0.375rem',\n gutterEnd: '0.375rem'\n },\n emptyMessage: {\n padding: '{list.option.padding}'\n },\n colorScheme: {\n light: {\n option: {\n stripedBackground: '{surface.50}'\n }\n },\n dark: {\n option: {\n stripedBackground: '{surface.900}'\n }\n }\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n background: '{content.background}',\n borderColor: '{content.border.color}',\n borderRadius: '{content.border.radius}',\n color: '{content.color}',\n gap: '0.5rem',\n verticalOrientation: {\n padding: '{navigation.list.padding}',\n gap: '0'\n },\n horizontalOrientation: {\n padding: '0.5rem 0.75rem'\n },\n transitionDuration: '{transition.duration}'\n },\n baseItem: {\n borderRadius: '{content.border.radius}',\n padding: '{navigation.item.padding}'\n },\n item: {\n focusBackground: '{navigation.item.focus.background}',\n activeBackground: '{navigation.item.active.background}',\n color: '{navigation.item.color}',\n focusColor: '{navigation.item.focus.color}',\n activeColor: '{navigation.item.active.color}',\n padding: '{navigation.item.padding}',\n borderRadius: '{navigation.item.border.radius}',\n gap: '{navigation.item.gap}',\n icon: {\n color: '{navigation.item.icon.color}',\n focusColor: '{navigation.item.icon.focus.color}',\n activeColor: '{navigation.item.icon.active.color}'\n }\n },\n overlay: {\n padding: '0',\n background: '{content.background}',\n borderColor: '{content.border.color}',\n borderRadius: '{content.border.radius}',\n color: '{content.color}',\n shadow: '{overlay.navigation.shadow}',\n gap: '0.5rem'\n },\n submenu: {\n padding: '{navigation.list.padding}',\n gap: '{navigation.list.gap}'\n },\n submenuLabel: {\n padding: '{navigation.submenu.label.padding}',\n fontWeight: '{navigation.submenu.label.font.weight}',\n background: '{navigation.submenu.label.background.}',\n color: '{navigation.submenu.label.color}'\n },\n submenuIcon: {\n size: '{navigation.submenu.icon.size}',\n color: '{navigation.submenu.icon.color}',\n focusColor: '{navigation.submenu.icon.focus.color}',\n activeColor: '{navigation.submenu.icon.active.color}'\n },\n separator: {\n borderColor: '{content.border.color}'\n },\n mobileButton: {\n borderRadius: '50%',\n size: '1.75rem',\n color: '{text.muted.color}',\n hoverColor: '{text.muted.hover.color}',\n hoverBackground: '{content.hover.background}',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n background: '{content.background}',\n borderColor: '{content.border.color}',\n color: '{content.color}',\n borderRadius: '{content.border.radius}',\n shadow: '{overlay.navigation.shadow}',\n transitionDuration: '{transition.duration}'\n },\n list: {\n padding: '{navigation.list.padding}',\n gap: '{navigation.list.gap}'\n },\n item: {\n focusBackground: '{navigation.item.focus.background}',\n color: '{navigation.item.color}',\n focusColor: '{navigation.item.focus.color}',\n padding: '{navigation.item.padding}',\n borderRadius: '{navigation.item.border.radius}',\n gap: '{navigation.item.gap}',\n icon: {\n color: '{navigation.item.icon.color}',\n focusColor: '{navigation.item.icon.focus.color}'\n }\n },\n submenuLabel: {\n padding: '{navigation.submenu.label.padding}',\n fontWeight: '{navigation.submenu.label.font.weight}',\n background: '{navigation.submenu.label.background}',\n color: '{navigation.submenu.label.color}'\n },\n separator: {\n borderColor: '{content.border.color}'\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n background: '{content.background}',\n borderColor: '{content.border.color}',\n borderRadius: '{content.border.radius}',\n color: '{content.color}',\n gap: '0.5rem',\n padding: '0.5rem 0.75rem',\n transitionDuration: '{transition.duration}'\n },\n baseItem: {\n borderRadius: '{content.border.radius}',\n padding: '{navigation.item.padding}'\n },\n item: {\n focusBackground: '{navigation.item.focus.background}',\n activeBackground: '{navigation.item.active.background}',\n color: '{navigation.item.color}',\n focusColor: '{navigation.item.focus.color}',\n activeColor: '{navigation.item.active.color}',\n padding: '{navigation.item.padding}',\n borderRadius: '{navigation.item.border.radius}',\n gap: '{navigation.item.gap}',\n icon: {\n color: '{navigation.item.icon.color}',\n focusColor: '{navigation.item.icon.focus.color}',\n activeColor: '{navigation.item.icon.active.color}'\n }\n },\n submenu: {\n padding: '{navigation.list.padding}',\n gap: '{navigation.list.gap}',\n background: '{content.background}',\n borderColor: '{content.border.color}',\n borderRadius: '{content.border.radius}',\n shadow: '{overlay.navigation.shadow}',\n mobileIndent: '1rem'\n },\n submenuIcon: {\n size: '{navigation.submenu.icon.size}',\n color: '{navigation.submenu.icon.color}',\n focusColor: '{navigation.submenu.icon.focus.color}',\n activeColor: '{navigation.submenu.icon.active.color}'\n },\n separator: {\n borderColor: '{content.border.color}'\n },\n mobileButton: {\n borderRadius: '50%',\n size: '1.75rem',\n color: '{text.muted.color}',\n hoverColor: '{text.muted.hover.color}',\n hoverBackground: '{content.hover.background}',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n borderRadius: '{content.border.radius}',\n borderWidth: '1px',\n transitionDuration: '{transition.duration}'\n },\n content: {\n padding: '0.5rem 0.75rem',\n gap: '0.5rem'\n },\n text: {\n fontSize: '1rem',\n fontWeight: '500'\n },\n icon: {\n size: '1.125rem'\n },\n closeButton: {\n width: '1.75rem',\n height: '1.75rem',\n borderRadius: '50%',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n offset: '{focus.ring.offset}'\n }\n },\n closeIcon: {\n size: '1rem'\n },\n colorScheme: {\n light: {\n info: {\n background: 'color-mix(in srgb, {blue.50}, transparent 5%)',\n borderColor: '{blue.200}',\n color: '{blue.600}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {blue.500}, transparent 96%)',\n closeButton: {\n hoverBackground: '{blue.100}',\n focusRing: {\n color: '{blue.600}',\n shadow: 'none'\n }\n }\n },\n success: {\n background: 'color-mix(in srgb, {green.50}, transparent 5%)',\n borderColor: '{green.200}',\n color: '{green.600}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {green.500}, transparent 96%)',\n closeButton: {\n hoverBackground: '{green.100}',\n focusRing: {\n color: '{green.600}',\n shadow: 'none'\n }\n }\n },\n warn: {\n background: 'color-mix(in srgb,{yellow.50}, transparent 5%)',\n borderColor: '{yellow.200}',\n color: '{yellow.600}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {yellow.500}, transparent 96%)',\n closeButton: {\n hoverBackground: '{yellow.100}',\n focusRing: {\n color: '{yellow.600}',\n shadow: 'none'\n }\n }\n },\n error: {\n background: 'color-mix(in srgb, {red.50}, transparent 5%)',\n borderColor: '{red.200}',\n color: '{red.600}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {red.500}, transparent 96%)',\n closeButton: {\n hoverBackground: '{red.100}',\n focusRing: {\n color: '{red.600}',\n shadow: 'none'\n }\n }\n },\n secondary: {\n background: '{surface.100}',\n borderColor: '{surface.200}',\n color: '{surface.600}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {surface.500}, transparent 96%)',\n closeButton: {\n hoverBackground: '{surface.200}',\n focusRing: {\n color: '{surface.600}',\n shadow: 'none'\n }\n }\n },\n contrast: {\n background: '{surface.900}',\n borderColor: '{surface.950}',\n color: '{surface.50}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {surface.950}, transparent 96%)',\n closeButton: {\n hoverBackground: '{surface.800}',\n focusRing: {\n color: '{surface.50}',\n shadow: 'none'\n }\n }\n }\n },\n dark: {\n info: {\n background: 'color-mix(in srgb, {blue.500}, transparent 84%)',\n borderColor: 'color-mix(in srgb, {blue.700}, transparent 64%)',\n color: '{blue.500}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {blue.500}, transparent 96%)',\n closeButton: {\n hoverBackground: 'rgba(255, 255, 255, 0.05)',\n focusRing: {\n color: '{blue.500}',\n shadow: 'none'\n }\n }\n },\n success: {\n background: 'color-mix(in srgb, {green.500}, transparent 84%)',\n borderColor: 'color-mix(in srgb, {green.700}, transparent 64%)',\n color: '{green.500}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {green.500}, transparent 96%)',\n closeButton: {\n hoverBackground: 'rgba(255, 255, 255, 0.05)',\n focusRing: {\n color: '{green.500}',\n shadow: 'none'\n }\n }\n },\n warn: {\n background: 'color-mix(in srgb, {yellow.500}, transparent 84%)',\n borderColor: 'color-mix(in srgb, {yellow.700}, transparent 64%)',\n color: '{yellow.500}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {yellow.500}, transparent 96%)',\n closeButton: {\n hoverBackground: 'rgba(255, 255, 255, 0.05)',\n focusRing: {\n color: '{yellow.500}',\n shadow: 'none'\n }\n }\n },\n error: {\n background: 'color-mix(in srgb, {red.500}, transparent 84%)',\n borderColor: 'color-mix(in srgb, {red.700}, transparent 64%)',\n color: '{red.500}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {red.500}, transparent 96%)',\n closeButton: {\n hoverBackground: 'rgba(255, 255, 255, 0.05)',\n focusRing: {\n color: '{red.500}',\n shadow: 'none'\n }\n }\n },\n secondary: {\n background: '{surface.800}',\n borderColor: '{surface.700}',\n color: '{surface.300}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {surface.500}, transparent 96%)',\n closeButton: {\n hoverBackground: '{surface.700}',\n focusRing: {\n color: '{surface.300}',\n shadow: 'none'\n }\n }\n },\n contrast: {\n background: '{surface.0}',\n borderColor: '{surface.100}',\n color: '{surface.950}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {surface.950}, transparent 96%)',\n closeButton: {\n hoverBackground: '{surface.100}',\n focusRing: {\n color: '{surface.950}',\n shadow: 'none'\n }\n }\n }\n }\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n borderRadius: '{content.border.radius}',\n gap: '1rem'\n },\n meters: {\n background: '{content.border.color}',\n size: '0.5rem'\n },\n label: {\n gap: '0.5rem'\n },\n labelMarker: {\n size: '0.5rem'\n },\n labelIcon: {\n size: '1rem'\n },\n labelList: {\n verticalGap: '0.5rem',\n horizontalGap: '1rem'\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n background: '{form.field.background}',\n disabledBackground: '{form.field.disabled.background}',\n filledBackground: '{form.field.filled.background}',\n filledFocusBackground: '{form.field.filled.focus.background}',\n borderColor: '{form.field.border.color}',\n hoverBorderColor: '{form.field.hover.border.color}',\n focusBorderColor: '{form.field.focus.border.color}',\n invalidBorderColor: '{form.field.invalid.border.color}',\n color: '{form.field.color}',\n disabledColor: '{form.field.disabled.color}',\n placeholderColor: '{form.field.placeholder.color}',\n shadow: '{form.field.shadow}',\n paddingX: '{form.field.padding.x}',\n paddingY: '{form.field.padding.y}',\n borderRadius: '{form.field.border.radius}',\n focusRing: {\n width: '{form.field.focus.ring.width}',\n style: '{form.field.focus.ring.style}',\n color: '{form.field.focus.ring.color}',\n offset: '{form.field.focus.ring.offset}',\n shadow: '{form.field.focus.ring.shadow}'\n },\n transitionDuration: '{form.field.transition.duration}'\n },\n dropdown: {\n width: '2.5rem',\n color: '{form.field.icon.color}'\n },\n overlay: {\n background: '{overlay.select.background}',\n borderColor: '{overlay.select.border.color}',\n borderRadius: '{overlay.select.border.radius}',\n color: '{overlay.select.color}',\n shadow: '{overlay.select.shadow}'\n },\n list: {\n padding: '{list.padding}',\n gap: '{list.gap}',\n header: {\n padding: '{list.header.padding}'\n }\n },\n option: {\n focusBackground: '{list.option.focus.background}',\n selectedBackground: '{list.option.selected.background}',\n selectedFocusBackground: '{list.option.selected.focus.background}',\n color: '{list.option.color}',\n focusColor: '{list.option.focus.color}',\n selectedColor: '{list.option.selected.color}',\n selectedFocusColor: '{list.option.selected.focus.color}',\n padding: '{list.option.padding}',\n borderRadius: '{list.option.border.radius}',\n gap: '0.5rem'\n },\n optionGroup: {\n background: '{list.option.group.background}',\n color: '{list.option.group.color}',\n fontWeight: '{list.option.group.font.weight}',\n padding: '{list.option.group.padding}'\n },\n chip: {\n borderRadius: '{border.radius.sm}'\n },\n emptyMessage: {\n padding: '{list.option.padding}'\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n gap: '1.125rem'\n },\n controls: {\n gap: '0.5rem'\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n gutter: '0.75rem',\n transitionDuration: '{transition.duration}'\n },\n node: {\n background: '{content.background}',\n hoverBackground: '{content.hover.background}',\n selectedBackground: '{highlight.background}',\n borderColor: '{content.border.color}',\n color: '{content.color}',\n selectedColor: '{highlight.color}',\n hoverColor: '{content.hover.color}',\n padding: '0.75rem 1rem',\n toggleablePadding: '0.75rem 1rem 1.25rem 1rem',\n borderRadius: '{content.border.radius}'\n },\n nodeToggleButton: {\n background: '{content.background}',\n hoverBackground: '{content.hover.background}',\n borderColor: '{content.border.color}',\n color: '{text.muted.color}',\n hoverColor: '{text.color}',\n size: '1.5rem',\n borderRadius: '50%',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n },\n connector: {\n color: '{content.border.color}',\n borderRadius: '{content.border.radius}',\n height: '24px'\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n outline: {\n width: '2px',\n color: '{content.background}'\n }\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n padding: '0.5rem 1rem',\n gap: '0.25rem',\n borderRadius: '{content.border.radius}',\n background: '{content.background}',\n color: '{content.color}',\n transitionDuration: '{transition.duration}'\n },\n navButton: {\n background: 'transparent',\n hoverBackground: '{content.hover.background}',\n selectedBackground: '{highlight.background}',\n color: '{text.muted.color}',\n hoverColor: '{text.hover.muted.color}',\n selectedColor: '{highlight.color}',\n width: '2.5rem',\n height: '2.5rem',\n borderRadius: '50%',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n },\n currentPageReport: {\n color: '{text.muted.color}'\n },\n jumpToPageInput: {\n maxWidth: '2.5rem'\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n background: '{content.background}',\n borderColor: '{content.border.color}',\n color: '{content.color}',\n borderRadius: '{content.border.radius}'\n },\n header: {\n background: 'transparent',\n color: '{text.color}',\n padding: '1.125rem',\n borderColor: '{content.border.color}',\n borderWidth: '0',\n borderRadius: '0'\n },\n toggleableHeader: {\n padding: '0.375rem 1.125rem'\n },\n title: {\n fontWeight: '600'\n },\n content: {\n padding: '0 1.125rem 1.125rem 1.125rem'\n },\n footer: {\n padding: '0 1.125rem 1.125rem 1.125rem'\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n gap: '0.5rem',\n transitionDuration: '{transition.duration}'\n },\n panel: {\n background: '{content.background}',\n borderColor: '{content.border.color}',\n borderWidth: '1px',\n color: '{content.color}',\n padding: '0.25rem 0.25rem',\n borderRadius: '{content.border.radius}',\n first: {\n borderWidth: '1px',\n topBorderRadius: '{content.border.radius}'\n },\n last: {\n borderWidth: '1px',\n bottomBorderRadius: '{content.border.radius}'\n }\n },\n item: {\n focusBackground: '{navigation.item.focus.background}',\n color: '{navigation.item.color}',\n focusColor: '{navigation.item.focus.color}',\n gap: '0.5rem',\n padding: '{navigation.item.padding}',\n borderRadius: '{content.border.radius}',\n icon: {\n color: '{navigation.item.icon.color}',\n focusColor: '{navigation.item.icon.focus.color}'\n }\n },\n submenu: {\n indent: '1rem'\n },\n submenuIcon: {\n color: '{navigation.submenu.icon.color}',\n focusColor: '{navigation.submenu.icon.focus.color}'\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n meter: {\n background: '{content.border.color}',\n borderRadius: '{content.border.radius}',\n height: '.75rem'\n },\n icon: {\n color: '{form.field.icon.color}'\n },\n overlay: {\n background: '{overlay.popover.background}',\n borderColor: '{overlay.popover.border.color}',\n borderRadius: '{overlay.popover.border.radius}',\n color: '{overlay.popover.color}',\n padding: '{overlay.popover.padding}',\n shadow: '{overlay.popover.shadow}'\n },\n content: {\n gap: '0.5rem'\n },\n colorScheme: {\n light: {\n strength: {\n weakBackground: '{red.500}',\n mediumBackground: '{amber.500}',\n strongBackground: '{green.500}'\n }\n },\n dark: {\n strength: {\n weakBackground: '{red.400}',\n mediumBackground: '{amber.400}',\n strongBackground: '{green.400}'\n }\n }\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n gap: '1.125rem'\n },\n controls: {\n gap: '0.5rem'\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n background: '{overlay.popover.background}',\n borderColor: '{overlay.popover.border.color}',\n color: '{overlay.popover.color}',\n borderRadius: '{overlay.popover.border.radius}',\n shadow: '{overlay.popover.shadow}',\n gutter: '10px',\n arrowOffset: '1.25rem'\n },\n content: {\n padding: '{overlay.popover.padding}'\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n background: '{content.border.color}',\n borderRadius: '{content.border.radius}',\n height: '1.25rem'\n },\n value: {\n background: '{primary.color}'\n },\n label: {\n color: '{primary.contrast.color}',\n fontSize: '0.75rem',\n fontWeight: '600'\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n colorScheme: {\n light: {\n root: {\n 'color.1': '{red.500}',\n 'color.2': '{blue.500}',\n 'color.3': '{green.500}',\n 'color.4': '{yellow.500}'\n }\n },\n dark: {\n root: {\n 'color.1': '{red.400}',\n 'color.2': '{blue.400}',\n 'color.3': '{green.400}',\n 'color.4': '{yellow.400}'\n }\n }\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n width: '1.25rem',\n height: '1.25rem',\n background: '{form.field.background}',\n checkedBackground: '{primary.color}',\n checkedHoverBackground: '{primary.hover.color}',\n disabledBackground: '{form.field.disabled.background}',\n filledBackground: '{form.field.filled.background}',\n borderColor: '{form.field.border.color}',\n hoverBorderColor: '{form.field.hover.border.color}',\n focusBorderColor: '{form.field.border.color}',\n checkedBorderColor: '{primary.color}',\n checkedHoverBorderColor: '{primary.hover.color}',\n checkedFocusBorderColor: '{primary.color}',\n checkedDisabledBorderColor: '{form.field.border.color}',\n invalidBorderColor: '{form.field.invalid.border.color}',\n shadow: '{form.field.shadow}',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n },\n transitionDuration: '{form.field.transition.duration}'\n },\n icon: {\n size: '0.75rem',\n checkedColor: '{primary.contrast.color}',\n checkedHoverColor: '{primary.contrast.color}',\n disabledColor: '{form.field.disabled.color}'\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n gap: '0.25rem',\n transitionDuration: '{transition.duration}'\n },\n icon: {\n size: '1rem',\n color: '{text.muted.color}',\n hoverColor: '{primary.color}',\n activeColor: '{primary.color}'\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n colorScheme: {\n light: {\n root: {\n background: 'rgba(0,0,0,0.1)'\n }\n },\n dark: {\n root: {\n background: 'rgba(255,255,255,0.3)'\n }\n }\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n transitionDuration: '{transition.duration}'\n },\n bar: {\n size: '9px',\n borderRadius: '{border.radius.sm}',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n },\n colorScheme: {\n light: {\n bar: {\n background: '{surface.100}'\n }\n },\n dark: {\n bar: {\n background: '{surface.800}'\n }\n }\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n background: '{form.field.background}',\n disabledBackground: '{form.field.disabled.background}',\n filledBackground: '{form.field.filled.background}',\n filledFocusBackground: '{form.field.filled.focus.background}',\n borderColor: '{form.field.border.color}',\n hoverBorderColor: '{form.field.hover.border.color}',\n focusBorderColor: '{form.field.focus.border.color}',\n invalidBorderColor: '{form.field.invalid.border.color}',\n color: '{form.field.color}',\n disabledColor: '{form.field.disabled.color}',\n placeholderColor: '{form.field.placeholder.color}',\n shadow: '{form.field.shadow}',\n paddingX: '{form.field.padding.x}',\n paddingY: '{form.field.padding.y}',\n borderRadius: '{form.field.border.radius}',\n focusRing: {\n width: '{form.field.focus.ring.width}',\n style: '{form.field.focus.ring.style}',\n color: '{form.field.focus.ring.color}',\n offset: '{form.field.focus.ring.offset}',\n shadow: '{form.field.focus.ring.shadow}'\n },\n transitionDuration: '{form.field.transition.duration}'\n },\n dropdown: {\n width: '2.5rem',\n color: '{form.field.icon.color}'\n },\n overlay: {\n background: '{overlay.select.background}',\n borderColor: '{overlay.select.border.color}',\n borderRadius: '{overlay.select.border.radius}',\n color: '{overlay.select.color}',\n shadow: '{overlay.select.shadow}'\n },\n list: {\n padding: '{list.padding}',\n gap: '{list.gap}',\n header: {\n padding: '{list.header.padding}'\n }\n },\n option: {\n focusBackground: '{list.option.focus.background}',\n selectedBackground: '{list.option.selected.background}',\n selectedFocusBackground: '{list.option.selected.focus.background}',\n color: '{list.option.color}',\n focusColor: '{list.option.focus.color}',\n selectedColor: '{list.option.selected.color}',\n selectedFocusColor: '{list.option.selected.focus.color}',\n padding: '{list.option.padding}',\n borderRadius: '{list.option.border.radius}'\n },\n optionGroup: {\n background: '{list.option.group.background}',\n color: '{list.option.group.color}',\n fontWeight: '{list.option.group.font.weight}',\n padding: '{list.option.group.padding}'\n },\n clearIcon: {\n color: '{form.field.icon.color}'\n },\n checkmark: {\n color: '{list.option.color}',\n gutterStart: '-0.375rem',\n gutterEnd: '0.375rem'\n },\n emptyMessage: {\n padding: '{list.option.padding}'\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n borderRadius: '{form.field.border.radius}'\n },\n colorScheme: {\n light: {\n root: {\n invalidBorderColor: '{form.field.invalid.border.color}'\n }\n },\n dark: {\n root: {\n invalidBorderColor: '{form.field.invalid.border.color}'\n }\n }\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n borderRadius: '{content.border.radius}'\n },\n colorScheme: {\n light: {\n root: {\n background: '{surface.200}',\n animationBackground: 'rgba(255,255,255,0.4)'\n }\n },\n dark: {\n root: {\n background: 'rgba(255, 255, 255, 0.06)',\n animationBackground: 'rgba(255, 255, 255, 0.04)'\n }\n }\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n transitionDuration: '{transition.duration}'\n },\n track: {\n background: '{content.border.color}',\n borderRadius: '{content.border.radius}',\n size: '3px'\n },\n range: {\n background: '{primary.color}'\n },\n handle: {\n width: '20px',\n height: '20px',\n borderRadius: '50%',\n background: '{content.border.color}',\n hoverBackground: '{content.border.color}',\n content: {\n borderRadius: '50%',\n hoverBackground: '{content.background}',\n width: '16px',\n height: '16px',\n shadow: '0px 0.5px 0px 0px rgba(0, 0, 0, 0.08), 0px 1px 1px 0px rgba(0, 0, 0, 0.14)'\n },\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n },\n colorScheme: {\n light: {\n handle: {\n contentBackground: '{surface.0}'\n }\n },\n dark: {\n handle: {\n contentBackground: '{surface.950}'\n }\n }\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n gap: '0.5rem',\n transitionDuration: '{transition.duration}'\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n borderRadius: '{form.field.border.radius}',\n roundedBorderRadius: '2rem',\n raisedShadow: '0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12)'\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n background: '{content.background}',\n borderColor: '{content.border.color}',\n color: '{content.color}',\n transitionDuration: '{transition.duration}'\n },\n gutter: {\n background: '{content.border.color}'\n },\n handle: {\n size: '24px',\n background: 'transparent',\n borderRadius: '{content.border.radius}',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n transitionDuration: '{transition.duration}'\n },\n separator: {\n background: '{content.border.color}',\n activeBackground: '{primary.color}',\n margin: '0 0 0 1.625rem',\n size: '2px'\n },\n step: {\n padding: '0.5rem',\n gap: '1rem'\n },\n stepHeader: {\n padding: '0',\n borderRadius: '{content.border.radius}',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n },\n gap: '0.5rem'\n },\n stepTitle: {\n color: '{text.muted.color}',\n activeColor: '{primary.color}',\n fontWeight: '500'\n },\n stepNumber: {\n background: '{content.background}',\n activeBackground: '{content.background}',\n borderColor: '{content.border.color}',\n activeBorderColor: '{content.border.color}',\n color: '{text.muted.color}',\n activeColor: '{primary.color}',\n size: '2rem',\n fontSize: '1.143rem',\n fontWeight: '500',\n borderRadius: '50%',\n shadow: '0px 0.5px 0px 0px rgba(0, 0, 0, 0.06), 0px 1px 1px 0px rgba(0, 0, 0, 0.12)'\n },\n steppanels: {\n padding: '0.875rem 0.5rem 1.125rem 0.5rem'\n },\n steppanel: {\n background: '{content.background}',\n color: '{content.color}',\n padding: '0 0 0 1rem'\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n transitionDuration: '{transition.duration}'\n },\n separator: {\n background: '{content.border.color}'\n },\n itemLink: {\n borderRadius: '{content.border.radius}',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n },\n gap: '0.5rem'\n },\n itemLabel: {\n color: '{text.muted.color}',\n activeColor: '{primary.color}',\n fontWeight: '500'\n },\n itemNumber: {\n background: '{content.background}',\n activeBackground: '{content.background}',\n borderColor: '{content.border.color}',\n activeBorderColor: '{content.border.color}',\n color: '{text.muted.color}',\n activeColor: '{primary.color}',\n size: '2rem',\n fontSize: '1.143rem',\n fontWeight: '500',\n borderRadius: '50%',\n shadow: '0px 0.5px 0px 0px rgba(0, 0, 0, 0.06), 0px 1px 1px 0px rgba(0, 0, 0, 0.12)'\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n transitionDuration: '{transition.duration}'\n },\n tablist: {\n borderWidth: '0 0 1px 0',\n background: '{content.background}',\n borderColor: '{content.border.color}'\n },\n item: {\n background: 'transparent',\n hoverBackground: 'transparent',\n activeBackground: 'transparent',\n borderWidth: '0 0 1px 0',\n borderColor: '{content.border.color}',\n hoverBorderColor: '{content.border.color}',\n activeBorderColor: '{primary.color}',\n color: '{text.muted.color}',\n hoverColor: '{text.color}',\n activeColor: '{primary.color}',\n padding: '1rem 1.125rem',\n fontWeight: '600',\n margin: '0 0 -1px 0',\n gap: '0.5rem',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n },\n itemIcon: {\n color: '{text.muted.color}',\n hoverColor: '{text.color}',\n activeColor: '{primary.color}'\n },\n activeBar: {\n height: '1px',\n bottom: '-1px',\n background: '{primary.color}'\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n transitionDuration: '{transition.duration}'\n },\n tablist: {\n borderWidth: '0 0 1px 0',\n background: '{content.background}',\n borderColor: '{content.border.color}'\n },\n tab: {\n background: 'transparent',\n hoverBackground: 'transparent',\n activeBackground: 'transparent',\n borderWidth: '0 0 1px 0',\n borderColor: '{content.border.color}',\n hoverBorderColor: '{content.border.color}',\n activeBorderColor: '{primary.color}',\n color: '{text.muted.color}',\n hoverColor: '{text.color}',\n activeColor: '{primary.color}',\n padding: '1rem 1.125rem',\n fontWeight: '600',\n margin: '0 0 -1px 0',\n gap: '0.5rem',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '-1px',\n shadow: '{focus.ring.shadow}'\n }\n },\n tabpanel: {\n background: '{content.background}',\n color: '{content.color}',\n padding: '0.875rem 1.125rem 1.125rem 1.125rem',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: 'inset {focus.ring.shadow}'\n }\n },\n navButton: {\n background: '{content.background}',\n color: '{text.muted.color}',\n hoverColor: '{text.color}',\n width: '2.5rem',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '-1px',\n shadow: '{focus.ring.shadow}'\n }\n },\n activeBar: {\n height: '1px',\n bottom: '-1px',\n background: '{primary.color}'\n },\n colorScheme: {\n light: {\n navButton: {\n shadow: '0px 0px 10px 50px rgba(255, 255, 255, 0.6)'\n }\n },\n dark: {\n navButton: {\n shadow: '0px 0px 10px 50px color-mix(in srgb, {content.background}, transparent 50%)'\n }\n }\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n transitionDuration: '{transition.duration}'\n },\n tabList: {\n background: '{content.background}',\n borderColor: '{content.border.color}'\n },\n tab: {\n borderColor: '{content.border.color}',\n activeBorderColor: '{primary.color}',\n color: '{text.muted.color}',\n hoverColor: '{text.color}',\n activeColor: '{primary.color}'\n },\n tabPanel: {\n background: '{content.background}',\n color: '{content.color}'\n },\n navButton: {\n background: '{content.background}',\n color: '{text.muted.color}',\n hoverColor: '{text.color}'\n },\n colorScheme: {\n light: {\n navButton: {\n shadow: '0px 0px 10px 50px rgba(255, 255, 255, 0.6)'\n }\n },\n dark: {\n navButton: {\n shadow: '0px 0px 10px 50px color-mix(in srgb, {content.background}, transparent 50%)'\n }\n }\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n fontSize: '0.875rem',\n fontWeight: '700',\n padding: '0.25rem 0.5rem',\n gap: '0.25rem',\n borderRadius: '{content.border.radius}',\n roundedBorderRadius: '{border.radius.xl}'\n },\n icon: {\n size: '0.75rem'\n },\n colorScheme: {\n light: {\n primary: {\n background: '{primary.100}',\n color: '{primary.700}'\n },\n secondary: {\n background: '{surface.100}',\n color: '{surface.600}'\n },\n success: {\n background: '{green.100}',\n color: '{green.700}'\n },\n info: {\n background: '{sky.100}',\n color: '{sky.700}'\n },\n warn: {\n background: '{orange.100}',\n color: '{orange.700}'\n },\n danger: {\n background: '{red.100}',\n color: '{red.700}'\n },\n contrast: {\n background: '{surface.950}',\n color: '{surface.0}'\n }\n },\n dark: {\n primary: {\n background: 'color-mix(in srgb, {primary.500}, transparent 84%)',\n color: '{primary.300}'\n },\n secondary: {\n background: '{surface.800}',\n color: '{surface.300}'\n },\n success: {\n background: 'color-mix(in srgb, {green.500}, transparent 84%)',\n color: '{green.300}'\n },\n info: {\n background: 'color-mix(in srgb, {sky.500}, transparent 84%)',\n color: '{sky.300}'\n },\n warn: {\n background: 'color-mix(in srgb, {orange.500}, transparent 84%)',\n color: '{orange.300}'\n },\n danger: {\n background: 'color-mix(in srgb, {red.500}, transparent 84%)',\n color: '{red.300}'\n },\n contrast: {\n background: '{surface.0}',\n color: '{surface.950}'\n }\n }\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n background: '{form.field.background}',\n borderColor: '{form.field.border.color}',\n color: '{form.field.color}',\n height: '18rem',\n padding: '{form.field.padding.y} {form.field.padding.x}',\n borderRadius: '{form.field.border.radius}'\n },\n prompt: {\n gap: '0.25rem'\n },\n commandResponse: {\n margin: '2px 0'\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n background: '{form.field.background}',\n disabledBackground: '{form.field.disabled.background}',\n filledBackground: '{form.field.filled.background}',\n filledFocusBackground: '{form.field.filled.focus.background}',\n borderColor: '{form.field.border.color}',\n hoverBorderColor: '{form.field.hover.border.color}',\n focusBorderColor: '{form.field.focus.border.color}',\n invalidBorderColor: '{form.field.invalid.border.color}',\n color: '{form.field.color}',\n disabledColor: '{form.field.disabled.color}',\n placeholderColor: '{form.field.placeholder.color}',\n shadow: '{form.field.shadow}',\n paddingX: '{form.field.padding.x}',\n paddingY: '{form.field.padding.y}',\n borderRadius: '{form.field.border.radius}',\n focusRing: {\n width: '{form.field.focus.ring.width}',\n style: '{form.field.focus.ring.style}',\n color: '{form.field.focus.ring.color}',\n offset: '{form.field.focus.ring.offset}',\n shadow: '{form.field.focus.ring.shadow}'\n },\n transitionDuration: '{form.field.transition.duration}'\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n background: '{content.background}',\n borderColor: '{content.border.color}',\n color: '{content.color}',\n borderRadius: '{content.border.radius}',\n shadow: '{overlay.navigation.shadow}',\n transitionDuration: '{transition.duration}'\n },\n list: {\n padding: '{navigation.list.padding}',\n gap: '{navigation.list.gap}'\n },\n item: {\n focusBackground: '{navigation.item.focus.background}',\n activeBackground: '{navigation.item.active.background}',\n color: '{navigation.item.color}',\n focusColor: '{navigation.item.focus.color}',\n activeColor: '{navigation.item.active.color}',\n padding: '{navigation.item.padding}',\n borderRadius: '{navigation.item.border.radius}',\n gap: '{navigation.item.gap}',\n icon: {\n color: '{navigation.item.icon.color}',\n focusColor: '{navigation.item.icon.focus.color}',\n activeColor: '{navigation.item.icon.active.color}'\n }\n },\n submenuLabel: {\n padding: '{navigation.submenu.label.padding}',\n fontWeight: '{navigation.submenu.label.font.weight}',\n background: '{navigation.submenu.label.background.}',\n color: '{navigation.submenu.label.color}'\n },\n submenuIcon: {\n size: '{navigation.submenu.icon.size}',\n color: '{navigation.submenu.icon.color}',\n focusColor: '{navigation.submenu.icon.focus.color}',\n activeColor: '{navigation.submenu.icon.active.color}'\n },\n separator: {\n borderColor: '{content.border.color}'\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n event: {\n minHeight: '5rem'\n },\n horizontal: {\n eventContent: {\n padding: '1rem 0'\n }\n },\n vertical: {\n eventContent: {\n padding: '0 1rem'\n }\n },\n eventMarker: {\n size: '1.125rem',\n borderRadius: '50%',\n borderWidth: '2px',\n background: '{content.background}',\n borderColor: '{content.border.color}',\n content: {\n borderRadius: '50%',\n size: '0.375rem',\n background: '{primary.color}',\n insetShadow: '0px 0.5px 0px 0px rgba(0, 0, 0, 0.06), 0px 1px 1px 0px rgba(0, 0, 0, 0.12)'\n }\n },\n eventConnector: {\n color: '{content.border.color}',\n size: '2px'\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n width: '25rem',\n borderRadius: '{content.border.radius}',\n borderWidth: '1px',\n transitionDuration: '{transition.duration}'\n },\n icon: {\n size: '1.125rem'\n },\n content: {\n padding: '{overlay.popover.padding}',\n gap: '0.5rem'\n },\n text: {\n gap: '0.5rem'\n },\n summary: {\n fontWeight: '500',\n fontSize: '1rem'\n },\n detail: {\n fontWeight: '500',\n fontSize: '0.875rem'\n },\n closeButton: {\n width: '1.75rem',\n height: '1.75rem',\n borderRadius: '50%',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n offset: '{focus.ring.offset}'\n }\n },\n closeIcon: {\n size: '1rem'\n },\n colorScheme: {\n light: {\n blur: '1.5px',\n info: {\n background: 'color-mix(in srgb, {blue.50}, transparent 5%)',\n borderColor: '{blue.200}',\n color: '{blue.600}',\n detailColor: '{surface.700}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {blue.500}, transparent 96%)',\n closeButton: {\n hoverBackground: '{blue.100}',\n focusRing: {\n color: '{blue.600}',\n shadow: 'none'\n }\n }\n },\n success: {\n background: 'color-mix(in srgb, {green.50}, transparent 5%)',\n borderColor: '{green.200}',\n color: '{green.600}',\n detailColor: '{surface.700}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {green.500}, transparent 96%)',\n closeButton: {\n hoverBackground: '{green.100}',\n focusRing: {\n color: '{green.600}',\n shadow: 'none'\n }\n }\n },\n warn: {\n background: 'color-mix(in srgb,{yellow.50}, transparent 5%)',\n borderColor: '{yellow.200}',\n color: '{yellow.600}',\n detailColor: '{surface.700}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {yellow.500}, transparent 96%)',\n closeButton: {\n hoverBackground: '{yellow.100}',\n focusRing: {\n color: '{yellow.600}',\n shadow: 'none'\n }\n }\n },\n error: {\n background: 'color-mix(in srgb, {red.50}, transparent 5%)',\n borderColor: '{red.200}',\n color: '{red.600}',\n detailColor: '{surface.700}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {red.500}, transparent 96%)',\n closeButton: {\n hoverBackground: '{red.100}',\n focusRing: {\n color: '{red.600}',\n shadow: 'none'\n }\n }\n },\n secondary: {\n background: '{surface.100}',\n borderColor: '{surface.200}',\n color: '{surface.600}',\n detailColor: '{surface.700}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {surface.500}, transparent 96%)',\n closeButton: {\n hoverBackground: '{surface.200}',\n focusRing: {\n color: '{surface.600}',\n shadow: 'none'\n }\n }\n },\n contrast: {\n background: '{surface.900}',\n borderColor: '{surface.950}',\n color: '{surface.50}',\n detailColor: '{surface.0}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {surface.950}, transparent 96%)',\n closeButton: {\n hoverBackground: '{surface.800}',\n focusRing: {\n color: '{surface.50}',\n shadow: 'none'\n }\n }\n }\n },\n dark: {\n blur: '10px',\n info: {\n background: 'color-mix(in srgb, {blue.500}, transparent 84%)',\n borderColor: 'color-mix(in srgb, {blue.700}, transparent 64%)',\n color: '{blue.500}',\n detailColor: '{surface.0}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {blue.500}, transparent 96%)',\n closeButton: {\n hoverBackground: 'rgba(255, 255, 255, 0.05)',\n focusRing: {\n color: '{blue.500}',\n shadow: 'none'\n }\n }\n },\n success: {\n background: 'color-mix(in srgb, {green.500}, transparent 84%)',\n borderColor: 'color-mix(in srgb, {green.700}, transparent 64%)',\n color: '{green.500}',\n detailColor: '{surface.0}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {green.500}, transparent 96%)',\n closeButton: {\n hoverBackground: 'rgba(255, 255, 255, 0.05)',\n focusRing: {\n color: '{green.500}',\n shadow: 'none'\n }\n }\n },\n warn: {\n background: 'color-mix(in srgb, {yellow.500}, transparent 84%)',\n borderColor: 'color-mix(in srgb, {yellow.700}, transparent 64%)',\n color: '{yellow.500}',\n detailColor: '{surface.0}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {yellow.500}, transparent 96%)',\n closeButton: {\n hoverBackground: 'rgba(255, 255, 255, 0.05)',\n focusRing: {\n color: '{yellow.500}',\n shadow: 'none'\n }\n }\n },\n error: {\n background: 'color-mix(in srgb, {red.500}, transparent 84%)',\n borderColor: 'color-mix(in srgb, {red.700}, transparent 64%)',\n color: '{red.500}',\n detailColor: '{surface.0}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {red.500}, transparent 96%)',\n closeButton: {\n hoverBackground: 'rgba(255, 255, 255, 0.05)',\n focusRing: {\n color: '{red.500}',\n shadow: 'none'\n }\n }\n },\n secondary: {\n background: '{surface.800}',\n borderColor: '{surface.700}',\n color: '{surface.300}',\n detailColor: '{surface.0}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {surface.500}, transparent 96%)',\n closeButton: {\n hoverBackground: '{surface.700}',\n focusRing: {\n color: '{surface.300}',\n shadow: 'none'\n }\n }\n },\n contrast: {\n background: '{surface.0}',\n borderColor: '{surface.100}',\n color: '{surface.950}',\n detailColor: '{surface.950}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {surface.950}, transparent 96%)',\n closeButton: {\n hoverBackground: '{surface.100}',\n focusRing: {\n color: '{surface.950}',\n shadow: 'none'\n }\n }\n }\n }\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n padding: '0.5rem 1rem',\n borderRadius: '{content.border.radius}',\n gap: '0.5rem',\n fontWeight: '500',\n disabledBackground: '{form.field.disabled.background}',\n disabledBorderColor: '{form.field.disabled.background}',\n disabledColor: '{form.field.disabled.color}',\n invalidBorderColor: '{form.field.invalid.border.color}',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n },\n transitionDuration: '{form.field.transition.duration}'\n },\n icon: {\n disabledColor: '{form.field.disabled.color}'\n },\n content: {\n left: '0.25rem',\n top: '0.25rem',\n checkedShadow: '0px 1px 2px 0px rgba(0, 0, 0, 0.02), 0px 1px 2px 0px rgba(0, 0, 0, 0.04)'\n },\n colorScheme: {\n light: {\n root: {\n background: '{surface.100}',\n checkedBackground: '{surface.100}',\n hoverBackground: '{surface.100}',\n borderColor: '{surface.100}',\n color: '{surface.500}',\n hoverColor: '{surface.700}',\n checkedColor: '{surface.900}',\n checkedBorderColor: '{surface.100}'\n },\n content: {\n checkedBackground: '{surface.0}'\n },\n icon: {\n color: '{surface.500}',\n hoverColor: '{surface.700}',\n checkedColor: '{surface.900}'\n }\n },\n dark: {\n root: {\n background: '{surface.950}',\n checkedBackground: '{surface.950}',\n hoverBackground: '{surface.950}',\n borderColor: '{surface.950}',\n color: '{surface.400}',\n hoverColor: '{surface.300}',\n checkedColor: '{surface.0}',\n checkedBorderColor: '{surface.950}'\n },\n content: {\n checkedBackground: '{surface.800}'\n },\n icon: {\n color: '{surface.400}',\n hoverColor: '{surface.300}',\n checkedColor: '{surface.0}'\n }\n }\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n width: '2.5rem',\n height: '1.5rem',\n borderRadius: '30px',\n gap: '0.25rem',\n shadow: '{form.field.shadow}',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n },\n borderWidth: '1px',\n borderColor: 'transparent',\n hoverBorderColor: 'transparent',\n checkedBorderColor: 'transparent',\n checkedHoverBorderColor: 'transparent',\n invalidBorderColor: '{form.field.invalid.border.color}',\n transitionDuration: '{form.field.transition.duration}',\n slideDuration: '0.2s',\n disabledBackground: '{form.field.disabled.background}'\n },\n handle: {\n borderRadius: '50%',\n size: '1rem',\n disabledBackground: '{form.field.disabled.color}'\n },\n colorScheme: {\n light: {\n root: {\n background: '{surface.300}',\n hoverBackground: '{surface.400}',\n checkedBackground: '{primary.color}',\n checkedHoverBackground: '{primary.hover.color}'\n },\n handle: {\n background: '{surface.0}',\n hoverBackground: '{surface.0}',\n checkedBackground: '{surface.0}',\n checkedHoverBackground: '{surface.0}'\n }\n },\n dark: {\n root: {\n background: '{surface.700}',\n hoverBackground: '{surface.600}',\n checkedBackground: '{primary.color}',\n checkedHoverBackground: '{primary.hover.color}'\n },\n handle: {\n background: '{surface.400}',\n hoverBackground: '{surface.300}',\n checkedBackground: '{surface.900}',\n checkedHoverBackground: '{surface.900}'\n }\n }\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n background: '{content.background}',\n borderColor: '{content.border.color}',\n borderRadius: '{content.border.radius}',\n color: '{content.color}',\n gap: '0.5rem',\n padding: '0.75rem'\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n maxWidth: '12.5rem',\n gutter: '0.25rem',\n shadow: '{overlay.popover.shadow}',\n padding: '0.5rem 0.75rem',\n borderRadius: '{overlay.popover.border.radius}'\n },\n colorScheme: {\n light: {\n root: {\n background: '{surface.700}',\n color: '{surface.0}'\n }\n },\n dark: {\n root: {\n background: '{surface.700}',\n color: '{surface.0}'\n }\n }\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n background: '{content.background}',\n color: '{content.color}',\n padding: '1rem',\n gap: '2px',\n indent: '1rem',\n transitionDuration: '{transition.duration}'\n },\n node: {\n padding: '0.25rem 0.5rem',\n borderRadius: '{content.border.radius}',\n hoverBackground: '{content.hover.background}',\n selectedBackground: '{highlight.background}',\n color: '{text.color}',\n hoverColor: '{text.hover.color}',\n selectedColor: '{highlight.color}',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '-1px',\n shadow: '{focus.ring.shadow}'\n },\n gap: '0.25rem'\n },\n nodeIcon: {\n color: '{text.muted.color}',\n hoverColor: '{text.hover.muted.color}',\n selectedColor: '{highlight.color}'\n },\n nodeToggleButton: {\n borderRadius: '50%',\n size: '1.75rem',\n hoverBackground: '{content.hover.background}',\n selectedHoverBackground: '{content.background}',\n color: '{text.muted.color}',\n hoverColor: '{text.hover.muted.color}',\n selectedHoverColor: '{primary.color}',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n },\n loadingIcon: {\n size: '2rem'\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n background: '{form.field.background}',\n disabledBackground: '{form.field.disabled.background}',\n filledBackground: '{form.field.filled.background}',\n filledFocusBackground: '{form.field.filled.focus.background}',\n borderColor: '{form.field.border.color}',\n hoverBorderColor: '{form.field.hover.border.color}',\n focusBorderColor: '{form.field.focus.border.color}',\n invalidBorderColor: '{form.field.invalid.border.color}',\n color: '{form.field.color}',\n disabledColor: '{form.field.disabled.color}',\n placeholderColor: '{form.field.placeholder.color}',\n shadow: '{form.field.shadow}',\n paddingX: '{form.field.padding.x}',\n paddingY: '{form.field.padding.y}',\n borderRadius: '{form.field.border.radius}',\n focusRing: {\n width: '{form.field.focus.ring.width}',\n style: '{form.field.focus.ring.style}',\n color: '{form.field.focus.ring.color}',\n offset: '{form.field.focus.ring.offset}',\n shadow: '{form.field.focus.ring.shadow}'\n },\n transitionDuration: '{form.field.transition.duration}'\n },\n dropdown: {\n width: '2.5rem',\n color: '{form.field.icon.color}'\n },\n overlay: {\n background: '{overlay.select.background}',\n borderColor: '{overlay.select.border.color}',\n borderRadius: '{overlay.select.border.radius}',\n color: '{overlay.select.color}',\n shadow: '{overlay.select.shadow}'\n },\n tree: {\n padding: '{list.padding}'\n },\n emptyMessage: {\n padding: '{list.option.padding}'\n },\n chip: {\n borderRadius: '{border.radius.sm}'\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n root: {\n transitionDuration: '{transition.duration}'\n },\n header: {\n background: '{content.background}',\n borderColor: '{treetable.border.color}',\n color: '{content.color}',\n borderWidth: '0 0 1px 0',\n padding: '0.75rem 1rem'\n },\n headerCell: {\n background: '{content.background}',\n hoverBackground: '{content.hover.background}',\n selectedBackground: '{highlight.background}',\n borderColor: '{treetable.border.color}',\n color: '{content.color}',\n hoverColor: '{content.hover.color}',\n selectedColor: '{highlight.color}',\n gap: '0.5rem',\n padding: '0.75rem 1rem',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '-1px',\n shadow: '{focus.ring.shadow}'\n }\n },\n columnTitle: {\n fontWeight: '600'\n },\n row: {\n background: '{content.background}',\n hoverBackground: '{content.hover.background}',\n selectedBackground: '{highlight.background}',\n color: '{content.color}',\n hoverColor: '{content.hover.color}',\n selectedColor: '{highlight.color}',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '-1px',\n shadow: '{focus.ring.shadow}'\n }\n },\n bodyCell: {\n borderColor: '{treetable.border.color}',\n padding: '0.75rem 1rem',\n gap: '0.5rem'\n },\n footerCell: {\n background: '{content.background}',\n borderColor: '{treetable.border.color}',\n color: '{content.color}',\n padding: '0.75rem 1rem'\n },\n columnFooter: {\n fontWeight: '600'\n },\n footer: {\n background: '{content.background}',\n borderColor: '{treetable.border.color}',\n color: '{content.color}',\n borderWidth: '0 0 1px 0',\n padding: '0.75rem 1rem'\n },\n columnResizerWidth: '0.5rem',\n resizeIndicator: {\n width: '1px',\n color: '{primary.color}'\n },\n sortIcon: {\n color: '{text.muted.color}',\n hoverColor: '{text.hover.muted.color}'\n },\n loadingIcon: {\n size: '2rem'\n },\n nodeToggleButton: {\n hoverBackground: '{content.hover.background}',\n selectedHoverBackground: '{content.background}',\n color: '{text.muted.color}',\n hoverColor: '{text.color}',\n selectedHoverColor: '{primary.color}',\n size: '1.75rem',\n borderRadius: '50%',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n },\n paginatorTop: {\n borderColor: '{content.border.color}',\n borderWidth: '0 0 1px 0'\n },\n paginatorBottom: {\n borderColor: '{content.border.color}',\n borderWidth: '0 0 1px 0'\n },\n colorScheme: {\n light: {\n root: {\n borderColor: '{content.border.color}'\n },\n bodyCell: {\n selectedBorderColor: '{primary.100}'\n }\n },\n dark: {\n root: {\n borderColor: '{surface.800}'\n },\n bodyCell: {\n selectedBorderColor: '{primary.900}'\n }\n }\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","var index = {\n loader: {\n mask: {\n background: '{content.background}',\n color: '{text.muted.color}'\n },\n icon: {\n size: '2rem'\n }\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","import accordion from '@primevue/themes/aura/accordion';\nimport autocomplete from '@primevue/themes/aura/autocomplete';\nimport avatar from '@primevue/themes/aura/avatar';\nimport badge from '@primevue/themes/aura/badge';\nimport blockui from '@primevue/themes/aura/blockui';\nimport breadcrumb from '@primevue/themes/aura/breadcrumb';\nimport button from '@primevue/themes/aura/button';\nimport card from '@primevue/themes/aura/card';\nimport carousel from '@primevue/themes/aura/carousel';\nimport cascadeselect from '@primevue/themes/aura/cascadeselect';\nimport checkbox from '@primevue/themes/aura/checkbox';\nimport chip from '@primevue/themes/aura/chip';\nimport colorpicker from '@primevue/themes/aura/colorpicker';\nimport confirmdialog from '@primevue/themes/aura/confirmdialog';\nimport confirmpopup from '@primevue/themes/aura/confirmpopup';\nimport contextmenu from '@primevue/themes/aura/contextmenu';\nimport datatable from '@primevue/themes/aura/datatable';\nimport dataview from '@primevue/themes/aura/dataview';\nimport datepicker from '@primevue/themes/aura/datepicker';\nimport dialog from '@primevue/themes/aura/dialog';\nimport divider from '@primevue/themes/aura/divider';\nimport dock from '@primevue/themes/aura/dock';\nimport drawer from '@primevue/themes/aura/drawer';\nimport editor from '@primevue/themes/aura/editor';\nimport fieldset from '@primevue/themes/aura/fieldset';\nimport fileupload from '@primevue/themes/aura/fileupload';\nimport floatlabel from '@primevue/themes/aura/floatlabel';\nimport galleria from '@primevue/themes/aura/galleria';\nimport iconfield from '@primevue/themes/aura/iconfield';\nimport image from '@primevue/themes/aura/image';\nimport inlinemessage from '@primevue/themes/aura/inlinemessage';\nimport inplace from '@primevue/themes/aura/inplace';\nimport inputchips from '@primevue/themes/aura/inputchips';\nimport inputgroup from '@primevue/themes/aura/inputgroup';\nimport inputnumber from '@primevue/themes/aura/inputnumber';\nimport inputtext from '@primevue/themes/aura/inputtext';\nimport knob from '@primevue/themes/aura/knob';\nimport listbox from '@primevue/themes/aura/listbox';\nimport megamenu from '@primevue/themes/aura/megamenu';\nimport menu from '@primevue/themes/aura/menu';\nimport menubar from '@primevue/themes/aura/menubar';\nimport message from '@primevue/themes/aura/message';\nimport metergroup from '@primevue/themes/aura/metergroup';\nimport multiselect from '@primevue/themes/aura/multiselect';\nimport orderlist from '@primevue/themes/aura/orderlist';\nimport organizationchart from '@primevue/themes/aura/organizationchart';\nimport overlaybadge from '@primevue/themes/aura/overlaybadge';\nimport paginator from '@primevue/themes/aura/paginator';\nimport panel from '@primevue/themes/aura/panel';\nimport panelmenu from '@primevue/themes/aura/panelmenu';\nimport password from '@primevue/themes/aura/password';\nimport picklist from '@primevue/themes/aura/picklist';\nimport popover from '@primevue/themes/aura/popover';\nimport progressbar from '@primevue/themes/aura/progressbar';\nimport progressspinner from '@primevue/themes/aura/progressspinner';\nimport radiobutton from '@primevue/themes/aura/radiobutton';\nimport rating from '@primevue/themes/aura/rating';\nimport ripple from '@primevue/themes/aura/ripple';\nimport scrollpanel from '@primevue/themes/aura/scrollpanel';\nimport select from '@primevue/themes/aura/select';\nimport selectbutton from '@primevue/themes/aura/selectbutton';\nimport skeleton from '@primevue/themes/aura/skeleton';\nimport slider from '@primevue/themes/aura/slider';\nimport speeddial from '@primevue/themes/aura/speeddial';\nimport splitbutton from '@primevue/themes/aura/splitbutton';\nimport splitter from '@primevue/themes/aura/splitter';\nimport stepper from '@primevue/themes/aura/stepper';\nimport steps from '@primevue/themes/aura/steps';\nimport tabmenu from '@primevue/themes/aura/tabmenu';\nimport tabs from '@primevue/themes/aura/tabs';\nimport tabview from '@primevue/themes/aura/tabview';\nimport tag from '@primevue/themes/aura/tag';\nimport terminal from '@primevue/themes/aura/terminal';\nimport textarea from '@primevue/themes/aura/textarea';\nimport tieredmenu from '@primevue/themes/aura/tieredmenu';\nimport timeline from '@primevue/themes/aura/timeline';\nimport toast from '@primevue/themes/aura/toast';\nimport togglebutton from '@primevue/themes/aura/togglebutton';\nimport toggleswitch from '@primevue/themes/aura/toggleswitch';\nimport toolbar from '@primevue/themes/aura/toolbar';\nimport tooltip from '@primevue/themes/aura/tooltip';\nimport tree from '@primevue/themes/aura/tree';\nimport treeselect from '@primevue/themes/aura/treeselect';\nimport treetable from '@primevue/themes/aura/treetable';\nimport virtualscroller from '@primevue/themes/aura/virtualscroller';\n\nvar index = {\n primitive: {\n borderRadius: {\n none: '0',\n xs: '2px',\n sm: '4px',\n md: '6px',\n lg: '8px',\n xl: '12px'\n },\n emerald: {\n 50: '#ecfdf5',\n 100: '#d1fae5',\n 200: '#a7f3d0',\n 300: '#6ee7b7',\n 400: '#34d399',\n 500: '#10b981',\n 600: '#059669',\n 700: '#047857',\n 800: '#065f46',\n 900: '#064e3b',\n 950: '#022c22'\n },\n green: {\n 50: '#f0fdf4',\n 100: '#dcfce7',\n 200: '#bbf7d0',\n 300: '#86efac',\n 400: '#4ade80',\n 500: '#22c55e',\n 600: '#16a34a',\n 700: '#15803d',\n 800: '#166534',\n 900: '#14532d',\n 950: '#052e16'\n },\n lime: {\n 50: '#f7fee7',\n 100: '#ecfccb',\n 200: '#d9f99d',\n 300: '#bef264',\n 400: '#a3e635',\n 500: '#84cc16',\n 600: '#65a30d',\n 700: '#4d7c0f',\n 800: '#3f6212',\n 900: '#365314',\n 950: '#1a2e05'\n },\n red: {\n 50: '#fef2f2',\n 100: '#fee2e2',\n 200: '#fecaca',\n 300: '#fca5a5',\n 400: '#f87171',\n 500: '#ef4444',\n 600: '#dc2626',\n 700: '#b91c1c',\n 800: '#991b1b',\n 900: '#7f1d1d',\n 950: '#450a0a'\n },\n orange: {\n 50: '#fff7ed',\n 100: '#ffedd5',\n 200: '#fed7aa',\n 300: '#fdba74',\n 400: '#fb923c',\n 500: '#f97316',\n 600: '#ea580c',\n 700: '#c2410c',\n 800: '#9a3412',\n 900: '#7c2d12',\n 950: '#431407'\n },\n amber: {\n 50: '#fffbeb',\n 100: '#fef3c7',\n 200: '#fde68a',\n 300: '#fcd34d',\n 400: '#fbbf24',\n 500: '#f59e0b',\n 600: '#d97706',\n 700: '#b45309',\n 800: '#92400e',\n 900: '#78350f',\n 950: '#451a03'\n },\n yellow: {\n 50: '#fefce8',\n 100: '#fef9c3',\n 200: '#fef08a',\n 300: '#fde047',\n 400: '#facc15',\n 500: '#eab308',\n 600: '#ca8a04',\n 700: '#a16207',\n 800: '#854d0e',\n 900: '#713f12',\n 950: '#422006'\n },\n teal: {\n 50: '#f0fdfa',\n 100: '#ccfbf1',\n 200: '#99f6e4',\n 300: '#5eead4',\n 400: '#2dd4bf',\n 500: '#14b8a6',\n 600: '#0d9488',\n 700: '#0f766e',\n 800: '#115e59',\n 900: '#134e4a',\n 950: '#042f2e'\n },\n cyan: {\n 50: '#ecfeff',\n 100: '#cffafe',\n 200: '#a5f3fc',\n 300: '#67e8f9',\n 400: '#22d3ee',\n 500: '#06b6d4',\n 600: '#0891b2',\n 700: '#0e7490',\n 800: '#155e75',\n 900: '#164e63',\n 950: '#083344'\n },\n sky: {\n 50: '#f0f9ff',\n 100: '#e0f2fe',\n 200: '#bae6fd',\n 300: '#7dd3fc',\n 400: '#38bdf8',\n 500: '#0ea5e9',\n 600: '#0284c7',\n 700: '#0369a1',\n 800: '#075985',\n 900: '#0c4a6e',\n 950: '#082f49'\n },\n blue: {\n 50: '#eff6ff',\n 100: '#dbeafe',\n 200: '#bfdbfe',\n 300: '#93c5fd',\n 400: '#60a5fa',\n 500: '#3b82f6',\n 600: '#2563eb',\n 700: '#1d4ed8',\n 800: '#1e40af',\n 900: '#1e3a8a',\n 950: '#172554'\n },\n indigo: {\n 50: '#eef2ff',\n 100: '#e0e7ff',\n 200: '#c7d2fe',\n 300: '#a5b4fc',\n 400: '#818cf8',\n 500: '#6366f1',\n 600: '#4f46e5',\n 700: '#4338ca',\n 800: '#3730a3',\n 900: '#312e81',\n 950: '#1e1b4b'\n },\n violet: {\n 50: '#f5f3ff',\n 100: '#ede9fe',\n 200: '#ddd6fe',\n 300: '#c4b5fd',\n 400: '#a78bfa',\n 500: '#8b5cf6',\n 600: '#7c3aed',\n 700: '#6d28d9',\n 800: '#5b21b6',\n 900: '#4c1d95',\n 950: '#2e1065'\n },\n purple: {\n 50: '#faf5ff',\n 100: '#f3e8ff',\n 200: '#e9d5ff',\n 300: '#d8b4fe',\n 400: '#c084fc',\n 500: '#a855f7',\n 600: '#9333ea',\n 700: '#7e22ce',\n 800: '#6b21a8',\n 900: '#581c87',\n 950: '#3b0764'\n },\n fuchsia: {\n 50: '#fdf4ff',\n 100: '#fae8ff',\n 200: '#f5d0fe',\n 300: '#f0abfc',\n 400: '#e879f9',\n 500: '#d946ef',\n 600: '#c026d3',\n 700: '#a21caf',\n 800: '#86198f',\n 900: '#701a75',\n 950: '#4a044e'\n },\n pink: {\n 50: '#fdf2f8',\n 100: '#fce7f3',\n 200: '#fbcfe8',\n 300: '#f9a8d4',\n 400: '#f472b6',\n 500: '#ec4899',\n 600: '#db2777',\n 700: '#be185d',\n 800: '#9d174d',\n 900: '#831843',\n 950: '#500724'\n },\n rose: {\n 50: '#fff1f2',\n 100: '#ffe4e6',\n 200: '#fecdd3',\n 300: '#fda4af',\n 400: '#fb7185',\n 500: '#f43f5e',\n 600: '#e11d48',\n 700: '#be123c',\n 800: '#9f1239',\n 900: '#881337',\n 950: '#4c0519'\n },\n slate: {\n 50: '#f8fafc',\n 100: '#f1f5f9',\n 200: '#e2e8f0',\n 300: '#cbd5e1',\n 400: '#94a3b8',\n 500: '#64748b',\n 600: '#475569',\n 700: '#334155',\n 800: '#1e293b',\n 900: '#0f172a',\n 950: '#020617'\n },\n gray: {\n 50: '#f9fafb',\n 100: '#f3f4f6',\n 200: '#e5e7eb',\n 300: '#d1d5db',\n 400: '#9ca3af',\n 500: '#6b7280',\n 600: '#4b5563',\n 700: '#374151',\n 800: '#1f2937',\n 900: '#111827',\n 950: '#030712'\n },\n zinc: {\n 50: '#fafafa',\n 100: '#f4f4f5',\n 200: '#e4e4e7',\n 300: '#d4d4d8',\n 400: '#a1a1aa',\n 500: '#71717a',\n 600: '#52525b',\n 700: '#3f3f46',\n 800: '#27272a',\n 900: '#18181b',\n 950: '#09090b'\n },\n neutral: {\n 50: '#fafafa',\n 100: '#f5f5f5',\n 200: '#e5e5e5',\n 300: '#d4d4d4',\n 400: '#a3a3a3',\n 500: '#737373',\n 600: '#525252',\n 700: '#404040',\n 800: '#262626',\n 900: '#171717',\n 950: '#0a0a0a'\n },\n stone: {\n 50: '#fafaf9',\n 100: '#f5f5f4',\n 200: '#e7e5e4',\n 300: '#d6d3d1',\n 400: '#a8a29e',\n 500: '#78716c',\n 600: '#57534e',\n 700: '#44403c',\n 800: '#292524',\n 900: '#1c1917',\n 950: '#0c0a09'\n }\n },\n semantic: {\n transitionDuration: '0.2s',\n focusRing: {\n width: '1px',\n style: 'solid',\n color: '{primary.color}',\n offset: '2px',\n shadow: 'none'\n },\n disabledOpacity: '0.6',\n iconSize: '1rem',\n anchorGutter: '2px',\n primary: {\n 50: '{emerald.50}',\n 100: '{emerald.100}',\n 200: '{emerald.200}',\n 300: '{emerald.300}',\n 400: '{emerald.400}',\n 500: '{emerald.500}',\n 600: '{emerald.600}',\n 700: '{emerald.700}',\n 800: '{emerald.800}',\n 900: '{emerald.900}',\n 950: '{emerald.950}'\n },\n formField: {\n paddingX: '0.75rem',\n paddingY: '0.5rem',\n borderRadius: '{border.radius.md}',\n focusRing: {\n width: '0',\n style: 'none',\n color: 'transparent',\n offset: '0',\n shadow: 'none'\n },\n transitionDuration: '{transition.duration}'\n },\n list: {\n padding: '0.25rem 0.25rem',\n gap: '2px',\n header: {\n padding: '0.5rem 1rem 0.25rem 1rem'\n },\n option: {\n padding: '0.5rem 0.75rem',\n borderRadius: '{border.radius.sm}'\n },\n optionGroup: {\n padding: '0.5rem 0.75rem',\n fontWeight: '600'\n }\n },\n content: {\n borderRadius: '{border.radius.md}'\n },\n mask: {\n transitionDuration: '0.15s'\n },\n navigation: {\n list: {\n padding: '0.25rem 0.25rem',\n gap: '2px'\n },\n item: {\n padding: '0.5rem 0.75rem',\n borderRadius: '{border.radius.sm}',\n gap: '0.5rem'\n },\n submenuLabel: {\n padding: '0.5rem 0.75rem',\n fontWeight: '600'\n },\n submenuIcon: {\n size: '0.875rem'\n }\n },\n overlay: {\n select: {\n borderRadius: '{border.radius.md}',\n shadow: '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)'\n },\n popover: {\n borderRadius: '{border.radius.md}',\n padding: '0.75rem',\n shadow: '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)'\n },\n modal: {\n borderRadius: '{border.radius.xl}',\n padding: '1.25rem',\n shadow: '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1)'\n },\n navigation: {\n shadow: '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)'\n }\n },\n colorScheme: {\n light: {\n surface: {\n 0: '#ffffff',\n 50: '{slate.50}',\n 100: '{slate.100}',\n 200: '{slate.200}',\n 300: '{slate.300}',\n 400: '{slate.400}',\n 500: '{slate.500}',\n 600: '{slate.600}',\n 700: '{slate.700}',\n 800: '{slate.800}',\n 900: '{slate.900}',\n 950: '{slate.950}'\n },\n primary: {\n color: '{primary.500}',\n contrastColor: '#ffffff',\n hoverColor: '{primary.600}',\n activeColor: '{primary.700}'\n },\n highlight: {\n background: '{primary.50}',\n focusBackground: '{primary.100}',\n color: '{primary.700}',\n focusColor: '{primary.800}'\n },\n mask: {\n background: 'rgba(0,0,0,0.4)',\n color: '{surface.200}'\n },\n formField: {\n background: '{surface.0}',\n disabledBackground: '{surface.200}',\n filledBackground: '{surface.50}',\n filledFocusBackground: '{surface.50}',\n borderColor: '{surface.300}',\n hoverBorderColor: '{surface.400}',\n focusBorderColor: '{primary.color}',\n invalidBorderColor: '{red.400}',\n color: '{surface.700}',\n disabledColor: '{surface.500}',\n placeholderColor: '{surface.500}',\n floatLabelColor: '{surface.500}',\n floatLabelFocusColor: '{surface.500}',\n floatLabelInvalidColor: '{red.400}',\n iconColor: '{surface.400}',\n shadow: '0 0 #0000, 0 0 #0000, 0 1px 2px 0 rgba(18, 18, 23, 0.05)'\n },\n text: {\n color: '{surface.700}',\n hoverColor: '{surface.800}',\n mutedColor: '{surface.500}',\n hoverMutedColor: '{surface.600}'\n },\n content: {\n background: '{surface.0}',\n hoverBackground: '{surface.100}',\n borderColor: '{surface.200}',\n color: '{text.color}',\n hoverColor: '{text.hover.color}'\n },\n overlay: {\n select: {\n background: '{surface.0}',\n borderColor: '{surface.200}',\n color: '{text.color}'\n },\n popover: {\n background: '{surface.0}',\n borderColor: '{surface.200}',\n color: '{text.color}'\n },\n modal: {\n background: '{surface.0}',\n borderColor: '{surface.200}',\n color: '{text.color}'\n }\n },\n list: {\n option: {\n focusBackground: '{surface.100}',\n selectedBackground: '{highlight.background}',\n selectedFocusBackground: '{highlight.focus.background}',\n color: '{text.color}',\n focusColor: '{text.hover.color}',\n selectedColor: '{highlight.color}',\n selectedFocusColor: '{highlight.focus.color}',\n icon: {\n color: '{surface.400}',\n focusColor: '{surface.500}'\n }\n },\n optionGroup: {\n background: 'transparent',\n color: '{text.muted.color}'\n }\n },\n navigation: {\n item: {\n focusBackground: '{surface.100}',\n activeBackground: '{surface.100}',\n color: '{text.color}',\n focusColor: '{text.hover.color}',\n activeColor: '{text.hover.color}',\n icon: {\n color: '{surface.400}',\n focusColor: '{surface.500}',\n activeColor: '{surface.500}'\n }\n },\n submenuLabel: {\n background: 'transparent',\n color: '{text.muted.color}'\n },\n submenuIcon: {\n color: '{surface.400}',\n focusColor: '{surface.500}',\n activeColor: '{surface.500}'\n }\n }\n },\n dark: {\n surface: {\n 0: '#ffffff',\n 50: '{zinc.50}',\n 100: '{zinc.100}',\n 200: '{zinc.200}',\n 300: '{zinc.300}',\n 400: '{zinc.400}',\n 500: '{zinc.500}',\n 600: '{zinc.600}',\n 700: '{zinc.700}',\n 800: '{zinc.800}',\n 900: '{zinc.900}',\n 950: '{zinc.950}'\n },\n primary: {\n color: '{primary.400}',\n contrastColor: '{surface.900}',\n hoverColor: '{primary.300}',\n activeColor: '{primary.200}'\n },\n highlight: {\n background: 'color-mix(in srgb, {primary.400}, transparent 84%)',\n focusBackground: 'color-mix(in srgb, {primary.400}, transparent 76%)',\n color: 'rgba(255,255,255,.87)',\n focusColor: 'rgba(255,255,255,.87)'\n },\n mask: {\n background: 'rgba(0,0,0,0.6)',\n color: '{surface.200}'\n },\n formField: {\n background: '{surface.950}',\n disabledBackground: '{surface.700}',\n filledBackground: '{surface.800}',\n filledFocusBackground: '{surface.800}',\n borderColor: '{surface.700}',\n hoverBorderColor: '{surface.600}',\n focusBorderColor: '{primary.color}',\n invalidBorderColor: '{red.300}',\n color: '{surface.0}',\n disabledColor: '{surface.400}',\n placeholderColor: '{surface.400}',\n floatLabelColor: '{surface.400}',\n floatLabelFocusColor: '{surface.400}',\n floatLabelInvalidColor: '{red.300}',\n iconColor: '{surface.400}',\n shadow: '0 0 #0000, 0 0 #0000, 0 1px 2px 0 rgba(18, 18, 23, 0.05)'\n },\n text: {\n color: '{surface.0}',\n hoverColor: '{surface.0}',\n mutedColor: '{surface.400}',\n hoverMutedColor: '{surface.300}'\n },\n content: {\n background: '{surface.900}',\n hoverBackground: '{surface.800}',\n borderColor: '{surface.700}',\n color: '{text.color}',\n hoverColor: '{text.hover.color}'\n },\n overlay: {\n select: {\n background: '{surface.900}',\n borderColor: '{surface.700}',\n color: '{text.color}'\n },\n popover: {\n background: '{surface.900}',\n borderColor: '{surface.700}',\n color: '{text.color}'\n },\n modal: {\n background: '{surface.900}',\n borderColor: '{surface.700}',\n color: '{text.color}'\n }\n },\n list: {\n option: {\n focusBackground: '{surface.800}',\n selectedBackground: '{highlight.background}',\n selectedFocusBackground: '{highlight.focus.background}',\n color: '{text.color}',\n focusColor: '{text.hover.color}',\n selectedColor: '{highlight.color}',\n selectedFocusColor: '{highlight.focus.color}',\n icon: {\n color: '{surface.500}',\n focusColor: '{surface.400}'\n }\n },\n optionGroup: {\n background: 'transparent',\n color: '{text.muted.color}'\n }\n },\n navigation: {\n item: {\n focusBackground: '{surface.800}',\n activeBackground: '{surface.800}',\n color: '{text.color}',\n focusColor: '{text.hover.color}',\n activeColor: '{text.hover.color}',\n icon: {\n color: '{surface.500}',\n focusColor: '{surface.400}',\n activeColor: '{surface.400}'\n }\n },\n submenuLabel: {\n background: 'transparent',\n color: '{text.muted.color}'\n },\n submenuIcon: {\n color: '{surface.500}',\n focusColor: '{surface.400}',\n activeColor: '{surface.400}'\n }\n }\n }\n }\n },\n components: {\n accordion: accordion,\n autocomplete: autocomplete,\n avatar: avatar,\n badge: badge,\n blockui: blockui,\n breadcrumb: breadcrumb,\n button: button,\n datepicker: datepicker,\n card: card,\n carousel: carousel,\n cascadeselect: cascadeselect,\n checkbox: checkbox,\n chip: chip,\n colorpicker: colorpicker,\n confirmdialog: confirmdialog,\n confirmpopup: confirmpopup,\n contextmenu: contextmenu,\n dataview: dataview,\n datatable: datatable,\n dialog: dialog,\n divider: divider,\n dock: dock,\n drawer: drawer,\n editor: editor,\n fieldset: fieldset,\n fileupload: fileupload,\n floatlabel: floatlabel,\n galleria: galleria,\n iconfield: iconfield,\n image: image,\n inlinemessage: inlinemessage,\n inplace: inplace,\n inputchips: inputchips,\n inputgroup: inputgroup,\n inputnumber: inputnumber,\n inputtext: inputtext,\n knob: knob,\n listbox: listbox,\n megamenu: megamenu,\n menu: menu,\n menubar: menubar,\n message: message,\n metergroup: metergroup,\n multiselect: multiselect,\n orderlist: orderlist,\n organizationchart: organizationchart,\n overlaybadge: overlaybadge,\n popover: popover,\n paginator: paginator,\n password: password,\n panel: panel,\n panelmenu: panelmenu,\n picklist: picklist,\n progressbar: progressbar,\n progressspinner: progressspinner,\n radiobutton: radiobutton,\n rating: rating,\n scrollpanel: scrollpanel,\n select: select,\n selectbutton: selectbutton,\n skeleton: skeleton,\n slider: slider,\n speeddial: speeddial,\n splitter: splitter,\n splitbutton: splitbutton,\n stepper: stepper,\n steps: steps,\n tabmenu: tabmenu,\n tabs: tabs,\n tabview: tabview,\n textarea: textarea,\n tieredmenu: tieredmenu,\n tag: tag,\n terminal: terminal,\n timeline: timeline,\n togglebutton: togglebutton,\n toggleswitch: toggleswitch,\n tree: tree,\n treeselect: treeselect,\n treetable: treetable,\n toast: toast,\n toolbar: toolbar,\n virtualscroller: virtualscroller\n },\n directives: {\n tooltip: tooltip,\n ripple: ripple\n }\n};\n\nexport { index as default };\n//# sourceMappingURL=index.mjs.map\n","/**\n* @vue/shared v3.4.31\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, expectsLowerCase) {\n const set = new Set(str.split(\",\"));\n return expectsLowerCase ? (val) => set.has(val.toLowerCase()) : (val) => set.has(val);\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((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\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((str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\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}\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 \"HOISTED\": -1,\n \"-1\": \"HOISTED\",\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\";\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 let ret = \"\";\n if (!styles || isString(styles)) {\n return ret;\n }\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);\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 = \""\";\n break;\n case 38:\n escaped = \"&\";\n break;\n case 39:\n escaped = \"'\";\n break;\n case 60:\n escaped = \"<\";\n break;\n case 62:\n escaped = \">\";\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 = /^-?>||--!>| 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, def, escapeHtml, escapeHtmlComment, extend, genPropsAccessExp, generateCodeFrame, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, 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.4.31\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { NOOP, extend, isArray, isSymbol, isMap, isIntegerKey, hasOwn, hasChanged, isObject, makeMap, capitalize, toRawType, def, isFunction } 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.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 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 let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\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 this._active = false;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction recordEffectScope(effect, scope = activeEffectScope) {\n if (scope && scope.active) {\n scope.effects.push(effect);\n }\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\n\nlet activeEffect;\nclass ReactiveEffect {\n constructor(fn, trigger, scheduler, scope) {\n this.fn = fn;\n this.trigger = trigger;\n this.scheduler = scheduler;\n this.active = true;\n this.deps = [];\n /**\n * @internal\n */\n this._dirtyLevel = 4;\n /**\n * @internal\n */\n this._trackId = 0;\n /**\n * @internal\n */\n this._runnings = 0;\n /**\n * @internal\n */\n this._shouldSchedule = false;\n /**\n * @internal\n */\n this._depsLength = 0;\n recordEffectScope(this, scope);\n }\n get dirty() {\n if (this._dirtyLevel === 2 || this._dirtyLevel === 3) {\n this._dirtyLevel = 1;\n pauseTracking();\n for (let i = 0; i < this._depsLength; i++) {\n const dep = this.deps[i];\n if (dep.computed) {\n triggerComputed(dep.computed);\n if (this._dirtyLevel >= 4) {\n break;\n }\n }\n }\n if (this._dirtyLevel === 1) {\n this._dirtyLevel = 0;\n }\n resetTracking();\n }\n return this._dirtyLevel >= 4;\n }\n set dirty(v) {\n this._dirtyLevel = v ? 4 : 0;\n }\n run() {\n this._dirtyLevel = 0;\n if (!this.active) {\n return this.fn();\n }\n let lastShouldTrack = shouldTrack;\n let lastEffect = activeEffect;\n try {\n shouldTrack = true;\n activeEffect = this;\n this._runnings++;\n preCleanupEffect(this);\n return this.fn();\n } finally {\n postCleanupEffect(this);\n this._runnings--;\n activeEffect = lastEffect;\n shouldTrack = lastShouldTrack;\n }\n }\n stop() {\n if (this.active) {\n preCleanupEffect(this);\n postCleanupEffect(this);\n this.onStop && this.onStop();\n this.active = false;\n }\n }\n}\nfunction triggerComputed(computed) {\n return computed.value;\n}\nfunction preCleanupEffect(effect2) {\n effect2._trackId++;\n effect2._depsLength = 0;\n}\nfunction postCleanupEffect(effect2) {\n if (effect2.deps.length > effect2._depsLength) {\n for (let i = effect2._depsLength; i < effect2.deps.length; i++) {\n cleanupDepEffect(effect2.deps[i], effect2);\n }\n effect2.deps.length = effect2._depsLength;\n }\n}\nfunction cleanupDepEffect(dep, effect2) {\n const trackId = dep.get(effect2);\n if (trackId !== void 0 && effect2._trackId !== trackId) {\n dep.delete(effect2);\n if (dep.size === 0) {\n dep.cleanup();\n }\n }\n}\nfunction effect(fn, options) {\n if (fn.effect instanceof ReactiveEffect) {\n fn = fn.effect.fn;\n }\n const _effect = new ReactiveEffect(fn, NOOP, () => {\n if (_effect.dirty) {\n _effect.run();\n }\n });\n if (options) {\n extend(_effect, options);\n if (options.scope) recordEffectScope(_effect, options.scope);\n }\n if (!options || !options.lazy) {\n _effect.run();\n }\n const runner = _effect.run.bind(_effect);\n runner.effect = _effect;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nlet pauseScheduleStack = 0;\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 pauseScheduling() {\n pauseScheduleStack++;\n}\nfunction resetScheduling() {\n pauseScheduleStack--;\n while (!pauseScheduleStack && queueEffectSchedulers.length) {\n queueEffectSchedulers.shift()();\n }\n}\nfunction trackEffect(effect2, dep, debuggerEventExtraInfo) {\n var _a;\n if (dep.get(effect2) !== effect2._trackId) {\n dep.set(effect2, effect2._trackId);\n const oldDep = effect2.deps[effect2._depsLength];\n if (oldDep !== dep) {\n if (oldDep) {\n cleanupDepEffect(oldDep, effect2);\n }\n effect2.deps[effect2._depsLength++] = dep;\n } else {\n effect2._depsLength++;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n (_a = effect2.onTrack) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));\n }\n }\n}\nconst queueEffectSchedulers = [];\nfunction triggerEffects(dep, dirtyLevel, debuggerEventExtraInfo) {\n var _a;\n pauseScheduling();\n for (const effect2 of dep.keys()) {\n let tracking;\n if (effect2._dirtyLevel < dirtyLevel && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {\n effect2._shouldSchedule || (effect2._shouldSchedule = effect2._dirtyLevel === 0);\n effect2._dirtyLevel = dirtyLevel;\n }\n if (effect2._shouldSchedule && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n (_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));\n }\n effect2.trigger();\n if ((!effect2._runnings || effect2.allowRecurse) && effect2._dirtyLevel !== 2) {\n effect2._shouldSchedule = false;\n if (effect2.scheduler) {\n queueEffectSchedulers.push(effect2.scheduler);\n }\n }\n }\n }\n resetScheduling();\n}\n\nconst createDep = (cleanup, computed) => {\n const dep = /* @__PURE__ */ new Map();\n dep.cleanup = cleanup;\n dep.computed = computed;\n return dep;\n};\n\nconst targetMap = /* @__PURE__ */ new WeakMap();\nconst ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"iterate\" : \"\");\nconst MAP_KEY_ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"Map key iterate\" : \"\");\nfunction track(target, type, key) {\n if (shouldTrack && activeEffect) {\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 = createDep(() => depsMap.delete(key)));\n }\n trackEffect(\n activeEffect,\n dep,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target,\n type,\n key\n } : void 0\n );\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n return;\n }\n let deps = [];\n if (type === \"clear\") {\n deps = [...depsMap.values()];\n } else if (key === \"length\" && isArray(target)) {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || !isSymbol(key2) && key2 >= newLength) {\n deps.push(dep);\n }\n });\n } else {\n if (key !== void 0) {\n deps.push(depsMap.get(key));\n }\n switch (type) {\n case \"add\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isIntegerKey(key)) {\n deps.push(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n pauseScheduling();\n for (const dep of deps) {\n if (dep) {\n triggerEffects(\n dep,\n 4,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target,\n type,\n key,\n newValue,\n oldValue,\n oldTarget\n } : void 0\n );\n }\n }\n resetScheduling();\n}\nfunction getDepFromReactive(object, key) {\n const depsMap = targetMap.get(object);\n return depsMap && depsMap.get(key);\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);\nconst arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();\nfunction createArrayInstrumentations() {\n const instrumentations = {};\n [\"includes\", \"indexOf\", \"lastIndexOf\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n const arr = toRaw(this);\n for (let i = 0, l = this.length; i < l; i++) {\n track(arr, \"get\", i + \"\");\n }\n const res = arr[key](...args);\n if (res === -1 || res === false) {\n return arr[key](...args.map(toRaw));\n } else {\n return res;\n }\n };\n });\n [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n pauseTracking();\n pauseScheduling();\n const res = toRaw(this)[key].apply(this, args);\n resetScheduling();\n resetTracking();\n return res;\n };\n });\n return instrumentations;\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 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 reciever 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 if (targetIsArray && hasOwn(arrayInstrumentations, key)) {\n return Reflect.get(arrayInstrumentations, key, receiver);\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(target, key, receiver);\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(target, key, value, receiver);\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(\n true\n);\nconst shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction get(target, key, isReadonly = false, isShallow = false) {\n target = target[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"get\", key);\n }\n track(rawTarget, \"get\", rawKey);\n }\n const { has: has2 } = getProto(rawTarget);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n if (has2.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has2.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n}\nfunction has(key, isReadonly = false) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\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}\nfunction size(target, isReadonly = false) {\n target = target[\"__v_raw\"];\n !isReadonly && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return Reflect.get(target, \"size\", target);\n}\nfunction add(value) {\n value = toRaw(value);\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}\nfunction set(key, value) {\n value = toRaw(value);\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2.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}\nfunction deleteEntry(key) {\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2 ? get2.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}\nfunction 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(target, \"clear\", void 0, void 0, oldTarget);\n }\n return result;\n}\nfunction createForEach(isReadonly, isShallow) {\n return function forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n };\n}\nfunction createIterableMethod(method, isReadonly, isShallow) {\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 = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && 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() {\n const mutableInstrumentations2 = {\n get(key) {\n return get(this, key);\n },\n get size() {\n return size(this);\n },\n has,\n add,\n set,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, false)\n };\n const shallowInstrumentations2 = {\n get(key) {\n return get(this, key, false, true);\n },\n get size() {\n return size(this);\n },\n has,\n add,\n set,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, true)\n };\n const readonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, false)\n };\n const shallowReadonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, true)\n };\n const iteratorMethods = [\n \"keys\",\n \"values\",\n \"entries\",\n Symbol.iterator\n ];\n iteratorMethods.forEach((method) => {\n mutableInstrumentations2[method] = createIterableMethod(method, false, false);\n readonlyInstrumentations2[method] = createIterableMethod(method, true, false);\n shallowInstrumentations2[method] = createIterableMethod(method, false, true);\n shallowReadonlyInstrumentations2[method] = createIterableMethod(\n method,\n true,\n true\n );\n });\n return [\n mutableInstrumentations2,\n readonlyInstrumentations2,\n shallowInstrumentations2,\n shallowReadonlyInstrumentations2\n ];\n}\nconst [\n mutableInstrumentations,\n readonlyInstrumentations,\n shallowInstrumentations,\n shallowReadonlyInstrumentations\n] = /* @__PURE__ */ createInstrumentations();\nfunction createInstrumentationGetter(isReadonly, shallow) {\n const instrumentations = shallow ? isReadonly ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly ? readonlyInstrumentations : mutableInstrumentations;\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly;\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, has2, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has2.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 (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\nconst COMPUTED_SIDE_EFFECT_WARN = `Computed is still dirty after getter evaluation, likely because a computed is mutating its own dependency in its getter. State mutations in computed getters should be avoided. Check the docs for more details: https://vuejs.org/guide/essentials/computed.html#getters-should-be-side-effect-free`;\nclass ComputedRefImpl {\n constructor(getter, _setter, isReadonly, isSSR) {\n this.getter = getter;\n this._setter = _setter;\n this.dep = void 0;\n this.__v_isRef = true;\n this[\"__v_isReadonly\"] = false;\n this.effect = new ReactiveEffect(\n () => getter(this._value),\n () => triggerRefValue(\n this,\n this.effect._dirtyLevel === 2 ? 2 : 3\n )\n );\n this.effect.computed = this;\n this.effect.active = this._cacheable = !isSSR;\n this[\"__v_isReadonly\"] = isReadonly;\n }\n get value() {\n const self = toRaw(this);\n if ((!self._cacheable || self.effect.dirty) && hasChanged(self._value, self._value = self.effect.run())) {\n triggerRefValue(self, 4);\n }\n trackRefValue(self);\n if (self.effect._dirtyLevel >= 2) {\n if (!!(process.env.NODE_ENV !== \"production\") && this._warnRecursive) {\n warn(COMPUTED_SIDE_EFFECT_WARN, `\n\ngetter: `, this.getter);\n }\n triggerRefValue(self, 2);\n }\n return self._value;\n }\n set value(newValue) {\n this._setter(newValue);\n }\n // #region polyfill _dirty for backward compatibility third party code for Vue <= 3.3.x\n get _dirty() {\n return this.effect.dirty;\n }\n set _dirty(v) {\n this.effect.dirty = v;\n }\n // #endregion\n}\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n const onlyGetter = isFunction(getterOrOptions);\n if (onlyGetter) {\n getter = getterOrOptions;\n setter = !!(process.env.NODE_ENV !== \"production\") ? () => {\n warn(\"Write operation failed: computed value is readonly\");\n } : NOOP;\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);\n if (!!(process.env.NODE_ENV !== \"production\") && debugOptions && !isSSR) {\n cRef.effect.onTrack = debugOptions.onTrack;\n cRef.effect.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nfunction trackRefValue(ref2) {\n var _a;\n if (shouldTrack && activeEffect) {\n ref2 = toRaw(ref2);\n trackEffect(\n activeEffect,\n (_a = ref2.dep) != null ? _a : ref2.dep = createDep(\n () => ref2.dep = void 0,\n ref2 instanceof ComputedRefImpl ? ref2 : void 0\n ),\n !!(process.env.NODE_ENV !== \"production\") ? {\n target: ref2,\n type: \"get\",\n key: \"value\"\n } : void 0\n );\n }\n}\nfunction triggerRefValue(ref2, dirtyLevel = 4, newVal, oldVal) {\n ref2 = toRaw(ref2);\n const dep = ref2.dep;\n if (dep) {\n triggerEffects(\n dep,\n dirtyLevel,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target: ref2,\n type: \"set\",\n key: \"value\",\n newValue: newVal,\n oldValue: oldVal\n } : void 0\n );\n }\n}\nfunction isRef(r) {\n return !!(r && r.__v_isRef === true);\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, __v_isShallow) {\n this.__v_isShallow = __v_isShallow;\n this.dep = void 0;\n this.__v_isRef = true;\n this._rawValue = __v_isShallow ? value : toRaw(value);\n this._value = __v_isShallow ? value : toReactive(value);\n }\n get value() {\n trackRefValue(this);\n return this._value;\n }\n set value(newVal) {\n const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal);\n newVal = useDirectValue ? newVal : toRaw(newVal);\n if (hasChanged(newVal, this._rawValue)) {\n const oldVal = this._rawValue;\n this._rawValue = newVal;\n this._value = useDirectValue ? newVal : toReactive(newVal);\n triggerRefValue(this, 4, newVal, oldVal);\n }\n }\n}\nfunction triggerRef(ref2) {\n triggerRefValue(ref2, 4, !!(process.env.NODE_ENV !== \"production\") ? ref2.value : void 0);\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) => 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.dep = void 0;\n this.__v_isRef = true;\n const { get, set } = factory(\n () => trackRefValue(this),\n () => triggerRefValue(this)\n );\n this._get = get;\n this._set = set;\n }\n get value() {\n return 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 }\n get value() {\n const val = this._object[this._key];\n return 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 }\n get value() {\n return 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\nconst deferredComputed = computed;\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};\n\nexport { EffectScope, ITERATE_KEY, ReactiveEffect, ReactiveFlags, TrackOpTypes, TriggerOpTypes, computed, customRef, deferredComputed, effect, effectScope, enableTracking, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, pauseScheduling, pauseTracking, proxyRefs, reactive, readonly, ref, resetScheduling, resetTracking, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, track, trigger, triggerRef, unref };\n","/**\n* @vue/runtime-core v3.4.31\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { pauseTracking, resetTracking, isRef, toRaw, shallowReadonly, ref, track, reactive, shallowReactive, trigger, ReactiveEffect, isShallow, isReactive, getCurrentScope, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1, customRef, isReadonly } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, TrackOpTypes, TriggerOpTypes, customRef, effect, effectScope, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, isPromise, isArray, NOOP, getGlobalThis, extend, EMPTY_OBJ, toHandlerKey, looseToNumber, hyphenate, camelize, isObject, isOn, hasOwn, isModelListener, capitalize, toNumber, isBuiltInDirective, isGloballyAllowed, NO, isReservedProp, EMPTY_ARR, toRawType, makeMap, def, remove, normalizeClass, stringifyStyle, normalizeStyle, isKnownSvgAttr, isBooleanAttr, isKnownHtmlAttr, includeBooleanAttr, isRenderableAttrValue, invokeArrayFns, hasChanged, isSet, isMap, isPlainObject, isRegExp } 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}\nfunction warn$1(msg, ...args) {\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}\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 \"WATCH_GETTER\": 2,\n \"2\": \"WATCH_GETTER\",\n \"WATCH_CALLBACK\": 3,\n \"3\": \"WATCH_CALLBACK\",\n \"WATCH_CLEANUP\": 4,\n \"4\": \"WATCH_CLEANUP\",\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};\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. This is likely a Vue internals bug. Please open an issue at https://github.com/vuejs/core .\"\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 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 const appErrorHandler = instance.appContext.config.errorHandler;\n if (appErrorHandler) {\n pauseTracking();\n callWithErrorHandling(\n appErrorHandler,\n null,\n 10,\n [err, exposedInstance, errorInfo]\n );\n resetTracking();\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev);\n}\nfunction logError(err, type, contextVNode, throwInDev = true) {\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 {\n console.error(err);\n }\n}\n\nlet isFlushing = false;\nlet isFlushPending = false;\nconst queue = [];\nlet flushIndex = 0;\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.pre) {\n start = middle + 1;\n } else {\n end = middle;\n }\n }\n return start;\n}\nfunction queueJob(job) {\n if (!queue.length || !queue.includes(\n job,\n isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex\n )) {\n if (job.id == null) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(job.id), 0, job);\n }\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!isFlushing && !isFlushPending) {\n isFlushPending = true;\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction invalidateJob(job) {\n const i = queue.indexOf(job);\n if (i > flushIndex) {\n queue.splice(i, 1);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (!activePostFlushCbs || !activePostFlushCbs.includes(\n cb,\n cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex\n )) {\n pendingPostFlushCbs.push(cb);\n }\n } else {\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(instance, seen, i = isFlushing ? flushIndex + 1 : 0) {\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.pre) {\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 cb();\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.active !== false) cb();\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? Infinity : job.id;\nconst comparator = (a, b) => {\n const diff = getId(a) - getId(b);\n if (diff === 0) {\n if (a.pre && !b.pre) return -1;\n if (b.pre && !a.pre) return 1;\n }\n return diff;\n};\nfunction flushJobs(seen) {\n isFlushPending = false;\n isFlushing = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n queue.sort(comparator);\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.active !== false) {\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n continue;\n }\n callWithErrorHandling(job, null, 14);\n }\n }\n } finally {\n flushIndex = 0;\n queue.length = 0;\n flushPostFlushCbs(seen);\n isFlushing = false;\n currentFlushPromise = null;\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n if (!seen.has(fn)) {\n seen.set(fn, 1);\n } else {\n const count = seen.get(fn);\n if (count > RECURSION_LIMIT) {\n const instance = fn.ownerInstance;\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 } else {\n seen.set(fn, count + 1);\n }\n }\n}\n\nlet isHmrUpdating = false;\nconst hmrDirtyComponents = /* @__PURE__ */ new Set();\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.effect.dirty = 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 (const instance of instances) {\n const oldComp = normalizeClassComponent(instance.type);\n if (!hmrDirtyComponents.has(oldComp)) {\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n hmrDirtyComponents.add(oldComp);\n }\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 hmrDirtyComponents.add(oldComp);\n instance.ceReload(newComp.styles);\n hmrDirtyComponents.delete(oldComp);\n } else if (instance.parent) {\n instance.parent.effect.dirty = true;\n queueJob(() => {\n instance.parent.update();\n hmrDirtyComponents.delete(oldComp);\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 }\n queuePostFlushCb(() => {\n for (const instance of instances) {\n hmrDirtyComponents.delete(\n normalizeClassComponent(instance.type)\n );\n }\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(\n \"component:added\" /* COMPONENT_ADDED */\n);\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(\n \"perf:start\" /* PERFORMANCE_START */\n);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:end\" /* PERFORMANCE_END */\n);\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\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(event) in propsOptions)) {\n warn$1(\n `Component emitted event \"${event}\" but it is neither declared in the emits option nor as an \"${toHandlerKey(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 modelArg = isModelListener && event.slice(7);\n if (modelArg && modelArg in props) {\n const modifiersKey = `${modelArg === \"modelValue\" ? \"model\" : modelArg}Modifiers`;\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\n if (trim) {\n args = rawArgs.map((a) => isString(a) ? a.trim() : a);\n }\n if (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 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\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 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 renders non-element root node that cannot be animated.`\n );\n }\n root.transition = 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 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\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 ` 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) !== suspense.hiddenContainer) {\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(` 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\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(\"bu\");\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\"bum\");\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\"sp\");\nconst onRenderTriggered = createHook(\n \"rtg\"\n);\nconst onRenderTracked = createHook(\n \"rtc\"\n);\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\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\nfunction renderList(source, renderItem, cache, index) {\n let ret;\n const cached = cache && cache[index];\n if (isArray(source) || isString(source)) {\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(source[i], i, void 0, cached && cached[i]);\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\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineComponent(options, extraOptions) {\n return isFunction(options) ? (\n // #8326: 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\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 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 get __asyncResolved() {\n return resolvedComp;\n },\n setup() {\n const instance = currentInstance;\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.effect.dirty = true;\n queueJob(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\nfunction renderSlot(slots, name, props = {}, fallback, noSlotted) {\n if (currentRenderingInstance.isCE || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.isCE) {\n if (name !== \"default\") props.name = name;\n return createVNode(\"slot\", props, fallback && fallback());\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 rendered = createBlock(\n Fragment,\n {\n key: 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 || `_${name}`\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 $emit: (i) => i.emit,\n $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,\n $forceUpdate: (i) => i.f || (i.f = () => {\n i.effect.dirty = true;\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 \n\n\n","export default {\n app_title: 'ComfyUI',\n app_version: __COMFYUI_FRONTEND_VERSION__\n}\n","/*!\n * shared v9.13.1\n * (c) 2024 kazuya kawaguchi\n * Released under the MIT License.\n */\n/**\n * Original Utilities\n * written by kazuya kawaguchi\n */\nconst inBrowser = typeof window !== 'undefined';\nlet mark;\nlet measure;\nif ((process.env.NODE_ENV !== 'production')) {\n const perf = inBrowser && window.performance;\n if (perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n // @ts-ignore browser compat\n perf.clearMeasures) {\n mark = (tag) => {\n perf.mark(tag);\n };\n measure = (name, startTag, endTag) => {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n };\n }\n}\nconst RE_ARGS = /\\{([0-9a-zA-Z]+)\\}/g;\n/* eslint-disable */\nfunction format(message, ...args) {\n if (args.length === 1 && isObject(args[0])) {\n args = args[0];\n }\n if (!args || !args.hasOwnProperty) {\n args = {};\n }\n return message.replace(RE_ARGS, (match, identifier) => {\n return args.hasOwnProperty(identifier) ? args[identifier] : '';\n });\n}\nconst makeSymbol = (name, shareable = false) => !shareable ? Symbol(name) : Symbol.for(name);\nconst generateFormatCacheKey = (locale, key, source) => friendlyJSONstringify({ l: locale, k: key, s: source });\nconst friendlyJSONstringify = (json) => JSON.stringify(json)\n .replace(/\\u2028/g, '\\\\u2028')\n .replace(/\\u2029/g, '\\\\u2029')\n .replace(/\\u0027/g, '\\\\u0027');\nconst isNumber = (val) => typeof val === 'number' && isFinite(val);\nconst isDate = (val) => toTypeString(val) === '[object Date]';\nconst isRegExp = (val) => toTypeString(val) === '[object RegExp]';\nconst isEmptyObject = (val) => isPlainObject(val) && Object.keys(val).length === 0;\nconst assign = Object.assign;\nlet _globalThis;\nconst getGlobalThis = () => {\n // prettier-ignore\n return (_globalThis ||\n (_globalThis =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {}));\n};\nfunction escapeHtml(rawText) {\n return rawText\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n}\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn(obj, key) {\n return hasOwnProperty.call(obj, key);\n}\n/* eslint-enable */\n/**\n * Useful Utilities By Evan you\n * Modified by kazuya kawaguchi\n * MIT License\n * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/index.ts\n * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/codeframe.ts\n */\nconst isArray = Array.isArray;\nconst isFunction = (val) => typeof val === 'function';\nconst isString = (val) => typeof val === 'string';\nconst isBoolean = (val) => typeof val === 'boolean';\nconst isSymbol = (val) => typeof val === 'symbol';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst isObject = (val) => val !== null && typeof val === 'object';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst isPromise = (val) => {\n return isObject(val) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst isPlainObject = (val) => {\n if (!isObject(val))\n return false;\n const proto = Object.getPrototypeOf(val);\n return proto === null || proto.constructor === Object;\n};\n// for converting list and named values to displayed strings.\nconst toDisplayString = (val) => {\n return val == null\n ? ''\n : isArray(val) || (isPlainObject(val) && val.toString === objectToString)\n ? JSON.stringify(val, null, 2)\n : String(val);\n};\nfunction join(items, separator = '') {\n return items.reduce((str, item, index) => (index === 0 ? str + item : str + separator + item), '');\n}\nconst RANGE = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n const lines = source.split(/\\r?\\n/);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + 1;\n if (count >= start) {\n for (let j = i - RANGE; j <= i + RANGE || end > count; j++) {\n if (j < 0 || j >= lines.length)\n continue;\n const line = j + 1;\n res.push(`${line}${' '.repeat(3 - String(line).length)}| ${lines[j]}`);\n const lineLength = lines[j].length;\n if (j === i) {\n // push underline\n const pad = start - (count - lineLength) + 1;\n const length = Math.max(1, end > count ? lineLength - pad : end - start);\n res.push(` | ` + ' '.repeat(pad) + '^'.repeat(length));\n }\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 + 1;\n }\n }\n break;\n }\n }\n return res.join('\\n');\n}\nfunction incrementer(code) {\n let current = code;\n return () => ++current;\n}\n\nfunction warn(msg, err) {\n if (typeof console !== 'undefined') {\n console.warn(`[intlify] ` + msg);\n /* istanbul ignore if */\n if (err) {\n console.warn(err.stack);\n }\n }\n}\nconst hasWarned = {};\nfunction warnOnce(msg) {\n if (!hasWarned[msg]) {\n hasWarned[msg] = true;\n warn(msg);\n }\n}\n\n/**\n * Event emitter, forked from the below:\n * - original repository url: https://github.com/developit/mitt\n * - code url: https://github.com/developit/mitt/blob/master/src/index.ts\n * - author: Jason Miller (https://github.com/developit)\n * - license: MIT\n */\n/**\n * Create a event emitter\n *\n * @returns An event emitter\n */\nfunction createEmitter() {\n const events = new Map();\n const emitter = {\n events,\n on(event, handler) {\n const handlers = events.get(event);\n const added = handlers && handlers.push(handler);\n if (!added) {\n events.set(event, [handler]);\n }\n },\n off(event, handler) {\n const handlers = events.get(event);\n if (handlers) {\n handlers.splice(handlers.indexOf(handler) >>> 0, 1);\n }\n },\n emit(event, payload) {\n (events.get(event) || [])\n .slice()\n .map(handler => handler(payload));\n (events.get('*') || [])\n .slice()\n .map(handler => handler(event, payload));\n }\n };\n return emitter;\n}\n\nconst isNotObjectOrIsArray = (val) => !isObject(val) || isArray(val);\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nfunction deepCopy(src, des) {\n // src and des should both be objects, and none of them can be a array\n if (isNotObjectOrIsArray(src) || isNotObjectOrIsArray(des)) {\n throw new Error('Invalid value');\n }\n const stack = [{ src, des }];\n while (stack.length) {\n const { src, des } = stack.pop();\n Object.keys(src).forEach(key => {\n if (isNotObjectOrIsArray(src[key]) || isNotObjectOrIsArray(des[key])) {\n // replace with src[key] when:\n // src[key] or des[key] is not an object, or\n // src[key] or des[key] is an array\n des[key] = src[key];\n }\n else {\n // src[key] and des[key] are both objects, merge them\n stack.push({ src: src[key], des: des[key] });\n }\n });\n }\n}\n\nexport { assign, createEmitter, deepCopy, escapeHtml, format, friendlyJSONstringify, generateCodeFrame, generateFormatCacheKey, getGlobalThis, hasOwn, inBrowser, incrementer, isArray, isBoolean, isDate, isEmptyObject, isFunction, isNumber, isObject, isPlainObject, isPromise, isRegExp, isString, isSymbol, join, makeSymbol, mark, measure, objectToString, toDisplayString, toTypeString, warn, warnOnce };\n","/*!\n * message-compiler v9.13.1\n * (c) 2024 kazuya kawaguchi\n * Released under the MIT License.\n */\nconst LOCATION_STUB = {\n start: { line: 1, column: 1, offset: 0 },\n end: { line: 1, column: 1, offset: 0 }\n};\nfunction createPosition(line, column, offset) {\n return { line, column, offset };\n}\nfunction createLocation(start, end, source) {\n const loc = { start, end };\n if (source != null) {\n loc.source = source;\n }\n return loc;\n}\n\n/**\n * Original Utilities\n * written by kazuya kawaguchi\n */\nconst RE_ARGS = /\\{([0-9a-zA-Z]+)\\}/g;\n/* eslint-disable */\nfunction format(message, ...args) {\n if (args.length === 1 && isObject(args[0])) {\n args = args[0];\n }\n if (!args || !args.hasOwnProperty) {\n args = {};\n }\n return message.replace(RE_ARGS, (match, identifier) => {\n return args.hasOwnProperty(identifier) ? args[identifier] : '';\n });\n}\nconst assign = Object.assign;\nconst isString = (val) => typeof val === 'string';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst isObject = (val) => val !== null && typeof val === 'object';\nfunction join(items, separator = '') {\n return items.reduce((str, item, index) => (index === 0 ? str + item : str + separator + item), '');\n}\n\nconst CompileWarnCodes = {\n USE_MODULO_SYNTAX: 1,\n __EXTEND_POINT__: 2\n};\n/** @internal */\nconst warnMessages = {\n [CompileWarnCodes.USE_MODULO_SYNTAX]: `Use modulo before '{{0}}'.`\n};\nfunction createCompileWarn(code, loc, ...args) {\n const msg = format(warnMessages[code] || '', ...(args || [])) ;\n const message = { message: String(msg), code };\n if (loc) {\n message.location = loc;\n }\n return message;\n}\n\nconst CompileErrorCodes = {\n // tokenizer error codes\n EXPECTED_TOKEN: 1,\n INVALID_TOKEN_IN_PLACEHOLDER: 2,\n UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER: 3,\n UNKNOWN_ESCAPE_SEQUENCE: 4,\n INVALID_UNICODE_ESCAPE_SEQUENCE: 5,\n UNBALANCED_CLOSING_BRACE: 6,\n UNTERMINATED_CLOSING_BRACE: 7,\n EMPTY_PLACEHOLDER: 8,\n NOT_ALLOW_NEST_PLACEHOLDER: 9,\n INVALID_LINKED_FORMAT: 10,\n // parser error codes\n MUST_HAVE_MESSAGES_IN_PLURAL: 11,\n UNEXPECTED_EMPTY_LINKED_MODIFIER: 12,\n UNEXPECTED_EMPTY_LINKED_KEY: 13,\n UNEXPECTED_LEXICAL_ANALYSIS: 14,\n // generator error codes\n UNHANDLED_CODEGEN_NODE_TYPE: 15,\n // minifier error codes\n UNHANDLED_MINIFIER_NODE_TYPE: 16,\n // Special value for higher-order compilers to pick up the last code\n // to avoid collision of error codes. This should always be kept as the last\n // item.\n __EXTEND_POINT__: 17\n};\n/** @internal */\nconst errorMessages = {\n // tokenizer error messages\n [CompileErrorCodes.EXPECTED_TOKEN]: `Expected token: '{0}'`,\n [CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER]: `Invalid token in placeholder: '{0}'`,\n [CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]: `Unterminated single quote in placeholder`,\n [CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE]: `Unknown escape sequence: \\\\{0}`,\n [CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE]: `Invalid unicode escape sequence: {0}`,\n [CompileErrorCodes.UNBALANCED_CLOSING_BRACE]: `Unbalanced closing brace`,\n [CompileErrorCodes.UNTERMINATED_CLOSING_BRACE]: `Unterminated closing brace`,\n [CompileErrorCodes.EMPTY_PLACEHOLDER]: `Empty placeholder`,\n [CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER]: `Not allowed nest placeholder`,\n [CompileErrorCodes.INVALID_LINKED_FORMAT]: `Invalid linked format`,\n // parser error messages\n [CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL]: `Plural must have messages`,\n [CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER]: `Unexpected empty linked modifier`,\n [CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY]: `Unexpected empty linked key`,\n [CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS]: `Unexpected lexical analysis in token: '{0}'`,\n // generator error messages\n [CompileErrorCodes.UNHANDLED_CODEGEN_NODE_TYPE]: `unhandled codegen node type: '{0}'`,\n // minimizer error messages\n [CompileErrorCodes.UNHANDLED_MINIFIER_NODE_TYPE]: `unhandled mimifier node type: '{0}'`\n};\nfunction createCompileError(code, loc, options = {}) {\n const { domain, messages, args } = options;\n const msg = format((messages || errorMessages)[code] || '', ...(args || []))\n ;\n const error = new SyntaxError(String(msg));\n error.code = code;\n if (loc) {\n error.location = loc;\n }\n error.domain = domain;\n return error;\n}\n/** @internal */\nfunction defaultOnError(error) {\n throw error;\n}\n\n// eslint-disable-next-line no-useless-escape\nconst RE_HTML_TAG = /<\\/?[\\w\\s=\"/.':;#-\\/]+>/;\nconst detectHtmlTag = (source) => RE_HTML_TAG.test(source);\n\nconst CHAR_SP = ' ';\nconst CHAR_CR = '\\r';\nconst CHAR_LF = '\\n';\nconst CHAR_LS = String.fromCharCode(0x2028);\nconst CHAR_PS = String.fromCharCode(0x2029);\nfunction createScanner(str) {\n const _buf = str;\n let _index = 0;\n let _line = 1;\n let _column = 1;\n let _peekOffset = 0;\n const isCRLF = (index) => _buf[index] === CHAR_CR && _buf[index + 1] === CHAR_LF;\n const isLF = (index) => _buf[index] === CHAR_LF;\n const isPS = (index) => _buf[index] === CHAR_PS;\n const isLS = (index) => _buf[index] === CHAR_LS;\n const isLineEnd = (index) => isCRLF(index) || isLF(index) || isPS(index) || isLS(index);\n const index = () => _index;\n const line = () => _line;\n const column = () => _column;\n const peekOffset = () => _peekOffset;\n const charAt = (offset) => isCRLF(offset) || isPS(offset) || isLS(offset) ? CHAR_LF : _buf[offset];\n const currentChar = () => charAt(_index);\n const currentPeek = () => charAt(_index + _peekOffset);\n function next() {\n _peekOffset = 0;\n if (isLineEnd(_index)) {\n _line++;\n _column = 0;\n }\n if (isCRLF(_index)) {\n _index++;\n }\n _index++;\n _column++;\n return _buf[_index];\n }\n function peek() {\n if (isCRLF(_index + _peekOffset)) {\n _peekOffset++;\n }\n _peekOffset++;\n return _buf[_index + _peekOffset];\n }\n function reset() {\n _index = 0;\n _line = 1;\n _column = 1;\n _peekOffset = 0;\n }\n function resetPeek(offset = 0) {\n _peekOffset = offset;\n }\n function skipToPeek() {\n const target = _index + _peekOffset;\n // eslint-disable-next-line no-unmodified-loop-condition\n while (target !== _index) {\n next();\n }\n _peekOffset = 0;\n }\n return {\n index,\n line,\n column,\n peekOffset,\n charAt,\n currentChar,\n currentPeek,\n next,\n peek,\n reset,\n resetPeek,\n skipToPeek\n };\n}\n\nconst EOF = undefined;\nconst DOT = '.';\nconst LITERAL_DELIMITER = \"'\";\nconst ERROR_DOMAIN$3 = 'tokenizer';\nfunction createTokenizer(source, options = {}) {\n const location = options.location !== false;\n const _scnr = createScanner(source);\n const currentOffset = () => _scnr.index();\n const currentPosition = () => createPosition(_scnr.line(), _scnr.column(), _scnr.index());\n const _initLoc = currentPosition();\n const _initOffset = currentOffset();\n const _context = {\n currentType: 14 /* TokenTypes.EOF */,\n offset: _initOffset,\n startLoc: _initLoc,\n endLoc: _initLoc,\n lastType: 14 /* TokenTypes.EOF */,\n lastOffset: _initOffset,\n lastStartLoc: _initLoc,\n lastEndLoc: _initLoc,\n braceNest: 0,\n inLinked: false,\n text: ''\n };\n const context = () => _context;\n const { onError } = options;\n function emitError(code, pos, offset, ...args) {\n const ctx = context();\n pos.column += offset;\n pos.offset += offset;\n if (onError) {\n const loc = location ? createLocation(ctx.startLoc, pos) : null;\n const err = createCompileError(code, loc, {\n domain: ERROR_DOMAIN$3,\n args\n });\n onError(err);\n }\n }\n function getToken(context, type, value) {\n context.endLoc = currentPosition();\n context.currentType = type;\n const token = { type };\n if (location) {\n token.loc = createLocation(context.startLoc, context.endLoc);\n }\n if (value != null) {\n token.value = value;\n }\n return token;\n }\n const getEndToken = (context) => getToken(context, 14 /* TokenTypes.EOF */);\n function eat(scnr, ch) {\n if (scnr.currentChar() === ch) {\n scnr.next();\n return ch;\n }\n else {\n emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch);\n return '';\n }\n }\n function peekSpaces(scnr) {\n let buf = '';\n while (scnr.currentPeek() === CHAR_SP || scnr.currentPeek() === CHAR_LF) {\n buf += scnr.currentPeek();\n scnr.peek();\n }\n return buf;\n }\n function skipSpaces(scnr) {\n const buf = peekSpaces(scnr);\n scnr.skipToPeek();\n return buf;\n }\n function isIdentifierStart(ch) {\n if (ch === EOF) {\n return false;\n }\n const cc = ch.charCodeAt(0);\n return ((cc >= 97 && cc <= 122) || // a-z\n (cc >= 65 && cc <= 90) || // A-Z\n cc === 95 // _\n );\n }\n function isNumberStart(ch) {\n if (ch === EOF) {\n return false;\n }\n const cc = ch.charCodeAt(0);\n return cc >= 48 && cc <= 57; // 0-9\n }\n function isNamedIdentifierStart(scnr, context) {\n const { currentType } = context;\n if (currentType !== 2 /* TokenTypes.BraceLeft */) {\n return false;\n }\n peekSpaces(scnr);\n const ret = isIdentifierStart(scnr.currentPeek());\n scnr.resetPeek();\n return ret;\n }\n function isListIdentifierStart(scnr, context) {\n const { currentType } = context;\n if (currentType !== 2 /* TokenTypes.BraceLeft */) {\n return false;\n }\n peekSpaces(scnr);\n const ch = scnr.currentPeek() === '-' ? scnr.peek() : scnr.currentPeek();\n const ret = isNumberStart(ch);\n scnr.resetPeek();\n return ret;\n }\n function isLiteralStart(scnr, context) {\n const { currentType } = context;\n if (currentType !== 2 /* TokenTypes.BraceLeft */) {\n return false;\n }\n peekSpaces(scnr);\n const ret = scnr.currentPeek() === LITERAL_DELIMITER;\n scnr.resetPeek();\n return ret;\n }\n function isLinkedDotStart(scnr, context) {\n const { currentType } = context;\n if (currentType !== 8 /* TokenTypes.LinkedAlias */) {\n return false;\n }\n peekSpaces(scnr);\n const ret = scnr.currentPeek() === \".\" /* TokenChars.LinkedDot */;\n scnr.resetPeek();\n return ret;\n }\n function isLinkedModifierStart(scnr, context) {\n const { currentType } = context;\n if (currentType !== 9 /* TokenTypes.LinkedDot */) {\n return false;\n }\n peekSpaces(scnr);\n const ret = isIdentifierStart(scnr.currentPeek());\n scnr.resetPeek();\n return ret;\n }\n function isLinkedDelimiterStart(scnr, context) {\n const { currentType } = context;\n if (!(currentType === 8 /* TokenTypes.LinkedAlias */ ||\n currentType === 12 /* TokenTypes.LinkedModifier */)) {\n return false;\n }\n peekSpaces(scnr);\n const ret = scnr.currentPeek() === \":\" /* TokenChars.LinkedDelimiter */;\n scnr.resetPeek();\n return ret;\n }\n function isLinkedReferStart(scnr, context) {\n const { currentType } = context;\n if (currentType !== 10 /* TokenTypes.LinkedDelimiter */) {\n return false;\n }\n const fn = () => {\n const ch = scnr.currentPeek();\n if (ch === \"{\" /* TokenChars.BraceLeft */) {\n return isIdentifierStart(scnr.peek());\n }\n else if (ch === \"@\" /* TokenChars.LinkedAlias */ ||\n ch === \"%\" /* TokenChars.Modulo */ ||\n ch === \"|\" /* TokenChars.Pipe */ ||\n ch === \":\" /* TokenChars.LinkedDelimiter */ ||\n ch === \".\" /* TokenChars.LinkedDot */ ||\n ch === CHAR_SP ||\n !ch) {\n return false;\n }\n else if (ch === CHAR_LF) {\n scnr.peek();\n return fn();\n }\n else {\n // other characters\n return isTextStart(scnr, false);\n }\n };\n const ret = fn();\n scnr.resetPeek();\n return ret;\n }\n function isPluralStart(scnr) {\n peekSpaces(scnr);\n const ret = scnr.currentPeek() === \"|\" /* TokenChars.Pipe */;\n scnr.resetPeek();\n return ret;\n }\n function detectModuloStart(scnr) {\n const spaces = peekSpaces(scnr);\n const ret = scnr.currentPeek() === \"%\" /* TokenChars.Modulo */ &&\n scnr.peek() === \"{\" /* TokenChars.BraceLeft */;\n scnr.resetPeek();\n return {\n isModulo: ret,\n hasSpace: spaces.length > 0\n };\n }\n function isTextStart(scnr, reset = true) {\n const fn = (hasSpace = false, prev = '', detectModulo = false) => {\n const ch = scnr.currentPeek();\n if (ch === \"{\" /* TokenChars.BraceLeft */) {\n return prev === \"%\" /* TokenChars.Modulo */ ? false : hasSpace;\n }\n else if (ch === \"@\" /* TokenChars.LinkedAlias */ || !ch) {\n return prev === \"%\" /* TokenChars.Modulo */ ? true : hasSpace;\n }\n else if (ch === \"%\" /* TokenChars.Modulo */) {\n scnr.peek();\n return fn(hasSpace, \"%\" /* TokenChars.Modulo */, true);\n }\n else if (ch === \"|\" /* TokenChars.Pipe */) {\n return prev === \"%\" /* TokenChars.Modulo */ || detectModulo\n ? true\n : !(prev === CHAR_SP || prev === CHAR_LF);\n }\n else if (ch === CHAR_SP) {\n scnr.peek();\n return fn(true, CHAR_SP, detectModulo);\n }\n else if (ch === CHAR_LF) {\n scnr.peek();\n return fn(true, CHAR_LF, detectModulo);\n }\n else {\n return true;\n }\n };\n const ret = fn();\n reset && scnr.resetPeek();\n return ret;\n }\n function takeChar(scnr, fn) {\n const ch = scnr.currentChar();\n if (ch === EOF) {\n return EOF;\n }\n if (fn(ch)) {\n scnr.next();\n return ch;\n }\n return null;\n }\n function isIdentifier(ch) {\n const cc = ch.charCodeAt(0);\n return ((cc >= 97 && cc <= 122) || // a-z\n (cc >= 65 && cc <= 90) || // A-Z\n (cc >= 48 && cc <= 57) || // 0-9\n cc === 95 || // _\n cc === 36 // $\n );\n }\n function takeIdentifierChar(scnr) {\n return takeChar(scnr, isIdentifier);\n }\n function isNamedIdentifier(ch) {\n const cc = ch.charCodeAt(0);\n return ((cc >= 97 && cc <= 122) || // a-z\n (cc >= 65 && cc <= 90) || // A-Z\n (cc >= 48 && cc <= 57) || // 0-9\n cc === 95 || // _\n cc === 36 || // $\n cc === 45 // -\n );\n }\n function takeNamedIdentifierChar(scnr) {\n return takeChar(scnr, isNamedIdentifier);\n }\n function isDigit(ch) {\n const cc = ch.charCodeAt(0);\n return cc >= 48 && cc <= 57; // 0-9\n }\n function takeDigit(scnr) {\n return takeChar(scnr, isDigit);\n }\n function isHexDigit(ch) {\n const cc = ch.charCodeAt(0);\n return ((cc >= 48 && cc <= 57) || // 0-9\n (cc >= 65 && cc <= 70) || // A-F\n (cc >= 97 && cc <= 102)); // a-f\n }\n function takeHexDigit(scnr) {\n return takeChar(scnr, isHexDigit);\n }\n function getDigits(scnr) {\n let ch = '';\n let num = '';\n while ((ch = takeDigit(scnr))) {\n num += ch;\n }\n return num;\n }\n function readModulo(scnr) {\n skipSpaces(scnr);\n const ch = scnr.currentChar();\n if (ch !== \"%\" /* TokenChars.Modulo */) {\n emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch);\n }\n scnr.next();\n return \"%\" /* TokenChars.Modulo */;\n }\n function readText(scnr) {\n let buf = '';\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const ch = scnr.currentChar();\n if (ch === \"{\" /* TokenChars.BraceLeft */ ||\n ch === \"}\" /* TokenChars.BraceRight */ ||\n ch === \"@\" /* TokenChars.LinkedAlias */ ||\n ch === \"|\" /* TokenChars.Pipe */ ||\n !ch) {\n break;\n }\n else if (ch === \"%\" /* TokenChars.Modulo */) {\n if (isTextStart(scnr)) {\n buf += ch;\n scnr.next();\n }\n else {\n break;\n }\n }\n else if (ch === CHAR_SP || ch === CHAR_LF) {\n if (isTextStart(scnr)) {\n buf += ch;\n scnr.next();\n }\n else if (isPluralStart(scnr)) {\n break;\n }\n else {\n buf += ch;\n scnr.next();\n }\n }\n else {\n buf += ch;\n scnr.next();\n }\n }\n return buf;\n }\n function readNamedIdentifier(scnr) {\n skipSpaces(scnr);\n let ch = '';\n let name = '';\n while ((ch = takeNamedIdentifierChar(scnr))) {\n name += ch;\n }\n if (scnr.currentChar() === EOF) {\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n }\n return name;\n }\n function readListIdentifier(scnr) {\n skipSpaces(scnr);\n let value = '';\n if (scnr.currentChar() === '-') {\n scnr.next();\n value += `-${getDigits(scnr)}`;\n }\n else {\n value += getDigits(scnr);\n }\n if (scnr.currentChar() === EOF) {\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n }\n return value;\n }\n function isLiteral(ch) {\n return ch !== LITERAL_DELIMITER && ch !== CHAR_LF;\n }\n function readLiteral(scnr) {\n skipSpaces(scnr);\n // eslint-disable-next-line no-useless-escape\n eat(scnr, `\\'`);\n let ch = '';\n let literal = '';\n while ((ch = takeChar(scnr, isLiteral))) {\n if (ch === '\\\\') {\n literal += readEscapeSequence(scnr);\n }\n else {\n literal += ch;\n }\n }\n const current = scnr.currentChar();\n if (current === CHAR_LF || current === EOF) {\n emitError(CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER, currentPosition(), 0);\n // TODO: Is it correct really?\n if (current === CHAR_LF) {\n scnr.next();\n // eslint-disable-next-line no-useless-escape\n eat(scnr, `\\'`);\n }\n return literal;\n }\n // eslint-disable-next-line no-useless-escape\n eat(scnr, `\\'`);\n return literal;\n }\n function readEscapeSequence(scnr) {\n const ch = scnr.currentChar();\n switch (ch) {\n case '\\\\':\n case `\\'`: // eslint-disable-line no-useless-escape\n scnr.next();\n return `\\\\${ch}`;\n case 'u':\n return readUnicodeEscapeSequence(scnr, ch, 4);\n case 'U':\n return readUnicodeEscapeSequence(scnr, ch, 6);\n default:\n emitError(CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE, currentPosition(), 0, ch);\n return '';\n }\n }\n function readUnicodeEscapeSequence(scnr, unicode, digits) {\n eat(scnr, unicode);\n let sequence = '';\n for (let i = 0; i < digits; i++) {\n const ch = takeHexDigit(scnr);\n if (!ch) {\n emitError(CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE, currentPosition(), 0, `\\\\${unicode}${sequence}${scnr.currentChar()}`);\n break;\n }\n sequence += ch;\n }\n return `\\\\${unicode}${sequence}`;\n }\n function isInvalidIdentifier(ch) {\n return (ch !== \"{\" /* TokenChars.BraceLeft */ &&\n ch !== \"}\" /* TokenChars.BraceRight */ &&\n ch !== CHAR_SP &&\n ch !== CHAR_LF);\n }\n function readInvalidIdentifier(scnr) {\n skipSpaces(scnr);\n let ch = '';\n let identifiers = '';\n while ((ch = takeChar(scnr, isInvalidIdentifier))) {\n identifiers += ch;\n }\n return identifiers;\n }\n function readLinkedModifier(scnr) {\n let ch = '';\n let name = '';\n while ((ch = takeIdentifierChar(scnr))) {\n name += ch;\n }\n return name;\n }\n function readLinkedRefer(scnr) {\n const fn = (buf) => {\n const ch = scnr.currentChar();\n if (ch === \"{\" /* TokenChars.BraceLeft */ ||\n ch === \"%\" /* TokenChars.Modulo */ ||\n ch === \"@\" /* TokenChars.LinkedAlias */ ||\n ch === \"|\" /* TokenChars.Pipe */ ||\n ch === \"(\" /* TokenChars.ParenLeft */ ||\n ch === \")\" /* TokenChars.ParenRight */ ||\n !ch) {\n return buf;\n }\n else if (ch === CHAR_SP) {\n return buf;\n }\n else if (ch === CHAR_LF || ch === DOT) {\n buf += ch;\n scnr.next();\n return fn(buf);\n }\n else {\n buf += ch;\n scnr.next();\n return fn(buf);\n }\n };\n return fn('');\n }\n function readPlural(scnr) {\n skipSpaces(scnr);\n const plural = eat(scnr, \"|\" /* TokenChars.Pipe */);\n skipSpaces(scnr);\n return plural;\n }\n // TODO: We need refactoring of token parsing ...\n function readTokenInPlaceholder(scnr, context) {\n let token = null;\n const ch = scnr.currentChar();\n switch (ch) {\n case \"{\" /* TokenChars.BraceLeft */:\n if (context.braceNest >= 1) {\n emitError(CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER, currentPosition(), 0);\n }\n scnr.next();\n token = getToken(context, 2 /* TokenTypes.BraceLeft */, \"{\" /* TokenChars.BraceLeft */);\n skipSpaces(scnr);\n context.braceNest++;\n return token;\n case \"}\" /* TokenChars.BraceRight */:\n if (context.braceNest > 0 &&\n context.currentType === 2 /* TokenTypes.BraceLeft */) {\n emitError(CompileErrorCodes.EMPTY_PLACEHOLDER, currentPosition(), 0);\n }\n scnr.next();\n token = getToken(context, 3 /* TokenTypes.BraceRight */, \"}\" /* TokenChars.BraceRight */);\n context.braceNest--;\n context.braceNest > 0 && skipSpaces(scnr);\n if (context.inLinked && context.braceNest === 0) {\n context.inLinked = false;\n }\n return token;\n case \"@\" /* TokenChars.LinkedAlias */:\n if (context.braceNest > 0) {\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n }\n token = readTokenInLinked(scnr, context) || getEndToken(context);\n context.braceNest = 0;\n return token;\n default: {\n let validNamedIdentifier = true;\n let validListIdentifier = true;\n let validLiteral = true;\n if (isPluralStart(scnr)) {\n if (context.braceNest > 0) {\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n }\n token = getToken(context, 1 /* TokenTypes.Pipe */, readPlural(scnr));\n // reset\n context.braceNest = 0;\n context.inLinked = false;\n return token;\n }\n if (context.braceNest > 0 &&\n (context.currentType === 5 /* TokenTypes.Named */ ||\n context.currentType === 6 /* TokenTypes.List */ ||\n context.currentType === 7 /* TokenTypes.Literal */)) {\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n context.braceNest = 0;\n return readToken(scnr, context);\n }\n if ((validNamedIdentifier = isNamedIdentifierStart(scnr, context))) {\n token = getToken(context, 5 /* TokenTypes.Named */, readNamedIdentifier(scnr));\n skipSpaces(scnr);\n return token;\n }\n if ((validListIdentifier = isListIdentifierStart(scnr, context))) {\n token = getToken(context, 6 /* TokenTypes.List */, readListIdentifier(scnr));\n skipSpaces(scnr);\n return token;\n }\n if ((validLiteral = isLiteralStart(scnr, context))) {\n token = getToken(context, 7 /* TokenTypes.Literal */, readLiteral(scnr));\n skipSpaces(scnr);\n return token;\n }\n if (!validNamedIdentifier && !validListIdentifier && !validLiteral) {\n // TODO: we should be re-designed invalid cases, when we will extend message syntax near the future ...\n token = getToken(context, 13 /* TokenTypes.InvalidPlace */, readInvalidIdentifier(scnr));\n emitError(CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER, currentPosition(), 0, token.value);\n skipSpaces(scnr);\n return token;\n }\n break;\n }\n }\n return token;\n }\n // TODO: We need refactoring of token parsing ...\n function readTokenInLinked(scnr, context) {\n const { currentType } = context;\n let token = null;\n const ch = scnr.currentChar();\n if ((currentType === 8 /* TokenTypes.LinkedAlias */ ||\n currentType === 9 /* TokenTypes.LinkedDot */ ||\n currentType === 12 /* TokenTypes.LinkedModifier */ ||\n currentType === 10 /* TokenTypes.LinkedDelimiter */) &&\n (ch === CHAR_LF || ch === CHAR_SP)) {\n emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);\n }\n switch (ch) {\n case \"@\" /* TokenChars.LinkedAlias */:\n scnr.next();\n token = getToken(context, 8 /* TokenTypes.LinkedAlias */, \"@\" /* TokenChars.LinkedAlias */);\n context.inLinked = true;\n return token;\n case \".\" /* TokenChars.LinkedDot */:\n skipSpaces(scnr);\n scnr.next();\n return getToken(context, 9 /* TokenTypes.LinkedDot */, \".\" /* TokenChars.LinkedDot */);\n case \":\" /* TokenChars.LinkedDelimiter */:\n skipSpaces(scnr);\n scnr.next();\n return getToken(context, 10 /* TokenTypes.LinkedDelimiter */, \":\" /* TokenChars.LinkedDelimiter */);\n default:\n if (isPluralStart(scnr)) {\n token = getToken(context, 1 /* TokenTypes.Pipe */, readPlural(scnr));\n // reset\n context.braceNest = 0;\n context.inLinked = false;\n return token;\n }\n if (isLinkedDotStart(scnr, context) ||\n isLinkedDelimiterStart(scnr, context)) {\n skipSpaces(scnr);\n return readTokenInLinked(scnr, context);\n }\n if (isLinkedModifierStart(scnr, context)) {\n skipSpaces(scnr);\n return getToken(context, 12 /* TokenTypes.LinkedModifier */, readLinkedModifier(scnr));\n }\n if (isLinkedReferStart(scnr, context)) {\n skipSpaces(scnr);\n if (ch === \"{\" /* TokenChars.BraceLeft */) {\n // scan the placeholder\n return readTokenInPlaceholder(scnr, context) || token;\n }\n else {\n return getToken(context, 11 /* TokenTypes.LinkedKey */, readLinkedRefer(scnr));\n }\n }\n if (currentType === 8 /* TokenTypes.LinkedAlias */) {\n emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);\n }\n context.braceNest = 0;\n context.inLinked = false;\n return readToken(scnr, context);\n }\n }\n // TODO: We need refactoring of token parsing ...\n function readToken(scnr, context) {\n let token = { type: 14 /* TokenTypes.EOF */ };\n if (context.braceNest > 0) {\n return readTokenInPlaceholder(scnr, context) || getEndToken(context);\n }\n if (context.inLinked) {\n return readTokenInLinked(scnr, context) || getEndToken(context);\n }\n const ch = scnr.currentChar();\n switch (ch) {\n case \"{\" /* TokenChars.BraceLeft */:\n return readTokenInPlaceholder(scnr, context) || getEndToken(context);\n case \"}\" /* TokenChars.BraceRight */:\n emitError(CompileErrorCodes.UNBALANCED_CLOSING_BRACE, currentPosition(), 0);\n scnr.next();\n return getToken(context, 3 /* TokenTypes.BraceRight */, \"}\" /* TokenChars.BraceRight */);\n case \"@\" /* TokenChars.LinkedAlias */:\n return readTokenInLinked(scnr, context) || getEndToken(context);\n default: {\n if (isPluralStart(scnr)) {\n token = getToken(context, 1 /* TokenTypes.Pipe */, readPlural(scnr));\n // reset\n context.braceNest = 0;\n context.inLinked = false;\n return token;\n }\n const { isModulo, hasSpace } = detectModuloStart(scnr);\n if (isModulo) {\n return hasSpace\n ? getToken(context, 0 /* TokenTypes.Text */, readText(scnr))\n : getToken(context, 4 /* TokenTypes.Modulo */, readModulo(scnr));\n }\n if (isTextStart(scnr)) {\n return getToken(context, 0 /* TokenTypes.Text */, readText(scnr));\n }\n break;\n }\n }\n return token;\n }\n function nextToken() {\n const { currentType, offset, startLoc, endLoc } = _context;\n _context.lastType = currentType;\n _context.lastOffset = offset;\n _context.lastStartLoc = startLoc;\n _context.lastEndLoc = endLoc;\n _context.offset = currentOffset();\n _context.startLoc = currentPosition();\n if (_scnr.currentChar() === EOF) {\n return getToken(_context, 14 /* TokenTypes.EOF */);\n }\n return readToken(_scnr, _context);\n }\n return {\n nextToken,\n currentOffset,\n currentPosition,\n context\n };\n}\n\nconst ERROR_DOMAIN$2 = 'parser';\n// Backslash backslash, backslash quote, uHHHH, UHHHHHH.\nconst KNOWN_ESCAPES = /(?:\\\\\\\\|\\\\'|\\\\u([0-9a-fA-F]{4})|\\\\U([0-9a-fA-F]{6}))/g;\nfunction fromEscapeSequence(match, codePoint4, codePoint6) {\n switch (match) {\n case `\\\\\\\\`:\n return `\\\\`;\n // eslint-disable-next-line no-useless-escape\n case `\\\\\\'`:\n // eslint-disable-next-line no-useless-escape\n return `\\'`;\n default: {\n const codePoint = parseInt(codePoint4 || codePoint6, 16);\n if (codePoint <= 0xd7ff || codePoint >= 0xe000) {\n return String.fromCodePoint(codePoint);\n }\n // invalid ...\n // Replace them with U+FFFD REPLACEMENT CHARACTER.\n return '�';\n }\n }\n}\nfunction createParser(options = {}) {\n const location = options.location !== false;\n const { onError, onWarn } = options;\n function emitError(tokenzer, code, start, offset, ...args) {\n const end = tokenzer.currentPosition();\n end.offset += offset;\n end.column += offset;\n if (onError) {\n const loc = location ? createLocation(start, end) : null;\n const err = createCompileError(code, loc, {\n domain: ERROR_DOMAIN$2,\n args\n });\n onError(err);\n }\n }\n function emitWarn(tokenzer, code, start, offset, ...args) {\n const end = tokenzer.currentPosition();\n end.offset += offset;\n end.column += offset;\n if (onWarn) {\n const loc = location ? createLocation(start, end) : null;\n onWarn(createCompileWarn(code, loc, args));\n }\n }\n function startNode(type, offset, loc) {\n const node = { type };\n if (location) {\n node.start = offset;\n node.end = offset;\n node.loc = { start: loc, end: loc };\n }\n return node;\n }\n function endNode(node, offset, pos, type) {\n if (type) {\n node.type = type;\n }\n if (location) {\n node.end = offset;\n if (node.loc) {\n node.loc.end = pos;\n }\n }\n }\n function parseText(tokenizer, value) {\n const context = tokenizer.context();\n const node = startNode(3 /* NodeTypes.Text */, context.offset, context.startLoc);\n node.value = value;\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseList(tokenizer, index) {\n const context = tokenizer.context();\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\n const node = startNode(5 /* NodeTypes.List */, offset, loc);\n node.index = parseInt(index, 10);\n tokenizer.nextToken(); // skip brach right\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseNamed(tokenizer, key, modulo) {\n const context = tokenizer.context();\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\n const node = startNode(4 /* NodeTypes.Named */, offset, loc);\n node.key = key;\n if (modulo === true) {\n node.modulo = true;\n }\n tokenizer.nextToken(); // skip brach right\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseLiteral(tokenizer, value) {\n const context = tokenizer.context();\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\n const node = startNode(9 /* NodeTypes.Literal */, offset, loc);\n node.value = value.replace(KNOWN_ESCAPES, fromEscapeSequence);\n tokenizer.nextToken(); // skip brach right\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseLinkedModifier(tokenizer) {\n const token = tokenizer.nextToken();\n const context = tokenizer.context();\n const { lastOffset: offset, lastStartLoc: loc } = context; // get linked dot loc\n const node = startNode(8 /* NodeTypes.LinkedModifier */, offset, loc);\n if (token.type !== 12 /* TokenTypes.LinkedModifier */) {\n // empty modifier\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER, context.lastStartLoc, 0);\n node.value = '';\n endNode(node, offset, loc);\n return {\n nextConsumeToken: token,\n node\n };\n }\n // check token\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n node.value = token.value || '';\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return {\n node\n };\n }\n function parseLinkedKey(tokenizer, value) {\n const context = tokenizer.context();\n const node = startNode(7 /* NodeTypes.LinkedKey */, context.offset, context.startLoc);\n node.value = value;\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseLinked(tokenizer) {\n const context = tokenizer.context();\n const linkedNode = startNode(6 /* NodeTypes.Linked */, context.offset, context.startLoc);\n let token = tokenizer.nextToken();\n if (token.type === 9 /* TokenTypes.LinkedDot */) {\n const parsed = parseLinkedModifier(tokenizer);\n linkedNode.modifier = parsed.node;\n token = parsed.nextConsumeToken || tokenizer.nextToken();\n }\n // asset check token\n if (token.type !== 10 /* TokenTypes.LinkedDelimiter */) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n token = tokenizer.nextToken();\n // skip brace left\n if (token.type === 2 /* TokenTypes.BraceLeft */) {\n token = tokenizer.nextToken();\n }\n switch (token.type) {\n case 11 /* TokenTypes.LinkedKey */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n linkedNode.key = parseLinkedKey(tokenizer, token.value || '');\n break;\n case 5 /* TokenTypes.Named */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n linkedNode.key = parseNamed(tokenizer, token.value || '');\n break;\n case 6 /* TokenTypes.List */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n linkedNode.key = parseList(tokenizer, token.value || '');\n break;\n case 7 /* TokenTypes.Literal */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n linkedNode.key = parseLiteral(tokenizer, token.value || '');\n break;\n default: {\n // empty key\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY, context.lastStartLoc, 0);\n const nextContext = tokenizer.context();\n const emptyLinkedKeyNode = startNode(7 /* NodeTypes.LinkedKey */, nextContext.offset, nextContext.startLoc);\n emptyLinkedKeyNode.value = '';\n endNode(emptyLinkedKeyNode, nextContext.offset, nextContext.startLoc);\n linkedNode.key = emptyLinkedKeyNode;\n endNode(linkedNode, nextContext.offset, nextContext.startLoc);\n return {\n nextConsumeToken: token,\n node: linkedNode\n };\n }\n }\n endNode(linkedNode, tokenizer.currentOffset(), tokenizer.currentPosition());\n return {\n node: linkedNode\n };\n }\n function parseMessage(tokenizer) {\n const context = tokenizer.context();\n const startOffset = context.currentType === 1 /* TokenTypes.Pipe */\n ? tokenizer.currentOffset()\n : context.offset;\n const startLoc = context.currentType === 1 /* TokenTypes.Pipe */\n ? context.endLoc\n : context.startLoc;\n const node = startNode(2 /* NodeTypes.Message */, startOffset, startLoc);\n node.items = [];\n let nextToken = null;\n let modulo = null;\n do {\n const token = nextToken || tokenizer.nextToken();\n nextToken = null;\n switch (token.type) {\n case 0 /* TokenTypes.Text */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n node.items.push(parseText(tokenizer, token.value || ''));\n break;\n case 6 /* TokenTypes.List */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n node.items.push(parseList(tokenizer, token.value || ''));\n break;\n case 4 /* TokenTypes.Modulo */:\n modulo = true;\n break;\n case 5 /* TokenTypes.Named */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n node.items.push(parseNamed(tokenizer, token.value || '', !!modulo));\n if (modulo) {\n emitWarn(tokenizer, CompileWarnCodes.USE_MODULO_SYNTAX, context.lastStartLoc, 0, getTokenCaption(token));\n modulo = null;\n }\n break;\n case 7 /* TokenTypes.Literal */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n node.items.push(parseLiteral(tokenizer, token.value || ''));\n break;\n case 8 /* TokenTypes.LinkedAlias */: {\n const parsed = parseLinked(tokenizer);\n node.items.push(parsed.node);\n nextToken = parsed.nextConsumeToken || null;\n break;\n }\n }\n } while (context.currentType !== 14 /* TokenTypes.EOF */ &&\n context.currentType !== 1 /* TokenTypes.Pipe */);\n // adjust message node loc\n const endOffset = context.currentType === 1 /* TokenTypes.Pipe */\n ? context.lastOffset\n : tokenizer.currentOffset();\n const endLoc = context.currentType === 1 /* TokenTypes.Pipe */\n ? context.lastEndLoc\n : tokenizer.currentPosition();\n endNode(node, endOffset, endLoc);\n return node;\n }\n function parsePlural(tokenizer, offset, loc, msgNode) {\n const context = tokenizer.context();\n let hasEmptyMessage = msgNode.items.length === 0;\n const node = startNode(1 /* NodeTypes.Plural */, offset, loc);\n node.cases = [];\n node.cases.push(msgNode);\n do {\n const msg = parseMessage(tokenizer);\n if (!hasEmptyMessage) {\n hasEmptyMessage = msg.items.length === 0;\n }\n node.cases.push(msg);\n } while (context.currentType !== 14 /* TokenTypes.EOF */);\n if (hasEmptyMessage) {\n emitError(tokenizer, CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL, loc, 0);\n }\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseResource(tokenizer) {\n const context = tokenizer.context();\n const { offset, startLoc } = context;\n const msgNode = parseMessage(tokenizer);\n if (context.currentType === 14 /* TokenTypes.EOF */) {\n return msgNode;\n }\n else {\n return parsePlural(tokenizer, offset, startLoc, msgNode);\n }\n }\n function parse(source) {\n const tokenizer = createTokenizer(source, assign({}, options));\n const context = tokenizer.context();\n const node = startNode(0 /* NodeTypes.Resource */, context.offset, context.startLoc);\n if (location && node.loc) {\n node.loc.source = source;\n }\n node.body = parseResource(tokenizer);\n if (options.onCacheKey) {\n node.cacheKey = options.onCacheKey(source);\n }\n // assert whether achieved to EOF\n if (context.currentType !== 14 /* TokenTypes.EOF */) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, source[context.offset] || '');\n }\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n return { parse };\n}\nfunction getTokenCaption(token) {\n if (token.type === 14 /* TokenTypes.EOF */) {\n return 'EOF';\n }\n const name = (token.value || '').replace(/\\r?\\n/gu, '\\\\n');\n return name.length > 10 ? name.slice(0, 9) + '…' : name;\n}\n\nfunction createTransformer(ast, options = {} // eslint-disable-line\n) {\n const _context = {\n ast,\n helpers: new Set()\n };\n const context = () => _context;\n const helper = (name) => {\n _context.helpers.add(name);\n return name;\n };\n return { context, helper };\n}\nfunction traverseNodes(nodes, transformer) {\n for (let i = 0; i < nodes.length; i++) {\n traverseNode(nodes[i], transformer);\n }\n}\nfunction traverseNode(node, transformer) {\n // TODO: if we need pre-hook of transform, should be implemented to here\n switch (node.type) {\n case 1 /* NodeTypes.Plural */:\n traverseNodes(node.cases, transformer);\n transformer.helper(\"plural\" /* HelperNameMap.PLURAL */);\n break;\n case 2 /* NodeTypes.Message */:\n traverseNodes(node.items, transformer);\n break;\n case 6 /* NodeTypes.Linked */: {\n const linked = node;\n traverseNode(linked.key, transformer);\n transformer.helper(\"linked\" /* HelperNameMap.LINKED */);\n transformer.helper(\"type\" /* HelperNameMap.TYPE */);\n break;\n }\n case 5 /* NodeTypes.List */:\n transformer.helper(\"interpolate\" /* HelperNameMap.INTERPOLATE */);\n transformer.helper(\"list\" /* HelperNameMap.LIST */);\n break;\n case 4 /* NodeTypes.Named */:\n transformer.helper(\"interpolate\" /* HelperNameMap.INTERPOLATE */);\n transformer.helper(\"named\" /* HelperNameMap.NAMED */);\n break;\n }\n // TODO: if we need post-hook of transform, should be implemented to here\n}\n// transform AST\nfunction transform(ast, options = {} // eslint-disable-line\n) {\n const transformer = createTransformer(ast);\n transformer.helper(\"normalize\" /* HelperNameMap.NORMALIZE */);\n // traverse\n ast.body && traverseNode(ast.body, transformer);\n // set meta information\n const context = transformer.context();\n ast.helpers = Array.from(context.helpers);\n}\n\nfunction optimize(ast) {\n const body = ast.body;\n if (body.type === 2 /* NodeTypes.Message */) {\n optimizeMessageNode(body);\n }\n else {\n body.cases.forEach(c => optimizeMessageNode(c));\n }\n return ast;\n}\nfunction optimizeMessageNode(message) {\n if (message.items.length === 1) {\n const item = message.items[0];\n if (item.type === 3 /* NodeTypes.Text */ || item.type === 9 /* NodeTypes.Literal */) {\n message.static = item.value;\n delete item.value; // optimization for size\n }\n }\n else {\n const values = [];\n for (let i = 0; i < message.items.length; i++) {\n const item = message.items[i];\n if (!(item.type === 3 /* NodeTypes.Text */ || item.type === 9 /* NodeTypes.Literal */)) {\n break;\n }\n if (item.value == null) {\n break;\n }\n values.push(item.value);\n }\n if (values.length === message.items.length) {\n message.static = join(values);\n for (let i = 0; i < message.items.length; i++) {\n const item = message.items[i];\n if (item.type === 3 /* NodeTypes.Text */ || item.type === 9 /* NodeTypes.Literal */) {\n delete item.value; // optimization for size\n }\n }\n }\n }\n}\n\nconst ERROR_DOMAIN$1 = 'minifier';\n/* eslint-disable @typescript-eslint/no-explicit-any */\nfunction minify(node) {\n node.t = node.type;\n switch (node.type) {\n case 0 /* NodeTypes.Resource */: {\n const resource = node;\n minify(resource.body);\n resource.b = resource.body;\n delete resource.body;\n break;\n }\n case 1 /* NodeTypes.Plural */: {\n const plural = node;\n const cases = plural.cases;\n for (let i = 0; i < cases.length; i++) {\n minify(cases[i]);\n }\n plural.c = cases;\n delete plural.cases;\n break;\n }\n case 2 /* NodeTypes.Message */: {\n const message = node;\n const items = message.items;\n for (let i = 0; i < items.length; i++) {\n minify(items[i]);\n }\n message.i = items;\n delete message.items;\n if (message.static) {\n message.s = message.static;\n delete message.static;\n }\n break;\n }\n case 3 /* NodeTypes.Text */:\n case 9 /* NodeTypes.Literal */:\n case 8 /* NodeTypes.LinkedModifier */:\n case 7 /* NodeTypes.LinkedKey */: {\n const valueNode = node;\n if (valueNode.value) {\n valueNode.v = valueNode.value;\n delete valueNode.value;\n }\n break;\n }\n case 6 /* NodeTypes.Linked */: {\n const linked = node;\n minify(linked.key);\n linked.k = linked.key;\n delete linked.key;\n if (linked.modifier) {\n minify(linked.modifier);\n linked.m = linked.modifier;\n delete linked.modifier;\n }\n break;\n }\n case 5 /* NodeTypes.List */: {\n const list = node;\n list.i = list.index;\n delete list.index;\n break;\n }\n case 4 /* NodeTypes.Named */: {\n const named = node;\n named.k = named.key;\n delete named.key;\n break;\n }\n default:\n {\n throw createCompileError(CompileErrorCodes.UNHANDLED_MINIFIER_NODE_TYPE, null, {\n domain: ERROR_DOMAIN$1,\n args: [node.type]\n });\n }\n }\n delete node.type;\n}\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// \nconst ERROR_DOMAIN = 'parser';\nfunction createCodeGenerator(ast, options) {\n const { sourceMap, filename, breakLineCode, needIndent: _needIndent } = options;\n const location = options.location !== false;\n const _context = {\n filename,\n code: '',\n column: 1,\n line: 1,\n offset: 0,\n map: undefined,\n breakLineCode,\n needIndent: _needIndent,\n indentLevel: 0\n };\n if (location && ast.loc) {\n _context.source = ast.loc.source;\n }\n const context = () => _context;\n function push(code, node) {\n _context.code += code;\n }\n function _newline(n, withBreakLine = true) {\n const _breakLineCode = withBreakLine ? breakLineCode : '';\n push(_needIndent ? _breakLineCode + ` `.repeat(n) : _breakLineCode);\n }\n function indent(withNewLine = true) {\n const level = ++_context.indentLevel;\n withNewLine && _newline(level);\n }\n function deindent(withNewLine = true) {\n const level = --_context.indentLevel;\n withNewLine && _newline(level);\n }\n function newline() {\n _newline(_context.indentLevel);\n }\n const helper = (key) => `_${key}`;\n const needIndent = () => _context.needIndent;\n return {\n context,\n push,\n indent,\n deindent,\n newline,\n helper,\n needIndent\n };\n}\nfunction generateLinkedNode(generator, node) {\n const { helper } = generator;\n generator.push(`${helper(\"linked\" /* HelperNameMap.LINKED */)}(`);\n generateNode(generator, node.key);\n if (node.modifier) {\n generator.push(`, `);\n generateNode(generator, node.modifier);\n generator.push(`, _type`);\n }\n else {\n generator.push(`, undefined, _type`);\n }\n generator.push(`)`);\n}\nfunction generateMessageNode(generator, node) {\n const { helper, needIndent } = generator;\n generator.push(`${helper(\"normalize\" /* HelperNameMap.NORMALIZE */)}([`);\n generator.indent(needIndent());\n const length = node.items.length;\n for (let i = 0; i < length; i++) {\n generateNode(generator, node.items[i]);\n if (i === length - 1) {\n break;\n }\n generator.push(', ');\n }\n generator.deindent(needIndent());\n generator.push('])');\n}\nfunction generatePluralNode(generator, node) {\n const { helper, needIndent } = generator;\n if (node.cases.length > 1) {\n generator.push(`${helper(\"plural\" /* HelperNameMap.PLURAL */)}([`);\n generator.indent(needIndent());\n const length = node.cases.length;\n for (let i = 0; i < length; i++) {\n generateNode(generator, node.cases[i]);\n if (i === length - 1) {\n break;\n }\n generator.push(', ');\n }\n generator.deindent(needIndent());\n generator.push(`])`);\n }\n}\nfunction generateResource(generator, node) {\n if (node.body) {\n generateNode(generator, node.body);\n }\n else {\n generator.push('null');\n }\n}\nfunction generateNode(generator, node) {\n const { helper } = generator;\n switch (node.type) {\n case 0 /* NodeTypes.Resource */:\n generateResource(generator, node);\n break;\n case 1 /* NodeTypes.Plural */:\n generatePluralNode(generator, node);\n break;\n case 2 /* NodeTypes.Message */:\n generateMessageNode(generator, node);\n break;\n case 6 /* NodeTypes.Linked */:\n generateLinkedNode(generator, node);\n break;\n case 8 /* NodeTypes.LinkedModifier */:\n generator.push(JSON.stringify(node.value), node);\n break;\n case 7 /* NodeTypes.LinkedKey */:\n generator.push(JSON.stringify(node.value), node);\n break;\n case 5 /* NodeTypes.List */:\n generator.push(`${helper(\"interpolate\" /* HelperNameMap.INTERPOLATE */)}(${helper(\"list\" /* HelperNameMap.LIST */)}(${node.index}))`, node);\n break;\n case 4 /* NodeTypes.Named */:\n generator.push(`${helper(\"interpolate\" /* HelperNameMap.INTERPOLATE */)}(${helper(\"named\" /* HelperNameMap.NAMED */)}(${JSON.stringify(node.key)}))`, node);\n break;\n case 9 /* NodeTypes.Literal */:\n generator.push(JSON.stringify(node.value), node);\n break;\n case 3 /* NodeTypes.Text */:\n generator.push(JSON.stringify(node.value), node);\n break;\n default:\n {\n throw createCompileError(CompileErrorCodes.UNHANDLED_CODEGEN_NODE_TYPE, null, {\n domain: ERROR_DOMAIN,\n args: [node.type]\n });\n }\n }\n}\n// generate code from AST\nconst generate = (ast, options = {} // eslint-disable-line\n) => {\n const mode = isString(options.mode) ? options.mode : 'normal';\n const filename = isString(options.filename)\n ? options.filename\n : 'message.intl';\n const sourceMap = !!options.sourceMap;\n // prettier-ignore\n const breakLineCode = options.breakLineCode != null\n ? options.breakLineCode\n : mode === 'arrow'\n ? ';'\n : '\\n';\n const needIndent = options.needIndent ? options.needIndent : mode !== 'arrow';\n const helpers = ast.helpers || [];\n const generator = createCodeGenerator(ast, {\n mode,\n filename,\n sourceMap,\n breakLineCode,\n needIndent\n });\n generator.push(mode === 'normal' ? `function __msg__ (ctx) {` : `(ctx) => {`);\n generator.indent(needIndent);\n if (helpers.length > 0) {\n generator.push(`const { ${join(helpers.map(s => `${s}: _${s}`), ', ')} } = ctx`);\n generator.newline();\n }\n generator.push(`return `);\n generateNode(generator, ast);\n generator.deindent(needIndent);\n generator.push(`}`);\n delete ast.helpers;\n const { code, map } = generator.context();\n return {\n ast,\n code,\n map: map ? map.toJSON() : undefined // eslint-disable-line @typescript-eslint/no-explicit-any\n };\n};\n\nfunction baseCompile(source, options = {}) {\n const assignedOptions = assign({}, options);\n const jit = !!assignedOptions.jit;\n const enalbeMinify = !!assignedOptions.minify;\n const enambeOptimize = assignedOptions.optimize == null ? true : assignedOptions.optimize;\n // parse source codes\n const parser = createParser(assignedOptions);\n const ast = parser.parse(source);\n if (!jit) {\n // transform ASTs\n transform(ast, assignedOptions);\n // generate javascript codes\n return generate(ast, assignedOptions);\n }\n else {\n // optimize ASTs\n enambeOptimize && optimize(ast);\n // minimize ASTs\n enalbeMinify && minify(ast);\n // In JIT mode, no ast transform, no code generation.\n return { ast, code: '' };\n }\n}\n\nexport { CompileErrorCodes, CompileWarnCodes, ERROR_DOMAIN$2 as ERROR_DOMAIN, LOCATION_STUB, baseCompile, createCompileError, createCompileWarn, createLocation, createParser, createPosition, defaultOnError, detectHtmlTag, errorMessages, warnMessages };\n","/*!\n * core-base v9.13.1\n * (c) 2024 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { getGlobalThis, isObject, isFunction, isString, isNumber, isPlainObject, assign, join, toDisplayString, isArray, incrementer, format as format$1, isPromise, isBoolean, warn, isRegExp, warnOnce, escapeHtml, inBrowser, mark, measure, isEmptyObject, generateCodeFrame, generateFormatCacheKey, isDate } from '@intlify/shared';\nimport { CompileWarnCodes, CompileErrorCodes, createCompileError, detectHtmlTag, defaultOnError, baseCompile as baseCompile$1 } from '@intlify/message-compiler';\nexport { CompileErrorCodes, createCompileError } from '@intlify/message-compiler';\n\n/**\n * This is only called in esm-bundler builds.\n * istanbul-ignore-next\n */\nfunction initFeatureFlags() {\n if (typeof __INTLIFY_PROD_DEVTOOLS__ !== 'boolean') {\n getGlobalThis().__INTLIFY_PROD_DEVTOOLS__ = false;\n }\n if (typeof __INTLIFY_JIT_COMPILATION__ !== 'boolean') {\n getGlobalThis().__INTLIFY_JIT_COMPILATION__ = false;\n }\n if (typeof __INTLIFY_DROP_MESSAGE_COMPILER__ !== 'boolean') {\n getGlobalThis().__INTLIFY_DROP_MESSAGE_COMPILER__ = false;\n }\n}\n\nconst pathStateMachine = [];\npathStateMachine[0 /* States.BEFORE_PATH */] = {\n [\"w\" /* PathCharTypes.WORKSPACE */]: [0 /* States.BEFORE_PATH */],\n [\"i\" /* PathCharTypes.IDENT */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */],\n [\"[\" /* PathCharTypes.LEFT_BRACKET */]: [4 /* States.IN_SUB_PATH */],\n [\"o\" /* PathCharTypes.END_OF_FAIL */]: [7 /* States.AFTER_PATH */]\n};\npathStateMachine[1 /* States.IN_PATH */] = {\n [\"w\" /* PathCharTypes.WORKSPACE */]: [1 /* States.IN_PATH */],\n [\".\" /* PathCharTypes.DOT */]: [2 /* States.BEFORE_IDENT */],\n [\"[\" /* PathCharTypes.LEFT_BRACKET */]: [4 /* States.IN_SUB_PATH */],\n [\"o\" /* PathCharTypes.END_OF_FAIL */]: [7 /* States.AFTER_PATH */]\n};\npathStateMachine[2 /* States.BEFORE_IDENT */] = {\n [\"w\" /* PathCharTypes.WORKSPACE */]: [2 /* States.BEFORE_IDENT */],\n [\"i\" /* PathCharTypes.IDENT */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */],\n [\"0\" /* PathCharTypes.ZERO */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */]\n};\npathStateMachine[3 /* States.IN_IDENT */] = {\n [\"i\" /* PathCharTypes.IDENT */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */],\n [\"0\" /* PathCharTypes.ZERO */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */],\n [\"w\" /* PathCharTypes.WORKSPACE */]: [1 /* States.IN_PATH */, 1 /* Actions.PUSH */],\n [\".\" /* PathCharTypes.DOT */]: [2 /* States.BEFORE_IDENT */, 1 /* Actions.PUSH */],\n [\"[\" /* PathCharTypes.LEFT_BRACKET */]: [4 /* States.IN_SUB_PATH */, 1 /* Actions.PUSH */],\n [\"o\" /* PathCharTypes.END_OF_FAIL */]: [7 /* States.AFTER_PATH */, 1 /* Actions.PUSH */]\n};\npathStateMachine[4 /* States.IN_SUB_PATH */] = {\n [\"'\" /* PathCharTypes.SINGLE_QUOTE */]: [5 /* States.IN_SINGLE_QUOTE */, 0 /* Actions.APPEND */],\n [\"\\\"\" /* PathCharTypes.DOUBLE_QUOTE */]: [6 /* States.IN_DOUBLE_QUOTE */, 0 /* Actions.APPEND */],\n [\"[\" /* PathCharTypes.LEFT_BRACKET */]: [\n 4 /* States.IN_SUB_PATH */,\n 2 /* Actions.INC_SUB_PATH_DEPTH */\n ],\n [\"]\" /* PathCharTypes.RIGHT_BRACKET */]: [1 /* States.IN_PATH */, 3 /* Actions.PUSH_SUB_PATH */],\n [\"o\" /* PathCharTypes.END_OF_FAIL */]: 8 /* States.ERROR */,\n [\"l\" /* PathCharTypes.ELSE */]: [4 /* States.IN_SUB_PATH */, 0 /* Actions.APPEND */]\n};\npathStateMachine[5 /* States.IN_SINGLE_QUOTE */] = {\n [\"'\" /* PathCharTypes.SINGLE_QUOTE */]: [4 /* States.IN_SUB_PATH */, 0 /* Actions.APPEND */],\n [\"o\" /* PathCharTypes.END_OF_FAIL */]: 8 /* States.ERROR */,\n [\"l\" /* PathCharTypes.ELSE */]: [5 /* States.IN_SINGLE_QUOTE */, 0 /* Actions.APPEND */]\n};\npathStateMachine[6 /* States.IN_DOUBLE_QUOTE */] = {\n [\"\\\"\" /* PathCharTypes.DOUBLE_QUOTE */]: [4 /* States.IN_SUB_PATH */, 0 /* Actions.APPEND */],\n [\"o\" /* PathCharTypes.END_OF_FAIL */]: 8 /* States.ERROR */,\n [\"l\" /* PathCharTypes.ELSE */]: [6 /* States.IN_DOUBLE_QUOTE */, 0 /* Actions.APPEND */]\n};\n/**\n * Check if an expression is a literal value.\n */\nconst literalValueRE = /^\\s?(?:true|false|-?[\\d.]+|'[^']*'|\"[^\"]*\")\\s?$/;\nfunction isLiteral(exp) {\n return literalValueRE.test(exp);\n}\n/**\n * Strip quotes from a string\n */\nfunction stripQuotes(str) {\n const a = str.charCodeAt(0);\n const b = str.charCodeAt(str.length - 1);\n return a === b && (a === 0x22 || a === 0x27) ? str.slice(1, -1) : str;\n}\n/**\n * Determine the type of a character in a keypath.\n */\nfunction getPathCharType(ch) {\n if (ch === undefined || ch === null) {\n return \"o\" /* PathCharTypes.END_OF_FAIL */;\n }\n const code = ch.charCodeAt(0);\n switch (code) {\n case 0x5b: // [\n case 0x5d: // ]\n case 0x2e: // .\n case 0x22: // \"\n case 0x27: // '\n return ch;\n case 0x5f: // _\n case 0x24: // $\n case 0x2d: // -\n return \"i\" /* PathCharTypes.IDENT */;\n case 0x09: // Tab (HT)\n case 0x0a: // Newline (LF)\n case 0x0d: // Return (CR)\n case 0xa0: // No-break space (NBSP)\n case 0xfeff: // Byte Order Mark (BOM)\n case 0x2028: // Line Separator (LS)\n case 0x2029: // Paragraph Separator (PS)\n return \"w\" /* PathCharTypes.WORKSPACE */;\n }\n return \"i\" /* PathCharTypes.IDENT */;\n}\n/**\n * Format a subPath, return its plain form if it is\n * a literal string or number. Otherwise prepend the\n * dynamic indicator (*).\n */\nfunction formatSubPath(path) {\n const trimmed = path.trim();\n // invalid leading 0\n if (path.charAt(0) === '0' && isNaN(parseInt(path))) {\n return false;\n }\n return isLiteral(trimmed)\n ? stripQuotes(trimmed)\n : \"*\" /* PathCharTypes.ASTARISK */ + trimmed;\n}\n/**\n * Parse a string path into an array of segments\n */\nfunction parse(path) {\n const keys = [];\n let index = -1;\n let mode = 0 /* States.BEFORE_PATH */;\n let subPathDepth = 0;\n let c;\n let key; // eslint-disable-line\n let newChar;\n let type;\n let transition;\n let action;\n let typeMap;\n const actions = [];\n actions[0 /* Actions.APPEND */] = () => {\n if (key === undefined) {\n key = newChar;\n }\n else {\n key += newChar;\n }\n };\n actions[1 /* Actions.PUSH */] = () => {\n if (key !== undefined) {\n keys.push(key);\n key = undefined;\n }\n };\n actions[2 /* Actions.INC_SUB_PATH_DEPTH */] = () => {\n actions[0 /* Actions.APPEND */]();\n subPathDepth++;\n };\n actions[3 /* Actions.PUSH_SUB_PATH */] = () => {\n if (subPathDepth > 0) {\n subPathDepth--;\n mode = 4 /* States.IN_SUB_PATH */;\n actions[0 /* Actions.APPEND */]();\n }\n else {\n subPathDepth = 0;\n if (key === undefined) {\n return false;\n }\n key = formatSubPath(key);\n if (key === false) {\n return false;\n }\n else {\n actions[1 /* Actions.PUSH */]();\n }\n }\n };\n function maybeUnescapeQuote() {\n const nextChar = path[index + 1];\n if ((mode === 5 /* States.IN_SINGLE_QUOTE */ &&\n nextChar === \"'\" /* PathCharTypes.SINGLE_QUOTE */) ||\n (mode === 6 /* States.IN_DOUBLE_QUOTE */ &&\n nextChar === \"\\\"\" /* PathCharTypes.DOUBLE_QUOTE */)) {\n index++;\n newChar = '\\\\' + nextChar;\n actions[0 /* Actions.APPEND */]();\n return true;\n }\n }\n while (mode !== null) {\n index++;\n c = path[index];\n if (c === '\\\\' && maybeUnescapeQuote()) {\n continue;\n }\n type = getPathCharType(c);\n typeMap = pathStateMachine[mode];\n transition = typeMap[type] || typeMap[\"l\" /* PathCharTypes.ELSE */] || 8 /* States.ERROR */;\n // check parse error\n if (transition === 8 /* States.ERROR */) {\n return;\n }\n mode = transition[0];\n if (transition[1] !== undefined) {\n action = actions[transition[1]];\n if (action) {\n newChar = c;\n if (action() === false) {\n return;\n }\n }\n }\n // check parse finish\n if (mode === 7 /* States.AFTER_PATH */) {\n return keys;\n }\n }\n}\n// path token cache\nconst cache = new Map();\n/**\n * key-value message resolver\n *\n * @remarks\n * Resolves messages with the key-value structure. Note that messages with a hierarchical structure such as objects cannot be resolved\n *\n * @param obj - A target object to be resolved with path\n * @param path - A {@link Path | path} to resolve the value of message\n *\n * @returns A resolved {@link PathValue | path value}\n *\n * @VueI18nGeneral\n */\nfunction resolveWithKeyValue(obj, path) {\n return isObject(obj) ? obj[path] : null;\n}\n/**\n * message resolver\n *\n * @remarks\n * Resolves messages. messages with a hierarchical structure such as objects can be resolved. This resolver is used in VueI18n as default.\n *\n * @param obj - A target object to be resolved with path\n * @param path - A {@link Path | path} to resolve the value of message\n *\n * @returns A resolved {@link PathValue | path value}\n *\n * @VueI18nGeneral\n */\nfunction resolveValue(obj, path) {\n // check object\n if (!isObject(obj)) {\n return null;\n }\n // parse path\n let hit = cache.get(path);\n if (!hit) {\n hit = parse(path);\n if (hit) {\n cache.set(path, hit);\n }\n }\n // check hit\n if (!hit) {\n return null;\n }\n // resolve path value\n const len = hit.length;\n let last = obj;\n let i = 0;\n while (i < len) {\n const val = last[hit[i]];\n if (val === undefined) {\n return null;\n }\n if (isFunction(last)) {\n return null;\n }\n last = val;\n i++;\n }\n return last;\n}\n\nconst DEFAULT_MODIFIER = (str) => str;\nconst DEFAULT_MESSAGE = (ctx) => ''; // eslint-disable-line\nconst DEFAULT_MESSAGE_DATA_TYPE = 'text';\nconst DEFAULT_NORMALIZE = (values) => values.length === 0 ? '' : join(values);\nconst DEFAULT_INTERPOLATE = toDisplayString;\nfunction pluralDefault(choice, choicesLength) {\n choice = Math.abs(choice);\n if (choicesLength === 2) {\n // prettier-ignore\n return choice\n ? choice > 1\n ? 1\n : 0\n : 1;\n }\n return choice ? Math.min(choice, 2) : 0;\n}\nfunction getPluralIndex(options) {\n // prettier-ignore\n const index = isNumber(options.pluralIndex)\n ? options.pluralIndex\n : -1;\n // prettier-ignore\n return options.named && (isNumber(options.named.count) || isNumber(options.named.n))\n ? isNumber(options.named.count)\n ? options.named.count\n : isNumber(options.named.n)\n ? options.named.n\n : index\n : index;\n}\nfunction normalizeNamed(pluralIndex, props) {\n if (!props.count) {\n props.count = pluralIndex;\n }\n if (!props.n) {\n props.n = pluralIndex;\n }\n}\nfunction createMessageContext(options = {}) {\n const locale = options.locale;\n const pluralIndex = getPluralIndex(options);\n const pluralRule = isObject(options.pluralRules) &&\n isString(locale) &&\n isFunction(options.pluralRules[locale])\n ? options.pluralRules[locale]\n : pluralDefault;\n const orgPluralRule = isObject(options.pluralRules) &&\n isString(locale) &&\n isFunction(options.pluralRules[locale])\n ? pluralDefault\n : undefined;\n const plural = (messages) => {\n return messages[pluralRule(pluralIndex, messages.length, orgPluralRule)];\n };\n const _list = options.list || [];\n const list = (index) => _list[index];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const _named = options.named || {};\n isNumber(options.pluralIndex) && normalizeNamed(pluralIndex, _named);\n const named = (key) => _named[key];\n function message(key) {\n // prettier-ignore\n const msg = isFunction(options.messages)\n ? options.messages(key)\n : isObject(options.messages)\n ? options.messages[key]\n : false;\n return !msg\n ? options.parent\n ? options.parent.message(key) // resolve from parent messages\n : DEFAULT_MESSAGE\n : msg;\n }\n const _modifier = (name) => options.modifiers\n ? options.modifiers[name]\n : DEFAULT_MODIFIER;\n const normalize = isPlainObject(options.processor) && isFunction(options.processor.normalize)\n ? options.processor.normalize\n : DEFAULT_NORMALIZE;\n const interpolate = isPlainObject(options.processor) &&\n isFunction(options.processor.interpolate)\n ? options.processor.interpolate\n : DEFAULT_INTERPOLATE;\n const type = isPlainObject(options.processor) && isString(options.processor.type)\n ? options.processor.type\n : DEFAULT_MESSAGE_DATA_TYPE;\n const linked = (key, ...args) => {\n const [arg1, arg2] = args;\n let type = 'text';\n let modifier = '';\n if (args.length === 1) {\n if (isObject(arg1)) {\n modifier = arg1.modifier || modifier;\n type = arg1.type || type;\n }\n else if (isString(arg1)) {\n modifier = arg1 || modifier;\n }\n }\n else if (args.length === 2) {\n if (isString(arg1)) {\n modifier = arg1 || modifier;\n }\n if (isString(arg2)) {\n type = arg2 || type;\n }\n }\n const ret = message(key)(ctx);\n const msg = \n // The message in vnode resolved with linked are returned as an array by processor.nomalize\n type === 'vnode' && isArray(ret) && modifier\n ? ret[0]\n : ret;\n return modifier ? _modifier(modifier)(msg, type) : msg;\n };\n const ctx = {\n [\"list\" /* HelperNameMap.LIST */]: list,\n [\"named\" /* HelperNameMap.NAMED */]: named,\n [\"plural\" /* HelperNameMap.PLURAL */]: plural,\n [\"linked\" /* HelperNameMap.LINKED */]: linked,\n [\"message\" /* HelperNameMap.MESSAGE */]: message,\n [\"type\" /* HelperNameMap.TYPE */]: type,\n [\"interpolate\" /* HelperNameMap.INTERPOLATE */]: interpolate,\n [\"normalize\" /* HelperNameMap.NORMALIZE */]: normalize,\n [\"values\" /* HelperNameMap.VALUES */]: assign({}, _list, _named)\n };\n return ctx;\n}\n\nlet devtools = null;\nfunction setDevToolsHook(hook) {\n devtools = hook;\n}\nfunction getDevToolsHook() {\n return devtools;\n}\nfunction initI18nDevTools(i18n, version, meta) {\n // TODO: queue if devtools is undefined\n devtools &&\n devtools.emit(\"i18n:init\" /* IntlifyDevToolsHooks.I18nInit */, {\n timestamp: Date.now(),\n i18n,\n version,\n meta\n });\n}\nconst translateDevTools = /* #__PURE__*/ createDevToolsHook(\"function:translate\" /* IntlifyDevToolsHooks.FunctionTranslate */);\nfunction createDevToolsHook(hook) {\n return (payloads) => devtools && devtools.emit(hook, payloads);\n}\n\nconst code$1 = CompileWarnCodes.__EXTEND_POINT__;\nconst inc$1 = incrementer(code$1);\nconst CoreWarnCodes = {\n NOT_FOUND_KEY: code$1, // 2\n FALLBACK_TO_TRANSLATE: inc$1(), // 3\n CANNOT_FORMAT_NUMBER: inc$1(), // 4\n FALLBACK_TO_NUMBER_FORMAT: inc$1(), // 5\n CANNOT_FORMAT_DATE: inc$1(), // 6\n FALLBACK_TO_DATE_FORMAT: inc$1(), // 7\n EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER: inc$1(), // 8\n __EXTEND_POINT__: inc$1() // 9\n};\n/** @internal */\nconst warnMessages = {\n [CoreWarnCodes.NOT_FOUND_KEY]: `Not found '{key}' key in '{locale}' locale messages.`,\n [CoreWarnCodes.FALLBACK_TO_TRANSLATE]: `Fall back to translate '{key}' key with '{target}' locale.`,\n [CoreWarnCodes.CANNOT_FORMAT_NUMBER]: `Cannot format a number value due to not supported Intl.NumberFormat.`,\n [CoreWarnCodes.FALLBACK_TO_NUMBER_FORMAT]: `Fall back to number format '{key}' key with '{target}' locale.`,\n [CoreWarnCodes.CANNOT_FORMAT_DATE]: `Cannot format a date value due to not supported Intl.DateTimeFormat.`,\n [CoreWarnCodes.FALLBACK_TO_DATE_FORMAT]: `Fall back to datetime format '{key}' key with '{target}' locale.`,\n [CoreWarnCodes.EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER]: `This project is using Custom Message Compiler, which is an experimental feature. It may receive breaking changes or be removed in the future.`\n};\nfunction getWarnMessage(code, ...args) {\n return format$1(warnMessages[code], ...args);\n}\n\nconst code = CompileErrorCodes.__EXTEND_POINT__;\nconst inc = incrementer(code);\nconst CoreErrorCodes = {\n INVALID_ARGUMENT: code, // 17\n INVALID_DATE_ARGUMENT: inc(), // 18\n INVALID_ISO_DATE_ARGUMENT: inc(), // 19\n NOT_SUPPORT_NON_STRING_MESSAGE: inc(), // 20\n NOT_SUPPORT_LOCALE_PROMISE_VALUE: inc(), // 21\n NOT_SUPPORT_LOCALE_ASYNC_FUNCTION: inc(), // 22\n NOT_SUPPORT_LOCALE_TYPE: inc(), // 23\n __EXTEND_POINT__: inc() // 24\n};\nfunction createCoreError(code) {\n return createCompileError(code, null, (process.env.NODE_ENV !== 'production') ? { messages: errorMessages } : undefined);\n}\n/** @internal */\nconst errorMessages = {\n [CoreErrorCodes.INVALID_ARGUMENT]: 'Invalid arguments',\n [CoreErrorCodes.INVALID_DATE_ARGUMENT]: 'The date provided is an invalid Date object.' +\n 'Make sure your Date represents a valid date.',\n [CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT]: 'The argument provided is not a valid ISO date string',\n [CoreErrorCodes.NOT_SUPPORT_NON_STRING_MESSAGE]: 'Not support non-string message',\n [CoreErrorCodes.NOT_SUPPORT_LOCALE_PROMISE_VALUE]: 'cannot support promise value',\n [CoreErrorCodes.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION]: 'cannot support async function',\n [CoreErrorCodes.NOT_SUPPORT_LOCALE_TYPE]: 'cannot support locale type'\n};\n\n/** @internal */\nfunction getLocale(context, options) {\n return options.locale != null\n ? resolveLocale(options.locale)\n : resolveLocale(context.locale);\n}\nlet _resolveLocale;\n/** @internal */\nfunction resolveLocale(locale) {\n if (isString(locale)) {\n return locale;\n }\n else {\n if (isFunction(locale)) {\n if (locale.resolvedOnce && _resolveLocale != null) {\n return _resolveLocale;\n }\n else if (locale.constructor.name === 'Function') {\n const resolve = locale();\n if (isPromise(resolve)) {\n throw createCoreError(CoreErrorCodes.NOT_SUPPORT_LOCALE_PROMISE_VALUE);\n }\n return (_resolveLocale = resolve);\n }\n else {\n throw createCoreError(CoreErrorCodes.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION);\n }\n }\n else {\n throw createCoreError(CoreErrorCodes.NOT_SUPPORT_LOCALE_TYPE);\n }\n }\n}\n/**\n * Fallback with simple implemenation\n *\n * @remarks\n * A fallback locale function implemented with a simple fallback algorithm.\n *\n * Basically, it returns the value as specified in the `fallbackLocale` props, and is processed with the fallback inside intlify.\n *\n * @param ctx - A {@link CoreContext | context}\n * @param fallback - A {@link FallbackLocale | fallback locale}\n * @param start - A starting {@link Locale | locale}\n *\n * @returns Fallback locales\n *\n * @VueI18nGeneral\n */\nfunction fallbackWithSimple(ctx, fallback, start // eslint-disable-line @typescript-eslint/no-unused-vars\n) {\n // prettier-ignore\n return [...new Set([\n start,\n ...(isArray(fallback)\n ? fallback\n : isObject(fallback)\n ? Object.keys(fallback)\n : isString(fallback)\n ? [fallback]\n : [start])\n ])];\n}\n/**\n * Fallback with locale chain\n *\n * @remarks\n * A fallback locale function implemented with a fallback chain algorithm. It's used in VueI18n as default.\n *\n * @param ctx - A {@link CoreContext | context}\n * @param fallback - A {@link FallbackLocale | fallback locale}\n * @param start - A starting {@link Locale | locale}\n *\n * @returns Fallback locales\n *\n * @VueI18nSee [Fallbacking](../guide/essentials/fallback)\n *\n * @VueI18nGeneral\n */\nfunction fallbackWithLocaleChain(ctx, fallback, start) {\n const startLocale = isString(start) ? start : DEFAULT_LOCALE;\n const context = ctx;\n if (!context.__localeChainCache) {\n context.__localeChainCache = new Map();\n }\n let chain = context.__localeChainCache.get(startLocale);\n if (!chain) {\n chain = [];\n // first block defined by start\n let block = [start];\n // while any intervening block found\n while (isArray(block)) {\n block = appendBlockToChain(chain, block, fallback);\n }\n // prettier-ignore\n // last block defined by default\n const defaults = isArray(fallback) || !isPlainObject(fallback)\n ? fallback\n : fallback['default']\n ? fallback['default']\n : null;\n // convert defaults to array\n block = isString(defaults) ? [defaults] : defaults;\n if (isArray(block)) {\n appendBlockToChain(chain, block, false);\n }\n context.__localeChainCache.set(startLocale, chain);\n }\n return chain;\n}\nfunction appendBlockToChain(chain, block, blocks) {\n let follow = true;\n for (let i = 0; i < block.length && isBoolean(follow); i++) {\n const locale = block[i];\n if (isString(locale)) {\n follow = appendLocaleToChain(chain, block[i], blocks);\n }\n }\n return follow;\n}\nfunction appendLocaleToChain(chain, locale, blocks) {\n let follow;\n const tokens = locale.split('-');\n do {\n const target = tokens.join('-');\n follow = appendItemToChain(chain, target, blocks);\n tokens.splice(-1, 1);\n } while (tokens.length && follow === true);\n return follow;\n}\nfunction appendItemToChain(chain, target, blocks) {\n let follow = false;\n if (!chain.includes(target)) {\n follow = true;\n if (target) {\n follow = target[target.length - 1] !== '!';\n const locale = target.replace(/!/g, '');\n chain.push(locale);\n if ((isArray(blocks) || isPlainObject(blocks)) &&\n blocks[locale] // eslint-disable-line @typescript-eslint/no-explicit-any\n ) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n follow = blocks[locale];\n }\n }\n }\n return follow;\n}\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Intlify core-base version\n * @internal\n */\nconst VERSION = '9.13.1';\nconst NOT_REOSLVED = -1;\nconst DEFAULT_LOCALE = 'en-US';\nconst MISSING_RESOLVE_VALUE = '';\nconst capitalize = (str) => `${str.charAt(0).toLocaleUpperCase()}${str.substr(1)}`;\nfunction getDefaultLinkedModifiers() {\n return {\n upper: (val, type) => {\n // prettier-ignore\n return type === 'text' && isString(val)\n ? val.toUpperCase()\n : type === 'vnode' && isObject(val) && '__v_isVNode' in val\n ? val.children.toUpperCase()\n : val;\n },\n lower: (val, type) => {\n // prettier-ignore\n return type === 'text' && isString(val)\n ? val.toLowerCase()\n : type === 'vnode' && isObject(val) && '__v_isVNode' in val\n ? val.children.toLowerCase()\n : val;\n },\n capitalize: (val, type) => {\n // prettier-ignore\n return (type === 'text' && isString(val)\n ? capitalize(val)\n : type === 'vnode' && isObject(val) && '__v_isVNode' in val\n ? capitalize(val.children)\n : val);\n }\n };\n}\nlet _compiler;\nfunction registerMessageCompiler(compiler) {\n _compiler = compiler;\n}\nlet _resolver;\n/**\n * Register the message resolver\n *\n * @param resolver - A {@link MessageResolver} function\n *\n * @VueI18nGeneral\n */\nfunction registerMessageResolver(resolver) {\n _resolver = resolver;\n}\nlet _fallbacker;\n/**\n * Register the locale fallbacker\n *\n * @param fallbacker - A {@link LocaleFallbacker} function\n *\n * @VueI18nGeneral\n */\nfunction registerLocaleFallbacker(fallbacker) {\n _fallbacker = fallbacker;\n}\n// Additional Meta for Intlify DevTools\nlet _additionalMeta = null;\n/* #__NO_SIDE_EFFECTS__ */\nconst setAdditionalMeta = (meta) => {\n _additionalMeta = meta;\n};\n/* #__NO_SIDE_EFFECTS__ */\nconst getAdditionalMeta = () => _additionalMeta;\nlet _fallbackContext = null;\nconst setFallbackContext = (context) => {\n _fallbackContext = context;\n};\nconst getFallbackContext = () => _fallbackContext;\n// ID for CoreContext\nlet _cid = 0;\nfunction createCoreContext(options = {}) {\n // setup options\n const onWarn = isFunction(options.onWarn) ? options.onWarn : warn;\n const version = isString(options.version) ? options.version : VERSION;\n const locale = isString(options.locale) || isFunction(options.locale)\n ? options.locale\n : DEFAULT_LOCALE;\n const _locale = isFunction(locale) ? DEFAULT_LOCALE : locale;\n const fallbackLocale = isArray(options.fallbackLocale) ||\n isPlainObject(options.fallbackLocale) ||\n isString(options.fallbackLocale) ||\n options.fallbackLocale === false\n ? options.fallbackLocale\n : _locale;\n const messages = isPlainObject(options.messages)\n ? options.messages\n : { [_locale]: {} };\n const datetimeFormats = isPlainObject(options.datetimeFormats)\n ? options.datetimeFormats\n : { [_locale]: {} }\n ;\n const numberFormats = isPlainObject(options.numberFormats)\n ? options.numberFormats\n : { [_locale]: {} }\n ;\n const modifiers = assign({}, options.modifiers || {}, getDefaultLinkedModifiers());\n const pluralRules = options.pluralRules || {};\n const missing = isFunction(options.missing) ? options.missing : null;\n const missingWarn = isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\n ? options.missingWarn\n : true;\n const fallbackWarn = isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\n ? options.fallbackWarn\n : true;\n const fallbackFormat = !!options.fallbackFormat;\n const unresolving = !!options.unresolving;\n const postTranslation = isFunction(options.postTranslation)\n ? options.postTranslation\n : null;\n const processor = isPlainObject(options.processor) ? options.processor : null;\n const warnHtmlMessage = isBoolean(options.warnHtmlMessage)\n ? options.warnHtmlMessage\n : true;\n const escapeParameter = !!options.escapeParameter;\n const messageCompiler = isFunction(options.messageCompiler)\n ? options.messageCompiler\n : _compiler;\n if ((process.env.NODE_ENV !== 'production') &&\n !false &&\n !false &&\n isFunction(options.messageCompiler)) {\n warnOnce(getWarnMessage(CoreWarnCodes.EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER));\n }\n const messageResolver = isFunction(options.messageResolver)\n ? options.messageResolver\n : _resolver || resolveWithKeyValue;\n const localeFallbacker = isFunction(options.localeFallbacker)\n ? options.localeFallbacker\n : _fallbacker || fallbackWithSimple;\n const fallbackContext = isObject(options.fallbackContext)\n ? options.fallbackContext\n : undefined;\n // setup internal options\n const internalOptions = options;\n const __datetimeFormatters = isObject(internalOptions.__datetimeFormatters)\n ? internalOptions.__datetimeFormatters\n : new Map()\n ;\n const __numberFormatters = isObject(internalOptions.__numberFormatters)\n ? internalOptions.__numberFormatters\n : new Map()\n ;\n const __meta = isObject(internalOptions.__meta) ? internalOptions.__meta : {};\n _cid++;\n const context = {\n version,\n cid: _cid,\n locale,\n fallbackLocale,\n messages,\n modifiers,\n pluralRules,\n missing,\n missingWarn,\n fallbackWarn,\n fallbackFormat,\n unresolving,\n postTranslation,\n processor,\n warnHtmlMessage,\n escapeParameter,\n messageCompiler,\n messageResolver,\n localeFallbacker,\n fallbackContext,\n onWarn,\n __meta\n };\n {\n context.datetimeFormats = datetimeFormats;\n context.numberFormats = numberFormats;\n context.__datetimeFormatters = __datetimeFormatters;\n context.__numberFormatters = __numberFormatters;\n }\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production')) {\n context.__v_emitter =\n internalOptions.__v_emitter != null\n ? internalOptions.__v_emitter\n : undefined;\n }\n // NOTE: experimental !!\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\n initI18nDevTools(context, version, __meta);\n }\n return context;\n}\n/** @internal */\nfunction isTranslateFallbackWarn(fallback, key) {\n return fallback instanceof RegExp ? fallback.test(key) : fallback;\n}\n/** @internal */\nfunction isTranslateMissingWarn(missing, key) {\n return missing instanceof RegExp ? missing.test(key) : missing;\n}\n/** @internal */\nfunction handleMissing(context, key, locale, missingWarn, type) {\n const { missing, onWarn } = context;\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production')) {\n const emitter = context.__v_emitter;\n if (emitter) {\n emitter.emit(\"missing\" /* VueDevToolsTimelineEvents.MISSING */, {\n locale,\n key,\n type,\n groupId: `${type}:${key}`\n });\n }\n }\n if (missing !== null) {\n const ret = missing(context, locale, key, type);\n return isString(ret) ? ret : key;\n }\n else {\n if ((process.env.NODE_ENV !== 'production') && isTranslateMissingWarn(missingWarn, key)) {\n onWarn(getWarnMessage(CoreWarnCodes.NOT_FOUND_KEY, { key, locale }));\n }\n return key;\n }\n}\n/** @internal */\nfunction updateFallbackLocale(ctx, locale, fallback) {\n const context = ctx;\n context.__localeChainCache = new Map();\n ctx.localeFallbacker(ctx, fallback, locale);\n}\n/** @internal */\nfunction isAlmostSameLocale(locale, compareLocale) {\n if (locale === compareLocale)\n return false;\n return locale.split('-')[0] === compareLocale.split('-')[0];\n}\n/** @internal */\nfunction isImplicitFallback(targetLocale, locales) {\n const index = locales.indexOf(targetLocale);\n if (index === -1) {\n return false;\n }\n for (let i = index + 1; i < locales.length; i++) {\n if (isAlmostSameLocale(targetLocale, locales[i])) {\n return true;\n }\n }\n return false;\n}\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\nfunction format(ast) {\n const msg = (ctx) => formatParts(ctx, ast);\n return msg;\n}\nfunction formatParts(ctx, ast) {\n const body = ast.b || ast.body;\n if ((body.t || body.type) === 1 /* NodeTypes.Plural */) {\n const plural = body;\n const cases = plural.c || plural.cases;\n return ctx.plural(cases.reduce((messages, c) => [\n ...messages,\n formatMessageParts(ctx, c)\n ], []));\n }\n else {\n return formatMessageParts(ctx, body);\n }\n}\nfunction formatMessageParts(ctx, node) {\n const _static = node.s || node.static;\n if (_static) {\n return ctx.type === 'text'\n ? _static\n : ctx.normalize([_static]);\n }\n else {\n const messages = (node.i || node.items).reduce((acm, c) => [...acm, formatMessagePart(ctx, c)], []);\n return ctx.normalize(messages);\n }\n}\nfunction formatMessagePart(ctx, node) {\n const type = node.t || node.type;\n switch (type) {\n case 3 /* NodeTypes.Text */: {\n const text = node;\n return (text.v || text.value);\n }\n case 9 /* NodeTypes.Literal */: {\n const literal = node;\n return (literal.v || literal.value);\n }\n case 4 /* NodeTypes.Named */: {\n const named = node;\n return ctx.interpolate(ctx.named(named.k || named.key));\n }\n case 5 /* NodeTypes.List */: {\n const list = node;\n return ctx.interpolate(ctx.list(list.i != null ? list.i : list.index));\n }\n case 6 /* NodeTypes.Linked */: {\n const linked = node;\n const modifier = linked.m || linked.modifier;\n return ctx.linked(formatMessagePart(ctx, linked.k || linked.key), modifier ? formatMessagePart(ctx, modifier) : undefined, ctx.type);\n }\n case 7 /* NodeTypes.LinkedKey */: {\n const linkedKey = node;\n return (linkedKey.v || linkedKey.value);\n }\n case 8 /* NodeTypes.LinkedModifier */: {\n const linkedModifier = node;\n return (linkedModifier.v || linkedModifier.value);\n }\n default:\n throw new Error(`unhandled node type on format message part: ${type}`);\n }\n}\n\nconst WARN_MESSAGE = `Detected HTML in '{source}' message. Recommend not using HTML messages to avoid XSS.`;\nfunction checkHtmlMessage(source, warnHtmlMessage) {\n if (warnHtmlMessage && detectHtmlTag(source)) {\n warn(format$1(WARN_MESSAGE, { source }));\n }\n}\nconst defaultOnCacheKey = (message) => message;\nlet compileCache = Object.create(null);\nfunction onCompileWarn(_warn) {\n if (_warn.code === CompileWarnCodes.USE_MODULO_SYNTAX) {\n warn(`The use of named interpolation with modulo syntax is deprecated. ` +\n `It will be removed in v10.\\n` +\n `reference: https://vue-i18n.intlify.dev/guide/essentials/syntax#rails-i18n-format \\n` +\n `(message compiler warning message: ${_warn.message})`);\n }\n}\nfunction clearCompileCache() {\n compileCache = Object.create(null);\n}\nconst isMessageAST = (val) => isObject(val) &&\n (val.t === 0 || val.type === 0) &&\n ('b' in val || 'body' in val);\nfunction baseCompile(message, options = {}) {\n // error detecting on compile\n let detectError = false;\n const onError = options.onError || defaultOnError;\n options.onError = (err) => {\n detectError = true;\n onError(err);\n };\n // compile with mesasge-compiler\n return { ...baseCompile$1(message, options), detectError };\n}\n/* #__NO_SIDE_EFFECTS__ */\nconst compileToFunction = (message, context) => {\n if (!isString(message)) {\n throw createCoreError(CoreErrorCodes.NOT_SUPPORT_NON_STRING_MESSAGE);\n }\n // set onWarn\n if ((process.env.NODE_ENV !== 'production')) {\n context.onWarn = onCompileWarn;\n }\n {\n // check HTML message\n const warnHtmlMessage = isBoolean(context.warnHtmlMessage)\n ? context.warnHtmlMessage\n : true;\n (process.env.NODE_ENV !== 'production') && checkHtmlMessage(message, warnHtmlMessage);\n // check caches\n const onCacheKey = context.onCacheKey || defaultOnCacheKey;\n const cacheKey = onCacheKey(message);\n const cached = compileCache[cacheKey];\n if (cached) {\n return cached;\n }\n // compile\n const { code, detectError } = baseCompile(message, context);\n // evaluate function\n const msg = new Function(`return ${code}`)();\n // if occurred compile error, don't cache\n return !detectError\n ? (compileCache[cacheKey] = msg)\n : msg;\n }\n};\nfunction compile(message, context) {\n // set onWarn\n if ((process.env.NODE_ENV !== 'production')) {\n context.onWarn = onCompileWarn;\n }\n if (((__INTLIFY_JIT_COMPILATION__ && !__INTLIFY_DROP_MESSAGE_COMPILER__)) &&\n isString(message)) {\n // check HTML message\n const warnHtmlMessage = isBoolean(context.warnHtmlMessage)\n ? context.warnHtmlMessage\n : true;\n (process.env.NODE_ENV !== 'production') && checkHtmlMessage(message, warnHtmlMessage);\n // check caches\n const onCacheKey = context.onCacheKey || defaultOnCacheKey;\n const cacheKey = onCacheKey(message);\n const cached = compileCache[cacheKey];\n if (cached) {\n return cached;\n }\n // compile with JIT mode\n const { ast, detectError } = baseCompile(message, {\n ...context,\n location: (process.env.NODE_ENV !== 'production'),\n jit: true\n });\n // compose message function from AST\n const msg = format(ast);\n // if occurred compile error, don't cache\n return !detectError\n ? (compileCache[cacheKey] = msg)\n : msg;\n }\n else {\n if ((process.env.NODE_ENV !== 'production') && !isMessageAST(message)) {\n warn(`the message that is resolve with key '${context.key}' is not supported for jit compilation`);\n return (() => message);\n }\n // AST case (passed from bundler)\n const cacheKey = message.cacheKey;\n if (cacheKey) {\n const cached = compileCache[cacheKey];\n if (cached) {\n return cached;\n }\n // compose message function from message (AST)\n return (compileCache[cacheKey] =\n format(message));\n }\n else {\n return format(message);\n }\n }\n}\n\nconst NOOP_MESSAGE_FUNCTION = () => '';\nconst isMessageFunction = (val) => isFunction(val);\n// implementation of `translate` function\nfunction translate(context, ...args) {\n const { fallbackFormat, postTranslation, unresolving, messageCompiler, fallbackLocale, messages } = context;\n const [key, options] = parseTranslateArgs(...args);\n const missingWarn = isBoolean(options.missingWarn)\n ? options.missingWarn\n : context.missingWarn;\n const fallbackWarn = isBoolean(options.fallbackWarn)\n ? options.fallbackWarn\n : context.fallbackWarn;\n const escapeParameter = isBoolean(options.escapeParameter)\n ? options.escapeParameter\n : context.escapeParameter;\n const resolvedMessage = !!options.resolvedMessage;\n // prettier-ignore\n const defaultMsgOrKey = isString(options.default) || isBoolean(options.default) // default by function option\n ? !isBoolean(options.default)\n ? options.default\n : (!messageCompiler ? () => key : key)\n : fallbackFormat // default by `fallbackFormat` option\n ? (!messageCompiler ? () => key : key)\n : '';\n const enableDefaultMsg = fallbackFormat || defaultMsgOrKey !== '';\n const locale = getLocale(context, options);\n // escape params\n escapeParameter && escapeParams(options);\n // resolve message format\n // eslint-disable-next-line prefer-const\n let [formatScope, targetLocale, message] = !resolvedMessage\n ? resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn)\n : [\n key,\n locale,\n messages[locale] || {}\n ];\n // NOTE:\n // Fix to work around `ssrTransfrom` bug in Vite.\n // https://github.com/vitejs/vite/issues/4306\n // To get around this, use temporary variables.\n // https://github.com/nuxt/framework/issues/1461#issuecomment-954606243\n let format = formatScope;\n // if you use default message, set it as message format!\n let cacheBaseKey = key;\n if (!resolvedMessage &&\n !(isString(format) ||\n isMessageAST(format) ||\n isMessageFunction(format))) {\n if (enableDefaultMsg) {\n format = defaultMsgOrKey;\n cacheBaseKey = format;\n }\n }\n // checking message format and target locale\n if (!resolvedMessage &&\n (!(isString(format) ||\n isMessageAST(format) ||\n isMessageFunction(format)) ||\n !isString(targetLocale))) {\n return unresolving ? NOT_REOSLVED : key;\n }\n // TODO: refactor\n if ((process.env.NODE_ENV !== 'production') && isString(format) && context.messageCompiler == null) {\n warn(`The message format compilation is not supported in this build. ` +\n `Because message compiler isn't included. ` +\n `You need to pre-compilation all message format. ` +\n `So translate function return '${key}'.`);\n return key;\n }\n // setup compile error detecting\n let occurred = false;\n const onError = () => {\n occurred = true;\n };\n // compile message format\n const msg = !isMessageFunction(format)\n ? compileMessageFormat(context, key, targetLocale, format, cacheBaseKey, onError)\n : format;\n // if occurred compile error, return the message format\n if (occurred) {\n return format;\n }\n // evaluate message with context\n const ctxOptions = getMessageContextOptions(context, targetLocale, message, options);\n const msgContext = createMessageContext(ctxOptions);\n const messaged = evaluateMessage(context, msg, msgContext);\n // if use post translation option, proceed it with handler\n const ret = postTranslation\n ? postTranslation(messaged, key)\n : messaged;\n // NOTE: experimental !!\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\n // prettier-ignore\n const payloads = {\n timestamp: Date.now(),\n key: isString(key)\n ? key\n : isMessageFunction(format)\n ? format.key\n : '',\n locale: targetLocale || (isMessageFunction(format)\n ? format.locale\n : ''),\n format: isString(format)\n ? format\n : isMessageFunction(format)\n ? format.source\n : '',\n message: ret\n };\n payloads.meta = assign({}, context.__meta, getAdditionalMeta() || {});\n translateDevTools(payloads);\n }\n return ret;\n}\nfunction escapeParams(options) {\n if (isArray(options.list)) {\n options.list = options.list.map(item => isString(item) ? escapeHtml(item) : item);\n }\n else if (isObject(options.named)) {\n Object.keys(options.named).forEach(key => {\n if (isString(options.named[key])) {\n options.named[key] = escapeHtml(options.named[key]);\n }\n });\n }\n}\nfunction resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn) {\n const { messages, onWarn, messageResolver: resolveValue, localeFallbacker } = context;\n const locales = localeFallbacker(context, fallbackLocale, locale); // eslint-disable-line @typescript-eslint/no-explicit-any\n let message = {};\n let targetLocale;\n let format = null;\n let from = locale;\n let to = null;\n const type = 'translate';\n for (let i = 0; i < locales.length; i++) {\n targetLocale = to = locales[i];\n if ((process.env.NODE_ENV !== 'production') &&\n locale !== targetLocale &&\n !isAlmostSameLocale(locale, targetLocale) &&\n isTranslateFallbackWarn(fallbackWarn, key)) {\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_TRANSLATE, {\n key,\n target: targetLocale\n }));\n }\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\n const emitter = context.__v_emitter;\n if (emitter) {\n emitter.emit(\"fallback\" /* VueDevToolsTimelineEvents.FALBACK */, {\n type,\n key,\n from,\n to,\n groupId: `${type}:${key}`\n });\n }\n }\n message =\n messages[targetLocale] || {};\n // for vue-devtools timeline event\n let start = null;\n let startTag;\n let endTag;\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\n start = window.performance.now();\n startTag = 'intlify-message-resolve-start';\n endTag = 'intlify-message-resolve-end';\n mark && mark(startTag);\n }\n if ((format = resolveValue(message, key)) === null) {\n // if null, resolve with object key path\n format = message[key]; // eslint-disable-line @typescript-eslint/no-explicit-any\n }\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\n const end = window.performance.now();\n const emitter = context.__v_emitter;\n if (emitter && start && format) {\n emitter.emit(\"message-resolve\" /* VueDevToolsTimelineEvents.MESSAGE_RESOLVE */, {\n type: \"message-resolve\" /* VueDevToolsTimelineEvents.MESSAGE_RESOLVE */,\n key,\n message: format,\n time: end - start,\n groupId: `${type}:${key}`\n });\n }\n if (startTag && endTag && mark && measure) {\n mark(endTag);\n measure('intlify message resolve', startTag, endTag);\n }\n }\n if (isString(format) || isMessageAST(format) || isMessageFunction(format)) {\n break;\n }\n if (!isImplicitFallback(targetLocale, locales)) {\n const missingRet = handleMissing(context, // eslint-disable-line @typescript-eslint/no-explicit-any\n key, targetLocale, missingWarn, type);\n if (missingRet !== key) {\n format = missingRet;\n }\n }\n from = to;\n }\n return [format, targetLocale, message];\n}\nfunction compileMessageFormat(context, key, targetLocale, format, cacheBaseKey, onError) {\n const { messageCompiler, warnHtmlMessage } = context;\n if (isMessageFunction(format)) {\n const msg = format;\n msg.locale = msg.locale || targetLocale;\n msg.key = msg.key || key;\n return msg;\n }\n if (messageCompiler == null) {\n const msg = (() => format);\n msg.locale = targetLocale;\n msg.key = key;\n return msg;\n }\n // for vue-devtools timeline event\n let start = null;\n let startTag;\n let endTag;\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\n start = window.performance.now();\n startTag = 'intlify-message-compilation-start';\n endTag = 'intlify-message-compilation-end';\n mark && mark(startTag);\n }\n const msg = messageCompiler(format, getCompileContext(context, targetLocale, cacheBaseKey, format, warnHtmlMessage, onError));\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\n const end = window.performance.now();\n const emitter = context.__v_emitter;\n if (emitter && start) {\n emitter.emit(\"message-compilation\" /* VueDevToolsTimelineEvents.MESSAGE_COMPILATION */, {\n type: \"message-compilation\" /* VueDevToolsTimelineEvents.MESSAGE_COMPILATION */,\n message: format,\n time: end - start,\n groupId: `${'translate'}:${key}`\n });\n }\n if (startTag && endTag && mark && measure) {\n mark(endTag);\n measure('intlify message compilation', startTag, endTag);\n }\n }\n msg.locale = targetLocale;\n msg.key = key;\n msg.source = format;\n return msg;\n}\nfunction evaluateMessage(context, msg, msgCtx) {\n // for vue-devtools timeline event\n let start = null;\n let startTag;\n let endTag;\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\n start = window.performance.now();\n startTag = 'intlify-message-evaluation-start';\n endTag = 'intlify-message-evaluation-end';\n mark && mark(startTag);\n }\n const messaged = msg(msgCtx);\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\n const end = window.performance.now();\n const emitter = context.__v_emitter;\n if (emitter && start) {\n emitter.emit(\"message-evaluation\" /* VueDevToolsTimelineEvents.MESSAGE_EVALUATION */, {\n type: \"message-evaluation\" /* VueDevToolsTimelineEvents.MESSAGE_EVALUATION */,\n value: messaged,\n time: end - start,\n groupId: `${'translate'}:${msg.key}`\n });\n }\n if (startTag && endTag && mark && measure) {\n mark(endTag);\n measure('intlify message evaluation', startTag, endTag);\n }\n }\n return messaged;\n}\n/** @internal */\nfunction parseTranslateArgs(...args) {\n const [arg1, arg2, arg3] = args;\n const options = {};\n if (!isString(arg1) &&\n !isNumber(arg1) &&\n !isMessageFunction(arg1) &&\n !isMessageAST(arg1)) {\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\n }\n // prettier-ignore\n const key = isNumber(arg1)\n ? String(arg1)\n : isMessageFunction(arg1)\n ? arg1\n : arg1;\n if (isNumber(arg2)) {\n options.plural = arg2;\n }\n else if (isString(arg2)) {\n options.default = arg2;\n }\n else if (isPlainObject(arg2) && !isEmptyObject(arg2)) {\n options.named = arg2;\n }\n else if (isArray(arg2)) {\n options.list = arg2;\n }\n if (isNumber(arg3)) {\n options.plural = arg3;\n }\n else if (isString(arg3)) {\n options.default = arg3;\n }\n else if (isPlainObject(arg3)) {\n assign(options, arg3);\n }\n return [key, options];\n}\nfunction getCompileContext(context, locale, key, source, warnHtmlMessage, onError) {\n return {\n locale,\n key,\n warnHtmlMessage,\n onError: (err) => {\n onError && onError(err);\n if ((process.env.NODE_ENV !== 'production')) {\n const _source = getSourceForCodeFrame(source);\n const message = `Message compilation error: ${err.message}`;\n const codeFrame = err.location &&\n _source &&\n generateCodeFrame(_source, err.location.start.offset, err.location.end.offset);\n const emitter = context.__v_emitter;\n if (emitter && _source) {\n emitter.emit(\"compile-error\" /* VueDevToolsTimelineEvents.COMPILE_ERROR */, {\n message: _source,\n error: err.message,\n start: err.location && err.location.start.offset,\n end: err.location && err.location.end.offset,\n groupId: `${'translate'}:${key}`\n });\n }\n console.error(codeFrame ? `${message}\\n${codeFrame}` : message);\n }\n else {\n throw err;\n }\n },\n onCacheKey: (source) => generateFormatCacheKey(locale, key, source)\n };\n}\nfunction getSourceForCodeFrame(source) {\n if (isString(source)) {\n return source;\n }\n else {\n if (source.loc && source.loc.source) {\n return source.loc.source;\n }\n }\n}\nfunction getMessageContextOptions(context, locale, message, options) {\n const { modifiers, pluralRules, messageResolver: resolveValue, fallbackLocale, fallbackWarn, missingWarn, fallbackContext } = context;\n const resolveMessage = (key) => {\n let val = resolveValue(message, key);\n // fallback to root context\n if (val == null && fallbackContext) {\n const [, , message] = resolveMessageFormat(fallbackContext, key, locale, fallbackLocale, fallbackWarn, missingWarn);\n val = resolveValue(message, key);\n }\n if (isString(val) || isMessageAST(val)) {\n let occurred = false;\n const onError = () => {\n occurred = true;\n };\n const msg = compileMessageFormat(context, key, locale, val, key, onError);\n return !occurred\n ? msg\n : NOOP_MESSAGE_FUNCTION;\n }\n else if (isMessageFunction(val)) {\n return val;\n }\n else {\n // TODO: should be implemented warning message\n return NOOP_MESSAGE_FUNCTION;\n }\n };\n const ctxOptions = {\n locale,\n modifiers,\n pluralRules,\n messages: resolveMessage\n };\n if (context.processor) {\n ctxOptions.processor = context.processor;\n }\n if (options.list) {\n ctxOptions.list = options.list;\n }\n if (options.named) {\n ctxOptions.named = options.named;\n }\n if (isNumber(options.plural)) {\n ctxOptions.pluralIndex = options.plural;\n }\n return ctxOptions;\n}\n\nconst intlDefined = typeof Intl !== 'undefined';\nconst Availabilities = {\n dateTimeFormat: intlDefined && typeof Intl.DateTimeFormat !== 'undefined',\n numberFormat: intlDefined && typeof Intl.NumberFormat !== 'undefined'\n};\n\n// implementation of `datetime` function\nfunction datetime(context, ...args) {\n const { datetimeFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context;\n const { __datetimeFormatters } = context;\n if ((process.env.NODE_ENV !== 'production') && !Availabilities.dateTimeFormat) {\n onWarn(getWarnMessage(CoreWarnCodes.CANNOT_FORMAT_DATE));\n return MISSING_RESOLVE_VALUE;\n }\n const [key, value, options, overrides] = parseDateTimeArgs(...args);\n const missingWarn = isBoolean(options.missingWarn)\n ? options.missingWarn\n : context.missingWarn;\n const fallbackWarn = isBoolean(options.fallbackWarn)\n ? options.fallbackWarn\n : context.fallbackWarn;\n const part = !!options.part;\n const locale = getLocale(context, options);\n const locales = localeFallbacker(context, // eslint-disable-line @typescript-eslint/no-explicit-any\n fallbackLocale, locale);\n if (!isString(key) || key === '') {\n return new Intl.DateTimeFormat(locale, overrides).format(value);\n }\n // resolve format\n let datetimeFormat = {};\n let targetLocale;\n let format = null;\n let from = locale;\n let to = null;\n const type = 'datetime format';\n for (let i = 0; i < locales.length; i++) {\n targetLocale = to = locales[i];\n if ((process.env.NODE_ENV !== 'production') &&\n locale !== targetLocale &&\n isTranslateFallbackWarn(fallbackWarn, key)) {\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_DATE_FORMAT, {\n key,\n target: targetLocale\n }));\n }\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\n const emitter = context.__v_emitter;\n if (emitter) {\n emitter.emit(\"fallback\" /* VueDevToolsTimelineEvents.FALBACK */, {\n type,\n key,\n from,\n to,\n groupId: `${type}:${key}`\n });\n }\n }\n datetimeFormat =\n datetimeFormats[targetLocale] || {};\n format = datetimeFormat[key];\n if (isPlainObject(format))\n break;\n handleMissing(context, key, targetLocale, missingWarn, type); // eslint-disable-line @typescript-eslint/no-explicit-any\n from = to;\n }\n // checking format and target locale\n if (!isPlainObject(format) || !isString(targetLocale)) {\n return unresolving ? NOT_REOSLVED : key;\n }\n let id = `${targetLocale}__${key}`;\n if (!isEmptyObject(overrides)) {\n id = `${id}__${JSON.stringify(overrides)}`;\n }\n let formatter = __datetimeFormatters.get(id);\n if (!formatter) {\n formatter = new Intl.DateTimeFormat(targetLocale, assign({}, format, overrides));\n __datetimeFormatters.set(id, formatter);\n }\n return !part ? formatter.format(value) : formatter.formatToParts(value);\n}\n/** @internal */\nconst DATETIME_FORMAT_OPTIONS_KEYS = [\n 'localeMatcher',\n 'weekday',\n 'era',\n 'year',\n 'month',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'timeZoneName',\n 'formatMatcher',\n 'hour12',\n 'timeZone',\n 'dateStyle',\n 'timeStyle',\n 'calendar',\n 'dayPeriod',\n 'numberingSystem',\n 'hourCycle',\n 'fractionalSecondDigits'\n];\n/** @internal */\nfunction parseDateTimeArgs(...args) {\n const [arg1, arg2, arg3, arg4] = args;\n const options = {};\n let overrides = {};\n let value;\n if (isString(arg1)) {\n // Only allow ISO strings - other date formats are often supported,\n // but may cause different results in different browsers.\n const matches = arg1.match(/(\\d{4}-\\d{2}-\\d{2})(T|\\s)?(.*)/);\n if (!matches) {\n throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT);\n }\n // Some browsers can not parse the iso datetime separated by space,\n // this is a compromise solution by replace the 'T'/' ' with 'T'\n const dateTime = matches[3]\n ? matches[3].trim().startsWith('T')\n ? `${matches[1].trim()}${matches[3].trim()}`\n : `${matches[1].trim()}T${matches[3].trim()}`\n : matches[1].trim();\n value = new Date(dateTime);\n try {\n // This will fail if the date is not valid\n value.toISOString();\n }\n catch (e) {\n throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT);\n }\n }\n else if (isDate(arg1)) {\n if (isNaN(arg1.getTime())) {\n throw createCoreError(CoreErrorCodes.INVALID_DATE_ARGUMENT);\n }\n value = arg1;\n }\n else if (isNumber(arg1)) {\n value = arg1;\n }\n else {\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\n }\n if (isString(arg2)) {\n options.key = arg2;\n }\n else if (isPlainObject(arg2)) {\n Object.keys(arg2).forEach(key => {\n if (DATETIME_FORMAT_OPTIONS_KEYS.includes(key)) {\n overrides[key] = arg2[key];\n }\n else {\n options[key] = arg2[key];\n }\n });\n }\n if (isString(arg3)) {\n options.locale = arg3;\n }\n else if (isPlainObject(arg3)) {\n overrides = arg3;\n }\n if (isPlainObject(arg4)) {\n overrides = arg4;\n }\n return [options.key || '', value, options, overrides];\n}\n/** @internal */\nfunction clearDateTimeFormat(ctx, locale, format) {\n const context = ctx;\n for (const key in format) {\n const id = `${locale}__${key}`;\n if (!context.__datetimeFormatters.has(id)) {\n continue;\n }\n context.__datetimeFormatters.delete(id);\n }\n}\n\n// implementation of `number` function\nfunction number(context, ...args) {\n const { numberFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context;\n const { __numberFormatters } = context;\n if ((process.env.NODE_ENV !== 'production') && !Availabilities.numberFormat) {\n onWarn(getWarnMessage(CoreWarnCodes.CANNOT_FORMAT_NUMBER));\n return MISSING_RESOLVE_VALUE;\n }\n const [key, value, options, overrides] = parseNumberArgs(...args);\n const missingWarn = isBoolean(options.missingWarn)\n ? options.missingWarn\n : context.missingWarn;\n const fallbackWarn = isBoolean(options.fallbackWarn)\n ? options.fallbackWarn\n : context.fallbackWarn;\n const part = !!options.part;\n const locale = getLocale(context, options);\n const locales = localeFallbacker(context, // eslint-disable-line @typescript-eslint/no-explicit-any\n fallbackLocale, locale);\n if (!isString(key) || key === '') {\n return new Intl.NumberFormat(locale, overrides).format(value);\n }\n // resolve format\n let numberFormat = {};\n let targetLocale;\n let format = null;\n let from = locale;\n let to = null;\n const type = 'number format';\n for (let i = 0; i < locales.length; i++) {\n targetLocale = to = locales[i];\n if ((process.env.NODE_ENV !== 'production') &&\n locale !== targetLocale &&\n isTranslateFallbackWarn(fallbackWarn, key)) {\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_NUMBER_FORMAT, {\n key,\n target: targetLocale\n }));\n }\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\n const emitter = context.__v_emitter;\n if (emitter) {\n emitter.emit(\"fallback\" /* VueDevToolsTimelineEvents.FALBACK */, {\n type,\n key,\n from,\n to,\n groupId: `${type}:${key}`\n });\n }\n }\n numberFormat =\n numberFormats[targetLocale] || {};\n format = numberFormat[key];\n if (isPlainObject(format))\n break;\n handleMissing(context, key, targetLocale, missingWarn, type); // eslint-disable-line @typescript-eslint/no-explicit-any\n from = to;\n }\n // checking format and target locale\n if (!isPlainObject(format) || !isString(targetLocale)) {\n return unresolving ? NOT_REOSLVED : key;\n }\n let id = `${targetLocale}__${key}`;\n if (!isEmptyObject(overrides)) {\n id = `${id}__${JSON.stringify(overrides)}`;\n }\n let formatter = __numberFormatters.get(id);\n if (!formatter) {\n formatter = new Intl.NumberFormat(targetLocale, assign({}, format, overrides));\n __numberFormatters.set(id, formatter);\n }\n return !part ? formatter.format(value) : formatter.formatToParts(value);\n}\n/** @internal */\nconst NUMBER_FORMAT_OPTIONS_KEYS = [\n 'localeMatcher',\n 'style',\n 'currency',\n 'currencyDisplay',\n 'currencySign',\n 'useGrouping',\n 'minimumIntegerDigits',\n 'minimumFractionDigits',\n 'maximumFractionDigits',\n 'minimumSignificantDigits',\n 'maximumSignificantDigits',\n 'compactDisplay',\n 'notation',\n 'signDisplay',\n 'unit',\n 'unitDisplay',\n 'roundingMode',\n 'roundingPriority',\n 'roundingIncrement',\n 'trailingZeroDisplay'\n];\n/** @internal */\nfunction parseNumberArgs(...args) {\n const [arg1, arg2, arg3, arg4] = args;\n const options = {};\n let overrides = {};\n if (!isNumber(arg1)) {\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\n }\n const value = arg1;\n if (isString(arg2)) {\n options.key = arg2;\n }\n else if (isPlainObject(arg2)) {\n Object.keys(arg2).forEach(key => {\n if (NUMBER_FORMAT_OPTIONS_KEYS.includes(key)) {\n overrides[key] = arg2[key];\n }\n else {\n options[key] = arg2[key];\n }\n });\n }\n if (isString(arg3)) {\n options.locale = arg3;\n }\n else if (isPlainObject(arg3)) {\n overrides = arg3;\n }\n if (isPlainObject(arg4)) {\n overrides = arg4;\n }\n return [options.key || '', value, options, overrides];\n}\n/** @internal */\nfunction clearNumberFormat(ctx, locale, format) {\n const context = ctx;\n for (const key in format) {\n const id = `${locale}__${key}`;\n if (!context.__numberFormatters.has(id)) {\n continue;\n }\n context.__numberFormatters.delete(id);\n }\n}\n\n{\n initFeatureFlags();\n}\n\nexport { CoreErrorCodes, CoreWarnCodes, DATETIME_FORMAT_OPTIONS_KEYS, DEFAULT_LOCALE, DEFAULT_MESSAGE_DATA_TYPE, MISSING_RESOLVE_VALUE, NOT_REOSLVED, NUMBER_FORMAT_OPTIONS_KEYS, VERSION, clearCompileCache, clearDateTimeFormat, clearNumberFormat, compile, compileToFunction, createCoreContext, createCoreError, createMessageContext, datetime, fallbackWithLocaleChain, fallbackWithSimple, getAdditionalMeta, getDevToolsHook, getFallbackContext, getLocale, getWarnMessage, handleMissing, initI18nDevTools, isAlmostSameLocale, isImplicitFallback, isMessageAST, isMessageFunction, isTranslateFallbackWarn, isTranslateMissingWarn, number, parse, parseDateTimeArgs, parseNumberArgs, parseTranslateArgs, registerLocaleFallbacker, registerMessageCompiler, registerMessageResolver, resolveLocale, resolveValue, resolveWithKeyValue, setAdditionalMeta, setDevToolsHook, setFallbackContext, translate, translateDevTools, updateFallbackLocale };\n","/*!\n * vue-i18n v9.13.1\n * (c) 2024 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { getGlobalThis, incrementer, format, makeSymbol, isPlainObject, isArray, deepCopy, isString, hasOwn, isObject, warn, warnOnce, isBoolean, isRegExp, isFunction, inBrowser, assign, isNumber, createEmitter, isEmptyObject } from '@intlify/shared';\nimport { CoreWarnCodes, CoreErrorCodes, createCompileError, DEFAULT_LOCALE, updateFallbackLocale, setFallbackContext, createCoreContext, clearDateTimeFormat, clearNumberFormat, setAdditionalMeta, getFallbackContext, NOT_REOSLVED, isTranslateFallbackWarn, isTranslateMissingWarn, parseTranslateArgs, translate, MISSING_RESOLVE_VALUE, parseDateTimeArgs, datetime, parseNumberArgs, number, isMessageAST, isMessageFunction, fallbackWithLocaleChain, NUMBER_FORMAT_OPTIONS_KEYS, DATETIME_FORMAT_OPTIONS_KEYS, registerMessageCompiler, compile, compileToFunction, registerMessageResolver, resolveValue, registerLocaleFallbacker, setDevToolsHook } from '@intlify/core-base';\nimport { createVNode, Text, computed, watch, getCurrentInstance, ref, shallowRef, Fragment, defineComponent, h, effectScope, inject, onMounted, onUnmounted, onBeforeMount, isRef } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\n\n/**\n * Vue I18n Version\n *\n * @remarks\n * Semver format. Same format as the package.json `version` field.\n *\n * @VueI18nGeneral\n */\nconst VERSION = '9.13.1';\n/**\n * This is only called in esm-bundler builds.\n * istanbul-ignore-next\n */\nfunction initFeatureFlags() {\n if (typeof __VUE_I18N_FULL_INSTALL__ !== 'boolean') {\n getGlobalThis().__VUE_I18N_FULL_INSTALL__ = true;\n }\n if (typeof __VUE_I18N_LEGACY_API__ !== 'boolean') {\n getGlobalThis().__VUE_I18N_LEGACY_API__ = true;\n }\n if (typeof __INTLIFY_JIT_COMPILATION__ !== 'boolean') {\n getGlobalThis().__INTLIFY_JIT_COMPILATION__ = false;\n }\n if (typeof __INTLIFY_DROP_MESSAGE_COMPILER__ !== 'boolean') {\n getGlobalThis().__INTLIFY_DROP_MESSAGE_COMPILER__ = false;\n }\n if (typeof __INTLIFY_PROD_DEVTOOLS__ !== 'boolean') {\n getGlobalThis().__INTLIFY_PROD_DEVTOOLS__ = false;\n }\n}\n\nconst code$1 = CoreWarnCodes.__EXTEND_POINT__;\nconst inc$1 = incrementer(code$1);\nconst I18nWarnCodes = {\n FALLBACK_TO_ROOT: code$1, // 9\n NOT_SUPPORTED_PRESERVE: inc$1(), // 10\n NOT_SUPPORTED_FORMATTER: inc$1(), // 11\n NOT_SUPPORTED_PRESERVE_DIRECTIVE: inc$1(), // 12\n NOT_SUPPORTED_GET_CHOICE_INDEX: inc$1(), // 13\n COMPONENT_NAME_LEGACY_COMPATIBLE: inc$1(), // 14\n NOT_FOUND_PARENT_SCOPE: inc$1(), // 15\n IGNORE_OBJ_FLATTEN: inc$1(), // 16\n NOTICE_DROP_ALLOW_COMPOSITION: inc$1(), // 17\n NOTICE_DROP_TRANSLATE_EXIST_COMPATIBLE_FLAG: inc$1() // 18\n};\nconst warnMessages = {\n [I18nWarnCodes.FALLBACK_TO_ROOT]: `Fall back to {type} '{key}' with root locale.`,\n [I18nWarnCodes.NOT_SUPPORTED_PRESERVE]: `Not supported 'preserve'.`,\n [I18nWarnCodes.NOT_SUPPORTED_FORMATTER]: `Not supported 'formatter'.`,\n [I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE]: `Not supported 'preserveDirectiveContent'.`,\n [I18nWarnCodes.NOT_SUPPORTED_GET_CHOICE_INDEX]: `Not supported 'getChoiceIndex'.`,\n [I18nWarnCodes.COMPONENT_NAME_LEGACY_COMPATIBLE]: `Component name legacy compatible: '{name}' -> 'i18n'`,\n [I18nWarnCodes.NOT_FOUND_PARENT_SCOPE]: `Not found parent scope. use the global scope.`,\n [I18nWarnCodes.IGNORE_OBJ_FLATTEN]: `Ignore object flatten: '{key}' key has an string value`,\n [I18nWarnCodes.NOTICE_DROP_ALLOW_COMPOSITION]: `'allowComposition' option will be dropped in the next major version. For more information, please see 👉 https://tinyurl.com/2p97mcze`,\n [I18nWarnCodes.NOTICE_DROP_TRANSLATE_EXIST_COMPATIBLE_FLAG]: `'translateExistCompatible' option will be dropped in the next major version.`\n};\nfunction getWarnMessage(code, ...args) {\n return format(warnMessages[code], ...args);\n}\n\nconst code = CoreErrorCodes.__EXTEND_POINT__;\nconst inc = incrementer(code);\nconst I18nErrorCodes = {\n // composer module errors\n UNEXPECTED_RETURN_TYPE: code, // 24\n // legacy module errors\n INVALID_ARGUMENT: inc(), // 25\n // i18n module errors\n MUST_BE_CALL_SETUP_TOP: inc(), // 26\n NOT_INSTALLED: inc(), // 27\n NOT_AVAILABLE_IN_LEGACY_MODE: inc(), // 28\n // directive module errors\n REQUIRED_VALUE: inc(), // 29\n INVALID_VALUE: inc(), // 30\n // vue-devtools errors\n CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN: inc(), // 31\n NOT_INSTALLED_WITH_PROVIDE: inc(), // 32\n // unexpected error\n UNEXPECTED_ERROR: inc(), // 33\n // not compatible legacy vue-i18n constructor\n NOT_COMPATIBLE_LEGACY_VUE_I18N: inc(), // 34\n // bridge support vue 2.x only\n BRIDGE_SUPPORT_VUE_2_ONLY: inc(), // 35\n // need to define `i18n` option in `allowComposition: true` and `useScope: 'local' at `useI18n``\n MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION: inc(), // 36\n // Not available Compostion API in Legacy API mode. Please make sure that the legacy API mode is working properly\n NOT_AVAILABLE_COMPOSITION_IN_LEGACY: inc(), // 37\n // for enhancement\n __EXTEND_POINT__: inc() // 38\n};\nfunction createI18nError(code, ...args) {\n return createCompileError(code, null, (process.env.NODE_ENV !== 'production') ? { messages: errorMessages, args } : undefined);\n}\nconst errorMessages = {\n [I18nErrorCodes.UNEXPECTED_RETURN_TYPE]: 'Unexpected return type in composer',\n [I18nErrorCodes.INVALID_ARGUMENT]: 'Invalid argument',\n [I18nErrorCodes.MUST_BE_CALL_SETUP_TOP]: 'Must be called at the top of a `setup` function',\n [I18nErrorCodes.NOT_INSTALLED]: 'Need to install with `app.use` function',\n [I18nErrorCodes.UNEXPECTED_ERROR]: 'Unexpected error',\n [I18nErrorCodes.NOT_AVAILABLE_IN_LEGACY_MODE]: 'Not available in legacy mode',\n [I18nErrorCodes.REQUIRED_VALUE]: `Required in value: {0}`,\n [I18nErrorCodes.INVALID_VALUE]: `Invalid value`,\n [I18nErrorCodes.CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN]: `Cannot setup vue-devtools plugin`,\n [I18nErrorCodes.NOT_INSTALLED_WITH_PROVIDE]: 'Need to install with `provide` function',\n [I18nErrorCodes.NOT_COMPATIBLE_LEGACY_VUE_I18N]: 'Not compatible legacy VueI18n.',\n [I18nErrorCodes.BRIDGE_SUPPORT_VUE_2_ONLY]: 'vue-i18n-bridge support Vue 2.x only',\n [I18nErrorCodes.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION]: 'Must define ‘i18n’ option or custom block in Composition API with using local scope in Legacy API mode',\n [I18nErrorCodes.NOT_AVAILABLE_COMPOSITION_IN_LEGACY]: 'Not available Compostion API in Legacy API mode. Please make sure that the legacy API mode is working properly'\n};\n\nconst TranslateVNodeSymbol = \n/* #__PURE__*/ makeSymbol('__translateVNode');\nconst DatetimePartsSymbol = /* #__PURE__*/ makeSymbol('__datetimeParts');\nconst NumberPartsSymbol = /* #__PURE__*/ makeSymbol('__numberParts');\nconst EnableEmitter = /* #__PURE__*/ makeSymbol('__enableEmitter');\nconst DisableEmitter = /* #__PURE__*/ makeSymbol('__disableEmitter');\nconst SetPluralRulesSymbol = makeSymbol('__setPluralRules');\nmakeSymbol('__intlifyMeta');\nconst InejctWithOptionSymbol = \n/* #__PURE__*/ makeSymbol('__injectWithOption');\nconst DisposeSymbol = /* #__PURE__*/ makeSymbol('__dispose');\nconst __VUE_I18N_BRIDGE__ = '__VUE_I18N_BRIDGE__';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Transform flat json in obj to normal json in obj\n */\nfunction handleFlatJson(obj) {\n // check obj\n if (!isObject(obj)) {\n return obj;\n }\n for (const key in obj) {\n // check key\n if (!hasOwn(obj, key)) {\n continue;\n }\n // handle for normal json\n if (!key.includes('.')) {\n // recursive process value if value is also a object\n if (isObject(obj[key])) {\n handleFlatJson(obj[key]);\n }\n }\n // handle for flat json, transform to normal json\n else {\n // go to the last object\n const subKeys = key.split('.');\n const lastIndex = subKeys.length - 1;\n let currentObj = obj;\n let hasStringValue = false;\n for (let i = 0; i < lastIndex; i++) {\n if (!(subKeys[i] in currentObj)) {\n currentObj[subKeys[i]] = {};\n }\n if (!isObject(currentObj[subKeys[i]])) {\n (process.env.NODE_ENV !== 'production') &&\n warn(getWarnMessage(I18nWarnCodes.IGNORE_OBJ_FLATTEN, {\n key: subKeys[i]\n }));\n hasStringValue = true;\n break;\n }\n currentObj = currentObj[subKeys[i]];\n }\n // update last object value, delete old property\n if (!hasStringValue) {\n currentObj[subKeys[lastIndex]] = obj[key];\n delete obj[key];\n }\n // recursive process value if value is also a object\n if (isObject(currentObj[subKeys[lastIndex]])) {\n handleFlatJson(currentObj[subKeys[lastIndex]]);\n }\n }\n }\n return obj;\n}\nfunction getLocaleMessages(locale, options) {\n const { messages, __i18n, messageResolver, flatJson } = options;\n // prettier-ignore\n const ret = (isPlainObject(messages)\n ? messages\n : isArray(__i18n)\n ? {}\n : { [locale]: {} });\n // merge locale messages of i18n custom block\n if (isArray(__i18n)) {\n __i18n.forEach(custom => {\n if ('locale' in custom && 'resource' in custom) {\n const { locale, resource } = custom;\n if (locale) {\n ret[locale] = ret[locale] || {};\n deepCopy(resource, ret[locale]);\n }\n else {\n deepCopy(resource, ret);\n }\n }\n else {\n isString(custom) && deepCopy(JSON.parse(custom), ret);\n }\n });\n }\n // handle messages for flat json\n if (messageResolver == null && flatJson) {\n for (const key in ret) {\n if (hasOwn(ret, key)) {\n handleFlatJson(ret[key]);\n }\n }\n }\n return ret;\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getComponentOptions(instance) {\n return instance.type ;\n}\nfunction adjustI18nResources(gl, options, componentOptions // eslint-disable-line @typescript-eslint/no-explicit-any\n) {\n let messages = isObject(options.messages) ? options.messages : {};\n if ('__i18nGlobal' in componentOptions) {\n messages = getLocaleMessages(gl.locale.value, {\n messages,\n __i18n: componentOptions.__i18nGlobal\n });\n }\n // merge locale messages\n const locales = Object.keys(messages);\n if (locales.length) {\n locales.forEach(locale => {\n gl.mergeLocaleMessage(locale, messages[locale]);\n });\n }\n {\n // merge datetime formats\n if (isObject(options.datetimeFormats)) {\n const locales = Object.keys(options.datetimeFormats);\n if (locales.length) {\n locales.forEach(locale => {\n gl.mergeDateTimeFormat(locale, options.datetimeFormats[locale]);\n });\n }\n }\n // merge number formats\n if (isObject(options.numberFormats)) {\n const locales = Object.keys(options.numberFormats);\n if (locales.length) {\n locales.forEach(locale => {\n gl.mergeNumberFormat(locale, options.numberFormats[locale]);\n });\n }\n }\n }\n}\nfunction createTextNode(key) {\n return createVNode(Text, null, key, 0)\n ;\n}\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n// extend VNode interface\nconst DEVTOOLS_META = '__INTLIFY_META__';\nconst NOOP_RETURN_ARRAY = () => [];\nconst NOOP_RETURN_FALSE = () => false;\nlet composerID = 0;\nfunction defineCoreMissingHandler(missing) {\n return ((ctx, locale, key, type) => {\n return missing(locale, key, getCurrentInstance() || undefined, type);\n });\n}\n// for Intlify DevTools\n/* #__NO_SIDE_EFFECTS__ */\nconst getMetaInfo = () => {\n const instance = getCurrentInstance();\n let meta = null; // eslint-disable-line @typescript-eslint/no-explicit-any\n return instance && (meta = getComponentOptions(instance)[DEVTOOLS_META])\n ? { [DEVTOOLS_META]: meta } // eslint-disable-line @typescript-eslint/no-explicit-any\n : null;\n};\n/**\n * Create composer interface factory\n *\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nfunction createComposer(options = {}, VueI18nLegacy) {\n const { __root, __injectWithOption } = options;\n const _isGlobal = __root === undefined;\n const flatJson = options.flatJson;\n const _ref = inBrowser ? ref : shallowRef;\n const translateExistCompatible = !!options.translateExistCompatible;\n if ((process.env.NODE_ENV !== 'production')) {\n if (translateExistCompatible && !false) {\n warnOnce(getWarnMessage(I18nWarnCodes.NOTICE_DROP_TRANSLATE_EXIST_COMPATIBLE_FLAG));\n }\n }\n let _inheritLocale = isBoolean(options.inheritLocale)\n ? options.inheritLocale\n : true;\n const _locale = _ref(\n // prettier-ignore\n __root && _inheritLocale\n ? __root.locale.value\n : isString(options.locale)\n ? options.locale\n : DEFAULT_LOCALE);\n const _fallbackLocale = _ref(\n // prettier-ignore\n __root && _inheritLocale\n ? __root.fallbackLocale.value\n : isString(options.fallbackLocale) ||\n isArray(options.fallbackLocale) ||\n isPlainObject(options.fallbackLocale) ||\n options.fallbackLocale === false\n ? options.fallbackLocale\n : _locale.value);\n const _messages = _ref(getLocaleMessages(_locale.value, options));\n // prettier-ignore\n const _datetimeFormats = _ref(isPlainObject(options.datetimeFormats)\n ? options.datetimeFormats\n : { [_locale.value]: {} })\n ;\n // prettier-ignore\n const _numberFormats = _ref(isPlainObject(options.numberFormats)\n ? options.numberFormats\n : { [_locale.value]: {} })\n ;\n // warning suppress options\n // prettier-ignore\n let _missingWarn = __root\n ? __root.missingWarn\n : isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\n ? options.missingWarn\n : true;\n // prettier-ignore\n let _fallbackWarn = __root\n ? __root.fallbackWarn\n : isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\n ? options.fallbackWarn\n : true;\n // prettier-ignore\n let _fallbackRoot = __root\n ? __root.fallbackRoot\n : isBoolean(options.fallbackRoot)\n ? options.fallbackRoot\n : true;\n // configure fall back to root\n let _fallbackFormat = !!options.fallbackFormat;\n // runtime missing\n let _missing = isFunction(options.missing) ? options.missing : null;\n let _runtimeMissing = isFunction(options.missing)\n ? defineCoreMissingHandler(options.missing)\n : null;\n // postTranslation handler\n let _postTranslation = isFunction(options.postTranslation)\n ? options.postTranslation\n : null;\n // prettier-ignore\n let _warnHtmlMessage = __root\n ? __root.warnHtmlMessage\n : isBoolean(options.warnHtmlMessage)\n ? options.warnHtmlMessage\n : true;\n let _escapeParameter = !!options.escapeParameter;\n // custom linked modifiers\n // prettier-ignore\n const _modifiers = __root\n ? __root.modifiers\n : isPlainObject(options.modifiers)\n ? options.modifiers\n : {};\n // pluralRules\n let _pluralRules = options.pluralRules || (__root && __root.pluralRules);\n // runtime context\n // eslint-disable-next-line prefer-const\n let _context;\n const getCoreContext = () => {\n _isGlobal && setFallbackContext(null);\n const ctxOptions = {\n version: VERSION,\n locale: _locale.value,\n fallbackLocale: _fallbackLocale.value,\n messages: _messages.value,\n modifiers: _modifiers,\n pluralRules: _pluralRules,\n missing: _runtimeMissing === null ? undefined : _runtimeMissing,\n missingWarn: _missingWarn,\n fallbackWarn: _fallbackWarn,\n fallbackFormat: _fallbackFormat,\n unresolving: true,\n postTranslation: _postTranslation === null ? undefined : _postTranslation,\n warnHtmlMessage: _warnHtmlMessage,\n escapeParameter: _escapeParameter,\n messageResolver: options.messageResolver,\n messageCompiler: options.messageCompiler,\n __meta: { framework: 'vue' }\n };\n {\n ctxOptions.datetimeFormats = _datetimeFormats.value;\n ctxOptions.numberFormats = _numberFormats.value;\n ctxOptions.__datetimeFormatters = isPlainObject(_context)\n ? _context.__datetimeFormatters\n : undefined;\n ctxOptions.__numberFormatters = isPlainObject(_context)\n ? _context.__numberFormatters\n : undefined;\n }\n if ((process.env.NODE_ENV !== 'production')) {\n ctxOptions.__v_emitter = isPlainObject(_context)\n ? _context.__v_emitter\n : undefined;\n }\n const ctx = createCoreContext(ctxOptions);\n _isGlobal && setFallbackContext(ctx);\n return ctx;\n };\n _context = getCoreContext();\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\n // track reactivity\n function trackReactivityValues() {\n return [\n _locale.value,\n _fallbackLocale.value,\n _messages.value,\n _datetimeFormats.value,\n _numberFormats.value\n ]\n ;\n }\n // locale\n const locale = computed({\n get: () => _locale.value,\n set: val => {\n _locale.value = val;\n _context.locale = _locale.value;\n }\n });\n // fallbackLocale\n const fallbackLocale = computed({\n get: () => _fallbackLocale.value,\n set: val => {\n _fallbackLocale.value = val;\n _context.fallbackLocale = _fallbackLocale.value;\n updateFallbackLocale(_context, _locale.value, val);\n }\n });\n // messages\n const messages = computed(() => _messages.value);\n // datetimeFormats\n const datetimeFormats = /* #__PURE__*/ computed(() => _datetimeFormats.value);\n // numberFormats\n const numberFormats = /* #__PURE__*/ computed(() => _numberFormats.value);\n // getPostTranslationHandler\n function getPostTranslationHandler() {\n return isFunction(_postTranslation) ? _postTranslation : null;\n }\n // setPostTranslationHandler\n function setPostTranslationHandler(handler) {\n _postTranslation = handler;\n _context.postTranslation = handler;\n }\n // getMissingHandler\n function getMissingHandler() {\n return _missing;\n }\n // setMissingHandler\n function setMissingHandler(handler) {\n if (handler !== null) {\n _runtimeMissing = defineCoreMissingHandler(handler);\n }\n _missing = handler;\n _context.missing = _runtimeMissing;\n }\n function isResolvedTranslateMessage(type, arg // eslint-disable-line @typescript-eslint/no-explicit-any\n ) {\n return type !== 'translate' || !arg.resolvedMessage;\n }\n const wrapWithDeps = (fn, argumentParser, warnType, fallbackSuccess, fallbackFail, successCondition) => {\n trackReactivityValues(); // track reactive dependency\n // NOTE: experimental !!\n let ret;\n try {\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\n setAdditionalMeta(getMetaInfo());\n }\n if (!_isGlobal) {\n _context.fallbackContext = __root\n ? getFallbackContext()\n : undefined;\n }\n ret = fn(_context);\n }\n finally {\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\n setAdditionalMeta(null);\n }\n if (!_isGlobal) {\n _context.fallbackContext = undefined;\n }\n }\n if ((warnType !== 'translate exists' && // for not `te` (e.g `t`)\n isNumber(ret) &&\n ret === NOT_REOSLVED) ||\n (warnType === 'translate exists' && !ret) // for `te`\n ) {\n const [key, arg2] = argumentParser();\n if ((process.env.NODE_ENV !== 'production') &&\n __root &&\n isString(key) &&\n isResolvedTranslateMessage(warnType, arg2)) {\n if (_fallbackRoot &&\n (isTranslateFallbackWarn(_fallbackWarn, key) ||\n isTranslateMissingWarn(_missingWarn, key))) {\n warn(getWarnMessage(I18nWarnCodes.FALLBACK_TO_ROOT, {\n key,\n type: warnType\n }));\n }\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production')) {\n const { __v_emitter: emitter } = _context;\n if (emitter && _fallbackRoot) {\n emitter.emit(\"fallback\" /* VueDevToolsTimelineEvents.FALBACK */, {\n type: warnType,\n key,\n to: 'global',\n groupId: `${warnType}:${key}`\n });\n }\n }\n }\n return __root && _fallbackRoot\n ? fallbackSuccess(__root)\n : fallbackFail(key);\n }\n else if (successCondition(ret)) {\n return ret;\n }\n else {\n /* istanbul ignore next */\n throw createI18nError(I18nErrorCodes.UNEXPECTED_RETURN_TYPE);\n }\n };\n // t\n function t(...args) {\n return wrapWithDeps(context => Reflect.apply(translate, null, [context, ...args]), () => parseTranslateArgs(...args), 'translate', root => Reflect.apply(root.t, root, [...args]), key => key, val => isString(val));\n }\n // rt\n function rt(...args) {\n const [arg1, arg2, arg3] = args;\n if (arg3 && !isObject(arg3)) {\n throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT);\n }\n return t(...[arg1, arg2, assign({ resolvedMessage: true }, arg3 || {})]);\n }\n // d\n function d(...args) {\n return wrapWithDeps(context => Reflect.apply(datetime, null, [context, ...args]), () => parseDateTimeArgs(...args), 'datetime format', root => Reflect.apply(root.d, root, [...args]), () => MISSING_RESOLVE_VALUE, val => isString(val));\n }\n // n\n function n(...args) {\n return wrapWithDeps(context => Reflect.apply(number, null, [context, ...args]), () => parseNumberArgs(...args), 'number format', root => Reflect.apply(root.n, root, [...args]), () => MISSING_RESOLVE_VALUE, val => isString(val));\n }\n // for custom processor\n function normalize(values) {\n return values.map(val => isString(val) || isNumber(val) || isBoolean(val)\n ? createTextNode(String(val))\n : val);\n }\n const interpolate = (val) => val;\n const processor = {\n normalize,\n interpolate,\n type: 'vnode'\n };\n // translateVNode, using for `i18n-t` component\n function translateVNode(...args) {\n return wrapWithDeps(context => {\n let ret;\n const _context = context;\n try {\n _context.processor = processor;\n ret = Reflect.apply(translate, null, [_context, ...args]);\n }\n finally {\n _context.processor = null;\n }\n return ret;\n }, () => parseTranslateArgs(...args), 'translate', \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n root => root[TranslateVNodeSymbol](...args), key => [createTextNode(key)], val => isArray(val));\n }\n // numberParts, using for `i18n-n` component\n function numberParts(...args) {\n return wrapWithDeps(context => Reflect.apply(number, null, [context, ...args]), () => parseNumberArgs(...args), 'number format', \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n root => root[NumberPartsSymbol](...args), NOOP_RETURN_ARRAY, val => isString(val) || isArray(val));\n }\n // datetimeParts, using for `i18n-d` component\n function datetimeParts(...args) {\n return wrapWithDeps(context => Reflect.apply(datetime, null, [context, ...args]), () => parseDateTimeArgs(...args), 'datetime format', \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n root => root[DatetimePartsSymbol](...args), NOOP_RETURN_ARRAY, val => isString(val) || isArray(val));\n }\n function setPluralRules(rules) {\n _pluralRules = rules;\n _context.pluralRules = _pluralRules;\n }\n // te\n function te(key, locale) {\n return wrapWithDeps(() => {\n if (!key) {\n return false;\n }\n const targetLocale = isString(locale) ? locale : _locale.value;\n const message = getLocaleMessage(targetLocale);\n const resolved = _context.messageResolver(message, key);\n return !translateExistCompatible\n ? isMessageAST(resolved) ||\n isMessageFunction(resolved) ||\n isString(resolved)\n : resolved != null;\n }, () => [key], 'translate exists', root => {\n return Reflect.apply(root.te, root, [key, locale]);\n }, NOOP_RETURN_FALSE, val => isBoolean(val));\n }\n function resolveMessages(key) {\n let messages = null;\n const locales = fallbackWithLocaleChain(_context, _fallbackLocale.value, _locale.value);\n for (let i = 0; i < locales.length; i++) {\n const targetLocaleMessages = _messages.value[locales[i]] || {};\n const messageValue = _context.messageResolver(targetLocaleMessages, key);\n if (messageValue != null) {\n messages = messageValue;\n break;\n }\n }\n return messages;\n }\n // tm\n function tm(key) {\n const messages = resolveMessages(key);\n // prettier-ignore\n return messages != null\n ? messages\n : __root\n ? __root.tm(key) || {}\n : {};\n }\n // getLocaleMessage\n function getLocaleMessage(locale) {\n return (_messages.value[locale] || {});\n }\n // setLocaleMessage\n function setLocaleMessage(locale, message) {\n if (flatJson) {\n const _message = { [locale]: message };\n for (const key in _message) {\n if (hasOwn(_message, key)) {\n handleFlatJson(_message[key]);\n }\n }\n message = _message[locale];\n }\n _messages.value[locale] = message;\n _context.messages = _messages.value;\n }\n // mergeLocaleMessage\n function mergeLocaleMessage(locale, message) {\n _messages.value[locale] = _messages.value[locale] || {};\n const _message = { [locale]: message };\n if (flatJson) {\n for (const key in _message) {\n if (hasOwn(_message, key)) {\n handleFlatJson(_message[key]);\n }\n }\n }\n message = _message[locale];\n deepCopy(message, _messages.value[locale]);\n _context.messages = _messages.value;\n }\n // getDateTimeFormat\n function getDateTimeFormat(locale) {\n return _datetimeFormats.value[locale] || {};\n }\n // setDateTimeFormat\n function setDateTimeFormat(locale, format) {\n _datetimeFormats.value[locale] = format;\n _context.datetimeFormats = _datetimeFormats.value;\n clearDateTimeFormat(_context, locale, format);\n }\n // mergeDateTimeFormat\n function mergeDateTimeFormat(locale, format) {\n _datetimeFormats.value[locale] = assign(_datetimeFormats.value[locale] || {}, format);\n _context.datetimeFormats = _datetimeFormats.value;\n clearDateTimeFormat(_context, locale, format);\n }\n // getNumberFormat\n function getNumberFormat(locale) {\n return _numberFormats.value[locale] || {};\n }\n // setNumberFormat\n function setNumberFormat(locale, format) {\n _numberFormats.value[locale] = format;\n _context.numberFormats = _numberFormats.value;\n clearNumberFormat(_context, locale, format);\n }\n // mergeNumberFormat\n function mergeNumberFormat(locale, format) {\n _numberFormats.value[locale] = assign(_numberFormats.value[locale] || {}, format);\n _context.numberFormats = _numberFormats.value;\n clearNumberFormat(_context, locale, format);\n }\n // for debug\n composerID++;\n // watch root locale & fallbackLocale\n if (__root && inBrowser) {\n watch(__root.locale, (val) => {\n if (_inheritLocale) {\n _locale.value = val;\n _context.locale = val;\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\n }\n });\n watch(__root.fallbackLocale, (val) => {\n if (_inheritLocale) {\n _fallbackLocale.value = val;\n _context.fallbackLocale = val;\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\n }\n });\n }\n // define basic composition API!\n const composer = {\n id: composerID,\n locale,\n fallbackLocale,\n get inheritLocale() {\n return _inheritLocale;\n },\n set inheritLocale(val) {\n _inheritLocale = val;\n if (val && __root) {\n _locale.value = __root.locale.value;\n _fallbackLocale.value = __root.fallbackLocale.value;\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\n }\n },\n get availableLocales() {\n return Object.keys(_messages.value).sort();\n },\n messages,\n get modifiers() {\n return _modifiers;\n },\n get pluralRules() {\n return _pluralRules || {};\n },\n get isGlobal() {\n return _isGlobal;\n },\n get missingWarn() {\n return _missingWarn;\n },\n set missingWarn(val) {\n _missingWarn = val;\n _context.missingWarn = _missingWarn;\n },\n get fallbackWarn() {\n return _fallbackWarn;\n },\n set fallbackWarn(val) {\n _fallbackWarn = val;\n _context.fallbackWarn = _fallbackWarn;\n },\n get fallbackRoot() {\n return _fallbackRoot;\n },\n set fallbackRoot(val) {\n _fallbackRoot = val;\n },\n get fallbackFormat() {\n return _fallbackFormat;\n },\n set fallbackFormat(val) {\n _fallbackFormat = val;\n _context.fallbackFormat = _fallbackFormat;\n },\n get warnHtmlMessage() {\n return _warnHtmlMessage;\n },\n set warnHtmlMessage(val) {\n _warnHtmlMessage = val;\n _context.warnHtmlMessage = val;\n },\n get escapeParameter() {\n return _escapeParameter;\n },\n set escapeParameter(val) {\n _escapeParameter = val;\n _context.escapeParameter = val;\n },\n t,\n getLocaleMessage,\n setLocaleMessage,\n mergeLocaleMessage,\n getPostTranslationHandler,\n setPostTranslationHandler,\n getMissingHandler,\n setMissingHandler,\n [SetPluralRulesSymbol]: setPluralRules\n };\n {\n composer.datetimeFormats = datetimeFormats;\n composer.numberFormats = numberFormats;\n composer.rt = rt;\n composer.te = te;\n composer.tm = tm;\n composer.d = d;\n composer.n = n;\n composer.getDateTimeFormat = getDateTimeFormat;\n composer.setDateTimeFormat = setDateTimeFormat;\n composer.mergeDateTimeFormat = mergeDateTimeFormat;\n composer.getNumberFormat = getNumberFormat;\n composer.setNumberFormat = setNumberFormat;\n composer.mergeNumberFormat = mergeNumberFormat;\n composer[InejctWithOptionSymbol] = __injectWithOption;\n composer[TranslateVNodeSymbol] = translateVNode;\n composer[DatetimePartsSymbol] = datetimeParts;\n composer[NumberPartsSymbol] = numberParts;\n }\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production')) {\n composer[EnableEmitter] = (emitter) => {\n _context.__v_emitter = emitter;\n };\n composer[DisableEmitter] = () => {\n _context.__v_emitter = undefined;\n };\n }\n return composer;\n}\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Convert to I18n Composer Options from VueI18n Options\n *\n * @internal\n */\nfunction convertComposerOptions(options) {\n const locale = isString(options.locale) ? options.locale : DEFAULT_LOCALE;\n const fallbackLocale = isString(options.fallbackLocale) ||\n isArray(options.fallbackLocale) ||\n isPlainObject(options.fallbackLocale) ||\n options.fallbackLocale === false\n ? options.fallbackLocale\n : locale;\n const missing = isFunction(options.missing) ? options.missing : undefined;\n const missingWarn = isBoolean(options.silentTranslationWarn) ||\n isRegExp(options.silentTranslationWarn)\n ? !options.silentTranslationWarn\n : true;\n const fallbackWarn = isBoolean(options.silentFallbackWarn) ||\n isRegExp(options.silentFallbackWarn)\n ? !options.silentFallbackWarn\n : true;\n const fallbackRoot = isBoolean(options.fallbackRoot)\n ? options.fallbackRoot\n : true;\n const fallbackFormat = !!options.formatFallbackMessages;\n const modifiers = isPlainObject(options.modifiers) ? options.modifiers : {};\n const pluralizationRules = options.pluralizationRules;\n const postTranslation = isFunction(options.postTranslation)\n ? options.postTranslation\n : undefined;\n const warnHtmlMessage = isString(options.warnHtmlInMessage)\n ? options.warnHtmlInMessage !== 'off'\n : true;\n const escapeParameter = !!options.escapeParameterHtml;\n const inheritLocale = isBoolean(options.sync) ? options.sync : true;\n if ((process.env.NODE_ENV !== 'production') && options.formatter) {\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_FORMATTER));\n }\n if ((process.env.NODE_ENV !== 'production') && options.preserveDirectiveContent) {\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE));\n }\n let messages = options.messages;\n if (isPlainObject(options.sharedMessages)) {\n const sharedMessages = options.sharedMessages;\n const locales = Object.keys(sharedMessages);\n messages = locales.reduce((messages, locale) => {\n const message = messages[locale] || (messages[locale] = {});\n assign(message, sharedMessages[locale]);\n return messages;\n }, (messages || {}));\n }\n const { __i18n, __root, __injectWithOption } = options;\n const datetimeFormats = options.datetimeFormats;\n const numberFormats = options.numberFormats;\n const flatJson = options.flatJson;\n const translateExistCompatible = options\n .translateExistCompatible;\n return {\n locale,\n fallbackLocale,\n messages,\n flatJson,\n datetimeFormats,\n numberFormats,\n missing,\n missingWarn,\n fallbackWarn,\n fallbackRoot,\n fallbackFormat,\n modifiers,\n pluralRules: pluralizationRules,\n postTranslation,\n warnHtmlMessage,\n escapeParameter,\n messageResolver: options.messageResolver,\n inheritLocale,\n translateExistCompatible,\n __i18n,\n __root,\n __injectWithOption\n };\n}\n/**\n * create VueI18n interface factory\n *\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nfunction createVueI18n(options = {}, VueI18nLegacy) {\n {\n const composer = createComposer(convertComposerOptions(options));\n const { __extender } = options;\n // defines VueI18n\n const vueI18n = {\n // id\n id: composer.id,\n // locale\n get locale() {\n return composer.locale.value;\n },\n set locale(val) {\n composer.locale.value = val;\n },\n // fallbackLocale\n get fallbackLocale() {\n return composer.fallbackLocale.value;\n },\n set fallbackLocale(val) {\n composer.fallbackLocale.value = val;\n },\n // messages\n get messages() {\n return composer.messages.value;\n },\n // datetimeFormats\n get datetimeFormats() {\n return composer.datetimeFormats.value;\n },\n // numberFormats\n get numberFormats() {\n return composer.numberFormats.value;\n },\n // availableLocales\n get availableLocales() {\n return composer.availableLocales;\n },\n // formatter\n get formatter() {\n (process.env.NODE_ENV !== 'production') && warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_FORMATTER));\n // dummy\n return {\n interpolate() {\n return [];\n }\n };\n },\n set formatter(val) {\n (process.env.NODE_ENV !== 'production') && warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_FORMATTER));\n },\n // missing\n get missing() {\n return composer.getMissingHandler();\n },\n set missing(handler) {\n composer.setMissingHandler(handler);\n },\n // silentTranslationWarn\n get silentTranslationWarn() {\n return isBoolean(composer.missingWarn)\n ? !composer.missingWarn\n : composer.missingWarn;\n },\n set silentTranslationWarn(val) {\n composer.missingWarn = isBoolean(val) ? !val : val;\n },\n // silentFallbackWarn\n get silentFallbackWarn() {\n return isBoolean(composer.fallbackWarn)\n ? !composer.fallbackWarn\n : composer.fallbackWarn;\n },\n set silentFallbackWarn(val) {\n composer.fallbackWarn = isBoolean(val) ? !val : val;\n },\n // modifiers\n get modifiers() {\n return composer.modifiers;\n },\n // formatFallbackMessages\n get formatFallbackMessages() {\n return composer.fallbackFormat;\n },\n set formatFallbackMessages(val) {\n composer.fallbackFormat = val;\n },\n // postTranslation\n get postTranslation() {\n return composer.getPostTranslationHandler();\n },\n set postTranslation(handler) {\n composer.setPostTranslationHandler(handler);\n },\n // sync\n get sync() {\n return composer.inheritLocale;\n },\n set sync(val) {\n composer.inheritLocale = val;\n },\n // warnInHtmlMessage\n get warnHtmlInMessage() {\n return composer.warnHtmlMessage ? 'warn' : 'off';\n },\n set warnHtmlInMessage(val) {\n composer.warnHtmlMessage = val !== 'off';\n },\n // escapeParameterHtml\n get escapeParameterHtml() {\n return composer.escapeParameter;\n },\n set escapeParameterHtml(val) {\n composer.escapeParameter = val;\n },\n // preserveDirectiveContent\n get preserveDirectiveContent() {\n (process.env.NODE_ENV !== 'production') &&\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE));\n return true;\n },\n set preserveDirectiveContent(val) {\n (process.env.NODE_ENV !== 'production') &&\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE));\n },\n // pluralizationRules\n get pluralizationRules() {\n return composer.pluralRules || {};\n },\n // for internal\n __composer: composer,\n // t\n t(...args) {\n const [arg1, arg2, arg3] = args;\n const options = {};\n let list = null;\n let named = null;\n if (!isString(arg1)) {\n throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT);\n }\n const key = arg1;\n if (isString(arg2)) {\n options.locale = arg2;\n }\n else if (isArray(arg2)) {\n list = arg2;\n }\n else if (isPlainObject(arg2)) {\n named = arg2;\n }\n if (isArray(arg3)) {\n list = arg3;\n }\n else if (isPlainObject(arg3)) {\n named = arg3;\n }\n // return composer.t(key, (list || named || {}) as any, options)\n return Reflect.apply(composer.t, composer, [\n key,\n (list || named || {}),\n options\n ]);\n },\n rt(...args) {\n return Reflect.apply(composer.rt, composer, [...args]);\n },\n // tc\n tc(...args) {\n const [arg1, arg2, arg3] = args;\n const options = { plural: 1 };\n let list = null;\n let named = null;\n if (!isString(arg1)) {\n throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT);\n }\n const key = arg1;\n if (isString(arg2)) {\n options.locale = arg2;\n }\n else if (isNumber(arg2)) {\n options.plural = arg2;\n }\n else if (isArray(arg2)) {\n list = arg2;\n }\n else if (isPlainObject(arg2)) {\n named = arg2;\n }\n if (isString(arg3)) {\n options.locale = arg3;\n }\n else if (isArray(arg3)) {\n list = arg3;\n }\n else if (isPlainObject(arg3)) {\n named = arg3;\n }\n // return composer.t(key, (list || named || {}) as any, options)\n return Reflect.apply(composer.t, composer, [\n key,\n (list || named || {}),\n options\n ]);\n },\n // te\n te(key, locale) {\n return composer.te(key, locale);\n },\n // tm\n tm(key) {\n return composer.tm(key);\n },\n // getLocaleMessage\n getLocaleMessage(locale) {\n return composer.getLocaleMessage(locale);\n },\n // setLocaleMessage\n setLocaleMessage(locale, message) {\n composer.setLocaleMessage(locale, message);\n },\n // mergeLocaleMessage\n mergeLocaleMessage(locale, message) {\n composer.mergeLocaleMessage(locale, message);\n },\n // d\n d(...args) {\n return Reflect.apply(composer.d, composer, [...args]);\n },\n // getDateTimeFormat\n getDateTimeFormat(locale) {\n return composer.getDateTimeFormat(locale);\n },\n // setDateTimeFormat\n setDateTimeFormat(locale, format) {\n composer.setDateTimeFormat(locale, format);\n },\n // mergeDateTimeFormat\n mergeDateTimeFormat(locale, format) {\n composer.mergeDateTimeFormat(locale, format);\n },\n // n\n n(...args) {\n return Reflect.apply(composer.n, composer, [...args]);\n },\n // getNumberFormat\n getNumberFormat(locale) {\n return composer.getNumberFormat(locale);\n },\n // setNumberFormat\n setNumberFormat(locale, format) {\n composer.setNumberFormat(locale, format);\n },\n // mergeNumberFormat\n mergeNumberFormat(locale, format) {\n composer.mergeNumberFormat(locale, format);\n },\n // getChoiceIndex\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getChoiceIndex(choice, choicesLength) {\n (process.env.NODE_ENV !== 'production') &&\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_GET_CHOICE_INDEX));\n return -1;\n }\n };\n vueI18n.__extender = __extender;\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production')) {\n vueI18n.__enableEmitter = (emitter) => {\n const __composer = composer;\n __composer[EnableEmitter] && __composer[EnableEmitter](emitter);\n };\n vueI18n.__disableEmitter = () => {\n const __composer = composer;\n __composer[DisableEmitter] && __composer[DisableEmitter]();\n };\n }\n return vueI18n;\n }\n}\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\nconst baseFormatProps = {\n tag: {\n type: [String, Object]\n },\n locale: {\n type: String\n },\n scope: {\n type: String,\n // NOTE: avoid https://github.com/microsoft/rushstack/issues/1050\n validator: (val /* ComponentI18nScope */) => val === 'parent' || val === 'global',\n default: 'parent' /* ComponentI18nScope */\n },\n i18n: {\n type: Object\n }\n};\n\nfunction getInterpolateArg(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n{ slots }, // SetupContext,\nkeys) {\n if (keys.length === 1 && keys[0] === 'default') {\n // default slot with list\n const ret = slots.default ? slots.default() : [];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return ret.reduce((slot, current) => {\n return [\n ...slot,\n // prettier-ignore\n ...(current.type === Fragment ? current.children : [current]\n )\n ];\n }, []);\n }\n else {\n // named slots\n return keys.reduce((arg, key) => {\n const slot = slots[key];\n if (slot) {\n arg[key] = slot();\n }\n return arg;\n }, {});\n }\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getFragmentableTag(tag) {\n return Fragment ;\n}\n\nconst TranslationImpl = /*#__PURE__*/ defineComponent({\n /* eslint-disable */\n name: 'i18n-t',\n props: assign({\n keypath: {\n type: String,\n required: true\n },\n plural: {\n type: [Number, String],\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n validator: (val) => isNumber(val) || !isNaN(val)\n }\n }, baseFormatProps),\n /* eslint-enable */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n setup(props, context) {\n const { slots, attrs } = context;\n // NOTE: avoid https://github.com/microsoft/rushstack/issues/1050\n const i18n = props.i18n ||\n useI18n({\n useScope: props.scope,\n __useComponent: true\n });\n return () => {\n const keys = Object.keys(slots).filter(key => key !== '_');\n const options = {};\n if (props.locale) {\n options.locale = props.locale;\n }\n if (props.plural !== undefined) {\n options.plural = isString(props.plural) ? +props.plural : props.plural;\n }\n const arg = getInterpolateArg(context, keys);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const children = i18n[TranslateVNodeSymbol](props.keypath, arg, options);\n const assignedAttrs = assign({}, attrs);\n const tag = isString(props.tag) || isObject(props.tag)\n ? props.tag\n : getFragmentableTag();\n return h(tag, assignedAttrs, children);\n };\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/**\n * Translation Component\n *\n * @remarks\n * See the following items for property about details\n *\n * @VueI18nSee [TranslationProps](component#translationprops)\n * @VueI18nSee [BaseFormatProps](component#baseformatprops)\n * @VueI18nSee [Component Interpolation](../guide/advanced/component)\n *\n * @example\n * ```html\n *
\n * \n * \n * {{ $t('tos') }}\n * \n * \n *
\n * ```\n * ```js\n * import { createApp } from 'vue'\n * import { createI18n } from 'vue-i18n'\n *\n * const messages = {\n * en: {\n * tos: 'Term of Service',\n * term: 'I accept xxx {0}.'\n * },\n * ja: {\n * tos: '利用規約',\n * term: '私は xxx の{0}に同意します。'\n * }\n * }\n *\n * const i18n = createI18n({\n * locale: 'en',\n * messages\n * })\n *\n * const app = createApp({\n * data: {\n * url: '/term'\n * }\n * }).use(i18n).mount('#app')\n * ```\n *\n * @VueI18nComponent\n */\nconst Translation = TranslationImpl;\nconst I18nT = Translation;\n\nfunction isVNode(target) {\n return isArray(target) && !isString(target[0]);\n}\nfunction renderFormatter(props, context, slotKeys, partFormatter) {\n const { slots, attrs } = context;\n return () => {\n const options = { part: true };\n let overrides = {};\n if (props.locale) {\n options.locale = props.locale;\n }\n if (isString(props.format)) {\n options.key = props.format;\n }\n else if (isObject(props.format)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (isString(props.format.key)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n options.key = props.format.key;\n }\n // Filter out number format options only\n overrides = Object.keys(props.format).reduce((options, prop) => {\n return slotKeys.includes(prop)\n ? assign({}, options, { [prop]: props.format[prop] }) // eslint-disable-line @typescript-eslint/no-explicit-any\n : options;\n }, {});\n }\n const parts = partFormatter(...[props.value, options, overrides]);\n let children = [options.key];\n if (isArray(parts)) {\n children = parts.map((part, index) => {\n const slot = slots[part.type];\n const node = slot\n ? slot({ [part.type]: part.value, index, parts })\n : [part.value];\n if (isVNode(node)) {\n node[0].key = `${part.type}-${index}`;\n }\n return node;\n });\n }\n else if (isString(parts)) {\n children = [parts];\n }\n const assignedAttrs = assign({}, attrs);\n const tag = isString(props.tag) || isObject(props.tag)\n ? props.tag\n : getFragmentableTag();\n return h(tag, assignedAttrs, children);\n };\n}\n\nconst NumberFormatImpl = /*#__PURE__*/ defineComponent({\n /* eslint-disable */\n name: 'i18n-n',\n props: assign({\n value: {\n type: Number,\n required: true\n },\n format: {\n type: [String, Object]\n }\n }, baseFormatProps),\n /* eslint-enable */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n setup(props, context) {\n const i18n = props.i18n ||\n useI18n({\n useScope: props.scope,\n __useComponent: true\n });\n return renderFormatter(props, context, NUMBER_FORMAT_OPTIONS_KEYS, (...args) => \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n i18n[NumberPartsSymbol](...args));\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/**\n * Number Format Component\n *\n * @remarks\n * See the following items for property about details\n *\n * @VueI18nSee [FormattableProps](component#formattableprops)\n * @VueI18nSee [BaseFormatProps](component#baseformatprops)\n * @VueI18nSee [Custom Formatting](../guide/essentials/number#custom-formatting)\n *\n * @VueI18nDanger\n * Not supported IE, due to no support `Intl.NumberFormat#formatToParts` in [IE](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/formatToParts)\n *\n * If you want to use it, you need to use [polyfill](https://github.com/formatjs/formatjs/tree/main/packages/intl-numberformat)\n *\n * @VueI18nComponent\n */\nconst NumberFormat = NumberFormatImpl;\nconst I18nN = NumberFormat;\n\nconst DatetimeFormatImpl = /* #__PURE__*/ defineComponent({\n /* eslint-disable */\n name: 'i18n-d',\n props: assign({\n value: {\n type: [Number, Date],\n required: true\n },\n format: {\n type: [String, Object]\n }\n }, baseFormatProps),\n /* eslint-enable */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n setup(props, context) {\n const i18n = props.i18n ||\n useI18n({\n useScope: props.scope,\n __useComponent: true\n });\n return renderFormatter(props, context, DATETIME_FORMAT_OPTIONS_KEYS, (...args) => \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n i18n[DatetimePartsSymbol](...args));\n }\n});\n/**\n * Datetime Format Component\n *\n * @remarks\n * See the following items for property about details\n *\n * @VueI18nSee [FormattableProps](component#formattableprops)\n * @VueI18nSee [BaseFormatProps](component#baseformatprops)\n * @VueI18nSee [Custom Formatting](../guide/essentials/datetime#custom-formatting)\n *\n * @VueI18nDanger\n * Not supported IE, due to no support `Intl.DateTimeFormat#formatToParts` in [IE](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatToParts)\n *\n * If you want to use it, you need to use [polyfill](https://github.com/formatjs/formatjs/tree/main/packages/intl-datetimeformat)\n *\n * @VueI18nComponent\n */\nconst DatetimeFormat = DatetimeFormatImpl;\nconst I18nD = DatetimeFormat;\n\nfunction getComposer$2(i18n, instance) {\n const i18nInternal = i18n;\n if (i18n.mode === 'composition') {\n return (i18nInternal.__getInstance(instance) || i18n.global);\n }\n else {\n const vueI18n = i18nInternal.__getInstance(instance);\n return vueI18n != null\n ? vueI18n.__composer\n : i18n.global.__composer;\n }\n}\nfunction vTDirective(i18n) {\n const _process = (binding) => {\n const { instance, modifiers, value } = binding;\n /* istanbul ignore if */\n if (!instance || !instance.$) {\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\n }\n const composer = getComposer$2(i18n, instance.$);\n if ((process.env.NODE_ENV !== 'production') && modifiers.preserve) {\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE));\n }\n const parsedValue = parseValue(value);\n return [\n Reflect.apply(composer.t, composer, [...makeParams(parsedValue)]),\n composer\n ];\n };\n const register = (el, binding) => {\n const [textContent, composer] = _process(binding);\n if (inBrowser && i18n.global === composer) {\n // global scope only\n el.__i18nWatcher = watch(composer.locale, () => {\n binding.instance && binding.instance.$forceUpdate();\n });\n }\n el.__composer = composer;\n el.textContent = textContent;\n };\n const unregister = (el) => {\n if (inBrowser && el.__i18nWatcher) {\n el.__i18nWatcher();\n el.__i18nWatcher = undefined;\n delete el.__i18nWatcher;\n }\n if (el.__composer) {\n el.__composer = undefined;\n delete el.__composer;\n }\n };\n const update = (el, { value }) => {\n if (el.__composer) {\n const composer = el.__composer;\n const parsedValue = parseValue(value);\n el.textContent = Reflect.apply(composer.t, composer, [\n ...makeParams(parsedValue)\n ]);\n }\n };\n const getSSRProps = (binding) => {\n const [textContent] = _process(binding);\n return { textContent };\n };\n return {\n created: register,\n unmounted: unregister,\n beforeUpdate: update,\n getSSRProps\n };\n}\nfunction parseValue(value) {\n if (isString(value)) {\n return { path: value };\n }\n else if (isPlainObject(value)) {\n if (!('path' in value)) {\n throw createI18nError(I18nErrorCodes.REQUIRED_VALUE, 'path');\n }\n return value;\n }\n else {\n throw createI18nError(I18nErrorCodes.INVALID_VALUE);\n }\n}\nfunction makeParams(value) {\n const { path, locale, args, choice, plural } = value;\n const options = {};\n const named = args || {};\n if (isString(locale)) {\n options.locale = locale;\n }\n if (isNumber(choice)) {\n options.plural = choice;\n }\n if (isNumber(plural)) {\n options.plural = plural;\n }\n return [path, named, options];\n}\n\nfunction apply(app, i18n, ...options) {\n const pluginOptions = isPlainObject(options[0])\n ? options[0]\n : {};\n const useI18nComponentName = !!pluginOptions.useI18nComponentName;\n const globalInstall = isBoolean(pluginOptions.globalInstall)\n ? pluginOptions.globalInstall\n : true;\n if ((process.env.NODE_ENV !== 'production') && globalInstall && useI18nComponentName) {\n warn(getWarnMessage(I18nWarnCodes.COMPONENT_NAME_LEGACY_COMPATIBLE, {\n name: Translation.name\n }));\n }\n if (globalInstall) {\n [!useI18nComponentName ? Translation.name : 'i18n', 'I18nT'].forEach(name => app.component(name, Translation));\n [NumberFormat.name, 'I18nN'].forEach(name => app.component(name, NumberFormat));\n [DatetimeFormat.name, 'I18nD'].forEach(name => app.component(name, DatetimeFormat));\n }\n // install directive\n {\n app.directive('t', vTDirective(i18n));\n }\n}\n\nconst VueDevToolsLabels = {\n [\"vue-devtools-plugin-vue-i18n\" /* VueDevToolsIDs.PLUGIN */]: 'Vue I18n devtools',\n [\"vue-i18n-resource-inspector\" /* VueDevToolsIDs.CUSTOM_INSPECTOR */]: 'I18n Resources',\n [\"vue-i18n-timeline\" /* VueDevToolsIDs.TIMELINE */]: 'Vue I18n'\n};\nconst VueDevToolsPlaceholders = {\n [\"vue-i18n-resource-inspector\" /* VueDevToolsIDs.CUSTOM_INSPECTOR */]: 'Search for scopes ...'\n};\nconst VueDevToolsTimelineColors = {\n [\"vue-i18n-timeline\" /* VueDevToolsIDs.TIMELINE */]: 0xffcd19\n};\n\nconst VUE_I18N_COMPONENT_TYPES = 'vue-i18n: composer properties';\nlet devtoolsApi;\nasync function enableDevTools(app, i18n) {\n return new Promise((resolve, reject) => {\n try {\n setupDevtoolsPlugin({\n id: \"vue-devtools-plugin-vue-i18n\" /* VueDevToolsIDs.PLUGIN */,\n label: VueDevToolsLabels[\"vue-devtools-plugin-vue-i18n\" /* VueDevToolsIDs.PLUGIN */],\n packageName: 'vue-i18n',\n homepage: 'https://vue-i18n.intlify.dev',\n logo: 'https://vue-i18n.intlify.dev/vue-i18n-devtools-logo.png',\n componentStateTypes: [VUE_I18N_COMPONENT_TYPES],\n app: app // eslint-disable-line @typescript-eslint/no-explicit-any\n }, api => {\n devtoolsApi = api;\n api.on.visitComponentTree(({ componentInstance, treeNode }) => {\n updateComponentTreeTags(componentInstance, treeNode, i18n);\n });\n api.on.inspectComponent(({ componentInstance, instanceData }) => {\n if (componentInstance.vnode.el &&\n componentInstance.vnode.el.__VUE_I18N__ &&\n instanceData) {\n if (i18n.mode === 'legacy') {\n // ignore global scope on legacy mode\n if (componentInstance.vnode.el.__VUE_I18N__ !==\n i18n.global.__composer) {\n inspectComposer(instanceData, componentInstance.vnode.el.__VUE_I18N__);\n }\n }\n else {\n inspectComposer(instanceData, componentInstance.vnode.el.__VUE_I18N__);\n }\n }\n });\n api.addInspector({\n id: \"vue-i18n-resource-inspector\" /* VueDevToolsIDs.CUSTOM_INSPECTOR */,\n label: VueDevToolsLabels[\"vue-i18n-resource-inspector\" /* VueDevToolsIDs.CUSTOM_INSPECTOR */],\n icon: 'language',\n treeFilterPlaceholder: VueDevToolsPlaceholders[\"vue-i18n-resource-inspector\" /* VueDevToolsIDs.CUSTOM_INSPECTOR */]\n });\n api.on.getInspectorTree(payload => {\n if (payload.app === app &&\n payload.inspectorId === \"vue-i18n-resource-inspector\" /* VueDevToolsIDs.CUSTOM_INSPECTOR */) {\n registerScope(payload, i18n);\n }\n });\n const roots = new Map();\n api.on.getInspectorState(async (payload) => {\n if (payload.app === app &&\n payload.inspectorId === \"vue-i18n-resource-inspector\" /* VueDevToolsIDs.CUSTOM_INSPECTOR */) {\n api.unhighlightElement();\n inspectScope(payload, i18n);\n if (payload.nodeId === 'global') {\n if (!roots.has(payload.app)) {\n const [root] = await api.getComponentInstances(payload.app);\n roots.set(payload.app, root);\n }\n api.highlightElement(roots.get(payload.app));\n }\n else {\n const instance = getComponentInstance(payload.nodeId, i18n);\n instance && api.highlightElement(instance);\n }\n }\n });\n api.on.editInspectorState(payload => {\n if (payload.app === app &&\n payload.inspectorId === \"vue-i18n-resource-inspector\" /* VueDevToolsIDs.CUSTOM_INSPECTOR */) {\n editScope(payload, i18n);\n }\n });\n api.addTimelineLayer({\n id: \"vue-i18n-timeline\" /* VueDevToolsIDs.TIMELINE */,\n label: VueDevToolsLabels[\"vue-i18n-timeline\" /* VueDevToolsIDs.TIMELINE */],\n color: VueDevToolsTimelineColors[\"vue-i18n-timeline\" /* VueDevToolsIDs.TIMELINE */]\n });\n resolve(true);\n });\n }\n catch (e) {\n console.error(e);\n reject(false);\n }\n });\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getI18nScopeLable(instance) {\n return (instance.type.name ||\n instance.type.displayName ||\n instance.type.__file ||\n 'Anonymous');\n}\nfunction updateComponentTreeTags(instance, // eslint-disable-line @typescript-eslint/no-explicit-any\ntreeNode, i18n) {\n // prettier-ignore\n const global = i18n.mode === 'composition'\n ? i18n.global\n : i18n.global.__composer;\n if (instance && instance.vnode.el && instance.vnode.el.__VUE_I18N__) {\n // add custom tags local scope only\n if (instance.vnode.el.__VUE_I18N__ !== global) {\n const tag = {\n label: `i18n (${getI18nScopeLable(instance)} Scope)`,\n textColor: 0x000000,\n backgroundColor: 0xffcd19\n };\n treeNode.tags.push(tag);\n }\n }\n}\nfunction inspectComposer(instanceData, composer) {\n const type = VUE_I18N_COMPONENT_TYPES;\n instanceData.state.push({\n type,\n key: 'locale',\n editable: true,\n value: composer.locale.value\n });\n instanceData.state.push({\n type,\n key: 'availableLocales',\n editable: false,\n value: composer.availableLocales\n });\n instanceData.state.push({\n type,\n key: 'fallbackLocale',\n editable: true,\n value: composer.fallbackLocale.value\n });\n instanceData.state.push({\n type,\n key: 'inheritLocale',\n editable: true,\n value: composer.inheritLocale\n });\n instanceData.state.push({\n type,\n key: 'messages',\n editable: false,\n value: getLocaleMessageValue(composer.messages.value)\n });\n {\n instanceData.state.push({\n type,\n key: 'datetimeFormats',\n editable: false,\n value: composer.datetimeFormats.value\n });\n instanceData.state.push({\n type,\n key: 'numberFormats',\n editable: false,\n value: composer.numberFormats.value\n });\n }\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getLocaleMessageValue(messages) {\n const value = {};\n Object.keys(messages).forEach((key) => {\n const v = messages[key];\n if (isFunction(v) && 'source' in v) {\n value[key] = getMessageFunctionDetails(v);\n }\n else if (isMessageAST(v) && v.loc && v.loc.source) {\n value[key] = v.loc.source;\n }\n else if (isObject(v)) {\n value[key] = getLocaleMessageValue(v);\n }\n else {\n value[key] = v;\n }\n });\n return value;\n}\nconst ESC = {\n '<': '<',\n '>': '>',\n '\"': '"',\n '&': '&'\n};\nfunction escape(s) {\n return s.replace(/[<>\"&]/g, escapeChar);\n}\nfunction escapeChar(a) {\n return ESC[a] || a;\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getMessageFunctionDetails(func) {\n const argString = func.source ? `(\"${escape(func.source)}\")` : `(?)`;\n return {\n _custom: {\n type: 'function',\n display: `ƒ ${argString}`\n }\n };\n}\nfunction registerScope(payload, i18n) {\n payload.rootNodes.push({\n id: 'global',\n label: 'Global Scope'\n });\n // prettier-ignore\n const global = i18n.mode === 'composition'\n ? i18n.global\n : i18n.global.__composer;\n for (const [keyInstance, instance] of i18n.__instances) {\n // prettier-ignore\n const composer = i18n.mode === 'composition'\n ? instance\n : instance.__composer;\n if (global === composer) {\n continue;\n }\n payload.rootNodes.push({\n id: composer.id.toString(),\n label: `${getI18nScopeLable(keyInstance)} Scope`\n });\n }\n}\nfunction getComponentInstance(nodeId, i18n) {\n let instance = null;\n if (nodeId !== 'global') {\n for (const [component, composer] of i18n.__instances.entries()) {\n if (composer.id.toString() === nodeId) {\n instance = component;\n break;\n }\n }\n }\n return instance;\n}\nfunction getComposer$1(nodeId, i18n) {\n if (nodeId === 'global') {\n return i18n.mode === 'composition'\n ? i18n.global\n : i18n.global.__composer;\n }\n else {\n const instance = Array.from(i18n.__instances.values()).find(item => item.id.toString() === nodeId);\n if (instance) {\n return i18n.mode === 'composition'\n ? instance\n : instance.__composer;\n }\n else {\n return null;\n }\n }\n}\nfunction inspectScope(payload, i18n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n) {\n const composer = getComposer$1(payload.nodeId, i18n);\n if (composer) {\n // TODO:\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n payload.state = makeScopeInspectState(composer);\n }\n return null;\n}\nfunction makeScopeInspectState(composer) {\n const state = {};\n const localeType = 'Locale related info';\n const localeStates = [\n {\n type: localeType,\n key: 'locale',\n editable: true,\n value: composer.locale.value\n },\n {\n type: localeType,\n key: 'fallbackLocale',\n editable: true,\n value: composer.fallbackLocale.value\n },\n {\n type: localeType,\n key: 'availableLocales',\n editable: false,\n value: composer.availableLocales\n },\n {\n type: localeType,\n key: 'inheritLocale',\n editable: true,\n value: composer.inheritLocale\n }\n ];\n state[localeType] = localeStates;\n const localeMessagesType = 'Locale messages info';\n const localeMessagesStates = [\n {\n type: localeMessagesType,\n key: 'messages',\n editable: false,\n value: getLocaleMessageValue(composer.messages.value)\n }\n ];\n state[localeMessagesType] = localeMessagesStates;\n {\n const datetimeFormatsType = 'Datetime formats info';\n const datetimeFormatsStates = [\n {\n type: datetimeFormatsType,\n key: 'datetimeFormats',\n editable: false,\n value: composer.datetimeFormats.value\n }\n ];\n state[datetimeFormatsType] = datetimeFormatsStates;\n const numberFormatsType = 'Datetime formats info';\n const numberFormatsStates = [\n {\n type: numberFormatsType,\n key: 'numberFormats',\n editable: false,\n value: composer.numberFormats.value\n }\n ];\n state[numberFormatsType] = numberFormatsStates;\n }\n return state;\n}\nfunction addTimelineEvent(event, payload) {\n if (devtoolsApi) {\n let groupId;\n if (payload && 'groupId' in payload) {\n groupId = payload.groupId;\n delete payload.groupId;\n }\n devtoolsApi.addTimelineEvent({\n layerId: \"vue-i18n-timeline\" /* VueDevToolsIDs.TIMELINE */,\n event: {\n title: event,\n groupId,\n time: Date.now(),\n meta: {},\n data: payload || {},\n logType: event === \"compile-error\" /* VueDevToolsTimelineEvents.COMPILE_ERROR */\n ? 'error'\n : event === \"fallback\" /* VueDevToolsTimelineEvents.FALBACK */ ||\n event === \"missing\" /* VueDevToolsTimelineEvents.MISSING */\n ? 'warning'\n : 'default'\n }\n });\n }\n}\nfunction editScope(payload, i18n) {\n const composer = getComposer$1(payload.nodeId, i18n);\n if (composer) {\n const [field] = payload.path;\n if (field === 'locale' && isString(payload.state.value)) {\n composer.locale.value = payload.state.value;\n }\n else if (field === 'fallbackLocale' &&\n (isString(payload.state.value) ||\n isArray(payload.state.value) ||\n isObject(payload.state.value))) {\n composer.fallbackLocale.value = payload.state.value;\n }\n else if (field === 'inheritLocale' && isBoolean(payload.state.value)) {\n composer.inheritLocale = payload.state.value;\n }\n }\n}\n\n/**\n * Supports compatibility for legacy vue-i18n APIs\n * This mixin is used when we use vue-i18n@v9.x or later\n */\nfunction defineMixin(vuei18n, composer, i18n) {\n return {\n beforeCreate() {\n const instance = getCurrentInstance();\n /* istanbul ignore if */\n if (!instance) {\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\n }\n const options = this.$options;\n if (options.i18n) {\n const optionsI18n = options.i18n;\n if (options.__i18n) {\n optionsI18n.__i18n = options.__i18n;\n }\n optionsI18n.__root = composer;\n if (this === this.$root) {\n // merge option and gttach global\n this.$i18n = mergeToGlobal(vuei18n, optionsI18n);\n }\n else {\n optionsI18n.__injectWithOption = true;\n optionsI18n.__extender = i18n.__vueI18nExtend;\n // atttach local VueI18n instance\n this.$i18n = createVueI18n(optionsI18n);\n // extend VueI18n instance\n const _vueI18n = this.$i18n;\n if (_vueI18n.__extender) {\n _vueI18n.__disposer = _vueI18n.__extender(this.$i18n);\n }\n }\n }\n else if (options.__i18n) {\n if (this === this.$root) {\n // merge option and gttach global\n this.$i18n = mergeToGlobal(vuei18n, options);\n }\n else {\n // atttach local VueI18n instance\n this.$i18n = createVueI18n({\n __i18n: options.__i18n,\n __injectWithOption: true,\n __extender: i18n.__vueI18nExtend,\n __root: composer\n });\n // extend VueI18n instance\n const _vueI18n = this.$i18n;\n if (_vueI18n.__extender) {\n _vueI18n.__disposer = _vueI18n.__extender(this.$i18n);\n }\n }\n }\n else {\n // attach global VueI18n instance\n this.$i18n = vuei18n;\n }\n if (options.__i18nGlobal) {\n adjustI18nResources(composer, options, options);\n }\n // defines vue-i18n legacy APIs\n this.$t = (...args) => this.$i18n.t(...args);\n this.$rt = (...args) => this.$i18n.rt(...args);\n this.$tc = (...args) => this.$i18n.tc(...args);\n this.$te = (key, locale) => this.$i18n.te(key, locale);\n this.$d = (...args) => this.$i18n.d(...args);\n this.$n = (...args) => this.$i18n.n(...args);\n this.$tm = (key) => this.$i18n.tm(key);\n i18n.__setInstance(instance, this.$i18n);\n },\n mounted() {\n /* istanbul ignore if */\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\n !false &&\n this.$el &&\n this.$i18n) {\n const _vueI18n = this.$i18n;\n this.$el.__VUE_I18N__ = _vueI18n.__composer;\n const emitter = (this.__v_emitter =\n createEmitter());\n _vueI18n.__enableEmitter && _vueI18n.__enableEmitter(emitter);\n emitter.on('*', addTimelineEvent);\n }\n },\n unmounted() {\n const instance = getCurrentInstance();\n /* istanbul ignore if */\n if (!instance) {\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\n }\n const _vueI18n = this.$i18n;\n /* istanbul ignore if */\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\n !false &&\n this.$el &&\n this.$el.__VUE_I18N__) {\n if (this.__v_emitter) {\n this.__v_emitter.off('*', addTimelineEvent);\n delete this.__v_emitter;\n }\n if (this.$i18n) {\n _vueI18n.__disableEmitter && _vueI18n.__disableEmitter();\n delete this.$el.__VUE_I18N__;\n }\n }\n delete this.$t;\n delete this.$rt;\n delete this.$tc;\n delete this.$te;\n delete this.$d;\n delete this.$n;\n delete this.$tm;\n if (_vueI18n.__disposer) {\n _vueI18n.__disposer();\n delete _vueI18n.__disposer;\n delete _vueI18n.__extender;\n }\n i18n.__deleteInstance(instance);\n delete this.$i18n;\n }\n };\n}\nfunction mergeToGlobal(g, options) {\n g.locale = options.locale || g.locale;\n g.fallbackLocale = options.fallbackLocale || g.fallbackLocale;\n g.missing = options.missing || g.missing;\n g.silentTranslationWarn =\n options.silentTranslationWarn || g.silentFallbackWarn;\n g.silentFallbackWarn = options.silentFallbackWarn || g.silentFallbackWarn;\n g.formatFallbackMessages =\n options.formatFallbackMessages || g.formatFallbackMessages;\n g.postTranslation = options.postTranslation || g.postTranslation;\n g.warnHtmlInMessage = options.warnHtmlInMessage || g.warnHtmlInMessage;\n g.escapeParameterHtml = options.escapeParameterHtml || g.escapeParameterHtml;\n g.sync = options.sync || g.sync;\n g.__composer[SetPluralRulesSymbol](options.pluralizationRules || g.pluralizationRules);\n const messages = getLocaleMessages(g.locale, {\n messages: options.messages,\n __i18n: options.__i18n\n });\n Object.keys(messages).forEach(locale => g.mergeLocaleMessage(locale, messages[locale]));\n if (options.datetimeFormats) {\n Object.keys(options.datetimeFormats).forEach(locale => g.mergeDateTimeFormat(locale, options.datetimeFormats[locale]));\n }\n if (options.numberFormats) {\n Object.keys(options.numberFormats).forEach(locale => g.mergeNumberFormat(locale, options.numberFormats[locale]));\n }\n return g;\n}\n\n/**\n * Injection key for {@link useI18n}\n *\n * @remarks\n * The global injection key for I18n instances with `useI18n`. this injection key is used in Web Components.\n * Specify the i18n instance created by {@link createI18n} together with `provide` function.\n *\n * @VueI18nGeneral\n */\nconst I18nInjectionKey = \n/* #__PURE__*/ makeSymbol('global-vue-i18n');\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nfunction createI18n(options = {}, VueI18nLegacy) {\n // prettier-ignore\n const __legacyMode = __VUE_I18N_LEGACY_API__ && isBoolean(options.legacy)\n ? options.legacy\n : __VUE_I18N_LEGACY_API__;\n // prettier-ignore\n const __globalInjection = isBoolean(options.globalInjection)\n ? options.globalInjection\n : true;\n // prettier-ignore\n const __allowComposition = __VUE_I18N_LEGACY_API__ && __legacyMode\n ? !!options.allowComposition\n : true;\n const __instances = new Map();\n const [globalScope, __global] = createGlobal(options, __legacyMode);\n const symbol = /* #__PURE__*/ makeSymbol((process.env.NODE_ENV !== 'production') ? 'vue-i18n' : '');\n if ((process.env.NODE_ENV !== 'production')) {\n if (__legacyMode && __allowComposition && !false) {\n warn(getWarnMessage(I18nWarnCodes.NOTICE_DROP_ALLOW_COMPOSITION));\n }\n }\n function __getInstance(component) {\n return __instances.get(component) || null;\n }\n function __setInstance(component, instance) {\n __instances.set(component, instance);\n }\n function __deleteInstance(component) {\n __instances.delete(component);\n }\n {\n const i18n = {\n // mode\n get mode() {\n return __VUE_I18N_LEGACY_API__ && __legacyMode\n ? 'legacy'\n : 'composition';\n },\n // allowComposition\n get allowComposition() {\n return __allowComposition;\n },\n // install plugin\n async install(app, ...options) {\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\n !false) {\n app.__VUE_I18N__ = i18n;\n }\n // setup global provider\n app.__VUE_I18N_SYMBOL__ = symbol;\n app.provide(app.__VUE_I18N_SYMBOL__, i18n);\n // set composer & vuei18n extend hook options from plugin options\n if (isPlainObject(options[0])) {\n const opts = options[0];\n i18n.__composerExtend =\n opts.__composerExtend;\n i18n.__vueI18nExtend =\n opts.__vueI18nExtend;\n }\n // global method and properties injection for Composition API\n let globalReleaseHandler = null;\n if (!__legacyMode && __globalInjection) {\n globalReleaseHandler = injectGlobalFields(app, i18n.global);\n }\n // install built-in components and directive\n if (__VUE_I18N_FULL_INSTALL__) {\n apply(app, i18n, ...options);\n }\n // setup mixin for Legacy API\n if (__VUE_I18N_LEGACY_API__ && __legacyMode) {\n app.mixin(defineMixin(__global, __global.__composer, i18n));\n }\n // release global scope\n const unmountApp = app.unmount;\n app.unmount = () => {\n globalReleaseHandler && globalReleaseHandler();\n i18n.dispose();\n unmountApp();\n };\n // setup vue-devtools plugin\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && !false) {\n const ret = await enableDevTools(app, i18n);\n if (!ret) {\n throw createI18nError(I18nErrorCodes.CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN);\n }\n const emitter = createEmitter();\n if (__legacyMode) {\n const _vueI18n = __global;\n _vueI18n.__enableEmitter && _vueI18n.__enableEmitter(emitter);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const _composer = __global;\n _composer[EnableEmitter] && _composer[EnableEmitter](emitter);\n }\n emitter.on('*', addTimelineEvent);\n }\n },\n // global accessor\n get global() {\n return __global;\n },\n dispose() {\n globalScope.stop();\n },\n // @internal\n __instances,\n // @internal\n __getInstance,\n // @internal\n __setInstance,\n // @internal\n __deleteInstance\n };\n return i18n;\n }\n}\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nfunction useI18n(options = {}) {\n const instance = getCurrentInstance();\n if (instance == null) {\n throw createI18nError(I18nErrorCodes.MUST_BE_CALL_SETUP_TOP);\n }\n if (!instance.isCE &&\n instance.appContext.app != null &&\n !instance.appContext.app.__VUE_I18N_SYMBOL__) {\n throw createI18nError(I18nErrorCodes.NOT_INSTALLED);\n }\n const i18n = getI18nInstance(instance);\n const gl = getGlobalComposer(i18n);\n const componentOptions = getComponentOptions(instance);\n const scope = getScope(options, componentOptions);\n if (__VUE_I18N_LEGACY_API__) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (i18n.mode === 'legacy' && !options.__useComponent) {\n if (!i18n.allowComposition) {\n throw createI18nError(I18nErrorCodes.NOT_AVAILABLE_IN_LEGACY_MODE);\n }\n return useI18nForLegacy(instance, scope, gl, options);\n }\n }\n if (scope === 'global') {\n adjustI18nResources(gl, options, componentOptions);\n return gl;\n }\n if (scope === 'parent') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let composer = getComposer(i18n, instance, options.__useComponent);\n if (composer == null) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn(getWarnMessage(I18nWarnCodes.NOT_FOUND_PARENT_SCOPE));\n }\n composer = gl;\n }\n return composer;\n }\n const i18nInternal = i18n;\n let composer = i18nInternal.__getInstance(instance);\n if (composer == null) {\n const composerOptions = assign({}, options);\n if ('__i18n' in componentOptions) {\n composerOptions.__i18n = componentOptions.__i18n;\n }\n if (gl) {\n composerOptions.__root = gl;\n }\n composer = createComposer(composerOptions);\n if (i18nInternal.__composerExtend) {\n composer[DisposeSymbol] =\n i18nInternal.__composerExtend(composer);\n }\n setupLifeCycle(i18nInternal, instance, composer);\n i18nInternal.__setInstance(instance, composer);\n }\n return composer;\n}\n/**\n * Cast to VueI18n legacy compatible type\n *\n * @remarks\n * This API is provided only with [vue-i18n-bridge](https://vue-i18n.intlify.dev/guide/migration/ways.html#what-is-vue-i18n-bridge).\n *\n * The purpose of this function is to convert an {@link I18n} instance created with {@link createI18n | createI18n(legacy: true)} into a `vue-i18n@v8.x` compatible instance of `new VueI18n` in a TypeScript environment.\n *\n * @param i18n - An instance of {@link I18n}\n * @returns A i18n instance which is casted to {@link VueI18n} type\n *\n * @VueI18nTip\n * :new: provided by **vue-i18n-bridge only**\n *\n * @VueI18nGeneral\n */\n/* #__NO_SIDE_EFFECTS__ */\nconst castToVueI18n = (i18n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n) => {\n if (!(__VUE_I18N_BRIDGE__ in i18n)) {\n throw createI18nError(I18nErrorCodes.NOT_COMPATIBLE_LEGACY_VUE_I18N);\n }\n return i18n;\n};\nfunction createGlobal(options, legacyMode, VueI18nLegacy // eslint-disable-line @typescript-eslint/no-explicit-any\n) {\n const scope = effectScope();\n {\n const obj = __VUE_I18N_LEGACY_API__ && legacyMode\n ? scope.run(() => createVueI18n(options))\n : scope.run(() => createComposer(options));\n if (obj == null) {\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\n }\n return [scope, obj];\n }\n}\nfunction getI18nInstance(instance) {\n {\n const i18n = inject(!instance.isCE\n ? instance.appContext.app.__VUE_I18N_SYMBOL__\n : I18nInjectionKey);\n /* istanbul ignore if */\n if (!i18n) {\n throw createI18nError(!instance.isCE\n ? I18nErrorCodes.UNEXPECTED_ERROR\n : I18nErrorCodes.NOT_INSTALLED_WITH_PROVIDE);\n }\n return i18n;\n }\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getScope(options, componentOptions) {\n // prettier-ignore\n return isEmptyObject(options)\n ? ('__i18n' in componentOptions)\n ? 'local'\n : 'global'\n : !options.useScope\n ? 'local'\n : options.useScope;\n}\nfunction getGlobalComposer(i18n) {\n // prettier-ignore\n return i18n.mode === 'composition'\n ? i18n.global\n : i18n.global.__composer\n ;\n}\nfunction getComposer(i18n, target, useComponent = false) {\n let composer = null;\n const root = target.root;\n let current = getParentComponentInstance(target, useComponent);\n while (current != null) {\n const i18nInternal = i18n;\n if (i18n.mode === 'composition') {\n composer = i18nInternal.__getInstance(current);\n }\n else {\n if (__VUE_I18N_LEGACY_API__) {\n const vueI18n = i18nInternal.__getInstance(current);\n if (vueI18n != null) {\n composer = vueI18n\n .__composer;\n if (useComponent &&\n composer &&\n !composer[InejctWithOptionSymbol] // eslint-disable-line @typescript-eslint/no-explicit-any\n ) {\n composer = null;\n }\n }\n }\n }\n if (composer != null) {\n break;\n }\n if (root === current) {\n break;\n }\n current = current.parent;\n }\n return composer;\n}\nfunction getParentComponentInstance(target, useComponent = false) {\n if (target == null) {\n return null;\n }\n {\n // if `useComponent: true` will be specified, we get lexical scope owner instance for use-case slots\n return !useComponent\n ? target.parent\n : target.vnode.ctx || target.parent; // eslint-disable-line @typescript-eslint/no-explicit-any\n }\n}\nfunction setupLifeCycle(i18n, target, composer) {\n let emitter = null;\n {\n onMounted(() => {\n // inject composer instance to DOM for intlify-devtools\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\n !false &&\n target.vnode.el) {\n target.vnode.el.__VUE_I18N__ = composer;\n emitter = createEmitter();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const _composer = composer;\n _composer[EnableEmitter] && _composer[EnableEmitter](emitter);\n emitter.on('*', addTimelineEvent);\n }\n }, target);\n onUnmounted(() => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const _composer = composer;\n // remove composer instance from DOM for intlify-devtools\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\n !false &&\n target.vnode.el &&\n target.vnode.el.__VUE_I18N__) {\n emitter && emitter.off('*', addTimelineEvent);\n _composer[DisableEmitter] && _composer[DisableEmitter]();\n delete target.vnode.el.__VUE_I18N__;\n }\n i18n.__deleteInstance(target);\n // dispose extended resources\n const dispose = _composer[DisposeSymbol];\n if (dispose) {\n dispose();\n delete _composer[DisposeSymbol];\n }\n }, target);\n }\n}\nfunction useI18nForLegacy(instance, scope, root, options = {} // eslint-disable-line @typescript-eslint/no-explicit-any\n) {\n const isLocalScope = scope === 'local';\n const _composer = shallowRef(null);\n if (isLocalScope &&\n instance.proxy &&\n !(instance.proxy.$options.i18n || instance.proxy.$options.__i18n)) {\n throw createI18nError(I18nErrorCodes.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);\n }\n const _inheritLocale = isBoolean(options.inheritLocale)\n ? options.inheritLocale\n : !isString(options.locale);\n const _locale = ref(\n // prettier-ignore\n !isLocalScope || _inheritLocale\n ? root.locale.value\n : isString(options.locale)\n ? options.locale\n : DEFAULT_LOCALE);\n const _fallbackLocale = ref(\n // prettier-ignore\n !isLocalScope || _inheritLocale\n ? root.fallbackLocale.value\n : isString(options.fallbackLocale) ||\n isArray(options.fallbackLocale) ||\n isPlainObject(options.fallbackLocale) ||\n options.fallbackLocale === false\n ? options.fallbackLocale\n : _locale.value);\n const _messages = ref(getLocaleMessages(_locale.value, options));\n // prettier-ignore\n const _datetimeFormats = ref(isPlainObject(options.datetimeFormats)\n ? options.datetimeFormats\n : { [_locale.value]: {} });\n // prettier-ignore\n const _numberFormats = ref(isPlainObject(options.numberFormats)\n ? options.numberFormats\n : { [_locale.value]: {} });\n // prettier-ignore\n const _missingWarn = isLocalScope\n ? root.missingWarn\n : isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\n ? options.missingWarn\n : true;\n // prettier-ignore\n const _fallbackWarn = isLocalScope\n ? root.fallbackWarn\n : isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\n ? options.fallbackWarn\n : true;\n // prettier-ignore\n const _fallbackRoot = isLocalScope\n ? root.fallbackRoot\n : isBoolean(options.fallbackRoot)\n ? options.fallbackRoot\n : true;\n // configure fall back to root\n const _fallbackFormat = !!options.fallbackFormat;\n // runtime missing\n const _missing = isFunction(options.missing) ? options.missing : null;\n // postTranslation handler\n const _postTranslation = isFunction(options.postTranslation)\n ? options.postTranslation\n : null;\n // prettier-ignore\n const _warnHtmlMessage = isLocalScope\n ? root.warnHtmlMessage\n : isBoolean(options.warnHtmlMessage)\n ? options.warnHtmlMessage\n : true;\n const _escapeParameter = !!options.escapeParameter;\n // prettier-ignore\n const _modifiers = isLocalScope\n ? root.modifiers\n : isPlainObject(options.modifiers)\n ? options.modifiers\n : {};\n // pluralRules\n const _pluralRules = options.pluralRules || (isLocalScope && root.pluralRules);\n // track reactivity\n function trackReactivityValues() {\n return [\n _locale.value,\n _fallbackLocale.value,\n _messages.value,\n _datetimeFormats.value,\n _numberFormats.value\n ];\n }\n // locale\n const locale = computed({\n get: () => {\n return _composer.value ? _composer.value.locale.value : _locale.value;\n },\n set: val => {\n if (_composer.value) {\n _composer.value.locale.value = val;\n }\n _locale.value = val;\n }\n });\n // fallbackLocale\n const fallbackLocale = computed({\n get: () => {\n return _composer.value\n ? _composer.value.fallbackLocale.value\n : _fallbackLocale.value;\n },\n set: val => {\n if (_composer.value) {\n _composer.value.fallbackLocale.value = val;\n }\n _fallbackLocale.value = val;\n }\n });\n // messages\n const messages = computed(() => {\n if (_composer.value) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return _composer.value.messages.value;\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return _messages.value;\n }\n });\n const datetimeFormats = computed(() => _datetimeFormats.value);\n const numberFormats = computed(() => _numberFormats.value);\n function getPostTranslationHandler() {\n return _composer.value\n ? _composer.value.getPostTranslationHandler()\n : _postTranslation;\n }\n function setPostTranslationHandler(handler) {\n if (_composer.value) {\n _composer.value.setPostTranslationHandler(handler);\n }\n }\n function getMissingHandler() {\n return _composer.value ? _composer.value.getMissingHandler() : _missing;\n }\n function setMissingHandler(handler) {\n if (_composer.value) {\n _composer.value.setMissingHandler(handler);\n }\n }\n function warpWithDeps(fn) {\n trackReactivityValues();\n return fn();\n }\n function t(...args) {\n return _composer.value\n ? warpWithDeps(() => Reflect.apply(_composer.value.t, null, [...args]))\n : warpWithDeps(() => '');\n }\n function rt(...args) {\n return _composer.value\n ? Reflect.apply(_composer.value.rt, null, [...args])\n : '';\n }\n function d(...args) {\n return _composer.value\n ? warpWithDeps(() => Reflect.apply(_composer.value.d, null, [...args]))\n : warpWithDeps(() => '');\n }\n function n(...args) {\n return _composer.value\n ? warpWithDeps(() => Reflect.apply(_composer.value.n, null, [...args]))\n : warpWithDeps(() => '');\n }\n function tm(key) {\n return _composer.value ? _composer.value.tm(key) : {};\n }\n function te(key, locale) {\n return _composer.value ? _composer.value.te(key, locale) : false;\n }\n function getLocaleMessage(locale) {\n return _composer.value ? _composer.value.getLocaleMessage(locale) : {};\n }\n function setLocaleMessage(locale, message) {\n if (_composer.value) {\n _composer.value.setLocaleMessage(locale, message);\n _messages.value[locale] = message;\n }\n }\n function mergeLocaleMessage(locale, message) {\n if (_composer.value) {\n _composer.value.mergeLocaleMessage(locale, message);\n }\n }\n function getDateTimeFormat(locale) {\n return _composer.value ? _composer.value.getDateTimeFormat(locale) : {};\n }\n function setDateTimeFormat(locale, format) {\n if (_composer.value) {\n _composer.value.setDateTimeFormat(locale, format);\n _datetimeFormats.value[locale] = format;\n }\n }\n function mergeDateTimeFormat(locale, format) {\n if (_composer.value) {\n _composer.value.mergeDateTimeFormat(locale, format);\n }\n }\n function getNumberFormat(locale) {\n return _composer.value ? _composer.value.getNumberFormat(locale) : {};\n }\n function setNumberFormat(locale, format) {\n if (_composer.value) {\n _composer.value.setNumberFormat(locale, format);\n _numberFormats.value[locale] = format;\n }\n }\n function mergeNumberFormat(locale, format) {\n if (_composer.value) {\n _composer.value.mergeNumberFormat(locale, format);\n }\n }\n const wrapper = {\n get id() {\n return _composer.value ? _composer.value.id : -1;\n },\n locale,\n fallbackLocale,\n messages,\n datetimeFormats,\n numberFormats,\n get inheritLocale() {\n return _composer.value ? _composer.value.inheritLocale : _inheritLocale;\n },\n set inheritLocale(val) {\n if (_composer.value) {\n _composer.value.inheritLocale = val;\n }\n },\n get availableLocales() {\n return _composer.value\n ? _composer.value.availableLocales\n : Object.keys(_messages.value);\n },\n get modifiers() {\n return (_composer.value ? _composer.value.modifiers : _modifiers);\n },\n get pluralRules() {\n return (_composer.value ? _composer.value.pluralRules : _pluralRules);\n },\n get isGlobal() {\n return _composer.value ? _composer.value.isGlobal : false;\n },\n get missingWarn() {\n return _composer.value ? _composer.value.missingWarn : _missingWarn;\n },\n set missingWarn(val) {\n if (_composer.value) {\n _composer.value.missingWarn = val;\n }\n },\n get fallbackWarn() {\n return _composer.value ? _composer.value.fallbackWarn : _fallbackWarn;\n },\n set fallbackWarn(val) {\n if (_composer.value) {\n _composer.value.missingWarn = val;\n }\n },\n get fallbackRoot() {\n return _composer.value ? _composer.value.fallbackRoot : _fallbackRoot;\n },\n set fallbackRoot(val) {\n if (_composer.value) {\n _composer.value.fallbackRoot = val;\n }\n },\n get fallbackFormat() {\n return _composer.value ? _composer.value.fallbackFormat : _fallbackFormat;\n },\n set fallbackFormat(val) {\n if (_composer.value) {\n _composer.value.fallbackFormat = val;\n }\n },\n get warnHtmlMessage() {\n return _composer.value\n ? _composer.value.warnHtmlMessage\n : _warnHtmlMessage;\n },\n set warnHtmlMessage(val) {\n if (_composer.value) {\n _composer.value.warnHtmlMessage = val;\n }\n },\n get escapeParameter() {\n return _composer.value\n ? _composer.value.escapeParameter\n : _escapeParameter;\n },\n set escapeParameter(val) {\n if (_composer.value) {\n _composer.value.escapeParameter = val;\n }\n },\n t,\n getPostTranslationHandler,\n setPostTranslationHandler,\n getMissingHandler,\n setMissingHandler,\n rt,\n d,\n n,\n tm,\n te,\n getLocaleMessage,\n setLocaleMessage,\n mergeLocaleMessage,\n getDateTimeFormat,\n setDateTimeFormat,\n mergeDateTimeFormat,\n getNumberFormat,\n setNumberFormat,\n mergeNumberFormat\n };\n function sync(composer) {\n composer.locale.value = _locale.value;\n composer.fallbackLocale.value = _fallbackLocale.value;\n Object.keys(_messages.value).forEach(locale => {\n composer.mergeLocaleMessage(locale, _messages.value[locale]);\n });\n Object.keys(_datetimeFormats.value).forEach(locale => {\n composer.mergeDateTimeFormat(locale, _datetimeFormats.value[locale]);\n });\n Object.keys(_numberFormats.value).forEach(locale => {\n composer.mergeNumberFormat(locale, _numberFormats.value[locale]);\n });\n composer.escapeParameter = _escapeParameter;\n composer.fallbackFormat = _fallbackFormat;\n composer.fallbackRoot = _fallbackRoot;\n composer.fallbackWarn = _fallbackWarn;\n composer.missingWarn = _missingWarn;\n composer.warnHtmlMessage = _warnHtmlMessage;\n }\n onBeforeMount(() => {\n if (instance.proxy == null || instance.proxy.$i18n == null) {\n throw createI18nError(I18nErrorCodes.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const composer = (_composer.value = instance.proxy.$i18n\n .__composer);\n if (scope === 'global') {\n _locale.value = composer.locale.value;\n _fallbackLocale.value = composer.fallbackLocale.value;\n _messages.value = composer.messages.value;\n _datetimeFormats.value = composer.datetimeFormats.value;\n _numberFormats.value = composer.numberFormats.value;\n }\n else if (isLocalScope) {\n sync(composer);\n }\n });\n return wrapper;\n}\nconst globalExportProps = [\n 'locale',\n 'fallbackLocale',\n 'availableLocales'\n];\nconst globalExportMethods = ['t', 'rt', 'd', 'n', 'tm', 'te']\n ;\nfunction injectGlobalFields(app, composer) {\n const i18n = Object.create(null);\n globalExportProps.forEach(prop => {\n const desc = Object.getOwnPropertyDescriptor(composer, prop);\n if (!desc) {\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\n }\n const wrap = isRef(desc.value) // check computed props\n ? {\n get() {\n return desc.value.value;\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n set(val) {\n desc.value.value = val;\n }\n }\n : {\n get() {\n return desc.get && desc.get();\n }\n };\n Object.defineProperty(i18n, prop, wrap);\n });\n app.config.globalProperties.$i18n = i18n;\n globalExportMethods.forEach(method => {\n const desc = Object.getOwnPropertyDescriptor(composer, method);\n if (!desc || !desc.value) {\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\n }\n Object.defineProperty(app.config.globalProperties, `$${method}`, desc);\n });\n const dispose = () => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n delete app.config.globalProperties.$i18n;\n globalExportMethods.forEach(method => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n delete app.config.globalProperties[`$${method}`];\n });\n };\n return dispose;\n}\n\n{\n initFeatureFlags();\n}\n// register message compiler at vue-i18n\nif (__INTLIFY_JIT_COMPILATION__) {\n registerMessageCompiler(compile);\n}\nelse {\n registerMessageCompiler(compileToFunction);\n}\n// register message resolver at vue-i18n\nregisterMessageResolver(resolveValue);\n// register fallback locale at vue-i18n\nregisterLocaleFallbacker(fallbackWithLocaleChain);\n// NOTE: experimental !!\nif ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\n const target = getGlobalThis();\n target.__INTLIFY__ = true;\n setDevToolsHook(target.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__);\n}\nif ((process.env.NODE_ENV !== 'production')) ;\n\nexport { DatetimeFormat, I18nD, I18nInjectionKey, I18nN, I18nT, NumberFormat, Translation, VERSION, castToVueI18n, createI18n, useI18n, vTDirective };\n","import { createI18n } from 'vue-i18n'\n\nimport enCommands from './locales/en/commands.json'\nimport en from './locales/en/main.json'\nimport enNodes from './locales/en/nodeDefs.json'\nimport enSettings from './locales/en/settings.json'\nimport frCommands from './locales/fr/commands.json'\nimport fr from './locales/fr/main.json'\nimport frNodes from './locales/fr/nodeDefs.json'\nimport frSettings from './locales/fr/settings.json'\nimport jaCommands from './locales/ja/commands.json'\nimport ja from './locales/ja/main.json'\nimport jaNodes from './locales/ja/nodeDefs.json'\nimport jaSettings from './locales/ja/settings.json'\nimport koCommands from './locales/ko/commands.json'\nimport ko from './locales/ko/main.json'\nimport koNodes from './locales/ko/nodeDefs.json'\nimport koSettings from './locales/ko/settings.json'\nimport ruCommands from './locales/ru/commands.json'\nimport ru from './locales/ru/main.json'\nimport ruNodes from './locales/ru/nodeDefs.json'\nimport ruSettings from './locales/ru/settings.json'\nimport zhCommands from './locales/zh/commands.json'\nimport zh from './locales/zh/main.json'\nimport zhNodes from './locales/zh/nodeDefs.json'\nimport zhSettings from './locales/zh/settings.json'\n\nfunction buildLocale(main: M, nodes: N, commands: C, settings: S) {\n return {\n ...main,\n nodeDefs: nodes,\n commands: commands,\n settings: settings\n }\n}\n\nconst messages = {\n en: buildLocale(en, enNodes, enCommands, enSettings),\n zh: buildLocale(zh, zhNodes, zhCommands, zhSettings),\n ru: buildLocale(ru, ruNodes, ruCommands, ruSettings),\n ja: buildLocale(ja, jaNodes, jaCommands, jaSettings),\n ko: buildLocale(ko, koNodes, koCommands, koSettings),\n fr: buildLocale(fr, frNodes, frCommands, frSettings)\n}\n\nexport const i18n = createI18n({\n // Must set `false`, as Vue I18n Legacy API is for Vue 2\n legacy: false,\n locale: navigator.language.split('-')[0] || 'en',\n fallbackLocale: 'en',\n messages,\n // Ignore warnings for locale options as each option is in its own language.\n // e.g. \"English\", \"中文\", \"Русский\", \"日本語\", \"한국어\", \"Français\"\n missingWarn: /^(?!settings\\.Comfy_Locale\\.options\\.).+/,\n fallbackWarn: /^(?!settings\\.Comfy_Locale\\.options\\.).+/\n})\n\n/** Convenience shorthand: i18n.global */\nexport const { t, te } = i18n.global\n\n/**\n * Safe translation function that returns the fallback message if the key is not found.\n *\n * @param key - The key to translate.\n * @param fallbackMessage - The fallback message to use if the key is not found.\n */\nexport function st(key: string, fallbackMessage: string) {\n return te(key) ? t(key) : fallbackMessage\n}\n","// Within Vue component context, you can directly call useToast().add()\n// instead of going through the store.\n// The store is useful when you need to call it from outside the Vue component context.\nimport { defineStore } from 'pinia'\nimport type { ToastMessageOptions } from 'primevue/toast'\nimport { ref } from 'vue'\n\nexport const useToastStore = defineStore('toast', () => {\n const messagesToAdd = ref([])\n const messagesToRemove = ref([])\n const removeAllRequested = ref(false)\n\n function add(message: ToastMessageOptions) {\n messagesToAdd.value = [...messagesToAdd.value, message]\n }\n\n function remove(message: ToastMessageOptions) {\n messagesToRemove.value = [...messagesToRemove.value, message]\n }\n\n function removeAll() {\n removeAllRequested.value = true\n }\n\n function addAlert(message: string) {\n add({ severity: 'warn', summary: 'Alert', detail: message })\n }\n\n return {\n messagesToAdd,\n messagesToRemove,\n removeAllRequested,\n\n add,\n remove,\n removeAll,\n addAlert\n }\n})\n","import { t } from '@/i18n'\nimport { useToastStore } from '@/stores/toastStore'\n\nexport function useErrorHandling() {\n const toast = useToastStore()\n\n const toastErrorHandler = (error: any) => {\n toast.add({\n severity: 'error',\n summary: t('g.error'),\n detail: error.message\n })\n }\n\n const wrapWithErrorHandling =\n (\n action: (...args: TArgs) => TReturn,\n errorHandler?: (error: any) => void,\n finallyHandler?: () => void\n ) =>\n (...args: TArgs): TReturn | undefined => {\n try {\n return action(...args)\n } catch (e) {\n ;(errorHandler ?? toastErrorHandler)(e)\n } finally {\n finallyHandler?.()\n }\n }\n\n const wrapWithErrorHandlingAsync =\n (\n action: (...args: TArgs) => Promise | TReturn,\n errorHandler?: (error: any) => void,\n finallyHandler?: () => void\n ) =>\n async (...args: TArgs): Promise => {\n try {\n return await action(...args)\n } catch (e) {\n ;(errorHandler ?? toastErrorHandler)(e)\n } finally {\n finallyHandler?.()\n }\n }\n\n return { wrapWithErrorHandling, wrapWithErrorHandlingAsync }\n}\n","/**\n * @license\n * Lodash \n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n;(function() {\n\n /** Used as a safe reference for `undefined` in pre-ES5 environments. */\n var undefined;\n\n /** Used as the semantic version number. */\n var VERSION = '4.17.21';\n\n /** Used as the size to enable large array optimizations. */\n var LARGE_ARRAY_SIZE = 200;\n\n /** Error message constants. */\n var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.',\n FUNC_ERROR_TEXT = 'Expected a function',\n INVALID_TEMPL_VAR_ERROR_TEXT = 'Invalid `variable` option passed into `_.template`';\n\n /** Used to stand-in for `undefined` hash values. */\n var HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n /** Used as the maximum memoize cache size. */\n var MAX_MEMOIZE_SIZE = 500;\n\n /** Used as the internal argument placeholder. */\n var PLACEHOLDER = '__lodash_placeholder__';\n\n /** Used to compose bitmasks for cloning. */\n var CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n /** Used to compose bitmasks for value comparisons. */\n var COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n /** Used to compose bitmasks for function metadata. */\n var WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256,\n WRAP_FLIP_FLAG = 512;\n\n /** Used as default options for `_.truncate`. */\n var DEFAULT_TRUNC_LENGTH = 30,\n DEFAULT_TRUNC_OMISSION = '...';\n\n /** Used to detect hot functions by number of calls within a span of milliseconds. */\n var HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n /** Used to indicate the type of lazy iteratees. */\n var LAZY_FILTER_FLAG = 1,\n LAZY_MAP_FLAG = 2,\n LAZY_WHILE_FLAG = 3;\n\n /** Used as references for various `Number` constants. */\n var INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991,\n MAX_INTEGER = 1.7976931348623157e+308,\n NAN = 0 / 0;\n\n /** Used as references for the maximum length and index of an array. */\n var MAX_ARRAY_LENGTH = 4294967295,\n MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1,\n HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;\n\n /** Used to associate wrap methods with their bit flags. */\n var wrapFlags = [\n ['ary', WRAP_ARY_FLAG],\n ['bind', WRAP_BIND_FLAG],\n ['bindKey', WRAP_BIND_KEY_FLAG],\n ['curry', WRAP_CURRY_FLAG],\n ['curryRight', WRAP_CURRY_RIGHT_FLAG],\n ['flip', WRAP_FLIP_FLAG],\n ['partial', WRAP_PARTIAL_FLAG],\n ['partialRight', WRAP_PARTIAL_RIGHT_FLAG],\n ['rearg', WRAP_REARG_FLAG]\n ];\n\n /** `Object#toString` result references. */\n var argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n domExcTag = '[object DOMException]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]',\n weakSetTag = '[object WeakSet]';\n\n var arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n /** Used to match empty string literals in compiled template source. */\n var reEmptyStringLeading = /\\b__p \\+= '';/g,\n reEmptyStringMiddle = /\\b(__p \\+=) '' \\+/g,\n reEmptyStringTrailing = /(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g;\n\n /** Used to match HTML entities and HTML characters. */\n var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g,\n reUnescapedHtml = /[&<>\"']/g,\n reHasEscapedHtml = RegExp(reEscapedHtml.source),\n reHasUnescapedHtml = RegExp(reUnescapedHtml.source);\n\n /** Used to match template delimiters. */\n var reEscape = /<%-([\\s\\S]+?)%>/g,\n reEvaluate = /<%([\\s\\S]+?)%>/g,\n reInterpolate = /<%=([\\s\\S]+?)%>/g;\n\n /** Used to match property names within property paths. */\n var reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n /**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\n var reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n reHasRegExpChar = RegExp(reRegExpChar.source);\n\n /** Used to match leading whitespace. */\n var reTrimStart = /^\\s+/;\n\n /** Used to match a single whitespace character. */\n var reWhitespace = /\\s/;\n\n /** Used to match wrap detail comments. */\n var reWrapComment = /\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,\n reWrapDetails = /\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,\n reSplitDetails = /,? & /;\n\n /** Used to match words composed of alphanumeric characters. */\n var reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n /**\n * Used to validate the `validate` option in `_.template` variable.\n *\n * Forbids characters which could potentially change the meaning of the function argument definition:\n * - \"(),\" (modification of function parameters)\n * - \"=\" (default value)\n * - \"[]{}\" (destructuring of function parameters)\n * - \"/\" (beginning of a comment)\n * - whitespace\n */\n var reForbiddenIdentifierChars = /[()=,{}\\[\\]\\/\\s]/;\n\n /** Used to match backslashes in property paths. */\n var reEscapeChar = /\\\\(\\\\)?/g;\n\n /**\n * Used to match\n * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components).\n */\n var reEsTemplate = /\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g;\n\n /** Used to match `RegExp` flags from their coerced string values. */\n var reFlags = /\\w*$/;\n\n /** Used to detect bad signed hexadecimal string values. */\n var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n /** Used to detect binary string values. */\n var reIsBinary = /^0b[01]+$/i;\n\n /** Used to detect host constructors (Safari). */\n var reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n /** Used to detect octal string values. */\n var reIsOctal = /^0o[0-7]+$/i;\n\n /** Used to detect unsigned integer values. */\n var reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n /** Used to match Latin Unicode letters (excluding mathematical operators). */\n var reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n /** Used to ensure capturing order of template delimiters. */\n var reNoMatch = /($^)/;\n\n /** Used to match unescaped characters in compiled string literals. */\n var reUnescapedString = /['\\n\\r\\u2028\\u2029\\\\]/g;\n\n /** Used to compose unicode character classes. */\n var rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n /** Used to compose unicode capture groups. */\n var rsApos = \"['\\u2019]\",\n rsAstral = '[' + rsAstralRange + ']',\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n /** Used to compose unicode regexes. */\n var rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n /** Used to match apostrophes. */\n var reApos = RegExp(rsApos, 'g');\n\n /**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\n var reComboMark = RegExp(rsCombo, 'g');\n\n /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\n var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n /** Used to match complex or compound words. */\n var reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n ].join('|'), 'g');\n\n /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\n var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n /** Used to detect strings that need a more robust regexp to match words. */\n var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n /** Used to assign default `context` object properties. */\n var contextProps = [\n 'Array', 'Buffer', 'DataView', 'Date', 'Error', 'Float32Array', 'Float64Array',\n 'Function', 'Int8Array', 'Int16Array', 'Int32Array', 'Map', 'Math', 'Object',\n 'Promise', 'RegExp', 'Set', 'String', 'Symbol', 'TypeError', 'Uint8Array',\n 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap',\n '_', 'clearTimeout', 'isFinite', 'parseInt', 'setTimeout'\n ];\n\n /** Used to make template sourceURLs easier to identify. */\n var templateCounter = -1;\n\n /** Used to identify `toStringTag` values of typed arrays. */\n var typedArrayTags = {};\n typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\n typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\n typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\n typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\n typedArrayTags[uint32Tag] = true;\n typedArrayTags[argsTag] = typedArrayTags[arrayTag] =\n typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\n typedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\n typedArrayTags[errorTag] = typedArrayTags[funcTag] =\n typedArrayTags[mapTag] = typedArrayTags[numberTag] =\n typedArrayTags[objectTag] = typedArrayTags[regexpTag] =\n typedArrayTags[setTag] = typedArrayTags[stringTag] =\n typedArrayTags[weakMapTag] = false;\n\n /** Used to identify `toStringTag` values supported by `_.clone`. */\n var cloneableTags = {};\n cloneableTags[argsTag] = cloneableTags[arrayTag] =\n cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\n cloneableTags[boolTag] = cloneableTags[dateTag] =\n cloneableTags[float32Tag] = cloneableTags[float64Tag] =\n cloneableTags[int8Tag] = cloneableTags[int16Tag] =\n cloneableTags[int32Tag] = cloneableTags[mapTag] =\n cloneableTags[numberTag] = cloneableTags[objectTag] =\n cloneableTags[regexpTag] = cloneableTags[setTag] =\n cloneableTags[stringTag] = cloneableTags[symbolTag] =\n cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\n cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\n cloneableTags[errorTag] = cloneableTags[funcTag] =\n cloneableTags[weakMapTag] = false;\n\n /** Used to map Latin Unicode letters to basic Latin letters. */\n var deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n };\n\n /** Used to map characters to HTML entities. */\n var htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n };\n\n /** Used to map HTML entities to characters. */\n var htmlUnescapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\"\n };\n\n /** Used to escape characters for inclusion in compiled string literals. */\n var stringEscapes = {\n '\\\\': '\\\\',\n \"'\": \"'\",\n '\\n': 'n',\n '\\r': 'r',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n };\n\n /** Built-in method references without a dependency on `root`. */\n var freeParseFloat = parseFloat,\n freeParseInt = parseInt;\n\n /** Detect free variable `global` from Node.js. */\n var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n /** Detect free variable `self`. */\n var freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n /** Used as a reference to the global object. */\n var root = freeGlobal || freeSelf || Function('return this')();\n\n /** Detect free variable `exports`. */\n var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n /** Detect free variable `module`. */\n var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n /** Detect the popular CommonJS extension `module.exports`. */\n var moduleExports = freeModule && freeModule.exports === freeExports;\n\n /** Detect free variable `process` from Node.js. */\n var freeProcess = moduleExports && freeGlobal.process;\n\n /** Used to access faster Node.js helpers. */\n var nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n }());\n\n /* Node.js helper references. */\n var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer,\n nodeIsDate = nodeUtil && nodeUtil.isDate,\n nodeIsMap = nodeUtil && nodeUtil.isMap,\n nodeIsRegExp = nodeUtil && nodeUtil.isRegExp,\n nodeIsSet = nodeUtil && nodeUtil.isSet,\n nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\n function apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n }\n\n /**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\n function arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\n function arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n }\n\n /**\n * A specialized version of `_.forEachRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\n function arrayEachRight(array, iteratee) {\n var length = array == null ? 0 : array.length;\n\n while (length--) {\n if (iteratee(array[length], length, array) === false) {\n break;\n }\n }\n return array;\n }\n\n /**\n * A specialized version of `_.every` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n */\n function arrayEvery(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (!predicate(array[index], index, array)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n function arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\n function arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n }\n\n /**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\n function arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n }\n\n /**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\n function arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n }\n\n /**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\n function arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.reduceRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the last element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\n function arrayReduceRight(array, iteratee, accumulator, initAccum) {\n var length = array == null ? 0 : array.length;\n if (initAccum && length) {\n accumulator = array[--length];\n }\n while (length--) {\n accumulator = iteratee(accumulator, array[length], length, array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n function arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Gets the size of an ASCII `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\n var asciiSize = baseProperty('length');\n\n /**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function asciiToArray(string) {\n return string.split('');\n }\n\n /**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n function asciiWords(string) {\n return string.match(reAsciiWord) || [];\n }\n\n /**\n * The base implementation of methods like `_.findKey` and `_.findLastKey`,\n * without support for iteratee shorthands, which iterates over `collection`\n * using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the found element or its key, else `undefined`.\n */\n function baseFindKey(collection, predicate, eachFunc) {\n var result;\n eachFunc(collection, function(value, key, collection) {\n if (predicate(value, key, collection)) {\n result = key;\n return false;\n }\n });\n return result;\n }\n\n /**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n }\n\n /**\n * This function is like `baseIndexOf` except that it accepts a comparator.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseIndexOfWith(array, value, fromIndex, comparator) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (comparator(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\n function baseIsNaN(value) {\n return value !== value;\n }\n\n /**\n * The base implementation of `_.mean` and `_.meanBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the mean.\n */\n function baseMean(array, iteratee) {\n var length = array == null ? 0 : array.length;\n return length ? (baseSum(array, iteratee) / length) : NAN;\n }\n\n /**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n function baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\n function basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} accumulator The initial value.\n * @param {boolean} initAccum Specify using the first or last element of\n * `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\n function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function(value, index, collection) {\n accumulator = initAccum\n ? (initAccum = false, value)\n : iteratee(accumulator, value, index, collection);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\n function baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n }\n\n /**\n * The base implementation of `_.sum` and `_.sumBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the sum.\n */\n function baseSum(array, iteratee) {\n var result,\n index = -1,\n length = array.length;\n\n while (++index < length) {\n var current = iteratee(array[index]);\n if (current !== undefined) {\n result = result === undefined ? current : (result + current);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\n function baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n }\n\n /**\n * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array\n * of key-value pairs for `object` corresponding to the property names of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the key-value pairs.\n */\n function baseToPairs(object, props) {\n return arrayMap(props, function(key) {\n return [key, object[key]];\n });\n }\n\n /**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\n function baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n }\n\n /**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\n function baseUnary(func) {\n return function(value) {\n return func(value);\n };\n }\n\n /**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\n function baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n }\n\n /**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function cacheHas(cache, key) {\n return cache.has(key);\n }\n\n /**\n * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the first unmatched string symbol.\n */\n function charsStartIndex(strSymbols, chrSymbols) {\n var index = -1,\n length = strSymbols.length;\n\n while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n }\n\n /**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the last unmatched string symbol.\n */\n function charsEndIndex(strSymbols, chrSymbols) {\n var index = strSymbols.length;\n\n while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n }\n\n /**\n * Gets the number of `placeholder` occurrences in `array`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} placeholder The placeholder to search for.\n * @returns {number} Returns the placeholder count.\n */\n function countHolders(array, placeholder) {\n var length = array.length,\n result = 0;\n\n while (length--) {\n if (array[length] === placeholder) {\n ++result;\n }\n }\n return result;\n }\n\n /**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\n var deburrLetter = basePropertyOf(deburredLetters);\n\n /**\n * Used by `_.escape` to convert characters to HTML entities.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n var escapeHtmlChar = basePropertyOf(htmlEscapes);\n\n /**\n * Used by `_.template` to escape characters for inclusion in compiled string literals.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n function escapeStringChar(chr) {\n return '\\\\' + stringEscapes[chr];\n }\n\n /**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n function getValue(object, key) {\n return object == null ? undefined : object[key];\n }\n\n /**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\n function hasUnicode(string) {\n return reHasUnicode.test(string);\n }\n\n /**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\n function hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n }\n\n /**\n * Converts `iterator` to an array.\n *\n * @private\n * @param {Object} iterator The iterator to convert.\n * @returns {Array} Returns the converted array.\n */\n function iteratorToArray(iterator) {\n var data,\n result = [];\n\n while (!(data = iterator.next()).done) {\n result.push(data.value);\n }\n return result;\n }\n\n /**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\n function mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n }\n\n /**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\n function overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n }\n\n /**\n * Replaces all `placeholder` elements in `array` with an internal placeholder\n * and returns an array of their indexes.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {*} placeholder The placeholder to replace.\n * @returns {Array} Returns the new array of placeholder indexes.\n */\n function replaceHolders(array, placeholder) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value === placeholder || value === PLACEHOLDER) {\n array[index] = PLACEHOLDER;\n result[resIndex++] = index;\n }\n }\n return result;\n }\n\n /**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\n function setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n }\n\n /**\n * Converts `set` to its value-value pairs.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the value-value pairs.\n */\n function setToPairs(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = [value, value];\n });\n return result;\n }\n\n /**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * A specialized version of `_.lastIndexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function strictLastIndexOf(array, value, fromIndex) {\n var index = fromIndex + 1;\n while (index--) {\n if (array[index] === value) {\n return index;\n }\n }\n return index;\n }\n\n /**\n * Gets the number of symbols in `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the string size.\n */\n function stringSize(string) {\n return hasUnicode(string)\n ? unicodeSize(string)\n : asciiSize(string);\n }\n\n /**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n }\n\n /**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\n function trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n }\n\n /**\n * Used by `_.unescape` to convert HTML entities to characters.\n *\n * @private\n * @param {string} chr The matched character to unescape.\n * @returns {string} Returns the unescaped character.\n */\n var unescapeHtmlChar = basePropertyOf(htmlUnescapes);\n\n /**\n * Gets the size of a Unicode `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\n function unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n while (reUnicode.test(string)) {\n ++result;\n }\n return result;\n }\n\n /**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function unicodeToArray(string) {\n return string.match(reUnicode) || [];\n }\n\n /**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n function unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n }\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * Create a new pristine `lodash` function using the `context` object.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Util\n * @param {Object} [context=root] The context object.\n * @returns {Function} Returns a new `lodash` function.\n * @example\n *\n * _.mixin({ 'foo': _.constant('foo') });\n *\n * var lodash = _.runInContext();\n * lodash.mixin({ 'bar': lodash.constant('bar') });\n *\n * _.isFunction(_.foo);\n * // => true\n * _.isFunction(_.bar);\n * // => false\n *\n * lodash.isFunction(lodash.foo);\n * // => false\n * lodash.isFunction(lodash.bar);\n * // => true\n *\n * // Create a suped-up `defer` in Node.js.\n * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer;\n */\n var runInContext = (function runInContext(context) {\n context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps));\n\n /** Built-in constructor references. */\n var Array = context.Array,\n Date = context.Date,\n Error = context.Error,\n Function = context.Function,\n Math = context.Math,\n Object = context.Object,\n RegExp = context.RegExp,\n String = context.String,\n TypeError = context.TypeError;\n\n /** Used for built-in method references. */\n var arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n /** Used to detect overreaching core-js shims. */\n var coreJsData = context['__core-js_shared__'];\n\n /** Used to resolve the decompiled source of functions. */\n var funcToString = funcProto.toString;\n\n /** Used to check objects for own properties. */\n var hasOwnProperty = objectProto.hasOwnProperty;\n\n /** Used to generate unique IDs. */\n var idCounter = 0;\n\n /** Used to detect methods masquerading as native. */\n var maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n }());\n\n /**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n var nativeObjectToString = objectProto.toString;\n\n /** Used to infer the `Object` constructor. */\n var objectCtorString = funcToString.call(Object);\n\n /** Used to restore the original `_` reference in `_.noConflict`. */\n var oldDash = root._;\n\n /** Used to detect if a method is native. */\n var reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n );\n\n /** Built-in value references. */\n var Buffer = moduleExports ? context.Buffer : undefined,\n Symbol = context.Symbol,\n Uint8Array = context.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined,\n symIterator = Symbol ? Symbol.iterator : undefined,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n var defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n }());\n\n /** Mocked built-ins. */\n var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout,\n ctxNow = Date && Date.now !== root.Date.now && Date.now,\n ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout;\n\n /* Built-in method references for those with the same name as other `lodash` methods. */\n var nativeCeil = Math.ceil,\n nativeFloor = Math.floor,\n nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeIsFinite = context.isFinite,\n nativeJoin = arrayProto.join,\n nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max,\n nativeMin = Math.min,\n nativeNow = Date.now,\n nativeParseInt = context.parseInt,\n nativeRandom = Math.random,\n nativeReverse = arrayProto.reverse;\n\n /* Built-in method references that are verified to be native. */\n var DataView = getNative(context, 'DataView'),\n Map = getNative(context, 'Map'),\n Promise = getNative(context, 'Promise'),\n Set = getNative(context, 'Set'),\n WeakMap = getNative(context, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n /** Used to store function metadata. */\n var metaMap = WeakMap && new WeakMap;\n\n /** Used to lookup unminified function names. */\n var realNames = {};\n\n /** Used to detect maps, sets, and weakmaps. */\n var dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n /** Used to convert symbols to primitives and strings. */\n var symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` object which wraps `value` to enable implicit method\n * chain sequences. Methods that operate on and return arrays, collections,\n * and functions can be chained together. Methods that retrieve a single value\n * or may return a primitive value will automatically end the chain sequence\n * and return the unwrapped value. Otherwise, the value must be unwrapped\n * with `_#value`.\n *\n * Explicit chain sequences, which must be unwrapped with `_#value`, may be\n * enabled using `_.chain`.\n *\n * The execution of chained methods is lazy, that is, it's deferred until\n * `_#value` is implicitly or explicitly called.\n *\n * Lazy evaluation allows several methods to support shortcut fusion.\n * Shortcut fusion is an optimization to merge iteratee calls; this avoids\n * the creation of intermediate arrays and can greatly reduce the number of\n * iteratee executions. Sections of a chain sequence qualify for shortcut\n * fusion if the section is applied to an array and iteratees accept only\n * one argument. The heuristic for whether a section qualifies for shortcut\n * fusion is subject to change.\n *\n * Chaining is supported in custom builds as long as the `_#value` method is\n * directly or indirectly included in the build.\n *\n * In addition to lodash methods, wrappers have `Array` and `String` methods.\n *\n * The wrapper `Array` methods are:\n * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`\n *\n * The wrapper `String` methods are:\n * `replace` and `split`\n *\n * The wrapper methods that support shortcut fusion are:\n * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,\n * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,\n * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`\n *\n * The chainable wrapper methods are:\n * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,\n * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,\n * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,\n * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,\n * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,\n * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,\n * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,\n * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,\n * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,\n * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,\n * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,\n * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,\n * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,\n * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,\n * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,\n * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,\n * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,\n * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,\n * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,\n * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,\n * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,\n * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,\n * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,\n * `zipObject`, `zipObjectDeep`, and `zipWith`\n *\n * The wrapper methods that are **not** chainable by default are:\n * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,\n * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`,\n * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`,\n * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,\n * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`,\n * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`,\n * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`,\n * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`,\n * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`,\n * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`,\n * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,\n * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,\n * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,\n * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,\n * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,\n * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,\n * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,\n * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,\n * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,\n * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,\n * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,\n * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,\n * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,\n * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,\n * `upperFirst`, `value`, and `words`\n *\n * @name _\n * @constructor\n * @category Seq\n * @param {*} value The value to wrap in a `lodash` instance.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2, 3]);\n *\n * // Returns an unwrapped value.\n * wrapped.reduce(_.add);\n * // => 6\n *\n * // Returns a wrapped value.\n * var squares = wrapped.map(square);\n *\n * _.isArray(squares);\n * // => false\n *\n * _.isArray(squares.value());\n * // => true\n */\n function lodash(value) {\n if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {\n if (value instanceof LodashWrapper) {\n return value;\n }\n if (hasOwnProperty.call(value, '__wrapped__')) {\n return wrapperClone(value);\n }\n }\n return new LodashWrapper(value);\n }\n\n /**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\n var baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n }());\n\n /**\n * The function whose prototype chain sequence wrappers inherit from.\n *\n * @private\n */\n function baseLodash() {\n // No operation performed.\n }\n\n /**\n * The base constructor for creating `lodash` wrapper objects.\n *\n * @private\n * @param {*} value The value to wrap.\n * @param {boolean} [chainAll] Enable explicit method chain sequences.\n */\n function LodashWrapper(value, chainAll) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__chain__ = !!chainAll;\n this.__index__ = 0;\n this.__values__ = undefined;\n }\n\n /**\n * By default, the template delimiters used by lodash are like those in\n * embedded Ruby (ERB) as well as ES2015 template strings. Change the\n * following template settings to use alternative delimiters.\n *\n * @static\n * @memberOf _\n * @type {Object}\n */\n lodash.templateSettings = {\n\n /**\n * Used to detect `data` property values to be HTML-escaped.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'escape': reEscape,\n\n /**\n * Used to detect code to be evaluated.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'evaluate': reEvaluate,\n\n /**\n * Used to detect `data` property values to inject.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'interpolate': reInterpolate,\n\n /**\n * Used to reference the data object in the template text.\n *\n * @memberOf _.templateSettings\n * @type {string}\n */\n 'variable': '',\n\n /**\n * Used to import variables into the compiled template.\n *\n * @memberOf _.templateSettings\n * @type {Object}\n */\n 'imports': {\n\n /**\n * A reference to the `lodash` function.\n *\n * @memberOf _.templateSettings.imports\n * @type {Function}\n */\n '_': lodash\n }\n };\n\n // Ensure wrappers are instances of `baseLodash`.\n lodash.prototype = baseLodash.prototype;\n lodash.prototype.constructor = lodash;\n\n LodashWrapper.prototype = baseCreate(baseLodash.prototype);\n LodashWrapper.prototype.constructor = LodashWrapper;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation.\n *\n * @private\n * @constructor\n * @param {*} value The value to wrap.\n */\n function LazyWrapper(value) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__dir__ = 1;\n this.__filtered__ = false;\n this.__iteratees__ = [];\n this.__takeCount__ = MAX_ARRAY_LENGTH;\n this.__views__ = [];\n }\n\n /**\n * Creates a clone of the lazy wrapper object.\n *\n * @private\n * @name clone\n * @memberOf LazyWrapper\n * @returns {Object} Returns the cloned `LazyWrapper` object.\n */\n function lazyClone() {\n var result = new LazyWrapper(this.__wrapped__);\n result.__actions__ = copyArray(this.__actions__);\n result.__dir__ = this.__dir__;\n result.__filtered__ = this.__filtered__;\n result.__iteratees__ = copyArray(this.__iteratees__);\n result.__takeCount__ = this.__takeCount__;\n result.__views__ = copyArray(this.__views__);\n return result;\n }\n\n /**\n * Reverses the direction of lazy iteration.\n *\n * @private\n * @name reverse\n * @memberOf LazyWrapper\n * @returns {Object} Returns the new reversed `LazyWrapper` object.\n */\n function lazyReverse() {\n if (this.__filtered__) {\n var result = new LazyWrapper(this);\n result.__dir__ = -1;\n result.__filtered__ = true;\n } else {\n result = this.clone();\n result.__dir__ *= -1;\n }\n return result;\n }\n\n /**\n * Extracts the unwrapped value from its lazy wrapper.\n *\n * @private\n * @name value\n * @memberOf LazyWrapper\n * @returns {*} Returns the unwrapped value.\n */\n function lazyValue() {\n var array = this.__wrapped__.value(),\n dir = this.__dir__,\n isArr = isArray(array),\n isRight = dir < 0,\n arrLength = isArr ? array.length : 0,\n view = getView(0, arrLength, this.__views__),\n start = view.start,\n end = view.end,\n length = end - start,\n index = isRight ? end : (start - 1),\n iteratees = this.__iteratees__,\n iterLength = iteratees.length,\n resIndex = 0,\n takeCount = nativeMin(length, this.__takeCount__);\n\n if (!isArr || (!isRight && arrLength == length && takeCount == length)) {\n return baseWrapperValue(array, this.__actions__);\n }\n var result = [];\n\n outer:\n while (length-- && resIndex < takeCount) {\n index += dir;\n\n var iterIndex = -1,\n value = array[index];\n\n while (++iterIndex < iterLength) {\n var data = iteratees[iterIndex],\n iteratee = data.iteratee,\n type = data.type,\n computed = iteratee(value);\n\n if (type == LAZY_MAP_FLAG) {\n value = computed;\n } else if (!computed) {\n if (type == LAZY_FILTER_FLAG) {\n continue outer;\n } else {\n break outer;\n }\n }\n }\n result[resIndex++] = value;\n }\n return result;\n }\n\n // Ensure `LazyWrapper` is an instance of `baseLodash`.\n LazyWrapper.prototype = baseCreate(baseLodash.prototype);\n LazyWrapper.prototype.constructor = LazyWrapper;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\n function hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n }\n\n /**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n }\n\n /**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n }\n\n /**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\n function hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n }\n\n // Add methods to `Hash`.\n Hash.prototype.clear = hashClear;\n Hash.prototype['delete'] = hashDelete;\n Hash.prototype.get = hashGet;\n Hash.prototype.has = hashHas;\n Hash.prototype.set = hashSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\n function listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n }\n\n /**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n }\n\n /**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n }\n\n /**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\n function listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n }\n\n // Add methods to `ListCache`.\n ListCache.prototype.clear = listCacheClear;\n ListCache.prototype['delete'] = listCacheDelete;\n ListCache.prototype.get = listCacheGet;\n ListCache.prototype.has = listCacheHas;\n ListCache.prototype.set = listCacheSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\n function mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n }\n\n /**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n }\n\n /**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function mapCacheGet(key) {\n return getMapData(this, key).get(key);\n }\n\n /**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function mapCacheHas(key) {\n return getMapData(this, key).has(key);\n }\n\n /**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\n function mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n }\n\n // Add methods to `MapCache`.\n MapCache.prototype.clear = mapCacheClear;\n MapCache.prototype['delete'] = mapCacheDelete;\n MapCache.prototype.get = mapCacheGet;\n MapCache.prototype.has = mapCacheHas;\n MapCache.prototype.set = mapCacheSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\n function SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n }\n\n /**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\n function setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n }\n\n /**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\n function setCacheHas(value) {\n return this.__data__.has(value);\n }\n\n // Add methods to `SetCache`.\n SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\n SetCache.prototype.has = setCacheHas;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n }\n\n /**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\n function stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n }\n\n /**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function stackGet(key) {\n return this.__data__.get(key);\n }\n\n /**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function stackHas(key) {\n return this.__data__.has(key);\n }\n\n /**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\n function stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n }\n\n // Add methods to `Stack`.\n Stack.prototype.clear = stackClear;\n Stack.prototype['delete'] = stackDelete;\n Stack.prototype.get = stackGet;\n Stack.prototype.has = stackHas;\n Stack.prototype.set = stackSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\n function arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `_.sample` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @returns {*} Returns the random element.\n */\n function arraySample(array) {\n var length = array.length;\n return length ? array[baseRandom(0, length - 1)] : undefined;\n }\n\n /**\n * A specialized version of `_.sampleSize` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\n function arraySampleSize(array, n) {\n return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length));\n }\n\n /**\n * A specialized version of `_.shuffle` for arrays.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\n function arrayShuffle(array) {\n return shuffleSelf(copyArray(array));\n }\n\n /**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n }\n\n /**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n }\n\n /**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n }\n\n /**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\n function baseAggregator(collection, setter, iteratee, accumulator) {\n baseEach(collection, function(value, key, collection) {\n setter(accumulator, value, iteratee(value), collection);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n function baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n }\n\n /**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n function baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n }\n\n /**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n }\n\n /**\n * The base implementation of `_.at` without support for individual paths.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {string[]} paths The property paths to pick.\n * @returns {Array} Returns the picked elements.\n */\n function baseAt(object, paths) {\n var index = -1,\n length = paths.length,\n result = Array(length),\n skip = object == null;\n\n while (++index < length) {\n result[index] = skip ? undefined : get(object, paths[index]);\n }\n return result;\n }\n\n /**\n * The base implementation of `_.clamp` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n */\n function baseClamp(number, lower, upper) {\n if (number === number) {\n if (upper !== undefined) {\n number = number <= upper ? number : upper;\n }\n if (lower !== undefined) {\n number = number >= lower ? number : lower;\n }\n }\n return number;\n }\n\n /**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\n function baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n }\n\n /**\n * The base implementation of `_.conforms` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property predicates to conform to.\n * @returns {Function} Returns the new spec function.\n */\n function baseConforms(source) {\n var props = keys(source);\n return function(object) {\n return baseConformsTo(object, source, props);\n };\n }\n\n /**\n * The base implementation of `_.conformsTo` which accepts `props` to check.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n */\n function baseConformsTo(object, source, props) {\n var length = props.length;\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (length--) {\n var key = props[length],\n predicate = source[key],\n value = object[key];\n\n if ((value === undefined && !(key in object)) || !predicate(value)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * The base implementation of `_.delay` and `_.defer` which accepts `args`\n * to provide to `func`.\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {Array} args The arguments to provide to `func`.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n function baseDelay(func, wait, args) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return setTimeout(function() { func.apply(undefined, args); }, wait);\n }\n\n /**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\n function baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n var baseEach = createBaseEach(baseForOwn);\n\n /**\n * The base implementation of `_.forEachRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n var baseEachRight = createBaseEach(baseForOwnRight, true);\n\n /**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\n function baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function(value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n }\n\n /**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\n function baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.fill` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n */\n function baseFill(array, value, start, end) {\n var length = array.length;\n\n start = toInteger(start);\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = (end === undefined || end > length) ? length : toInteger(end);\n if (end < 0) {\n end += length;\n }\n end = start > end ? 0 : toLength(end);\n while (start < end) {\n array[start++] = value;\n }\n return array;\n }\n\n /**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n function baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n }\n\n /**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\n function baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n var baseFor = createBaseFor();\n\n /**\n * This function is like `baseFor` except that it iterates over properties\n * in the opposite order.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n var baseForRight = createBaseFor(true);\n\n /**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n function baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n }\n\n /**\n * The base implementation of `_.forOwnRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n function baseForOwnRight(object, iteratee) {\n return object && baseForRight(object, iteratee, keys);\n }\n\n /**\n * The base implementation of `_.functions` which creates an array of\n * `object` function property names filtered from `props`.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Array} props The property names to filter.\n * @returns {Array} Returns the function names.\n */\n function baseFunctions(object, props) {\n return arrayFilter(props, function(key) {\n return isFunction(object[key]);\n });\n }\n\n /**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\n function baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n }\n\n /**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n }\n\n /**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n function baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n }\n\n /**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\n function baseGt(value, other) {\n return value > other;\n }\n\n /**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\n function baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n }\n\n /**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\n function baseHasIn(object, key) {\n return object != null && key in Object(object);\n }\n\n /**\n * The base implementation of `_.inRange` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to check.\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n */\n function baseInRange(number, start, end) {\n return number >= nativeMin(start, end) && number < nativeMax(start, end);\n }\n\n /**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of shared values.\n */\n function baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n ? new SetCache(othIndex && array)\n : undefined;\n }\n array = arrays[0];\n\n var index = -1,\n seen = caches[0];\n\n outer:\n while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (!(seen\n ? cacheHas(seen, computed)\n : includes(result, computed, comparator)\n )) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache\n ? cacheHas(cache, computed)\n : includes(arrays[othIndex], computed, comparator))\n ) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.invert` and `_.invertBy` which inverts\n * `object` with values transformed by `iteratee` and set by `setter`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform values.\n * @param {Object} accumulator The initial inverted object.\n * @returns {Function} Returns `accumulator`.\n */\n function baseInverter(object, setter, iteratee, accumulator) {\n baseForOwn(object, function(value, key, object) {\n setter(accumulator, iteratee(value), key, object);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.invoke` without support for individual\n * method arguments.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {Array} args The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n */\n function baseInvoke(object, path, args) {\n path = castPath(path, object);\n object = parent(object, path);\n var func = object == null ? object : object[toKey(last(path))];\n return func == null ? undefined : apply(func, object, args);\n }\n\n /**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\n function baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n }\n\n /**\n * The base implementation of `_.isArrayBuffer` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n */\n function baseIsArrayBuffer(value) {\n return isObjectLike(value) && baseGetTag(value) == arrayBufferTag;\n }\n\n /**\n * The base implementation of `_.isDate` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n */\n function baseIsDate(value) {\n return isObjectLike(value) && baseGetTag(value) == dateTag;\n }\n\n /**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\n function baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n }\n\n /**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n }\n\n /**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\n function baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n }\n\n /**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\n function baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n }\n\n /**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\n function baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n }\n\n /**\n * The base implementation of `_.isRegExp` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n */\n function baseIsRegExp(value) {\n return isObjectLike(value) && baseGetTag(value) == regexpTag;\n }\n\n /**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\n function baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n }\n\n /**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\n function baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n }\n\n /**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\n function baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n }\n\n /**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\n function baseLt(value, other) {\n return value < other;\n }\n\n /**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n }\n\n /**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\n function baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n }\n\n /**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\n function baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n }\n\n /**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n function baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n }\n\n /**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n }\n\n /**\n * The base implementation of `_.nth` which doesn't coerce arguments.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {number} n The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n */\n function baseNth(array, n) {\n var length = array.length;\n if (!length) {\n return;\n }\n n += n < 0 ? length : 0;\n return isIndex(n, length) ? array[n] : undefined;\n }\n\n /**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\n function baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n }\n\n /**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\n function basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n }\n\n /**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\n function basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n function basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n }\n\n /**\n * The base implementation of `_.pullAllBy` without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n */\n function basePullAll(array, values, iteratee, comparator) {\n var indexOf = comparator ? baseIndexOfWith : baseIndexOf,\n index = -1,\n length = values.length,\n seen = array;\n\n if (array === values) {\n values = copyArray(values);\n }\n if (iteratee) {\n seen = arrayMap(array, baseUnary(iteratee));\n }\n while (++index < length) {\n var fromIndex = 0,\n value = values[index],\n computed = iteratee ? iteratee(value) : value;\n\n while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) {\n if (seen !== array) {\n splice.call(seen, fromIndex, 1);\n }\n splice.call(array, fromIndex, 1);\n }\n }\n return array;\n }\n\n /**\n * The base implementation of `_.pullAt` without support for individual\n * indexes or capturing the removed elements.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {number[]} indexes The indexes of elements to remove.\n * @returns {Array} Returns `array`.\n */\n function basePullAt(array, indexes) {\n var length = array ? indexes.length : 0,\n lastIndex = length - 1;\n\n while (length--) {\n var index = indexes[length];\n if (length == lastIndex || index !== previous) {\n var previous = index;\n if (isIndex(index)) {\n splice.call(array, index, 1);\n } else {\n baseUnset(array, index);\n }\n }\n }\n return array;\n }\n\n /**\n * The base implementation of `_.random` without support for returning\n * floating-point numbers.\n *\n * @private\n * @param {number} lower The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the random number.\n */\n function baseRandom(lower, upper) {\n return lower + nativeFloor(nativeRandom() * (upper - lower + 1));\n }\n\n /**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\n function baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n }\n\n /**\n * The base implementation of `_.repeat` which doesn't coerce arguments.\n *\n * @private\n * @param {string} string The string to repeat.\n * @param {number} n The number of times to repeat the string.\n * @returns {string} Returns the repeated string.\n */\n function baseRepeat(string, n) {\n var result = '';\n if (!string || n < 1 || n > MAX_SAFE_INTEGER) {\n return result;\n }\n // Leverage the exponentiation by squaring algorithm for a faster repeat.\n // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.\n do {\n if (n % 2) {\n result += string;\n }\n n = nativeFloor(n / 2);\n if (n) {\n string += string;\n }\n } while (n);\n\n return result;\n }\n\n /**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\n function baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n }\n\n /**\n * The base implementation of `_.sample`.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n */\n function baseSample(collection) {\n return arraySample(values(collection));\n }\n\n /**\n * The base implementation of `_.sampleSize` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\n function baseSampleSize(collection, n) {\n var array = values(collection);\n return shuffleSelf(array, baseClamp(n, 0, array.length));\n }\n\n /**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n function baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n }\n\n /**\n * The base implementation of `setData` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\n var baseSetData = !metaMap ? identity : function(func, data) {\n metaMap.set(func, data);\n return func;\n };\n\n /**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n };\n\n /**\n * The base implementation of `_.shuffle`.\n *\n * @private\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\n function baseShuffle(collection) {\n return shuffleSelf(values(collection));\n }\n\n /**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n }\n\n /**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n function baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n }\n\n /**\n * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which\n * performs a binary search of `array` to determine the index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\n function baseSortedIndex(array, value, retHighest) {\n var low = 0,\n high = array == null ? low : array.length;\n\n if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) {\n while (low < high) {\n var mid = (low + high) >>> 1,\n computed = array[mid];\n\n if (computed !== null && !isSymbol(computed) &&\n (retHighest ? (computed <= value) : (computed < value))) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return high;\n }\n return baseSortedIndexBy(array, value, identity, retHighest);\n }\n\n /**\n * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy`\n * which invokes `iteratee` for `value` and each element of `array` to compute\n * their sort ranking. The iteratee is invoked with one argument; (value).\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} iteratee The iteratee invoked per element.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\n function baseSortedIndexBy(array, value, iteratee, retHighest) {\n var low = 0,\n high = array == null ? 0 : array.length;\n if (high === 0) {\n return 0;\n }\n\n value = iteratee(value);\n var valIsNaN = value !== value,\n valIsNull = value === null,\n valIsSymbol = isSymbol(value),\n valIsUndefined = value === undefined;\n\n while (low < high) {\n var mid = nativeFloor((low + high) / 2),\n computed = iteratee(array[mid]),\n othIsDefined = computed !== undefined,\n othIsNull = computed === null,\n othIsReflexive = computed === computed,\n othIsSymbol = isSymbol(computed);\n\n if (valIsNaN) {\n var setLow = retHighest || othIsReflexive;\n } else if (valIsUndefined) {\n setLow = othIsReflexive && (retHighest || othIsDefined);\n } else if (valIsNull) {\n setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull);\n } else if (valIsSymbol) {\n setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol);\n } else if (othIsNull || othIsSymbol) {\n setLow = false;\n } else {\n setLow = retHighest ? (computed <= value) : (computed < value);\n }\n if (setLow) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return nativeMin(high, MAX_ARRAY_INDEX);\n }\n\n /**\n * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\n function baseSortedUniq(array, iteratee) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n if (!index || !eq(computed, seen)) {\n var seen = computed;\n result[resIndex++] = value === 0 ? 0 : value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.toNumber` which doesn't ensure correct\n * conversions of binary, hexadecimal, or octal string values.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n */\n function baseToNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n return +value;\n }\n\n /**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\n function baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n }\n\n /**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\n function baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\n function baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n }\n\n /**\n * The base implementation of `_.update`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to update.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n function baseUpdate(object, path, updater, customizer) {\n return baseSet(object, path, updater(baseGet(object, path)), customizer);\n }\n\n /**\n * The base implementation of methods like `_.dropWhile` and `_.takeWhile`\n * without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {Function} predicate The function invoked per iteration.\n * @param {boolean} [isDrop] Specify dropping elements instead of taking them.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the slice of `array`.\n */\n function baseWhile(array, predicate, isDrop, fromRight) {\n var length = array.length,\n index = fromRight ? length : -1;\n\n while ((fromRight ? index-- : ++index < length) &&\n predicate(array[index], index, array)) {}\n\n return isDrop\n ? baseSlice(array, (fromRight ? 0 : index), (fromRight ? index + 1 : length))\n : baseSlice(array, (fromRight ? index + 1 : 0), (fromRight ? length : index));\n }\n\n /**\n * The base implementation of `wrapperValue` which returns the result of\n * performing a sequence of actions on the unwrapped `value`, where each\n * successive action is supplied the return value of the previous.\n *\n * @private\n * @param {*} value The unwrapped value.\n * @param {Array} actions Actions to perform to resolve the unwrapped value.\n * @returns {*} Returns the resolved value.\n */\n function baseWrapperValue(value, actions) {\n var result = value;\n if (result instanceof LazyWrapper) {\n result = result.value();\n }\n return arrayReduce(actions, function(result, action) {\n return action.func.apply(action.thisArg, arrayPush([result], action.args));\n }, result);\n }\n\n /**\n * The base implementation of methods like `_.xor`, without support for\n * iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of values.\n */\n function baseXor(arrays, iteratee, comparator) {\n var length = arrays.length;\n if (length < 2) {\n return length ? baseUniq(arrays[0]) : [];\n }\n var index = -1,\n result = Array(length);\n\n while (++index < length) {\n var array = arrays[index],\n othIndex = -1;\n\n while (++othIndex < length) {\n if (othIndex != index) {\n result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);\n }\n }\n }\n return baseUniq(baseFlatten(result, 1), iteratee, comparator);\n }\n\n /**\n * This base implementation of `_.zipObject` which assigns values using `assignFunc`.\n *\n * @private\n * @param {Array} props The property identifiers.\n * @param {Array} values The property values.\n * @param {Function} assignFunc The function to assign values.\n * @returns {Object} Returns the new object.\n */\n function baseZipObject(props, values, assignFunc) {\n var index = -1,\n length = props.length,\n valsLength = values.length,\n result = {};\n\n while (++index < length) {\n var value = index < valsLength ? values[index] : undefined;\n assignFunc(result, props[index], value);\n }\n return result;\n }\n\n /**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\n function castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n }\n\n /**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\n function castFunction(value) {\n return typeof value == 'function' ? value : identity;\n }\n\n /**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\n function castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n }\n\n /**\n * A `baseRest` alias which can be replaced with `identity` by module\n * replacement plugins.\n *\n * @private\n * @type {Function}\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n var castRest = baseRest;\n\n /**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\n function castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n }\n\n /**\n * A simple wrapper around the global [`clearTimeout`](https://mdn.io/clearTimeout).\n *\n * @private\n * @param {number|Object} id The timer id or timeout object of the timer to clear.\n */\n var clearTimeout = ctxClearTimeout || function(id) {\n return root.clearTimeout(id);\n };\n\n /**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\n function cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n }\n\n /**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\n function cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n }\n\n /**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\n function cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n }\n\n /**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\n function cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n }\n\n /**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\n function cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n }\n\n /**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\n function cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n }\n\n /**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\n function compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n }\n\n /**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\n function compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n }\n\n /**\n * Creates an array that is the composition of partially applied arguments,\n * placeholders, and provided arguments into a single array of arguments.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to prepend to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\n function composeArgs(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersLength = holders.length,\n leftIndex = -1,\n leftLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(leftLength + rangeLength),\n isUncurried = !isCurried;\n\n while (++leftIndex < leftLength) {\n result[leftIndex] = partials[leftIndex];\n }\n while (++argsIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[holders[argsIndex]] = args[argsIndex];\n }\n }\n while (rangeLength--) {\n result[leftIndex++] = args[argsIndex++];\n }\n return result;\n }\n\n /**\n * This function is like `composeArgs` except that the arguments composition\n * is tailored for `_.partialRight`.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to append to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\n function composeArgsRight(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersIndex = -1,\n holdersLength = holders.length,\n rightIndex = -1,\n rightLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(rangeLength + rightLength),\n isUncurried = !isCurried;\n\n while (++argsIndex < rangeLength) {\n result[argsIndex] = args[argsIndex];\n }\n var offset = argsIndex;\n while (++rightIndex < rightLength) {\n result[offset + rightIndex] = partials[rightIndex];\n }\n while (++holdersIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[offset + holders[holdersIndex]] = args[argsIndex++];\n }\n }\n return result;\n }\n\n /**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\n function copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n }\n\n /**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\n function copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n }\n\n /**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n function copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n }\n\n /**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n function copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n }\n\n /**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\n function createAggregator(setter, initializer) {\n return function(collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n\n return func(collection, setter, getIteratee(iteratee, 2), accumulator);\n };\n }\n\n /**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\n function createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n }\n\n /**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n }\n\n /**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with the optional `this`\n * binding of `thisArg`.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createBind(func, bitmask, thisArg) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return fn.apply(isBind ? thisArg : this, arguments);\n }\n return wrapper;\n }\n\n /**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\n function createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n }\n\n /**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\n function createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n }\n\n /**\n * Creates a function that produces an instance of `Ctor` regardless of\n * whether it was invoked as part of a `new` expression or by `call` or `apply`.\n *\n * @private\n * @param {Function} Ctor The constructor to wrap.\n * @returns {Function} Returns the new wrapped function.\n */\n function createCtor(Ctor) {\n return function() {\n // Use a `switch` statement to work with class constructors. See\n // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist\n // for more details.\n var args = arguments;\n switch (args.length) {\n case 0: return new Ctor;\n case 1: return new Ctor(args[0]);\n case 2: return new Ctor(args[0], args[1]);\n case 3: return new Ctor(args[0], args[1], args[2]);\n case 4: return new Ctor(args[0], args[1], args[2], args[3]);\n case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]);\n case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);\n case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);\n }\n var thisBinding = baseCreate(Ctor.prototype),\n result = Ctor.apply(thisBinding, args);\n\n // Mimic the constructor's `return` behavior.\n // See https://es5.github.io/#x13.2.2 for more details.\n return isObject(result) ? result : thisBinding;\n };\n }\n\n /**\n * Creates a function that wraps `func` to enable currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {number} arity The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createCurry(func, bitmask, arity) {\n var Ctor = createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length,\n placeholder = getHolder(wrapper);\n\n while (index--) {\n args[index] = arguments[index];\n }\n var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder)\n ? []\n : replaceHolders(args, placeholder);\n\n length -= holders.length;\n if (length < arity) {\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, undefined,\n args, holders, undefined, undefined, arity - length);\n }\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return apply(fn, this, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\n function createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = getIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n }\n\n /**\n * Creates a `_.flow` or `_.flowRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new flow function.\n */\n function createFlow(fromRight) {\n return flatRest(function(funcs) {\n var length = funcs.length,\n index = length,\n prereq = LodashWrapper.prototype.thru;\n\n if (fromRight) {\n funcs.reverse();\n }\n while (index--) {\n var func = funcs[index];\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (prereq && !wrapper && getFuncName(func) == 'wrapper') {\n var wrapper = new LodashWrapper([], true);\n }\n }\n index = wrapper ? index : length;\n while (++index < length) {\n func = funcs[index];\n\n var funcName = getFuncName(func),\n data = funcName == 'wrapper' ? getData(func) : undefined;\n\n if (data && isLaziable(data[0]) &&\n data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) &&\n !data[4].length && data[9] == 1\n ) {\n wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]);\n } else {\n wrapper = (func.length == 1 && isLaziable(func))\n ? wrapper[funcName]()\n : wrapper.thru(func);\n }\n }\n return function() {\n var args = arguments,\n value = args[0];\n\n if (wrapper && args.length == 1 && isArray(value)) {\n return wrapper.plant(value).value();\n }\n var index = 0,\n result = length ? funcs[index].apply(this, args) : value;\n\n while (++index < length) {\n result = funcs[index].call(this, result);\n }\n return result;\n };\n });\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with optional `this`\n * binding of `thisArg`, partial application, and currying.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [partialsRight] The arguments to append to those provided\n * to the new function.\n * @param {Array} [holdersRight] The `partialsRight` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) {\n var isAry = bitmask & WRAP_ARY_FLAG,\n isBind = bitmask & WRAP_BIND_FLAG,\n isBindKey = bitmask & WRAP_BIND_KEY_FLAG,\n isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG),\n isFlip = bitmask & WRAP_FLIP_FLAG,\n Ctor = isBindKey ? undefined : createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length;\n\n while (index--) {\n args[index] = arguments[index];\n }\n if (isCurried) {\n var placeholder = getHolder(wrapper),\n holdersCount = countHolders(args, placeholder);\n }\n if (partials) {\n args = composeArgs(args, partials, holders, isCurried);\n }\n if (partialsRight) {\n args = composeArgsRight(args, partialsRight, holdersRight, isCurried);\n }\n length -= holdersCount;\n if (isCurried && length < arity) {\n var newHolders = replaceHolders(args, placeholder);\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, thisArg,\n args, newHolders, argPos, ary, arity - length\n );\n }\n var thisBinding = isBind ? thisArg : this,\n fn = isBindKey ? thisBinding[func] : func;\n\n length = args.length;\n if (argPos) {\n args = reorder(args, argPos);\n } else if (isFlip && length > 1) {\n args.reverse();\n }\n if (isAry && ary < length) {\n args.length = ary;\n }\n if (this && this !== root && this instanceof wrapper) {\n fn = Ctor || createCtor(fn);\n }\n return fn.apply(thisBinding, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a function like `_.invertBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} toIteratee The function to resolve iteratees.\n * @returns {Function} Returns the new inverter function.\n */\n function createInverter(setter, toIteratee) {\n return function(object, iteratee) {\n return baseInverter(object, setter, toIteratee(iteratee), {});\n };\n }\n\n /**\n * Creates a function that performs a mathematical operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @param {number} [defaultValue] The value used for `undefined` arguments.\n * @returns {Function} Returns the new mathematical operation function.\n */\n function createMathOperation(operator, defaultValue) {\n return function(value, other) {\n var result;\n if (value === undefined && other === undefined) {\n return defaultValue;\n }\n if (value !== undefined) {\n result = value;\n }\n if (other !== undefined) {\n if (result === undefined) {\n return other;\n }\n if (typeof value == 'string' || typeof other == 'string') {\n value = baseToString(value);\n other = baseToString(other);\n } else {\n value = baseToNumber(value);\n other = baseToNumber(other);\n }\n result = operator(value, other);\n }\n return result;\n };\n }\n\n /**\n * Creates a function like `_.over`.\n *\n * @private\n * @param {Function} arrayFunc The function to iterate over iteratees.\n * @returns {Function} Returns the new over function.\n */\n function createOver(arrayFunc) {\n return flatRest(function(iteratees) {\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n return baseRest(function(args) {\n var thisArg = this;\n return arrayFunc(iteratees, function(iteratee) {\n return apply(iteratee, thisArg, args);\n });\n });\n });\n }\n\n /**\n * Creates the padding for `string` based on `length`. The `chars` string\n * is truncated if the number of characters exceeds `length`.\n *\n * @private\n * @param {number} length The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padding for `string`.\n */\n function createPadding(length, chars) {\n chars = chars === undefined ? ' ' : baseToString(chars);\n\n var charsLength = chars.length;\n if (charsLength < 2) {\n return charsLength ? baseRepeat(chars, length) : chars;\n }\n var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));\n return hasUnicode(chars)\n ? castSlice(stringToArray(result), 0, length).join('')\n : result.slice(0, length);\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with the `this` binding\n * of `thisArg` and `partials` prepended to the arguments it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} partials The arguments to prepend to those provided to\n * the new function.\n * @returns {Function} Returns the new wrapped function.\n */\n function createPartial(func, bitmask, thisArg, partials) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var argsIndex = -1,\n argsLength = arguments.length,\n leftIndex = -1,\n leftLength = partials.length,\n args = Array(leftLength + argsLength),\n fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n\n while (++leftIndex < leftLength) {\n args[leftIndex] = partials[leftIndex];\n }\n while (argsLength--) {\n args[leftIndex++] = arguments[++argsIndex];\n }\n return apply(fn, isBind ? thisArg : this, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\n function createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n }\n\n /**\n * Creates a function that performs a relational operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @returns {Function} Returns the new relational operation function.\n */\n function createRelationalOperation(operator) {\n return function(value, other) {\n if (!(typeof value == 'string' && typeof other == 'string')) {\n value = toNumber(value);\n other = toNumber(other);\n }\n return operator(value, other);\n };\n }\n\n /**\n * Creates a function that wraps `func` to continue currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {Function} wrapFunc The function to create the `func` wrapper.\n * @param {*} placeholder The placeholder value.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) {\n var isCurry = bitmask & WRAP_CURRY_FLAG,\n newHolders = isCurry ? holders : undefined,\n newHoldersRight = isCurry ? undefined : holders,\n newPartials = isCurry ? partials : undefined,\n newPartialsRight = isCurry ? undefined : partials;\n\n bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG);\n bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);\n\n if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {\n bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);\n }\n var newData = [\n func, bitmask, thisArg, newPartials, newHolders, newPartialsRight,\n newHoldersRight, argPos, ary, arity\n ];\n\n var result = wrapFunc.apply(undefined, newData);\n if (isLaziable(func)) {\n setData(result, newData);\n }\n result.placeholder = placeholder;\n return setWrapToString(result, func, bitmask);\n }\n\n /**\n * Creates a function like `_.round`.\n *\n * @private\n * @param {string} methodName The name of the `Math` method to use when rounding.\n * @returns {Function} Returns the new round function.\n */\n function createRound(methodName) {\n var func = Math[methodName];\n return function(number, precision) {\n number = toNumber(number);\n precision = precision == null ? 0 : nativeMin(toInteger(precision), 292);\n if (precision && nativeIsFinite(number)) {\n // Shift with exponential notation to avoid floating-point issues.\n // See [MDN](https://mdn.io/round#Examples) for more details.\n var pair = (toString(number) + 'e').split('e'),\n value = func(pair[0] + 'e' + (+pair[1] + precision));\n\n pair = (toString(value) + 'e').split('e');\n return +(pair[0] + 'e' + (+pair[1] - precision));\n }\n return func(number);\n };\n }\n\n /**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\n var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n };\n\n /**\n * Creates a `_.toPairs` or `_.toPairsIn` function.\n *\n * @private\n * @param {Function} keysFunc The function to get the keys of a given object.\n * @returns {Function} Returns the new pairs function.\n */\n function createToPairs(keysFunc) {\n return function(object) {\n var tag = getTag(object);\n if (tag == mapTag) {\n return mapToArray(object);\n }\n if (tag == setTag) {\n return setToPairs(object);\n }\n return baseToPairs(object, keysFunc(object));\n };\n }\n\n /**\n * Creates a function that either curries or invokes `func` with optional\n * `this` binding and partially applied arguments.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags.\n * 1 - `_.bind`\n * 2 - `_.bindKey`\n * 4 - `_.curry` or `_.curryRight` of a bound function\n * 8 - `_.curry`\n * 16 - `_.curryRight`\n * 32 - `_.partial`\n * 64 - `_.partialRight`\n * 128 - `_.rearg`\n * 256 - `_.ary`\n * 512 - `_.flip`\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to be partially applied.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) {\n var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;\n if (!isBindKey && typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var length = partials ? partials.length : 0;\n if (!length) {\n bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);\n partials = holders = undefined;\n }\n ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0);\n arity = arity === undefined ? arity : toInteger(arity);\n length -= holders ? holders.length : 0;\n\n if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {\n var partialsRight = partials,\n holdersRight = holders;\n\n partials = holders = undefined;\n }\n var data = isBindKey ? undefined : getData(func);\n\n var newData = [\n func, bitmask, thisArg, partials, holders, partialsRight, holdersRight,\n argPos, ary, arity\n ];\n\n if (data) {\n mergeData(newData, data);\n }\n func = newData[0];\n bitmask = newData[1];\n thisArg = newData[2];\n partials = newData[3];\n holders = newData[4];\n arity = newData[9] = newData[9] === undefined\n ? (isBindKey ? 0 : func.length)\n : nativeMax(newData[9] - length, 0);\n\n if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {\n bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);\n }\n if (!bitmask || bitmask == WRAP_BIND_FLAG) {\n var result = createBind(func, bitmask, thisArg);\n } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {\n result = createCurry(func, bitmask, arity);\n } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {\n result = createPartial(func, bitmask, thisArg, partials);\n } else {\n result = createHybrid.apply(undefined, newData);\n }\n var setter = data ? baseSetData : setData;\n return setWrapToString(setter(result, newData), func, bitmask);\n }\n\n /**\n * Used by `_.defaults` to customize its `_.assignIn` use to assign properties\n * of source objects to the destination object for all destination properties\n * that resolve to `undefined`.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to assign.\n * @param {Object} object The parent object of `objValue`.\n * @returns {*} Returns the value to assign.\n */\n function customDefaultsAssignIn(objValue, srcValue, key, object) {\n if (objValue === undefined ||\n (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n return srcValue;\n }\n return objValue;\n }\n\n /**\n * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source\n * objects into destination objects that are passed thru.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to merge.\n * @param {Object} object The parent object of `objValue`.\n * @param {Object} source The parent object of `srcValue`.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n * @returns {*} Returns the value to assign.\n */\n function customDefaultsMerge(objValue, srcValue, key, object, source, stack) {\n if (isObject(objValue) && isObject(srcValue)) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, objValue);\n baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack);\n stack['delete'](srcValue);\n }\n return objValue;\n }\n\n /**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\n function customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\n function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n }\n\n /**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n function flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n }\n\n /**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n }\n\n /**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n }\n\n /**\n * Gets metadata for `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {*} Returns the metadata for `func`.\n */\n var getData = !metaMap ? noop : function(func) {\n return metaMap.get(func);\n };\n\n /**\n * Gets the name of `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {string} Returns the function name.\n */\n function getFuncName(func) {\n var result = (func.name + ''),\n array = realNames[result],\n length = hasOwnProperty.call(realNames, result) ? array.length : 0;\n\n while (length--) {\n var data = array[length],\n otherFunc = data.func;\n if (otherFunc == null || otherFunc == func) {\n return data.name;\n }\n }\n return result;\n }\n\n /**\n * Gets the argument placeholder value for `func`.\n *\n * @private\n * @param {Function} func The function to inspect.\n * @returns {*} Returns the placeholder value.\n */\n function getHolder(func) {\n var object = hasOwnProperty.call(lodash, 'placeholder') ? lodash : func;\n return object.placeholder;\n }\n\n /**\n * Gets the appropriate \"iteratee\" function. If `_.iteratee` is customized,\n * this function returns the custom method, otherwise it returns `baseIteratee`.\n * If arguments are provided, the chosen function is invoked with them and\n * its result is returned.\n *\n * @private\n * @param {*} [value] The value to convert to an iteratee.\n * @param {number} [arity] The arity of the created iteratee.\n * @returns {Function} Returns the chosen function or its result.\n */\n function getIteratee() {\n var result = lodash.iteratee || iteratee;\n result = result === iteratee ? baseIteratee : result;\n return arguments.length ? result(arguments[0], arguments[1]) : result;\n }\n\n /**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\n function getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n }\n\n /**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\n function getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n }\n\n /**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\n function getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n }\n\n /**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\n function getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n }\n\n /**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n var getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n };\n\n /**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n };\n\n /**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n var getTag = baseGetTag;\n\n // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\n if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n }\n\n /**\n * Gets the view, applying any `transforms` to the `start` and `end` positions.\n *\n * @private\n * @param {number} start The start of the view.\n * @param {number} end The end of the view.\n * @param {Array} transforms The transformations to apply to the view.\n * @returns {Object} Returns an object containing the `start` and `end`\n * positions of the view.\n */\n function getView(start, end, transforms) {\n var index = -1,\n length = transforms.length;\n\n while (++index < length) {\n var data = transforms[index],\n size = data.size;\n\n switch (data.type) {\n case 'drop': start += size; break;\n case 'dropRight': end -= size; break;\n case 'take': end = nativeMin(end, start + size); break;\n case 'takeRight': start = nativeMax(start, end - size); break;\n }\n }\n return { 'start': start, 'end': end };\n }\n\n /**\n * Extracts wrapper details from the `source` body comment.\n *\n * @private\n * @param {string} source The source to inspect.\n * @returns {Array} Returns the wrapper details.\n */\n function getWrapDetails(source) {\n var match = source.match(reWrapDetails);\n return match ? match[1].split(reSplitDetails) : [];\n }\n\n /**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\n function hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n }\n\n /**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\n function initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n }\n\n /**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\n function initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n }\n\n /**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\n function initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n }\n\n /**\n * Inserts wrapper `details` in a comment at the top of the `source` body.\n *\n * @private\n * @param {string} source The source to modify.\n * @returns {Array} details The details to insert.\n * @returns {string} Returns the modified source.\n */\n function insertWrapDetails(source, details) {\n var length = details.length;\n if (!length) {\n return source;\n }\n var lastIndex = length - 1;\n details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex];\n details = details.join(length > 2 ? ', ' : ' ');\n return source.replace(reWrapComment, '{\\n/* [wrapped with ' + details + '] */\\n');\n }\n\n /**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\n function isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n }\n\n /**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\n function isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n }\n\n /**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\n function isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n }\n\n /**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\n function isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n }\n\n /**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\n function isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n }\n\n /**\n * Checks if `func` has a lazy counterpart.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` has a lazy counterpart,\n * else `false`.\n */\n function isLaziable(func) {\n var funcName = getFuncName(func),\n other = lodash[funcName];\n\n if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) {\n return false;\n }\n if (func === other) {\n return true;\n }\n var data = getData(other);\n return !!data && func === data[0];\n }\n\n /**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\n function isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n }\n\n /**\n * Checks if `func` is capable of being masked.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `func` is maskable, else `false`.\n */\n var isMaskable = coreJsData ? isFunction : stubFalse;\n\n /**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\n function isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n }\n\n /**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\n function isStrictComparable(value) {\n return value === value && !isObject(value);\n }\n\n /**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\n function matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n }\n\n /**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\n function memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n }\n\n /**\n * Merges the function metadata of `source` into `data`.\n *\n * Merging metadata reduces the number of wrappers used to invoke a function.\n * This is possible because methods like `_.bind`, `_.curry`, and `_.partial`\n * may be applied regardless of execution order. Methods like `_.ary` and\n * `_.rearg` modify function arguments, making the order in which they are\n * executed important, preventing the merging of metadata. However, we make\n * an exception for a safe combined case where curried functions have `_.ary`\n * and or `_.rearg` applied.\n *\n * @private\n * @param {Array} data The destination metadata.\n * @param {Array} source The source metadata.\n * @returns {Array} Returns `data`.\n */\n function mergeData(data, source) {\n var bitmask = data[1],\n srcBitmask = source[1],\n newBitmask = bitmask | srcBitmask,\n isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);\n\n var isCombo =\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) ||\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) ||\n ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG));\n\n // Exit early if metadata can't be merged.\n if (!(isCommon || isCombo)) {\n return data;\n }\n // Use source `thisArg` if available.\n if (srcBitmask & WRAP_BIND_FLAG) {\n data[2] = source[2];\n // Set when currying a bound function.\n newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;\n }\n // Compose partial arguments.\n var value = source[3];\n if (value) {\n var partials = data[3];\n data[3] = partials ? composeArgs(partials, value, source[4]) : value;\n data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];\n }\n // Compose partial right arguments.\n value = source[5];\n if (value) {\n partials = data[5];\n data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;\n data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];\n }\n // Use source `argPos` if available.\n value = source[7];\n if (value) {\n data[7] = value;\n }\n // Use source `ary` if it's smaller.\n if (srcBitmask & WRAP_ARY_FLAG) {\n data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);\n }\n // Use source `arity` if one is not provided.\n if (data[9] == null) {\n data[9] = source[9];\n }\n // Use source `func` and merge bitmasks.\n data[0] = source[0];\n data[1] = newBitmask;\n\n return data;\n }\n\n /**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\n function objectToString(value) {\n return nativeObjectToString.call(value);\n }\n\n /**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\n function overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n }\n\n /**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\n function parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n }\n\n /**\n * Reorder `array` according to the specified indexes where the element at\n * the first index is assigned as the first element, the element at\n * the second index is assigned as the second element, and so on.\n *\n * @private\n * @param {Array} array The array to reorder.\n * @param {Array} indexes The arranged array indexes.\n * @returns {Array} Returns `array`.\n */\n function reorder(array, indexes) {\n var arrLength = array.length,\n length = nativeMin(indexes.length, arrLength),\n oldArray = copyArray(array);\n\n while (length--) {\n var index = indexes[length];\n array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined;\n }\n return array;\n }\n\n /**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n function safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n }\n\n /**\n * Sets metadata for `func`.\n *\n * **Note:** If this function becomes hot, i.e. is invoked a lot in a short\n * period of time, it will trip its breaker and transition to an identity\n * function to avoid garbage collection pauses in V8. See\n * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070)\n * for more details.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\n var setData = shortOut(baseSetData);\n\n /**\n * A simple wrapper around the global [`setTimeout`](https://mdn.io/setTimeout).\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n var setTimeout = ctxSetTimeout || function(func, wait) {\n return root.setTimeout(func, wait);\n };\n\n /**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var setToString = shortOut(baseSetToString);\n\n /**\n * Sets the `toString` method of `wrapper` to mimic the source of `reference`\n * with wrapper details in a comment at the top of the source body.\n *\n * @private\n * @param {Function} wrapper The function to modify.\n * @param {Function} reference The reference function.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Function} Returns `wrapper`.\n */\n function setWrapToString(wrapper, reference, bitmask) {\n var source = (reference + '');\n return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));\n }\n\n /**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\n function shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n }\n\n /**\n * A specialized version of `_.shuffle` which mutates and sets the size of `array`.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @param {number} [size=array.length] The size of `array`.\n * @returns {Array} Returns `array`.\n */\n function shuffleSelf(array, size) {\n var index = -1,\n length = array.length,\n lastIndex = length - 1;\n\n size = size === undefined ? length : size;\n while (++index < size) {\n var rand = baseRandom(index, lastIndex),\n value = array[rand];\n\n array[rand] = array[index];\n array[index] = value;\n }\n array.length = size;\n return array;\n }\n\n /**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\n var stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n });\n\n /**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\n function toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n }\n\n /**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\n function toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n }\n\n /**\n * Updates wrapper `details` based on `bitmask` flags.\n *\n * @private\n * @returns {Array} details The details to modify.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Array} Returns `details`.\n */\n function updateWrapDetails(details, bitmask) {\n arrayEach(wrapFlags, function(pair) {\n var value = '_.' + pair[0];\n if ((bitmask & pair[1]) && !arrayIncludes(details, value)) {\n details.push(value);\n }\n });\n return details.sort();\n }\n\n /**\n * Creates a clone of `wrapper`.\n *\n * @private\n * @param {Object} wrapper The wrapper to clone.\n * @returns {Object} Returns the cloned wrapper.\n */\n function wrapperClone(wrapper) {\n if (wrapper instanceof LazyWrapper) {\n return wrapper.clone();\n }\n var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);\n result.__actions__ = copyArray(wrapper.__actions__);\n result.__index__ = wrapper.__index__;\n result.__values__ = wrapper.__values__;\n return result;\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an array of elements split into groups the length of `size`.\n * If `array` can't be split evenly, the final chunk will be the remaining\n * elements.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to process.\n * @param {number} [size=1] The length of each chunk\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the new array of chunks.\n * @example\n *\n * _.chunk(['a', 'b', 'c', 'd'], 2);\n * // => [['a', 'b'], ['c', 'd']]\n *\n * _.chunk(['a', 'b', 'c', 'd'], 3);\n * // => [['a', 'b', 'c'], ['d']]\n */\n function chunk(array, size, guard) {\n if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {\n size = 1;\n } else {\n size = nativeMax(toInteger(size), 0);\n }\n var length = array == null ? 0 : array.length;\n if (!length || size < 1) {\n return [];\n }\n var index = 0,\n resIndex = 0,\n result = Array(nativeCeil(length / size));\n\n while (index < length) {\n result[resIndex++] = baseSlice(array, index, (index += size));\n }\n return result;\n }\n\n /**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\n function compact(array) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value) {\n result[resIndex++] = value;\n }\n }\n return result;\n }\n\n /**\n * Creates a new array concatenating `array` with any additional arrays\n * and/or values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to concatenate.\n * @param {...*} [values] The values to concatenate.\n * @returns {Array} Returns the new concatenated array.\n * @example\n *\n * var array = [1];\n * var other = _.concat(array, 2, [3], [[4]]);\n *\n * console.log(other);\n * // => [1, 2, 3, [4]]\n *\n * console.log(array);\n * // => [1]\n */\n function concat() {\n var length = arguments.length;\n if (!length) {\n return [];\n }\n var args = Array(length - 1),\n array = arguments[0],\n index = length;\n\n while (index--) {\n args[index - 1] = arguments[index];\n }\n return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1));\n }\n\n /**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\n var difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n });\n\n /**\n * This method is like `_.difference` except that it accepts `iteratee` which\n * is invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * **Note:** Unlike `_.pullAllBy`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\n var differenceBy = baseRest(function(array, values) {\n var iteratee = last(values);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), getIteratee(iteratee, 2))\n : [];\n });\n\n /**\n * This method is like `_.difference` except that it accepts `comparator`\n * which is invoked to compare elements of `array` to `values`. The order and\n * references of result values are determined by the first array. The comparator\n * is invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.pullAllWith`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n *\n * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }]\n */\n var differenceWith = baseRest(function(array, values) {\n var comparator = last(values);\n if (isArrayLikeObject(comparator)) {\n comparator = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined, comparator)\n : [];\n });\n\n /**\n * Creates a slice of `array` with `n` elements dropped from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.drop([1, 2, 3]);\n * // => [2, 3]\n *\n * _.drop([1, 2, 3], 2);\n * // => [3]\n *\n * _.drop([1, 2, 3], 5);\n * // => []\n *\n * _.drop([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\n function drop(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n\n /**\n * Creates a slice of `array` with `n` elements dropped from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.dropRight([1, 2, 3]);\n * // => [1, 2]\n *\n * _.dropRight([1, 2, 3], 2);\n * // => [1]\n *\n * _.dropRight([1, 2, 3], 5);\n * // => []\n *\n * _.dropRight([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\n function dropRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n\n /**\n * Creates a slice of `array` excluding elements dropped from the end.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.dropRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropRightWhile(users, ['active', false]);\n * // => objects for ['barney']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropRightWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\n function dropRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), true, true)\n : [];\n }\n\n /**\n * Creates a slice of `array` excluding elements dropped from the beginning.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.dropWhile(users, function(o) { return !o.active; });\n * // => objects for ['pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropWhile(users, ['active', false]);\n * // => objects for ['pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\n function dropWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), true)\n : [];\n }\n\n /**\n * Fills elements of `array` with `value` from `start` up to, but not\n * including, `end`.\n *\n * **Note:** This method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Array\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.fill(array, 'a');\n * console.log(array);\n * // => ['a', 'a', 'a']\n *\n * _.fill(Array(3), 2);\n * // => [2, 2, 2]\n *\n * _.fill([4, 6, 8, 10], '*', 1, 3);\n * // => [4, '*', '*', 10]\n */\n function fill(array, value, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (start && typeof start != 'number' && isIterateeCall(array, value, start)) {\n start = 0;\n end = length;\n }\n return baseFill(array, value, start, end);\n }\n\n /**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\n function findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index);\n }\n\n /**\n * This method is like `_.findIndex` except that it iterates over elements\n * of `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; });\n * // => 2\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastIndex(users, { 'user': 'barney', 'active': true });\n * // => 0\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastIndex(users, ['active', false]);\n * // => 2\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastIndex(users, 'active');\n * // => 0\n */\n function findLastIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length - 1;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = fromIndex < 0\n ? nativeMax(length + index, 0)\n : nativeMin(index, length - 1);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index, true);\n }\n\n /**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\n function flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n }\n\n /**\n * Recursively flattens `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flattenDeep([1, [2, [3, [4]], 5]]);\n * // => [1, 2, 3, 4, 5]\n */\n function flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n }\n\n /**\n * Recursively flatten `array` up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * var array = [1, [2, [3, [4]], 5]];\n *\n * _.flattenDepth(array, 1);\n * // => [1, 2, [3, [4]], 5]\n *\n * _.flattenDepth(array, 2);\n * // => [1, 2, 3, [4], 5]\n */\n function flattenDepth(array, depth) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(array, depth);\n }\n\n /**\n * The inverse of `_.toPairs`; this method returns an object composed\n * from key-value `pairs`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} pairs The key-value pairs.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.fromPairs([['a', 1], ['b', 2]]);\n * // => { 'a': 1, 'b': 2 }\n */\n function fromPairs(pairs) {\n var index = -1,\n length = pairs == null ? 0 : pairs.length,\n result = {};\n\n while (++index < length) {\n var pair = pairs[index];\n result[pair[0]] = pair[1];\n }\n return result;\n }\n\n /**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\n function head(array) {\n return (array && array.length) ? array[0] : undefined;\n }\n\n /**\n * Gets the index at which the first occurrence of `value` is found in `array`\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. If `fromIndex` is negative, it's used as the\n * offset from the end of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.indexOf([1, 2, 1, 2], 2);\n * // => 1\n *\n * // Search from the `fromIndex`.\n * _.indexOf([1, 2, 1, 2], 2, 2);\n * // => 3\n */\n function indexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseIndexOf(array, value, index);\n }\n\n /**\n * Gets all but the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.initial([1, 2, 3]);\n * // => [1, 2]\n */\n function initial(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 0, -1) : [];\n }\n\n /**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\n var intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped)\n : [];\n });\n\n /**\n * This method is like `_.intersection` except that it accepts `iteratee`\n * which is invoked for each element of each `arrays` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [2.1]\n *\n * // The `_.property` iteratee shorthand.\n * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }]\n */\n var intersectionBy = baseRest(function(arrays) {\n var iteratee = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n if (iteratee === last(mapped)) {\n iteratee = undefined;\n } else {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, getIteratee(iteratee, 2))\n : [];\n });\n\n /**\n * This method is like `_.intersection` except that it accepts `comparator`\n * which is invoked to compare elements of `arrays`. The order and references\n * of result values are determined by the first array. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.intersectionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }]\n */\n var intersectionWith = baseRest(function(arrays) {\n var comparator = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n comparator = typeof comparator == 'function' ? comparator : undefined;\n if (comparator) {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, undefined, comparator)\n : [];\n });\n\n /**\n * Converts all elements in `array` into a string separated by `separator`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to convert.\n * @param {string} [separator=','] The element separator.\n * @returns {string} Returns the joined string.\n * @example\n *\n * _.join(['a', 'b', 'c'], '~');\n * // => 'a~b~c'\n */\n function join(array, separator) {\n return array == null ? '' : nativeJoin.call(array, separator);\n }\n\n /**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\n function last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n }\n\n /**\n * This method is like `_.indexOf` except that it iterates over elements of\n * `array` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.lastIndexOf([1, 2, 1, 2], 2);\n * // => 3\n *\n * // Search from the `fromIndex`.\n * _.lastIndexOf([1, 2, 1, 2], 2, 2);\n * // => 1\n */\n function lastIndexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);\n }\n return value === value\n ? strictLastIndexOf(array, value, index)\n : baseFindIndex(array, baseIsNaN, index, true);\n }\n\n /**\n * Gets the element at index `n` of `array`. If `n` is negative, the nth\n * element from the end is returned.\n *\n * @static\n * @memberOf _\n * @since 4.11.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=0] The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n *\n * _.nth(array, 1);\n * // => 'b'\n *\n * _.nth(array, -2);\n * // => 'c';\n */\n function nth(array, n) {\n return (array && array.length) ? baseNth(array, toInteger(n)) : undefined;\n }\n\n /**\n * Removes all given values from `array` using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove`\n * to remove elements from an array by predicate.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...*} [values] The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pull(array, 'a', 'c');\n * console.log(array);\n * // => ['b', 'b']\n */\n var pull = baseRest(pullAll);\n\n /**\n * This method is like `_.pull` except that it accepts an array of values to remove.\n *\n * **Note:** Unlike `_.difference`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pullAll(array, ['a', 'c']);\n * console.log(array);\n * // => ['b', 'b']\n */\n function pullAll(array, values) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values)\n : array;\n }\n\n /**\n * This method is like `_.pullAll` except that it accepts `iteratee` which is\n * invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The iteratee is invoked with one argument: (value).\n *\n * **Note:** Unlike `_.differenceBy`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];\n *\n * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');\n * console.log(array);\n * // => [{ 'x': 2 }]\n */\n function pullAllBy(array, values, iteratee) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, getIteratee(iteratee, 2))\n : array;\n }\n\n /**\n * This method is like `_.pullAll` except that it accepts `comparator` which\n * is invoked to compare elements of `array` to `values`. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.differenceWith`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];\n *\n * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);\n * console.log(array);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]\n */\n function pullAllWith(array, values, comparator) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, undefined, comparator)\n : array;\n }\n\n /**\n * Removes elements from `array` corresponding to `indexes` and returns an\n * array of removed elements.\n *\n * **Note:** Unlike `_.at`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...(number|number[])} [indexes] The indexes of elements to remove.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n * var pulled = _.pullAt(array, [1, 3]);\n *\n * console.log(array);\n * // => ['a', 'c']\n *\n * console.log(pulled);\n * // => ['b', 'd']\n */\n var pullAt = flatRest(function(array, indexes) {\n var length = array == null ? 0 : array.length,\n result = baseAt(array, indexes);\n\n basePullAt(array, arrayMap(indexes, function(index) {\n return isIndex(index, length) ? +index : index;\n }).sort(compareAscending));\n\n return result;\n });\n\n /**\n * Removes all elements from `array` that `predicate` returns truthy for\n * and returns an array of the removed elements. The predicate is invoked\n * with three arguments: (value, index, array).\n *\n * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`\n * to pull elements from an array by value.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = [1, 2, 3, 4];\n * var evens = _.remove(array, function(n) {\n * return n % 2 == 0;\n * });\n *\n * console.log(array);\n * // => [1, 3]\n *\n * console.log(evens);\n * // => [2, 4]\n */\n function remove(array, predicate) {\n var result = [];\n if (!(array && array.length)) {\n return result;\n }\n var index = -1,\n indexes = [],\n length = array.length;\n\n predicate = getIteratee(predicate, 3);\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result.push(value);\n indexes.push(index);\n }\n }\n basePullAt(array, indexes);\n return result;\n }\n\n /**\n * Reverses `array` so that the first element becomes the last, the second\n * element becomes the second to last, and so on.\n *\n * **Note:** This method mutates `array` and is based on\n * [`Array#reverse`](https://mdn.io/Array/reverse).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.reverse(array);\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\n function reverse(array) {\n return array == null ? array : nativeReverse.call(array);\n }\n\n /**\n * Creates a slice of `array` from `start` up to, but not including, `end`.\n *\n * **Note:** This method is used instead of\n * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are\n * returned.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function slice(array, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (end && typeof end != 'number' && isIterateeCall(array, start, end)) {\n start = 0;\n end = length;\n }\n else {\n start = start == null ? 0 : toInteger(start);\n end = end === undefined ? length : toInteger(end);\n }\n return baseSlice(array, start, end);\n }\n\n /**\n * Uses a binary search to determine the lowest index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedIndex([30, 50], 40);\n * // => 1\n */\n function sortedIndex(array, value) {\n return baseSortedIndex(array, value);\n }\n\n /**\n * This method is like `_.sortedIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedIndexBy(objects, { 'x': 4 }, 'x');\n * // => 0\n */\n function sortedIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2));\n }\n\n /**\n * This method is like `_.indexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedIndexOf([4, 5, 5, 5, 6], 5);\n * // => 1\n */\n function sortedIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value);\n if (index < length && eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * This method is like `_.sortedIndex` except that it returns the highest\n * index at which `value` should be inserted into `array` in order to\n * maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedLastIndex([4, 5, 5, 5, 6], 5);\n * // => 4\n */\n function sortedLastIndex(array, value) {\n return baseSortedIndex(array, value, true);\n }\n\n /**\n * This method is like `_.sortedLastIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 1\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedLastIndexBy(objects, { 'x': 4 }, 'x');\n * // => 1\n */\n function sortedLastIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2), true);\n }\n\n /**\n * This method is like `_.lastIndexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5);\n * // => 3\n */\n function sortedLastIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value, true) - 1;\n if (eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * This method is like `_.uniq` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniq([1, 1, 2]);\n * // => [1, 2]\n */\n function sortedUniq(array) {\n return (array && array.length)\n ? baseSortedUniq(array)\n : [];\n }\n\n /**\n * This method is like `_.uniqBy` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);\n * // => [1.1, 2.3]\n */\n function sortedUniqBy(array, iteratee) {\n return (array && array.length)\n ? baseSortedUniq(array, getIteratee(iteratee, 2))\n : [];\n }\n\n /**\n * Gets all but the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.tail([1, 2, 3]);\n * // => [2, 3]\n */\n function tail(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 1, length) : [];\n }\n\n /**\n * Creates a slice of `array` with `n` elements taken from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.take([1, 2, 3]);\n * // => [1]\n *\n * _.take([1, 2, 3], 2);\n * // => [1, 2]\n *\n * _.take([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.take([1, 2, 3], 0);\n * // => []\n */\n function take(array, n, guard) {\n if (!(array && array.length)) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n\n /**\n * Creates a slice of `array` with `n` elements taken from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.takeRight([1, 2, 3]);\n * // => [3]\n *\n * _.takeRight([1, 2, 3], 2);\n * // => [2, 3]\n *\n * _.takeRight([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.takeRight([1, 2, 3], 0);\n * // => []\n */\n function takeRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n\n /**\n * Creates a slice of `array` with elements taken from the end. Elements are\n * taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.takeRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeRightWhile(users, ['active', false]);\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeRightWhile(users, 'active');\n * // => []\n */\n function takeRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), false, true)\n : [];\n }\n\n /**\n * Creates a slice of `array` with elements taken from the beginning. Elements\n * are taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.takeWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeWhile(users, ['active', false]);\n * // => objects for ['barney', 'fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeWhile(users, 'active');\n * // => []\n */\n function takeWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3))\n : [];\n }\n\n /**\n * Creates an array of unique values, in order, from all given arrays using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.union([2], [1, 2]);\n * // => [2, 1]\n */\n var union = baseRest(function(arrays) {\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n });\n\n /**\n * This method is like `_.union` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which uniqueness is computed. Result values are chosen from the first\n * array in which the value occurs. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.unionBy([2.1], [1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\n var unionBy = baseRest(function(arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee, 2));\n });\n\n /**\n * This method is like `_.union` except that it accepts `comparator` which\n * is invoked to compare elements of `arrays`. Result values are chosen from\n * the first array in which the value occurs. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.unionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\n var unionWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined, comparator);\n });\n\n /**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\n function uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n }\n\n /**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\n function uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, getIteratee(iteratee, 2)) : [];\n }\n\n /**\n * This method is like `_.uniq` except that it accepts `comparator` which\n * is invoked to compare elements of `array`. The order of result values is\n * determined by the order they occur in the array.The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.uniqWith(objects, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]\n */\n function uniqWith(array, comparator) {\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return (array && array.length) ? baseUniq(array, undefined, comparator) : [];\n }\n\n /**\n * This method is like `_.zip` except that it accepts an array of grouped\n * elements and creates an array regrouping the elements to their pre-zip\n * configuration.\n *\n * @static\n * @memberOf _\n * @since 1.2.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n *\n * _.unzip(zipped);\n * // => [['a', 'b'], [1, 2], [true, false]]\n */\n function unzip(array) {\n if (!(array && array.length)) {\n return [];\n }\n var length = 0;\n array = arrayFilter(array, function(group) {\n if (isArrayLikeObject(group)) {\n length = nativeMax(group.length, length);\n return true;\n }\n });\n return baseTimes(length, function(index) {\n return arrayMap(array, baseProperty(index));\n });\n }\n\n /**\n * This method is like `_.unzip` except that it accepts `iteratee` to specify\n * how regrouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * regrouped values.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip([1, 2], [10, 20], [100, 200]);\n * // => [[1, 10, 100], [2, 20, 200]]\n *\n * _.unzipWith(zipped, _.add);\n * // => [3, 30, 300]\n */\n function unzipWith(array, iteratee) {\n if (!(array && array.length)) {\n return [];\n }\n var result = unzip(array);\n if (iteratee == null) {\n return result;\n }\n return arrayMap(result, function(group) {\n return apply(iteratee, undefined, group);\n });\n }\n\n /**\n * Creates an array excluding all given values using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.pull`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...*} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.xor\n * @example\n *\n * _.without([2, 1, 2, 3], 1, 2);\n * // => [3]\n */\n var without = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, values)\n : [];\n });\n\n /**\n * Creates an array of unique values that is the\n * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)\n * of the given arrays. The order of result values is determined by the order\n * they occur in the arrays.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.without\n * @example\n *\n * _.xor([2, 1], [2, 3]);\n * // => [1, 3]\n */\n var xor = baseRest(function(arrays) {\n return baseXor(arrayFilter(arrays, isArrayLikeObject));\n });\n\n /**\n * This method is like `_.xor` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which by which they're compared. The order of result values is determined\n * by the order they occur in the arrays. The iteratee is invoked with one\n * argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2, 3.4]\n *\n * // The `_.property` iteratee shorthand.\n * _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\n var xorBy = baseRest(function(arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee, 2));\n });\n\n /**\n * This method is like `_.xor` except that it accepts `comparator` which is\n * invoked to compare elements of `arrays`. The order of result values is\n * determined by the order they occur in the arrays. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.xorWith(objects, others, _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\n var xorWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator);\n });\n\n /**\n * Creates an array of grouped elements, the first of which contains the\n * first elements of the given arrays, the second of which contains the\n * second elements of the given arrays, and so on.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n */\n var zip = baseRest(unzip);\n\n /**\n * This method is like `_.fromPairs` except that it accepts two arrays,\n * one of property identifiers and one of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 0.4.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObject(['a', 'b'], [1, 2]);\n * // => { 'a': 1, 'b': 2 }\n */\n function zipObject(props, values) {\n return baseZipObject(props || [], values || [], assignValue);\n }\n\n /**\n * This method is like `_.zipObject` except that it supports property paths.\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]);\n * // => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } }\n */\n function zipObjectDeep(props, values) {\n return baseZipObject(props || [], values || [], baseSet);\n }\n\n /**\n * This method is like `_.zip` except that it accepts `iteratee` to specify\n * how grouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * grouped values.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) {\n * return a + b + c;\n * });\n * // => [111, 222]\n */\n var zipWith = baseRest(function(arrays) {\n var length = arrays.length,\n iteratee = length > 1 ? arrays[length - 1] : undefined;\n\n iteratee = typeof iteratee == 'function' ? (arrays.pop(), iteratee) : undefined;\n return unzipWith(arrays, iteratee);\n });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` wrapper instance that wraps `value` with explicit method\n * chain sequences enabled. The result of such sequences must be unwrapped\n * with `_#value`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Seq\n * @param {*} value The value to wrap.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'pebbles', 'age': 1 }\n * ];\n *\n * var youngest = _\n * .chain(users)\n * .sortBy('age')\n * .map(function(o) {\n * return o.user + ' is ' + o.age;\n * })\n * .head()\n * .value();\n * // => 'pebbles is 1'\n */\n function chain(value) {\n var result = lodash(value);\n result.__chain__ = true;\n return result;\n }\n\n /**\n * This method invokes `interceptor` and returns `value`. The interceptor\n * is invoked with one argument; (value). The purpose of this method is to\n * \"tap into\" a method chain sequence in order to modify intermediate results.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns `value`.\n * @example\n *\n * _([1, 2, 3])\n * .tap(function(array) {\n * // Mutate input array.\n * array.pop();\n * })\n * .reverse()\n * .value();\n * // => [2, 1]\n */\n function tap(value, interceptor) {\n interceptor(value);\n return value;\n }\n\n /**\n * This method is like `_.tap` except that it returns the result of `interceptor`.\n * The purpose of this method is to \"pass thru\" values replacing intermediate\n * results in a method chain sequence.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns the result of `interceptor`.\n * @example\n *\n * _(' abc ')\n * .chain()\n * .trim()\n * .thru(function(value) {\n * return [value];\n * })\n * .value();\n * // => ['abc']\n */\n function thru(value, interceptor) {\n return interceptor(value);\n }\n\n /**\n * This method is the wrapper version of `_.at`.\n *\n * @name at\n * @memberOf _\n * @since 1.0.0\n * @category Seq\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _(object).at(['a[0].b.c', 'a[1]']).value();\n * // => [3, 4]\n */\n var wrapperAt = flatRest(function(paths) {\n var length = paths.length,\n start = length ? paths[0] : 0,\n value = this.__wrapped__,\n interceptor = function(object) { return baseAt(object, paths); };\n\n if (length > 1 || this.__actions__.length ||\n !(value instanceof LazyWrapper) || !isIndex(start)) {\n return this.thru(interceptor);\n }\n value = value.slice(start, +start + (length ? 1 : 0));\n value.__actions__.push({\n 'func': thru,\n 'args': [interceptor],\n 'thisArg': undefined\n });\n return new LodashWrapper(value, this.__chain__).thru(function(array) {\n if (length && !array.length) {\n array.push(undefined);\n }\n return array;\n });\n });\n\n /**\n * Creates a `lodash` wrapper instance with explicit method chain sequences enabled.\n *\n * @name chain\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 }\n * ];\n *\n * // A sequence without explicit chaining.\n * _(users).head();\n * // => { 'user': 'barney', 'age': 36 }\n *\n * // A sequence with explicit chaining.\n * _(users)\n * .chain()\n * .head()\n * .pick('user')\n * .value();\n * // => { 'user': 'barney' }\n */\n function wrapperChain() {\n return chain(this);\n }\n\n /**\n * Executes the chain sequence and returns the wrapped result.\n *\n * @name commit\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2];\n * var wrapped = _(array).push(3);\n *\n * console.log(array);\n * // => [1, 2]\n *\n * wrapped = wrapped.commit();\n * console.log(array);\n * // => [1, 2, 3]\n *\n * wrapped.last();\n * // => 3\n *\n * console.log(array);\n * // => [1, 2, 3]\n */\n function wrapperCommit() {\n return new LodashWrapper(this.value(), this.__chain__);\n }\n\n /**\n * Gets the next value on a wrapped object following the\n * [iterator protocol](https://mdn.io/iteration_protocols#iterator).\n *\n * @name next\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the next iterator value.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 1 }\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 2 }\n *\n * wrapped.next();\n * // => { 'done': true, 'value': undefined }\n */\n function wrapperNext() {\n if (this.__values__ === undefined) {\n this.__values__ = toArray(this.value());\n }\n var done = this.__index__ >= this.__values__.length,\n value = done ? undefined : this.__values__[this.__index__++];\n\n return { 'done': done, 'value': value };\n }\n\n /**\n * Enables the wrapper to be iterable.\n *\n * @name Symbol.iterator\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the wrapper object.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped[Symbol.iterator]() === wrapped;\n * // => true\n *\n * Array.from(wrapped);\n * // => [1, 2]\n */\n function wrapperToIterator() {\n return this;\n }\n\n /**\n * Creates a clone of the chain sequence planting `value` as the wrapped value.\n *\n * @name plant\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @param {*} value The value to plant.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2]).map(square);\n * var other = wrapped.plant([3, 4]);\n *\n * other.value();\n * // => [9, 16]\n *\n * wrapped.value();\n * // => [1, 4]\n */\n function wrapperPlant(value) {\n var result,\n parent = this;\n\n while (parent instanceof baseLodash) {\n var clone = wrapperClone(parent);\n clone.__index__ = 0;\n clone.__values__ = undefined;\n if (result) {\n previous.__wrapped__ = clone;\n } else {\n result = clone;\n }\n var previous = clone;\n parent = parent.__wrapped__;\n }\n previous.__wrapped__ = value;\n return result;\n }\n\n /**\n * This method is the wrapper version of `_.reverse`.\n *\n * **Note:** This method mutates the wrapped array.\n *\n * @name reverse\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _(array).reverse().value()\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\n function wrapperReverse() {\n var value = this.__wrapped__;\n if (value instanceof LazyWrapper) {\n var wrapped = value;\n if (this.__actions__.length) {\n wrapped = new LazyWrapper(this);\n }\n wrapped = wrapped.reverse();\n wrapped.__actions__.push({\n 'func': thru,\n 'args': [reverse],\n 'thisArg': undefined\n });\n return new LodashWrapper(wrapped, this.__chain__);\n }\n return this.thru(reverse);\n }\n\n /**\n * Executes the chain sequence to resolve the unwrapped value.\n *\n * @name value\n * @memberOf _\n * @since 0.1.0\n * @alias toJSON, valueOf\n * @category Seq\n * @returns {*} Returns the resolved unwrapped value.\n * @example\n *\n * _([1, 2, 3]).value();\n * // => [1, 2, 3]\n */\n function wrapperValue() {\n return baseWrapperValue(this.__wrapped__, this.__actions__);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the number of times the key was returned by `iteratee`. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.countBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': 1, '6': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.countBy(['one', 'two', 'three'], 'length');\n * // => { '3': 2, '5': 1 }\n */\n var countBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n ++result[key];\n } else {\n baseAssignValue(result, key, 1);\n }\n });\n\n /**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\n function every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\n function filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\n var find = createFind(findIndex);\n\n /**\n * This method is like `_.find` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=collection.length-1] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * _.findLast([1, 2, 3, 4], function(n) {\n * return n % 2 == 1;\n * });\n * // => 3\n */\n var findLast = createFind(findLastIndex);\n\n /**\n * Creates a flattened array of values by running each element in `collection`\n * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n * with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [n, n];\n * }\n *\n * _.flatMap([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\n function flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n }\n\n /**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDeep([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\n function flatMapDeep(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), INFINITY);\n }\n\n /**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDepth([1, 2], duplicate, 2);\n * // => [[1, 1], [2, 2]]\n */\n function flatMapDepth(collection, iteratee, depth) {\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(map(collection, iteratee), depth);\n }\n\n /**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n function forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.forEach` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @alias eachRight\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEach\n * @example\n *\n * _.forEachRight([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `2` then `1`.\n */\n function forEachRight(collection, iteratee) {\n var func = isArray(collection) ? arrayEachRight : baseEachRight;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\n var groupBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n result[key].push(value);\n } else {\n baseAssignValue(result, key, [value]);\n }\n });\n\n /**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\n function includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection)\n ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n }\n\n /**\n * Invokes the method at `path` of each element in `collection`, returning\n * an array of the results of each invoked method. Any additional arguments\n * are provided to each invoked method. If `path` is a function, it's invoked\n * for, and `this` bound to, each element in `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array|Function|string} path The path of the method to invoke or\n * the function invoked per iteration.\n * @param {...*} [args] The arguments to invoke each method with.\n * @returns {Array} Returns the array of results.\n * @example\n *\n * _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort');\n * // => [[1, 5, 7], [1, 2, 3]]\n *\n * _.invokeMap([123, 456], String.prototype.split, '');\n * // => [['1', '2', '3'], ['4', '5', '6']]\n */\n var invokeMap = baseRest(function(collection, path, args) {\n var index = -1,\n isFunc = typeof path == 'function',\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value) {\n result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args);\n });\n return result;\n });\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the last element responsible for generating the key. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * var array = [\n * { 'dir': 'left', 'code': 97 },\n * { 'dir': 'right', 'code': 100 }\n * ];\n *\n * _.keyBy(array, function(o) {\n * return String.fromCharCode(o.code);\n * });\n * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }\n *\n * _.keyBy(array, 'dir');\n * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }\n */\n var keyBy = createAggregator(function(result, value, key) {\n baseAssignValue(result, key, value);\n });\n\n /**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\n function map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.sortBy` except that it allows specifying the sort\n * orders of the iteratees to sort by. If `orders` is unspecified, all values\n * are sorted in ascending order. Otherwise, specify an order of \"desc\" for\n * descending or \"asc\" for ascending sort order of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @param {string[]} [orders] The sort orders of `iteratees`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 34 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 36 }\n * ];\n *\n * // Sort by `user` in ascending order and by `age` in descending order.\n * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n */\n function orderBy(collection, iteratees, orders, guard) {\n if (collection == null) {\n return [];\n }\n if (!isArray(iteratees)) {\n iteratees = iteratees == null ? [] : [iteratees];\n }\n orders = guard ? undefined : orders;\n if (!isArray(orders)) {\n orders = orders == null ? [] : [orders];\n }\n return baseOrderBy(collection, iteratees, orders);\n }\n\n /**\n * Creates an array of elements split into two groups, the first of which\n * contains elements `predicate` returns truthy for, the second of which\n * contains elements `predicate` returns falsey for. The predicate is\n * invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the array of grouped elements.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true },\n * { 'user': 'pebbles', 'age': 1, 'active': false }\n * ];\n *\n * _.partition(users, function(o) { return o.active; });\n * // => objects for [['fred'], ['barney', 'pebbles']]\n *\n * // The `_.matches` iteratee shorthand.\n * _.partition(users, { 'age': 1, 'active': false });\n * // => objects for [['pebbles'], ['barney', 'fred']]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.partition(users, ['active', false]);\n * // => objects for [['barney', 'pebbles'], ['fred']]\n *\n * // The `_.property` iteratee shorthand.\n * _.partition(users, 'active');\n * // => objects for [['fred'], ['barney', 'pebbles']]\n */\n var partition = createAggregator(function(result, value, key) {\n result[key ? 0 : 1].push(value);\n }, function() { return [[], []]; });\n\n /**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` thru `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not given, the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduceRight\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n * return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\n function reduce(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n }\n\n /**\n * This method is like `_.reduce` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduce\n * @example\n *\n * var array = [[0, 1], [2, 3], [4, 5]];\n *\n * _.reduceRight(array, function(flattened, other) {\n * return flattened.concat(other);\n * }, []);\n * // => [4, 5, 2, 3, 0, 1]\n */\n function reduceRight(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduceRight : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEachRight);\n }\n\n /**\n * The opposite of `_.filter`; this method returns the elements of `collection`\n * that `predicate` does **not** return truthy for.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.filter\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true }\n * ];\n *\n * _.reject(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.reject(users, { 'age': 40, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.reject(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.reject(users, 'active');\n * // => objects for ['barney']\n */\n function reject(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, negate(getIteratee(predicate, 3)));\n }\n\n /**\n * Gets a random element from `collection`.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n * @example\n *\n * _.sample([1, 2, 3, 4]);\n * // => 2\n */\n function sample(collection) {\n var func = isArray(collection) ? arraySample : baseSample;\n return func(collection);\n }\n\n /**\n * Gets `n` random elements at unique keys from `collection` up to the\n * size of `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @param {number} [n=1] The number of elements to sample.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the random elements.\n * @example\n *\n * _.sampleSize([1, 2, 3], 2);\n * // => [3, 1]\n *\n * _.sampleSize([1, 2, 3], 4);\n * // => [2, 3, 1]\n */\n function sampleSize(collection, n, guard) {\n if ((guard ? isIterateeCall(collection, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n var func = isArray(collection) ? arraySampleSize : baseSampleSize;\n return func(collection, n);\n }\n\n /**\n * Creates an array of shuffled values, using a version of the\n * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n * @example\n *\n * _.shuffle([1, 2, 3, 4]);\n * // => [4, 1, 3, 2]\n */\n function shuffle(collection) {\n var func = isArray(collection) ? arrayShuffle : baseShuffle;\n return func(collection);\n }\n\n /**\n * Gets the size of `collection` by returning its length for array-like\n * values or the number of own enumerable string keyed properties for objects.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @returns {number} Returns the collection size.\n * @example\n *\n * _.size([1, 2, 3]);\n * // => 3\n *\n * _.size({ 'a': 1, 'b': 2 });\n * // => 2\n *\n * _.size('pebbles');\n * // => 7\n */\n function size(collection) {\n if (collection == null) {\n return 0;\n }\n if (isArrayLike(collection)) {\n return isString(collection) ? stringSize(collection) : collection.length;\n }\n var tag = getTag(collection);\n if (tag == mapTag || tag == setTag) {\n return collection.size;\n }\n return baseKeys(collection).length;\n }\n\n /**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\n function some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\n var sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\n var now = ctxNow || function() {\n return root.Date.now();\n };\n\n /*------------------------------------------------------------------------*/\n\n /**\n * The opposite of `_.before`; this method creates a function that invokes\n * `func` once it's called `n` or more times.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {number} n The number of calls before `func` is invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var saves = ['profile', 'settings'];\n *\n * var done = _.after(saves.length, function() {\n * console.log('done saving!');\n * });\n *\n * _.forEach(saves, function(type) {\n * asyncSave({ 'type': type, 'complete': done });\n * });\n * // => Logs 'done saving!' after the two async saves have completed.\n */\n function after(n, func) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n < 1) {\n return func.apply(this, arguments);\n }\n };\n }\n\n /**\n * Creates a function that invokes `func`, with up to `n` arguments,\n * ignoring any additional arguments.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @param {number} [n=func.length] The arity cap.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.ary(parseInt, 1));\n * // => [6, 8, 10]\n */\n function ary(func, n, guard) {\n n = guard ? undefined : n;\n n = (func && n == null) ? func.length : n;\n return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n);\n }\n\n /**\n * Creates a function that invokes `func`, with the `this` binding and arguments\n * of the created function, while it's called less than `n` times. Subsequent\n * calls to the created function return the result of the last `func` invocation.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {number} n The number of calls at which `func` is no longer invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * jQuery(element).on('click', _.before(5, addContactToList));\n * // => Allows adding up to 4 contacts to the list.\n */\n function before(n, func) {\n var result;\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n > 0) {\n result = func.apply(this, arguments);\n }\n if (n <= 1) {\n func = undefined;\n }\n return result;\n };\n }\n\n /**\n * Creates a function that invokes `func` with the `this` binding of `thisArg`\n * and `partials` prepended to the arguments it receives.\n *\n * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for partially applied arguments.\n *\n * **Note:** Unlike native `Function#bind`, this method doesn't set the \"length\"\n * property of bound functions.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * function greet(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n *\n * var object = { 'user': 'fred' };\n *\n * var bound = _.bind(greet, object, 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bind(greet, object, _, '!');\n * bound('hi');\n * // => 'hi fred!'\n */\n var bind = baseRest(function(func, thisArg, partials) {\n var bitmask = WRAP_BIND_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bind));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(func, bitmask, thisArg, partials, holders);\n });\n\n /**\n * Creates a function that invokes the method at `object[key]` with `partials`\n * prepended to the arguments it receives.\n *\n * This method differs from `_.bind` by allowing bound functions to reference\n * methods that may be redefined or don't yet exist. See\n * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern)\n * for more details.\n *\n * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Function\n * @param {Object} object The object to invoke the method on.\n * @param {string} key The key of the method.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * var object = {\n * 'user': 'fred',\n * 'greet': function(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n * };\n *\n * var bound = _.bindKey(object, 'greet', 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * object.greet = function(greeting, punctuation) {\n * return greeting + 'ya ' + this.user + punctuation;\n * };\n *\n * bound('!');\n * // => 'hiya fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bindKey(object, 'greet', _, '!');\n * bound('hi');\n * // => 'hiya fred!'\n */\n var bindKey = baseRest(function(object, key, partials) {\n var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bindKey));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(key, bitmask, object, partials, holders);\n });\n\n /**\n * Creates a function that accepts arguments of `func` and either invokes\n * `func` returning its result, if at least `arity` number of arguments have\n * been provided, or returns a function that accepts the remaining `func`\n * arguments, and so on. The arity of `func` may be specified if `func.length`\n * is not sufficient.\n *\n * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curry(abc);\n *\n * curried(1)(2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(1)(_, 3)(2);\n * // => [1, 2, 3]\n */\n function curry(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curry.placeholder;\n return result;\n }\n\n /**\n * This method is like `_.curry` except that arguments are applied to `func`\n * in the manner of `_.partialRight` instead of `_.partial`.\n *\n * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curryRight(abc);\n *\n * curried(3)(2)(1);\n * // => [1, 2, 3]\n *\n * curried(2, 3)(1);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(3)(1, _)(2);\n * // => [1, 2, 3]\n */\n function curryRight(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curryRight.placeholder;\n return result;\n }\n\n /**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\n function debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n }\n\n /**\n * Defers invoking the `func` until the current call stack has cleared. Any\n * additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to defer.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.defer(function(text) {\n * console.log(text);\n * }, 'deferred');\n * // => Logs 'deferred' after one millisecond.\n */\n var defer = baseRest(function(func, args) {\n return baseDelay(func, 1, args);\n });\n\n /**\n * Invokes `func` after `wait` milliseconds. Any additional arguments are\n * provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.delay(function(text) {\n * console.log(text);\n * }, 1000, 'later');\n * // => Logs 'later' after one second.\n */\n var delay = baseRest(function(func, wait, args) {\n return baseDelay(func, toNumber(wait) || 0, args);\n });\n\n /**\n * Creates a function that invokes `func` with arguments reversed.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to flip arguments for.\n * @returns {Function} Returns the new flipped function.\n * @example\n *\n * var flipped = _.flip(function() {\n * return _.toArray(arguments);\n * });\n *\n * flipped('a', 'b', 'c', 'd');\n * // => ['d', 'c', 'b', 'a']\n */\n function flip(func) {\n return createWrap(func, WRAP_FLIP_FLAG);\n }\n\n /**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\n function memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n }\n\n // Expose `MapCache`.\n memoize.Cache = MapCache;\n\n /**\n * Creates a function that negates the result of the predicate `func`. The\n * `func` predicate is invoked with the `this` binding and arguments of the\n * created function.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} predicate The predicate to negate.\n * @returns {Function} Returns the new negated function.\n * @example\n *\n * function isEven(n) {\n * return n % 2 == 0;\n * }\n *\n * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n * // => [1, 3, 5]\n */\n function negate(predicate) {\n if (typeof predicate != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return function() {\n var args = arguments;\n switch (args.length) {\n case 0: return !predicate.call(this);\n case 1: return !predicate.call(this, args[0]);\n case 2: return !predicate.call(this, args[0], args[1]);\n case 3: return !predicate.call(this, args[0], args[1], args[2]);\n }\n return !predicate.apply(this, args);\n };\n }\n\n /**\n * Creates a function that is restricted to invoking `func` once. Repeat calls\n * to the function return the value of the first invocation. The `func` is\n * invoked with the `this` binding and arguments of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var initialize = _.once(createApplication);\n * initialize();\n * initialize();\n * // => `createApplication` is invoked once\n */\n function once(func) {\n return before(2, func);\n }\n\n /**\n * Creates a function that invokes `func` with its arguments transformed.\n *\n * @static\n * @since 4.0.0\n * @memberOf _\n * @category Function\n * @param {Function} func The function to wrap.\n * @param {...(Function|Function[])} [transforms=[_.identity]]\n * The argument transforms.\n * @returns {Function} Returns the new function.\n * @example\n *\n * function doubled(n) {\n * return n * 2;\n * }\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var func = _.overArgs(function(x, y) {\n * return [x, y];\n * }, [square, doubled]);\n *\n * func(9, 3);\n * // => [81, 6]\n *\n * func(10, 5);\n * // => [100, 10]\n */\n var overArgs = castRest(function(func, transforms) {\n transforms = (transforms.length == 1 && isArray(transforms[0]))\n ? arrayMap(transforms[0], baseUnary(getIteratee()))\n : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee()));\n\n var funcsLength = transforms.length;\n return baseRest(function(args) {\n var index = -1,\n length = nativeMin(args.length, funcsLength);\n\n while (++index < length) {\n args[index] = transforms[index].call(this, args[index]);\n }\n return apply(func, this, args);\n });\n });\n\n /**\n * Creates a function that invokes `func` with `partials` prepended to the\n * arguments it receives. This method is like `_.bind` except it does **not**\n * alter the `this` binding.\n *\n * The `_.partial.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 0.2.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var sayHelloTo = _.partial(greet, 'hello');\n * sayHelloTo('fred');\n * // => 'hello fred'\n *\n * // Partially applied with placeholders.\n * var greetFred = _.partial(greet, _, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n */\n var partial = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partial));\n return createWrap(func, WRAP_PARTIAL_FLAG, undefined, partials, holders);\n });\n\n /**\n * This method is like `_.partial` except that partially applied arguments\n * are appended to the arguments it receives.\n *\n * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var greetFred = _.partialRight(greet, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n *\n * // Partially applied with placeholders.\n * var sayHelloTo = _.partialRight(greet, 'hello', _);\n * sayHelloTo('fred');\n * // => 'hello fred'\n */\n var partialRight = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partialRight));\n return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders);\n });\n\n /**\n * Creates a function that invokes `func` with arguments arranged according\n * to the specified `indexes` where the argument value at the first index is\n * provided as the first argument, the argument value at the second index is\n * provided as the second argument, and so on.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to rearrange arguments for.\n * @param {...(number|number[])} indexes The arranged argument indexes.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var rearged = _.rearg(function(a, b, c) {\n * return [a, b, c];\n * }, [2, 0, 1]);\n *\n * rearged('b', 'c', 'a')\n * // => ['a', 'b', 'c']\n */\n var rearg = flatRest(function(func, indexes) {\n return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes);\n });\n\n /**\n * Creates a function that invokes `func` with the `this` binding of the\n * created function and arguments from `start` and beyond provided as\n * an array.\n *\n * **Note:** This method is based on the\n * [rest parameter](https://mdn.io/rest_parameters).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.rest(function(what, names) {\n * return what + ' ' + _.initial(names).join(', ') +\n * (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\n function rest(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start === undefined ? start : toInteger(start);\n return baseRest(func, start);\n }\n\n /**\n * Creates a function that invokes `func` with the `this` binding of the\n * create function and an array of arguments much like\n * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply).\n *\n * **Note:** This method is based on the\n * [spread operator](https://mdn.io/spread_operator).\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Function\n * @param {Function} func The function to spread arguments over.\n * @param {number} [start=0] The start position of the spread.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.spread(function(who, what) {\n * return who + ' says ' + what;\n * });\n *\n * say(['fred', 'hello']);\n * // => 'fred says hello'\n *\n * var numbers = Promise.all([\n * Promise.resolve(40),\n * Promise.resolve(36)\n * ]);\n *\n * numbers.then(_.spread(function(x, y) {\n * return x + y;\n * }));\n * // => a Promise of 76\n */\n function spread(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start == null ? 0 : nativeMax(toInteger(start), 0);\n return baseRest(function(args) {\n var array = args[start],\n otherArgs = castSlice(args, 0, start);\n\n if (array) {\n arrayPush(otherArgs, array);\n }\n return apply(func, this, otherArgs);\n });\n }\n\n /**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\n function throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n }\n\n /**\n * Creates a function that accepts up to one argument, ignoring any\n * additional arguments.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.unary(parseInt));\n * // => [6, 8, 10]\n */\n function unary(func) {\n return ary(func, 1);\n }\n\n /**\n * Creates a function that provides `value` to `wrapper` as its first\n * argument. Any additional arguments provided to the function are appended\n * to those provided to the `wrapper`. The wrapper is invoked with the `this`\n * binding of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {*} value The value to wrap.\n * @param {Function} [wrapper=identity] The wrapper function.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var p = _.wrap(_.escape, function(func, text) {\n * return '

' + func(text) + '

';\n * });\n *\n * p('fred, barney, & pebbles');\n * // => '

fred, barney, & pebbles

'\n */\n function wrap(value, wrapper) {\n return partial(castFunction(wrapper), value);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Casts `value` as an array if it's not one.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Lang\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast array.\n * @example\n *\n * _.castArray(1);\n * // => [1]\n *\n * _.castArray({ 'a': 1 });\n * // => [{ 'a': 1 }]\n *\n * _.castArray('abc');\n * // => ['abc']\n *\n * _.castArray(null);\n * // => [null]\n *\n * _.castArray(undefined);\n * // => [undefined]\n *\n * _.castArray();\n * // => []\n *\n * var array = [1, 2, 3];\n * console.log(_.castArray(array) === array);\n * // => true\n */\n function castArray() {\n if (!arguments.length) {\n return [];\n }\n var value = arguments[0];\n return isArray(value) ? value : [value];\n }\n\n /**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\n function clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n }\n\n /**\n * This method is like `_.clone` except that it accepts `customizer` which\n * is invoked to produce the cloned value. If `customizer` returns `undefined`,\n * cloning is handled by the method instead. The `customizer` is invoked with\n * up to four arguments; (value [, index|key, object, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeepWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(false);\n * }\n * }\n *\n * var el = _.cloneWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 0\n */\n function cloneWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_SYMBOLS_FLAG, customizer);\n }\n\n /**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\n function cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n }\n\n /**\n * This method is like `_.cloneWith` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the deep cloned value.\n * @see _.cloneWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(true);\n * }\n * }\n *\n * var el = _.cloneDeepWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 20\n */\n function cloneDeepWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);\n }\n\n /**\n * Checks if `object` conforms to `source` by invoking the predicate\n * properties of `source` with the corresponding property values of `object`.\n *\n * **Note:** This method is equivalent to `_.conforms` when `source` is\n * partially applied.\n *\n * @static\n * @memberOf _\n * @since 4.14.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 1; } });\n * // => true\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 2; } });\n * // => false\n */\n function conformsTo(object, source) {\n return source == null || baseConformsTo(object, source, keys(source));\n }\n\n /**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\n function eq(value, other) {\n return value === other || (value !== value && other !== other);\n }\n\n /**\n * Checks if `value` is greater than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n * @see _.lt\n * @example\n *\n * _.gt(3, 1);\n * // => true\n *\n * _.gt(3, 3);\n * // => false\n *\n * _.gt(1, 3);\n * // => false\n */\n var gt = createRelationalOperation(baseGt);\n\n /**\n * Checks if `value` is greater than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than or equal to\n * `other`, else `false`.\n * @see _.lte\n * @example\n *\n * _.gte(3, 1);\n * // => true\n *\n * _.gte(3, 3);\n * // => true\n *\n * _.gte(1, 3);\n * // => false\n */\n var gte = createRelationalOperation(function(value, other) {\n return value >= other;\n });\n\n /**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\n var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n };\n\n /**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\n var isArray = Array.isArray;\n\n /**\n * Checks if `value` is classified as an `ArrayBuffer` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n * @example\n *\n * _.isArrayBuffer(new ArrayBuffer(2));\n * // => true\n *\n * _.isArrayBuffer(new Array(2));\n * // => false\n */\n var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer;\n\n /**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\n function isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n }\n\n /**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\n function isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n }\n\n /**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\n function isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n }\n\n /**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\n var isBuffer = nativeIsBuffer || stubFalse;\n\n /**\n * Checks if `value` is classified as a `Date` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n * @example\n *\n * _.isDate(new Date);\n * // => true\n *\n * _.isDate('Mon April 23 2012');\n * // => false\n */\n var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;\n\n /**\n * Checks if `value` is likely a DOM element.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`.\n * @example\n *\n * _.isElement(document.body);\n * // => true\n *\n * _.isElement('');\n * // => false\n */\n function isElement(value) {\n return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\n }\n\n /**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\n function isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\n function isEqual(value, other) {\n return baseIsEqual(value, other);\n }\n\n /**\n * This method is like `_.isEqual` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with up to\n * six arguments: (objValue, othValue [, index|key, object, other, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, othValue) {\n * if (isGreeting(objValue) && isGreeting(othValue)) {\n * return true;\n * }\n * }\n *\n * var array = ['hello', 'goodbye'];\n * var other = ['hi', 'goodbye'];\n *\n * _.isEqualWith(array, other, customizer);\n * // => true\n */\n function isEqualWith(value, other, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n var result = customizer ? customizer(value, other) : undefined;\n return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result;\n }\n\n /**\n * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,\n * `SyntaxError`, `TypeError`, or `URIError` object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an error object, else `false`.\n * @example\n *\n * _.isError(new Error);\n * // => true\n *\n * _.isError(Error);\n * // => false\n */\n function isError(value) {\n if (!isObjectLike(value)) {\n return false;\n }\n var tag = baseGetTag(value);\n return tag == errorTag || tag == domExcTag ||\n (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value));\n }\n\n /**\n * Checks if `value` is a finite primitive number.\n *\n * **Note:** This method is based on\n * [`Number.isFinite`](https://mdn.io/Number/isFinite).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a finite number, else `false`.\n * @example\n *\n * _.isFinite(3);\n * // => true\n *\n * _.isFinite(Number.MIN_VALUE);\n * // => true\n *\n * _.isFinite(Infinity);\n * // => false\n *\n * _.isFinite('3');\n * // => false\n */\n function isFinite(value) {\n return typeof value == 'number' && nativeIsFinite(value);\n }\n\n /**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\n function isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n }\n\n /**\n * Checks if `value` is an integer.\n *\n * **Note:** This method is based on\n * [`Number.isInteger`](https://mdn.io/Number/isInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an integer, else `false`.\n * @example\n *\n * _.isInteger(3);\n * // => true\n *\n * _.isInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isInteger(Infinity);\n * // => false\n *\n * _.isInteger('3');\n * // => false\n */\n function isInteger(value) {\n return typeof value == 'number' && value == toInteger(value);\n }\n\n /**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\n function isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n }\n\n /**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\n function isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n }\n\n /**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\n function isObjectLike(value) {\n return value != null && typeof value == 'object';\n }\n\n /**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\n var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\n /**\n * Performs a partial deep comparison between `object` and `source` to\n * determine if `object` contains equivalent property values.\n *\n * **Note:** This method is equivalent to `_.matches` when `source` is\n * partially applied.\n *\n * Partial comparisons will match empty array and empty object `source`\n * values against any array or object value, respectively. See `_.isEqual`\n * for a list of supported value comparisons.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.isMatch(object, { 'b': 2 });\n * // => true\n *\n * _.isMatch(object, { 'b': 1 });\n * // => false\n */\n function isMatch(object, source) {\n return object === source || baseIsMatch(object, source, getMatchData(source));\n }\n\n /**\n * This method is like `_.isMatch` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with five\n * arguments: (objValue, srcValue, index|key, object, source).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, srcValue) {\n * if (isGreeting(objValue) && isGreeting(srcValue)) {\n * return true;\n * }\n * }\n *\n * var object = { 'greeting': 'hello' };\n * var source = { 'greeting': 'hi' };\n *\n * _.isMatchWith(object, source, customizer);\n * // => true\n */\n function isMatchWith(object, source, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseIsMatch(object, source, getMatchData(source), customizer);\n }\n\n /**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\n function isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n }\n\n /**\n * Checks if `value` is a pristine native function.\n *\n * **Note:** This method can't reliably detect native functions in the presence\n * of the core-js package because core-js circumvents this kind of detection.\n * Despite multiple requests, the core-js maintainer has made it clear: any\n * attempt to fix the detection will be obstructed. As a result, we're left\n * with little choice but to throw an error. Unfortunately, this also affects\n * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill),\n * which rely on core-js.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\n function isNative(value) {\n if (isMaskable(value)) {\n throw new Error(CORE_ERROR_TEXT);\n }\n return baseIsNative(value);\n }\n\n /**\n * Checks if `value` is `null`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `null`, else `false`.\n * @example\n *\n * _.isNull(null);\n * // => true\n *\n * _.isNull(void 0);\n * // => false\n */\n function isNull(value) {\n return value === null;\n }\n\n /**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\n function isNil(value) {\n return value == null;\n }\n\n /**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\n function isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n }\n\n /**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\n function isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n }\n\n /**\n * Checks if `value` is classified as a `RegExp` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n * @example\n *\n * _.isRegExp(/abc/);\n * // => true\n *\n * _.isRegExp('/abc/');\n * // => false\n */\n var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\n\n /**\n * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754\n * double precision number which isn't the result of a rounded unsafe integer.\n *\n * **Note:** This method is based on\n * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`.\n * @example\n *\n * _.isSafeInteger(3);\n * // => true\n *\n * _.isSafeInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isSafeInteger(Infinity);\n * // => false\n *\n * _.isSafeInteger('3');\n * // => false\n */\n function isSafeInteger(value) {\n return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;\n }\n\n /**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\n var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\n /**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\n function isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n }\n\n /**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\n function isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n }\n\n /**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\n var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n /**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\n function isUndefined(value) {\n return value === undefined;\n }\n\n /**\n * Checks if `value` is classified as a `WeakMap` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak map, else `false`.\n * @example\n *\n * _.isWeakMap(new WeakMap);\n * // => true\n *\n * _.isWeakMap(new Map);\n * // => false\n */\n function isWeakMap(value) {\n return isObjectLike(value) && getTag(value) == weakMapTag;\n }\n\n /**\n * Checks if `value` is classified as a `WeakSet` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak set, else `false`.\n * @example\n *\n * _.isWeakSet(new WeakSet);\n * // => true\n *\n * _.isWeakSet(new Set);\n * // => false\n */\n function isWeakSet(value) {\n return isObjectLike(value) && baseGetTag(value) == weakSetTag;\n }\n\n /**\n * Checks if `value` is less than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n * @see _.gt\n * @example\n *\n * _.lt(1, 3);\n * // => true\n *\n * _.lt(3, 3);\n * // => false\n *\n * _.lt(3, 1);\n * // => false\n */\n var lt = createRelationalOperation(baseLt);\n\n /**\n * Checks if `value` is less than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than or equal to\n * `other`, else `false`.\n * @see _.gte\n * @example\n *\n * _.lte(1, 3);\n * // => true\n *\n * _.lte(3, 3);\n * // => true\n *\n * _.lte(3, 1);\n * // => false\n */\n var lte = createRelationalOperation(function(value, other) {\n return value <= other;\n });\n\n /**\n * Converts `value` to an array.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Array} Returns the converted array.\n * @example\n *\n * _.toArray({ 'a': 1, 'b': 2 });\n * // => [1, 2]\n *\n * _.toArray('abc');\n * // => ['a', 'b', 'c']\n *\n * _.toArray(1);\n * // => []\n *\n * _.toArray(null);\n * // => []\n */\n function toArray(value) {\n if (!value) {\n return [];\n }\n if (isArrayLike(value)) {\n return isString(value) ? stringToArray(value) : copyArray(value);\n }\n if (symIterator && value[symIterator]) {\n return iteratorToArray(value[symIterator]());\n }\n var tag = getTag(value),\n func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values);\n\n return func(value);\n }\n\n /**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\n function toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n }\n\n /**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\n function toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n }\n\n /**\n * Converts `value` to an integer suitable for use as the length of an\n * array-like object.\n *\n * **Note:** This method is based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toLength(3.2);\n * // => 3\n *\n * _.toLength(Number.MIN_VALUE);\n * // => 0\n *\n * _.toLength(Infinity);\n * // => 4294967295\n *\n * _.toLength('3.2');\n * // => 3\n */\n function toLength(value) {\n return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0;\n }\n\n /**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\n function toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n }\n\n /**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\n function toPlainObject(value) {\n return copyObject(value, keysIn(value));\n }\n\n /**\n * Converts `value` to a safe integer. A safe integer can be compared and\n * represented correctly.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toSafeInteger(3.2);\n * // => 3\n *\n * _.toSafeInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toSafeInteger(Infinity);\n * // => 9007199254740991\n *\n * _.toSafeInteger('3.2');\n * // => 3\n */\n function toSafeInteger(value) {\n return value\n ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER)\n : (value === 0 ? value : 0);\n }\n\n /**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\n function toString(value) {\n return value == null ? '' : baseToString(value);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\n var assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n });\n\n /**\n * This method is like `_.assign` except that it iterates over own and\n * inherited source properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extend\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assign\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assignIn({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }\n */\n var assignIn = createAssigner(function(object, source) {\n copyObject(source, keysIn(source), object);\n });\n\n /**\n * This method is like `_.assignIn` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extendWith\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignInWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var assignInWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keysIn(source), object, customizer);\n });\n\n /**\n * This method is like `_.assign` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignInWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var assignWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keys(source), object, customizer);\n });\n\n /**\n * Creates an array of values corresponding to `paths` of `object`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Array} Returns the picked values.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _.at(object, ['a[0].b.c', 'a[1]']);\n * // => [3, 4]\n */\n var at = flatRest(baseAt);\n\n /**\n * Creates an object that inherits from the `prototype` object. If a\n * `properties` object is given, its own enumerable string keyed properties\n * are assigned to the created object.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Object\n * @param {Object} prototype The object to inherit from.\n * @param {Object} [properties] The properties to assign to the object.\n * @returns {Object} Returns the new object.\n * @example\n *\n * function Shape() {\n * this.x = 0;\n * this.y = 0;\n * }\n *\n * function Circle() {\n * Shape.call(this);\n * }\n *\n * Circle.prototype = _.create(Shape.prototype, {\n * 'constructor': Circle\n * });\n *\n * var circle = new Circle;\n * circle instanceof Circle;\n * // => true\n *\n * circle instanceof Shape;\n * // => true\n */\n function create(prototype, properties) {\n var result = baseCreate(prototype);\n return properties == null ? result : baseAssign(result, properties);\n }\n\n /**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n });\n\n /**\n * This method is like `_.defaults` except that it recursively assigns\n * default properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaults\n * @example\n *\n * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } });\n * // => { 'a': { 'b': 2, 'c': 3 } }\n */\n var defaultsDeep = baseRest(function(args) {\n args.push(undefined, customDefaultsMerge);\n return apply(mergeWith, undefined, args);\n });\n\n /**\n * This method is like `_.find` except that it returns the key of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findKey(users, function(o) { return o.age < 40; });\n * // => 'barney' (iteration order is not guaranteed)\n *\n * // The `_.matches` iteratee shorthand.\n * _.findKey(users, { 'age': 1, 'active': true });\n * // => 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findKey(users, 'active');\n * // => 'barney'\n */\n function findKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwn);\n }\n\n /**\n * This method is like `_.findKey` except that it iterates over elements of\n * a collection in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findLastKey(users, function(o) { return o.age < 40; });\n * // => returns 'pebbles' assuming `_.findKey` returns 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastKey(users, { 'age': 36, 'active': true });\n * // => 'barney'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastKey(users, 'active');\n * // => 'pebbles'\n */\n function findLastKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight);\n }\n\n /**\n * Iterates over own and inherited enumerable string keyed properties of an\n * object and invokes `iteratee` for each property. The iteratee is invoked\n * with three arguments: (value, key, object). Iteratee functions may exit\n * iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forInRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forIn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).\n */\n function forIn(object, iteratee) {\n return object == null\n ? object\n : baseFor(object, getIteratee(iteratee, 3), keysIn);\n }\n\n /**\n * This method is like `_.forIn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forInRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'.\n */\n function forInRight(object, iteratee) {\n return object == null\n ? object\n : baseForRight(object, getIteratee(iteratee, 3), keysIn);\n }\n\n /**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n function forOwn(object, iteratee) {\n return object && baseForOwn(object, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.forOwn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwnRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'.\n */\n function forOwnRight(object, iteratee) {\n return object && baseForOwnRight(object, getIteratee(iteratee, 3));\n }\n\n /**\n * Creates an array of function property names from own enumerable properties\n * of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functionsIn\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functions(new Foo);\n * // => ['a', 'b']\n */\n function functions(object) {\n return object == null ? [] : baseFunctions(object, keys(object));\n }\n\n /**\n * Creates an array of function property names from own and inherited\n * enumerable properties of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functions\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functionsIn(new Foo);\n * // => ['a', 'b', 'c']\n */\n function functionsIn(object) {\n return object == null ? [] : baseFunctions(object, keysIn(object));\n }\n\n /**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\n function get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n }\n\n /**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\n function has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n }\n\n /**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\n function hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n }\n\n /**\n * Creates an object composed of the inverted keys and values of `object`.\n * If `object` contains duplicate values, subsequent values overwrite\n * property assignments of previous values.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Object\n * @param {Object} object The object to invert.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invert(object);\n * // => { '1': 'c', '2': 'b' }\n */\n var invert = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n result[value] = key;\n }, constant(identity));\n\n /**\n * This method is like `_.invert` except that the inverted object is generated\n * from the results of running each element of `object` thru `iteratee`. The\n * corresponding inverted value of each inverted key is an array of keys\n * responsible for generating the inverted value. The iteratee is invoked\n * with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Object\n * @param {Object} object The object to invert.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invertBy(object);\n * // => { '1': ['a', 'c'], '2': ['b'] }\n *\n * _.invertBy(object, function(value) {\n * return 'group' + value;\n * });\n * // => { 'group1': ['a', 'c'], 'group2': ['b'] }\n */\n var invertBy = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n if (hasOwnProperty.call(result, value)) {\n result[value].push(key);\n } else {\n result[value] = [key];\n }\n }, getIteratee);\n\n /**\n * Invokes the method at `path` of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] };\n *\n * _.invoke(object, 'a[0].b.c.slice', 1, 3);\n * // => [2, 3]\n */\n var invoke = baseRest(baseInvoke);\n\n /**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\n function keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n }\n\n /**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\n function keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n }\n\n /**\n * The opposite of `_.mapValues`; this method creates an object with the\n * same values as `object` and keys generated by running each own enumerable\n * string keyed property of `object` thru `iteratee`. The iteratee is invoked\n * with three arguments: (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapValues\n * @example\n *\n * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n * return key + value;\n * });\n * // => { 'a1': 1, 'b2': 2 }\n */\n function mapKeys(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, iteratee(value, key, object), value);\n });\n return result;\n }\n\n /**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\n function mapValues(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n }\n\n /**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\n var merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n });\n\n /**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\n var mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n });\n\n /**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\n var omit = flatRest(function(object, paths) {\n var result = {};\n if (object == null) {\n return result;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result, paths[length]);\n }\n return result;\n });\n\n /**\n * The opposite of `_.pickBy`; this method creates an object composed of\n * the own and inherited enumerable string keyed properties of `object` that\n * `predicate` doesn't return truthy for. The predicate is invoked with two\n * arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omitBy(object, _.isNumber);\n * // => { 'b': '2' }\n */\n function omitBy(object, predicate) {\n return pickBy(object, negate(getIteratee(predicate)));\n }\n\n /**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\n var pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n });\n\n /**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\n function pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = getIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n }\n\n /**\n * This method is like `_.get` except that if the resolved value is a\n * function it's invoked with the `this` binding of its parent object and\n * its result is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to resolve.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] };\n *\n * _.result(object, 'a[0].b.c1');\n * // => 3\n *\n * _.result(object, 'a[0].b.c2');\n * // => 4\n *\n * _.result(object, 'a[0].b.c3', 'default');\n * // => 'default'\n *\n * _.result(object, 'a[0].b.c3', _.constant('default'));\n * // => 'default'\n */\n function result(object, path, defaultValue) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length;\n\n // Ensure the loop is entered when path is empty.\n if (!length) {\n length = 1;\n object = undefined;\n }\n while (++index < length) {\n var value = object == null ? undefined : object[toKey(path[index])];\n if (value === undefined) {\n index = length;\n value = defaultValue;\n }\n object = isFunction(value) ? value.call(object) : value;\n }\n return object;\n }\n\n /**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\n function set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n }\n\n /**\n * This method is like `_.set` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.setWith(object, '[0][1]', 'a', Object);\n * // => { '0': { '1': 'a' } }\n */\n function setWith(object, path, value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseSet(object, path, value, customizer);\n }\n\n /**\n * Creates an array of own enumerable string keyed-value pairs for `object`\n * which can be consumed by `_.fromPairs`. If `object` is a map or set, its\n * entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entries\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairs(new Foo);\n * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed)\n */\n var toPairs = createToPairs(keys);\n\n /**\n * Creates an array of own and inherited enumerable string keyed-value pairs\n * for `object` which can be consumed by `_.fromPairs`. If `object` is a map\n * or set, its entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entriesIn\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairsIn(new Foo);\n * // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed)\n */\n var toPairsIn = createToPairs(keysIn);\n\n /**\n * An alternative to `_.reduce`; this method transforms `object` to a new\n * `accumulator` object which is the result of running each of its own\n * enumerable string keyed properties thru `iteratee`, with each invocation\n * potentially mutating the `accumulator` object. If `accumulator` is not\n * provided, a new object with the same `[[Prototype]]` will be used. The\n * iteratee is invoked with four arguments: (accumulator, value, key, object).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The custom accumulator value.\n * @returns {*} Returns the accumulated value.\n * @example\n *\n * _.transform([2, 3, 4], function(result, n) {\n * result.push(n *= n);\n * return n % 2 == 0;\n * }, []);\n * // => [4, 9]\n *\n * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] }\n */\n function transform(object, iteratee, accumulator) {\n var isArr = isArray(object),\n isArrLike = isArr || isBuffer(object) || isTypedArray(object);\n\n iteratee = getIteratee(iteratee, 4);\n if (accumulator == null) {\n var Ctor = object && object.constructor;\n if (isArrLike) {\n accumulator = isArr ? new Ctor : [];\n }\n else if (isObject(object)) {\n accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};\n }\n else {\n accumulator = {};\n }\n }\n (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) {\n return iteratee(accumulator, value, index, object);\n });\n return accumulator;\n }\n\n /**\n * Removes the property at `path` of `object`.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 7 } }] };\n * _.unset(object, 'a[0].b.c');\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n *\n * _.unset(object, ['a', '0', 'b', 'c']);\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n */\n function unset(object, path) {\n return object == null ? true : baseUnset(object, path);\n }\n\n /**\n * This method is like `_.set` except that accepts `updater` to produce the\n * value to set. Use `_.updateWith` to customize `path` creation. The `updater`\n * is invoked with one argument: (value).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.update(object, 'a[0].b.c', function(n) { return n * n; });\n * console.log(object.a[0].b.c);\n * // => 9\n *\n * _.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; });\n * console.log(object.x[0].y.z);\n * // => 0\n */\n function update(object, path, updater) {\n return object == null ? object : baseUpdate(object, path, castFunction(updater));\n }\n\n /**\n * This method is like `_.update` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.updateWith(object, '[0][1]', _.constant('a'), Object);\n * // => { '0': { '1': 'a' } }\n */\n function updateWith(object, path, updater, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer);\n }\n\n /**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\n function values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n }\n\n /**\n * Creates an array of the own and inherited enumerable string keyed property\n * values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.valuesIn(new Foo);\n * // => [1, 2, 3] (iteration order is not guaranteed)\n */\n function valuesIn(object) {\n return object == null ? [] : baseValues(object, keysIn(object));\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Clamps `number` within the inclusive `lower` and `upper` bounds.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Number\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n * @example\n *\n * _.clamp(-10, -5, 5);\n * // => -5\n *\n * _.clamp(10, -5, 5);\n * // => 5\n */\n function clamp(number, lower, upper) {\n if (upper === undefined) {\n upper = lower;\n lower = undefined;\n }\n if (upper !== undefined) {\n upper = toNumber(upper);\n upper = upper === upper ? upper : 0;\n }\n if (lower !== undefined) {\n lower = toNumber(lower);\n lower = lower === lower ? lower : 0;\n }\n return baseClamp(toNumber(number), lower, upper);\n }\n\n /**\n * Checks if `n` is between `start` and up to, but not including, `end`. If\n * `end` is not specified, it's set to `start` with `start` then set to `0`.\n * If `start` is greater than `end` the params are swapped to support\n * negative ranges.\n *\n * @static\n * @memberOf _\n * @since 3.3.0\n * @category Number\n * @param {number} number The number to check.\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n * @see _.range, _.rangeRight\n * @example\n *\n * _.inRange(3, 2, 4);\n * // => true\n *\n * _.inRange(4, 8);\n * // => true\n *\n * _.inRange(4, 2);\n * // => false\n *\n * _.inRange(2, 2);\n * // => false\n *\n * _.inRange(1.2, 2);\n * // => true\n *\n * _.inRange(5.2, 4);\n * // => false\n *\n * _.inRange(-3, -2, -6);\n * // => true\n */\n function inRange(number, start, end) {\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n number = toNumber(number);\n return baseInRange(number, start, end);\n }\n\n /**\n * Produces a random number between the inclusive `lower` and `upper` bounds.\n * If only one argument is provided a number between `0` and the given number\n * is returned. If `floating` is `true`, or either `lower` or `upper` are\n * floats, a floating-point number is returned instead of an integer.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Number\n * @param {number} [lower=0] The lower bound.\n * @param {number} [upper=1] The upper bound.\n * @param {boolean} [floating] Specify returning a floating-point number.\n * @returns {number} Returns the random number.\n * @example\n *\n * _.random(0, 5);\n * // => an integer between 0 and 5\n *\n * _.random(5);\n * // => also an integer between 0 and 5\n *\n * _.random(5, true);\n * // => a floating-point number between 0 and 5\n *\n * _.random(1.2, 5.2);\n * // => a floating-point number between 1.2 and 5.2\n */\n function random(lower, upper, floating) {\n if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) {\n upper = floating = undefined;\n }\n if (floating === undefined) {\n if (typeof upper == 'boolean') {\n floating = upper;\n upper = undefined;\n }\n else if (typeof lower == 'boolean') {\n floating = lower;\n lower = undefined;\n }\n }\n if (lower === undefined && upper === undefined) {\n lower = 0;\n upper = 1;\n }\n else {\n lower = toFinite(lower);\n if (upper === undefined) {\n upper = lower;\n lower = 0;\n } else {\n upper = toFinite(upper);\n }\n }\n if (lower > upper) {\n var temp = lower;\n lower = upper;\n upper = temp;\n }\n if (floating || lower % 1 || upper % 1) {\n var rand = nativeRandom();\n return nativeMin(lower + (rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1)))), upper);\n }\n return baseRandom(lower, upper);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\n var camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n });\n\n /**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\n function capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n }\n\n /**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\n function deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n }\n\n /**\n * Checks if `string` ends with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=string.length] The position to search up to.\n * @returns {boolean} Returns `true` if `string` ends with `target`,\n * else `false`.\n * @example\n *\n * _.endsWith('abc', 'c');\n * // => true\n *\n * _.endsWith('abc', 'b');\n * // => false\n *\n * _.endsWith('abc', 'b', 2);\n * // => true\n */\n function endsWith(string, target, position) {\n string = toString(string);\n target = baseToString(target);\n\n var length = string.length;\n position = position === undefined\n ? length\n : baseClamp(toInteger(position), 0, length);\n\n var end = position;\n position -= target.length;\n return position >= 0 && string.slice(position, end) == target;\n }\n\n /**\n * Converts the characters \"&\", \"<\", \">\", '\"', and \"'\" in `string` to their\n * corresponding HTML entities.\n *\n * **Note:** No other characters are escaped. To escape additional\n * characters use a third-party library like [_he_](https://mths.be/he).\n *\n * Though the \">\" character is escaped for symmetry, characters like\n * \">\" and \"/\" don't need escaping in HTML and have no special meaning\n * unless they're part of a tag or unquoted attribute value. See\n * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands)\n * (under \"semi-related fun fact\") for more details.\n *\n * When working with HTML you should always\n * [quote attribute values](http://wonko.com/post/html-escaping) to reduce\n * XSS vectors.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escape('fred, barney, & pebbles');\n * // => 'fred, barney, & pebbles'\n */\n function escape(string) {\n string = toString(string);\n return (string && reHasUnescapedHtml.test(string))\n ? string.replace(reUnescapedHtml, escapeHtmlChar)\n : string;\n }\n\n /**\n * Escapes the `RegExp` special characters \"^\", \"$\", \"\\\", \".\", \"*\", \"+\",\n * \"?\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", and \"|\" in `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escapeRegExp('[lodash](https://lodash.com/)');\n * // => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n */\n function escapeRegExp(string) {\n string = toString(string);\n return (string && reHasRegExpChar.test(string))\n ? string.replace(reRegExpChar, '\\\\$&')\n : string;\n }\n\n /**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\n var kebabCase = createCompounder(function(result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n });\n\n /**\n * Converts `string`, as space separated words, to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the lower cased string.\n * @example\n *\n * _.lowerCase('--Foo-Bar--');\n * // => 'foo bar'\n *\n * _.lowerCase('fooBar');\n * // => 'foo bar'\n *\n * _.lowerCase('__FOO_BAR__');\n * // => 'foo bar'\n */\n var lowerCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + word.toLowerCase();\n });\n\n /**\n * Converts the first character of `string` to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.lowerFirst('Fred');\n * // => 'fred'\n *\n * _.lowerFirst('FRED');\n * // => 'fRED'\n */\n var lowerFirst = createCaseFirst('toLowerCase');\n\n /**\n * Pads `string` on the left and right sides if it's shorter than `length`.\n * Padding characters are truncated if they can't be evenly divided by `length`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.pad('abc', 8);\n * // => ' abc '\n *\n * _.pad('abc', 8, '_-');\n * // => '_-abc_-_'\n *\n * _.pad('abc', 3);\n * // => 'abc'\n */\n function pad(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n if (!length || strLength >= length) {\n return string;\n }\n var mid = (length - strLength) / 2;\n return (\n createPadding(nativeFloor(mid), chars) +\n string +\n createPadding(nativeCeil(mid), chars)\n );\n }\n\n /**\n * Pads `string` on the right side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padEnd('abc', 6);\n * // => 'abc '\n *\n * _.padEnd('abc', 6, '_-');\n * // => 'abc_-_'\n *\n * _.padEnd('abc', 3);\n * // => 'abc'\n */\n function padEnd(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (string + createPadding(length - strLength, chars))\n : string;\n }\n\n /**\n * Pads `string` on the left side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padStart('abc', 6);\n * // => ' abc'\n *\n * _.padStart('abc', 6, '_-');\n * // => '_-_abc'\n *\n * _.padStart('abc', 3);\n * // => 'abc'\n */\n function padStart(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (createPadding(length - strLength, chars) + string)\n : string;\n }\n\n /**\n * Converts `string` to an integer of the specified radix. If `radix` is\n * `undefined` or `0`, a `radix` of `10` is used unless `value` is a\n * hexadecimal, in which case a `radix` of `16` is used.\n *\n * **Note:** This method aligns with the\n * [ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category String\n * @param {string} string The string to convert.\n * @param {number} [radix=10] The radix to interpret `value` by.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.parseInt('08');\n * // => 8\n *\n * _.map(['6', '08', '10'], _.parseInt);\n * // => [6, 8, 10]\n */\n function parseInt(string, radix, guard) {\n if (guard || radix == null) {\n radix = 0;\n } else if (radix) {\n radix = +radix;\n }\n return nativeParseInt(toString(string).replace(reTrimStart, ''), radix || 0);\n }\n\n /**\n * Repeats the given string `n` times.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to repeat.\n * @param {number} [n=1] The number of times to repeat the string.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the repeated string.\n * @example\n *\n * _.repeat('*', 3);\n * // => '***'\n *\n * _.repeat('abc', 2);\n * // => 'abcabc'\n *\n * _.repeat('abc', 0);\n * // => ''\n */\n function repeat(string, n, guard) {\n if ((guard ? isIterateeCall(string, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n return baseRepeat(toString(string), n);\n }\n\n /**\n * Replaces matches for `pattern` in `string` with `replacement`.\n *\n * **Note:** This method is based on\n * [`String#replace`](https://mdn.io/String/replace).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to modify.\n * @param {RegExp|string} pattern The pattern to replace.\n * @param {Function|string} replacement The match replacement.\n * @returns {string} Returns the modified string.\n * @example\n *\n * _.replace('Hi Fred', 'Fred', 'Barney');\n * // => 'Hi Barney'\n */\n function replace() {\n var args = arguments,\n string = toString(args[0]);\n\n return args.length < 3 ? string : string.replace(args[1], args[2]);\n }\n\n /**\n * Converts `string` to\n * [snake case](https://en.wikipedia.org/wiki/Snake_case).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the snake cased string.\n * @example\n *\n * _.snakeCase('Foo Bar');\n * // => 'foo_bar'\n *\n * _.snakeCase('fooBar');\n * // => 'foo_bar'\n *\n * _.snakeCase('--FOO-BAR--');\n * // => 'foo_bar'\n */\n var snakeCase = createCompounder(function(result, word, index) {\n return result + (index ? '_' : '') + word.toLowerCase();\n });\n\n /**\n * Splits `string` by `separator`.\n *\n * **Note:** This method is based on\n * [`String#split`](https://mdn.io/String/split).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to split.\n * @param {RegExp|string} separator The separator pattern to split by.\n * @param {number} [limit] The length to truncate results to.\n * @returns {Array} Returns the string segments.\n * @example\n *\n * _.split('a-b-c', '-', 2);\n * // => ['a', 'b']\n */\n function split(string, separator, limit) {\n if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) {\n separator = limit = undefined;\n }\n limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0;\n if (!limit) {\n return [];\n }\n string = toString(string);\n if (string && (\n typeof separator == 'string' ||\n (separator != null && !isRegExp(separator))\n )) {\n separator = baseToString(separator);\n if (!separator && hasUnicode(string)) {\n return castSlice(stringToArray(string), 0, limit);\n }\n }\n return string.split(separator, limit);\n }\n\n /**\n * Converts `string` to\n * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage).\n *\n * @static\n * @memberOf _\n * @since 3.1.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the start cased string.\n * @example\n *\n * _.startCase('--foo-bar--');\n * // => 'Foo Bar'\n *\n * _.startCase('fooBar');\n * // => 'Foo Bar'\n *\n * _.startCase('__FOO_BAR__');\n * // => 'FOO BAR'\n */\n var startCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + upperFirst(word);\n });\n\n /**\n * Checks if `string` starts with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=0] The position to search from.\n * @returns {boolean} Returns `true` if `string` starts with `target`,\n * else `false`.\n * @example\n *\n * _.startsWith('abc', 'a');\n * // => true\n *\n * _.startsWith('abc', 'b');\n * // => false\n *\n * _.startsWith('abc', 'b', 1);\n * // => true\n */\n function startsWith(string, target, position) {\n string = toString(string);\n position = position == null\n ? 0\n : baseClamp(toInteger(position), 0, string.length);\n\n target = baseToString(target);\n return string.slice(position, position + target.length) == target;\n }\n\n /**\n * Creates a compiled template function that can interpolate data properties\n * in \"interpolate\" delimiters, HTML-escape interpolated data properties in\n * \"escape\" delimiters, and execute JavaScript in \"evaluate\" delimiters. Data\n * properties may be accessed as free variables in the template. If a setting\n * object is given, it takes precedence over `_.templateSettings` values.\n *\n * **Note:** In the development build `_.template` utilizes\n * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl)\n * for easier debugging.\n *\n * For more information on precompiling templates see\n * [lodash's custom builds documentation](https://lodash.com/custom-builds).\n *\n * For more information on Chrome extension sandboxes see\n * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval).\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The template string.\n * @param {Object} [options={}] The options object.\n * @param {RegExp} [options.escape=_.templateSettings.escape]\n * The HTML \"escape\" delimiter.\n * @param {RegExp} [options.evaluate=_.templateSettings.evaluate]\n * The \"evaluate\" delimiter.\n * @param {Object} [options.imports=_.templateSettings.imports]\n * An object to import into the template as free variables.\n * @param {RegExp} [options.interpolate=_.templateSettings.interpolate]\n * The \"interpolate\" delimiter.\n * @param {string} [options.sourceURL='lodash.templateSources[n]']\n * The sourceURL of the compiled template.\n * @param {string} [options.variable='obj']\n * The data object variable name.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the compiled template function.\n * @example\n *\n * // Use the \"interpolate\" delimiter to create a compiled template.\n * var compiled = _.template('hello <%= user %>!');\n * compiled({ 'user': 'fred' });\n * // => 'hello fred!'\n *\n * // Use the HTML \"escape\" delimiter to escape data property values.\n * var compiled = _.template('<%- value %>');\n * compiled({ 'value': '\n\n\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-divider-horizontal {\\n display: flex;\\n width: 100%;\\n position: relative;\\n align-items: center;\\n margin: \".concat(dt('divider.horizontal.margin'), \";\\n padding: \").concat(dt('divider.horizontal.padding'), \";\\n}\\n\\n.p-divider-horizontal:before {\\n position: absolute;\\n display: block;\\n top: 50%;\\n left: 0;\\n width: 100%;\\n content: \\\"\\\";\\n border-top: 1px solid \").concat(dt('divider.border.color'), \";\\n}\\n\\n.p-divider-horizontal .p-divider-content {\\n padding: \").concat(dt('divider.horizontal.content.padding'), \";\\n}\\n\\n.p-divider-vertical {\\n min-height: 100%;\\n margin: 0 1rem;\\n display: flex;\\n position: relative;\\n justify-content: center;\\n margin: \").concat(dt('divider.vertical.margin'), \";\\n padding: \").concat(dt('divider.vertical.padding'), \";\\n}\\n\\n.p-divider-vertical:before {\\n position: absolute;\\n display: block;\\n top: 0;\\n left: 50%;\\n height: 100%;\\n content: \\\"\\\";\\n border-left: 1px solid \").concat(dt('divider.border.color'), \";\\n}\\n\\n.p-divider.p-divider-vertical .p-divider-content {\\n padding: \").concat(dt('divider.vertical.content.padding'), \";\\n}\\n\\n.p-divider-content {\\n z-index: 1;\\n background: \").concat(dt('divider.content.background'), \";\\n color: \").concat(dt('divider.content.color'), \";\\n}\\n\\n.p-divider-solid.p-divider-horizontal:before {\\n border-top-style: solid;\\n}\\n\\n.p-divider-solid.p-divider-vertical:before {\\n border-left-style: solid;\\n}\\n\\n.p-divider-dashed.p-divider-horizontal:before {\\n border-top-style: dashed;\\n}\\n\\n.p-divider-dashed.p-divider-vertical:before {\\n border-left-style: dashed;\\n}\\n\\n.p-divider-dotted.p-divider-horizontal:before {\\n border-top-style: dotted;\\n}\\n\\n.p-divider-dotted.p-divider-vertical:before {\\n border-left-style: dotted;\\n}\\n\");\n};\n\n/* Position */\nvar inlineStyles = {\n root: function root(_ref2) {\n var props = _ref2.props;\n return {\n justifyContent: props.layout === 'horizontal' ? props.align === 'center' || props.align === null ? 'center' : props.align === 'left' ? 'flex-start' : props.align === 'right' ? 'flex-end' : null : null,\n alignItems: props.layout === 'vertical' ? props.align === 'center' || props.align === null ? 'center' : props.align === 'top' ? 'flex-start' : props.align === 'bottom' ? 'flex-end' : null : null\n };\n }\n};\nvar classes = {\n root: function root(_ref3) {\n var props = _ref3.props;\n return ['p-divider p-component', 'p-divider-' + props.layout, 'p-divider-' + props.type, {\n 'p-divider-left': props.layout === 'horizontal' && (!props.align || props.align === 'left')\n }, {\n 'p-divider-center': props.layout === 'horizontal' && props.align === 'center'\n }, {\n 'p-divider-right': props.layout === 'horizontal' && props.align === 'right'\n }, {\n 'p-divider-top': props.layout === 'vertical' && props.align === 'top'\n }, {\n 'p-divider-center': props.layout === 'vertical' && (!props.align || props.align === 'center')\n }, {\n 'p-divider-bottom': props.layout === 'vertical' && props.align === 'bottom'\n }];\n },\n content: 'p-divider-content'\n};\nvar DividerStyle = BaseStyle.extend({\n name: 'divider',\n theme: theme,\n classes: classes,\n inlineStyles: inlineStyles\n});\n\nexport { DividerStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseComponent from '@primevue/core/basecomponent';\nimport DividerStyle from 'primevue/divider/style';\nimport { openBlock, createElementBlock, mergeProps, renderSlot, createCommentVNode } from 'vue';\n\nvar script$1 = {\n name: 'BaseDivider',\n \"extends\": BaseComponent,\n props: {\n align: {\n type: String,\n \"default\": null\n },\n layout: {\n type: String,\n \"default\": 'horizontal'\n },\n type: {\n type: String,\n \"default\": 'solid'\n }\n },\n style: DividerStyle,\n provide: function provide() {\n return {\n $pcDivider: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'Divider',\n \"extends\": script$1,\n inheritAttrs: false\n};\n\nvar _hoisted_1 = [\"aria-orientation\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root'),\n style: _ctx.sx('root'),\n role: \"separator\",\n \"aria-orientation\": _ctx.layout\n }, _ctx.ptmi('root')), [_ctx.$slots[\"default\"] ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('content')\n }, _ctx.ptm('content')), [renderSlot(_ctx.$slots, \"default\")], 16)) : createCommentVNode(\"\", true)], 16, _hoisted_1);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-scrollpanel-content-container {\\n overflow: hidden;\\n width: 100%;\\n height: 100%;\\n position: relative;\\n z-index: 1;\\n float: left;\\n}\\n\\n.p-scrollpanel-content {\\n height: calc(100% + calc(2 * \".concat(dt('scrollpanel.bar.size'), \"));\\n width: calc(100% + calc(2 * \").concat(dt('scrollpanel.bar.size'), \"));\\n padding: 0 calc(2 * \").concat(dt('scrollpanel.bar.size'), \") calc(2 * \").concat(dt('scrollpanel.bar.size'), \") 0;\\n position: relative;\\n overflow: auto;\\n box-sizing: border-box;\\n scrollbar-width: none;\\n}\\n\\n.p-scrollpanel-content::-webkit-scrollbar {\\n display: none;\\n}\\n\\n.p-scrollpanel-bar {\\n position: relative;\\n border-radius: \").concat(dt('scrollpanel.bar.border.radius'), \";\\n z-index: 2;\\n cursor: pointer;\\n opacity: 0;\\n outline-color: transparent;\\n transition: outline-color \").concat(dt('scrollpanel.transition.duration'), \";\\n background: \").concat(dt('scrollpanel.bar.background'), \";\\n border: 0 none;\\n transition: outline-color \").concat(dt('scrollpanel.transition.duration'), \", opacity \").concat(dt('scrollpanel.transition.duration'), \";\\n}\\n\\n.p-scrollpanel-bar:focus-visible {\\n box-shadow: \").concat(dt('scrollpanel.bar.focus.ring.shadow'), \";\\n outline: \").concat(dt('scrollpanel.barfocus.ring.width'), \" \").concat(dt('scrollpanel.bar.focus.ring.style'), \" \").concat(dt('scrollpanel.bar.focus.ring.color'), \";\\n outline-offset: \").concat(dt('scrollpanel.barfocus.ring.offset'), \";\\n}\\n\\n.p-scrollpanel-bar-y {\\n width: \").concat(dt('scrollpanel.bar.size'), \";\\n top: 0;\\n}\\n\\n.p-scrollpanel-bar-x {\\n height: \").concat(dt('scrollpanel.bar.size'), \";\\n bottom: 0;\\n}\\n\\n.p-scrollpanel-hidden {\\n visibility: hidden;\\n}\\n\\n.p-scrollpanel:hover .p-scrollpanel-bar,\\n.p-scrollpanel:active .p-scrollpanel-bar {\\n opacity: 1;\\n}\\n\\n.p-scrollpanel-grabbed {\\n user-select: none;\\n}\\n\");\n};\nvar classes = {\n root: 'p-scrollpanel p-component',\n contentContainer: 'p-scrollpanel-content-container',\n content: 'p-scrollpanel-content',\n barX: 'p-scrollpanel-bar p-scrollpanel-bar-x',\n barY: 'p-scrollpanel-bar p-scrollpanel-bar-y'\n};\nvar ScrollPanelStyle = BaseStyle.extend({\n name: 'scrollpanel',\n theme: theme,\n classes: classes\n});\n\nexport { ScrollPanelStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { UniqueComponentId } from '@primevue/core/utils';\nimport { getHeight, addClass, removeClass } from '@primeuix/utils/dom';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport ScrollPanelStyle from 'primevue/scrollpanel/style';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode, renderSlot } from 'vue';\n\nvar script$1 = {\n name: 'BaseScrollPanel',\n \"extends\": BaseComponent,\n props: {\n step: {\n type: Number,\n \"default\": 5\n }\n },\n style: ScrollPanelStyle,\n provide: function provide() {\n return {\n $pcScrollPanel: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'ScrollPanel',\n \"extends\": script$1,\n inheritAttrs: false,\n initialized: false,\n documentResizeListener: null,\n documentMouseMoveListener: null,\n documentMouseUpListener: null,\n frame: null,\n scrollXRatio: null,\n scrollYRatio: null,\n isXBarClicked: false,\n isYBarClicked: false,\n lastPageX: null,\n lastPageY: null,\n timer: null,\n outsideClickListener: null,\n data: function data() {\n return {\n id: this.$attrs.id,\n orientation: 'vertical',\n lastScrollTop: 0,\n lastScrollLeft: 0\n };\n },\n watch: {\n '$attrs.id': function $attrsId(newValue) {\n this.id = newValue || UniqueComponentId();\n }\n },\n mounted: function mounted() {\n this.id = this.id || UniqueComponentId();\n if (this.$el.offsetParent) {\n this.initialize();\n }\n },\n updated: function updated() {\n if (!this.initialized && this.$el.offsetParent) {\n this.initialize();\n }\n },\n beforeUnmount: function beforeUnmount() {\n this.unbindDocumentResizeListener();\n if (this.frame) {\n window.cancelAnimationFrame(this.frame);\n }\n },\n methods: {\n initialize: function initialize() {\n this.moveBar();\n this.bindDocumentResizeListener();\n this.calculateContainerHeight();\n },\n calculateContainerHeight: function calculateContainerHeight() {\n var containerStyles = getComputedStyle(this.$el),\n xBarStyles = getComputedStyle(this.$refs.xBar),\n pureContainerHeight = getHeight(this.$el) - parseInt(xBarStyles['height'], 10);\n if (containerStyles['max-height'] !== 'none' && pureContainerHeight === 0) {\n if (this.$refs.content.offsetHeight + parseInt(xBarStyles['height'], 10) > parseInt(containerStyles['max-height'], 10)) {\n this.$el.style.height = containerStyles['max-height'];\n } else {\n this.$el.style.height = this.$refs.content.offsetHeight + parseFloat(containerStyles.paddingTop) + parseFloat(containerStyles.paddingBottom) + parseFloat(containerStyles.borderTopWidth) + parseFloat(containerStyles.borderBottomWidth) + 'px';\n }\n }\n },\n moveBar: function moveBar() {\n var _this = this;\n if (this.$refs.content) {\n /* horizontal scroll */\n var totalWidth = this.$refs.content.scrollWidth;\n var ownWidth = this.$refs.content.clientWidth;\n var bottom = (this.$el.clientHeight - this.$refs.xBar.clientHeight) * -1;\n this.scrollXRatio = ownWidth / totalWidth;\n\n /* vertical scroll */\n var totalHeight = this.$refs.content.scrollHeight;\n var ownHeight = this.$refs.content.clientHeight;\n var right = (this.$el.clientWidth - this.$refs.yBar.clientWidth) * -1;\n this.scrollYRatio = ownHeight / totalHeight;\n this.frame = this.requestAnimationFrame(function () {\n if (_this.$refs.xBar) {\n if (_this.scrollXRatio >= 1) {\n _this.$refs.xBar.setAttribute('data-p-scrollpanel-hidden', 'true');\n !_this.isUnstyled && addClass(_this.$refs.xBar, 'p-scrollpanel-hidden');\n } else {\n _this.$refs.xBar.setAttribute('data-p-scrollpanel-hidden', 'false');\n !_this.isUnstyled && removeClass(_this.$refs.xBar, 'p-scrollpanel-hidden');\n _this.$refs.xBar.style.cssText = 'width:' + Math.max(_this.scrollXRatio * 100, 10) + '%; left:' + _this.$refs.content.scrollLeft / totalWidth * 100 + '%;bottom:' + bottom + 'px;';\n }\n }\n if (_this.$refs.yBar) {\n if (_this.scrollYRatio >= 1) {\n _this.$refs.yBar.setAttribute('data-p-scrollpanel-hidden', 'true');\n !_this.isUnstyled && addClass(_this.$refs.yBar, 'p-scrollpanel-hidden');\n } else {\n _this.$refs.yBar.setAttribute('data-p-scrollpanel-hidden', 'false');\n !_this.isUnstyled && removeClass(_this.$refs.yBar, 'p-scrollpanel-hidden');\n _this.$refs.yBar.style.cssText = 'height:' + Math.max(_this.scrollYRatio * 100, 10) + '%; top: calc(' + _this.$refs.content.scrollTop / totalHeight * 100 + '% - ' + _this.$refs.xBar.clientHeight + 'px);right:' + right + 'px;';\n }\n }\n });\n }\n },\n onYBarMouseDown: function onYBarMouseDown(e) {\n this.isYBarClicked = true;\n this.$refs.yBar.focus();\n this.lastPageY = e.pageY;\n this.$refs.yBar.setAttribute('data-p-scrollpanel-grabbed', 'true');\n !this.isUnstyled && addClass(this.$refs.yBar, 'p-scrollpanel-grabbed');\n document.body.setAttribute('data-p-scrollpanel-grabbed', 'true');\n !this.isUnstyled && addClass(document.body, 'p-scrollpanel-grabbed');\n this.bindDocumentMouseListeners();\n e.preventDefault();\n },\n onXBarMouseDown: function onXBarMouseDown(e) {\n this.isXBarClicked = true;\n this.$refs.xBar.focus();\n this.lastPageX = e.pageX;\n this.$refs.yBar.setAttribute('data-p-scrollpanel-grabbed', 'false');\n !this.isUnstyled && addClass(this.$refs.xBar, 'p-scrollpanel-grabbed');\n document.body.setAttribute('data-p-scrollpanel-grabbed', 'false');\n !this.isUnstyled && addClass(document.body, 'p-scrollpanel-grabbed');\n this.bindDocumentMouseListeners();\n e.preventDefault();\n },\n onScroll: function onScroll(event) {\n if (this.lastScrollLeft !== event.target.scrollLeft) {\n this.lastScrollLeft = event.target.scrollLeft;\n this.orientation = 'horizontal';\n } else if (this.lastScrollTop !== event.target.scrollTop) {\n this.lastScrollTop = event.target.scrollTop;\n this.orientation = 'vertical';\n }\n this.moveBar();\n },\n onKeyDown: function onKeyDown(event) {\n if (this.orientation === 'vertical') {\n switch (event.code) {\n case 'ArrowDown':\n {\n this.setTimer('scrollTop', this.step);\n event.preventDefault();\n break;\n }\n case 'ArrowUp':\n {\n this.setTimer('scrollTop', this.step * -1);\n event.preventDefault();\n break;\n }\n case 'ArrowLeft':\n case 'ArrowRight':\n {\n event.preventDefault();\n break;\n }\n }\n } else if (this.orientation === 'horizontal') {\n switch (event.code) {\n case 'ArrowRight':\n {\n this.setTimer('scrollLeft', this.step);\n event.preventDefault();\n break;\n }\n case 'ArrowLeft':\n {\n this.setTimer('scrollLeft', this.step * -1);\n event.preventDefault();\n break;\n }\n case 'ArrowDown':\n case 'ArrowUp':\n {\n event.preventDefault();\n break;\n }\n }\n }\n },\n onKeyUp: function onKeyUp() {\n this.clearTimer();\n },\n repeat: function repeat(bar, step) {\n this.$refs.content[bar] += step;\n this.moveBar();\n },\n setTimer: function setTimer(bar, step) {\n var _this2 = this;\n this.clearTimer();\n this.timer = setTimeout(function () {\n _this2.repeat(bar, step);\n }, 40);\n },\n clearTimer: function clearTimer() {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n },\n onDocumentMouseMove: function onDocumentMouseMove(e) {\n if (this.isXBarClicked) {\n this.onMouseMoveForXBar(e);\n } else if (this.isYBarClicked) {\n this.onMouseMoveForYBar(e);\n } else {\n this.onMouseMoveForXBar(e);\n this.onMouseMoveForYBar(e);\n }\n },\n onMouseMoveForXBar: function onMouseMoveForXBar(e) {\n var _this3 = this;\n var deltaX = e.pageX - this.lastPageX;\n this.lastPageX = e.pageX;\n this.frame = this.requestAnimationFrame(function () {\n _this3.$refs.content.scrollLeft += deltaX / _this3.scrollXRatio;\n });\n },\n onMouseMoveForYBar: function onMouseMoveForYBar(e) {\n var _this4 = this;\n var deltaY = e.pageY - this.lastPageY;\n this.lastPageY = e.pageY;\n this.frame = this.requestAnimationFrame(function () {\n _this4.$refs.content.scrollTop += deltaY / _this4.scrollYRatio;\n });\n },\n onFocus: function onFocus(event) {\n if (this.$refs.xBar.isSameNode(event.target)) {\n this.orientation = 'horizontal';\n } else if (this.$refs.yBar.isSameNode(event.target)) {\n this.orientation = 'vertical';\n }\n },\n onBlur: function onBlur() {\n if (this.orientation === 'horizontal') {\n this.orientation = 'vertical';\n }\n },\n onDocumentMouseUp: function onDocumentMouseUp() {\n this.$refs.yBar.setAttribute('data-p-scrollpanel-grabbed', 'false');\n !this.isUnstyled && removeClass(this.$refs.yBar, 'p-scrollpanel-grabbed');\n this.$refs.xBar.setAttribute('data-p-scrollpanel-grabbed', 'false');\n !this.isUnstyled && removeClass(this.$refs.xBar, 'p-scrollpanel-grabbed');\n document.body.setAttribute('data-p-scrollpanel-grabbed', 'false');\n !this.isUnstyled && removeClass(document.body, 'p-scrollpanel-grabbed');\n this.unbindDocumentMouseListeners();\n this.isXBarClicked = false;\n this.isYBarClicked = false;\n },\n requestAnimationFrame: function requestAnimationFrame(f) {\n var frame = window.requestAnimationFrame || this.timeoutFrame;\n return frame(f);\n },\n refresh: function refresh() {\n this.moveBar();\n },\n scrollTop: function scrollTop(_scrollTop) {\n var scrollableHeight = this.$refs.content.scrollHeight - this.$refs.content.clientHeight;\n _scrollTop = _scrollTop > scrollableHeight ? scrollableHeight : _scrollTop > 0 ? _scrollTop : 0;\n this.$refs.content.scrollTop = _scrollTop;\n },\n timeoutFrame: function timeoutFrame(fn) {\n setTimeout(fn, 0);\n },\n bindDocumentMouseListeners: function bindDocumentMouseListeners() {\n var _this5 = this;\n if (!this.documentMouseMoveListener) {\n this.documentMouseMoveListener = function (e) {\n _this5.onDocumentMouseMove(e);\n };\n document.addEventListener('mousemove', this.documentMouseMoveListener);\n }\n if (!this.documentMouseUpListener) {\n this.documentMouseUpListener = function (e) {\n _this5.onDocumentMouseUp(e);\n };\n document.addEventListener('mouseup', this.documentMouseUpListener);\n }\n },\n unbindDocumentMouseListeners: function unbindDocumentMouseListeners() {\n if (this.documentMouseMoveListener) {\n document.removeEventListener('mousemove', this.documentMouseMoveListener);\n this.documentMouseMoveListener = null;\n }\n if (this.documentMouseUpListener) {\n document.removeEventListener('mouseup', this.documentMouseUpListener);\n this.documentMouseUpListener = null;\n }\n },\n bindDocumentResizeListener: function bindDocumentResizeListener() {\n var _this6 = this;\n if (!this.documentResizeListener) {\n this.documentResizeListener = function () {\n _this6.moveBar();\n };\n window.addEventListener('resize', this.documentResizeListener);\n }\n },\n unbindDocumentResizeListener: function unbindDocumentResizeListener() {\n if (this.documentResizeListener) {\n window.removeEventListener('resize', this.documentResizeListener);\n this.documentResizeListener = null;\n }\n }\n },\n computed: {\n contentId: function contentId() {\n return this.id + '_content';\n }\n }\n};\n\nvar _hoisted_1 = [\"id\"];\nvar _hoisted_2 = [\"aria-controls\", \"aria-valuenow\"];\nvar _hoisted_3 = [\"aria-controls\", \"aria-valuenow\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root')), [createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('contentContainer')\n }, _ctx.ptm('contentContainer')), [createElementVNode(\"div\", mergeProps({\n ref: \"content\",\n id: $options.contentId,\n \"class\": _ctx.cx('content'),\n onScroll: _cache[0] || (_cache[0] = function () {\n return $options.onScroll && $options.onScroll.apply($options, arguments);\n }),\n onMouseenter: _cache[1] || (_cache[1] = function () {\n return $options.moveBar && $options.moveBar.apply($options, arguments);\n })\n }, _ctx.ptm('content')), [renderSlot(_ctx.$slots, \"default\")], 16, _hoisted_1)], 16), createElementVNode(\"div\", mergeProps({\n ref: \"xBar\",\n \"class\": _ctx.cx('barx'),\n tabindex: \"0\",\n role: \"scrollbar\",\n \"aria-orientation\": \"horizontal\",\n \"aria-controls\": $options.contentId,\n \"aria-valuenow\": $data.lastScrollLeft,\n onMousedown: _cache[2] || (_cache[2] = function () {\n return $options.onXBarMouseDown && $options.onXBarMouseDown.apply($options, arguments);\n }),\n onKeydown: _cache[3] || (_cache[3] = function ($event) {\n return $options.onKeyDown($event);\n }),\n onKeyup: _cache[4] || (_cache[4] = function () {\n return $options.onKeyUp && $options.onKeyUp.apply($options, arguments);\n }),\n onFocus: _cache[5] || (_cache[5] = function () {\n return $options.onFocus && $options.onFocus.apply($options, arguments);\n }),\n onBlur: _cache[6] || (_cache[6] = function () {\n return $options.onBlur && $options.onBlur.apply($options, arguments);\n })\n }, _ctx.ptm('barx'), {\n \"data-pc-group-section\": \"bar\"\n }), null, 16, _hoisted_2), createElementVNode(\"div\", mergeProps({\n ref: \"yBar\",\n \"class\": _ctx.cx('bary'),\n tabindex: \"0\",\n role: \"scrollbar\",\n \"aria-orientation\": \"vertical\",\n \"aria-controls\": $options.contentId,\n \"aria-valuenow\": $data.lastScrollTop,\n onMousedown: _cache[7] || (_cache[7] = function () {\n return $options.onYBarMouseDown && $options.onYBarMouseDown.apply($options, arguments);\n }),\n onKeydown: _cache[8] || (_cache[8] = function ($event) {\n return $options.onKeyDown($event);\n }),\n onKeyup: _cache[9] || (_cache[9] = function () {\n return $options.onKeyUp && $options.onKeyUp.apply($options, arguments);\n }),\n onFocus: _cache[10] || (_cache[10] = function () {\n return $options.onFocus && $options.onFocus.apply($options, arguments);\n })\n }, _ctx.ptm('bary'), {\n \"data-pc-group-section\": \"bar\"\n }), null, 16, _hoisted_3)], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-card {\\n background: \".concat(dt('card.background'), \";\\n color: \").concat(dt('card.color'), \";\\n box-shadow: \").concat(dt('card.shadow'), \";\\n border-radius: \").concat(dt('card.border.radius'), \";\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.p-card-caption {\\n display: flex;\\n flex-direction: column;\\n gap: \").concat(dt('card.caption.gap'), \";\\n}\\n\\n.p-card-body {\\n padding: \").concat(dt('card.body.padding'), \";\\n display: flex;\\n flex-direction: column;\\n gap: \").concat(dt('card.body.gap'), \";\\n}\\n\\n.p-card-title {\\n font-size: \").concat(dt('card.title.font.size'), \";\\n font-weight: \").concat(dt('card.title.font.weight'), \";\\n}\\n\\n.p-card-subtitle {\\n color: \").concat(dt('card.subtitle.color'), \";\\n}\\n\");\n};\nvar classes = {\n root: 'p-card p-component',\n header: 'p-card-header',\n body: 'p-card-body',\n caption: 'p-card-caption',\n title: 'p-card-title',\n subtitle: 'p-card-subtitle',\n content: 'p-card-content',\n footer: 'p-card-footer'\n};\nvar CardStyle = BaseStyle.extend({\n name: 'card',\n theme: theme,\n classes: classes\n});\n\nexport { CardStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseComponent from '@primevue/core/basecomponent';\nimport CardStyle from 'primevue/card/style';\nimport { openBlock, createElementBlock, mergeProps, renderSlot, createCommentVNode, createElementVNode } from 'vue';\n\nvar script$1 = {\n name: 'BaseCard',\n \"extends\": BaseComponent,\n style: CardStyle,\n provide: function provide() {\n return {\n $pcCard: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'Card',\n \"extends\": script$1,\n inheritAttrs: false\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root')), [_ctx.$slots.header ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('header')\n }, _ctx.ptm('header')), [renderSlot(_ctx.$slots, \"header\")], 16)) : createCommentVNode(\"\", true), createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('body')\n }, _ctx.ptm('body')), [_ctx.$slots.title || _ctx.$slots.subtitle ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('caption')\n }, _ctx.ptm('caption')), [_ctx.$slots.title ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('title')\n }, _ctx.ptm('title')), [renderSlot(_ctx.$slots, \"title\")], 16)) : createCommentVNode(\"\", true), _ctx.$slots.subtitle ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 1,\n \"class\": _ctx.cx('subtitle')\n }, _ctx.ptm('subtitle')), [renderSlot(_ctx.$slots, \"subtitle\")], 16)) : createCommentVNode(\"\", true)], 16)) : createCommentVNode(\"\", true), createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('content')\n }, _ctx.ptm('content')), [renderSlot(_ctx.$slots, \"content\")], 16), _ctx.$slots.footer ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 1,\n \"class\": _ctx.cx('footer')\n }, _ctx.ptm('footer')), [renderSlot(_ctx.$slots, \"footer\")], 16)) : createCommentVNode(\"\", true)], 16)], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n\n\n","\n\n\n","\n\n\n","import { useClipboard } from '@vueuse/core'\nimport { useToast } from 'primevue/usetoast'\n\nexport function useCopyToClipboard() {\n const { copy, isSupported } = useClipboard()\n const toast = useToast()\n\n const copyToClipboard = async (text: string) => {\n if (isSupported) {\n try {\n await copy(text)\n toast.add({\n severity: 'success',\n summary: 'Success',\n detail: 'Copied to clipboard',\n life: 3000\n })\n } catch (err) {\n toast.add({\n severity: 'error',\n summary: 'Error',\n detail: 'Failed to copy report'\n })\n }\n } else {\n toast.add({\n severity: 'error',\n summary: 'Error',\n detail: 'Clipboard API not supported in your browser'\n })\n }\n }\n\n return {\n copyToClipboard\n }\n}\n","\n\n\n\n\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'BlankIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"rect\", {\n width: \"1\",\n height: \"1\",\n fill: \"currentColor\",\n \"fill-opacity\": \"0\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'CheckIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M4.86199 11.5948C4.78717 11.5923 4.71366 11.5745 4.64596 11.5426C4.57826 11.5107 4.51779 11.4652 4.46827 11.4091L0.753985 7.69483C0.683167 7.64891 0.623706 7.58751 0.580092 7.51525C0.536478 7.44299 0.509851 7.36177 0.502221 7.27771C0.49459 7.19366 0.506156 7.10897 0.536046 7.03004C0.565935 6.95111 0.613367 6.88 0.674759 6.82208C0.736151 6.76416 0.8099 6.72095 0.890436 6.69571C0.970973 6.67046 1.05619 6.66385 1.13966 6.67635C1.22313 6.68886 1.30266 6.72017 1.37226 6.76792C1.44186 6.81567 1.4997 6.8786 1.54141 6.95197L4.86199 10.2503L12.6397 2.49483C12.7444 2.42694 12.8689 2.39617 12.9932 2.40745C13.1174 2.41873 13.2343 2.47141 13.3251 2.55705C13.4159 2.64268 13.4753 2.75632 13.4938 2.87973C13.5123 3.00315 13.4888 3.1292 13.4271 3.23768L5.2557 11.4091C5.20618 11.4652 5.14571 11.5107 5.07801 11.5426C5.01031 11.5745 4.9368 11.5923 4.86199 11.5948Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'SearchIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n \"clip-rule\": \"evenodd\",\n d: \"M2.67602 11.0265C3.6661 11.688 4.83011 12.0411 6.02086 12.0411C6.81149 12.0411 7.59438 11.8854 8.32483 11.5828C8.87005 11.357 9.37808 11.0526 9.83317 10.6803L12.9769 13.8241C13.0323 13.8801 13.0983 13.9245 13.171 13.9548C13.2438 13.985 13.3219 14.0003 13.4007 14C13.4795 14.0003 13.5575 13.985 13.6303 13.9548C13.7031 13.9245 13.7691 13.8801 13.8244 13.8241C13.9367 13.7116 13.9998 13.5592 13.9998 13.4003C13.9998 13.2414 13.9367 13.089 13.8244 12.9765L10.6807 9.8328C11.053 9.37773 11.3573 8.86972 11.5831 8.32452C11.8857 7.59408 12.0414 6.81119 12.0414 6.02056C12.0414 4.8298 11.6883 3.66579 11.0268 2.67572C10.3652 1.68564 9.42494 0.913972 8.32483 0.45829C7.22472 0.00260857 6.01418 -0.116618 4.84631 0.115686C3.67844 0.34799 2.60568 0.921393 1.76369 1.76338C0.921698 2.60537 0.348296 3.67813 0.115991 4.84601C-0.116313 6.01388 0.00291375 7.22441 0.458595 8.32452C0.914277 9.42464 1.68595 10.3649 2.67602 11.0265ZM3.35565 2.0158C4.14456 1.48867 5.07206 1.20731 6.02086 1.20731C7.29317 1.20731 8.51338 1.71274 9.41304 2.6124C10.3127 3.51206 10.8181 4.73226 10.8181 6.00457C10.8181 6.95337 10.5368 7.88088 10.0096 8.66978C9.48251 9.45868 8.73328 10.0736 7.85669 10.4367C6.98011 10.7997 6.01554 10.8947 5.08496 10.7096C4.15439 10.5245 3.2996 10.0676 2.62869 9.39674C1.95778 8.72583 1.50089 7.87104 1.31579 6.94046C1.13068 6.00989 1.22568 5.04532 1.58878 4.16874C1.95187 3.29215 2.56675 2.54292 3.35565 2.0158Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-iconfield {\\n position: relative;\\n}\\n\\n.p-inputicon {\\n position: absolute;\\n top: 50%;\\n margin-top: calc(-1 * (\".concat(dt('icon.size'), \" / 2));\\n color: \").concat(dt('iconfield.icon.color'), \";\\n line-height: 1;\\n}\\n\\n.p-iconfield .p-inputicon:first-child {\\n left: \").concat(dt('form.field.padding.x'), \";\\n}\\n\\n.p-iconfield .p-inputicon:last-child {\\n right: \").concat(dt('form.field.padding.x'), \";\\n}\\n\\n.p-iconfield .p-inputtext:not(:first-child) {\\n padding-left: calc((\").concat(dt('form.field.padding.x'), \" * 2) + \").concat(dt('icon.size'), \");\\n}\\n\\n.p-iconfield .p-inputtext:not(:last-child) {\\n padding-right: calc((\").concat(dt('form.field.padding.x'), \" * 2) + \").concat(dt('icon.size'), \");\\n}\\n\");\n};\nvar classes = {\n root: 'p-iconfield'\n};\nvar IconFieldStyle = BaseStyle.extend({\n name: 'iconfield',\n theme: theme,\n classes: classes\n});\n\nexport { IconFieldStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseComponent from '@primevue/core/basecomponent';\nimport IconFieldStyle from 'primevue/iconfield/style';\nimport { openBlock, createElementBlock, mergeProps, renderSlot } from 'vue';\n\nvar script$1 = {\n name: 'BaseIconField',\n \"extends\": BaseComponent,\n style: IconFieldStyle,\n provide: function provide() {\n return {\n $pcIconField: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'IconField',\n \"extends\": script$1,\n inheritAttrs: false\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root')), [renderSlot(_ctx.$slots, \"default\")], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar classes = {\n root: 'p-inputicon'\n};\nvar InputIconStyle = BaseStyle.extend({\n name: 'inputicon',\n classes: classes\n});\n\nexport { InputIconStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseComponent from '@primevue/core/basecomponent';\nimport InputIconStyle from 'primevue/inputicon/style';\nimport { openBlock, createElementBlock, mergeProps, renderSlot } from 'vue';\n\nvar script$1 = {\n name: 'BaseInputIcon',\n \"extends\": BaseComponent,\n style: InputIconStyle,\n props: {\n \"class\": null\n },\n provide: function provide() {\n return {\n $pcInputIcon: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'InputIcon',\n \"extends\": script$1,\n inheritAttrs: false,\n computed: {\n containerClass: function containerClass() {\n return [this.cx('root'), this[\"class\"]];\n }\n }\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps({\n \"class\": $options.containerClass\n }, _ctx.ptmi('root')), [renderSlot(_ctx.$slots, \"default\")], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-inputtext {\\n font-family: inherit;\\n font-feature-settings: inherit;\\n font-size: 1rem;\\n color: \".concat(dt('inputtext.color'), \";\\n background: \").concat(dt('inputtext.background'), \";\\n padding: \").concat(dt('inputtext.padding.y'), \" \").concat(dt('inputtext.padding.x'), \";\\n border: 1px solid \").concat(dt('inputtext.border.color'), \";\\n transition: background \").concat(dt('inputtext.transition.duration'), \", color \").concat(dt('inputtext.transition.duration'), \", border-color \").concat(dt('inputtext.transition.duration'), \", outline-color \").concat(dt('inputtext.transition.duration'), \", box-shadow \").concat(dt('inputtext.transition.duration'), \";\\n appearance: none;\\n border-radius: \").concat(dt('inputtext.border.radius'), \";\\n outline-color: transparent;\\n box-shadow: \").concat(dt('inputtext.shadow'), \";\\n}\\n\\n.p-inputtext:enabled:hover {\\n border-color: \").concat(dt('inputtext.hover.border.color'), \";\\n}\\n\\n.p-inputtext:enabled:focus {\\n border-color: \").concat(dt('inputtext.focus.border.color'), \";\\n box-shadow: \").concat(dt('inputtext.focus.ring.shadow'), \";\\n outline: \").concat(dt('inputtext.focus.ring.width'), \" \").concat(dt('inputtext.focus.ring.style'), \" \").concat(dt('inputtext.focus.ring.color'), \";\\n outline-offset: \").concat(dt('inputtext.focus.ring.offset'), \";\\n}\\n\\n.p-inputtext.p-invalid {\\n border-color: \").concat(dt('inputtext.invalid.border.color'), \";\\n}\\n\\n.p-inputtext.p-variant-filled {\\n background: \").concat(dt('inputtext.filled.background'), \";\\n}\\n\\n.p-inputtext.p-variant-filled:enabled:focus {\\n background: \").concat(dt('inputtext.filled.focus.background'), \";\\n}\\n\\n.p-inputtext:disabled {\\n opacity: 1;\\n background: \").concat(dt('inputtext.disabled.background'), \";\\n color: \").concat(dt('inputtext.disabled.color'), \";\\n}\\n\\n.p-inputtext::placeholder {\\n color: \").concat(dt('inputtext.placeholder.color'), \";\\n}\\n\\n.p-inputtext-sm {\\n font-size: \").concat(dt('inputtext.sm.font.size'), \";\\n padding: \").concat(dt('inputtext.sm.padding.y'), \" \").concat(dt('inputtext.sm.padding.x'), \";\\n}\\n\\n.p-inputtext-lg {\\n font-size: \").concat(dt('inputtext.lg.font.size'), \";\\n padding: \").concat(dt('inputtext.lg.padding.y'), \" \").concat(dt('inputtext.lg.padding.x'), \";\\n}\\n\\n.p-inputtext-fluid {\\n width: 100%;\\n}\\n\");\n};\nvar classes = {\n root: function root(_ref2) {\n var instance = _ref2.instance,\n props = _ref2.props;\n return ['p-inputtext p-component', {\n 'p-filled': instance.filled,\n 'p-inputtext-sm': props.size === 'small',\n 'p-inputtext-lg': props.size === 'large',\n 'p-invalid': props.invalid,\n 'p-variant-filled': props.variant ? props.variant === 'filled' : instance.$primevue.config.inputStyle === 'filled' || instance.$primevue.config.inputVariant === 'filled',\n 'p-inputtext-fluid': instance.hasFluid\n }];\n }\n};\nvar InputTextStyle = BaseStyle.extend({\n name: 'inputtext',\n theme: theme,\n classes: classes\n});\n\nexport { InputTextStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { isEmpty } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport InputTextStyle from 'primevue/inputtext/style';\nimport { openBlock, createElementBlock, mergeProps } from 'vue';\n\nvar script$1 = {\n name: 'BaseInputText',\n \"extends\": BaseComponent,\n props: {\n modelValue: null,\n size: {\n type: String,\n \"default\": null\n },\n invalid: {\n type: Boolean,\n \"default\": false\n },\n variant: {\n type: String,\n \"default\": null\n },\n fluid: {\n type: Boolean,\n \"default\": null\n }\n },\n style: InputTextStyle,\n provide: function provide() {\n return {\n $pcInputText: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'InputText',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['update:modelValue'],\n inject: {\n $pcFluid: {\n \"default\": null\n }\n },\n methods: {\n getPTOptions: function getPTOptions(key) {\n var _ptm = key === 'root' ? this.ptmi : this.ptm;\n return _ptm(key, {\n context: {\n filled: this.filled,\n disabled: this.$attrs.disabled || this.$attrs.disabled === ''\n }\n });\n },\n onInput: function onInput(event) {\n this.$emit('update:modelValue', event.target.value);\n }\n },\n computed: {\n filled: function filled() {\n return this.modelValue != null && this.modelValue.toString().length > 0;\n },\n hasFluid: function hasFluid() {\n return isEmpty(this.fluid) ? !!this.$pcFluid : this.fluid;\n }\n }\n};\n\nvar _hoisted_1 = [\"value\", \"aria-invalid\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"input\", mergeProps({\n type: \"text\",\n \"class\": _ctx.cx('root'),\n value: _ctx.modelValue,\n \"aria-invalid\": _ctx.invalid || undefined,\n onInput: _cache[0] || (_cache[0] = function () {\n return $options.onInput && $options.onInput.apply($options, arguments);\n })\n }, $options.getPTOptions('root')), null, 16, _hoisted_1);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-virtualscroller {\\n position: relative;\\n overflow: auto;\\n contain: strict;\\n transform: translateZ(0);\\n will-change: scroll-position;\\n outline: 0 none;\\n}\\n\\n.p-virtualscroller-content {\\n position: absolute;\\n top: 0;\\n left: 0;\\n min-height: 100%;\\n min-width: 100%;\\n will-change: transform;\\n}\\n\\n.p-virtualscroller-spacer {\\n position: absolute;\\n top: 0;\\n left: 0;\\n height: 1px;\\n width: 1px;\\n transform-origin: 0 0;\\n pointer-events: none;\\n}\\n\\n.p-virtualscroller-loader {\\n position: sticky;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n background: \".concat(dt('virtualscroller.loader.mask.background'), \";\\n color: \").concat(dt('virtualscroller.loader.mask.color'), \";\\n}\\n\\n.p-virtualscroller-loader-mask {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n}\\n\\n.p-virtualscroller-loading-icon {\\n font-size: \").concat(dt('virtualscroller.loader.icon.size'), \";\\n width: \").concat(dt('virtualscroller.loader.icon.size'), \";\\n height: \").concat(dt('virtualscroller.loader.icon.size'), \";\\n}\\n\\n.p-virtualscroller-horizontal > .p-virtualscroller-content {\\n display: flex;\\n}\\n\\n.p-virtualscroller-inline .p-virtualscroller-content {\\n position: static;\\n}\\n\");\n};\nvar VirtualScrollerStyle = BaseStyle.extend({\n name: 'virtualscroller',\n theme: theme\n});\n\nexport { VirtualScrollerStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { isVisible, getWidth, getHeight, findSingle } from '@primeuix/utils/dom';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport VirtualScrollerStyle from 'primevue/virtualscroller/style';\nimport { resolveComponent, openBlock, createElementBlock, mergeProps, renderSlot, createElementVNode, Fragment, renderList, createCommentVNode, createVNode } from 'vue';\n\nvar script$1 = {\n name: 'BaseVirtualScroller',\n \"extends\": BaseComponent,\n props: {\n id: {\n type: String,\n \"default\": null\n },\n style: null,\n \"class\": null,\n items: {\n type: Array,\n \"default\": null\n },\n itemSize: {\n type: [Number, Array],\n \"default\": 0\n },\n scrollHeight: null,\n scrollWidth: null,\n orientation: {\n type: String,\n \"default\": 'vertical'\n },\n numToleratedItems: {\n type: Number,\n \"default\": null\n },\n delay: {\n type: Number,\n \"default\": 0\n },\n resizeDelay: {\n type: Number,\n \"default\": 10\n },\n lazy: {\n type: Boolean,\n \"default\": false\n },\n disabled: {\n type: Boolean,\n \"default\": false\n },\n loaderDisabled: {\n type: Boolean,\n \"default\": false\n },\n columns: {\n type: Array,\n \"default\": null\n },\n loading: {\n type: Boolean,\n \"default\": false\n },\n showSpacer: {\n type: Boolean,\n \"default\": true\n },\n showLoader: {\n type: Boolean,\n \"default\": false\n },\n tabindex: {\n type: Number,\n \"default\": 0\n },\n inline: {\n type: Boolean,\n \"default\": false\n },\n step: {\n type: Number,\n \"default\": 0\n },\n appendOnly: {\n type: Boolean,\n \"default\": false\n },\n autoSize: {\n type: Boolean,\n \"default\": false\n }\n },\n style: VirtualScrollerStyle,\n provide: function provide() {\n return {\n $pcVirtualScroller: this,\n $parentInstance: this\n };\n },\n beforeMount: function beforeMount() {\n var _this$$primevueConfig;\n VirtualScrollerStyle.loadCSS({\n nonce: (_this$$primevueConfig = this.$primevueConfig) === null || _this$$primevueConfig === void 0 || (_this$$primevueConfig = _this$$primevueConfig.csp) === null || _this$$primevueConfig === void 0 ? void 0 : _this$$primevueConfig.nonce\n });\n }\n};\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar script = {\n name: 'VirtualScroller',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['update:numToleratedItems', 'scroll', 'scroll-index-change', 'lazy-load'],\n data: function data() {\n var both = this.isBoth();\n return {\n first: both ? {\n rows: 0,\n cols: 0\n } : 0,\n last: both ? {\n rows: 0,\n cols: 0\n } : 0,\n page: both ? {\n rows: 0,\n cols: 0\n } : 0,\n numItemsInViewport: both ? {\n rows: 0,\n cols: 0\n } : 0,\n lastScrollPos: both ? {\n top: 0,\n left: 0\n } : 0,\n d_numToleratedItems: this.numToleratedItems,\n d_loading: this.loading,\n loaderArr: [],\n spacerStyle: {},\n contentStyle: {}\n };\n },\n element: null,\n content: null,\n lastScrollPos: null,\n scrollTimeout: null,\n resizeTimeout: null,\n defaultWidth: 0,\n defaultHeight: 0,\n defaultContentWidth: 0,\n defaultContentHeight: 0,\n isRangeChanged: false,\n lazyLoadState: {},\n resizeListener: null,\n initialized: false,\n watch: {\n numToleratedItems: function numToleratedItems(newValue) {\n this.d_numToleratedItems = newValue;\n },\n loading: function loading(newValue, oldValue) {\n if (this.lazy && newValue !== oldValue && newValue !== this.d_loading) {\n this.d_loading = newValue;\n }\n },\n items: function items(newValue, oldValue) {\n if (!oldValue || oldValue.length !== (newValue || []).length) {\n this.init();\n this.calculateAutoSize();\n }\n },\n itemSize: function itemSize() {\n this.init();\n this.calculateAutoSize();\n },\n orientation: function orientation() {\n this.lastScrollPos = this.isBoth() ? {\n top: 0,\n left: 0\n } : 0;\n },\n scrollHeight: function scrollHeight() {\n this.init();\n this.calculateAutoSize();\n },\n scrollWidth: function scrollWidth() {\n this.init();\n this.calculateAutoSize();\n }\n },\n mounted: function mounted() {\n this.viewInit();\n this.lastScrollPos = this.isBoth() ? {\n top: 0,\n left: 0\n } : 0;\n this.lazyLoadState = this.lazyLoadState || {};\n },\n updated: function updated() {\n !this.initialized && this.viewInit();\n },\n unmounted: function unmounted() {\n this.unbindResizeListener();\n this.initialized = false;\n },\n methods: {\n viewInit: function viewInit() {\n if (isVisible(this.element)) {\n this.setContentEl(this.content);\n this.init();\n this.calculateAutoSize();\n this.bindResizeListener();\n this.defaultWidth = getWidth(this.element);\n this.defaultHeight = getHeight(this.element);\n this.defaultContentWidth = getWidth(this.content);\n this.defaultContentHeight = getHeight(this.content);\n this.initialized = true;\n }\n },\n init: function init() {\n if (!this.disabled) {\n this.setSize();\n this.calculateOptions();\n this.setSpacerSize();\n }\n },\n isVertical: function isVertical() {\n return this.orientation === 'vertical';\n },\n isHorizontal: function isHorizontal() {\n return this.orientation === 'horizontal';\n },\n isBoth: function isBoth() {\n return this.orientation === 'both';\n },\n scrollTo: function scrollTo(options) {\n //this.lastScrollPos = this.both ? { top: 0, left: 0 } : 0;\n this.element && this.element.scrollTo(options);\n },\n scrollToIndex: function scrollToIndex(index) {\n var _this = this;\n var behavior = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'auto';\n var both = this.isBoth();\n var horizontal = this.isHorizontal();\n var valid = both ? index.every(function (i) {\n return i > -1;\n }) : index > -1;\n if (valid) {\n var first = this.first;\n var _this$element = this.element,\n _this$element$scrollT = _this$element.scrollTop,\n scrollTop = _this$element$scrollT === void 0 ? 0 : _this$element$scrollT,\n _this$element$scrollL = _this$element.scrollLeft,\n scrollLeft = _this$element$scrollL === void 0 ? 0 : _this$element$scrollL;\n var _this$calculateNumIte = this.calculateNumItems(),\n numToleratedItems = _this$calculateNumIte.numToleratedItems;\n var contentPos = this.getContentPosition();\n var itemSize = this.itemSize;\n var calculateFirst = function calculateFirst() {\n var _index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var _numT = arguments.length > 1 ? arguments[1] : undefined;\n return _index <= _numT ? 0 : _index;\n };\n var calculateCoord = function calculateCoord(_first, _size, _cpos) {\n return _first * _size + _cpos;\n };\n var scrollTo = function scrollTo() {\n var left = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var top = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return _this.scrollTo({\n left: left,\n top: top,\n behavior: behavior\n });\n };\n var newFirst = both ? {\n rows: 0,\n cols: 0\n } : 0;\n var isRangeChanged = false,\n isScrollChanged = false;\n if (both) {\n newFirst = {\n rows: calculateFirst(index[0], numToleratedItems[0]),\n cols: calculateFirst(index[1], numToleratedItems[1])\n };\n scrollTo(calculateCoord(newFirst.cols, itemSize[1], contentPos.left), calculateCoord(newFirst.rows, itemSize[0], contentPos.top));\n isScrollChanged = this.lastScrollPos.top !== scrollTop || this.lastScrollPos.left !== scrollLeft;\n isRangeChanged = newFirst.rows !== first.rows || newFirst.cols !== first.cols;\n } else {\n newFirst = calculateFirst(index, numToleratedItems);\n horizontal ? scrollTo(calculateCoord(newFirst, itemSize, contentPos.left), scrollTop) : scrollTo(scrollLeft, calculateCoord(newFirst, itemSize, contentPos.top));\n isScrollChanged = this.lastScrollPos !== (horizontal ? scrollLeft : scrollTop);\n isRangeChanged = newFirst !== first;\n }\n this.isRangeChanged = isRangeChanged;\n isScrollChanged && (this.first = newFirst);\n }\n },\n scrollInView: function scrollInView(index, to) {\n var _this2 = this;\n var behavior = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'auto';\n if (to) {\n var both = this.isBoth();\n var horizontal = this.isHorizontal();\n var valid = both ? index.every(function (i) {\n return i > -1;\n }) : index > -1;\n if (valid) {\n var _this$getRenderedRang = this.getRenderedRange(),\n first = _this$getRenderedRang.first,\n viewport = _this$getRenderedRang.viewport;\n var scrollTo = function scrollTo() {\n var left = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var top = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return _this2.scrollTo({\n left: left,\n top: top,\n behavior: behavior\n });\n };\n var isToStart = to === 'to-start';\n var isToEnd = to === 'to-end';\n if (isToStart) {\n if (both) {\n if (viewport.first.rows - first.rows > index[0]) {\n scrollTo(viewport.first.cols * this.itemSize[1], (viewport.first.rows - 1) * this.itemSize[0]);\n } else if (viewport.first.cols - first.cols > index[1]) {\n scrollTo((viewport.first.cols - 1) * this.itemSize[1], viewport.first.rows * this.itemSize[0]);\n }\n } else {\n if (viewport.first - first > index) {\n var pos = (viewport.first - 1) * this.itemSize;\n horizontal ? scrollTo(pos, 0) : scrollTo(0, pos);\n }\n }\n } else if (isToEnd) {\n if (both) {\n if (viewport.last.rows - first.rows <= index[0] + 1) {\n scrollTo(viewport.first.cols * this.itemSize[1], (viewport.first.rows + 1) * this.itemSize[0]);\n } else if (viewport.last.cols - first.cols <= index[1] + 1) {\n scrollTo((viewport.first.cols + 1) * this.itemSize[1], viewport.first.rows * this.itemSize[0]);\n }\n } else {\n if (viewport.last - first <= index + 1) {\n var _pos2 = (viewport.first + 1) * this.itemSize;\n horizontal ? scrollTo(_pos2, 0) : scrollTo(0, _pos2);\n }\n }\n }\n }\n } else {\n this.scrollToIndex(index, behavior);\n }\n },\n getRenderedRange: function getRenderedRange() {\n var calculateFirstInViewport = function calculateFirstInViewport(_pos, _size) {\n return Math.floor(_pos / (_size || _pos));\n };\n var firstInViewport = this.first;\n var lastInViewport = 0;\n if (this.element) {\n var both = this.isBoth();\n var horizontal = this.isHorizontal();\n var _this$element2 = this.element,\n scrollTop = _this$element2.scrollTop,\n scrollLeft = _this$element2.scrollLeft;\n if (both) {\n firstInViewport = {\n rows: calculateFirstInViewport(scrollTop, this.itemSize[0]),\n cols: calculateFirstInViewport(scrollLeft, this.itemSize[1])\n };\n lastInViewport = {\n rows: firstInViewport.rows + this.numItemsInViewport.rows,\n cols: firstInViewport.cols + this.numItemsInViewport.cols\n };\n } else {\n var scrollPos = horizontal ? scrollLeft : scrollTop;\n firstInViewport = calculateFirstInViewport(scrollPos, this.itemSize);\n lastInViewport = firstInViewport + this.numItemsInViewport;\n }\n }\n return {\n first: this.first,\n last: this.last,\n viewport: {\n first: firstInViewport,\n last: lastInViewport\n }\n };\n },\n calculateNumItems: function calculateNumItems() {\n var both = this.isBoth();\n var horizontal = this.isHorizontal();\n var itemSize = this.itemSize;\n var contentPos = this.getContentPosition();\n var contentWidth = this.element ? this.element.offsetWidth - contentPos.left : 0;\n var contentHeight = this.element ? this.element.offsetHeight - contentPos.top : 0;\n var calculateNumItemsInViewport = function calculateNumItemsInViewport(_contentSize, _itemSize) {\n return Math.ceil(_contentSize / (_itemSize || _contentSize));\n };\n var calculateNumToleratedItems = function calculateNumToleratedItems(_numItems) {\n return Math.ceil(_numItems / 2);\n };\n var numItemsInViewport = both ? {\n rows: calculateNumItemsInViewport(contentHeight, itemSize[0]),\n cols: calculateNumItemsInViewport(contentWidth, itemSize[1])\n } : calculateNumItemsInViewport(horizontal ? contentWidth : contentHeight, itemSize);\n var numToleratedItems = this.d_numToleratedItems || (both ? [calculateNumToleratedItems(numItemsInViewport.rows), calculateNumToleratedItems(numItemsInViewport.cols)] : calculateNumToleratedItems(numItemsInViewport));\n return {\n numItemsInViewport: numItemsInViewport,\n numToleratedItems: numToleratedItems\n };\n },\n calculateOptions: function calculateOptions() {\n var _this3 = this;\n var both = this.isBoth();\n var first = this.first;\n var _this$calculateNumIte2 = this.calculateNumItems(),\n numItemsInViewport = _this$calculateNumIte2.numItemsInViewport,\n numToleratedItems = _this$calculateNumIte2.numToleratedItems;\n var calculateLast = function calculateLast(_first, _num, _numT) {\n var _isCols = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n return _this3.getLast(_first + _num + (_first < _numT ? 2 : 3) * _numT, _isCols);\n };\n var last = both ? {\n rows: calculateLast(first.rows, numItemsInViewport.rows, numToleratedItems[0]),\n cols: calculateLast(first.cols, numItemsInViewport.cols, numToleratedItems[1], true)\n } : calculateLast(first, numItemsInViewport, numToleratedItems);\n this.last = last;\n this.numItemsInViewport = numItemsInViewport;\n this.d_numToleratedItems = numToleratedItems;\n this.$emit('update:numToleratedItems', this.d_numToleratedItems);\n if (this.showLoader) {\n this.loaderArr = both ? Array.from({\n length: numItemsInViewport.rows\n }).map(function () {\n return Array.from({\n length: numItemsInViewport.cols\n });\n }) : Array.from({\n length: numItemsInViewport\n });\n }\n if (this.lazy) {\n Promise.resolve().then(function () {\n var _this3$items;\n _this3.lazyLoadState = {\n first: _this3.step ? both ? {\n rows: 0,\n cols: first.cols\n } : 0 : first,\n last: Math.min(_this3.step ? _this3.step : last, ((_this3$items = _this3.items) === null || _this3$items === void 0 ? void 0 : _this3$items.length) || 0)\n };\n _this3.$emit('lazy-load', _this3.lazyLoadState);\n });\n }\n },\n calculateAutoSize: function calculateAutoSize() {\n var _this4 = this;\n if (this.autoSize && !this.d_loading) {\n Promise.resolve().then(function () {\n if (_this4.content) {\n var both = _this4.isBoth();\n var horizontal = _this4.isHorizontal();\n var vertical = _this4.isVertical();\n _this4.content.style.minHeight = _this4.content.style.minWidth = 'auto';\n _this4.content.style.position = 'relative';\n _this4.element.style.contain = 'none';\n\n /*const [contentWidth, contentHeight] = [getWidth(this.content), getHeight(this.content)];\n contentWidth !== this.defaultContentWidth && (this.element.style.width = '');\n contentHeight !== this.defaultContentHeight && (this.element.style.height = '');*/\n\n var _ref = [getWidth(_this4.element), getHeight(_this4.element)],\n width = _ref[0],\n height = _ref[1];\n (both || horizontal) && (_this4.element.style.width = width < _this4.defaultWidth ? width + 'px' : _this4.scrollWidth || _this4.defaultWidth + 'px');\n (both || vertical) && (_this4.element.style.height = height < _this4.defaultHeight ? height + 'px' : _this4.scrollHeight || _this4.defaultHeight + 'px');\n _this4.content.style.minHeight = _this4.content.style.minWidth = '';\n _this4.content.style.position = '';\n _this4.element.style.contain = '';\n }\n });\n }\n },\n getLast: function getLast() {\n var _ref2, _this$items;\n var last = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var isCols = arguments.length > 1 ? arguments[1] : undefined;\n return this.items ? Math.min(isCols ? ((_ref2 = this.columns || this.items[0]) === null || _ref2 === void 0 ? void 0 : _ref2.length) || 0 : ((_this$items = this.items) === null || _this$items === void 0 ? void 0 : _this$items.length) || 0, last) : 0;\n },\n getContentPosition: function getContentPosition() {\n if (this.content) {\n var style = getComputedStyle(this.content);\n var left = parseFloat(style.paddingLeft) + Math.max(parseFloat(style.left) || 0, 0);\n var right = parseFloat(style.paddingRight) + Math.max(parseFloat(style.right) || 0, 0);\n var top = parseFloat(style.paddingTop) + Math.max(parseFloat(style.top) || 0, 0);\n var bottom = parseFloat(style.paddingBottom) + Math.max(parseFloat(style.bottom) || 0, 0);\n return {\n left: left,\n right: right,\n top: top,\n bottom: bottom,\n x: left + right,\n y: top + bottom\n };\n }\n return {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n x: 0,\n y: 0\n };\n },\n setSize: function setSize() {\n var _this5 = this;\n if (this.element) {\n var both = this.isBoth();\n var horizontal = this.isHorizontal();\n var parentElement = this.element.parentElement;\n var width = this.scrollWidth || \"\".concat(this.element.offsetWidth || parentElement.offsetWidth, \"px\");\n var height = this.scrollHeight || \"\".concat(this.element.offsetHeight || parentElement.offsetHeight, \"px\");\n var setProp = function setProp(_name, _value) {\n return _this5.element.style[_name] = _value;\n };\n if (both || horizontal) {\n setProp('height', height);\n setProp('width', width);\n } else {\n setProp('height', height);\n }\n }\n },\n setSpacerSize: function setSpacerSize() {\n var _this6 = this;\n var items = this.items;\n if (items) {\n var both = this.isBoth();\n var horizontal = this.isHorizontal();\n var contentPos = this.getContentPosition();\n var setProp = function setProp(_name, _value, _size) {\n var _cpos = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n return _this6.spacerStyle = _objectSpread(_objectSpread({}, _this6.spacerStyle), _defineProperty({}, \"\".concat(_name), (_value || []).length * _size + _cpos + 'px'));\n };\n if (both) {\n setProp('height', items, this.itemSize[0], contentPos.y);\n setProp('width', this.columns || items[1], this.itemSize[1], contentPos.x);\n } else {\n horizontal ? setProp('width', this.columns || items, this.itemSize, contentPos.x) : setProp('height', items, this.itemSize, contentPos.y);\n }\n }\n },\n setContentPosition: function setContentPosition(pos) {\n var _this7 = this;\n if (this.content && !this.appendOnly) {\n var both = this.isBoth();\n var horizontal = this.isHorizontal();\n var first = pos ? pos.first : this.first;\n var calculateTranslateVal = function calculateTranslateVal(_first, _size) {\n return _first * _size;\n };\n var setTransform = function setTransform() {\n var _x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var _y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return _this7.contentStyle = _objectSpread(_objectSpread({}, _this7.contentStyle), {\n transform: \"translate3d(\".concat(_x, \"px, \").concat(_y, \"px, 0)\")\n });\n };\n if (both) {\n setTransform(calculateTranslateVal(first.cols, this.itemSize[1]), calculateTranslateVal(first.rows, this.itemSize[0]));\n } else {\n var translateVal = calculateTranslateVal(first, this.itemSize);\n horizontal ? setTransform(translateVal, 0) : setTransform(0, translateVal);\n }\n }\n },\n onScrollPositionChange: function onScrollPositionChange(event) {\n var _this8 = this;\n var target = event.target;\n var both = this.isBoth();\n var horizontal = this.isHorizontal();\n var contentPos = this.getContentPosition();\n var calculateScrollPos = function calculateScrollPos(_pos, _cpos) {\n return _pos ? _pos > _cpos ? _pos - _cpos : _pos : 0;\n };\n var calculateCurrentIndex = function calculateCurrentIndex(_pos, _size) {\n return Math.floor(_pos / (_size || _pos));\n };\n var calculateTriggerIndex = function calculateTriggerIndex(_currentIndex, _first, _last, _num, _numT, _isScrollDownOrRight) {\n return _currentIndex <= _numT ? _numT : _isScrollDownOrRight ? _last - _num - _numT : _first + _numT - 1;\n };\n var calculateFirst = function calculateFirst(_currentIndex, _triggerIndex, _first, _last, _num, _numT, _isScrollDownOrRight) {\n if (_currentIndex <= _numT) return 0;else return Math.max(0, _isScrollDownOrRight ? _currentIndex < _triggerIndex ? _first : _currentIndex - _numT : _currentIndex > _triggerIndex ? _first : _currentIndex - 2 * _numT);\n };\n var calculateLast = function calculateLast(_currentIndex, _first, _last, _num, _numT, _isCols) {\n var lastValue = _first + _num + 2 * _numT;\n if (_currentIndex >= _numT) {\n lastValue += _numT + 1;\n }\n return _this8.getLast(lastValue, _isCols);\n };\n var scrollTop = calculateScrollPos(target.scrollTop, contentPos.top);\n var scrollLeft = calculateScrollPos(target.scrollLeft, contentPos.left);\n var newFirst = both ? {\n rows: 0,\n cols: 0\n } : 0;\n var newLast = this.last;\n var isRangeChanged = false;\n var newScrollPos = this.lastScrollPos;\n if (both) {\n var isScrollDown = this.lastScrollPos.top <= scrollTop;\n var isScrollRight = this.lastScrollPos.left <= scrollLeft;\n if (!this.appendOnly || this.appendOnly && (isScrollDown || isScrollRight)) {\n var currentIndex = {\n rows: calculateCurrentIndex(scrollTop, this.itemSize[0]),\n cols: calculateCurrentIndex(scrollLeft, this.itemSize[1])\n };\n var triggerIndex = {\n rows: calculateTriggerIndex(currentIndex.rows, this.first.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0], isScrollDown),\n cols: calculateTriggerIndex(currentIndex.cols, this.first.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], isScrollRight)\n };\n newFirst = {\n rows: calculateFirst(currentIndex.rows, triggerIndex.rows, this.first.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0], isScrollDown),\n cols: calculateFirst(currentIndex.cols, triggerIndex.cols, this.first.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], isScrollRight)\n };\n newLast = {\n rows: calculateLast(currentIndex.rows, newFirst.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0]),\n cols: calculateLast(currentIndex.cols, newFirst.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], true)\n };\n isRangeChanged = newFirst.rows !== this.first.rows || newLast.rows !== this.last.rows || newFirst.cols !== this.first.cols || newLast.cols !== this.last.cols || this.isRangeChanged;\n newScrollPos = {\n top: scrollTop,\n left: scrollLeft\n };\n }\n } else {\n var scrollPos = horizontal ? scrollLeft : scrollTop;\n var isScrollDownOrRight = this.lastScrollPos <= scrollPos;\n if (!this.appendOnly || this.appendOnly && isScrollDownOrRight) {\n var _currentIndex2 = calculateCurrentIndex(scrollPos, this.itemSize);\n var _triggerIndex2 = calculateTriggerIndex(_currentIndex2, this.first, this.last, this.numItemsInViewport, this.d_numToleratedItems, isScrollDownOrRight);\n newFirst = calculateFirst(_currentIndex2, _triggerIndex2, this.first, this.last, this.numItemsInViewport, this.d_numToleratedItems, isScrollDownOrRight);\n newLast = calculateLast(_currentIndex2, newFirst, this.last, this.numItemsInViewport, this.d_numToleratedItems);\n isRangeChanged = newFirst !== this.first || newLast !== this.last || this.isRangeChanged;\n newScrollPos = scrollPos;\n }\n }\n return {\n first: newFirst,\n last: newLast,\n isRangeChanged: isRangeChanged,\n scrollPos: newScrollPos\n };\n },\n onScrollChange: function onScrollChange(event) {\n var _this$onScrollPositio = this.onScrollPositionChange(event),\n first = _this$onScrollPositio.first,\n last = _this$onScrollPositio.last,\n isRangeChanged = _this$onScrollPositio.isRangeChanged,\n scrollPos = _this$onScrollPositio.scrollPos;\n if (isRangeChanged) {\n var newState = {\n first: first,\n last: last\n };\n this.setContentPosition(newState);\n this.first = first;\n this.last = last;\n this.lastScrollPos = scrollPos;\n this.$emit('scroll-index-change', newState);\n if (this.lazy && this.isPageChanged(first)) {\n var _this$items2, _this$items3;\n var lazyLoadState = {\n first: this.step ? Math.min(this.getPageByFirst(first) * this.step, (((_this$items2 = this.items) === null || _this$items2 === void 0 ? void 0 : _this$items2.length) || 0) - this.step) : first,\n last: Math.min(this.step ? (this.getPageByFirst(first) + 1) * this.step : last, ((_this$items3 = this.items) === null || _this$items3 === void 0 ? void 0 : _this$items3.length) || 0)\n };\n var isLazyStateChanged = this.lazyLoadState.first !== lazyLoadState.first || this.lazyLoadState.last !== lazyLoadState.last;\n isLazyStateChanged && this.$emit('lazy-load', lazyLoadState);\n this.lazyLoadState = lazyLoadState;\n }\n }\n },\n onScroll: function onScroll(event) {\n var _this9 = this;\n this.$emit('scroll', event);\n if (this.delay) {\n if (this.scrollTimeout) {\n clearTimeout(this.scrollTimeout);\n }\n if (this.isPageChanged()) {\n if (!this.d_loading && this.showLoader) {\n var _this$onScrollPositio2 = this.onScrollPositionChange(event),\n isRangeChanged = _this$onScrollPositio2.isRangeChanged;\n var changed = isRangeChanged || (this.step ? this.isPageChanged() : false);\n changed && (this.d_loading = true);\n }\n this.scrollTimeout = setTimeout(function () {\n _this9.onScrollChange(event);\n if (_this9.d_loading && _this9.showLoader && (!_this9.lazy || _this9.loading === undefined)) {\n _this9.d_loading = false;\n _this9.page = _this9.getPageByFirst();\n }\n }, this.delay);\n }\n } else {\n this.onScrollChange(event);\n }\n },\n onResize: function onResize() {\n var _this10 = this;\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n }\n this.resizeTimeout = setTimeout(function () {\n if (isVisible(_this10.element)) {\n var both = _this10.isBoth();\n var vertical = _this10.isVertical();\n var horizontal = _this10.isHorizontal();\n var _ref3 = [getWidth(_this10.element), getHeight(_this10.element)],\n width = _ref3[0],\n height = _ref3[1];\n var isDiffWidth = width !== _this10.defaultWidth,\n isDiffHeight = height !== _this10.defaultHeight;\n var reinit = both ? isDiffWidth || isDiffHeight : horizontal ? isDiffWidth : vertical ? isDiffHeight : false;\n if (reinit) {\n _this10.d_numToleratedItems = _this10.numToleratedItems;\n _this10.defaultWidth = width;\n _this10.defaultHeight = height;\n _this10.defaultContentWidth = getWidth(_this10.content);\n _this10.defaultContentHeight = getHeight(_this10.content);\n _this10.init();\n }\n }\n }, this.resizeDelay);\n },\n bindResizeListener: function bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = this.onResize.bind(this);\n window.addEventListener('resize', this.resizeListener);\n window.addEventListener('orientationchange', this.resizeListener);\n }\n },\n unbindResizeListener: function unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n window.removeEventListener('orientationchange', this.resizeListener);\n this.resizeListener = null;\n }\n },\n getOptions: function getOptions(renderedIndex) {\n var count = (this.items || []).length;\n var index = this.isBoth() ? this.first.rows + renderedIndex : this.first + renderedIndex;\n return {\n index: index,\n count: count,\n first: index === 0,\n last: index === count - 1,\n even: index % 2 === 0,\n odd: index % 2 !== 0\n };\n },\n getLoaderOptions: function getLoaderOptions(index, extOptions) {\n var count = this.loaderArr.length;\n return _objectSpread({\n index: index,\n count: count,\n first: index === 0,\n last: index === count - 1,\n even: index % 2 === 0,\n odd: index % 2 !== 0\n }, extOptions);\n },\n getPageByFirst: function getPageByFirst(first) {\n return Math.floor(((first !== null && first !== void 0 ? first : this.first) + this.d_numToleratedItems * 4) / (this.step || 1));\n },\n isPageChanged: function isPageChanged(first) {\n return this.step ? this.page !== this.getPageByFirst(first !== null && first !== void 0 ? first : this.first) : true;\n },\n setContentEl: function setContentEl(el) {\n this.content = el || this.content || findSingle(this.element, '[data-pc-section=\"content\"]');\n },\n elementRef: function elementRef(el) {\n this.element = el;\n },\n contentRef: function contentRef(el) {\n this.content = el;\n }\n },\n computed: {\n containerClass: function containerClass() {\n return ['p-virtualscroller', this[\"class\"], {\n 'p-virtualscroller-inline': this.inline,\n 'p-virtualscroller-both p-both-scroll': this.isBoth(),\n 'p-virtualscroller-horizontal p-horizontal-scroll': this.isHorizontal()\n }];\n },\n contentClass: function contentClass() {\n return ['p-virtualscroller-content', {\n 'p-virtualscroller-loading': this.d_loading\n }];\n },\n loaderClass: function loaderClass() {\n return ['p-virtualscroller-loader', {\n 'p-virtualscroller-loader-mask': !this.$slots.loader\n }];\n },\n loadedItems: function loadedItems() {\n var _this11 = this;\n if (this.items && !this.d_loading) {\n if (this.isBoth()) return this.items.slice(this.appendOnly ? 0 : this.first.rows, this.last.rows).map(function (item) {\n return _this11.columns ? item : item.slice(_this11.appendOnly ? 0 : _this11.first.cols, _this11.last.cols);\n });else if (this.isHorizontal() && this.columns) return this.items;else return this.items.slice(this.appendOnly ? 0 : this.first, this.last);\n }\n return [];\n },\n loadedRows: function loadedRows() {\n return this.d_loading ? this.loaderDisabled ? this.loaderArr : [] : this.loadedItems;\n },\n loadedColumns: function loadedColumns() {\n if (this.columns) {\n var both = this.isBoth();\n var horizontal = this.isHorizontal();\n if (both || horizontal) {\n return this.d_loading && this.loaderDisabled ? both ? this.loaderArr[0] : this.loaderArr : this.columns.slice(both ? this.first.cols : this.first, both ? this.last.cols : this.last);\n }\n }\n return this.columns;\n }\n },\n components: {\n SpinnerIcon: SpinnerIcon\n }\n};\n\nvar _hoisted_1 = [\"tabindex\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_SpinnerIcon = resolveComponent(\"SpinnerIcon\");\n return !_ctx.disabled ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n ref: $options.elementRef,\n \"class\": $options.containerClass,\n tabindex: _ctx.tabindex,\n style: _ctx.style,\n onScroll: _cache[0] || (_cache[0] = function () {\n return $options.onScroll && $options.onScroll.apply($options, arguments);\n })\n }, _ctx.ptmi('root')), [renderSlot(_ctx.$slots, \"content\", {\n styleClass: $options.contentClass,\n items: $options.loadedItems,\n getItemOptions: $options.getOptions,\n loading: $data.d_loading,\n getLoaderOptions: $options.getLoaderOptions,\n itemSize: _ctx.itemSize,\n rows: $options.loadedRows,\n columns: $options.loadedColumns,\n contentRef: $options.contentRef,\n spacerStyle: $data.spacerStyle,\n contentStyle: $data.contentStyle,\n vertical: $options.isVertical(),\n horizontal: $options.isHorizontal(),\n both: $options.isBoth()\n }, function () {\n return [createElementVNode(\"div\", mergeProps({\n ref: $options.contentRef,\n \"class\": $options.contentClass,\n style: $data.contentStyle\n }, _ctx.ptm('content')), [(openBlock(true), createElementBlock(Fragment, null, renderList($options.loadedItems, function (item, index) {\n return renderSlot(_ctx.$slots, \"item\", {\n key: index,\n item: item,\n options: $options.getOptions(index)\n });\n }), 128))], 16)];\n }), _ctx.showSpacer ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n \"class\": \"p-virtualscroller-spacer\",\n style: $data.spacerStyle\n }, _ctx.ptm('spacer')), null, 16)) : createCommentVNode(\"\", true), !_ctx.loaderDisabled && _ctx.showLoader && $data.d_loading ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 1,\n \"class\": $options.loaderClass\n }, _ctx.ptm('loader')), [_ctx.$slots && _ctx.$slots.loader ? (openBlock(true), createElementBlock(Fragment, {\n key: 0\n }, renderList($data.loaderArr, function (_, index) {\n return renderSlot(_ctx.$slots, \"loader\", {\n key: index,\n options: $options.getLoaderOptions(index, $options.isBoth() && {\n numCols: _ctx.d_numItemsInViewport.cols\n })\n });\n }), 128)) : createCommentVNode(\"\", true), renderSlot(_ctx.$slots, \"loadingicon\", {}, function () {\n return [createVNode(_component_SpinnerIcon, mergeProps({\n spin: \"\",\n \"class\": \"p-virtualscroller-loading-icon\"\n }, _ctx.ptm('loadingIcon')), null, 16)];\n })], 16)) : createCommentVNode(\"\", true)], 16, _hoisted_1)) : (openBlock(), createElementBlock(Fragment, {\n key: 1\n }, [renderSlot(_ctx.$slots, \"default\"), renderSlot(_ctx.$slots, \"content\", {\n items: _ctx.items,\n rows: _ctx.items,\n columns: $options.loadedColumns\n })], 64));\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-listbox {\\n background: \".concat(dt('listbox.background'), \";\\n color: \").concat(dt('listbox.color'), \";\\n border: 1px solid \").concat(dt('listbox.border.color'), \";\\n border-radius: \").concat(dt('listbox.border.radius'), \";\\n transition: background \").concat(dt('listbox.transition.duration'), \", color \").concat(dt('listbox.transition.duration'), \", border-color \").concat(dt('listbox.transition.duration'), \",\\n box-shadow \").concat(dt('listbox.transition.duration'), \", outline-color \").concat(dt('listbox.transition.duration'), \";\\n outline-color: transparent;\\n box-shadow: \").concat(dt('listbox.shadow'), \";\\n}\\n\\n.p-listbox.p-focus {\\n border-color: \").concat(dt('listbox.focus.border.color'), \";\\n box-shadow: \").concat(dt('listbox.focus.ring.shadow'), \";\\n outline: \").concat(dt('listbox.focus.ring.width'), \" \").concat(dt('listbox.focus.ring.style'), \" \").concat(dt('listbox.focus.ring.color'), \";\\n outline-offset: \").concat(dt('listbox.focus.ring.offset'), \";\\n}\\n\\n.p-listbox.p-disabled {\\n opacity: 1;\\n background: \").concat(dt('listbox.disabled.background'), \";\\n color: \").concat(dt('listbox.disabled.color'), \";\\n}\\n\\n.p-listbox.p-disabled .p-listbox-option {\\n color: \").concat(dt('listbox.disabled.color'), \";\\n}\\n\\n.p-listbox.p-invalid {\\n border-color: \").concat(dt('listbox.invalid.border.color'), \";\\n}\\n\\n.p-listbox-header {\\n padding: \").concat(dt('listbox.list.header.padding'), \";\\n}\\n\\n.p-listbox-filter {\\n width: 100%;\\n}\\n\\n.p-listbox-list-container {\\n overflow: auto;\\n}\\n\\n.p-listbox-list {\\n list-style-type: none;\\n margin: 0;\\n padding: \").concat(dt('listbox.list.padding'), \";\\n outline: 0 none;\\n display: flex;\\n flex-direction: column;\\n gap: \").concat(dt('listbox.list.gap'), \";\\n}\\n\\n.p-listbox-option {\\n display: flex;\\n align-items: center;\\n cursor: pointer;\\n position: relative;\\n overflow: hidden;\\n padding: \").concat(dt('listbox.option.padding'), \";\\n border: 0 none;\\n border-radius: \").concat(dt('listbox.option.border.radius'), \";\\n color: \").concat(dt('listbox.option.color'), \";\\n transition: background \").concat(dt('listbox.transition.duration'), \", color \").concat(dt('listbox.transition.duration'), \", border-color \").concat(dt('listbox.transition.duration'), \",\\n box-shadow \").concat(dt('listbox.transition.duration'), \", outline-color \").concat(dt('listbox.transition.duration'), \";\\n}\\n\\n.p-listbox-striped li:nth-child(even of .p-listbox-option) {\\n background: \").concat(dt('listbox.option.striped.background'), \";\\n}\\n\\n.p-listbox .p-listbox-list .p-listbox-option.p-listbox-option-selected {\\n background: \").concat(dt('listbox.option.selected.background'), \";\\n color: \").concat(dt('listbox.option.selected.color'), \";\\n}\\n\\n.p-listbox:not(.p-disabled) .p-listbox-option.p-listbox-option-selected.p-focus {\\n background: \").concat(dt('listbox.option.selected.focus.background'), \";\\n color: \").concat(dt('listbox.option.selected.focus.color'), \";\\n}\\n\\n.p-listbox:not(.p-disabled) .p-listbox-option:not(.p-listbox-option-selected):not(.p-disabled).p-focus {\\n background: \").concat(dt('listbox.option.focus.background'), \";\\n color: \").concat(dt('listbox.option.focus.color'), \";\\n}\\n\\n.p-listbox:not(.p-disabled) .p-listbox-option:not(.p-listbox-option-selected):not(.p-disabled):hover {\\n background: \").concat(dt('listbox.option.focus.background'), \";\\n color: \").concat(dt('listbox.option.focus.color'), \";\\n}\\n\\n.p-listbox-option-check-icon {\\n position: relative;\\n margin-inline-start: \").concat(dt('listbox.checkmark.gutter.start'), \";\\n margin-inline-end: \").concat(dt('listbox.checkmark.gutter.end'), \";\\n color: \").concat(dt('listbox.checkmark.color'), \";\\n}\\n\\n.p-listbox-option-group {\\n margin: 0;\\n padding: \").concat(dt('listbox.option.group.padding'), \";\\n color: \").concat(dt('listbox.option.group.color'), \";\\n background: \").concat(dt('listbox.option.group.background'), \";\\n font-weight: \").concat(dt('listbox.option.group.font.weight'), \";\\n}\\n\\n.p-listbox-empty-message {\\n padding: \").concat(dt('listbox.empty.message.padding'), \";\\n}\\n\");\n};\nvar classes = {\n root: function root(_ref2) {\n var props = _ref2.props;\n return ['p-listbox p-component', {\n 'p-listbox-striped': props.striped,\n 'p-disabled': props.disabled,\n 'p-invalid': props.invalid\n }];\n },\n header: 'p-listbox-header',\n pcFilter: 'p-listbox-filter',\n listContainer: 'p-listbox-list-container',\n list: 'p-listbox-list',\n optionGroup: 'p-listbox-option-group',\n option: function option(_ref3) {\n var instance = _ref3.instance,\n props = _ref3.props,\n _option = _ref3.option,\n index = _ref3.index,\n getItemOptions = _ref3.getItemOptions;\n return ['p-listbox-option', {\n 'p-listbox-option-selected': instance.isSelected(_option) && props.highlightOnSelect,\n 'p-focus': instance.focusedOptionIndex === instance.getOptionIndex(index, getItemOptions),\n 'p-disabled': instance.isOptionDisabled(_option)\n }];\n },\n optionCheckIcon: 'p-listbox-option-check-icon',\n optionBlankIcon: 'p-listbox-option-blank-icon',\n emptyMessage: 'p-listbox-empty-message'\n};\nvar ListboxStyle = BaseStyle.extend({\n name: 'listbox',\n theme: theme,\n classes: classes\n});\n\nexport { ListboxStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { focus, getFirstFocusableElement, isElement, findSingle } from '@primeuix/utils/dom';\nimport { resolveFieldData, isPrintableCharacter, isNotEmpty, equals, findLastIndex } from '@primeuix/utils/object';\nimport { FilterService } from '@primevue/core/api';\nimport { UniqueComponentId } from '@primevue/core/utils';\nimport BlankIcon from '@primevue/icons/blank';\nimport CheckIcon from '@primevue/icons/check';\nimport SearchIcon from '@primevue/icons/search';\nimport IconField from 'primevue/iconfield';\nimport InputIcon from 'primevue/inputicon';\nimport InputText from 'primevue/inputtext';\nimport Ripple from 'primevue/ripple';\nimport VirtualScroller from 'primevue/virtualscroller';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport ListboxStyle from 'primevue/listbox/style';\nimport { resolveComponent, resolveDirective, openBlock, createElementBlock, mergeProps, createElementVNode, normalizeClass, renderSlot, createCommentVNode, createVNode, withCtx, createBlock, normalizeProps, toDisplayString, createSlots, Fragment, renderList, createTextVNode, withDirectives } from 'vue';\n\nvar script$1 = {\n name: 'BaseListbox',\n \"extends\": BaseComponent,\n props: {\n modelValue: null,\n options: Array,\n optionLabel: null,\n optionValue: null,\n optionDisabled: null,\n optionGroupLabel: null,\n optionGroupChildren: null,\n listStyle: null,\n scrollHeight: {\n type: String,\n \"default\": '14rem'\n },\n invalid: {\n type: Boolean,\n \"default\": false\n },\n disabled: {\n type: Boolean,\n \"default\": false\n },\n dataKey: null,\n multiple: {\n type: Boolean,\n \"default\": false\n },\n metaKeySelection: {\n type: Boolean,\n \"default\": false\n },\n filter: Boolean,\n filterPlaceholder: String,\n filterLocale: String,\n filterMatchMode: {\n type: String,\n \"default\": 'contains'\n },\n filterFields: {\n type: Array,\n \"default\": null\n },\n virtualScrollerOptions: {\n type: Object,\n \"default\": null\n },\n autoOptionFocus: {\n type: Boolean,\n \"default\": true\n },\n selectOnFocus: {\n type: Boolean,\n \"default\": false\n },\n focusOnHover: {\n type: Boolean,\n \"default\": true\n },\n highlightOnSelect: {\n type: Boolean,\n \"default\": true\n },\n checkmark: {\n type: Boolean,\n \"default\": false\n },\n filterMessage: {\n type: String,\n \"default\": null\n },\n selectionMessage: {\n type: String,\n \"default\": null\n },\n emptySelectionMessage: {\n type: String,\n \"default\": null\n },\n emptyFilterMessage: {\n type: String,\n \"default\": null\n },\n emptyMessage: {\n type: String,\n \"default\": null\n },\n filterIcon: {\n type: String,\n \"default\": undefined\n },\n striped: {\n type: Boolean,\n \"default\": false\n },\n tabindex: {\n type: Number,\n \"default\": 0\n },\n ariaLabel: {\n type: String,\n \"default\": null\n },\n ariaLabelledby: {\n type: String,\n \"default\": null\n }\n },\n style: ListboxStyle,\n provide: function provide() {\n return {\n $pcListbox: this,\n $parentInstance: this\n };\n }\n};\n\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nvar script = {\n name: 'Listbox',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['update:modelValue', 'change', 'focus', 'blur', 'filter', 'item-dblclick', 'option-dblclick'],\n list: null,\n virtualScroller: null,\n optionTouched: false,\n startRangeIndex: -1,\n searchTimeout: null,\n searchValue: '',\n data: function data() {\n return {\n id: this.$attrs.id,\n filterValue: null,\n focused: false,\n focusedOptionIndex: -1\n };\n },\n watch: {\n '$attrs.id': function $attrsId(newValue) {\n this.id = newValue || UniqueComponentId();\n },\n options: function options() {\n this.autoUpdateModel();\n }\n },\n mounted: function mounted() {\n this.id = this.id || UniqueComponentId();\n this.autoUpdateModel();\n },\n methods: {\n getOptionIndex: function getOptionIndex(index, fn) {\n return this.virtualScrollerDisabled ? index : fn && fn(index)['index'];\n },\n getOptionLabel: function getOptionLabel(option) {\n return this.optionLabel ? resolveFieldData(option, this.optionLabel) : typeof option === 'string' ? option : null;\n },\n getOptionValue: function getOptionValue(option) {\n return this.optionValue ? resolveFieldData(option, this.optionValue) : option;\n },\n getOptionRenderKey: function getOptionRenderKey(option, index) {\n return (this.dataKey ? resolveFieldData(option, this.dataKey) : this.getOptionLabel(option)) + '_' + index;\n },\n getPTOptions: function getPTOptions(option, itemOptions, index, key) {\n return this.ptm(key, {\n context: {\n selected: this.isSelected(option),\n focused: this.focusedOptionIndex === this.getOptionIndex(index, itemOptions),\n disabled: this.isOptionDisabled(option)\n }\n });\n },\n isOptionDisabled: function isOptionDisabled(option) {\n return this.optionDisabled ? resolveFieldData(option, this.optionDisabled) : false;\n },\n isOptionGroup: function isOptionGroup(option) {\n return this.optionGroupLabel && option.optionGroup && option.group;\n },\n getOptionGroupLabel: function getOptionGroupLabel(optionGroup) {\n return resolveFieldData(optionGroup, this.optionGroupLabel);\n },\n getOptionGroupChildren: function getOptionGroupChildren(optionGroup) {\n return resolveFieldData(optionGroup, this.optionGroupChildren);\n },\n getAriaPosInset: function getAriaPosInset(index) {\n var _this = this;\n return (this.optionGroupLabel ? index - this.visibleOptions.slice(0, index).filter(function (option) {\n return _this.isOptionGroup(option);\n }).length : index) + 1;\n },\n onFirstHiddenFocus: function onFirstHiddenFocus() {\n focus(this.list);\n var firstFocusableEl = getFirstFocusableElement(this.$el, ':not([data-p-hidden-focusable=\"true\"])');\n this.$refs.lastHiddenFocusableElement.tabIndex = isElement(firstFocusableEl) ? undefined : -1;\n this.$refs.firstHiddenFocusableElement.tabIndex = -1;\n },\n onLastHiddenFocus: function onLastHiddenFocus(event) {\n var relatedTarget = event.relatedTarget;\n if (relatedTarget === this.list) {\n var firstFocusableEl = getFirstFocusableElement(this.$el, ':not([data-p-hidden-focusable=\"true\"])');\n focus(firstFocusableEl);\n this.$refs.firstHiddenFocusableElement.tabIndex = undefined;\n } else {\n focus(this.$refs.firstHiddenFocusableElement);\n }\n this.$refs.lastHiddenFocusableElement.tabIndex = -1;\n },\n onFocusout: function onFocusout(event) {\n if (!this.$el.contains(event.relatedTarget) && this.$refs.lastHiddenFocusableElement && this.$refs.firstHiddenFocusableElement) {\n this.$refs.lastHiddenFocusableElement.tabIndex = this.$refs.firstHiddenFocusableElement.tabIndex = undefined;\n }\n },\n onListFocus: function onListFocus(event) {\n this.focused = true;\n this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : this.findSelectedOptionIndex();\n this.autoUpdateModel();\n this.$emit('focus', event);\n },\n onListBlur: function onListBlur(event) {\n this.focused = false;\n this.focusedOptionIndex = this.startRangeIndex = -1;\n this.searchValue = '';\n this.$emit('blur', event);\n },\n onListKeyDown: function onListKeyDown(event) {\n var _this2 = this;\n var metaKey = event.metaKey || event.ctrlKey;\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n case 'Home':\n this.onHomeKey(event);\n break;\n case 'End':\n this.onEndKey(event);\n break;\n case 'PageDown':\n this.onPageDownKey(event);\n break;\n case 'PageUp':\n this.onPageUpKey(event);\n break;\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n this.onSpaceKey(event);\n break;\n case 'Tab':\n //NOOP\n break;\n case 'ShiftLeft':\n case 'ShiftRight':\n this.onShiftKey(event);\n break;\n default:\n if (this.multiple && event.code === 'KeyA' && metaKey) {\n var value = this.visibleOptions.filter(function (option) {\n return _this2.isValidOption(option);\n }).map(function (option) {\n return _this2.getOptionValue(option);\n });\n this.updateModel(event, value);\n event.preventDefault();\n break;\n }\n if (!metaKey && isPrintableCharacter(event.key)) {\n this.searchOptions(event, event.key);\n event.preventDefault();\n }\n break;\n }\n },\n onOptionSelect: function onOptionSelect(event, option) {\n var index = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : -1;\n if (this.disabled || this.isOptionDisabled(option)) {\n return;\n }\n this.multiple ? this.onOptionSelectMultiple(event, option) : this.onOptionSelectSingle(event, option);\n this.optionTouched = false;\n index !== -1 && (this.focusedOptionIndex = index);\n },\n onOptionMouseDown: function onOptionMouseDown(event, index) {\n this.changeFocusedOptionIndex(event, index);\n },\n onOptionMouseMove: function onOptionMouseMove(event, index) {\n if (this.focusOnHover && this.focused) {\n this.changeFocusedOptionIndex(event, index);\n }\n },\n onOptionTouchEnd: function onOptionTouchEnd() {\n if (this.disabled) {\n return;\n }\n this.optionTouched = true;\n },\n onOptionDblClick: function onOptionDblClick(event, item) {\n this.$emit('item-dblclick', {\n originalEvent: event,\n value: item\n });\n this.$emit('option-dblclick', {\n originalEvent: event,\n value: item\n });\n },\n onOptionSelectSingle: function onOptionSelectSingle(event, option) {\n var selected = this.isSelected(option);\n var valueChanged = false;\n var value = null;\n var metaSelection = this.optionTouched ? false : this.metaKeySelection;\n if (metaSelection) {\n var metaKey = event && (event.metaKey || event.ctrlKey);\n if (selected) {\n if (metaKey) {\n value = null;\n valueChanged = true;\n }\n } else {\n value = this.getOptionValue(option);\n valueChanged = true;\n }\n } else {\n value = selected ? null : this.getOptionValue(option);\n valueChanged = true;\n }\n if (valueChanged) {\n this.updateModel(event, value);\n }\n },\n onOptionSelectMultiple: function onOptionSelectMultiple(event, option) {\n var selected = this.isSelected(option);\n var value = null;\n var metaSelection = this.optionTouched ? false : this.metaKeySelection;\n if (metaSelection) {\n var metaKey = event.metaKey || event.ctrlKey;\n if (selected) {\n value = metaKey ? this.removeOption(option) : [this.getOptionValue(option)];\n } else {\n value = metaKey ? this.modelValue || [] : [];\n value = [].concat(_toConsumableArray(value), [this.getOptionValue(option)]);\n }\n } else {\n value = selected ? this.removeOption(option) : [].concat(_toConsumableArray(this.modelValue || []), [this.getOptionValue(option)]);\n }\n this.updateModel(event, value);\n },\n onOptionSelectRange: function onOptionSelectRange(event) {\n var _this3 = this;\n var start = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : -1;\n var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : -1;\n start === -1 && (start = this.findNearestSelectedOptionIndex(end, true));\n end === -1 && (end = this.findNearestSelectedOptionIndex(start));\n if (start !== -1 && end !== -1) {\n var rangeStart = Math.min(start, end);\n var rangeEnd = Math.max(start, end);\n var value = this.visibleOptions.slice(rangeStart, rangeEnd + 1).filter(function (option) {\n return _this3.isValidOption(option);\n }).map(function (option) {\n return _this3.getOptionValue(option);\n });\n this.updateModel(event, value);\n }\n },\n onFilterChange: function onFilterChange(event) {\n this.$emit('filter', {\n originalEvent: event,\n value: event.target.value\n });\n this.focusedOptionIndex = this.startRangeIndex = -1;\n },\n onFilterBlur: function onFilterBlur() {\n this.focusedOptionIndex = this.startRangeIndex = -1;\n },\n onFilterKeyDown: function onFilterKeyDown(event) {\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n case 'ArrowLeft':\n case 'ArrowRight':\n this.onArrowLeftKey(event, true);\n break;\n case 'Home':\n this.onHomeKey(event, true);\n break;\n case 'End':\n this.onEndKey(event, true);\n break;\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n case 'ShiftLeft':\n case 'ShiftRight':\n this.onShiftKey(event);\n break;\n }\n },\n onArrowDownKey: function onArrowDownKey(event) {\n var optionIndex = this.focusedOptionIndex !== -1 ? this.findNextOptionIndex(this.focusedOptionIndex) : this.findFirstFocusedOptionIndex();\n if (this.multiple && event.shiftKey) {\n this.onOptionSelectRange(event, this.startRangeIndex, optionIndex);\n }\n this.changeFocusedOptionIndex(event, optionIndex);\n event.preventDefault();\n },\n onArrowUpKey: function onArrowUpKey(event) {\n var optionIndex = this.focusedOptionIndex !== -1 ? this.findPrevOptionIndex(this.focusedOptionIndex) : this.findLastFocusedOptionIndex();\n if (this.multiple && event.shiftKey) {\n this.onOptionSelectRange(event, optionIndex, this.startRangeIndex);\n }\n this.changeFocusedOptionIndex(event, optionIndex);\n event.preventDefault();\n },\n onArrowLeftKey: function onArrowLeftKey(event) {\n var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n pressedInInputText && (this.focusedOptionIndex = -1);\n },\n onHomeKey: function onHomeKey(event) {\n var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (pressedInInputText) {\n var target = event.currentTarget;\n if (event.shiftKey) {\n target.setSelectionRange(0, event.target.selectionStart);\n } else {\n target.setSelectionRange(0, 0);\n this.focusedOptionIndex = -1;\n }\n } else {\n var metaKey = event.metaKey || event.ctrlKey;\n var optionIndex = this.findFirstOptionIndex();\n if (this.multiple && event.shiftKey && metaKey) {\n this.onOptionSelectRange(event, optionIndex, this.startRangeIndex);\n }\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n event.preventDefault();\n },\n onEndKey: function onEndKey(event) {\n var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (pressedInInputText) {\n var target = event.currentTarget;\n if (event.shiftKey) {\n target.setSelectionRange(event.target.selectionStart, target.value.length);\n } else {\n var len = target.value.length;\n target.setSelectionRange(len, len);\n this.focusedOptionIndex = -1;\n }\n } else {\n var metaKey = event.metaKey || event.ctrlKey;\n var optionIndex = this.findLastOptionIndex();\n if (this.multiple && event.shiftKey && metaKey) {\n this.onOptionSelectRange(event, this.startRangeIndex, optionIndex);\n }\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n event.preventDefault();\n },\n onPageUpKey: function onPageUpKey(event) {\n this.scrollInView(0);\n event.preventDefault();\n },\n onPageDownKey: function onPageDownKey(event) {\n this.scrollInView(this.visibleOptions.length - 1);\n event.preventDefault();\n },\n onEnterKey: function onEnterKey(event) {\n if (this.focusedOptionIndex !== -1) {\n if (this.multiple && event.shiftKey) this.onOptionSelectRange(event, this.focusedOptionIndex);else this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n },\n onSpaceKey: function onSpaceKey(event) {\n event.preventDefault();\n this.onEnterKey(event);\n },\n onShiftKey: function onShiftKey() {\n this.startRangeIndex = this.focusedOptionIndex;\n },\n isOptionMatched: function isOptionMatched(option) {\n var _this$getOptionLabel;\n return this.isValidOption(option) && typeof this.getOptionLabel(option) === 'string' && ((_this$getOptionLabel = this.getOptionLabel(option)) === null || _this$getOptionLabel === void 0 ? void 0 : _this$getOptionLabel.toLocaleLowerCase(this.filterLocale).startsWith(this.searchValue.toLocaleLowerCase(this.filterLocale)));\n },\n isValidOption: function isValidOption(option) {\n return isNotEmpty(option) && !(this.isOptionDisabled(option) || this.isOptionGroup(option));\n },\n isValidSelectedOption: function isValidSelectedOption(option) {\n return this.isValidOption(option) && this.isSelected(option);\n },\n isEquals: function isEquals(value1, value2) {\n return equals(value1, value2, this.equalityKey);\n },\n isSelected: function isSelected(option) {\n var _this4 = this;\n var optionValue = this.getOptionValue(option);\n if (this.multiple) return (this.modelValue || []).some(function (value) {\n return _this4.isEquals(value, optionValue);\n });else return this.isEquals(this.modelValue, optionValue);\n },\n findFirstOptionIndex: function findFirstOptionIndex() {\n var _this5 = this;\n return this.visibleOptions.findIndex(function (option) {\n return _this5.isValidOption(option);\n });\n },\n findLastOptionIndex: function findLastOptionIndex() {\n var _this6 = this;\n return findLastIndex(this.visibleOptions, function (option) {\n return _this6.isValidOption(option);\n });\n },\n findNextOptionIndex: function findNextOptionIndex(index) {\n var _this7 = this;\n var matchedOptionIndex = index < this.visibleOptions.length - 1 ? this.visibleOptions.slice(index + 1).findIndex(function (option) {\n return _this7.isValidOption(option);\n }) : -1;\n return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : index;\n },\n findPrevOptionIndex: function findPrevOptionIndex(index) {\n var _this8 = this;\n var matchedOptionIndex = index > 0 ? findLastIndex(this.visibleOptions.slice(0, index), function (option) {\n return _this8.isValidOption(option);\n }) : -1;\n return matchedOptionIndex > -1 ? matchedOptionIndex : index;\n },\n findSelectedOptionIndex: function findSelectedOptionIndex() {\n var _this9 = this;\n if (this.hasSelectedOption) {\n if (this.multiple) {\n var _loop = function _loop() {\n var value = _this9.modelValue[index];\n var matchedOptionIndex = _this9.visibleOptions.findIndex(function (option) {\n return _this9.isValidSelectedOption(option) && _this9.isEquals(value, _this9.getOptionValue(option));\n });\n if (matchedOptionIndex > -1) return {\n v: matchedOptionIndex\n };\n },\n _ret;\n for (var index = this.modelValue.length - 1; index >= 0; index--) {\n _ret = _loop();\n if (_ret) return _ret.v;\n }\n } else {\n return this.visibleOptions.findIndex(function (option) {\n return _this9.isValidSelectedOption(option);\n });\n }\n }\n return -1;\n },\n findFirstSelectedOptionIndex: function findFirstSelectedOptionIndex() {\n var _this10 = this;\n return this.hasSelectedOption ? this.visibleOptions.findIndex(function (option) {\n return _this10.isValidSelectedOption(option);\n }) : -1;\n },\n findLastSelectedOptionIndex: function findLastSelectedOptionIndex() {\n var _this11 = this;\n return this.hasSelectedOption ? findLastIndex(this.visibleOptions, function (option) {\n return _this11.isValidSelectedOption(option);\n }) : -1;\n },\n findNextSelectedOptionIndex: function findNextSelectedOptionIndex(index) {\n var _this12 = this;\n var matchedOptionIndex = this.hasSelectedOption && index < this.visibleOptions.length - 1 ? this.visibleOptions.slice(index + 1).findIndex(function (option) {\n return _this12.isValidSelectedOption(option);\n }) : -1;\n return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : -1;\n },\n findPrevSelectedOptionIndex: function findPrevSelectedOptionIndex(index) {\n var _this13 = this;\n var matchedOptionIndex = this.hasSelectedOption && index > 0 ? findLastIndex(this.visibleOptions.slice(0, index), function (option) {\n return _this13.isValidSelectedOption(option);\n }) : -1;\n return matchedOptionIndex > -1 ? matchedOptionIndex : -1;\n },\n findNearestSelectedOptionIndex: function findNearestSelectedOptionIndex(index) {\n var firstCheckUp = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var matchedOptionIndex = -1;\n if (this.hasSelectedOption) {\n if (firstCheckUp) {\n matchedOptionIndex = this.findPrevSelectedOptionIndex(index);\n matchedOptionIndex = matchedOptionIndex === -1 ? this.findNextSelectedOptionIndex(index) : matchedOptionIndex;\n } else {\n matchedOptionIndex = this.findNextSelectedOptionIndex(index);\n matchedOptionIndex = matchedOptionIndex === -1 ? this.findPrevSelectedOptionIndex(index) : matchedOptionIndex;\n }\n }\n return matchedOptionIndex > -1 ? matchedOptionIndex : index;\n },\n findFirstFocusedOptionIndex: function findFirstFocusedOptionIndex() {\n var selectedIndex = this.findFirstSelectedOptionIndex();\n return selectedIndex < 0 ? this.findFirstOptionIndex() : selectedIndex;\n },\n findLastFocusedOptionIndex: function findLastFocusedOptionIndex() {\n var selectedIndex = this.findLastSelectedOptionIndex();\n return selectedIndex < 0 ? this.findLastOptionIndex() : selectedIndex;\n },\n searchOptions: function searchOptions(event, _char) {\n var _this14 = this;\n this.searchValue = (this.searchValue || '') + _char;\n var optionIndex = -1;\n if (isNotEmpty(this.searchValue)) {\n if (this.focusedOptionIndex !== -1) {\n optionIndex = this.visibleOptions.slice(this.focusedOptionIndex).findIndex(function (option) {\n return _this14.isOptionMatched(option);\n });\n optionIndex = optionIndex === -1 ? this.visibleOptions.slice(0, this.focusedOptionIndex).findIndex(function (option) {\n return _this14.isOptionMatched(option);\n }) : optionIndex + this.focusedOptionIndex;\n } else {\n optionIndex = this.visibleOptions.findIndex(function (option) {\n return _this14.isOptionMatched(option);\n });\n }\n if (optionIndex === -1 && this.focusedOptionIndex === -1) {\n optionIndex = this.findFirstFocusedOptionIndex();\n }\n if (optionIndex !== -1) {\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n }\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n this.searchTimeout = setTimeout(function () {\n _this14.searchValue = '';\n _this14.searchTimeout = null;\n }, 500);\n },\n removeOption: function removeOption(option) {\n var _this15 = this;\n return this.modelValue.filter(function (val) {\n return !equals(val, _this15.getOptionValue(option), _this15.equalityKey);\n });\n },\n changeFocusedOptionIndex: function changeFocusedOptionIndex(event, index) {\n if (this.focusedOptionIndex !== index) {\n this.focusedOptionIndex = index;\n this.scrollInView();\n if (this.selectOnFocus && !this.multiple) {\n this.onOptionSelect(event, this.visibleOptions[index]);\n }\n }\n },\n scrollInView: function scrollInView() {\n var _this16 = this;\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1;\n this.$nextTick(function () {\n var id = index !== -1 ? \"\".concat(_this16.id, \"_\").concat(index) : _this16.focusedOptionId;\n var element = findSingle(_this16.list, \"li[id=\\\"\".concat(id, \"\\\"]\"));\n if (element) {\n element.scrollIntoView && element.scrollIntoView({\n block: 'nearest',\n inline: 'nearest',\n behavior: 'smooth'\n });\n } else if (!_this16.virtualScrollerDisabled) {\n _this16.virtualScroller && _this16.virtualScroller.scrollToIndex(index !== -1 ? index : _this16.focusedOptionIndex);\n }\n });\n },\n autoUpdateModel: function autoUpdateModel() {\n if (this.selectOnFocus && this.autoOptionFocus && !this.hasSelectedOption && !this.multiple && this.focused) {\n this.focusedOptionIndex = this.findFirstFocusedOptionIndex();\n this.onOptionSelect(null, this.visibleOptions[this.focusedOptionIndex]);\n }\n },\n updateModel: function updateModel(event, value) {\n this.$emit('update:modelValue', value);\n this.$emit('change', {\n originalEvent: event,\n value: value\n });\n },\n flatOptions: function flatOptions(options) {\n var _this17 = this;\n return (options || []).reduce(function (result, option, index) {\n result.push({\n optionGroup: option,\n group: true,\n index: index\n });\n var optionGroupChildren = _this17.getOptionGroupChildren(option);\n optionGroupChildren && optionGroupChildren.forEach(function (o) {\n return result.push(o);\n });\n return result;\n }, []);\n },\n listRef: function listRef(el, contentRef) {\n this.list = el;\n contentRef && contentRef(el); // For VirtualScroller\n },\n virtualScrollerRef: function virtualScrollerRef(el) {\n this.virtualScroller = el;\n }\n },\n computed: {\n visibleOptions: function visibleOptions() {\n var options = this.optionGroupLabel ? this.flatOptions(this.options) : this.options || [];\n return this.filterValue ? FilterService.filter(options, this.searchFields, this.filterValue, this.filterMatchMode, this.filterLocale) : options;\n },\n hasSelectedOption: function hasSelectedOption() {\n return isNotEmpty(this.modelValue);\n },\n equalityKey: function equalityKey() {\n return this.optionValue ? null : this.dataKey;\n },\n searchFields: function searchFields() {\n return this.filterFields || [this.optionLabel];\n },\n filterResultMessageText: function filterResultMessageText() {\n return isNotEmpty(this.visibleOptions) ? this.filterMessageText.replaceAll('{0}', this.visibleOptions.length) : this.emptyFilterMessageText;\n },\n filterMessageText: function filterMessageText() {\n return this.filterMessage || this.$primevue.config.locale.searchMessage || '';\n },\n emptyFilterMessageText: function emptyFilterMessageText() {\n return this.emptyFilterMessage || this.$primevue.config.locale.emptySearchMessage || this.$primevue.config.locale.emptyFilterMessage || '';\n },\n emptyMessageText: function emptyMessageText() {\n return this.emptyMessage || this.$primevue.config.locale.emptyMessage || '';\n },\n selectionMessageText: function selectionMessageText() {\n return this.selectionMessage || this.$primevue.config.locale.selectionMessage || '';\n },\n emptySelectionMessageText: function emptySelectionMessageText() {\n return this.emptySelectionMessage || this.$primevue.config.locale.emptySelectionMessage || '';\n },\n selectedMessageText: function selectedMessageText() {\n return this.hasSelectedOption ? this.selectionMessageText.replaceAll('{0}', this.multiple ? this.modelValue.length : '1') : this.emptySelectionMessageText;\n },\n focusedOptionId: function focusedOptionId() {\n return this.focusedOptionIndex !== -1 ? \"\".concat(this.id, \"_\").concat(this.focusedOptionIndex) : null;\n },\n ariaSetSize: function ariaSetSize() {\n var _this18 = this;\n return this.visibleOptions.filter(function (option) {\n return !_this18.isOptionGroup(option);\n }).length;\n },\n virtualScrollerDisabled: function virtualScrollerDisabled() {\n return !this.virtualScrollerOptions;\n }\n },\n directives: {\n ripple: Ripple\n },\n components: {\n InputText: InputText,\n VirtualScroller: VirtualScroller,\n InputIcon: InputIcon,\n IconField: IconField,\n SearchIcon: SearchIcon,\n CheckIcon: CheckIcon,\n BlankIcon: BlankIcon\n }\n};\n\nvar _hoisted_1 = [\"id\"];\nvar _hoisted_2 = [\"tabindex\"];\nvar _hoisted_3 = [\"id\", \"aria-multiselectable\", \"aria-label\", \"aria-labelledby\", \"aria-activedescendant\", \"aria-disabled\"];\nvar _hoisted_4 = [\"id\"];\nvar _hoisted_5 = [\"id\", \"aria-label\", \"aria-selected\", \"aria-disabled\", \"aria-setsize\", \"aria-posinset\", \"onClick\", \"onMousedown\", \"onMousemove\", \"onDblclick\", \"data-p-selected\", \"data-p-focused\", \"data-p-disabled\"];\nvar _hoisted_6 = [\"tabindex\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_InputText = resolveComponent(\"InputText\");\n var _component_SearchIcon = resolveComponent(\"SearchIcon\");\n var _component_InputIcon = resolveComponent(\"InputIcon\");\n var _component_IconField = resolveComponent(\"IconField\");\n var _component_CheckIcon = resolveComponent(\"CheckIcon\");\n var _component_BlankIcon = resolveComponent(\"BlankIcon\");\n var _component_VirtualScroller = resolveComponent(\"VirtualScroller\");\n var _directive_ripple = resolveDirective(\"ripple\");\n return openBlock(), createElementBlock(\"div\", mergeProps({\n id: $data.id,\n \"class\": _ctx.cx('root'),\n onFocusout: _cache[7] || (_cache[7] = function () {\n return $options.onFocusout && $options.onFocusout.apply($options, arguments);\n })\n }, _ctx.ptmi('root')), [createElementVNode(\"span\", mergeProps({\n ref: \"firstHiddenFocusableElement\",\n role: \"presentation\",\n \"aria-hidden\": \"true\",\n \"class\": \"p-hidden-accessible p-hidden-focusable\",\n tabindex: !_ctx.disabled ? _ctx.tabindex : -1,\n onFocus: _cache[0] || (_cache[0] = function () {\n return $options.onFirstHiddenFocus && $options.onFirstHiddenFocus.apply($options, arguments);\n })\n }, _ctx.ptm('hiddenFirstFocusableEl'), {\n \"data-p-hidden-accessible\": true,\n \"data-p-hidden-focusable\": true\n }), null, 16, _hoisted_2), _ctx.$slots.header ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n \"class\": normalizeClass(_ctx.cx('header'))\n }, [renderSlot(_ctx.$slots, \"header\", {\n value: _ctx.modelValue,\n options: $options.visibleOptions\n })], 2)) : createCommentVNode(\"\", true), _ctx.filter ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 1,\n \"class\": _ctx.cx('header')\n }, _ctx.ptm('header')), [createVNode(_component_IconField, {\n unstyled: _ctx.unstyled,\n pt: _ctx.ptm('pcFilterContainer')\n }, {\n \"default\": withCtx(function () {\n return [createVNode(_component_InputText, {\n modelValue: $data.filterValue,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = function ($event) {\n return $data.filterValue = $event;\n }),\n type: \"text\",\n \"class\": normalizeClass(_ctx.cx('pcFilter')),\n placeholder: _ctx.filterPlaceholder,\n role: \"searchbox\",\n autocomplete: \"off\",\n disabled: _ctx.disabled,\n unstyled: _ctx.unstyled,\n \"aria-owns\": $data.id + '_list',\n \"aria-activedescendant\": $options.focusedOptionId,\n tabindex: !_ctx.disabled && !$data.focused ? _ctx.tabindex : -1,\n onInput: $options.onFilterChange,\n onBlur: $options.onFilterBlur,\n onKeydown: $options.onFilterKeyDown,\n pt: _ctx.ptm('pcFilter')\n }, null, 8, [\"modelValue\", \"class\", \"placeholder\", \"disabled\", \"unstyled\", \"aria-owns\", \"aria-activedescendant\", \"tabindex\", \"onInput\", \"onBlur\", \"onKeydown\", \"pt\"]), createVNode(_component_InputIcon, mergeProps({\n unstyled: _ctx.unstyled\n }, _ctx.ptm('pcFilterIconContainer')), {\n \"default\": withCtx(function () {\n return [renderSlot(_ctx.$slots, \"filtericon\", {}, function () {\n return [_ctx.filterIcon ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 0,\n \"class\": _ctx.filterIcon\n }, _ctx.ptm('filterIcon')), null, 16)) : (openBlock(), createBlock(_component_SearchIcon, normalizeProps(mergeProps({\n key: 1\n }, _ctx.ptm('filterIcon'))), null, 16))];\n })];\n }),\n _: 3\n }, 16, [\"unstyled\"])];\n }),\n _: 3\n }, 8, [\"unstyled\", \"pt\"]), createElementVNode(\"span\", mergeProps({\n role: \"status\",\n \"aria-live\": \"polite\",\n \"class\": \"p-hidden-accessible\"\n }, _ctx.ptm('hiddenFilterResult'), {\n \"data-p-hidden-accessible\": true\n }), toDisplayString($options.filterResultMessageText), 17)], 16)) : createCommentVNode(\"\", true), createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('listContainer'),\n style: [{\n 'max-height': $options.virtualScrollerDisabled ? _ctx.scrollHeight : ''\n }, _ctx.listStyle]\n }, _ctx.ptm('listContainer')), [createVNode(_component_VirtualScroller, mergeProps({\n ref: $options.virtualScrollerRef\n }, _ctx.virtualScrollerOptions, {\n items: $options.visibleOptions,\n style: [{\n height: _ctx.scrollHeight\n }, _ctx.listStyle],\n tabindex: -1,\n disabled: $options.virtualScrollerDisabled,\n pt: _ctx.ptm('virtualScroller')\n }), createSlots({\n content: withCtx(function (_ref) {\n var styleClass = _ref.styleClass,\n contentRef = _ref.contentRef,\n items = _ref.items,\n getItemOptions = _ref.getItemOptions,\n contentStyle = _ref.contentStyle,\n itemSize = _ref.itemSize;\n return [createElementVNode(\"ul\", mergeProps({\n ref: function ref(el) {\n return $options.listRef(el, contentRef);\n },\n id: $data.id + '_list',\n \"class\": [_ctx.cx('list'), styleClass],\n style: contentStyle,\n tabindex: -1,\n role: \"listbox\",\n \"aria-multiselectable\": _ctx.multiple,\n \"aria-label\": _ctx.ariaLabel,\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-activedescendant\": $data.focused ? $options.focusedOptionId : undefined,\n \"aria-disabled\": _ctx.disabled,\n onFocus: _cache[3] || (_cache[3] = function () {\n return $options.onListFocus && $options.onListFocus.apply($options, arguments);\n }),\n onBlur: _cache[4] || (_cache[4] = function () {\n return $options.onListBlur && $options.onListBlur.apply($options, arguments);\n }),\n onKeydown: _cache[5] || (_cache[5] = function () {\n return $options.onListKeyDown && $options.onListKeyDown.apply($options, arguments);\n })\n }, _ctx.ptm('list')), [(openBlock(true), createElementBlock(Fragment, null, renderList(items, function (option, i) {\n return openBlock(), createElementBlock(Fragment, {\n key: $options.getOptionRenderKey(option, $options.getOptionIndex(i, getItemOptions))\n }, [$options.isOptionGroup(option) ? (openBlock(), createElementBlock(\"li\", mergeProps({\n key: 0,\n id: $data.id + '_' + $options.getOptionIndex(i, getItemOptions),\n style: {\n height: itemSize ? itemSize + 'px' : undefined\n },\n \"class\": _ctx.cx('optionGroup'),\n role: \"option\",\n ref_for: true\n }, _ctx.ptm('optionGroup')), [renderSlot(_ctx.$slots, \"optiongroup\", {\n option: option.optionGroup,\n index: $options.getOptionIndex(i, getItemOptions)\n }, function () {\n return [createTextVNode(toDisplayString($options.getOptionGroupLabel(option.optionGroup)), 1)];\n })], 16, _hoisted_4)) : withDirectives((openBlock(), createElementBlock(\"li\", mergeProps({\n key: 1,\n id: $data.id + '_' + $options.getOptionIndex(i, getItemOptions),\n style: {\n height: itemSize ? itemSize + 'px' : undefined\n },\n \"class\": _ctx.cx('option', {\n option: option,\n index: i,\n getItemOptions: getItemOptions\n }),\n role: \"option\",\n \"aria-label\": $options.getOptionLabel(option),\n \"aria-selected\": $options.isSelected(option),\n \"aria-disabled\": $options.isOptionDisabled(option),\n \"aria-setsize\": $options.ariaSetSize,\n \"aria-posinset\": $options.getAriaPosInset($options.getOptionIndex(i, getItemOptions)),\n onClick: function onClick($event) {\n return $options.onOptionSelect($event, option, $options.getOptionIndex(i, getItemOptions));\n },\n onMousedown: function onMousedown($event) {\n return $options.onOptionMouseDown($event, $options.getOptionIndex(i, getItemOptions));\n },\n onMousemove: function onMousemove($event) {\n return $options.onOptionMouseMove($event, $options.getOptionIndex(i, getItemOptions));\n },\n onTouchend: _cache[2] || (_cache[2] = function ($event) {\n return $options.onOptionTouchEnd();\n }),\n onDblclick: function onDblclick($event) {\n return $options.onOptionDblClick($event, option);\n },\n ref_for: true\n }, $options.getPTOptions(option, getItemOptions, i, 'option'), {\n \"data-p-selected\": $options.isSelected(option),\n \"data-p-focused\": $data.focusedOptionIndex === $options.getOptionIndex(i, getItemOptions),\n \"data-p-disabled\": $options.isOptionDisabled(option)\n }), [_ctx.checkmark ? (openBlock(), createElementBlock(Fragment, {\n key: 0\n }, [$options.isSelected(option) ? (openBlock(), createBlock(_component_CheckIcon, mergeProps({\n key: 0,\n \"class\": _ctx.cx('optionCheckIcon'),\n ref_for: true\n }, _ctx.ptm('optionCheckIcon')), null, 16, [\"class\"])) : (openBlock(), createBlock(_component_BlankIcon, mergeProps({\n key: 1,\n \"class\": _ctx.cx('optionBlankIcon'),\n ref_for: true\n }, _ctx.ptm('optionBlankIcon')), null, 16, [\"class\"]))], 64)) : createCommentVNode(\"\", true), renderSlot(_ctx.$slots, \"option\", {\n option: option,\n selected: $options.isSelected(option),\n index: $options.getOptionIndex(i, getItemOptions)\n }, function () {\n return [createTextVNode(toDisplayString($options.getOptionLabel(option)), 1)];\n })], 16, _hoisted_5)), [[_directive_ripple]])], 64);\n }), 128)), $data.filterValue && (!items || items && items.length === 0) ? (openBlock(), createElementBlock(\"li\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('emptyMessage'),\n role: \"option\"\n }, _ctx.ptm('emptyMessage')), [renderSlot(_ctx.$slots, \"emptyfilter\", {}, function () {\n return [createTextVNode(toDisplayString($options.emptyFilterMessageText), 1)];\n })], 16)) : !_ctx.options || _ctx.options && _ctx.options.length === 0 ? (openBlock(), createElementBlock(\"li\", mergeProps({\n key: 1,\n \"class\": _ctx.cx('emptyMessage'),\n role: \"option\"\n }, _ctx.ptm('emptyMessage')), [renderSlot(_ctx.$slots, \"empty\", {}, function () {\n return [createTextVNode(toDisplayString($options.emptyMessageText), 1)];\n })], 16)) : createCommentVNode(\"\", true)], 16, _hoisted_3)];\n }),\n _: 2\n }, [_ctx.$slots.loader ? {\n name: \"loader\",\n fn: withCtx(function (_ref2) {\n var options = _ref2.options;\n return [renderSlot(_ctx.$slots, \"loader\", {\n options: options\n })];\n }),\n key: \"0\"\n } : undefined]), 1040, [\"items\", \"style\", \"disabled\", \"pt\"])], 16), renderSlot(_ctx.$slots, \"footer\", {\n value: _ctx.modelValue,\n options: $options.visibleOptions\n }), !_ctx.options || _ctx.options && _ctx.options.length === 0 ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 2,\n role: \"status\",\n \"aria-live\": \"polite\",\n \"class\": \"p-hidden-accessible\"\n }, _ctx.ptm('hiddenEmptyMessage'), {\n \"data-p-hidden-accessible\": true\n }), toDisplayString($options.emptyMessageText), 17)) : createCommentVNode(\"\", true), createElementVNode(\"span\", mergeProps({\n role: \"status\",\n \"aria-live\": \"polite\",\n \"class\": \"p-hidden-accessible\"\n }, _ctx.ptm('hiddenSelectedMessage'), {\n \"data-p-hidden-accessible\": true\n }), toDisplayString($options.selectedMessageText), 17), createElementVNode(\"span\", mergeProps({\n ref: \"lastHiddenFocusableElement\",\n role: \"presentation\",\n \"aria-hidden\": \"true\",\n \"class\": \"p-hidden-accessible p-hidden-focusable\",\n tabindex: !_ctx.disabled ? _ctx.tabindex : -1,\n onFocus: _cache[6] || (_cache[6] = function () {\n return $options.onLastHiddenFocus && $options.onLastHiddenFocus.apply($options, arguments);\n })\n }, _ctx.ptm('hiddenLastFocusableEl'), {\n \"data-p-hidden-accessible\": true,\n \"data-p-hidden-focusable\": true\n }), null, 16, _hoisted_6)], 16, _hoisted_1);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n\n\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-progressbar {\\n position: relative;\\n overflow: hidden;\\n height: \".concat(dt('progressbar.height'), \";\\n background: \").concat(dt('progressbar.background'), \";\\n border-radius: \").concat(dt('progressbar.border.radius'), \";\\n}\\n\\n.p-progressbar-value {\\n margin: 0;\\n background: \").concat(dt('progressbar.value.background'), \";\\n}\\n\\n.p-progressbar-label {\\n color: \").concat(dt('progressbar.label.color'), \";\\n font-size: \").concat(dt('progressbar.label.font.size'), \";\\n font-weight: \").concat(dt('progressbar.label.font.weight'), \";\\n}\\n\\n.p-progressbar-determinate .p-progressbar-value {\\n height: 100%;\\n width: 0%;\\n position: absolute;\\n display: none;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n overflow: hidden;\\n transition: width 1s ease-in-out;\\n}\\n\\n.p-progressbar-determinate .p-progressbar-label {\\n display: inline-flex;\\n}\\n\\n.p-progressbar-indeterminate .p-progressbar-value::before {\\n content: \\\"\\\";\\n position: absolute;\\n background: inherit;\\n top: 0;\\n left: 0;\\n bottom: 0;\\n will-change: left, right;\\n animation: p-progressbar-indeterminate-anim 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;\\n}\\n\\n.p-progressbar-indeterminate .p-progressbar-value::after {\\n content: \\\"\\\";\\n position: absolute;\\n background: inherit;\\n top: 0;\\n left: 0;\\n bottom: 0;\\n will-change: left, right;\\n animation: p-progressbar-indeterminate-anim-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;\\n animation-delay: 1.15s;\\n}\\n\\n@-webkit-keyframes p-progressbar-indeterminate-anim {\\n 0% {\\n left: -35%;\\n right: 100%;\\n }\\n 60% {\\n left: 100%;\\n right: -90%;\\n }\\n 100% {\\n left: 100%;\\n right: -90%;\\n }\\n}\\n@keyframes p-progressbar-indeterminate-anim {\\n 0% {\\n left: -35%;\\n right: 100%;\\n }\\n 60% {\\n left: 100%;\\n right: -90%;\\n }\\n 100% {\\n left: 100%;\\n right: -90%;\\n }\\n}\\n@-webkit-keyframes p-progressbar-indeterminate-anim-short {\\n 0% {\\n left: -200%;\\n right: 100%;\\n }\\n 60% {\\n left: 107%;\\n right: -8%;\\n }\\n 100% {\\n left: 107%;\\n right: -8%;\\n }\\n}\\n@keyframes p-progressbar-indeterminate-anim-short {\\n 0% {\\n left: -200%;\\n right: 100%;\\n }\\n 60% {\\n left: 107%;\\n right: -8%;\\n }\\n 100% {\\n left: 107%;\\n right: -8%;\\n }\\n}\\n\");\n};\nvar classes = {\n root: function root(_ref2) {\n var instance = _ref2.instance;\n return ['p-progressbar p-component', {\n 'p-progressbar-determinate': instance.determinate,\n 'p-progressbar-indeterminate': instance.indeterminate\n }];\n },\n value: 'p-progressbar-value',\n label: 'p-progressbar-label'\n};\nvar ProgressBarStyle = BaseStyle.extend({\n name: 'progressbar',\n theme: theme,\n classes: classes\n});\n\nexport { ProgressBarStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseComponent from '@primevue/core/basecomponent';\nimport ProgressBarStyle from 'primevue/progressbar/style';\nimport { openBlock, createElementBlock, mergeProps, renderSlot, createTextVNode, toDisplayString, createCommentVNode } from 'vue';\n\nvar script$1 = {\n name: 'BaseProgressBar',\n \"extends\": BaseComponent,\n props: {\n value: {\n type: Number,\n \"default\": null\n },\n mode: {\n type: String,\n \"default\": 'determinate'\n },\n showValue: {\n type: Boolean,\n \"default\": true\n }\n },\n style: ProgressBarStyle,\n provide: function provide() {\n return {\n $pcProgressBar: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'ProgressBar',\n \"extends\": script$1,\n inheritAttrs: false,\n computed: {\n progressStyle: function progressStyle() {\n return {\n width: this.value + '%',\n display: 'flex'\n };\n },\n indeterminate: function indeterminate() {\n return this.mode === 'indeterminate';\n },\n determinate: function determinate() {\n return this.mode === 'determinate';\n }\n }\n};\n\nvar _hoisted_1 = [\"aria-valuenow\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n role: \"progressbar\",\n \"class\": _ctx.cx('root'),\n \"aria-valuemin\": \"0\",\n \"aria-valuenow\": _ctx.value,\n \"aria-valuemax\": \"100\"\n }, _ctx.ptmi('root')), [$options.determinate ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('value'),\n style: $options.progressStyle\n }, _ctx.ptm('value')), [_ctx.value != null && _ctx.value !== 0 && _ctx.showValue ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('label')\n }, _ctx.ptm('label')), [renderSlot(_ctx.$slots, \"default\", {}, function () {\n return [createTextVNode(toDisplayString(_ctx.value + '%'), 1)];\n })], 16)) : createCommentVNode(\"\", true)], 16)) : $options.indeterminate ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 1,\n \"class\": _ctx.cx('value')\n }, _ctx.ptm('value')), null, 16)) : createCommentVNode(\"\", true)], 16, _hoisted_1);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import { onMounted, ref } from 'vue'\n\nexport function useDownload(url: string, fileName?: string) {\n const fileSize = ref(null)\n\n const fetchFileSize = async (): Promise => {\n try {\n const response = await fetch(url, { method: 'HEAD' })\n if (!response.ok) throw new Error('Failed to fetch file size')\n\n const size = response.headers.get('content-length')\n if (size) {\n return parseInt(size)\n } else {\n console.error('\"content-length\" header not found')\n return null\n }\n } catch (e) {\n console.error('Error fetching file size:', e)\n return null\n }\n }\n\n /**\n * Trigger browser download\n */\n const triggerBrowserDownload = () => {\n const link = document.createElement('a')\n link.href = url\n link.download = fileName || url.split('/').pop() || 'download'\n link.target = '_blank' // Opens in new tab if download attribute is not supported\n link.rel = 'noopener noreferrer' // Security best practice for _blank links\n link.click()\n }\n\n onMounted(async () => {\n fileSize.value = await fetchFileSize()\n })\n\n return {\n triggerBrowserDownload,\n fileSize\n }\n}\n","const IPC_CHANNELS = {\n LOADING_PROGRESS: \"loading-progress\",\n IS_PACKAGED: \"is-packaged\",\n RENDERER_READY: \"renderer-ready\",\n RESTART_APP: \"restart-app\",\n REINSTALL: \"reinstall\",\n LOG_MESSAGE: \"log-message\",\n OPEN_DIALOG: \"open-dialog\",\n DOWNLOAD_PROGRESS: \"download-progress\",\n START_DOWNLOAD: \"start-download\",\n PAUSE_DOWNLOAD: \"pause-download\",\n RESUME_DOWNLOAD: \"resume-download\",\n CANCEL_DOWNLOAD: \"cancel-download\",\n DELETE_MODEL: \"delete-model\",\n GET_ALL_DOWNLOADS: \"get-all-downloads\",\n GET_ELECTRON_VERSION: \"get-electron-version\",\n SEND_ERROR_TO_SENTRY: \"send-error-to-sentry\",\n GET_BASE_PATH: \"get-base-path\",\n GET_MODEL_CONFIG_PATH: \"get-model-config-path\",\n OPEN_PATH: \"open-path\",\n OPEN_LOGS_PATH: \"open-logs-path\",\n OPEN_DEV_TOOLS: \"open-dev-tools\",\n TERMINAL_WRITE: \"execute-terminal-command\",\n TERMINAL_RESIZE: \"resize-terminal\",\n TERMINAL_RESTORE: \"restore-terminal\",\n TERMINAL_ON_OUTPUT: \"terminal-output\",\n IS_FIRST_TIME_SETUP: \"is-first-time-setup\",\n GET_SYSTEM_PATHS: \"get-system-paths\",\n VALIDATE_INSTALL_PATH: \"validate-install-path\",\n VALIDATE_COMFYUI_SOURCE: \"validate-comfyui-source\",\n SHOW_DIRECTORY_PICKER: \"show-directory-picker\",\n INSTALL_COMFYUI: \"install-comfyui\",\n SHOW_CONTEXT_MENU: \"show-context-menu\",\n RESTART_CORE: \"restart-core\",\n GET_GPU: \"get-gpu\"\n};\nvar ProgressStatus = /* @__PURE__ */ ((ProgressStatus2) => {\n ProgressStatus2[\"INITIAL_STATE\"] = \"initial-state\";\n ProgressStatus2[\"PYTHON_SETUP\"] = \"python-setup\";\n ProgressStatus2[\"STARTING_SERVER\"] = \"starting-server\";\n ProgressStatus2[\"READY\"] = \"ready\";\n ProgressStatus2[\"ERROR\"] = \"error\";\n return ProgressStatus2;\n})(ProgressStatus || {});\nconst ProgressMessages = {\n [\n \"initial-state\"\n /* INITIAL_STATE */\n ]: \"Loading...\",\n [\n \"python-setup\"\n /* PYTHON_SETUP */\n ]: \"Setting up Python Environment...\",\n [\n \"starting-server\"\n /* STARTING_SERVER */\n ]: \"Starting ComfyUI server...\",\n [\n \"ready\"\n /* READY */\n ]: \"Finishing...\",\n [\n \"error\"\n /* ERROR */\n ]: \"Was not able to start ComfyUI. Please check the logs for more details. You can open it from the Help menu. Please report issues to: https://forum.comfy.org\"\n};\nconst ELECTRON_BRIDGE_API = \"electronAPI\";\nconst SENTRY_URL_ENDPOINT = \"https://942cadba58d247c9cab96f45221aa813@o4507954455314432.ingest.us.sentry.io/4508007940685824\";\nconst MigrationItems = [\n {\n id: \"user_files\",\n label: \"User Files\",\n description: \"Settings and user-created workflows\"\n },\n {\n id: \"models\",\n label: \"Models\",\n description: \"Reference model files from existing ComfyUI installations. (No copy)\"\n },\n {\n id: \"custom_nodes\",\n label: \"Custom Nodes\",\n description: \"Reinstall custom nodes from existing ComfyUI installations.\"\n }\n];\nconst DEFAULT_SERVER_ARGS = {\n /** The host to use for the ComfyUI server. */\n host: \"127.0.0.1\",\n /** The port to use for the ComfyUI server. */\n port: 8e3,\n // Extra arguments to pass to the ComfyUI server.\n extraServerArgs: {}\n};\nvar DownloadStatus = /* @__PURE__ */ ((DownloadStatus2) => {\n DownloadStatus2[\"PENDING\"] = \"pending\";\n DownloadStatus2[\"IN_PROGRESS\"] = \"in_progress\";\n DownloadStatus2[\"COMPLETED\"] = \"completed\";\n DownloadStatus2[\"PAUSED\"] = \"paused\";\n DownloadStatus2[\"ERROR\"] = \"error\";\n DownloadStatus2[\"CANCELLED\"] = \"cancelled\";\n return DownloadStatus2;\n})(DownloadStatus || {});\nexport {\n DEFAULT_SERVER_ARGS,\n DownloadStatus,\n ELECTRON_BRIDGE_API,\n IPC_CHANNELS,\n MigrationItems,\n ProgressMessages,\n ProgressStatus,\n SENTRY_URL_ENDPOINT\n};\n","import {\n type DownloadState,\n DownloadStatus\n} from '@comfyorg/comfyui-electron-types'\nimport { defineStore } from 'pinia'\nimport { computed, ref } from 'vue'\n\nimport { electronAPI, isElectron } from '@/utils/envUtil'\n\nexport interface ElectronDownload\n extends Pick {\n progress?: number\n savePath?: string\n status?: DownloadStatus\n}\n\n/** Electron donwloads store handler */\nexport const useElectronDownloadStore = defineStore('downloads', () => {\n const downloads = ref([])\n const { DownloadManager } = electronAPI()\n\n const findByUrl = (url: string) =>\n downloads.value.find((download) => url === download.url)\n\n const initialize = async () => {\n if (isElectron()) {\n const allDownloads = await DownloadManager.getAllDownloads()\n\n for (const download of allDownloads) {\n downloads.value.push(download)\n }\n\n // ToDO: replace with ElectronDownload type\n DownloadManager.onDownloadProgress((data) => {\n if (!findByUrl(data.url)) {\n downloads.value.push(data)\n }\n\n const download = findByUrl(data.url)\n\n if (download) {\n download.progress = data.progress\n download.status = data.status\n download.filename = data.filename\n download.savePath = data.savePath\n }\n })\n }\n }\n\n void initialize()\n\n const start = ({\n url,\n savePath,\n filename\n }: {\n url: string\n savePath: string\n filename: string\n }) => DownloadManager.startDownload(url, savePath, filename)\n const pause = (url: string) => DownloadManager.pauseDownload(url)\n const resume = (url: string) => DownloadManager.resumeDownload(url)\n const cancel = (url: string) => DownloadManager.cancelDownload(url)\n\n return {\n downloads,\n start,\n pause,\n resume,\n cancel,\n findByUrl,\n initialize,\n inProgressDownloads: computed(() =>\n downloads.value.filter(\n ({ status }) => status !== DownloadStatus.COMPLETED\n )\n )\n }\n})\n","export function formatCamelCase(str: string): string {\n // Check if the string is camel case\n const isCamelCase = /^([A-Z][a-z]*)+$/.test(str)\n\n if (!isCamelCase) {\n return str // Return original string if not camel case\n }\n\n // Split the string into words, keeping acronyms together\n const words = str.split(/(?=[A-Z][a-z])|\\d+/)\n\n // Process each word\n const processedWords = words.map((word) => {\n // If the word is all uppercase and longer than one character, it's likely an acronym\n if (word.length > 1 && word === word.toUpperCase()) {\n return word // Keep acronyms as is\n }\n // For other words, ensure the first letter is capitalized\n return word.charAt(0).toUpperCase() + word.slice(1)\n })\n\n // Join the words with spaces\n return processedWords.join(' ')\n}\n\nexport function appendJsonExt(path: string) {\n if (!path.toLowerCase().endsWith('.json')) {\n path += '.json'\n }\n return path\n}\n\nexport function trimJsonExt(path?: string) {\n return path?.replace(/\\.json$/, '')\n}\n\nexport function highlightQuery(text: string, query: string) {\n if (!query) return text\n const regex = new RegExp(`(${query})`, 'gi')\n return text.replace(regex, '$1')\n}\n\nexport function formatNumberWithSuffix(\n num: number,\n {\n precision = 1,\n roundToInt = false\n }: { precision?: number; roundToInt?: boolean } = {}\n): string {\n const suffixes = ['', 'k', 'm', 'b', 't']\n const absNum = Math.abs(num)\n\n if (absNum < 1000) {\n return roundToInt ? Math.round(num).toString() : num.toFixed(precision)\n }\n\n const exp = Math.min(Math.floor(Math.log10(absNum) / 3), suffixes.length - 1)\n const formattedNum = (num / Math.pow(1000, exp)).toFixed(precision)\n\n return `${formattedNum}${suffixes[exp]}`\n}\n\nexport function formatSize(value?: number) {\n if (value === null || value === undefined) {\n return '-'\n }\n\n const bytes = value\n if (bytes === 0) return '0 B'\n const k = 1024\n const sizes = ['B', 'KB', 'MB', 'GB']\n const i = Math.floor(Math.log(bytes) / Math.log(k))\n return `${parseFloat((bytes / Math.pow(k, i)).toFixed(2))} ${sizes[i]}`\n}\n\n/**\n * Finds the common directory prefix between two paths\n * @example\n * findCommonPrefix('a/b/c', 'a/b/d') // returns 'a/b'\n * findCommonPrefix('x/y/z', 'a/b/c') // returns ''\n * findCommonPrefix('a/b/c', 'a/b/c/d') // returns 'a/b/c'\n */\nexport function findCommonPrefix(path1: string, path2: string): string {\n const parts1 = path1.split('/')\n const parts2 = path2.split('/')\n\n const commonParts: string[] = []\n for (let i = 0; i < Math.min(parts1.length, parts2.length); i++) {\n if (parts1[i] === parts2[i]) {\n commonParts.push(parts1[i])\n } else {\n break\n }\n }\n return commonParts.join('/')\n}\n\n/**\n * Returns various filename components.\n * Example:\n * - fullFilename: 'file.txt'\n * - filename: 'file'\n * - suffix: 'txt'\n */\nexport function getFilenameDetails(fullFilename: string) {\n if (fullFilename.includes('.')) {\n return {\n filename: fullFilename.split('.').slice(0, -1).join('.'),\n suffix: fullFilename.split('.').pop() ?? null\n }\n } else {\n return { filename: fullFilename, suffix: null }\n }\n}\n\n/**\n * Returns various path components.\n * Example:\n * - path: 'dir/file.txt'\n * - directory: 'dir'\n * - fullFilename: 'file.txt'\n * - filename: 'file'\n * - suffix: 'txt'\n */\nexport function getPathDetails(path: string) {\n const directory = path.split('/').slice(0, -1).join('/')\n const fullFilename = path.split('/').pop() ?? path\n return { directory, fullFilename, ...getFilenameDetails(fullFilename) }\n}\n\n/**\n * Normalizes a string to be used as an i18n key.\n * Replaces dots with underscores.\n */\nexport function normalizeI18nKey(key: string) {\n return key.replace(/\\./g, '_')\n}\n\n/**\n * Takes a dynamic prompt in the format {opt1|opt2|{optA|optB}|} and randomly replaces groups. Supports C style comments.\n * @param input The dynamic prompt to process\n * @returns\n */\nexport function processDynamicPrompt(input: string): string {\n /*\n * Strips C-style line and block comments from a string\n */\n function stripComments(str: string) {\n return str.replace(/\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*/g, '')\n }\n\n let i = 0\n let result = ''\n input = stripComments(input)\n\n const handleEscape = () => {\n const nextChar = input[i++]\n return '\\\\' + nextChar\n }\n\n function parseChoiceBlock() {\n // Parse the content inside {}\n const options: string[] = []\n let choice = ''\n let depth = 0\n\n while (i < input.length) {\n const char = input[i++]\n\n if (char === '\\\\') {\n choice += handleEscape()\n continue\n } else if (char === '{') {\n depth++\n } else if (char === '}') {\n if (!depth) break\n depth--\n } else if (char === '|') {\n if (!depth) {\n options.push(choice)\n choice = ''\n continue\n }\n }\n choice += char\n }\n\n options.push(choice)\n\n const chosenOption = options[Math.floor(Math.random() * options.length)]\n return processDynamicPrompt(chosenOption)\n }\n\n while (i < input.length) {\n const char = input[i++]\n if (char === '\\\\') {\n result += handleEscape()\n } else if (char === '{') {\n result += parseChoiceBlock()\n } else {\n result += char\n }\n }\n\n return result.replace(/\\\\([{}|])/g, '$1')\n}\n","\n\n\n\n","\n\n\n\n","\n\n\n\n\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-floatlabel {\\n display: block;\\n position: relative;\\n}\\n\\n.p-floatlabel label {\\n position: absolute;\\n pointer-events: none;\\n top: 50%;\\n margin-top: -.5rem;\\n transition-property: all;\\n transition-timing-function: ease;\\n line-height: 1;\\n left: 0.75rem;\\n color: \".concat(dt('floatlabel.color'), \";\\n transition-duration: \").concat(dt('floatlabel.transition.duration'), \";\\n}\\n\\n.p-floatlabel:has(textarea) label {\\n top: 1rem;\\n}\\n\\n.p-floatlabel:has(input:focus) label,\\n.p-floatlabel:has(input.p-filled) label,\\n.p-floatlabel:has(input:-webkit-autofill) label,\\n.p-floatlabel:has(textarea:focus) label,\\n.p-floatlabel:has(textarea.p-filled) label,\\n.p-floatlabel:has(.p-inputwrapper-focus) label,\\n.p-floatlabel:has(.p-inputwrapper-filled) label {\\n top: -.75rem;\\n font-size: 12px;\\n color: \").concat(dt('floatlabel.focus.color'), \";\\n}\\n\\n.p-floatlabel .p-placeholder,\\n.p-floatlabel input::placeholder,\\n.p-floatlabel .p-inputtext::placeholder {\\n opacity: 0;\\n transition-property: all;\\n transition-timing-function: ease;\\n}\\n\\n.p-floatlabel .p-focus .p-placeholder,\\n.p-floatlabel input:focus::placeholder,\\n.p-floatlabel .p-inputtext:focus::placeholder {\\n opacity: 1;\\n transition-property: all;\\n transition-timing-function: ease;\\n}\\n\\n.p-floatlabel > .p-invalid + label {\\n color: \").concat(dt('floatlabel.invalid.color'), \";\\n}\\n\");\n};\nvar classes = {\n root: 'p-floatlabel'\n};\nvar FloatLabelStyle = BaseStyle.extend({\n name: 'floatlabel',\n theme: theme,\n classes: classes\n});\n\nexport { FloatLabelStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseComponent from '@primevue/core/basecomponent';\nimport FloatLabelStyle from 'primevue/floatlabel/style';\nimport { openBlock, createElementBlock, mergeProps, renderSlot } from 'vue';\n\nvar script$1 = {\n name: 'BaseFloatLabel',\n \"extends\": BaseComponent,\n props: {},\n style: FloatLabelStyle,\n provide: function provide() {\n return {\n $pcFloatLabel: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'FloatLabel',\n \"extends\": script$1,\n inheritAttrs: false\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps({\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root')), [renderSlot(_ctx.$slots, \"default\")], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n","import BaseStyle from '@primevue/core/base/style';\n\nvar classes = {\n root: 'p-tabpanels'\n};\nvar TabPanelsStyle = BaseStyle.extend({\n name: 'tabpanels',\n classes: classes\n});\n\nexport { TabPanelsStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseComponent from '@primevue/core/basecomponent';\nimport TabPanelsStyle from 'primevue/tabpanels/style';\nimport { openBlock, createElementBlock, mergeProps, renderSlot } from 'vue';\n\nvar script$1 = {\n name: 'BaseTabPanels',\n \"extends\": BaseComponent,\n props: {},\n style: TabPanelsStyle,\n provide: function provide() {\n return {\n $pcTabPanels: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'TabPanels',\n \"extends\": script$1,\n inheritAttrs: false\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root'),\n role: \"presentation\"\n }, _ctx.ptmi('root')), [renderSlot(_ctx.$slots, \"default\")], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-tabs {\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.p-tablist {\\n display: flex;\\n position: relative;\\n}\\n\\n.p-tabs-scrollable > .p-tablist {\\n overflow: hidden;\\n}\\n\\n.p-tablist-viewport {\\n overflow-x: auto;\\n overflow-y: hidden;\\n scroll-behavior: smooth;\\n scrollbar-width: none;\\n overscroll-behavior: contain auto;\\n}\\n\\n.p-tablist-viewport::-webkit-scrollbar {\\n display: none;\\n}\\n\\n.p-tablist-tab-list {\\n position: relative;\\n display: flex;\\n background: \".concat(dt('tabs.tablist.background'), \";\\n border-style: solid;\\n border-color: \").concat(dt('tabs.tablist.border.color'), \";\\n border-width: \").concat(dt('tabs.tablist.border.width'), \";\\n}\\n\\n.p-tablist-content {\\n flex-grow: 1;\\n}\\n\\n.p-tablist-nav-button {\\n all: unset;\\n position: absolute !important;\\n flex-shrink: 0;\\n top: 0;\\n z-index: 2;\\n height: 100%;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n background: \").concat(dt('tabs.nav.button.background'), \";\\n color: \").concat(dt('tabs.nav.button.color'), \";\\n width: \").concat(dt('tabs.nav.button.width'), \";\\n transition: color \").concat(dt('tabs.transition.duration'), \", outline-color \").concat(dt('tabs.transition.duration'), \", box-shadow \").concat(dt('tabs.transition.duration'), \";\\n box-shadow: \").concat(dt('tabs.nav.button.shadow'), \";\\n outline-color: transparent;\\n cursor: pointer;\\n}\\n\\n.p-tablist-nav-button:focus-visible {\\n z-index: 1;\\n box-shadow: \").concat(dt('tabs.nav.button.focus.ring.shadow'), \";\\n outline: \").concat(dt('tabs.nav.button.focus.ring.width'), \" \").concat(dt('tabs.nav.button.focus.ring.style'), \" \").concat(dt('tabs.nav.button.focus.ring.color'), \";\\n outline-offset: \").concat(dt('tabs.nav.button.focus.ring.offset'), \";\\n}\\n\\n.p-tablist-nav-button:hover {\\n color: \").concat(dt('tabs.nav.button.hover.color'), \";\\n}\\n\\n.p-tablist-prev-button {\\n left: 0;\\n}\\n\\n.p-tablist-next-button {\\n right: 0;\\n}\\n\\n.p-tab {\\n flex-shrink: 0;\\n cursor: pointer;\\n user-select: none;\\n position: relative;\\n border-style: solid;\\n white-space: nowrap;\\n background: \").concat(dt('tabs.tab.background'), \";\\n border-width: \").concat(dt('tabs.tab.border.width'), \";\\n border-color: \").concat(dt('tabs.tab.border.color'), \";\\n color: \").concat(dt('tabs.tab.color'), \";\\n padding: \").concat(dt('tabs.tab.padding'), \";\\n font-weight: \").concat(dt('tabs.tab.font.weight'), \";\\n transition: background \").concat(dt('tabs.transition.duration'), \", border-color \").concat(dt('tabs.transition.duration'), \", color \").concat(dt('tabs.transition.duration'), \", outline-color \").concat(dt('tabs.transition.duration'), \", box-shadow \").concat(dt('tabs.transition.duration'), \";\\n margin: \").concat(dt('tabs.tab.margin'), \";\\n outline-color: transparent;\\n}\\n\\n.p-tab:not(.p-disabled):focus-visible {\\n z-index: 1;\\n box-shadow: \").concat(dt('tabs.tab.focus.ring.shadow'), \";\\n outline: \").concat(dt('tabs.tab.focus.ring.width'), \" \").concat(dt('tabs.tab.focus.ring.style'), \" \").concat(dt('tabs.tab.focus.ring.color'), \";\\n outline-offset: \").concat(dt('tabs.tab.focus.ring.offset'), \";\\n}\\n\\n.p-tab:not(.p-tab-active):not(.p-disabled):hover {\\n background: \").concat(dt('tabs.tab.hover.background'), \";\\n border-color: \").concat(dt('tabs.tab.hover.border.color'), \";\\n color: \").concat(dt('tabs.tab.hover.color'), \";\\n}\\n\\n.p-tab-active {\\n background: \").concat(dt('tabs.tab.active.background'), \";\\n border-color: \").concat(dt('tabs.tab.active.border.color'), \";\\n color: \").concat(dt('tabs.tab.active.color'), \";\\n}\\n\\n.p-tabpanels {\\n background: \").concat(dt('tabs.tabpanel.background'), \";\\n color: \").concat(dt('tabs.tabpanel.color'), \";\\n padding: \").concat(dt('tabs.tabpanel.padding'), \";\\n outline: 0 none;\\n}\\n\\n.p-tabpanel:focus-visible {\\n box-shadow: \").concat(dt('tabs.tabpanel.focus.ring.shadow'), \";\\n outline: \").concat(dt('tabs.tabpanel.focus.ring.width'), \" \").concat(dt('tabs.tabpanel.focus.ring.style'), \" \").concat(dt('tabs.tabpanel.focus.ring.color'), \";\\n outline-offset: \").concat(dt('tabs.tabpanel.focus.ring.offset'), \";\\n}\\n\\n.p-tablist-active-bar {\\n z-index: 1;\\n display: block;\\n position: absolute;\\n bottom: \").concat(dt('tabs.active.bar.bottom'), \";\\n height: \").concat(dt('tabs.active.bar.height'), \";\\n background: \").concat(dt('tabs.active.bar.background'), \";\\n transition: 250ms cubic-bezier(0.35, 0, 0.25, 1);\\n}\\n\");\n};\nvar classes = {\n root: function root(_ref2) {\n var props = _ref2.props;\n return ['p-tabs p-component', {\n 'p-tabs-scrollable': props.scrollable\n }];\n }\n};\nvar TabsStyle = BaseStyle.extend({\n name: 'tabs',\n theme: theme,\n classes: classes\n});\n\nexport { TabsStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { UniqueComponentId } from '@primevue/core/utils';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport TabsStyle from 'primevue/tabs/style';\nimport { openBlock, createElementBlock, mergeProps, renderSlot } from 'vue';\n\nvar script$1 = {\n name: 'BaseTabs',\n \"extends\": BaseComponent,\n props: {\n value: {\n type: [String, Number],\n \"default\": undefined\n },\n lazy: {\n type: Boolean,\n \"default\": false\n },\n scrollable: {\n type: Boolean,\n \"default\": false\n },\n showNavigators: {\n type: Boolean,\n \"default\": true\n },\n tabindex: {\n type: Number,\n \"default\": 0\n },\n selectOnFocus: {\n type: Boolean,\n \"default\": false\n }\n },\n style: TabsStyle,\n provide: function provide() {\n return {\n $pcTabs: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'Tabs',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['update:value'],\n data: function data() {\n return {\n id: this.$attrs.id,\n d_value: this.value\n };\n },\n watch: {\n '$attrs.id': function $attrsId(newValue) {\n this.id = newValue || UniqueComponentId();\n },\n value: function value(newValue) {\n this.d_value = newValue;\n }\n },\n mounted: function mounted() {\n this.id = this.id || UniqueComponentId();\n },\n methods: {\n updateValue: function updateValue(newValue) {\n if (this.d_value !== newValue) {\n this.d_value = newValue;\n this.$emit('update:value', newValue);\n }\n },\n isVertical: function isVertical() {\n return this.orientation === 'vertical';\n }\n }\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root')), [renderSlot(_ctx.$slots, \"default\")], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'TimesCircleIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n \"clip-rule\": \"evenodd\",\n d: \"M7 14C5.61553 14 4.26215 13.5895 3.11101 12.8203C1.95987 12.0511 1.06266 10.9579 0.532846 9.67879C0.00303296 8.3997 -0.13559 6.99224 0.134506 5.63437C0.404603 4.2765 1.07129 3.02922 2.05026 2.05026C3.02922 1.07129 4.2765 0.404603 5.63437 0.134506C6.99224 -0.13559 8.3997 0.00303296 9.67879 0.532846C10.9579 1.06266 12.0511 1.95987 12.8203 3.11101C13.5895 4.26215 14 5.61553 14 7C14 8.85652 13.2625 10.637 11.9497 11.9497C10.637 13.2625 8.85652 14 7 14ZM7 1.16667C5.84628 1.16667 4.71846 1.50879 3.75918 2.14976C2.79989 2.79074 2.05222 3.70178 1.61071 4.76768C1.16919 5.83358 1.05367 7.00647 1.27876 8.13803C1.50384 9.26958 2.05941 10.309 2.87521 11.1248C3.69102 11.9406 4.73042 12.4962 5.86198 12.7212C6.99353 12.9463 8.16642 12.8308 9.23232 12.3893C10.2982 11.9478 11.2093 11.2001 11.8502 10.2408C12.4912 9.28154 12.8333 8.15373 12.8333 7C12.8333 5.45291 12.2188 3.96918 11.1248 2.87521C10.0308 1.78125 8.5471 1.16667 7 1.16667ZM4.66662 9.91668C4.58998 9.91704 4.51404 9.90209 4.44325 9.87271C4.37246 9.84333 4.30826 9.8001 4.2544 9.74557C4.14516 9.6362 4.0838 9.48793 4.0838 9.33335C4.0838 9.17876 4.14516 9.0305 4.2544 8.92113L6.17553 7L4.25443 5.07891C4.15139 4.96832 4.09529 4.82207 4.09796 4.67094C4.10063 4.51982 4.16185 4.37563 4.26872 4.26876C4.3756 4.16188 4.51979 4.10066 4.67091 4.09799C4.82204 4.09532 4.96829 4.15142 5.07887 4.25446L6.99997 6.17556L8.92106 4.25446C9.03164 4.15142 9.1779 4.09532 9.32903 4.09799C9.48015 4.10066 9.62434 4.16188 9.73121 4.26876C9.83809 4.37563 9.89931 4.51982 9.90198 4.67094C9.90464 4.82207 9.84855 4.96832 9.74551 5.07891L7.82441 7L9.74554 8.92113C9.85478 9.0305 9.91614 9.17876 9.91614 9.33335C9.91614 9.48793 9.85478 9.6362 9.74554 9.74557C9.69168 9.8001 9.62748 9.84333 9.55669 9.87271C9.4859 9.90209 9.40996 9.91704 9.33332 9.91668C9.25668 9.91704 9.18073 9.90209 9.10995 9.87271C9.03916 9.84333 8.97495 9.8001 8.9211 9.74557L6.99997 7.82444L5.07884 9.74557C5.02499 9.8001 4.96078 9.84333 4.88999 9.87271C4.81921 9.90209 4.74326 9.91704 4.66662 9.91668Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-chip {\\n display: inline-flex;\\n align-items: center;\\n background: \".concat(dt('chip.background'), \";\\n color: \").concat(dt('chip.color'), \";\\n border-radius: \").concat(dt('chip.border.radius'), \";\\n padding: \").concat(dt('chip.padding.y'), \" \").concat(dt('chip.padding.x'), \";\\n gap: \").concat(dt('chip.gap'), \";\\n}\\n\\n.p-chip-icon {\\n color: \").concat(dt('chip.icon.color'), \";\\n font-size: \").concat(dt('chip.icon.font.size'), \";\\n width: \").concat(dt('chip.icon.size'), \";\\n height: \").concat(dt('chip.icon.size'), \";\\n}\\n\\n.p-chip-image {\\n border-radius: 50%;\\n width: \").concat(dt('chip.image.width'), \";\\n height: \").concat(dt('chip.image.height'), \";\\n margin-left: calc(-1 * \").concat(dt('chip.padding.y'), \");\\n}\\n\\n.p-chip:has(.p-chip-remove-icon) {\\n padding-right: \").concat(dt('chip.padding.y'), \";\\n}\\n\\n.p-chip:has(.p-chip-image) {\\n padding-top: calc(\").concat(dt('chip.padding.y'), \" / 2);\\n padding-bottom: calc(\").concat(dt('chip.padding.y'), \" / 2);\\n}\\n\\n.p-chip-remove-icon {\\n cursor: pointer;\\n font-size: \").concat(dt('chip.remove.icon.size'), \";\\n width: \").concat(dt('chip.remove.icon.size'), \";\\n height: \").concat(dt('chip.remove.icon.size'), \";\\n color: \").concat(dt('chip.remove.icon.color'), \";\\n border-radius: 50%;\\n transition: outline-color \").concat(dt('chip.transition.duration'), \", box-shadow \").concat(dt('chip.transition.duration'), \";\\n outline-color: transparent;\\n}\\n\\n.p-chip-remove-icon:focus-visible {\\n box-shadow: \").concat(dt('chip.remove.icon.focus.ring.shadow'), \";\\n outline: \").concat(dt('chip.remove.icon.focus.ring.width'), \" \").concat(dt('chip.remove.icon.focus.ring.style'), \" \").concat(dt('chip.remove.icon.focus.ring.color'), \";\\n outline-offset: \").concat(dt('chip.remove.icon.focus.ring.offset'), \";\\n}\\n\");\n};\nvar classes = {\n root: 'p-chip p-component',\n image: 'p-chip-image',\n icon: 'p-chip-icon',\n label: 'p-chip-label',\n removeIcon: 'p-chip-remove-icon'\n};\nvar ChipStyle = BaseStyle.extend({\n name: 'chip',\n theme: theme,\n classes: classes\n});\n\nexport { ChipStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import TimesCircleIcon from '@primevue/icons/timescircle';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport ChipStyle from 'primevue/chip/style';\nimport { openBlock, createElementBlock, mergeProps, renderSlot, createBlock, resolveDynamicComponent, createCommentVNode, toDisplayString } from 'vue';\n\nvar script$1 = {\n name: 'BaseChip',\n \"extends\": BaseComponent,\n props: {\n label: {\n type: String,\n \"default\": null\n },\n icon: {\n type: String,\n \"default\": null\n },\n image: {\n type: String,\n \"default\": null\n },\n removable: {\n type: Boolean,\n \"default\": false\n },\n removeIcon: {\n type: String,\n \"default\": undefined\n }\n },\n style: ChipStyle,\n provide: function provide() {\n return {\n $pcChip: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'Chip',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['remove'],\n data: function data() {\n return {\n visible: true\n };\n },\n methods: {\n onKeydown: function onKeydown(event) {\n if (event.key === 'Enter' || event.key === 'Backspace') {\n this.close(event);\n }\n },\n close: function close(event) {\n this.visible = false;\n this.$emit('remove', event);\n }\n },\n components: {\n TimesCircleIcon: TimesCircleIcon\n }\n};\n\nvar _hoisted_1 = [\"aria-label\"];\nvar _hoisted_2 = [\"src\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return $data.visible ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('root'),\n \"aria-label\": _ctx.label\n }, _ctx.ptmi('root')), [renderSlot(_ctx.$slots, \"default\", {}, function () {\n return [_ctx.image ? (openBlock(), createElementBlock(\"img\", mergeProps({\n key: 0,\n src: _ctx.image\n }, _ctx.ptm('image'), {\n \"class\": _ctx.cx('image')\n }), null, 16, _hoisted_2)) : _ctx.$slots.icon ? (openBlock(), createBlock(resolveDynamicComponent(_ctx.$slots.icon), mergeProps({\n key: 1,\n \"class\": _ctx.cx('icon')\n }, _ctx.ptm('icon')), null, 16, [\"class\"])) : _ctx.icon ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 2,\n \"class\": [_ctx.cx('icon'), _ctx.icon]\n }, _ctx.ptm('icon')), null, 16)) : createCommentVNode(\"\", true), _ctx.label ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 3,\n \"class\": _ctx.cx('label')\n }, _ctx.ptm('label')), toDisplayString(_ctx.label), 17)) : createCommentVNode(\"\", true)];\n }), _ctx.removable ? renderSlot(_ctx.$slots, \"removeicon\", {\n key: 0,\n removeCallback: $options.close,\n keydownCallback: $options.onKeydown\n }, function () {\n return [(openBlock(), createBlock(resolveDynamicComponent(_ctx.removeIcon ? 'span' : 'TimesCircleIcon'), mergeProps({\n tabindex: \"0\",\n \"class\": [_ctx.cx('removeIcon'), _ctx.removeIcon],\n onClick: $options.close,\n onKeydown: $options.onKeydown\n }, _ctx.ptm('removeIcon')), null, 16, [\"class\", \"onClick\", \"onKeydown\"]))];\n }) : createCommentVNode(\"\", true)], 16, _hoisted_1)) : createCommentVNode(\"\", true);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n\n\n","import type { TreeNode } from 'primevue/treenode'\n\nexport function buildTree(items: T[], key: (item: T) => string[]): TreeNode {\n const root: TreeNode = {\n key: 'root',\n label: 'root',\n children: []\n }\n\n const map: Record = {\n root: root\n }\n\n for (const item of items) {\n const keys = key(item)\n let parent = root\n for (let i = 0; i < keys.length; i++) {\n const k = keys[i]\n // 'a/b/c/' represents an empty folder 'c' in folder 'b' in folder 'a'\n // 'a/b/c/' is split into ['a', 'b', 'c', '']\n if (k === '' && i === keys.length - 1) break\n\n const id = parent.key + '/' + k\n if (!map[id]) {\n const node: TreeNode = {\n key: id,\n label: k,\n leaf: false,\n children: []\n }\n map[id] = node\n parent.children?.push(node)\n }\n parent = map[id]\n }\n parent.leaf = keys[keys.length - 1] !== ''\n parent.data = item\n }\n return root\n}\n\nexport function flattenTree(tree: TreeNode): T[] {\n const result: T[] = []\n const stack: TreeNode[] = [tree]\n while (stack.length) {\n const node = stack.pop()!\n if (node.leaf && node.data) result.push(node.data)\n stack.push(...(node.children || []))\n }\n return result\n}\n\n/**\n * Sort the children of the node recursively.\n * @param node - The node to sort.\n * @param options - The options for sorting.\n * @param options.groupLeaf - Whether to group leaf nodes together.\n * @returns The sorted node.\n */\nexport function sortedTree(\n node: TreeNode,\n {\n groupLeaf = false\n }: {\n groupLeaf?: boolean\n } = {}\n): TreeNode {\n const newNode: TreeNode = {\n ...node\n }\n\n if (node.children) {\n if (groupLeaf) {\n // Split children into folders and files\n const folders = node.children.filter((child) => !child.leaf)\n const files = node.children.filter((child) => child.leaf)\n\n // Sort folders and files separately by label\n const sortedFolders = folders.sort((a, b) =>\n (a.label ?? '').localeCompare(b.label ?? '')\n )\n const sortedFiles = files.sort((a, b) =>\n (a.label ?? '').localeCompare(b.label ?? '')\n )\n\n // Recursively sort folder children\n newNode.children = [\n ...sortedFolders.map((folder) =>\n sortedTree(folder, { groupLeaf: true })\n ),\n ...sortedFiles\n ]\n } else {\n const sortedChildren = [...node.children].sort((a, b) =>\n (a.label ?? '').localeCompare(b.label ?? '')\n )\n newNode.children = [\n ...sortedChildren.map((child) =>\n sortedTree(child, { groupLeaf: false })\n )\n ]\n }\n }\n\n return newNode\n}\n\nexport const findNodeByKey = (root: TreeNode, key: string): TreeNode | null => {\n if (root.key === key) {\n return root\n }\n if (!root.children) {\n return null\n }\n for (const child of root.children) {\n const result = findNodeByKey(child, key)\n if (result) {\n return result\n }\n }\n return null\n}\n","import { defineStore } from 'pinia'\nimport type { TreeNode } from 'primevue/treenode'\nimport { computed, ref } from 'vue'\n\nimport { api } from '@/scripts/api'\nimport { app } from '@/scripts/app'\nimport type { Settings } from '@/types/apiTypes'\nimport type { SettingParams } from '@/types/settingTypes'\nimport { buildTree } from '@/utils/treeUtil'\n\nexport const getSettingInfo = (setting: SettingParams) => {\n const parts = setting.category || setting.id.split('.')\n return {\n category: parts[0] ?? 'Other',\n subCategory: parts[1] ?? 'Other'\n }\n}\n\nexport interface SettingTreeNode extends TreeNode {\n data?: SettingParams\n}\n\nfunction tryMigrateDeprecatedValue(setting: SettingParams, value: any) {\n return setting?.migrateDeprecatedValue?.(value) ?? value\n}\n\nfunction onChange(setting: SettingParams, newValue: any, oldValue: any) {\n if (setting?.onChange) {\n setting.onChange(newValue, oldValue)\n }\n // Backward compatibility with old settings dialog.\n // Some extensions still listens event emitted by the old settings dialog.\n app.ui.settings.dispatchChange(setting.id, newValue, oldValue)\n}\n\nexport const useSettingStore = defineStore('setting', () => {\n const settingValues = ref>({})\n const settingsById = ref>({})\n\n const settingTree = computed(() => {\n const root = buildTree(\n Object.values(settingsById.value).filter(\n (setting: SettingParams) => setting.type !== 'hidden'\n ),\n (setting: SettingParams) => setting.category || setting.id.split('.')\n )\n\n const floatingSettings = (root.children ?? []).filter((node) => node.leaf)\n if (floatingSettings.length) {\n root.children = (root.children ?? []).filter((node) => !node.leaf)\n root.children.push({\n key: 'Other',\n label: 'Other',\n leaf: false,\n children: floatingSettings\n })\n }\n\n return root\n })\n\n /**\n * Check if a setting's value exists, i.e. if the user has set it manually.\n * @param key - The key of the setting to check.\n * @returns Whether the setting exists.\n */\n function exists(key: string) {\n return settingValues.value[key] !== undefined\n }\n\n /**\n * Set a setting value.\n * @param key - The key of the setting to set.\n * @param value - The value to set.\n */\n async function set(key: K, value: Settings[K]) {\n const newValue = tryMigrateDeprecatedValue(settingsById.value[key], value)\n const oldValue = get(key)\n if (newValue === oldValue) return\n\n onChange(settingsById.value[key], newValue, oldValue)\n settingValues.value[key] = newValue\n await api.storeSetting(key, newValue)\n }\n\n /**\n * Get a setting value.\n * @param key - The key of the setting to get.\n * @returns The value of the setting.\n */\n function get(key: K): Settings[K] {\n return settingValues.value[key] ?? getDefaultValue(key)\n }\n\n /**\n * Get the default value of a setting.\n * @param key - The key of the setting to get.\n * @returns The default value of the setting.\n */\n function getDefaultValue(key: K): Settings[K] {\n const param = settingsById.value[key]\n return typeof param?.defaultValue === 'function'\n ? param.defaultValue()\n : param?.defaultValue\n }\n\n /**\n * Register a setting.\n * @param setting - The setting to register.\n */\n function addSetting(setting: SettingParams) {\n if (!setting.id) {\n throw new Error('Settings must have an ID')\n }\n if (setting.id in settingsById.value) {\n throw new Error(`Setting ${setting.id} must have a unique ID.`)\n }\n\n settingsById.value[setting.id] = setting\n\n if (settingValues.value[setting.id] !== undefined) {\n settingValues.value[setting.id] = tryMigrateDeprecatedValue(\n setting,\n settingValues.value[setting.id]\n )\n }\n onChange(setting, get(setting.id), undefined)\n }\n\n /*\n * Load setting values from server.\n * This needs to be called before any setting is registered.\n */\n async function loadSettingValues() {\n if (Object.keys(settingsById.value).length) {\n throw new Error(\n 'Setting values must be loaded before any setting is registered.'\n )\n }\n settingValues.value = await api.getSettings()\n }\n\n return {\n settingValues,\n settingsById,\n settingTree,\n addSetting,\n loadSettingValues,\n set,\n get,\n exists,\n getDefaultValue\n }\n})\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-tag {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n background: \".concat(dt('tag.primary.background'), \";\\n color: \").concat(dt('tag.primary.color'), \";\\n font-size: \").concat(dt('tag.font.size'), \";\\n font-weight: \").concat(dt('tag.font.weight'), \";\\n padding: \").concat(dt('tag.padding'), \";\\n border-radius: \").concat(dt('tag.border.radius'), \";\\n gap: \").concat(dt('tag.gap'), \";\\n}\\n\\n.p-tag-icon {\\n font-size: \").concat(dt('tag.icon.size'), \";\\n width: \").concat(dt('tag.icon.size'), \";\\n height:\").concat(dt('tag.icon.size'), \";\\n}\\n\\n.p-tag-rounded {\\n border-radius: \").concat(dt('tag.rounded.border.radius'), \";\\n}\\n\\n.p-tag-success {\\n background: \").concat(dt('tag.success.background'), \";\\n color: \").concat(dt('tag.success.color'), \";\\n}\\n\\n.p-tag-info {\\n background: \").concat(dt('tag.info.background'), \";\\n color: \").concat(dt('tag.info.color'), \";\\n}\\n\\n.p-tag-warn {\\n background: \").concat(dt('tag.warn.background'), \";\\n color: \").concat(dt('tag.warn.color'), \";\\n}\\n\\n.p-tag-danger {\\n background: \").concat(dt('tag.danger.background'), \";\\n color: \").concat(dt('tag.danger.color'), \";\\n}\\n\\n.p-tag-secondary {\\n background: \").concat(dt('tag.secondary.background'), \";\\n color: \").concat(dt('tag.secondary.color'), \";\\n}\\n\\n.p-tag-contrast {\\n background: \").concat(dt('tag.contrast.background'), \";\\n color: \").concat(dt('tag.contrast.color'), \";\\n}\\n\");\n};\nvar classes = {\n root: function root(_ref2) {\n var props = _ref2.props;\n return ['p-tag p-component', {\n 'p-tag-info': props.severity === 'info',\n 'p-tag-success': props.severity === 'success',\n 'p-tag-warn': props.severity === 'warn',\n 'p-tag-danger': props.severity === 'danger',\n 'p-tag-secondary': props.severity === 'secondary',\n 'p-tag-contrast': props.severity === 'contrast',\n 'p-tag-rounded': props.rounded\n }];\n },\n icon: 'p-tag-icon',\n label: 'p-tag-label'\n};\nvar TagStyle = BaseStyle.extend({\n name: 'tag',\n theme: theme,\n classes: classes\n});\n\nexport { TagStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseComponent from '@primevue/core/basecomponent';\nimport TagStyle from 'primevue/tag/style';\nimport { openBlock, createElementBlock, mergeProps, createBlock, resolveDynamicComponent, createCommentVNode, renderSlot, createElementVNode, toDisplayString } from 'vue';\n\nvar script$1 = {\n name: 'BaseTag',\n \"extends\": BaseComponent,\n props: {\n value: null,\n severity: null,\n rounded: Boolean,\n icon: String\n },\n style: TagStyle,\n provide: function provide() {\n return {\n $pcTag: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'Tag',\n \"extends\": script$1,\n inheritAttrs: false\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps({\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root')), [_ctx.$slots.icon ? (openBlock(), createBlock(resolveDynamicComponent(_ctx.$slots.icon), mergeProps({\n key: 0,\n \"class\": _ctx.cx('icon')\n }, _ctx.ptm('icon')), null, 16, [\"class\"])) : _ctx.icon ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 1,\n \"class\": [_ctx.cx('icon'), _ctx.icon]\n }, _ctx.ptm('icon')), null, 16)) : createCommentVNode(\"\", true), _ctx.value != null || _ctx.$slots[\"default\"] ? renderSlot(_ctx.$slots, \"default\", {\n key: 2\n }, function () {\n return [createElementVNode(\"span\", mergeProps({\n \"class\": _ctx.cx('label')\n }, _ctx.ptm('label')), toDisplayString(_ctx.value), 17)];\n }) : createCommentVNode(\"\", true)], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar classes = {\n root: function root(_ref) {\n var instance = _ref.instance;\n return ['p-tabpanel', {\n 'p-tabpanel-active': instance.active\n }];\n }\n};\nvar TabPanelStyle = BaseStyle.extend({\n name: 'tabpanel',\n classes: classes\n});\n\nexport { TabPanelStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { equals } from '@primeuix/utils/object';\nimport { mergeProps, renderSlot, openBlock, createElementBlock, Fragment, withDirectives, createBlock, resolveDynamicComponent, withCtx, vShow, createCommentVNode, normalizeClass } from 'vue';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport TabPanelStyle from 'primevue/tabpanel/style';\n\nvar script$1 = {\n name: 'BaseTabPanel',\n \"extends\": BaseComponent,\n props: {\n // in Tabs\n value: {\n type: [String, Number],\n \"default\": undefined\n },\n as: {\n type: [String, Object],\n \"default\": 'DIV'\n },\n asChild: {\n type: Boolean,\n \"default\": false\n },\n // in TabView\n header: null,\n headerStyle: null,\n headerClass: null,\n headerProps: null,\n headerActionProps: null,\n contentStyle: null,\n contentClass: null,\n contentProps: null,\n disabled: Boolean\n },\n style: TabPanelStyle,\n provide: function provide() {\n return {\n $pcTabPanel: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'TabPanel',\n \"extends\": script$1,\n inheritAttrs: false,\n inject: ['$pcTabs'],\n computed: {\n active: function active() {\n var _this$$pcTabs;\n return equals((_this$$pcTabs = this.$pcTabs) === null || _this$$pcTabs === void 0 ? void 0 : _this$$pcTabs.d_value, this.value);\n },\n id: function id() {\n var _this$$pcTabs2;\n return \"\".concat((_this$$pcTabs2 = this.$pcTabs) === null || _this$$pcTabs2 === void 0 ? void 0 : _this$$pcTabs2.id, \"_tabpanel_\").concat(this.value);\n },\n ariaLabelledby: function ariaLabelledby() {\n var _this$$pcTabs3;\n return \"\".concat((_this$$pcTabs3 = this.$pcTabs) === null || _this$$pcTabs3 === void 0 ? void 0 : _this$$pcTabs3.id, \"_tab_\").concat(this.value);\n },\n attrs: function attrs() {\n return mergeProps(this.a11yAttrs, this.ptmi('root', this.ptParams));\n },\n a11yAttrs: function a11yAttrs() {\n var _this$$pcTabs4;\n return {\n id: this.id,\n tabindex: (_this$$pcTabs4 = this.$pcTabs) === null || _this$$pcTabs4 === void 0 ? void 0 : _this$$pcTabs4.tabindex,\n role: 'tabpanel',\n 'aria-labelledby': this.ariaLabelledby,\n 'data-pc-name': 'tabpanel',\n 'data-p-active': this.active\n };\n },\n ptParams: function ptParams() {\n return {\n context: {\n active: this.active\n }\n };\n }\n }\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _$options$$pcTabs, _$options$$pcTabs2;\n return !$options.$pcTabs ? renderSlot(_ctx.$slots, \"default\", {\n key: 0\n }) : (openBlock(), createElementBlock(Fragment, {\n key: 1\n }, [!_ctx.asChild ? (openBlock(), createElementBlock(Fragment, {\n key: 0\n }, [((_$options$$pcTabs = $options.$pcTabs) !== null && _$options$$pcTabs !== void 0 && _$options$$pcTabs.lazy ? $options.active : true) ? withDirectives((openBlock(), createBlock(resolveDynamicComponent(_ctx.as), mergeProps({\n key: 0,\n \"class\": _ctx.cx('root')\n }, $options.attrs), {\n \"default\": withCtx(function () {\n return [renderSlot(_ctx.$slots, \"default\")];\n }),\n _: 3\n }, 16, [\"class\"])), [[vShow, (_$options$$pcTabs2 = $options.$pcTabs) !== null && _$options$$pcTabs2 !== void 0 && _$options$$pcTabs2.lazy ? true : $options.active]]) : createCommentVNode(\"\", true)], 64)) : renderSlot(_ctx.$slots, \"default\", {\n key: 1,\n \"class\": normalizeClass(_ctx.cx('root')),\n active: $options.active,\n a11yAttrs: $options.a11yAttrs\n })], 64));\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'ChevronLeftIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M9.61296 13C9.50997 13.0005 9.40792 12.9804 9.3128 12.9409C9.21767 12.9014 9.13139 12.8433 9.05902 12.7701L3.83313 7.54416C3.68634 7.39718 3.60388 7.19795 3.60388 6.99022C3.60388 6.78249 3.68634 6.58325 3.83313 6.43628L9.05902 1.21039C9.20762 1.07192 9.40416 0.996539 9.60724 1.00012C9.81032 1.00371 10.0041 1.08597 10.1477 1.22959C10.2913 1.37322 10.3736 1.56698 10.3772 1.77005C10.3808 1.97313 10.3054 2.16968 10.1669 2.31827L5.49496 6.99022L10.1669 11.6622C10.3137 11.8091 10.3962 12.0084 10.3962 12.2161C10.3962 12.4238 10.3137 12.6231 10.1669 12.7701C10.0945 12.8433 10.0083 12.9014 9.91313 12.9409C9.81801 12.9804 9.71596 13.0005 9.61296 13Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'ChevronRightIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M4.38708 13C4.28408 13.0005 4.18203 12.9804 4.08691 12.9409C3.99178 12.9014 3.9055 12.8433 3.83313 12.7701C3.68634 12.6231 3.60388 12.4238 3.60388 12.2161C3.60388 12.0084 3.68634 11.8091 3.83313 11.6622L8.50507 6.99022L3.83313 2.31827C3.69467 2.16968 3.61928 1.97313 3.62287 1.77005C3.62645 1.56698 3.70872 1.37322 3.85234 1.22959C3.99596 1.08597 4.18972 1.00371 4.3928 1.00012C4.59588 0.996539 4.79242 1.07192 4.94102 1.21039L10.1669 6.43628C10.3137 6.58325 10.3962 6.78249 10.3962 6.99022C10.3962 7.19795 10.3137 7.39718 10.1669 7.54416L4.94102 12.7701C4.86865 12.8433 4.78237 12.9014 4.68724 12.9409C4.59212 12.9804 4.49007 13.0005 4.38708 13Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-tabview-tablist-container {\\n position: relative;\\n}\\n\\n.p-tabview-scrollable > .p-tabview-tablist-container {\\n overflow: hidden;\\n}\\n\\n.p-tabview-tablist-scroll-container {\\n overflow-x: auto;\\n overflow-y: hidden;\\n scroll-behavior: smooth;\\n scrollbar-width: none;\\n overscroll-behavior: contain auto;\\n}\\n\\n.p-tabview-tablist-scroll-container::-webkit-scrollbar {\\n display: none;\\n}\\n\\n.p-tabview-tablist {\\n display: flex;\\n margin: 0;\\n padding: 0;\\n list-style-type: none;\\n flex: 1 1 auto;\\n background: \".concat(dt('tabview.tab.list.background'), \";\\n border: 1px solid \").concat(dt('tabview.tab.list.border.color'), \";\\n border-width: 0 0 1px 0;\\n position: relative;\\n}\\n\\n.p-tabview-tab-header {\\n cursor: pointer;\\n user-select: none;\\n display: flex;\\n align-items: center;\\n text-decoration: none;\\n position: relative;\\n overflow: hidden;\\n border-style: solid;\\n border-width: 0 0 1px 0;\\n border-color: transparent transparent \").concat(dt('tabview.tab.border.color'), \" transparent;\\n color: \").concat(dt('tabview.tab.color'), \";\\n padding: 1rem 1.125rem;\\n font-weight: 600;\\n border-top-right-radius: \").concat(dt('border.radius.md'), \";\\n border-top-left-radius: \").concat(dt('border.radius.md'), \";\\n transition: color \").concat(dt('tabview.transition.duration'), \", outline-color \").concat(dt('tabview.transition.duration'), \";\\n margin: 0 0 -1px 0;\\n outline-color: transparent;\\n}\\n\\n.p-tabview-tablist-item:not(.p-disabled) .p-tabview-tab-header:focus-visible {\\n outline: \").concat(dt('focus.ring.width'), \" \").concat(dt('focus.ring.style'), \" \").concat(dt('focus.ring.color'), \";\\n outline-offset: -1px;\\n}\\n\\n.p-tabview-tablist-item:not(.p-highlight):not(.p-disabled):hover > .p-tabview-tab-header {\\n color: \").concat(dt('tabview.tab.hover.color'), \";\\n}\\n\\n.p-tabview-tablist-item.p-highlight > .p-tabview-tab-header {\\n color: \").concat(dt('tabview.tab.active.color'), \";\\n}\\n\\n.p-tabview-tab-title {\\n line-height: 1;\\n white-space: nowrap;\\n}\\n\\n.p-tabview-next-button,\\n.p-tabview-prev-button {\\n position: absolute;\\n top: 0;\\n margin: 0;\\n padding: 0;\\n z-index: 2;\\n height: 100%;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n background: \").concat(dt('tabview.nav.button.background'), \";\\n color: \").concat(dt('tabview.nav.button.color'), \";\\n width: 2.5rem;\\n border-radius: 0;\\n outline-color: transparent;\\n transition: color \").concat(dt('tabview.transition.duration'), \", outline-color \").concat(dt('tabview.transition.duration'), \";\\n box-shadow: \").concat(dt('tabview.nav.button.shadow'), \";\\n border: none;\\n cursor: pointer;\\n user-select: none;\\n}\\n\\n.p-tabview-next-button:focus-visible,\\n.p-tabview-prev-button:focus-visible {\\n outline: \").concat(dt('focus.ring.width'), \" \").concat(dt('focus.ring.style'), \" \").concat(dt('focus.ring.color'), \";\\n outline-offset: \").concat(dt('focus.ring.offset'), \";\\n}\\n\\n.p-tabview-next-button:hover,\\n.p-tabview-prev-button:hover {\\n color: \").concat(dt('tabview.nav.button.hover.color'), \";\\n}\\n\\n.p-tabview-prev-button {\\n left: 0;\\n}\\n\\n.p-tabview-next-button {\\n right: 0;\\n}\\n\\n.p-tabview-panels {\\n background: \").concat(dt('tabview.tab.panel.background'), \";\\n color: \").concat(dt('tabview.tab.panel.color'), \";\\n padding: 0.875rem 1.125rem 1.125rem 1.125rem;\\n}\\n\\n.p-tabview-ink-bar {\\n z-index: 1;\\n display: block;\\n position: absolute;\\n bottom: -1px;\\n height: 1px;\\n background: \").concat(dt('tabview.tab.active.border.color'), \";\\n transition: 250ms cubic-bezier(0.35, 0, 0.25, 1);\\n}\\n\");\n};\nvar classes = {\n root: function root(_ref2) {\n var props = _ref2.props;\n return ['p-tabview p-component', {\n 'p-tabview-scrollable': props.scrollable\n }];\n },\n navContainer: 'p-tabview-tablist-container',\n prevButton: 'p-tabview-prev-button',\n navContent: 'p-tabview-tablist-scroll-container',\n nav: 'p-tabview-tablist',\n tab: {\n header: function header(_ref3) {\n var instance = _ref3.instance,\n tab = _ref3.tab,\n index = _ref3.index;\n return ['p-tabview-tablist-item', instance.getTabProp(tab, 'headerClass'), {\n 'p-tabview-tablist-item-active': instance.d_activeIndex === index,\n 'p-disabled': instance.getTabProp(tab, 'disabled')\n }];\n },\n headerAction: 'p-tabview-tab-header',\n headerTitle: 'p-tabview-tab-title',\n content: function content(_ref4) {\n var instance = _ref4.instance,\n tab = _ref4.tab;\n return ['p-tabview-panel', instance.getTabProp(tab, 'contentClass')];\n }\n },\n inkbar: 'p-tabview-ink-bar',\n nextButton: 'p-tabview-next-button',\n panelContainer: 'p-tabview-panels'\n};\nvar TabViewStyle = BaseStyle.extend({\n name: 'tabview',\n theme: theme,\n classes: classes\n});\n\nexport { TabViewStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { UniqueComponentId } from '@primevue/core/utils';\nimport { getWidth, getAttribute, findSingle, focus, getOffset } from '@primeuix/utils/dom';\nimport ChevronLeftIcon from '@primevue/icons/chevronleft';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps, resolveDirective, openBlock, createElementBlock, createElementVNode, withDirectives, renderSlot, createBlock, resolveDynamicComponent, createCommentVNode, Fragment, renderList, toDisplayString, vShow } from 'vue';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport TabViewStyle from 'primevue/tabview/style';\n\nvar script$1 = {\n name: 'BaseTabView',\n \"extends\": BaseComponent,\n props: {\n activeIndex: {\n type: Number,\n \"default\": 0\n },\n lazy: {\n type: Boolean,\n \"default\": false\n },\n scrollable: {\n type: Boolean,\n \"default\": false\n },\n tabindex: {\n type: Number,\n \"default\": 0\n },\n selectOnFocus: {\n type: Boolean,\n \"default\": false\n },\n prevButtonProps: {\n type: null,\n \"default\": null\n },\n nextButtonProps: {\n type: null,\n \"default\": null\n },\n prevIcon: {\n type: String,\n \"default\": undefined\n },\n nextIcon: {\n type: String,\n \"default\": undefined\n }\n },\n style: TabViewStyle,\n provide: function provide() {\n return {\n $pcTabs: undefined,\n // Backwards compatible to prevent component from breaking\n $pcTabView: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'TabView',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['update:activeIndex', 'tab-change', 'tab-click'],\n data: function data() {\n return {\n id: this.$attrs.id,\n d_activeIndex: this.activeIndex,\n isPrevButtonDisabled: true,\n isNextButtonDisabled: false\n };\n },\n watch: {\n '$attrs.id': function $attrsId(newValue) {\n this.id = newValue || UniqueComponentId();\n },\n activeIndex: function activeIndex(newValue) {\n this.d_activeIndex = newValue;\n this.scrollInView({\n index: newValue\n });\n }\n },\n mounted: function mounted() {\n console.warn('Deprecated since v4. Use Tabs component instead.');\n this.id = this.id || UniqueComponentId();\n this.updateInkBar();\n this.scrollable && this.updateButtonState();\n },\n updated: function updated() {\n this.updateInkBar();\n this.scrollable && this.updateButtonState();\n },\n methods: {\n isTabPanel: function isTabPanel(child) {\n return child.type.name === 'TabPanel';\n },\n isTabActive: function isTabActive(index) {\n return this.d_activeIndex === index;\n },\n getTabProp: function getTabProp(tab, name) {\n return tab.props ? tab.props[name] : undefined;\n },\n getKey: function getKey(tab, index) {\n return this.getTabProp(tab, 'header') || index;\n },\n getTabHeaderActionId: function getTabHeaderActionId(index) {\n return \"\".concat(this.id, \"_\").concat(index, \"_header_action\");\n },\n getTabContentId: function getTabContentId(index) {\n return \"\".concat(this.id, \"_\").concat(index, \"_content\");\n },\n getTabPT: function getTabPT(tab, key, index) {\n var count = this.tabs.length;\n var tabMetaData = {\n props: tab.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: index,\n count: count,\n first: index === 0,\n last: index === count - 1,\n active: this.isTabActive(index)\n }\n };\n return mergeProps(this.ptm(\"tabpanel.\".concat(key), {\n tabpanel: tabMetaData\n }), this.ptm(\"tabpanel.\".concat(key), tabMetaData), this.ptmo(this.getTabProp(tab, 'pt'), key, tabMetaData));\n },\n onScroll: function onScroll(event) {\n this.scrollable && this.updateButtonState();\n event.preventDefault();\n },\n onPrevButtonClick: function onPrevButtonClick() {\n var content = this.$refs.content;\n var width = getWidth(content);\n var pos = content.scrollLeft - width;\n content.scrollLeft = pos <= 0 ? 0 : pos;\n },\n onNextButtonClick: function onNextButtonClick() {\n var content = this.$refs.content;\n var width = getWidth(content) - this.getVisibleButtonWidths();\n var pos = content.scrollLeft + width;\n var lastPos = content.scrollWidth - width;\n content.scrollLeft = pos >= lastPos ? lastPos : pos;\n },\n onTabClick: function onTabClick(event, tab, index) {\n this.changeActiveIndex(event, tab, index);\n this.$emit('tab-click', {\n originalEvent: event,\n index: index\n });\n },\n onTabKeyDown: function onTabKeyDown(event, tab, index) {\n switch (event.code) {\n case 'ArrowLeft':\n this.onTabArrowLeftKey(event);\n break;\n case 'ArrowRight':\n this.onTabArrowRightKey(event);\n break;\n case 'Home':\n this.onTabHomeKey(event);\n break;\n case 'End':\n this.onTabEndKey(event);\n break;\n case 'PageDown':\n this.onPageDownKey(event);\n break;\n case 'PageUp':\n this.onPageUpKey(event);\n break;\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n this.onTabEnterKey(event, tab, index);\n break;\n }\n },\n onTabArrowRightKey: function onTabArrowRightKey(event) {\n var nextHeaderAction = this.findNextHeaderAction(event.target.parentElement);\n nextHeaderAction ? this.changeFocusedTab(event, nextHeaderAction) : this.onTabHomeKey(event);\n event.preventDefault();\n },\n onTabArrowLeftKey: function onTabArrowLeftKey(event) {\n var prevHeaderAction = this.findPrevHeaderAction(event.target.parentElement);\n prevHeaderAction ? this.changeFocusedTab(event, prevHeaderAction) : this.onTabEndKey(event);\n event.preventDefault();\n },\n onTabHomeKey: function onTabHomeKey(event) {\n var firstHeaderAction = this.findFirstHeaderAction();\n this.changeFocusedTab(event, firstHeaderAction);\n event.preventDefault();\n },\n onTabEndKey: function onTabEndKey(event) {\n var lastHeaderAction = this.findLastHeaderAction();\n this.changeFocusedTab(event, lastHeaderAction);\n event.preventDefault();\n },\n onPageDownKey: function onPageDownKey(event) {\n this.scrollInView({\n index: this.$refs.nav.children.length - 2\n });\n event.preventDefault();\n },\n onPageUpKey: function onPageUpKey(event) {\n this.scrollInView({\n index: 0\n });\n event.preventDefault();\n },\n onTabEnterKey: function onTabEnterKey(event, tab, index) {\n this.changeActiveIndex(event, tab, index);\n event.preventDefault();\n },\n findNextHeaderAction: function findNextHeaderAction(tabElement) {\n var selfCheck = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var headerElement = selfCheck ? tabElement : tabElement.nextElementSibling;\n return headerElement ? getAttribute(headerElement, 'data-p-disabled') || getAttribute(headerElement, 'data-pc-section') === 'inkbar' ? this.findNextHeaderAction(headerElement) : findSingle(headerElement, '[data-pc-section=\"headeraction\"]') : null;\n },\n findPrevHeaderAction: function findPrevHeaderAction(tabElement) {\n var selfCheck = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var headerElement = selfCheck ? tabElement : tabElement.previousElementSibling;\n return headerElement ? getAttribute(headerElement, 'data-p-disabled') || getAttribute(headerElement, 'data-pc-section') === 'inkbar' ? this.findPrevHeaderAction(headerElement) : findSingle(headerElement, '[data-pc-section=\"headeraction\"]') : null;\n },\n findFirstHeaderAction: function findFirstHeaderAction() {\n return this.findNextHeaderAction(this.$refs.nav.firstElementChild, true);\n },\n findLastHeaderAction: function findLastHeaderAction() {\n return this.findPrevHeaderAction(this.$refs.nav.lastElementChild, true);\n },\n changeActiveIndex: function changeActiveIndex(event, tab, index) {\n if (!this.getTabProp(tab, 'disabled') && this.d_activeIndex !== index) {\n this.d_activeIndex = index;\n this.$emit('update:activeIndex', index);\n this.$emit('tab-change', {\n originalEvent: event,\n index: index\n });\n this.scrollInView({\n index: index\n });\n }\n },\n changeFocusedTab: function changeFocusedTab(event, element) {\n if (element) {\n focus(element);\n this.scrollInView({\n element: element\n });\n if (this.selectOnFocus) {\n var index = parseInt(element.parentElement.dataset.pcIndex, 10);\n var tab = this.tabs[index];\n this.changeActiveIndex(event, tab, index);\n }\n }\n },\n scrollInView: function scrollInView(_ref) {\n var element = _ref.element,\n _ref$index = _ref.index,\n index = _ref$index === void 0 ? -1 : _ref$index;\n var currentElement = element || this.$refs.nav.children[index];\n if (currentElement) {\n currentElement.scrollIntoView && currentElement.scrollIntoView({\n block: 'nearest'\n });\n }\n },\n updateInkBar: function updateInkBar() {\n var tabHeader = this.$refs.nav.children[this.d_activeIndex];\n this.$refs.inkbar.style.width = getWidth(tabHeader) + 'px';\n this.$refs.inkbar.style.left = getOffset(tabHeader).left - getOffset(this.$refs.nav).left + 'px';\n },\n updateButtonState: function updateButtonState() {\n var content = this.$refs.content;\n var scrollLeft = content.scrollLeft,\n scrollWidth = content.scrollWidth;\n var width = getWidth(content);\n this.isPrevButtonDisabled = scrollLeft === 0;\n this.isNextButtonDisabled = parseInt(scrollLeft) === scrollWidth - width;\n },\n getVisibleButtonWidths: function getVisibleButtonWidths() {\n var _this$$refs = this.$refs,\n prevBtn = _this$$refs.prevBtn,\n nextBtn = _this$$refs.nextBtn;\n return [prevBtn, nextBtn].reduce(function (acc, el) {\n return el ? acc + getWidth(el) : acc;\n }, 0);\n }\n },\n computed: {\n tabs: function tabs() {\n var _this = this;\n return this.$slots[\"default\"]().reduce(function (tabs, child) {\n if (_this.isTabPanel(child)) {\n tabs.push(child);\n } else if (child.children && child.children instanceof Array) {\n child.children.forEach(function (nestedChild) {\n if (_this.isTabPanel(nestedChild)) {\n tabs.push(nestedChild);\n }\n });\n }\n return tabs;\n }, []);\n },\n prevButtonAriaLabel: function prevButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.previous : undefined;\n },\n nextButtonAriaLabel: function nextButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.next : undefined;\n }\n },\n directives: {\n ripple: Ripple\n },\n components: {\n ChevronLeftIcon: ChevronLeftIcon,\n ChevronRightIcon: ChevronRightIcon\n }\n};\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar _hoisted_1 = [\"tabindex\", \"aria-label\"];\nvar _hoisted_2 = [\"data-p-active\", \"data-p-disabled\", \"data-pc-index\"];\nvar _hoisted_3 = [\"id\", \"tabindex\", \"aria-disabled\", \"aria-selected\", \"aria-controls\", \"onClick\", \"onKeydown\"];\nvar _hoisted_4 = [\"tabindex\", \"aria-label\"];\nvar _hoisted_5 = [\"id\", \"aria-labelledby\", \"data-pc-index\", \"data-p-active\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _directive_ripple = resolveDirective(\"ripple\");\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root'),\n role: \"tablist\"\n }, _ctx.ptmi('root')), [createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('navContainer')\n }, _ctx.ptm('navContainer')), [_ctx.scrollable && !$data.isPrevButtonDisabled ? withDirectives((openBlock(), createElementBlock(\"button\", mergeProps({\n key: 0,\n ref: \"prevBtn\",\n type: \"button\",\n \"class\": _ctx.cx('prevButton'),\n tabindex: _ctx.tabindex,\n \"aria-label\": $options.prevButtonAriaLabel,\n onClick: _cache[0] || (_cache[0] = function () {\n return $options.onPrevButtonClick && $options.onPrevButtonClick.apply($options, arguments);\n })\n }, _objectSpread(_objectSpread({}, _ctx.prevButtonProps), _ctx.ptm('prevButton')), {\n \"data-pc-group-section\": \"navbutton\"\n }), [renderSlot(_ctx.$slots, \"previcon\", {}, function () {\n return [(openBlock(), createBlock(resolveDynamicComponent(_ctx.prevIcon ? 'span' : 'ChevronLeftIcon'), mergeProps({\n \"aria-hidden\": \"true\",\n \"class\": _ctx.prevIcon\n }, _ctx.ptm('prevIcon')), null, 16, [\"class\"]))];\n })], 16, _hoisted_1)), [[_directive_ripple]]) : createCommentVNode(\"\", true), createElementVNode(\"div\", mergeProps({\n ref: \"content\",\n \"class\": _ctx.cx('navContent'),\n onScroll: _cache[1] || (_cache[1] = function () {\n return $options.onScroll && $options.onScroll.apply($options, arguments);\n })\n }, _ctx.ptm('navContent')), [createElementVNode(\"ul\", mergeProps({\n ref: \"nav\",\n \"class\": _ctx.cx('nav')\n }, _ctx.ptm('nav')), [(openBlock(true), createElementBlock(Fragment, null, renderList($options.tabs, function (tab, index) {\n return openBlock(), createElementBlock(\"li\", mergeProps({\n key: $options.getKey(tab, index),\n style: $options.getTabProp(tab, 'headerStyle'),\n \"class\": _ctx.cx('tab.header', {\n tab: tab,\n index: index\n }),\n role: \"presentation\",\n ref_for: true\n }, _objectSpread(_objectSpread(_objectSpread({}, $options.getTabProp(tab, 'headerProps')), $options.getTabPT(tab, 'root', index)), $options.getTabPT(tab, 'header', index)), {\n \"data-pc-name\": \"tabpanel\",\n \"data-p-active\": $data.d_activeIndex === index,\n \"data-p-disabled\": $options.getTabProp(tab, 'disabled'),\n \"data-pc-index\": index\n }), [withDirectives((openBlock(), createElementBlock(\"a\", mergeProps({\n id: $options.getTabHeaderActionId(index),\n \"class\": _ctx.cx('tab.headerAction'),\n tabindex: $options.getTabProp(tab, 'disabled') || !$options.isTabActive(index) ? -1 : _ctx.tabindex,\n role: \"tab\",\n \"aria-disabled\": $options.getTabProp(tab, 'disabled'),\n \"aria-selected\": $options.isTabActive(index),\n \"aria-controls\": $options.getTabContentId(index),\n onClick: function onClick($event) {\n return $options.onTabClick($event, tab, index);\n },\n onKeydown: function onKeydown($event) {\n return $options.onTabKeyDown($event, tab, index);\n },\n ref_for: true\n }, _objectSpread(_objectSpread({}, $options.getTabProp(tab, 'headerActionProps')), $options.getTabPT(tab, 'headerAction', index))), [tab.props && tab.props.header ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('tab.headerTitle'),\n ref_for: true\n }, $options.getTabPT(tab, 'headerTitle', index)), toDisplayString(tab.props.header), 17)) : createCommentVNode(\"\", true), tab.children && tab.children.header ? (openBlock(), createBlock(resolveDynamicComponent(tab.children.header), {\n key: 1\n })) : createCommentVNode(\"\", true)], 16, _hoisted_3)), [[_directive_ripple]])], 16, _hoisted_2);\n }), 128)), createElementVNode(\"li\", mergeProps({\n ref: \"inkbar\",\n \"class\": _ctx.cx('inkbar'),\n role: \"presentation\",\n \"aria-hidden\": \"true\"\n }, _ctx.ptm('inkbar')), null, 16)], 16)], 16), _ctx.scrollable && !$data.isNextButtonDisabled ? withDirectives((openBlock(), createElementBlock(\"button\", mergeProps({\n key: 1,\n ref: \"nextBtn\",\n type: \"button\",\n \"class\": _ctx.cx('nextButton'),\n tabindex: _ctx.tabindex,\n \"aria-label\": $options.nextButtonAriaLabel,\n onClick: _cache[2] || (_cache[2] = function () {\n return $options.onNextButtonClick && $options.onNextButtonClick.apply($options, arguments);\n })\n }, _objectSpread(_objectSpread({}, _ctx.nextButtonProps), _ctx.ptm('nextButton')), {\n \"data-pc-group-section\": \"navbutton\"\n }), [renderSlot(_ctx.$slots, \"nexticon\", {}, function () {\n return [(openBlock(), createBlock(resolveDynamicComponent(_ctx.nextIcon ? 'span' : 'ChevronRightIcon'), mergeProps({\n \"aria-hidden\": \"true\",\n \"class\": _ctx.nextIcon\n }, _ctx.ptm('nextIcon')), null, 16, [\"class\"]))];\n })], 16, _hoisted_4)), [[_directive_ripple]]) : createCommentVNode(\"\", true)], 16), createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('panelContainer')\n }, _ctx.ptm('panelContainer')), [(openBlock(true), createElementBlock(Fragment, null, renderList($options.tabs, function (tab, index) {\n return openBlock(), createElementBlock(Fragment, {\n key: $options.getKey(tab, index)\n }, [(_ctx.lazy ? $options.isTabActive(index) : true) ? withDirectives((openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n id: $options.getTabContentId(index),\n style: $options.getTabProp(tab, 'contentStyle'),\n \"class\": _ctx.cx('tab.content', {\n tab: tab\n }),\n role: \"tabpanel\",\n \"aria-labelledby\": $options.getTabHeaderActionId(index),\n ref_for: true\n }, _objectSpread(_objectSpread(_objectSpread({}, $options.getTabProp(tab, 'contentProps')), $options.getTabPT(tab, 'root', index)), $options.getTabPT(tab, 'content', index)), {\n \"data-pc-name\": \"tabpanel\",\n \"data-pc-index\": index,\n \"data-p-active\": $data.d_activeIndex === index\n }), [(openBlock(), createBlock(resolveDynamicComponent(tab)))], 16, _hoisted_5)), [[vShow, _ctx.lazy ? true : $options.isTabActive(index)]]) : createCommentVNode(\"\", true)], 64);\n }), 128))], 16)], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n","\n\n\n","import { defineStore } from 'pinia'\nimport { computed, markRaw, ref } from 'vue'\n\nimport type { ComfyExtension } from '@/types/comfy'\n\n/**\n * These extensions are always active, even if they are disabled in the setting.\n */\nexport const ALWAYS_ENABLED_EXTENSIONS: readonly string[] = []\n\nexport const ALWAYS_DISABLED_EXTENSIONS: readonly string[] = [\n // pysssss.Locking is replaced by pin/unpin in ComfyUI core.\n // https://github.com/Comfy-Org/litegraph.js/pull/117\n 'pysssss.Locking',\n // pysssss.SnapToGrid is replaced by Comfy.Graph.AlwaysSnapToGrid in ComfyUI core.\n // pysssss.SnapToGrid tries to write global app.shiftDown state, which is no longer\n // allowed since v1.3.12.\n // https://github.com/Comfy-Org/ComfyUI_frontend/issues/1176\n 'pysssss.SnapToGrid'\n]\n\nexport const useExtensionStore = defineStore('extension', () => {\n // For legacy reasons, the name uniquely identifies an extension\n const extensionByName = ref>({})\n const extensions = computed(() => Object.values(extensionByName.value))\n // Not using computed because disable extension requires reloading of the page.\n // Dynamically update this list won't affect extensions that are already loaded.\n const disabledExtensionNames = ref>(new Set())\n\n // Disabled extension names that are currently not in the extension list.\n // If a node pack is disabled in the backend, we shouldn't remove the configuration\n // of the frontend extension disable list, in case the node pack is re-enabled.\n const inactiveDisabledExtensionNames = computed(() => {\n return Array.from(disabledExtensionNames.value).filter(\n (name) => !(name in extensionByName.value)\n )\n })\n\n const isExtensionEnabled = (name: string) =>\n !disabledExtensionNames.value.has(name)\n const enabledExtensions = computed(() => {\n return extensions.value.filter((ext) => isExtensionEnabled(ext.name))\n })\n\n function isExtensionReadOnly(name: string) {\n return (\n ALWAYS_DISABLED_EXTENSIONS.includes(name) ||\n ALWAYS_ENABLED_EXTENSIONS.includes(name)\n )\n }\n\n function registerExtension(extension: ComfyExtension) {\n if (!extension.name) {\n throw new Error(\"Extensions must have a 'name' property.\")\n }\n\n if (extensionByName.value[extension.name]) {\n throw new Error(`Extension named '${extension.name}' already registered.`)\n }\n\n if (disabledExtensionNames.value.has(extension.name)) {\n console.log(`Extension ${extension.name} is disabled.`)\n }\n\n extensionByName.value[extension.name] = markRaw(extension)\n }\n\n function loadDisabledExtensionNames(names: string[]) {\n disabledExtensionNames.value = new Set(names)\n for (const name of ALWAYS_DISABLED_EXTENSIONS) {\n disabledExtensionNames.value.add(name)\n }\n for (const name of ALWAYS_ENABLED_EXTENSIONS) {\n disabledExtensionNames.value.delete(name)\n }\n }\n\n /**\n * Core extensions are extensions that are defined in the core package.\n * See /extensions/core/index.ts for the list.\n */\n const coreExtensionNames = ref([])\n function captureCoreExtensions() {\n coreExtensionNames.value = extensions.value.map((ext) => ext.name)\n }\n\n function isCoreExtension(name: string) {\n return coreExtensionNames.value.includes(name)\n }\n\n const hasThirdPartyExtensions = computed(() => {\n return extensions.value.some((ext) => !isCoreExtension(ext.name))\n })\n\n return {\n extensions,\n enabledExtensions,\n inactiveDisabledExtensionNames,\n isExtensionEnabled,\n isExtensionReadOnly,\n registerExtension,\n loadDisabledExtensionNames,\n captureCoreExtensions,\n isCoreExtension,\n hasThirdPartyExtensions\n }\n})\n","import { defineStore } from 'pinia'\nimport { ref } from 'vue'\n\nimport { api } from '@/scripts/api'\nimport type { SystemStats } from '@/types/apiTypes'\n\nexport const useSystemStatsStore = defineStore('systemStats', () => {\n const systemStats = ref(null)\n const isLoading = ref(false)\n const error = ref(null)\n\n async function fetchSystemStats() {\n isLoading.value = true\n error.value = null\n\n try {\n systemStats.value = await api.getSystemStats()\n } catch (err) {\n error.value =\n err instanceof Error\n ? err.message\n : 'An error occurred while fetching system stats'\n console.error('Error fetching system stats:', err)\n } finally {\n isLoading.value = false\n }\n }\n\n return {\n systemStats,\n isLoading,\n error,\n fetchSystemStats\n }\n})\n","import { defineStore } from 'pinia'\nimport { computed } from 'vue'\n\nimport { AboutPageBadge } from '@/types/comfy'\nimport { electronAPI, isElectron } from '@/utils/envUtil'\n\nimport { useExtensionStore } from './extensionStore'\nimport { useSystemStatsStore } from './systemStatsStore'\n\nexport const useAboutPanelStore = defineStore('aboutPanel', () => {\n const frontendVersion = __COMFYUI_FRONTEND_VERSION__\n const extensionStore = useExtensionStore()\n const systemStatsStore = useSystemStatsStore()\n const coreVersion = computed(\n () => systemStatsStore?.systemStats?.system?.comfyui_version ?? ''\n )\n\n const coreBadges = computed(() => [\n // In electron, the ComfyUI is packaged without the git repo,\n // so the python server's API doesn't have the version info.\n {\n label: `ComfyUI ${\n isElectron()\n ? 'v' + electronAPI().getComfyUIVersion()\n : coreVersion.value\n }`,\n url: 'https://github.com/comfyanonymous/ComfyUI',\n icon: 'pi pi-github'\n },\n {\n label: `ComfyUI_frontend v${frontendVersion}`,\n url: 'https://github.com/Comfy-Org/ComfyUI_frontend',\n icon: 'pi pi-github'\n },\n {\n label: 'Discord',\n url: 'https://www.comfy.org/discord',\n icon: 'pi pi-discord'\n },\n { label: 'ComfyOrg', url: 'https://www.comfy.org/', icon: 'pi pi-globe' }\n ])\n\n const allBadges = computed(() => [\n ...coreBadges.value,\n ...extensionStore.extensions.flatMap((e) => e.aboutPageBadges ?? [])\n ])\n\n return {\n badges: allBadges\n }\n})\n","\n\n\n","\n\n\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'ExclamationTriangleIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M13.4018 13.1893H0.598161C0.49329 13.189 0.390283 13.1615 0.299143 13.1097C0.208003 13.0578 0.131826 12.9832 0.0780112 12.8932C0.0268539 12.8015 0 12.6982 0 12.5931C0 12.4881 0.0268539 12.3848 0.0780112 12.293L6.47985 1.08982C6.53679 1.00399 6.61408 0.933574 6.70484 0.884867C6.7956 0.836159 6.897 0.810669 7 0.810669C7.103 0.810669 7.2044 0.836159 7.29516 0.884867C7.38592 0.933574 7.46321 1.00399 7.52015 1.08982L13.922 12.293C13.9731 12.3848 14 12.4881 14 12.5931C14 12.6982 13.9731 12.8015 13.922 12.8932C13.8682 12.9832 13.792 13.0578 13.7009 13.1097C13.6097 13.1615 13.5067 13.189 13.4018 13.1893ZM1.63046 11.989H12.3695L7 2.59425L1.63046 11.989Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M6.99996 8.78801C6.84143 8.78594 6.68997 8.72204 6.57787 8.60993C6.46576 8.49782 6.40186 8.34637 6.39979 8.18784V5.38703C6.39979 5.22786 6.46302 5.0752 6.57557 4.96265C6.68813 4.85009 6.84078 4.78686 6.99996 4.78686C7.15914 4.78686 7.31179 4.85009 7.42435 4.96265C7.5369 5.0752 7.60013 5.22786 7.60013 5.38703V8.18784C7.59806 8.34637 7.53416 8.49782 7.42205 8.60993C7.30995 8.72204 7.15849 8.78594 6.99996 8.78801Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_3 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M6.99996 11.1887C6.84143 11.1866 6.68997 11.1227 6.57787 11.0106C6.46576 10.8985 6.40186 10.7471 6.39979 10.5885V10.1884C6.39979 10.0292 6.46302 9.87658 6.57557 9.76403C6.68813 9.65147 6.84078 9.58824 6.99996 9.58824C7.15914 9.58824 7.31179 9.65147 7.42435 9.76403C7.5369 9.87658 7.60013 10.0292 7.60013 10.1884V10.5885C7.59806 10.7471 7.53416 10.8985 7.42205 11.0106C7.30995 11.1227 7.15849 11.1866 6.99996 11.1887Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_4 = [_hoisted_1, _hoisted_2, _hoisted_3];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_4, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'InfoCircleIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n \"clip-rule\": \"evenodd\",\n d: \"M3.11101 12.8203C4.26215 13.5895 5.61553 14 7 14C8.85652 14 10.637 13.2625 11.9497 11.9497C13.2625 10.637 14 8.85652 14 7C14 5.61553 13.5895 4.26215 12.8203 3.11101C12.0511 1.95987 10.9579 1.06266 9.67879 0.532846C8.3997 0.00303296 6.99224 -0.13559 5.63437 0.134506C4.2765 0.404603 3.02922 1.07129 2.05026 2.05026C1.07129 3.02922 0.404603 4.2765 0.134506 5.63437C-0.13559 6.99224 0.00303296 8.3997 0.532846 9.67879C1.06266 10.9579 1.95987 12.0511 3.11101 12.8203ZM3.75918 2.14976C4.71846 1.50879 5.84628 1.16667 7 1.16667C8.5471 1.16667 10.0308 1.78125 11.1248 2.87521C12.2188 3.96918 12.8333 5.45291 12.8333 7C12.8333 8.15373 12.4912 9.28154 11.8502 10.2408C11.2093 11.2001 10.2982 11.9478 9.23232 12.3893C8.16642 12.8308 6.99353 12.9463 5.86198 12.7212C4.73042 12.4962 3.69102 11.9406 2.87521 11.1248C2.05941 10.309 1.50384 9.26958 1.27876 8.13803C1.05367 7.00647 1.16919 5.83358 1.61071 4.76768C2.05222 3.70178 2.79989 2.79074 3.75918 2.14976ZM7.00002 4.8611C6.84594 4.85908 6.69873 4.79698 6.58977 4.68801C6.48081 4.57905 6.4187 4.43185 6.41669 4.27776V3.88888C6.41669 3.73417 6.47815 3.58579 6.58754 3.4764C6.69694 3.367 6.84531 3.30554 7.00002 3.30554C7.15473 3.30554 7.3031 3.367 7.4125 3.4764C7.52189 3.58579 7.58335 3.73417 7.58335 3.88888V4.27776C7.58134 4.43185 7.51923 4.57905 7.41027 4.68801C7.30131 4.79698 7.1541 4.85908 7.00002 4.8611ZM7.00002 10.6945C6.84594 10.6925 6.69873 10.6304 6.58977 10.5214C6.48081 10.4124 6.4187 10.2652 6.41669 10.1111V6.22225C6.41669 6.06754 6.47815 5.91917 6.58754 5.80977C6.69694 5.70037 6.84531 5.63892 7.00002 5.63892C7.15473 5.63892 7.3031 5.70037 7.4125 5.80977C7.52189 5.91917 7.58335 6.06754 7.58335 6.22225V10.1111C7.58134 10.2652 7.51923 10.4124 7.41027 10.5214C7.30131 10.6304 7.1541 10.6925 7.00002 10.6945Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-message {\\n border-radius: \".concat(dt('message.border.radius'), \";\\n outline-width: \").concat(dt('message.border.width'), \";\\n outline-style: solid;\\n}\\n\\n.p-message-content {\\n display: flex;\\n align-items: center;\\n padding: \").concat(dt('message.content.padding'), \";\\n gap: \").concat(dt('message.content.gap'), \";\\n height: 100%;\\n}\\n\\n.p-message-icon {\\n flex-shrink: 0;\\n}\\n\\n.p-message-close-button {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n flex-shrink: 0;\\n margin: 0 0 0 auto;\\n overflow: hidden;\\n position: relative;\\n width: \").concat(dt('message.close.button.width'), \";\\n height: \").concat(dt('message.close.button.height'), \";\\n border-radius: \").concat(dt('message.close.button.border.radius'), \";\\n background: transparent;\\n transition: background \").concat(dt('message.transition.duration'), \", color \").concat(dt('message.transition.duration'), \", outline-color \").concat(dt('message.transition.duration'), \", box-shadow \").concat(dt('message.transition.duration'), \", opacity 0.3s;\\n outline-color: transparent;\\n color: inherit;\\n padding: 0;\\n border: none;\\n cursor: pointer;\\n user-select: none;\\n}\\n\\n.p-message-close-icon {\\n font-size: \").concat(dt('message.close.icon.size'), \";\\n width: \").concat(dt('message.close.icon.size'), \";\\n height: \").concat(dt('message.close.icon.size'), \";\\n}\\n\\n.p-message-close-button:focus-visible {\\n outline-width: \").concat(dt('message.close.button.focus.ring.width'), \";\\n outline-style: \").concat(dt('message.close.button.focus.ring.style'), \";\\n outline-offset: \").concat(dt('message.close.button.focus.ring.offset'), \";\\n}\\n\\n.p-message-info {\\n background: \").concat(dt('message.info.background'), \";\\n outline-color: \").concat(dt('message.info.border.color'), \";\\n color: \").concat(dt('message.info.color'), \";\\n box-shadow: \").concat(dt('message.info.shadow'), \";\\n}\\n\\n.p-message-info .p-message-close-button:focus-visible {\\n outline-color: \").concat(dt('message.info.close.button.focus.ring.color'), \";\\n box-shadow: \").concat(dt('message.info.close.button.focus.ring.shadow'), \";\\n}\\n\\n.p-message-info .p-message-close-button:hover {\\n background: \").concat(dt('message.info.close.button.hover.background'), \";\\n}\\n\\n.p-message-success {\\n background: \").concat(dt('message.success.background'), \";\\n outline-color: \").concat(dt('message.success.border.color'), \";\\n color: \").concat(dt('message.success.color'), \";\\n box-shadow: \").concat(dt('message.success.shadow'), \";\\n}\\n\\n.p-message-success .p-message-close-button:focus-visible {\\n outline-color: \").concat(dt('message.success.close.button.focus.ring.color'), \";\\n box-shadow: \").concat(dt('message.success.close.button.focus.ring.shadow'), \";\\n}\\n\\n.p-message-success .p-message-close-button:hover {\\n background: \").concat(dt('message.success.close.button.hover.background'), \";\\n}\\n\\n.p-message-warn {\\n background: \").concat(dt('message.warn.background'), \";\\n outline-color: \").concat(dt('message.warn.border.color'), \";\\n color: \").concat(dt('message.warn.color'), \";\\n box-shadow: \").concat(dt('message.warn.shadow'), \";\\n}\\n\\n.p-message-warn .p-message-close-button:focus-visible {\\n outline-color: \").concat(dt('message.warn.close.button.focus.ring.color'), \";\\n box-shadow: \").concat(dt('message.warn.close.button.focus.ring.shadow'), \";\\n}\\n\\n.p-message-warn .p-message-close-button:hover {\\n background: \").concat(dt('message.warn.close.button.hover.background'), \";\\n}\\n\\n.p-message-error {\\n background: \").concat(dt('message.error.background'), \";\\n outline-color: \").concat(dt('message.error.border.color'), \";\\n color: \").concat(dt('message.error.color'), \";\\n box-shadow: \").concat(dt('message.error.shadow'), \";\\n}\\n\\n.p-message-error .p-message-close-button:focus-visible {\\n outline-color: \").concat(dt('message.error.close.button.focus.ring.color'), \";\\n box-shadow: \").concat(dt('message.error.close.button.focus.ring.shadow'), \";\\n}\\n\\n.p-message-error .p-message-close-button:hover {\\n background: \").concat(dt('message.error.close.button.hover.background'), \";\\n}\\n\\n.p-message-secondary {\\n background: \").concat(dt('message.secondary.background'), \";\\n outline-color: \").concat(dt('message.secondary.border.color'), \";\\n color: \").concat(dt('message.secondary.color'), \";\\n box-shadow: \").concat(dt('message.secondary.shadow'), \";\\n}\\n\\n.p-message-secondary .p-message-close-button:focus-visible {\\n outline-color: \").concat(dt('message.secondary.close.button.focus.ring.color'), \";\\n box-shadow: \").concat(dt('message.secondary.close.button.focus.ring.shadow'), \";\\n}\\n\\n.p-message-secondary .p-message-close-button:hover {\\n background: \").concat(dt('message.secondary.close.button.hover.background'), \";\\n}\\n\\n.p-message-contrast {\\n background: \").concat(dt('message.contrast.background'), \";\\n outline-color: \").concat(dt('message.contrast.border.color'), \";\\n color: \").concat(dt('message.contrast.color'), \";\\n box-shadow: \").concat(dt('message.contrast.shadow'), \";\\n}\\n\\n.p-message-contrast .p-message-close-button:focus-visible {\\n outline-color: \").concat(dt('message.contrast.close.button.focus.ring.color'), \";\\n box-shadow: \").concat(dt('message.contrast.close.button.focus.ring.shadow'), \";\\n}\\n\\n.p-message-contrast .p-message-close-button:hover {\\n background: \").concat(dt('message.contrast.close.button.hover.background'), \";\\n}\\n\\n.p-message-text {\\n font-size: \").concat(dt('message.text.font.size'), \";\\n font-weight: \").concat(dt('message.text.font.weight'), \";\\n}\\n\\n.p-message-icon {\\n font-size: \").concat(dt('message.icon.size'), \";\\n width: \").concat(dt('message.icon.size'), \";\\n height: \").concat(dt('message.icon.size'), \";\\n}\\n\\n.p-message-enter-from {\\n opacity: 0;\\n}\\n\\n.p-message-enter-active {\\n transition: opacity 0.3s;\\n}\\n\\n.p-message.p-message-leave-from {\\n max-height: 1000px;\\n}\\n\\n.p-message.p-message-leave-to {\\n max-height: 0;\\n opacity: 0;\\n margin: 0;\\n}\\n\\n.p-message-leave-active {\\n overflow: hidden;\\n transition: max-height 0.45s cubic-bezier(0, 1, 0, 1), opacity 0.3s, margin 0.3s;\\n}\\n\\n.p-message-leave-active .p-message-close-button {\\n opacity: 0;\\n}\\n\");\n};\nvar classes = {\n root: function root(_ref2) {\n var props = _ref2.props;\n return 'p-message p-component p-message-' + props.severity;\n },\n content: 'p-message-content',\n icon: 'p-message-icon',\n text: 'p-message-text',\n closeButton: 'p-message-close-button',\n closeIcon: 'p-message-close-icon'\n};\nvar MessageStyle = BaseStyle.extend({\n name: 'message',\n theme: theme,\n classes: classes\n});\n\nexport { MessageStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import CheckIcon from '@primevue/icons/check';\nimport ExclamationTriangleIcon from '@primevue/icons/exclamationtriangle';\nimport InfoCircleIcon from '@primevue/icons/infocircle';\nimport TimesIcon from '@primevue/icons/times';\nimport TimesCircleIcon from '@primevue/icons/timescircle';\nimport Ripple from 'primevue/ripple';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport MessageStyle from 'primevue/message/style';\nimport { resolveComponent, resolveDirective, openBlock, createBlock, Transition, mergeProps, withCtx, withDirectives, createElementVNode, renderSlot, createElementBlock, resolveDynamicComponent, createCommentVNode, vShow } from 'vue';\n\nvar script$1 = {\n name: 'BaseMessage',\n \"extends\": BaseComponent,\n props: {\n severity: {\n type: String,\n \"default\": 'info'\n },\n closable: {\n type: Boolean,\n \"default\": false\n },\n life: {\n type: Number,\n \"default\": null\n },\n icon: {\n type: String,\n \"default\": undefined\n },\n closeIcon: {\n type: String,\n \"default\": undefined\n },\n closeButtonProps: {\n type: null,\n \"default\": null\n }\n },\n style: MessageStyle,\n provide: function provide() {\n return {\n $pcMessage: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'Message',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['close', 'life-end'],\n timeout: null,\n data: function data() {\n return {\n visible: true\n };\n },\n mounted: function mounted() {\n var _this = this;\n if (this.life) {\n setTimeout(function () {\n _this.visible = false;\n _this.$emit('life-end');\n }, this.life);\n }\n },\n methods: {\n close: function close(event) {\n this.visible = false;\n this.$emit('close', event);\n }\n },\n computed: {\n iconComponent: function iconComponent() {\n return {\n info: InfoCircleIcon,\n success: CheckIcon,\n warn: ExclamationTriangleIcon,\n error: TimesCircleIcon\n }[this.severity];\n },\n closeAriaLabel: function closeAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.close : undefined;\n }\n },\n directives: {\n ripple: Ripple\n },\n components: {\n TimesIcon: TimesIcon,\n InfoCircleIcon: InfoCircleIcon,\n CheckIcon: CheckIcon,\n ExclamationTriangleIcon: ExclamationTriangleIcon,\n TimesCircleIcon: TimesCircleIcon\n }\n};\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar _hoisted_1 = [\"aria-label\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_TimesIcon = resolveComponent(\"TimesIcon\");\n var _directive_ripple = resolveDirective(\"ripple\");\n return openBlock(), createBlock(Transition, mergeProps({\n name: \"p-message\",\n appear: \"\"\n }, _ctx.ptmi('transition')), {\n \"default\": withCtx(function () {\n return [withDirectives(createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('root'),\n role: \"alert\",\n \"aria-live\": \"assertive\",\n \"aria-atomic\": \"true\"\n }, _ctx.ptm('root')), [_ctx.$slots.container ? renderSlot(_ctx.$slots, \"container\", {\n key: 0,\n closeCallback: $options.close\n }) : (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 1,\n \"class\": _ctx.cx('content')\n }, _ctx.ptm('content')), [renderSlot(_ctx.$slots, \"icon\", {\n \"class\": \"p-message-icon\"\n }, function () {\n return [(openBlock(), createBlock(resolveDynamicComponent(_ctx.icon ? 'span' : null), mergeProps({\n \"class\": [_ctx.cx('icon'), _ctx.icon]\n }, _ctx.ptm('icon')), null, 16, [\"class\"]))];\n }), _ctx.$slots[\"default\"] ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n \"class\": [\"p-message-text\", _ctx.cx('text')]\n }, _ctx.ptm('text')), [renderSlot(_ctx.$slots, \"default\")], 16)) : createCommentVNode(\"\", true), _ctx.closable ? withDirectives((openBlock(), createElementBlock(\"button\", mergeProps({\n key: 1,\n \"class\": _ctx.cx('closeButton'),\n \"aria-label\": $options.closeAriaLabel,\n type: \"button\",\n onClick: _cache[0] || (_cache[0] = function ($event) {\n return $options.close($event);\n })\n }, _objectSpread(_objectSpread({}, _ctx.closeButtonProps), _ctx.ptm('closeButton'))), [renderSlot(_ctx.$slots, \"closeicon\", {}, function () {\n return [_ctx.closeIcon ? (openBlock(), createElementBlock(\"i\", mergeProps({\n key: 0,\n \"class\": [_ctx.cx('closeIcon'), _ctx.closeIcon]\n }, _ctx.ptm('closeIcon')), null, 16)) : (openBlock(), createBlock(_component_TimesIcon, mergeProps({\n key: 1,\n \"class\": [_ctx.cx('closeIcon'), _ctx.closeIcon]\n }, _ctx.ptm('closeIcon')), null, 16, [\"class\"]))];\n })], 16, _hoisted_1)), [[_directive_ripple]]) : createCommentVNode(\"\", true)], 16))], 16), [[vShow, $data.visible]])];\n }),\n _: 3\n }, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'ChevronDownIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M7.01744 10.398C6.91269 10.3985 6.8089 10.378 6.71215 10.3379C6.61541 10.2977 6.52766 10.2386 6.45405 10.1641L1.13907 4.84913C1.03306 4.69404 0.985221 4.5065 1.00399 4.31958C1.02276 4.13266 1.10693 3.95838 1.24166 3.82747C1.37639 3.69655 1.55301 3.61742 1.74039 3.60402C1.92777 3.59062 2.11386 3.64382 2.26584 3.75424L7.01744 8.47394L11.769 3.75424C11.9189 3.65709 12.097 3.61306 12.2748 3.62921C12.4527 3.64535 12.6199 3.72073 12.7498 3.84328C12.8797 3.96582 12.9647 4.12842 12.9912 4.30502C13.0177 4.48162 12.9841 4.662 12.8958 4.81724L7.58083 10.1322C7.50996 10.2125 7.42344 10.2775 7.32656 10.3232C7.22968 10.3689 7.12449 10.3944 7.01744 10.398Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import { EventBus } from '@primeuix/utils/eventbus';\n\nvar OverlayEventBus = EventBus();\n\nexport { OverlayEventBus as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-select {\\n display: inline-flex;\\n cursor: pointer;\\n position: relative;\\n user-select: none;\\n background: \".concat(dt('select.background'), \";\\n border: 1px solid \").concat(dt('select.border.color'), \";\\n transition: background \").concat(dt('select.transition.duration'), \", color \").concat(dt('select.transition.duration'), \", border-color \").concat(dt('select.transition.duration'), \",\\n outline-color \").concat(dt('select.transition.duration'), \", box-shadow \").concat(dt('select.transition.duration'), \";\\n border-radius: \").concat(dt('select.border.radius'), \";\\n outline-color: transparent;\\n box-shadow: \").concat(dt('select.shadow'), \";\\n}\\n\\n.p-select:not(.p-disabled):hover {\\n border-color: \").concat(dt('select.hover.border.color'), \";\\n}\\n\\n.p-select:not(.p-disabled).p-focus {\\n border-color: \").concat(dt('select.focus.border.color'), \";\\n box-shadow: \").concat(dt('select.focus.ring.shadow'), \";\\n outline: \").concat(dt('select.focus.ring.width'), \" \").concat(dt('select.focus.ring.style'), \" \").concat(dt('select.focus.ring.color'), \";\\n outline-offset: \").concat(dt('select.focus.ring.offset'), \";\\n}\\n\\n.p-select.p-variant-filled {\\n background: \").concat(dt('select.filled.background'), \";\\n}\\n\\n.p-select.p-variant-filled.p-focus {\\n background: \").concat(dt('select.filled.focus.background'), \";\\n}\\n\\n.p-select.p-invalid {\\n border-color: \").concat(dt('select.invalid.border.color'), \";\\n}\\n\\n.p-select.p-disabled {\\n opacity: 1;\\n background: \").concat(dt('select.disabled.background'), \";\\n}\\n\\n.p-select-clear-icon {\\n position: absolute;\\n top: 50%;\\n margin-top: -0.5rem;\\n color: \").concat(dt('select.clear.icon.color'), \";\\n right: \").concat(dt('select.dropdown.width'), \";\\n}\\n\\n.p-select-dropdown {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n flex-shrink: 0;\\n background: transparent;\\n color: \").concat(dt('select.dropdown.color'), \";\\n width: \").concat(dt('select.dropdown.width'), \";\\n border-top-right-radius: \").concat(dt('select.border.radius'), \";\\n border-bottom-right-radius: \").concat(dt('select.border.radius'), \";\\n}\\n\\n.p-select-label {\\n display: block;\\n white-space: nowrap;\\n overflow: hidden;\\n flex: 1 1 auto;\\n width: 1%;\\n padding: \").concat(dt('select.padding.y'), \" \").concat(dt('select.padding.x'), \";\\n text-overflow: ellipsis;\\n cursor: pointer;\\n color: \").concat(dt('select.color'), \";\\n background: transparent;\\n border: 0 none;\\n outline: 0 none;\\n}\\n\\n.p-select-label.p-placeholder {\\n color: \").concat(dt('select.placeholder.color'), \";\\n}\\n\\n.p-select:has(.p-select-clear-icon) .p-select-label {\\n padding-right: calc(1rem + \").concat(dt('select.padding.x'), \");\\n}\\n\\n.p-select.p-disabled .p-select-label {\\n color: \").concat(dt('select.disabled.color'), \";\\n}\\n\\n.p-select-label-empty {\\n overflow: hidden;\\n opacity: 0;\\n}\\n\\ninput.p-select-label {\\n cursor: default;\\n}\\n\\n.p-select .p-select-overlay {\\n min-width: 100%;\\n}\\n\\n.p-select-overlay {\\n position: absolute;\\n top: 0;\\n left: 0;\\n background: \").concat(dt('select.overlay.background'), \";\\n color: \").concat(dt('select.overlay.color'), \";\\n border: 1px solid \").concat(dt('select.overlay.border.color'), \";\\n border-radius: \").concat(dt('select.overlay.border.radius'), \";\\n box-shadow: \").concat(dt('select.overlay.shadow'), \";\\n}\\n\\n.p-select-header {\\n padding: \").concat(dt('select.list.header.padding'), \";\\n}\\n\\n.p-select-filter {\\n width: 100%;\\n}\\n\\n.p-select-list-container {\\n overflow: auto;\\n}\\n\\n.p-select-option-group {\\n cursor: auto;\\n margin: 0;\\n padding: \").concat(dt('select.option.group.padding'), \";\\n background: \").concat(dt('select.option.group.background'), \";\\n color: \").concat(dt('select.option.group.color'), \";\\n font-weight: \").concat(dt('select.option.group.font.weight'), \";\\n}\\n\\n.p-select-list {\\n margin: 0;\\n padding: 0;\\n list-style-type: none;\\n padding: \").concat(dt('select.list.padding'), \";\\n gap: \").concat(dt('select.list.gap'), \";\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.p-select-option {\\n cursor: pointer;\\n font-weight: normal;\\n white-space: nowrap;\\n position: relative;\\n overflow: hidden;\\n display: flex;\\n align-items: center;\\n padding: \").concat(dt('select.option.padding'), \";\\n border: 0 none;\\n color: \").concat(dt('select.option.color'), \";\\n background: transparent;\\n transition: background \").concat(dt('select.transition.duration'), \", color \").concat(dt('select.transition.duration'), \", border-color \").concat(dt('select.transition.duration'), \",\\n box-shadow \").concat(dt('select.transition.duration'), \", outline-color \").concat(dt('select.transition.duration'), \";\\n border-radius: \").concat(dt('select.option.border.radius'), \";\\n}\\n\\n.p-select-option:not(.p-select-option-selected):not(.p-disabled).p-focus {\\n background: \").concat(dt('select.option.focus.background'), \";\\n color: \").concat(dt('select.option.focus.color'), \";\\n}\\n\\n.p-select-option.p-select-option-selected {\\n background: \").concat(dt('select.option.selected.background'), \";\\n color: \").concat(dt('select.option.selected.color'), \";\\n}\\n\\n.p-select-option.p-select-option-selected.p-focus {\\n background: \").concat(dt('select.option.selected.focus.background'), \";\\n color: \").concat(dt('select.option.selected.focus.color'), \";\\n}\\n\\n.p-select-option-check-icon {\\n position: relative;\\n margin-inline-start: \").concat(dt('select.checkmark.gutter.start'), \";\\n margin-inline-end: \").concat(dt('select.checkmark.gutter.end'), \";\\n color: \").concat(dt('select.checkmark.color'), \";\\n}\\n\\n.p-select-empty-message {\\n padding: \").concat(dt('select.empty.message.padding'), \";\\n}\\n\\n.p-select-fluid {\\n display: flex;\\n}\\n\");\n};\nvar classes = {\n root: function root(_ref2) {\n var instance = _ref2.instance,\n props = _ref2.props,\n state = _ref2.state;\n return ['p-select p-component p-inputwrapper', {\n 'p-disabled': props.disabled,\n 'p-invalid': props.invalid,\n 'p-variant-filled': props.variant ? props.variant === 'filled' : instance.$primevue.config.inputStyle === 'filled' || instance.$primevue.config.inputVariant === 'filled',\n 'p-focus': state.focused,\n 'p-inputwrapper-filled': instance.hasSelectedOption,\n 'p-inputwrapper-focus': state.focused || state.overlayVisible,\n 'p-select-open': state.overlayVisible,\n 'p-select-fluid': instance.hasFluid\n }];\n },\n label: function label(_ref3) {\n var instance = _ref3.instance,\n props = _ref3.props;\n return ['p-select-label', {\n 'p-placeholder': !props.editable && instance.label === props.placeholder,\n 'p-select-label-empty': !props.editable && !instance.$slots['value'] && (instance.label === 'p-emptylabel' || instance.label.length === 0)\n }];\n },\n clearIcon: 'p-select-clear-icon',\n dropdown: 'p-select-dropdown',\n loadingicon: 'p-select-loading-icon',\n dropdownIcon: 'p-select-dropdown-icon',\n overlay: 'p-select-overlay p-component',\n header: 'p-select-header',\n pcFilter: 'p-select-filter',\n listContainer: 'p-select-list-container',\n list: 'p-select-list',\n optionGroup: 'p-select-option-group',\n optionGroupLabel: 'p-select-option-group-label',\n option: function option(_ref4) {\n var instance = _ref4.instance,\n props = _ref4.props,\n state = _ref4.state,\n _option = _ref4.option,\n focusedOption = _ref4.focusedOption;\n return ['p-select-option', {\n 'p-select-option-selected': instance.isSelected(_option) && props.highlightOnSelect,\n 'p-focus': state.focusedOptionIndex === focusedOption,\n 'p-disabled': instance.isOptionDisabled(_option)\n }];\n },\n optionLabel: 'p-select-option-label',\n optionCheckIcon: 'p-select-option-check-icon',\n optionBlankIcon: 'p-select-option-blank-icon',\n emptyMessage: 'p-select-empty-message'\n};\nvar SelectStyle = BaseStyle.extend({\n name: 'select',\n theme: theme,\n classes: classes\n});\n\nexport { SelectStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { focus, isAndroid, getFirstFocusableElement, getLastFocusableElement, addStyle, relativePosition, getOuterWidth, absolutePosition, isTouchDevice, isVisible, getFocusableElements, findSingle } from '@primeuix/utils/dom';\nimport { resolveFieldData, isPrintableCharacter, isNotEmpty, equals, findLastIndex, isEmpty } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { FilterService } from '@primevue/core/api';\nimport { UniqueComponentId, ConnectedOverlayScrollHandler } from '@primevue/core/utils';\nimport BlankIcon from '@primevue/icons/blank';\nimport CheckIcon from '@primevue/icons/check';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport SearchIcon from '@primevue/icons/search';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport TimesIcon from '@primevue/icons/times';\nimport IconField from 'primevue/iconfield';\nimport InputIcon from 'primevue/inputicon';\nimport InputText from 'primevue/inputtext';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport Ripple from 'primevue/ripple';\nimport VirtualScroller from 'primevue/virtualscroller';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport SelectStyle from 'primevue/select/style';\nimport { resolveComponent, resolveDirective, openBlock, createElementBlock, mergeProps, renderSlot, createTextVNode, toDisplayString, normalizeClass, createBlock, resolveDynamicComponent, createCommentVNode, createElementVNode, createVNode, withCtx, Transition, normalizeProps, createSlots, Fragment, renderList, withDirectives } from 'vue';\n\nvar script$1 = {\n name: 'BaseSelect',\n \"extends\": BaseComponent,\n props: {\n modelValue: null,\n options: Array,\n optionLabel: [String, Function],\n optionValue: [String, Function],\n optionDisabled: [String, Function],\n optionGroupLabel: [String, Function],\n optionGroupChildren: [String, Function],\n scrollHeight: {\n type: String,\n \"default\": '14rem'\n },\n filter: Boolean,\n filterPlaceholder: String,\n filterLocale: String,\n filterMatchMode: {\n type: String,\n \"default\": 'contains'\n },\n filterFields: {\n type: Array,\n \"default\": null\n },\n editable: Boolean,\n placeholder: {\n type: String,\n \"default\": null\n },\n variant: {\n type: String,\n \"default\": null\n },\n invalid: {\n type: Boolean,\n \"default\": false\n },\n disabled: {\n type: Boolean,\n \"default\": false\n },\n dataKey: null,\n showClear: {\n type: Boolean,\n \"default\": false\n },\n fluid: {\n type: Boolean,\n \"default\": null\n },\n inputId: {\n type: String,\n \"default\": null\n },\n inputClass: {\n type: [String, Object],\n \"default\": null\n },\n inputStyle: {\n type: Object,\n \"default\": null\n },\n labelId: {\n type: String,\n \"default\": null\n },\n labelClass: {\n type: [String, Object],\n \"default\": null\n },\n labelStyle: {\n type: Object,\n \"default\": null\n },\n panelClass: {\n type: [String, Object],\n \"default\": null\n },\n overlayStyle: {\n type: Object,\n \"default\": null\n },\n overlayClass: {\n type: [String, Object],\n \"default\": null\n },\n panelStyle: {\n type: Object,\n \"default\": null\n },\n appendTo: {\n type: [String, Object],\n \"default\": 'body'\n },\n loading: {\n type: Boolean,\n \"default\": false\n },\n clearIcon: {\n type: String,\n \"default\": undefined\n },\n dropdownIcon: {\n type: String,\n \"default\": undefined\n },\n filterIcon: {\n type: String,\n \"default\": undefined\n },\n loadingIcon: {\n type: String,\n \"default\": undefined\n },\n resetFilterOnHide: {\n type: Boolean,\n \"default\": false\n },\n resetFilterOnClear: {\n type: Boolean,\n \"default\": false\n },\n virtualScrollerOptions: {\n type: Object,\n \"default\": null\n },\n autoOptionFocus: {\n type: Boolean,\n \"default\": false\n },\n autoFilterFocus: {\n type: Boolean,\n \"default\": false\n },\n selectOnFocus: {\n type: Boolean,\n \"default\": false\n },\n focusOnHover: {\n type: Boolean,\n \"default\": true\n },\n highlightOnSelect: {\n type: Boolean,\n \"default\": true\n },\n checkmark: {\n type: Boolean,\n \"default\": false\n },\n filterMessage: {\n type: String,\n \"default\": null\n },\n selectionMessage: {\n type: String,\n \"default\": null\n },\n emptySelectionMessage: {\n type: String,\n \"default\": null\n },\n emptyFilterMessage: {\n type: String,\n \"default\": null\n },\n emptyMessage: {\n type: String,\n \"default\": null\n },\n tabindex: {\n type: Number,\n \"default\": 0\n },\n ariaLabel: {\n type: String,\n \"default\": null\n },\n ariaLabelledby: {\n type: String,\n \"default\": null\n }\n },\n style: SelectStyle,\n provide: function provide() {\n return {\n $pcSelect: this,\n $parentInstance: this\n };\n }\n};\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar script = {\n name: 'Select',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['update:modelValue', 'change', 'focus', 'blur', 'before-show', 'before-hide', 'show', 'hide', 'filter'],\n inject: {\n $pcFluid: {\n \"default\": null\n }\n },\n outsideClickListener: null,\n scrollHandler: null,\n resizeListener: null,\n labelClickListener: null,\n overlay: null,\n list: null,\n virtualScroller: null,\n searchTimeout: null,\n searchValue: null,\n isModelValueChanged: false,\n data: function data() {\n return {\n id: this.$attrs.id,\n clicked: false,\n focused: false,\n focusedOptionIndex: -1,\n filterValue: null,\n overlayVisible: false\n };\n },\n watch: {\n '$attrs.id': function $attrsId(newValue) {\n this.id = newValue || UniqueComponentId();\n },\n modelValue: function modelValue() {\n this.isModelValueChanged = true;\n },\n options: function options() {\n this.autoUpdateModel();\n }\n },\n mounted: function mounted() {\n this.id = this.id || UniqueComponentId();\n this.autoUpdateModel();\n this.bindLabelClickListener();\n },\n updated: function updated() {\n if (this.overlayVisible && this.isModelValueChanged) {\n this.scrollInView(this.findSelectedOptionIndex());\n }\n this.isModelValueChanged = false;\n },\n beforeUnmount: function beforeUnmount() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindLabelClickListener();\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n if (this.overlay) {\n ZIndex.clear(this.overlay);\n this.overlay = null;\n }\n },\n methods: {\n getOptionIndex: function getOptionIndex(index, fn) {\n return this.virtualScrollerDisabled ? index : fn && fn(index)['index'];\n },\n getOptionLabel: function getOptionLabel(option) {\n return this.optionLabel ? resolveFieldData(option, this.optionLabel) : option;\n },\n getOptionValue: function getOptionValue(option) {\n return this.optionValue ? resolveFieldData(option, this.optionValue) : option;\n },\n getOptionRenderKey: function getOptionRenderKey(option, index) {\n return (this.dataKey ? resolveFieldData(option, this.dataKey) : this.getOptionLabel(option)) + '_' + index;\n },\n getPTItemOptions: function getPTItemOptions(option, itemOptions, index, key) {\n return this.ptm(key, {\n context: {\n option: option,\n index: index,\n selected: this.isSelected(option),\n focused: this.focusedOptionIndex === this.getOptionIndex(index, itemOptions),\n disabled: this.isOptionDisabled(option)\n }\n });\n },\n isOptionDisabled: function isOptionDisabled(option) {\n return this.optionDisabled ? resolveFieldData(option, this.optionDisabled) : false;\n },\n isOptionGroup: function isOptionGroup(option) {\n return this.optionGroupLabel && option.optionGroup && option.group;\n },\n getOptionGroupLabel: function getOptionGroupLabel(optionGroup) {\n return resolveFieldData(optionGroup, this.optionGroupLabel);\n },\n getOptionGroupChildren: function getOptionGroupChildren(optionGroup) {\n return resolveFieldData(optionGroup, this.optionGroupChildren);\n },\n getAriaPosInset: function getAriaPosInset(index) {\n var _this = this;\n return (this.optionGroupLabel ? index - this.visibleOptions.slice(0, index).filter(function (option) {\n return _this.isOptionGroup(option);\n }).length : index) + 1;\n },\n show: function show(isFocus) {\n this.$emit('before-show');\n this.overlayVisible = true;\n this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : this.editable ? -1 : this.findSelectedOptionIndex();\n isFocus && focus(this.$refs.focusInput);\n },\n hide: function hide(isFocus) {\n var _this2 = this;\n var _hide = function _hide() {\n _this2.$emit('before-hide');\n _this2.overlayVisible = false;\n _this2.clicked = false;\n _this2.focusedOptionIndex = -1;\n _this2.searchValue = '';\n _this2.resetFilterOnHide && (_this2.filterValue = null);\n isFocus && focus(_this2.$refs.focusInput);\n };\n setTimeout(function () {\n _hide();\n }, 0); // For ScreenReaders\n },\n onFocus: function onFocus(event) {\n if (this.disabled) {\n // For ScreenReaders\n return;\n }\n this.focused = true;\n if (this.overlayVisible) {\n this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : this.editable ? -1 : this.findSelectedOptionIndex();\n this.scrollInView(this.focusedOptionIndex);\n }\n this.$emit('focus', event);\n },\n onBlur: function onBlur(event) {\n this.focused = false;\n this.focusedOptionIndex = -1;\n this.searchValue = '';\n this.$emit('blur', event);\n },\n onKeyDown: function onKeyDown(event) {\n if (this.disabled || isAndroid()) {\n event.preventDefault();\n return;\n }\n var metaKey = event.metaKey || event.ctrlKey;\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n case 'ArrowUp':\n this.onArrowUpKey(event, this.editable);\n break;\n case 'ArrowLeft':\n case 'ArrowRight':\n this.onArrowLeftKey(event, this.editable);\n break;\n case 'Home':\n this.onHomeKey(event, this.editable);\n break;\n case 'End':\n this.onEndKey(event, this.editable);\n break;\n case 'PageDown':\n this.onPageDownKey(event);\n break;\n case 'PageUp':\n this.onPageUpKey(event);\n break;\n case 'Space':\n this.onSpaceKey(event, this.editable);\n break;\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n case 'Escape':\n this.onEscapeKey(event);\n break;\n case 'Tab':\n this.onTabKey(event);\n break;\n case 'Backspace':\n this.onBackspaceKey(event, this.editable);\n break;\n case 'ShiftLeft':\n case 'ShiftRight':\n //NOOP\n break;\n default:\n if (!metaKey && isPrintableCharacter(event.key)) {\n !this.overlayVisible && this.show();\n !this.editable && this.searchOptions(event, event.key);\n }\n break;\n }\n this.clicked = false;\n },\n onEditableInput: function onEditableInput(event) {\n var value = event.target.value;\n this.searchValue = '';\n var matched = this.searchOptions(event, value);\n !matched && (this.focusedOptionIndex = -1);\n this.updateModel(event, value);\n !this.overlayVisible && isNotEmpty(value) && this.show();\n },\n onContainerClick: function onContainerClick(event) {\n if (this.disabled || this.loading) {\n return;\n }\n if (event.target.tagName === 'INPUT' || event.target.getAttribute('data-pc-section') === 'clearicon' || event.target.closest('[data-pc-section=\"clearicon\"]')) {\n return;\n } else if (!this.overlay || !this.overlay.contains(event.target)) {\n this.overlayVisible ? this.hide(true) : this.show(true);\n }\n this.clicked = true;\n },\n onClearClick: function onClearClick(event) {\n this.updateModel(event, null);\n this.resetFilterOnClear && (this.filterValue = null);\n },\n onFirstHiddenFocus: function onFirstHiddenFocus(event) {\n var focusableEl = event.relatedTarget === this.$refs.focusInput ? getFirstFocusableElement(this.overlay, ':not([data-p-hidden-focusable=\"true\"])') : this.$refs.focusInput;\n focus(focusableEl);\n },\n onLastHiddenFocus: function onLastHiddenFocus(event) {\n var focusableEl = event.relatedTarget === this.$refs.focusInput ? getLastFocusableElement(this.overlay, ':not([data-p-hidden-focusable=\"true\"])') : this.$refs.focusInput;\n focus(focusableEl);\n },\n onOptionSelect: function onOptionSelect(event, option) {\n var isHide = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var value = this.getOptionValue(option);\n this.updateModel(event, value);\n isHide && this.hide(true);\n },\n onOptionMouseMove: function onOptionMouseMove(event, index) {\n if (this.focusOnHover) {\n this.changeFocusedOptionIndex(event, index);\n }\n },\n onFilterChange: function onFilterChange(event) {\n var value = event.target.value;\n this.filterValue = value;\n this.focusedOptionIndex = -1;\n this.$emit('filter', {\n originalEvent: event,\n value: value\n });\n !this.virtualScrollerDisabled && this.virtualScroller.scrollToIndex(0);\n },\n onFilterKeyDown: function onFilterKeyDown(event) {\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n case 'ArrowUp':\n this.onArrowUpKey(event, true);\n break;\n case 'ArrowLeft':\n case 'ArrowRight':\n this.onArrowLeftKey(event, true);\n break;\n case 'Home':\n this.onHomeKey(event, true);\n break;\n case 'End':\n this.onEndKey(event, true);\n break;\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n case 'Escape':\n this.onEscapeKey(event);\n break;\n case 'Tab':\n this.onTabKey(event, true);\n break;\n }\n },\n onFilterBlur: function onFilterBlur() {\n this.focusedOptionIndex = -1;\n },\n onFilterUpdated: function onFilterUpdated() {\n if (this.overlayVisible) {\n this.alignOverlay();\n }\n },\n onOverlayClick: function onOverlayClick(event) {\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.$el\n });\n },\n onOverlayKeyDown: function onOverlayKeyDown(event) {\n switch (event.code) {\n case 'Escape':\n this.onEscapeKey(event);\n break;\n }\n },\n onArrowDownKey: function onArrowDownKey(event) {\n if (!this.overlayVisible) {\n this.show();\n this.editable && this.changeFocusedOptionIndex(event, this.findSelectedOptionIndex());\n } else {\n var optionIndex = this.focusedOptionIndex !== -1 ? this.findNextOptionIndex(this.focusedOptionIndex) : this.clicked ? this.findFirstOptionIndex() : this.findFirstFocusedOptionIndex();\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n event.preventDefault();\n },\n onArrowUpKey: function onArrowUpKey(event) {\n var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (event.altKey && !pressedInInputText) {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n this.overlayVisible && this.hide();\n event.preventDefault();\n } else {\n var optionIndex = this.focusedOptionIndex !== -1 ? this.findPrevOptionIndex(this.focusedOptionIndex) : this.clicked ? this.findLastOptionIndex() : this.findLastFocusedOptionIndex();\n this.changeFocusedOptionIndex(event, optionIndex);\n !this.overlayVisible && this.show();\n event.preventDefault();\n }\n },\n onArrowLeftKey: function onArrowLeftKey(event) {\n var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n pressedInInputText && (this.focusedOptionIndex = -1);\n },\n onHomeKey: function onHomeKey(event) {\n var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (pressedInInputText) {\n var target = event.currentTarget;\n if (event.shiftKey) {\n target.setSelectionRange(0, event.target.selectionStart);\n } else {\n target.setSelectionRange(0, 0);\n this.focusedOptionIndex = -1;\n }\n } else {\n this.changeFocusedOptionIndex(event, this.findFirstOptionIndex());\n !this.overlayVisible && this.show();\n }\n event.preventDefault();\n },\n onEndKey: function onEndKey(event) {\n var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (pressedInInputText) {\n var target = event.currentTarget;\n if (event.shiftKey) {\n target.setSelectionRange(event.target.selectionStart, target.value.length);\n } else {\n var len = target.value.length;\n target.setSelectionRange(len, len);\n this.focusedOptionIndex = -1;\n }\n } else {\n this.changeFocusedOptionIndex(event, this.findLastOptionIndex());\n !this.overlayVisible && this.show();\n }\n event.preventDefault();\n },\n onPageUpKey: function onPageUpKey(event) {\n this.scrollInView(0);\n event.preventDefault();\n },\n onPageDownKey: function onPageDownKey(event) {\n this.scrollInView(this.visibleOptions.length - 1);\n event.preventDefault();\n },\n onEnterKey: function onEnterKey(event) {\n if (!this.overlayVisible) {\n this.focusedOptionIndex = -1; // reset\n this.onArrowDownKey(event);\n } else {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n this.hide();\n }\n event.preventDefault();\n },\n onSpaceKey: function onSpaceKey(event) {\n var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n !pressedInInputText && this.onEnterKey(event);\n },\n onEscapeKey: function onEscapeKey(event) {\n this.overlayVisible && this.hide(true);\n event.preventDefault();\n event.stopPropagation(); //@todo will be changed next versionss\n },\n onTabKey: function onTabKey(event) {\n var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (!pressedInInputText) {\n if (this.overlayVisible && this.hasFocusableElements()) {\n focus(this.$refs.firstHiddenFocusableElementOnOverlay);\n event.preventDefault();\n } else {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n this.overlayVisible && this.hide(this.filter);\n }\n }\n },\n onBackspaceKey: function onBackspaceKey(event) {\n var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (pressedInInputText) {\n !this.overlayVisible && this.show();\n }\n },\n onOverlayEnter: function onOverlayEnter(el) {\n ZIndex.set('overlay', el, this.$primevue.config.zIndex.overlay);\n addStyle(el, {\n position: 'absolute',\n top: '0',\n left: '0'\n });\n this.alignOverlay();\n this.scrollInView();\n this.autoFilterFocus && focus(this.$refs.filterInput.$el);\n },\n onOverlayAfterEnter: function onOverlayAfterEnter() {\n this.bindOutsideClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n this.$emit('show');\n },\n onOverlayLeave: function onOverlayLeave() {\n this.unbindOutsideClickListener();\n this.unbindScrollListener();\n this.unbindResizeListener();\n this.autoFilterFocus && focus(this.$refs.focusInput);\n this.$emit('hide');\n this.overlay = null;\n },\n onOverlayAfterLeave: function onOverlayAfterLeave(el) {\n ZIndex.clear(el);\n },\n alignOverlay: function alignOverlay() {\n if (this.appendTo === 'self') {\n relativePosition(this.overlay, this.$el);\n } else {\n this.overlay.style.minWidth = getOuterWidth(this.$el) + 'px';\n absolutePosition(this.overlay, this.$el);\n }\n },\n bindOutsideClickListener: function bindOutsideClickListener() {\n var _this3 = this;\n if (!this.outsideClickListener) {\n this.outsideClickListener = function (event) {\n if (_this3.overlayVisible && _this3.overlay && !_this3.$el.contains(event.target) && !_this3.overlay.contains(event.target)) {\n _this3.hide();\n }\n };\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener: function unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n },\n bindScrollListener: function bindScrollListener() {\n var _this4 = this;\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.container, function () {\n if (_this4.overlayVisible) {\n _this4.hide();\n }\n });\n }\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener: function unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener: function bindResizeListener() {\n var _this5 = this;\n if (!this.resizeListener) {\n this.resizeListener = function () {\n if (_this5.overlayVisible && !isTouchDevice()) {\n _this5.hide();\n }\n };\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener: function unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n bindLabelClickListener: function bindLabelClickListener() {\n var _this6 = this;\n if (!this.editable && !this.labelClickListener) {\n var label = document.querySelector(\"label[for=\\\"\".concat(this.inputId, \"\\\"]\"));\n if (label && isVisible(label)) {\n this.labelClickListener = function () {\n focus(_this6.$refs.focusInput);\n };\n label.addEventListener('click', this.labelClickListener);\n }\n }\n },\n unbindLabelClickListener: function unbindLabelClickListener() {\n if (this.labelClickListener) {\n var label = document.querySelector(\"label[for=\\\"\".concat(this.inputId, \"\\\"]\"));\n if (label && isVisible(label)) {\n label.removeEventListener('click', this.labelClickListener);\n }\n }\n },\n hasFocusableElements: function hasFocusableElements() {\n return getFocusableElements(this.overlay, ':not([data-p-hidden-focusable=\"true\"])').length > 0;\n },\n isOptionMatched: function isOptionMatched(option) {\n var _this$getOptionLabel;\n return this.isValidOption(option) && typeof this.getOptionLabel(option) === 'string' && ((_this$getOptionLabel = this.getOptionLabel(option)) === null || _this$getOptionLabel === void 0 ? void 0 : _this$getOptionLabel.toLocaleLowerCase(this.filterLocale).startsWith(this.searchValue.toLocaleLowerCase(this.filterLocale)));\n },\n isValidOption: function isValidOption(option) {\n return isNotEmpty(option) && !(this.isOptionDisabled(option) || this.isOptionGroup(option));\n },\n isValidSelectedOption: function isValidSelectedOption(option) {\n return this.isValidOption(option) && this.isSelected(option);\n },\n isSelected: function isSelected(option) {\n return this.isValidOption(option) && equals(this.modelValue, this.getOptionValue(option), this.equalityKey);\n },\n findFirstOptionIndex: function findFirstOptionIndex() {\n var _this7 = this;\n return this.visibleOptions.findIndex(function (option) {\n return _this7.isValidOption(option);\n });\n },\n findLastOptionIndex: function findLastOptionIndex() {\n var _this8 = this;\n return findLastIndex(this.visibleOptions, function (option) {\n return _this8.isValidOption(option);\n });\n },\n findNextOptionIndex: function findNextOptionIndex(index) {\n var _this9 = this;\n var matchedOptionIndex = index < this.visibleOptions.length - 1 ? this.visibleOptions.slice(index + 1).findIndex(function (option) {\n return _this9.isValidOption(option);\n }) : -1;\n return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : index;\n },\n findPrevOptionIndex: function findPrevOptionIndex(index) {\n var _this10 = this;\n var matchedOptionIndex = index > 0 ? findLastIndex(this.visibleOptions.slice(0, index), function (option) {\n return _this10.isValidOption(option);\n }) : -1;\n return matchedOptionIndex > -1 ? matchedOptionIndex : index;\n },\n findSelectedOptionIndex: function findSelectedOptionIndex() {\n var _this11 = this;\n return this.hasSelectedOption ? this.visibleOptions.findIndex(function (option) {\n return _this11.isValidSelectedOption(option);\n }) : -1;\n },\n findFirstFocusedOptionIndex: function findFirstFocusedOptionIndex() {\n var selectedIndex = this.findSelectedOptionIndex();\n return selectedIndex < 0 ? this.findFirstOptionIndex() : selectedIndex;\n },\n findLastFocusedOptionIndex: function findLastFocusedOptionIndex() {\n var selectedIndex = this.findSelectedOptionIndex();\n return selectedIndex < 0 ? this.findLastOptionIndex() : selectedIndex;\n },\n searchOptions: function searchOptions(event, _char) {\n var _this12 = this;\n this.searchValue = (this.searchValue || '') + _char;\n var optionIndex = -1;\n var matched = false;\n if (isNotEmpty(this.searchValue)) {\n if (this.focusedOptionIndex !== -1) {\n optionIndex = this.visibleOptions.slice(this.focusedOptionIndex).findIndex(function (option) {\n return _this12.isOptionMatched(option);\n });\n optionIndex = optionIndex === -1 ? this.visibleOptions.slice(0, this.focusedOptionIndex).findIndex(function (option) {\n return _this12.isOptionMatched(option);\n }) : optionIndex + this.focusedOptionIndex;\n } else {\n optionIndex = this.visibleOptions.findIndex(function (option) {\n return _this12.isOptionMatched(option);\n });\n }\n if (optionIndex !== -1) {\n matched = true;\n }\n if (optionIndex === -1 && this.focusedOptionIndex === -1) {\n optionIndex = this.findFirstFocusedOptionIndex();\n }\n if (optionIndex !== -1) {\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n }\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n this.searchTimeout = setTimeout(function () {\n _this12.searchValue = '';\n _this12.searchTimeout = null;\n }, 500);\n return matched;\n },\n changeFocusedOptionIndex: function changeFocusedOptionIndex(event, index) {\n if (this.focusedOptionIndex !== index) {\n this.focusedOptionIndex = index;\n this.scrollInView();\n if (this.selectOnFocus) {\n this.onOptionSelect(event, this.visibleOptions[index], false);\n }\n }\n },\n scrollInView: function scrollInView() {\n var _this13 = this;\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1;\n this.$nextTick(function () {\n var id = index !== -1 ? \"\".concat(_this13.id, \"_\").concat(index) : _this13.focusedOptionId;\n var element = findSingle(_this13.list, \"li[id=\\\"\".concat(id, \"\\\"]\"));\n if (element) {\n element.scrollIntoView && element.scrollIntoView({\n block: 'nearest',\n inline: 'start'\n });\n } else if (!_this13.virtualScrollerDisabled) {\n _this13.virtualScroller && _this13.virtualScroller.scrollToIndex(index !== -1 ? index : _this13.focusedOptionIndex);\n }\n });\n },\n autoUpdateModel: function autoUpdateModel() {\n if (this.selectOnFocus && this.autoOptionFocus && !this.hasSelectedOption) {\n this.focusedOptionIndex = this.findFirstFocusedOptionIndex();\n this.onOptionSelect(null, this.visibleOptions[this.focusedOptionIndex], false);\n }\n },\n updateModel: function updateModel(event, value) {\n this.$emit('update:modelValue', value);\n this.$emit('change', {\n originalEvent: event,\n value: value\n });\n },\n flatOptions: function flatOptions(options) {\n var _this14 = this;\n return (options || []).reduce(function (result, option, index) {\n result.push({\n optionGroup: option,\n group: true,\n index: index\n });\n var optionGroupChildren = _this14.getOptionGroupChildren(option);\n optionGroupChildren && optionGroupChildren.forEach(function (o) {\n return result.push(o);\n });\n return result;\n }, []);\n },\n overlayRef: function overlayRef(el) {\n this.overlay = el;\n },\n listRef: function listRef(el, contentRef) {\n this.list = el;\n contentRef && contentRef(el); // For VirtualScroller\n },\n virtualScrollerRef: function virtualScrollerRef(el) {\n this.virtualScroller = el;\n }\n },\n computed: {\n visibleOptions: function visibleOptions() {\n var _this15 = this;\n var options = this.optionGroupLabel ? this.flatOptions(this.options) : this.options || [];\n if (this.filterValue) {\n var filteredOptions = FilterService.filter(options, this.searchFields, this.filterValue, this.filterMatchMode, this.filterLocale);\n if (this.optionGroupLabel) {\n var optionGroups = this.options || [];\n var filtered = [];\n optionGroups.forEach(function (group) {\n var groupChildren = _this15.getOptionGroupChildren(group);\n var filteredItems = groupChildren.filter(function (item) {\n return filteredOptions.includes(item);\n });\n if (filteredItems.length > 0) filtered.push(_objectSpread(_objectSpread({}, group), {}, _defineProperty({}, typeof _this15.optionGroupChildren === 'string' ? _this15.optionGroupChildren : 'items', _toConsumableArray(filteredItems))));\n });\n return this.flatOptions(filtered);\n }\n return filteredOptions;\n }\n return options;\n },\n hasSelectedOption: function hasSelectedOption() {\n return isNotEmpty(this.modelValue);\n },\n label: function label() {\n var selectedOptionIndex = this.findSelectedOptionIndex();\n return selectedOptionIndex !== -1 ? this.getOptionLabel(this.visibleOptions[selectedOptionIndex]) : this.placeholder || 'p-emptylabel';\n },\n editableInputValue: function editableInputValue() {\n var selectedOptionIndex = this.findSelectedOptionIndex();\n return selectedOptionIndex !== -1 ? this.getOptionLabel(this.visibleOptions[selectedOptionIndex]) : this.modelValue || '';\n },\n equalityKey: function equalityKey() {\n return this.optionValue ? null : this.dataKey;\n },\n searchFields: function searchFields() {\n return this.filterFields || [this.optionLabel];\n },\n filterResultMessageText: function filterResultMessageText() {\n return isNotEmpty(this.visibleOptions) ? this.filterMessageText.replaceAll('{0}', this.visibleOptions.length) : this.emptyFilterMessageText;\n },\n filterMessageText: function filterMessageText() {\n return this.filterMessage || this.$primevue.config.locale.searchMessage || '';\n },\n emptyFilterMessageText: function emptyFilterMessageText() {\n return this.emptyFilterMessage || this.$primevue.config.locale.emptySearchMessage || this.$primevue.config.locale.emptyFilterMessage || '';\n },\n emptyMessageText: function emptyMessageText() {\n return this.emptyMessage || this.$primevue.config.locale.emptyMessage || '';\n },\n selectionMessageText: function selectionMessageText() {\n return this.selectionMessage || this.$primevue.config.locale.selectionMessage || '';\n },\n emptySelectionMessageText: function emptySelectionMessageText() {\n return this.emptySelectionMessage || this.$primevue.config.locale.emptySelectionMessage || '';\n },\n selectedMessageText: function selectedMessageText() {\n return this.hasSelectedOption ? this.selectionMessageText.replaceAll('{0}', '1') : this.emptySelectionMessageText;\n },\n focusedOptionId: function focusedOptionId() {\n return this.focusedOptionIndex !== -1 ? \"\".concat(this.id, \"_\").concat(this.focusedOptionIndex) : null;\n },\n ariaSetSize: function ariaSetSize() {\n var _this16 = this;\n return this.visibleOptions.filter(function (option) {\n return !_this16.isOptionGroup(option);\n }).length;\n },\n isClearIconVisible: function isClearIconVisible() {\n return this.showClear && this.modelValue != null && isNotEmpty(this.options);\n },\n virtualScrollerDisabled: function virtualScrollerDisabled() {\n return !this.virtualScrollerOptions;\n },\n hasFluid: function hasFluid() {\n return isEmpty(this.fluid) ? !!this.$pcFluid : this.fluid;\n }\n },\n directives: {\n ripple: Ripple\n },\n components: {\n InputText: InputText,\n VirtualScroller: VirtualScroller,\n Portal: Portal,\n InputIcon: InputIcon,\n IconField: IconField,\n TimesIcon: TimesIcon,\n ChevronDownIcon: ChevronDownIcon,\n SpinnerIcon: SpinnerIcon,\n SearchIcon: SearchIcon,\n CheckIcon: CheckIcon,\n BlankIcon: BlankIcon\n }\n};\n\nvar _hoisted_1 = [\"id\"];\nvar _hoisted_2 = [\"id\", \"value\", \"placeholder\", \"tabindex\", \"disabled\", \"aria-label\", \"aria-labelledby\", \"aria-expanded\", \"aria-controls\", \"aria-activedescendant\", \"aria-invalid\"];\nvar _hoisted_3 = [\"id\", \"tabindex\", \"aria-label\", \"aria-labelledby\", \"aria-expanded\", \"aria-controls\", \"aria-activedescendant\", \"aria-disabled\"];\nvar _hoisted_4 = [\"id\"];\nvar _hoisted_5 = [\"id\"];\nvar _hoisted_6 = [\"id\", \"aria-label\", \"aria-selected\", \"aria-disabled\", \"aria-setsize\", \"aria-posinset\", \"onClick\", \"onMousemove\", \"data-p-selected\", \"data-p-focused\", \"data-p-disabled\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_SpinnerIcon = resolveComponent(\"SpinnerIcon\");\n var _component_InputText = resolveComponent(\"InputText\");\n var _component_SearchIcon = resolveComponent(\"SearchIcon\");\n var _component_InputIcon = resolveComponent(\"InputIcon\");\n var _component_IconField = resolveComponent(\"IconField\");\n var _component_CheckIcon = resolveComponent(\"CheckIcon\");\n var _component_BlankIcon = resolveComponent(\"BlankIcon\");\n var _component_VirtualScroller = resolveComponent(\"VirtualScroller\");\n var _component_Portal = resolveComponent(\"Portal\");\n var _directive_ripple = resolveDirective(\"ripple\");\n return openBlock(), createElementBlock(\"div\", mergeProps({\n ref: \"container\",\n id: $data.id,\n \"class\": _ctx.cx('root'),\n onClick: _cache[11] || (_cache[11] = function () {\n return $options.onContainerClick && $options.onContainerClick.apply($options, arguments);\n })\n }, _ctx.ptmi('root')), [_ctx.editable ? (openBlock(), createElementBlock(\"input\", mergeProps({\n key: 0,\n ref: \"focusInput\",\n id: _ctx.labelId || _ctx.inputId,\n type: \"text\",\n \"class\": [_ctx.cx('label'), _ctx.inputClass, _ctx.labelClass],\n style: [_ctx.inputStyle, _ctx.labelStyle],\n value: $options.editableInputValue,\n placeholder: _ctx.placeholder,\n tabindex: !_ctx.disabled ? _ctx.tabindex : -1,\n disabled: _ctx.disabled,\n autocomplete: \"off\",\n role: \"combobox\",\n \"aria-label\": _ctx.ariaLabel,\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-haspopup\": \"listbox\",\n \"aria-expanded\": $data.overlayVisible,\n \"aria-controls\": $data.id + '_list',\n \"aria-activedescendant\": $data.focused ? $options.focusedOptionId : undefined,\n \"aria-invalid\": _ctx.invalid || undefined,\n onFocus: _cache[0] || (_cache[0] = function () {\n return $options.onFocus && $options.onFocus.apply($options, arguments);\n }),\n onBlur: _cache[1] || (_cache[1] = function () {\n return $options.onBlur && $options.onBlur.apply($options, arguments);\n }),\n onKeydown: _cache[2] || (_cache[2] = function () {\n return $options.onKeyDown && $options.onKeyDown.apply($options, arguments);\n }),\n onInput: _cache[3] || (_cache[3] = function () {\n return $options.onEditableInput && $options.onEditableInput.apply($options, arguments);\n })\n }, _ctx.ptm('label')), null, 16, _hoisted_2)) : (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 1,\n ref: \"focusInput\",\n id: _ctx.labelId || _ctx.inputId,\n \"class\": [_ctx.cx('label'), _ctx.inputClass, _ctx.labelClass],\n style: [_ctx.inputStyle, _ctx.labelStyle],\n tabindex: !_ctx.disabled ? _ctx.tabindex : -1,\n role: \"combobox\",\n \"aria-label\": _ctx.ariaLabel || ($options.label === 'p-emptylabel' ? undefined : $options.label),\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-haspopup\": \"listbox\",\n \"aria-expanded\": $data.overlayVisible,\n \"aria-controls\": $data.id + '_list',\n \"aria-activedescendant\": $data.focused ? $options.focusedOptionId : undefined,\n \"aria-disabled\": _ctx.disabled,\n onFocus: _cache[4] || (_cache[4] = function () {\n return $options.onFocus && $options.onFocus.apply($options, arguments);\n }),\n onBlur: _cache[5] || (_cache[5] = function () {\n return $options.onBlur && $options.onBlur.apply($options, arguments);\n }),\n onKeydown: _cache[6] || (_cache[6] = function () {\n return $options.onKeyDown && $options.onKeyDown.apply($options, arguments);\n })\n }, _ctx.ptm('label')), [renderSlot(_ctx.$slots, \"value\", {\n value: _ctx.modelValue,\n placeholder: _ctx.placeholder\n }, function () {\n return [createTextVNode(toDisplayString($options.label === 'p-emptylabel' ? ' ' : $options.label || 'empty'), 1)];\n })], 16, _hoisted_3)), $options.isClearIconVisible ? renderSlot(_ctx.$slots, \"clearicon\", {\n key: 2,\n \"class\": normalizeClass(_ctx.cx('clearIcon')),\n clearCallback: $options.onClearClick\n }, function () {\n return [(openBlock(), createBlock(resolveDynamicComponent(_ctx.clearIcon ? 'i' : 'TimesIcon'), mergeProps({\n ref: \"clearIcon\",\n \"class\": [_ctx.cx('clearIcon'), _ctx.clearIcon],\n onClick: $options.onClearClick\n }, _ctx.ptm('clearIcon'), {\n \"data-pc-section\": \"clearicon\"\n }), null, 16, [\"class\", \"onClick\"]))];\n }) : createCommentVNode(\"\", true), createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('dropdown')\n }, _ctx.ptm('dropdown')), [_ctx.loading ? renderSlot(_ctx.$slots, \"loadingicon\", {\n key: 0,\n \"class\": normalizeClass(_ctx.cx('loadingIcon'))\n }, function () {\n return [_ctx.loadingIcon ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 0,\n \"class\": [_ctx.cx('loadingIcon'), 'pi-spin', _ctx.loadingIcon],\n \"aria-hidden\": \"true\"\n }, _ctx.ptm('loadingIcon')), null, 16)) : (openBlock(), createBlock(_component_SpinnerIcon, mergeProps({\n key: 1,\n \"class\": _ctx.cx('loadingIcon'),\n spin: \"\",\n \"aria-hidden\": \"true\"\n }, _ctx.ptm('loadingIcon')), null, 16, [\"class\"]))];\n }) : renderSlot(_ctx.$slots, \"dropdownicon\", {\n key: 1,\n \"class\": normalizeClass(_ctx.cx('dropdownIcon'))\n }, function () {\n return [(openBlock(), createBlock(resolveDynamicComponent(_ctx.dropdownIcon ? 'span' : 'ChevronDownIcon'), mergeProps({\n \"class\": [_ctx.cx('dropdownIcon'), _ctx.dropdownIcon],\n \"aria-hidden\": \"true\"\n }, _ctx.ptm('dropdownIcon')), null, 16, [\"class\"]))];\n })], 16), createVNode(_component_Portal, {\n appendTo: _ctx.appendTo\n }, {\n \"default\": withCtx(function () {\n return [createVNode(Transition, mergeProps({\n name: \"p-connected-overlay\",\n onEnter: $options.onOverlayEnter,\n onAfterEnter: $options.onOverlayAfterEnter,\n onLeave: $options.onOverlayLeave,\n onAfterLeave: $options.onOverlayAfterLeave\n }, _ctx.ptm('transition')), {\n \"default\": withCtx(function () {\n return [$data.overlayVisible ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n ref: $options.overlayRef,\n \"class\": [_ctx.cx('overlay'), _ctx.panelClass, _ctx.overlayClass],\n style: [_ctx.panelStyle, _ctx.overlayStyle],\n onClick: _cache[9] || (_cache[9] = function () {\n return $options.onOverlayClick && $options.onOverlayClick.apply($options, arguments);\n }),\n onKeydown: _cache[10] || (_cache[10] = function () {\n return $options.onOverlayKeyDown && $options.onOverlayKeyDown.apply($options, arguments);\n })\n }, _ctx.ptm('overlay')), [createElementVNode(\"span\", mergeProps({\n ref: \"firstHiddenFocusableElementOnOverlay\",\n role: \"presentation\",\n \"aria-hidden\": \"true\",\n \"class\": \"p-hidden-accessible p-hidden-focusable\",\n tabindex: 0,\n onFocus: _cache[7] || (_cache[7] = function () {\n return $options.onFirstHiddenFocus && $options.onFirstHiddenFocus.apply($options, arguments);\n })\n }, _ctx.ptm('hiddenFirstFocusableEl'), {\n \"data-p-hidden-accessible\": true,\n \"data-p-hidden-focusable\": true\n }), null, 16), renderSlot(_ctx.$slots, \"header\", {\n value: _ctx.modelValue,\n options: $options.visibleOptions\n }), _ctx.filter ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('header')\n }, _ctx.ptm('header')), [createVNode(_component_IconField, {\n unstyled: _ctx.unstyled,\n pt: _ctx.ptm('pcFilterContainer')\n }, {\n \"default\": withCtx(function () {\n return [createVNode(_component_InputText, {\n ref: \"filterInput\",\n type: \"text\",\n value: $data.filterValue,\n onVnodeMounted: $options.onFilterUpdated,\n onVnodeUpdated: $options.onFilterUpdated,\n \"class\": normalizeClass(_ctx.cx('pcFilter')),\n placeholder: _ctx.filterPlaceholder,\n variant: _ctx.variant,\n unstyled: _ctx.unstyled,\n role: \"searchbox\",\n autocomplete: \"off\",\n \"aria-owns\": $data.id + '_list',\n \"aria-activedescendant\": $options.focusedOptionId,\n onKeydown: $options.onFilterKeyDown,\n onBlur: $options.onFilterBlur,\n onInput: $options.onFilterChange,\n pt: _ctx.ptm('pcFilter')\n }, null, 8, [\"value\", \"onVnodeMounted\", \"onVnodeUpdated\", \"class\", \"placeholder\", \"variant\", \"unstyled\", \"aria-owns\", \"aria-activedescendant\", \"onKeydown\", \"onBlur\", \"onInput\", \"pt\"]), createVNode(_component_InputIcon, mergeProps({\n unstyled: _ctx.unstyled\n }, _ctx.ptm('pcFilterIconContainer')), {\n \"default\": withCtx(function () {\n return [renderSlot(_ctx.$slots, \"filtericon\", {}, function () {\n return [_ctx.filterIcon ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 0,\n \"class\": _ctx.filterIcon\n }, _ctx.ptm('filterIcon')), null, 16)) : (openBlock(), createBlock(_component_SearchIcon, normalizeProps(mergeProps({\n key: 1\n }, _ctx.ptm('filterIcon'))), null, 16))];\n })];\n }),\n _: 3\n }, 16, [\"unstyled\"])];\n }),\n _: 3\n }, 8, [\"unstyled\", \"pt\"]), createElementVNode(\"span\", mergeProps({\n role: \"status\",\n \"aria-live\": \"polite\",\n \"class\": \"p-hidden-accessible\"\n }, _ctx.ptm('hiddenFilterResult'), {\n \"data-p-hidden-accessible\": true\n }), toDisplayString($options.filterResultMessageText), 17)], 16)) : createCommentVNode(\"\", true), createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('listContainer'),\n style: {\n 'max-height': $options.virtualScrollerDisabled ? _ctx.scrollHeight : ''\n }\n }, _ctx.ptm('listContainer')), [createVNode(_component_VirtualScroller, mergeProps({\n ref: $options.virtualScrollerRef\n }, _ctx.virtualScrollerOptions, {\n items: $options.visibleOptions,\n style: {\n height: _ctx.scrollHeight\n },\n tabindex: -1,\n disabled: $options.virtualScrollerDisabled,\n pt: _ctx.ptm('virtualScroller')\n }), createSlots({\n content: withCtx(function (_ref) {\n var styleClass = _ref.styleClass,\n contentRef = _ref.contentRef,\n items = _ref.items,\n getItemOptions = _ref.getItemOptions,\n contentStyle = _ref.contentStyle,\n itemSize = _ref.itemSize;\n return [createElementVNode(\"ul\", mergeProps({\n ref: function ref(el) {\n return $options.listRef(el, contentRef);\n },\n id: $data.id + '_list',\n \"class\": [_ctx.cx('list'), styleClass],\n style: contentStyle,\n role: \"listbox\"\n }, _ctx.ptm('list')), [(openBlock(true), createElementBlock(Fragment, null, renderList(items, function (option, i) {\n return openBlock(), createElementBlock(Fragment, {\n key: $options.getOptionRenderKey(option, $options.getOptionIndex(i, getItemOptions))\n }, [$options.isOptionGroup(option) ? (openBlock(), createElementBlock(\"li\", mergeProps({\n key: 0,\n id: $data.id + '_' + $options.getOptionIndex(i, getItemOptions),\n style: {\n height: itemSize ? itemSize + 'px' : undefined\n },\n \"class\": _ctx.cx('optionGroup'),\n role: \"option\",\n ref_for: true\n }, _ctx.ptm('optionGroup')), [renderSlot(_ctx.$slots, \"optiongroup\", {\n option: option.optionGroup,\n index: $options.getOptionIndex(i, getItemOptions)\n }, function () {\n return [createElementVNode(\"span\", mergeProps({\n \"class\": _ctx.cx('optionGroupLabel'),\n ref_for: true\n }, _ctx.ptm('optionGroupLabel')), toDisplayString($options.getOptionGroupLabel(option.optionGroup)), 17)];\n })], 16, _hoisted_5)) : withDirectives((openBlock(), createElementBlock(\"li\", mergeProps({\n key: 1,\n id: $data.id + '_' + $options.getOptionIndex(i, getItemOptions),\n \"class\": _ctx.cx('option', {\n option: option,\n focusedOption: $options.getOptionIndex(i, getItemOptions)\n }),\n style: {\n height: itemSize ? itemSize + 'px' : undefined\n },\n role: \"option\",\n \"aria-label\": $options.getOptionLabel(option),\n \"aria-selected\": $options.isSelected(option),\n \"aria-disabled\": $options.isOptionDisabled(option),\n \"aria-setsize\": $options.ariaSetSize,\n \"aria-posinset\": $options.getAriaPosInset($options.getOptionIndex(i, getItemOptions)),\n onClick: function onClick($event) {\n return $options.onOptionSelect($event, option);\n },\n onMousemove: function onMousemove($event) {\n return $options.onOptionMouseMove($event, $options.getOptionIndex(i, getItemOptions));\n },\n \"data-p-selected\": $options.isSelected(option),\n \"data-p-focused\": $data.focusedOptionIndex === $options.getOptionIndex(i, getItemOptions),\n \"data-p-disabled\": $options.isOptionDisabled(option),\n ref_for: true\n }, $options.getPTItemOptions(option, getItemOptions, i, 'option')), [_ctx.checkmark ? (openBlock(), createElementBlock(Fragment, {\n key: 0\n }, [$options.isSelected(option) ? (openBlock(), createBlock(_component_CheckIcon, mergeProps({\n key: 0,\n \"class\": _ctx.cx('optionCheckIcon'),\n ref_for: true\n }, _ctx.ptm('optionCheckIcon')), null, 16, [\"class\"])) : (openBlock(), createBlock(_component_BlankIcon, mergeProps({\n key: 1,\n \"class\": _ctx.cx('optionBlankIcon'),\n ref_for: true\n }, _ctx.ptm('optionBlankIcon')), null, 16, [\"class\"]))], 64)) : createCommentVNode(\"\", true), renderSlot(_ctx.$slots, \"option\", {\n option: option,\n selected: $options.isSelected(option),\n index: $options.getOptionIndex(i, getItemOptions)\n }, function () {\n return [createElementVNode(\"span\", mergeProps({\n \"class\": _ctx.cx('optionLabel'),\n ref_for: true\n }, _ctx.ptm('optionLabel')), toDisplayString($options.getOptionLabel(option)), 17)];\n })], 16, _hoisted_6)), [[_directive_ripple]])], 64);\n }), 128)), $data.filterValue && (!items || items && items.length === 0) ? (openBlock(), createElementBlock(\"li\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('emptyMessage'),\n role: \"option\"\n }, _ctx.ptm('emptyMessage'), {\n \"data-p-hidden-accessible\": true\n }), [renderSlot(_ctx.$slots, \"emptyfilter\", {}, function () {\n return [createTextVNode(toDisplayString($options.emptyFilterMessageText), 1)];\n })], 16)) : !_ctx.options || _ctx.options && _ctx.options.length === 0 ? (openBlock(), createElementBlock(\"li\", mergeProps({\n key: 1,\n \"class\": _ctx.cx('emptyMessage'),\n role: \"option\"\n }, _ctx.ptm('emptyMessage'), {\n \"data-p-hidden-accessible\": true\n }), [renderSlot(_ctx.$slots, \"empty\", {}, function () {\n return [createTextVNode(toDisplayString($options.emptyMessageText), 1)];\n })], 16)) : createCommentVNode(\"\", true)], 16, _hoisted_4)];\n }),\n _: 2\n }, [_ctx.$slots.loader ? {\n name: \"loader\",\n fn: withCtx(function (_ref2) {\n var options = _ref2.options;\n return [renderSlot(_ctx.$slots, \"loader\", {\n options: options\n })];\n }),\n key: \"0\"\n } : undefined]), 1040, [\"items\", \"style\", \"disabled\", \"pt\"])], 16), renderSlot(_ctx.$slots, \"footer\", {\n value: _ctx.modelValue,\n options: $options.visibleOptions\n }), !_ctx.options || _ctx.options && _ctx.options.length === 0 ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 1,\n role: \"status\",\n \"aria-live\": \"polite\",\n \"class\": \"p-hidden-accessible\"\n }, _ctx.ptm('hiddenEmptyMessage'), {\n \"data-p-hidden-accessible\": true\n }), toDisplayString($options.emptyMessageText), 17)) : createCommentVNode(\"\", true), createElementVNode(\"span\", mergeProps({\n role: \"status\",\n \"aria-live\": \"polite\",\n \"class\": \"p-hidden-accessible\"\n }, _ctx.ptm('hiddenSelectedMessage'), {\n \"data-p-hidden-accessible\": true\n }), toDisplayString($options.selectedMessageText), 17), createElementVNode(\"span\", mergeProps({\n ref: \"lastHiddenFocusableElementOnOverlay\",\n role: \"presentation\",\n \"aria-hidden\": \"true\",\n \"class\": \"p-hidden-accessible p-hidden-focusable\",\n tabindex: 0,\n onFocus: _cache[8] || (_cache[8] = function () {\n return $options.onLastHiddenFocus && $options.onLastHiddenFocus.apply($options, arguments);\n })\n }, _ctx.ptm('hiddenLastFocusableEl'), {\n \"data-p-hidden-accessible\": true,\n \"data-p-hidden-focusable\": true\n }), null, 16)], 16)) : createCommentVNode(\"\", true)];\n }),\n _: 3\n }, 16, [\"onEnter\", \"onAfterEnter\", \"onLeave\", \"onAfterLeave\"])];\n }),\n _: 3\n }, 8, [\"appendTo\"])], 16, _hoisted_1);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import arc from '@/assets/palettes/arc.json'\nimport dark from '@/assets/palettes/dark.json'\nimport github from '@/assets/palettes/github.json'\nimport light from '@/assets/palettes/light.json'\nimport nord from '@/assets/palettes/nord.json'\nimport solarized from '@/assets/palettes/solarized.json'\nimport type { ColorPalettes } from '@/types/colorPaletteTypes'\n\nexport const CORE_COLOR_PALETTES: ColorPalettes = {\n dark,\n light,\n solarized,\n arc,\n nord,\n github\n} as const\n\nexport const DEFAULT_COLOR_PALETTE = dark\n","import { defineStore } from 'pinia'\nimport { computed, ref } from 'vue'\n\nimport {\n CORE_COLOR_PALETTES,\n DEFAULT_COLOR_PALETTE\n} from '@/constants/coreColorPalettes'\nimport type {\n ColorPalettes,\n CompletedPalette,\n Palette\n} from '@/types/colorPaletteTypes'\n\nexport const useColorPaletteStore = defineStore('colorPalette', () => {\n const customPalettes = ref({})\n const activePaletteId = ref(DEFAULT_COLOR_PALETTE.id)\n\n const palettesLookup = computed(() => ({\n ...CORE_COLOR_PALETTES,\n ...customPalettes.value\n }))\n\n const palettes = computed(() => Object.values(palettesLookup.value))\n const completedActivePalette = computed(() =>\n completePalette(palettesLookup.value[activePaletteId.value])\n )\n\n const addCustomPalette = (palette: Palette) => {\n if (palette.id in palettesLookup.value) {\n throw new Error(`Palette with id ${palette.id} already exists`)\n }\n\n customPalettes.value[palette.id] = palette\n activePaletteId.value = palette.id\n }\n\n const deleteCustomPalette = (id: string) => {\n if (!(id in customPalettes.value)) {\n throw new Error(`Palette with id ${id} does not exist`)\n }\n\n delete customPalettes.value[id]\n activePaletteId.value = CORE_COLOR_PALETTES.dark.id\n }\n\n const isCustomPalette = (id: string) => {\n return id in customPalettes.value\n }\n\n /**\n * Completes the palette with default values for missing colors.\n *\n * @param palette - The palette to complete.\n * @returns The completed palette.\n */\n const completePalette = (palette: Palette): CompletedPalette => {\n // Set comfy-menu-secondary-bg to comfy-menu-bg if not set\n if (\n palette.colors.comfy_base['comfy-menu-bg'] &&\n !palette.colors.comfy_base['comfy-menu-secondary-bg']\n ) {\n palette.colors.comfy_base['comfy-menu-secondary-bg'] =\n palette.colors.comfy_base['comfy-menu-bg']\n }\n\n return {\n ...palette,\n colors: {\n ...palette.colors,\n node_slot: {\n ...DEFAULT_COLOR_PALETTE.colors.node_slot,\n ...palette.colors.node_slot\n },\n litegraph_base: {\n ...DEFAULT_COLOR_PALETTE.colors.litegraph_base,\n ...palette.colors.litegraph_base\n },\n comfy_base: {\n ...DEFAULT_COLOR_PALETTE.colors.comfy_base,\n ...palette.colors.comfy_base\n }\n }\n }\n }\n\n return {\n // State\n customPalettes,\n activePaletteId,\n\n // Getters\n palettesLookup,\n palettes,\n completedActivePalette,\n\n // Actions\n isCustomPalette,\n addCustomPalette,\n deleteCustomPalette,\n completePalette\n }\n})\n","\n\n\n","\n\n\n\n","\n\n\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'AngleDownIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M3.58659 4.5007C3.68513 4.50023 3.78277 4.51945 3.87379 4.55723C3.9648 4.59501 4.04735 4.65058 4.11659 4.7207L7.11659 7.7207L10.1166 4.7207C10.2619 4.65055 10.4259 4.62911 10.5843 4.65956C10.7427 4.69002 10.8871 4.77074 10.996 4.88976C11.1049 5.00877 11.1726 5.15973 11.1889 5.32022C11.2052 5.48072 11.1693 5.6422 11.0866 5.7807L7.58659 9.2807C7.44597 9.42115 7.25534 9.50004 7.05659 9.50004C6.85784 9.50004 6.66722 9.42115 6.52659 9.2807L3.02659 5.7807C2.88614 5.64007 2.80725 5.44945 2.80725 5.2507C2.80725 5.05195 2.88614 4.86132 3.02659 4.7207C3.09932 4.64685 3.18675 4.58911 3.28322 4.55121C3.37969 4.51331 3.48305 4.4961 3.58659 4.5007Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'AngleUpIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M10.4134 9.49931C10.3148 9.49977 10.2172 9.48055 10.1262 9.44278C10.0352 9.405 9.95263 9.34942 9.88338 9.27931L6.88338 6.27931L3.88338 9.27931C3.73811 9.34946 3.57409 9.3709 3.41567 9.34044C3.25724 9.30999 3.11286 9.22926 3.00395 9.11025C2.89504 8.99124 2.82741 8.84028 2.8111 8.67978C2.79478 8.51928 2.83065 8.35781 2.91338 8.21931L6.41338 4.71931C6.55401 4.57886 6.74463 4.49997 6.94338 4.49997C7.14213 4.49997 7.33276 4.57886 7.47338 4.71931L10.9734 8.21931C11.1138 8.35994 11.1927 8.55056 11.1927 8.74931C11.1927 8.94806 11.1138 9.13868 10.9734 9.27931C10.9007 9.35315 10.8132 9.41089 10.7168 9.44879C10.6203 9.48669 10.5169 9.5039 10.4134 9.49931Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-inputnumber {\\n display: inline-flex;\\n position: relative;\\n}\\n\\n.p-inputnumber-button {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n flex: 0 0 auto;\\n cursor: pointer;\\n background: \".concat(dt('inputnumber.button.background'), \";\\n color: \").concat(dt('inputnumber.button.color'), \";\\n width: \").concat(dt('inputnumber.button.width'), \";\\n transition: background \").concat(dt('inputnumber.transition.duration'), \", color \").concat(dt('inputnumber.transition.duration'), \", border-color \").concat(dt('inputnumber.transition.duration'), \", outline-color \").concat(dt('inputnumber.transition.duration'), \";\\n}\\n\\n.p-inputnumber-button:hover {\\n background: \").concat(dt('inputnumber.button.hover.background'), \";\\n color: \").concat(dt('inputnumber.button.hover.color'), \";\\n}\\n\\n.p-inputnumber-button:active {\\n background: \").concat(dt('inputnumber.button.active.background'), \";\\n color: \").concat(dt('inputnumber.button.active.color'), \";\\n}\\n\\n.p-inputnumber-stacked .p-inputnumber-button {\\n position: relative;\\n border: 0 none;\\n}\\n\\n.p-inputnumber-stacked .p-inputnumber-button-group {\\n display: flex;\\n flex-direction: column;\\n position: absolute;\\n top: 1px;\\n right: 1px;\\n height: calc(100% - 2px);\\n z-index: 1;\\n}\\n\\n.p-inputnumber-stacked .p-inputnumber-increment-button {\\n padding: 0;\\n border-top-right-radius: calc(\").concat(dt('inputnumber.button.border.radius'), \" - 1px);\\n}\\n\\n.p-inputnumber-stacked .p-inputnumber-decrement-button {\\n padding: 0;\\n border-bottom-right-radius: calc(\").concat(dt('inputnumber.button.border.radius'), \" - 1px);\\n}\\n\\n.p-inputnumber-stacked .p-inputnumber-button {\\n flex: 1 1 auto;\\n border: 0 none;\\n}\\n\\n.p-inputnumber-horizontal .p-inputnumber-button {\\n border: 1px solid \").concat(dt('inputnumber.button.border.color'), \";\\n}\\n\\n.p-inputnumber-horizontal .p-inputnumber-button:hover {\\n border-color: \").concat(dt('inputnumber.button.hover.border.color'), \";\\n}\\n\\n.p-inputnumber-horizontal .p-inputnumber-button:active {\\n border-color: \").concat(dt('inputnumber.button.active.border.color'), \";\\n}\\n\\n.p-inputnumber-horizontal .p-inputnumber-increment-button {\\n order: 3;\\n border-top-right-radius: \").concat(dt('inputnumber.button.border.radius'), \";\\n border-bottom-right-radius: \").concat(dt('inputnumber.button.border.radius'), \";\\n border-left: 0 none;\\n}\\n\\n.p-inputnumber-horizontal .p-inputnumber-input {\\n order: 2;\\n border-radius: 0;\\n}\\n\\n.p-inputnumber-horizontal .p-inputnumber-decrement-button {\\n order: 1;\\n border-top-left-radius: \").concat(dt('inputnumber.button.border.radius'), \";\\n border-bottom-left-radius: \").concat(dt('inputnumber.button.border.radius'), \";\\n border-right: 0 none;\\n}\\n\\n.p-inputnumber-vertical {\\n flex-direction: column;\\n}\\n\\n.p-inputnumber-vertical .p-inputnumber-button {\\n border: 1px solid \").concat(dt('inputnumber.button.border.color'), \";\\n padding: \").concat(dt('inputnumber.button.vertical.padding'), \"; 0;\\n}\\n\\n.p-inputnumber-vertical .p-inputnumber-button:hover {\\n border-color: \").concat(dt('inputnumber.button.hover.border.color'), \";\\n}\\n\\n.p-inputnumber-vertical .p-inputnumber-button:active {\\n border-color: \").concat(dt('inputnumber.button.active.border.color'), \";\\n}\\n\\n.p-inputnumber-vertical .p-inputnumber-increment-button {\\n order: 1;\\n border-top-left-radius: \").concat(dt('inputnumber.button.border.radius'), \";\\n border-top-right-radius: \").concat(dt('inputnumber.button.border.radius'), \";\\n width: 100%;\\n border-bottom: 0 none;\\n}\\n\\n.p-inputnumber-vertical .p-inputnumber-input {\\n order: 2;\\n border-radius: 0;\\n text-align: center;\\n}\\n\\n.p-inputnumber-vertical .p-inputnumber-decrement-button {\\n order: 3;\\n border-bottom-left-radius: \").concat(dt('inputnumber.button.border.radius'), \";\\n border-bottom-right-radius: \").concat(dt('inputnumber.button.border.radius'), \";\\n width: 100%;\\n border-top: 0 none;\\n}\\n\\n.p-inputnumber-input {\\n flex: 1 1 auto;\\n}\\n\\n.p-inputnumber-fluid {\\n width: 100%;\\n}\\n\\n.p-inputnumber-fluid .p-inputnumber-input {\\n width: 1%;\\n}\\n\\n.p-inputnumber-fluid.p-inputnumber-vertical .p-inputnumber-input {\\n width: 100%;\\n}\\n\");\n};\nvar classes = {\n root: function root(_ref2) {\n var instance = _ref2.instance,\n props = _ref2.props;\n return ['p-inputnumber p-component p-inputwrapper', {\n 'p-inputwrapper-filled': instance.filled || props.allowEmpty === false,\n 'p-inputwrapper-focus': instance.focused,\n 'p-inputnumber-stacked': props.showButtons && props.buttonLayout === 'stacked',\n 'p-inputnumber-horizontal': props.showButtons && props.buttonLayout === 'horizontal',\n 'p-inputnumber-vertical': props.showButtons && props.buttonLayout === 'vertical',\n 'p-inputnumber-fluid': instance.hasFluid\n }];\n },\n pcInput: 'p-inputnumber-input',\n buttonGroup: 'p-inputnumber-button-group',\n incrementButton: function incrementButton(_ref3) {\n var instance = _ref3.instance,\n props = _ref3.props;\n return ['p-inputnumber-button p-inputnumber-increment-button', {\n 'p-disabled': props.showButtons && props.max !== null && instance.maxBoundry()\n }];\n },\n decrementButton: function decrementButton(_ref4) {\n var instance = _ref4.instance,\n props = _ref4.props;\n return ['p-inputnumber-button p-inputnumber-decrement-button', {\n 'p-disabled': props.showButtons && props.min !== null && instance.minBoundry()\n }];\n }\n};\nvar InputNumberStyle = BaseStyle.extend({\n name: 'inputnumber',\n theme: theme,\n classes: classes\n});\n\nexport { InputNumberStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { getSelection, clearSelection } from '@primeuix/utils/dom';\nimport { isNotEmpty, isEmpty } from '@primeuix/utils/object';\nimport AngleDownIcon from '@primevue/icons/angledown';\nimport AngleUpIcon from '@primevue/icons/angleup';\nimport InputText from 'primevue/inputtext';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport InputNumberStyle from 'primevue/inputnumber/style';\nimport { resolveComponent, openBlock, createElementBlock, mergeProps, createVNode, normalizeClass, normalizeStyle, renderSlot, createElementVNode, toHandlers, createBlock, resolveDynamicComponent, createCommentVNode } from 'vue';\n\nvar script$1 = {\n name: 'BaseInputNumber',\n \"extends\": BaseComponent,\n props: {\n modelValue: {\n type: Number,\n \"default\": null\n },\n format: {\n type: Boolean,\n \"default\": true\n },\n showButtons: {\n type: Boolean,\n \"default\": false\n },\n buttonLayout: {\n type: String,\n \"default\": 'stacked'\n },\n incrementButtonClass: {\n type: String,\n \"default\": null\n },\n decrementButtonClass: {\n type: String,\n \"default\": null\n },\n incrementButtonIcon: {\n type: String,\n \"default\": undefined\n },\n incrementIcon: {\n type: String,\n \"default\": undefined\n },\n decrementButtonIcon: {\n type: String,\n \"default\": undefined\n },\n decrementIcon: {\n type: String,\n \"default\": undefined\n },\n locale: {\n type: String,\n \"default\": undefined\n },\n localeMatcher: {\n type: String,\n \"default\": undefined\n },\n mode: {\n type: String,\n \"default\": 'decimal'\n },\n prefix: {\n type: String,\n \"default\": null\n },\n suffix: {\n type: String,\n \"default\": null\n },\n currency: {\n type: String,\n \"default\": undefined\n },\n currencyDisplay: {\n type: String,\n \"default\": undefined\n },\n useGrouping: {\n type: Boolean,\n \"default\": true\n },\n minFractionDigits: {\n type: Number,\n \"default\": undefined\n },\n maxFractionDigits: {\n type: Number,\n \"default\": undefined\n },\n roundingMode: {\n type: String,\n \"default\": 'halfExpand',\n validator: function validator(value) {\n return ['ceil', 'floor', 'expand', 'trunc', 'halfCeil', 'halfFloor', 'halfExpand', 'halfTrunc', 'halfEven'].includes(value);\n }\n },\n min: {\n type: Number,\n \"default\": null\n },\n max: {\n type: Number,\n \"default\": null\n },\n step: {\n type: Number,\n \"default\": 1\n },\n allowEmpty: {\n type: Boolean,\n \"default\": true\n },\n highlightOnFocus: {\n type: Boolean,\n \"default\": false\n },\n readonly: {\n type: Boolean,\n \"default\": false\n },\n variant: {\n type: String,\n \"default\": null\n },\n invalid: {\n type: Boolean,\n \"default\": false\n },\n disabled: {\n type: Boolean,\n \"default\": false\n },\n placeholder: {\n type: String,\n \"default\": null\n },\n fluid: {\n type: Boolean,\n \"default\": null\n },\n inputId: {\n type: String,\n \"default\": null\n },\n inputClass: {\n type: [String, Object],\n \"default\": null\n },\n inputStyle: {\n type: Object,\n \"default\": null\n },\n ariaLabelledby: {\n type: String,\n \"default\": null\n },\n ariaLabel: {\n type: String,\n \"default\": null\n }\n },\n style: InputNumberStyle,\n provide: function provide() {\n return {\n $pcInputNumber: this,\n $parentInstance: this\n };\n }\n};\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nvar script = {\n name: 'InputNumber',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['update:modelValue', 'input', 'focus', 'blur'],\n inject: {\n $pcFluid: {\n \"default\": null\n }\n },\n numberFormat: null,\n _numeral: null,\n _decimal: null,\n _group: null,\n _minusSign: null,\n _currency: null,\n _suffix: null,\n _prefix: null,\n _index: null,\n groupChar: '',\n isSpecialChar: null,\n prefixChar: null,\n suffixChar: null,\n timer: null,\n data: function data() {\n return {\n d_modelValue: this.modelValue,\n focused: false\n };\n },\n watch: {\n modelValue: function modelValue(newValue) {\n this.d_modelValue = newValue;\n },\n locale: function locale(newValue, oldValue) {\n this.updateConstructParser(newValue, oldValue);\n },\n localeMatcher: function localeMatcher(newValue, oldValue) {\n this.updateConstructParser(newValue, oldValue);\n },\n mode: function mode(newValue, oldValue) {\n this.updateConstructParser(newValue, oldValue);\n },\n currency: function currency(newValue, oldValue) {\n this.updateConstructParser(newValue, oldValue);\n },\n currencyDisplay: function currencyDisplay(newValue, oldValue) {\n this.updateConstructParser(newValue, oldValue);\n },\n useGrouping: function useGrouping(newValue, oldValue) {\n this.updateConstructParser(newValue, oldValue);\n },\n minFractionDigits: function minFractionDigits(newValue, oldValue) {\n this.updateConstructParser(newValue, oldValue);\n },\n maxFractionDigits: function maxFractionDigits(newValue, oldValue) {\n this.updateConstructParser(newValue, oldValue);\n },\n suffix: function suffix(newValue, oldValue) {\n this.updateConstructParser(newValue, oldValue);\n },\n prefix: function prefix(newValue, oldValue) {\n this.updateConstructParser(newValue, oldValue);\n }\n },\n created: function created() {\n this.constructParser();\n },\n methods: {\n getOptions: function getOptions() {\n return {\n localeMatcher: this.localeMatcher,\n style: this.mode,\n currency: this.currency,\n currencyDisplay: this.currencyDisplay,\n useGrouping: this.useGrouping,\n minimumFractionDigits: this.minFractionDigits,\n maximumFractionDigits: this.maxFractionDigits,\n roundingMode: this.roundingMode\n };\n },\n constructParser: function constructParser() {\n this.numberFormat = new Intl.NumberFormat(this.locale, this.getOptions());\n var numerals = _toConsumableArray(new Intl.NumberFormat(this.locale, {\n useGrouping: false\n }).format(9876543210)).reverse();\n var index = new Map(numerals.map(function (d, i) {\n return [d, i];\n }));\n this._numeral = new RegExp(\"[\".concat(numerals.join(''), \"]\"), 'g');\n this._group = this.getGroupingExpression();\n this._minusSign = this.getMinusSignExpression();\n this._currency = this.getCurrencyExpression();\n this._decimal = this.getDecimalExpression();\n this._suffix = this.getSuffixExpression();\n this._prefix = this.getPrefixExpression();\n this._index = function (d) {\n return index.get(d);\n };\n },\n updateConstructParser: function updateConstructParser(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.constructParser();\n }\n },\n escapeRegExp: function escapeRegExp(text) {\n return text.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n },\n getDecimalExpression: function getDecimalExpression() {\n var formatter = new Intl.NumberFormat(this.locale, _objectSpread(_objectSpread({}, this.getOptions()), {}, {\n useGrouping: false\n }));\n return new RegExp(\"[\".concat(formatter.format(1.1).replace(this._currency, '').trim().replace(this._numeral, ''), \"]\"), 'g');\n },\n getGroupingExpression: function getGroupingExpression() {\n var formatter = new Intl.NumberFormat(this.locale, {\n useGrouping: true\n });\n this.groupChar = formatter.format(1000000).trim().replace(this._numeral, '').charAt(0);\n return new RegExp(\"[\".concat(this.groupChar, \"]\"), 'g');\n },\n getMinusSignExpression: function getMinusSignExpression() {\n var formatter = new Intl.NumberFormat(this.locale, {\n useGrouping: false\n });\n return new RegExp(\"[\".concat(formatter.format(-1).trim().replace(this._numeral, ''), \"]\"), 'g');\n },\n getCurrencyExpression: function getCurrencyExpression() {\n if (this.currency) {\n var formatter = new Intl.NumberFormat(this.locale, {\n style: 'currency',\n currency: this.currency,\n currencyDisplay: this.currencyDisplay,\n minimumFractionDigits: 0,\n maximumFractionDigits: 0,\n roundingMode: this.roundingMode\n });\n return new RegExp(\"[\".concat(formatter.format(1).replace(/\\s/g, '').replace(this._numeral, '').replace(this._group, ''), \"]\"), 'g');\n }\n return new RegExp(\"[]\", 'g');\n },\n getPrefixExpression: function getPrefixExpression() {\n if (this.prefix) {\n this.prefixChar = this.prefix;\n } else {\n var formatter = new Intl.NumberFormat(this.locale, {\n style: this.mode,\n currency: this.currency,\n currencyDisplay: this.currencyDisplay\n });\n this.prefixChar = formatter.format(1).split('1')[0];\n }\n return new RegExp(\"\".concat(this.escapeRegExp(this.prefixChar || '')), 'g');\n },\n getSuffixExpression: function getSuffixExpression() {\n if (this.suffix) {\n this.suffixChar = this.suffix;\n } else {\n var formatter = new Intl.NumberFormat(this.locale, {\n style: this.mode,\n currency: this.currency,\n currencyDisplay: this.currencyDisplay,\n minimumFractionDigits: 0,\n maximumFractionDigits: 0,\n roundingMode: this.roundingMode\n });\n this.suffixChar = formatter.format(1).split('1')[1];\n }\n return new RegExp(\"\".concat(this.escapeRegExp(this.suffixChar || '')), 'g');\n },\n formatValue: function formatValue(value) {\n if (value != null) {\n if (value === '-') {\n // Minus sign\n return value;\n }\n if (this.format) {\n var formatter = new Intl.NumberFormat(this.locale, this.getOptions());\n var formattedValue = formatter.format(value);\n if (this.prefix) {\n formattedValue = this.prefix + formattedValue;\n }\n if (this.suffix) {\n formattedValue = formattedValue + this.suffix;\n }\n return formattedValue;\n }\n return value.toString();\n }\n return '';\n },\n parseValue: function parseValue(text) {\n var filteredText = text.replace(this._suffix, '').replace(this._prefix, '').trim().replace(/\\s/g, '').replace(this._currency, '').replace(this._group, '').replace(this._minusSign, '-').replace(this._decimal, '.').replace(this._numeral, this._index);\n if (filteredText) {\n if (filteredText === '-')\n // Minus sign\n return filteredText;\n var parsedValue = +filteredText;\n return isNaN(parsedValue) ? null : parsedValue;\n }\n return null;\n },\n repeat: function repeat(event, interval, dir) {\n var _this = this;\n if (this.readonly) {\n return;\n }\n var i = interval || 500;\n this.clearTimer();\n this.timer = setTimeout(function () {\n _this.repeat(event, 40, dir);\n }, i);\n this.spin(event, dir);\n },\n spin: function spin(event, dir) {\n if (this.$refs.input) {\n var step = this.step * dir;\n var currentValue = this.parseValue(this.$refs.input.$el.value) || 0;\n var newValue = this.validateValue(currentValue + step);\n this.updateInput(newValue, null, 'spin');\n this.updateModel(event, newValue);\n this.handleOnInput(event, currentValue, newValue);\n }\n },\n onUpButtonMouseDown: function onUpButtonMouseDown(event) {\n if (!this.disabled) {\n this.$refs.input.$el.focus();\n this.repeat(event, null, 1);\n event.preventDefault();\n }\n },\n onUpButtonMouseUp: function onUpButtonMouseUp() {\n if (!this.disabled) {\n this.clearTimer();\n }\n },\n onUpButtonMouseLeave: function onUpButtonMouseLeave() {\n if (!this.disabled) {\n this.clearTimer();\n }\n },\n onUpButtonKeyUp: function onUpButtonKeyUp() {\n if (!this.disabled) {\n this.clearTimer();\n }\n },\n onUpButtonKeyDown: function onUpButtonKeyDown(event) {\n if (event.code === 'Space' || event.code === 'Enter' || event.code === 'NumpadEnter') {\n this.repeat(event, null, 1);\n }\n },\n onDownButtonMouseDown: function onDownButtonMouseDown(event) {\n if (!this.disabled) {\n this.$refs.input.$el.focus();\n this.repeat(event, null, -1);\n event.preventDefault();\n }\n },\n onDownButtonMouseUp: function onDownButtonMouseUp() {\n if (!this.disabled) {\n this.clearTimer();\n }\n },\n onDownButtonMouseLeave: function onDownButtonMouseLeave() {\n if (!this.disabled) {\n this.clearTimer();\n }\n },\n onDownButtonKeyUp: function onDownButtonKeyUp() {\n if (!this.disabled) {\n this.clearTimer();\n }\n },\n onDownButtonKeyDown: function onDownButtonKeyDown(event) {\n if (event.code === 'Space' || event.code === 'Enter' || event.code === 'NumpadEnter') {\n this.repeat(event, null, -1);\n }\n },\n onUserInput: function onUserInput() {\n if (this.isSpecialChar) {\n this.$refs.input.$el.value = this.lastValue;\n }\n this.isSpecialChar = false;\n },\n onInputKeyDown: function onInputKeyDown(event) {\n if (this.readonly) {\n return;\n }\n if (event.altKey || event.ctrlKey || event.metaKey) {\n this.isSpecialChar = true;\n this.lastValue = this.$refs.input.$el.value;\n return;\n }\n this.lastValue = event.target.value;\n var selectionStart = event.target.selectionStart;\n var selectionEnd = event.target.selectionEnd;\n var inputValue = event.target.value;\n var newValueStr = null;\n switch (event.code) {\n case 'ArrowUp':\n this.spin(event, 1);\n event.preventDefault();\n break;\n case 'ArrowDown':\n this.spin(event, -1);\n event.preventDefault();\n break;\n case 'ArrowLeft':\n if (!this.isNumeralChar(inputValue.charAt(selectionStart - 1))) {\n event.preventDefault();\n }\n break;\n case 'ArrowRight':\n if (!this.isNumeralChar(inputValue.charAt(selectionStart))) {\n event.preventDefault();\n }\n break;\n case 'Tab':\n case 'Enter':\n case 'NumpadEnter':\n newValueStr = this.validateValue(this.parseValue(inputValue));\n this.$refs.input.$el.value = this.formatValue(newValueStr);\n this.$refs.input.$el.setAttribute('aria-valuenow', newValueStr);\n this.updateModel(event, newValueStr);\n break;\n case 'Backspace':\n {\n event.preventDefault();\n if (selectionStart === selectionEnd) {\n var deleteChar = inputValue.charAt(selectionStart - 1);\n var _this$getDecimalCharI = this.getDecimalCharIndexes(inputValue),\n decimalCharIndex = _this$getDecimalCharI.decimalCharIndex,\n decimalCharIndexWithoutPrefix = _this$getDecimalCharI.decimalCharIndexWithoutPrefix;\n if (this.isNumeralChar(deleteChar)) {\n var decimalLength = this.getDecimalLength(inputValue);\n if (this._group.test(deleteChar)) {\n this._group.lastIndex = 0;\n newValueStr = inputValue.slice(0, selectionStart - 2) + inputValue.slice(selectionStart - 1);\n } else if (this._decimal.test(deleteChar)) {\n this._decimal.lastIndex = 0;\n if (decimalLength) {\n this.$refs.input.$el.setSelectionRange(selectionStart - 1, selectionStart - 1);\n } else {\n newValueStr = inputValue.slice(0, selectionStart - 1) + inputValue.slice(selectionStart);\n }\n } else if (decimalCharIndex > 0 && selectionStart > decimalCharIndex) {\n var insertedText = this.isDecimalMode() && (this.minFractionDigits || 0) < decimalLength ? '' : '0';\n newValueStr = inputValue.slice(0, selectionStart - 1) + insertedText + inputValue.slice(selectionStart);\n } else if (decimalCharIndexWithoutPrefix === 1) {\n newValueStr = inputValue.slice(0, selectionStart - 1) + '0' + inputValue.slice(selectionStart);\n newValueStr = this.parseValue(newValueStr) > 0 ? newValueStr : '';\n } else {\n newValueStr = inputValue.slice(0, selectionStart - 1) + inputValue.slice(selectionStart);\n }\n }\n this.updateValue(event, newValueStr, null, 'delete-single');\n } else {\n newValueStr = this.deleteRange(inputValue, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, null, 'delete-range');\n }\n break;\n }\n case 'Delete':\n event.preventDefault();\n if (selectionStart === selectionEnd) {\n var _deleteChar = inputValue.charAt(selectionStart);\n var _this$getDecimalCharI2 = this.getDecimalCharIndexes(inputValue),\n _decimalCharIndex = _this$getDecimalCharI2.decimalCharIndex,\n _decimalCharIndexWithoutPrefix = _this$getDecimalCharI2.decimalCharIndexWithoutPrefix;\n if (this.isNumeralChar(_deleteChar)) {\n var _decimalLength = this.getDecimalLength(inputValue);\n if (this._group.test(_deleteChar)) {\n this._group.lastIndex = 0;\n newValueStr = inputValue.slice(0, selectionStart) + inputValue.slice(selectionStart + 2);\n } else if (this._decimal.test(_deleteChar)) {\n this._decimal.lastIndex = 0;\n if (_decimalLength) {\n this.$refs.input.$el.setSelectionRange(selectionStart + 1, selectionStart + 1);\n } else {\n newValueStr = inputValue.slice(0, selectionStart) + inputValue.slice(selectionStart + 1);\n }\n } else if (_decimalCharIndex > 0 && selectionStart > _decimalCharIndex) {\n var _insertedText = this.isDecimalMode() && (this.minFractionDigits || 0) < _decimalLength ? '' : '0';\n newValueStr = inputValue.slice(0, selectionStart) + _insertedText + inputValue.slice(selectionStart + 1);\n } else if (_decimalCharIndexWithoutPrefix === 1) {\n newValueStr = inputValue.slice(0, selectionStart) + '0' + inputValue.slice(selectionStart + 1);\n newValueStr = this.parseValue(newValueStr) > 0 ? newValueStr : '';\n } else {\n newValueStr = inputValue.slice(0, selectionStart) + inputValue.slice(selectionStart + 1);\n }\n }\n this.updateValue(event, newValueStr, null, 'delete-back-single');\n } else {\n newValueStr = this.deleteRange(inputValue, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, null, 'delete-range');\n }\n break;\n case 'Home':\n event.preventDefault();\n if (isNotEmpty(this.min)) {\n this.updateModel(event, this.min);\n }\n break;\n case 'End':\n event.preventDefault();\n if (isNotEmpty(this.max)) {\n this.updateModel(event, this.max);\n }\n break;\n }\n },\n onInputKeyPress: function onInputKeyPress(event) {\n if (this.readonly) {\n return;\n }\n var _char = event.key;\n var isDecimalSign = this.isDecimalSign(_char);\n var isMinusSign = this.isMinusSign(_char);\n if (event.code !== 'Enter') {\n event.preventDefault();\n }\n if (Number(_char) >= 0 && Number(_char) <= 9 || isMinusSign || isDecimalSign) {\n this.insert(event, _char, {\n isDecimalSign: isDecimalSign,\n isMinusSign: isMinusSign\n });\n }\n },\n onPaste: function onPaste(event) {\n event.preventDefault();\n var data = (event.clipboardData || window['clipboardData']).getData('Text');\n if (data) {\n var filteredData = this.parseValue(data);\n if (filteredData != null) {\n this.insert(event, filteredData.toString());\n }\n }\n },\n allowMinusSign: function allowMinusSign() {\n return this.min === null || this.min < 0;\n },\n isMinusSign: function isMinusSign(_char2) {\n if (this._minusSign.test(_char2) || _char2 === '-') {\n this._minusSign.lastIndex = 0;\n return true;\n }\n return false;\n },\n isDecimalSign: function isDecimalSign(_char3) {\n if (this._decimal.test(_char3)) {\n this._decimal.lastIndex = 0;\n return true;\n }\n return false;\n },\n isDecimalMode: function isDecimalMode() {\n return this.mode === 'decimal';\n },\n getDecimalCharIndexes: function getDecimalCharIndexes(val) {\n var decimalCharIndex = val.search(this._decimal);\n this._decimal.lastIndex = 0;\n var filteredVal = val.replace(this._prefix, '').trim().replace(/\\s/g, '').replace(this._currency, '');\n var decimalCharIndexWithoutPrefix = filteredVal.search(this._decimal);\n this._decimal.lastIndex = 0;\n return {\n decimalCharIndex: decimalCharIndex,\n decimalCharIndexWithoutPrefix: decimalCharIndexWithoutPrefix\n };\n },\n getCharIndexes: function getCharIndexes(val) {\n var decimalCharIndex = val.search(this._decimal);\n this._decimal.lastIndex = 0;\n var minusCharIndex = val.search(this._minusSign);\n this._minusSign.lastIndex = 0;\n var suffixCharIndex = val.search(this._suffix);\n this._suffix.lastIndex = 0;\n var currencyCharIndex = val.search(this._currency);\n this._currency.lastIndex = 0;\n return {\n decimalCharIndex: decimalCharIndex,\n minusCharIndex: minusCharIndex,\n suffixCharIndex: suffixCharIndex,\n currencyCharIndex: currencyCharIndex\n };\n },\n insert: function insert(event, text) {\n var sign = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n isDecimalSign: false,\n isMinusSign: false\n };\n var minusCharIndexOnText = text.search(this._minusSign);\n this._minusSign.lastIndex = 0;\n if (!this.allowMinusSign() && minusCharIndexOnText !== -1) {\n return;\n }\n var selectionStart = this.$refs.input.$el.selectionStart;\n var selectionEnd = this.$refs.input.$el.selectionEnd;\n var inputValue = this.$refs.input.$el.value.trim();\n var _this$getCharIndexes = this.getCharIndexes(inputValue),\n decimalCharIndex = _this$getCharIndexes.decimalCharIndex,\n minusCharIndex = _this$getCharIndexes.minusCharIndex,\n suffixCharIndex = _this$getCharIndexes.suffixCharIndex,\n currencyCharIndex = _this$getCharIndexes.currencyCharIndex;\n var newValueStr;\n if (sign.isMinusSign) {\n if (selectionStart === 0) {\n newValueStr = inputValue;\n if (minusCharIndex === -1 || selectionEnd !== 0) {\n newValueStr = this.insertText(inputValue, text, 0, selectionEnd);\n }\n this.updateValue(event, newValueStr, text, 'insert');\n }\n } else if (sign.isDecimalSign) {\n if (decimalCharIndex > 0 && selectionStart === decimalCharIndex) {\n this.updateValue(event, inputValue, text, 'insert');\n } else if (decimalCharIndex > selectionStart && decimalCharIndex < selectionEnd) {\n newValueStr = this.insertText(inputValue, text, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, text, 'insert');\n } else if (decimalCharIndex === -1 && this.maxFractionDigits) {\n newValueStr = this.insertText(inputValue, text, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, text, 'insert');\n }\n } else {\n var maxFractionDigits = this.numberFormat.resolvedOptions().maximumFractionDigits;\n var operation = selectionStart !== selectionEnd ? 'range-insert' : 'insert';\n if (decimalCharIndex > 0 && selectionStart > decimalCharIndex) {\n if (selectionStart + text.length - (decimalCharIndex + 1) <= maxFractionDigits) {\n var charIndex = currencyCharIndex >= selectionStart ? currencyCharIndex - 1 : suffixCharIndex >= selectionStart ? suffixCharIndex : inputValue.length;\n newValueStr = inputValue.slice(0, selectionStart) + text + inputValue.slice(selectionStart + text.length, charIndex) + inputValue.slice(charIndex);\n this.updateValue(event, newValueStr, text, operation);\n }\n } else {\n newValueStr = this.insertText(inputValue, text, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, text, operation);\n }\n }\n },\n insertText: function insertText(value, text, start, end) {\n var textSplit = text === '.' ? text : text.split('.');\n if (textSplit.length === 2) {\n var decimalCharIndex = value.slice(start, end).search(this._decimal);\n this._decimal.lastIndex = 0;\n return decimalCharIndex > 0 ? value.slice(0, start) + this.formatValue(text) + value.slice(end) : this.formatValue(text) || value;\n } else if (end - start === value.length) {\n return this.formatValue(text);\n } else if (start === 0) {\n return text + value.slice(end);\n } else if (end === value.length) {\n return value.slice(0, start) + text;\n } else {\n return value.slice(0, start) + text + value.slice(end);\n }\n },\n deleteRange: function deleteRange(value, start, end) {\n var newValueStr;\n if (end - start === value.length) newValueStr = '';else if (start === 0) newValueStr = value.slice(end);else if (end === value.length) newValueStr = value.slice(0, start);else newValueStr = value.slice(0, start) + value.slice(end);\n return newValueStr;\n },\n initCursor: function initCursor() {\n var selectionStart = this.$refs.input.$el.selectionStart;\n var inputValue = this.$refs.input.$el.value;\n var valueLength = inputValue.length;\n var index = null;\n\n // remove prefix\n var prefixLength = (this.prefixChar || '').length;\n inputValue = inputValue.replace(this._prefix, '');\n selectionStart = selectionStart - prefixLength;\n var _char4 = inputValue.charAt(selectionStart);\n if (this.isNumeralChar(_char4)) {\n return selectionStart + prefixLength;\n }\n\n //left\n var i = selectionStart - 1;\n while (i >= 0) {\n _char4 = inputValue.charAt(i);\n if (this.isNumeralChar(_char4)) {\n index = i + prefixLength;\n break;\n } else {\n i--;\n }\n }\n if (index !== null) {\n this.$refs.input.$el.setSelectionRange(index + 1, index + 1);\n } else {\n i = selectionStart;\n while (i < valueLength) {\n _char4 = inputValue.charAt(i);\n if (this.isNumeralChar(_char4)) {\n index = i + prefixLength;\n break;\n } else {\n i++;\n }\n }\n if (index !== null) {\n this.$refs.input.$el.setSelectionRange(index, index);\n }\n }\n return index || 0;\n },\n onInputClick: function onInputClick() {\n var currentValue = this.$refs.input.$el.value;\n if (!this.readonly && currentValue !== getSelection()) {\n this.initCursor();\n }\n },\n isNumeralChar: function isNumeralChar(_char5) {\n if (_char5.length === 1 && (this._numeral.test(_char5) || this._decimal.test(_char5) || this._group.test(_char5) || this._minusSign.test(_char5))) {\n this.resetRegex();\n return true;\n }\n return false;\n },\n resetRegex: function resetRegex() {\n this._numeral.lastIndex = 0;\n this._decimal.lastIndex = 0;\n this._group.lastIndex = 0;\n this._minusSign.lastIndex = 0;\n },\n updateValue: function updateValue(event, valueStr, insertedValueStr, operation) {\n var currentValue = this.$refs.input.$el.value;\n var newValue = null;\n if (valueStr != null) {\n newValue = this.parseValue(valueStr);\n newValue = !newValue && !this.allowEmpty ? 0 : newValue;\n this.updateInput(newValue, insertedValueStr, operation, valueStr);\n this.handleOnInput(event, currentValue, newValue);\n }\n },\n handleOnInput: function handleOnInput(event, currentValue, newValue) {\n if (this.isValueChanged(currentValue, newValue)) {\n this.$emit('input', {\n originalEvent: event,\n value: newValue,\n formattedValue: currentValue\n });\n }\n },\n isValueChanged: function isValueChanged(currentValue, newValue) {\n if (newValue === null && currentValue !== null) {\n return true;\n }\n if (newValue != null) {\n var parsedCurrentValue = typeof currentValue === 'string' ? this.parseValue(currentValue) : currentValue;\n return newValue !== parsedCurrentValue;\n }\n return false;\n },\n validateValue: function validateValue(value) {\n if (value === '-' || value == null) {\n return null;\n }\n if (this.min != null && value < this.min) {\n return this.min;\n }\n if (this.max != null && value > this.max) {\n return this.max;\n }\n return value;\n },\n updateInput: function updateInput(value, insertedValueStr, operation, valueStr) {\n insertedValueStr = insertedValueStr || '';\n var inputValue = this.$refs.input.$el.value;\n var newValue = this.formatValue(value);\n var currentLength = inputValue.length;\n if (newValue !== valueStr) {\n newValue = this.concatValues(newValue, valueStr);\n }\n if (currentLength === 0) {\n this.$refs.input.$el.value = newValue;\n this.$refs.input.$el.setSelectionRange(0, 0);\n var index = this.initCursor();\n var selectionEnd = index + insertedValueStr.length;\n this.$refs.input.$el.setSelectionRange(selectionEnd, selectionEnd);\n } else {\n var selectionStart = this.$refs.input.$el.selectionStart;\n var _selectionEnd = this.$refs.input.$el.selectionEnd;\n this.$refs.input.$el.value = newValue;\n var newLength = newValue.length;\n if (operation === 'range-insert') {\n var startValue = this.parseValue((inputValue || '').slice(0, selectionStart));\n var startValueStr = startValue !== null ? startValue.toString() : '';\n var startExpr = startValueStr.split('').join(\"(\".concat(this.groupChar, \")?\"));\n var sRegex = new RegExp(startExpr, 'g');\n sRegex.test(newValue);\n var tExpr = insertedValueStr.split('').join(\"(\".concat(this.groupChar, \")?\"));\n var tRegex = new RegExp(tExpr, 'g');\n tRegex.test(newValue.slice(sRegex.lastIndex));\n _selectionEnd = sRegex.lastIndex + tRegex.lastIndex;\n this.$refs.input.$el.setSelectionRange(_selectionEnd, _selectionEnd);\n } else if (newLength === currentLength) {\n if (operation === 'insert' || operation === 'delete-back-single') {\n this.$refs.input.$el.setSelectionRange(_selectionEnd + 1, _selectionEnd + 1);\n } else if (operation === 'delete-single') {\n this.$refs.input.$el.setSelectionRange(_selectionEnd - 1, _selectionEnd - 1);\n } else if (operation === 'delete-range' || operation === 'spin') {\n this.$refs.input.$el.setSelectionRange(_selectionEnd, _selectionEnd);\n }\n } else if (operation === 'delete-back-single') {\n var prevChar = inputValue.charAt(_selectionEnd - 1);\n var nextChar = inputValue.charAt(_selectionEnd);\n var diff = currentLength - newLength;\n var isGroupChar = this._group.test(nextChar);\n if (isGroupChar && diff === 1) {\n _selectionEnd += 1;\n } else if (!isGroupChar && this.isNumeralChar(prevChar)) {\n _selectionEnd += -1 * diff + 1;\n }\n this._group.lastIndex = 0;\n this.$refs.input.$el.setSelectionRange(_selectionEnd, _selectionEnd);\n } else if (inputValue === '-' && operation === 'insert') {\n this.$refs.input.$el.setSelectionRange(0, 0);\n var _index = this.initCursor();\n var _selectionEnd2 = _index + insertedValueStr.length + 1;\n this.$refs.input.$el.setSelectionRange(_selectionEnd2, _selectionEnd2);\n } else {\n _selectionEnd = _selectionEnd + (newLength - currentLength);\n this.$refs.input.$el.setSelectionRange(_selectionEnd, _selectionEnd);\n }\n }\n this.$refs.input.$el.setAttribute('aria-valuenow', value);\n },\n concatValues: function concatValues(val1, val2) {\n if (val1 && val2) {\n var decimalCharIndex = val2.search(this._decimal);\n this._decimal.lastIndex = 0;\n if (this.suffixChar) {\n return decimalCharIndex !== -1 ? val1.replace(this.suffixChar, '').split(this._decimal)[0] + val2.replace(this.suffixChar, '').slice(decimalCharIndex) + this.suffixChar : val1;\n } else {\n return decimalCharIndex !== -1 ? val1.split(this._decimal)[0] + val2.slice(decimalCharIndex) : val1;\n }\n }\n return val1;\n },\n getDecimalLength: function getDecimalLength(value) {\n if (value) {\n var valueSplit = value.split(this._decimal);\n if (valueSplit.length === 2) {\n return valueSplit[1].replace(this._suffix, '').trim().replace(/\\s/g, '').replace(this._currency, '').length;\n }\n }\n return 0;\n },\n updateModel: function updateModel(event, value) {\n this.d_modelValue = value;\n this.$emit('update:modelValue', value);\n },\n onInputFocus: function onInputFocus(event) {\n this.focused = true;\n if (!this.disabled && !this.readonly && this.$refs.input.$el.value !== getSelection() && this.highlightOnFocus) {\n event.target.select();\n }\n this.$emit('focus', event);\n },\n onInputBlur: function onInputBlur(event) {\n this.focused = false;\n var input = event.target;\n var newValue = this.validateValue(this.parseValue(input.value));\n this.$emit('blur', {\n originalEvent: event,\n value: input.value\n });\n input.value = this.formatValue(newValue);\n input.setAttribute('aria-valuenow', newValue);\n this.updateModel(event, newValue);\n if (!this.disabled && !this.readonly && this.highlightOnFocus) {\n clearSelection();\n }\n },\n clearTimer: function clearTimer() {\n if (this.timer) {\n clearInterval(this.timer);\n }\n },\n maxBoundry: function maxBoundry() {\n return this.d_modelValue >= this.max;\n },\n minBoundry: function minBoundry() {\n return this.d_modelValue <= this.min;\n }\n },\n computed: {\n filled: function filled() {\n return this.modelValue != null && this.modelValue.toString().length > 0;\n },\n upButtonListeners: function upButtonListeners() {\n var _this2 = this;\n return {\n mousedown: function mousedown(event) {\n return _this2.onUpButtonMouseDown(event);\n },\n mouseup: function mouseup(event) {\n return _this2.onUpButtonMouseUp(event);\n },\n mouseleave: function mouseleave(event) {\n return _this2.onUpButtonMouseLeave(event);\n },\n keydown: function keydown(event) {\n return _this2.onUpButtonKeyDown(event);\n },\n keyup: function keyup(event) {\n return _this2.onUpButtonKeyUp(event);\n }\n };\n },\n downButtonListeners: function downButtonListeners() {\n var _this3 = this;\n return {\n mousedown: function mousedown(event) {\n return _this3.onDownButtonMouseDown(event);\n },\n mouseup: function mouseup(event) {\n return _this3.onDownButtonMouseUp(event);\n },\n mouseleave: function mouseleave(event) {\n return _this3.onDownButtonMouseLeave(event);\n },\n keydown: function keydown(event) {\n return _this3.onDownButtonKeyDown(event);\n },\n keyup: function keyup(event) {\n return _this3.onDownButtonKeyUp(event);\n }\n };\n },\n formattedValue: function formattedValue() {\n var val = !this.modelValue && !this.allowEmpty ? 0 : this.modelValue;\n return this.formatValue(val);\n },\n getFormatter: function getFormatter() {\n return this.numberFormat;\n },\n hasFluid: function hasFluid() {\n return isEmpty(this.fluid) ? !!this.$pcFluid : this.fluid;\n }\n },\n components: {\n InputText: InputText,\n AngleUpIcon: AngleUpIcon,\n AngleDownIcon: AngleDownIcon\n }\n};\n\nvar _hoisted_1 = [\"disabled\"];\nvar _hoisted_2 = [\"disabled\"];\nvar _hoisted_3 = [\"disabled\"];\nvar _hoisted_4 = [\"disabled\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_InputText = resolveComponent(\"InputText\");\n return openBlock(), createElementBlock(\"span\", mergeProps({\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root')), [createVNode(_component_InputText, {\n ref: \"input\",\n id: _ctx.inputId,\n role: \"spinbutton\",\n \"class\": normalizeClass([_ctx.cx('pcInput'), _ctx.inputClass]),\n style: normalizeStyle(_ctx.inputStyle),\n value: $options.formattedValue,\n \"aria-valuemin\": _ctx.min,\n \"aria-valuemax\": _ctx.max,\n \"aria-valuenow\": _ctx.modelValue,\n inputmode: _ctx.mode === 'decimal' && !_ctx.minFractionDigits ? 'numeric' : 'decimal',\n disabled: _ctx.disabled,\n readonly: _ctx.readonly,\n placeholder: _ctx.placeholder,\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-label\": _ctx.ariaLabel,\n invalid: _ctx.invalid,\n variant: _ctx.variant,\n onInput: $options.onUserInput,\n onKeydown: $options.onInputKeyDown,\n onKeypress: $options.onInputKeyPress,\n onPaste: $options.onPaste,\n onClick: $options.onInputClick,\n onFocus: $options.onInputFocus,\n onBlur: $options.onInputBlur,\n pt: _ctx.ptm('pcInput'),\n unstyled: _ctx.unstyled\n }, null, 8, [\"id\", \"class\", \"style\", \"value\", \"aria-valuemin\", \"aria-valuemax\", \"aria-valuenow\", \"inputmode\", \"disabled\", \"readonly\", \"placeholder\", \"aria-labelledby\", \"aria-label\", \"invalid\", \"variant\", \"onInput\", \"onKeydown\", \"onKeypress\", \"onPaste\", \"onClick\", \"onFocus\", \"onBlur\", \"pt\", \"unstyled\"]), _ctx.showButtons && _ctx.buttonLayout === 'stacked' ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('buttonGroup')\n }, _ctx.ptm('buttonGroup')), [renderSlot(_ctx.$slots, \"incrementbutton\", {\n listeners: $options.upButtonListeners\n }, function () {\n return [createElementVNode(\"button\", mergeProps({\n \"class\": [_ctx.cx('incrementButton'), _ctx.incrementButtonClass]\n }, toHandlers($options.upButtonListeners, true), {\n disabled: _ctx.disabled,\n tabindex: -1,\n \"aria-hidden\": \"true\",\n type: \"button\"\n }, _ctx.ptm('incrementButton')), [renderSlot(_ctx.$slots, _ctx.$slots.incrementicon ? 'incrementicon' : 'incrementbuttonicon', {}, function () {\n return [(openBlock(), createBlock(resolveDynamicComponent(_ctx.incrementIcon || _ctx.incrementButtonIcon ? 'span' : 'AngleUpIcon'), mergeProps({\n \"class\": [_ctx.incrementIcon, _ctx.incrementButtonIcon]\n }, _ctx.ptm('incrementIcon'), {\n \"data-pc-section\": \"incrementicon\"\n }), null, 16, [\"class\"]))];\n })], 16, _hoisted_1)];\n }), renderSlot(_ctx.$slots, \"decrementbutton\", {\n listeners: $options.downButtonListeners\n }, function () {\n return [createElementVNode(\"button\", mergeProps({\n \"class\": [_ctx.cx('decrementButton'), _ctx.decrementButtonClass]\n }, toHandlers($options.downButtonListeners, true), {\n disabled: _ctx.disabled,\n tabindex: -1,\n \"aria-hidden\": \"true\",\n type: \"button\"\n }, _ctx.ptm('decrementButton')), [renderSlot(_ctx.$slots, _ctx.$slots.decrementicon ? 'decrementicon' : 'decrementbuttonicon', {}, function () {\n return [(openBlock(), createBlock(resolveDynamicComponent(_ctx.decrementIcon || _ctx.decrementButtonIcon ? 'span' : 'AngleDownIcon'), mergeProps({\n \"class\": [_ctx.decrementIcon, _ctx.decrementButtonIcon]\n }, _ctx.ptm('decrementIcon'), {\n \"data-pc-section\": \"decrementicon\"\n }), null, 16, [\"class\"]))];\n })], 16, _hoisted_2)];\n })], 16)) : createCommentVNode(\"\", true), renderSlot(_ctx.$slots, \"incrementbutton\", {\n listeners: $options.upButtonListeners\n }, function () {\n return [_ctx.showButtons && _ctx.buttonLayout !== 'stacked' ? (openBlock(), createElementBlock(\"button\", mergeProps({\n key: 0,\n \"class\": [_ctx.cx('incrementButton'), _ctx.incrementButtonClass]\n }, toHandlers($options.upButtonListeners, true), {\n disabled: _ctx.disabled,\n tabindex: -1,\n \"aria-hidden\": \"true\",\n type: \"button\"\n }, _ctx.ptm('incrementButton')), [renderSlot(_ctx.$slots, _ctx.$slots.incrementicon ? 'incrementicon' : 'incrementbuttonicon', {}, function () {\n return [(openBlock(), createBlock(resolveDynamicComponent(_ctx.incrementIcon || _ctx.incrementButtonIcon ? 'span' : 'AngleUpIcon'), mergeProps({\n \"class\": [_ctx.incrementIcon, _ctx.incrementButtonIcon]\n }, _ctx.ptm('incrementIcon'), {\n \"data-pc-section\": \"incrementicon\"\n }), null, 16, [\"class\"]))];\n })], 16, _hoisted_3)) : createCommentVNode(\"\", true)];\n }), renderSlot(_ctx.$slots, \"decrementbutton\", {\n listeners: $options.downButtonListeners\n }, function () {\n return [_ctx.showButtons && _ctx.buttonLayout !== 'stacked' ? (openBlock(), createElementBlock(\"button\", mergeProps({\n key: 0,\n \"class\": [_ctx.cx('decrementButton'), _ctx.decrementButtonClass]\n }, toHandlers($options.downButtonListeners, true), {\n disabled: _ctx.disabled,\n tabindex: -1,\n \"aria-hidden\": \"true\",\n type: \"button\"\n }, _ctx.ptm('decrementButton')), [renderSlot(_ctx.$slots, _ctx.$slots.decrementicon ? 'decrementicon' : 'decrementbuttonicon', {}, function () {\n return [(openBlock(), createBlock(resolveDynamicComponent(_ctx.decrementIcon || _ctx.decrementButtonIcon ? 'span' : 'AngleDownIcon'), mergeProps({\n \"class\": [_ctx.decrementIcon, _ctx.decrementButtonIcon]\n }, _ctx.ptm('decrementIcon'), {\n \"data-pc-section\": \"decrementicon\"\n }), null, 16, [\"class\"]))];\n })], 16, _hoisted_4)) : createCommentVNode(\"\", true)];\n })], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-toggleswitch {\\n display: inline-block;\\n width: \".concat(dt('toggleswitch.width'), \";\\n height: \").concat(dt('toggleswitch.height'), \";\\n}\\n\\n.p-toggleswitch-input {\\n cursor: pointer;\\n appearance: none;\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n padding: 0;\\n margin: 0;\\n opacity: 0;\\n z-index: 1;\\n outline: 0 none;\\n border-radius: \").concat(dt('toggleswitch.border.radius'), \";\\n}\\n\\n.p-toggleswitch-slider {\\n display: inline-block;\\n cursor: pointer;\\n width: 100%;\\n height: 100%;\\n border-width: \").concat(dt('toggleswitch.border.width'), \";\\n border-style: solid;\\n border-color: \").concat(dt('toggleswitch.border.color'), \";\\n background: \").concat(dt('toggleswitch.background'), \";\\n transition: background \").concat(dt('toggleswitch.transition.duration'), \", color \").concat(dt('toggleswitch.transition.duration'), \", border-color \").concat(dt('toggleswitch.transition.duration'), \", outline-color \").concat(dt('toggleswitch.transition.duration'), \", box-shadow \").concat(dt('toggleswitch.transition.duration'), \";\\n border-radius: \").concat(dt('toggleswitch.border.radius'), \";\\n outline-color: transparent;\\n box-shadow: \").concat(dt('toggleswitch.shadow'), \";\\n}\\n\\n.p-toggleswitch-slider:before {\\n position: absolute;\\n content: \\\"\\\";\\n top: 50%;\\n background: \").concat(dt('toggleswitch.handle.background'), \";\\n width: \").concat(dt('toggleswitch.handle.size'), \";\\n height: \").concat(dt('toggleswitch.handle.size'), \";\\n left: \").concat(dt('toggleswitch.gap'), \";\\n margin-top: calc(-1 * calc(\").concat(dt('toggleswitch.handle.size'), \" / 2));\\n border-radius: \").concat(dt('toggleswitch.handle.border.radius'), \";\\n transition: background \").concat(dt('toggleswitch.transition.duration'), \", left \").concat(dt('toggleswitch.slide.duration'), \";\\n}\\n\\n.p-toggleswitch.p-toggleswitch-checked .p-toggleswitch-slider {\\n background: \").concat(dt('toggleswitch.checked.background'), \";\\n border-color: \").concat(dt('toggleswitch.checked.border.color'), \";\\n}\\n\\n.p-toggleswitch.p-toggleswitch-checked .p-toggleswitch-slider:before {\\n background: \").concat(dt('toggleswitch.handle.checked.background'), \";\\n left: calc(\").concat(dt('toggleswitch.width'), \" - calc(\").concat(dt('toggleswitch.handle.size'), \" + \").concat(dt('toggleswitch.gap'), \"));\\n}\\n\\n.p-toggleswitch:not(.p-disabled):has(.p-toggleswitch-input:hover) .p-toggleswitch-slider {\\n background: \").concat(dt('toggleswitch.hover.background'), \";\\n border-color: \").concat(dt('toggleswitch.hover.border.color'), \";\\n}\\n\\n.p-toggleswitch:not(.p-disabled):has(.p-toggleswitch-input:hover) .p-toggleswitch-slider:before {\\n background: \").concat(dt('toggleswitch.handle.hover.background'), \";\\n}\\n\\n.p-toggleswitch:not(.p-disabled):has(.p-toggleswitch-input:hover).p-toggleswitch-checked .p-toggleswitch-slider {\\n background: \").concat(dt('toggleswitch.checked.hover.background'), \";\\n border-color: \").concat(dt('toggleswitch.checked.hover.border.color'), \";\\n}\\n\\n.p-toggleswitch:not(.p-disabled):has(.p-toggleswitch-input:hover).p-toggleswitch-checked .p-toggleswitch-slider:before {\\n background: \").concat(dt('toggleswitch.handle.checked.hover.background'), \";\\n}\\n\\n.p-toggleswitch:not(.p-disabled):has(.p-toggleswitch-input:focus-visible) .p-toggleswitch-slider {\\n box-shadow: \").concat(dt('toggleswitch.focus.ring.shadow'), \";\\n outline: \").concat(dt('toggleswitch.focus.ring.width'), \" \").concat(dt('toggleswitch.focus.ring.style'), \" \").concat(dt('toggleswitch.focus.ring.color'), \";\\n outline-offset: \").concat(dt('toggleswitch.focus.ring.offset'), \";\\n}\\n\\n.p-toggleswitch.p-invalid > .p-toggleswitch-slider {\\n border-color: \").concat(dt('toggleswitch.invalid.border.color'), \";\\n}\\n\\n.p-toggleswitch.p-disabled {\\n opacity: 1;\\n}\\n\\n.p-toggleswitch.p-disabled .p-toggleswitch-slider {\\n background: \").concat(dt('toggleswitch.disabled.background'), \";\\n}\\n\\n.p-toggleswitch.p-disabled .p-toggleswitch-slider:before {\\n background: \").concat(dt('toggleswitch.handle.disabled.background'), \";\\n}\\n\");\n};\nvar inlineStyles = {\n root: {\n position: 'relative'\n }\n};\nvar classes = {\n root: function root(_ref2) {\n var instance = _ref2.instance,\n props = _ref2.props;\n return ['p-toggleswitch p-component', {\n 'p-toggleswitch-checked': instance.checked,\n 'p-disabled': props.disabled,\n 'p-invalid': props.invalid\n }];\n },\n input: 'p-toggleswitch-input',\n slider: 'p-toggleswitch-slider'\n};\nvar ToggleSwitchStyle = BaseStyle.extend({\n name: 'toggleswitch',\n theme: theme,\n classes: classes,\n inlineStyles: inlineStyles\n});\n\nexport { ToggleSwitchStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseComponent from '@primevue/core/basecomponent';\nimport ToggleSwitchStyle from 'primevue/toggleswitch/style';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script$1 = {\n name: 'BaseToggleSwitch',\n \"extends\": BaseComponent,\n props: {\n modelValue: {\n type: null,\n \"default\": false\n },\n trueValue: {\n type: null,\n \"default\": true\n },\n falseValue: {\n type: null,\n \"default\": false\n },\n invalid: {\n type: Boolean,\n \"default\": false\n },\n disabled: {\n type: Boolean,\n \"default\": false\n },\n readonly: {\n type: Boolean,\n \"default\": false\n },\n tabindex: {\n type: Number,\n \"default\": null\n },\n inputId: {\n type: String,\n \"default\": null\n },\n inputClass: {\n type: [String, Object],\n \"default\": null\n },\n inputStyle: {\n type: Object,\n \"default\": null\n },\n ariaLabelledby: {\n type: String,\n \"default\": null\n },\n ariaLabel: {\n type: String,\n \"default\": null\n }\n },\n style: ToggleSwitchStyle,\n provide: function provide() {\n return {\n $pcToggleSwitch: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'ToggleSwitch',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['update:modelValue', 'change', 'focus', 'blur'],\n methods: {\n getPTOptions: function getPTOptions(key) {\n var _ptm = key === 'root' ? this.ptmi : this.ptm;\n return _ptm(key, {\n context: {\n checked: this.checked,\n disabled: this.disabled\n }\n });\n },\n onChange: function onChange(event) {\n if (!this.disabled && !this.readonly) {\n var newValue = this.checked ? this.falseValue : this.trueValue;\n this.$emit('update:modelValue', newValue);\n this.$emit('change', event);\n }\n },\n onFocus: function onFocus(event) {\n this.$emit('focus', event);\n },\n onBlur: function onBlur(event) {\n this.$emit('blur', event);\n }\n },\n computed: {\n checked: function checked() {\n return this.modelValue === this.trueValue;\n }\n }\n};\n\nvar _hoisted_1 = [\"data-p-checked\", \"data-p-disabled\"];\nvar _hoisted_2 = [\"id\", \"checked\", \"tabindex\", \"disabled\", \"readonly\", \"aria-checked\", \"aria-labelledby\", \"aria-label\", \"aria-invalid\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root'),\n style: _ctx.sx('root')\n }, $options.getPTOptions('root'), {\n \"data-p-checked\": $options.checked,\n \"data-p-disabled\": _ctx.disabled\n }), [createElementVNode(\"input\", mergeProps({\n id: _ctx.inputId,\n type: \"checkbox\",\n role: \"switch\",\n \"class\": [_ctx.cx('input'), _ctx.inputClass],\n style: _ctx.inputStyle,\n checked: $options.checked,\n tabindex: _ctx.tabindex,\n disabled: _ctx.disabled,\n readonly: _ctx.readonly,\n \"aria-checked\": $options.checked,\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-label\": _ctx.ariaLabel,\n \"aria-invalid\": _ctx.invalid || undefined,\n onFocus: _cache[0] || (_cache[0] = function () {\n return $options.onFocus && $options.onFocus.apply($options, arguments);\n }),\n onBlur: _cache[1] || (_cache[1] = function () {\n return $options.onBlur && $options.onBlur.apply($options, arguments);\n }),\n onChange: _cache[2] || (_cache[2] = function () {\n return $options.onChange && $options.onChange.apply($options, arguments);\n })\n }, $options.getPTOptions('input')), null, 16, _hoisted_2), createElementVNode(\"span\", mergeProps({\n \"class\": _ctx.cx('slider')\n }, $options.getPTOptions('slider')), null, 16)], 16, _hoisted_1);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-colorpicker {\\n display: inline-block;\\n position: relative;\\n}\\n\\n.p-colorpicker-dragging {\\n cursor: pointer;\\n}\\n\\n.p-colorpicker-preview {\\n width: \".concat(dt('colorpicker.preview.width'), \";\\n height: \").concat(dt('colorpicker.preview.height'), \";\\n padding: 0;\\n border: 0 none;\\n border-radius: \").concat(dt('colorpicker.preview.border.radius'), \";\\n transition: background \").concat(dt('colorpicker.transition.duration'), \", color \").concat(dt('colorpicker.transition.duration'), \", border-color \").concat(dt('colorpicker.transition.duration'), \", outline-color \").concat(dt('colorpicker.transition.duration'), \", box-shadow \").concat(dt('colorpicker.transition.duration'), \";\\n outline-color: transparent;\\n cursor: pointer;\\n}\\n\\n.p-colorpicker-preview:enabled:focus-visible {\\n border-color: \").concat(dt('colorpicker.preview.focus.border.color'), \";\\n box-shadow: \").concat(dt('colorpicker.preview.focus.ring.shadow'), \";\\n outline: \").concat(dt('colorpicker.preview.focus.ring.width'), \" \").concat(dt('colorpicker.preview.focus.ring.style'), \" \").concat(dt('colorpicker.preview.focus.ring.color'), \";\\n outline-offset: \").concat(dt('colorpicker.preview.focus.ring.offset'), \";\\n}\\n\\n.p-colorpicker-panel {\\n background: \").concat(dt('colorpicker.panel.background'), \";\\n border: 1px solid \").concat(dt('colorpicker.panel.border.color'), \";\\n border-radius: \").concat(dt('colorpicker.panel.border.radius'), \";\\n box-shadow: \").concat(dt('colorpicker.panel.shadow'), \";\\n width: 193px;\\n height: 166px;\\n position: absolute;\\n top: 0;\\n left: 0;\\n}\\n\\n.p-colorpicker-panel-inline {\\n box-shadow: none;\\n position: static;\\n}\\n\\n.p-colorpicker-content {\\n position: relative;\\n}\\n\\n.p-colorpicker-color-selector {\\n width: 150px;\\n height: 150px;\\n top: 8px;\\n left: 8px;\\n position: absolute;\\n}\\n\\n.p-colorpicker-color-background {\\n width: 100%;\\n height: 100%;\\n background: linear-gradient(to top, #000 0%, rgba(0, 0, 0, 0) 100%), linear-gradient(to right, #fff 0%, rgba(255, 255, 255, 0) 100%);\\n}\\n\\n.p-colorpicker-color-handle {\\n position: absolute;\\n top: 0px;\\n left: 150px;\\n border-radius: 100%;\\n width: 10px;\\n height: 10px;\\n border-width: 1px;\\n border-style: solid;\\n margin: -5px 0 0 -5px;\\n cursor: pointer;\\n opacity: 0.85;\\n border-color: \").concat(dt('colorpicker.handle.color'), \";\\n}\\n\\n.p-colorpicker-hue {\\n width: 17px;\\n height: 150px;\\n top: 8px;\\n left: 167px;\\n position: absolute;\\n opacity: 0.85;\\n background: linear-gradient(0deg,\\n red 0,\\n #ff0 17%,\\n #0f0 33%,\\n #0ff 50%,\\n #00f 67%,\\n #f0f 83%,\\n red);\\n}\\n\\n.p-colorpicker-hue-handle {\\n position: absolute;\\n top: 150px;\\n left: 0px;\\n width: 21px;\\n margin-left: -2px;\\n margin-top: -5px;\\n height: 10px;\\n border-width: 2px;\\n border-style: solid;\\n opacity: 0.85;\\n cursor: pointer;\\n border-color: \").concat(dt('colorpicker.handle.color'), \";\\n}\\n\");\n};\nvar classes = {\n root: 'p-colorpicker p-component',\n preview: function preview(_ref2) {\n var props = _ref2.props;\n return ['p-colorpicker-preview', {\n 'p-disabled': props.disabled\n }];\n },\n panel: function panel(_ref3) {\n var props = _ref3.props;\n return ['p-colorpicker-panel', {\n 'p-colorpicker-panel-inline': props.inline,\n 'p-disabled': props.disabled\n }];\n },\n colorSelector: 'p-colorpicker-color-selector',\n colorBackground: 'p-colorpicker-color-background',\n colorHandle: 'p-colorpicker-color-handle',\n hue: 'p-colorpicker-hue',\n hueHandle: 'p-colorpicker-hue-handle'\n};\nvar ColorPickerStyle = BaseStyle.extend({\n name: 'colorpicker',\n theme: theme,\n classes: classes\n});\n\nexport { ColorPickerStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { ConnectedOverlayScrollHandler } from '@primevue/core/utils';\nimport { relativePosition, absolutePosition, addClass, removeClass, isTouchDevice } from '@primeuix/utils/dom';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport ColorPickerStyle from 'primevue/colorpicker/style';\nimport { resolveComponent, openBlock, createElementBlock, mergeProps, createCommentVNode, createVNode, withCtx, Transition, createElementVNode } from 'vue';\n\nvar script$1 = {\n name: 'BaseColorPicker',\n \"extends\": BaseComponent,\n props: {\n modelValue: {\n type: null,\n \"default\": null\n },\n defaultColor: {\n type: null,\n \"default\": 'ff0000'\n },\n inline: {\n type: Boolean,\n \"default\": false\n },\n format: {\n type: String,\n \"default\": 'hex'\n },\n disabled: {\n type: Boolean,\n \"default\": false\n },\n tabindex: {\n type: String,\n \"default\": null\n },\n autoZIndex: {\n type: Boolean,\n \"default\": true\n },\n baseZIndex: {\n type: Number,\n \"default\": 0\n },\n appendTo: {\n type: [String, Object],\n \"default\": 'body'\n },\n inputId: {\n type: String,\n \"default\": null\n },\n panelClass: null\n },\n style: ColorPickerStyle,\n provide: function provide() {\n return {\n $pcColorPicker: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'ColorPicker',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['update:modelValue', 'change', 'show', 'hide'],\n data: function data() {\n return {\n overlayVisible: false\n };\n },\n hsbValue: null,\n outsideClickListener: null,\n documentMouseMoveListener: null,\n documentMouseUpListener: null,\n scrollHandler: null,\n resizeListener: null,\n hueDragging: null,\n colorDragging: null,\n selfUpdate: null,\n picker: null,\n colorSelector: null,\n colorHandle: null,\n hueView: null,\n hueHandle: null,\n watch: {\n modelValue: {\n immediate: true,\n handler: function handler(newValue) {\n this.hsbValue = this.toHSB(newValue);\n if (this.selfUpdate) this.selfUpdate = false;else this.updateUI();\n }\n }\n },\n beforeUnmount: function beforeUnmount() {\n this.unbindOutsideClickListener();\n this.unbindDragListeners();\n this.unbindResizeListener();\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n if (this.picker && this.autoZIndex) {\n ZIndex.clear(this.picker);\n }\n this.clearRefs();\n },\n mounted: function mounted() {\n this.updateUI();\n },\n methods: {\n pickColor: function pickColor(event) {\n var rect = this.colorSelector.getBoundingClientRect();\n var top = rect.top + (window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0);\n var left = rect.left + document.body.scrollLeft;\n var saturation = Math.floor(100 * Math.max(0, Math.min(150, (event.pageX || event.changedTouches[0].pageX) - left)) / 150);\n var brightness = Math.floor(100 * (150 - Math.max(0, Math.min(150, (event.pageY || event.changedTouches[0].pageY) - top))) / 150);\n this.hsbValue = this.validateHSB({\n h: this.hsbValue.h,\n s: saturation,\n b: brightness\n });\n this.selfUpdate = true;\n this.updateColorHandle();\n this.updateInput();\n this.updateModel(event);\n },\n pickHue: function pickHue(event) {\n var top = this.hueView.getBoundingClientRect().top + (window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0);\n this.hsbValue = this.validateHSB({\n h: Math.floor(360 * (150 - Math.max(0, Math.min(150, (event.pageY || event.changedTouches[0].pageY) - top))) / 150),\n s: 100,\n b: 100\n });\n this.selfUpdate = true;\n this.updateColorSelector();\n this.updateHue();\n this.updateModel(event);\n this.updateInput();\n },\n updateModel: function updateModel(event) {\n var value = this.modelValue;\n switch (this.format) {\n case 'hex':\n value = this.HSBtoHEX(this.hsbValue);\n break;\n case 'rgb':\n value = this.HSBtoRGB(this.hsbValue);\n break;\n case 'hsb':\n value = this.hsbValue;\n break;\n }\n this.$emit('update:modelValue', value);\n this.$emit('change', {\n event: event,\n value: value\n });\n },\n updateColorSelector: function updateColorSelector() {\n if (this.colorSelector) {\n var hsbValue = this.validateHSB({\n h: this.hsbValue.h,\n s: 100,\n b: 100\n });\n this.colorSelector.style.backgroundColor = '#' + this.HSBtoHEX(hsbValue);\n }\n },\n updateColorHandle: function updateColorHandle() {\n if (this.colorHandle) {\n this.colorHandle.style.left = Math.floor(150 * this.hsbValue.s / 100) + 'px';\n this.colorHandle.style.top = Math.floor(150 * (100 - this.hsbValue.b) / 100) + 'px';\n }\n },\n updateHue: function updateHue() {\n if (this.hueHandle) {\n this.hueHandle.style.top = Math.floor(150 - 150 * this.hsbValue.h / 360) + 'px';\n }\n },\n updateInput: function updateInput() {\n if (this.$refs.input) {\n this.$refs.input.style.backgroundColor = '#' + this.HSBtoHEX(this.hsbValue);\n }\n },\n updateUI: function updateUI() {\n this.updateHue();\n this.updateColorHandle();\n this.updateInput();\n this.updateColorSelector();\n },\n validateHSB: function validateHSB(hsb) {\n return {\n h: Math.min(360, Math.max(0, hsb.h)),\n s: Math.min(100, Math.max(0, hsb.s)),\n b: Math.min(100, Math.max(0, hsb.b))\n };\n },\n validateRGB: function validateRGB(rgb) {\n return {\n r: Math.min(255, Math.max(0, rgb.r)),\n g: Math.min(255, Math.max(0, rgb.g)),\n b: Math.min(255, Math.max(0, rgb.b))\n };\n },\n validateHEX: function validateHEX(hex) {\n var len = 6 - hex.length;\n if (len > 0) {\n var o = [];\n for (var i = 0; i < len; i++) {\n o.push('0');\n }\n o.push(hex);\n hex = o.join('');\n }\n return hex;\n },\n HEXtoRGB: function HEXtoRGB(hex) {\n var hexValue = parseInt(hex.indexOf('#') > -1 ? hex.substring(1) : hex, 16);\n return {\n r: hexValue >> 16,\n g: (hexValue & 0x00ff00) >> 8,\n b: hexValue & 0x0000ff\n };\n },\n HEXtoHSB: function HEXtoHSB(hex) {\n return this.RGBtoHSB(this.HEXtoRGB(hex));\n },\n RGBtoHSB: function RGBtoHSB(rgb) {\n var hsb = {\n h: 0,\n s: 0,\n b: 0\n };\n var min = Math.min(rgb.r, rgb.g, rgb.b);\n var max = Math.max(rgb.r, rgb.g, rgb.b);\n var delta = max - min;\n hsb.b = max;\n hsb.s = max !== 0 ? 255 * delta / max : 0;\n if (hsb.s !== 0) {\n if (rgb.r === max) {\n hsb.h = (rgb.g - rgb.b) / delta;\n } else if (rgb.g === max) {\n hsb.h = 2 + (rgb.b - rgb.r) / delta;\n } else {\n hsb.h = 4 + (rgb.r - rgb.g) / delta;\n }\n } else {\n hsb.h = -1;\n }\n hsb.h *= 60;\n if (hsb.h < 0) {\n hsb.h += 360;\n }\n hsb.s *= 100 / 255;\n hsb.b *= 100 / 255;\n return hsb;\n },\n HSBtoRGB: function HSBtoRGB(hsb) {\n var rgb = {\n r: null,\n g: null,\n b: null\n };\n var h = Math.round(hsb.h);\n var s = Math.round(hsb.s * 255 / 100);\n var v = Math.round(hsb.b * 255 / 100);\n if (s === 0) {\n rgb = {\n r: v,\n g: v,\n b: v\n };\n } else {\n var t1 = v;\n var t2 = (255 - s) * v / 255;\n var t3 = (t1 - t2) * (h % 60) / 60;\n if (h === 360) h = 0;\n if (h < 60) {\n rgb.r = t1;\n rgb.b = t2;\n rgb.g = t2 + t3;\n } else if (h < 120) {\n rgb.g = t1;\n rgb.b = t2;\n rgb.r = t1 - t3;\n } else if (h < 180) {\n rgb.g = t1;\n rgb.r = t2;\n rgb.b = t2 + t3;\n } else if (h < 240) {\n rgb.b = t1;\n rgb.r = t2;\n rgb.g = t1 - t3;\n } else if (h < 300) {\n rgb.b = t1;\n rgb.g = t2;\n rgb.r = t2 + t3;\n } else if (h < 360) {\n rgb.r = t1;\n rgb.g = t2;\n rgb.b = t1 - t3;\n } else {\n rgb.r = 0;\n rgb.g = 0;\n rgb.b = 0;\n }\n }\n return {\n r: Math.round(rgb.r),\n g: Math.round(rgb.g),\n b: Math.round(rgb.b)\n };\n },\n RGBtoHEX: function RGBtoHEX(rgb) {\n var hex = [rgb.r.toString(16), rgb.g.toString(16), rgb.b.toString(16)];\n for (var key in hex) {\n if (hex[key].length === 1) {\n hex[key] = '0' + hex[key];\n }\n }\n return hex.join('');\n },\n HSBtoHEX: function HSBtoHEX(hsb) {\n return this.RGBtoHEX(this.HSBtoRGB(hsb));\n },\n toHSB: function toHSB(value) {\n var hsb;\n if (value) {\n switch (this.format) {\n case 'hex':\n hsb = this.HEXtoHSB(value);\n break;\n case 'rgb':\n hsb = this.RGBtoHSB(value);\n break;\n case 'hsb':\n hsb = value;\n break;\n }\n } else {\n hsb = this.HEXtoHSB(this.defaultColor);\n }\n return hsb;\n },\n onOverlayEnter: function onOverlayEnter(el) {\n this.updateUI();\n this.alignOverlay();\n this.bindOutsideClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n if (this.autoZIndex) {\n ZIndex.set('overlay', el, this.baseZIndex, this.$primevue.config.zIndex.overlay);\n }\n this.$emit('show');\n },\n onOverlayLeave: function onOverlayLeave() {\n this.unbindOutsideClickListener();\n this.unbindScrollListener();\n this.unbindResizeListener();\n this.clearRefs();\n this.$emit('hide');\n },\n onOverlayAfterLeave: function onOverlayAfterLeave(el) {\n if (this.autoZIndex) {\n ZIndex.clear(el);\n }\n },\n alignOverlay: function alignOverlay() {\n if (this.appendTo === 'self') relativePosition(this.picker, this.$refs.input);else absolutePosition(this.picker, this.$refs.input);\n },\n onInputClick: function onInputClick() {\n if (this.disabled) {\n return;\n }\n this.overlayVisible = !this.overlayVisible;\n },\n onInputKeydown: function onInputKeydown(event) {\n switch (event.code) {\n case 'Space':\n this.overlayVisible = !this.overlayVisible;\n event.preventDefault();\n break;\n case 'Escape':\n case 'Tab':\n this.overlayVisible = false;\n break;\n }\n },\n onColorMousedown: function onColorMousedown(event) {\n if (this.disabled) {\n return;\n }\n this.bindDragListeners();\n this.onColorDragStart(event);\n },\n onColorDragStart: function onColorDragStart(event) {\n if (this.disabled) {\n return;\n }\n this.colorDragging = true;\n this.pickColor(event);\n this.$el.setAttribute('p-colorpicker-dragging', 'true');\n !this.isUnstyled && addClass(this.$el, 'p-colorpicker-dragging');\n event.preventDefault();\n },\n onDrag: function onDrag(event) {\n if (this.colorDragging) {\n this.pickColor(event);\n event.preventDefault();\n }\n if (this.hueDragging) {\n this.pickHue(event);\n event.preventDefault();\n }\n },\n onDragEnd: function onDragEnd() {\n this.colorDragging = false;\n this.hueDragging = false;\n this.$el.setAttribute('p-colorpicker-dragging', 'false');\n !this.isUnstyled && removeClass(this.$el, 'p-colorpicker-dragging');\n this.unbindDragListeners();\n },\n onHueMousedown: function onHueMousedown(event) {\n if (this.disabled) {\n return;\n }\n this.bindDragListeners();\n this.onHueDragStart(event);\n },\n onHueDragStart: function onHueDragStart(event) {\n if (this.disabled) {\n return;\n }\n this.hueDragging = true;\n this.pickHue(event);\n !this.isUnstyled && addClass(this.$el, 'p-colorpicker-dragging');\n },\n isInputClicked: function isInputClicked(event) {\n return this.$refs.input && this.$refs.input.isSameNode(event.target);\n },\n bindDragListeners: function bindDragListeners() {\n this.bindDocumentMouseMoveListener();\n this.bindDocumentMouseUpListener();\n },\n unbindDragListeners: function unbindDragListeners() {\n this.unbindDocumentMouseMoveListener();\n this.unbindDocumentMouseUpListener();\n },\n bindOutsideClickListener: function bindOutsideClickListener() {\n var _this = this;\n if (!this.outsideClickListener) {\n this.outsideClickListener = function (event) {\n if (_this.overlayVisible && _this.picker && !_this.picker.contains(event.target) && !_this.isInputClicked(event)) {\n _this.overlayVisible = false;\n }\n };\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener: function unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n },\n bindScrollListener: function bindScrollListener() {\n var _this2 = this;\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.container, function () {\n if (_this2.overlayVisible) {\n _this2.overlayVisible = false;\n }\n });\n }\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener: function unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener: function bindResizeListener() {\n var _this3 = this;\n if (!this.resizeListener) {\n this.resizeListener = function () {\n if (_this3.overlayVisible && !isTouchDevice()) {\n _this3.overlayVisible = false;\n }\n };\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener: function unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n bindDocumentMouseMoveListener: function bindDocumentMouseMoveListener() {\n if (!this.documentMouseMoveListener) {\n this.documentMouseMoveListener = this.onDrag.bind(this);\n document.addEventListener('mousemove', this.documentMouseMoveListener);\n }\n },\n unbindDocumentMouseMoveListener: function unbindDocumentMouseMoveListener() {\n if (this.documentMouseMoveListener) {\n document.removeEventListener('mousemove', this.documentMouseMoveListener);\n this.documentMouseMoveListener = null;\n }\n },\n bindDocumentMouseUpListener: function bindDocumentMouseUpListener() {\n if (!this.documentMouseUpListener) {\n this.documentMouseUpListener = this.onDragEnd.bind(this);\n document.addEventListener('mouseup', this.documentMouseUpListener);\n }\n },\n unbindDocumentMouseUpListener: function unbindDocumentMouseUpListener() {\n if (this.documentMouseUpListener) {\n document.removeEventListener('mouseup', this.documentMouseUpListener);\n this.documentMouseUpListener = null;\n }\n },\n pickerRef: function pickerRef(el) {\n this.picker = el;\n },\n colorSelectorRef: function colorSelectorRef(el) {\n this.colorSelector = el;\n },\n colorHandleRef: function colorHandleRef(el) {\n this.colorHandle = el;\n },\n hueViewRef: function hueViewRef(el) {\n this.hueView = el;\n },\n hueHandleRef: function hueHandleRef(el) {\n this.hueHandle = el;\n },\n clearRefs: function clearRefs() {\n this.picker = null;\n this.colorSelector = null;\n this.colorHandle = null;\n this.hueView = null;\n this.hueHandle = null;\n },\n onOverlayClick: function onOverlayClick(event) {\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.$el\n });\n }\n },\n components: {\n Portal: Portal\n }\n};\n\nvar _hoisted_1 = [\"id\", \"tabindex\", \"disabled\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_Portal = resolveComponent(\"Portal\");\n return openBlock(), createElementBlock(\"div\", mergeProps({\n ref: \"container\",\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root')), [!_ctx.inline ? (openBlock(), createElementBlock(\"input\", mergeProps({\n key: 0,\n ref: \"input\",\n id: _ctx.inputId,\n type: \"text\",\n \"class\": _ctx.cx('preview'),\n readonly: \"readonly\",\n tabindex: _ctx.tabindex,\n disabled: _ctx.disabled,\n onClick: _cache[0] || (_cache[0] = function () {\n return $options.onInputClick && $options.onInputClick.apply($options, arguments);\n }),\n onKeydown: _cache[1] || (_cache[1] = function () {\n return $options.onInputKeydown && $options.onInputKeydown.apply($options, arguments);\n })\n }, _ctx.ptm('preview')), null, 16, _hoisted_1)) : createCommentVNode(\"\", true), createVNode(_component_Portal, {\n appendTo: _ctx.appendTo,\n disabled: _ctx.inline\n }, {\n \"default\": withCtx(function () {\n return [createVNode(Transition, mergeProps({\n name: \"p-connected-overlay\",\n onEnter: $options.onOverlayEnter,\n onLeave: $options.onOverlayLeave,\n onAfterLeave: $options.onOverlayAfterLeave\n }, _ctx.ptm('transition')), {\n \"default\": withCtx(function () {\n return [(_ctx.inline ? true : $data.overlayVisible) ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n ref: $options.pickerRef,\n \"class\": [_ctx.cx('panel'), _ctx.panelClass],\n onClick: _cache[10] || (_cache[10] = function () {\n return $options.onOverlayClick && $options.onOverlayClick.apply($options, arguments);\n })\n }, _ctx.ptm('panel')), [createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('content')\n }, _ctx.ptm('content')), [createElementVNode(\"div\", mergeProps({\n ref: $options.colorSelectorRef,\n \"class\": _ctx.cx('colorSelector'),\n onMousedown: _cache[2] || (_cache[2] = function ($event) {\n return $options.onColorMousedown($event);\n }),\n onTouchstart: _cache[3] || (_cache[3] = function ($event) {\n return $options.onColorDragStart($event);\n }),\n onTouchmove: _cache[4] || (_cache[4] = function ($event) {\n return $options.onDrag($event);\n }),\n onTouchend: _cache[5] || (_cache[5] = function ($event) {\n return $options.onDragEnd();\n })\n }, _ctx.ptm('colorSelector')), [createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('colorBackground')\n }, _ctx.ptm('colorBackground')), [createElementVNode(\"div\", mergeProps({\n ref: $options.colorHandleRef,\n \"class\": _ctx.cx('colorHandle')\n }, _ctx.ptm('colorHandle')), null, 16)], 16)], 16), createElementVNode(\"div\", mergeProps({\n ref: $options.hueViewRef,\n \"class\": _ctx.cx('hue'),\n onMousedown: _cache[6] || (_cache[6] = function ($event) {\n return $options.onHueMousedown($event);\n }),\n onTouchstart: _cache[7] || (_cache[7] = function ($event) {\n return $options.onHueDragStart($event);\n }),\n onTouchmove: _cache[8] || (_cache[8] = function ($event) {\n return $options.onDrag($event);\n }),\n onTouchend: _cache[9] || (_cache[9] = function ($event) {\n return $options.onDragEnd();\n })\n }, _ctx.ptm('hue')), [createElementVNode(\"div\", mergeProps({\n ref: $options.hueHandleRef,\n \"class\": _ctx.cx('hueHandle')\n }, _ctx.ptm('hueHandle')), null, 16)], 16)], 16)], 16)) : createCommentVNode(\"\", true)];\n }),\n _: 1\n }, 16, [\"onEnter\", \"onLeave\", \"onAfterLeave\"])];\n }),\n _: 1\n }, 8, [\"appendTo\", \"disabled\"])], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n","\n\n\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-slider {\\n position: relative;\\n background: \".concat(dt('slider.track.background'), \";\\n border-radius: \").concat(dt('slider.border.radius'), \";\\n}\\n\\n.p-slider-handle {\\n cursor: grab;\\n touch-action: none;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n height: \").concat(dt('slider.handle.height'), \";\\n width: \").concat(dt('slider.handle.width'), \";\\n background: \").concat(dt('slider.handle.background'), \";\\n border-radius: \").concat(dt('slider.handle.border.radius'), \";\\n transition: background \").concat(dt('slider.transition.duration'), \", color \").concat(dt('slider.transition.duration'), \", border-color \").concat(dt('slider.transition.duration'), \", box-shadow \").concat(dt('slider.transition.duration'), \", outline-color \").concat(dt('slider.transition.duration'), \";\\n outline-color: transparent;\\n}\\n\\n.p-slider-handle::before {\\n content: \\\"\\\";\\n width: \").concat(dt('slider.handle.content.width'), \";\\n height: \").concat(dt('slider.handle.content.height'), \";\\n display: block;\\n background: \").concat(dt('slider.handle.content.background'), \";\\n border-radius: \").concat(dt('slider.handle.content.border.radius'), \";\\n box-shadow: \").concat(dt('slider.handle.content.shadow'), \";\\n transition: background \").concat(dt('slider.transition.duration'), \";\\n}\\n\\n.p-slider:not(.p-disabled) .p-slider-handle:hover {\\n background: \").concat(dt('slider.handle.hover.background'), \";\\n}\\n\\n.p-slider:not(.p-disabled) .p-slider-handle:hover::before {\\n background: \").concat(dt('slider.handle.content.hover.background'), \";\\n}\\n\\n.p-slider-handle:focus-visible {\\n border-color: \").concat(dt('slider.handle.focus.border.color'), \";\\n box-shadow: \").concat(dt('slider.handle.focus.ring.shadow'), \";\\n outline: \").concat(dt('slider.handle.focus.ring.width'), \" \").concat(dt('slider.handle.focus.ring.style'), \" \").concat(dt('slider.handle.focus.ring.color'), \";\\n outline-offset: \").concat(dt('slider.handle.focus.ring.offset'), \";\\n}\\n\\n.p-slider-range {\\n display: block;\\n background: \").concat(dt('slider.range.background'), \";\\n border-radius: \").concat(dt('slider.border.radius'), \";\\n}\\n\\n.p-slider.p-slider-horizontal {\\n height: \").concat(dt('slider.track.size'), \";\\n}\\n\\n.p-slider-horizontal .p-slider-range {\\n top: 0;\\n left: 0;\\n height: 100%;\\n}\\n\\n.p-slider-horizontal .p-slider-handle {\\n top: 50%;\\n margin-top: calc(-1 * calc(\").concat(dt('slider.handle.height'), \" / 2));\\n margin-left: calc(-1 * calc(\").concat(dt('slider.handle.width'), \" / 2));\\n}\\n\\n.p-slider-vertical {\\n min-height: 100px;\\n width: \").concat(dt('slider.track.size'), \";\\n}\\n\\n.p-slider-vertical .p-slider-handle {\\n left: 50%;\\n margin-left: calc(-1 * calc(\").concat(dt('slider.handle.width'), \" / 2));\\n margin-bottom: calc(-1 * calc(\").concat(dt('slider.handle.height'), \" / 2));\\n}\\n\\n.p-slider-vertical .p-slider-range {\\n bottom: 0;\\n left: 0;\\n width: 100%;\\n}\\n\");\n};\nvar inlineStyles = {\n handle: {\n position: 'absolute'\n },\n range: {\n position: 'absolute'\n }\n};\nvar classes = {\n root: function root(_ref2) {\n var props = _ref2.props;\n return ['p-slider p-component', {\n 'p-disabled': props.disabled,\n 'p-slider-horizontal': props.orientation === 'horizontal',\n 'p-slider-vertical': props.orientation === 'vertical'\n }];\n },\n range: 'p-slider-range',\n handle: 'p-slider-handle'\n};\nvar SliderStyle = BaseStyle.extend({\n name: 'slider',\n theme: theme,\n classes: classes,\n inlineStyles: inlineStyles\n});\n\nexport { SliderStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { getWindowScrollLeft, getWindowScrollTop, getAttribute } from '@primeuix/utils/dom';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport SliderStyle from 'primevue/slider/style';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode, createCommentVNode } from 'vue';\n\nvar script$1 = {\n name: 'BaseSlider',\n \"extends\": BaseComponent,\n props: {\n modelValue: [Number, Array],\n min: {\n type: Number,\n \"default\": 0\n },\n max: {\n type: Number,\n \"default\": 100\n },\n orientation: {\n type: String,\n \"default\": 'horizontal'\n },\n step: {\n type: Number,\n \"default\": null\n },\n range: {\n type: Boolean,\n \"default\": false\n },\n disabled: {\n type: Boolean,\n \"default\": false\n },\n tabindex: {\n type: Number,\n \"default\": 0\n },\n ariaLabelledby: {\n type: String,\n \"default\": null\n },\n ariaLabel: {\n type: String,\n \"default\": null\n }\n },\n style: SliderStyle,\n provide: function provide() {\n return {\n $pcSlider: this,\n $parentInstance: this\n };\n }\n};\n\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nvar script = {\n name: 'Slider',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['update:modelValue', 'change', 'slideend'],\n dragging: false,\n handleIndex: null,\n initX: null,\n initY: null,\n barWidth: null,\n barHeight: null,\n dragListener: null,\n dragEndListener: null,\n beforeUnmount: function beforeUnmount() {\n this.unbindDragListeners();\n },\n methods: {\n updateDomData: function updateDomData() {\n var rect = this.$el.getBoundingClientRect();\n this.initX = rect.left + getWindowScrollLeft();\n this.initY = rect.top + getWindowScrollTop();\n this.barWidth = this.$el.offsetWidth;\n this.barHeight = this.$el.offsetHeight;\n },\n setValue: function setValue(event) {\n var handleValue;\n var pageX = event.touches ? event.touches[0].pageX : event.pageX;\n var pageY = event.touches ? event.touches[0].pageY : event.pageY;\n if (this.orientation === 'horizontal') handleValue = (pageX - this.initX) * 100 / this.barWidth;else handleValue = (this.initY + this.barHeight - pageY) * 100 / this.barHeight;\n var newValue = (this.max - this.min) * (handleValue / 100) + this.min;\n if (this.step) {\n var oldValue = this.range ? this.value[this.handleIndex] : this.value;\n var diff = newValue - oldValue;\n if (diff < 0) newValue = oldValue + Math.ceil(newValue / this.step - oldValue / this.step) * this.step;else if (diff > 0) newValue = oldValue + Math.floor(newValue / this.step - oldValue / this.step) * this.step;\n } else {\n newValue = Math.floor(newValue);\n }\n this.updateModel(event, newValue);\n },\n updateModel: function updateModel(event, value) {\n var newValue = parseFloat(value.toFixed(10));\n var modelValue;\n if (this.range) {\n modelValue = this.value ? _toConsumableArray(this.value) : [];\n if (this.handleIndex == 0) {\n if (newValue < this.min) newValue = this.min;else if (newValue >= this.max) newValue = this.max;\n modelValue[0] = newValue;\n } else {\n if (newValue > this.max) newValue = this.max;else if (newValue <= this.min) newValue = this.min;\n modelValue[1] = newValue;\n }\n } else {\n if (newValue < this.min) newValue = this.min;else if (newValue > this.max) newValue = this.max;\n modelValue = newValue;\n }\n this.$emit('update:modelValue', modelValue);\n this.$emit('change', modelValue);\n },\n onDragStart: function onDragStart(event, index) {\n if (this.disabled) {\n return;\n }\n this.$el.setAttribute('data-p-sliding', true);\n this.dragging = true;\n this.updateDomData();\n if (this.range && this.value[0] === this.max) {\n this.handleIndex = 0;\n } else {\n this.handleIndex = index;\n }\n event.currentTarget.focus();\n event.preventDefault();\n },\n onDrag: function onDrag(event) {\n if (this.dragging) {\n this.setValue(event);\n event.preventDefault();\n }\n },\n onDragEnd: function onDragEnd(event) {\n if (this.dragging) {\n this.dragging = false;\n this.$el.setAttribute('data-p-sliding', false);\n this.$emit('slideend', {\n originalEvent: event,\n value: this.value\n });\n }\n },\n onBarClick: function onBarClick(event) {\n if (this.disabled) {\n return;\n }\n if (getAttribute(event.target, 'data-pc-section') !== 'handle') {\n this.updateDomData();\n this.setValue(event);\n }\n },\n onMouseDown: function onMouseDown(event, index) {\n this.bindDragListeners();\n this.onDragStart(event, index);\n },\n onKeyDown: function onKeyDown(event, index) {\n this.handleIndex = index;\n switch (event.code) {\n case 'ArrowDown':\n case 'ArrowLeft':\n this.decrementValue(event, index);\n event.preventDefault();\n break;\n case 'ArrowUp':\n case 'ArrowRight':\n this.incrementValue(event, index);\n event.preventDefault();\n break;\n case 'PageDown':\n this.decrementValue(event, index, true);\n event.preventDefault();\n break;\n case 'PageUp':\n this.incrementValue(event, index, true);\n event.preventDefault();\n break;\n case 'Home':\n this.updateModel(event, this.min);\n event.preventDefault();\n break;\n case 'End':\n this.updateModel(event, this.max);\n event.preventDefault();\n break;\n }\n },\n decrementValue: function decrementValue(event, index) {\n var pageKey = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var newValue;\n if (this.range) {\n if (this.step) newValue = this.value[index] - this.step;else newValue = this.value[index] - 1;\n } else {\n if (this.step) newValue = this.value - this.step;else if (!this.step && pageKey) newValue = this.value - 10;else newValue = this.value - 1;\n }\n this.updateModel(event, newValue);\n event.preventDefault();\n },\n incrementValue: function incrementValue(event, index) {\n var pageKey = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var newValue;\n if (this.range) {\n if (this.step) newValue = this.value[index] + this.step;else newValue = this.value[index] + 1;\n } else {\n if (this.step) newValue = this.value + this.step;else if (!this.step && pageKey) newValue = this.value + 10;else newValue = this.value + 1;\n }\n this.updateModel(event, newValue);\n event.preventDefault();\n },\n bindDragListeners: function bindDragListeners() {\n if (!this.dragListener) {\n this.dragListener = this.onDrag.bind(this);\n document.addEventListener('mousemove', this.dragListener);\n }\n if (!this.dragEndListener) {\n this.dragEndListener = this.onDragEnd.bind(this);\n document.addEventListener('mouseup', this.dragEndListener);\n }\n },\n unbindDragListeners: function unbindDragListeners() {\n if (this.dragListener) {\n document.removeEventListener('mousemove', this.dragListener);\n this.dragListener = null;\n }\n if (this.dragEndListener) {\n document.removeEventListener('mouseup', this.dragEndListener);\n this.dragEndListener = null;\n }\n }\n },\n computed: {\n value: function value() {\n var _this$modelValue3;\n if (this.range) {\n var _this$modelValue$, _this$modelValue, _this$modelValue$2, _this$modelValue2;\n return [(_this$modelValue$ = (_this$modelValue = this.modelValue) === null || _this$modelValue === void 0 ? void 0 : _this$modelValue[0]) !== null && _this$modelValue$ !== void 0 ? _this$modelValue$ : this.min, (_this$modelValue$2 = (_this$modelValue2 = this.modelValue) === null || _this$modelValue2 === void 0 ? void 0 : _this$modelValue2[1]) !== null && _this$modelValue$2 !== void 0 ? _this$modelValue$2 : this.max];\n }\n return (_this$modelValue3 = this.modelValue) !== null && _this$modelValue3 !== void 0 ? _this$modelValue3 : this.min;\n },\n horizontal: function horizontal() {\n return this.orientation === 'horizontal';\n },\n vertical: function vertical() {\n return this.orientation === 'vertical';\n },\n rangeStyle: function rangeStyle() {\n if (this.range) {\n var rangeSliderWidth = this.rangeEndPosition > this.rangeStartPosition ? this.rangeEndPosition - this.rangeStartPosition : this.rangeStartPosition - this.rangeEndPosition;\n var rangeSliderPosition = this.rangeEndPosition > this.rangeStartPosition ? this.rangeStartPosition : this.rangeEndPosition;\n if (this.horizontal) return {\n left: rangeSliderPosition + '%',\n width: rangeSliderWidth + '%'\n };else return {\n bottom: rangeSliderPosition + '%',\n height: rangeSliderWidth + '%'\n };\n } else {\n if (this.horizontal) return {\n width: this.handlePosition + '%'\n };else return {\n height: this.handlePosition + '%'\n };\n }\n },\n handleStyle: function handleStyle() {\n if (this.horizontal) return {\n left: this.handlePosition + '%'\n };else return {\n bottom: this.handlePosition + '%'\n };\n },\n handlePosition: function handlePosition() {\n if (this.value < this.min) return 0;else if (this.value > this.max) return 100;else return (this.value - this.min) * 100 / (this.max - this.min);\n },\n rangeStartPosition: function rangeStartPosition() {\n if (this.value && this.value[0]) return (this.value[0] < this.min ? 0 : this.value[0] - this.min) * 100 / (this.max - this.min);else return 0;\n },\n rangeEndPosition: function rangeEndPosition() {\n if (this.value && this.value.length === 2) return (this.value[1] > this.max ? 100 : this.value[1] - this.min) * 100 / (this.max - this.min);else return 100;\n },\n rangeStartHandleStyle: function rangeStartHandleStyle() {\n if (this.horizontal) return {\n left: this.rangeStartPosition + '%'\n };else return {\n bottom: this.rangeStartPosition + '%'\n };\n },\n rangeEndHandleStyle: function rangeEndHandleStyle() {\n if (this.horizontal) return {\n left: this.rangeEndPosition + '%'\n };else return {\n bottom: this.rangeEndPosition + '%'\n };\n }\n }\n};\n\nvar _hoisted_1 = [\"tabindex\", \"aria-valuemin\", \"aria-valuenow\", \"aria-valuemax\", \"aria-labelledby\", \"aria-label\", \"aria-orientation\"];\nvar _hoisted_2 = [\"tabindex\", \"aria-valuemin\", \"aria-valuenow\", \"aria-valuemax\", \"aria-labelledby\", \"aria-label\", \"aria-orientation\"];\nvar _hoisted_3 = [\"tabindex\", \"aria-valuemin\", \"aria-valuenow\", \"aria-valuemax\", \"aria-labelledby\", \"aria-label\", \"aria-orientation\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root'),\n onClick: _cache[15] || (_cache[15] = function () {\n return $options.onBarClick && $options.onBarClick.apply($options, arguments);\n })\n }, _ctx.ptmi('root'), {\n \"data-p-sliding\": false\n }), [createElementVNode(\"span\", mergeProps({\n \"class\": _ctx.cx('range'),\n style: [_ctx.sx('range'), $options.rangeStyle]\n }, _ctx.ptm('range')), null, 16), !_ctx.range ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('handle'),\n style: [_ctx.sx('handle'), $options.handleStyle],\n onTouchstartPassive: _cache[0] || (_cache[0] = function ($event) {\n return $options.onDragStart($event);\n }),\n onTouchmovePassive: _cache[1] || (_cache[1] = function ($event) {\n return $options.onDrag($event);\n }),\n onTouchend: _cache[2] || (_cache[2] = function ($event) {\n return $options.onDragEnd($event);\n }),\n onMousedown: _cache[3] || (_cache[3] = function ($event) {\n return $options.onMouseDown($event);\n }),\n onKeydown: _cache[4] || (_cache[4] = function ($event) {\n return $options.onKeyDown($event);\n }),\n tabindex: _ctx.tabindex,\n role: \"slider\",\n \"aria-valuemin\": _ctx.min,\n \"aria-valuenow\": _ctx.modelValue,\n \"aria-valuemax\": _ctx.max,\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-label\": _ctx.ariaLabel,\n \"aria-orientation\": _ctx.orientation\n }, _ctx.ptm('handle')), null, 16, _hoisted_1)) : createCommentVNode(\"\", true), _ctx.range ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 1,\n \"class\": _ctx.cx('handle'),\n style: [_ctx.sx('handle'), $options.rangeStartHandleStyle],\n onTouchstartPassive: _cache[5] || (_cache[5] = function ($event) {\n return $options.onDragStart($event, 0);\n }),\n onTouchmovePassive: _cache[6] || (_cache[6] = function ($event) {\n return $options.onDrag($event);\n }),\n onTouchend: _cache[7] || (_cache[7] = function ($event) {\n return $options.onDragEnd($event);\n }),\n onMousedown: _cache[8] || (_cache[8] = function ($event) {\n return $options.onMouseDown($event, 0);\n }),\n onKeydown: _cache[9] || (_cache[9] = function ($event) {\n return $options.onKeyDown($event, 0);\n }),\n tabindex: _ctx.tabindex,\n role: \"slider\",\n \"aria-valuemin\": _ctx.min,\n \"aria-valuenow\": _ctx.modelValue ? _ctx.modelValue[0] : null,\n \"aria-valuemax\": _ctx.max,\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-label\": _ctx.ariaLabel,\n \"aria-orientation\": _ctx.orientation\n }, _ctx.ptm('startHandler')), null, 16, _hoisted_2)) : createCommentVNode(\"\", true), _ctx.range ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 2,\n \"class\": _ctx.cx('handle'),\n style: [_ctx.sx('handle'), $options.rangeEndHandleStyle],\n onTouchstartPassive: _cache[10] || (_cache[10] = function ($event) {\n return $options.onDragStart($event, 1);\n }),\n onTouchmovePassive: _cache[11] || (_cache[11] = function ($event) {\n return $options.onDrag($event);\n }),\n onTouchend: _cache[12] || (_cache[12] = function ($event) {\n return $options.onDragEnd($event);\n }),\n onMousedown: _cache[13] || (_cache[13] = function ($event) {\n return $options.onMouseDown($event, 1);\n }),\n onKeydown: _cache[14] || (_cache[14] = function ($event) {\n return $options.onKeyDown($event, 1);\n }),\n tabindex: _ctx.tabindex,\n role: \"slider\",\n \"aria-valuemin\": _ctx.min,\n \"aria-valuenow\": _ctx.modelValue ? _ctx.modelValue[1] : null,\n \"aria-valuemax\": _ctx.max,\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-label\": _ctx.ariaLabel,\n \"aria-orientation\": _ctx.orientation\n }, _ctx.ptm('endHandler')), null, 16, _hoisted_3)) : createCommentVNode(\"\", true)], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\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","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'ChevronUpIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M12.2097 10.4113C12.1057 10.4118 12.0027 10.3915 11.9067 10.3516C11.8107 10.3118 11.7237 10.2532 11.6506 10.1792L6.93602 5.46461L2.22139 10.1476C2.07272 10.244 1.89599 10.2877 1.71953 10.2717C1.54307 10.2556 1.3771 10.1808 1.24822 10.0593C1.11933 9.93766 1.035 9.77633 1.00874 9.6011C0.982477 9.42587 1.0158 9.2469 1.10338 9.09287L6.37701 3.81923C6.52533 3.6711 6.72639 3.58789 6.93602 3.58789C7.14565 3.58789 7.3467 3.6711 7.49502 3.81923L12.7687 9.09287C12.9168 9.24119 13 9.44225 13 9.65187C13 9.8615 12.9168 10.0626 12.7687 10.2109C12.616 10.3487 12.4151 10.4207 12.2097 10.4113Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-carousel {\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.p-carousel-content-container {\\n display: flex;\\n flex-direction: column;\\n overflow: auto;\\n}\\n\\n.p-carousel-content {\\n display: flex;\\n flex-direction: row;\\n gap: \".concat(dt('carousel.content.gap'), \";\\n}\\n\\n.p-carousel-viewport {\\n overflow: hidden;\\n width: 100%;\\n}\\n\\n.p-carousel-item-list {\\n display: flex;\\n flex-direction: row;\\n}\\n\\n.p-carousel-prev-button,\\n.p-carousel-next-button {\\n align-self: center;\\n}\\n\\n.p-carousel-indicator-list {\\n display: flex;\\n flex-direction: row;\\n justify-content: center;\\n flex-wrap: wrap;\\n padding: \").concat(dt('carousel.indicator.list.padding'), \";\\n gap: \").concat(dt('carousel.indicator.list.gap'), \";\\n margin: 0;\\n list-style: none;\\n}\\n\\n.p-carousel-indicator-button {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n background: \").concat(dt('carousel.indicator.background'), \";\\n width: \").concat(dt('carousel.indicator.width'), \";\\n height: \").concat(dt('carousel.indicator.height'), \";\\n border: 0 none;\\n transition: background \").concat(dt('carousel.transition.duration'), \", color \").concat(dt('carousel.transition.duration'), \", outline-color \").concat(dt('carousel.transition.duration'), \", box-shadow \").concat(dt('carousel.transition.duration'), \";\\n outline-color: transparent;\\n border-radius: \").concat(dt('carousel.indicator.border.radius'), \";\\n padding: 0;\\n margin: 0;\\n user-select: none;\\n cursor: pointer;\\n}\\n\\n.p-carousel-indicator-button:focus-visible {\\n box-shadow: \").concat(dt('carousel.indicator.focus.ring.shadow'), \";\\n outline: \").concat(dt('carousel.indicator.focus.ring.width'), \" \").concat(dt('carousel.indicator.focus.ring.style'), \" \").concat(dt('carousel.indicator.focus.ring.color'), \";\\n outline-offset: \").concat(dt('carousel.indicator.focus.ring.offset'), \";\\n}\\n\\n.p-carousel-indicator-button:hover {\\n background: \").concat(dt('carousel.indicator.hover.background'), \";\\n}\\n\\n.p-carousel-indicator-active .p-carousel-indicator-button {\\n background: \").concat(dt('carousel.indicator.active.background'), \";\\n}\\n\\n.p-carousel-vertical .p-carousel-content {\\n flex-direction: column;\\n}\\n\\n.p-carousel-vertical .p-carousel-item-list {\\n flex-direction: column;\\n height: 100%;\\n}\\n\\n.p-items-hidden .p-carousel-item {\\n visibility: hidden;\\n}\\n\\n.p-items-hidden .p-carousel-item.p-carousel-item-active {\\n visibility: visible;\\n}\\n\");\n};\nvar classes = {\n root: function root(_ref2) {\n var instance = _ref2.instance;\n return ['p-carousel p-component', {\n 'p-carousel-vertical': instance.isVertical(),\n 'p-carousel-horizontal': !instance.isVertical()\n }];\n },\n header: 'p-carousel-header',\n contentContainer: 'p-carousel-content-container',\n content: 'p-carousel-content',\n pcPrevButton: function pcPrevButton(_ref3) {\n var instance = _ref3.instance;\n return ['p-carousel-prev-button', {\n 'p-disabled': instance.backwardIsDisabled\n }];\n },\n viewport: 'p-carousel-viewport',\n itemList: 'p-carousel-item-list',\n itemClone: function itemClone(_ref4) {\n var index = _ref4.index,\n value = _ref4.value,\n totalShiftedItems = _ref4.totalShiftedItems,\n d_numVisible = _ref4.d_numVisible;\n return ['p-carousel-item p-carousel-item-clone', {\n 'p-carousel-item-active': totalShiftedItems * -1 === value.length + d_numVisible,\n 'p-carousel-item-start': index === 0,\n 'p-carousel-item-end': value.slice(-1 * d_numVisible).length - 1 === index\n }];\n },\n item: function item(_ref5) {\n var instance = _ref5.instance,\n index = _ref5.index;\n return ['p-carousel-item', {\n 'p-carousel-item-active': instance.firstIndex() <= index && instance.lastIndex() >= index,\n 'p-carousel-item-start': instance.firstIndex() === index,\n 'p-carousel-item-end': instance.lastIndex() === index\n }];\n },\n pcNextButton: function pcNextButton(_ref6) {\n var instance = _ref6.instance;\n return ['p-carousel-next-button', {\n 'p-disabled': instance.forwardIsDisabled\n }];\n },\n indicatorList: 'p-carousel-indicator-list',\n indicator: function indicator(_ref7) {\n var instance = _ref7.instance,\n index = _ref7.index;\n return ['p-carousel-indicator', {\n 'p-carousel-indicator-active': instance.d_page === index\n }];\n },\n indicatorButton: 'p-carousel-indicator-button',\n footer: 'p-carousel-footer'\n};\nvar CarouselStyle = BaseStyle.extend({\n name: 'carousel',\n theme: theme,\n classes: classes\n});\n\nexport { CarouselStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { removeClass, addClass, find, getAttribute, findSingle, setAttribute } from '@primeuix/utils/dom';\nimport { localeComparator, sort } from '@primeuix/utils/object';\nimport { UniqueComponentId } from '@primevue/core/utils';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport ChevronLeftIcon from '@primevue/icons/chevronleft';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport ChevronUpIcon from '@primevue/icons/chevronup';\nimport Button from 'primevue/button';\nimport Ripple from 'primevue/ripple';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport CarouselStyle from 'primevue/carousel/style';\nimport { resolveComponent, openBlock, createElementBlock, mergeProps, renderSlot, createCommentVNode, createElementVNode, createBlock, withCtx, resolveDynamicComponent, Fragment, renderList, createTextVNode, toDisplayString } from 'vue';\n\nvar script$1 = {\n name: 'BaseCarousel',\n \"extends\": BaseComponent,\n props: {\n value: null,\n page: {\n type: Number,\n \"default\": 0\n },\n numVisible: {\n type: Number,\n \"default\": 1\n },\n numScroll: {\n type: Number,\n \"default\": 1\n },\n responsiveOptions: Array,\n orientation: {\n type: String,\n \"default\": 'horizontal'\n },\n verticalViewPortHeight: {\n type: String,\n \"default\": '300px'\n },\n contentClass: String,\n containerClass: String,\n indicatorsContentClass: String,\n circular: {\n type: Boolean,\n \"default\": false\n },\n autoplayInterval: {\n type: Number,\n \"default\": 0\n },\n showNavigators: {\n type: Boolean,\n \"default\": true\n },\n showIndicators: {\n type: Boolean,\n \"default\": true\n },\n prevButtonProps: {\n type: Object,\n \"default\": function _default() {\n return {\n severity: 'secondary',\n text: true,\n rounded: true\n };\n }\n },\n nextButtonProps: {\n type: Object,\n \"default\": function _default() {\n return {\n severity: 'secondary',\n text: true,\n rounded: true\n };\n }\n }\n },\n style: CarouselStyle,\n provide: function provide() {\n return {\n $pcCarousel: this,\n $parentInstance: this\n };\n }\n};\n\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nvar script = {\n name: 'Carousel',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['update:page'],\n isRemainingItemsAdded: false,\n data: function data() {\n return {\n remainingItems: 0,\n d_numVisible: this.numVisible,\n d_numScroll: this.numScroll,\n d_oldNumScroll: 0,\n d_oldNumVisible: 0,\n d_oldValue: null,\n d_page: this.page,\n totalShiftedItems: this.page * this.numScroll * -1,\n allowAutoplay: !!this.autoplayInterval,\n d_circular: this.circular || this.allowAutoplay,\n swipeThreshold: 20\n };\n },\n watch: {\n page: function page(newValue) {\n if (newValue > this.d_page) {\n this.navForward({}, newValue);\n } else if (newValue < this.d_page) {\n this.navBackward({}, newValue);\n }\n this.d_page = newValue;\n },\n circular: function circular(newValue) {\n this.d_circular = newValue;\n },\n numVisible: function numVisible(newValue, oldValue) {\n this.d_numVisible = newValue;\n this.d_oldNumVisible = oldValue;\n },\n numScroll: function numScroll(newValue, oldValue) {\n this.d_oldNumScroll = oldValue;\n this.d_numScroll = newValue;\n },\n value: function value(oldValue) {\n this.d_oldValue = oldValue;\n }\n },\n mounted: function mounted() {\n var stateChanged = false;\n this.$el.setAttribute(this.attributeSelector, '');\n this.createStyle();\n this.calculatePosition();\n if (this.responsiveOptions) {\n this.bindDocumentListeners();\n }\n if (this.isCircular()) {\n var totalShiftedItems = this.totalShiftedItems;\n if (this.d_page === 0) {\n totalShiftedItems = -1 * this.d_numVisible;\n } else if (totalShiftedItems === 0) {\n totalShiftedItems = -1 * this.value.length;\n if (this.remainingItems > 0) {\n this.isRemainingItemsAdded = true;\n }\n }\n if (totalShiftedItems !== this.totalShiftedItems) {\n this.totalShiftedItems = totalShiftedItems;\n stateChanged = true;\n }\n }\n if (!stateChanged && this.isAutoplay()) {\n this.startAutoplay();\n }\n },\n updated: function updated() {\n if (!this.empty) {\n var isCircular = this.isCircular();\n var stateChanged = false;\n var totalShiftedItems = this.totalShiftedItems;\n if (this.autoplayInterval) {\n this.stopAutoplay();\n }\n if (this.d_oldNumScroll !== this.d_numScroll || this.d_oldNumVisible !== this.d_numVisible || this.d_oldValue.length !== this.value.length) {\n this.remainingItems = (this.value.length - this.d_numVisible) % this.d_numScroll;\n var page = this.d_page;\n if (this.totalIndicators !== 0 && page >= this.totalIndicators) {\n page = this.totalIndicators - 1;\n this.$emit('update:page', page);\n this.d_page = page;\n stateChanged = true;\n }\n totalShiftedItems = page * this.d_numScroll * -1;\n if (isCircular) {\n totalShiftedItems -= this.d_numVisible;\n }\n if (page === this.totalIndicators - 1 && this.remainingItems > 0) {\n totalShiftedItems += -1 * this.remainingItems + this.d_numScroll;\n this.isRemainingItemsAdded = true;\n } else {\n this.isRemainingItemsAdded = false;\n }\n if (totalShiftedItems !== this.totalShiftedItems) {\n this.totalShiftedItems = totalShiftedItems;\n stateChanged = true;\n }\n this.d_oldNumScroll = this.d_numScroll;\n this.d_oldNumVisible = this.d_numVisible;\n this.d_oldValue = this.value;\n this.$refs.itemsContainer.style.transform = this.isVertical() ? \"translate3d(0, \".concat(totalShiftedItems * (100 / this.d_numVisible), \"%, 0)\") : \"translate3d(\".concat(totalShiftedItems * (100 / this.d_numVisible), \"%, 0, 0)\");\n }\n if (isCircular) {\n if (this.d_page === 0) {\n totalShiftedItems = -1 * this.d_numVisible;\n } else if (totalShiftedItems === 0) {\n totalShiftedItems = -1 * this.value.length;\n if (this.remainingItems > 0) {\n this.isRemainingItemsAdded = true;\n }\n }\n if (totalShiftedItems !== this.totalShiftedItems) {\n this.totalShiftedItems = totalShiftedItems;\n stateChanged = true;\n }\n }\n if (!stateChanged && this.isAutoplay()) {\n this.startAutoplay();\n }\n }\n },\n beforeUnmount: function beforeUnmount() {\n if (this.responsiveOptions) {\n this.unbindDocumentListeners();\n }\n if (this.autoplayInterval) {\n this.stopAutoplay();\n }\n },\n methods: {\n getIndicatorPTOptions: function getIndicatorPTOptions(key, index) {\n return this.ptm(key, {\n context: {\n highlighted: index === this.d_page\n }\n });\n },\n getItemPTOptions: function getItemPTOptions(key, index) {\n return this.ptm(key, {\n context: {\n index: index,\n active: this.firstIndex() <= index && this.lastIndex() >= index,\n start: this.firstIndex() === index,\n end: this.lastIndex() === index\n }\n });\n },\n step: function step(dir, page) {\n var totalShiftedItems = this.totalShiftedItems;\n var isCircular = this.isCircular();\n if (page != null) {\n totalShiftedItems = this.d_numScroll * page * -1;\n if (isCircular) {\n totalShiftedItems -= this.d_numVisible;\n }\n this.isRemainingItemsAdded = false;\n } else {\n totalShiftedItems += this.d_numScroll * dir;\n if (this.isRemainingItemsAdded) {\n totalShiftedItems += this.remainingItems - this.d_numScroll * dir;\n this.isRemainingItemsAdded = false;\n }\n var originalShiftedItems = isCircular ? totalShiftedItems + this.d_numVisible : totalShiftedItems;\n page = Math.abs(Math.floor(originalShiftedItems / this.d_numScroll));\n }\n if (isCircular && this.d_page === this.totalIndicators - 1 && dir === -1) {\n totalShiftedItems = -1 * (this.value.length + this.d_numVisible);\n page = 0;\n } else if (isCircular && this.d_page === 0 && dir === 1) {\n totalShiftedItems = 0;\n page = this.totalIndicators - 1;\n } else if (page === this.totalIndicators - 1 && this.remainingItems > 0) {\n totalShiftedItems += this.remainingItems * -1 - this.d_numScroll * dir;\n this.isRemainingItemsAdded = true;\n }\n if (this.$refs.itemsContainer) {\n !this.isUnstyled && removeClass(this.$refs.itemsContainer, 'p-items-hidden');\n this.$refs.itemsContainer.style.transform = this.isVertical() ? \"translate3d(0, \".concat(totalShiftedItems * (100 / this.d_numVisible), \"%, 0)\") : \"translate3d(\".concat(totalShiftedItems * (100 / this.d_numVisible), \"%, 0, 0)\");\n this.$refs.itemsContainer.style.transition = 'transform 500ms ease 0s';\n }\n this.totalShiftedItems = totalShiftedItems;\n this.$emit('update:page', page);\n this.d_page = page;\n },\n calculatePosition: function calculatePosition() {\n if (this.$refs.itemsContainer && this.responsiveOptions) {\n var windowWidth = window.innerWidth;\n var matchedResponsiveOptionsData = {\n numVisible: this.numVisible,\n numScroll: this.numScroll\n };\n for (var i = 0; i < this.responsiveOptions.length; i++) {\n var res = this.responsiveOptions[i];\n if (parseInt(res.breakpoint, 10) >= windowWidth) {\n matchedResponsiveOptionsData = res;\n }\n }\n if (this.d_numScroll !== matchedResponsiveOptionsData.numScroll) {\n var page = this.d_page;\n page = parseInt(page * this.d_numScroll / matchedResponsiveOptionsData.numScroll);\n this.totalShiftedItems = matchedResponsiveOptionsData.numScroll * page * -1;\n if (this.isCircular()) {\n this.totalShiftedItems -= matchedResponsiveOptionsData.numVisible;\n }\n this.d_numScroll = matchedResponsiveOptionsData.numScroll;\n this.$emit('update:page', page);\n this.d_page = page;\n }\n if (this.d_numVisible !== matchedResponsiveOptionsData.numVisible) {\n this.d_numVisible = matchedResponsiveOptionsData.numVisible;\n }\n }\n },\n navBackward: function navBackward(e, index) {\n if (this.d_circular || this.d_page !== 0) {\n this.step(1, index);\n }\n this.allowAutoplay = false;\n if (e.cancelable) {\n e.preventDefault();\n }\n },\n navForward: function navForward(e, index) {\n if (this.d_circular || this.d_page < this.totalIndicators - 1) {\n this.step(-1, index);\n }\n this.allowAutoplay = false;\n if (e.cancelable) {\n e.preventDefault();\n }\n },\n onIndicatorClick: function onIndicatorClick(e, index) {\n var page = this.d_page;\n if (index > page) {\n this.navForward(e, index);\n } else if (index < page) {\n this.navBackward(e, index);\n }\n },\n onTransitionEnd: function onTransitionEnd() {\n if (this.$refs.itemsContainer) {\n !this.isUnstyled && addClass(this.$refs.itemsContainer, 'p-items-hidden');\n this.$refs.itemsContainer.style.transition = '';\n if ((this.d_page === 0 || this.d_page === this.totalIndicators - 1) && this.isCircular()) {\n this.$refs.itemsContainer.style.transform = this.isVertical() ? \"translate3d(0, \".concat(this.totalShiftedItems * (100 / this.d_numVisible), \"%, 0)\") : \"translate3d(\".concat(this.totalShiftedItems * (100 / this.d_numVisible), \"%, 0, 0)\");\n }\n }\n },\n onTouchStart: function onTouchStart(e) {\n var touchobj = e.changedTouches[0];\n this.startPos = {\n x: touchobj.pageX,\n y: touchobj.pageY\n };\n },\n onTouchMove: function onTouchMove(e) {\n var touchobj = e.changedTouches[0];\n var diff = this.isVertical() ? touchobj.pageY - this.startPos.y : touchobj.pageX - this.startPos.x;\n if (Math.abs(diff) > this.swipeThreshold && e.cancelable) {\n e.preventDefault();\n }\n },\n onTouchEnd: function onTouchEnd(e) {\n var touchobj = e.changedTouches[0];\n if (this.isVertical()) {\n this.changePageOnTouch(e, touchobj.pageY - this.startPos.y);\n } else {\n this.changePageOnTouch(e, touchobj.pageX - this.startPos.x);\n }\n },\n changePageOnTouch: function changePageOnTouch(e, diff) {\n if (Math.abs(diff) > this.swipeThreshold) {\n if (diff < 0) {\n // left\n this.navForward(e);\n } else {\n // right\n this.navBackward(e);\n }\n }\n },\n onIndicatorKeydown: function onIndicatorKeydown(event) {\n switch (event.code) {\n case 'ArrowRight':\n this.onRightKey();\n break;\n case 'ArrowLeft':\n this.onLeftKey();\n break;\n case 'Home':\n this.onHomeKey();\n event.preventDefault();\n break;\n case 'End':\n this.onEndKey();\n event.preventDefault();\n break;\n case 'ArrowUp':\n case 'ArrowDown':\n case 'PageUp':\n case 'PageDown':\n event.preventDefault();\n break;\n case 'Tab':\n this.onTabKey();\n break;\n }\n },\n onRightKey: function onRightKey() {\n var indicators = _toConsumableArray(find(this.$refs.indicatorContent, '[data-pc-section=\"indicator\"]'));\n var activeIndex = this.findFocusedIndicatorIndex();\n this.changedFocusedIndicator(activeIndex, activeIndex + 1 === indicators.length ? indicators.length - 1 : activeIndex + 1);\n },\n onLeftKey: function onLeftKey() {\n var activeIndex = this.findFocusedIndicatorIndex();\n this.changedFocusedIndicator(activeIndex, activeIndex - 1 <= 0 ? 0 : activeIndex - 1);\n },\n onHomeKey: function onHomeKey() {\n var activeIndex = this.findFocusedIndicatorIndex();\n this.changedFocusedIndicator(activeIndex, 0);\n },\n onEndKey: function onEndKey() {\n var indicators = _toConsumableArray(find(this.$refs.indicatorContent, '[data-pc-section=\"indicator\"]'));\n var activeIndex = this.findFocusedIndicatorIndex();\n this.changedFocusedIndicator(activeIndex, indicators.length - 1);\n },\n onTabKey: function onTabKey() {\n var indicators = _toConsumableArray(find(this.$refs.indicatorContent, '[data-pc-section=\"indicator\"]'));\n var highlightedIndex = indicators.findIndex(function (ind) {\n return getAttribute(ind, 'data-p-active') === true;\n });\n var activeIndicator = findSingle(this.$refs.indicatorContent, '[data-pc-section=\"indicator\"] > button[tabindex=\"0\"]');\n var activeIndex = indicators.findIndex(function (ind) {\n return ind === activeIndicator.parentElement;\n });\n indicators[activeIndex].children[0].tabIndex = '-1';\n indicators[highlightedIndex].children[0].tabIndex = '0';\n },\n findFocusedIndicatorIndex: function findFocusedIndicatorIndex() {\n var indicators = _toConsumableArray(find(this.$refs.indicatorContent, '[data-pc-section=\"indicator\"]'));\n var activeIndicator = findSingle(this.$refs.indicatorContent, '[data-pc-section=\"indicator\"] > button[tabindex=\"0\"]');\n return indicators.findIndex(function (ind) {\n return ind === activeIndicator.parentElement;\n });\n },\n changedFocusedIndicator: function changedFocusedIndicator(prevInd, nextInd) {\n var indicators = _toConsumableArray(find(this.$refs.indicatorContent, '[data-pc-section=\"indicator\"]'));\n indicators[prevInd].children[0].tabIndex = '-1';\n indicators[nextInd].children[0].tabIndex = '0';\n indicators[nextInd].children[0].focus();\n },\n bindDocumentListeners: function bindDocumentListeners() {\n var _this = this;\n if (!this.documentResizeListener) {\n this.documentResizeListener = function (e) {\n _this.calculatePosition(e);\n };\n window.addEventListener('resize', this.documentResizeListener);\n }\n },\n unbindDocumentListeners: function unbindDocumentListeners() {\n if (this.documentResizeListener) {\n window.removeEventListener('resize', this.documentResizeListener);\n this.documentResizeListener = null;\n }\n },\n startAutoplay: function startAutoplay() {\n var _this2 = this;\n this.interval = setInterval(function () {\n if (_this2.d_page === _this2.totalIndicators - 1) {\n _this2.step(-1, 0);\n } else {\n _this2.step(-1, _this2.d_page + 1);\n }\n }, this.autoplayInterval);\n },\n stopAutoplay: function stopAutoplay() {\n if (this.interval) {\n clearInterval(this.interval);\n }\n },\n createStyle: function createStyle() {\n if (!this.carouselStyle) {\n var _this$$primevue;\n this.carouselStyle = document.createElement('style');\n this.carouselStyle.type = 'text/css';\n setAttribute(this.carouselStyle, 'nonce', (_this$$primevue = this.$primevue) === null || _this$$primevue === void 0 || (_this$$primevue = _this$$primevue.config) === null || _this$$primevue === void 0 || (_this$$primevue = _this$$primevue.csp) === null || _this$$primevue === void 0 ? void 0 : _this$$primevue.nonce);\n document.body.appendChild(this.carouselStyle);\n }\n var innerHTML = \"\\n .p-carousel[\".concat(this.attributeSelector, \"] .p-carousel-item {\\n flex: 1 0 \").concat(100 / this.d_numVisible, \"%\\n }\\n \");\n if (this.responsiveOptions && !this.isUnstyled) {\n var _responsiveOptions = _toConsumableArray(this.responsiveOptions);\n var comparer = localeComparator();\n _responsiveOptions.sort(function (data1, data2) {\n var value1 = data1.breakpoint;\n var value2 = data2.breakpoint;\n return sort(value1, value2, -1, comparer);\n });\n for (var i = 0; i < _responsiveOptions.length; i++) {\n var res = _responsiveOptions[i];\n innerHTML += \"\\n @media screen and (max-width: \".concat(res.breakpoint, \") {\\n .p-carousel[\").concat(this.attributeSelector, \"] .p-carousel-item {\\n flex: 1 0 \").concat(100 / res.numVisible, \"%\\n }\\n }\\n \");\n }\n }\n this.carouselStyle.innerHTML = innerHTML;\n },\n isVertical: function isVertical() {\n return this.orientation === 'vertical';\n },\n isCircular: function isCircular() {\n return this.value && this.d_circular && this.value.length >= this.d_numVisible;\n },\n isAutoplay: function isAutoplay() {\n return this.autoplayInterval && this.allowAutoplay;\n },\n firstIndex: function firstIndex() {\n return this.isCircular() ? -1 * (this.totalShiftedItems + this.d_numVisible) : this.totalShiftedItems * -1;\n },\n lastIndex: function lastIndex() {\n return this.firstIndex() + this.d_numVisible - 1;\n },\n ariaSlideNumber: function ariaSlideNumber(value) {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.slideNumber.replace(/{slideNumber}/g, value) : undefined;\n },\n ariaPageLabel: function ariaPageLabel(value) {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.pageLabel.replace(/{page}/g, value) : undefined;\n }\n },\n computed: {\n totalIndicators: function totalIndicators() {\n return this.value ? Math.max(Math.ceil((this.value.length - this.d_numVisible) / this.d_numScroll) + 1, 0) : 0;\n },\n backwardIsDisabled: function backwardIsDisabled() {\n return this.value && (!this.circular || this.value.length < this.d_numVisible) && this.d_page === 0;\n },\n forwardIsDisabled: function forwardIsDisabled() {\n return this.value && (!this.circular || this.value.length < this.d_numVisible) && (this.d_page === this.totalIndicators - 1 || this.totalIndicators === 0);\n },\n ariaSlideLabel: function ariaSlideLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.slide : undefined;\n },\n ariaPrevButtonLabel: function ariaPrevButtonLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.prevPageLabel : undefined;\n },\n ariaNextButtonLabel: function ariaNextButtonLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.nextPageLabel : undefined;\n },\n attributeSelector: function attributeSelector() {\n return UniqueComponentId();\n },\n empty: function empty() {\n return !this.value || this.value.length === 0;\n },\n emptyMessageText: function emptyMessageText() {\n var _this$$primevue$confi;\n return ((_this$$primevue$confi = this.$primevue.config) === null || _this$$primevue$confi === void 0 || (_this$$primevue$confi = _this$$primevue$confi.locale) === null || _this$$primevue$confi === void 0 ? void 0 : _this$$primevue$confi.emptyMessage) || '';\n }\n },\n components: {\n Button: Button,\n ChevronRightIcon: ChevronRightIcon,\n ChevronDownIcon: ChevronDownIcon,\n ChevronLeftIcon: ChevronLeftIcon,\n ChevronUpIcon: ChevronUpIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n\nvar _hoisted_1 = [\"aria-live\"];\nvar _hoisted_2 = [\"data-p-carousel-item-active\", \"data-p-carousel-item-start\", \"data-p-carousel-item-end\"];\nvar _hoisted_3 = [\"aria-hidden\", \"aria-label\", \"aria-roledescription\", \"data-p-carousel-item-active\", \"data-p-carousel-item-start\", \"data-p-carousel-item-end\"];\nvar _hoisted_4 = [\"data-p-active\"];\nvar _hoisted_5 = [\"tabindex\", \"aria-label\", \"aria-current\", \"onClick\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_Button = resolveComponent(\"Button\");\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root'),\n role: \"region\"\n }, _ctx.ptmi('root')), [_ctx.$slots.header ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('header')\n }, _ctx.ptm('header')), [renderSlot(_ctx.$slots, \"header\")], 16)) : createCommentVNode(\"\", true), !$options.empty ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 1,\n \"class\": [_ctx.cx('contentContainer'), _ctx.containerClass]\n }, _ctx.ptm('contentContainer')), [createElementVNode(\"div\", mergeProps({\n \"class\": [_ctx.cx('content'), _ctx.contentClass],\n \"aria-live\": $data.allowAutoplay ? 'polite' : 'off'\n }, _ctx.ptm('content')), [_ctx.showNavigators ? (openBlock(), createBlock(_component_Button, mergeProps({\n key: 0,\n \"class\": _ctx.cx('pcPrevButton'),\n disabled: $options.backwardIsDisabled,\n \"aria-label\": $options.ariaPrevButtonLabel,\n unstyled: _ctx.unstyled,\n onClick: $options.navBackward\n }, _ctx.prevButtonProps, {\n pt: _ctx.ptm('pcPrevButton'),\n \"data-pc-group-section\": \"navigator\"\n }), {\n icon: withCtx(function (slotProps) {\n return [renderSlot(_ctx.$slots, \"previcon\", {}, function () {\n return [(openBlock(), createBlock(resolveDynamicComponent($options.isVertical() ? 'ChevronUpIcon' : 'ChevronLeftIcon'), mergeProps({\n \"class\": slotProps.icon\n }, _ctx.ptm('pcPrevButton')['icon']), null, 16, [\"class\"]))];\n })];\n }),\n _: 3\n }, 16, [\"class\", \"disabled\", \"aria-label\", \"unstyled\", \"onClick\", \"pt\"])) : createCommentVNode(\"\", true), createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('viewport'),\n style: [{\n height: $options.isVertical() ? _ctx.verticalViewPortHeight : 'auto'\n }],\n onTouchend: _cache[1] || (_cache[1] = function () {\n return $options.onTouchEnd && $options.onTouchEnd.apply($options, arguments);\n }),\n onTouchstart: _cache[2] || (_cache[2] = function () {\n return $options.onTouchStart && $options.onTouchStart.apply($options, arguments);\n }),\n onTouchmove: _cache[3] || (_cache[3] = function () {\n return $options.onTouchMove && $options.onTouchMove.apply($options, arguments);\n })\n }, _ctx.ptm('viewport')), [createElementVNode(\"div\", mergeProps({\n ref: \"itemsContainer\",\n \"class\": _ctx.cx('itemList'),\n onTransitionend: _cache[0] || (_cache[0] = function () {\n return $options.onTransitionEnd && $options.onTransitionEnd.apply($options, arguments);\n })\n }, _ctx.ptm('itemList')), [$options.isCircular() ? (openBlock(true), createElementBlock(Fragment, {\n key: 0\n }, renderList(_ctx.value.slice(-1 * $data.d_numVisible), function (item, index) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n key: index + '_scloned',\n \"class\": _ctx.cx('itemClone', {\n index: index,\n value: _ctx.value,\n totalShiftedItems: $data.totalShiftedItems,\n d_numVisible: $data.d_numVisible\n }),\n ref_for: true\n }, _ctx.ptm('itemClone'), {\n \"data-p-carousel-item-active\": $data.totalShiftedItems * -1 === _ctx.value.length + $data.d_numVisible,\n \"data-p-carousel-item-start\": index === 0,\n \"data-p-carousel-item-end\": _ctx.value.slice(-1 * $data.d_numVisible).length - 1 === index\n }), [renderSlot(_ctx.$slots, \"item\", {\n data: item,\n index: index\n })], 16, _hoisted_2);\n }), 128)) : createCommentVNode(\"\", true), (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.value, function (item, index) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n key: index,\n \"class\": _ctx.cx('item', {\n index: index\n }),\n role: \"group\",\n \"aria-hidden\": $options.firstIndex() > index || $options.lastIndex() < index ? true : undefined,\n \"aria-label\": $options.ariaSlideNumber(index),\n \"aria-roledescription\": $options.ariaSlideLabel,\n ref_for: true\n }, $options.getItemPTOptions('item', index), {\n \"data-p-carousel-item-active\": $options.firstIndex() <= index && $options.lastIndex() >= index,\n \"data-p-carousel-item-start\": $options.firstIndex() === index,\n \"data-p-carousel-item-end\": $options.lastIndex() === index\n }), [renderSlot(_ctx.$slots, \"item\", {\n data: item,\n index: index\n })], 16, _hoisted_3);\n }), 128)), $options.isCircular() ? (openBlock(true), createElementBlock(Fragment, {\n key: 1\n }, renderList(_ctx.value.slice(0, $data.d_numVisible), function (item, index) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n key: index + '_fcloned',\n \"class\": _ctx.cx('itemClone', {\n index: index,\n value: _ctx.value,\n totalShiftedItems: $data.totalShiftedItems,\n d_numVisible: $data.d_numVisible\n }),\n ref_for: true\n }, _ctx.ptm('itemClone')), [renderSlot(_ctx.$slots, \"item\", {\n data: item,\n index: index\n })], 16);\n }), 128)) : createCommentVNode(\"\", true)], 16)], 16), _ctx.showNavigators ? (openBlock(), createBlock(_component_Button, mergeProps({\n key: 1,\n \"class\": _ctx.cx('pcNextButton'),\n disabled: $options.forwardIsDisabled,\n \"aria-label\": $options.ariaNextButtonLabel,\n unstyled: _ctx.unstyled,\n onClick: $options.navForward\n }, _ctx.nextButtonProps, {\n pt: _ctx.ptm('pcNextButton'),\n \"data-pc-group-section\": \"navigator\"\n }), {\n icon: withCtx(function (slotProps) {\n return [renderSlot(_ctx.$slots, \"nexticon\", {}, function () {\n return [(openBlock(), createBlock(resolveDynamicComponent($options.isVertical() ? 'ChevronDownIcon' : 'ChevronRightIcon'), mergeProps({\n \"class\": slotProps[\"class\"]\n }, _ctx.ptm('pcNextButton')['icon']), null, 16, [\"class\"]))];\n })];\n }),\n _: 3\n }, 16, [\"class\", \"disabled\", \"aria-label\", \"unstyled\", \"onClick\", \"pt\"])) : createCommentVNode(\"\", true)], 16, _hoisted_1), $options.totalIndicators >= 0 && _ctx.showIndicators ? (openBlock(), createElementBlock(\"ul\", mergeProps({\n key: 0,\n ref: \"indicatorContent\",\n \"class\": [_ctx.cx('indicatorList'), _ctx.indicatorsContentClass],\n onKeydown: _cache[4] || (_cache[4] = function () {\n return $options.onIndicatorKeydown && $options.onIndicatorKeydown.apply($options, arguments);\n })\n }, _ctx.ptm('indicatorList')), [(openBlock(true), createElementBlock(Fragment, null, renderList($options.totalIndicators, function (indicator, i) {\n return openBlock(), createElementBlock(\"li\", mergeProps({\n key: 'p-carousel-indicator-' + i.toString(),\n \"class\": _ctx.cx('indicator', {\n index: i\n }),\n ref_for: true\n }, $options.getIndicatorPTOptions('indicator', i), {\n \"data-p-active\": $data.d_page === i\n }), [createElementVNode(\"button\", mergeProps({\n \"class\": _ctx.cx('indicatorButton'),\n type: \"button\",\n tabindex: $data.d_page === i ? '0' : '-1',\n \"aria-label\": $options.ariaPageLabel(i + 1),\n \"aria-current\": $data.d_page === i ? 'page' : undefined,\n onClick: function onClick($event) {\n return $options.onIndicatorClick($event, i);\n },\n ref_for: true\n }, $options.getIndicatorPTOptions('indicatorButton', i)), null, 16, _hoisted_5)], 16, _hoisted_4);\n }), 128))], 16)) : createCommentVNode(\"\", true)], 16)) : renderSlot(_ctx.$slots, \"empty\", {\n key: 2\n }, function () {\n return [createTextVNode(toDisplayString($options.emptyMessageText), 1)];\n }), _ctx.$slots.footer ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 3,\n \"class\": _ctx.cx('footer')\n }, _ctx.ptm('footer')), [renderSlot(_ctx.$slots, \"footer\")], 16)) : createCommentVNode(\"\", true)], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n\n\n","import { defineStore } from 'pinia'\nimport { ref } from 'vue'\n\nimport { api } from '@/scripts/api'\n\nexport const useWorkflowTemplatesStore = defineStore(\n 'workflowTemplates',\n () => {\n const items = ref<{\n [customNodesName: string]: string[]\n }>({})\n const isLoaded = ref(false)\n\n async function loadWorkflowTemplates() {\n try {\n if (!isLoaded.value) {\n items.value = await api.getWorkflowTemplates()\n isLoaded.value = true\n }\n } catch (error) {\n console.error('Error fetching workflow templates:', error)\n }\n }\n\n return {\n items,\n isLoaded,\n loadWorkflowTemplates\n }\n }\n)\n","\n\n\n\n\n","import ConfirmationDialogContent from '@/components/dialog/content/ConfirmationDialogContent.vue'\nimport ExecutionErrorDialogContent from '@/components/dialog/content/ExecutionErrorDialogContent.vue'\nimport LoadWorkflowWarning from '@/components/dialog/content/LoadWorkflowWarning.vue'\nimport MissingModelsWarning from '@/components/dialog/content/MissingModelsWarning.vue'\nimport PromptDialogContent from '@/components/dialog/content/PromptDialogContent.vue'\nimport SettingDialogContent from '@/components/dialog/content/SettingDialogContent.vue'\nimport SettingDialogHeader from '@/components/dialog/header/SettingDialogHeader.vue'\nimport TemplateWorkflowsContent from '@/components/templates/TemplateWorkflowsContent.vue'\nimport { t } from '@/i18n'\nimport { type ShowDialogOptions, useDialogStore } from '@/stores/dialogStore'\nimport type { ExecutionErrorWsMessage } from '@/types/apiTypes'\nimport type { MissingNodeType } from '@/types/comfy'\n\nexport type ConfirmationDialogType =\n | 'default'\n | 'overwrite'\n | 'delete'\n | 'dirtyClose'\n | 'reinstall'\n\nexport const useDialogService = () => {\n const dialogStore = useDialogStore()\n function showLoadWorkflowWarning(props: {\n missingNodeTypes: MissingNodeType[]\n [key: string]: any\n }) {\n dialogStore.showDialog({\n key: 'global-load-workflow-warning',\n component: LoadWorkflowWarning,\n props\n })\n }\n\n function showMissingModelsWarning(props: {\n missingModels: any[]\n paths: Record\n [key: string]: any\n }) {\n dialogStore.showDialog({\n key: 'global-missing-models-warning',\n component: MissingModelsWarning,\n props\n })\n }\n\n function showSettingsDialog(\n panel?: 'about' | 'keybinding' | 'extension' | 'server-config'\n ) {\n const props = panel ? { props: { defaultPanel: panel } } : undefined\n\n dialogStore.showDialog({\n key: 'global-settings',\n headerComponent: SettingDialogHeader,\n component: SettingDialogContent,\n ...props\n })\n }\n\n function showAboutDialog() {\n dialogStore.showDialog({\n key: 'global-settings',\n headerComponent: SettingDialogHeader,\n component: SettingDialogContent,\n props: {\n defaultPanel: 'about'\n }\n })\n }\n\n function showExecutionErrorDialog(error: ExecutionErrorWsMessage) {\n dialogStore.showDialog({\n key: 'global-execution-error',\n component: ExecutionErrorDialogContent,\n props: {\n error\n }\n })\n }\n\n function showTemplateWorkflowsDialog() {\n dialogStore.showDialog({\n key: 'global-template-workflows',\n title: t('templateWorkflows.title'),\n component: TemplateWorkflowsContent\n })\n }\n\n async function prompt({\n title,\n message,\n defaultValue = ''\n }: {\n title: string\n message: string\n defaultValue?: string\n }): Promise {\n return new Promise((resolve) => {\n dialogStore.showDialog({\n key: 'global-prompt',\n title,\n component: PromptDialogContent,\n props: {\n message,\n defaultValue,\n onConfirm: (value: string) => {\n resolve(value)\n }\n },\n dialogComponentProps: {\n onClose: () => {\n resolve(null)\n }\n }\n })\n })\n }\n\n /**\n * @returns `true` if the user confirms the dialog,\n * `false` if denied (e.g. no in yes/no/cancel), or\n * `null` if the dialog is cancelled or closed\n */\n async function confirm({\n title,\n message,\n type = 'default',\n itemList = []\n }: {\n /** Dialog heading */\n title: string\n /** The main message body */\n message: string\n /** Pre-configured dialog type */\n type?: ConfirmationDialogType\n /** Displayed as an unorderd list immediately below the message body */\n itemList?: string[]\n }): Promise {\n return new Promise((resolve) => {\n const options: ShowDialogOptions = {\n key: 'global-prompt',\n title,\n component: ConfirmationDialogContent,\n props: {\n message,\n type,\n itemList,\n onConfirm: resolve\n },\n dialogComponentProps: {\n onClose: () => resolve(null)\n }\n }\n\n dialogStore.showDialog(options)\n })\n }\n\n return {\n showLoadWorkflowWarning,\n showMissingModelsWarning,\n showSettingsDialog,\n showAboutDialog,\n showExecutionErrorDialog,\n showTemplateWorkflowsDialog,\n prompt,\n confirm\n }\n}\n","import { defineStore } from 'pinia'\nimport { Ref, computed, ref, toRaw } from 'vue'\n\nimport { KeyCombo, Keybinding } from '@/types/keyBindingTypes'\n\nexport class KeybindingImpl implements Keybinding {\n commandId: string\n combo: KeyComboImpl\n targetSelector?: string\n\n constructor(obj: Keybinding) {\n this.commandId = obj.commandId\n this.combo = new KeyComboImpl(obj.combo)\n this.targetSelector = obj.targetSelector\n }\n\n equals(other: unknown): boolean {\n const raw = toRaw(other)\n\n return raw instanceof KeybindingImpl\n ? this.commandId === raw.commandId &&\n this.combo.equals(raw.combo) &&\n this.targetSelector === raw.targetSelector\n : false\n }\n}\n\nexport class KeyComboImpl implements KeyCombo {\n key: string\n // ctrl or meta(cmd on mac)\n ctrl: boolean\n alt: boolean\n shift: boolean\n\n constructor(obj: KeyCombo) {\n this.key = obj.key\n this.ctrl = obj.ctrl ?? false\n this.alt = obj.alt ?? false\n this.shift = obj.shift ?? false\n }\n\n static fromEvent(event: KeyboardEvent) {\n return new KeyComboImpl({\n key: event.key,\n ctrl: event.ctrlKey || event.metaKey,\n alt: event.altKey,\n shift: event.shiftKey\n })\n }\n\n equals(other: unknown): boolean {\n const raw = toRaw(other)\n\n return raw instanceof KeyComboImpl\n ? this.key.toUpperCase() === raw.key.toUpperCase() &&\n this.ctrl === raw.ctrl &&\n this.alt === raw.alt &&\n this.shift === raw.shift\n : false\n }\n\n serialize(): string {\n return `${this.key.toUpperCase()}:${this.ctrl}:${this.alt}:${this.shift}`\n }\n\n toString(): string {\n return this.getKeySequences().join(' + ')\n }\n\n get hasModifier(): boolean {\n return this.ctrl || this.alt || this.shift\n }\n\n get isModifier(): boolean {\n return ['Control', 'Meta', 'Alt', 'Shift'].includes(this.key)\n }\n\n getKeySequences(): string[] {\n const sequences: string[] = []\n if (this.ctrl) {\n sequences.push('Ctrl')\n }\n if (this.alt) {\n sequences.push('Alt')\n }\n if (this.shift) {\n sequences.push('Shift')\n }\n sequences.push(this.key)\n return sequences\n }\n}\n\nexport const useKeybindingStore = defineStore('keybinding', () => {\n /**\n * Default keybindings provided by core and extensions.\n */\n const defaultKeybindings = ref>({})\n /**\n * User-defined keybindings.\n */\n const userKeybindings = ref>({})\n /**\n * User-defined keybindings that unset default keybindings.\n */\n const userUnsetKeybindings = ref>({})\n\n const keybindingByKeyCombo = computed>(() => {\n const result: Record = {\n ...defaultKeybindings.value\n }\n\n for (const keybinding of Object.values(userUnsetKeybindings.value)) {\n const serializedCombo = keybinding.combo.serialize()\n if (result[serializedCombo]?.equals(keybinding)) {\n delete result[serializedCombo]\n }\n }\n\n return {\n ...result,\n ...userKeybindings.value\n }\n })\n\n const keybindings = computed(() =>\n Object.values(keybindingByKeyCombo.value)\n )\n\n function getKeybinding(combo: KeyComboImpl) {\n return keybindingByKeyCombo.value[combo.serialize()]\n }\n\n function createKeybindingsByCommandId(keybindings: KeybindingImpl[]) {\n const result: Record = {}\n for (const keybinding of keybindings) {\n if (!(keybinding.commandId in result)) {\n result[keybinding.commandId] = []\n }\n result[keybinding.commandId].push(keybinding)\n }\n return result\n }\n\n const keybindingsByCommandId = computed>(\n () => {\n return createKeybindingsByCommandId(keybindings.value)\n }\n )\n\n function getKeybindingsByCommandId(commandId: string) {\n return keybindingsByCommandId.value[commandId] ?? []\n }\n\n const defaultKeybindingsByCommandId = computed<\n Record\n >(() => {\n return createKeybindingsByCommandId(Object.values(defaultKeybindings.value))\n })\n\n function getKeybindingByCommandId(commandId: string) {\n return getKeybindingsByCommandId(commandId)[0]\n }\n\n function addKeybinding(\n target: Ref>,\n keybinding: KeybindingImpl,\n { existOk = false }: { existOk: boolean }\n ) {\n if (!existOk && keybinding.combo.serialize() in target.value) {\n throw new Error(\n `Keybinding on ${keybinding.combo} already exists on ${\n target.value[keybinding.combo.serialize()].commandId\n }`\n )\n }\n target.value[keybinding.combo.serialize()] = keybinding\n }\n\n function addDefaultKeybinding(keybinding: KeybindingImpl) {\n addKeybinding(defaultKeybindings, keybinding, { existOk: false })\n }\n\n function addUserKeybinding(keybinding: KeybindingImpl) {\n const defaultKeybinding =\n defaultKeybindings.value[keybinding.combo.serialize()]\n const userUnsetKeybinding =\n userUnsetKeybindings.value[keybinding.combo.serialize()]\n\n // User is adding back a keybinding that was an unsetted default keybinding.\n if (\n keybinding.equals(defaultKeybinding) &&\n keybinding.equals(userUnsetKeybinding)\n ) {\n delete userUnsetKeybindings.value[keybinding.combo.serialize()]\n return\n }\n\n // Unset keybinding on default keybinding if it exists and is not the same as userUnsetKeybinding\n if (defaultKeybinding && !defaultKeybinding.equals(userUnsetKeybinding)) {\n unsetKeybinding(defaultKeybinding)\n }\n\n addKeybinding(userKeybindings, keybinding, { existOk: true })\n }\n\n function unsetKeybinding(keybinding: KeybindingImpl) {\n const serializedCombo = keybinding.combo.serialize()\n if (!(serializedCombo in keybindingByKeyCombo.value)) {\n console.warn(\n `Trying to unset non-exist keybinding: ${JSON.stringify(keybinding)}`\n )\n return\n }\n\n if (userKeybindings.value[serializedCombo]?.equals(keybinding)) {\n delete userKeybindings.value[serializedCombo]\n return\n }\n\n if (defaultKeybindings.value[serializedCombo]?.equals(keybinding)) {\n addKeybinding(userUnsetKeybindings, keybinding, { existOk: false })\n return\n }\n\n throw new Error(`Unknown keybinding: ${JSON.stringify(keybinding)}`)\n }\n\n /**\n * Update the keybinding on given command if it is different from the current keybinding.\n *\n * @returns true if the keybinding is updated, false otherwise.\n */\n function updateKeybindingOnCommand(keybinding: KeybindingImpl): boolean {\n const currentKeybinding = getKeybindingByCommandId(keybinding.commandId)\n if (currentKeybinding?.equals(keybinding)) {\n return false\n }\n if (currentKeybinding) {\n unsetKeybinding(currentKeybinding)\n }\n addUserKeybinding(keybinding)\n return true\n }\n\n function resetKeybindings() {\n userKeybindings.value = {}\n userUnsetKeybindings.value = {}\n }\n\n function isCommandKeybindingModified(commandId: string): boolean {\n const currentKeybinding: KeybindingImpl | undefined =\n getKeybindingByCommandId(commandId)\n const defaultKeybinding: KeybindingImpl | undefined =\n defaultKeybindingsByCommandId.value[commandId]?.[0]\n\n return !(\n (currentKeybinding === undefined && defaultKeybinding === undefined) ||\n currentKeybinding?.equals(defaultKeybinding)\n )\n }\n\n return {\n keybindings,\n userKeybindings,\n userUnsetKeybindings,\n getKeybinding,\n getKeybindingsByCommandId,\n getKeybindingByCommandId,\n addDefaultKeybinding,\n addUserKeybinding,\n unsetKeybinding,\n updateKeybindingOnCommand,\n resetKeybindings,\n isCommandKeybindingModified\n }\n})\n","import { defineStore } from 'pinia'\nimport { computed, ref } from 'vue'\n\nimport { useErrorHandling } from '@/hooks/errorHooks'\nimport type { ComfyExtension } from '@/types/comfy'\n\nimport { type KeybindingImpl, useKeybindingStore } from './keybindingStore'\n\nexport interface ComfyCommand {\n id: string\n function: () => void | Promise\n\n label?: string | (() => string)\n icon?: string | (() => string)\n tooltip?: string | (() => string)\n /** Menubar item label, if different from command label */\n menubarLabel?: string | (() => string)\n versionAdded?: string\n /** If non-nullish, this command will prompt for confirmation. */\n confirmation?: string\n}\n\nexport class ComfyCommandImpl implements ComfyCommand {\n id: string\n function: () => void | Promise\n _label?: string | (() => string)\n _icon?: string | (() => string)\n _tooltip?: string | (() => string)\n _menubarLabel?: string | (() => string)\n versionAdded?: string\n confirmation?: string\n\n constructor(command: ComfyCommand) {\n this.id = command.id\n this.function = command.function\n this._label = command.label\n this._icon = command.icon\n this._tooltip = command.tooltip\n this._menubarLabel = command.menubarLabel ?? command.label\n this.versionAdded = command.versionAdded\n this.confirmation = command.confirmation\n }\n\n get label() {\n return typeof this._label === 'function' ? this._label() : this._label\n }\n\n get icon() {\n return typeof this._icon === 'function' ? this._icon() : this._icon\n }\n\n get tooltip() {\n return typeof this._tooltip === 'function' ? this._tooltip() : this._tooltip\n }\n\n get menubarLabel() {\n return typeof this._menubarLabel === 'function'\n ? this._menubarLabel()\n : this._menubarLabel\n }\n\n get keybinding(): KeybindingImpl | null {\n return useKeybindingStore().getKeybindingByCommandId(this.id)\n }\n}\n\nexport const useCommandStore = defineStore('command', () => {\n const commandsById = ref>({})\n const commands = computed(() => Object.values(commandsById.value))\n\n const registerCommand = (command: ComfyCommand) => {\n if (commandsById.value[command.id]) {\n console.warn(`Command ${command.id} already registered`)\n }\n commandsById.value[command.id] = new ComfyCommandImpl(command)\n }\n\n const registerCommands = (commands: ComfyCommand[]) => {\n for (const command of commands) {\n registerCommand(command)\n }\n }\n\n const getCommand = (command: string) => {\n return commandsById.value[command]\n }\n\n const { wrapWithErrorHandlingAsync } = useErrorHandling()\n const execute = async (\n commandId: string,\n errorHandler?: (error: any) => void\n ) => {\n const command = getCommand(commandId)\n if (command) {\n await wrapWithErrorHandlingAsync(command.function, errorHandler)()\n } else {\n throw new Error(`Command ${commandId} not found`)\n }\n }\n\n const isRegistered = (command: string) => {\n return !!commandsById.value[command]\n }\n\n const loadExtensionCommands = (extension: ComfyExtension) => {\n if (extension.commands) {\n for (const command of extension.commands) {\n registerCommand(command)\n }\n }\n }\n\n return {\n commands,\n execute,\n getCommand,\n registerCommand,\n registerCommands,\n isRegistered,\n loadExtensionCommands\n }\n})\n","export const CORE_MENU_COMMANDS = [\n [['Workflow'], ['Comfy.NewBlankWorkflow']],\n [['Workflow'], ['Comfy.OpenWorkflow', 'Comfy.BrowseTemplates']],\n [\n ['Workflow'],\n [\n 'Comfy.SaveWorkflow',\n 'Comfy.SaveWorkflowAs',\n 'Comfy.ExportWorkflow',\n 'Comfy.ExportWorkflowAPI'\n ]\n ],\n [['Edit'], ['Comfy.Undo', 'Comfy.Redo']],\n [['Edit'], ['Comfy.RefreshNodeDefinitions']],\n [['Edit'], ['Comfy.ClearWorkflow']],\n [['Edit'], ['Comfy.OpenClipspace']],\n [\n ['Help'],\n [\n 'Comfy.Help.OpenComfyUIIssues',\n 'Comfy.Help.OpenComfyUIDocs',\n 'Comfy.Help.OpenComfyOrgDiscord'\n ]\n ],\n [['Help'], ['Comfy.Help.AboutComfyUI']]\n]\n","import { defineStore } from 'pinia'\nimport type { MenuItem } from 'primevue/menuitem'\nimport { ref } from 'vue'\n\nimport { CORE_MENU_COMMANDS } from '@/constants/coreMenuCommands'\nimport { ComfyExtension } from '@/types/comfy'\n\nimport { useCommandStore } from './commandStore'\n\nexport const useMenuItemStore = defineStore('menuItem', () => {\n const commandStore = useCommandStore()\n const menuItems = ref([])\n\n const registerMenuGroup = (path: string[], items: MenuItem[]) => {\n let currentLevel = menuItems.value\n\n // Traverse the path, creating nodes if necessary\n for (let i = 0; i < path.length; i++) {\n const segment = path[i]\n let found = currentLevel.find((item) => item.label === segment)\n\n if (!found) {\n // Create a new node if it doesn't exist\n found = {\n label: segment,\n items: []\n }\n currentLevel.push(found)\n }\n\n // Ensure the found item has an 'items' array\n if (!found.items) {\n found.items = []\n }\n\n // Move to the next level\n currentLevel = found.items\n }\n\n if (currentLevel.length > 0) {\n currentLevel.push({\n separator: true\n })\n }\n // Add the new items to the last level\n currentLevel.push(...items)\n }\n\n const registerCommands = (path: string[], commandIds: string[]) => {\n const items = commandIds\n .map((commandId) => commandStore.getCommand(commandId))\n .map(\n (command) =>\n ({\n command: () => commandStore.execute(command.id),\n label: command.menubarLabel,\n icon: command.icon,\n tooltip: command.tooltip,\n comfyCommand: command\n }) as MenuItem\n )\n registerMenuGroup(path, items)\n }\n\n const loadExtensionMenuCommands = (extension: ComfyExtension) => {\n if (!extension.menuCommands) {\n return\n }\n\n const extensionCommandIds = new Set(\n extension.commands?.map((command) => command.id) ?? []\n )\n extension.menuCommands.forEach((menuCommand) => {\n const commands = menuCommand.commands.filter((command) =>\n extensionCommandIds.has(command)\n )\n if (commands.length) {\n registerCommands(menuCommand.path, commands)\n }\n })\n }\n\n const registerCoreMenuCommands = () => {\n for (const [path, commands] of CORE_MENU_COMMANDS) {\n registerCommands(path, commands)\n }\n }\n\n return {\n menuItems,\n registerMenuGroup,\n registerCommands,\n loadExtensionMenuCommands,\n registerCoreMenuCommands\n }\n})\n","// ::- Persistent data structure representing an ordered mapping from\n// strings to values, with some convenient update methods.\nfunction OrderedMap(content) {\n this.content = content;\n}\n\nOrderedMap.prototype = {\n constructor: OrderedMap,\n\n find: function(key) {\n for (var i = 0; i < this.content.length; i += 2)\n if (this.content[i] === key) return i\n return -1\n },\n\n // :: (string) → ?any\n // Retrieve the value stored under `key`, or return undefined when\n // no such key exists.\n get: function(key) {\n var found = this.find(key);\n return found == -1 ? undefined : this.content[found + 1]\n },\n\n // :: (string, any, ?string) → OrderedMap\n // Create a new map by replacing the value of `key` with a new\n // value, or adding a binding to the end of the map. If `newKey` is\n // given, the key of the binding will be replaced with that key.\n update: function(key, value, newKey) {\n var self = newKey && newKey != key ? this.remove(newKey) : this;\n var found = self.find(key), content = self.content.slice();\n if (found == -1) {\n content.push(newKey || key, value);\n } else {\n content[found + 1] = value;\n if (newKey) content[found] = newKey;\n }\n return new OrderedMap(content)\n },\n\n // :: (string) → OrderedMap\n // Return a map with the given key removed, if it existed.\n remove: function(key) {\n var found = this.find(key);\n if (found == -1) return this\n var content = this.content.slice();\n content.splice(found, 2);\n return new OrderedMap(content)\n },\n\n // :: (string, any) → OrderedMap\n // Add a new key to the start of the map.\n addToStart: function(key, value) {\n return new OrderedMap([key, value].concat(this.remove(key).content))\n },\n\n // :: (string, any) → OrderedMap\n // Add a new key to the end of the map.\n addToEnd: function(key, value) {\n var content = this.remove(key).content.slice();\n content.push(key, value);\n return new OrderedMap(content)\n },\n\n // :: (string, string, any) → OrderedMap\n // Add a key after the given key. If `place` is not found, the new\n // key is added to the end.\n addBefore: function(place, key, value) {\n var without = this.remove(key), content = without.content.slice();\n var found = without.find(place);\n content.splice(found == -1 ? content.length : found, 0, key, value);\n return new OrderedMap(content)\n },\n\n // :: ((key: string, value: any))\n // Call the given function for each key/value pair in the map, in\n // order.\n forEach: function(f) {\n for (var i = 0; i < this.content.length; i += 2)\n f(this.content[i], this.content[i + 1]);\n },\n\n // :: (union) → OrderedMap\n // Create a new map by prepending the keys in this map that don't\n // appear in `map` before the keys in `map`.\n prepend: function(map) {\n map = OrderedMap.from(map);\n if (!map.size) return this\n return new OrderedMap(map.content.concat(this.subtract(map).content))\n },\n\n // :: (union) → OrderedMap\n // Create a new map by appending the keys in this map that don't\n // appear in `map` after the keys in `map`.\n append: function(map) {\n map = OrderedMap.from(map);\n if (!map.size) return this\n return new OrderedMap(this.subtract(map).content.concat(map.content))\n },\n\n // :: (union) → OrderedMap\n // Create a map containing all the keys in this map that don't\n // appear in `map`.\n subtract: function(map) {\n var result = this;\n map = OrderedMap.from(map);\n for (var i = 0; i < map.content.length; i += 2)\n result = result.remove(map.content[i]);\n return result\n },\n\n // :: () → Object\n // Turn ordered map into a plain object.\n toObject: function() {\n var result = {};\n this.forEach(function(key, value) { result[key] = value; });\n return result\n },\n\n // :: number\n // The amount of keys in this map.\n get size() {\n return this.content.length >> 1\n }\n};\n\n// :: (?union) → OrderedMap\n// Return a map with the given content. If null, create an empty\n// map. If given an ordered map, return that map itself. If given an\n// object, create a map from the object's properties.\nOrderedMap.from = function(value) {\n if (value instanceof OrderedMap) return value\n var content = [];\n if (value) for (var prop in value) content.push(prop, value[prop]);\n return new OrderedMap(content)\n};\n\nexport default OrderedMap;\n","import OrderedMap from 'orderedmap';\n\nfunction findDiffStart(a, b, pos) {\n for (let i = 0;; i++) {\n if (i == a.childCount || i == b.childCount)\n return a.childCount == b.childCount ? null : pos;\n let childA = a.child(i), childB = b.child(i);\n if (childA == childB) {\n pos += childA.nodeSize;\n continue;\n }\n if (!childA.sameMarkup(childB))\n return pos;\n if (childA.isText && childA.text != childB.text) {\n for (let j = 0; childA.text[j] == childB.text[j]; j++)\n pos++;\n return pos;\n }\n if (childA.content.size || childB.content.size) {\n let inner = findDiffStart(childA.content, childB.content, pos + 1);\n if (inner != null)\n return inner;\n }\n pos += childA.nodeSize;\n }\n}\nfunction findDiffEnd(a, b, posA, posB) {\n for (let iA = a.childCount, iB = b.childCount;;) {\n if (iA == 0 || iB == 0)\n return iA == iB ? null : { a: posA, b: posB };\n let childA = a.child(--iA), childB = b.child(--iB), size = childA.nodeSize;\n if (childA == childB) {\n posA -= size;\n posB -= size;\n continue;\n }\n if (!childA.sameMarkup(childB))\n return { a: posA, b: posB };\n if (childA.isText && childA.text != childB.text) {\n let same = 0, minSize = Math.min(childA.text.length, childB.text.length);\n while (same < minSize && childA.text[childA.text.length - same - 1] == childB.text[childB.text.length - same - 1]) {\n same++;\n posA--;\n posB--;\n }\n return { a: posA, b: posB };\n }\n if (childA.content.size || childB.content.size) {\n let inner = findDiffEnd(childA.content, childB.content, posA - 1, posB - 1);\n if (inner)\n return inner;\n }\n posA -= size;\n posB -= size;\n }\n}\n\n/**\nA fragment represents a node's collection of child nodes.\n\nLike nodes, fragments are persistent data structures, and you\nshould not mutate them or their content. Rather, you create new\ninstances whenever needed. The API tries to make this easy.\n*/\nclass Fragment {\n /**\n @internal\n */\n constructor(\n /**\n The child nodes in this fragment.\n */\n content, size) {\n this.content = content;\n this.size = size || 0;\n if (size == null)\n for (let i = 0; i < content.length; i++)\n this.size += content[i].nodeSize;\n }\n /**\n Invoke a callback for all descendant nodes between the given two\n positions (relative to start of this fragment). Doesn't descend\n into a node when the callback returns `false`.\n */\n nodesBetween(from, to, f, nodeStart = 0, parent) {\n for (let i = 0, pos = 0; pos < to; i++) {\n let child = this.content[i], end = pos + child.nodeSize;\n if (end > from && f(child, nodeStart + pos, parent || null, i) !== false && child.content.size) {\n let start = pos + 1;\n child.nodesBetween(Math.max(0, from - start), Math.min(child.content.size, to - start), f, nodeStart + start);\n }\n pos = end;\n }\n }\n /**\n Call the given callback for every descendant node. `pos` will be\n relative to the start of the fragment. The callback may return\n `false` to prevent traversal of a given node's children.\n */\n descendants(f) {\n this.nodesBetween(0, this.size, f);\n }\n /**\n Extract the text between `from` and `to`. See the same method on\n [`Node`](https://prosemirror.net/docs/ref/#model.Node.textBetween).\n */\n textBetween(from, to, blockSeparator, leafText) {\n let text = \"\", first = true;\n this.nodesBetween(from, to, (node, pos) => {\n let nodeText = node.isText ? node.text.slice(Math.max(from, pos) - pos, to - pos)\n : !node.isLeaf ? \"\"\n : leafText ? (typeof leafText === \"function\" ? leafText(node) : leafText)\n : node.type.spec.leafText ? node.type.spec.leafText(node)\n : \"\";\n if (node.isBlock && (node.isLeaf && nodeText || node.isTextblock) && blockSeparator) {\n if (first)\n first = false;\n else\n text += blockSeparator;\n }\n text += nodeText;\n }, 0);\n return text;\n }\n /**\n Create a new fragment containing the combined content of this\n fragment and the other.\n */\n append(other) {\n if (!other.size)\n return this;\n if (!this.size)\n return other;\n let last = this.lastChild, first = other.firstChild, content = this.content.slice(), i = 0;\n if (last.isText && last.sameMarkup(first)) {\n content[content.length - 1] = last.withText(last.text + first.text);\n i = 1;\n }\n for (; i < other.content.length; i++)\n content.push(other.content[i]);\n return new Fragment(content, this.size + other.size);\n }\n /**\n Cut out the sub-fragment between the two given positions.\n */\n cut(from, to = this.size) {\n if (from == 0 && to == this.size)\n return this;\n let result = [], size = 0;\n if (to > from)\n for (let i = 0, pos = 0; pos < to; i++) {\n let child = this.content[i], end = pos + child.nodeSize;\n if (end > from) {\n if (pos < from || end > to) {\n if (child.isText)\n child = child.cut(Math.max(0, from - pos), Math.min(child.text.length, to - pos));\n else\n child = child.cut(Math.max(0, from - pos - 1), Math.min(child.content.size, to - pos - 1));\n }\n result.push(child);\n size += child.nodeSize;\n }\n pos = end;\n }\n return new Fragment(result, size);\n }\n /**\n @internal\n */\n cutByIndex(from, to) {\n if (from == to)\n return Fragment.empty;\n if (from == 0 && to == this.content.length)\n return this;\n return new Fragment(this.content.slice(from, to));\n }\n /**\n Create a new fragment in which the node at the given index is\n replaced by the given node.\n */\n replaceChild(index, node) {\n let current = this.content[index];\n if (current == node)\n return this;\n let copy = this.content.slice();\n let size = this.size + node.nodeSize - current.nodeSize;\n copy[index] = node;\n return new Fragment(copy, size);\n }\n /**\n Create a new fragment by prepending the given node to this\n fragment.\n */\n addToStart(node) {\n return new Fragment([node].concat(this.content), this.size + node.nodeSize);\n }\n /**\n Create a new fragment by appending the given node to this\n fragment.\n */\n addToEnd(node) {\n return new Fragment(this.content.concat(node), this.size + node.nodeSize);\n }\n /**\n Compare this fragment to another one.\n */\n eq(other) {\n if (this.content.length != other.content.length)\n return false;\n for (let i = 0; i < this.content.length; i++)\n if (!this.content[i].eq(other.content[i]))\n return false;\n return true;\n }\n /**\n The first child of the fragment, or `null` if it is empty.\n */\n get firstChild() { return this.content.length ? this.content[0] : null; }\n /**\n The last child of the fragment, or `null` if it is empty.\n */\n get lastChild() { return this.content.length ? this.content[this.content.length - 1] : null; }\n /**\n The number of child nodes in this fragment.\n */\n get childCount() { return this.content.length; }\n /**\n Get the child node at the given index. Raise an error when the\n index is out of range.\n */\n child(index) {\n let found = this.content[index];\n if (!found)\n throw new RangeError(\"Index \" + index + \" out of range for \" + this);\n return found;\n }\n /**\n Get the child node at the given index, if it exists.\n */\n maybeChild(index) {\n return this.content[index] || null;\n }\n /**\n Call `f` for every child node, passing the node, its offset\n into this parent node, and its index.\n */\n forEach(f) {\n for (let i = 0, p = 0; i < this.content.length; i++) {\n let child = this.content[i];\n f(child, p, i);\n p += child.nodeSize;\n }\n }\n /**\n Find the first position at which this fragment and another\n fragment differ, or `null` if they are the same.\n */\n findDiffStart(other, pos = 0) {\n return findDiffStart(this, other, pos);\n }\n /**\n Find the first position, searching from the end, at which this\n fragment and the given fragment differ, or `null` if they are\n the same. Since this position will not be the same in both\n nodes, an object with two separate positions is returned.\n */\n findDiffEnd(other, pos = this.size, otherPos = other.size) {\n return findDiffEnd(this, other, pos, otherPos);\n }\n /**\n Find the index and inner offset corresponding to a given relative\n position in this fragment. The result object will be reused\n (overwritten) the next time the function is called. @internal\n */\n findIndex(pos, round = -1) {\n if (pos == 0)\n return retIndex(0, pos);\n if (pos == this.size)\n return retIndex(this.content.length, pos);\n if (pos > this.size || pos < 0)\n throw new RangeError(`Position ${pos} outside of fragment (${this})`);\n for (let i = 0, curPos = 0;; i++) {\n let cur = this.child(i), end = curPos + cur.nodeSize;\n if (end >= pos) {\n if (end == pos || round > 0)\n return retIndex(i + 1, end);\n return retIndex(i, curPos);\n }\n curPos = end;\n }\n }\n /**\n Return a debugging string that describes this fragment.\n */\n toString() { return \"<\" + this.toStringInner() + \">\"; }\n /**\n @internal\n */\n toStringInner() { return this.content.join(\", \"); }\n /**\n Create a JSON-serializeable representation of this fragment.\n */\n toJSON() {\n return this.content.length ? this.content.map(n => n.toJSON()) : null;\n }\n /**\n Deserialize a fragment from its JSON representation.\n */\n static fromJSON(schema, value) {\n if (!value)\n return Fragment.empty;\n if (!Array.isArray(value))\n throw new RangeError(\"Invalid input for Fragment.fromJSON\");\n return new Fragment(value.map(schema.nodeFromJSON));\n }\n /**\n Build a fragment from an array of nodes. Ensures that adjacent\n text nodes with the same marks are joined together.\n */\n static fromArray(array) {\n if (!array.length)\n return Fragment.empty;\n let joined, size = 0;\n for (let i = 0; i < array.length; i++) {\n let node = array[i];\n size += node.nodeSize;\n if (i && node.isText && array[i - 1].sameMarkup(node)) {\n if (!joined)\n joined = array.slice(0, i);\n joined[joined.length - 1] = node\n .withText(joined[joined.length - 1].text + node.text);\n }\n else if (joined) {\n joined.push(node);\n }\n }\n return new Fragment(joined || array, size);\n }\n /**\n Create a fragment from something that can be interpreted as a\n set of nodes. For `null`, it returns the empty fragment. For a\n fragment, the fragment itself. For a node or array of nodes, a\n fragment containing those nodes.\n */\n static from(nodes) {\n if (!nodes)\n return Fragment.empty;\n if (nodes instanceof Fragment)\n return nodes;\n if (Array.isArray(nodes))\n return this.fromArray(nodes);\n if (nodes.attrs)\n return new Fragment([nodes], nodes.nodeSize);\n throw new RangeError(\"Can not convert \" + nodes + \" to a Fragment\" +\n (nodes.nodesBetween ? \" (looks like multiple versions of prosemirror-model were loaded)\" : \"\"));\n }\n}\n/**\nAn empty fragment. Intended to be reused whenever a node doesn't\ncontain anything (rather than allocating a new empty fragment for\neach leaf node).\n*/\nFragment.empty = new Fragment([], 0);\nconst found = { index: 0, offset: 0 };\nfunction retIndex(index, offset) {\n found.index = index;\n found.offset = offset;\n return found;\n}\n\nfunction compareDeep(a, b) {\n if (a === b)\n return true;\n if (!(a && typeof a == \"object\") ||\n !(b && typeof b == \"object\"))\n return false;\n let array = Array.isArray(a);\n if (Array.isArray(b) != array)\n return false;\n if (array) {\n if (a.length != b.length)\n return false;\n for (let i = 0; i < a.length; i++)\n if (!compareDeep(a[i], b[i]))\n return false;\n }\n else {\n for (let p in a)\n if (!(p in b) || !compareDeep(a[p], b[p]))\n return false;\n for (let p in b)\n if (!(p in a))\n return false;\n }\n return true;\n}\n\n/**\nA mark is a piece of information that can be attached to a node,\nsuch as it being emphasized, in code font, or a link. It has a\ntype and optionally a set of attributes that provide further\ninformation (such as the target of the link). Marks are created\nthrough a `Schema`, which controls which types exist and which\nattributes they have.\n*/\nclass Mark {\n /**\n @internal\n */\n constructor(\n /**\n The type of this mark.\n */\n type, \n /**\n The attributes associated with this mark.\n */\n attrs) {\n this.type = type;\n this.attrs = attrs;\n }\n /**\n Given a set of marks, create a new set which contains this one as\n well, in the right position. If this mark is already in the set,\n the set itself is returned. If any marks that are set to be\n [exclusive](https://prosemirror.net/docs/ref/#model.MarkSpec.excludes) with this mark are present,\n those are replaced by this one.\n */\n addToSet(set) {\n let copy, placed = false;\n for (let i = 0; i < set.length; i++) {\n let other = set[i];\n if (this.eq(other))\n return set;\n if (this.type.excludes(other.type)) {\n if (!copy)\n copy = set.slice(0, i);\n }\n else if (other.type.excludes(this.type)) {\n return set;\n }\n else {\n if (!placed && other.type.rank > this.type.rank) {\n if (!copy)\n copy = set.slice(0, i);\n copy.push(this);\n placed = true;\n }\n if (copy)\n copy.push(other);\n }\n }\n if (!copy)\n copy = set.slice();\n if (!placed)\n copy.push(this);\n return copy;\n }\n /**\n Remove this mark from the given set, returning a new set. If this\n mark is not in the set, the set itself is returned.\n */\n removeFromSet(set) {\n for (let i = 0; i < set.length; i++)\n if (this.eq(set[i]))\n return set.slice(0, i).concat(set.slice(i + 1));\n return set;\n }\n /**\n Test whether this mark is in the given set of marks.\n */\n isInSet(set) {\n for (let i = 0; i < set.length; i++)\n if (this.eq(set[i]))\n return true;\n return false;\n }\n /**\n Test whether this mark has the same type and attributes as\n another mark.\n */\n eq(other) {\n return this == other ||\n (this.type == other.type && compareDeep(this.attrs, other.attrs));\n }\n /**\n Convert this mark to a JSON-serializeable representation.\n */\n toJSON() {\n let obj = { type: this.type.name };\n for (let _ in this.attrs) {\n obj.attrs = this.attrs;\n break;\n }\n return obj;\n }\n /**\n Deserialize a mark from JSON.\n */\n static fromJSON(schema, json) {\n if (!json)\n throw new RangeError(\"Invalid input for Mark.fromJSON\");\n let type = schema.marks[json.type];\n if (!type)\n throw new RangeError(`There is no mark type ${json.type} in this schema`);\n let mark = type.create(json.attrs);\n type.checkAttrs(mark.attrs);\n return mark;\n }\n /**\n Test whether two sets of marks are identical.\n */\n static sameSet(a, b) {\n if (a == b)\n return true;\n if (a.length != b.length)\n return false;\n for (let i = 0; i < a.length; i++)\n if (!a[i].eq(b[i]))\n return false;\n return true;\n }\n /**\n Create a properly sorted mark set from null, a single mark, or an\n unsorted array of marks.\n */\n static setFrom(marks) {\n if (!marks || Array.isArray(marks) && marks.length == 0)\n return Mark.none;\n if (marks instanceof Mark)\n return [marks];\n let copy = marks.slice();\n copy.sort((a, b) => a.type.rank - b.type.rank);\n return copy;\n }\n}\n/**\nThe empty set of marks.\n*/\nMark.none = [];\n\n/**\nError type raised by [`Node.replace`](https://prosemirror.net/docs/ref/#model.Node.replace) when\ngiven an invalid replacement.\n*/\nclass ReplaceError extends Error {\n}\n/*\nReplaceError = function(this: any, message: string) {\n let err = Error.call(this, message)\n ;(err as any).__proto__ = ReplaceError.prototype\n return err\n} as any\n\nReplaceError.prototype = Object.create(Error.prototype)\nReplaceError.prototype.constructor = ReplaceError\nReplaceError.prototype.name = \"ReplaceError\"\n*/\n/**\nA slice represents a piece cut out of a larger document. It\nstores not only a fragment, but also the depth up to which nodes on\nboth side are ‘open’ (cut through).\n*/\nclass Slice {\n /**\n Create a slice. When specifying a non-zero open depth, you must\n make sure that there are nodes of at least that depth at the\n appropriate side of the fragment—i.e. if the fragment is an\n empty paragraph node, `openStart` and `openEnd` can't be greater\n than 1.\n \n It is not necessary for the content of open nodes to conform to\n the schema's content constraints, though it should be a valid\n start/end/middle for such a node, depending on which sides are\n open.\n */\n constructor(\n /**\n The slice's content.\n */\n content, \n /**\n The open depth at the start of the fragment.\n */\n openStart, \n /**\n The open depth at the end.\n */\n openEnd) {\n this.content = content;\n this.openStart = openStart;\n this.openEnd = openEnd;\n }\n /**\n The size this slice would add when inserted into a document.\n */\n get size() {\n return this.content.size - this.openStart - this.openEnd;\n }\n /**\n @internal\n */\n insertAt(pos, fragment) {\n let content = insertInto(this.content, pos + this.openStart, fragment);\n return content && new Slice(content, this.openStart, this.openEnd);\n }\n /**\n @internal\n */\n removeBetween(from, to) {\n return new Slice(removeRange(this.content, from + this.openStart, to + this.openStart), this.openStart, this.openEnd);\n }\n /**\n Tests whether this slice is equal to another slice.\n */\n eq(other) {\n return this.content.eq(other.content) && this.openStart == other.openStart && this.openEnd == other.openEnd;\n }\n /**\n @internal\n */\n toString() {\n return this.content + \"(\" + this.openStart + \",\" + this.openEnd + \")\";\n }\n /**\n Convert a slice to a JSON-serializable representation.\n */\n toJSON() {\n if (!this.content.size)\n return null;\n let json = { content: this.content.toJSON() };\n if (this.openStart > 0)\n json.openStart = this.openStart;\n if (this.openEnd > 0)\n json.openEnd = this.openEnd;\n return json;\n }\n /**\n Deserialize a slice from its JSON representation.\n */\n static fromJSON(schema, json) {\n if (!json)\n return Slice.empty;\n let openStart = json.openStart || 0, openEnd = json.openEnd || 0;\n if (typeof openStart != \"number\" || typeof openEnd != \"number\")\n throw new RangeError(\"Invalid input for Slice.fromJSON\");\n return new Slice(Fragment.fromJSON(schema, json.content), openStart, openEnd);\n }\n /**\n Create a slice from a fragment by taking the maximum possible\n open value on both side of the fragment.\n */\n static maxOpen(fragment, openIsolating = true) {\n let openStart = 0, openEnd = 0;\n for (let n = fragment.firstChild; n && !n.isLeaf && (openIsolating || !n.type.spec.isolating); n = n.firstChild)\n openStart++;\n for (let n = fragment.lastChild; n && !n.isLeaf && (openIsolating || !n.type.spec.isolating); n = n.lastChild)\n openEnd++;\n return new Slice(fragment, openStart, openEnd);\n }\n}\n/**\nThe empty slice.\n*/\nSlice.empty = new Slice(Fragment.empty, 0, 0);\nfunction removeRange(content, from, to) {\n let { index, offset } = content.findIndex(from), child = content.maybeChild(index);\n let { index: indexTo, offset: offsetTo } = content.findIndex(to);\n if (offset == from || child.isText) {\n if (offsetTo != to && !content.child(indexTo).isText)\n throw new RangeError(\"Removing non-flat range\");\n return content.cut(0, from).append(content.cut(to));\n }\n if (index != indexTo)\n throw new RangeError(\"Removing non-flat range\");\n return content.replaceChild(index, child.copy(removeRange(child.content, from - offset - 1, to - offset - 1)));\n}\nfunction insertInto(content, dist, insert, parent) {\n let { index, offset } = content.findIndex(dist), child = content.maybeChild(index);\n if (offset == dist || child.isText) {\n if (parent && !parent.canReplace(index, index, insert))\n return null;\n return content.cut(0, dist).append(insert).append(content.cut(dist));\n }\n let inner = insertInto(child.content, dist - offset - 1, insert);\n return inner && content.replaceChild(index, child.copy(inner));\n}\nfunction replace($from, $to, slice) {\n if (slice.openStart > $from.depth)\n throw new ReplaceError(\"Inserted content deeper than insertion position\");\n if ($from.depth - slice.openStart != $to.depth - slice.openEnd)\n throw new ReplaceError(\"Inconsistent open depths\");\n return replaceOuter($from, $to, slice, 0);\n}\nfunction replaceOuter($from, $to, slice, depth) {\n let index = $from.index(depth), node = $from.node(depth);\n if (index == $to.index(depth) && depth < $from.depth - slice.openStart) {\n let inner = replaceOuter($from, $to, slice, depth + 1);\n return node.copy(node.content.replaceChild(index, inner));\n }\n else if (!slice.content.size) {\n return close(node, replaceTwoWay($from, $to, depth));\n }\n else if (!slice.openStart && !slice.openEnd && $from.depth == depth && $to.depth == depth) { // Simple, flat case\n let parent = $from.parent, content = parent.content;\n return close(parent, content.cut(0, $from.parentOffset).append(slice.content).append(content.cut($to.parentOffset)));\n }\n else {\n let { start, end } = prepareSliceForReplace(slice, $from);\n return close(node, replaceThreeWay($from, start, end, $to, depth));\n }\n}\nfunction checkJoin(main, sub) {\n if (!sub.type.compatibleContent(main.type))\n throw new ReplaceError(\"Cannot join \" + sub.type.name + \" onto \" + main.type.name);\n}\nfunction joinable($before, $after, depth) {\n let node = $before.node(depth);\n checkJoin(node, $after.node(depth));\n return node;\n}\nfunction addNode(child, target) {\n let last = target.length - 1;\n if (last >= 0 && child.isText && child.sameMarkup(target[last]))\n target[last] = child.withText(target[last].text + child.text);\n else\n target.push(child);\n}\nfunction addRange($start, $end, depth, target) {\n let node = ($end || $start).node(depth);\n let startIndex = 0, endIndex = $end ? $end.index(depth) : node.childCount;\n if ($start) {\n startIndex = $start.index(depth);\n if ($start.depth > depth) {\n startIndex++;\n }\n else if ($start.textOffset) {\n addNode($start.nodeAfter, target);\n startIndex++;\n }\n }\n for (let i = startIndex; i < endIndex; i++)\n addNode(node.child(i), target);\n if ($end && $end.depth == depth && $end.textOffset)\n addNode($end.nodeBefore, target);\n}\nfunction close(node, content) {\n node.type.checkContent(content);\n return node.copy(content);\n}\nfunction replaceThreeWay($from, $start, $end, $to, depth) {\n let openStart = $from.depth > depth && joinable($from, $start, depth + 1);\n let openEnd = $to.depth > depth && joinable($end, $to, depth + 1);\n let content = [];\n addRange(null, $from, depth, content);\n if (openStart && openEnd && $start.index(depth) == $end.index(depth)) {\n checkJoin(openStart, openEnd);\n addNode(close(openStart, replaceThreeWay($from, $start, $end, $to, depth + 1)), content);\n }\n else {\n if (openStart)\n addNode(close(openStart, replaceTwoWay($from, $start, depth + 1)), content);\n addRange($start, $end, depth, content);\n if (openEnd)\n addNode(close(openEnd, replaceTwoWay($end, $to, depth + 1)), content);\n }\n addRange($to, null, depth, content);\n return new Fragment(content);\n}\nfunction replaceTwoWay($from, $to, depth) {\n let content = [];\n addRange(null, $from, depth, content);\n if ($from.depth > depth) {\n let type = joinable($from, $to, depth + 1);\n addNode(close(type, replaceTwoWay($from, $to, depth + 1)), content);\n }\n addRange($to, null, depth, content);\n return new Fragment(content);\n}\nfunction prepareSliceForReplace(slice, $along) {\n let extra = $along.depth - slice.openStart, parent = $along.node(extra);\n let node = parent.copy(slice.content);\n for (let i = extra - 1; i >= 0; i--)\n node = $along.node(i).copy(Fragment.from(node));\n return { start: node.resolveNoCache(slice.openStart + extra),\n end: node.resolveNoCache(node.content.size - slice.openEnd - extra) };\n}\n\n/**\nYou can [_resolve_](https://prosemirror.net/docs/ref/#model.Node.resolve) a position to get more\ninformation about it. Objects of this class represent such a\nresolved position, providing various pieces of context\ninformation, and some helper methods.\n\nThroughout this interface, methods that take an optional `depth`\nparameter will interpret undefined as `this.depth` and negative\nnumbers as `this.depth + value`.\n*/\nclass ResolvedPos {\n /**\n @internal\n */\n constructor(\n /**\n The position that was resolved.\n */\n pos, \n /**\n @internal\n */\n path, \n /**\n The offset this position has into its parent node.\n */\n parentOffset) {\n this.pos = pos;\n this.path = path;\n this.parentOffset = parentOffset;\n this.depth = path.length / 3 - 1;\n }\n /**\n @internal\n */\n resolveDepth(val) {\n if (val == null)\n return this.depth;\n if (val < 0)\n return this.depth + val;\n return val;\n }\n /**\n The parent node that the position points into. Note that even if\n a position points into a text node, that node is not considered\n the parent—text nodes are ‘flat’ in this model, and have no content.\n */\n get parent() { return this.node(this.depth); }\n /**\n The root node in which the position was resolved.\n */\n get doc() { return this.node(0); }\n /**\n The ancestor node at the given level. `p.node(p.depth)` is the\n same as `p.parent`.\n */\n node(depth) { return this.path[this.resolveDepth(depth) * 3]; }\n /**\n The index into the ancestor at the given level. If this points\n at the 3rd node in the 2nd paragraph on the top level, for\n example, `p.index(0)` is 1 and `p.index(1)` is 2.\n */\n index(depth) { return this.path[this.resolveDepth(depth) * 3 + 1]; }\n /**\n The index pointing after this position into the ancestor at the\n given level.\n */\n indexAfter(depth) {\n depth = this.resolveDepth(depth);\n return this.index(depth) + (depth == this.depth && !this.textOffset ? 0 : 1);\n }\n /**\n The (absolute) position at the start of the node at the given\n level.\n */\n start(depth) {\n depth = this.resolveDepth(depth);\n return depth == 0 ? 0 : this.path[depth * 3 - 1] + 1;\n }\n /**\n The (absolute) position at the end of the node at the given\n level.\n */\n end(depth) {\n depth = this.resolveDepth(depth);\n return this.start(depth) + this.node(depth).content.size;\n }\n /**\n The (absolute) position directly before the wrapping node at the\n given level, or, when `depth` is `this.depth + 1`, the original\n position.\n */\n before(depth) {\n depth = this.resolveDepth(depth);\n if (!depth)\n throw new RangeError(\"There is no position before the top-level node\");\n return depth == this.depth + 1 ? this.pos : this.path[depth * 3 - 1];\n }\n /**\n The (absolute) position directly after the wrapping node at the\n given level, or the original position when `depth` is `this.depth + 1`.\n */\n after(depth) {\n depth = this.resolveDepth(depth);\n if (!depth)\n throw new RangeError(\"There is no position after the top-level node\");\n return depth == this.depth + 1 ? this.pos : this.path[depth * 3 - 1] + this.path[depth * 3].nodeSize;\n }\n /**\n When this position points into a text node, this returns the\n distance between the position and the start of the text node.\n Will be zero for positions that point between nodes.\n */\n get textOffset() { return this.pos - this.path[this.path.length - 1]; }\n /**\n Get the node directly after the position, if any. If the position\n points into a text node, only the part of that node after the\n position is returned.\n */\n get nodeAfter() {\n let parent = this.parent, index = this.index(this.depth);\n if (index == parent.childCount)\n return null;\n let dOff = this.pos - this.path[this.path.length - 1], child = parent.child(index);\n return dOff ? parent.child(index).cut(dOff) : child;\n }\n /**\n Get the node directly before the position, if any. If the\n position points into a text node, only the part of that node\n before the position is returned.\n */\n get nodeBefore() {\n let index = this.index(this.depth);\n let dOff = this.pos - this.path[this.path.length - 1];\n if (dOff)\n return this.parent.child(index).cut(0, dOff);\n return index == 0 ? null : this.parent.child(index - 1);\n }\n /**\n Get the position at the given index in the parent node at the\n given depth (which defaults to `this.depth`).\n */\n posAtIndex(index, depth) {\n depth = this.resolveDepth(depth);\n let node = this.path[depth * 3], pos = depth == 0 ? 0 : this.path[depth * 3 - 1] + 1;\n for (let i = 0; i < index; i++)\n pos += node.child(i).nodeSize;\n return pos;\n }\n /**\n Get the marks at this position, factoring in the surrounding\n marks' [`inclusive`](https://prosemirror.net/docs/ref/#model.MarkSpec.inclusive) property. If the\n position is at the start of a non-empty node, the marks of the\n node after it (if any) are returned.\n */\n marks() {\n let parent = this.parent, index = this.index();\n // In an empty parent, return the empty array\n if (parent.content.size == 0)\n return Mark.none;\n // When inside a text node, just return the text node's marks\n if (this.textOffset)\n return parent.child(index).marks;\n let main = parent.maybeChild(index - 1), other = parent.maybeChild(index);\n // If the `after` flag is true of there is no node before, make\n // the node after this position the main reference.\n if (!main) {\n let tmp = main;\n main = other;\n other = tmp;\n }\n // Use all marks in the main node, except those that have\n // `inclusive` set to false and are not present in the other node.\n let marks = main.marks;\n for (var i = 0; i < marks.length; i++)\n if (marks[i].type.spec.inclusive === false && (!other || !marks[i].isInSet(other.marks)))\n marks = marks[i--].removeFromSet(marks);\n return marks;\n }\n /**\n Get the marks after the current position, if any, except those\n that are non-inclusive and not present at position `$end`. This\n is mostly useful for getting the set of marks to preserve after a\n deletion. Will return `null` if this position is at the end of\n its parent node or its parent node isn't a textblock (in which\n case no marks should be preserved).\n */\n marksAcross($end) {\n let after = this.parent.maybeChild(this.index());\n if (!after || !after.isInline)\n return null;\n let marks = after.marks, next = $end.parent.maybeChild($end.index());\n for (var i = 0; i < marks.length; i++)\n if (marks[i].type.spec.inclusive === false && (!next || !marks[i].isInSet(next.marks)))\n marks = marks[i--].removeFromSet(marks);\n return marks;\n }\n /**\n The depth up to which this position and the given (non-resolved)\n position share the same parent nodes.\n */\n sharedDepth(pos) {\n for (let depth = this.depth; depth > 0; depth--)\n if (this.start(depth) <= pos && this.end(depth) >= pos)\n return depth;\n return 0;\n }\n /**\n Returns a range based on the place where this position and the\n given position diverge around block content. If both point into\n the same textblock, for example, a range around that textblock\n will be returned. If they point into different blocks, the range\n around those blocks in their shared ancestor is returned. You can\n pass in an optional predicate that will be called with a parent\n node to see if a range into that parent is acceptable.\n */\n blockRange(other = this, pred) {\n if (other.pos < this.pos)\n return other.blockRange(this);\n for (let d = this.depth - (this.parent.inlineContent || this.pos == other.pos ? 1 : 0); d >= 0; d--)\n if (other.pos <= this.end(d) && (!pred || pred(this.node(d))))\n return new NodeRange(this, other, d);\n return null;\n }\n /**\n Query whether the given position shares the same parent node.\n */\n sameParent(other) {\n return this.pos - this.parentOffset == other.pos - other.parentOffset;\n }\n /**\n Return the greater of this and the given position.\n */\n max(other) {\n return other.pos > this.pos ? other : this;\n }\n /**\n Return the smaller of this and the given position.\n */\n min(other) {\n return other.pos < this.pos ? other : this;\n }\n /**\n @internal\n */\n toString() {\n let str = \"\";\n for (let i = 1; i <= this.depth; i++)\n str += (str ? \"/\" : \"\") + this.node(i).type.name + \"_\" + this.index(i - 1);\n return str + \":\" + this.parentOffset;\n }\n /**\n @internal\n */\n static resolve(doc, pos) {\n if (!(pos >= 0 && pos <= doc.content.size))\n throw new RangeError(\"Position \" + pos + \" out of range\");\n let path = [];\n let start = 0, parentOffset = pos;\n for (let node = doc;;) {\n let { index, offset } = node.content.findIndex(parentOffset);\n let rem = parentOffset - offset;\n path.push(node, index, start + offset);\n if (!rem)\n break;\n node = node.child(index);\n if (node.isText)\n break;\n parentOffset = rem - 1;\n start += offset + 1;\n }\n return new ResolvedPos(pos, path, parentOffset);\n }\n /**\n @internal\n */\n static resolveCached(doc, pos) {\n let cache = resolveCache.get(doc);\n if (cache) {\n for (let i = 0; i < cache.elts.length; i++) {\n let elt = cache.elts[i];\n if (elt.pos == pos)\n return elt;\n }\n }\n else {\n resolveCache.set(doc, cache = new ResolveCache);\n }\n let result = cache.elts[cache.i] = ResolvedPos.resolve(doc, pos);\n cache.i = (cache.i + 1) % resolveCacheSize;\n return result;\n }\n}\nclass ResolveCache {\n constructor() {\n this.elts = [];\n this.i = 0;\n }\n}\nconst resolveCacheSize = 12, resolveCache = new WeakMap();\n/**\nRepresents a flat range of content, i.e. one that starts and\nends in the same node.\n*/\nclass NodeRange {\n /**\n Construct a node range. `$from` and `$to` should point into the\n same node until at least the given `depth`, since a node range\n denotes an adjacent set of nodes in a single parent node.\n */\n constructor(\n /**\n A resolved position along the start of the content. May have a\n `depth` greater than this object's `depth` property, since\n these are the positions that were used to compute the range,\n not re-resolved positions directly at its boundaries.\n */\n $from, \n /**\n A position along the end of the content. See\n caveat for [`$from`](https://prosemirror.net/docs/ref/#model.NodeRange.$from).\n */\n $to, \n /**\n The depth of the node that this range points into.\n */\n depth) {\n this.$from = $from;\n this.$to = $to;\n this.depth = depth;\n }\n /**\n The position at the start of the range.\n */\n get start() { return this.$from.before(this.depth + 1); }\n /**\n The position at the end of the range.\n */\n get end() { return this.$to.after(this.depth + 1); }\n /**\n The parent node that the range points into.\n */\n get parent() { return this.$from.node(this.depth); }\n /**\n The start index of the range in the parent node.\n */\n get startIndex() { return this.$from.index(this.depth); }\n /**\n The end index of the range in the parent node.\n */\n get endIndex() { return this.$to.indexAfter(this.depth); }\n}\n\nconst emptyAttrs = Object.create(null);\n/**\nThis class represents a node in the tree that makes up a\nProseMirror document. So a document is an instance of `Node`, with\nchildren that are also instances of `Node`.\n\nNodes are persistent data structures. Instead of changing them, you\ncreate new ones with the content you want. Old ones keep pointing\nat the old document shape. This is made cheaper by sharing\nstructure between the old and new data as much as possible, which a\ntree shape like this (without back pointers) makes easy.\n\n**Do not** directly mutate the properties of a `Node` object. See\n[the guide](/docs/guide/#doc) for more information.\n*/\nclass Node {\n /**\n @internal\n */\n constructor(\n /**\n The type of node that this is.\n */\n type, \n /**\n An object mapping attribute names to values. The kind of\n attributes allowed and required are\n [determined](https://prosemirror.net/docs/ref/#model.NodeSpec.attrs) by the node type.\n */\n attrs, \n // A fragment holding the node's children.\n content, \n /**\n The marks (things like whether it is emphasized or part of a\n link) applied to this node.\n */\n marks = Mark.none) {\n this.type = type;\n this.attrs = attrs;\n this.marks = marks;\n this.content = content || Fragment.empty;\n }\n /**\n The array of this node's child nodes.\n */\n get children() { return this.content.content; }\n /**\n The size of this node, as defined by the integer-based [indexing\n scheme](/docs/guide/#doc.indexing). For text nodes, this is the\n amount of characters. For other leaf nodes, it is one. For\n non-leaf nodes, it is the size of the content plus two (the\n start and end token).\n */\n get nodeSize() { return this.isLeaf ? 1 : 2 + this.content.size; }\n /**\n The number of children that the node has.\n */\n get childCount() { return this.content.childCount; }\n /**\n Get the child node at the given index. Raises an error when the\n index is out of range.\n */\n child(index) { return this.content.child(index); }\n /**\n Get the child node at the given index, if it exists.\n */\n maybeChild(index) { return this.content.maybeChild(index); }\n /**\n Call `f` for every child node, passing the node, its offset\n into this parent node, and its index.\n */\n forEach(f) { this.content.forEach(f); }\n /**\n Invoke a callback for all descendant nodes recursively between\n the given two positions that are relative to start of this\n node's content. The callback is invoked with the node, its\n position relative to the original node (method receiver),\n its parent node, and its child index. When the callback returns\n false for a given node, that node's children will not be\n recursed over. The last parameter can be used to specify a\n starting position to count from.\n */\n nodesBetween(from, to, f, startPos = 0) {\n this.content.nodesBetween(from, to, f, startPos, this);\n }\n /**\n Call the given callback for every descendant node. Doesn't\n descend into a node when the callback returns `false`.\n */\n descendants(f) {\n this.nodesBetween(0, this.content.size, f);\n }\n /**\n Concatenates all the text nodes found in this fragment and its\n children.\n */\n get textContent() {\n return (this.isLeaf && this.type.spec.leafText)\n ? this.type.spec.leafText(this)\n : this.textBetween(0, this.content.size, \"\");\n }\n /**\n Get all text between positions `from` and `to`. When\n `blockSeparator` is given, it will be inserted to separate text\n from different block nodes. If `leafText` is given, it'll be\n inserted for every non-text leaf node encountered, otherwise\n [`leafText`](https://prosemirror.net/docs/ref/#model.NodeSpec^leafText) will be used.\n */\n textBetween(from, to, blockSeparator, leafText) {\n return this.content.textBetween(from, to, blockSeparator, leafText);\n }\n /**\n Returns this node's first child, or `null` if there are no\n children.\n */\n get firstChild() { return this.content.firstChild; }\n /**\n Returns this node's last child, or `null` if there are no\n children.\n */\n get lastChild() { return this.content.lastChild; }\n /**\n Test whether two nodes represent the same piece of document.\n */\n eq(other) {\n return this == other || (this.sameMarkup(other) && this.content.eq(other.content));\n }\n /**\n Compare the markup (type, attributes, and marks) of this node to\n those of another. Returns `true` if both have the same markup.\n */\n sameMarkup(other) {\n return this.hasMarkup(other.type, other.attrs, other.marks);\n }\n /**\n Check whether this node's markup correspond to the given type,\n attributes, and marks.\n */\n hasMarkup(type, attrs, marks) {\n return this.type == type &&\n compareDeep(this.attrs, attrs || type.defaultAttrs || emptyAttrs) &&\n Mark.sameSet(this.marks, marks || Mark.none);\n }\n /**\n Create a new node with the same markup as this node, containing\n the given content (or empty, if no content is given).\n */\n copy(content = null) {\n if (content == this.content)\n return this;\n return new Node(this.type, this.attrs, content, this.marks);\n }\n /**\n Create a copy of this node, with the given set of marks instead\n of the node's own marks.\n */\n mark(marks) {\n return marks == this.marks ? this : new Node(this.type, this.attrs, this.content, marks);\n }\n /**\n Create a copy of this node with only the content between the\n given positions. If `to` is not given, it defaults to the end of\n the node.\n */\n cut(from, to = this.content.size) {\n if (from == 0 && to == this.content.size)\n return this;\n return this.copy(this.content.cut(from, to));\n }\n /**\n Cut out the part of the document between the given positions, and\n return it as a `Slice` object.\n */\n slice(from, to = this.content.size, includeParents = false) {\n if (from == to)\n return Slice.empty;\n let $from = this.resolve(from), $to = this.resolve(to);\n let depth = includeParents ? 0 : $from.sharedDepth(to);\n let start = $from.start(depth), node = $from.node(depth);\n let content = node.content.cut($from.pos - start, $to.pos - start);\n return new Slice(content, $from.depth - depth, $to.depth - depth);\n }\n /**\n Replace the part of the document between the given positions with\n the given slice. The slice must 'fit', meaning its open sides\n must be able to connect to the surrounding content, and its\n content nodes must be valid children for the node they are placed\n into. If any of this is violated, an error of type\n [`ReplaceError`](https://prosemirror.net/docs/ref/#model.ReplaceError) is thrown.\n */\n replace(from, to, slice) {\n return replace(this.resolve(from), this.resolve(to), slice);\n }\n /**\n Find the node directly after the given position.\n */\n nodeAt(pos) {\n for (let node = this;;) {\n let { index, offset } = node.content.findIndex(pos);\n node = node.maybeChild(index);\n if (!node)\n return null;\n if (offset == pos || node.isText)\n return node;\n pos -= offset + 1;\n }\n }\n /**\n Find the (direct) child node after the given offset, if any,\n and return it along with its index and offset relative to this\n node.\n */\n childAfter(pos) {\n let { index, offset } = this.content.findIndex(pos);\n return { node: this.content.maybeChild(index), index, offset };\n }\n /**\n Find the (direct) child node before the given offset, if any,\n and return it along with its index and offset relative to this\n node.\n */\n childBefore(pos) {\n if (pos == 0)\n return { node: null, index: 0, offset: 0 };\n let { index, offset } = this.content.findIndex(pos);\n if (offset < pos)\n return { node: this.content.child(index), index, offset };\n let node = this.content.child(index - 1);\n return { node, index: index - 1, offset: offset - node.nodeSize };\n }\n /**\n Resolve the given position in the document, returning an\n [object](https://prosemirror.net/docs/ref/#model.ResolvedPos) with information about its context.\n */\n resolve(pos) { return ResolvedPos.resolveCached(this, pos); }\n /**\n @internal\n */\n resolveNoCache(pos) { return ResolvedPos.resolve(this, pos); }\n /**\n Test whether a given mark or mark type occurs in this document\n between the two given positions.\n */\n rangeHasMark(from, to, type) {\n let found = false;\n if (to > from)\n this.nodesBetween(from, to, node => {\n if (type.isInSet(node.marks))\n found = true;\n return !found;\n });\n return found;\n }\n /**\n True when this is a block (non-inline node)\n */\n get isBlock() { return this.type.isBlock; }\n /**\n True when this is a textblock node, a block node with inline\n content.\n */\n get isTextblock() { return this.type.isTextblock; }\n /**\n True when this node allows inline content.\n */\n get inlineContent() { return this.type.inlineContent; }\n /**\n True when this is an inline node (a text node or a node that can\n appear among text).\n */\n get isInline() { return this.type.isInline; }\n /**\n True when this is a text node.\n */\n get isText() { return this.type.isText; }\n /**\n True when this is a leaf node.\n */\n get isLeaf() { return this.type.isLeaf; }\n /**\n True when this is an atom, i.e. when it does not have directly\n editable content. This is usually the same as `isLeaf`, but can\n be configured with the [`atom` property](https://prosemirror.net/docs/ref/#model.NodeSpec.atom)\n on a node's spec (typically used when the node is displayed as\n an uneditable [node view](https://prosemirror.net/docs/ref/#view.NodeView)).\n */\n get isAtom() { return this.type.isAtom; }\n /**\n Return a string representation of this node for debugging\n purposes.\n */\n toString() {\n if (this.type.spec.toDebugString)\n return this.type.spec.toDebugString(this);\n let name = this.type.name;\n if (this.content.size)\n name += \"(\" + this.content.toStringInner() + \")\";\n return wrapMarks(this.marks, name);\n }\n /**\n Get the content match in this node at the given index.\n */\n contentMatchAt(index) {\n let match = this.type.contentMatch.matchFragment(this.content, 0, index);\n if (!match)\n throw new Error(\"Called contentMatchAt on a node with invalid content\");\n return match;\n }\n /**\n Test whether replacing the range between `from` and `to` (by\n child index) with the given replacement fragment (which defaults\n to the empty fragment) would leave the node's content valid. You\n can optionally pass `start` and `end` indices into the\n replacement fragment.\n */\n canReplace(from, to, replacement = Fragment.empty, start = 0, end = replacement.childCount) {\n let one = this.contentMatchAt(from).matchFragment(replacement, start, end);\n let two = one && one.matchFragment(this.content, to);\n if (!two || !two.validEnd)\n return false;\n for (let i = start; i < end; i++)\n if (!this.type.allowsMarks(replacement.child(i).marks))\n return false;\n return true;\n }\n /**\n Test whether replacing the range `from` to `to` (by index) with\n a node of the given type would leave the node's content valid.\n */\n canReplaceWith(from, to, type, marks) {\n if (marks && !this.type.allowsMarks(marks))\n return false;\n let start = this.contentMatchAt(from).matchType(type);\n let end = start && start.matchFragment(this.content, to);\n return end ? end.validEnd : false;\n }\n /**\n Test whether the given node's content could be appended to this\n node. If that node is empty, this will only return true if there\n is at least one node type that can appear in both nodes (to avoid\n merging completely incompatible nodes).\n */\n canAppend(other) {\n if (other.content.size)\n return this.canReplace(this.childCount, this.childCount, other.content);\n else\n return this.type.compatibleContent(other.type);\n }\n /**\n Check whether this node and its descendants conform to the\n schema, and raise an exception when they do not.\n */\n check() {\n this.type.checkContent(this.content);\n this.type.checkAttrs(this.attrs);\n let copy = Mark.none;\n for (let i = 0; i < this.marks.length; i++) {\n let mark = this.marks[i];\n mark.type.checkAttrs(mark.attrs);\n copy = mark.addToSet(copy);\n }\n if (!Mark.sameSet(copy, this.marks))\n throw new RangeError(`Invalid collection of marks for node ${this.type.name}: ${this.marks.map(m => m.type.name)}`);\n this.content.forEach(node => node.check());\n }\n /**\n Return a JSON-serializeable representation of this node.\n */\n toJSON() {\n let obj = { type: this.type.name };\n for (let _ in this.attrs) {\n obj.attrs = this.attrs;\n break;\n }\n if (this.content.size)\n obj.content = this.content.toJSON();\n if (this.marks.length)\n obj.marks = this.marks.map(n => n.toJSON());\n return obj;\n }\n /**\n Deserialize a node from its JSON representation.\n */\n static fromJSON(schema, json) {\n if (!json)\n throw new RangeError(\"Invalid input for Node.fromJSON\");\n let marks = undefined;\n if (json.marks) {\n if (!Array.isArray(json.marks))\n throw new RangeError(\"Invalid mark data for Node.fromJSON\");\n marks = json.marks.map(schema.markFromJSON);\n }\n if (json.type == \"text\") {\n if (typeof json.text != \"string\")\n throw new RangeError(\"Invalid text node in JSON\");\n return schema.text(json.text, marks);\n }\n let content = Fragment.fromJSON(schema, json.content);\n let node = schema.nodeType(json.type).create(json.attrs, content, marks);\n node.type.checkAttrs(node.attrs);\n return node;\n }\n}\nNode.prototype.text = undefined;\nclass TextNode extends Node {\n /**\n @internal\n */\n constructor(type, attrs, content, marks) {\n super(type, attrs, null, marks);\n if (!content)\n throw new RangeError(\"Empty text nodes are not allowed\");\n this.text = content;\n }\n toString() {\n if (this.type.spec.toDebugString)\n return this.type.spec.toDebugString(this);\n return wrapMarks(this.marks, JSON.stringify(this.text));\n }\n get textContent() { return this.text; }\n textBetween(from, to) { return this.text.slice(from, to); }\n get nodeSize() { return this.text.length; }\n mark(marks) {\n return marks == this.marks ? this : new TextNode(this.type, this.attrs, this.text, marks);\n }\n withText(text) {\n if (text == this.text)\n return this;\n return new TextNode(this.type, this.attrs, text, this.marks);\n }\n cut(from = 0, to = this.text.length) {\n if (from == 0 && to == this.text.length)\n return this;\n return this.withText(this.text.slice(from, to));\n }\n eq(other) {\n return this.sameMarkup(other) && this.text == other.text;\n }\n toJSON() {\n let base = super.toJSON();\n base.text = this.text;\n return base;\n }\n}\nfunction wrapMarks(marks, str) {\n for (let i = marks.length - 1; i >= 0; i--)\n str = marks[i].type.name + \"(\" + str + \")\";\n return str;\n}\n\n/**\nInstances of this class represent a match state of a node type's\n[content expression](https://prosemirror.net/docs/ref/#model.NodeSpec.content), and can be used to\nfind out whether further content matches here, and whether a given\nposition is a valid end of the node.\n*/\nclass ContentMatch {\n /**\n @internal\n */\n constructor(\n /**\n True when this match state represents a valid end of the node.\n */\n validEnd) {\n this.validEnd = validEnd;\n /**\n @internal\n */\n this.next = [];\n /**\n @internal\n */\n this.wrapCache = [];\n }\n /**\n @internal\n */\n static parse(string, nodeTypes) {\n let stream = new TokenStream(string, nodeTypes);\n if (stream.next == null)\n return ContentMatch.empty;\n let expr = parseExpr(stream);\n if (stream.next)\n stream.err(\"Unexpected trailing text\");\n let match = dfa(nfa(expr));\n checkForDeadEnds(match, stream);\n return match;\n }\n /**\n Match a node type, returning a match after that node if\n successful.\n */\n matchType(type) {\n for (let i = 0; i < this.next.length; i++)\n if (this.next[i].type == type)\n return this.next[i].next;\n return null;\n }\n /**\n Try to match a fragment. Returns the resulting match when\n successful.\n */\n matchFragment(frag, start = 0, end = frag.childCount) {\n let cur = this;\n for (let i = start; cur && i < end; i++)\n cur = cur.matchType(frag.child(i).type);\n return cur;\n }\n /**\n @internal\n */\n get inlineContent() {\n return this.next.length != 0 && this.next[0].type.isInline;\n }\n /**\n Get the first matching node type at this match position that can\n be generated.\n */\n get defaultType() {\n for (let i = 0; i < this.next.length; i++) {\n let { type } = this.next[i];\n if (!(type.isText || type.hasRequiredAttrs()))\n return type;\n }\n return null;\n }\n /**\n @internal\n */\n compatible(other) {\n for (let i = 0; i < this.next.length; i++)\n for (let j = 0; j < other.next.length; j++)\n if (this.next[i].type == other.next[j].type)\n return true;\n return false;\n }\n /**\n Try to match the given fragment, and if that fails, see if it can\n be made to match by inserting nodes in front of it. When\n successful, return a fragment of inserted nodes (which may be\n empty if nothing had to be inserted). When `toEnd` is true, only\n return a fragment if the resulting match goes to the end of the\n content expression.\n */\n fillBefore(after, toEnd = false, startIndex = 0) {\n let seen = [this];\n function search(match, types) {\n let finished = match.matchFragment(after, startIndex);\n if (finished && (!toEnd || finished.validEnd))\n return Fragment.from(types.map(tp => tp.createAndFill()));\n for (let i = 0; i < match.next.length; i++) {\n let { type, next } = match.next[i];\n if (!(type.isText || type.hasRequiredAttrs()) && seen.indexOf(next) == -1) {\n seen.push(next);\n let found = search(next, types.concat(type));\n if (found)\n return found;\n }\n }\n return null;\n }\n return search(this, []);\n }\n /**\n Find a set of wrapping node types that would allow a node of the\n given type to appear at this position. The result may be empty\n (when it fits directly) and will be null when no such wrapping\n exists.\n */\n findWrapping(target) {\n for (let i = 0; i < this.wrapCache.length; i += 2)\n if (this.wrapCache[i] == target)\n return this.wrapCache[i + 1];\n let computed = this.computeWrapping(target);\n this.wrapCache.push(target, computed);\n return computed;\n }\n /**\n @internal\n */\n computeWrapping(target) {\n let seen = Object.create(null), active = [{ match: this, type: null, via: null }];\n while (active.length) {\n let current = active.shift(), match = current.match;\n if (match.matchType(target)) {\n let result = [];\n for (let obj = current; obj.type; obj = obj.via)\n result.push(obj.type);\n return result.reverse();\n }\n for (let i = 0; i < match.next.length; i++) {\n let { type, next } = match.next[i];\n if (!type.isLeaf && !type.hasRequiredAttrs() && !(type.name in seen) && (!current.type || next.validEnd)) {\n active.push({ match: type.contentMatch, type, via: current });\n seen[type.name] = true;\n }\n }\n }\n return null;\n }\n /**\n The number of outgoing edges this node has in the finite\n automaton that describes the content expression.\n */\n get edgeCount() {\n return this.next.length;\n }\n /**\n Get the _n_​th outgoing edge from this node in the finite\n automaton that describes the content expression.\n */\n edge(n) {\n if (n >= this.next.length)\n throw new RangeError(`There's no ${n}th edge in this content match`);\n return this.next[n];\n }\n /**\n @internal\n */\n toString() {\n let seen = [];\n function scan(m) {\n seen.push(m);\n for (let i = 0; i < m.next.length; i++)\n if (seen.indexOf(m.next[i].next) == -1)\n scan(m.next[i].next);\n }\n scan(this);\n return seen.map((m, i) => {\n let out = i + (m.validEnd ? \"*\" : \" \") + \" \";\n for (let i = 0; i < m.next.length; i++)\n out += (i ? \", \" : \"\") + m.next[i].type.name + \"->\" + seen.indexOf(m.next[i].next);\n return out;\n }).join(\"\\n\");\n }\n}\n/**\n@internal\n*/\nContentMatch.empty = new ContentMatch(true);\nclass TokenStream {\n constructor(string, nodeTypes) {\n this.string = string;\n this.nodeTypes = nodeTypes;\n this.inline = null;\n this.pos = 0;\n this.tokens = string.split(/\\s*(?=\\b|\\W|$)/);\n if (this.tokens[this.tokens.length - 1] == \"\")\n this.tokens.pop();\n if (this.tokens[0] == \"\")\n this.tokens.shift();\n }\n get next() { return this.tokens[this.pos]; }\n eat(tok) { return this.next == tok && (this.pos++ || true); }\n err(str) { throw new SyntaxError(str + \" (in content expression '\" + this.string + \"')\"); }\n}\nfunction parseExpr(stream) {\n let exprs = [];\n do {\n exprs.push(parseExprSeq(stream));\n } while (stream.eat(\"|\"));\n return exprs.length == 1 ? exprs[0] : { type: \"choice\", exprs };\n}\nfunction parseExprSeq(stream) {\n let exprs = [];\n do {\n exprs.push(parseExprSubscript(stream));\n } while (stream.next && stream.next != \")\" && stream.next != \"|\");\n return exprs.length == 1 ? exprs[0] : { type: \"seq\", exprs };\n}\nfunction parseExprSubscript(stream) {\n let expr = parseExprAtom(stream);\n for (;;) {\n if (stream.eat(\"+\"))\n expr = { type: \"plus\", expr };\n else if (stream.eat(\"*\"))\n expr = { type: \"star\", expr };\n else if (stream.eat(\"?\"))\n expr = { type: \"opt\", expr };\n else if (stream.eat(\"{\"))\n expr = parseExprRange(stream, expr);\n else\n break;\n }\n return expr;\n}\nfunction parseNum(stream) {\n if (/\\D/.test(stream.next))\n stream.err(\"Expected number, got '\" + stream.next + \"'\");\n let result = Number(stream.next);\n stream.pos++;\n return result;\n}\nfunction parseExprRange(stream, expr) {\n let min = parseNum(stream), max = min;\n if (stream.eat(\",\")) {\n if (stream.next != \"}\")\n max = parseNum(stream);\n else\n max = -1;\n }\n if (!stream.eat(\"}\"))\n stream.err(\"Unclosed braced range\");\n return { type: \"range\", min, max, expr };\n}\nfunction resolveName(stream, name) {\n let types = stream.nodeTypes, type = types[name];\n if (type)\n return [type];\n let result = [];\n for (let typeName in types) {\n let type = types[typeName];\n if (type.isInGroup(name))\n result.push(type);\n }\n if (result.length == 0)\n stream.err(\"No node type or group '\" + name + \"' found\");\n return result;\n}\nfunction parseExprAtom(stream) {\n if (stream.eat(\"(\")) {\n let expr = parseExpr(stream);\n if (!stream.eat(\")\"))\n stream.err(\"Missing closing paren\");\n return expr;\n }\n else if (!/\\W/.test(stream.next)) {\n let exprs = resolveName(stream, stream.next).map(type => {\n if (stream.inline == null)\n stream.inline = type.isInline;\n else if (stream.inline != type.isInline)\n stream.err(\"Mixing inline and block content\");\n return { type: \"name\", value: type };\n });\n stream.pos++;\n return exprs.length == 1 ? exprs[0] : { type: \"choice\", exprs };\n }\n else {\n stream.err(\"Unexpected token '\" + stream.next + \"'\");\n }\n}\n// Construct an NFA from an expression as returned by the parser. The\n// NFA is represented as an array of states, which are themselves\n// arrays of edges, which are `{term, to}` objects. The first state is\n// the entry state and the last node is the success state.\n//\n// Note that unlike typical NFAs, the edge ordering in this one is\n// significant, in that it is used to contruct filler content when\n// necessary.\nfunction nfa(expr) {\n let nfa = [[]];\n connect(compile(expr, 0), node());\n return nfa;\n function node() { return nfa.push([]) - 1; }\n function edge(from, to, term) {\n let edge = { term, to };\n nfa[from].push(edge);\n return edge;\n }\n function connect(edges, to) {\n edges.forEach(edge => edge.to = to);\n }\n function compile(expr, from) {\n if (expr.type == \"choice\") {\n return expr.exprs.reduce((out, expr) => out.concat(compile(expr, from)), []);\n }\n else if (expr.type == \"seq\") {\n for (let i = 0;; i++) {\n let next = compile(expr.exprs[i], from);\n if (i == expr.exprs.length - 1)\n return next;\n connect(next, from = node());\n }\n }\n else if (expr.type == \"star\") {\n let loop = node();\n edge(from, loop);\n connect(compile(expr.expr, loop), loop);\n return [edge(loop)];\n }\n else if (expr.type == \"plus\") {\n let loop = node();\n connect(compile(expr.expr, from), loop);\n connect(compile(expr.expr, loop), loop);\n return [edge(loop)];\n }\n else if (expr.type == \"opt\") {\n return [edge(from)].concat(compile(expr.expr, from));\n }\n else if (expr.type == \"range\") {\n let cur = from;\n for (let i = 0; i < expr.min; i++) {\n let next = node();\n connect(compile(expr.expr, cur), next);\n cur = next;\n }\n if (expr.max == -1) {\n connect(compile(expr.expr, cur), cur);\n }\n else {\n for (let i = expr.min; i < expr.max; i++) {\n let next = node();\n edge(cur, next);\n connect(compile(expr.expr, cur), next);\n cur = next;\n }\n }\n return [edge(cur)];\n }\n else if (expr.type == \"name\") {\n return [edge(from, undefined, expr.value)];\n }\n else {\n throw new Error(\"Unknown expr type\");\n }\n }\n}\nfunction cmp(a, b) { return b - a; }\n// Get the set of nodes reachable by null edges from `node`. Omit\n// nodes with only a single null-out-edge, since they may lead to\n// needless duplicated nodes.\nfunction nullFrom(nfa, node) {\n let result = [];\n scan(node);\n return result.sort(cmp);\n function scan(node) {\n let edges = nfa[node];\n if (edges.length == 1 && !edges[0].term)\n return scan(edges[0].to);\n result.push(node);\n for (let i = 0; i < edges.length; i++) {\n let { term, to } = edges[i];\n if (!term && result.indexOf(to) == -1)\n scan(to);\n }\n }\n}\n// Compiles an NFA as produced by `nfa` into a DFA, modeled as a set\n// of state objects (`ContentMatch` instances) with transitions\n// between them.\nfunction dfa(nfa) {\n let labeled = Object.create(null);\n return explore(nullFrom(nfa, 0));\n function explore(states) {\n let out = [];\n states.forEach(node => {\n nfa[node].forEach(({ term, to }) => {\n if (!term)\n return;\n let set;\n for (let i = 0; i < out.length; i++)\n if (out[i][0] == term)\n set = out[i][1];\n nullFrom(nfa, to).forEach(node => {\n if (!set)\n out.push([term, set = []]);\n if (set.indexOf(node) == -1)\n set.push(node);\n });\n });\n });\n let state = labeled[states.join(\",\")] = new ContentMatch(states.indexOf(nfa.length - 1) > -1);\n for (let i = 0; i < out.length; i++) {\n let states = out[i][1].sort(cmp);\n state.next.push({ type: out[i][0], next: labeled[states.join(\",\")] || explore(states) });\n }\n return state;\n }\n}\nfunction checkForDeadEnds(match, stream) {\n for (let i = 0, work = [match]; i < work.length; i++) {\n let state = work[i], dead = !state.validEnd, nodes = [];\n for (let j = 0; j < state.next.length; j++) {\n let { type, next } = state.next[j];\n nodes.push(type.name);\n if (dead && !(type.isText || type.hasRequiredAttrs()))\n dead = false;\n if (work.indexOf(next) == -1)\n work.push(next);\n }\n if (dead)\n stream.err(\"Only non-generatable nodes (\" + nodes.join(\", \") + \") in a required position (see https://prosemirror.net/docs/guide/#generatable)\");\n }\n}\n\n// For node types where all attrs have a default value (or which don't\n// have any attributes), build up a single reusable default attribute\n// object, and use it for all nodes that don't specify specific\n// attributes.\nfunction defaultAttrs(attrs) {\n let defaults = Object.create(null);\n for (let attrName in attrs) {\n let attr = attrs[attrName];\n if (!attr.hasDefault)\n return null;\n defaults[attrName] = attr.default;\n }\n return defaults;\n}\nfunction computeAttrs(attrs, value) {\n let built = Object.create(null);\n for (let name in attrs) {\n let given = value && value[name];\n if (given === undefined) {\n let attr = attrs[name];\n if (attr.hasDefault)\n given = attr.default;\n else\n throw new RangeError(\"No value supplied for attribute \" + name);\n }\n built[name] = given;\n }\n return built;\n}\nfunction checkAttrs(attrs, values, type, name) {\n for (let name in values)\n if (!(name in attrs))\n throw new RangeError(`Unsupported attribute ${name} for ${type} of type ${name}`);\n for (let name in attrs) {\n let attr = attrs[name];\n if (attr.validate)\n attr.validate(values[name]);\n }\n}\nfunction initAttrs(typeName, attrs) {\n let result = Object.create(null);\n if (attrs)\n for (let name in attrs)\n result[name] = new Attribute(typeName, name, attrs[name]);\n return result;\n}\n/**\nNode types are objects allocated once per `Schema` and used to\n[tag](https://prosemirror.net/docs/ref/#model.Node.type) `Node` instances. They contain information\nabout the node type, such as its name and what kind of node it\nrepresents.\n*/\nclass NodeType {\n /**\n @internal\n */\n constructor(\n /**\n The name the node type has in this schema.\n */\n name, \n /**\n A link back to the `Schema` the node type belongs to.\n */\n schema, \n /**\n The spec that this type is based on\n */\n spec) {\n this.name = name;\n this.schema = schema;\n this.spec = spec;\n /**\n The set of marks allowed in this node. `null` means all marks\n are allowed.\n */\n this.markSet = null;\n this.groups = spec.group ? spec.group.split(\" \") : [];\n this.attrs = initAttrs(name, spec.attrs);\n this.defaultAttrs = defaultAttrs(this.attrs);\n this.contentMatch = null;\n this.inlineContent = null;\n this.isBlock = !(spec.inline || name == \"text\");\n this.isText = name == \"text\";\n }\n /**\n True if this is an inline type.\n */\n get isInline() { return !this.isBlock; }\n /**\n True if this is a textblock type, a block that contains inline\n content.\n */\n get isTextblock() { return this.isBlock && this.inlineContent; }\n /**\n True for node types that allow no content.\n */\n get isLeaf() { return this.contentMatch == ContentMatch.empty; }\n /**\n True when this node is an atom, i.e. when it does not have\n directly editable content.\n */\n get isAtom() { return this.isLeaf || !!this.spec.atom; }\n /**\n Return true when this node type is part of the given\n [group](https://prosemirror.net/docs/ref/#model.NodeSpec.group).\n */\n isInGroup(group) {\n return this.groups.indexOf(group) > -1;\n }\n /**\n The node type's [whitespace](https://prosemirror.net/docs/ref/#model.NodeSpec.whitespace) option.\n */\n get whitespace() {\n return this.spec.whitespace || (this.spec.code ? \"pre\" : \"normal\");\n }\n /**\n Tells you whether this node type has any required attributes.\n */\n hasRequiredAttrs() {\n for (let n in this.attrs)\n if (this.attrs[n].isRequired)\n return true;\n return false;\n }\n /**\n Indicates whether this node allows some of the same content as\n the given node type.\n */\n compatibleContent(other) {\n return this == other || this.contentMatch.compatible(other.contentMatch);\n }\n /**\n @internal\n */\n computeAttrs(attrs) {\n if (!attrs && this.defaultAttrs)\n return this.defaultAttrs;\n else\n return computeAttrs(this.attrs, attrs);\n }\n /**\n Create a `Node` of this type. The given attributes are\n checked and defaulted (you can pass `null` to use the type's\n defaults entirely, if no required attributes exist). `content`\n may be a `Fragment`, a node, an array of nodes, or\n `null`. Similarly `marks` may be `null` to default to the empty\n set of marks.\n */\n create(attrs = null, content, marks) {\n if (this.isText)\n throw new Error(\"NodeType.create can't construct text nodes\");\n return new Node(this, this.computeAttrs(attrs), Fragment.from(content), Mark.setFrom(marks));\n }\n /**\n Like [`create`](https://prosemirror.net/docs/ref/#model.NodeType.create), but check the given content\n against the node type's content restrictions, and throw an error\n if it doesn't match.\n */\n createChecked(attrs = null, content, marks) {\n content = Fragment.from(content);\n this.checkContent(content);\n return new Node(this, this.computeAttrs(attrs), content, Mark.setFrom(marks));\n }\n /**\n Like [`create`](https://prosemirror.net/docs/ref/#model.NodeType.create), but see if it is\n necessary to add nodes to the start or end of the given fragment\n to make it fit the node. If no fitting wrapping can be found,\n return null. Note that, due to the fact that required nodes can\n always be created, this will always succeed if you pass null or\n `Fragment.empty` as content.\n */\n createAndFill(attrs = null, content, marks) {\n attrs = this.computeAttrs(attrs);\n content = Fragment.from(content);\n if (content.size) {\n let before = this.contentMatch.fillBefore(content);\n if (!before)\n return null;\n content = before.append(content);\n }\n let matched = this.contentMatch.matchFragment(content);\n let after = matched && matched.fillBefore(Fragment.empty, true);\n if (!after)\n return null;\n return new Node(this, attrs, content.append(after), Mark.setFrom(marks));\n }\n /**\n Returns true if the given fragment is valid content for this node\n type.\n */\n validContent(content) {\n let result = this.contentMatch.matchFragment(content);\n if (!result || !result.validEnd)\n return false;\n for (let i = 0; i < content.childCount; i++)\n if (!this.allowsMarks(content.child(i).marks))\n return false;\n return true;\n }\n /**\n Throws a RangeError if the given fragment is not valid content for this\n node type.\n @internal\n */\n checkContent(content) {\n if (!this.validContent(content))\n throw new RangeError(`Invalid content for node ${this.name}: ${content.toString().slice(0, 50)}`);\n }\n /**\n @internal\n */\n checkAttrs(attrs) {\n checkAttrs(this.attrs, attrs, \"node\", this.name);\n }\n /**\n Check whether the given mark type is allowed in this node.\n */\n allowsMarkType(markType) {\n return this.markSet == null || this.markSet.indexOf(markType) > -1;\n }\n /**\n Test whether the given set of marks are allowed in this node.\n */\n allowsMarks(marks) {\n if (this.markSet == null)\n return true;\n for (let i = 0; i < marks.length; i++)\n if (!this.allowsMarkType(marks[i].type))\n return false;\n return true;\n }\n /**\n Removes the marks that are not allowed in this node from the given set.\n */\n allowedMarks(marks) {\n if (this.markSet == null)\n return marks;\n let copy;\n for (let i = 0; i < marks.length; i++) {\n if (!this.allowsMarkType(marks[i].type)) {\n if (!copy)\n copy = marks.slice(0, i);\n }\n else if (copy) {\n copy.push(marks[i]);\n }\n }\n return !copy ? marks : copy.length ? copy : Mark.none;\n }\n /**\n @internal\n */\n static compile(nodes, schema) {\n let result = Object.create(null);\n nodes.forEach((name, spec) => result[name] = new NodeType(name, schema, spec));\n let topType = schema.spec.topNode || \"doc\";\n if (!result[topType])\n throw new RangeError(\"Schema is missing its top node type ('\" + topType + \"')\");\n if (!result.text)\n throw new RangeError(\"Every schema needs a 'text' type\");\n for (let _ in result.text.attrs)\n throw new RangeError(\"The text node type should not have attributes\");\n return result;\n }\n}\nfunction validateType(typeName, attrName, type) {\n let types = type.split(\"|\");\n return (value) => {\n let name = value === null ? \"null\" : typeof value;\n if (types.indexOf(name) < 0)\n throw new RangeError(`Expected value of type ${types} for attribute ${attrName} on type ${typeName}, got ${name}`);\n };\n}\n// Attribute descriptors\nclass Attribute {\n constructor(typeName, attrName, options) {\n this.hasDefault = Object.prototype.hasOwnProperty.call(options, \"default\");\n this.default = options.default;\n this.validate = typeof options.validate == \"string\" ? validateType(typeName, attrName, options.validate) : options.validate;\n }\n get isRequired() {\n return !this.hasDefault;\n }\n}\n// Marks\n/**\nLike nodes, marks (which are associated with nodes to signify\nthings like emphasis or being part of a link) are\n[tagged](https://prosemirror.net/docs/ref/#model.Mark.type) with type objects, which are\ninstantiated once per `Schema`.\n*/\nclass MarkType {\n /**\n @internal\n */\n constructor(\n /**\n The name of the mark type.\n */\n name, \n /**\n @internal\n */\n rank, \n /**\n The schema that this mark type instance is part of.\n */\n schema, \n /**\n The spec on which the type is based.\n */\n spec) {\n this.name = name;\n this.rank = rank;\n this.schema = schema;\n this.spec = spec;\n this.attrs = initAttrs(name, spec.attrs);\n this.excluded = null;\n let defaults = defaultAttrs(this.attrs);\n this.instance = defaults ? new Mark(this, defaults) : null;\n }\n /**\n Create a mark of this type. `attrs` may be `null` or an object\n containing only some of the mark's attributes. The others, if\n they have defaults, will be added.\n */\n create(attrs = null) {\n if (!attrs && this.instance)\n return this.instance;\n return new Mark(this, computeAttrs(this.attrs, attrs));\n }\n /**\n @internal\n */\n static compile(marks, schema) {\n let result = Object.create(null), rank = 0;\n marks.forEach((name, spec) => result[name] = new MarkType(name, rank++, schema, spec));\n return result;\n }\n /**\n When there is a mark of this type in the given set, a new set\n without it is returned. Otherwise, the input set is returned.\n */\n removeFromSet(set) {\n for (var i = 0; i < set.length; i++)\n if (set[i].type == this) {\n set = set.slice(0, i).concat(set.slice(i + 1));\n i--;\n }\n return set;\n }\n /**\n Tests whether there is a mark of this type in the given set.\n */\n isInSet(set) {\n for (let i = 0; i < set.length; i++)\n if (set[i].type == this)\n return set[i];\n }\n /**\n @internal\n */\n checkAttrs(attrs) {\n checkAttrs(this.attrs, attrs, \"mark\", this.name);\n }\n /**\n Queries whether a given mark type is\n [excluded](https://prosemirror.net/docs/ref/#model.MarkSpec.excludes) by this one.\n */\n excludes(other) {\n return this.excluded.indexOf(other) > -1;\n }\n}\n/**\nA document schema. Holds [node](https://prosemirror.net/docs/ref/#model.NodeType) and [mark\ntype](https://prosemirror.net/docs/ref/#model.MarkType) objects for the nodes and marks that may\noccur in conforming documents, and provides functionality for\ncreating and deserializing such documents.\n\nWhen given, the type parameters provide the names of the nodes and\nmarks in this schema.\n*/\nclass Schema {\n /**\n Construct a schema from a schema [specification](https://prosemirror.net/docs/ref/#model.SchemaSpec).\n */\n constructor(spec) {\n /**\n The [linebreak\n replacement](https://prosemirror.net/docs/ref/#model.NodeSpec.linebreakReplacement) node defined\n in this schema, if any.\n */\n this.linebreakReplacement = null;\n /**\n An object for storing whatever values modules may want to\n compute and cache per schema. (If you want to store something\n in it, try to use property names unlikely to clash.)\n */\n this.cached = Object.create(null);\n let instanceSpec = this.spec = {};\n for (let prop in spec)\n instanceSpec[prop] = spec[prop];\n instanceSpec.nodes = OrderedMap.from(spec.nodes),\n instanceSpec.marks = OrderedMap.from(spec.marks || {}),\n this.nodes = NodeType.compile(this.spec.nodes, this);\n this.marks = MarkType.compile(this.spec.marks, this);\n let contentExprCache = Object.create(null);\n for (let prop in this.nodes) {\n if (prop in this.marks)\n throw new RangeError(prop + \" can not be both a node and a mark\");\n let type = this.nodes[prop], contentExpr = type.spec.content || \"\", markExpr = type.spec.marks;\n type.contentMatch = contentExprCache[contentExpr] ||\n (contentExprCache[contentExpr] = ContentMatch.parse(contentExpr, this.nodes));\n type.inlineContent = type.contentMatch.inlineContent;\n if (type.spec.linebreakReplacement) {\n if (this.linebreakReplacement)\n throw new RangeError(\"Multiple linebreak nodes defined\");\n if (!type.isInline || !type.isLeaf)\n throw new RangeError(\"Linebreak replacement nodes must be inline leaf nodes\");\n this.linebreakReplacement = type;\n }\n type.markSet = markExpr == \"_\" ? null :\n markExpr ? gatherMarks(this, markExpr.split(\" \")) :\n markExpr == \"\" || !type.inlineContent ? [] : null;\n }\n for (let prop in this.marks) {\n let type = this.marks[prop], excl = type.spec.excludes;\n type.excluded = excl == null ? [type] : excl == \"\" ? [] : gatherMarks(this, excl.split(\" \"));\n }\n this.nodeFromJSON = this.nodeFromJSON.bind(this);\n this.markFromJSON = this.markFromJSON.bind(this);\n this.topNodeType = this.nodes[this.spec.topNode || \"doc\"];\n this.cached.wrappings = Object.create(null);\n }\n /**\n Create a node in this schema. The `type` may be a string or a\n `NodeType` instance. Attributes will be extended with defaults,\n `content` may be a `Fragment`, `null`, a `Node`, or an array of\n nodes.\n */\n node(type, attrs = null, content, marks) {\n if (typeof type == \"string\")\n type = this.nodeType(type);\n else if (!(type instanceof NodeType))\n throw new RangeError(\"Invalid node type: \" + type);\n else if (type.schema != this)\n throw new RangeError(\"Node type from different schema used (\" + type.name + \")\");\n return type.createChecked(attrs, content, marks);\n }\n /**\n Create a text node in the schema. Empty text nodes are not\n allowed.\n */\n text(text, marks) {\n let type = this.nodes.text;\n return new TextNode(type, type.defaultAttrs, text, Mark.setFrom(marks));\n }\n /**\n Create a mark with the given type and attributes.\n */\n mark(type, attrs) {\n if (typeof type == \"string\")\n type = this.marks[type];\n return type.create(attrs);\n }\n /**\n Deserialize a node from its JSON representation. This method is\n bound.\n */\n nodeFromJSON(json) {\n return Node.fromJSON(this, json);\n }\n /**\n Deserialize a mark from its JSON representation. This method is\n bound.\n */\n markFromJSON(json) {\n return Mark.fromJSON(this, json);\n }\n /**\n @internal\n */\n nodeType(name) {\n let found = this.nodes[name];\n if (!found)\n throw new RangeError(\"Unknown node type: \" + name);\n return found;\n }\n}\nfunction gatherMarks(schema, marks) {\n let found = [];\n for (let i = 0; i < marks.length; i++) {\n let name = marks[i], mark = schema.marks[name], ok = mark;\n if (mark) {\n found.push(mark);\n }\n else {\n for (let prop in schema.marks) {\n let mark = schema.marks[prop];\n if (name == \"_\" || (mark.spec.group && mark.spec.group.split(\" \").indexOf(name) > -1))\n found.push(ok = mark);\n }\n }\n if (!ok)\n throw new SyntaxError(\"Unknown mark type: '\" + marks[i] + \"'\");\n }\n return found;\n}\n\nfunction isTagRule(rule) { return rule.tag != null; }\nfunction isStyleRule(rule) { return rule.style != null; }\n/**\nA DOM parser represents a strategy for parsing DOM content into a\nProseMirror document conforming to a given schema. Its behavior is\ndefined by an array of [rules](https://prosemirror.net/docs/ref/#model.ParseRule).\n*/\nclass DOMParser {\n /**\n Create a parser that targets the given schema, using the given\n parsing rules.\n */\n constructor(\n /**\n The schema into which the parser parses.\n */\n schema, \n /**\n The set of [parse rules](https://prosemirror.net/docs/ref/#model.ParseRule) that the parser\n uses, in order of precedence.\n */\n rules) {\n this.schema = schema;\n this.rules = rules;\n /**\n @internal\n */\n this.tags = [];\n /**\n @internal\n */\n this.styles = [];\n let matchedStyles = this.matchedStyles = [];\n rules.forEach(rule => {\n if (isTagRule(rule)) {\n this.tags.push(rule);\n }\n else if (isStyleRule(rule)) {\n let prop = /[^=]*/.exec(rule.style)[0];\n if (matchedStyles.indexOf(prop) < 0)\n matchedStyles.push(prop);\n this.styles.push(rule);\n }\n });\n // Only normalize list elements when lists in the schema can't directly contain themselves\n this.normalizeLists = !this.tags.some(r => {\n if (!/^(ul|ol)\\b/.test(r.tag) || !r.node)\n return false;\n let node = schema.nodes[r.node];\n return node.contentMatch.matchType(node);\n });\n }\n /**\n Parse a document from the content of a DOM node.\n */\n parse(dom, options = {}) {\n let context = new ParseContext(this, options, false);\n context.addAll(dom, Mark.none, options.from, options.to);\n return context.finish();\n }\n /**\n Parses the content of the given DOM node, like\n [`parse`](https://prosemirror.net/docs/ref/#model.DOMParser.parse), and takes the same set of\n options. But unlike that method, which produces a whole node,\n this one returns a slice that is open at the sides, meaning that\n the schema constraints aren't applied to the start of nodes to\n the left of the input and the end of nodes at the end.\n */\n parseSlice(dom, options = {}) {\n let context = new ParseContext(this, options, true);\n context.addAll(dom, Mark.none, options.from, options.to);\n return Slice.maxOpen(context.finish());\n }\n /**\n @internal\n */\n matchTag(dom, context, after) {\n for (let i = after ? this.tags.indexOf(after) + 1 : 0; i < this.tags.length; i++) {\n let rule = this.tags[i];\n if (matches(dom, rule.tag) &&\n (rule.namespace === undefined || dom.namespaceURI == rule.namespace) &&\n (!rule.context || context.matchesContext(rule.context))) {\n if (rule.getAttrs) {\n let result = rule.getAttrs(dom);\n if (result === false)\n continue;\n rule.attrs = result || undefined;\n }\n return rule;\n }\n }\n }\n /**\n @internal\n */\n matchStyle(prop, value, context, after) {\n for (let i = after ? this.styles.indexOf(after) + 1 : 0; i < this.styles.length; i++) {\n let rule = this.styles[i], style = rule.style;\n if (style.indexOf(prop) != 0 ||\n rule.context && !context.matchesContext(rule.context) ||\n // Test that the style string either precisely matches the prop,\n // or has an '=' sign after the prop, followed by the given\n // value.\n style.length > prop.length &&\n (style.charCodeAt(prop.length) != 61 || style.slice(prop.length + 1) != value))\n continue;\n if (rule.getAttrs) {\n let result = rule.getAttrs(value);\n if (result === false)\n continue;\n rule.attrs = result || undefined;\n }\n return rule;\n }\n }\n /**\n @internal\n */\n static schemaRules(schema) {\n let result = [];\n function insert(rule) {\n let priority = rule.priority == null ? 50 : rule.priority, i = 0;\n for (; i < result.length; i++) {\n let next = result[i], nextPriority = next.priority == null ? 50 : next.priority;\n if (nextPriority < priority)\n break;\n }\n result.splice(i, 0, rule);\n }\n for (let name in schema.marks) {\n let rules = schema.marks[name].spec.parseDOM;\n if (rules)\n rules.forEach(rule => {\n insert(rule = copy(rule));\n if (!(rule.mark || rule.ignore || rule.clearMark))\n rule.mark = name;\n });\n }\n for (let name in schema.nodes) {\n let rules = schema.nodes[name].spec.parseDOM;\n if (rules)\n rules.forEach(rule => {\n insert(rule = copy(rule));\n if (!(rule.node || rule.ignore || rule.mark))\n rule.node = name;\n });\n }\n return result;\n }\n /**\n Construct a DOM parser using the parsing rules listed in a\n schema's [node specs](https://prosemirror.net/docs/ref/#model.NodeSpec.parseDOM), reordered by\n [priority](https://prosemirror.net/docs/ref/#model.ParseRule.priority).\n */\n static fromSchema(schema) {\n return schema.cached.domParser ||\n (schema.cached.domParser = new DOMParser(schema, DOMParser.schemaRules(schema)));\n }\n}\nconst blockTags = {\n address: true, article: true, aside: true, blockquote: true, canvas: true,\n dd: true, div: true, dl: true, fieldset: true, figcaption: true, figure: true,\n footer: true, form: true, h1: true, h2: true, h3: true, h4: true, h5: true,\n h6: true, header: true, hgroup: true, hr: true, li: true, noscript: true, ol: true,\n output: true, p: true, pre: true, section: true, table: true, tfoot: true, ul: true\n};\nconst ignoreTags = {\n head: true, noscript: true, object: true, script: true, style: true, title: true\n};\nconst listTags = { ol: true, ul: true };\n// Using a bitfield for node context options\nconst OPT_PRESERVE_WS = 1, OPT_PRESERVE_WS_FULL = 2, OPT_OPEN_LEFT = 4;\nfunction wsOptionsFor(type, preserveWhitespace, base) {\n if (preserveWhitespace != null)\n return (preserveWhitespace ? OPT_PRESERVE_WS : 0) |\n (preserveWhitespace === \"full\" ? OPT_PRESERVE_WS_FULL : 0);\n return type && type.whitespace == \"pre\" ? OPT_PRESERVE_WS | OPT_PRESERVE_WS_FULL : base & ~OPT_OPEN_LEFT;\n}\nclass NodeContext {\n constructor(type, attrs, marks, solid, match, options) {\n this.type = type;\n this.attrs = attrs;\n this.marks = marks;\n this.solid = solid;\n this.options = options;\n this.content = [];\n // Marks applied to the node's children\n this.activeMarks = Mark.none;\n this.match = match || (options & OPT_OPEN_LEFT ? null : type.contentMatch);\n }\n findWrapping(node) {\n if (!this.match) {\n if (!this.type)\n return [];\n let fill = this.type.contentMatch.fillBefore(Fragment.from(node));\n if (fill) {\n this.match = this.type.contentMatch.matchFragment(fill);\n }\n else {\n let start = this.type.contentMatch, wrap;\n if (wrap = start.findWrapping(node.type)) {\n this.match = start;\n return wrap;\n }\n else {\n return null;\n }\n }\n }\n return this.match.findWrapping(node.type);\n }\n finish(openEnd) {\n if (!(this.options & OPT_PRESERVE_WS)) { // Strip trailing whitespace\n let last = this.content[this.content.length - 1], m;\n if (last && last.isText && (m = /[ \\t\\r\\n\\u000c]+$/.exec(last.text))) {\n let text = last;\n if (last.text.length == m[0].length)\n this.content.pop();\n else\n this.content[this.content.length - 1] = text.withText(text.text.slice(0, text.text.length - m[0].length));\n }\n }\n let content = Fragment.from(this.content);\n if (!openEnd && this.match)\n content = content.append(this.match.fillBefore(Fragment.empty, true));\n return this.type ? this.type.create(this.attrs, content, this.marks) : content;\n }\n inlineContext(node) {\n if (this.type)\n return this.type.inlineContent;\n if (this.content.length)\n return this.content[0].isInline;\n return node.parentNode && !blockTags.hasOwnProperty(node.parentNode.nodeName.toLowerCase());\n }\n}\nclass ParseContext {\n constructor(\n // The parser we are using.\n parser, \n // The options passed to this parse.\n options, isOpen) {\n this.parser = parser;\n this.options = options;\n this.isOpen = isOpen;\n this.open = 0;\n this.localPreserveWS = false;\n let topNode = options.topNode, topContext;\n let topOptions = wsOptionsFor(null, options.preserveWhitespace, 0) | (isOpen ? OPT_OPEN_LEFT : 0);\n if (topNode)\n topContext = new NodeContext(topNode.type, topNode.attrs, Mark.none, true, options.topMatch || topNode.type.contentMatch, topOptions);\n else if (isOpen)\n topContext = new NodeContext(null, null, Mark.none, true, null, topOptions);\n else\n topContext = new NodeContext(parser.schema.topNodeType, null, Mark.none, true, null, topOptions);\n this.nodes = [topContext];\n this.find = options.findPositions;\n this.needsBlock = false;\n }\n get top() {\n return this.nodes[this.open];\n }\n // Add a DOM node to the content. Text is inserted as text node,\n // otherwise, the node is passed to `addElement` or, if it has a\n // `style` attribute, `addElementWithStyles`.\n addDOM(dom, marks) {\n if (dom.nodeType == 3)\n this.addTextNode(dom, marks);\n else if (dom.nodeType == 1)\n this.addElement(dom, marks);\n }\n addTextNode(dom, marks) {\n let value = dom.nodeValue;\n let top = this.top, preserveWS = (top.options & OPT_PRESERVE_WS_FULL) ? \"full\"\n : this.localPreserveWS || (top.options & OPT_PRESERVE_WS) > 0;\n if (preserveWS === \"full\" ||\n top.inlineContext(dom) ||\n /[^ \\t\\r\\n\\u000c]/.test(value)) {\n if (!preserveWS) {\n value = value.replace(/[ \\t\\r\\n\\u000c]+/g, \" \");\n // If this starts with whitespace, and there is no node before it, or\n // a hard break, or a text node that ends with whitespace, strip the\n // leading space.\n if (/^[ \\t\\r\\n\\u000c]/.test(value) && this.open == this.nodes.length - 1) {\n let nodeBefore = top.content[top.content.length - 1];\n let domNodeBefore = dom.previousSibling;\n if (!nodeBefore ||\n (domNodeBefore && domNodeBefore.nodeName == 'BR') ||\n (nodeBefore.isText && /[ \\t\\r\\n\\u000c]$/.test(nodeBefore.text)))\n value = value.slice(1);\n }\n }\n else if (preserveWS !== \"full\") {\n value = value.replace(/\\r?\\n|\\r/g, \" \");\n }\n else {\n value = value.replace(/\\r\\n?/g, \"\\n\");\n }\n if (value)\n this.insertNode(this.parser.schema.text(value), marks);\n this.findInText(dom);\n }\n else {\n this.findInside(dom);\n }\n }\n // Try to find a handler for the given tag and use that to parse. If\n // none is found, the element's content nodes are added directly.\n addElement(dom, marks, matchAfter) {\n let outerWS = this.localPreserveWS, top = this.top;\n if (dom.tagName == \"PRE\" || /pre/.test(dom.style && dom.style.whiteSpace))\n this.localPreserveWS = true;\n let name = dom.nodeName.toLowerCase(), ruleID;\n if (listTags.hasOwnProperty(name) && this.parser.normalizeLists)\n normalizeList(dom);\n let rule = (this.options.ruleFromNode && this.options.ruleFromNode(dom)) ||\n (ruleID = this.parser.matchTag(dom, this, matchAfter));\n out: if (rule ? rule.ignore : ignoreTags.hasOwnProperty(name)) {\n this.findInside(dom);\n this.ignoreFallback(dom, marks);\n }\n else if (!rule || rule.skip || rule.closeParent) {\n if (rule && rule.closeParent)\n this.open = Math.max(0, this.open - 1);\n else if (rule && rule.skip.nodeType)\n dom = rule.skip;\n let sync, oldNeedsBlock = this.needsBlock;\n if (blockTags.hasOwnProperty(name)) {\n if (top.content.length && top.content[0].isInline && this.open) {\n this.open--;\n top = this.top;\n }\n sync = true;\n if (!top.type)\n this.needsBlock = true;\n }\n else if (!dom.firstChild) {\n this.leafFallback(dom, marks);\n break out;\n }\n let innerMarks = rule && rule.skip ? marks : this.readStyles(dom, marks);\n if (innerMarks)\n this.addAll(dom, innerMarks);\n if (sync)\n this.sync(top);\n this.needsBlock = oldNeedsBlock;\n }\n else {\n let innerMarks = this.readStyles(dom, marks);\n if (innerMarks)\n this.addElementByRule(dom, rule, innerMarks, rule.consuming === false ? ruleID : undefined);\n }\n this.localPreserveWS = outerWS;\n }\n // Called for leaf DOM nodes that would otherwise be ignored\n leafFallback(dom, marks) {\n if (dom.nodeName == \"BR\" && this.top.type && this.top.type.inlineContent)\n this.addTextNode(dom.ownerDocument.createTextNode(\"\\n\"), marks);\n }\n // Called for ignored nodes\n ignoreFallback(dom, marks) {\n // Ignored BR nodes should at least create an inline context\n if (dom.nodeName == \"BR\" && (!this.top.type || !this.top.type.inlineContent))\n this.findPlace(this.parser.schema.text(\"-\"), marks);\n }\n // Run any style parser associated with the node's styles. Either\n // return an updated array of marks, or null to indicate some of the\n // styles had a rule with `ignore` set.\n readStyles(dom, marks) {\n let styles = dom.style;\n // Because many properties will only show up in 'normalized' form\n // in `style.item` (i.e. text-decoration becomes\n // text-decoration-line, text-decoration-color, etc), we directly\n // query the styles mentioned in our rules instead of iterating\n // over the items.\n if (styles && styles.length)\n for (let i = 0; i < this.parser.matchedStyles.length; i++) {\n let name = this.parser.matchedStyles[i], value = styles.getPropertyValue(name);\n if (value)\n for (let after = undefined;;) {\n let rule = this.parser.matchStyle(name, value, this, after);\n if (!rule)\n break;\n if (rule.ignore)\n return null;\n if (rule.clearMark)\n marks = marks.filter(m => !rule.clearMark(m));\n else\n marks = marks.concat(this.parser.schema.marks[rule.mark].create(rule.attrs));\n if (rule.consuming === false)\n after = rule;\n else\n break;\n }\n }\n return marks;\n }\n // Look up a handler for the given node. If none are found, return\n // false. Otherwise, apply it, use its return value to drive the way\n // the node's content is wrapped, and return true.\n addElementByRule(dom, rule, marks, continueAfter) {\n let sync, nodeType;\n if (rule.node) {\n nodeType = this.parser.schema.nodes[rule.node];\n if (!nodeType.isLeaf) {\n let inner = this.enter(nodeType, rule.attrs || null, marks, rule.preserveWhitespace);\n if (inner) {\n sync = true;\n marks = inner;\n }\n }\n else if (!this.insertNode(nodeType.create(rule.attrs), marks)) {\n this.leafFallback(dom, marks);\n }\n }\n else {\n let markType = this.parser.schema.marks[rule.mark];\n marks = marks.concat(markType.create(rule.attrs));\n }\n let startIn = this.top;\n if (nodeType && nodeType.isLeaf) {\n this.findInside(dom);\n }\n else if (continueAfter) {\n this.addElement(dom, marks, continueAfter);\n }\n else if (rule.getContent) {\n this.findInside(dom);\n rule.getContent(dom, this.parser.schema).forEach(node => this.insertNode(node, marks));\n }\n else {\n let contentDOM = dom;\n if (typeof rule.contentElement == \"string\")\n contentDOM = dom.querySelector(rule.contentElement);\n else if (typeof rule.contentElement == \"function\")\n contentDOM = rule.contentElement(dom);\n else if (rule.contentElement)\n contentDOM = rule.contentElement;\n this.findAround(dom, contentDOM, true);\n this.addAll(contentDOM, marks);\n this.findAround(dom, contentDOM, false);\n }\n if (sync && this.sync(startIn))\n this.open--;\n }\n // Add all child nodes between `startIndex` and `endIndex` (or the\n // whole node, if not given). If `sync` is passed, use it to\n // synchronize after every block element.\n addAll(parent, marks, startIndex, endIndex) {\n let index = startIndex || 0;\n for (let dom = startIndex ? parent.childNodes[startIndex] : parent.firstChild, end = endIndex == null ? null : parent.childNodes[endIndex]; dom != end; dom = dom.nextSibling, ++index) {\n this.findAtPoint(parent, index);\n this.addDOM(dom, marks);\n }\n this.findAtPoint(parent, index);\n }\n // Try to find a way to fit the given node type into the current\n // context. May add intermediate wrappers and/or leave non-solid\n // nodes that we're in.\n findPlace(node, marks) {\n let route, sync;\n for (let depth = this.open; depth >= 0; depth--) {\n let cx = this.nodes[depth];\n let found = cx.findWrapping(node);\n if (found && (!route || route.length > found.length)) {\n route = found;\n sync = cx;\n if (!found.length)\n break;\n }\n if (cx.solid)\n break;\n }\n if (!route)\n return null;\n this.sync(sync);\n for (let i = 0; i < route.length; i++)\n marks = this.enterInner(route[i], null, marks, false);\n return marks;\n }\n // Try to insert the given node, adjusting the context when needed.\n insertNode(node, marks) {\n if (node.isInline && this.needsBlock && !this.top.type) {\n let block = this.textblockFromContext();\n if (block)\n marks = this.enterInner(block, null, marks);\n }\n let innerMarks = this.findPlace(node, marks);\n if (innerMarks) {\n this.closeExtra();\n let top = this.top;\n if (top.match)\n top.match = top.match.matchType(node.type);\n let nodeMarks = Mark.none;\n for (let m of innerMarks.concat(node.marks))\n if (top.type ? top.type.allowsMarkType(m.type) : markMayApply(m.type, node.type))\n nodeMarks = m.addToSet(nodeMarks);\n top.content.push(node.mark(nodeMarks));\n return true;\n }\n return false;\n }\n // Try to start a node of the given type, adjusting the context when\n // necessary.\n enter(type, attrs, marks, preserveWS) {\n let innerMarks = this.findPlace(type.create(attrs), marks);\n if (innerMarks)\n innerMarks = this.enterInner(type, attrs, marks, true, preserveWS);\n return innerMarks;\n }\n // Open a node of the given type\n enterInner(type, attrs, marks, solid = false, preserveWS) {\n this.closeExtra();\n let top = this.top;\n top.match = top.match && top.match.matchType(type);\n let options = wsOptionsFor(type, preserveWS, top.options);\n if ((top.options & OPT_OPEN_LEFT) && top.content.length == 0)\n options |= OPT_OPEN_LEFT;\n let applyMarks = Mark.none;\n marks = marks.filter(m => {\n if (top.type ? top.type.allowsMarkType(m.type) : markMayApply(m.type, type)) {\n applyMarks = m.addToSet(applyMarks);\n return false;\n }\n return true;\n });\n this.nodes.push(new NodeContext(type, attrs, applyMarks, solid, null, options));\n this.open++;\n return marks;\n }\n // Make sure all nodes above this.open are finished and added to\n // their parents\n closeExtra(openEnd = false) {\n let i = this.nodes.length - 1;\n if (i > this.open) {\n for (; i > this.open; i--)\n this.nodes[i - 1].content.push(this.nodes[i].finish(openEnd));\n this.nodes.length = this.open + 1;\n }\n }\n finish() {\n this.open = 0;\n this.closeExtra(this.isOpen);\n return this.nodes[0].finish(!!(this.isOpen || this.options.topOpen));\n }\n sync(to) {\n for (let i = this.open; i >= 0; i--) {\n if (this.nodes[i] == to) {\n this.open = i;\n return true;\n }\n else if (this.localPreserveWS) {\n this.nodes[i].options |= OPT_PRESERVE_WS;\n }\n }\n return false;\n }\n get currentPos() {\n this.closeExtra();\n let pos = 0;\n for (let i = this.open; i >= 0; i--) {\n let content = this.nodes[i].content;\n for (let j = content.length - 1; j >= 0; j--)\n pos += content[j].nodeSize;\n if (i)\n pos++;\n }\n return pos;\n }\n findAtPoint(parent, offset) {\n if (this.find)\n for (let i = 0; i < this.find.length; i++) {\n if (this.find[i].node == parent && this.find[i].offset == offset)\n this.find[i].pos = this.currentPos;\n }\n }\n findInside(parent) {\n if (this.find)\n for (let i = 0; i < this.find.length; i++) {\n if (this.find[i].pos == null && parent.nodeType == 1 && parent.contains(this.find[i].node))\n this.find[i].pos = this.currentPos;\n }\n }\n findAround(parent, content, before) {\n if (parent != content && this.find)\n for (let i = 0; i < this.find.length; i++) {\n if (this.find[i].pos == null && parent.nodeType == 1 && parent.contains(this.find[i].node)) {\n let pos = content.compareDocumentPosition(this.find[i].node);\n if (pos & (before ? 2 : 4))\n this.find[i].pos = this.currentPos;\n }\n }\n }\n findInText(textNode) {\n if (this.find)\n for (let i = 0; i < this.find.length; i++) {\n if (this.find[i].node == textNode)\n this.find[i].pos = this.currentPos - (textNode.nodeValue.length - this.find[i].offset);\n }\n }\n // Determines whether the given context string matches this context.\n matchesContext(context) {\n if (context.indexOf(\"|\") > -1)\n return context.split(/\\s*\\|\\s*/).some(this.matchesContext, this);\n let parts = context.split(\"/\");\n let option = this.options.context;\n let useRoot = !this.isOpen && (!option || option.parent.type == this.nodes[0].type);\n let minDepth = -(option ? option.depth + 1 : 0) + (useRoot ? 0 : 1);\n let match = (i, depth) => {\n for (; i >= 0; i--) {\n let part = parts[i];\n if (part == \"\") {\n if (i == parts.length - 1 || i == 0)\n continue;\n for (; depth >= minDepth; depth--)\n if (match(i - 1, depth))\n return true;\n return false;\n }\n else {\n let next = depth > 0 || (depth == 0 && useRoot) ? this.nodes[depth].type\n : option && depth >= minDepth ? option.node(depth - minDepth).type\n : null;\n if (!next || (next.name != part && !next.isInGroup(part)))\n return false;\n depth--;\n }\n }\n return true;\n };\n return match(parts.length - 1, this.open);\n }\n textblockFromContext() {\n let $context = this.options.context;\n if ($context)\n for (let d = $context.depth; d >= 0; d--) {\n let deflt = $context.node(d).contentMatchAt($context.indexAfter(d)).defaultType;\n if (deflt && deflt.isTextblock && deflt.defaultAttrs)\n return deflt;\n }\n for (let name in this.parser.schema.nodes) {\n let type = this.parser.schema.nodes[name];\n if (type.isTextblock && type.defaultAttrs)\n return type;\n }\n }\n}\n// Kludge to work around directly nested list nodes produced by some\n// tools and allowed by browsers to mean that the nested list is\n// actually part of the list item above it.\nfunction normalizeList(dom) {\n for (let child = dom.firstChild, prevItem = null; child; child = child.nextSibling) {\n let name = child.nodeType == 1 ? child.nodeName.toLowerCase() : null;\n if (name && listTags.hasOwnProperty(name) && prevItem) {\n prevItem.appendChild(child);\n child = prevItem;\n }\n else if (name == \"li\") {\n prevItem = child;\n }\n else if (name) {\n prevItem = null;\n }\n }\n}\n// Apply a CSS selector.\nfunction matches(dom, selector) {\n return (dom.matches || dom.msMatchesSelector || dom.webkitMatchesSelector || dom.mozMatchesSelector).call(dom, selector);\n}\nfunction copy(obj) {\n let copy = {};\n for (let prop in obj)\n copy[prop] = obj[prop];\n return copy;\n}\n// Used when finding a mark at the top level of a fragment parse.\n// Checks whether it would be reasonable to apply a given mark type to\n// a given node, by looking at the way the mark occurs in the schema.\nfunction markMayApply(markType, nodeType) {\n let nodes = nodeType.schema.nodes;\n for (let name in nodes) {\n let parent = nodes[name];\n if (!parent.allowsMarkType(markType))\n continue;\n let seen = [], scan = (match) => {\n seen.push(match);\n for (let i = 0; i < match.edgeCount; i++) {\n let { type, next } = match.edge(i);\n if (type == nodeType)\n return true;\n if (seen.indexOf(next) < 0 && scan(next))\n return true;\n }\n };\n if (scan(parent.contentMatch))\n return true;\n }\n}\n\n/**\nA DOM serializer knows how to convert ProseMirror nodes and\nmarks of various types to DOM nodes.\n*/\nclass DOMSerializer {\n /**\n Create a serializer. `nodes` should map node names to functions\n that take a node and return a description of the corresponding\n DOM. `marks` does the same for mark names, but also gets an\n argument that tells it whether the mark's content is block or\n inline content (for typical use, it'll always be inline). A mark\n serializer may be `null` to indicate that marks of that type\n should not be serialized.\n */\n constructor(\n /**\n The node serialization functions.\n */\n nodes, \n /**\n The mark serialization functions.\n */\n marks) {\n this.nodes = nodes;\n this.marks = marks;\n }\n /**\n Serialize the content of this fragment to a DOM fragment. When\n not in the browser, the `document` option, containing a DOM\n document, should be passed so that the serializer can create\n nodes.\n */\n serializeFragment(fragment, options = {}, target) {\n if (!target)\n target = doc(options).createDocumentFragment();\n let top = target, active = [];\n fragment.forEach(node => {\n if (active.length || node.marks.length) {\n let keep = 0, rendered = 0;\n while (keep < active.length && rendered < node.marks.length) {\n let next = node.marks[rendered];\n if (!this.marks[next.type.name]) {\n rendered++;\n continue;\n }\n if (!next.eq(active[keep][0]) || next.type.spec.spanning === false)\n break;\n keep++;\n rendered++;\n }\n while (keep < active.length)\n top = active.pop()[1];\n while (rendered < node.marks.length) {\n let add = node.marks[rendered++];\n let markDOM = this.serializeMark(add, node.isInline, options);\n if (markDOM) {\n active.push([add, top]);\n top.appendChild(markDOM.dom);\n top = markDOM.contentDOM || markDOM.dom;\n }\n }\n }\n top.appendChild(this.serializeNodeInner(node, options));\n });\n return target;\n }\n /**\n @internal\n */\n serializeNodeInner(node, options) {\n let { dom, contentDOM } = renderSpec(doc(options), this.nodes[node.type.name](node), null, node.attrs);\n if (contentDOM) {\n if (node.isLeaf)\n throw new RangeError(\"Content hole not allowed in a leaf node spec\");\n this.serializeFragment(node.content, options, contentDOM);\n }\n return dom;\n }\n /**\n Serialize this node to a DOM node. This can be useful when you\n need to serialize a part of a document, as opposed to the whole\n document. To serialize a whole document, use\n [`serializeFragment`](https://prosemirror.net/docs/ref/#model.DOMSerializer.serializeFragment) on\n its [content](https://prosemirror.net/docs/ref/#model.Node.content).\n */\n serializeNode(node, options = {}) {\n let dom = this.serializeNodeInner(node, options);\n for (let i = node.marks.length - 1; i >= 0; i--) {\n let wrap = this.serializeMark(node.marks[i], node.isInline, options);\n if (wrap) {\n (wrap.contentDOM || wrap.dom).appendChild(dom);\n dom = wrap.dom;\n }\n }\n return dom;\n }\n /**\n @internal\n */\n serializeMark(mark, inline, options = {}) {\n let toDOM = this.marks[mark.type.name];\n return toDOM && renderSpec(doc(options), toDOM(mark, inline), null, mark.attrs);\n }\n static renderSpec(doc, structure, xmlNS = null, blockArraysIn) {\n return renderSpec(doc, structure, xmlNS, blockArraysIn);\n }\n /**\n Build a serializer using the [`toDOM`](https://prosemirror.net/docs/ref/#model.NodeSpec.toDOM)\n properties in a schema's node and mark specs.\n */\n static fromSchema(schema) {\n return schema.cached.domSerializer ||\n (schema.cached.domSerializer = new DOMSerializer(this.nodesFromSchema(schema), this.marksFromSchema(schema)));\n }\n /**\n Gather the serializers in a schema's node specs into an object.\n This can be useful as a base to build a custom serializer from.\n */\n static nodesFromSchema(schema) {\n let result = gatherToDOM(schema.nodes);\n if (!result.text)\n result.text = node => node.text;\n return result;\n }\n /**\n Gather the serializers in a schema's mark specs into an object.\n */\n static marksFromSchema(schema) {\n return gatherToDOM(schema.marks);\n }\n}\nfunction gatherToDOM(obj) {\n let result = {};\n for (let name in obj) {\n let toDOM = obj[name].spec.toDOM;\n if (toDOM)\n result[name] = toDOM;\n }\n return result;\n}\nfunction doc(options) {\n return options.document || window.document;\n}\nconst suspiciousAttributeCache = new WeakMap();\nfunction suspiciousAttributes(attrs) {\n let value = suspiciousAttributeCache.get(attrs);\n if (value === undefined)\n suspiciousAttributeCache.set(attrs, value = suspiciousAttributesInner(attrs));\n return value;\n}\nfunction suspiciousAttributesInner(attrs) {\n let result = null;\n function scan(value) {\n if (value && typeof value == \"object\") {\n if (Array.isArray(value)) {\n if (typeof value[0] == \"string\") {\n if (!result)\n result = [];\n result.push(value);\n }\n else {\n for (let i = 0; i < value.length; i++)\n scan(value[i]);\n }\n }\n else {\n for (let prop in value)\n scan(value[prop]);\n }\n }\n }\n scan(attrs);\n return result;\n}\nfunction renderSpec(doc, structure, xmlNS, blockArraysIn) {\n if (typeof structure == \"string\")\n return { dom: doc.createTextNode(structure) };\n if (structure.nodeType != null)\n return { dom: structure };\n if (structure.dom && structure.dom.nodeType != null)\n return structure;\n let tagName = structure[0], suspicious;\n if (typeof tagName != \"string\")\n throw new RangeError(\"Invalid array passed to renderSpec\");\n if (blockArraysIn && (suspicious = suspiciousAttributes(blockArraysIn)) &&\n suspicious.indexOf(structure) > -1)\n throw new RangeError(\"Using an array from an attribute object as a DOM spec. This may be an attempted cross site scripting attack.\");\n let space = tagName.indexOf(\" \");\n if (space > 0) {\n xmlNS = tagName.slice(0, space);\n tagName = tagName.slice(space + 1);\n }\n let contentDOM;\n let dom = (xmlNS ? doc.createElementNS(xmlNS, tagName) : doc.createElement(tagName));\n let attrs = structure[1], start = 1;\n if (attrs && typeof attrs == \"object\" && attrs.nodeType == null && !Array.isArray(attrs)) {\n start = 2;\n for (let name in attrs)\n if (attrs[name] != null) {\n let space = name.indexOf(\" \");\n if (space > 0)\n dom.setAttributeNS(name.slice(0, space), name.slice(space + 1), attrs[name]);\n else\n dom.setAttribute(name, attrs[name]);\n }\n }\n for (let i = start; i < structure.length; i++) {\n let child = structure[i];\n if (child === 0) {\n if (i < structure.length - 1 || i > start)\n throw new RangeError(\"Content hole must be the only child of its parent node\");\n return { dom, contentDOM: dom };\n }\n else {\n let { dom: inner, contentDOM: innerContent } = renderSpec(doc, child, xmlNS, blockArraysIn);\n dom.appendChild(inner);\n if (innerContent) {\n if (contentDOM)\n throw new RangeError(\"Multiple content holes\");\n contentDOM = innerContent;\n }\n }\n }\n return { dom, contentDOM };\n}\n\nexport { ContentMatch, DOMParser, DOMSerializer, Fragment, Mark, MarkType, Node, NodeRange, NodeType, ReplaceError, ResolvedPos, Schema, Slice };\n","import { ReplaceError, Slice, Fragment, MarkType, Mark } from 'prosemirror-model';\n\n// Recovery values encode a range index and an offset. They are\n// represented as numbers, because tons of them will be created when\n// mapping, for example, a large number of decorations. The number's\n// lower 16 bits provide the index, the remaining bits the offset.\n//\n// Note: We intentionally don't use bit shift operators to en- and\n// decode these, since those clip to 32 bits, which we might in rare\n// cases want to overflow. A 64-bit float can represent 48-bit\n// integers precisely.\nconst lower16 = 0xffff;\nconst factor16 = Math.pow(2, 16);\nfunction makeRecover(index, offset) { return index + offset * factor16; }\nfunction recoverIndex(value) { return value & lower16; }\nfunction recoverOffset(value) { return (value - (value & lower16)) / factor16; }\nconst DEL_BEFORE = 1, DEL_AFTER = 2, DEL_ACROSS = 4, DEL_SIDE = 8;\n/**\nAn object representing a mapped position with extra\ninformation.\n*/\nclass MapResult {\n /**\n @internal\n */\n constructor(\n /**\n The mapped version of the position.\n */\n pos, \n /**\n @internal\n */\n delInfo, \n /**\n @internal\n */\n recover) {\n this.pos = pos;\n this.delInfo = delInfo;\n this.recover = recover;\n }\n /**\n Tells you whether the position was deleted, that is, whether the\n step removed the token on the side queried (via the `assoc`)\n argument from the document.\n */\n get deleted() { return (this.delInfo & DEL_SIDE) > 0; }\n /**\n Tells you whether the token before the mapped position was deleted.\n */\n get deletedBefore() { return (this.delInfo & (DEL_BEFORE | DEL_ACROSS)) > 0; }\n /**\n True when the token after the mapped position was deleted.\n */\n get deletedAfter() { return (this.delInfo & (DEL_AFTER | DEL_ACROSS)) > 0; }\n /**\n Tells whether any of the steps mapped through deletes across the\n position (including both the token before and after the\n position).\n */\n get deletedAcross() { return (this.delInfo & DEL_ACROSS) > 0; }\n}\n/**\nA map describing the deletions and insertions made by a step, which\ncan be used to find the correspondence between positions in the\npre-step version of a document and the same position in the\npost-step version.\n*/\nclass StepMap {\n /**\n Create a position map. The modifications to the document are\n represented as an array of numbers, in which each group of three\n represents a modified chunk as `[start, oldSize, newSize]`.\n */\n constructor(\n /**\n @internal\n */\n ranges, \n /**\n @internal\n */\n inverted = false) {\n this.ranges = ranges;\n this.inverted = inverted;\n if (!ranges.length && StepMap.empty)\n return StepMap.empty;\n }\n /**\n @internal\n */\n recover(value) {\n let diff = 0, index = recoverIndex(value);\n if (!this.inverted)\n for (let i = 0; i < index; i++)\n diff += this.ranges[i * 3 + 2] - this.ranges[i * 3 + 1];\n return this.ranges[index * 3] + diff + recoverOffset(value);\n }\n mapResult(pos, assoc = 1) { return this._map(pos, assoc, false); }\n map(pos, assoc = 1) { return this._map(pos, assoc, true); }\n /**\n @internal\n */\n _map(pos, assoc, simple) {\n let diff = 0, oldIndex = this.inverted ? 2 : 1, newIndex = this.inverted ? 1 : 2;\n for (let i = 0; i < this.ranges.length; i += 3) {\n let start = this.ranges[i] - (this.inverted ? diff : 0);\n if (start > pos)\n break;\n let oldSize = this.ranges[i + oldIndex], newSize = this.ranges[i + newIndex], end = start + oldSize;\n if (pos <= end) {\n let side = !oldSize ? assoc : pos == start ? -1 : pos == end ? 1 : assoc;\n let result = start + diff + (side < 0 ? 0 : newSize);\n if (simple)\n return result;\n let recover = pos == (assoc < 0 ? start : end) ? null : makeRecover(i / 3, pos - start);\n let del = pos == start ? DEL_AFTER : pos == end ? DEL_BEFORE : DEL_ACROSS;\n if (assoc < 0 ? pos != start : pos != end)\n del |= DEL_SIDE;\n return new MapResult(result, del, recover);\n }\n diff += newSize - oldSize;\n }\n return simple ? pos + diff : new MapResult(pos + diff, 0, null);\n }\n /**\n @internal\n */\n touches(pos, recover) {\n let diff = 0, index = recoverIndex(recover);\n let oldIndex = this.inverted ? 2 : 1, newIndex = this.inverted ? 1 : 2;\n for (let i = 0; i < this.ranges.length; i += 3) {\n let start = this.ranges[i] - (this.inverted ? diff : 0);\n if (start > pos)\n break;\n let oldSize = this.ranges[i + oldIndex], end = start + oldSize;\n if (pos <= end && i == index * 3)\n return true;\n diff += this.ranges[i + newIndex] - oldSize;\n }\n return false;\n }\n /**\n Calls the given function on each of the changed ranges included in\n this map.\n */\n forEach(f) {\n let oldIndex = this.inverted ? 2 : 1, newIndex = this.inverted ? 1 : 2;\n for (let i = 0, diff = 0; i < this.ranges.length; i += 3) {\n let start = this.ranges[i], oldStart = start - (this.inverted ? diff : 0), newStart = start + (this.inverted ? 0 : diff);\n let oldSize = this.ranges[i + oldIndex], newSize = this.ranges[i + newIndex];\n f(oldStart, oldStart + oldSize, newStart, newStart + newSize);\n diff += newSize - oldSize;\n }\n }\n /**\n Create an inverted version of this map. The result can be used to\n map positions in the post-step document to the pre-step document.\n */\n invert() {\n return new StepMap(this.ranges, !this.inverted);\n }\n /**\n @internal\n */\n toString() {\n return (this.inverted ? \"-\" : \"\") + JSON.stringify(this.ranges);\n }\n /**\n Create a map that moves all positions by offset `n` (which may be\n negative). This can be useful when applying steps meant for a\n sub-document to a larger document, or vice-versa.\n */\n static offset(n) {\n return n == 0 ? StepMap.empty : new StepMap(n < 0 ? [0, -n, 0] : [0, 0, n]);\n }\n}\n/**\nA StepMap that contains no changed ranges.\n*/\nStepMap.empty = new StepMap([]);\n/**\nA mapping represents a pipeline of zero or more [step\nmaps](https://prosemirror.net/docs/ref/#transform.StepMap). It has special provisions for losslessly\nhandling mapping positions through a series of steps in which some\nsteps are inverted versions of earlier steps. (This comes up when\n‘[rebasing](/docs/guide/#transform.rebasing)’ steps for\ncollaboration or history management.)\n*/\nclass Mapping {\n /**\n Create a new mapping with the given position maps.\n */\n constructor(\n /**\n The step maps in this mapping.\n */\n maps = [], \n /**\n @internal\n */\n mirror, \n /**\n The starting position in the `maps` array, used when `map` or\n `mapResult` is called.\n */\n from = 0, \n /**\n The end position in the `maps` array.\n */\n to = maps.length) {\n this.maps = maps;\n this.mirror = mirror;\n this.from = from;\n this.to = to;\n }\n /**\n Create a mapping that maps only through a part of this one.\n */\n slice(from = 0, to = this.maps.length) {\n return new Mapping(this.maps, this.mirror, from, to);\n }\n /**\n @internal\n */\n copy() {\n return new Mapping(this.maps.slice(), this.mirror && this.mirror.slice(), this.from, this.to);\n }\n /**\n Add a step map to the end of this mapping. If `mirrors` is\n given, it should be the index of the step map that is the mirror\n image of this one.\n */\n appendMap(map, mirrors) {\n this.to = this.maps.push(map);\n if (mirrors != null)\n this.setMirror(this.maps.length - 1, mirrors);\n }\n /**\n Add all the step maps in a given mapping to this one (preserving\n mirroring information).\n */\n appendMapping(mapping) {\n for (let i = 0, startSize = this.maps.length; i < mapping.maps.length; i++) {\n let mirr = mapping.getMirror(i);\n this.appendMap(mapping.maps[i], mirr != null && mirr < i ? startSize + mirr : undefined);\n }\n }\n /**\n Finds the offset of the step map that mirrors the map at the\n given offset, in this mapping (as per the second argument to\n `appendMap`).\n */\n getMirror(n) {\n if (this.mirror)\n for (let i = 0; i < this.mirror.length; i++)\n if (this.mirror[i] == n)\n return this.mirror[i + (i % 2 ? -1 : 1)];\n }\n /**\n @internal\n */\n setMirror(n, m) {\n if (!this.mirror)\n this.mirror = [];\n this.mirror.push(n, m);\n }\n /**\n Append the inverse of the given mapping to this one.\n */\n appendMappingInverted(mapping) {\n for (let i = mapping.maps.length - 1, totalSize = this.maps.length + mapping.maps.length; i >= 0; i--) {\n let mirr = mapping.getMirror(i);\n this.appendMap(mapping.maps[i].invert(), mirr != null && mirr > i ? totalSize - mirr - 1 : undefined);\n }\n }\n /**\n Create an inverted version of this mapping.\n */\n invert() {\n let inverse = new Mapping;\n inverse.appendMappingInverted(this);\n return inverse;\n }\n /**\n Map a position through this mapping.\n */\n map(pos, assoc = 1) {\n if (this.mirror)\n return this._map(pos, assoc, true);\n for (let i = this.from; i < this.to; i++)\n pos = this.maps[i].map(pos, assoc);\n return pos;\n }\n /**\n Map a position through this mapping, returning a mapping\n result.\n */\n mapResult(pos, assoc = 1) { return this._map(pos, assoc, false); }\n /**\n @internal\n */\n _map(pos, assoc, simple) {\n let delInfo = 0;\n for (let i = this.from; i < this.to; i++) {\n let map = this.maps[i], result = map.mapResult(pos, assoc);\n if (result.recover != null) {\n let corr = this.getMirror(i);\n if (corr != null && corr > i && corr < this.to) {\n i = corr;\n pos = this.maps[corr].recover(result.recover);\n continue;\n }\n }\n delInfo |= result.delInfo;\n pos = result.pos;\n }\n return simple ? pos : new MapResult(pos, delInfo, null);\n }\n}\n\nconst stepsByID = Object.create(null);\n/**\nA step object represents an atomic change. It generally applies\nonly to the document it was created for, since the positions\nstored in it will only make sense for that document.\n\nNew steps are defined by creating classes that extend `Step`,\noverriding the `apply`, `invert`, `map`, `getMap` and `fromJSON`\nmethods, and registering your class with a unique\nJSON-serialization identifier using\n[`Step.jsonID`](https://prosemirror.net/docs/ref/#transform.Step^jsonID).\n*/\nclass Step {\n /**\n Get the step map that represents the changes made by this step,\n and which can be used to transform between positions in the old\n and the new document.\n */\n getMap() { return StepMap.empty; }\n /**\n Try to merge this step with another one, to be applied directly\n after it. Returns the merged step when possible, null if the\n steps can't be merged.\n */\n merge(other) { return null; }\n /**\n Deserialize a step from its JSON representation. Will call\n through to the step class' own implementation of this method.\n */\n static fromJSON(schema, json) {\n if (!json || !json.stepType)\n throw new RangeError(\"Invalid input for Step.fromJSON\");\n let type = stepsByID[json.stepType];\n if (!type)\n throw new RangeError(`No step type ${json.stepType} defined`);\n return type.fromJSON(schema, json);\n }\n /**\n To be able to serialize steps to JSON, each step needs a string\n ID to attach to its JSON representation. Use this method to\n register an ID for your step classes. Try to pick something\n that's unlikely to clash with steps from other modules.\n */\n static jsonID(id, stepClass) {\n if (id in stepsByID)\n throw new RangeError(\"Duplicate use of step JSON ID \" + id);\n stepsByID[id] = stepClass;\n stepClass.prototype.jsonID = id;\n return stepClass;\n }\n}\n/**\nThe result of [applying](https://prosemirror.net/docs/ref/#transform.Step.apply) a step. Contains either a\nnew document or a failure value.\n*/\nclass StepResult {\n /**\n @internal\n */\n constructor(\n /**\n The transformed document, if successful.\n */\n doc, \n /**\n The failure message, if unsuccessful.\n */\n failed) {\n this.doc = doc;\n this.failed = failed;\n }\n /**\n Create a successful step result.\n */\n static ok(doc) { return new StepResult(doc, null); }\n /**\n Create a failed step result.\n */\n static fail(message) { return new StepResult(null, message); }\n /**\n Call [`Node.replace`](https://prosemirror.net/docs/ref/#model.Node.replace) with the given\n arguments. Create a successful result if it succeeds, and a\n failed one if it throws a `ReplaceError`.\n */\n static fromReplace(doc, from, to, slice) {\n try {\n return StepResult.ok(doc.replace(from, to, slice));\n }\n catch (e) {\n if (e instanceof ReplaceError)\n return StepResult.fail(e.message);\n throw e;\n }\n }\n}\n\nfunction mapFragment(fragment, f, parent) {\n let mapped = [];\n for (let i = 0; i < fragment.childCount; i++) {\n let child = fragment.child(i);\n if (child.content.size)\n child = child.copy(mapFragment(child.content, f, child));\n if (child.isInline)\n child = f(child, parent, i);\n mapped.push(child);\n }\n return Fragment.fromArray(mapped);\n}\n/**\nAdd a mark to all inline content between two positions.\n*/\nclass AddMarkStep extends Step {\n /**\n Create a mark step.\n */\n constructor(\n /**\n The start of the marked range.\n */\n from, \n /**\n The end of the marked range.\n */\n to, \n /**\n The mark to add.\n */\n mark) {\n super();\n this.from = from;\n this.to = to;\n this.mark = mark;\n }\n apply(doc) {\n let oldSlice = doc.slice(this.from, this.to), $from = doc.resolve(this.from);\n let parent = $from.node($from.sharedDepth(this.to));\n let slice = new Slice(mapFragment(oldSlice.content, (node, parent) => {\n if (!node.isAtom || !parent.type.allowsMarkType(this.mark.type))\n return node;\n return node.mark(this.mark.addToSet(node.marks));\n }, parent), oldSlice.openStart, oldSlice.openEnd);\n return StepResult.fromReplace(doc, this.from, this.to, slice);\n }\n invert() {\n return new RemoveMarkStep(this.from, this.to, this.mark);\n }\n map(mapping) {\n let from = mapping.mapResult(this.from, 1), to = mapping.mapResult(this.to, -1);\n if (from.deleted && to.deleted || from.pos >= to.pos)\n return null;\n return new AddMarkStep(from.pos, to.pos, this.mark);\n }\n merge(other) {\n if (other instanceof AddMarkStep &&\n other.mark.eq(this.mark) &&\n this.from <= other.to && this.to >= other.from)\n return new AddMarkStep(Math.min(this.from, other.from), Math.max(this.to, other.to), this.mark);\n return null;\n }\n toJSON() {\n return { stepType: \"addMark\", mark: this.mark.toJSON(),\n from: this.from, to: this.to };\n }\n /**\n @internal\n */\n static fromJSON(schema, json) {\n if (typeof json.from != \"number\" || typeof json.to != \"number\")\n throw new RangeError(\"Invalid input for AddMarkStep.fromJSON\");\n return new AddMarkStep(json.from, json.to, schema.markFromJSON(json.mark));\n }\n}\nStep.jsonID(\"addMark\", AddMarkStep);\n/**\nRemove a mark from all inline content between two positions.\n*/\nclass RemoveMarkStep extends Step {\n /**\n Create a mark-removing step.\n */\n constructor(\n /**\n The start of the unmarked range.\n */\n from, \n /**\n The end of the unmarked range.\n */\n to, \n /**\n The mark to remove.\n */\n mark) {\n super();\n this.from = from;\n this.to = to;\n this.mark = mark;\n }\n apply(doc) {\n let oldSlice = doc.slice(this.from, this.to);\n let slice = new Slice(mapFragment(oldSlice.content, node => {\n return node.mark(this.mark.removeFromSet(node.marks));\n }, doc), oldSlice.openStart, oldSlice.openEnd);\n return StepResult.fromReplace(doc, this.from, this.to, slice);\n }\n invert() {\n return new AddMarkStep(this.from, this.to, this.mark);\n }\n map(mapping) {\n let from = mapping.mapResult(this.from, 1), to = mapping.mapResult(this.to, -1);\n if (from.deleted && to.deleted || from.pos >= to.pos)\n return null;\n return new RemoveMarkStep(from.pos, to.pos, this.mark);\n }\n merge(other) {\n if (other instanceof RemoveMarkStep &&\n other.mark.eq(this.mark) &&\n this.from <= other.to && this.to >= other.from)\n return new RemoveMarkStep(Math.min(this.from, other.from), Math.max(this.to, other.to), this.mark);\n return null;\n }\n toJSON() {\n return { stepType: \"removeMark\", mark: this.mark.toJSON(),\n from: this.from, to: this.to };\n }\n /**\n @internal\n */\n static fromJSON(schema, json) {\n if (typeof json.from != \"number\" || typeof json.to != \"number\")\n throw new RangeError(\"Invalid input for RemoveMarkStep.fromJSON\");\n return new RemoveMarkStep(json.from, json.to, schema.markFromJSON(json.mark));\n }\n}\nStep.jsonID(\"removeMark\", RemoveMarkStep);\n/**\nAdd a mark to a specific node.\n*/\nclass AddNodeMarkStep extends Step {\n /**\n Create a node mark step.\n */\n constructor(\n /**\n The position of the target node.\n */\n pos, \n /**\n The mark to add.\n */\n mark) {\n super();\n this.pos = pos;\n this.mark = mark;\n }\n apply(doc) {\n let node = doc.nodeAt(this.pos);\n if (!node)\n return StepResult.fail(\"No node at mark step's position\");\n let updated = node.type.create(node.attrs, null, this.mark.addToSet(node.marks));\n return StepResult.fromReplace(doc, this.pos, this.pos + 1, new Slice(Fragment.from(updated), 0, node.isLeaf ? 0 : 1));\n }\n invert(doc) {\n let node = doc.nodeAt(this.pos);\n if (node) {\n let newSet = this.mark.addToSet(node.marks);\n if (newSet.length == node.marks.length) {\n for (let i = 0; i < node.marks.length; i++)\n if (!node.marks[i].isInSet(newSet))\n return new AddNodeMarkStep(this.pos, node.marks[i]);\n return new AddNodeMarkStep(this.pos, this.mark);\n }\n }\n return new RemoveNodeMarkStep(this.pos, this.mark);\n }\n map(mapping) {\n let pos = mapping.mapResult(this.pos, 1);\n return pos.deletedAfter ? null : new AddNodeMarkStep(pos.pos, this.mark);\n }\n toJSON() {\n return { stepType: \"addNodeMark\", pos: this.pos, mark: this.mark.toJSON() };\n }\n /**\n @internal\n */\n static fromJSON(schema, json) {\n if (typeof json.pos != \"number\")\n throw new RangeError(\"Invalid input for AddNodeMarkStep.fromJSON\");\n return new AddNodeMarkStep(json.pos, schema.markFromJSON(json.mark));\n }\n}\nStep.jsonID(\"addNodeMark\", AddNodeMarkStep);\n/**\nRemove a mark from a specific node.\n*/\nclass RemoveNodeMarkStep extends Step {\n /**\n Create a mark-removing step.\n */\n constructor(\n /**\n The position of the target node.\n */\n pos, \n /**\n The mark to remove.\n */\n mark) {\n super();\n this.pos = pos;\n this.mark = mark;\n }\n apply(doc) {\n let node = doc.nodeAt(this.pos);\n if (!node)\n return StepResult.fail(\"No node at mark step's position\");\n let updated = node.type.create(node.attrs, null, this.mark.removeFromSet(node.marks));\n return StepResult.fromReplace(doc, this.pos, this.pos + 1, new Slice(Fragment.from(updated), 0, node.isLeaf ? 0 : 1));\n }\n invert(doc) {\n let node = doc.nodeAt(this.pos);\n if (!node || !this.mark.isInSet(node.marks))\n return this;\n return new AddNodeMarkStep(this.pos, this.mark);\n }\n map(mapping) {\n let pos = mapping.mapResult(this.pos, 1);\n return pos.deletedAfter ? null : new RemoveNodeMarkStep(pos.pos, this.mark);\n }\n toJSON() {\n return { stepType: \"removeNodeMark\", pos: this.pos, mark: this.mark.toJSON() };\n }\n /**\n @internal\n */\n static fromJSON(schema, json) {\n if (typeof json.pos != \"number\")\n throw new RangeError(\"Invalid input for RemoveNodeMarkStep.fromJSON\");\n return new RemoveNodeMarkStep(json.pos, schema.markFromJSON(json.mark));\n }\n}\nStep.jsonID(\"removeNodeMark\", RemoveNodeMarkStep);\n\n/**\nReplace a part of the document with a slice of new content.\n*/\nclass ReplaceStep extends Step {\n /**\n The given `slice` should fit the 'gap' between `from` and\n `to`—the depths must line up, and the surrounding nodes must be\n able to be joined with the open sides of the slice. When\n `structure` is true, the step will fail if the content between\n from and to is not just a sequence of closing and then opening\n tokens (this is to guard against rebased replace steps\n overwriting something they weren't supposed to).\n */\n constructor(\n /**\n The start position of the replaced range.\n */\n from, \n /**\n The end position of the replaced range.\n */\n to, \n /**\n The slice to insert.\n */\n slice, \n /**\n @internal\n */\n structure = false) {\n super();\n this.from = from;\n this.to = to;\n this.slice = slice;\n this.structure = structure;\n }\n apply(doc) {\n if (this.structure && contentBetween(doc, this.from, this.to))\n return StepResult.fail(\"Structure replace would overwrite content\");\n return StepResult.fromReplace(doc, this.from, this.to, this.slice);\n }\n getMap() {\n return new StepMap([this.from, this.to - this.from, this.slice.size]);\n }\n invert(doc) {\n return new ReplaceStep(this.from, this.from + this.slice.size, doc.slice(this.from, this.to));\n }\n map(mapping) {\n let from = mapping.mapResult(this.from, 1), to = mapping.mapResult(this.to, -1);\n if (from.deletedAcross && to.deletedAcross)\n return null;\n return new ReplaceStep(from.pos, Math.max(from.pos, to.pos), this.slice);\n }\n merge(other) {\n if (!(other instanceof ReplaceStep) || other.structure || this.structure)\n return null;\n if (this.from + this.slice.size == other.from && !this.slice.openEnd && !other.slice.openStart) {\n let slice = this.slice.size + other.slice.size == 0 ? Slice.empty\n : new Slice(this.slice.content.append(other.slice.content), this.slice.openStart, other.slice.openEnd);\n return new ReplaceStep(this.from, this.to + (other.to - other.from), slice, this.structure);\n }\n else if (other.to == this.from && !this.slice.openStart && !other.slice.openEnd) {\n let slice = this.slice.size + other.slice.size == 0 ? Slice.empty\n : new Slice(other.slice.content.append(this.slice.content), other.slice.openStart, this.slice.openEnd);\n return new ReplaceStep(other.from, this.to, slice, this.structure);\n }\n else {\n return null;\n }\n }\n toJSON() {\n let json = { stepType: \"replace\", from: this.from, to: this.to };\n if (this.slice.size)\n json.slice = this.slice.toJSON();\n if (this.structure)\n json.structure = true;\n return json;\n }\n /**\n @internal\n */\n static fromJSON(schema, json) {\n if (typeof json.from != \"number\" || typeof json.to != \"number\")\n throw new RangeError(\"Invalid input for ReplaceStep.fromJSON\");\n return new ReplaceStep(json.from, json.to, Slice.fromJSON(schema, json.slice), !!json.structure);\n }\n}\nStep.jsonID(\"replace\", ReplaceStep);\n/**\nReplace a part of the document with a slice of content, but\npreserve a range of the replaced content by moving it into the\nslice.\n*/\nclass ReplaceAroundStep extends Step {\n /**\n Create a replace-around step with the given range and gap.\n `insert` should be the point in the slice into which the content\n of the gap should be moved. `structure` has the same meaning as\n it has in the [`ReplaceStep`](https://prosemirror.net/docs/ref/#transform.ReplaceStep) class.\n */\n constructor(\n /**\n The start position of the replaced range.\n */\n from, \n /**\n The end position of the replaced range.\n */\n to, \n /**\n The start of preserved range.\n */\n gapFrom, \n /**\n The end of preserved range.\n */\n gapTo, \n /**\n The slice to insert.\n */\n slice, \n /**\n The position in the slice where the preserved range should be\n inserted.\n */\n insert, \n /**\n @internal\n */\n structure = false) {\n super();\n this.from = from;\n this.to = to;\n this.gapFrom = gapFrom;\n this.gapTo = gapTo;\n this.slice = slice;\n this.insert = insert;\n this.structure = structure;\n }\n apply(doc) {\n if (this.structure && (contentBetween(doc, this.from, this.gapFrom) ||\n contentBetween(doc, this.gapTo, this.to)))\n return StepResult.fail(\"Structure gap-replace would overwrite content\");\n let gap = doc.slice(this.gapFrom, this.gapTo);\n if (gap.openStart || gap.openEnd)\n return StepResult.fail(\"Gap is not a flat range\");\n let inserted = this.slice.insertAt(this.insert, gap.content);\n if (!inserted)\n return StepResult.fail(\"Content does not fit in gap\");\n return StepResult.fromReplace(doc, this.from, this.to, inserted);\n }\n getMap() {\n return new StepMap([this.from, this.gapFrom - this.from, this.insert,\n this.gapTo, this.to - this.gapTo, this.slice.size - this.insert]);\n }\n invert(doc) {\n let gap = this.gapTo - this.gapFrom;\n return new ReplaceAroundStep(this.from, this.from + this.slice.size + gap, this.from + this.insert, this.from + this.insert + gap, doc.slice(this.from, this.to).removeBetween(this.gapFrom - this.from, this.gapTo - this.from), this.gapFrom - this.from, this.structure);\n }\n map(mapping) {\n let from = mapping.mapResult(this.from, 1), to = mapping.mapResult(this.to, -1);\n let gapFrom = this.from == this.gapFrom ? from.pos : mapping.map(this.gapFrom, -1);\n let gapTo = this.to == this.gapTo ? to.pos : mapping.map(this.gapTo, 1);\n if ((from.deletedAcross && to.deletedAcross) || gapFrom < from.pos || gapTo > to.pos)\n return null;\n return new ReplaceAroundStep(from.pos, to.pos, gapFrom, gapTo, this.slice, this.insert, this.structure);\n }\n toJSON() {\n let json = { stepType: \"replaceAround\", from: this.from, to: this.to,\n gapFrom: this.gapFrom, gapTo: this.gapTo, insert: this.insert };\n if (this.slice.size)\n json.slice = this.slice.toJSON();\n if (this.structure)\n json.structure = true;\n return json;\n }\n /**\n @internal\n */\n static fromJSON(schema, json) {\n if (typeof json.from != \"number\" || typeof json.to != \"number\" ||\n typeof json.gapFrom != \"number\" || typeof json.gapTo != \"number\" || typeof json.insert != \"number\")\n throw new RangeError(\"Invalid input for ReplaceAroundStep.fromJSON\");\n return new ReplaceAroundStep(json.from, json.to, json.gapFrom, json.gapTo, Slice.fromJSON(schema, json.slice), json.insert, !!json.structure);\n }\n}\nStep.jsonID(\"replaceAround\", ReplaceAroundStep);\nfunction contentBetween(doc, from, to) {\n let $from = doc.resolve(from), dist = to - from, depth = $from.depth;\n while (dist > 0 && depth > 0 && $from.indexAfter(depth) == $from.node(depth).childCount) {\n depth--;\n dist--;\n }\n if (dist > 0) {\n let next = $from.node(depth).maybeChild($from.indexAfter(depth));\n while (dist > 0) {\n if (!next || next.isLeaf)\n return true;\n next = next.firstChild;\n dist--;\n }\n }\n return false;\n}\n\nfunction addMark(tr, from, to, mark) {\n let removed = [], added = [];\n let removing, adding;\n tr.doc.nodesBetween(from, to, (node, pos, parent) => {\n if (!node.isInline)\n return;\n let marks = node.marks;\n if (!mark.isInSet(marks) && parent.type.allowsMarkType(mark.type)) {\n let start = Math.max(pos, from), end = Math.min(pos + node.nodeSize, to);\n let newSet = mark.addToSet(marks);\n for (let i = 0; i < marks.length; i++) {\n if (!marks[i].isInSet(newSet)) {\n if (removing && removing.to == start && removing.mark.eq(marks[i]))\n removing.to = end;\n else\n removed.push(removing = new RemoveMarkStep(start, end, marks[i]));\n }\n }\n if (adding && adding.to == start)\n adding.to = end;\n else\n added.push(adding = new AddMarkStep(start, end, mark));\n }\n });\n removed.forEach(s => tr.step(s));\n added.forEach(s => tr.step(s));\n}\nfunction removeMark(tr, from, to, mark) {\n let matched = [], step = 0;\n tr.doc.nodesBetween(from, to, (node, pos) => {\n if (!node.isInline)\n return;\n step++;\n let toRemove = null;\n if (mark instanceof MarkType) {\n let set = node.marks, found;\n while (found = mark.isInSet(set)) {\n (toRemove || (toRemove = [])).push(found);\n set = found.removeFromSet(set);\n }\n }\n else if (mark) {\n if (mark.isInSet(node.marks))\n toRemove = [mark];\n }\n else {\n toRemove = node.marks;\n }\n if (toRemove && toRemove.length) {\n let end = Math.min(pos + node.nodeSize, to);\n for (let i = 0; i < toRemove.length; i++) {\n let style = toRemove[i], found;\n for (let j = 0; j < matched.length; j++) {\n let m = matched[j];\n if (m.step == step - 1 && style.eq(matched[j].style))\n found = m;\n }\n if (found) {\n found.to = end;\n found.step = step;\n }\n else {\n matched.push({ style, from: Math.max(pos, from), to: end, step });\n }\n }\n }\n });\n matched.forEach(m => tr.step(new RemoveMarkStep(m.from, m.to, m.style)));\n}\nfunction clearIncompatible(tr, pos, parentType, match = parentType.contentMatch, clearNewlines = true) {\n let node = tr.doc.nodeAt(pos);\n let replSteps = [], cur = pos + 1;\n for (let i = 0; i < node.childCount; i++) {\n let child = node.child(i), end = cur + child.nodeSize;\n let allowed = match.matchType(child.type);\n if (!allowed) {\n replSteps.push(new ReplaceStep(cur, end, Slice.empty));\n }\n else {\n match = allowed;\n for (let j = 0; j < child.marks.length; j++)\n if (!parentType.allowsMarkType(child.marks[j].type))\n tr.step(new RemoveMarkStep(cur, end, child.marks[j]));\n if (clearNewlines && child.isText && parentType.whitespace != \"pre\") {\n let m, newline = /\\r?\\n|\\r/g, slice;\n while (m = newline.exec(child.text)) {\n if (!slice)\n slice = new Slice(Fragment.from(parentType.schema.text(\" \", parentType.allowedMarks(child.marks))), 0, 0);\n replSteps.push(new ReplaceStep(cur + m.index, cur + m.index + m[0].length, slice));\n }\n }\n }\n cur = end;\n }\n if (!match.validEnd) {\n let fill = match.fillBefore(Fragment.empty, true);\n tr.replace(cur, cur, new Slice(fill, 0, 0));\n }\n for (let i = replSteps.length - 1; i >= 0; i--)\n tr.step(replSteps[i]);\n}\n\nfunction canCut(node, start, end) {\n return (start == 0 || node.canReplace(start, node.childCount)) &&\n (end == node.childCount || node.canReplace(0, end));\n}\n/**\nTry to find a target depth to which the content in the given range\ncan be lifted. Will not go across\n[isolating](https://prosemirror.net/docs/ref/#model.NodeSpec.isolating) parent nodes.\n*/\nfunction liftTarget(range) {\n let parent = range.parent;\n let content = parent.content.cutByIndex(range.startIndex, range.endIndex);\n for (let depth = range.depth;; --depth) {\n let node = range.$from.node(depth);\n let index = range.$from.index(depth), endIndex = range.$to.indexAfter(depth);\n if (depth < range.depth && node.canReplace(index, endIndex, content))\n return depth;\n if (depth == 0 || node.type.spec.isolating || !canCut(node, index, endIndex))\n break;\n }\n return null;\n}\nfunction lift(tr, range, target) {\n let { $from, $to, depth } = range;\n let gapStart = $from.before(depth + 1), gapEnd = $to.after(depth + 1);\n let start = gapStart, end = gapEnd;\n let before = Fragment.empty, openStart = 0;\n for (let d = depth, splitting = false; d > target; d--)\n if (splitting || $from.index(d) > 0) {\n splitting = true;\n before = Fragment.from($from.node(d).copy(before));\n openStart++;\n }\n else {\n start--;\n }\n let after = Fragment.empty, openEnd = 0;\n for (let d = depth, splitting = false; d > target; d--)\n if (splitting || $to.after(d + 1) < $to.end(d)) {\n splitting = true;\n after = Fragment.from($to.node(d).copy(after));\n openEnd++;\n }\n else {\n end++;\n }\n tr.step(new ReplaceAroundStep(start, end, gapStart, gapEnd, new Slice(before.append(after), openStart, openEnd), before.size - openStart, true));\n}\n/**\nTry to find a valid way to wrap the content in the given range in a\nnode of the given type. May introduce extra nodes around and inside\nthe wrapper node, if necessary. Returns null if no valid wrapping\ncould be found. When `innerRange` is given, that range's content is\nused as the content to fit into the wrapping, instead of the\ncontent of `range`.\n*/\nfunction findWrapping(range, nodeType, attrs = null, innerRange = range) {\n let around = findWrappingOutside(range, nodeType);\n let inner = around && findWrappingInside(innerRange, nodeType);\n if (!inner)\n return null;\n return around.map(withAttrs)\n .concat({ type: nodeType, attrs }).concat(inner.map(withAttrs));\n}\nfunction withAttrs(type) { return { type, attrs: null }; }\nfunction findWrappingOutside(range, type) {\n let { parent, startIndex, endIndex } = range;\n let around = parent.contentMatchAt(startIndex).findWrapping(type);\n if (!around)\n return null;\n let outer = around.length ? around[0] : type;\n return parent.canReplaceWith(startIndex, endIndex, outer) ? around : null;\n}\nfunction findWrappingInside(range, type) {\n let { parent, startIndex, endIndex } = range;\n let inner = parent.child(startIndex);\n let inside = type.contentMatch.findWrapping(inner.type);\n if (!inside)\n return null;\n let lastType = inside.length ? inside[inside.length - 1] : type;\n let innerMatch = lastType.contentMatch;\n for (let i = startIndex; innerMatch && i < endIndex; i++)\n innerMatch = innerMatch.matchType(parent.child(i).type);\n if (!innerMatch || !innerMatch.validEnd)\n return null;\n return inside;\n}\nfunction wrap(tr, range, wrappers) {\n let content = Fragment.empty;\n for (let i = wrappers.length - 1; i >= 0; i--) {\n if (content.size) {\n let match = wrappers[i].type.contentMatch.matchFragment(content);\n if (!match || !match.validEnd)\n throw new RangeError(\"Wrapper type given to Transform.wrap does not form valid content of its parent wrapper\");\n }\n content = Fragment.from(wrappers[i].type.create(wrappers[i].attrs, content));\n }\n let start = range.start, end = range.end;\n tr.step(new ReplaceAroundStep(start, end, start, end, new Slice(content, 0, 0), wrappers.length, true));\n}\nfunction setBlockType(tr, from, to, type, attrs) {\n if (!type.isTextblock)\n throw new RangeError(\"Type given to setBlockType should be a textblock\");\n let mapFrom = tr.steps.length;\n tr.doc.nodesBetween(from, to, (node, pos) => {\n let attrsHere = typeof attrs == \"function\" ? attrs(node) : attrs;\n if (node.isTextblock && !node.hasMarkup(type, attrsHere) &&\n canChangeType(tr.doc, tr.mapping.slice(mapFrom).map(pos), type)) {\n let convertNewlines = null;\n if (type.schema.linebreakReplacement) {\n let pre = type.whitespace == \"pre\", supportLinebreak = !!type.contentMatch.matchType(type.schema.linebreakReplacement);\n if (pre && !supportLinebreak)\n convertNewlines = false;\n else if (!pre && supportLinebreak)\n convertNewlines = true;\n }\n // Ensure all markup that isn't allowed in the new node type is cleared\n if (convertNewlines === false)\n replaceLinebreaks(tr, node, pos, mapFrom);\n clearIncompatible(tr, tr.mapping.slice(mapFrom).map(pos, 1), type, undefined, convertNewlines === null);\n let mapping = tr.mapping.slice(mapFrom);\n let startM = mapping.map(pos, 1), endM = mapping.map(pos + node.nodeSize, 1);\n tr.step(new ReplaceAroundStep(startM, endM, startM + 1, endM - 1, new Slice(Fragment.from(type.create(attrsHere, null, node.marks)), 0, 0), 1, true));\n if (convertNewlines === true)\n replaceNewlines(tr, node, pos, mapFrom);\n return false;\n }\n });\n}\nfunction replaceNewlines(tr, node, pos, mapFrom) {\n node.forEach((child, offset) => {\n if (child.isText) {\n let m, newline = /\\r?\\n|\\r/g;\n while (m = newline.exec(child.text)) {\n let start = tr.mapping.slice(mapFrom).map(pos + 1 + offset + m.index);\n tr.replaceWith(start, start + 1, node.type.schema.linebreakReplacement.create());\n }\n }\n });\n}\nfunction replaceLinebreaks(tr, node, pos, mapFrom) {\n node.forEach((child, offset) => {\n if (child.type == child.type.schema.linebreakReplacement) {\n let start = tr.mapping.slice(mapFrom).map(pos + 1 + offset);\n tr.replaceWith(start, start + 1, node.type.schema.text(\"\\n\"));\n }\n });\n}\nfunction canChangeType(doc, pos, type) {\n let $pos = doc.resolve(pos), index = $pos.index();\n return $pos.parent.canReplaceWith(index, index + 1, type);\n}\n/**\nChange the type, attributes, and/or marks of the node at `pos`.\nWhen `type` isn't given, the existing node type is preserved,\n*/\nfunction setNodeMarkup(tr, pos, type, attrs, marks) {\n let node = tr.doc.nodeAt(pos);\n if (!node)\n throw new RangeError(\"No node at given position\");\n if (!type)\n type = node.type;\n let newNode = type.create(attrs, null, marks || node.marks);\n if (node.isLeaf)\n return tr.replaceWith(pos, pos + node.nodeSize, newNode);\n if (!type.validContent(node.content))\n throw new RangeError(\"Invalid content for node type \" + type.name);\n tr.step(new ReplaceAroundStep(pos, pos + node.nodeSize, pos + 1, pos + node.nodeSize - 1, new Slice(Fragment.from(newNode), 0, 0), 1, true));\n}\n/**\nCheck whether splitting at the given position is allowed.\n*/\nfunction canSplit(doc, pos, depth = 1, typesAfter) {\n let $pos = doc.resolve(pos), base = $pos.depth - depth;\n let innerType = (typesAfter && typesAfter[typesAfter.length - 1]) || $pos.parent;\n if (base < 0 || $pos.parent.type.spec.isolating ||\n !$pos.parent.canReplace($pos.index(), $pos.parent.childCount) ||\n !innerType.type.validContent($pos.parent.content.cutByIndex($pos.index(), $pos.parent.childCount)))\n return false;\n for (let d = $pos.depth - 1, i = depth - 2; d > base; d--, i--) {\n let node = $pos.node(d), index = $pos.index(d);\n if (node.type.spec.isolating)\n return false;\n let rest = node.content.cutByIndex(index, node.childCount);\n let overrideChild = typesAfter && typesAfter[i + 1];\n if (overrideChild)\n rest = rest.replaceChild(0, overrideChild.type.create(overrideChild.attrs));\n let after = (typesAfter && typesAfter[i]) || node;\n if (!node.canReplace(index + 1, node.childCount) || !after.type.validContent(rest))\n return false;\n }\n let index = $pos.indexAfter(base);\n let baseType = typesAfter && typesAfter[0];\n return $pos.node(base).canReplaceWith(index, index, baseType ? baseType.type : $pos.node(base + 1).type);\n}\nfunction split(tr, pos, depth = 1, typesAfter) {\n let $pos = tr.doc.resolve(pos), before = Fragment.empty, after = Fragment.empty;\n for (let d = $pos.depth, e = $pos.depth - depth, i = depth - 1; d > e; d--, i--) {\n before = Fragment.from($pos.node(d).copy(before));\n let typeAfter = typesAfter && typesAfter[i];\n after = Fragment.from(typeAfter ? typeAfter.type.create(typeAfter.attrs, after) : $pos.node(d).copy(after));\n }\n tr.step(new ReplaceStep(pos, pos, new Slice(before.append(after), depth, depth), true));\n}\n/**\nTest whether the blocks before and after a given position can be\njoined.\n*/\nfunction canJoin(doc, pos) {\n let $pos = doc.resolve(pos), index = $pos.index();\n return joinable($pos.nodeBefore, $pos.nodeAfter) &&\n $pos.parent.canReplace(index, index + 1);\n}\nfunction canAppendWithSubstitutedLinebreaks(a, b) {\n if (!b.content.size)\n a.type.compatibleContent(b.type);\n let match = a.contentMatchAt(a.childCount);\n let { linebreakReplacement } = a.type.schema;\n for (let i = 0; i < b.childCount; i++) {\n let child = b.child(i);\n let type = child.type == linebreakReplacement ? a.type.schema.nodes.text : child.type;\n match = match.matchType(type);\n if (!match)\n return false;\n if (!a.type.allowsMarks(child.marks))\n return false;\n }\n return match.validEnd;\n}\nfunction joinable(a, b) {\n return !!(a && b && !a.isLeaf && canAppendWithSubstitutedLinebreaks(a, b));\n}\n/**\nFind an ancestor of the given position that can be joined to the\nblock before (or after if `dir` is positive). Returns the joinable\npoint, if any.\n*/\nfunction joinPoint(doc, pos, dir = -1) {\n let $pos = doc.resolve(pos);\n for (let d = $pos.depth;; d--) {\n let before, after, index = $pos.index(d);\n if (d == $pos.depth) {\n before = $pos.nodeBefore;\n after = $pos.nodeAfter;\n }\n else if (dir > 0) {\n before = $pos.node(d + 1);\n index++;\n after = $pos.node(d).maybeChild(index);\n }\n else {\n before = $pos.node(d).maybeChild(index - 1);\n after = $pos.node(d + 1);\n }\n if (before && !before.isTextblock && joinable(before, after) &&\n $pos.node(d).canReplace(index, index + 1))\n return pos;\n if (d == 0)\n break;\n pos = dir < 0 ? $pos.before(d) : $pos.after(d);\n }\n}\nfunction join(tr, pos, depth) {\n let convertNewlines = null;\n let { linebreakReplacement } = tr.doc.type.schema;\n let $before = tr.doc.resolve(pos - depth), beforeType = $before.node().type;\n if (linebreakReplacement && beforeType.inlineContent) {\n let pre = beforeType.whitespace == \"pre\";\n let supportLinebreak = !!beforeType.contentMatch.matchType(linebreakReplacement);\n if (pre && !supportLinebreak)\n convertNewlines = false;\n else if (!pre && supportLinebreak)\n convertNewlines = true;\n }\n let mapFrom = tr.steps.length;\n if (convertNewlines === false) {\n let $after = tr.doc.resolve(pos + depth);\n replaceLinebreaks(tr, $after.node(), $after.before(), mapFrom);\n }\n if (beforeType.inlineContent)\n clearIncompatible(tr, pos + depth - 1, beforeType, $before.node().contentMatchAt($before.index()), convertNewlines == null);\n let mapping = tr.mapping.slice(mapFrom), start = mapping.map(pos - depth);\n tr.step(new ReplaceStep(start, mapping.map(pos + depth, -1), Slice.empty, true));\n if (convertNewlines === true) {\n let $full = tr.doc.resolve(start);\n replaceNewlines(tr, $full.node(), $full.before(), tr.steps.length);\n }\n return tr;\n}\n/**\nTry to find a point where a node of the given type can be inserted\nnear `pos`, by searching up the node hierarchy when `pos` itself\nisn't a valid place but is at the start or end of a node. Return\nnull if no position was found.\n*/\nfunction insertPoint(doc, pos, nodeType) {\n let $pos = doc.resolve(pos);\n if ($pos.parent.canReplaceWith($pos.index(), $pos.index(), nodeType))\n return pos;\n if ($pos.parentOffset == 0)\n for (let d = $pos.depth - 1; d >= 0; d--) {\n let index = $pos.index(d);\n if ($pos.node(d).canReplaceWith(index, index, nodeType))\n return $pos.before(d + 1);\n if (index > 0)\n return null;\n }\n if ($pos.parentOffset == $pos.parent.content.size)\n for (let d = $pos.depth - 1; d >= 0; d--) {\n let index = $pos.indexAfter(d);\n if ($pos.node(d).canReplaceWith(index, index, nodeType))\n return $pos.after(d + 1);\n if (index < $pos.node(d).childCount)\n return null;\n }\n return null;\n}\n/**\nFinds a position at or around the given position where the given\nslice can be inserted. Will look at parent nodes' nearest boundary\nand try there, even if the original position wasn't directly at the\nstart or end of that node. Returns null when no position was found.\n*/\nfunction dropPoint(doc, pos, slice) {\n let $pos = doc.resolve(pos);\n if (!slice.content.size)\n return pos;\n let content = slice.content;\n for (let i = 0; i < slice.openStart; i++)\n content = content.firstChild.content;\n for (let pass = 1; pass <= (slice.openStart == 0 && slice.size ? 2 : 1); pass++) {\n for (let d = $pos.depth; d >= 0; d--) {\n let bias = d == $pos.depth ? 0 : $pos.pos <= ($pos.start(d + 1) + $pos.end(d + 1)) / 2 ? -1 : 1;\n let insertPos = $pos.index(d) + (bias > 0 ? 1 : 0);\n let parent = $pos.node(d), fits = false;\n if (pass == 1) {\n fits = parent.canReplace(insertPos, insertPos, content);\n }\n else {\n let wrapping = parent.contentMatchAt(insertPos).findWrapping(content.firstChild.type);\n fits = wrapping && parent.canReplaceWith(insertPos, insertPos, wrapping[0]);\n }\n if (fits)\n return bias == 0 ? $pos.pos : bias < 0 ? $pos.before(d + 1) : $pos.after(d + 1);\n }\n }\n return null;\n}\n\n/**\n‘Fit’ a slice into a given position in the document, producing a\n[step](https://prosemirror.net/docs/ref/#transform.Step) that inserts it. Will return null if\nthere's no meaningful way to insert the slice here, or inserting it\nwould be a no-op (an empty slice over an empty range).\n*/\nfunction replaceStep(doc, from, to = from, slice = Slice.empty) {\n if (from == to && !slice.size)\n return null;\n let $from = doc.resolve(from), $to = doc.resolve(to);\n // Optimization -- avoid work if it's obvious that it's not needed.\n if (fitsTrivially($from, $to, slice))\n return new ReplaceStep(from, to, slice);\n return new Fitter($from, $to, slice).fit();\n}\nfunction fitsTrivially($from, $to, slice) {\n return !slice.openStart && !slice.openEnd && $from.start() == $to.start() &&\n $from.parent.canReplace($from.index(), $to.index(), slice.content);\n}\n// Algorithm for 'placing' the elements of a slice into a gap:\n//\n// We consider the content of each node that is open to the left to be\n// independently placeable. I.e. in , when the\n// paragraph on the left is open, \"foo\" can be placed (somewhere on\n// the left side of the replacement gap) independently from p(\"bar\").\n//\n// This class tracks the state of the placement progress in the\n// following properties:\n//\n// - `frontier` holds a stack of `{type, match}` objects that\n// represent the open side of the replacement. It starts at\n// `$from`, then moves forward as content is placed, and is finally\n// reconciled with `$to`.\n//\n// - `unplaced` is a slice that represents the content that hasn't\n// been placed yet.\n//\n// - `placed` is a fragment of placed content. Its open-start value\n// is implicit in `$from`, and its open-end value in `frontier`.\nclass Fitter {\n constructor($from, $to, unplaced) {\n this.$from = $from;\n this.$to = $to;\n this.unplaced = unplaced;\n this.frontier = [];\n this.placed = Fragment.empty;\n for (let i = 0; i <= $from.depth; i++) {\n let node = $from.node(i);\n this.frontier.push({\n type: node.type,\n match: node.contentMatchAt($from.indexAfter(i))\n });\n }\n for (let i = $from.depth; i > 0; i--)\n this.placed = Fragment.from($from.node(i).copy(this.placed));\n }\n get depth() { return this.frontier.length - 1; }\n fit() {\n // As long as there's unplaced content, try to place some of it.\n // If that fails, either increase the open score of the unplaced\n // slice, or drop nodes from it, and then try again.\n while (this.unplaced.size) {\n let fit = this.findFittable();\n if (fit)\n this.placeNodes(fit);\n else\n this.openMore() || this.dropNode();\n }\n // When there's inline content directly after the frontier _and_\n // directly after `this.$to`, we must generate a `ReplaceAround`\n // step that pulls that content into the node after the frontier.\n // That means the fitting must be done to the end of the textblock\n // node after `this.$to`, not `this.$to` itself.\n let moveInline = this.mustMoveInline(), placedSize = this.placed.size - this.depth - this.$from.depth;\n let $from = this.$from, $to = this.close(moveInline < 0 ? this.$to : $from.doc.resolve(moveInline));\n if (!$to)\n return null;\n // If closing to `$to` succeeded, create a step\n let content = this.placed, openStart = $from.depth, openEnd = $to.depth;\n while (openStart && openEnd && content.childCount == 1) { // Normalize by dropping open parent nodes\n content = content.firstChild.content;\n openStart--;\n openEnd--;\n }\n let slice = new Slice(content, openStart, openEnd);\n if (moveInline > -1)\n return new ReplaceAroundStep($from.pos, moveInline, this.$to.pos, this.$to.end(), slice, placedSize);\n if (slice.size || $from.pos != this.$to.pos) // Don't generate no-op steps\n return new ReplaceStep($from.pos, $to.pos, slice);\n return null;\n }\n // Find a position on the start spine of `this.unplaced` that has\n // content that can be moved somewhere on the frontier. Returns two\n // depths, one for the slice and one for the frontier.\n findFittable() {\n let startDepth = this.unplaced.openStart;\n for (let cur = this.unplaced.content, d = 0, openEnd = this.unplaced.openEnd; d < startDepth; d++) {\n let node = cur.firstChild;\n if (cur.childCount > 1)\n openEnd = 0;\n if (node.type.spec.isolating && openEnd <= d) {\n startDepth = d;\n break;\n }\n cur = node.content;\n }\n // Only try wrapping nodes (pass 2) after finding a place without\n // wrapping failed.\n for (let pass = 1; pass <= 2; pass++) {\n for (let sliceDepth = pass == 1 ? startDepth : this.unplaced.openStart; sliceDepth >= 0; sliceDepth--) {\n let fragment, parent = null;\n if (sliceDepth) {\n parent = contentAt(this.unplaced.content, sliceDepth - 1).firstChild;\n fragment = parent.content;\n }\n else {\n fragment = this.unplaced.content;\n }\n let first = fragment.firstChild;\n for (let frontierDepth = this.depth; frontierDepth >= 0; frontierDepth--) {\n let { type, match } = this.frontier[frontierDepth], wrap, inject = null;\n // In pass 1, if the next node matches, or there is no next\n // node but the parents look compatible, we've found a\n // place.\n if (pass == 1 && (first ? match.matchType(first.type) || (inject = match.fillBefore(Fragment.from(first), false))\n : parent && type.compatibleContent(parent.type)))\n return { sliceDepth, frontierDepth, parent, inject };\n // In pass 2, look for a set of wrapping nodes that make\n // `first` fit here.\n else if (pass == 2 && first && (wrap = match.findWrapping(first.type)))\n return { sliceDepth, frontierDepth, parent, wrap };\n // Don't continue looking further up if the parent node\n // would fit here.\n if (parent && match.matchType(parent.type))\n break;\n }\n }\n }\n }\n openMore() {\n let { content, openStart, openEnd } = this.unplaced;\n let inner = contentAt(content, openStart);\n if (!inner.childCount || inner.firstChild.isLeaf)\n return false;\n this.unplaced = new Slice(content, openStart + 1, Math.max(openEnd, inner.size + openStart >= content.size - openEnd ? openStart + 1 : 0));\n return true;\n }\n dropNode() {\n let { content, openStart, openEnd } = this.unplaced;\n let inner = contentAt(content, openStart);\n if (inner.childCount <= 1 && openStart > 0) {\n let openAtEnd = content.size - openStart <= openStart + inner.size;\n this.unplaced = new Slice(dropFromFragment(content, openStart - 1, 1), openStart - 1, openAtEnd ? openStart - 1 : openEnd);\n }\n else {\n this.unplaced = new Slice(dropFromFragment(content, openStart, 1), openStart, openEnd);\n }\n }\n // Move content from the unplaced slice at `sliceDepth` to the\n // frontier node at `frontierDepth`. Close that frontier node when\n // applicable.\n placeNodes({ sliceDepth, frontierDepth, parent, inject, wrap }) {\n while (this.depth > frontierDepth)\n this.closeFrontierNode();\n if (wrap)\n for (let i = 0; i < wrap.length; i++)\n this.openFrontierNode(wrap[i]);\n let slice = this.unplaced, fragment = parent ? parent.content : slice.content;\n let openStart = slice.openStart - sliceDepth;\n let taken = 0, add = [];\n let { match, type } = this.frontier[frontierDepth];\n if (inject) {\n for (let i = 0; i < inject.childCount; i++)\n add.push(inject.child(i));\n match = match.matchFragment(inject);\n }\n // Computes the amount of (end) open nodes at the end of the\n // fragment. When 0, the parent is open, but no more. When\n // negative, nothing is open.\n let openEndCount = (fragment.size + sliceDepth) - (slice.content.size - slice.openEnd);\n // Scan over the fragment, fitting as many child nodes as\n // possible.\n while (taken < fragment.childCount) {\n let next = fragment.child(taken), matches = match.matchType(next.type);\n if (!matches)\n break;\n taken++;\n if (taken > 1 || openStart == 0 || next.content.size) { // Drop empty open nodes\n match = matches;\n add.push(closeNodeStart(next.mark(type.allowedMarks(next.marks)), taken == 1 ? openStart : 0, taken == fragment.childCount ? openEndCount : -1));\n }\n }\n let toEnd = taken == fragment.childCount;\n if (!toEnd)\n openEndCount = -1;\n this.placed = addToFragment(this.placed, frontierDepth, Fragment.from(add));\n this.frontier[frontierDepth].match = match;\n // If the parent types match, and the entire node was moved, and\n // it's not open, close this frontier node right away.\n if (toEnd && openEndCount < 0 && parent && parent.type == this.frontier[this.depth].type && this.frontier.length > 1)\n this.closeFrontierNode();\n // Add new frontier nodes for any open nodes at the end.\n for (let i = 0, cur = fragment; i < openEndCount; i++) {\n let node = cur.lastChild;\n this.frontier.push({ type: node.type, match: node.contentMatchAt(node.childCount) });\n cur = node.content;\n }\n // Update `this.unplaced`. Drop the entire node from which we\n // placed it we got to its end, otherwise just drop the placed\n // nodes.\n this.unplaced = !toEnd ? new Slice(dropFromFragment(slice.content, sliceDepth, taken), slice.openStart, slice.openEnd)\n : sliceDepth == 0 ? Slice.empty\n : new Slice(dropFromFragment(slice.content, sliceDepth - 1, 1), sliceDepth - 1, openEndCount < 0 ? slice.openEnd : sliceDepth - 1);\n }\n mustMoveInline() {\n if (!this.$to.parent.isTextblock)\n return -1;\n let top = this.frontier[this.depth], level;\n if (!top.type.isTextblock || !contentAfterFits(this.$to, this.$to.depth, top.type, top.match, false) ||\n (this.$to.depth == this.depth && (level = this.findCloseLevel(this.$to)) && level.depth == this.depth))\n return -1;\n let { depth } = this.$to, after = this.$to.after(depth);\n while (depth > 1 && after == this.$to.end(--depth))\n ++after;\n return after;\n }\n findCloseLevel($to) {\n scan: for (let i = Math.min(this.depth, $to.depth); i >= 0; i--) {\n let { match, type } = this.frontier[i];\n let dropInner = i < $to.depth && $to.end(i + 1) == $to.pos + ($to.depth - (i + 1));\n let fit = contentAfterFits($to, i, type, match, dropInner);\n if (!fit)\n continue;\n for (let d = i - 1; d >= 0; d--) {\n let { match, type } = this.frontier[d];\n let matches = contentAfterFits($to, d, type, match, true);\n if (!matches || matches.childCount)\n continue scan;\n }\n return { depth: i, fit, move: dropInner ? $to.doc.resolve($to.after(i + 1)) : $to };\n }\n }\n close($to) {\n let close = this.findCloseLevel($to);\n if (!close)\n return null;\n while (this.depth > close.depth)\n this.closeFrontierNode();\n if (close.fit.childCount)\n this.placed = addToFragment(this.placed, close.depth, close.fit);\n $to = close.move;\n for (let d = close.depth + 1; d <= $to.depth; d++) {\n let node = $to.node(d), add = node.type.contentMatch.fillBefore(node.content, true, $to.index(d));\n this.openFrontierNode(node.type, node.attrs, add);\n }\n return $to;\n }\n openFrontierNode(type, attrs = null, content) {\n let top = this.frontier[this.depth];\n top.match = top.match.matchType(type);\n this.placed = addToFragment(this.placed, this.depth, Fragment.from(type.create(attrs, content)));\n this.frontier.push({ type, match: type.contentMatch });\n }\n closeFrontierNode() {\n let open = this.frontier.pop();\n let add = open.match.fillBefore(Fragment.empty, true);\n if (add.childCount)\n this.placed = addToFragment(this.placed, this.frontier.length, add);\n }\n}\nfunction dropFromFragment(fragment, depth, count) {\n if (depth == 0)\n return fragment.cutByIndex(count, fragment.childCount);\n return fragment.replaceChild(0, fragment.firstChild.copy(dropFromFragment(fragment.firstChild.content, depth - 1, count)));\n}\nfunction addToFragment(fragment, depth, content) {\n if (depth == 0)\n return fragment.append(content);\n return fragment.replaceChild(fragment.childCount - 1, fragment.lastChild.copy(addToFragment(fragment.lastChild.content, depth - 1, content)));\n}\nfunction contentAt(fragment, depth) {\n for (let i = 0; i < depth; i++)\n fragment = fragment.firstChild.content;\n return fragment;\n}\nfunction closeNodeStart(node, openStart, openEnd) {\n if (openStart <= 0)\n return node;\n let frag = node.content;\n if (openStart > 1)\n frag = frag.replaceChild(0, closeNodeStart(frag.firstChild, openStart - 1, frag.childCount == 1 ? openEnd - 1 : 0));\n if (openStart > 0) {\n frag = node.type.contentMatch.fillBefore(frag).append(frag);\n if (openEnd <= 0)\n frag = frag.append(node.type.contentMatch.matchFragment(frag).fillBefore(Fragment.empty, true));\n }\n return node.copy(frag);\n}\nfunction contentAfterFits($to, depth, type, match, open) {\n let node = $to.node(depth), index = open ? $to.indexAfter(depth) : $to.index(depth);\n if (index == node.childCount && !type.compatibleContent(node.type))\n return null;\n let fit = match.fillBefore(node.content, true, index);\n return fit && !invalidMarks(type, node.content, index) ? fit : null;\n}\nfunction invalidMarks(type, fragment, start) {\n for (let i = start; i < fragment.childCount; i++)\n if (!type.allowsMarks(fragment.child(i).marks))\n return true;\n return false;\n}\nfunction definesContent(type) {\n return type.spec.defining || type.spec.definingForContent;\n}\nfunction replaceRange(tr, from, to, slice) {\n if (!slice.size)\n return tr.deleteRange(from, to);\n let $from = tr.doc.resolve(from), $to = tr.doc.resolve(to);\n if (fitsTrivially($from, $to, slice))\n return tr.step(new ReplaceStep(from, to, slice));\n let targetDepths = coveredDepths($from, tr.doc.resolve(to));\n // Can't replace the whole document, so remove 0 if it's present\n if (targetDepths[targetDepths.length - 1] == 0)\n targetDepths.pop();\n // Negative numbers represent not expansion over the whole node at\n // that depth, but replacing from $from.before(-D) to $to.pos.\n let preferredTarget = -($from.depth + 1);\n targetDepths.unshift(preferredTarget);\n // This loop picks a preferred target depth, if one of the covering\n // depths is not outside of a defining node, and adds negative\n // depths for any depth that has $from at its start and does not\n // cross a defining node.\n for (let d = $from.depth, pos = $from.pos - 1; d > 0; d--, pos--) {\n let spec = $from.node(d).type.spec;\n if (spec.defining || spec.definingAsContext || spec.isolating)\n break;\n if (targetDepths.indexOf(d) > -1)\n preferredTarget = d;\n else if ($from.before(d) == pos)\n targetDepths.splice(1, 0, -d);\n }\n // Try to fit each possible depth of the slice into each possible\n // target depth, starting with the preferred depths.\n let preferredTargetIndex = targetDepths.indexOf(preferredTarget);\n let leftNodes = [], preferredDepth = slice.openStart;\n for (let content = slice.content, i = 0;; i++) {\n let node = content.firstChild;\n leftNodes.push(node);\n if (i == slice.openStart)\n break;\n content = node.content;\n }\n // Back up preferredDepth to cover defining textblocks directly\n // above it, possibly skipping a non-defining textblock.\n for (let d = preferredDepth - 1; d >= 0; d--) {\n let leftNode = leftNodes[d], def = definesContent(leftNode.type);\n if (def && !leftNode.sameMarkup($from.node(Math.abs(preferredTarget) - 1)))\n preferredDepth = d;\n else if (def || !leftNode.type.isTextblock)\n break;\n }\n for (let j = slice.openStart; j >= 0; j--) {\n let openDepth = (j + preferredDepth + 1) % (slice.openStart + 1);\n let insert = leftNodes[openDepth];\n if (!insert)\n continue;\n for (let i = 0; i < targetDepths.length; i++) {\n // Loop over possible expansion levels, starting with the\n // preferred one\n let targetDepth = targetDepths[(i + preferredTargetIndex) % targetDepths.length], expand = true;\n if (targetDepth < 0) {\n expand = false;\n targetDepth = -targetDepth;\n }\n let parent = $from.node(targetDepth - 1), index = $from.index(targetDepth - 1);\n if (parent.canReplaceWith(index, index, insert.type, insert.marks))\n return tr.replace($from.before(targetDepth), expand ? $to.after(targetDepth) : to, new Slice(closeFragment(slice.content, 0, slice.openStart, openDepth), openDepth, slice.openEnd));\n }\n }\n let startSteps = tr.steps.length;\n for (let i = targetDepths.length - 1; i >= 0; i--) {\n tr.replace(from, to, slice);\n if (tr.steps.length > startSteps)\n break;\n let depth = targetDepths[i];\n if (depth < 0)\n continue;\n from = $from.before(depth);\n to = $to.after(depth);\n }\n}\nfunction closeFragment(fragment, depth, oldOpen, newOpen, parent) {\n if (depth < oldOpen) {\n let first = fragment.firstChild;\n fragment = fragment.replaceChild(0, first.copy(closeFragment(first.content, depth + 1, oldOpen, newOpen, first)));\n }\n if (depth > newOpen) {\n let match = parent.contentMatchAt(0);\n let start = match.fillBefore(fragment).append(fragment);\n fragment = start.append(match.matchFragment(start).fillBefore(Fragment.empty, true));\n }\n return fragment;\n}\nfunction replaceRangeWith(tr, from, to, node) {\n if (!node.isInline && from == to && tr.doc.resolve(from).parent.content.size) {\n let point = insertPoint(tr.doc, from, node.type);\n if (point != null)\n from = to = point;\n }\n tr.replaceRange(from, to, new Slice(Fragment.from(node), 0, 0));\n}\nfunction deleteRange(tr, from, to) {\n let $from = tr.doc.resolve(from), $to = tr.doc.resolve(to);\n let covered = coveredDepths($from, $to);\n for (let i = 0; i < covered.length; i++) {\n let depth = covered[i], last = i == covered.length - 1;\n if ((last && depth == 0) || $from.node(depth).type.contentMatch.validEnd)\n return tr.delete($from.start(depth), $to.end(depth));\n if (depth > 0 && (last || $from.node(depth - 1).canReplace($from.index(depth - 1), $to.indexAfter(depth - 1))))\n return tr.delete($from.before(depth), $to.after(depth));\n }\n for (let d = 1; d <= $from.depth && d <= $to.depth; d++) {\n if (from - $from.start(d) == $from.depth - d && to > $from.end(d) && $to.end(d) - to != $to.depth - d &&\n $from.start(d - 1) == $to.start(d - 1) && $from.node(d - 1).canReplace($from.index(d - 1), $to.index(d - 1)))\n return tr.delete($from.before(d), to);\n }\n tr.delete(from, to);\n}\n// Returns an array of all depths for which $from - $to spans the\n// whole content of the nodes at that depth.\nfunction coveredDepths($from, $to) {\n let result = [], minDepth = Math.min($from.depth, $to.depth);\n for (let d = minDepth; d >= 0; d--) {\n let start = $from.start(d);\n if (start < $from.pos - ($from.depth - d) ||\n $to.end(d) > $to.pos + ($to.depth - d) ||\n $from.node(d).type.spec.isolating ||\n $to.node(d).type.spec.isolating)\n break;\n if (start == $to.start(d) ||\n (d == $from.depth && d == $to.depth && $from.parent.inlineContent && $to.parent.inlineContent &&\n d && $to.start(d - 1) == start - 1))\n result.push(d);\n }\n return result;\n}\n\n/**\nUpdate an attribute in a specific node.\n*/\nclass AttrStep extends Step {\n /**\n Construct an attribute step.\n */\n constructor(\n /**\n The position of the target node.\n */\n pos, \n /**\n The attribute to set.\n */\n attr, \n // The attribute's new value.\n value) {\n super();\n this.pos = pos;\n this.attr = attr;\n this.value = value;\n }\n apply(doc) {\n let node = doc.nodeAt(this.pos);\n if (!node)\n return StepResult.fail(\"No node at attribute step's position\");\n let attrs = Object.create(null);\n for (let name in node.attrs)\n attrs[name] = node.attrs[name];\n attrs[this.attr] = this.value;\n let updated = node.type.create(attrs, null, node.marks);\n return StepResult.fromReplace(doc, this.pos, this.pos + 1, new Slice(Fragment.from(updated), 0, node.isLeaf ? 0 : 1));\n }\n getMap() {\n return StepMap.empty;\n }\n invert(doc) {\n return new AttrStep(this.pos, this.attr, doc.nodeAt(this.pos).attrs[this.attr]);\n }\n map(mapping) {\n let pos = mapping.mapResult(this.pos, 1);\n return pos.deletedAfter ? null : new AttrStep(pos.pos, this.attr, this.value);\n }\n toJSON() {\n return { stepType: \"attr\", pos: this.pos, attr: this.attr, value: this.value };\n }\n static fromJSON(schema, json) {\n if (typeof json.pos != \"number\" || typeof json.attr != \"string\")\n throw new RangeError(\"Invalid input for AttrStep.fromJSON\");\n return new AttrStep(json.pos, json.attr, json.value);\n }\n}\nStep.jsonID(\"attr\", AttrStep);\n/**\nUpdate an attribute in the doc node.\n*/\nclass DocAttrStep extends Step {\n /**\n Construct an attribute step.\n */\n constructor(\n /**\n The attribute to set.\n */\n attr, \n // The attribute's new value.\n value) {\n super();\n this.attr = attr;\n this.value = value;\n }\n apply(doc) {\n let attrs = Object.create(null);\n for (let name in doc.attrs)\n attrs[name] = doc.attrs[name];\n attrs[this.attr] = this.value;\n let updated = doc.type.create(attrs, doc.content, doc.marks);\n return StepResult.ok(updated);\n }\n getMap() {\n return StepMap.empty;\n }\n invert(doc) {\n return new DocAttrStep(this.attr, doc.attrs[this.attr]);\n }\n map(mapping) {\n return this;\n }\n toJSON() {\n return { stepType: \"docAttr\", attr: this.attr, value: this.value };\n }\n static fromJSON(schema, json) {\n if (typeof json.attr != \"string\")\n throw new RangeError(\"Invalid input for DocAttrStep.fromJSON\");\n return new DocAttrStep(json.attr, json.value);\n }\n}\nStep.jsonID(\"docAttr\", DocAttrStep);\n\n/**\n@internal\n*/\nlet TransformError = class extends Error {\n};\nTransformError = function TransformError(message) {\n let err = Error.call(this, message);\n err.__proto__ = TransformError.prototype;\n return err;\n};\nTransformError.prototype = Object.create(Error.prototype);\nTransformError.prototype.constructor = TransformError;\nTransformError.prototype.name = \"TransformError\";\n/**\nAbstraction to build up and track an array of\n[steps](https://prosemirror.net/docs/ref/#transform.Step) representing a document transformation.\n\nMost transforming methods return the `Transform` object itself, so\nthat they can be chained.\n*/\nclass Transform {\n /**\n Create a transform that starts with the given document.\n */\n constructor(\n /**\n The current document (the result of applying the steps in the\n transform).\n */\n doc) {\n this.doc = doc;\n /**\n The steps in this transform.\n */\n this.steps = [];\n /**\n The documents before each of the steps.\n */\n this.docs = [];\n /**\n A mapping with the maps for each of the steps in this transform.\n */\n this.mapping = new Mapping;\n }\n /**\n The starting document.\n */\n get before() { return this.docs.length ? this.docs[0] : this.doc; }\n /**\n Apply a new step in this transform, saving the result. Throws an\n error when the step fails.\n */\n step(step) {\n let result = this.maybeStep(step);\n if (result.failed)\n throw new TransformError(result.failed);\n return this;\n }\n /**\n Try to apply a step in this transformation, ignoring it if it\n fails. Returns the step result.\n */\n maybeStep(step) {\n let result = step.apply(this.doc);\n if (!result.failed)\n this.addStep(step, result.doc);\n return result;\n }\n /**\n True when the document has been changed (when there are any\n steps).\n */\n get docChanged() {\n return this.steps.length > 0;\n }\n /**\n @internal\n */\n addStep(step, doc) {\n this.docs.push(this.doc);\n this.steps.push(step);\n this.mapping.appendMap(step.getMap());\n this.doc = doc;\n }\n /**\n Replace the part of the document between `from` and `to` with the\n given `slice`.\n */\n replace(from, to = from, slice = Slice.empty) {\n let step = replaceStep(this.doc, from, to, slice);\n if (step)\n this.step(step);\n return this;\n }\n /**\n Replace the given range with the given content, which may be a\n fragment, node, or array of nodes.\n */\n replaceWith(from, to, content) {\n return this.replace(from, to, new Slice(Fragment.from(content), 0, 0));\n }\n /**\n Delete the content between the given positions.\n */\n delete(from, to) {\n return this.replace(from, to, Slice.empty);\n }\n /**\n Insert the given content at the given position.\n */\n insert(pos, content) {\n return this.replaceWith(pos, pos, content);\n }\n /**\n Replace a range of the document with a given slice, using\n `from`, `to`, and the slice's\n [`openStart`](https://prosemirror.net/docs/ref/#model.Slice.openStart) property as hints, rather\n than fixed start and end points. This method may grow the\n replaced area or close open nodes in the slice in order to get a\n fit that is more in line with WYSIWYG expectations, by dropping\n fully covered parent nodes of the replaced region when they are\n marked [non-defining as\n context](https://prosemirror.net/docs/ref/#model.NodeSpec.definingAsContext), or including an\n open parent node from the slice that _is_ marked as [defining\n its content](https://prosemirror.net/docs/ref/#model.NodeSpec.definingForContent).\n \n This is the method, for example, to handle paste. The similar\n [`replace`](https://prosemirror.net/docs/ref/#transform.Transform.replace) method is a more\n primitive tool which will _not_ move the start and end of its given\n range, and is useful in situations where you need more precise\n control over what happens.\n */\n replaceRange(from, to, slice) {\n replaceRange(this, from, to, slice);\n return this;\n }\n /**\n Replace the given range with a node, but use `from` and `to` as\n hints, rather than precise positions. When from and to are the same\n and are at the start or end of a parent node in which the given\n node doesn't fit, this method may _move_ them out towards a parent\n that does allow the given node to be placed. When the given range\n completely covers a parent node, this method may completely replace\n that parent node.\n */\n replaceRangeWith(from, to, node) {\n replaceRangeWith(this, from, to, node);\n return this;\n }\n /**\n Delete the given range, expanding it to cover fully covered\n parent nodes until a valid replace is found.\n */\n deleteRange(from, to) {\n deleteRange(this, from, to);\n return this;\n }\n /**\n Split the content in the given range off from its parent, if there\n is sibling content before or after it, and move it up the tree to\n the depth specified by `target`. You'll probably want to use\n [`liftTarget`](https://prosemirror.net/docs/ref/#transform.liftTarget) to compute `target`, to make\n sure the lift is valid.\n */\n lift(range, target) {\n lift(this, range, target);\n return this;\n }\n /**\n Join the blocks around the given position. If depth is 2, their\n last and first siblings are also joined, and so on.\n */\n join(pos, depth = 1) {\n join(this, pos, depth);\n return this;\n }\n /**\n Wrap the given [range](https://prosemirror.net/docs/ref/#model.NodeRange) in the given set of wrappers.\n The wrappers are assumed to be valid in this position, and should\n probably be computed with [`findWrapping`](https://prosemirror.net/docs/ref/#transform.findWrapping).\n */\n wrap(range, wrappers) {\n wrap(this, range, wrappers);\n return this;\n }\n /**\n Set the type of all textblocks (partly) between `from` and `to` to\n the given node type with the given attributes.\n */\n setBlockType(from, to = from, type, attrs = null) {\n setBlockType(this, from, to, type, attrs);\n return this;\n }\n /**\n Change the type, attributes, and/or marks of the node at `pos`.\n When `type` isn't given, the existing node type is preserved,\n */\n setNodeMarkup(pos, type, attrs = null, marks) {\n setNodeMarkup(this, pos, type, attrs, marks);\n return this;\n }\n /**\n Set a single attribute on a given node to a new value.\n The `pos` addresses the document content. Use `setDocAttribute`\n to set attributes on the document itself.\n */\n setNodeAttribute(pos, attr, value) {\n this.step(new AttrStep(pos, attr, value));\n return this;\n }\n /**\n Set a single attribute on the document to a new value.\n */\n setDocAttribute(attr, value) {\n this.step(new DocAttrStep(attr, value));\n return this;\n }\n /**\n Add a mark to the node at position `pos`.\n */\n addNodeMark(pos, mark) {\n this.step(new AddNodeMarkStep(pos, mark));\n return this;\n }\n /**\n Remove a mark (or a mark of the given type) from the node at\n position `pos`.\n */\n removeNodeMark(pos, mark) {\n if (!(mark instanceof Mark)) {\n let node = this.doc.nodeAt(pos);\n if (!node)\n throw new RangeError(\"No node at position \" + pos);\n mark = mark.isInSet(node.marks);\n if (!mark)\n return this;\n }\n this.step(new RemoveNodeMarkStep(pos, mark));\n return this;\n }\n /**\n Split the node at the given position, and optionally, if `depth` is\n greater than one, any number of nodes above that. By default, the\n parts split off will inherit the node type of the original node.\n This can be changed by passing an array of types and attributes to\n use after the split.\n */\n split(pos, depth = 1, typesAfter) {\n split(this, pos, depth, typesAfter);\n return this;\n }\n /**\n Add the given mark to the inline content between `from` and `to`.\n */\n addMark(from, to, mark) {\n addMark(this, from, to, mark);\n return this;\n }\n /**\n Remove marks from inline nodes between `from` and `to`. When\n `mark` is a single mark, remove precisely that mark. When it is\n a mark type, remove all marks of that type. When it is null,\n remove all marks of any type.\n */\n removeMark(from, to, mark) {\n removeMark(this, from, to, mark);\n return this;\n }\n /**\n Removes all marks and nodes from the content of the node at\n `pos` that don't match the given new parent node type. Accepts\n an optional starting [content match](https://prosemirror.net/docs/ref/#model.ContentMatch) as\n third argument.\n */\n clearIncompatible(pos, parentType, match) {\n clearIncompatible(this, pos, parentType, match);\n return this;\n }\n}\n\nexport { AddMarkStep, AddNodeMarkStep, AttrStep, DocAttrStep, MapResult, Mapping, RemoveMarkStep, RemoveNodeMarkStep, ReplaceAroundStep, ReplaceStep, Step, StepMap, StepResult, Transform, TransformError, canJoin, canSplit, dropPoint, findWrapping, insertPoint, joinPoint, liftTarget, replaceStep };\n","import { Slice, Fragment, Mark, Node } from 'prosemirror-model';\nimport { ReplaceStep, ReplaceAroundStep, Transform } from 'prosemirror-transform';\n\nconst classesById = Object.create(null);\n/**\nSuperclass for editor selections. Every selection type should\nextend this. Should not be instantiated directly.\n*/\nclass Selection {\n /**\n Initialize a selection with the head and anchor and ranges. If no\n ranges are given, constructs a single range across `$anchor` and\n `$head`.\n */\n constructor(\n /**\n The resolved anchor of the selection (the side that stays in\n place when the selection is modified).\n */\n $anchor, \n /**\n The resolved head of the selection (the side that moves when\n the selection is modified).\n */\n $head, ranges) {\n this.$anchor = $anchor;\n this.$head = $head;\n this.ranges = ranges || [new SelectionRange($anchor.min($head), $anchor.max($head))];\n }\n /**\n The selection's anchor, as an unresolved position.\n */\n get anchor() { return this.$anchor.pos; }\n /**\n The selection's head.\n */\n get head() { return this.$head.pos; }\n /**\n The lower bound of the selection's main range.\n */\n get from() { return this.$from.pos; }\n /**\n The upper bound of the selection's main range.\n */\n get to() { return this.$to.pos; }\n /**\n The resolved lower bound of the selection's main range.\n */\n get $from() {\n return this.ranges[0].$from;\n }\n /**\n The resolved upper bound of the selection's main range.\n */\n get $to() {\n return this.ranges[0].$to;\n }\n /**\n Indicates whether the selection contains any content.\n */\n get empty() {\n let ranges = this.ranges;\n for (let i = 0; i < ranges.length; i++)\n if (ranges[i].$from.pos != ranges[i].$to.pos)\n return false;\n return true;\n }\n /**\n Get the content of this selection as a slice.\n */\n content() {\n return this.$from.doc.slice(this.from, this.to, true);\n }\n /**\n Replace the selection with a slice or, if no slice is given,\n delete the selection. Will append to the given transaction.\n */\n replace(tr, content = Slice.empty) {\n // Put the new selection at the position after the inserted\n // content. When that ended in an inline node, search backwards,\n // to get the position after that node. If not, search forward.\n let lastNode = content.content.lastChild, lastParent = null;\n for (let i = 0; i < content.openEnd; i++) {\n lastParent = lastNode;\n lastNode = lastNode.lastChild;\n }\n let mapFrom = tr.steps.length, ranges = this.ranges;\n for (let i = 0; i < ranges.length; i++) {\n let { $from, $to } = ranges[i], mapping = tr.mapping.slice(mapFrom);\n tr.replaceRange(mapping.map($from.pos), mapping.map($to.pos), i ? Slice.empty : content);\n if (i == 0)\n selectionToInsertionEnd(tr, mapFrom, (lastNode ? lastNode.isInline : lastParent && lastParent.isTextblock) ? -1 : 1);\n }\n }\n /**\n Replace the selection with the given node, appending the changes\n to the given transaction.\n */\n replaceWith(tr, node) {\n let mapFrom = tr.steps.length, ranges = this.ranges;\n for (let i = 0; i < ranges.length; i++) {\n let { $from, $to } = ranges[i], mapping = tr.mapping.slice(mapFrom);\n let from = mapping.map($from.pos), to = mapping.map($to.pos);\n if (i) {\n tr.deleteRange(from, to);\n }\n else {\n tr.replaceRangeWith(from, to, node);\n selectionToInsertionEnd(tr, mapFrom, node.isInline ? -1 : 1);\n }\n }\n }\n /**\n Find a valid cursor or leaf node selection starting at the given\n position and searching back if `dir` is negative, and forward if\n positive. When `textOnly` is true, only consider cursor\n selections. Will return null when no valid selection position is\n found.\n */\n static findFrom($pos, dir, textOnly = false) {\n let inner = $pos.parent.inlineContent ? new TextSelection($pos)\n : findSelectionIn($pos.node(0), $pos.parent, $pos.pos, $pos.index(), dir, textOnly);\n if (inner)\n return inner;\n for (let depth = $pos.depth - 1; depth >= 0; depth--) {\n let found = dir < 0\n ? findSelectionIn($pos.node(0), $pos.node(depth), $pos.before(depth + 1), $pos.index(depth), dir, textOnly)\n : findSelectionIn($pos.node(0), $pos.node(depth), $pos.after(depth + 1), $pos.index(depth) + 1, dir, textOnly);\n if (found)\n return found;\n }\n return null;\n }\n /**\n Find a valid cursor or leaf node selection near the given\n position. Searches forward first by default, but if `bias` is\n negative, it will search backwards first.\n */\n static near($pos, bias = 1) {\n return this.findFrom($pos, bias) || this.findFrom($pos, -bias) || new AllSelection($pos.node(0));\n }\n /**\n Find the cursor or leaf node selection closest to the start of\n the given document. Will return an\n [`AllSelection`](https://prosemirror.net/docs/ref/#state.AllSelection) if no valid position\n exists.\n */\n static atStart(doc) {\n return findSelectionIn(doc, doc, 0, 0, 1) || new AllSelection(doc);\n }\n /**\n Find the cursor or leaf node selection closest to the end of the\n given document.\n */\n static atEnd(doc) {\n return findSelectionIn(doc, doc, doc.content.size, doc.childCount, -1) || new AllSelection(doc);\n }\n /**\n Deserialize the JSON representation of a selection. Must be\n implemented for custom classes (as a static class method).\n */\n static fromJSON(doc, json) {\n if (!json || !json.type)\n throw new RangeError(\"Invalid input for Selection.fromJSON\");\n let cls = classesById[json.type];\n if (!cls)\n throw new RangeError(`No selection type ${json.type} defined`);\n return cls.fromJSON(doc, json);\n }\n /**\n To be able to deserialize selections from JSON, custom selection\n classes must register themselves with an ID string, so that they\n can be disambiguated. Try to pick something that's unlikely to\n clash with classes from other modules.\n */\n static jsonID(id, selectionClass) {\n if (id in classesById)\n throw new RangeError(\"Duplicate use of selection JSON ID \" + id);\n classesById[id] = selectionClass;\n selectionClass.prototype.jsonID = id;\n return selectionClass;\n }\n /**\n Get a [bookmark](https://prosemirror.net/docs/ref/#state.SelectionBookmark) for this selection,\n which is a value that can be mapped without having access to a\n current document, and later resolved to a real selection for a\n given document again. (This is used mostly by the history to\n track and restore old selections.) The default implementation of\n this method just converts the selection to a text selection and\n returns the bookmark for that.\n */\n getBookmark() {\n return TextSelection.between(this.$anchor, this.$head).getBookmark();\n }\n}\nSelection.prototype.visible = true;\n/**\nRepresents a selected range in a document.\n*/\nclass SelectionRange {\n /**\n Create a range.\n */\n constructor(\n /**\n The lower bound of the range.\n */\n $from, \n /**\n The upper bound of the range.\n */\n $to) {\n this.$from = $from;\n this.$to = $to;\n }\n}\nlet warnedAboutTextSelection = false;\nfunction checkTextSelection($pos) {\n if (!warnedAboutTextSelection && !$pos.parent.inlineContent) {\n warnedAboutTextSelection = true;\n console[\"warn\"](\"TextSelection endpoint not pointing into a node with inline content (\" + $pos.parent.type.name + \")\");\n }\n}\n/**\nA text selection represents a classical editor selection, with a\nhead (the moving side) and anchor (immobile side), both of which\npoint into textblock nodes. It can be empty (a regular cursor\nposition).\n*/\nclass TextSelection extends Selection {\n /**\n Construct a text selection between the given points.\n */\n constructor($anchor, $head = $anchor) {\n checkTextSelection($anchor);\n checkTextSelection($head);\n super($anchor, $head);\n }\n /**\n Returns a resolved position if this is a cursor selection (an\n empty text selection), and null otherwise.\n */\n get $cursor() { return this.$anchor.pos == this.$head.pos ? this.$head : null; }\n map(doc, mapping) {\n let $head = doc.resolve(mapping.map(this.head));\n if (!$head.parent.inlineContent)\n return Selection.near($head);\n let $anchor = doc.resolve(mapping.map(this.anchor));\n return new TextSelection($anchor.parent.inlineContent ? $anchor : $head, $head);\n }\n replace(tr, content = Slice.empty) {\n super.replace(tr, content);\n if (content == Slice.empty) {\n let marks = this.$from.marksAcross(this.$to);\n if (marks)\n tr.ensureMarks(marks);\n }\n }\n eq(other) {\n return other instanceof TextSelection && other.anchor == this.anchor && other.head == this.head;\n }\n getBookmark() {\n return new TextBookmark(this.anchor, this.head);\n }\n toJSON() {\n return { type: \"text\", anchor: this.anchor, head: this.head };\n }\n /**\n @internal\n */\n static fromJSON(doc, json) {\n if (typeof json.anchor != \"number\" || typeof json.head != \"number\")\n throw new RangeError(\"Invalid input for TextSelection.fromJSON\");\n return new TextSelection(doc.resolve(json.anchor), doc.resolve(json.head));\n }\n /**\n Create a text selection from non-resolved positions.\n */\n static create(doc, anchor, head = anchor) {\n let $anchor = doc.resolve(anchor);\n return new this($anchor, head == anchor ? $anchor : doc.resolve(head));\n }\n /**\n Return a text selection that spans the given positions or, if\n they aren't text positions, find a text selection near them.\n `bias` determines whether the method searches forward (default)\n or backwards (negative number) first. Will fall back to calling\n [`Selection.near`](https://prosemirror.net/docs/ref/#state.Selection^near) when the document\n doesn't contain a valid text position.\n */\n static between($anchor, $head, bias) {\n let dPos = $anchor.pos - $head.pos;\n if (!bias || dPos)\n bias = dPos >= 0 ? 1 : -1;\n if (!$head.parent.inlineContent) {\n let found = Selection.findFrom($head, bias, true) || Selection.findFrom($head, -bias, true);\n if (found)\n $head = found.$head;\n else\n return Selection.near($head, bias);\n }\n if (!$anchor.parent.inlineContent) {\n if (dPos == 0) {\n $anchor = $head;\n }\n else {\n $anchor = (Selection.findFrom($anchor, -bias, true) || Selection.findFrom($anchor, bias, true)).$anchor;\n if (($anchor.pos < $head.pos) != (dPos < 0))\n $anchor = $head;\n }\n }\n return new TextSelection($anchor, $head);\n }\n}\nSelection.jsonID(\"text\", TextSelection);\nclass TextBookmark {\n constructor(anchor, head) {\n this.anchor = anchor;\n this.head = head;\n }\n map(mapping) {\n return new TextBookmark(mapping.map(this.anchor), mapping.map(this.head));\n }\n resolve(doc) {\n return TextSelection.between(doc.resolve(this.anchor), doc.resolve(this.head));\n }\n}\n/**\nA node selection is a selection that points at a single node. All\nnodes marked [selectable](https://prosemirror.net/docs/ref/#model.NodeSpec.selectable) can be the\ntarget of a node selection. In such a selection, `from` and `to`\npoint directly before and after the selected node, `anchor` equals\n`from`, and `head` equals `to`..\n*/\nclass NodeSelection extends Selection {\n /**\n Create a node selection. Does not verify the validity of its\n argument.\n */\n constructor($pos) {\n let node = $pos.nodeAfter;\n let $end = $pos.node(0).resolve($pos.pos + node.nodeSize);\n super($pos, $end);\n this.node = node;\n }\n map(doc, mapping) {\n let { deleted, pos } = mapping.mapResult(this.anchor);\n let $pos = doc.resolve(pos);\n if (deleted)\n return Selection.near($pos);\n return new NodeSelection($pos);\n }\n content() {\n return new Slice(Fragment.from(this.node), 0, 0);\n }\n eq(other) {\n return other instanceof NodeSelection && other.anchor == this.anchor;\n }\n toJSON() {\n return { type: \"node\", anchor: this.anchor };\n }\n getBookmark() { return new NodeBookmark(this.anchor); }\n /**\n @internal\n */\n static fromJSON(doc, json) {\n if (typeof json.anchor != \"number\")\n throw new RangeError(\"Invalid input for NodeSelection.fromJSON\");\n return new NodeSelection(doc.resolve(json.anchor));\n }\n /**\n Create a node selection from non-resolved positions.\n */\n static create(doc, from) {\n return new NodeSelection(doc.resolve(from));\n }\n /**\n Determines whether the given node may be selected as a node\n selection.\n */\n static isSelectable(node) {\n return !node.isText && node.type.spec.selectable !== false;\n }\n}\nNodeSelection.prototype.visible = false;\nSelection.jsonID(\"node\", NodeSelection);\nclass NodeBookmark {\n constructor(anchor) {\n this.anchor = anchor;\n }\n map(mapping) {\n let { deleted, pos } = mapping.mapResult(this.anchor);\n return deleted ? new TextBookmark(pos, pos) : new NodeBookmark(pos);\n }\n resolve(doc) {\n let $pos = doc.resolve(this.anchor), node = $pos.nodeAfter;\n if (node && NodeSelection.isSelectable(node))\n return new NodeSelection($pos);\n return Selection.near($pos);\n }\n}\n/**\nA selection type that represents selecting the whole document\n(which can not necessarily be expressed with a text selection, when\nthere are for example leaf block nodes at the start or end of the\ndocument).\n*/\nclass AllSelection extends Selection {\n /**\n Create an all-selection over the given document.\n */\n constructor(doc) {\n super(doc.resolve(0), doc.resolve(doc.content.size));\n }\n replace(tr, content = Slice.empty) {\n if (content == Slice.empty) {\n tr.delete(0, tr.doc.content.size);\n let sel = Selection.atStart(tr.doc);\n if (!sel.eq(tr.selection))\n tr.setSelection(sel);\n }\n else {\n super.replace(tr, content);\n }\n }\n toJSON() { return { type: \"all\" }; }\n /**\n @internal\n */\n static fromJSON(doc) { return new AllSelection(doc); }\n map(doc) { return new AllSelection(doc); }\n eq(other) { return other instanceof AllSelection; }\n getBookmark() { return AllBookmark; }\n}\nSelection.jsonID(\"all\", AllSelection);\nconst AllBookmark = {\n map() { return this; },\n resolve(doc) { return new AllSelection(doc); }\n};\n// FIXME we'll need some awareness of text direction when scanning for selections\n// Try to find a selection inside the given node. `pos` points at the\n// position where the search starts. When `text` is true, only return\n// text selections.\nfunction findSelectionIn(doc, node, pos, index, dir, text = false) {\n if (node.inlineContent)\n return TextSelection.create(doc, pos);\n for (let i = index - (dir > 0 ? 0 : 1); dir > 0 ? i < node.childCount : i >= 0; i += dir) {\n let child = node.child(i);\n if (!child.isAtom) {\n let inner = findSelectionIn(doc, child, pos + dir, dir < 0 ? child.childCount : 0, dir, text);\n if (inner)\n return inner;\n }\n else if (!text && NodeSelection.isSelectable(child)) {\n return NodeSelection.create(doc, pos - (dir < 0 ? child.nodeSize : 0));\n }\n pos += child.nodeSize * dir;\n }\n return null;\n}\nfunction selectionToInsertionEnd(tr, startLen, bias) {\n let last = tr.steps.length - 1;\n if (last < startLen)\n return;\n let step = tr.steps[last];\n if (!(step instanceof ReplaceStep || step instanceof ReplaceAroundStep))\n return;\n let map = tr.mapping.maps[last], end;\n map.forEach((_from, _to, _newFrom, newTo) => { if (end == null)\n end = newTo; });\n tr.setSelection(Selection.near(tr.doc.resolve(end), bias));\n}\n\nconst UPDATED_SEL = 1, UPDATED_MARKS = 2, UPDATED_SCROLL = 4;\n/**\nAn editor state transaction, which can be applied to a state to\ncreate an updated state. Use\n[`EditorState.tr`](https://prosemirror.net/docs/ref/#state.EditorState.tr) to create an instance.\n\nTransactions track changes to the document (they are a subclass of\n[`Transform`](https://prosemirror.net/docs/ref/#transform.Transform)), but also other state changes,\nlike selection updates and adjustments of the set of [stored\nmarks](https://prosemirror.net/docs/ref/#state.EditorState.storedMarks). In addition, you can store\nmetadata properties in a transaction, which are extra pieces of\ninformation that client code or plugins can use to describe what a\ntransaction represents, so that they can update their [own\nstate](https://prosemirror.net/docs/ref/#state.StateField) accordingly.\n\nThe [editor view](https://prosemirror.net/docs/ref/#view.EditorView) uses a few metadata\nproperties: it will attach a property `\"pointer\"` with the value\n`true` to selection transactions directly caused by mouse or touch\ninput, a `\"composition\"` property holding an ID identifying the\ncomposition that caused it to transactions caused by composed DOM\ninput, and a `\"uiEvent\"` property of that may be `\"paste\"`,\n`\"cut\"`, or `\"drop\"`.\n*/\nclass Transaction extends Transform {\n /**\n @internal\n */\n constructor(state) {\n super(state.doc);\n // The step count for which the current selection is valid.\n this.curSelectionFor = 0;\n // Bitfield to track which aspects of the state were updated by\n // this transaction.\n this.updated = 0;\n // Object used to store metadata properties for the transaction.\n this.meta = Object.create(null);\n this.time = Date.now();\n this.curSelection = state.selection;\n this.storedMarks = state.storedMarks;\n }\n /**\n The transaction's current selection. This defaults to the editor\n selection [mapped](https://prosemirror.net/docs/ref/#state.Selection.map) through the steps in the\n transaction, but can be overwritten with\n [`setSelection`](https://prosemirror.net/docs/ref/#state.Transaction.setSelection).\n */\n get selection() {\n if (this.curSelectionFor < this.steps.length) {\n this.curSelection = this.curSelection.map(this.doc, this.mapping.slice(this.curSelectionFor));\n this.curSelectionFor = this.steps.length;\n }\n return this.curSelection;\n }\n /**\n Update the transaction's current selection. Will determine the\n selection that the editor gets when the transaction is applied.\n */\n setSelection(selection) {\n if (selection.$from.doc != this.doc)\n throw new RangeError(\"Selection passed to setSelection must point at the current document\");\n this.curSelection = selection;\n this.curSelectionFor = this.steps.length;\n this.updated = (this.updated | UPDATED_SEL) & ~UPDATED_MARKS;\n this.storedMarks = null;\n return this;\n }\n /**\n Whether the selection was explicitly updated by this transaction.\n */\n get selectionSet() {\n return (this.updated & UPDATED_SEL) > 0;\n }\n /**\n Set the current stored marks.\n */\n setStoredMarks(marks) {\n this.storedMarks = marks;\n this.updated |= UPDATED_MARKS;\n return this;\n }\n /**\n Make sure the current stored marks or, if that is null, the marks\n at the selection, match the given set of marks. Does nothing if\n this is already the case.\n */\n ensureMarks(marks) {\n if (!Mark.sameSet(this.storedMarks || this.selection.$from.marks(), marks))\n this.setStoredMarks(marks);\n return this;\n }\n /**\n Add a mark to the set of stored marks.\n */\n addStoredMark(mark) {\n return this.ensureMarks(mark.addToSet(this.storedMarks || this.selection.$head.marks()));\n }\n /**\n Remove a mark or mark type from the set of stored marks.\n */\n removeStoredMark(mark) {\n return this.ensureMarks(mark.removeFromSet(this.storedMarks || this.selection.$head.marks()));\n }\n /**\n Whether the stored marks were explicitly set for this transaction.\n */\n get storedMarksSet() {\n return (this.updated & UPDATED_MARKS) > 0;\n }\n /**\n @internal\n */\n addStep(step, doc) {\n super.addStep(step, doc);\n this.updated = this.updated & ~UPDATED_MARKS;\n this.storedMarks = null;\n }\n /**\n Update the timestamp for the transaction.\n */\n setTime(time) {\n this.time = time;\n return this;\n }\n /**\n Replace the current selection with the given slice.\n */\n replaceSelection(slice) {\n this.selection.replace(this, slice);\n return this;\n }\n /**\n Replace the selection with the given node. When `inheritMarks` is\n true and the content is inline, it inherits the marks from the\n place where it is inserted.\n */\n replaceSelectionWith(node, inheritMarks = true) {\n let selection = this.selection;\n if (inheritMarks)\n node = node.mark(this.storedMarks || (selection.empty ? selection.$from.marks() : (selection.$from.marksAcross(selection.$to) || Mark.none)));\n selection.replaceWith(this, node);\n return this;\n }\n /**\n Delete the selection.\n */\n deleteSelection() {\n this.selection.replace(this);\n return this;\n }\n /**\n Replace the given range, or the selection if no range is given,\n with a text node containing the given string.\n */\n insertText(text, from, to) {\n let schema = this.doc.type.schema;\n if (from == null) {\n if (!text)\n return this.deleteSelection();\n return this.replaceSelectionWith(schema.text(text), true);\n }\n else {\n if (to == null)\n to = from;\n to = to == null ? from : to;\n if (!text)\n return this.deleteRange(from, to);\n let marks = this.storedMarks;\n if (!marks) {\n let $from = this.doc.resolve(from);\n marks = to == from ? $from.marks() : $from.marksAcross(this.doc.resolve(to));\n }\n this.replaceRangeWith(from, to, schema.text(text, marks));\n if (!this.selection.empty)\n this.setSelection(Selection.near(this.selection.$to));\n return this;\n }\n }\n /**\n Store a metadata property in this transaction, keyed either by\n name or by plugin.\n */\n setMeta(key, value) {\n this.meta[typeof key == \"string\" ? key : key.key] = value;\n return this;\n }\n /**\n Retrieve a metadata property for a given name or plugin.\n */\n getMeta(key) {\n return this.meta[typeof key == \"string\" ? key : key.key];\n }\n /**\n Returns true if this transaction doesn't contain any metadata,\n and can thus safely be extended.\n */\n get isGeneric() {\n for (let _ in this.meta)\n return false;\n return true;\n }\n /**\n Indicate that the editor should scroll the selection into view\n when updated to the state produced by this transaction.\n */\n scrollIntoView() {\n this.updated |= UPDATED_SCROLL;\n return this;\n }\n /**\n True when this transaction has had `scrollIntoView` called on it.\n */\n get scrolledIntoView() {\n return (this.updated & UPDATED_SCROLL) > 0;\n }\n}\n\nfunction bind(f, self) {\n return !self || !f ? f : f.bind(self);\n}\nclass FieldDesc {\n constructor(name, desc, self) {\n this.name = name;\n this.init = bind(desc.init, self);\n this.apply = bind(desc.apply, self);\n }\n}\nconst baseFields = [\n new FieldDesc(\"doc\", {\n init(config) { return config.doc || config.schema.topNodeType.createAndFill(); },\n apply(tr) { return tr.doc; }\n }),\n new FieldDesc(\"selection\", {\n init(config, instance) { return config.selection || Selection.atStart(instance.doc); },\n apply(tr) { return tr.selection; }\n }),\n new FieldDesc(\"storedMarks\", {\n init(config) { return config.storedMarks || null; },\n apply(tr, _marks, _old, state) { return state.selection.$cursor ? tr.storedMarks : null; }\n }),\n new FieldDesc(\"scrollToSelection\", {\n init() { return 0; },\n apply(tr, prev) { return tr.scrolledIntoView ? prev + 1 : prev; }\n })\n];\n// Object wrapping the part of a state object that stays the same\n// across transactions. Stored in the state's `config` property.\nclass Configuration {\n constructor(schema, plugins) {\n this.schema = schema;\n this.plugins = [];\n this.pluginsByKey = Object.create(null);\n this.fields = baseFields.slice();\n if (plugins)\n plugins.forEach(plugin => {\n if (this.pluginsByKey[plugin.key])\n throw new RangeError(\"Adding different instances of a keyed plugin (\" + plugin.key + \")\");\n this.plugins.push(plugin);\n this.pluginsByKey[plugin.key] = plugin;\n if (plugin.spec.state)\n this.fields.push(new FieldDesc(plugin.key, plugin.spec.state, plugin));\n });\n }\n}\n/**\nThe state of a ProseMirror editor is represented by an object of\nthis type. A state is a persistent data structure—it isn't\nupdated, but rather a new state value is computed from an old one\nusing the [`apply`](https://prosemirror.net/docs/ref/#state.EditorState.apply) method.\n\nA state holds a number of built-in fields, and plugins can\n[define](https://prosemirror.net/docs/ref/#state.PluginSpec.state) additional fields.\n*/\nclass EditorState {\n /**\n @internal\n */\n constructor(\n /**\n @internal\n */\n config) {\n this.config = config;\n }\n /**\n The schema of the state's document.\n */\n get schema() {\n return this.config.schema;\n }\n /**\n The plugins that are active in this state.\n */\n get plugins() {\n return this.config.plugins;\n }\n /**\n Apply the given transaction to produce a new state.\n */\n apply(tr) {\n return this.applyTransaction(tr).state;\n }\n /**\n @internal\n */\n filterTransaction(tr, ignore = -1) {\n for (let i = 0; i < this.config.plugins.length; i++)\n if (i != ignore) {\n let plugin = this.config.plugins[i];\n if (plugin.spec.filterTransaction && !plugin.spec.filterTransaction.call(plugin, tr, this))\n return false;\n }\n return true;\n }\n /**\n Verbose variant of [`apply`](https://prosemirror.net/docs/ref/#state.EditorState.apply) that\n returns the precise transactions that were applied (which might\n be influenced by the [transaction\n hooks](https://prosemirror.net/docs/ref/#state.PluginSpec.filterTransaction) of\n plugins) along with the new state.\n */\n applyTransaction(rootTr) {\n if (!this.filterTransaction(rootTr))\n return { state: this, transactions: [] };\n let trs = [rootTr], newState = this.applyInner(rootTr), seen = null;\n // This loop repeatedly gives plugins a chance to respond to\n // transactions as new transactions are added, making sure to only\n // pass the transactions the plugin did not see before.\n for (;;) {\n let haveNew = false;\n for (let i = 0; i < this.config.plugins.length; i++) {\n let plugin = this.config.plugins[i];\n if (plugin.spec.appendTransaction) {\n let n = seen ? seen[i].n : 0, oldState = seen ? seen[i].state : this;\n let tr = n < trs.length &&\n plugin.spec.appendTransaction.call(plugin, n ? trs.slice(n) : trs, oldState, newState);\n if (tr && newState.filterTransaction(tr, i)) {\n tr.setMeta(\"appendedTransaction\", rootTr);\n if (!seen) {\n seen = [];\n for (let j = 0; j < this.config.plugins.length; j++)\n seen.push(j < i ? { state: newState, n: trs.length } : { state: this, n: 0 });\n }\n trs.push(tr);\n newState = newState.applyInner(tr);\n haveNew = true;\n }\n if (seen)\n seen[i] = { state: newState, n: trs.length };\n }\n }\n if (!haveNew)\n return { state: newState, transactions: trs };\n }\n }\n /**\n @internal\n */\n applyInner(tr) {\n if (!tr.before.eq(this.doc))\n throw new RangeError(\"Applying a mismatched transaction\");\n let newInstance = new EditorState(this.config), fields = this.config.fields;\n for (let i = 0; i < fields.length; i++) {\n let field = fields[i];\n newInstance[field.name] = field.apply(tr, this[field.name], this, newInstance);\n }\n return newInstance;\n }\n /**\n Start a [transaction](https://prosemirror.net/docs/ref/#state.Transaction) from this state.\n */\n get tr() { return new Transaction(this); }\n /**\n Create a new state.\n */\n static create(config) {\n let $config = new Configuration(config.doc ? config.doc.type.schema : config.schema, config.plugins);\n let instance = new EditorState($config);\n for (let i = 0; i < $config.fields.length; i++)\n instance[$config.fields[i].name] = $config.fields[i].init(config, instance);\n return instance;\n }\n /**\n Create a new state based on this one, but with an adjusted set\n of active plugins. State fields that exist in both sets of\n plugins are kept unchanged. Those that no longer exist are\n dropped, and those that are new are initialized using their\n [`init`](https://prosemirror.net/docs/ref/#state.StateField.init) method, passing in the new\n configuration object..\n */\n reconfigure(config) {\n let $config = new Configuration(this.schema, config.plugins);\n let fields = $config.fields, instance = new EditorState($config);\n for (let i = 0; i < fields.length; i++) {\n let name = fields[i].name;\n instance[name] = this.hasOwnProperty(name) ? this[name] : fields[i].init(config, instance);\n }\n return instance;\n }\n /**\n Serialize this state to JSON. If you want to serialize the state\n of plugins, pass an object mapping property names to use in the\n resulting JSON object to plugin objects. The argument may also be\n a string or number, in which case it is ignored, to support the\n way `JSON.stringify` calls `toString` methods.\n */\n toJSON(pluginFields) {\n let result = { doc: this.doc.toJSON(), selection: this.selection.toJSON() };\n if (this.storedMarks)\n result.storedMarks = this.storedMarks.map(m => m.toJSON());\n if (pluginFields && typeof pluginFields == 'object')\n for (let prop in pluginFields) {\n if (prop == \"doc\" || prop == \"selection\")\n throw new RangeError(\"The JSON fields `doc` and `selection` are reserved\");\n let plugin = pluginFields[prop], state = plugin.spec.state;\n if (state && state.toJSON)\n result[prop] = state.toJSON.call(plugin, this[plugin.key]);\n }\n return result;\n }\n /**\n Deserialize a JSON representation of a state. `config` should\n have at least a `schema` field, and should contain array of\n plugins to initialize the state with. `pluginFields` can be used\n to deserialize the state of plugins, by associating plugin\n instances with the property names they use in the JSON object.\n */\n static fromJSON(config, json, pluginFields) {\n if (!json)\n throw new RangeError(\"Invalid input for EditorState.fromJSON\");\n if (!config.schema)\n throw new RangeError(\"Required config field 'schema' missing\");\n let $config = new Configuration(config.schema, config.plugins);\n let instance = new EditorState($config);\n $config.fields.forEach(field => {\n if (field.name == \"doc\") {\n instance.doc = Node.fromJSON(config.schema, json.doc);\n }\n else if (field.name == \"selection\") {\n instance.selection = Selection.fromJSON(instance.doc, json.selection);\n }\n else if (field.name == \"storedMarks\") {\n if (json.storedMarks)\n instance.storedMarks = json.storedMarks.map(config.schema.markFromJSON);\n }\n else {\n if (pluginFields)\n for (let prop in pluginFields) {\n let plugin = pluginFields[prop], state = plugin.spec.state;\n if (plugin.key == field.name && state && state.fromJSON &&\n Object.prototype.hasOwnProperty.call(json, prop)) {\n instance[field.name] = state.fromJSON.call(plugin, config, json[prop], instance);\n return;\n }\n }\n instance[field.name] = field.init(config, instance);\n }\n });\n return instance;\n }\n}\n\nfunction bindProps(obj, self, target) {\n for (let prop in obj) {\n let val = obj[prop];\n if (val instanceof Function)\n val = val.bind(self);\n else if (prop == \"handleDOMEvents\")\n val = bindProps(val, self, {});\n target[prop] = val;\n }\n return target;\n}\n/**\nPlugins bundle functionality that can be added to an editor.\nThey are part of the [editor state](https://prosemirror.net/docs/ref/#state.EditorState) and\nmay influence that state and the view that contains it.\n*/\nclass Plugin {\n /**\n Create a plugin.\n */\n constructor(\n /**\n The plugin's [spec object](https://prosemirror.net/docs/ref/#state.PluginSpec).\n */\n spec) {\n this.spec = spec;\n /**\n The [props](https://prosemirror.net/docs/ref/#view.EditorProps) exported by this plugin.\n */\n this.props = {};\n if (spec.props)\n bindProps(spec.props, this, this.props);\n this.key = spec.key ? spec.key.key : createKey(\"plugin\");\n }\n /**\n Extract the plugin's state field from an editor state.\n */\n getState(state) { return state[this.key]; }\n}\nconst keys = Object.create(null);\nfunction createKey(name) {\n if (name in keys)\n return name + \"$\" + ++keys[name];\n keys[name] = 0;\n return name + \"$\";\n}\n/**\nA key is used to [tag](https://prosemirror.net/docs/ref/#state.PluginSpec.key) plugins in a way\nthat makes it possible to find them, given an editor state.\nAssigning a key does mean only one plugin of that type can be\nactive in a state.\n*/\nclass PluginKey {\n /**\n Create a plugin key.\n */\n constructor(name = \"key\") { this.key = createKey(name); }\n /**\n Get the active plugin with this key, if any, from an editor\n state.\n */\n get(state) { return state.config.pluginsByKey[this.key]; }\n /**\n Get the plugin's state from an editor state.\n */\n getState(state) { return state[this.key]; }\n}\n\nexport { AllSelection, EditorState, NodeSelection, Plugin, PluginKey, Selection, SelectionRange, TextSelection, Transaction };\n","import { TextSelection, NodeSelection, AllSelection, Selection } from 'prosemirror-state';\nimport { DOMSerializer, Fragment, Mark, Slice, DOMParser } from 'prosemirror-model';\nimport { dropPoint } from 'prosemirror-transform';\n\nconst domIndex = function (node) {\n for (var index = 0;; index++) {\n node = node.previousSibling;\n if (!node)\n return index;\n }\n};\nconst parentNode = function (node) {\n let parent = node.assignedSlot || node.parentNode;\n return parent && parent.nodeType == 11 ? parent.host : parent;\n};\nlet reusedRange = null;\n// Note that this will always return the same range, because DOM range\n// objects are every expensive, and keep slowing down subsequent DOM\n// updates, for some reason.\nconst textRange = function (node, from, to) {\n let range = reusedRange || (reusedRange = document.createRange());\n range.setEnd(node, to == null ? node.nodeValue.length : to);\n range.setStart(node, from || 0);\n return range;\n};\nconst clearReusedRange = function () {\n reusedRange = null;\n};\n// Scans forward and backward through DOM positions equivalent to the\n// given one to see if the two are in the same place (i.e. after a\n// text node vs at the end of that text node)\nconst isEquivalentPosition = function (node, off, targetNode, targetOff) {\n return targetNode && (scanFor(node, off, targetNode, targetOff, -1) ||\n scanFor(node, off, targetNode, targetOff, 1));\n};\nconst atomElements = /^(img|br|input|textarea|hr)$/i;\nfunction scanFor(node, off, targetNode, targetOff, dir) {\n for (;;) {\n if (node == targetNode && off == targetOff)\n return true;\n if (off == (dir < 0 ? 0 : nodeSize(node))) {\n let parent = node.parentNode;\n if (!parent || parent.nodeType != 1 || hasBlockDesc(node) || atomElements.test(node.nodeName) ||\n node.contentEditable == \"false\")\n return false;\n off = domIndex(node) + (dir < 0 ? 0 : 1);\n node = parent;\n }\n else if (node.nodeType == 1) {\n node = node.childNodes[off + (dir < 0 ? -1 : 0)];\n if (node.contentEditable == \"false\")\n return false;\n off = dir < 0 ? nodeSize(node) : 0;\n }\n else {\n return false;\n }\n }\n}\nfunction nodeSize(node) {\n return node.nodeType == 3 ? node.nodeValue.length : node.childNodes.length;\n}\nfunction textNodeBefore$1(node, offset) {\n for (;;) {\n if (node.nodeType == 3 && offset)\n return node;\n if (node.nodeType == 1 && offset > 0) {\n if (node.contentEditable == \"false\")\n return null;\n node = node.childNodes[offset - 1];\n offset = nodeSize(node);\n }\n else if (node.parentNode && !hasBlockDesc(node)) {\n offset = domIndex(node);\n node = node.parentNode;\n }\n else {\n return null;\n }\n }\n}\nfunction textNodeAfter$1(node, offset) {\n for (;;) {\n if (node.nodeType == 3 && offset < node.nodeValue.length)\n return node;\n if (node.nodeType == 1 && offset < node.childNodes.length) {\n if (node.contentEditable == \"false\")\n return null;\n node = node.childNodes[offset];\n offset = 0;\n }\n else if (node.parentNode && !hasBlockDesc(node)) {\n offset = domIndex(node) + 1;\n node = node.parentNode;\n }\n else {\n return null;\n }\n }\n}\nfunction isOnEdge(node, offset, parent) {\n for (let atStart = offset == 0, atEnd = offset == nodeSize(node); atStart || atEnd;) {\n if (node == parent)\n return true;\n let index = domIndex(node);\n node = node.parentNode;\n if (!node)\n return false;\n atStart = atStart && index == 0;\n atEnd = atEnd && index == nodeSize(node);\n }\n}\nfunction hasBlockDesc(dom) {\n let desc;\n for (let cur = dom; cur; cur = cur.parentNode)\n if (desc = cur.pmViewDesc)\n break;\n return desc && desc.node && desc.node.isBlock && (desc.dom == dom || desc.contentDOM == dom);\n}\n// Work around Chrome issue https://bugs.chromium.org/p/chromium/issues/detail?id=447523\n// (isCollapsed inappropriately returns true in shadow dom)\nconst selectionCollapsed = function (domSel) {\n return domSel.focusNode && isEquivalentPosition(domSel.focusNode, domSel.focusOffset, domSel.anchorNode, domSel.anchorOffset);\n};\nfunction keyEvent(keyCode, key) {\n let event = document.createEvent(\"Event\");\n event.initEvent(\"keydown\", true, true);\n event.keyCode = keyCode;\n event.key = event.code = key;\n return event;\n}\nfunction deepActiveElement(doc) {\n let elt = doc.activeElement;\n while (elt && elt.shadowRoot)\n elt = elt.shadowRoot.activeElement;\n return elt;\n}\nfunction caretFromPoint(doc, x, y) {\n if (doc.caretPositionFromPoint) {\n try { // Firefox throws for this call in hard-to-predict circumstances (#994)\n let pos = doc.caretPositionFromPoint(x, y);\n // Clip the offset, because Chrome will return a text offset\n // into nodes, which can't be treated as a regular DOM\n // offset\n if (pos)\n return { node: pos.offsetNode, offset: Math.min(nodeSize(pos.offsetNode), pos.offset) };\n }\n catch (_) { }\n }\n if (doc.caretRangeFromPoint) {\n let range = doc.caretRangeFromPoint(x, y);\n if (range)\n return { node: range.startContainer, offset: Math.min(nodeSize(range.startContainer), range.startOffset) };\n }\n}\n\nconst nav = typeof navigator != \"undefined\" ? navigator : null;\nconst doc = typeof document != \"undefined\" ? document : null;\nconst agent = (nav && nav.userAgent) || \"\";\nconst ie_edge = /Edge\\/(\\d+)/.exec(agent);\nconst ie_upto10 = /MSIE \\d/.exec(agent);\nconst ie_11up = /Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(agent);\nconst ie = !!(ie_upto10 || ie_11up || ie_edge);\nconst ie_version = ie_upto10 ? document.documentMode : ie_11up ? +ie_11up[1] : ie_edge ? +ie_edge[1] : 0;\nconst gecko = !ie && /gecko\\/(\\d+)/i.test(agent);\ngecko && +(/Firefox\\/(\\d+)/.exec(agent) || [0, 0])[1];\nconst _chrome = !ie && /Chrome\\/(\\d+)/.exec(agent);\nconst chrome = !!_chrome;\nconst chrome_version = _chrome ? +_chrome[1] : 0;\nconst safari = !ie && !!nav && /Apple Computer/.test(nav.vendor);\n// Is true for both iOS and iPadOS for convenience\nconst ios = safari && (/Mobile\\/\\w+/.test(agent) || !!nav && nav.maxTouchPoints > 2);\nconst mac = ios || (nav ? /Mac/.test(nav.platform) : false);\nconst windows = nav ? /Win/.test(nav.platform) : false;\nconst android = /Android \\d/.test(agent);\nconst webkit = !!doc && \"webkitFontSmoothing\" in doc.documentElement.style;\nconst webkit_version = webkit ? +(/\\bAppleWebKit\\/(\\d+)/.exec(navigator.userAgent) || [0, 0])[1] : 0;\n\nfunction windowRect(doc) {\n let vp = doc.defaultView && doc.defaultView.visualViewport;\n if (vp)\n return {\n left: 0, right: vp.width,\n top: 0, bottom: vp.height\n };\n return { left: 0, right: doc.documentElement.clientWidth,\n top: 0, bottom: doc.documentElement.clientHeight };\n}\nfunction getSide(value, side) {\n return typeof value == \"number\" ? value : value[side];\n}\nfunction clientRect(node) {\n let rect = node.getBoundingClientRect();\n // Adjust for elements with style \"transform: scale()\"\n let scaleX = (rect.width / node.offsetWidth) || 1;\n let scaleY = (rect.height / node.offsetHeight) || 1;\n // Make sure scrollbar width isn't included in the rectangle\n return { left: rect.left, right: rect.left + node.clientWidth * scaleX,\n top: rect.top, bottom: rect.top + node.clientHeight * scaleY };\n}\nfunction scrollRectIntoView(view, rect, startDOM) {\n let scrollThreshold = view.someProp(\"scrollThreshold\") || 0, scrollMargin = view.someProp(\"scrollMargin\") || 5;\n let doc = view.dom.ownerDocument;\n for (let parent = startDOM || view.dom;; parent = parentNode(parent)) {\n if (!parent)\n break;\n if (parent.nodeType != 1)\n continue;\n let elt = parent;\n let atTop = elt == doc.body;\n let bounding = atTop ? windowRect(doc) : clientRect(elt);\n let moveX = 0, moveY = 0;\n if (rect.top < bounding.top + getSide(scrollThreshold, \"top\"))\n moveY = -(bounding.top - rect.top + getSide(scrollMargin, \"top\"));\n else if (rect.bottom > bounding.bottom - getSide(scrollThreshold, \"bottom\"))\n moveY = rect.bottom - rect.top > bounding.bottom - bounding.top\n ? rect.top + getSide(scrollMargin, \"top\") - bounding.top\n : rect.bottom - bounding.bottom + getSide(scrollMargin, \"bottom\");\n if (rect.left < bounding.left + getSide(scrollThreshold, \"left\"))\n moveX = -(bounding.left - rect.left + getSide(scrollMargin, \"left\"));\n else if (rect.right > bounding.right - getSide(scrollThreshold, \"right\"))\n moveX = rect.right - bounding.right + getSide(scrollMargin, \"right\");\n if (moveX || moveY) {\n if (atTop) {\n doc.defaultView.scrollBy(moveX, moveY);\n }\n else {\n let startX = elt.scrollLeft, startY = elt.scrollTop;\n if (moveY)\n elt.scrollTop += moveY;\n if (moveX)\n elt.scrollLeft += moveX;\n let dX = elt.scrollLeft - startX, dY = elt.scrollTop - startY;\n rect = { left: rect.left - dX, top: rect.top - dY, right: rect.right - dX, bottom: rect.bottom - dY };\n }\n }\n if (atTop || /^(fixed|sticky)$/.test(getComputedStyle(parent).position))\n break;\n }\n}\n// Store the scroll position of the editor's parent nodes, along with\n// the top position of an element near the top of the editor, which\n// will be used to make sure the visible viewport remains stable even\n// when the size of the content above changes.\nfunction storeScrollPos(view) {\n let rect = view.dom.getBoundingClientRect(), startY = Math.max(0, rect.top);\n let refDOM, refTop;\n for (let x = (rect.left + rect.right) / 2, y = startY + 1; y < Math.min(innerHeight, rect.bottom); y += 5) {\n let dom = view.root.elementFromPoint(x, y);\n if (!dom || dom == view.dom || !view.dom.contains(dom))\n continue;\n let localRect = dom.getBoundingClientRect();\n if (localRect.top >= startY - 20) {\n refDOM = dom;\n refTop = localRect.top;\n break;\n }\n }\n return { refDOM: refDOM, refTop: refTop, stack: scrollStack(view.dom) };\n}\nfunction scrollStack(dom) {\n let stack = [], doc = dom.ownerDocument;\n for (let cur = dom; cur; cur = parentNode(cur)) {\n stack.push({ dom: cur, top: cur.scrollTop, left: cur.scrollLeft });\n if (dom == doc)\n break;\n }\n return stack;\n}\n// Reset the scroll position of the editor's parent nodes to that what\n// it was before, when storeScrollPos was called.\nfunction resetScrollPos({ refDOM, refTop, stack }) {\n let newRefTop = refDOM ? refDOM.getBoundingClientRect().top : 0;\n restoreScrollStack(stack, newRefTop == 0 ? 0 : newRefTop - refTop);\n}\nfunction restoreScrollStack(stack, dTop) {\n for (let i = 0; i < stack.length; i++) {\n let { dom, top, left } = stack[i];\n if (dom.scrollTop != top + dTop)\n dom.scrollTop = top + dTop;\n if (dom.scrollLeft != left)\n dom.scrollLeft = left;\n }\n}\nlet preventScrollSupported = null;\n// Feature-detects support for .focus({preventScroll: true}), and uses\n// a fallback kludge when not supported.\nfunction focusPreventScroll(dom) {\n if (dom.setActive)\n return dom.setActive(); // in IE\n if (preventScrollSupported)\n return dom.focus(preventScrollSupported);\n let stored = scrollStack(dom);\n dom.focus(preventScrollSupported == null ? {\n get preventScroll() {\n preventScrollSupported = { preventScroll: true };\n return true;\n }\n } : undefined);\n if (!preventScrollSupported) {\n preventScrollSupported = false;\n restoreScrollStack(stored, 0);\n }\n}\nfunction findOffsetInNode(node, coords) {\n let closest, dxClosest = 2e8, coordsClosest, offset = 0;\n let rowBot = coords.top, rowTop = coords.top;\n let firstBelow, coordsBelow;\n for (let child = node.firstChild, childIndex = 0; child; child = child.nextSibling, childIndex++) {\n let rects;\n if (child.nodeType == 1)\n rects = child.getClientRects();\n else if (child.nodeType == 3)\n rects = textRange(child).getClientRects();\n else\n continue;\n for (let i = 0; i < rects.length; i++) {\n let rect = rects[i];\n if (rect.top <= rowBot && rect.bottom >= rowTop) {\n rowBot = Math.max(rect.bottom, rowBot);\n rowTop = Math.min(rect.top, rowTop);\n let dx = rect.left > coords.left ? rect.left - coords.left\n : rect.right < coords.left ? coords.left - rect.right : 0;\n if (dx < dxClosest) {\n closest = child;\n dxClosest = dx;\n coordsClosest = dx && closest.nodeType == 3 ? {\n left: rect.right < coords.left ? rect.right : rect.left,\n top: coords.top\n } : coords;\n if (child.nodeType == 1 && dx)\n offset = childIndex + (coords.left >= (rect.left + rect.right) / 2 ? 1 : 0);\n continue;\n }\n }\n else if (rect.top > coords.top && !firstBelow && rect.left <= coords.left && rect.right >= coords.left) {\n firstBelow = child;\n coordsBelow = { left: Math.max(rect.left, Math.min(rect.right, coords.left)), top: rect.top };\n }\n if (!closest && (coords.left >= rect.right && coords.top >= rect.top ||\n coords.left >= rect.left && coords.top >= rect.bottom))\n offset = childIndex + 1;\n }\n }\n if (!closest && firstBelow) {\n closest = firstBelow;\n coordsClosest = coordsBelow;\n dxClosest = 0;\n }\n if (closest && closest.nodeType == 3)\n return findOffsetInText(closest, coordsClosest);\n if (!closest || (dxClosest && closest.nodeType == 1))\n return { node, offset };\n return findOffsetInNode(closest, coordsClosest);\n}\nfunction findOffsetInText(node, coords) {\n let len = node.nodeValue.length;\n let range = document.createRange();\n for (let i = 0; i < len; i++) {\n range.setEnd(node, i + 1);\n range.setStart(node, i);\n let rect = singleRect(range, 1);\n if (rect.top == rect.bottom)\n continue;\n if (inRect(coords, rect))\n return { node, offset: i + (coords.left >= (rect.left + rect.right) / 2 ? 1 : 0) };\n }\n return { node, offset: 0 };\n}\nfunction inRect(coords, rect) {\n return coords.left >= rect.left - 1 && coords.left <= rect.right + 1 &&\n coords.top >= rect.top - 1 && coords.top <= rect.bottom + 1;\n}\nfunction targetKludge(dom, coords) {\n let parent = dom.parentNode;\n if (parent && /^li$/i.test(parent.nodeName) && coords.left < dom.getBoundingClientRect().left)\n return parent;\n return dom;\n}\nfunction posFromElement(view, elt, coords) {\n let { node, offset } = findOffsetInNode(elt, coords), bias = -1;\n if (node.nodeType == 1 && !node.firstChild) {\n let rect = node.getBoundingClientRect();\n bias = rect.left != rect.right && coords.left > (rect.left + rect.right) / 2 ? 1 : -1;\n }\n return view.docView.posFromDOM(node, offset, bias);\n}\nfunction posFromCaret(view, node, offset, coords) {\n // Browser (in caretPosition/RangeFromPoint) will agressively\n // normalize towards nearby inline nodes. Since we are interested in\n // positions between block nodes too, we first walk up the hierarchy\n // of nodes to see if there are block nodes that the coordinates\n // fall outside of. If so, we take the position before/after that\n // block. If not, we call `posFromDOM` on the raw node/offset.\n let outsideBlock = -1;\n for (let cur = node, sawBlock = false;;) {\n if (cur == view.dom)\n break;\n let desc = view.docView.nearestDesc(cur, true), rect;\n if (!desc)\n return null;\n if (desc.dom.nodeType == 1 && (desc.node.isBlock && desc.parent || !desc.contentDOM) &&\n // Ignore elements with zero-size bounding rectangles\n ((rect = desc.dom.getBoundingClientRect()).width || rect.height)) {\n if (desc.node.isBlock && desc.parent) {\n // Only apply the horizontal test to the innermost block. Vertical for any parent.\n if (!sawBlock && rect.left > coords.left || rect.top > coords.top)\n outsideBlock = desc.posBefore;\n else if (!sawBlock && rect.right < coords.left || rect.bottom < coords.top)\n outsideBlock = desc.posAfter;\n sawBlock = true;\n }\n if (!desc.contentDOM && outsideBlock < 0 && !desc.node.isText) {\n // If we are inside a leaf, return the side of the leaf closer to the coords\n let before = desc.node.isBlock ? coords.top < (rect.top + rect.bottom) / 2\n : coords.left < (rect.left + rect.right) / 2;\n return before ? desc.posBefore : desc.posAfter;\n }\n }\n cur = desc.dom.parentNode;\n }\n return outsideBlock > -1 ? outsideBlock : view.docView.posFromDOM(node, offset, -1);\n}\nfunction elementFromPoint(element, coords, box) {\n let len = element.childNodes.length;\n if (len && box.top < box.bottom) {\n for (let startI = Math.max(0, Math.min(len - 1, Math.floor(len * (coords.top - box.top) / (box.bottom - box.top)) - 2)), i = startI;;) {\n let child = element.childNodes[i];\n if (child.nodeType == 1) {\n let rects = child.getClientRects();\n for (let j = 0; j < rects.length; j++) {\n let rect = rects[j];\n if (inRect(coords, rect))\n return elementFromPoint(child, coords, rect);\n }\n }\n if ((i = (i + 1) % len) == startI)\n break;\n }\n }\n return element;\n}\n// Given an x,y position on the editor, get the position in the document.\nfunction posAtCoords(view, coords) {\n let doc = view.dom.ownerDocument, node, offset = 0;\n let caret = caretFromPoint(doc, coords.left, coords.top);\n if (caret)\n ({ node, offset } = caret);\n let elt = (view.root.elementFromPoint ? view.root : doc)\n .elementFromPoint(coords.left, coords.top);\n let pos;\n if (!elt || !view.dom.contains(elt.nodeType != 1 ? elt.parentNode : elt)) {\n let box = view.dom.getBoundingClientRect();\n if (!inRect(coords, box))\n return null;\n elt = elementFromPoint(view.dom, coords, box);\n if (!elt)\n return null;\n }\n // Safari's caretRangeFromPoint returns nonsense when on a draggable element\n if (safari) {\n for (let p = elt; node && p; p = parentNode(p))\n if (p.draggable)\n node = undefined;\n }\n elt = targetKludge(elt, coords);\n if (node) {\n if (gecko && node.nodeType == 1) {\n // Firefox will sometimes return offsets into nodes, which\n // have no actual children, from caretPositionFromPoint (#953)\n offset = Math.min(offset, node.childNodes.length);\n // It'll also move the returned position before image nodes,\n // even if those are behind it.\n if (offset < node.childNodes.length) {\n let next = node.childNodes[offset], box;\n if (next.nodeName == \"IMG\" && (box = next.getBoundingClientRect()).right <= coords.left &&\n box.bottom > coords.top)\n offset++;\n }\n }\n let prev;\n // When clicking above the right side of an uneditable node, Chrome will report a cursor position after that node.\n if (webkit && offset && node.nodeType == 1 && (prev = node.childNodes[offset - 1]).nodeType == 1 &&\n prev.contentEditable == \"false\" && prev.getBoundingClientRect().top >= coords.top)\n offset--;\n // Suspiciously specific kludge to work around caret*FromPoint\n // never returning a position at the end of the document\n if (node == view.dom && offset == node.childNodes.length - 1 && node.lastChild.nodeType == 1 &&\n coords.top > node.lastChild.getBoundingClientRect().bottom)\n pos = view.state.doc.content.size;\n // Ignore positions directly after a BR, since caret*FromPoint\n // 'round up' positions that would be more accurately placed\n // before the BR node.\n else if (offset == 0 || node.nodeType != 1 || node.childNodes[offset - 1].nodeName != \"BR\")\n pos = posFromCaret(view, node, offset, coords);\n }\n if (pos == null)\n pos = posFromElement(view, elt, coords);\n let desc = view.docView.nearestDesc(elt, true);\n return { pos, inside: desc ? desc.posAtStart - desc.border : -1 };\n}\nfunction nonZero(rect) {\n return rect.top < rect.bottom || rect.left < rect.right;\n}\nfunction singleRect(target, bias) {\n let rects = target.getClientRects();\n if (rects.length) {\n let first = rects[bias < 0 ? 0 : rects.length - 1];\n if (nonZero(first))\n return first;\n }\n return Array.prototype.find.call(rects, nonZero) || target.getBoundingClientRect();\n}\nconst BIDI = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac]/;\n// Given a position in the document model, get a bounding box of the\n// character at that position, relative to the window.\nfunction coordsAtPos(view, pos, side) {\n let { node, offset, atom } = view.docView.domFromPos(pos, side < 0 ? -1 : 1);\n let supportEmptyRange = webkit || gecko;\n if (node.nodeType == 3) {\n // These browsers support querying empty text ranges. Prefer that in\n // bidi context or when at the end of a node.\n if (supportEmptyRange && (BIDI.test(node.nodeValue) || (side < 0 ? !offset : offset == node.nodeValue.length))) {\n let rect = singleRect(textRange(node, offset, offset), side);\n // Firefox returns bad results (the position before the space)\n // when querying a position directly after line-broken\n // whitespace. Detect this situation and and kludge around it\n if (gecko && offset && /\\s/.test(node.nodeValue[offset - 1]) && offset < node.nodeValue.length) {\n let rectBefore = singleRect(textRange(node, offset - 1, offset - 1), -1);\n if (rectBefore.top == rect.top) {\n let rectAfter = singleRect(textRange(node, offset, offset + 1), -1);\n if (rectAfter.top != rect.top)\n return flattenV(rectAfter, rectAfter.left < rectBefore.left);\n }\n }\n return rect;\n }\n else {\n let from = offset, to = offset, takeSide = side < 0 ? 1 : -1;\n if (side < 0 && !offset) {\n to++;\n takeSide = -1;\n }\n else if (side >= 0 && offset == node.nodeValue.length) {\n from--;\n takeSide = 1;\n }\n else if (side < 0) {\n from--;\n }\n else {\n to++;\n }\n return flattenV(singleRect(textRange(node, from, to), takeSide), takeSide < 0);\n }\n }\n let $dom = view.state.doc.resolve(pos - (atom || 0));\n // Return a horizontal line in block context\n if (!$dom.parent.inlineContent) {\n if (atom == null && offset && (side < 0 || offset == nodeSize(node))) {\n let before = node.childNodes[offset - 1];\n if (before.nodeType == 1)\n return flattenH(before.getBoundingClientRect(), false);\n }\n if (atom == null && offset < nodeSize(node)) {\n let after = node.childNodes[offset];\n if (after.nodeType == 1)\n return flattenH(after.getBoundingClientRect(), true);\n }\n return flattenH(node.getBoundingClientRect(), side >= 0);\n }\n // Inline, not in text node (this is not Bidi-safe)\n if (atom == null && offset && (side < 0 || offset == nodeSize(node))) {\n let before = node.childNodes[offset - 1];\n let target = before.nodeType == 3 ? textRange(before, nodeSize(before) - (supportEmptyRange ? 0 : 1))\n // BR nodes tend to only return the rectangle before them.\n // Only use them if they are the last element in their parent\n : before.nodeType == 1 && (before.nodeName != \"BR\" || !before.nextSibling) ? before : null;\n if (target)\n return flattenV(singleRect(target, 1), false);\n }\n if (atom == null && offset < nodeSize(node)) {\n let after = node.childNodes[offset];\n while (after.pmViewDesc && after.pmViewDesc.ignoreForCoords)\n after = after.nextSibling;\n let target = !after ? null : after.nodeType == 3 ? textRange(after, 0, (supportEmptyRange ? 0 : 1))\n : after.nodeType == 1 ? after : null;\n if (target)\n return flattenV(singleRect(target, -1), true);\n }\n // All else failed, just try to get a rectangle for the target node\n return flattenV(singleRect(node.nodeType == 3 ? textRange(node) : node, -side), side >= 0);\n}\nfunction flattenV(rect, left) {\n if (rect.width == 0)\n return rect;\n let x = left ? rect.left : rect.right;\n return { top: rect.top, bottom: rect.bottom, left: x, right: x };\n}\nfunction flattenH(rect, top) {\n if (rect.height == 0)\n return rect;\n let y = top ? rect.top : rect.bottom;\n return { top: y, bottom: y, left: rect.left, right: rect.right };\n}\nfunction withFlushedState(view, state, f) {\n let viewState = view.state, active = view.root.activeElement;\n if (viewState != state)\n view.updateState(state);\n if (active != view.dom)\n view.focus();\n try {\n return f();\n }\n finally {\n if (viewState != state)\n view.updateState(viewState);\n if (active != view.dom && active)\n active.focus();\n }\n}\n// Whether vertical position motion in a given direction\n// from a position would leave a text block.\nfunction endOfTextblockVertical(view, state, dir) {\n let sel = state.selection;\n let $pos = dir == \"up\" ? sel.$from : sel.$to;\n return withFlushedState(view, state, () => {\n let { node: dom } = view.docView.domFromPos($pos.pos, dir == \"up\" ? -1 : 1);\n for (;;) {\n let nearest = view.docView.nearestDesc(dom, true);\n if (!nearest)\n break;\n if (nearest.node.isBlock) {\n dom = nearest.contentDOM || nearest.dom;\n break;\n }\n dom = nearest.dom.parentNode;\n }\n let coords = coordsAtPos(view, $pos.pos, 1);\n for (let child = dom.firstChild; child; child = child.nextSibling) {\n let boxes;\n if (child.nodeType == 1)\n boxes = child.getClientRects();\n else if (child.nodeType == 3)\n boxes = textRange(child, 0, child.nodeValue.length).getClientRects();\n else\n continue;\n for (let i = 0; i < boxes.length; i++) {\n let box = boxes[i];\n if (box.bottom > box.top + 1 &&\n (dir == \"up\" ? coords.top - box.top > (box.bottom - coords.top) * 2\n : box.bottom - coords.bottom > (coords.bottom - box.top) * 2))\n return false;\n }\n }\n return true;\n });\n}\nconst maybeRTL = /[\\u0590-\\u08ac]/;\nfunction endOfTextblockHorizontal(view, state, dir) {\n let { $head } = state.selection;\n if (!$head.parent.isTextblock)\n return false;\n let offset = $head.parentOffset, atStart = !offset, atEnd = offset == $head.parent.content.size;\n let sel = view.domSelection();\n if (!sel)\n return $head.pos == $head.start() || $head.pos == $head.end();\n // If the textblock is all LTR, or the browser doesn't support\n // Selection.modify (Edge), fall back to a primitive approach\n if (!maybeRTL.test($head.parent.textContent) || !sel.modify)\n return dir == \"left\" || dir == \"backward\" ? atStart : atEnd;\n return withFlushedState(view, state, () => {\n // This is a huge hack, but appears to be the best we can\n // currently do: use `Selection.modify` to move the selection by\n // one character, and see if that moves the cursor out of the\n // textblock (or doesn't move it at all, when at the start/end of\n // the document).\n let { focusNode: oldNode, focusOffset: oldOff, anchorNode, anchorOffset } = view.domSelectionRange();\n let oldBidiLevel = sel.caretBidiLevel // Only for Firefox\n ;\n sel.modify(\"move\", dir, \"character\");\n let parentDOM = $head.depth ? view.docView.domAfterPos($head.before()) : view.dom;\n let { focusNode: newNode, focusOffset: newOff } = view.domSelectionRange();\n let result = newNode && !parentDOM.contains(newNode.nodeType == 1 ? newNode : newNode.parentNode) ||\n (oldNode == newNode && oldOff == newOff);\n // Restore the previous selection\n try {\n sel.collapse(anchorNode, anchorOffset);\n if (oldNode && (oldNode != anchorNode || oldOff != anchorOffset) && sel.extend)\n sel.extend(oldNode, oldOff);\n }\n catch (_) { }\n if (oldBidiLevel != null)\n sel.caretBidiLevel = oldBidiLevel;\n return result;\n });\n}\nlet cachedState = null;\nlet cachedDir = null;\nlet cachedResult = false;\nfunction endOfTextblock(view, state, dir) {\n if (cachedState == state && cachedDir == dir)\n return cachedResult;\n cachedState = state;\n cachedDir = dir;\n return cachedResult = dir == \"up\" || dir == \"down\"\n ? endOfTextblockVertical(view, state, dir)\n : endOfTextblockHorizontal(view, state, dir);\n}\n\n// View descriptions are data structures that describe the DOM that is\n// used to represent the editor's content. They are used for:\n//\n// - Incremental redrawing when the document changes\n//\n// - Figuring out what part of the document a given DOM position\n// corresponds to\n//\n// - Wiring in custom implementations of the editing interface for a\n// given node\n//\n// They form a doubly-linked mutable tree, starting at `view.docView`.\nconst NOT_DIRTY = 0, CHILD_DIRTY = 1, CONTENT_DIRTY = 2, NODE_DIRTY = 3;\n// Superclass for the various kinds of descriptions. Defines their\n// basic structure and shared methods.\nclass ViewDesc {\n constructor(parent, children, dom, \n // This is the node that holds the child views. It may be null for\n // descs that don't have children.\n contentDOM) {\n this.parent = parent;\n this.children = children;\n this.dom = dom;\n this.contentDOM = contentDOM;\n this.dirty = NOT_DIRTY;\n // An expando property on the DOM node provides a link back to its\n // description.\n dom.pmViewDesc = this;\n }\n // Used to check whether a given description corresponds to a\n // widget/mark/node.\n matchesWidget(widget) { return false; }\n matchesMark(mark) { return false; }\n matchesNode(node, outerDeco, innerDeco) { return false; }\n matchesHack(nodeName) { return false; }\n // When parsing in-editor content (in domchange.js), we allow\n // descriptions to determine the parse rules that should be used to\n // parse them.\n parseRule() { return null; }\n // Used by the editor's event handler to ignore events that come\n // from certain descs.\n stopEvent(event) { return false; }\n // The size of the content represented by this desc.\n get size() {\n let size = 0;\n for (let i = 0; i < this.children.length; i++)\n size += this.children[i].size;\n return size;\n }\n // For block nodes, this represents the space taken up by their\n // start/end tokens.\n get border() { return 0; }\n destroy() {\n this.parent = undefined;\n if (this.dom.pmViewDesc == this)\n this.dom.pmViewDesc = undefined;\n for (let i = 0; i < this.children.length; i++)\n this.children[i].destroy();\n }\n posBeforeChild(child) {\n for (let i = 0, pos = this.posAtStart;; i++) {\n let cur = this.children[i];\n if (cur == child)\n return pos;\n pos += cur.size;\n }\n }\n get posBefore() {\n return this.parent.posBeforeChild(this);\n }\n get posAtStart() {\n return this.parent ? this.parent.posBeforeChild(this) + this.border : 0;\n }\n get posAfter() {\n return this.posBefore + this.size;\n }\n get posAtEnd() {\n return this.posAtStart + this.size - 2 * this.border;\n }\n localPosFromDOM(dom, offset, bias) {\n // If the DOM position is in the content, use the child desc after\n // it to figure out a position.\n if (this.contentDOM && this.contentDOM.contains(dom.nodeType == 1 ? dom : dom.parentNode)) {\n if (bias < 0) {\n let domBefore, desc;\n if (dom == this.contentDOM) {\n domBefore = dom.childNodes[offset - 1];\n }\n else {\n while (dom.parentNode != this.contentDOM)\n dom = dom.parentNode;\n domBefore = dom.previousSibling;\n }\n while (domBefore && !((desc = domBefore.pmViewDesc) && desc.parent == this))\n domBefore = domBefore.previousSibling;\n return domBefore ? this.posBeforeChild(desc) + desc.size : this.posAtStart;\n }\n else {\n let domAfter, desc;\n if (dom == this.contentDOM) {\n domAfter = dom.childNodes[offset];\n }\n else {\n while (dom.parentNode != this.contentDOM)\n dom = dom.parentNode;\n domAfter = dom.nextSibling;\n }\n while (domAfter && !((desc = domAfter.pmViewDesc) && desc.parent == this))\n domAfter = domAfter.nextSibling;\n return domAfter ? this.posBeforeChild(desc) : this.posAtEnd;\n }\n }\n // Otherwise, use various heuristics, falling back on the bias\n // parameter, to determine whether to return the position at the\n // start or at the end of this view desc.\n let atEnd;\n if (dom == this.dom && this.contentDOM) {\n atEnd = offset > domIndex(this.contentDOM);\n }\n else if (this.contentDOM && this.contentDOM != this.dom && this.dom.contains(this.contentDOM)) {\n atEnd = dom.compareDocumentPosition(this.contentDOM) & 2;\n }\n else if (this.dom.firstChild) {\n if (offset == 0)\n for (let search = dom;; search = search.parentNode) {\n if (search == this.dom) {\n atEnd = false;\n break;\n }\n if (search.previousSibling)\n break;\n }\n if (atEnd == null && offset == dom.childNodes.length)\n for (let search = dom;; search = search.parentNode) {\n if (search == this.dom) {\n atEnd = true;\n break;\n }\n if (search.nextSibling)\n break;\n }\n }\n return (atEnd == null ? bias > 0 : atEnd) ? this.posAtEnd : this.posAtStart;\n }\n nearestDesc(dom, onlyNodes = false) {\n for (let first = true, cur = dom; cur; cur = cur.parentNode) {\n let desc = this.getDesc(cur), nodeDOM;\n if (desc && (!onlyNodes || desc.node)) {\n // If dom is outside of this desc's nodeDOM, don't count it.\n if (first && (nodeDOM = desc.nodeDOM) &&\n !(nodeDOM.nodeType == 1 ? nodeDOM.contains(dom.nodeType == 1 ? dom : dom.parentNode) : nodeDOM == dom))\n first = false;\n else\n return desc;\n }\n }\n }\n getDesc(dom) {\n let desc = dom.pmViewDesc;\n for (let cur = desc; cur; cur = cur.parent)\n if (cur == this)\n return desc;\n }\n posFromDOM(dom, offset, bias) {\n for (let scan = dom; scan; scan = scan.parentNode) {\n let desc = this.getDesc(scan);\n if (desc)\n return desc.localPosFromDOM(dom, offset, bias);\n }\n return -1;\n }\n // Find the desc for the node after the given pos, if any. (When a\n // parent node overrode rendering, there might not be one.)\n descAt(pos) {\n for (let i = 0, offset = 0; i < this.children.length; i++) {\n let child = this.children[i], end = offset + child.size;\n if (offset == pos && end != offset) {\n while (!child.border && child.children.length)\n child = child.children[0];\n return child;\n }\n if (pos < end)\n return child.descAt(pos - offset - child.border);\n offset = end;\n }\n }\n domFromPos(pos, side) {\n if (!this.contentDOM)\n return { node: this.dom, offset: 0, atom: pos + 1 };\n // First find the position in the child array\n let i = 0, offset = 0;\n for (let curPos = 0; i < this.children.length; i++) {\n let child = this.children[i], end = curPos + child.size;\n if (end > pos || child instanceof TrailingHackViewDesc) {\n offset = pos - curPos;\n break;\n }\n curPos = end;\n }\n // If this points into the middle of a child, call through\n if (offset)\n return this.children[i].domFromPos(offset - this.children[i].border, side);\n // Go back if there were any zero-length widgets with side >= 0 before this point\n for (let prev; i && !(prev = this.children[i - 1]).size && prev instanceof WidgetViewDesc && prev.side >= 0; i--) { }\n // Scan towards the first useable node\n if (side <= 0) {\n let prev, enter = true;\n for (;; i--, enter = false) {\n prev = i ? this.children[i - 1] : null;\n if (!prev || prev.dom.parentNode == this.contentDOM)\n break;\n }\n if (prev && side && enter && !prev.border && !prev.domAtom)\n return prev.domFromPos(prev.size, side);\n return { node: this.contentDOM, offset: prev ? domIndex(prev.dom) + 1 : 0 };\n }\n else {\n let next, enter = true;\n for (;; i++, enter = false) {\n next = i < this.children.length ? this.children[i] : null;\n if (!next || next.dom.parentNode == this.contentDOM)\n break;\n }\n if (next && enter && !next.border && !next.domAtom)\n return next.domFromPos(0, side);\n return { node: this.contentDOM, offset: next ? domIndex(next.dom) : this.contentDOM.childNodes.length };\n }\n }\n // Used to find a DOM range in a single parent for a given changed\n // range.\n parseRange(from, to, base = 0) {\n if (this.children.length == 0)\n return { node: this.contentDOM, from, to, fromOffset: 0, toOffset: this.contentDOM.childNodes.length };\n let fromOffset = -1, toOffset = -1;\n for (let offset = base, i = 0;; i++) {\n let child = this.children[i], end = offset + child.size;\n if (fromOffset == -1 && from <= end) {\n let childBase = offset + child.border;\n // FIXME maybe descend mark views to parse a narrower range?\n if (from >= childBase && to <= end - child.border && child.node &&\n child.contentDOM && this.contentDOM.contains(child.contentDOM))\n return child.parseRange(from, to, childBase);\n from = offset;\n for (let j = i; j > 0; j--) {\n let prev = this.children[j - 1];\n if (prev.size && prev.dom.parentNode == this.contentDOM && !prev.emptyChildAt(1)) {\n fromOffset = domIndex(prev.dom) + 1;\n break;\n }\n from -= prev.size;\n }\n if (fromOffset == -1)\n fromOffset = 0;\n }\n if (fromOffset > -1 && (end > to || i == this.children.length - 1)) {\n to = end;\n for (let j = i + 1; j < this.children.length; j++) {\n let next = this.children[j];\n if (next.size && next.dom.parentNode == this.contentDOM && !next.emptyChildAt(-1)) {\n toOffset = domIndex(next.dom);\n break;\n }\n to += next.size;\n }\n if (toOffset == -1)\n toOffset = this.contentDOM.childNodes.length;\n break;\n }\n offset = end;\n }\n return { node: this.contentDOM, from, to, fromOffset, toOffset };\n }\n emptyChildAt(side) {\n if (this.border || !this.contentDOM || !this.children.length)\n return false;\n let child = this.children[side < 0 ? 0 : this.children.length - 1];\n return child.size == 0 || child.emptyChildAt(side);\n }\n domAfterPos(pos) {\n let { node, offset } = this.domFromPos(pos, 0);\n if (node.nodeType != 1 || offset == node.childNodes.length)\n throw new RangeError(\"No node after pos \" + pos);\n return node.childNodes[offset];\n }\n // View descs are responsible for setting any selection that falls\n // entirely inside of them, so that custom implementations can do\n // custom things with the selection. Note that this falls apart when\n // a selection starts in such a node and ends in another, in which\n // case we just use whatever domFromPos produces as a best effort.\n setSelection(anchor, head, view, force = false) {\n // If the selection falls entirely in a child, give it to that child\n let from = Math.min(anchor, head), to = Math.max(anchor, head);\n for (let i = 0, offset = 0; i < this.children.length; i++) {\n let child = this.children[i], end = offset + child.size;\n if (from > offset && to < end)\n return child.setSelection(anchor - offset - child.border, head - offset - child.border, view, force);\n offset = end;\n }\n let anchorDOM = this.domFromPos(anchor, anchor ? -1 : 1);\n let headDOM = head == anchor ? anchorDOM : this.domFromPos(head, head ? -1 : 1);\n let domSel = view.root.getSelection();\n let selRange = view.domSelectionRange();\n let brKludge = false;\n // On Firefox, using Selection.collapse to put the cursor after a\n // BR node for some reason doesn't always work (#1073). On Safari,\n // the cursor sometimes inexplicable visually lags behind its\n // reported position in such situations (#1092).\n if ((gecko || safari) && anchor == head) {\n let { node, offset } = anchorDOM;\n if (node.nodeType == 3) {\n brKludge = !!(offset && node.nodeValue[offset - 1] == \"\\n\");\n // Issue #1128\n if (brKludge && offset == node.nodeValue.length) {\n for (let scan = node, after; scan; scan = scan.parentNode) {\n if (after = scan.nextSibling) {\n if (after.nodeName == \"BR\")\n anchorDOM = headDOM = { node: after.parentNode, offset: domIndex(after) + 1 };\n break;\n }\n let desc = scan.pmViewDesc;\n if (desc && desc.node && desc.node.isBlock)\n break;\n }\n }\n }\n else {\n let prev = node.childNodes[offset - 1];\n brKludge = prev && (prev.nodeName == \"BR\" || prev.contentEditable == \"false\");\n }\n }\n // Firefox can act strangely when the selection is in front of an\n // uneditable node. See #1163 and https://bugzilla.mozilla.org/show_bug.cgi?id=1709536\n if (gecko && selRange.focusNode && selRange.focusNode != headDOM.node && selRange.focusNode.nodeType == 1) {\n let after = selRange.focusNode.childNodes[selRange.focusOffset];\n if (after && after.contentEditable == \"false\")\n force = true;\n }\n if (!(force || brKludge && safari) &&\n isEquivalentPosition(anchorDOM.node, anchorDOM.offset, selRange.anchorNode, selRange.anchorOffset) &&\n isEquivalentPosition(headDOM.node, headDOM.offset, selRange.focusNode, selRange.focusOffset))\n return;\n // Selection.extend can be used to create an 'inverted' selection\n // (one where the focus is before the anchor), but not all\n // browsers support it yet.\n let domSelExtended = false;\n if ((domSel.extend || anchor == head) && !brKludge) {\n domSel.collapse(anchorDOM.node, anchorDOM.offset);\n try {\n if (anchor != head)\n domSel.extend(headDOM.node, headDOM.offset);\n domSelExtended = true;\n }\n catch (_) {\n // In some cases with Chrome the selection is empty after calling\n // collapse, even when it should be valid. This appears to be a bug, but\n // it is difficult to isolate. If this happens fallback to the old path\n // without using extend.\n // Similarly, this could crash on Safari if the editor is hidden, and\n // there was no selection.\n }\n }\n if (!domSelExtended) {\n if (anchor > head) {\n let tmp = anchorDOM;\n anchorDOM = headDOM;\n headDOM = tmp;\n }\n let range = document.createRange();\n range.setEnd(headDOM.node, headDOM.offset);\n range.setStart(anchorDOM.node, anchorDOM.offset);\n domSel.removeAllRanges();\n domSel.addRange(range);\n }\n }\n ignoreMutation(mutation) {\n return !this.contentDOM && mutation.type != \"selection\";\n }\n get contentLost() {\n return this.contentDOM && this.contentDOM != this.dom && !this.dom.contains(this.contentDOM);\n }\n // Remove a subtree of the element tree that has been touched\n // by a DOM change, so that the next update will redraw it.\n markDirty(from, to) {\n for (let offset = 0, i = 0; i < this.children.length; i++) {\n let child = this.children[i], end = offset + child.size;\n if (offset == end ? from <= end && to >= offset : from < end && to > offset) {\n let startInside = offset + child.border, endInside = end - child.border;\n if (from >= startInside && to <= endInside) {\n this.dirty = from == offset || to == end ? CONTENT_DIRTY : CHILD_DIRTY;\n if (from == startInside && to == endInside &&\n (child.contentLost || child.dom.parentNode != this.contentDOM))\n child.dirty = NODE_DIRTY;\n else\n child.markDirty(from - startInside, to - startInside);\n return;\n }\n else {\n child.dirty = child.dom == child.contentDOM && child.dom.parentNode == this.contentDOM && !child.children.length\n ? CONTENT_DIRTY : NODE_DIRTY;\n }\n }\n offset = end;\n }\n this.dirty = CONTENT_DIRTY;\n }\n markParentsDirty() {\n let level = 1;\n for (let node = this.parent; node; node = node.parent, level++) {\n let dirty = level == 1 ? CONTENT_DIRTY : CHILD_DIRTY;\n if (node.dirty < dirty)\n node.dirty = dirty;\n }\n }\n get domAtom() { return false; }\n get ignoreForCoords() { return false; }\n isText(text) { return false; }\n}\n// A widget desc represents a widget decoration, which is a DOM node\n// drawn between the document nodes.\nclass WidgetViewDesc extends ViewDesc {\n constructor(parent, widget, view, pos) {\n let self, dom = widget.type.toDOM;\n if (typeof dom == \"function\")\n dom = dom(view, () => {\n if (!self)\n return pos;\n if (self.parent)\n return self.parent.posBeforeChild(self);\n });\n if (!widget.type.spec.raw) {\n if (dom.nodeType != 1) {\n let wrap = document.createElement(\"span\");\n wrap.appendChild(dom);\n dom = wrap;\n }\n dom.contentEditable = \"false\";\n dom.classList.add(\"ProseMirror-widget\");\n }\n super(parent, [], dom, null);\n this.widget = widget;\n this.widget = widget;\n self = this;\n }\n matchesWidget(widget) {\n return this.dirty == NOT_DIRTY && widget.type.eq(this.widget.type);\n }\n parseRule() { return { ignore: true }; }\n stopEvent(event) {\n let stop = this.widget.spec.stopEvent;\n return stop ? stop(event) : false;\n }\n ignoreMutation(mutation) {\n return mutation.type != \"selection\" || this.widget.spec.ignoreSelection;\n }\n destroy() {\n this.widget.type.destroy(this.dom);\n super.destroy();\n }\n get domAtom() { return true; }\n get side() { return this.widget.type.side; }\n}\nclass CompositionViewDesc extends ViewDesc {\n constructor(parent, dom, textDOM, text) {\n super(parent, [], dom, null);\n this.textDOM = textDOM;\n this.text = text;\n }\n get size() { return this.text.length; }\n localPosFromDOM(dom, offset) {\n if (dom != this.textDOM)\n return this.posAtStart + (offset ? this.size : 0);\n return this.posAtStart + offset;\n }\n domFromPos(pos) {\n return { node: this.textDOM, offset: pos };\n }\n ignoreMutation(mut) {\n return mut.type === 'characterData' && mut.target.nodeValue == mut.oldValue;\n }\n}\n// A mark desc represents a mark. May have multiple children,\n// depending on how the mark is split. Note that marks are drawn using\n// a fixed nesting order, for simplicity and predictability, so in\n// some cases they will be split more often than would appear\n// necessary.\nclass MarkViewDesc extends ViewDesc {\n constructor(parent, mark, dom, contentDOM, spec) {\n super(parent, [], dom, contentDOM);\n this.mark = mark;\n this.spec = spec;\n }\n static create(parent, mark, inline, view) {\n let custom = view.nodeViews[mark.type.name];\n let spec = custom && custom(mark, view, inline);\n if (!spec || !spec.dom)\n spec = DOMSerializer.renderSpec(document, mark.type.spec.toDOM(mark, inline), null, mark.attrs);\n return new MarkViewDesc(parent, mark, spec.dom, spec.contentDOM || spec.dom, spec);\n }\n parseRule() {\n if ((this.dirty & NODE_DIRTY) || this.mark.type.spec.reparseInView)\n return null;\n return { mark: this.mark.type.name, attrs: this.mark.attrs, contentElement: this.contentDOM };\n }\n matchesMark(mark) { return this.dirty != NODE_DIRTY && this.mark.eq(mark); }\n markDirty(from, to) {\n super.markDirty(from, to);\n // Move dirty info to nearest node view\n if (this.dirty != NOT_DIRTY) {\n let parent = this.parent;\n while (!parent.node)\n parent = parent.parent;\n if (parent.dirty < this.dirty)\n parent.dirty = this.dirty;\n this.dirty = NOT_DIRTY;\n }\n }\n slice(from, to, view) {\n let copy = MarkViewDesc.create(this.parent, this.mark, true, view);\n let nodes = this.children, size = this.size;\n if (to < size)\n nodes = replaceNodes(nodes, to, size, view);\n if (from > 0)\n nodes = replaceNodes(nodes, 0, from, view);\n for (let i = 0; i < nodes.length; i++)\n nodes[i].parent = copy;\n copy.children = nodes;\n return copy;\n }\n ignoreMutation(mutation) {\n return this.spec.ignoreMutation ? this.spec.ignoreMutation(mutation) : super.ignoreMutation(mutation);\n }\n destroy() {\n if (this.spec.destroy)\n this.spec.destroy();\n super.destroy();\n }\n}\n// Node view descs are the main, most common type of view desc, and\n// correspond to an actual node in the document. Unlike mark descs,\n// they populate their child array themselves.\nclass NodeViewDesc extends ViewDesc {\n constructor(parent, node, outerDeco, innerDeco, dom, contentDOM, nodeDOM, view, pos) {\n super(parent, [], dom, contentDOM);\n this.node = node;\n this.outerDeco = outerDeco;\n this.innerDeco = innerDeco;\n this.nodeDOM = nodeDOM;\n }\n // By default, a node is rendered using the `toDOM` method from the\n // node type spec. But client code can use the `nodeViews` spec to\n // supply a custom node view, which can influence various aspects of\n // the way the node works.\n //\n // (Using subclassing for this was intentionally decided against,\n // since it'd require exposing a whole slew of finicky\n // implementation details to the user code that they probably will\n // never need.)\n static create(parent, node, outerDeco, innerDeco, view, pos) {\n let custom = view.nodeViews[node.type.name], descObj;\n let spec = custom && custom(node, view, () => {\n // (This is a function that allows the custom view to find its\n // own position)\n if (!descObj)\n return pos;\n if (descObj.parent)\n return descObj.parent.posBeforeChild(descObj);\n }, outerDeco, innerDeco);\n let dom = spec && spec.dom, contentDOM = spec && spec.contentDOM;\n if (node.isText) {\n if (!dom)\n dom = document.createTextNode(node.text);\n else if (dom.nodeType != 3)\n throw new RangeError(\"Text must be rendered as a DOM text node\");\n }\n else if (!dom) {\n let spec = DOMSerializer.renderSpec(document, node.type.spec.toDOM(node), null, node.attrs);\n ({ dom, contentDOM } = spec);\n }\n if (!contentDOM && !node.isText && dom.nodeName != \"BR\") { // Chrome gets confused by
\n if (!dom.hasAttribute(\"contenteditable\"))\n dom.contentEditable = \"false\";\n if (node.type.spec.draggable)\n dom.draggable = true;\n }\n let nodeDOM = dom;\n dom = applyOuterDeco(dom, outerDeco, node);\n if (spec)\n return descObj = new CustomNodeViewDesc(parent, node, outerDeco, innerDeco, dom, contentDOM || null, nodeDOM, spec, view, pos + 1);\n else if (node.isText)\n return new TextViewDesc(parent, node, outerDeco, innerDeco, dom, nodeDOM, view);\n else\n return new NodeViewDesc(parent, node, outerDeco, innerDeco, dom, contentDOM || null, nodeDOM, view, pos + 1);\n }\n parseRule() {\n // Experimental kludge to allow opt-in re-parsing of nodes\n if (this.node.type.spec.reparseInView)\n return null;\n // FIXME the assumption that this can always return the current\n // attrs means that if the user somehow manages to change the\n // attrs in the dom, that won't be picked up. Not entirely sure\n // whether this is a problem\n let rule = { node: this.node.type.name, attrs: this.node.attrs };\n if (this.node.type.whitespace == \"pre\")\n rule.preserveWhitespace = \"full\";\n if (!this.contentDOM) {\n rule.getContent = () => this.node.content;\n }\n else if (!this.contentLost) {\n rule.contentElement = this.contentDOM;\n }\n else {\n // Chrome likes to randomly recreate parent nodes when\n // backspacing things. When that happens, this tries to find the\n // new parent.\n for (let i = this.children.length - 1; i >= 0; i--) {\n let child = this.children[i];\n if (this.dom.contains(child.dom.parentNode)) {\n rule.contentElement = child.dom.parentNode;\n break;\n }\n }\n if (!rule.contentElement)\n rule.getContent = () => Fragment.empty;\n }\n return rule;\n }\n matchesNode(node, outerDeco, innerDeco) {\n return this.dirty == NOT_DIRTY && node.eq(this.node) &&\n sameOuterDeco(outerDeco, this.outerDeco) && innerDeco.eq(this.innerDeco);\n }\n get size() { return this.node.nodeSize; }\n get border() { return this.node.isLeaf ? 0 : 1; }\n // Syncs `this.children` to match `this.node.content` and the local\n // decorations, possibly introducing nesting for marks. Then, in a\n // separate step, syncs the DOM inside `this.contentDOM` to\n // `this.children`.\n updateChildren(view, pos) {\n let inline = this.node.inlineContent, off = pos;\n let composition = view.composing ? this.localCompositionInfo(view, pos) : null;\n let localComposition = composition && composition.pos > -1 ? composition : null;\n let compositionInChild = composition && composition.pos < 0;\n let updater = new ViewTreeUpdater(this, localComposition && localComposition.node, view);\n iterDeco(this.node, this.innerDeco, (widget, i, insideNode) => {\n if (widget.spec.marks)\n updater.syncToMarks(widget.spec.marks, inline, view);\n else if (widget.type.side >= 0 && !insideNode)\n updater.syncToMarks(i == this.node.childCount ? Mark.none : this.node.child(i).marks, inline, view);\n // If the next node is a desc matching this widget, reuse it,\n // otherwise insert the widget as a new view desc.\n updater.placeWidget(widget, view, off);\n }, (child, outerDeco, innerDeco, i) => {\n // Make sure the wrapping mark descs match the node's marks.\n updater.syncToMarks(child.marks, inline, view);\n // Try several strategies for drawing this node\n let compIndex;\n if (updater.findNodeMatch(child, outerDeco, innerDeco, i)) ;\n else if (compositionInChild && view.state.selection.from > off &&\n view.state.selection.to < off + child.nodeSize &&\n (compIndex = updater.findIndexWithChild(composition.node)) > -1 &&\n updater.updateNodeAt(child, outerDeco, innerDeco, compIndex, view)) ;\n else if (updater.updateNextNode(child, outerDeco, innerDeco, view, i, off)) ;\n else {\n // Add it as a new view\n updater.addNode(child, outerDeco, innerDeco, view, off);\n }\n off += child.nodeSize;\n });\n // Drop all remaining descs after the current position.\n updater.syncToMarks([], inline, view);\n if (this.node.isTextblock)\n updater.addTextblockHacks();\n updater.destroyRest();\n // Sync the DOM if anything changed\n if (updater.changed || this.dirty == CONTENT_DIRTY) {\n // May have to protect focused DOM from being changed if a composition is active\n if (localComposition)\n this.protectLocalComposition(view, localComposition);\n renderDescs(this.contentDOM, this.children, view);\n if (ios)\n iosHacks(this.dom);\n }\n }\n localCompositionInfo(view, pos) {\n // Only do something if both the selection and a focused text node\n // are inside of this node\n let { from, to } = view.state.selection;\n if (!(view.state.selection instanceof TextSelection) || from < pos || to > pos + this.node.content.size)\n return null;\n let textNode = view.input.compositionNode;\n if (!textNode || !this.dom.contains(textNode.parentNode))\n return null;\n if (this.node.inlineContent) {\n // Find the text in the focused node in the node, stop if it's not\n // there (may have been modified through other means, in which\n // case it should overwritten)\n let text = textNode.nodeValue;\n let textPos = findTextInFragment(this.node.content, text, from - pos, to - pos);\n return textPos < 0 ? null : { node: textNode, pos: textPos, text };\n }\n else {\n return { node: textNode, pos: -1, text: \"\" };\n }\n }\n protectLocalComposition(view, { node, pos, text }) {\n // The node is already part of a local view desc, leave it there\n if (this.getDesc(node))\n return;\n // Create a composition view for the orphaned nodes\n let topNode = node;\n for (;; topNode = topNode.parentNode) {\n if (topNode.parentNode == this.contentDOM)\n break;\n while (topNode.previousSibling)\n topNode.parentNode.removeChild(topNode.previousSibling);\n while (topNode.nextSibling)\n topNode.parentNode.removeChild(topNode.nextSibling);\n if (topNode.pmViewDesc)\n topNode.pmViewDesc = undefined;\n }\n let desc = new CompositionViewDesc(this, topNode, node, text);\n view.input.compositionNodes.push(desc);\n // Patch up this.children to contain the composition view\n this.children = replaceNodes(this.children, pos, pos + text.length, view, desc);\n }\n // If this desc must be updated to match the given node decoration,\n // do so and return true.\n update(node, outerDeco, innerDeco, view) {\n if (this.dirty == NODE_DIRTY ||\n !node.sameMarkup(this.node))\n return false;\n this.updateInner(node, outerDeco, innerDeco, view);\n return true;\n }\n updateInner(node, outerDeco, innerDeco, view) {\n this.updateOuterDeco(outerDeco);\n this.node = node;\n this.innerDeco = innerDeco;\n if (this.contentDOM)\n this.updateChildren(view, this.posAtStart);\n this.dirty = NOT_DIRTY;\n }\n updateOuterDeco(outerDeco) {\n if (sameOuterDeco(outerDeco, this.outerDeco))\n return;\n let needsWrap = this.nodeDOM.nodeType != 1;\n let oldDOM = this.dom;\n this.dom = patchOuterDeco(this.dom, this.nodeDOM, computeOuterDeco(this.outerDeco, this.node, needsWrap), computeOuterDeco(outerDeco, this.node, needsWrap));\n if (this.dom != oldDOM) {\n oldDOM.pmViewDesc = undefined;\n this.dom.pmViewDesc = this;\n }\n this.outerDeco = outerDeco;\n }\n // Mark this node as being the selected node.\n selectNode() {\n if (this.nodeDOM.nodeType == 1)\n this.nodeDOM.classList.add(\"ProseMirror-selectednode\");\n if (this.contentDOM || !this.node.type.spec.draggable)\n this.dom.draggable = true;\n }\n // Remove selected node marking from this node.\n deselectNode() {\n if (this.nodeDOM.nodeType == 1) {\n this.nodeDOM.classList.remove(\"ProseMirror-selectednode\");\n if (this.contentDOM || !this.node.type.spec.draggable)\n this.dom.removeAttribute(\"draggable\");\n }\n }\n get domAtom() { return this.node.isAtom; }\n}\n// Create a view desc for the top-level document node, to be exported\n// and used by the view class.\nfunction docViewDesc(doc, outerDeco, innerDeco, dom, view) {\n applyOuterDeco(dom, outerDeco, doc);\n let docView = new NodeViewDesc(undefined, doc, outerDeco, innerDeco, dom, dom, dom, view, 0);\n if (docView.contentDOM)\n docView.updateChildren(view, 0);\n return docView;\n}\nclass TextViewDesc extends NodeViewDesc {\n constructor(parent, node, outerDeco, innerDeco, dom, nodeDOM, view) {\n super(parent, node, outerDeco, innerDeco, dom, null, nodeDOM, view, 0);\n }\n parseRule() {\n let skip = this.nodeDOM.parentNode;\n while (skip && skip != this.dom && !skip.pmIsDeco)\n skip = skip.parentNode;\n return { skip: (skip || true) };\n }\n update(node, outerDeco, innerDeco, view) {\n if (this.dirty == NODE_DIRTY || (this.dirty != NOT_DIRTY && !this.inParent()) ||\n !node.sameMarkup(this.node))\n return false;\n this.updateOuterDeco(outerDeco);\n if ((this.dirty != NOT_DIRTY || node.text != this.node.text) && node.text != this.nodeDOM.nodeValue) {\n this.nodeDOM.nodeValue = node.text;\n if (view.trackWrites == this.nodeDOM)\n view.trackWrites = null;\n }\n this.node = node;\n this.dirty = NOT_DIRTY;\n return true;\n }\n inParent() {\n let parentDOM = this.parent.contentDOM;\n for (let n = this.nodeDOM; n; n = n.parentNode)\n if (n == parentDOM)\n return true;\n return false;\n }\n domFromPos(pos) {\n return { node: this.nodeDOM, offset: pos };\n }\n localPosFromDOM(dom, offset, bias) {\n if (dom == this.nodeDOM)\n return this.posAtStart + Math.min(offset, this.node.text.length);\n return super.localPosFromDOM(dom, offset, bias);\n }\n ignoreMutation(mutation) {\n return mutation.type != \"characterData\" && mutation.type != \"selection\";\n }\n slice(from, to, view) {\n let node = this.node.cut(from, to), dom = document.createTextNode(node.text);\n return new TextViewDesc(this.parent, node, this.outerDeco, this.innerDeco, dom, dom, view);\n }\n markDirty(from, to) {\n super.markDirty(from, to);\n if (this.dom != this.nodeDOM && (from == 0 || to == this.nodeDOM.nodeValue.length))\n this.dirty = NODE_DIRTY;\n }\n get domAtom() { return false; }\n isText(text) { return this.node.text == text; }\n}\n// A dummy desc used to tag trailing BR or IMG nodes created to work\n// around contentEditable terribleness.\nclass TrailingHackViewDesc extends ViewDesc {\n parseRule() { return { ignore: true }; }\n matchesHack(nodeName) { return this.dirty == NOT_DIRTY && this.dom.nodeName == nodeName; }\n get domAtom() { return true; }\n get ignoreForCoords() { return this.dom.nodeName == \"IMG\"; }\n}\n// A separate subclass is used for customized node views, so that the\n// extra checks only have to be made for nodes that are actually\n// customized.\nclass CustomNodeViewDesc extends NodeViewDesc {\n constructor(parent, node, outerDeco, innerDeco, dom, contentDOM, nodeDOM, spec, view, pos) {\n super(parent, node, outerDeco, innerDeco, dom, contentDOM, nodeDOM, view, pos);\n this.spec = spec;\n }\n // A custom `update` method gets to decide whether the update goes\n // through. If it does, and there's a `contentDOM` node, our logic\n // updates the children.\n update(node, outerDeco, innerDeco, view) {\n if (this.dirty == NODE_DIRTY)\n return false;\n if (this.spec.update && (this.node.type == node.type || this.spec.multiType)) {\n let result = this.spec.update(node, outerDeco, innerDeco);\n if (result)\n this.updateInner(node, outerDeco, innerDeco, view);\n return result;\n }\n else if (!this.contentDOM && !node.isLeaf) {\n return false;\n }\n else {\n return super.update(node, outerDeco, innerDeco, view);\n }\n }\n selectNode() {\n this.spec.selectNode ? this.spec.selectNode() : super.selectNode();\n }\n deselectNode() {\n this.spec.deselectNode ? this.spec.deselectNode() : super.deselectNode();\n }\n setSelection(anchor, head, view, force) {\n this.spec.setSelection ? this.spec.setSelection(anchor, head, view.root)\n : super.setSelection(anchor, head, view, force);\n }\n destroy() {\n if (this.spec.destroy)\n this.spec.destroy();\n super.destroy();\n }\n stopEvent(event) {\n return this.spec.stopEvent ? this.spec.stopEvent(event) : false;\n }\n ignoreMutation(mutation) {\n return this.spec.ignoreMutation ? this.spec.ignoreMutation(mutation) : super.ignoreMutation(mutation);\n }\n}\n// Sync the content of the given DOM node with the nodes associated\n// with the given array of view descs, recursing into mark descs\n// because this should sync the subtree for a whole node at a time.\nfunction renderDescs(parentDOM, descs, view) {\n let dom = parentDOM.firstChild, written = false;\n for (let i = 0; i < descs.length; i++) {\n let desc = descs[i], childDOM = desc.dom;\n if (childDOM.parentNode == parentDOM) {\n while (childDOM != dom) {\n dom = rm(dom);\n written = true;\n }\n dom = dom.nextSibling;\n }\n else {\n written = true;\n parentDOM.insertBefore(childDOM, dom);\n }\n if (desc instanceof MarkViewDesc) {\n let pos = dom ? dom.previousSibling : parentDOM.lastChild;\n renderDescs(desc.contentDOM, desc.children, view);\n dom = pos ? pos.nextSibling : parentDOM.firstChild;\n }\n }\n while (dom) {\n dom = rm(dom);\n written = true;\n }\n if (written && view.trackWrites == parentDOM)\n view.trackWrites = null;\n}\nconst OuterDecoLevel = function (nodeName) {\n if (nodeName)\n this.nodeName = nodeName;\n};\nOuterDecoLevel.prototype = Object.create(null);\nconst noDeco = [new OuterDecoLevel];\nfunction computeOuterDeco(outerDeco, node, needsWrap) {\n if (outerDeco.length == 0)\n return noDeco;\n let top = needsWrap ? noDeco[0] : new OuterDecoLevel, result = [top];\n for (let i = 0; i < outerDeco.length; i++) {\n let attrs = outerDeco[i].type.attrs;\n if (!attrs)\n continue;\n if (attrs.nodeName)\n result.push(top = new OuterDecoLevel(attrs.nodeName));\n for (let name in attrs) {\n let val = attrs[name];\n if (val == null)\n continue;\n if (needsWrap && result.length == 1)\n result.push(top = new OuterDecoLevel(node.isInline ? \"span\" : \"div\"));\n if (name == \"class\")\n top.class = (top.class ? top.class + \" \" : \"\") + val;\n else if (name == \"style\")\n top.style = (top.style ? top.style + \";\" : \"\") + val;\n else if (name != \"nodeName\")\n top[name] = val;\n }\n }\n return result;\n}\nfunction patchOuterDeco(outerDOM, nodeDOM, prevComputed, curComputed) {\n // Shortcut for trivial case\n if (prevComputed == noDeco && curComputed == noDeco)\n return nodeDOM;\n let curDOM = nodeDOM;\n for (let i = 0; i < curComputed.length; i++) {\n let deco = curComputed[i], prev = prevComputed[i];\n if (i) {\n let parent;\n if (prev && prev.nodeName == deco.nodeName && curDOM != outerDOM &&\n (parent = curDOM.parentNode) && parent.nodeName.toLowerCase() == deco.nodeName) {\n curDOM = parent;\n }\n else {\n parent = document.createElement(deco.nodeName);\n parent.pmIsDeco = true;\n parent.appendChild(curDOM);\n prev = noDeco[0];\n curDOM = parent;\n }\n }\n patchAttributes(curDOM, prev || noDeco[0], deco);\n }\n return curDOM;\n}\nfunction patchAttributes(dom, prev, cur) {\n for (let name in prev)\n if (name != \"class\" && name != \"style\" && name != \"nodeName\" && !(name in cur))\n dom.removeAttribute(name);\n for (let name in cur)\n if (name != \"class\" && name != \"style\" && name != \"nodeName\" && cur[name] != prev[name])\n dom.setAttribute(name, cur[name]);\n if (prev.class != cur.class) {\n let prevList = prev.class ? prev.class.split(\" \").filter(Boolean) : [];\n let curList = cur.class ? cur.class.split(\" \").filter(Boolean) : [];\n for (let i = 0; i < prevList.length; i++)\n if (curList.indexOf(prevList[i]) == -1)\n dom.classList.remove(prevList[i]);\n for (let i = 0; i < curList.length; i++)\n if (prevList.indexOf(curList[i]) == -1)\n dom.classList.add(curList[i]);\n if (dom.classList.length == 0)\n dom.removeAttribute(\"class\");\n }\n if (prev.style != cur.style) {\n if (prev.style) {\n let prop = /\\s*([\\w\\-\\xa1-\\uffff]+)\\s*:(?:\"(?:\\\\.|[^\"])*\"|'(?:\\\\.|[^'])*'|\\(.*?\\)|[^;])*/g, m;\n while (m = prop.exec(prev.style))\n dom.style.removeProperty(m[1]);\n }\n if (cur.style)\n dom.style.cssText += cur.style;\n }\n}\nfunction applyOuterDeco(dom, deco, node) {\n return patchOuterDeco(dom, dom, noDeco, computeOuterDeco(deco, node, dom.nodeType != 1));\n}\nfunction sameOuterDeco(a, b) {\n if (a.length != b.length)\n return false;\n for (let i = 0; i < a.length; i++)\n if (!a[i].type.eq(b[i].type))\n return false;\n return true;\n}\n// Remove a DOM node and return its next sibling.\nfunction rm(dom) {\n let next = dom.nextSibling;\n dom.parentNode.removeChild(dom);\n return next;\n}\n// Helper class for incrementally updating a tree of mark descs and\n// the widget and node descs inside of them.\nclass ViewTreeUpdater {\n constructor(top, lock, view) {\n this.lock = lock;\n this.view = view;\n // Index into `this.top`'s child array, represents the current\n // update position.\n this.index = 0;\n // When entering a mark, the current top and index are pushed\n // onto this.\n this.stack = [];\n // Tracks whether anything was changed\n this.changed = false;\n this.top = top;\n this.preMatch = preMatch(top.node.content, top);\n }\n // Destroy and remove the children between the given indices in\n // `this.top`.\n destroyBetween(start, end) {\n if (start == end)\n return;\n for (let i = start; i < end; i++)\n this.top.children[i].destroy();\n this.top.children.splice(start, end - start);\n this.changed = true;\n }\n // Destroy all remaining children in `this.top`.\n destroyRest() {\n this.destroyBetween(this.index, this.top.children.length);\n }\n // Sync the current stack of mark descs with the given array of\n // marks, reusing existing mark descs when possible.\n syncToMarks(marks, inline, view) {\n let keep = 0, depth = this.stack.length >> 1;\n let maxKeep = Math.min(depth, marks.length);\n while (keep < maxKeep &&\n (keep == depth - 1 ? this.top : this.stack[(keep + 1) << 1])\n .matchesMark(marks[keep]) && marks[keep].type.spec.spanning !== false)\n keep++;\n while (keep < depth) {\n this.destroyRest();\n this.top.dirty = NOT_DIRTY;\n this.index = this.stack.pop();\n this.top = this.stack.pop();\n depth--;\n }\n while (depth < marks.length) {\n this.stack.push(this.top, this.index + 1);\n let found = -1;\n for (let i = this.index; i < Math.min(this.index + 3, this.top.children.length); i++) {\n let next = this.top.children[i];\n if (next.matchesMark(marks[depth]) && !this.isLocked(next.dom)) {\n found = i;\n break;\n }\n }\n if (found > -1) {\n if (found > this.index) {\n this.changed = true;\n this.destroyBetween(this.index, found);\n }\n this.top = this.top.children[this.index];\n }\n else {\n let markDesc = MarkViewDesc.create(this.top, marks[depth], inline, view);\n this.top.children.splice(this.index, 0, markDesc);\n this.top = markDesc;\n this.changed = true;\n }\n this.index = 0;\n depth++;\n }\n }\n // Try to find a node desc matching the given data. Skip over it and\n // return true when successful.\n findNodeMatch(node, outerDeco, innerDeco, index) {\n let found = -1, targetDesc;\n if (index >= this.preMatch.index &&\n (targetDesc = this.preMatch.matches[index - this.preMatch.index]).parent == this.top &&\n targetDesc.matchesNode(node, outerDeco, innerDeco)) {\n found = this.top.children.indexOf(targetDesc, this.index);\n }\n else {\n for (let i = this.index, e = Math.min(this.top.children.length, i + 5); i < e; i++) {\n let child = this.top.children[i];\n if (child.matchesNode(node, outerDeco, innerDeco) && !this.preMatch.matched.has(child)) {\n found = i;\n break;\n }\n }\n }\n if (found < 0)\n return false;\n this.destroyBetween(this.index, found);\n this.index++;\n return true;\n }\n updateNodeAt(node, outerDeco, innerDeco, index, view) {\n let child = this.top.children[index];\n if (child.dirty == NODE_DIRTY && child.dom == child.contentDOM)\n child.dirty = CONTENT_DIRTY;\n if (!child.update(node, outerDeco, innerDeco, view))\n return false;\n this.destroyBetween(this.index, index);\n this.index++;\n return true;\n }\n findIndexWithChild(domNode) {\n for (;;) {\n let parent = domNode.parentNode;\n if (!parent)\n return -1;\n if (parent == this.top.contentDOM) {\n let desc = domNode.pmViewDesc;\n if (desc)\n for (let i = this.index; i < this.top.children.length; i++) {\n if (this.top.children[i] == desc)\n return i;\n }\n return -1;\n }\n domNode = parent;\n }\n }\n // Try to update the next node, if any, to the given data. Checks\n // pre-matches to avoid overwriting nodes that could still be used.\n updateNextNode(node, outerDeco, innerDeco, view, index, pos) {\n for (let i = this.index; i < this.top.children.length; i++) {\n let next = this.top.children[i];\n if (next instanceof NodeViewDesc) {\n let preMatch = this.preMatch.matched.get(next);\n if (preMatch != null && preMatch != index)\n return false;\n let nextDOM = next.dom, updated;\n // Can't update if nextDOM is or contains this.lock, except if\n // it's a text node whose content already matches the new text\n // and whose decorations match the new ones.\n let locked = this.isLocked(nextDOM) &&\n !(node.isText && next.node && next.node.isText && next.nodeDOM.nodeValue == node.text &&\n next.dirty != NODE_DIRTY && sameOuterDeco(outerDeco, next.outerDeco));\n if (!locked && next.update(node, outerDeco, innerDeco, view)) {\n this.destroyBetween(this.index, i);\n if (next.dom != nextDOM)\n this.changed = true;\n this.index++;\n return true;\n }\n else if (!locked && (updated = this.recreateWrapper(next, node, outerDeco, innerDeco, view, pos))) {\n this.destroyBetween(this.index, i);\n this.top.children[this.index] = updated;\n if (updated.contentDOM) {\n updated.dirty = CONTENT_DIRTY;\n updated.updateChildren(view, pos + 1);\n updated.dirty = NOT_DIRTY;\n }\n this.changed = true;\n this.index++;\n return true;\n }\n break;\n }\n }\n return false;\n }\n // When a node with content is replaced by a different node with\n // identical content, move over its children.\n recreateWrapper(next, node, outerDeco, innerDeco, view, pos) {\n if (next.dirty || node.isAtom || !next.children.length ||\n !next.node.content.eq(node.content) ||\n !sameOuterDeco(outerDeco, next.outerDeco) || !innerDeco.eq(next.innerDeco))\n return null;\n let wrapper = NodeViewDesc.create(this.top, node, outerDeco, innerDeco, view, pos);\n if (wrapper.contentDOM) {\n wrapper.children = next.children;\n next.children = [];\n for (let ch of wrapper.children)\n ch.parent = wrapper;\n }\n next.destroy();\n return wrapper;\n }\n // Insert the node as a newly created node desc.\n addNode(node, outerDeco, innerDeco, view, pos) {\n let desc = NodeViewDesc.create(this.top, node, outerDeco, innerDeco, view, pos);\n if (desc.contentDOM)\n desc.updateChildren(view, pos + 1);\n this.top.children.splice(this.index++, 0, desc);\n this.changed = true;\n }\n placeWidget(widget, view, pos) {\n let next = this.index < this.top.children.length ? this.top.children[this.index] : null;\n if (next && next.matchesWidget(widget) &&\n (widget == next.widget || !next.widget.type.toDOM.parentNode)) {\n this.index++;\n }\n else {\n let desc = new WidgetViewDesc(this.top, widget, view, pos);\n this.top.children.splice(this.index++, 0, desc);\n this.changed = true;\n }\n }\n // Make sure a textblock looks and behaves correctly in\n // contentEditable.\n addTextblockHacks() {\n let lastChild = this.top.children[this.index - 1], parent = this.top;\n while (lastChild instanceof MarkViewDesc) {\n parent = lastChild;\n lastChild = parent.children[parent.children.length - 1];\n }\n if (!lastChild || // Empty textblock\n !(lastChild instanceof TextViewDesc) ||\n /\\n$/.test(lastChild.node.text) ||\n (this.view.requiresGeckoHackNode && /\\s$/.test(lastChild.node.text))) {\n // Avoid bugs in Safari's cursor drawing (#1165) and Chrome's mouse selection (#1152)\n if ((safari || chrome) && lastChild && lastChild.dom.contentEditable == \"false\")\n this.addHackNode(\"IMG\", parent);\n this.addHackNode(\"BR\", this.top);\n }\n }\n addHackNode(nodeName, parent) {\n if (parent == this.top && this.index < parent.children.length && parent.children[this.index].matchesHack(nodeName)) {\n this.index++;\n }\n else {\n let dom = document.createElement(nodeName);\n if (nodeName == \"IMG\") {\n dom.className = \"ProseMirror-separator\";\n dom.alt = \"\";\n }\n if (nodeName == \"BR\")\n dom.className = \"ProseMirror-trailingBreak\";\n let hack = new TrailingHackViewDesc(this.top, [], dom, null);\n if (parent != this.top)\n parent.children.push(hack);\n else\n parent.children.splice(this.index++, 0, hack);\n this.changed = true;\n }\n }\n isLocked(node) {\n return this.lock && (node == this.lock || node.nodeType == 1 && node.contains(this.lock.parentNode));\n }\n}\n// Iterate from the end of the fragment and array of descs to find\n// directly matching ones, in order to avoid overeagerly reusing those\n// for other nodes. Returns the fragment index of the first node that\n// is part of the sequence of matched nodes at the end of the\n// fragment.\nfunction preMatch(frag, parentDesc) {\n let curDesc = parentDesc, descI = curDesc.children.length;\n let fI = frag.childCount, matched = new Map, matches = [];\n outer: while (fI > 0) {\n let desc;\n for (;;) {\n if (descI) {\n let next = curDesc.children[descI - 1];\n if (next instanceof MarkViewDesc) {\n curDesc = next;\n descI = next.children.length;\n }\n else {\n desc = next;\n descI--;\n break;\n }\n }\n else if (curDesc == parentDesc) {\n break outer;\n }\n else {\n // FIXME\n descI = curDesc.parent.children.indexOf(curDesc);\n curDesc = curDesc.parent;\n }\n }\n let node = desc.node;\n if (!node)\n continue;\n if (node != frag.child(fI - 1))\n break;\n --fI;\n matched.set(desc, fI);\n matches.push(desc);\n }\n return { index: fI, matched, matches: matches.reverse() };\n}\nfunction compareSide(a, b) {\n return a.type.side - b.type.side;\n}\n// This function abstracts iterating over the nodes and decorations in\n// a fragment. Calls `onNode` for each node, with its local and child\n// decorations. Splits text nodes when there is a decoration starting\n// or ending inside of them. Calls `onWidget` for each widget.\nfunction iterDeco(parent, deco, onWidget, onNode) {\n let locals = deco.locals(parent), offset = 0;\n // Simple, cheap variant for when there are no local decorations\n if (locals.length == 0) {\n for (let i = 0; i < parent.childCount; i++) {\n let child = parent.child(i);\n onNode(child, locals, deco.forChild(offset, child), i);\n offset += child.nodeSize;\n }\n return;\n }\n let decoIndex = 0, active = [], restNode = null;\n for (let parentIndex = 0;;) {\n let widget, widgets;\n while (decoIndex < locals.length && locals[decoIndex].to == offset) {\n let next = locals[decoIndex++];\n if (next.widget) {\n if (!widget)\n widget = next;\n else\n (widgets || (widgets = [widget])).push(next);\n }\n }\n if (widget) {\n if (widgets) {\n widgets.sort(compareSide);\n for (let i = 0; i < widgets.length; i++)\n onWidget(widgets[i], parentIndex, !!restNode);\n }\n else {\n onWidget(widget, parentIndex, !!restNode);\n }\n }\n let child, index;\n if (restNode) {\n index = -1;\n child = restNode;\n restNode = null;\n }\n else if (parentIndex < parent.childCount) {\n index = parentIndex;\n child = parent.child(parentIndex++);\n }\n else {\n break;\n }\n for (let i = 0; i < active.length; i++)\n if (active[i].to <= offset)\n active.splice(i--, 1);\n while (decoIndex < locals.length && locals[decoIndex].from <= offset && locals[decoIndex].to > offset)\n active.push(locals[decoIndex++]);\n let end = offset + child.nodeSize;\n if (child.isText) {\n let cutAt = end;\n if (decoIndex < locals.length && locals[decoIndex].from < cutAt)\n cutAt = locals[decoIndex].from;\n for (let i = 0; i < active.length; i++)\n if (active[i].to < cutAt)\n cutAt = active[i].to;\n if (cutAt < end) {\n restNode = child.cut(cutAt - offset);\n child = child.cut(0, cutAt - offset);\n end = cutAt;\n index = -1;\n }\n }\n else {\n while (decoIndex < locals.length && locals[decoIndex].to < end)\n decoIndex++;\n }\n let outerDeco = child.isInline && !child.isLeaf ? active.filter(d => !d.inline) : active.slice();\n onNode(child, outerDeco, deco.forChild(offset, child), index);\n offset = end;\n }\n}\n// List markers in Mobile Safari will mysteriously disappear\n// sometimes. This works around that.\nfunction iosHacks(dom) {\n if (dom.nodeName == \"UL\" || dom.nodeName == \"OL\") {\n let oldCSS = dom.style.cssText;\n dom.style.cssText = oldCSS + \"; list-style: square !important\";\n window.getComputedStyle(dom).listStyle;\n dom.style.cssText = oldCSS;\n }\n}\n// Find a piece of text in an inline fragment, overlapping from-to\nfunction findTextInFragment(frag, text, from, to) {\n for (let i = 0, pos = 0; i < frag.childCount && pos <= to;) {\n let child = frag.child(i++), childStart = pos;\n pos += child.nodeSize;\n if (!child.isText)\n continue;\n let str = child.text;\n while (i < frag.childCount) {\n let next = frag.child(i++);\n pos += next.nodeSize;\n if (!next.isText)\n break;\n str += next.text;\n }\n if (pos >= from) {\n if (pos >= to && str.slice(to - text.length - childStart, to - childStart) == text)\n return to - text.length;\n let found = childStart < to ? str.lastIndexOf(text, to - childStart - 1) : -1;\n if (found >= 0 && found + text.length + childStart >= from)\n return childStart + found;\n if (from == to && str.length >= (to + text.length) - childStart &&\n str.slice(to - childStart, to - childStart + text.length) == text)\n return to;\n }\n }\n return -1;\n}\n// Replace range from-to in an array of view descs with replacement\n// (may be null to just delete). This goes very much against the grain\n// of the rest of this code, which tends to create nodes with the\n// right shape in one go, rather than messing with them after\n// creation, but is necessary in the composition hack.\nfunction replaceNodes(nodes, from, to, view, replacement) {\n let result = [];\n for (let i = 0, off = 0; i < nodes.length; i++) {\n let child = nodes[i], start = off, end = off += child.size;\n if (start >= to || end <= from) {\n result.push(child);\n }\n else {\n if (start < from)\n result.push(child.slice(0, from - start, view));\n if (replacement) {\n result.push(replacement);\n replacement = undefined;\n }\n if (end > to)\n result.push(child.slice(to - start, child.size, view));\n }\n }\n return result;\n}\n\nfunction selectionFromDOM(view, origin = null) {\n let domSel = view.domSelectionRange(), doc = view.state.doc;\n if (!domSel.focusNode)\n return null;\n let nearestDesc = view.docView.nearestDesc(domSel.focusNode), inWidget = nearestDesc && nearestDesc.size == 0;\n let head = view.docView.posFromDOM(domSel.focusNode, domSel.focusOffset, 1);\n if (head < 0)\n return null;\n let $head = doc.resolve(head), anchor, selection;\n if (selectionCollapsed(domSel)) {\n anchor = head;\n while (nearestDesc && !nearestDesc.node)\n nearestDesc = nearestDesc.parent;\n let nearestDescNode = nearestDesc.node;\n if (nearestDesc && nearestDescNode.isAtom && NodeSelection.isSelectable(nearestDescNode) && nearestDesc.parent\n && !(nearestDescNode.isInline && isOnEdge(domSel.focusNode, domSel.focusOffset, nearestDesc.dom))) {\n let pos = nearestDesc.posBefore;\n selection = new NodeSelection(head == pos ? $head : doc.resolve(pos));\n }\n }\n else {\n if (domSel instanceof view.dom.ownerDocument.defaultView.Selection && domSel.rangeCount > 1) {\n let min = head, max = head;\n for (let i = 0; i < domSel.rangeCount; i++) {\n let range = domSel.getRangeAt(i);\n min = Math.min(min, view.docView.posFromDOM(range.startContainer, range.startOffset, 1));\n max = Math.max(max, view.docView.posFromDOM(range.endContainer, range.endOffset, -1));\n }\n if (min < 0)\n return null;\n [anchor, head] = max == view.state.selection.anchor ? [max, min] : [min, max];\n $head = doc.resolve(head);\n }\n else {\n anchor = view.docView.posFromDOM(domSel.anchorNode, domSel.anchorOffset, 1);\n }\n if (anchor < 0)\n return null;\n }\n let $anchor = doc.resolve(anchor);\n if (!selection) {\n let bias = origin == \"pointer\" || (view.state.selection.head < $head.pos && !inWidget) ? 1 : -1;\n selection = selectionBetween(view, $anchor, $head, bias);\n }\n return selection;\n}\nfunction editorOwnsSelection(view) {\n return view.editable ? view.hasFocus() :\n hasSelection(view) && document.activeElement && document.activeElement.contains(view.dom);\n}\nfunction selectionToDOM(view, force = false) {\n let sel = view.state.selection;\n syncNodeSelection(view, sel);\n if (!editorOwnsSelection(view))\n return;\n // The delayed drag selection causes issues with Cell Selections\n // in Safari. And the drag selection delay is to workarond issues\n // which only present in Chrome.\n if (!force && view.input.mouseDown && view.input.mouseDown.allowDefault && chrome) {\n let domSel = view.domSelectionRange(), curSel = view.domObserver.currentSelection;\n if (domSel.anchorNode && curSel.anchorNode &&\n isEquivalentPosition(domSel.anchorNode, domSel.anchorOffset, curSel.anchorNode, curSel.anchorOffset)) {\n view.input.mouseDown.delayedSelectionSync = true;\n view.domObserver.setCurSelection();\n return;\n }\n }\n view.domObserver.disconnectSelection();\n if (view.cursorWrapper) {\n selectCursorWrapper(view);\n }\n else {\n let { anchor, head } = sel, resetEditableFrom, resetEditableTo;\n if (brokenSelectBetweenUneditable && !(sel instanceof TextSelection)) {\n if (!sel.$from.parent.inlineContent)\n resetEditableFrom = temporarilyEditableNear(view, sel.from);\n if (!sel.empty && !sel.$from.parent.inlineContent)\n resetEditableTo = temporarilyEditableNear(view, sel.to);\n }\n view.docView.setSelection(anchor, head, view, force);\n if (brokenSelectBetweenUneditable) {\n if (resetEditableFrom)\n resetEditable(resetEditableFrom);\n if (resetEditableTo)\n resetEditable(resetEditableTo);\n }\n if (sel.visible) {\n view.dom.classList.remove(\"ProseMirror-hideselection\");\n }\n else {\n view.dom.classList.add(\"ProseMirror-hideselection\");\n if (\"onselectionchange\" in document)\n removeClassOnSelectionChange(view);\n }\n }\n view.domObserver.setCurSelection();\n view.domObserver.connectSelection();\n}\n// Kludge to work around Webkit not allowing a selection to start/end\n// between non-editable block nodes. We briefly make something\n// editable, set the selection, then set it uneditable again.\nconst brokenSelectBetweenUneditable = safari || chrome && chrome_version < 63;\nfunction temporarilyEditableNear(view, pos) {\n let { node, offset } = view.docView.domFromPos(pos, 0);\n let after = offset < node.childNodes.length ? node.childNodes[offset] : null;\n let before = offset ? node.childNodes[offset - 1] : null;\n if (safari && after && after.contentEditable == \"false\")\n return setEditable(after);\n if ((!after || after.contentEditable == \"false\") &&\n (!before || before.contentEditable == \"false\")) {\n if (after)\n return setEditable(after);\n else if (before)\n return setEditable(before);\n }\n}\nfunction setEditable(element) {\n element.contentEditable = \"true\";\n if (safari && element.draggable) {\n element.draggable = false;\n element.wasDraggable = true;\n }\n return element;\n}\nfunction resetEditable(element) {\n element.contentEditable = \"false\";\n if (element.wasDraggable) {\n element.draggable = true;\n element.wasDraggable = null;\n }\n}\nfunction removeClassOnSelectionChange(view) {\n let doc = view.dom.ownerDocument;\n doc.removeEventListener(\"selectionchange\", view.input.hideSelectionGuard);\n let domSel = view.domSelectionRange();\n let node = domSel.anchorNode, offset = domSel.anchorOffset;\n doc.addEventListener(\"selectionchange\", view.input.hideSelectionGuard = () => {\n if (domSel.anchorNode != node || domSel.anchorOffset != offset) {\n doc.removeEventListener(\"selectionchange\", view.input.hideSelectionGuard);\n setTimeout(() => {\n if (!editorOwnsSelection(view) || view.state.selection.visible)\n view.dom.classList.remove(\"ProseMirror-hideselection\");\n }, 20);\n }\n });\n}\nfunction selectCursorWrapper(view) {\n let domSel = view.domSelection(), range = document.createRange();\n if (!domSel)\n return;\n let node = view.cursorWrapper.dom, img = node.nodeName == \"IMG\";\n if (img)\n range.setStart(node.parentNode, domIndex(node) + 1);\n else\n range.setStart(node, 0);\n range.collapse(true);\n domSel.removeAllRanges();\n domSel.addRange(range);\n // Kludge to kill 'control selection' in IE11 when selecting an\n // invisible cursor wrapper, since that would result in those weird\n // resize handles and a selection that considers the absolutely\n // positioned wrapper, rather than the root editable node, the\n // focused element.\n if (!img && !view.state.selection.visible && ie && ie_version <= 11) {\n node.disabled = true;\n node.disabled = false;\n }\n}\nfunction syncNodeSelection(view, sel) {\n if (sel instanceof NodeSelection) {\n let desc = view.docView.descAt(sel.from);\n if (desc != view.lastSelectedViewDesc) {\n clearNodeSelection(view);\n if (desc)\n desc.selectNode();\n view.lastSelectedViewDesc = desc;\n }\n }\n else {\n clearNodeSelection(view);\n }\n}\n// Clear all DOM statefulness of the last node selection.\nfunction clearNodeSelection(view) {\n if (view.lastSelectedViewDesc) {\n if (view.lastSelectedViewDesc.parent)\n view.lastSelectedViewDesc.deselectNode();\n view.lastSelectedViewDesc = undefined;\n }\n}\nfunction selectionBetween(view, $anchor, $head, bias) {\n return view.someProp(\"createSelectionBetween\", f => f(view, $anchor, $head))\n || TextSelection.between($anchor, $head, bias);\n}\nfunction hasFocusAndSelection(view) {\n if (view.editable && !view.hasFocus())\n return false;\n return hasSelection(view);\n}\nfunction hasSelection(view) {\n let sel = view.domSelectionRange();\n if (!sel.anchorNode)\n return false;\n try {\n // Firefox will raise 'permission denied' errors when accessing\n // properties of `sel.anchorNode` when it's in a generated CSS\n // element.\n return view.dom.contains(sel.anchorNode.nodeType == 3 ? sel.anchorNode.parentNode : sel.anchorNode) &&\n (view.editable || view.dom.contains(sel.focusNode.nodeType == 3 ? sel.focusNode.parentNode : sel.focusNode));\n }\n catch (_) {\n return false;\n }\n}\nfunction anchorInRightPlace(view) {\n let anchorDOM = view.docView.domFromPos(view.state.selection.anchor, 0);\n let domSel = view.domSelectionRange();\n return isEquivalentPosition(anchorDOM.node, anchorDOM.offset, domSel.anchorNode, domSel.anchorOffset);\n}\n\nfunction moveSelectionBlock(state, dir) {\n let { $anchor, $head } = state.selection;\n let $side = dir > 0 ? $anchor.max($head) : $anchor.min($head);\n let $start = !$side.parent.inlineContent ? $side : $side.depth ? state.doc.resolve(dir > 0 ? $side.after() : $side.before()) : null;\n return $start && Selection.findFrom($start, dir);\n}\nfunction apply(view, sel) {\n view.dispatch(view.state.tr.setSelection(sel).scrollIntoView());\n return true;\n}\nfunction selectHorizontally(view, dir, mods) {\n let sel = view.state.selection;\n if (sel instanceof TextSelection) {\n if (mods.indexOf(\"s\") > -1) {\n let { $head } = sel, node = $head.textOffset ? null : dir < 0 ? $head.nodeBefore : $head.nodeAfter;\n if (!node || node.isText || !node.isLeaf)\n return false;\n let $newHead = view.state.doc.resolve($head.pos + node.nodeSize * (dir < 0 ? -1 : 1));\n return apply(view, new TextSelection(sel.$anchor, $newHead));\n }\n else if (!sel.empty) {\n return false;\n }\n else if (view.endOfTextblock(dir > 0 ? \"forward\" : \"backward\")) {\n let next = moveSelectionBlock(view.state, dir);\n if (next && (next instanceof NodeSelection))\n return apply(view, next);\n return false;\n }\n else if (!(mac && mods.indexOf(\"m\") > -1)) {\n let $head = sel.$head, node = $head.textOffset ? null : dir < 0 ? $head.nodeBefore : $head.nodeAfter, desc;\n if (!node || node.isText)\n return false;\n let nodePos = dir < 0 ? $head.pos - node.nodeSize : $head.pos;\n if (!(node.isAtom || (desc = view.docView.descAt(nodePos)) && !desc.contentDOM))\n return false;\n if (NodeSelection.isSelectable(node)) {\n return apply(view, new NodeSelection(dir < 0 ? view.state.doc.resolve($head.pos - node.nodeSize) : $head));\n }\n else if (webkit) {\n // Chrome and Safari will introduce extra pointless cursor\n // positions around inline uneditable nodes, so we have to\n // take over and move the cursor past them (#937)\n return apply(view, new TextSelection(view.state.doc.resolve(dir < 0 ? nodePos : nodePos + node.nodeSize)));\n }\n else {\n return false;\n }\n }\n }\n else if (sel instanceof NodeSelection && sel.node.isInline) {\n return apply(view, new TextSelection(dir > 0 ? sel.$to : sel.$from));\n }\n else {\n let next = moveSelectionBlock(view.state, dir);\n if (next)\n return apply(view, next);\n return false;\n }\n}\nfunction nodeLen(node) {\n return node.nodeType == 3 ? node.nodeValue.length : node.childNodes.length;\n}\nfunction isIgnorable(dom, dir) {\n let desc = dom.pmViewDesc;\n return desc && desc.size == 0 && (dir < 0 || dom.nextSibling || dom.nodeName != \"BR\");\n}\nfunction skipIgnoredNodes(view, dir) {\n return dir < 0 ? skipIgnoredNodesBefore(view) : skipIgnoredNodesAfter(view);\n}\n// Make sure the cursor isn't directly after one or more ignored\n// nodes, which will confuse the browser's cursor motion logic.\nfunction skipIgnoredNodesBefore(view) {\n let sel = view.domSelectionRange();\n let node = sel.focusNode, offset = sel.focusOffset;\n if (!node)\n return;\n let moveNode, moveOffset, force = false;\n // Gecko will do odd things when the selection is directly in front\n // of a non-editable node, so in that case, move it into the next\n // node if possible. Issue prosemirror/prosemirror#832.\n if (gecko && node.nodeType == 1 && offset < nodeLen(node) && isIgnorable(node.childNodes[offset], -1))\n force = true;\n for (;;) {\n if (offset > 0) {\n if (node.nodeType != 1) {\n break;\n }\n else {\n let before = node.childNodes[offset - 1];\n if (isIgnorable(before, -1)) {\n moveNode = node;\n moveOffset = --offset;\n }\n else if (before.nodeType == 3) {\n node = before;\n offset = node.nodeValue.length;\n }\n else\n break;\n }\n }\n else if (isBlockNode(node)) {\n break;\n }\n else {\n let prev = node.previousSibling;\n while (prev && isIgnorable(prev, -1)) {\n moveNode = node.parentNode;\n moveOffset = domIndex(prev);\n prev = prev.previousSibling;\n }\n if (!prev) {\n node = node.parentNode;\n if (node == view.dom)\n break;\n offset = 0;\n }\n else {\n node = prev;\n offset = nodeLen(node);\n }\n }\n }\n if (force)\n setSelFocus(view, node, offset);\n else if (moveNode)\n setSelFocus(view, moveNode, moveOffset);\n}\n// Make sure the cursor isn't directly before one or more ignored\n// nodes.\nfunction skipIgnoredNodesAfter(view) {\n let sel = view.domSelectionRange();\n let node = sel.focusNode, offset = sel.focusOffset;\n if (!node)\n return;\n let len = nodeLen(node);\n let moveNode, moveOffset;\n for (;;) {\n if (offset < len) {\n if (node.nodeType != 1)\n break;\n let after = node.childNodes[offset];\n if (isIgnorable(after, 1)) {\n moveNode = node;\n moveOffset = ++offset;\n }\n else\n break;\n }\n else if (isBlockNode(node)) {\n break;\n }\n else {\n let next = node.nextSibling;\n while (next && isIgnorable(next, 1)) {\n moveNode = next.parentNode;\n moveOffset = domIndex(next) + 1;\n next = next.nextSibling;\n }\n if (!next) {\n node = node.parentNode;\n if (node == view.dom)\n break;\n offset = len = 0;\n }\n else {\n node = next;\n offset = 0;\n len = nodeLen(node);\n }\n }\n }\n if (moveNode)\n setSelFocus(view, moveNode, moveOffset);\n}\nfunction isBlockNode(dom) {\n let desc = dom.pmViewDesc;\n return desc && desc.node && desc.node.isBlock;\n}\nfunction textNodeAfter(node, offset) {\n while (node && offset == node.childNodes.length && !hasBlockDesc(node)) {\n offset = domIndex(node) + 1;\n node = node.parentNode;\n }\n while (node && offset < node.childNodes.length) {\n let next = node.childNodes[offset];\n if (next.nodeType == 3)\n return next;\n if (next.nodeType == 1 && next.contentEditable == \"false\")\n break;\n node = next;\n offset = 0;\n }\n}\nfunction textNodeBefore(node, offset) {\n while (node && !offset && !hasBlockDesc(node)) {\n offset = domIndex(node);\n node = node.parentNode;\n }\n while (node && offset) {\n let next = node.childNodes[offset - 1];\n if (next.nodeType == 3)\n return next;\n if (next.nodeType == 1 && next.contentEditable == \"false\")\n break;\n node = next;\n offset = node.childNodes.length;\n }\n}\nfunction setSelFocus(view, node, offset) {\n if (node.nodeType != 3) {\n let before, after;\n if (after = textNodeAfter(node, offset)) {\n node = after;\n offset = 0;\n }\n else if (before = textNodeBefore(node, offset)) {\n node = before;\n offset = before.nodeValue.length;\n }\n }\n let sel = view.domSelection();\n if (!sel)\n return;\n if (selectionCollapsed(sel)) {\n let range = document.createRange();\n range.setEnd(node, offset);\n range.setStart(node, offset);\n sel.removeAllRanges();\n sel.addRange(range);\n }\n else if (sel.extend) {\n sel.extend(node, offset);\n }\n view.domObserver.setCurSelection();\n let { state } = view;\n // If no state update ends up happening, reset the selection.\n setTimeout(() => {\n if (view.state == state)\n selectionToDOM(view);\n }, 50);\n}\nfunction findDirection(view, pos) {\n let $pos = view.state.doc.resolve(pos);\n if (!(chrome || windows) && $pos.parent.inlineContent) {\n let coords = view.coordsAtPos(pos);\n if (pos > $pos.start()) {\n let before = view.coordsAtPos(pos - 1);\n let mid = (before.top + before.bottom) / 2;\n if (mid > coords.top && mid < coords.bottom && Math.abs(before.left - coords.left) > 1)\n return before.left < coords.left ? \"ltr\" : \"rtl\";\n }\n if (pos < $pos.end()) {\n let after = view.coordsAtPos(pos + 1);\n let mid = (after.top + after.bottom) / 2;\n if (mid > coords.top && mid < coords.bottom && Math.abs(after.left - coords.left) > 1)\n return after.left > coords.left ? \"ltr\" : \"rtl\";\n }\n }\n let computed = getComputedStyle(view.dom).direction;\n return computed == \"rtl\" ? \"rtl\" : \"ltr\";\n}\n// Check whether vertical selection motion would involve node\n// selections. If so, apply it (if not, the result is left to the\n// browser)\nfunction selectVertically(view, dir, mods) {\n let sel = view.state.selection;\n if (sel instanceof TextSelection && !sel.empty || mods.indexOf(\"s\") > -1)\n return false;\n if (mac && mods.indexOf(\"m\") > -1)\n return false;\n let { $from, $to } = sel;\n if (!$from.parent.inlineContent || view.endOfTextblock(dir < 0 ? \"up\" : \"down\")) {\n let next = moveSelectionBlock(view.state, dir);\n if (next && (next instanceof NodeSelection))\n return apply(view, next);\n }\n if (!$from.parent.inlineContent) {\n let side = dir < 0 ? $from : $to;\n let beyond = sel instanceof AllSelection ? Selection.near(side, dir) : Selection.findFrom(side, dir);\n return beyond ? apply(view, beyond) : false;\n }\n return false;\n}\nfunction stopNativeHorizontalDelete(view, dir) {\n if (!(view.state.selection instanceof TextSelection))\n return true;\n let { $head, $anchor, empty } = view.state.selection;\n if (!$head.sameParent($anchor))\n return true;\n if (!empty)\n return false;\n if (view.endOfTextblock(dir > 0 ? \"forward\" : \"backward\"))\n return true;\n let nextNode = !$head.textOffset && (dir < 0 ? $head.nodeBefore : $head.nodeAfter);\n if (nextNode && !nextNode.isText) {\n let tr = view.state.tr;\n if (dir < 0)\n tr.delete($head.pos - nextNode.nodeSize, $head.pos);\n else\n tr.delete($head.pos, $head.pos + nextNode.nodeSize);\n view.dispatch(tr);\n return true;\n }\n return false;\n}\nfunction switchEditable(view, node, state) {\n view.domObserver.stop();\n node.contentEditable = state;\n view.domObserver.start();\n}\n// Issue #867 / #1090 / https://bugs.chromium.org/p/chromium/issues/detail?id=903821\n// In which Safari (and at some point in the past, Chrome) does really\n// wrong things when the down arrow is pressed when the cursor is\n// directly at the start of a textblock and has an uneditable node\n// after it\nfunction safariDownArrowBug(view) {\n if (!safari || view.state.selection.$head.parentOffset > 0)\n return false;\n let { focusNode, focusOffset } = view.domSelectionRange();\n if (focusNode && focusNode.nodeType == 1 && focusOffset == 0 &&\n focusNode.firstChild && focusNode.firstChild.contentEditable == \"false\") {\n let child = focusNode.firstChild;\n switchEditable(view, child, \"true\");\n setTimeout(() => switchEditable(view, child, \"false\"), 20);\n }\n return false;\n}\n// A backdrop key mapping used to make sure we always suppress keys\n// that have a dangerous default effect, even if the commands they are\n// bound to return false, and to make sure that cursor-motion keys\n// find a cursor (as opposed to a node selection) when pressed. For\n// cursor-motion keys, the code in the handlers also takes care of\n// block selections.\nfunction getMods(event) {\n let result = \"\";\n if (event.ctrlKey)\n result += \"c\";\n if (event.metaKey)\n result += \"m\";\n if (event.altKey)\n result += \"a\";\n if (event.shiftKey)\n result += \"s\";\n return result;\n}\nfunction captureKeyDown(view, event) {\n let code = event.keyCode, mods = getMods(event);\n if (code == 8 || (mac && code == 72 && mods == \"c\")) { // Backspace, Ctrl-h on Mac\n return stopNativeHorizontalDelete(view, -1) || skipIgnoredNodes(view, -1);\n }\n else if ((code == 46 && !event.shiftKey) || (mac && code == 68 && mods == \"c\")) { // Delete, Ctrl-d on Mac\n return stopNativeHorizontalDelete(view, 1) || skipIgnoredNodes(view, 1);\n }\n else if (code == 13 || code == 27) { // Enter, Esc\n return true;\n }\n else if (code == 37 || (mac && code == 66 && mods == \"c\")) { // Left arrow, Ctrl-b on Mac\n let dir = code == 37 ? (findDirection(view, view.state.selection.from) == \"ltr\" ? -1 : 1) : -1;\n return selectHorizontally(view, dir, mods) || skipIgnoredNodes(view, dir);\n }\n else if (code == 39 || (mac && code == 70 && mods == \"c\")) { // Right arrow, Ctrl-f on Mac\n let dir = code == 39 ? (findDirection(view, view.state.selection.from) == \"ltr\" ? 1 : -1) : 1;\n return selectHorizontally(view, dir, mods) || skipIgnoredNodes(view, dir);\n }\n else if (code == 38 || (mac && code == 80 && mods == \"c\")) { // Up arrow, Ctrl-p on Mac\n return selectVertically(view, -1, mods) || skipIgnoredNodes(view, -1);\n }\n else if (code == 40 || (mac && code == 78 && mods == \"c\")) { // Down arrow, Ctrl-n on Mac\n return safariDownArrowBug(view) || selectVertically(view, 1, mods) || skipIgnoredNodes(view, 1);\n }\n else if (mods == (mac ? \"m\" : \"c\") &&\n (code == 66 || code == 73 || code == 89 || code == 90)) { // Mod-[biyz]\n return true;\n }\n return false;\n}\n\nfunction serializeForClipboard(view, slice) {\n view.someProp(\"transformCopied\", f => { slice = f(slice, view); });\n let context = [], { content, openStart, openEnd } = slice;\n while (openStart > 1 && openEnd > 1 && content.childCount == 1 && content.firstChild.childCount == 1) {\n openStart--;\n openEnd--;\n let node = content.firstChild;\n context.push(node.type.name, node.attrs != node.type.defaultAttrs ? node.attrs : null);\n content = node.content;\n }\n let serializer = view.someProp(\"clipboardSerializer\") || DOMSerializer.fromSchema(view.state.schema);\n let doc = detachedDoc(), wrap = doc.createElement(\"div\");\n wrap.appendChild(serializer.serializeFragment(content, { document: doc }));\n let firstChild = wrap.firstChild, needsWrap, wrappers = 0;\n while (firstChild && firstChild.nodeType == 1 && (needsWrap = wrapMap[firstChild.nodeName.toLowerCase()])) {\n for (let i = needsWrap.length - 1; i >= 0; i--) {\n let wrapper = doc.createElement(needsWrap[i]);\n while (wrap.firstChild)\n wrapper.appendChild(wrap.firstChild);\n wrap.appendChild(wrapper);\n wrappers++;\n }\n firstChild = wrap.firstChild;\n }\n if (firstChild && firstChild.nodeType == 1)\n firstChild.setAttribute(\"data-pm-slice\", `${openStart} ${openEnd}${wrappers ? ` -${wrappers}` : \"\"} ${JSON.stringify(context)}`);\n let text = view.someProp(\"clipboardTextSerializer\", f => f(slice, view)) ||\n slice.content.textBetween(0, slice.content.size, \"\\n\\n\");\n return { dom: wrap, text, slice };\n}\n// Read a slice of content from the clipboard (or drop data).\nfunction parseFromClipboard(view, text, html, plainText, $context) {\n let inCode = $context.parent.type.spec.code;\n let dom, slice;\n if (!html && !text)\n return null;\n let asText = text && (plainText || inCode || !html);\n if (asText) {\n view.someProp(\"transformPastedText\", f => { text = f(text, inCode || plainText, view); });\n if (inCode)\n return text ? new Slice(Fragment.from(view.state.schema.text(text.replace(/\\r\\n?/g, \"\\n\"))), 0, 0) : Slice.empty;\n let parsed = view.someProp(\"clipboardTextParser\", f => f(text, $context, plainText, view));\n if (parsed) {\n slice = parsed;\n }\n else {\n let marks = $context.marks();\n let { schema } = view.state, serializer = DOMSerializer.fromSchema(schema);\n dom = document.createElement(\"div\");\n text.split(/(?:\\r\\n?|\\n)+/).forEach(block => {\n let p = dom.appendChild(document.createElement(\"p\"));\n if (block)\n p.appendChild(serializer.serializeNode(schema.text(block, marks)));\n });\n }\n }\n else {\n view.someProp(\"transformPastedHTML\", f => { html = f(html, view); });\n dom = readHTML(html);\n if (webkit)\n restoreReplacedSpaces(dom);\n }\n let contextNode = dom && dom.querySelector(\"[data-pm-slice]\");\n let sliceData = contextNode && /^(\\d+) (\\d+)(?: -(\\d+))? (.*)/.exec(contextNode.getAttribute(\"data-pm-slice\") || \"\");\n if (sliceData && sliceData[3])\n for (let i = +sliceData[3]; i > 0; i--) {\n let child = dom.firstChild;\n while (child && child.nodeType != 1)\n child = child.nextSibling;\n if (!child)\n break;\n dom = child;\n }\n if (!slice) {\n let parser = view.someProp(\"clipboardParser\") || view.someProp(\"domParser\") || DOMParser.fromSchema(view.state.schema);\n slice = parser.parseSlice(dom, {\n preserveWhitespace: !!(asText || sliceData),\n context: $context,\n ruleFromNode(dom) {\n if (dom.nodeName == \"BR\" && !dom.nextSibling &&\n dom.parentNode && !inlineParents.test(dom.parentNode.nodeName))\n return { ignore: true };\n return null;\n }\n });\n }\n if (sliceData) {\n slice = addContext(closeSlice(slice, +sliceData[1], +sliceData[2]), sliceData[4]);\n }\n else { // HTML wasn't created by ProseMirror. Make sure top-level siblings are coherent\n slice = Slice.maxOpen(normalizeSiblings(slice.content, $context), true);\n if (slice.openStart || slice.openEnd) {\n let openStart = 0, openEnd = 0;\n for (let node = slice.content.firstChild; openStart < slice.openStart && !node.type.spec.isolating; openStart++, node = node.firstChild) { }\n for (let node = slice.content.lastChild; openEnd < slice.openEnd && !node.type.spec.isolating; openEnd++, node = node.lastChild) { }\n slice = closeSlice(slice, openStart, openEnd);\n }\n }\n view.someProp(\"transformPasted\", f => { slice = f(slice, view); });\n return slice;\n}\nconst inlineParents = /^(a|abbr|acronym|b|cite|code|del|em|i|ins|kbd|label|output|q|ruby|s|samp|span|strong|sub|sup|time|u|tt|var)$/i;\n// Takes a slice parsed with parseSlice, which means there hasn't been\n// any content-expression checking done on the top nodes, tries to\n// find a parent node in the current context that might fit the nodes,\n// and if successful, rebuilds the slice so that it fits into that parent.\n//\n// This addresses the problem that Transform.replace expects a\n// coherent slice, and will fail to place a set of siblings that don't\n// fit anywhere in the schema.\nfunction normalizeSiblings(fragment, $context) {\n if (fragment.childCount < 2)\n return fragment;\n for (let d = $context.depth; d >= 0; d--) {\n let parent = $context.node(d);\n let match = parent.contentMatchAt($context.index(d));\n let lastWrap, result = [];\n fragment.forEach(node => {\n if (!result)\n return;\n let wrap = match.findWrapping(node.type), inLast;\n if (!wrap)\n return result = null;\n if (inLast = result.length && lastWrap.length && addToSibling(wrap, lastWrap, node, result[result.length - 1], 0)) {\n result[result.length - 1] = inLast;\n }\n else {\n if (result.length)\n result[result.length - 1] = closeRight(result[result.length - 1], lastWrap.length);\n let wrapped = withWrappers(node, wrap);\n result.push(wrapped);\n match = match.matchType(wrapped.type);\n lastWrap = wrap;\n }\n });\n if (result)\n return Fragment.from(result);\n }\n return fragment;\n}\nfunction withWrappers(node, wrap, from = 0) {\n for (let i = wrap.length - 1; i >= from; i--)\n node = wrap[i].create(null, Fragment.from(node));\n return node;\n}\n// Used to group adjacent nodes wrapped in similar parents by\n// normalizeSiblings into the same parent node\nfunction addToSibling(wrap, lastWrap, node, sibling, depth) {\n if (depth < wrap.length && depth < lastWrap.length && wrap[depth] == lastWrap[depth]) {\n let inner = addToSibling(wrap, lastWrap, node, sibling.lastChild, depth + 1);\n if (inner)\n return sibling.copy(sibling.content.replaceChild(sibling.childCount - 1, inner));\n let match = sibling.contentMatchAt(sibling.childCount);\n if (match.matchType(depth == wrap.length - 1 ? node.type : wrap[depth + 1]))\n return sibling.copy(sibling.content.append(Fragment.from(withWrappers(node, wrap, depth + 1))));\n }\n}\nfunction closeRight(node, depth) {\n if (depth == 0)\n return node;\n let fragment = node.content.replaceChild(node.childCount - 1, closeRight(node.lastChild, depth - 1));\n let fill = node.contentMatchAt(node.childCount).fillBefore(Fragment.empty, true);\n return node.copy(fragment.append(fill));\n}\nfunction closeRange(fragment, side, from, to, depth, openEnd) {\n let node = side < 0 ? fragment.firstChild : fragment.lastChild, inner = node.content;\n if (fragment.childCount > 1)\n openEnd = 0;\n if (depth < to - 1)\n inner = closeRange(inner, side, from, to, depth + 1, openEnd);\n if (depth >= from)\n inner = side < 0 ? node.contentMatchAt(0).fillBefore(inner, openEnd <= depth).append(inner)\n : inner.append(node.contentMatchAt(node.childCount).fillBefore(Fragment.empty, true));\n return fragment.replaceChild(side < 0 ? 0 : fragment.childCount - 1, node.copy(inner));\n}\nfunction closeSlice(slice, openStart, openEnd) {\n if (openStart < slice.openStart)\n slice = new Slice(closeRange(slice.content, -1, openStart, slice.openStart, 0, slice.openEnd), openStart, slice.openEnd);\n if (openEnd < slice.openEnd)\n slice = new Slice(closeRange(slice.content, 1, openEnd, slice.openEnd, 0, 0), slice.openStart, openEnd);\n return slice;\n}\n// Trick from jQuery -- some elements must be wrapped in other\n// elements for innerHTML to work. I.e. if you do `div.innerHTML =\n// \"..\"` the table cells are ignored.\nconst wrapMap = {\n thead: [\"table\"],\n tbody: [\"table\"],\n tfoot: [\"table\"],\n caption: [\"table\"],\n colgroup: [\"table\"],\n col: [\"table\", \"colgroup\"],\n tr: [\"table\", \"tbody\"],\n td: [\"table\", \"tbody\", \"tr\"],\n th: [\"table\", \"tbody\", \"tr\"]\n};\nlet _detachedDoc = null;\nfunction detachedDoc() {\n return _detachedDoc || (_detachedDoc = document.implementation.createHTMLDocument(\"title\"));\n}\nlet _policy = null;\nfunction maybeWrapTrusted(html) {\n let trustedTypes = window.trustedTypes;\n if (!trustedTypes)\n return html;\n // With the require-trusted-types-for CSP, Chrome will block\n // innerHTML, even on a detached document. This wraps the string in\n // a way that makes the browser allow us to use its parser again.\n if (!_policy)\n _policy = trustedTypes.createPolicy(\"ProseMirrorClipboard\", { createHTML: (s) => s });\n return _policy.createHTML(html);\n}\nfunction readHTML(html) {\n let metas = /^(\\s*]*>)*/.exec(html);\n if (metas)\n html = html.slice(metas[0].length);\n let elt = detachedDoc().createElement(\"div\");\n let firstTag = /<([a-z][^>\\s]+)/i.exec(html), wrap;\n if (wrap = firstTag && wrapMap[firstTag[1].toLowerCase()])\n html = wrap.map(n => \"<\" + n + \">\").join(\"\") + html + wrap.map(n => \"\").reverse().join(\"\");\n elt.innerHTML = maybeWrapTrusted(html);\n if (wrap)\n for (let i = 0; i < wrap.length; i++)\n elt = elt.querySelector(wrap[i]) || elt;\n return elt;\n}\n// Webkit browsers do some hard-to-predict replacement of regular\n// spaces with non-breaking spaces when putting content on the\n// clipboard. This tries to convert such non-breaking spaces (which\n// will be wrapped in a plain span on Chrome, a span with class\n// Apple-converted-space on Safari) back to regular spaces.\nfunction restoreReplacedSpaces(dom) {\n let nodes = dom.querySelectorAll(chrome ? \"span:not([class]):not([style])\" : \"span.Apple-converted-space\");\n for (let i = 0; i < nodes.length; i++) {\n let node = nodes[i];\n if (node.childNodes.length == 1 && node.textContent == \"\\u00a0\" && node.parentNode)\n node.parentNode.replaceChild(dom.ownerDocument.createTextNode(\" \"), node);\n }\n}\nfunction addContext(slice, context) {\n if (!slice.size)\n return slice;\n let schema = slice.content.firstChild.type.schema, array;\n try {\n array = JSON.parse(context);\n }\n catch (e) {\n return slice;\n }\n let { content, openStart, openEnd } = slice;\n for (let i = array.length - 2; i >= 0; i -= 2) {\n let type = schema.nodes[array[i]];\n if (!type || type.hasRequiredAttrs())\n break;\n content = Fragment.from(type.create(array[i + 1], content));\n openStart++;\n openEnd++;\n }\n return new Slice(content, openStart, openEnd);\n}\n\n// A collection of DOM events that occur within the editor, and callback functions\n// to invoke when the event fires.\nconst handlers = {};\nconst editHandlers = {};\nconst passiveHandlers = { touchstart: true, touchmove: true };\nclass InputState {\n constructor() {\n this.shiftKey = false;\n this.mouseDown = null;\n this.lastKeyCode = null;\n this.lastKeyCodeTime = 0;\n this.lastClick = { time: 0, x: 0, y: 0, type: \"\" };\n this.lastSelectionOrigin = null;\n this.lastSelectionTime = 0;\n this.lastIOSEnter = 0;\n this.lastIOSEnterFallbackTimeout = -1;\n this.lastFocus = 0;\n this.lastTouch = 0;\n this.lastChromeDelete = 0;\n this.composing = false;\n this.compositionNode = null;\n this.composingTimeout = -1;\n this.compositionNodes = [];\n this.compositionEndedAt = -2e8;\n this.compositionID = 1;\n // Set to a composition ID when there are pending changes at compositionend\n this.compositionPendingChanges = 0;\n this.domChangeCount = 0;\n this.eventHandlers = Object.create(null);\n this.hideSelectionGuard = null;\n }\n}\nfunction initInput(view) {\n for (let event in handlers) {\n let handler = handlers[event];\n view.dom.addEventListener(event, view.input.eventHandlers[event] = (event) => {\n if (eventBelongsToView(view, event) && !runCustomHandler(view, event) &&\n (view.editable || !(event.type in editHandlers)))\n handler(view, event);\n }, passiveHandlers[event] ? { passive: true } : undefined);\n }\n // On Safari, for reasons beyond my understanding, adding an input\n // event handler makes an issue where the composition vanishes when\n // you press enter go away.\n if (safari)\n view.dom.addEventListener(\"input\", () => null);\n ensureListeners(view);\n}\nfunction setSelectionOrigin(view, origin) {\n view.input.lastSelectionOrigin = origin;\n view.input.lastSelectionTime = Date.now();\n}\nfunction destroyInput(view) {\n view.domObserver.stop();\n for (let type in view.input.eventHandlers)\n view.dom.removeEventListener(type, view.input.eventHandlers[type]);\n clearTimeout(view.input.composingTimeout);\n clearTimeout(view.input.lastIOSEnterFallbackTimeout);\n}\nfunction ensureListeners(view) {\n view.someProp(\"handleDOMEvents\", currentHandlers => {\n for (let type in currentHandlers)\n if (!view.input.eventHandlers[type])\n view.dom.addEventListener(type, view.input.eventHandlers[type] = event => runCustomHandler(view, event));\n });\n}\nfunction runCustomHandler(view, event) {\n return view.someProp(\"handleDOMEvents\", handlers => {\n let handler = handlers[event.type];\n return handler ? handler(view, event) || event.defaultPrevented : false;\n });\n}\nfunction eventBelongsToView(view, event) {\n if (!event.bubbles)\n return true;\n if (event.defaultPrevented)\n return false;\n for (let node = event.target; node != view.dom; node = node.parentNode)\n if (!node || node.nodeType == 11 ||\n (node.pmViewDesc && node.pmViewDesc.stopEvent(event)))\n return false;\n return true;\n}\nfunction dispatchEvent(view, event) {\n if (!runCustomHandler(view, event) && handlers[event.type] &&\n (view.editable || !(event.type in editHandlers)))\n handlers[event.type](view, event);\n}\neditHandlers.keydown = (view, _event) => {\n let event = _event;\n view.input.shiftKey = event.keyCode == 16 || event.shiftKey;\n if (inOrNearComposition(view, event))\n return;\n view.input.lastKeyCode = event.keyCode;\n view.input.lastKeyCodeTime = Date.now();\n // Suppress enter key events on Chrome Android, because those tend\n // to be part of a confused sequence of composition events fired,\n // and handling them eagerly tends to corrupt the input.\n if (android && chrome && event.keyCode == 13)\n return;\n if (event.keyCode != 229)\n view.domObserver.forceFlush();\n // On iOS, if we preventDefault enter key presses, the virtual\n // keyboard gets confused. So the hack here is to set a flag that\n // makes the DOM change code recognize that what just happens should\n // be replaced by whatever the Enter key handlers do.\n if (ios && event.keyCode == 13 && !event.ctrlKey && !event.altKey && !event.metaKey) {\n let now = Date.now();\n view.input.lastIOSEnter = now;\n view.input.lastIOSEnterFallbackTimeout = setTimeout(() => {\n if (view.input.lastIOSEnter == now) {\n view.someProp(\"handleKeyDown\", f => f(view, keyEvent(13, \"Enter\")));\n view.input.lastIOSEnter = 0;\n }\n }, 200);\n }\n else if (view.someProp(\"handleKeyDown\", f => f(view, event)) || captureKeyDown(view, event)) {\n event.preventDefault();\n }\n else {\n setSelectionOrigin(view, \"key\");\n }\n};\neditHandlers.keyup = (view, event) => {\n if (event.keyCode == 16)\n view.input.shiftKey = false;\n};\neditHandlers.keypress = (view, _event) => {\n let event = _event;\n if (inOrNearComposition(view, event) || !event.charCode ||\n event.ctrlKey && !event.altKey || mac && event.metaKey)\n return;\n if (view.someProp(\"handleKeyPress\", f => f(view, event))) {\n event.preventDefault();\n return;\n }\n let sel = view.state.selection;\n if (!(sel instanceof TextSelection) || !sel.$from.sameParent(sel.$to)) {\n let text = String.fromCharCode(event.charCode);\n if (!/[\\r\\n]/.test(text) && !view.someProp(\"handleTextInput\", f => f(view, sel.$from.pos, sel.$to.pos, text)))\n view.dispatch(view.state.tr.insertText(text).scrollIntoView());\n event.preventDefault();\n }\n};\nfunction eventCoords(event) { return { left: event.clientX, top: event.clientY }; }\nfunction isNear(event, click) {\n let dx = click.x - event.clientX, dy = click.y - event.clientY;\n return dx * dx + dy * dy < 100;\n}\nfunction runHandlerOnContext(view, propName, pos, inside, event) {\n if (inside == -1)\n return false;\n let $pos = view.state.doc.resolve(inside);\n for (let i = $pos.depth + 1; i > 0; i--) {\n if (view.someProp(propName, f => i > $pos.depth ? f(view, pos, $pos.nodeAfter, $pos.before(i), event, true)\n : f(view, pos, $pos.node(i), $pos.before(i), event, false)))\n return true;\n }\n return false;\n}\nfunction updateSelection(view, selection, origin) {\n if (!view.focused)\n view.focus();\n if (view.state.selection.eq(selection))\n return;\n let tr = view.state.tr.setSelection(selection);\n if (origin == \"pointer\")\n tr.setMeta(\"pointer\", true);\n view.dispatch(tr);\n}\nfunction selectClickedLeaf(view, inside) {\n if (inside == -1)\n return false;\n let $pos = view.state.doc.resolve(inside), node = $pos.nodeAfter;\n if (node && node.isAtom && NodeSelection.isSelectable(node)) {\n updateSelection(view, new NodeSelection($pos), \"pointer\");\n return true;\n }\n return false;\n}\nfunction selectClickedNode(view, inside) {\n if (inside == -1)\n return false;\n let sel = view.state.selection, selectedNode, selectAt;\n if (sel instanceof NodeSelection)\n selectedNode = sel.node;\n let $pos = view.state.doc.resolve(inside);\n for (let i = $pos.depth + 1; i > 0; i--) {\n let node = i > $pos.depth ? $pos.nodeAfter : $pos.node(i);\n if (NodeSelection.isSelectable(node)) {\n if (selectedNode && sel.$from.depth > 0 &&\n i >= sel.$from.depth && $pos.before(sel.$from.depth + 1) == sel.$from.pos)\n selectAt = $pos.before(sel.$from.depth);\n else\n selectAt = $pos.before(i);\n break;\n }\n }\n if (selectAt != null) {\n updateSelection(view, NodeSelection.create(view.state.doc, selectAt), \"pointer\");\n return true;\n }\n else {\n return false;\n }\n}\nfunction handleSingleClick(view, pos, inside, event, selectNode) {\n return runHandlerOnContext(view, \"handleClickOn\", pos, inside, event) ||\n view.someProp(\"handleClick\", f => f(view, pos, event)) ||\n (selectNode ? selectClickedNode(view, inside) : selectClickedLeaf(view, inside));\n}\nfunction handleDoubleClick(view, pos, inside, event) {\n return runHandlerOnContext(view, \"handleDoubleClickOn\", pos, inside, event) ||\n view.someProp(\"handleDoubleClick\", f => f(view, pos, event));\n}\nfunction handleTripleClick(view, pos, inside, event) {\n return runHandlerOnContext(view, \"handleTripleClickOn\", pos, inside, event) ||\n view.someProp(\"handleTripleClick\", f => f(view, pos, event)) ||\n defaultTripleClick(view, inside, event);\n}\nfunction defaultTripleClick(view, inside, event) {\n if (event.button != 0)\n return false;\n let doc = view.state.doc;\n if (inside == -1) {\n if (doc.inlineContent) {\n updateSelection(view, TextSelection.create(doc, 0, doc.content.size), \"pointer\");\n return true;\n }\n return false;\n }\n let $pos = doc.resolve(inside);\n for (let i = $pos.depth + 1; i > 0; i--) {\n let node = i > $pos.depth ? $pos.nodeAfter : $pos.node(i);\n let nodePos = $pos.before(i);\n if (node.inlineContent)\n updateSelection(view, TextSelection.create(doc, nodePos + 1, nodePos + 1 + node.content.size), \"pointer\");\n else if (NodeSelection.isSelectable(node))\n updateSelection(view, NodeSelection.create(doc, nodePos), \"pointer\");\n else\n continue;\n return true;\n }\n}\nfunction forceDOMFlush(view) {\n return endComposition(view);\n}\nconst selectNodeModifier = mac ? \"metaKey\" : \"ctrlKey\";\nhandlers.mousedown = (view, _event) => {\n let event = _event;\n view.input.shiftKey = event.shiftKey;\n let flushed = forceDOMFlush(view);\n let now = Date.now(), type = \"singleClick\";\n if (now - view.input.lastClick.time < 500 && isNear(event, view.input.lastClick) && !event[selectNodeModifier]) {\n if (view.input.lastClick.type == \"singleClick\")\n type = \"doubleClick\";\n else if (view.input.lastClick.type == \"doubleClick\")\n type = \"tripleClick\";\n }\n view.input.lastClick = { time: now, x: event.clientX, y: event.clientY, type };\n let pos = view.posAtCoords(eventCoords(event));\n if (!pos)\n return;\n if (type == \"singleClick\") {\n if (view.input.mouseDown)\n view.input.mouseDown.done();\n view.input.mouseDown = new MouseDown(view, pos, event, !!flushed);\n }\n else if ((type == \"doubleClick\" ? handleDoubleClick : handleTripleClick)(view, pos.pos, pos.inside, event)) {\n event.preventDefault();\n }\n else {\n setSelectionOrigin(view, \"pointer\");\n }\n};\nclass MouseDown {\n constructor(view, pos, event, flushed) {\n this.view = view;\n this.pos = pos;\n this.event = event;\n this.flushed = flushed;\n this.delayedSelectionSync = false;\n this.mightDrag = null;\n this.startDoc = view.state.doc;\n this.selectNode = !!event[selectNodeModifier];\n this.allowDefault = event.shiftKey;\n let targetNode, targetPos;\n if (pos.inside > -1) {\n targetNode = view.state.doc.nodeAt(pos.inside);\n targetPos = pos.inside;\n }\n else {\n let $pos = view.state.doc.resolve(pos.pos);\n targetNode = $pos.parent;\n targetPos = $pos.depth ? $pos.before() : 0;\n }\n const target = flushed ? null : event.target;\n const targetDesc = target ? view.docView.nearestDesc(target, true) : null;\n this.target = targetDesc && targetDesc.dom.nodeType == 1 ? targetDesc.dom : null;\n let { selection } = view.state;\n if (event.button == 0 &&\n targetNode.type.spec.draggable && targetNode.type.spec.selectable !== false ||\n selection instanceof NodeSelection && selection.from <= targetPos && selection.to > targetPos)\n this.mightDrag = {\n node: targetNode,\n pos: targetPos,\n addAttr: !!(this.target && !this.target.draggable),\n setUneditable: !!(this.target && gecko && !this.target.hasAttribute(\"contentEditable\"))\n };\n if (this.target && this.mightDrag && (this.mightDrag.addAttr || this.mightDrag.setUneditable)) {\n this.view.domObserver.stop();\n if (this.mightDrag.addAttr)\n this.target.draggable = true;\n if (this.mightDrag.setUneditable)\n setTimeout(() => {\n if (this.view.input.mouseDown == this)\n this.target.setAttribute(\"contentEditable\", \"false\");\n }, 20);\n this.view.domObserver.start();\n }\n view.root.addEventListener(\"mouseup\", this.up = this.up.bind(this));\n view.root.addEventListener(\"mousemove\", this.move = this.move.bind(this));\n setSelectionOrigin(view, \"pointer\");\n }\n done() {\n this.view.root.removeEventListener(\"mouseup\", this.up);\n this.view.root.removeEventListener(\"mousemove\", this.move);\n if (this.mightDrag && this.target) {\n this.view.domObserver.stop();\n if (this.mightDrag.addAttr)\n this.target.removeAttribute(\"draggable\");\n if (this.mightDrag.setUneditable)\n this.target.removeAttribute(\"contentEditable\");\n this.view.domObserver.start();\n }\n if (this.delayedSelectionSync)\n setTimeout(() => selectionToDOM(this.view));\n this.view.input.mouseDown = null;\n }\n up(event) {\n this.done();\n if (!this.view.dom.contains(event.target))\n return;\n let pos = this.pos;\n if (this.view.state.doc != this.startDoc)\n pos = this.view.posAtCoords(eventCoords(event));\n this.updateAllowDefault(event);\n if (this.allowDefault || !pos) {\n setSelectionOrigin(this.view, \"pointer\");\n }\n else if (handleSingleClick(this.view, pos.pos, pos.inside, event, this.selectNode)) {\n event.preventDefault();\n }\n else if (event.button == 0 &&\n (this.flushed ||\n // Safari ignores clicks on draggable elements\n (safari && this.mightDrag && !this.mightDrag.node.isAtom) ||\n // Chrome will sometimes treat a node selection as a\n // cursor, but still report that the node is selected\n // when asked through getSelection. You'll then get a\n // situation where clicking at the point where that\n // (hidden) cursor is doesn't change the selection, and\n // thus doesn't get a reaction from ProseMirror. This\n // works around that.\n (chrome && !this.view.state.selection.visible &&\n Math.min(Math.abs(pos.pos - this.view.state.selection.from), Math.abs(pos.pos - this.view.state.selection.to)) <= 2))) {\n updateSelection(this.view, Selection.near(this.view.state.doc.resolve(pos.pos)), \"pointer\");\n event.preventDefault();\n }\n else {\n setSelectionOrigin(this.view, \"pointer\");\n }\n }\n move(event) {\n this.updateAllowDefault(event);\n setSelectionOrigin(this.view, \"pointer\");\n if (event.buttons == 0)\n this.done();\n }\n updateAllowDefault(event) {\n if (!this.allowDefault && (Math.abs(this.event.x - event.clientX) > 4 ||\n Math.abs(this.event.y - event.clientY) > 4))\n this.allowDefault = true;\n }\n}\nhandlers.touchstart = view => {\n view.input.lastTouch = Date.now();\n forceDOMFlush(view);\n setSelectionOrigin(view, \"pointer\");\n};\nhandlers.touchmove = view => {\n view.input.lastTouch = Date.now();\n setSelectionOrigin(view, \"pointer\");\n};\nhandlers.contextmenu = view => forceDOMFlush(view);\nfunction inOrNearComposition(view, event) {\n if (view.composing)\n return true;\n // See https://www.stum.de/2016/06/24/handling-ime-events-in-javascript/.\n // On Japanese input method editors (IMEs), the Enter key is used to confirm character\n // selection. On Safari, when Enter is pressed, compositionend and keydown events are\n // emitted. The keydown event triggers newline insertion, which we don't want.\n // This method returns true if the keydown event should be ignored.\n // We only ignore it once, as pressing Enter a second time *should* insert a newline.\n // Furthermore, the keydown event timestamp must be close to the compositionEndedAt timestamp.\n // This guards against the case where compositionend is triggered without the keyboard\n // (e.g. character confirmation may be done with the mouse), and keydown is triggered\n // afterwards- we wouldn't want to ignore the keydown event in this case.\n if (safari && Math.abs(event.timeStamp - view.input.compositionEndedAt) < 500) {\n view.input.compositionEndedAt = -2e8;\n return true;\n }\n return false;\n}\n// Drop active composition after 5 seconds of inactivity on Android\nconst timeoutComposition = android ? 5000 : -1;\neditHandlers.compositionstart = editHandlers.compositionupdate = view => {\n if (!view.composing) {\n view.domObserver.flush();\n let { state } = view, $pos = state.selection.$to;\n if (state.selection instanceof TextSelection &&\n (state.storedMarks ||\n (!$pos.textOffset && $pos.parentOffset && $pos.nodeBefore.marks.some(m => m.type.spec.inclusive === false)))) {\n // Need to wrap the cursor in mark nodes different from the ones in the DOM context\n view.markCursor = view.state.storedMarks || $pos.marks();\n endComposition(view, true);\n view.markCursor = null;\n }\n else {\n endComposition(view, !state.selection.empty);\n // In firefox, if the cursor is after but outside a marked node,\n // the inserted text won't inherit the marks. So this moves it\n // inside if necessary.\n if (gecko && state.selection.empty && $pos.parentOffset && !$pos.textOffset && $pos.nodeBefore.marks.length) {\n let sel = view.domSelectionRange();\n for (let node = sel.focusNode, offset = sel.focusOffset; node && node.nodeType == 1 && offset != 0;) {\n let before = offset < 0 ? node.lastChild : node.childNodes[offset - 1];\n if (!before)\n break;\n if (before.nodeType == 3) {\n let sel = view.domSelection();\n if (sel)\n sel.collapse(before, before.nodeValue.length);\n break;\n }\n else {\n node = before;\n offset = -1;\n }\n }\n }\n }\n view.input.composing = true;\n }\n scheduleComposeEnd(view, timeoutComposition);\n};\neditHandlers.compositionend = (view, event) => {\n if (view.composing) {\n view.input.composing = false;\n view.input.compositionEndedAt = event.timeStamp;\n view.input.compositionPendingChanges = view.domObserver.pendingRecords().length ? view.input.compositionID : 0;\n view.input.compositionNode = null;\n if (view.input.compositionPendingChanges)\n Promise.resolve().then(() => view.domObserver.flush());\n view.input.compositionID++;\n scheduleComposeEnd(view, 20);\n }\n};\nfunction scheduleComposeEnd(view, delay) {\n clearTimeout(view.input.composingTimeout);\n if (delay > -1)\n view.input.composingTimeout = setTimeout(() => endComposition(view), delay);\n}\nfunction clearComposition(view) {\n if (view.composing) {\n view.input.composing = false;\n view.input.compositionEndedAt = timestampFromCustomEvent();\n }\n while (view.input.compositionNodes.length > 0)\n view.input.compositionNodes.pop().markParentsDirty();\n}\nfunction findCompositionNode(view) {\n let sel = view.domSelectionRange();\n if (!sel.focusNode)\n return null;\n let textBefore = textNodeBefore$1(sel.focusNode, sel.focusOffset);\n let textAfter = textNodeAfter$1(sel.focusNode, sel.focusOffset);\n if (textBefore && textAfter && textBefore != textAfter) {\n let descAfter = textAfter.pmViewDesc, lastChanged = view.domObserver.lastChangedTextNode;\n if (textBefore == lastChanged || textAfter == lastChanged)\n return lastChanged;\n if (!descAfter || !descAfter.isText(textAfter.nodeValue)) {\n return textAfter;\n }\n else if (view.input.compositionNode == textAfter) {\n let descBefore = textBefore.pmViewDesc;\n if (!(!descBefore || !descBefore.isText(textBefore.nodeValue)))\n return textAfter;\n }\n }\n return textBefore || textAfter;\n}\nfunction timestampFromCustomEvent() {\n let event = document.createEvent(\"Event\");\n event.initEvent(\"event\", true, true);\n return event.timeStamp;\n}\n/**\n@internal\n*/\nfunction endComposition(view, restarting = false) {\n if (android && view.domObserver.flushingSoon >= 0)\n return;\n view.domObserver.forceFlush();\n clearComposition(view);\n if (restarting || view.docView && view.docView.dirty) {\n let sel = selectionFromDOM(view);\n if (sel && !sel.eq(view.state.selection))\n view.dispatch(view.state.tr.setSelection(sel));\n else if ((view.markCursor || restarting) && !view.state.selection.empty)\n view.dispatch(view.state.tr.deleteSelection());\n else\n view.updateState(view.state);\n return true;\n }\n return false;\n}\nfunction captureCopy(view, dom) {\n // The extra wrapper is somehow necessary on IE/Edge to prevent the\n // content from being mangled when it is put onto the clipboard\n if (!view.dom.parentNode)\n return;\n let wrap = view.dom.parentNode.appendChild(document.createElement(\"div\"));\n wrap.appendChild(dom);\n wrap.style.cssText = \"position: fixed; left: -10000px; top: 10px\";\n let sel = getSelection(), range = document.createRange();\n range.selectNodeContents(dom);\n // Done because IE will fire a selectionchange moving the selection\n // to its start when removeAllRanges is called and the editor still\n // has focus (which will mess up the editor's selection state).\n view.dom.blur();\n sel.removeAllRanges();\n sel.addRange(range);\n setTimeout(() => {\n if (wrap.parentNode)\n wrap.parentNode.removeChild(wrap);\n view.focus();\n }, 50);\n}\n// This is very crude, but unfortunately both these browsers _pretend_\n// that they have a clipboard API—all the objects and methods are\n// there, they just don't work, and they are hard to test.\nconst brokenClipboardAPI = (ie && ie_version < 15) ||\n (ios && webkit_version < 604);\nhandlers.copy = editHandlers.cut = (view, _event) => {\n let event = _event;\n let sel = view.state.selection, cut = event.type == \"cut\";\n if (sel.empty)\n return;\n // IE and Edge's clipboard interface is completely broken\n let data = brokenClipboardAPI ? null : event.clipboardData;\n let slice = sel.content(), { dom, text } = serializeForClipboard(view, slice);\n if (data) {\n event.preventDefault();\n data.clearData();\n data.setData(\"text/html\", dom.innerHTML);\n data.setData(\"text/plain\", text);\n }\n else {\n captureCopy(view, dom);\n }\n if (cut)\n view.dispatch(view.state.tr.deleteSelection().scrollIntoView().setMeta(\"uiEvent\", \"cut\"));\n};\nfunction sliceSingleNode(slice) {\n return slice.openStart == 0 && slice.openEnd == 0 && slice.content.childCount == 1 ? slice.content.firstChild : null;\n}\nfunction capturePaste(view, event) {\n if (!view.dom.parentNode)\n return;\n let plainText = view.input.shiftKey || view.state.selection.$from.parent.type.spec.code;\n let target = view.dom.parentNode.appendChild(document.createElement(plainText ? \"textarea\" : \"div\"));\n if (!plainText)\n target.contentEditable = \"true\";\n target.style.cssText = \"position: fixed; left: -10000px; top: 10px\";\n target.focus();\n let plain = view.input.shiftKey && view.input.lastKeyCode != 45;\n setTimeout(() => {\n view.focus();\n if (target.parentNode)\n target.parentNode.removeChild(target);\n if (plainText)\n doPaste(view, target.value, null, plain, event);\n else\n doPaste(view, target.textContent, target.innerHTML, plain, event);\n }, 50);\n}\nfunction doPaste(view, text, html, preferPlain, event) {\n let slice = parseFromClipboard(view, text, html, preferPlain, view.state.selection.$from);\n if (view.someProp(\"handlePaste\", f => f(view, event, slice || Slice.empty)))\n return true;\n if (!slice)\n return false;\n let singleNode = sliceSingleNode(slice);\n let tr = singleNode\n ? view.state.tr.replaceSelectionWith(singleNode, preferPlain)\n : view.state.tr.replaceSelection(slice);\n view.dispatch(tr.scrollIntoView().setMeta(\"paste\", true).setMeta(\"uiEvent\", \"paste\"));\n return true;\n}\nfunction getText(clipboardData) {\n let text = clipboardData.getData(\"text/plain\") || clipboardData.getData(\"Text\");\n if (text)\n return text;\n let uris = clipboardData.getData(\"text/uri-list\");\n return uris ? uris.replace(/\\r?\\n/g, \" \") : \"\";\n}\neditHandlers.paste = (view, _event) => {\n let event = _event;\n // Handling paste from JavaScript during composition is very poorly\n // handled by browsers, so as a dodgy but preferable kludge, we just\n // let the browser do its native thing there, except on Android,\n // where the editor is almost always composing.\n if (view.composing && !android)\n return;\n let data = brokenClipboardAPI ? null : event.clipboardData;\n let plain = view.input.shiftKey && view.input.lastKeyCode != 45;\n if (data && doPaste(view, getText(data), data.getData(\"text/html\"), plain, event))\n event.preventDefault();\n else\n capturePaste(view, event);\n};\nclass Dragging {\n constructor(slice, move, node) {\n this.slice = slice;\n this.move = move;\n this.node = node;\n }\n}\nconst dragCopyModifier = mac ? \"altKey\" : \"ctrlKey\";\nhandlers.dragstart = (view, _event) => {\n let event = _event;\n let mouseDown = view.input.mouseDown;\n if (mouseDown)\n mouseDown.done();\n if (!event.dataTransfer)\n return;\n let sel = view.state.selection;\n let pos = sel.empty ? null : view.posAtCoords(eventCoords(event));\n let node;\n if (pos && pos.pos >= sel.from && pos.pos <= (sel instanceof NodeSelection ? sel.to - 1 : sel.to)) ;\n else if (mouseDown && mouseDown.mightDrag) {\n node = NodeSelection.create(view.state.doc, mouseDown.mightDrag.pos);\n }\n else if (event.target && event.target.nodeType == 1) {\n let desc = view.docView.nearestDesc(event.target, true);\n if (desc && desc.node.type.spec.draggable && desc != view.docView)\n node = NodeSelection.create(view.state.doc, desc.posBefore);\n }\n let draggedSlice = (node || view.state.selection).content();\n let { dom, text, slice } = serializeForClipboard(view, draggedSlice);\n // Pre-120 Chrome versions clear files when calling `clearData` (#1472)\n if (!event.dataTransfer.files.length || !chrome || chrome_version > 120)\n event.dataTransfer.clearData();\n event.dataTransfer.setData(brokenClipboardAPI ? \"Text\" : \"text/html\", dom.innerHTML);\n // See https://github.com/ProseMirror/prosemirror/issues/1156\n event.dataTransfer.effectAllowed = \"copyMove\";\n if (!brokenClipboardAPI)\n event.dataTransfer.setData(\"text/plain\", text);\n view.dragging = new Dragging(slice, !event[dragCopyModifier], node);\n};\nhandlers.dragend = view => {\n let dragging = view.dragging;\n window.setTimeout(() => {\n if (view.dragging == dragging)\n view.dragging = null;\n }, 50);\n};\neditHandlers.dragover = editHandlers.dragenter = (_, e) => e.preventDefault();\neditHandlers.drop = (view, _event) => {\n let event = _event;\n let dragging = view.dragging;\n view.dragging = null;\n if (!event.dataTransfer)\n return;\n let eventPos = view.posAtCoords(eventCoords(event));\n if (!eventPos)\n return;\n let $mouse = view.state.doc.resolve(eventPos.pos);\n let slice = dragging && dragging.slice;\n if (slice) {\n view.someProp(\"transformPasted\", f => { slice = f(slice, view); });\n }\n else {\n slice = parseFromClipboard(view, getText(event.dataTransfer), brokenClipboardAPI ? null : event.dataTransfer.getData(\"text/html\"), false, $mouse);\n }\n let move = !!(dragging && !event[dragCopyModifier]);\n if (view.someProp(\"handleDrop\", f => f(view, event, slice || Slice.empty, move))) {\n event.preventDefault();\n return;\n }\n if (!slice)\n return;\n event.preventDefault();\n let insertPos = slice ? dropPoint(view.state.doc, $mouse.pos, slice) : $mouse.pos;\n if (insertPos == null)\n insertPos = $mouse.pos;\n let tr = view.state.tr;\n if (move) {\n let { node } = dragging;\n if (node)\n node.replace(tr);\n else\n tr.deleteSelection();\n }\n let pos = tr.mapping.map(insertPos);\n let isNode = slice.openStart == 0 && slice.openEnd == 0 && slice.content.childCount == 1;\n let beforeInsert = tr.doc;\n if (isNode)\n tr.replaceRangeWith(pos, pos, slice.content.firstChild);\n else\n tr.replaceRange(pos, pos, slice);\n if (tr.doc.eq(beforeInsert))\n return;\n let $pos = tr.doc.resolve(pos);\n if (isNode && NodeSelection.isSelectable(slice.content.firstChild) &&\n $pos.nodeAfter && $pos.nodeAfter.sameMarkup(slice.content.firstChild)) {\n tr.setSelection(new NodeSelection($pos));\n }\n else {\n let end = tr.mapping.map(insertPos);\n tr.mapping.maps[tr.mapping.maps.length - 1].forEach((_from, _to, _newFrom, newTo) => end = newTo);\n tr.setSelection(selectionBetween(view, $pos, tr.doc.resolve(end)));\n }\n view.focus();\n view.dispatch(tr.setMeta(\"uiEvent\", \"drop\"));\n};\nhandlers.focus = view => {\n view.input.lastFocus = Date.now();\n if (!view.focused) {\n view.domObserver.stop();\n view.dom.classList.add(\"ProseMirror-focused\");\n view.domObserver.start();\n view.focused = true;\n setTimeout(() => {\n if (view.docView && view.hasFocus() && !view.domObserver.currentSelection.eq(view.domSelectionRange()))\n selectionToDOM(view);\n }, 20);\n }\n};\nhandlers.blur = (view, _event) => {\n let event = _event;\n if (view.focused) {\n view.domObserver.stop();\n view.dom.classList.remove(\"ProseMirror-focused\");\n view.domObserver.start();\n if (event.relatedTarget && view.dom.contains(event.relatedTarget))\n view.domObserver.currentSelection.clear();\n view.focused = false;\n }\n};\nhandlers.beforeinput = (view, _event) => {\n let event = _event;\n // We should probably do more with beforeinput events, but support\n // is so spotty that I'm still waiting to see where they are going.\n // Very specific hack to deal with backspace sometimes failing on\n // Chrome Android when after an uneditable node.\n if (chrome && android && event.inputType == \"deleteContentBackward\") {\n view.domObserver.flushSoon();\n let { domChangeCount } = view.input;\n setTimeout(() => {\n if (view.input.domChangeCount != domChangeCount)\n return; // Event already had some effect\n // This bug tends to close the virtual keyboard, so we refocus\n view.dom.blur();\n view.focus();\n if (view.someProp(\"handleKeyDown\", f => f(view, keyEvent(8, \"Backspace\"))))\n return;\n let { $cursor } = view.state.selection;\n // Crude approximation of backspace behavior when no command handled it\n if ($cursor && $cursor.pos > 0)\n view.dispatch(view.state.tr.delete($cursor.pos - 1, $cursor.pos).scrollIntoView());\n }, 50);\n }\n};\n// Make sure all handlers get registered\nfor (let prop in editHandlers)\n handlers[prop] = editHandlers[prop];\n\nfunction compareObjs(a, b) {\n if (a == b)\n return true;\n for (let p in a)\n if (a[p] !== b[p])\n return false;\n for (let p in b)\n if (!(p in a))\n return false;\n return true;\n}\nclass WidgetType {\n constructor(toDOM, spec) {\n this.toDOM = toDOM;\n this.spec = spec || noSpec;\n this.side = this.spec.side || 0;\n }\n map(mapping, span, offset, oldOffset) {\n let { pos, deleted } = mapping.mapResult(span.from + oldOffset, this.side < 0 ? -1 : 1);\n return deleted ? null : new Decoration(pos - offset, pos - offset, this);\n }\n valid() { return true; }\n eq(other) {\n return this == other ||\n (other instanceof WidgetType &&\n (this.spec.key && this.spec.key == other.spec.key ||\n this.toDOM == other.toDOM && compareObjs(this.spec, other.spec)));\n }\n destroy(node) {\n if (this.spec.destroy)\n this.spec.destroy(node);\n }\n}\nclass InlineType {\n constructor(attrs, spec) {\n this.attrs = attrs;\n this.spec = spec || noSpec;\n }\n map(mapping, span, offset, oldOffset) {\n let from = mapping.map(span.from + oldOffset, this.spec.inclusiveStart ? -1 : 1) - offset;\n let to = mapping.map(span.to + oldOffset, this.spec.inclusiveEnd ? 1 : -1) - offset;\n return from >= to ? null : new Decoration(from, to, this);\n }\n valid(_, span) { return span.from < span.to; }\n eq(other) {\n return this == other ||\n (other instanceof InlineType && compareObjs(this.attrs, other.attrs) &&\n compareObjs(this.spec, other.spec));\n }\n static is(span) { return span.type instanceof InlineType; }\n destroy() { }\n}\nclass NodeType {\n constructor(attrs, spec) {\n this.attrs = attrs;\n this.spec = spec || noSpec;\n }\n map(mapping, span, offset, oldOffset) {\n let from = mapping.mapResult(span.from + oldOffset, 1);\n if (from.deleted)\n return null;\n let to = mapping.mapResult(span.to + oldOffset, -1);\n if (to.deleted || to.pos <= from.pos)\n return null;\n return new Decoration(from.pos - offset, to.pos - offset, this);\n }\n valid(node, span) {\n let { index, offset } = node.content.findIndex(span.from), child;\n return offset == span.from && !(child = node.child(index)).isText && offset + child.nodeSize == span.to;\n }\n eq(other) {\n return this == other ||\n (other instanceof NodeType && compareObjs(this.attrs, other.attrs) &&\n compareObjs(this.spec, other.spec));\n }\n destroy() { }\n}\n/**\nDecoration objects can be provided to the view through the\n[`decorations` prop](https://prosemirror.net/docs/ref/#view.EditorProps.decorations). They come in\nseveral variants—see the static members of this class for details.\n*/\nclass Decoration {\n /**\n @internal\n */\n constructor(\n /**\n The start position of the decoration.\n */\n from, \n /**\n The end position. Will be the same as `from` for [widget\n decorations](https://prosemirror.net/docs/ref/#view.Decoration^widget).\n */\n to, \n /**\n @internal\n */\n type) {\n this.from = from;\n this.to = to;\n this.type = type;\n }\n /**\n @internal\n */\n copy(from, to) {\n return new Decoration(from, to, this.type);\n }\n /**\n @internal\n */\n eq(other, offset = 0) {\n return this.type.eq(other.type) && this.from + offset == other.from && this.to + offset == other.to;\n }\n /**\n @internal\n */\n map(mapping, offset, oldOffset) {\n return this.type.map(mapping, this, offset, oldOffset);\n }\n /**\n Creates a widget decoration, which is a DOM node that's shown in\n the document at the given position. It is recommended that you\n delay rendering the widget by passing a function that will be\n called when the widget is actually drawn in a view, but you can\n also directly pass a DOM node. `getPos` can be used to find the\n widget's current document position.\n */\n static widget(pos, toDOM, spec) {\n return new Decoration(pos, pos, new WidgetType(toDOM, spec));\n }\n /**\n Creates an inline decoration, which adds the given attributes to\n each inline node between `from` and `to`.\n */\n static inline(from, to, attrs, spec) {\n return new Decoration(from, to, new InlineType(attrs, spec));\n }\n /**\n Creates a node decoration. `from` and `to` should point precisely\n before and after a node in the document. That node, and only that\n node, will receive the given attributes.\n */\n static node(from, to, attrs, spec) {\n return new Decoration(from, to, new NodeType(attrs, spec));\n }\n /**\n The spec provided when creating this decoration. Can be useful\n if you've stored extra information in that object.\n */\n get spec() { return this.type.spec; }\n /**\n @internal\n */\n get inline() { return this.type instanceof InlineType; }\n /**\n @internal\n */\n get widget() { return this.type instanceof WidgetType; }\n}\nconst none = [], noSpec = {};\n/**\nA collection of [decorations](https://prosemirror.net/docs/ref/#view.Decoration), organized in such\na way that the drawing algorithm can efficiently use and compare\nthem. This is a persistent data structure—it is not modified,\nupdates create a new value.\n*/\nclass DecorationSet {\n /**\n @internal\n */\n constructor(local, children) {\n this.local = local.length ? local : none;\n this.children = children.length ? children : none;\n }\n /**\n Create a set of decorations, using the structure of the given\n document. This will consume (modify) the `decorations` array, so\n you must make a copy if you want need to preserve that.\n */\n static create(doc, decorations) {\n return decorations.length ? buildTree(decorations, doc, 0, noSpec) : empty;\n }\n /**\n Find all decorations in this set which touch the given range\n (including decorations that start or end directly at the\n boundaries) and match the given predicate on their spec. When\n `start` and `end` are omitted, all decorations in the set are\n considered. When `predicate` isn't given, all decorations are\n assumed to match.\n */\n find(start, end, predicate) {\n let result = [];\n this.findInner(start == null ? 0 : start, end == null ? 1e9 : end, result, 0, predicate);\n return result;\n }\n findInner(start, end, result, offset, predicate) {\n for (let i = 0; i < this.local.length; i++) {\n let span = this.local[i];\n if (span.from <= end && span.to >= start && (!predicate || predicate(span.spec)))\n result.push(span.copy(span.from + offset, span.to + offset));\n }\n for (let i = 0; i < this.children.length; i += 3) {\n if (this.children[i] < end && this.children[i + 1] > start) {\n let childOff = this.children[i] + 1;\n this.children[i + 2].findInner(start - childOff, end - childOff, result, offset + childOff, predicate);\n }\n }\n }\n /**\n Map the set of decorations in response to a change in the\n document.\n */\n map(mapping, doc, options) {\n if (this == empty || mapping.maps.length == 0)\n return this;\n return this.mapInner(mapping, doc, 0, 0, options || noSpec);\n }\n /**\n @internal\n */\n mapInner(mapping, node, offset, oldOffset, options) {\n let newLocal;\n for (let i = 0; i < this.local.length; i++) {\n let mapped = this.local[i].map(mapping, offset, oldOffset);\n if (mapped && mapped.type.valid(node, mapped))\n (newLocal || (newLocal = [])).push(mapped);\n else if (options.onRemove)\n options.onRemove(this.local[i].spec);\n }\n if (this.children.length)\n return mapChildren(this.children, newLocal || [], mapping, node, offset, oldOffset, options);\n else\n return newLocal ? new DecorationSet(newLocal.sort(byPos), none) : empty;\n }\n /**\n Add the given array of decorations to the ones in the set,\n producing a new set. Consumes the `decorations` array. Needs\n access to the current document to create the appropriate tree\n structure.\n */\n add(doc, decorations) {\n if (!decorations.length)\n return this;\n if (this == empty)\n return DecorationSet.create(doc, decorations);\n return this.addInner(doc, decorations, 0);\n }\n addInner(doc, decorations, offset) {\n let children, childIndex = 0;\n doc.forEach((childNode, childOffset) => {\n let baseOffset = childOffset + offset, found;\n if (!(found = takeSpansForNode(decorations, childNode, baseOffset)))\n return;\n if (!children)\n children = this.children.slice();\n while (childIndex < children.length && children[childIndex] < childOffset)\n childIndex += 3;\n if (children[childIndex] == childOffset)\n children[childIndex + 2] = children[childIndex + 2].addInner(childNode, found, baseOffset + 1);\n else\n children.splice(childIndex, 0, childOffset, childOffset + childNode.nodeSize, buildTree(found, childNode, baseOffset + 1, noSpec));\n childIndex += 3;\n });\n let local = moveSpans(childIndex ? withoutNulls(decorations) : decorations, -offset);\n for (let i = 0; i < local.length; i++)\n if (!local[i].type.valid(doc, local[i]))\n local.splice(i--, 1);\n return new DecorationSet(local.length ? this.local.concat(local).sort(byPos) : this.local, children || this.children);\n }\n /**\n Create a new set that contains the decorations in this set, minus\n the ones in the given array.\n */\n remove(decorations) {\n if (decorations.length == 0 || this == empty)\n return this;\n return this.removeInner(decorations, 0);\n }\n removeInner(decorations, offset) {\n let children = this.children, local = this.local;\n for (let i = 0; i < children.length; i += 3) {\n let found;\n let from = children[i] + offset, to = children[i + 1] + offset;\n for (let j = 0, span; j < decorations.length; j++)\n if (span = decorations[j]) {\n if (span.from > from && span.to < to) {\n decorations[j] = null;\n (found || (found = [])).push(span);\n }\n }\n if (!found)\n continue;\n if (children == this.children)\n children = this.children.slice();\n let removed = children[i + 2].removeInner(found, from + 1);\n if (removed != empty) {\n children[i + 2] = removed;\n }\n else {\n children.splice(i, 3);\n i -= 3;\n }\n }\n if (local.length)\n for (let i = 0, span; i < decorations.length; i++)\n if (span = decorations[i]) {\n for (let j = 0; j < local.length; j++)\n if (local[j].eq(span, offset)) {\n if (local == this.local)\n local = this.local.slice();\n local.splice(j--, 1);\n }\n }\n if (children == this.children && local == this.local)\n return this;\n return local.length || children.length ? new DecorationSet(local, children) : empty;\n }\n forChild(offset, node) {\n if (this == empty)\n return this;\n if (node.isLeaf)\n return DecorationSet.empty;\n let child, local;\n for (let i = 0; i < this.children.length; i += 3)\n if (this.children[i] >= offset) {\n if (this.children[i] == offset)\n child = this.children[i + 2];\n break;\n }\n let start = offset + 1, end = start + node.content.size;\n for (let i = 0; i < this.local.length; i++) {\n let dec = this.local[i];\n if (dec.from < end && dec.to > start && (dec.type instanceof InlineType)) {\n let from = Math.max(start, dec.from) - start, to = Math.min(end, dec.to) - start;\n if (from < to)\n (local || (local = [])).push(dec.copy(from, to));\n }\n }\n if (local) {\n let localSet = new DecorationSet(local.sort(byPos), none);\n return child ? new DecorationGroup([localSet, child]) : localSet;\n }\n return child || empty;\n }\n /**\n @internal\n */\n eq(other) {\n if (this == other)\n return true;\n if (!(other instanceof DecorationSet) ||\n this.local.length != other.local.length ||\n this.children.length != other.children.length)\n return false;\n for (let i = 0; i < this.local.length; i++)\n if (!this.local[i].eq(other.local[i]))\n return false;\n for (let i = 0; i < this.children.length; i += 3)\n if (this.children[i] != other.children[i] ||\n this.children[i + 1] != other.children[i + 1] ||\n !this.children[i + 2].eq(other.children[i + 2]))\n return false;\n return true;\n }\n /**\n @internal\n */\n locals(node) {\n return removeOverlap(this.localsInner(node));\n }\n /**\n @internal\n */\n localsInner(node) {\n if (this == empty)\n return none;\n if (node.inlineContent || !this.local.some(InlineType.is))\n return this.local;\n let result = [];\n for (let i = 0; i < this.local.length; i++) {\n if (!(this.local[i].type instanceof InlineType))\n result.push(this.local[i]);\n }\n return result;\n }\n forEachSet(f) { f(this); }\n}\n/**\nThe empty set of decorations.\n*/\nDecorationSet.empty = new DecorationSet([], []);\n/**\n@internal\n*/\nDecorationSet.removeOverlap = removeOverlap;\nconst empty = DecorationSet.empty;\n// An abstraction that allows the code dealing with decorations to\n// treat multiple DecorationSet objects as if it were a single object\n// with (a subset of) the same interface.\nclass DecorationGroup {\n constructor(members) {\n this.members = members;\n }\n map(mapping, doc) {\n const mappedDecos = this.members.map(member => member.map(mapping, doc, noSpec));\n return DecorationGroup.from(mappedDecos);\n }\n forChild(offset, child) {\n if (child.isLeaf)\n return DecorationSet.empty;\n let found = [];\n for (let i = 0; i < this.members.length; i++) {\n let result = this.members[i].forChild(offset, child);\n if (result == empty)\n continue;\n if (result instanceof DecorationGroup)\n found = found.concat(result.members);\n else\n found.push(result);\n }\n return DecorationGroup.from(found);\n }\n eq(other) {\n if (!(other instanceof DecorationGroup) ||\n other.members.length != this.members.length)\n return false;\n for (let i = 0; i < this.members.length; i++)\n if (!this.members[i].eq(other.members[i]))\n return false;\n return true;\n }\n locals(node) {\n let result, sorted = true;\n for (let i = 0; i < this.members.length; i++) {\n let locals = this.members[i].localsInner(node);\n if (!locals.length)\n continue;\n if (!result) {\n result = locals;\n }\n else {\n if (sorted) {\n result = result.slice();\n sorted = false;\n }\n for (let j = 0; j < locals.length; j++)\n result.push(locals[j]);\n }\n }\n return result ? removeOverlap(sorted ? result : result.sort(byPos)) : none;\n }\n // Create a group for the given array of decoration sets, or return\n // a single set when possible.\n static from(members) {\n switch (members.length) {\n case 0: return empty;\n case 1: return members[0];\n default: return new DecorationGroup(members.every(m => m instanceof DecorationSet) ? members :\n members.reduce((r, m) => r.concat(m instanceof DecorationSet ? m : m.members), []));\n }\n }\n forEachSet(f) {\n for (let i = 0; i < this.members.length; i++)\n this.members[i].forEachSet(f);\n }\n}\nfunction mapChildren(oldChildren, newLocal, mapping, node, offset, oldOffset, options) {\n let children = oldChildren.slice();\n // Mark the children that are directly touched by changes, and\n // move those that are after the changes.\n for (let i = 0, baseOffset = oldOffset; i < mapping.maps.length; i++) {\n let moved = 0;\n mapping.maps[i].forEach((oldStart, oldEnd, newStart, newEnd) => {\n let dSize = (newEnd - newStart) - (oldEnd - oldStart);\n for (let i = 0; i < children.length; i += 3) {\n let end = children[i + 1];\n if (end < 0 || oldStart > end + baseOffset - moved)\n continue;\n let start = children[i] + baseOffset - moved;\n if (oldEnd >= start) {\n children[i + 1] = oldStart <= start ? -2 : -1;\n }\n else if (oldStart >= baseOffset && dSize) {\n children[i] += dSize;\n children[i + 1] += dSize;\n }\n }\n moved += dSize;\n });\n baseOffset = mapping.maps[i].map(baseOffset, -1);\n }\n // Find the child nodes that still correspond to a single node,\n // recursively call mapInner on them and update their positions.\n let mustRebuild = false;\n for (let i = 0; i < children.length; i += 3)\n if (children[i + 1] < 0) { // Touched nodes\n if (children[i + 1] == -2) {\n mustRebuild = true;\n children[i + 1] = -1;\n continue;\n }\n let from = mapping.map(oldChildren[i] + oldOffset), fromLocal = from - offset;\n if (fromLocal < 0 || fromLocal >= node.content.size) {\n mustRebuild = true;\n continue;\n }\n // Must read oldChildren because children was tagged with -1\n let to = mapping.map(oldChildren[i + 1] + oldOffset, -1), toLocal = to - offset;\n let { index, offset: childOffset } = node.content.findIndex(fromLocal);\n let childNode = node.maybeChild(index);\n if (childNode && childOffset == fromLocal && childOffset + childNode.nodeSize == toLocal) {\n let mapped = children[i + 2]\n .mapInner(mapping, childNode, from + 1, oldChildren[i] + oldOffset + 1, options);\n if (mapped != empty) {\n children[i] = fromLocal;\n children[i + 1] = toLocal;\n children[i + 2] = mapped;\n }\n else {\n children[i + 1] = -2;\n mustRebuild = true;\n }\n }\n else {\n mustRebuild = true;\n }\n }\n // Remaining children must be collected and rebuilt into the appropriate structure\n if (mustRebuild) {\n let decorations = mapAndGatherRemainingDecorations(children, oldChildren, newLocal, mapping, offset, oldOffset, options);\n let built = buildTree(decorations, node, 0, options);\n newLocal = built.local;\n for (let i = 0; i < children.length; i += 3)\n if (children[i + 1] < 0) {\n children.splice(i, 3);\n i -= 3;\n }\n for (let i = 0, j = 0; i < built.children.length; i += 3) {\n let from = built.children[i];\n while (j < children.length && children[j] < from)\n j += 3;\n children.splice(j, 0, built.children[i], built.children[i + 1], built.children[i + 2]);\n }\n }\n return new DecorationSet(newLocal.sort(byPos), children);\n}\nfunction moveSpans(spans, offset) {\n if (!offset || !spans.length)\n return spans;\n let result = [];\n for (let i = 0; i < spans.length; i++) {\n let span = spans[i];\n result.push(new Decoration(span.from + offset, span.to + offset, span.type));\n }\n return result;\n}\nfunction mapAndGatherRemainingDecorations(children, oldChildren, decorations, mapping, offset, oldOffset, options) {\n // Gather all decorations from the remaining marked children\n function gather(set, oldOffset) {\n for (let i = 0; i < set.local.length; i++) {\n let mapped = set.local[i].map(mapping, offset, oldOffset);\n if (mapped)\n decorations.push(mapped);\n else if (options.onRemove)\n options.onRemove(set.local[i].spec);\n }\n for (let i = 0; i < set.children.length; i += 3)\n gather(set.children[i + 2], set.children[i] + oldOffset + 1);\n }\n for (let i = 0; i < children.length; i += 3)\n if (children[i + 1] == -1)\n gather(children[i + 2], oldChildren[i] + oldOffset + 1);\n return decorations;\n}\nfunction takeSpansForNode(spans, node, offset) {\n if (node.isLeaf)\n return null;\n let end = offset + node.nodeSize, found = null;\n for (let i = 0, span; i < spans.length; i++) {\n if ((span = spans[i]) && span.from > offset && span.to < end) {\n (found || (found = [])).push(span);\n spans[i] = null;\n }\n }\n return found;\n}\nfunction withoutNulls(array) {\n let result = [];\n for (let i = 0; i < array.length; i++)\n if (array[i] != null)\n result.push(array[i]);\n return result;\n}\n// Build up a tree that corresponds to a set of decorations. `offset`\n// is a base offset that should be subtracted from the `from` and `to`\n// positions in the spans (so that we don't have to allocate new spans\n// for recursive calls).\nfunction buildTree(spans, node, offset, options) {\n let children = [], hasNulls = false;\n node.forEach((childNode, localStart) => {\n let found = takeSpansForNode(spans, childNode, localStart + offset);\n if (found) {\n hasNulls = true;\n let subtree = buildTree(found, childNode, offset + localStart + 1, options);\n if (subtree != empty)\n children.push(localStart, localStart + childNode.nodeSize, subtree);\n }\n });\n let locals = moveSpans(hasNulls ? withoutNulls(spans) : spans, -offset).sort(byPos);\n for (let i = 0; i < locals.length; i++)\n if (!locals[i].type.valid(node, locals[i])) {\n if (options.onRemove)\n options.onRemove(locals[i].spec);\n locals.splice(i--, 1);\n }\n return locals.length || children.length ? new DecorationSet(locals, children) : empty;\n}\n// Used to sort decorations so that ones with a low start position\n// come first, and within a set with the same start position, those\n// with an smaller end position come first.\nfunction byPos(a, b) {\n return a.from - b.from || a.to - b.to;\n}\n// Scan a sorted array of decorations for partially overlapping spans,\n// and split those so that only fully overlapping spans are left (to\n// make subsequent rendering easier). Will return the input array if\n// no partially overlapping spans are found (the common case).\nfunction removeOverlap(spans) {\n let working = spans;\n for (let i = 0; i < working.length - 1; i++) {\n let span = working[i];\n if (span.from != span.to)\n for (let j = i + 1; j < working.length; j++) {\n let next = working[j];\n if (next.from == span.from) {\n if (next.to != span.to) {\n if (working == spans)\n working = spans.slice();\n // Followed by a partially overlapping larger span. Split that\n // span.\n working[j] = next.copy(next.from, span.to);\n insertAhead(working, j + 1, next.copy(span.to, next.to));\n }\n continue;\n }\n else {\n if (next.from < span.to) {\n if (working == spans)\n working = spans.slice();\n // The end of this one overlaps with a subsequent span. Split\n // this one.\n working[i] = span.copy(span.from, next.from);\n insertAhead(working, j, span.copy(next.from, span.to));\n }\n break;\n }\n }\n }\n return working;\n}\nfunction insertAhead(array, i, deco) {\n while (i < array.length && byPos(deco, array[i]) > 0)\n i++;\n array.splice(i, 0, deco);\n}\n// Get the decorations associated with the current props of a view.\nfunction viewDecorations(view) {\n let found = [];\n view.someProp(\"decorations\", f => {\n let result = f(view.state);\n if (result && result != empty)\n found.push(result);\n });\n if (view.cursorWrapper)\n found.push(DecorationSet.create(view.state.doc, [view.cursorWrapper.deco]));\n return DecorationGroup.from(found);\n}\n\nconst observeOptions = {\n childList: true,\n characterData: true,\n characterDataOldValue: true,\n attributes: true,\n attributeOldValue: true,\n subtree: true\n};\n// IE11 has very broken mutation observers, so we also listen to DOMCharacterDataModified\nconst useCharData = ie && ie_version <= 11;\nclass SelectionState {\n constructor() {\n this.anchorNode = null;\n this.anchorOffset = 0;\n this.focusNode = null;\n this.focusOffset = 0;\n }\n set(sel) {\n this.anchorNode = sel.anchorNode;\n this.anchorOffset = sel.anchorOffset;\n this.focusNode = sel.focusNode;\n this.focusOffset = sel.focusOffset;\n }\n clear() {\n this.anchorNode = this.focusNode = null;\n }\n eq(sel) {\n return sel.anchorNode == this.anchorNode && sel.anchorOffset == this.anchorOffset &&\n sel.focusNode == this.focusNode && sel.focusOffset == this.focusOffset;\n }\n}\nclass DOMObserver {\n constructor(view, handleDOMChange) {\n this.view = view;\n this.handleDOMChange = handleDOMChange;\n this.queue = [];\n this.flushingSoon = -1;\n this.observer = null;\n this.currentSelection = new SelectionState;\n this.onCharData = null;\n this.suppressingSelectionUpdates = false;\n this.lastChangedTextNode = null;\n this.observer = window.MutationObserver &&\n new window.MutationObserver(mutations => {\n for (let i = 0; i < mutations.length; i++)\n this.queue.push(mutations[i]);\n // IE11 will sometimes (on backspacing out a single character\n // text node after a BR node) call the observer callback\n // before actually updating the DOM, which will cause\n // ProseMirror to miss the change (see #930)\n if (ie && ie_version <= 11 && mutations.some(m => m.type == \"childList\" && m.removedNodes.length ||\n m.type == \"characterData\" && m.oldValue.length > m.target.nodeValue.length))\n this.flushSoon();\n else\n this.flush();\n });\n if (useCharData) {\n this.onCharData = e => {\n this.queue.push({ target: e.target, type: \"characterData\", oldValue: e.prevValue });\n this.flushSoon();\n };\n }\n this.onSelectionChange = this.onSelectionChange.bind(this);\n }\n flushSoon() {\n if (this.flushingSoon < 0)\n this.flushingSoon = window.setTimeout(() => { this.flushingSoon = -1; this.flush(); }, 20);\n }\n forceFlush() {\n if (this.flushingSoon > -1) {\n window.clearTimeout(this.flushingSoon);\n this.flushingSoon = -1;\n this.flush();\n }\n }\n start() {\n if (this.observer) {\n this.observer.takeRecords();\n this.observer.observe(this.view.dom, observeOptions);\n }\n if (this.onCharData)\n this.view.dom.addEventListener(\"DOMCharacterDataModified\", this.onCharData);\n this.connectSelection();\n }\n stop() {\n if (this.observer) {\n let take = this.observer.takeRecords();\n if (take.length) {\n for (let i = 0; i < take.length; i++)\n this.queue.push(take[i]);\n window.setTimeout(() => this.flush(), 20);\n }\n this.observer.disconnect();\n }\n if (this.onCharData)\n this.view.dom.removeEventListener(\"DOMCharacterDataModified\", this.onCharData);\n this.disconnectSelection();\n }\n connectSelection() {\n this.view.dom.ownerDocument.addEventListener(\"selectionchange\", this.onSelectionChange);\n }\n disconnectSelection() {\n this.view.dom.ownerDocument.removeEventListener(\"selectionchange\", this.onSelectionChange);\n }\n suppressSelectionUpdates() {\n this.suppressingSelectionUpdates = true;\n setTimeout(() => this.suppressingSelectionUpdates = false, 50);\n }\n onSelectionChange() {\n if (!hasFocusAndSelection(this.view))\n return;\n if (this.suppressingSelectionUpdates)\n return selectionToDOM(this.view);\n // Deletions on IE11 fire their events in the wrong order, giving\n // us a selection change event before the DOM changes are\n // reported.\n if (ie && ie_version <= 11 && !this.view.state.selection.empty) {\n let sel = this.view.domSelectionRange();\n // Selection.isCollapsed isn't reliable on IE\n if (sel.focusNode && isEquivalentPosition(sel.focusNode, sel.focusOffset, sel.anchorNode, sel.anchorOffset))\n return this.flushSoon();\n }\n this.flush();\n }\n setCurSelection() {\n this.currentSelection.set(this.view.domSelectionRange());\n }\n ignoreSelectionChange(sel) {\n if (!sel.focusNode)\n return true;\n let ancestors = new Set, container;\n for (let scan = sel.focusNode; scan; scan = parentNode(scan))\n ancestors.add(scan);\n for (let scan = sel.anchorNode; scan; scan = parentNode(scan))\n if (ancestors.has(scan)) {\n container = scan;\n break;\n }\n let desc = container && this.view.docView.nearestDesc(container);\n if (desc && desc.ignoreMutation({\n type: \"selection\",\n target: container.nodeType == 3 ? container.parentNode : container\n })) {\n this.setCurSelection();\n return true;\n }\n }\n pendingRecords() {\n if (this.observer)\n for (let mut of this.observer.takeRecords())\n this.queue.push(mut);\n return this.queue;\n }\n flush() {\n let { view } = this;\n if (!view.docView || this.flushingSoon > -1)\n return;\n let mutations = this.pendingRecords();\n if (mutations.length)\n this.queue = [];\n let sel = view.domSelectionRange();\n let newSel = !this.suppressingSelectionUpdates && !this.currentSelection.eq(sel) && hasFocusAndSelection(view) && !this.ignoreSelectionChange(sel);\n let from = -1, to = -1, typeOver = false, added = [];\n if (view.editable) {\n for (let i = 0; i < mutations.length; i++) {\n let result = this.registerMutation(mutations[i], added);\n if (result) {\n from = from < 0 ? result.from : Math.min(result.from, from);\n to = to < 0 ? result.to : Math.max(result.to, to);\n if (result.typeOver)\n typeOver = true;\n }\n }\n }\n if (gecko && added.length) {\n let brs = added.filter(n => n.nodeName == \"BR\");\n if (brs.length == 2) {\n let [a, b] = brs;\n if (a.parentNode && a.parentNode.parentNode == b.parentNode)\n b.remove();\n else\n a.remove();\n }\n else {\n let { focusNode } = this.currentSelection;\n for (let br of brs) {\n let parent = br.parentNode;\n if (parent && parent.nodeName == \"LI\" && (!focusNode || blockParent(view, focusNode) != parent))\n br.remove();\n }\n }\n }\n let readSel = null;\n // If it looks like the browser has reset the selection to the\n // start of the document after focus, restore the selection from\n // the state\n if (from < 0 && newSel && view.input.lastFocus > Date.now() - 200 &&\n Math.max(view.input.lastTouch, view.input.lastClick.time) < Date.now() - 300 &&\n selectionCollapsed(sel) && (readSel = selectionFromDOM(view)) &&\n readSel.eq(Selection.near(view.state.doc.resolve(0), 1))) {\n view.input.lastFocus = 0;\n selectionToDOM(view);\n this.currentSelection.set(sel);\n view.scrollToSelection();\n }\n else if (from > -1 || newSel) {\n if (from > -1) {\n view.docView.markDirty(from, to);\n checkCSS(view);\n }\n this.handleDOMChange(from, to, typeOver, added);\n if (view.docView && view.docView.dirty)\n view.updateState(view.state);\n else if (!this.currentSelection.eq(sel))\n selectionToDOM(view);\n this.currentSelection.set(sel);\n }\n }\n registerMutation(mut, added) {\n // Ignore mutations inside nodes that were already noted as inserted\n if (added.indexOf(mut.target) > -1)\n return null;\n let desc = this.view.docView.nearestDesc(mut.target);\n if (mut.type == \"attributes\" &&\n (desc == this.view.docView || mut.attributeName == \"contenteditable\" ||\n // Firefox sometimes fires spurious events for null/empty styles\n (mut.attributeName == \"style\" && !mut.oldValue && !mut.target.getAttribute(\"style\"))))\n return null;\n if (!desc || desc.ignoreMutation(mut))\n return null;\n if (mut.type == \"childList\") {\n for (let i = 0; i < mut.addedNodes.length; i++) {\n let node = mut.addedNodes[i];\n added.push(node);\n if (node.nodeType == 3)\n this.lastChangedTextNode = node;\n }\n if (desc.contentDOM && desc.contentDOM != desc.dom && !desc.contentDOM.contains(mut.target))\n return { from: desc.posBefore, to: desc.posAfter };\n let prev = mut.previousSibling, next = mut.nextSibling;\n if (ie && ie_version <= 11 && mut.addedNodes.length) {\n // IE11 gives us incorrect next/prev siblings for some\n // insertions, so if there are added nodes, recompute those\n for (let i = 0; i < mut.addedNodes.length; i++) {\n let { previousSibling, nextSibling } = mut.addedNodes[i];\n if (!previousSibling || Array.prototype.indexOf.call(mut.addedNodes, previousSibling) < 0)\n prev = previousSibling;\n if (!nextSibling || Array.prototype.indexOf.call(mut.addedNodes, nextSibling) < 0)\n next = nextSibling;\n }\n }\n let fromOffset = prev && prev.parentNode == mut.target\n ? domIndex(prev) + 1 : 0;\n let from = desc.localPosFromDOM(mut.target, fromOffset, -1);\n let toOffset = next && next.parentNode == mut.target\n ? domIndex(next) : mut.target.childNodes.length;\n let to = desc.localPosFromDOM(mut.target, toOffset, 1);\n return { from, to };\n }\n else if (mut.type == \"attributes\") {\n return { from: desc.posAtStart - desc.border, to: desc.posAtEnd + desc.border };\n }\n else { // \"characterData\"\n this.lastChangedTextNode = mut.target;\n return {\n from: desc.posAtStart,\n to: desc.posAtEnd,\n // An event was generated for a text change that didn't change\n // any text. Mark the dom change to fall back to assuming the\n // selection was typed over with an identical value if it can't\n // find another change.\n typeOver: mut.target.nodeValue == mut.oldValue\n };\n }\n }\n}\nlet cssChecked = new WeakMap();\nlet cssCheckWarned = false;\nfunction checkCSS(view) {\n if (cssChecked.has(view))\n return;\n cssChecked.set(view, null);\n if (['normal', 'nowrap', 'pre-line'].indexOf(getComputedStyle(view.dom).whiteSpace) !== -1) {\n view.requiresGeckoHackNode = gecko;\n if (cssCheckWarned)\n return;\n console[\"warn\"](\"ProseMirror expects the CSS white-space property to be set, preferably to 'pre-wrap'. It is recommended to load style/prosemirror.css from the prosemirror-view package.\");\n cssCheckWarned = true;\n }\n}\nfunction rangeToSelectionRange(view, range) {\n let anchorNode = range.startContainer, anchorOffset = range.startOffset;\n let focusNode = range.endContainer, focusOffset = range.endOffset;\n let currentAnchor = view.domAtPos(view.state.selection.anchor);\n // Since such a range doesn't distinguish between anchor and head,\n // use a heuristic that flips it around if its end matches the\n // current anchor.\n if (isEquivalentPosition(currentAnchor.node, currentAnchor.offset, focusNode, focusOffset))\n [anchorNode, anchorOffset, focusNode, focusOffset] = [focusNode, focusOffset, anchorNode, anchorOffset];\n return { anchorNode, anchorOffset, focusNode, focusOffset };\n}\n// Used to work around a Safari Selection/shadow DOM bug\n// Based on https://github.com/codemirror/dev/issues/414 fix\nfunction safariShadowSelectionRange(view, selection) {\n if (selection.getComposedRanges) {\n let range = selection.getComposedRanges(view.root)[0];\n if (range)\n return rangeToSelectionRange(view, range);\n }\n let found;\n function read(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n found = event.getTargetRanges()[0];\n }\n // Because Safari (at least in 2018-2022) doesn't provide regular\n // access to the selection inside a shadowRoot, we have to perform a\n // ridiculous hack to get at it—using `execCommand` to trigger a\n // `beforeInput` event so that we can read the target range from the\n // event.\n view.dom.addEventListener(\"beforeinput\", read, true);\n document.execCommand(\"indent\");\n view.dom.removeEventListener(\"beforeinput\", read, true);\n return found ? rangeToSelectionRange(view, found) : null;\n}\nfunction blockParent(view, node) {\n for (let p = node.parentNode; p && p != view.dom; p = p.parentNode) {\n let desc = view.docView.nearestDesc(p, true);\n if (desc && desc.node.isBlock)\n return p;\n }\n return null;\n}\n\n// Note that all referencing and parsing is done with the\n// start-of-operation selection and document, since that's the one\n// that the DOM represents. If any changes came in in the meantime,\n// the modification is mapped over those before it is applied, in\n// readDOMChange.\nfunction parseBetween(view, from_, to_) {\n let { node: parent, fromOffset, toOffset, from, to } = view.docView.parseRange(from_, to_);\n let domSel = view.domSelectionRange();\n let find;\n let anchor = domSel.anchorNode;\n if (anchor && view.dom.contains(anchor.nodeType == 1 ? anchor : anchor.parentNode)) {\n find = [{ node: anchor, offset: domSel.anchorOffset }];\n if (!selectionCollapsed(domSel))\n find.push({ node: domSel.focusNode, offset: domSel.focusOffset });\n }\n // Work around issue in Chrome where backspacing sometimes replaces\n // the deleted content with a random BR node (issues #799, #831)\n if (chrome && view.input.lastKeyCode === 8) {\n for (let off = toOffset; off > fromOffset; off--) {\n let node = parent.childNodes[off - 1], desc = node.pmViewDesc;\n if (node.nodeName == \"BR\" && !desc) {\n toOffset = off;\n break;\n }\n if (!desc || desc.size)\n break;\n }\n }\n let startDoc = view.state.doc;\n let parser = view.someProp(\"domParser\") || DOMParser.fromSchema(view.state.schema);\n let $from = startDoc.resolve(from);\n let sel = null, doc = parser.parse(parent, {\n topNode: $from.parent,\n topMatch: $from.parent.contentMatchAt($from.index()),\n topOpen: true,\n from: fromOffset,\n to: toOffset,\n preserveWhitespace: $from.parent.type.whitespace == \"pre\" ? \"full\" : true,\n findPositions: find,\n ruleFromNode,\n context: $from\n });\n if (find && find[0].pos != null) {\n let anchor = find[0].pos, head = find[1] && find[1].pos;\n if (head == null)\n head = anchor;\n sel = { anchor: anchor + from, head: head + from };\n }\n return { doc, sel, from, to };\n}\nfunction ruleFromNode(dom) {\n let desc = dom.pmViewDesc;\n if (desc) {\n return desc.parseRule();\n }\n else if (dom.nodeName == \"BR\" && dom.parentNode) {\n // Safari replaces the list item or table cell with a BR\n // directly in the list node (?!) if you delete the last\n // character in a list item or table cell (#708, #862)\n if (safari && /^(ul|ol)$/i.test(dom.parentNode.nodeName)) {\n let skip = document.createElement(\"div\");\n skip.appendChild(document.createElement(\"li\"));\n return { skip };\n }\n else if (dom.parentNode.lastChild == dom || safari && /^(tr|table)$/i.test(dom.parentNode.nodeName)) {\n return { ignore: true };\n }\n }\n else if (dom.nodeName == \"IMG\" && dom.getAttribute(\"mark-placeholder\")) {\n return { ignore: true };\n }\n return null;\n}\nconst isInline = /^(a|abbr|acronym|b|bd[io]|big|br|button|cite|code|data(list)?|del|dfn|em|i|ins|kbd|label|map|mark|meter|output|q|ruby|s|samp|small|span|strong|su[bp]|time|u|tt|var)$/i;\nfunction readDOMChange(view, from, to, typeOver, addedNodes) {\n let compositionID = view.input.compositionPendingChanges || (view.composing ? view.input.compositionID : 0);\n view.input.compositionPendingChanges = 0;\n if (from < 0) {\n let origin = view.input.lastSelectionTime > Date.now() - 50 ? view.input.lastSelectionOrigin : null;\n let newSel = selectionFromDOM(view, origin);\n if (newSel && !view.state.selection.eq(newSel)) {\n if (chrome && android &&\n view.input.lastKeyCode === 13 && Date.now() - 100 < view.input.lastKeyCodeTime &&\n view.someProp(\"handleKeyDown\", f => f(view, keyEvent(13, \"Enter\"))))\n return;\n let tr = view.state.tr.setSelection(newSel);\n if (origin == \"pointer\")\n tr.setMeta(\"pointer\", true);\n else if (origin == \"key\")\n tr.scrollIntoView();\n if (compositionID)\n tr.setMeta(\"composition\", compositionID);\n view.dispatch(tr);\n }\n return;\n }\n let $before = view.state.doc.resolve(from);\n let shared = $before.sharedDepth(to);\n from = $before.before(shared + 1);\n to = view.state.doc.resolve(to).after(shared + 1);\n let sel = view.state.selection;\n let parse = parseBetween(view, from, to);\n let doc = view.state.doc, compare = doc.slice(parse.from, parse.to);\n let preferredPos, preferredSide;\n // Prefer anchoring to end when Backspace is pressed\n if (view.input.lastKeyCode === 8 && Date.now() - 100 < view.input.lastKeyCodeTime) {\n preferredPos = view.state.selection.to;\n preferredSide = \"end\";\n }\n else {\n preferredPos = view.state.selection.from;\n preferredSide = \"start\";\n }\n view.input.lastKeyCode = null;\n let change = findDiff(compare.content, parse.doc.content, parse.from, preferredPos, preferredSide);\n if (change)\n view.input.domChangeCount++;\n if ((ios && view.input.lastIOSEnter > Date.now() - 225 || android) &&\n addedNodes.some(n => n.nodeType == 1 && !isInline.test(n.nodeName)) &&\n (!change || change.endA >= change.endB) &&\n view.someProp(\"handleKeyDown\", f => f(view, keyEvent(13, \"Enter\")))) {\n view.input.lastIOSEnter = 0;\n return;\n }\n if (!change) {\n if (typeOver && sel instanceof TextSelection && !sel.empty && sel.$head.sameParent(sel.$anchor) &&\n !view.composing && !(parse.sel && parse.sel.anchor != parse.sel.head)) {\n change = { start: sel.from, endA: sel.to, endB: sel.to };\n }\n else {\n if (parse.sel) {\n let sel = resolveSelection(view, view.state.doc, parse.sel);\n if (sel && !sel.eq(view.state.selection)) {\n let tr = view.state.tr.setSelection(sel);\n if (compositionID)\n tr.setMeta(\"composition\", compositionID);\n view.dispatch(tr);\n }\n }\n return;\n }\n }\n // Handle the case where overwriting a selection by typing matches\n // the start or end of the selected content, creating a change\n // that's smaller than what was actually overwritten.\n if (view.state.selection.from < view.state.selection.to &&\n change.start == change.endB &&\n view.state.selection instanceof TextSelection) {\n if (change.start > view.state.selection.from && change.start <= view.state.selection.from + 2 &&\n view.state.selection.from >= parse.from) {\n change.start = view.state.selection.from;\n }\n else if (change.endA < view.state.selection.to && change.endA >= view.state.selection.to - 2 &&\n view.state.selection.to <= parse.to) {\n change.endB += (view.state.selection.to - change.endA);\n change.endA = view.state.selection.to;\n }\n }\n // IE11 will insert a non-breaking space _ahead_ of the space after\n // the cursor space when adding a space before another space. When\n // that happened, adjust the change to cover the space instead.\n if (ie && ie_version <= 11 && change.endB == change.start + 1 &&\n change.endA == change.start && change.start > parse.from &&\n parse.doc.textBetween(change.start - parse.from - 1, change.start - parse.from + 1) == \" \\u00a0\") {\n change.start--;\n change.endA--;\n change.endB--;\n }\n let $from = parse.doc.resolveNoCache(change.start - parse.from);\n let $to = parse.doc.resolveNoCache(change.endB - parse.from);\n let $fromA = doc.resolve(change.start);\n let inlineChange = $from.sameParent($to) && $from.parent.inlineContent && $fromA.end() >= change.endA;\n let nextSel;\n // If this looks like the effect of pressing Enter (or was recorded\n // as being an iOS enter press), just dispatch an Enter key instead.\n if (((ios && view.input.lastIOSEnter > Date.now() - 225 &&\n (!inlineChange || addedNodes.some(n => n.nodeName == \"DIV\" || n.nodeName == \"P\"))) ||\n (!inlineChange && $from.pos < parse.doc.content.size && !$from.sameParent($to) &&\n (nextSel = Selection.findFrom(parse.doc.resolve($from.pos + 1), 1, true)) &&\n nextSel.head == $to.pos)) &&\n view.someProp(\"handleKeyDown\", f => f(view, keyEvent(13, \"Enter\")))) {\n view.input.lastIOSEnter = 0;\n return;\n }\n // Same for backspace\n if (view.state.selection.anchor > change.start &&\n looksLikeBackspace(doc, change.start, change.endA, $from, $to) &&\n view.someProp(\"handleKeyDown\", f => f(view, keyEvent(8, \"Backspace\")))) {\n if (android && chrome)\n view.domObserver.suppressSelectionUpdates(); // #820\n return;\n }\n // Chrome will occasionally, during composition, delete the\n // entire composition and then immediately insert it again. This is\n // used to detect that situation.\n if (chrome && change.endB == change.start)\n view.input.lastChromeDelete = Date.now();\n // This tries to detect Android virtual keyboard\n // enter-and-pick-suggestion action. That sometimes (see issue\n // #1059) first fires a DOM mutation, before moving the selection to\n // the newly created block. And then, because ProseMirror cleans up\n // the DOM selection, it gives up moving the selection entirely,\n // leaving the cursor in the wrong place. When that happens, we drop\n // the new paragraph from the initial change, and fire a simulated\n // enter key afterwards.\n if (android && !inlineChange && $from.start() != $to.start() && $to.parentOffset == 0 && $from.depth == $to.depth &&\n parse.sel && parse.sel.anchor == parse.sel.head && parse.sel.head == change.endA) {\n change.endB -= 2;\n $to = parse.doc.resolveNoCache(change.endB - parse.from);\n setTimeout(() => {\n view.someProp(\"handleKeyDown\", function (f) { return f(view, keyEvent(13, \"Enter\")); });\n }, 20);\n }\n let chFrom = change.start, chTo = change.endA;\n let tr, storedMarks, markChange;\n if (inlineChange) {\n if ($from.pos == $to.pos) { // Deletion\n // IE11 sometimes weirdly moves the DOM selection around after\n // backspacing out the first element in a textblock\n if (ie && ie_version <= 11 && $from.parentOffset == 0) {\n view.domObserver.suppressSelectionUpdates();\n setTimeout(() => selectionToDOM(view), 20);\n }\n tr = view.state.tr.delete(chFrom, chTo);\n storedMarks = doc.resolve(change.start).marksAcross(doc.resolve(change.endA));\n }\n else if ( // Adding or removing a mark\n change.endA == change.endB &&\n (markChange = isMarkChange($from.parent.content.cut($from.parentOffset, $to.parentOffset), $fromA.parent.content.cut($fromA.parentOffset, change.endA - $fromA.start())))) {\n tr = view.state.tr;\n if (markChange.type == \"add\")\n tr.addMark(chFrom, chTo, markChange.mark);\n else\n tr.removeMark(chFrom, chTo, markChange.mark);\n }\n else if ($from.parent.child($from.index()).isText && $from.index() == $to.index() - ($to.textOffset ? 0 : 1)) {\n // Both positions in the same text node -- simply insert text\n let text = $from.parent.textBetween($from.parentOffset, $to.parentOffset);\n if (view.someProp(\"handleTextInput\", f => f(view, chFrom, chTo, text)))\n return;\n tr = view.state.tr.insertText(text, chFrom, chTo);\n }\n }\n if (!tr)\n tr = view.state.tr.replace(chFrom, chTo, parse.doc.slice(change.start - parse.from, change.endB - parse.from));\n if (parse.sel) {\n let sel = resolveSelection(view, tr.doc, parse.sel);\n // Chrome will sometimes, during composition, report the\n // selection in the wrong place. If it looks like that is\n // happening, don't update the selection.\n // Edge just doesn't move the cursor forward when you start typing\n // in an empty block or between br nodes.\n if (sel && !(chrome && view.composing && sel.empty &&\n (change.start != change.endB || view.input.lastChromeDelete < Date.now() - 100) &&\n (sel.head == chFrom || sel.head == tr.mapping.map(chTo) - 1) ||\n ie && sel.empty && sel.head == chFrom))\n tr.setSelection(sel);\n }\n if (storedMarks)\n tr.ensureMarks(storedMarks);\n if (compositionID)\n tr.setMeta(\"composition\", compositionID);\n view.dispatch(tr.scrollIntoView());\n}\nfunction resolveSelection(view, doc, parsedSel) {\n if (Math.max(parsedSel.anchor, parsedSel.head) > doc.content.size)\n return null;\n return selectionBetween(view, doc.resolve(parsedSel.anchor), doc.resolve(parsedSel.head));\n}\n// Given two same-length, non-empty fragments of inline content,\n// determine whether the first could be created from the second by\n// removing or adding a single mark type.\nfunction isMarkChange(cur, prev) {\n let curMarks = cur.firstChild.marks, prevMarks = prev.firstChild.marks;\n let added = curMarks, removed = prevMarks, type, mark, update;\n for (let i = 0; i < prevMarks.length; i++)\n added = prevMarks[i].removeFromSet(added);\n for (let i = 0; i < curMarks.length; i++)\n removed = curMarks[i].removeFromSet(removed);\n if (added.length == 1 && removed.length == 0) {\n mark = added[0];\n type = \"add\";\n update = (node) => node.mark(mark.addToSet(node.marks));\n }\n else if (added.length == 0 && removed.length == 1) {\n mark = removed[0];\n type = \"remove\";\n update = (node) => node.mark(mark.removeFromSet(node.marks));\n }\n else {\n return null;\n }\n let updated = [];\n for (let i = 0; i < prev.childCount; i++)\n updated.push(update(prev.child(i)));\n if (Fragment.from(updated).eq(cur))\n return { mark, type };\n}\nfunction looksLikeBackspace(old, start, end, $newStart, $newEnd) {\n if ( // The content must have shrunk\n end - start <= $newEnd.pos - $newStart.pos ||\n // newEnd must point directly at or after the end of the block that newStart points into\n skipClosingAndOpening($newStart, true, false) < $newEnd.pos)\n return false;\n let $start = old.resolve(start);\n // Handle the case where, rather than joining blocks, the change just removed an entire block\n if (!$newStart.parent.isTextblock) {\n let after = $start.nodeAfter;\n return after != null && end == start + after.nodeSize;\n }\n // Start must be at the end of a block\n if ($start.parentOffset < $start.parent.content.size || !$start.parent.isTextblock)\n return false;\n let $next = old.resolve(skipClosingAndOpening($start, true, true));\n // The next textblock must start before end and end near it\n if (!$next.parent.isTextblock || $next.pos > end ||\n skipClosingAndOpening($next, true, false) < end)\n return false;\n // The fragments after the join point must match\n return $newStart.parent.content.cut($newStart.parentOffset).eq($next.parent.content);\n}\nfunction skipClosingAndOpening($pos, fromEnd, mayOpen) {\n let depth = $pos.depth, end = fromEnd ? $pos.end() : $pos.pos;\n while (depth > 0 && (fromEnd || $pos.indexAfter(depth) == $pos.node(depth).childCount)) {\n depth--;\n end++;\n fromEnd = false;\n }\n if (mayOpen) {\n let next = $pos.node(depth).maybeChild($pos.indexAfter(depth));\n while (next && !next.isLeaf) {\n next = next.firstChild;\n end++;\n }\n }\n return end;\n}\nfunction findDiff(a, b, pos, preferredPos, preferredSide) {\n let start = a.findDiffStart(b, pos);\n if (start == null)\n return null;\n let { a: endA, b: endB } = a.findDiffEnd(b, pos + a.size, pos + b.size);\n if (preferredSide == \"end\") {\n let adjust = Math.max(0, start - Math.min(endA, endB));\n preferredPos -= endA + adjust - start;\n }\n if (endA < start && a.size < b.size) {\n let move = preferredPos <= start && preferredPos >= endA ? start - preferredPos : 0;\n start -= move;\n if (start && start < b.size && isSurrogatePair(b.textBetween(start - 1, start + 1)))\n start += move ? 1 : -1;\n endB = start + (endB - endA);\n endA = start;\n }\n else if (endB < start) {\n let move = preferredPos <= start && preferredPos >= endB ? start - preferredPos : 0;\n start -= move;\n if (start && start < a.size && isSurrogatePair(a.textBetween(start - 1, start + 1)))\n start += move ? 1 : -1;\n endA = start + (endA - endB);\n endB = start;\n }\n return { start, endA, endB };\n}\nfunction isSurrogatePair(str) {\n if (str.length != 2)\n return false;\n let a = str.charCodeAt(0), b = str.charCodeAt(1);\n return a >= 0xDC00 && a <= 0xDFFF && b >= 0xD800 && b <= 0xDBFF;\n}\n\n/**\n@internal\n*/\nconst __serializeForClipboard = serializeForClipboard;\n/**\n@internal\n*/\nconst __parseFromClipboard = parseFromClipboard;\n/**\n@internal\n*/\nconst __endComposition = endComposition;\n/**\nAn editor view manages the DOM structure that represents an\neditable document. Its state and behavior are determined by its\n[props](https://prosemirror.net/docs/ref/#view.DirectEditorProps).\n*/\nclass EditorView {\n /**\n Create a view. `place` may be a DOM node that the editor should\n be appended to, a function that will place it into the document,\n or an object whose `mount` property holds the node to use as the\n document container. If it is `null`, the editor will not be\n added to the document.\n */\n constructor(place, props) {\n this._root = null;\n /**\n @internal\n */\n this.focused = false;\n /**\n Kludge used to work around a Chrome bug @internal\n */\n this.trackWrites = null;\n this.mounted = false;\n /**\n @internal\n */\n this.markCursor = null;\n /**\n @internal\n */\n this.cursorWrapper = null;\n /**\n @internal\n */\n this.lastSelectedViewDesc = undefined;\n /**\n @internal\n */\n this.input = new InputState;\n this.prevDirectPlugins = [];\n this.pluginViews = [];\n /**\n Holds `true` when a hack node is needed in Firefox to prevent the\n [space is eaten issue](https://github.com/ProseMirror/prosemirror/issues/651)\n @internal\n */\n this.requiresGeckoHackNode = false;\n /**\n When editor content is being dragged, this object contains\n information about the dragged slice and whether it is being\n copied or moved. At any other time, it is null.\n */\n this.dragging = null;\n this._props = props;\n this.state = props.state;\n this.directPlugins = props.plugins || [];\n this.directPlugins.forEach(checkStateComponent);\n this.dispatch = this.dispatch.bind(this);\n this.dom = (place && place.mount) || document.createElement(\"div\");\n if (place) {\n if (place.appendChild)\n place.appendChild(this.dom);\n else if (typeof place == \"function\")\n place(this.dom);\n else if (place.mount)\n this.mounted = true;\n }\n this.editable = getEditable(this);\n updateCursorWrapper(this);\n this.nodeViews = buildNodeViews(this);\n this.docView = docViewDesc(this.state.doc, computeDocDeco(this), viewDecorations(this), this.dom, this);\n this.domObserver = new DOMObserver(this, (from, to, typeOver, added) => readDOMChange(this, from, to, typeOver, added));\n this.domObserver.start();\n initInput(this);\n this.updatePluginViews();\n }\n /**\n Holds `true` when a\n [composition](https://w3c.github.io/uievents/#events-compositionevents)\n is active.\n */\n get composing() { return this.input.composing; }\n /**\n The view's current [props](https://prosemirror.net/docs/ref/#view.EditorProps).\n */\n get props() {\n if (this._props.state != this.state) {\n let prev = this._props;\n this._props = {};\n for (let name in prev)\n this._props[name] = prev[name];\n this._props.state = this.state;\n }\n return this._props;\n }\n /**\n Update the view's props. Will immediately cause an update to\n the DOM.\n */\n update(props) {\n if (props.handleDOMEvents != this._props.handleDOMEvents)\n ensureListeners(this);\n let prevProps = this._props;\n this._props = props;\n if (props.plugins) {\n props.plugins.forEach(checkStateComponent);\n this.directPlugins = props.plugins;\n }\n this.updateStateInner(props.state, prevProps);\n }\n /**\n Update the view by updating existing props object with the object\n given as argument. Equivalent to `view.update(Object.assign({},\n view.props, props))`.\n */\n setProps(props) {\n let updated = {};\n for (let name in this._props)\n updated[name] = this._props[name];\n updated.state = this.state;\n for (let name in props)\n updated[name] = props[name];\n this.update(updated);\n }\n /**\n Update the editor's `state` prop, without touching any of the\n other props.\n */\n updateState(state) {\n this.updateStateInner(state, this._props);\n }\n updateStateInner(state, prevProps) {\n var _a;\n let prev = this.state, redraw = false, updateSel = false;\n // When stored marks are added, stop composition, so that they can\n // be displayed.\n if (state.storedMarks && this.composing) {\n clearComposition(this);\n updateSel = true;\n }\n this.state = state;\n let pluginsChanged = prev.plugins != state.plugins || this._props.plugins != prevProps.plugins;\n if (pluginsChanged || this._props.plugins != prevProps.plugins || this._props.nodeViews != prevProps.nodeViews) {\n let nodeViews = buildNodeViews(this);\n if (changedNodeViews(nodeViews, this.nodeViews)) {\n this.nodeViews = nodeViews;\n redraw = true;\n }\n }\n if (pluginsChanged || prevProps.handleDOMEvents != this._props.handleDOMEvents) {\n ensureListeners(this);\n }\n this.editable = getEditable(this);\n updateCursorWrapper(this);\n let innerDeco = viewDecorations(this), outerDeco = computeDocDeco(this);\n let scroll = prev.plugins != state.plugins && !prev.doc.eq(state.doc) ? \"reset\"\n : state.scrollToSelection > prev.scrollToSelection ? \"to selection\" : \"preserve\";\n let updateDoc = redraw || !this.docView.matchesNode(state.doc, outerDeco, innerDeco);\n if (updateDoc || !state.selection.eq(prev.selection))\n updateSel = true;\n let oldScrollPos = scroll == \"preserve\" && updateSel && this.dom.style.overflowAnchor == null && storeScrollPos(this);\n if (updateSel) {\n this.domObserver.stop();\n // Work around an issue in Chrome, IE, and Edge where changing\n // the DOM around an active selection puts it into a broken\n // state where the thing the user sees differs from the\n // selection reported by the Selection object (#710, #973,\n // #1011, #1013, #1035).\n let forceSelUpdate = updateDoc && (ie || chrome) && !this.composing &&\n !prev.selection.empty && !state.selection.empty && selectionContextChanged(prev.selection, state.selection);\n if (updateDoc) {\n // If the node that the selection points into is written to,\n // Chrome sometimes starts misreporting the selection, so this\n // tracks that and forces a selection reset when our update\n // did write to the node.\n let chromeKludge = chrome ? (this.trackWrites = this.domSelectionRange().focusNode) : null;\n if (this.composing)\n this.input.compositionNode = findCompositionNode(this);\n if (redraw || !this.docView.update(state.doc, outerDeco, innerDeco, this)) {\n this.docView.updateOuterDeco(outerDeco);\n this.docView.destroy();\n this.docView = docViewDesc(state.doc, outerDeco, innerDeco, this.dom, this);\n }\n if (chromeKludge && !this.trackWrites)\n forceSelUpdate = true;\n }\n // Work around for an issue where an update arriving right between\n // a DOM selection change and the \"selectionchange\" event for it\n // can cause a spurious DOM selection update, disrupting mouse\n // drag selection.\n if (forceSelUpdate ||\n !(this.input.mouseDown && this.domObserver.currentSelection.eq(this.domSelectionRange()) &&\n anchorInRightPlace(this))) {\n selectionToDOM(this, forceSelUpdate);\n }\n else {\n syncNodeSelection(this, state.selection);\n this.domObserver.setCurSelection();\n }\n this.domObserver.start();\n }\n this.updatePluginViews(prev);\n if (((_a = this.dragging) === null || _a === void 0 ? void 0 : _a.node) && !prev.doc.eq(state.doc))\n this.updateDraggedNode(this.dragging, prev);\n if (scroll == \"reset\") {\n this.dom.scrollTop = 0;\n }\n else if (scroll == \"to selection\") {\n this.scrollToSelection();\n }\n else if (oldScrollPos) {\n resetScrollPos(oldScrollPos);\n }\n }\n /**\n @internal\n */\n scrollToSelection() {\n let startDOM = this.domSelectionRange().focusNode;\n if (this.someProp(\"handleScrollToSelection\", f => f(this))) ;\n else if (this.state.selection instanceof NodeSelection) {\n let target = this.docView.domAfterPos(this.state.selection.from);\n if (target.nodeType == 1)\n scrollRectIntoView(this, target.getBoundingClientRect(), startDOM);\n }\n else {\n scrollRectIntoView(this, this.coordsAtPos(this.state.selection.head, 1), startDOM);\n }\n }\n destroyPluginViews() {\n let view;\n while (view = this.pluginViews.pop())\n if (view.destroy)\n view.destroy();\n }\n updatePluginViews(prevState) {\n if (!prevState || prevState.plugins != this.state.plugins || this.directPlugins != this.prevDirectPlugins) {\n this.prevDirectPlugins = this.directPlugins;\n this.destroyPluginViews();\n for (let i = 0; i < this.directPlugins.length; i++) {\n let plugin = this.directPlugins[i];\n if (plugin.spec.view)\n this.pluginViews.push(plugin.spec.view(this));\n }\n for (let i = 0; i < this.state.plugins.length; i++) {\n let plugin = this.state.plugins[i];\n if (plugin.spec.view)\n this.pluginViews.push(plugin.spec.view(this));\n }\n }\n else {\n for (let i = 0; i < this.pluginViews.length; i++) {\n let pluginView = this.pluginViews[i];\n if (pluginView.update)\n pluginView.update(this, prevState);\n }\n }\n }\n updateDraggedNode(dragging, prev) {\n let sel = dragging.node, found = -1;\n if (this.state.doc.nodeAt(sel.from) == sel.node) {\n found = sel.from;\n }\n else {\n let movedPos = sel.from + (this.state.doc.content.size - prev.doc.content.size);\n let moved = movedPos > 0 && this.state.doc.nodeAt(movedPos);\n if (moved == sel.node)\n found = movedPos;\n }\n this.dragging = new Dragging(dragging.slice, dragging.move, found < 0 ? undefined : NodeSelection.create(this.state.doc, found));\n }\n someProp(propName, f) {\n let prop = this._props && this._props[propName], value;\n if (prop != null && (value = f ? f(prop) : prop))\n return value;\n for (let i = 0; i < this.directPlugins.length; i++) {\n let prop = this.directPlugins[i].props[propName];\n if (prop != null && (value = f ? f(prop) : prop))\n return value;\n }\n let plugins = this.state.plugins;\n if (plugins)\n for (let i = 0; i < plugins.length; i++) {\n let prop = plugins[i].props[propName];\n if (prop != null && (value = f ? f(prop) : prop))\n return value;\n }\n }\n /**\n Query whether the view has focus.\n */\n hasFocus() {\n // Work around IE not handling focus correctly if resize handles are shown.\n // If the cursor is inside an element with resize handles, activeElement\n // will be that element instead of this.dom.\n if (ie) {\n // If activeElement is within this.dom, and there are no other elements\n // setting `contenteditable` to false in between, treat it as focused.\n let node = this.root.activeElement;\n if (node == this.dom)\n return true;\n if (!node || !this.dom.contains(node))\n return false;\n while (node && this.dom != node && this.dom.contains(node)) {\n if (node.contentEditable == 'false')\n return false;\n node = node.parentElement;\n }\n return true;\n }\n return this.root.activeElement == this.dom;\n }\n /**\n Focus the editor.\n */\n focus() {\n this.domObserver.stop();\n if (this.editable)\n focusPreventScroll(this.dom);\n selectionToDOM(this);\n this.domObserver.start();\n }\n /**\n Get the document root in which the editor exists. This will\n usually be the top-level `document`, but might be a [shadow\n DOM](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Shadow_DOM)\n root if the editor is inside one.\n */\n get root() {\n let cached = this._root;\n if (cached == null)\n for (let search = this.dom.parentNode; search; search = search.parentNode) {\n if (search.nodeType == 9 || (search.nodeType == 11 && search.host)) {\n if (!search.getSelection)\n Object.getPrototypeOf(search).getSelection = () => search.ownerDocument.getSelection();\n return this._root = search;\n }\n }\n return cached || document;\n }\n /**\n When an existing editor view is moved to a new document or\n shadow tree, call this to make it recompute its root.\n */\n updateRoot() {\n this._root = null;\n }\n /**\n Given a pair of viewport coordinates, return the document\n position that corresponds to them. May return null if the given\n coordinates aren't inside of the editor. When an object is\n returned, its `pos` property is the position nearest to the\n coordinates, and its `inside` property holds the position of the\n inner node that the position falls inside of, or -1 if it is at\n the top level, not in any node.\n */\n posAtCoords(coords) {\n return posAtCoords(this, coords);\n }\n /**\n Returns the viewport rectangle at a given document position.\n `left` and `right` will be the same number, as this returns a\n flat cursor-ish rectangle. If the position is between two things\n that aren't directly adjacent, `side` determines which element\n is used. When < 0, the element before the position is used,\n otherwise the element after.\n */\n coordsAtPos(pos, side = 1) {\n return coordsAtPos(this, pos, side);\n }\n /**\n Find the DOM position that corresponds to the given document\n position. When `side` is negative, find the position as close as\n possible to the content before the position. When positive,\n prefer positions close to the content after the position. When\n zero, prefer as shallow a position as possible.\n \n Note that you should **not** mutate the editor's internal DOM,\n only inspect it (and even that is usually not necessary).\n */\n domAtPos(pos, side = 0) {\n return this.docView.domFromPos(pos, side);\n }\n /**\n Find the DOM node that represents the document node after the\n given position. May return `null` when the position doesn't point\n in front of a node or if the node is inside an opaque node view.\n \n This is intended to be able to call things like\n `getBoundingClientRect` on that DOM node. Do **not** mutate the\n editor DOM directly, or add styling this way, since that will be\n immediately overriden by the editor as it redraws the node.\n */\n nodeDOM(pos) {\n let desc = this.docView.descAt(pos);\n return desc ? desc.nodeDOM : null;\n }\n /**\n Find the document position that corresponds to a given DOM\n position. (Whenever possible, it is preferable to inspect the\n document structure directly, rather than poking around in the\n DOM, but sometimes—for example when interpreting an event\n target—you don't have a choice.)\n \n The `bias` parameter can be used to influence which side of a DOM\n node to use when the position is inside a leaf node.\n */\n posAtDOM(node, offset, bias = -1) {\n let pos = this.docView.posFromDOM(node, offset, bias);\n if (pos == null)\n throw new RangeError(\"DOM position not inside the editor\");\n return pos;\n }\n /**\n Find out whether the selection is at the end of a textblock when\n moving in a given direction. When, for example, given `\"left\"`,\n it will return true if moving left from the current cursor\n position would leave that position's parent textblock. Will apply\n to the view's current state by default, but it is possible to\n pass a different state.\n */\n endOfTextblock(dir, state) {\n return endOfTextblock(this, state || this.state, dir);\n }\n /**\n Run the editor's paste logic with the given HTML string. The\n `event`, if given, will be passed to the\n [`handlePaste`](https://prosemirror.net/docs/ref/#view.EditorProps.handlePaste) hook.\n */\n pasteHTML(html, event) {\n return doPaste(this, \"\", html, false, event || new ClipboardEvent(\"paste\"));\n }\n /**\n Run the editor's paste logic with the given plain-text input.\n */\n pasteText(text, event) {\n return doPaste(this, text, null, true, event || new ClipboardEvent(\"paste\"));\n }\n /**\n Removes the editor from the DOM and destroys all [node\n views](https://prosemirror.net/docs/ref/#view.NodeView).\n */\n destroy() {\n if (!this.docView)\n return;\n destroyInput(this);\n this.destroyPluginViews();\n if (this.mounted) {\n this.docView.update(this.state.doc, [], viewDecorations(this), this);\n this.dom.textContent = \"\";\n }\n else if (this.dom.parentNode) {\n this.dom.parentNode.removeChild(this.dom);\n }\n this.docView.destroy();\n this.docView = null;\n clearReusedRange();\n }\n /**\n This is true when the view has been\n [destroyed](https://prosemirror.net/docs/ref/#view.EditorView.destroy) (and thus should not be\n used anymore).\n */\n get isDestroyed() {\n return this.docView == null;\n }\n /**\n Used for testing.\n */\n dispatchEvent(event) {\n return dispatchEvent(this, event);\n }\n /**\n Dispatch a transaction. Will call\n [`dispatchTransaction`](https://prosemirror.net/docs/ref/#view.DirectEditorProps.dispatchTransaction)\n when given, and otherwise defaults to applying the transaction to\n the current state and calling\n [`updateState`](https://prosemirror.net/docs/ref/#view.EditorView.updateState) with the result.\n This method is bound to the view instance, so that it can be\n easily passed around.\n */\n dispatch(tr) {\n let dispatchTransaction = this._props.dispatchTransaction;\n if (dispatchTransaction)\n dispatchTransaction.call(this, tr);\n else\n this.updateState(this.state.apply(tr));\n }\n /**\n @internal\n */\n domSelectionRange() {\n let sel = this.domSelection();\n if (!sel)\n return { focusNode: null, focusOffset: 0, anchorNode: null, anchorOffset: 0 };\n return safari && this.root.nodeType === 11 &&\n deepActiveElement(this.dom.ownerDocument) == this.dom && safariShadowSelectionRange(this, sel) || sel;\n }\n /**\n @internal\n */\n domSelection() {\n return this.root.getSelection();\n }\n}\nfunction computeDocDeco(view) {\n let attrs = Object.create(null);\n attrs.class = \"ProseMirror\";\n attrs.contenteditable = String(view.editable);\n view.someProp(\"attributes\", value => {\n if (typeof value == \"function\")\n value = value(view.state);\n if (value)\n for (let attr in value) {\n if (attr == \"class\")\n attrs.class += \" \" + value[attr];\n else if (attr == \"style\")\n attrs.style = (attrs.style ? attrs.style + \";\" : \"\") + value[attr];\n else if (!attrs[attr] && attr != \"contenteditable\" && attr != \"nodeName\")\n attrs[attr] = String(value[attr]);\n }\n });\n if (!attrs.translate)\n attrs.translate = \"no\";\n return [Decoration.node(0, view.state.doc.content.size, attrs)];\n}\nfunction updateCursorWrapper(view) {\n if (view.markCursor) {\n let dom = document.createElement(\"img\");\n dom.className = \"ProseMirror-separator\";\n dom.setAttribute(\"mark-placeholder\", \"true\");\n dom.setAttribute(\"alt\", \"\");\n view.cursorWrapper = { dom, deco: Decoration.widget(view.state.selection.from, dom, { raw: true, marks: view.markCursor }) };\n }\n else {\n view.cursorWrapper = null;\n }\n}\nfunction getEditable(view) {\n return !view.someProp(\"editable\", value => value(view.state) === false);\n}\nfunction selectionContextChanged(sel1, sel2) {\n let depth = Math.min(sel1.$anchor.sharedDepth(sel1.head), sel2.$anchor.sharedDepth(sel2.head));\n return sel1.$anchor.start(depth) != sel2.$anchor.start(depth);\n}\nfunction buildNodeViews(view) {\n let result = Object.create(null);\n function add(obj) {\n for (let prop in obj)\n if (!Object.prototype.hasOwnProperty.call(result, prop))\n result[prop] = obj[prop];\n }\n view.someProp(\"nodeViews\", add);\n view.someProp(\"markViews\", add);\n return result;\n}\nfunction changedNodeViews(a, b) {\n let nA = 0, nB = 0;\n for (let prop in a) {\n if (a[prop] != b[prop])\n return true;\n nA++;\n }\n for (let _ in b)\n nB++;\n return nA != nB;\n}\nfunction checkStateComponent(plugin) {\n if (plugin.spec.state || plugin.spec.filterTransaction || plugin.spec.appendTransaction)\n throw new RangeError(\"Plugins passed directly to the view must not have a state component\");\n}\n\nexport { Decoration, DecorationSet, EditorView, __endComposition, __parseFromClipboard, __serializeForClipboard };\n","export var base = {\n 8: \"Backspace\",\n 9: \"Tab\",\n 10: \"Enter\",\n 12: \"NumLock\",\n 13: \"Enter\",\n 16: \"Shift\",\n 17: \"Control\",\n 18: \"Alt\",\n 20: \"CapsLock\",\n 27: \"Escape\",\n 32: \" \",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"ArrowLeft\",\n 38: \"ArrowUp\",\n 39: \"ArrowRight\",\n 40: \"ArrowDown\",\n 44: \"PrintScreen\",\n 45: \"Insert\",\n 46: \"Delete\",\n 59: \";\",\n 61: \"=\",\n 91: \"Meta\",\n 92: \"Meta\",\n 106: \"*\",\n 107: \"+\",\n 108: \",\",\n 109: \"-\",\n 110: \".\",\n 111: \"/\",\n 144: \"NumLock\",\n 145: \"ScrollLock\",\n 160: \"Shift\",\n 161: \"Shift\",\n 162: \"Control\",\n 163: \"Control\",\n 164: \"Alt\",\n 165: \"Alt\",\n 173: \"-\",\n 186: \";\",\n 187: \"=\",\n 188: \",\",\n 189: \"-\",\n 190: \".\",\n 191: \"/\",\n 192: \"`\",\n 219: \"[\",\n 220: \"\\\\\",\n 221: \"]\",\n 222: \"'\"\n}\n\nexport var shift = {\n 48: \")\",\n 49: \"!\",\n 50: \"@\",\n 51: \"#\",\n 52: \"$\",\n 53: \"%\",\n 54: \"^\",\n 55: \"&\",\n 56: \"*\",\n 57: \"(\",\n 59: \":\",\n 61: \"+\",\n 173: \"_\",\n 186: \":\",\n 187: \"+\",\n 188: \"<\",\n 189: \"_\",\n 190: \">\",\n 191: \"?\",\n 192: \"~\",\n 219: \"{\",\n 220: \"|\",\n 221: \"}\",\n 222: \"\\\"\"\n}\n\nvar mac = typeof navigator != \"undefined\" && /Mac/.test(navigator.platform)\nvar ie = typeof navigator != \"undefined\" && /MSIE \\d|Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(navigator.userAgent)\n\n// Fill in the digit keys\nfor (var i = 0; i < 10; i++) base[48 + i] = base[96 + i] = String(i)\n\n// The function keys\nfor (var i = 1; i <= 24; i++) base[i + 111] = \"F\" + i\n\n// And the alphabetic keys\nfor (var i = 65; i <= 90; i++) {\n base[i] = String.fromCharCode(i + 32)\n shift[i] = String.fromCharCode(i)\n}\n\n// For each code that doesn't have a shift-equivalent, copy the base name\nfor (var code in base) if (!shift.hasOwnProperty(code)) shift[code] = base[code]\n\nexport function keyName(event) {\n // On macOS, keys held with Shift and Cmd don't reflect the effect of Shift in `.key`.\n // On IE, shift effect is never included in `.key`.\n var ignoreKey = mac && event.metaKey && event.shiftKey && !event.ctrlKey && !event.altKey ||\n ie && event.shiftKey && event.key && event.key.length == 1 ||\n event.key == \"Unidentified\"\n var name = (!ignoreKey && event.key) ||\n (event.shiftKey ? shift : base)[event.keyCode] ||\n event.key || \"Unidentified\"\n // Edge sometimes produces wrong names (Issue #3)\n if (name == \"Esc\") name = \"Escape\"\n if (name == \"Del\") name = \"Delete\"\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/8860571/\n if (name == \"Left\") name = \"ArrowLeft\"\n if (name == \"Up\") name = \"ArrowUp\"\n if (name == \"Right\") name = \"ArrowRight\"\n if (name == \"Down\") name = \"ArrowDown\"\n return name\n}\n","import { keyName, base } from 'w3c-keyname';\nimport { Plugin } from 'prosemirror-state';\n\nconst mac = typeof navigator != \"undefined\" ? /Mac|iP(hone|[oa]d)/.test(navigator.platform) : false;\nfunction normalizeKeyName(name) {\n let parts = name.split(/-(?!$)/), result = parts[parts.length - 1];\n if (result == \"Space\")\n result = \" \";\n let alt, ctrl, shift, meta;\n for (let i = 0; i < parts.length - 1; i++) {\n let mod = parts[i];\n if (/^(cmd|meta|m)$/i.test(mod))\n meta = true;\n else if (/^a(lt)?$/i.test(mod))\n alt = true;\n else if (/^(c|ctrl|control)$/i.test(mod))\n ctrl = true;\n else if (/^s(hift)?$/i.test(mod))\n shift = true;\n else if (/^mod$/i.test(mod)) {\n if (mac)\n meta = true;\n else\n ctrl = true;\n }\n else\n throw new Error(\"Unrecognized modifier name: \" + mod);\n }\n if (alt)\n result = \"Alt-\" + result;\n if (ctrl)\n result = \"Ctrl-\" + result;\n if (meta)\n result = \"Meta-\" + result;\n if (shift)\n result = \"Shift-\" + result;\n return result;\n}\nfunction normalize(map) {\n let copy = Object.create(null);\n for (let prop in map)\n copy[normalizeKeyName(prop)] = map[prop];\n return copy;\n}\nfunction modifiers(name, event, shift = true) {\n if (event.altKey)\n name = \"Alt-\" + name;\n if (event.ctrlKey)\n name = \"Ctrl-\" + name;\n if (event.metaKey)\n name = \"Meta-\" + name;\n if (shift && event.shiftKey)\n name = \"Shift-\" + name;\n return name;\n}\n/**\nCreate a keymap plugin for the given set of bindings.\n\nBindings should map key names to [command](https://prosemirror.net/docs/ref/#commands)-style\nfunctions, which will be called with `(EditorState, dispatch,\nEditorView)` arguments, and should return true when they've handled\nthe key. Note that the view argument isn't part of the command\nprotocol, but can be used as an escape hatch if a binding needs to\ndirectly interact with the UI.\n\nKey names may be strings like `\"Shift-Ctrl-Enter\"`—a key\nidentifier prefixed with zero or more modifiers. Key identifiers\nare based on the strings that can appear in\n[`KeyEvent.key`](https:developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key).\nUse lowercase letters to refer to letter keys (or uppercase letters\nif you want shift to be held). You may use `\"Space\"` as an alias\nfor the `\" \"` name.\n\nModifiers can be given in any order. `Shift-` (or `s-`), `Alt-` (or\n`a-`), `Ctrl-` (or `c-` or `Control-`) and `Cmd-` (or `m-` or\n`Meta-`) are recognized. For characters that are created by holding\nshift, the `Shift-` prefix is implied, and should not be added\nexplicitly.\n\nYou can use `Mod-` as a shorthand for `Cmd-` on Mac and `Ctrl-` on\nother platforms.\n\nYou can add multiple keymap plugins to an editor. The order in\nwhich they appear determines their precedence (the ones early in\nthe array get to dispatch first).\n*/\nfunction keymap(bindings) {\n return new Plugin({ props: { handleKeyDown: keydownHandler(bindings) } });\n}\n/**\nGiven a set of bindings (using the same format as\n[`keymap`](https://prosemirror.net/docs/ref/#keymap.keymap)), return a [keydown\nhandler](https://prosemirror.net/docs/ref/#view.EditorProps.handleKeyDown) that handles them.\n*/\nfunction keydownHandler(bindings) {\n let map = normalize(bindings);\n return function (view, event) {\n let name = keyName(event), baseName, direct = map[modifiers(name, event)];\n if (direct && direct(view.state, view.dispatch, view))\n return true;\n // A character key\n if (name.length == 1 && name != \" \") {\n if (event.shiftKey) {\n // In case the name was already modified by shift, try looking\n // it up without its shift modifier\n let noShift = map[modifiers(name, event, false)];\n if (noShift && noShift(view.state, view.dispatch, view))\n return true;\n }\n if ((event.shiftKey || event.altKey || event.metaKey || name.charCodeAt(0) > 127) &&\n (baseName = base[event.keyCode]) && baseName != name) {\n // Try falling back to the keyCode when there's a modifier\n // active or the character produced isn't ASCII, and our table\n // produces a different name from the the keyCode. See #668,\n // #1060\n let fromCode = map[modifiers(baseName, event)];\n if (fromCode && fromCode(view.state, view.dispatch, view))\n return true;\n }\n }\n return false;\n };\n}\n\nexport { keydownHandler, keymap };\n","import { liftTarget, replaceStep, ReplaceStep, canJoin, joinPoint, canSplit, ReplaceAroundStep, findWrapping } from 'prosemirror-transform';\nimport { Slice, Fragment } from 'prosemirror-model';\nimport { NodeSelection, Selection, TextSelection, AllSelection, SelectionRange } from 'prosemirror-state';\n\n/**\nDelete the selection, if there is one.\n*/\nconst deleteSelection = (state, dispatch) => {\n if (state.selection.empty)\n return false;\n if (dispatch)\n dispatch(state.tr.deleteSelection().scrollIntoView());\n return true;\n};\nfunction atBlockStart(state, view) {\n let { $cursor } = state.selection;\n if (!$cursor || (view ? !view.endOfTextblock(\"backward\", state)\n : $cursor.parentOffset > 0))\n return null;\n return $cursor;\n}\n/**\nIf the selection is empty and at the start of a textblock, try to\nreduce the distance between that block and the one before it—if\nthere's a block directly before it that can be joined, join them.\nIf not, try to move the selected block closer to the next one in\nthe document structure by lifting it out of its parent or moving it\ninto a parent of the previous block. Will use the view for accurate\n(bidi-aware) start-of-textblock detection if given.\n*/\nconst joinBackward = (state, dispatch, view) => {\n let $cursor = atBlockStart(state, view);\n if (!$cursor)\n return false;\n let $cut = findCutBefore($cursor);\n // If there is no node before this, try to lift\n if (!$cut) {\n let range = $cursor.blockRange(), target = range && liftTarget(range);\n if (target == null)\n return false;\n if (dispatch)\n dispatch(state.tr.lift(range, target).scrollIntoView());\n return true;\n }\n let before = $cut.nodeBefore;\n // Apply the joining algorithm\n if (deleteBarrier(state, $cut, dispatch, -1))\n return true;\n // If the node below has no content and the node above is\n // selectable, delete the node below and select the one above.\n if ($cursor.parent.content.size == 0 &&\n (textblockAt(before, \"end\") || NodeSelection.isSelectable(before))) {\n for (let depth = $cursor.depth;; depth--) {\n let delStep = replaceStep(state.doc, $cursor.before(depth), $cursor.after(depth), Slice.empty);\n if (delStep && delStep.slice.size < delStep.to - delStep.from) {\n if (dispatch) {\n let tr = state.tr.step(delStep);\n tr.setSelection(textblockAt(before, \"end\")\n ? Selection.findFrom(tr.doc.resolve(tr.mapping.map($cut.pos, -1)), -1)\n : NodeSelection.create(tr.doc, $cut.pos - before.nodeSize));\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n if (depth == 1 || $cursor.node(depth - 1).childCount > 1)\n break;\n }\n }\n // If the node before is an atom, delete it\n if (before.isAtom && $cut.depth == $cursor.depth - 1) {\n if (dispatch)\n dispatch(state.tr.delete($cut.pos - before.nodeSize, $cut.pos).scrollIntoView());\n return true;\n }\n return false;\n};\n/**\nA more limited form of [`joinBackward`]($commands.joinBackward)\nthat only tries to join the current textblock to the one before\nit, if the cursor is at the start of a textblock.\n*/\nconst joinTextblockBackward = (state, dispatch, view) => {\n let $cursor = atBlockStart(state, view);\n if (!$cursor)\n return false;\n let $cut = findCutBefore($cursor);\n return $cut ? joinTextblocksAround(state, $cut, dispatch) : false;\n};\n/**\nA more limited form of [`joinForward`]($commands.joinForward)\nthat only tries to join the current textblock to the one after\nit, if the cursor is at the end of a textblock.\n*/\nconst joinTextblockForward = (state, dispatch, view) => {\n let $cursor = atBlockEnd(state, view);\n if (!$cursor)\n return false;\n let $cut = findCutAfter($cursor);\n return $cut ? joinTextblocksAround(state, $cut, dispatch) : false;\n};\nfunction joinTextblocksAround(state, $cut, dispatch) {\n let before = $cut.nodeBefore, beforeText = before, beforePos = $cut.pos - 1;\n for (; !beforeText.isTextblock; beforePos--) {\n if (beforeText.type.spec.isolating)\n return false;\n let child = beforeText.lastChild;\n if (!child)\n return false;\n beforeText = child;\n }\n let after = $cut.nodeAfter, afterText = after, afterPos = $cut.pos + 1;\n for (; !afterText.isTextblock; afterPos++) {\n if (afterText.type.spec.isolating)\n return false;\n let child = afterText.firstChild;\n if (!child)\n return false;\n afterText = child;\n }\n let step = replaceStep(state.doc, beforePos, afterPos, Slice.empty);\n if (!step || step.from != beforePos ||\n step instanceof ReplaceStep && step.slice.size >= afterPos - beforePos)\n return false;\n if (dispatch) {\n let tr = state.tr.step(step);\n tr.setSelection(TextSelection.create(tr.doc, beforePos));\n dispatch(tr.scrollIntoView());\n }\n return true;\n}\nfunction textblockAt(node, side, only = false) {\n for (let scan = node; scan; scan = (side == \"start\" ? scan.firstChild : scan.lastChild)) {\n if (scan.isTextblock)\n return true;\n if (only && scan.childCount != 1)\n return false;\n }\n return false;\n}\n/**\nWhen the selection is empty and at the start of a textblock, select\nthe node before that textblock, if possible. This is intended to be\nbound to keys like backspace, after\n[`joinBackward`](https://prosemirror.net/docs/ref/#commands.joinBackward) or other deleting\ncommands, as a fall-back behavior when the schema doesn't allow\ndeletion at the selected point.\n*/\nconst selectNodeBackward = (state, dispatch, view) => {\n let { $head, empty } = state.selection, $cut = $head;\n if (!empty)\n return false;\n if ($head.parent.isTextblock) {\n if (view ? !view.endOfTextblock(\"backward\", state) : $head.parentOffset > 0)\n return false;\n $cut = findCutBefore($head);\n }\n let node = $cut && $cut.nodeBefore;\n if (!node || !NodeSelection.isSelectable(node))\n return false;\n if (dispatch)\n dispatch(state.tr.setSelection(NodeSelection.create(state.doc, $cut.pos - node.nodeSize)).scrollIntoView());\n return true;\n};\nfunction findCutBefore($pos) {\n if (!$pos.parent.type.spec.isolating)\n for (let i = $pos.depth - 1; i >= 0; i--) {\n if ($pos.index(i) > 0)\n return $pos.doc.resolve($pos.before(i + 1));\n if ($pos.node(i).type.spec.isolating)\n break;\n }\n return null;\n}\nfunction atBlockEnd(state, view) {\n let { $cursor } = state.selection;\n if (!$cursor || (view ? !view.endOfTextblock(\"forward\", state)\n : $cursor.parentOffset < $cursor.parent.content.size))\n return null;\n return $cursor;\n}\n/**\nIf the selection is empty and the cursor is at the end of a\ntextblock, try to reduce or remove the boundary between that block\nand the one after it, either by joining them or by moving the other\nblock closer to this one in the tree structure. Will use the view\nfor accurate start-of-textblock detection if given.\n*/\nconst joinForward = (state, dispatch, view) => {\n let $cursor = atBlockEnd(state, view);\n if (!$cursor)\n return false;\n let $cut = findCutAfter($cursor);\n // If there is no node after this, there's nothing to do\n if (!$cut)\n return false;\n let after = $cut.nodeAfter;\n // Try the joining algorithm\n if (deleteBarrier(state, $cut, dispatch, 1))\n return true;\n // If the node above has no content and the node below is\n // selectable, delete the node above and select the one below.\n if ($cursor.parent.content.size == 0 &&\n (textblockAt(after, \"start\") || NodeSelection.isSelectable(after))) {\n let delStep = replaceStep(state.doc, $cursor.before(), $cursor.after(), Slice.empty);\n if (delStep && delStep.slice.size < delStep.to - delStep.from) {\n if (dispatch) {\n let tr = state.tr.step(delStep);\n tr.setSelection(textblockAt(after, \"start\") ? Selection.findFrom(tr.doc.resolve(tr.mapping.map($cut.pos)), 1)\n : NodeSelection.create(tr.doc, tr.mapping.map($cut.pos)));\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n }\n // If the next node is an atom, delete it\n if (after.isAtom && $cut.depth == $cursor.depth - 1) {\n if (dispatch)\n dispatch(state.tr.delete($cut.pos, $cut.pos + after.nodeSize).scrollIntoView());\n return true;\n }\n return false;\n};\n/**\nWhen the selection is empty and at the end of a textblock, select\nthe node coming after that textblock, if possible. This is intended\nto be bound to keys like delete, after\n[`joinForward`](https://prosemirror.net/docs/ref/#commands.joinForward) and similar deleting\ncommands, to provide a fall-back behavior when the schema doesn't\nallow deletion at the selected point.\n*/\nconst selectNodeForward = (state, dispatch, view) => {\n let { $head, empty } = state.selection, $cut = $head;\n if (!empty)\n return false;\n if ($head.parent.isTextblock) {\n if (view ? !view.endOfTextblock(\"forward\", state) : $head.parentOffset < $head.parent.content.size)\n return false;\n $cut = findCutAfter($head);\n }\n let node = $cut && $cut.nodeAfter;\n if (!node || !NodeSelection.isSelectable(node))\n return false;\n if (dispatch)\n dispatch(state.tr.setSelection(NodeSelection.create(state.doc, $cut.pos)).scrollIntoView());\n return true;\n};\nfunction findCutAfter($pos) {\n if (!$pos.parent.type.spec.isolating)\n for (let i = $pos.depth - 1; i >= 0; i--) {\n let parent = $pos.node(i);\n if ($pos.index(i) + 1 < parent.childCount)\n return $pos.doc.resolve($pos.after(i + 1));\n if (parent.type.spec.isolating)\n break;\n }\n return null;\n}\n/**\nJoin the selected block or, if there is a text selection, the\nclosest ancestor block of the selection that can be joined, with\nthe sibling above it.\n*/\nconst joinUp = (state, dispatch) => {\n let sel = state.selection, nodeSel = sel instanceof NodeSelection, point;\n if (nodeSel) {\n if (sel.node.isTextblock || !canJoin(state.doc, sel.from))\n return false;\n point = sel.from;\n }\n else {\n point = joinPoint(state.doc, sel.from, -1);\n if (point == null)\n return false;\n }\n if (dispatch) {\n let tr = state.tr.join(point);\n if (nodeSel)\n tr.setSelection(NodeSelection.create(tr.doc, point - state.doc.resolve(point).nodeBefore.nodeSize));\n dispatch(tr.scrollIntoView());\n }\n return true;\n};\n/**\nJoin the selected block, or the closest ancestor of the selection\nthat can be joined, with the sibling after it.\n*/\nconst joinDown = (state, dispatch) => {\n let sel = state.selection, point;\n if (sel instanceof NodeSelection) {\n if (sel.node.isTextblock || !canJoin(state.doc, sel.to))\n return false;\n point = sel.to;\n }\n else {\n point = joinPoint(state.doc, sel.to, 1);\n if (point == null)\n return false;\n }\n if (dispatch)\n dispatch(state.tr.join(point).scrollIntoView());\n return true;\n};\n/**\nLift the selected block, or the closest ancestor block of the\nselection that can be lifted, out of its parent node.\n*/\nconst lift = (state, dispatch) => {\n let { $from, $to } = state.selection;\n let range = $from.blockRange($to), target = range && liftTarget(range);\n if (target == null)\n return false;\n if (dispatch)\n dispatch(state.tr.lift(range, target).scrollIntoView());\n return true;\n};\n/**\nIf the selection is in a node whose type has a truthy\n[`code`](https://prosemirror.net/docs/ref/#model.NodeSpec.code) property in its spec, replace the\nselection with a newline character.\n*/\nconst newlineInCode = (state, dispatch) => {\n let { $head, $anchor } = state.selection;\n if (!$head.parent.type.spec.code || !$head.sameParent($anchor))\n return false;\n if (dispatch)\n dispatch(state.tr.insertText(\"\\n\").scrollIntoView());\n return true;\n};\nfunction defaultBlockAt(match) {\n for (let i = 0; i < match.edgeCount; i++) {\n let { type } = match.edge(i);\n if (type.isTextblock && !type.hasRequiredAttrs())\n return type;\n }\n return null;\n}\n/**\nWhen the selection is in a node with a truthy\n[`code`](https://prosemirror.net/docs/ref/#model.NodeSpec.code) property in its spec, create a\ndefault block after the code block, and move the cursor there.\n*/\nconst exitCode = (state, dispatch) => {\n let { $head, $anchor } = state.selection;\n if (!$head.parent.type.spec.code || !$head.sameParent($anchor))\n return false;\n let above = $head.node(-1), after = $head.indexAfter(-1), type = defaultBlockAt(above.contentMatchAt(after));\n if (!type || !above.canReplaceWith(after, after, type))\n return false;\n if (dispatch) {\n let pos = $head.after(), tr = state.tr.replaceWith(pos, pos, type.createAndFill());\n tr.setSelection(Selection.near(tr.doc.resolve(pos), 1));\n dispatch(tr.scrollIntoView());\n }\n return true;\n};\n/**\nIf a block node is selected, create an empty paragraph before (if\nit is its parent's first child) or after it.\n*/\nconst createParagraphNear = (state, dispatch) => {\n let sel = state.selection, { $from, $to } = sel;\n if (sel instanceof AllSelection || $from.parent.inlineContent || $to.parent.inlineContent)\n return false;\n let type = defaultBlockAt($to.parent.contentMatchAt($to.indexAfter()));\n if (!type || !type.isTextblock)\n return false;\n if (dispatch) {\n let side = (!$from.parentOffset && $to.index() < $to.parent.childCount ? $from : $to).pos;\n let tr = state.tr.insert(side, type.createAndFill());\n tr.setSelection(TextSelection.create(tr.doc, side + 1));\n dispatch(tr.scrollIntoView());\n }\n return true;\n};\n/**\nIf the cursor is in an empty textblock that can be lifted, lift the\nblock.\n*/\nconst liftEmptyBlock = (state, dispatch) => {\n let { $cursor } = state.selection;\n if (!$cursor || $cursor.parent.content.size)\n return false;\n if ($cursor.depth > 1 && $cursor.after() != $cursor.end(-1)) {\n let before = $cursor.before();\n if (canSplit(state.doc, before)) {\n if (dispatch)\n dispatch(state.tr.split(before).scrollIntoView());\n return true;\n }\n }\n let range = $cursor.blockRange(), target = range && liftTarget(range);\n if (target == null)\n return false;\n if (dispatch)\n dispatch(state.tr.lift(range, target).scrollIntoView());\n return true;\n};\n/**\nCreate a variant of [`splitBlock`](https://prosemirror.net/docs/ref/#commands.splitBlock) that uses\na custom function to determine the type of the newly split off block.\n*/\nfunction splitBlockAs(splitNode) {\n return (state, dispatch) => {\n let { $from, $to } = state.selection;\n if (state.selection instanceof NodeSelection && state.selection.node.isBlock) {\n if (!$from.parentOffset || !canSplit(state.doc, $from.pos))\n return false;\n if (dispatch)\n dispatch(state.tr.split($from.pos).scrollIntoView());\n return true;\n }\n if (!$from.depth)\n return false;\n let types = [];\n let splitDepth, deflt, atEnd = false, atStart = false;\n for (let d = $from.depth;; d--) {\n let node = $from.node(d);\n if (node.isBlock) {\n atEnd = $from.end(d) == $from.pos + ($from.depth - d);\n atStart = $from.start(d) == $from.pos - ($from.depth - d);\n deflt = defaultBlockAt($from.node(d - 1).contentMatchAt($from.indexAfter(d - 1)));\n let splitType = splitNode && splitNode($to.parent, atEnd, $from);\n types.unshift(splitType || (atEnd && deflt ? { type: deflt } : null));\n splitDepth = d;\n break;\n }\n else {\n if (d == 1)\n return false;\n types.unshift(null);\n }\n }\n let tr = state.tr;\n if (state.selection instanceof TextSelection || state.selection instanceof AllSelection)\n tr.deleteSelection();\n let splitPos = tr.mapping.map($from.pos);\n let can = canSplit(tr.doc, splitPos, types.length, types);\n if (!can) {\n types[0] = deflt ? { type: deflt } : null;\n can = canSplit(tr.doc, splitPos, types.length, types);\n }\n tr.split(splitPos, types.length, types);\n if (!atEnd && atStart && $from.node(splitDepth).type != deflt) {\n let first = tr.mapping.map($from.before(splitDepth)), $first = tr.doc.resolve(first);\n if (deflt && $from.node(splitDepth - 1).canReplaceWith($first.index(), $first.index() + 1, deflt))\n tr.setNodeMarkup(tr.mapping.map($from.before(splitDepth)), deflt);\n }\n if (dispatch)\n dispatch(tr.scrollIntoView());\n return true;\n };\n}\n/**\nSplit the parent block of the selection. If the selection is a text\nselection, also delete its content.\n*/\nconst splitBlock = splitBlockAs();\n/**\nActs like [`splitBlock`](https://prosemirror.net/docs/ref/#commands.splitBlock), but without\nresetting the set of active marks at the cursor.\n*/\nconst splitBlockKeepMarks = (state, dispatch) => {\n return splitBlock(state, dispatch && (tr => {\n let marks = state.storedMarks || (state.selection.$to.parentOffset && state.selection.$from.marks());\n if (marks)\n tr.ensureMarks(marks);\n dispatch(tr);\n }));\n};\n/**\nMove the selection to the node wrapping the current selection, if\nany. (Will not select the document node.)\n*/\nconst selectParentNode = (state, dispatch) => {\n let { $from, to } = state.selection, pos;\n let same = $from.sharedDepth(to);\n if (same == 0)\n return false;\n pos = $from.before(same);\n if (dispatch)\n dispatch(state.tr.setSelection(NodeSelection.create(state.doc, pos)));\n return true;\n};\n/**\nSelect the whole document.\n*/\nconst selectAll = (state, dispatch) => {\n if (dispatch)\n dispatch(state.tr.setSelection(new AllSelection(state.doc)));\n return true;\n};\nfunction joinMaybeClear(state, $pos, dispatch) {\n let before = $pos.nodeBefore, after = $pos.nodeAfter, index = $pos.index();\n if (!before || !after || !before.type.compatibleContent(after.type))\n return false;\n if (!before.content.size && $pos.parent.canReplace(index - 1, index)) {\n if (dispatch)\n dispatch(state.tr.delete($pos.pos - before.nodeSize, $pos.pos).scrollIntoView());\n return true;\n }\n if (!$pos.parent.canReplace(index, index + 1) || !(after.isTextblock || canJoin(state.doc, $pos.pos)))\n return false;\n if (dispatch)\n dispatch(state.tr.join($pos.pos).scrollIntoView());\n return true;\n}\nfunction deleteBarrier(state, $cut, dispatch, dir) {\n let before = $cut.nodeBefore, after = $cut.nodeAfter, conn, match;\n let isolated = before.type.spec.isolating || after.type.spec.isolating;\n if (!isolated && joinMaybeClear(state, $cut, dispatch))\n return true;\n let canDelAfter = !isolated && $cut.parent.canReplace($cut.index(), $cut.index() + 1);\n if (canDelAfter &&\n (conn = (match = before.contentMatchAt(before.childCount)).findWrapping(after.type)) &&\n match.matchType(conn[0] || after.type).validEnd) {\n if (dispatch) {\n let end = $cut.pos + after.nodeSize, wrap = Fragment.empty;\n for (let i = conn.length - 1; i >= 0; i--)\n wrap = Fragment.from(conn[i].create(null, wrap));\n wrap = Fragment.from(before.copy(wrap));\n let tr = state.tr.step(new ReplaceAroundStep($cut.pos - 1, end, $cut.pos, end, new Slice(wrap, 1, 0), conn.length, true));\n let $joinAt = tr.doc.resolve(end + 2 * conn.length);\n if ($joinAt.nodeAfter && $joinAt.nodeAfter.type == before.type &&\n canJoin(tr.doc, $joinAt.pos))\n tr.join($joinAt.pos);\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n let selAfter = after.type.spec.isolating || (dir > 0 && isolated) ? null : Selection.findFrom($cut, 1);\n let range = selAfter && selAfter.$from.blockRange(selAfter.$to), target = range && liftTarget(range);\n if (target != null && target >= $cut.depth) {\n if (dispatch)\n dispatch(state.tr.lift(range, target).scrollIntoView());\n return true;\n }\n if (canDelAfter && textblockAt(after, \"start\", true) && textblockAt(before, \"end\")) {\n let at = before, wrap = [];\n for (;;) {\n wrap.push(at);\n if (at.isTextblock)\n break;\n at = at.lastChild;\n }\n let afterText = after, afterDepth = 1;\n for (; !afterText.isTextblock; afterText = afterText.firstChild)\n afterDepth++;\n if (at.canReplace(at.childCount, at.childCount, afterText.content)) {\n if (dispatch) {\n let end = Fragment.empty;\n for (let i = wrap.length - 1; i >= 0; i--)\n end = Fragment.from(wrap[i].copy(end));\n let tr = state.tr.step(new ReplaceAroundStep($cut.pos - wrap.length, $cut.pos + after.nodeSize, $cut.pos + afterDepth, $cut.pos + after.nodeSize - afterDepth, new Slice(end, wrap.length, 0), 0, true));\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n }\n return false;\n}\nfunction selectTextblockSide(side) {\n return function (state, dispatch) {\n let sel = state.selection, $pos = side < 0 ? sel.$from : sel.$to;\n let depth = $pos.depth;\n while ($pos.node(depth).isInline) {\n if (!depth)\n return false;\n depth--;\n }\n if (!$pos.node(depth).isTextblock)\n return false;\n if (dispatch)\n dispatch(state.tr.setSelection(TextSelection.create(state.doc, side < 0 ? $pos.start(depth) : $pos.end(depth))));\n return true;\n };\n}\n/**\nMoves the cursor to the start of current text block.\n*/\nconst selectTextblockStart = selectTextblockSide(-1);\n/**\nMoves the cursor to the end of current text block.\n*/\nconst selectTextblockEnd = selectTextblockSide(1);\n// Parameterized commands\n/**\nWrap the selection in a node of the given type with the given\nattributes.\n*/\nfunction wrapIn(nodeType, attrs = null) {\n return function (state, dispatch) {\n let { $from, $to } = state.selection;\n let range = $from.blockRange($to), wrapping = range && findWrapping(range, nodeType, attrs);\n if (!wrapping)\n return false;\n if (dispatch)\n dispatch(state.tr.wrap(range, wrapping).scrollIntoView());\n return true;\n };\n}\n/**\nReturns a command that tries to set the selected textblocks to the\ngiven node type with the given attributes.\n*/\nfunction setBlockType(nodeType, attrs = null) {\n return function (state, dispatch) {\n let applicable = false;\n for (let i = 0; i < state.selection.ranges.length && !applicable; i++) {\n let { $from: { pos: from }, $to: { pos: to } } = state.selection.ranges[i];\n state.doc.nodesBetween(from, to, (node, pos) => {\n if (applicable)\n return false;\n if (!node.isTextblock || node.hasMarkup(nodeType, attrs))\n return;\n if (node.type == nodeType) {\n applicable = true;\n }\n else {\n let $pos = state.doc.resolve(pos), index = $pos.index();\n applicable = $pos.parent.canReplaceWith(index, index + 1, nodeType);\n }\n });\n }\n if (!applicable)\n return false;\n if (dispatch) {\n let tr = state.tr;\n for (let i = 0; i < state.selection.ranges.length; i++) {\n let { $from: { pos: from }, $to: { pos: to } } = state.selection.ranges[i];\n tr.setBlockType(from, to, nodeType, attrs);\n }\n dispatch(tr.scrollIntoView());\n }\n return true;\n };\n}\nfunction markApplies(doc, ranges, type, enterAtoms) {\n for (let i = 0; i < ranges.length; i++) {\n let { $from, $to } = ranges[i];\n let can = $from.depth == 0 ? doc.inlineContent && doc.type.allowsMarkType(type) : false;\n doc.nodesBetween($from.pos, $to.pos, (node, pos) => {\n if (can || !enterAtoms && node.isAtom && node.isInline && pos >= $from.pos && pos + node.nodeSize <= $to.pos)\n return false;\n can = node.inlineContent && node.type.allowsMarkType(type);\n });\n if (can)\n return true;\n }\n return false;\n}\nfunction removeInlineAtoms(ranges) {\n let result = [];\n for (let i = 0; i < ranges.length; i++) {\n let { $from, $to } = ranges[i];\n $from.doc.nodesBetween($from.pos, $to.pos, (node, pos) => {\n if (node.isAtom && node.content.size && node.isInline && pos >= $from.pos && pos + node.nodeSize <= $to.pos) {\n if (pos + 1 > $from.pos)\n result.push(new SelectionRange($from, $from.doc.resolve(pos + 1)));\n $from = $from.doc.resolve(pos + 1 + node.content.size);\n return false;\n }\n });\n if ($from.pos < $to.pos)\n result.push(new SelectionRange($from, $to));\n }\n return result;\n}\n/**\nCreate a command function that toggles the given mark with the\ngiven attributes. Will return `false` when the current selection\ndoesn't support that mark. This will remove the mark if any marks\nof that type exist in the selection, or add it otherwise. If the\nselection is empty, this applies to the [stored\nmarks](https://prosemirror.net/docs/ref/#state.EditorState.storedMarks) instead of a range of the\ndocument.\n*/\nfunction toggleMark(markType, attrs = null, options) {\n let removeWhenPresent = (options && options.removeWhenPresent) !== false;\n let enterAtoms = (options && options.enterInlineAtoms) !== false;\n return function (state, dispatch) {\n let { empty, $cursor, ranges } = state.selection;\n if ((empty && !$cursor) || !markApplies(state.doc, ranges, markType, enterAtoms))\n return false;\n if (dispatch) {\n if ($cursor) {\n if (markType.isInSet(state.storedMarks || $cursor.marks()))\n dispatch(state.tr.removeStoredMark(markType));\n else\n dispatch(state.tr.addStoredMark(markType.create(attrs)));\n }\n else {\n let add, tr = state.tr;\n if (!enterAtoms)\n ranges = removeInlineAtoms(ranges);\n if (removeWhenPresent) {\n add = !ranges.some(r => state.doc.rangeHasMark(r.$from.pos, r.$to.pos, markType));\n }\n else {\n add = !ranges.every(r => {\n let missing = false;\n tr.doc.nodesBetween(r.$from.pos, r.$to.pos, (node, pos, parent) => {\n if (missing)\n return false;\n missing = !markType.isInSet(node.marks) && !!parent && parent.type.allowsMarkType(markType) &&\n !(node.isText && /^\\s*$/.test(node.textBetween(Math.max(0, r.$from.pos - pos), Math.min(node.nodeSize, r.$to.pos - pos))));\n });\n return !missing;\n });\n }\n for (let i = 0; i < ranges.length; i++) {\n let { $from, $to } = ranges[i];\n if (!add) {\n tr.removeMark($from.pos, $to.pos, markType);\n }\n else {\n let from = $from.pos, to = $to.pos, start = $from.nodeAfter, end = $to.nodeBefore;\n let spaceStart = start && start.isText ? /^\\s*/.exec(start.text)[0].length : 0;\n let spaceEnd = end && end.isText ? /\\s*$/.exec(end.text)[0].length : 0;\n if (from + spaceStart < to) {\n from += spaceStart;\n to -= spaceEnd;\n }\n tr.addMark(from, to, markType.create(attrs));\n }\n }\n dispatch(tr.scrollIntoView());\n }\n }\n return true;\n };\n}\nfunction wrapDispatchForJoin(dispatch, isJoinable) {\n return (tr) => {\n if (!tr.isGeneric)\n return dispatch(tr);\n let ranges = [];\n for (let i = 0; i < tr.mapping.maps.length; i++) {\n let map = tr.mapping.maps[i];\n for (let j = 0; j < ranges.length; j++)\n ranges[j] = map.map(ranges[j]);\n map.forEach((_s, _e, from, to) => ranges.push(from, to));\n }\n // Figure out which joinable points exist inside those ranges,\n // by checking all node boundaries in their parent nodes.\n let joinable = [];\n for (let i = 0; i < ranges.length; i += 2) {\n let from = ranges[i], to = ranges[i + 1];\n let $from = tr.doc.resolve(from), depth = $from.sharedDepth(to), parent = $from.node(depth);\n for (let index = $from.indexAfter(depth), pos = $from.after(depth + 1); pos <= to; ++index) {\n let after = parent.maybeChild(index);\n if (!after)\n break;\n if (index && joinable.indexOf(pos) == -1) {\n let before = parent.child(index - 1);\n if (before.type == after.type && isJoinable(before, after))\n joinable.push(pos);\n }\n pos += after.nodeSize;\n }\n }\n // Join the joinable points\n joinable.sort((a, b) => a - b);\n for (let i = joinable.length - 1; i >= 0; i--) {\n if (canJoin(tr.doc, joinable[i]))\n tr.join(joinable[i]);\n }\n dispatch(tr);\n };\n}\n/**\nWrap a command so that, when it produces a transform that causes\ntwo joinable nodes to end up next to each other, those are joined.\nNodes are considered joinable when they are of the same type and\nwhen the `isJoinable` predicate returns true for them or, if an\narray of strings was passed, if their node type name is in that\narray.\n*/\nfunction autoJoin(command, isJoinable) {\n let canJoin = Array.isArray(isJoinable) ? (node) => isJoinable.indexOf(node.type.name) > -1\n : isJoinable;\n return (state, dispatch, view) => command(state, dispatch && wrapDispatchForJoin(dispatch, canJoin), view);\n}\n/**\nCombine a number of command functions into a single function (which\ncalls them one by one until one returns true).\n*/\nfunction chainCommands(...commands) {\n return function (state, dispatch, view) {\n for (let i = 0; i < commands.length; i++)\n if (commands[i](state, dispatch, view))\n return true;\n return false;\n };\n}\nlet backspace = chainCommands(deleteSelection, joinBackward, selectNodeBackward);\nlet del = chainCommands(deleteSelection, joinForward, selectNodeForward);\n/**\nA basic keymap containing bindings not specific to any schema.\nBinds the following keys (when multiple commands are listed, they\nare chained with [`chainCommands`](https://prosemirror.net/docs/ref/#commands.chainCommands)):\n\n* **Enter** to `newlineInCode`, `createParagraphNear`, `liftEmptyBlock`, `splitBlock`\n* **Mod-Enter** to `exitCode`\n* **Backspace** and **Mod-Backspace** to `deleteSelection`, `joinBackward`, `selectNodeBackward`\n* **Delete** and **Mod-Delete** to `deleteSelection`, `joinForward`, `selectNodeForward`\n* **Mod-Delete** to `deleteSelection`, `joinForward`, `selectNodeForward`\n* **Mod-a** to `selectAll`\n*/\nconst pcBaseKeymap = {\n \"Enter\": chainCommands(newlineInCode, createParagraphNear, liftEmptyBlock, splitBlock),\n \"Mod-Enter\": exitCode,\n \"Backspace\": backspace,\n \"Mod-Backspace\": backspace,\n \"Shift-Backspace\": backspace,\n \"Delete\": del,\n \"Mod-Delete\": del,\n \"Mod-a\": selectAll\n};\n/**\nA copy of `pcBaseKeymap` that also binds **Ctrl-h** like Backspace,\n**Ctrl-d** like Delete, **Alt-Backspace** like Ctrl-Backspace, and\n**Ctrl-Alt-Backspace**, **Alt-Delete**, and **Alt-d** like\nCtrl-Delete.\n*/\nconst macBaseKeymap = {\n \"Ctrl-h\": pcBaseKeymap[\"Backspace\"],\n \"Alt-Backspace\": pcBaseKeymap[\"Mod-Backspace\"],\n \"Ctrl-d\": pcBaseKeymap[\"Delete\"],\n \"Ctrl-Alt-Backspace\": pcBaseKeymap[\"Mod-Delete\"],\n \"Alt-Delete\": pcBaseKeymap[\"Mod-Delete\"],\n \"Alt-d\": pcBaseKeymap[\"Mod-Delete\"],\n \"Ctrl-a\": selectTextblockStart,\n \"Ctrl-e\": selectTextblockEnd\n};\nfor (let key in pcBaseKeymap)\n macBaseKeymap[key] = pcBaseKeymap[key];\nconst mac = typeof navigator != \"undefined\" ? /Mac|iP(hone|[oa]d)/.test(navigator.platform)\n // @ts-ignore\n : typeof os != \"undefined\" && os.platform ? os.platform() == \"darwin\" : false;\n/**\nDepending on the detected platform, this will hold\n[`pcBasekeymap`](https://prosemirror.net/docs/ref/#commands.pcBaseKeymap) or\n[`macBaseKeymap`](https://prosemirror.net/docs/ref/#commands.macBaseKeymap).\n*/\nconst baseKeymap = mac ? macBaseKeymap : pcBaseKeymap;\n\nexport { autoJoin, baseKeymap, chainCommands, createParagraphNear, deleteSelection, exitCode, joinBackward, joinDown, joinForward, joinTextblockBackward, joinTextblockForward, joinUp, lift, liftEmptyBlock, macBaseKeymap, newlineInCode, pcBaseKeymap, selectAll, selectNodeBackward, selectNodeForward, selectParentNode, selectTextblockEnd, selectTextblockStart, setBlockType, splitBlock, splitBlockAs, splitBlockKeepMarks, toggleMark, wrapIn };\n","import { findWrapping, ReplaceAroundStep, canSplit, liftTarget, canJoin } from 'prosemirror-transform';\nimport { NodeRange, Fragment, Slice } from 'prosemirror-model';\nimport { Selection } from 'prosemirror-state';\n\nconst olDOM = [\"ol\", 0], ulDOM = [\"ul\", 0], liDOM = [\"li\", 0];\n/**\nAn ordered list [node spec](https://prosemirror.net/docs/ref/#model.NodeSpec). Has a single\nattribute, `order`, which determines the number at which the list\nstarts counting, and defaults to 1. Represented as an `
    `\nelement.\n*/\nconst orderedList = {\n attrs: { order: { default: 1, validate: \"number\" } },\n parseDOM: [{ tag: \"ol\", getAttrs(dom) {\n return { order: dom.hasAttribute(\"start\") ? +dom.getAttribute(\"start\") : 1 };\n } }],\n toDOM(node) {\n return node.attrs.order == 1 ? olDOM : [\"ol\", { start: node.attrs.order }, 0];\n }\n};\n/**\nA bullet list node spec, represented in the DOM as `