human2ai 0.1.3 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.en.md +36 -4
- package/README.md +36 -4
- package/dist/cli/main.js +26 -0
- package/dist/cli/main.js.map +1 -1
- package/dist/database/style-library-repository.d.ts +14 -1
- package/dist/database/style-library-repository.js +59 -0
- package/dist/database/style-library-repository.js.map +1 -1
- package/dist/domain/composition/analysis.d.ts +3 -0
- package/dist/domain/composition/analysis.js +4 -0
- package/dist/domain/composition/analysis.js.map +1 -1
- package/dist/domain/composition/draft.d.ts +1 -0
- package/dist/domain/composition/draft.js +73 -2
- package/dist/domain/composition/draft.js.map +1 -1
- package/dist/domain/composition/frame.d.ts +1 -0
- package/dist/domain/composition/frame.js +6 -0
- package/dist/domain/composition/frame.js.map +1 -1
- package/dist/domain/composition/index.d.ts +4 -1
- package/dist/domain/composition/index.js +4 -1
- package/dist/domain/composition/index.js.map +1 -1
- package/dist/domain/composition/planning-intersections.d.ts +20 -0
- package/dist/domain/composition/planning-intersections.js +119 -0
- package/dist/domain/composition/planning-intersections.js.map +1 -0
- package/dist/domain/composition/planning.d.ts +25 -0
- package/dist/domain/composition/planning.js +152 -0
- package/dist/domain/composition/planning.js.map +1 -0
- package/dist/domain/composition/render.js +8 -0
- package/dist/domain/composition/render.js.map +1 -1
- package/dist/domain/composition/states.js +4 -1
- package/dist/domain/composition/states.js.map +1 -1
- package/dist/domain/composition/types.d.ts +46 -0
- package/dist/domain/spatial/camera-render-key.d.ts +7 -0
- package/dist/domain/spatial/camera-render-key.js +63 -0
- package/dist/domain/spatial/camera-render-key.js.map +1 -0
- package/dist/domain/spatial/lighting.js +3 -2
- package/dist/domain/spatial/lighting.js.map +1 -1
- package/dist/domain/spatial/model.d.ts +2 -0
- package/dist/domain/spatial/model.js +82 -27
- package/dist/domain/spatial/model.js.map +1 -1
- package/dist/domain/spatial/preview.d.ts +4 -0
- package/dist/domain/spatial/preview.js +23 -0
- package/dist/domain/spatial/preview.js.map +1 -0
- package/dist/domain/spatial/reference-lines.d.ts +12 -3
- package/dist/domain/spatial/reference-lines.js +37 -16
- package/dist/domain/spatial/reference-lines.js.map +1 -1
- package/dist/domain/spatial/render-inputs.d.ts +1 -1
- package/dist/domain/spatial/render-inputs.js +10 -2
- package/dist/domain/spatial/render-inputs.js.map +1 -1
- package/dist/domain/spatial/scene-cache.d.ts +13 -1
- package/dist/domain/spatial/scene-cache.js +88 -10
- package/dist/domain/spatial/scene-cache.js.map +1 -1
- package/dist/domain/spatial/scene-update.d.ts +6 -0
- package/dist/domain/spatial/scene-update.js +52 -0
- package/dist/domain/spatial/scene-update.js.map +1 -0
- package/dist/domain/spatial/scene.d.ts +3 -1
- package/dist/domain/spatial/scene.js +78 -20
- package/dist/domain/spatial/scene.js.map +1 -1
- package/dist/domain/style/model-input.d.ts +3 -0
- package/dist/domain/style/model-input.js +36 -0
- package/dist/domain/style/model-input.js.map +1 -0
- package/dist/domain/style/types.d.ts +7 -0
- package/dist/server/routes/spatial-sessions.js +28 -12
- package/dist/server/routes/spatial-sessions.js.map +1 -1
- package/dist/server/routes/style-library.js +39 -0
- package/dist/server/routes/style-library.js.map +1 -1
- package/dist/server/spatial-render-service.d.ts +21 -0
- package/dist/server/spatial-render-service.js +67 -0
- package/dist/server/spatial-render-service.js.map +1 -0
- package/dist/server/spatial-render-worker.d.ts +1 -0
- package/dist/server/spatial-render-worker.js +15 -0
- package/dist/server/spatial-render-worker.js.map +1 -0
- package/dist/server/spatial-render.d.ts +14 -2
- package/dist/server/spatial-render.js +38 -7
- package/dist/server/spatial-render.js.map +1 -1
- package/locales/en/common.json +60 -4
- package/migrations/0010_style_preview_models.sql +8 -0
- package/package.json +1 -1
- package/schemas/composition-draft.schema.json +457 -0
- package/skills/human2ai/SKILL.md +12 -4
- package/skills/human2ai/references/composition.md +192 -1
- package/skills/human2ai/references/spatial-modeling.md +20 -0
- package/web/out/404/index.html +1 -1
- package/web/out/404.html +1 -1
- package/web/out/__next.__PAGE__.txt +6 -6
- package/web/out/__next._full.txt +6 -6
- package/web/out/__next._tree.txt +3 -3
- package/web/out/_next/static/chunks/101.6ef34adad3e9815b.js +1 -0
- package/web/out/_next/static/chunks/130-7e9e715a084569bb.js +1 -0
- package/web/out/_next/static/chunks/166-96a8c6ae1e9aed59.js +1 -0
- package/web/out/_next/static/chunks/218.7b89674409b344b8.js +1 -0
- package/web/out/_next/static/chunks/484.92b016222d6749f2.js +1 -0
- package/web/out/_next/static/chunks/{773-24ba65074da7fa71.js → 635-611c009924b842be.js} +50 -50
- package/web/out/_next/static/chunks/653-6dfb97fec9a2d91b.js +1 -0
- package/web/out/_next/static/chunks/678-32d3aa1859450d63.js +1 -0
- package/web/out/_next/static/chunks/83607670-fd2f339702a222e4.js +1 -0
- package/web/out/_next/static/chunks/app/_not-found/page-b92817fdc4609975.js +1 -0
- package/web/out/_next/static/chunks/app/composition/page-6c12ee8472715448.js +1 -0
- package/web/out/_next/static/chunks/app/{layout-3b5f82ced220ef42.js → layout-1dd9196cde94389c.js} +1 -1
- package/web/out/_next/static/chunks/app/{page-d41d1cdb1d6ed018.js → page-741ecaf9ee8c3c07.js} +1 -1
- package/web/out/_next/static/chunks/app/spatial/page-5ba0940650df6c7f.js +1 -0
- package/web/out/_next/static/chunks/app/styles/page-1ccfc2c5fbc1e646.js +1 -0
- package/web/out/_next/static/chunks/app/ui-sketch/page-ef4f2e531583e684.js +1 -0
- package/web/out/_next/static/chunks/{c3f2cda1-9e279dab137b7272.js → c3f2cda1-ef85a0897724e46b.js} +1 -1
- package/web/out/_next/static/chunks/{main-app-ec9e35d71481270a.js → main-app-cf37a257d91ce62e.js} +1 -1
- package/web/out/_next/static/chunks/next/dist/client/components/builtin/global-error-33b4f58f02e82215.js +1 -0
- package/web/out/_next/static/chunks/webpack-d16ce1f994e98178.js +1 -0
- package/web/out/_next/static/css/06743b5635914999.css +5 -0
- package/web/out/_next/static/css/0b43ff4a0439c97e.css +1 -0
- package/web/out/_next/static/css/39e8cace36461a15.css +1 -0
- package/web/out/_not-found/__next._full.txt +3 -3
- package/web/out/_not-found/__next._not-found.__PAGE__.txt +3 -3
- package/web/out/_not-found/__next._tree.txt +1 -1
- package/web/out/_not-found/index.html +1 -1
- package/web/out/_not-found/index.txt +3 -3
- package/web/out/composition/__next._full.txt +6 -6
- package/web/out/composition/__next._tree.txt +3 -3
- package/web/out/composition/__next.composition.__PAGE__.txt +6 -6
- package/web/out/composition/index.html +1 -1
- package/web/out/composition/index.txt +6 -6
- package/web/out/index.html +1 -1
- package/web/out/index.txt +6 -6
- package/web/out/spatial/__next._full.txt +6 -6
- package/web/out/spatial/__next._tree.txt +3 -3
- package/web/out/spatial/__next.spatial.__PAGE__.txt +6 -6
- package/web/out/spatial/index.html +1 -1
- package/web/out/spatial/index.txt +6 -6
- package/web/out/styles/__next._full.txt +6 -6
- package/web/out/styles/__next._tree.txt +3 -3
- package/web/out/styles/__next.styles.__PAGE__.txt +6 -6
- package/web/out/styles/index.html +1 -1
- package/web/out/styles/index.txt +6 -6
- package/web/out/ui-sketch/__next._full.txt +6 -6
- package/web/out/ui-sketch/__next._tree.txt +3 -3
- package/web/out/ui-sketch/__next.ui-sketch.__PAGE__.txt +6 -6
- package/web/out/ui-sketch/index.html +1 -1
- package/web/out/ui-sketch/index.txt +6 -6
- package/web/out/_next/static/chunks/130-027b022c82d30077.js +0 -1
- package/web/out/_next/static/chunks/678-6f33e7277564a5df.js +0 -1
- package/web/out/_next/static/chunks/728-7597352c3a7eeaf9.js +0 -1
- package/web/out/_next/static/chunks/83607670-bc1279370476e59f.js +0 -1
- package/web/out/_next/static/chunks/app/_not-found/page-58bf95050b473956.js +0 -1
- package/web/out/_next/static/chunks/app/composition/page-30184e9c21352991.js +0 -1
- package/web/out/_next/static/chunks/app/spatial/page-fc3c66e1f94ed210.js +0 -1
- package/web/out/_next/static/chunks/app/styles/page-194a16109270e08d.js +0 -1
- package/web/out/_next/static/chunks/app/ui-sketch/page-c28eeab67fea766e.js +0 -1
- package/web/out/_next/static/chunks/next/dist/client/components/builtin/global-error-f62e60e5a6e74304.js +0 -1
- package/web/out/_next/static/chunks/webpack-fdd377b620f7ea99.js +0 -1
- package/web/out/_next/static/css/2ed56cbf8f662d23.css +0 -5
- package/web/out/_next/static/css/96839f63fcc5e50d.css +0 -1
- /package/web/out/_next/static/{Wakl9xK54qWYuP4Hpi0W9 → n4UcxqMmr_2CBmSxBp52z}/_buildManifest.js +0 -0
- /package/web/out/_next/static/{Wakl9xK54qWYuP4Hpi0W9 → n4UcxqMmr_2CBmSxBp52z}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[166],{31854:(e,t,r)=>{"use strict";r.d(t,{t:()=>o});var i=r(1521),n=r(8020),a=r(60458);function o(e,t,r){let{t:o}=(0,n.Bd)(),[s,l]=(0,i.useState)(null),[c,d]=(0,i.useState)([]),[u,h]=(0,i.useState)(!0),[y,p]=(0,i.useState)(!1),[m,g]=(0,i.useState)(null),[f,b]=(0,i.useState)(0),w=(0,i.useRef)(e);w.current=e;let v=(0,i.useRef)(!1),L=(0,i.useRef)(0);async function S(r){if(v.current)return;v.current=!0,++L.current,p(!0),g(null);let i=e;try{if(i??=await t(),null!==w.current&&w.current!==i)return;let e=s?.session.id===i?s:await (0,a.YM)(i),n=await (0,a.T8)(i,r,e.session.revision);(w.current===i||null===w.current)&&l(n)}catch(e){throw(w.current===i||null===w.current)&&g(e instanceof a.wP&&409===e.status?o("sessionStyle.conflict"):o("errors.operationFailed")),e}finally{v.current=!1,p(!1),h(!1)}}async function k(){if(!e)return;let t=await (0,a.YM)(e);return w.current===e&&l(t),t.style?o("sessionStyle.prompt",{summary:t.style.promptSummary}):void 0}return(0,i.useEffect)(()=>{let t=!1,r=!1;h(!0),g(null);let i=async()=>{if(r||v.current)return;r=!0;let i=++L.current;try{let[r,n]=await Promise.all([(0,a.X0)(),e?(0,a.YM)(e):Promise.resolve(null)]);if(t||i!==L.current)return;d(r),l(n),g(null)}catch{t||i!==L.current||g(o("styleLibrary.loadFailed"))}finally{r=!1,t||i!==L.current||h(!1)}};i();let n=window.setInterval(()=>void i(),3e3);return()=>{t=!0,window.clearInterval(n)}},[e,r,f,o]),{styles:c,currentStyle:s?.session.id===e?s.style:null,loading:u,saving:y,error:m,bind:S,readPromptLine:k,refresh:()=>b(e=>e+1)}}},42614:(e,t,r)=>{"use strict";r.d(t,{B:()=>o});let i={globalNoteHeading:"notes.global.promptHeading",note:"notes.element.prompt",displayText:"textContent.prompt",visualWeight:"visualWeight.prompt",weightAuto:"visualWeight.auto",weightHigh:"visualWeight.high",weightMedium:"visualWeight.medium",weightLow:"visualWeight.low",weightDecorative:"visualWeight.decorative"},n={planningHeading:"composition.planning.title",planningGoldenSection:"composition.planning.types.golden-section",planningThirds:"composition.planning.types.thirds",planningBoth:"composition.planning.both",planningHorizontal:"composition.planning.horizontal",planningVertical:"composition.planning.vertical",shotScale:"composition.depth.prompt",foreground:"composition.depth.foreground",midground:"composition.depth.midground",background:"composition.depth.background",processingSemantic:"composition.mode.prompt",sceneComposition:"composition.mode.scene",editorialLayout:"composition.mode.editorial",unselected:"composition.mode.unselected",unselectedGuidance:"composition.mode.unselectedGuidance",sceneGuidance:"composition.mode.sceneGuidance",editorialGuidance:"composition.mode.editorialGuidance",imageHeading:"canvas.imageNode.promptHeading",flowHeading:"composition.flow.promptHeading",flowReference:"composition.flow.promptReference"},a={stateName:"uiSketch.states.defaultName",visible:"uiSketch.canvasLabels.visible",hidden:"uiSketch.canvasLabels.hidden"};function o(e,t){return i[t]??("composition"===e?n[t]:a[t])??`${e}.prompt.${t}`}},46109:(e,t,r)=>{"use strict";function i(e){return{model:{label:e("styleLibrary.model.label"),loading:e("styleLibrary.model.loading"),failed:e("styleLibrary.model.failed"),reset:e("styleLibrary.model.reset"),controls:e("styleLibrary.model.controls"),retry:e("actions.retry")},newStyle:e("styleLibrary.newStyle"),editStyle:e("styleLibrary.editStyle"),name:e("styleLibrary.name"),namePlaceholder:e("styleLibrary.namePlaceholder"),category:e("styleLibrary.category.label"),allCategories:e("styleLibrary.category.all"),visualCategory:e("styleLibrary.category.visual"),uiCategory:e("styleLibrary.category.ui"),spatialCategory:e("styleLibrary.category.spatial"),creator:e("styleLibrary.creator.label"),allCreators:e("styleLibrary.creator.all"),userCreator:e("styleLibrary.creator.user"),agentCreator:e("styleLibrary.creator.agent"),references:e("styleLibrary.references.heading"),noReferences:e("styleLibrary.references.empty"),addReferences:e("styleLibrary.references.add"),removeReference:e("styleLibrary.references.remove"),pasteHint:e("styleLibrary.references.pasteHint"),fileTypes:e("styleLibrary.references.fileTypes"),description:e("styleLibrary.description.heading"),promptSummary:e("styleLibrary.promptSummary.label"),promptSummaryPlaceholder:e("styleLibrary.promptSummary.placeholder"),descriptionPlaceholder:e("styleLibrary.description.placeholder"),spatialDescriptionPlaceholder:e("styleLibrary.description.spatialPlaceholder"),searchPlaceholder:e("styleLibrary.searchPlaceholder"),deleteTitle:e("styleLibrary.deleteTitle"),deleteDescription:e("styleLibrary.deleteDescription"),empty:e("styleLibrary.empty"),noMatches:e("styleLibrary.noMatches"),loading:e("styleLibrary.loading"),loadFailed:e("styleLibrary.loadFailed"),retry:e("actions.retry"),save:e("styleLibrary.save"),cancel:e("actions.cancel"),delete:e("actions.delete"),operationFailed:e("errors.operationFailed"),imageInvalid:e("styleLibrary.imageInvalid"),openStyle:t=>e("styleLibrary.openStyle",{name:t}),closePreview:e("styleLibrary.closePreview")}}r.d(t,{Q:()=>i})},46295:(e,t,r)=>{"use strict";function i(e,t){let r=t?new URL(t).origin:null,i=`session connect --session ${e}`;return r?`human2ai --api-url ${r} --web-url ${r} ${i}`:`human2ai ${i}`}r.d(t,{m:()=>i})},48197:(e,t,r)=>{"use strict";r.d(t,{H:()=>l});var i=r(73365),n=r(362),a=r(8020),o=r(60458),s=r(46109);function l({controller:e,category:t,processing:r,disabled:c,showProcessingStatus:d=!0}){let{t:u}=(0,a.Bd)(),h=e.currentStyle;return(0,i.jsx)(n.WL,{styles:e.styles,currentStyle:h,category:t,labels:{title:u("sessionStyle.label"),choose:u("sessionStyle.choose"),dialogTitle:u("sessionStyle.dialogTitle"),unbind:u("sessionStyle.unbind"),select:u("sessionStyle.select"),pending:u("sessionStyle.pending")},libraryLabels:(0,s.Q)(u),imageUrl:o.Pf,modelUrl:o.x,onBind:e.bind,onRetry:e.refresh,loading:e.loading,saving:e.saving,error:e.error,disabled:c,pending:d&&!!(h&&(r?.styleId!==h.id||r.styleRevision!==h.revision))})}},52003:(e,t,r)=>{"use strict";r.d(t,{S:()=>s});var i=r(1521);class n{constructor(e){this.past=[],this.future=[],this.current=structuredClone(e)}get canUndo(){return this.past.length>0}get canRedo(){return this.future.length>0}record(e,t,r=t,i){if(JSON.stringify(this.current)===JSON.stringify(e))return!1;let n=this.past.at(-1),a=structuredClone(e);return i&&n?.group===i?(n.after=a,n.afterContext=r,JSON.stringify(n.before)===JSON.stringify(a)&&this.past.pop()):(this.past.push({before:this.current,after:a,beforeContext:t,afterContext:r,group:i}),this.past.length>100&&this.past.shift()),this.current=a,this.future=[],!0}undo(){let e=this.past.pop();return e?(this.future.push(e),this.current=e.before,{draft:structuredClone(this.current),context:e.beforeContext}):null}redo(){let e=this.future.pop();return e?(this.past.push(e),this.current=e.after,{draft:structuredClone(this.current),context:e.afterContext}):null}reset(e){this.current=structuredClone(e),this.past=[],this.future=[]}}function a(e){return e instanceof Element&&!!e.closest('textarea, input:not([type="button"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]), [contenteditable="true"], [role="textbox"]')}function o(e){return e===document.body||e instanceof Element&&!!e.closest("[data-canvas-editor], [data-human2ai-auto-save-node-editor]")}function s(e,t,r=!1){let[l]=(0,i.useState)(()=>new n(e)),[,c]=(0,i.useState)(0),[d,u]=(0,i.useState)(0),h=(0,i.useRef)({restore:t,disabled:r});h.current={restore:t,disabled:r};let y=(0,i.useRef)({}),p=(0,i.useRef)(new Map),m=(0,i.useMemo)(()=>{let e=()=>c(e=>e+1),t=()=>{for(let[e,t]of[...p.current])t.dispatchEvent(new PointerEvent("pointercancel",{pointerId:e,bubbles:!0}));p.current.clear(),y.current={}},r=r=>{if(h.current.disabled)return;t();let i=l[r]();i&&(h.current.restore(i),u(e=>e+1),e())};return{current:()=>l.current,record(t,r,i=r){let n=y.current.pointer??y.current.text??y.current.key,a=l.record(t,r,i,n);return a&&e(),a},reset(r){t(),l.reset(r),u(e=>e+1),e()},undo:()=>r("undo"),redo:()=>r("redo")}},[l]);return(0,i.useEffect)(()=>{let e=e=>{o(e.target)&&e.target instanceof Element&&(p.current.set(e.pointerId,e.target),a(e.target)||(y.current.pointer=Symbol("pointer")))},t=e=>{p.current.delete(e.pointerId);let t=y.current.pointer;window.setTimeout(()=>{y.current.pointer===t&&(y.current.pointer=void 0)},0)},r=e=>{a(e.target)&&(y.current.text=Symbol("input"))},i=()=>{y.current.text=void 0},n=()=>{y.current={},p.current.clear()},s=e=>{if(e.isComposing||a(e.target)||!o(e.target))return;let t=e.key.toLowerCase();if((e.ctrlKey||e.metaKey)&&!e.altKey&&("z"===t||"y"===t)){if(h.current.disabled)return;e.preventDefault(),e.stopPropagation(),"y"===t||e.shiftKey?m.redo():m.undo()}else e.repeat||(y.current.key=Symbol("key"))},l=e=>{let t=y.current.key;a(e.target)||window.setTimeout(()=>{y.current.key===t&&(y.current.key=void 0)},0)};return window.addEventListener("pointerdown",e,!0),window.addEventListener("pointerup",t,!0),window.addEventListener("pointercancel",t,!0),window.addEventListener("focusin",r,!0),window.addEventListener("focusout",i,!0),window.addEventListener("keydown",s,!0),window.addEventListener("keyup",l,!0),window.addEventListener("blur",n),()=>{window.removeEventListener("pointerdown",e,!0),window.removeEventListener("pointerup",t,!0),window.removeEventListener("pointercancel",t,!0),window.removeEventListener("focusin",r,!0),window.removeEventListener("focusout",i,!0),window.removeEventListener("keydown",s,!0),window.removeEventListener("keyup",l,!0),window.removeEventListener("blur",n)}},[m]),{...m,restoreToken:d,canUndo:!r&&l.canUndo,canRedo:!r&&l.canRedo}}},55894:()=>{},94946:(e,t,r)=>{"use strict";r.d(t,{h:()=>m});var i=r(73365),n=r(1521);r(22392),r(55894);var a=r(46811);let o=[{key:"16:9",label:"16:9",width:16,height:9},{key:"9:16",label:"9:16",width:9,height:16},{key:"4:3",label:"4:3",width:4,height:3},{key:"3:4",label:"3:4",width:3,height:4},{key:"3:2",label:"3:2",width:3,height:2},{key:"1:1",label:"1:1",width:1,height:1},{key:"2:3",label:"2:3",width:2,height:3}],s=["left-top","right-top","left-middle","right-middle","left-bottom","center-bottom","right-bottom"];function l(e,t){if(void 0!==e&&(!Number.isFinite(e.width)||e.width<=0||!Number.isFinite(e.height)||e.height<=0))throw Error(`AspectRatioSelector ${t} 的宽高必须是正数。`)}function c(e,t,r){for(let i=1;i<=e.length;i+=1){let n=(t+i*r+e.length)%e.length;if(!e[n].disabled)return n}return t}function d(e){return{width:e.width,height:e.height}}function u(e,t){let r=e.width*t.height,i=t.width*e.height,n=1e-9*Math.max(1,Math.abs(r),Math.abs(i));return Math.abs(r-i)<=n}function h(e,t){return e.find(e=>u(e,t))}function y(e){return String(e)}function p(e){let t=Number(e);return""!==e.trim()&&Number.isFinite(t)&&t>0?t:null}function m({options:e=o,value:t,defaultValue:r,onChange:g,ratio:f,defaultRatio:b,onRatioChange:w,title:v="比例",widthLabel:L="w",heightLabel:S="h","aria-label":k="比例选择",disabled:x=!1,className:E,style:N}){let R;if(0===e.length||e.length>s.length)throw Error("AspectRatioSelector 需要 1 至 7 个比例选项。");let C=new Set;for(let t of e){if(C.has(t.key))throw Error(`AspectRatioSelector 选项 key 必须唯一:${t.key}`);if(!Number.isFinite(t.width)||t.width<=0||!Number.isFinite(t.height)||t.height<=0)throw Error(`AspectRatioSelector 比例必须是正数:${t.key}`);C.add(t.key)}if(void 0!==t&&!C.has(t))throw Error(`AspectRatioSelector value 不存在于 options:${t}`);if(void 0!==r&&!C.has(r))throw Error(`AspectRatioSelector defaultValue 不存在于 options:${r}`);l(f,"ratio"),l(b,"defaultRatio");let $=e.find(e=>!e.disabled)?.key??e[0].key,j=new Map(e.map(e=>[e.key,e])),M=j.get(r??$)??e[0],P=b??d(M),[H,T]=(0,n.useState)(P),[A,F]=(0,n.useState)(()=>void 0!==b?h(e,b)?.key??null:M.key),I=void 0===t?void 0:j.get(t),B=f??(I?d(I):H),D=j.get(t??A??""),W=D&&u(D,B)?D:h(e,B),G=W?.key??null,[U,K]=(0,n.useState)(()=>y(B.width)),[J,O]=(0,n.useState)(()=>y(B.height)),_=(0,n.useId)(),z=(0,n.useRef)([]);function Y(e){if(x||e.disabled)return;let r=d(e);void 0===f&&void 0===t&&(T(r),F(e.key),K(y(r.width)),O(y(r.height))),g?.(e.key,e),w?.(r,e)}function Q(r,i){var n;let a,o=i.currentTarget.value,s="width"===r?o:U,l="height"===r?o:J;"width"===r?K(o):O(o);let c=p(s),d=p(l);null!==c&&null!==d&&(a=h(e,n={width:c,height:d}),void 0===f&&void 0===t&&(T(n),F(a?.key??null)),w?.(n,a))}function V(e,r){(null===p(r.currentTarget.value)||void 0!==f||void 0!==t)&&("width"===e?K(y(B.width)):O(y(B.height)))}return(0,n.useEffect)(()=>{(void 0!==f||void 0!==t)&&(K(y(B.width)),O(y(B.height)))},[B.height,B.width,f,t]),(0,i.jsxs)("div",{...(0,a.S)("aspect-ratio-selector","AspectRatioSelector","selection-pattern"),className:["yisi-aspect-ratio-selector",E].filter(Boolean).join(" "),style:N,"aria-disabled":x,children:[(0,i.jsxs)("div",{className:"yisi-aspect-ratio-selector-header",children:[(0,i.jsx)("span",{className:"yisi-aspect-ratio-selector-title",title:v,children:v}),(0,i.jsxs)("div",{className:"yisi-aspect-ratio-selector-inputs",children:[(0,i.jsxs)("label",{className:"yisi-aspect-ratio-selector-input-label",children:[(0,i.jsx)("span",{children:L}),(0,i.jsx)("input",{id:`${_}-width`,className:"yisi-aspect-ratio-selector-input",type:"number",min:"0",step:"any",inputMode:"decimal",autoComplete:"off","aria-label":L,"aria-invalid":null===p(U),disabled:x,value:U,onChange:e=>Q("width",e),onBlur:e=>V("width",e)})]}),(0,i.jsx)("span",{className:"yisi-aspect-ratio-selector-multiply","aria-hidden":"true",children:"\xd7"}),(0,i.jsxs)("label",{className:"yisi-aspect-ratio-selector-input-label",children:[(0,i.jsx)("span",{children:S}),(0,i.jsx)("input",{id:`${_}-height`,className:"yisi-aspect-ratio-selector-input",type:"number",min:"0",step:"any",inputMode:"decimal",autoComplete:"off","aria-label":S,"aria-invalid":null===p(J),disabled:x,value:J,onChange:e=>Q("height",e),onBlur:e=>V("height",e)})]})]})]}),(0,i.jsxs)("div",{className:"yisi-aspect-ratio-selector-options",role:"radiogroup","aria-label":k,"aria-disabled":x,children:[(0,i.jsxs)("div",{className:"yisi-aspect-ratio-selector-preview-area","aria-live":"polite","aria-atomic":"true",children:[(0,i.jsxs)("span",{className:"yisi-aspect-ratio-selector-current",children:[v,": ",y(B.width)," \xd7 ",y(B.height)]}),(0,i.jsx)("span",{className:"yisi-aspect-ratio-selector-preview",style:(R=Math.min(62/B.width,60/B.height),{"--yisiui-aspect-ratio-preview-width":`${Math.max(12,B.width*R)}px`,"--yisiui-aspect-ratio-preview-height":`${Math.max(12,B.height*R)}px`}),"data-ratio":G??`${B.width}:${B.height}`,"data-ratio-value":`${B.width}:${B.height}`,"aria-hidden":"true"})]}),e.map((t,r)=>{let n=t.key===G,a=W?.disabled??!1,o=(null===G||a)&&t.key===$;return(0,i.jsx)("button",{ref:e=>{z.current[r]=e},className:"yisi-aspect-ratio-selector-option",type:"button",role:"radio","aria-checked":n,"aria-label":t.ariaLabel,title:t.label,"data-ratio-key":t.key,"data-position":s[r],disabled:x||t.disabled,tabIndex:n||o?0:-1,onClick:()=>Y(t),onKeyDown:t=>{let i;return i=null,void("ArrowRight"===t.key||"ArrowDown"===t.key?i=c(e,r,1):"ArrowLeft"===t.key||"ArrowUp"===t.key?i=c(e,r,-1):"Home"===t.key?i=e.findIndex(e=>!e.disabled):"End"===t.key&&(i=function(e){for(let t=e.length-1;t>=0;t-=1)if(!e[t].disabled)return t;return -1}(e)),null!==i&&!(i<0)&&i!==r&&(t.preventDefault(),Y(e[i]),z.current[i]?.focus()))},children:(0,i.jsx)("span",{children:t.label})},t.key)})]})]})}}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[218],{76999:(e,t,s)=>{s.d(t,{B:()=>i});var r=s(84910);function n(e,t){if(t===r.RJ4)return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."),e;if(t!==r.rYR&&t!==r.O49)return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:",t),e;{let s=e.getIndex();if(null===s){let t=[],r=e.getAttribute("position");if(void 0===r)return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),e;for(let e=0;e<r.count;e++)t.push(e);e.setIndex(t),s=e.getIndex()}let n=s.count-2,i=[];if(t===r.rYR)for(let e=1;e<=n;e++)i.push(s.getX(0)),i.push(s.getX(e)),i.push(s.getX(e+1));else for(let e=0;e<n;e++)e%2==0?(i.push(s.getX(e)),i.push(s.getX(e+1)),i.push(s.getX(e+2))):(i.push(s.getX(e+2)),i.push(s.getX(e+1)),i.push(s.getX(e)));return i.length/3!==n&&console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles."),e.setIndex(i),e.clearGroups(),e}}class i extends r.aHM{constructor(e){super(e),this.dracoLoader=null,this.ktx2Loader=null,this.meshoptDecoder=null,this.pluginCallbacks=[],this.register(function(e){return new d(e)}),this.register(function(e){return new p(e)}),this.register(function(e){return new E(e)}),this.register(function(e){return new A(e)}),this.register(function(e){return new w(e)}),this.register(function(e){return new f(e)}),this.register(function(e){return new g(e)}),this.register(function(e){return new T(e)}),this.register(function(e){return new x(e)}),this.register(function(e){return new h(e)}),this.register(function(e){return new R(e)}),this.register(function(e){return new m(e)}),this.register(function(e){return new v(e)}),this.register(function(e){return new _(e)}),this.register(function(e){return new u(e)}),this.register(function(e){return new S(e,l.EXT_MESHOPT_COMPRESSION)}),this.register(function(e){return new S(e,l.KHR_MESHOPT_COMPRESSION)}),this.register(function(e){return new M(e)})}load(e,t,s,n){let i,o=this;if(""!==this.resourcePath)i=this.resourcePath;else if(""!==this.path){let t=r.r6x.extractUrlBase(e);i=r.r6x.resolveURL(t,this.path)}else i=r.r6x.extractUrlBase(e);this.manager.itemStart(e);let a=function(t){n?n(t):console.error(t),o.manager.itemError(e),o.manager.itemEnd(e)},l=new r.Y9S(this.manager);l.setPath(this.path),l.setResponseType("arraybuffer"),l.setRequestHeader(this.requestHeader),l.setWithCredentials(this.withCredentials),l.load(e,function(s){try{o.parse(s,i,function(s){t(s),o.manager.itemEnd(e)},a)}catch(e){a(e)}},s,a)}setDRACOLoader(e){return this.dracoLoader=e,this}setKTX2Loader(e){return this.ktx2Loader=e,this}setMeshoptDecoder(e){return this.meshoptDecoder=e,this}register(e){return -1===this.pluginCallbacks.indexOf(e)&&this.pluginCallbacks.push(e),this}unregister(e){return -1!==this.pluginCallbacks.indexOf(e)&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(e),1),this}parse(e,t,s,r){let n,i={},o={},a=new TextDecoder;if("string"==typeof e)n=JSON.parse(e);else if(e instanceof ArrayBuffer)if(a.decode(new Uint8Array(e,0,4))===y){try{i[l.KHR_BINARY_GLTF]=new I(e)}catch(e){r&&r(e);return}n=JSON.parse(i[l.KHR_BINARY_GLTF].content)}else n=JSON.parse(a.decode(e));else n=e;if(void 0===n.asset||n.asset.version[0]<2){r&&r(Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported."));return}let u=new Y(n,{path:t||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});u.fileLoader.setRequestHeader(this.requestHeader);for(let e=0;e<this.pluginCallbacks.length;e++){let t=this.pluginCallbacks[e](u);t.name||console.error("THREE.GLTFLoader: Invalid plugin found: missing name"),o[t.name]=t,i[t.name]=!0}if(n.extensionsUsed)for(let e=0;e<n.extensionsUsed.length;++e){let t=n.extensionsUsed[e],s=n.extensionsRequired||[];switch(t){case l.KHR_MATERIALS_UNLIT:i[t]=new c;break;case l.KHR_DRACO_MESH_COMPRESSION:i[t]=new L(n,this.dracoLoader);break;case l.KHR_TEXTURE_TRANSFORM:i[t]=new b;break;case l.KHR_MESH_QUANTIZATION:i[t]=new N;break;default:s.indexOf(t)>=0&&void 0===o[t]&&console.warn('THREE.GLTFLoader: Unknown extension "'+t+'".')}}u.setExtensions(i),u.setPlugins(o),u.parse(s,r)}parseAsync(e,t){let s=this;return new Promise(function(r,n){s.parse(e,t,r,n)})}}function o(){let e={};return{get:function(t){return e[t]},add:function(t,s){e[t]=s},remove:function(t){delete e[t]},removeAll:function(){e={}}}}function a(e,t,s){let r=e.json.materials[t];return r.extensions&&r.extensions[s]?r.extensions[s]:null}let l={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_DISPERSION:"KHR_materials_dispersion",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_MATERIALS_BUMP:"EXT_materials_bump",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",KHR_MESHOPT_COMPRESSION:"KHR_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"};class u{constructor(e){this.parser=e,this.name=l.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){let e=this.parser,t=this.parser.json.nodes||[];for(let s=0,r=t.length;s<r;s++){let r=t[s];r.extensions&&r.extensions[this.name]&&void 0!==r.extensions[this.name].light&&e._addNodeRef(this.cache,r.extensions[this.name].light)}}_loadLight(e){let t,s=this.parser,n="light:"+e,i=s.cache.get(n);if(i)return i;let o=s.json,a=((o.extensions&&o.extensions[this.name]||{}).lights||[])[e],l=new r.Q1f(0xffffff);void 0!==a.color&&l.setRGB(a.color[0],a.color[1],a.color[2],r.Zr2);let u=void 0!==a.range?a.range:0;switch(a.type){case"directional":(t=new r.ZyN(l)).target.position.set(0,0,-1),t.add(t.target);break;case"point":(t=new r.HiM(l)).distance=u;break;case"spot":(t=new r.nCl(l)).distance=u,a.spot=a.spot||{},a.spot.innerConeAngle=void 0!==a.spot.innerConeAngle?a.spot.innerConeAngle:0,a.spot.outerConeAngle=void 0!==a.spot.outerConeAngle?a.spot.outerConeAngle:Math.PI/4,t.angle=a.spot.outerConeAngle,t.penumbra=1-a.spot.innerConeAngle/a.spot.outerConeAngle,t.target.position.set(0,0,-1),t.add(t.target);break;default:throw Error("THREE.GLTFLoader: Unexpected light type: "+a.type)}return t.position.set(0,0,0),V(t,a),void 0!==a.intensity&&(t.intensity=a.intensity),t.name=s.createUniqueName(a.name||"light_"+e),i=Promise.resolve(t),s.cache.add(n,i),i}getDependency(e,t){if("light"===e)return this._loadLight(t)}createNodeAttachment(e){let t=this,s=this.parser,r=s.json.nodes[e],n=(r.extensions&&r.extensions[this.name]||{}).light;return void 0===n?null:this._loadLight(n).then(function(e){return s._getNodeRef(t.cache,n,e)})}}class c{constructor(){this.name=l.KHR_MATERIALS_UNLIT}getMaterialType(){return r.V9B}extendParams(e,t,s){let n=[];e.color=new r.Q1f(1,1,1),e.opacity=1;let i=t.pbrMetallicRoughness;if(i){if(Array.isArray(i.baseColorFactor)){let t=i.baseColorFactor;e.color.setRGB(t[0],t[1],t[2],r.Zr2),e.opacity=t[3]}void 0!==i.baseColorTexture&&n.push(s.assignTexture(e,"map",i.baseColorTexture,r.er$))}return Promise.all(n)}}class h{constructor(e){this.parser=e,this.name=l.KHR_MATERIALS_EMISSIVE_STRENGTH}extendMaterialParams(e,t){let s=a(this.parser,e,this.name);return null===s||void 0!==s.emissiveStrength&&(t.emissiveIntensity=s.emissiveStrength),Promise.resolve()}}class d{constructor(e){this.parser=e,this.name=l.KHR_MATERIALS_CLEARCOAT}getMaterialType(e){return null!==a(this.parser,e,this.name)?r.uSd:null}extendMaterialParams(e,t){let s=a(this.parser,e,this.name);if(null===s)return Promise.resolve();let n=[];if(void 0!==s.clearcoatFactor&&(t.clearcoat=s.clearcoatFactor),void 0!==s.clearcoatTexture&&n.push(this.parser.assignTexture(t,"clearcoatMap",s.clearcoatTexture)),void 0!==s.clearcoatRoughnessFactor&&(t.clearcoatRoughness=s.clearcoatRoughnessFactor),void 0!==s.clearcoatRoughnessTexture&&n.push(this.parser.assignTexture(t,"clearcoatRoughnessMap",s.clearcoatRoughnessTexture)),void 0!==s.clearcoatNormalTexture&&(n.push(this.parser.assignTexture(t,"clearcoatNormalMap",s.clearcoatNormalTexture)),void 0!==s.clearcoatNormalTexture.scale)){let e=s.clearcoatNormalTexture.scale;t.clearcoatNormalScale=new r.I9Y(e,e)}return Promise.all(n)}}class p{constructor(e){this.parser=e,this.name=l.KHR_MATERIALS_DISPERSION}getMaterialType(e){return null!==a(this.parser,e,this.name)?r.uSd:null}extendMaterialParams(e,t){let s=a(this.parser,e,this.name);return null===s||(t.dispersion=void 0!==s.dispersion?s.dispersion:0),Promise.resolve()}}class m{constructor(e){this.parser=e,this.name=l.KHR_MATERIALS_IRIDESCENCE}getMaterialType(e){return null!==a(this.parser,e,this.name)?r.uSd:null}extendMaterialParams(e,t){let s=a(this.parser,e,this.name);if(null===s)return Promise.resolve();let r=[];return void 0!==s.iridescenceFactor&&(t.iridescence=s.iridescenceFactor),void 0!==s.iridescenceTexture&&r.push(this.parser.assignTexture(t,"iridescenceMap",s.iridescenceTexture)),void 0!==s.iridescenceIor&&(t.iridescenceIOR=s.iridescenceIor),void 0===t.iridescenceThicknessRange&&(t.iridescenceThicknessRange=[100,400]),void 0!==s.iridescenceThicknessMinimum&&(t.iridescenceThicknessRange[0]=s.iridescenceThicknessMinimum),void 0!==s.iridescenceThicknessMaximum&&(t.iridescenceThicknessRange[1]=s.iridescenceThicknessMaximum),void 0!==s.iridescenceThicknessTexture&&r.push(this.parser.assignTexture(t,"iridescenceThicknessMap",s.iridescenceThicknessTexture)),Promise.all(r)}}class f{constructor(e){this.parser=e,this.name=l.KHR_MATERIALS_SHEEN}getMaterialType(e){return null!==a(this.parser,e,this.name)?r.uSd:null}extendMaterialParams(e,t){let s=a(this.parser,e,this.name);if(null===s)return Promise.resolve();let n=[];if(t.sheenColor=new r.Q1f(0,0,0),t.sheenRoughness=0,t.sheen=1,void 0!==s.sheenColorFactor){let e=s.sheenColorFactor;t.sheenColor.setRGB(e[0],e[1],e[2],r.Zr2)}return void 0!==s.sheenRoughnessFactor&&(t.sheenRoughness=s.sheenRoughnessFactor),void 0!==s.sheenColorTexture&&n.push(this.parser.assignTexture(t,"sheenColorMap",s.sheenColorTexture,r.er$)),void 0!==s.sheenRoughnessTexture&&n.push(this.parser.assignTexture(t,"sheenRoughnessMap",s.sheenRoughnessTexture)),Promise.all(n)}}class g{constructor(e){this.parser=e,this.name=l.KHR_MATERIALS_TRANSMISSION}getMaterialType(e){return null!==a(this.parser,e,this.name)?r.uSd:null}extendMaterialParams(e,t){let s=a(this.parser,e,this.name);if(null===s)return Promise.resolve();let r=[];return void 0!==s.transmissionFactor&&(t.transmission=s.transmissionFactor),void 0!==s.transmissionTexture&&r.push(this.parser.assignTexture(t,"transmissionMap",s.transmissionTexture)),Promise.all(r)}}class T{constructor(e){this.parser=e,this.name=l.KHR_MATERIALS_VOLUME}getMaterialType(e){return null!==a(this.parser,e,this.name)?r.uSd:null}extendMaterialParams(e,t){let s=a(this.parser,e,this.name);if(null===s)return Promise.resolve();let n=[];t.thickness=void 0!==s.thicknessFactor?s.thicknessFactor:0,void 0!==s.thicknessTexture&&n.push(this.parser.assignTexture(t,"thicknessMap",s.thicknessTexture)),t.attenuationDistance=s.attenuationDistance||1/0;let i=s.attenuationColor||[1,1,1];return t.attenuationColor=new r.Q1f().setRGB(i[0],i[1],i[2],r.Zr2),Promise.all(n)}}class x{constructor(e){this.parser=e,this.name=l.KHR_MATERIALS_IOR}getMaterialType(e){return null!==a(this.parser,e,this.name)?r.uSd:null}extendMaterialParams(e,t){let s=a(this.parser,e,this.name);return null===s||(t.ior=void 0!==s.ior?s.ior:1.5,0===t.ior&&(t.ior=1e3)),Promise.resolve()}}class R{constructor(e){this.parser=e,this.name=l.KHR_MATERIALS_SPECULAR}getMaterialType(e){return null!==a(this.parser,e,this.name)?r.uSd:null}extendMaterialParams(e,t){let s=a(this.parser,e,this.name);if(null===s)return Promise.resolve();let n=[];t.specularIntensity=void 0!==s.specularFactor?s.specularFactor:1,void 0!==s.specularTexture&&n.push(this.parser.assignTexture(t,"specularIntensityMap",s.specularTexture));let i=s.specularColorFactor||[1,1,1];return t.specularColor=new r.Q1f().setRGB(i[0],i[1],i[2],r.Zr2),void 0!==s.specularColorTexture&&n.push(this.parser.assignTexture(t,"specularColorMap",s.specularColorTexture,r.er$)),Promise.all(n)}}class _{constructor(e){this.parser=e,this.name=l.EXT_MATERIALS_BUMP}getMaterialType(e){return null!==a(this.parser,e,this.name)?r.uSd:null}extendMaterialParams(e,t){let s=a(this.parser,e,this.name);if(null===s)return Promise.resolve();let r=[];return t.bumpScale=void 0!==s.bumpFactor?s.bumpFactor:1,void 0!==s.bumpTexture&&r.push(this.parser.assignTexture(t,"bumpMap",s.bumpTexture)),Promise.all(r)}}class v{constructor(e){this.parser=e,this.name=l.KHR_MATERIALS_ANISOTROPY}getMaterialType(e){return null!==a(this.parser,e,this.name)?r.uSd:null}extendMaterialParams(e,t){let s=a(this.parser,e,this.name);if(null===s)return Promise.resolve();let r=[];return void 0!==s.anisotropyStrength&&(t.anisotropy=s.anisotropyStrength),void 0!==s.anisotropyRotation&&(t.anisotropyRotation=s.anisotropyRotation),void 0!==s.anisotropyTexture&&r.push(this.parser.assignTexture(t,"anisotropyMap",s.anisotropyTexture)),Promise.all(r)}}class E{constructor(e){this.parser=e,this.name=l.KHR_TEXTURE_BASISU}loadTexture(e){let t=this.parser,s=t.json,r=s.textures[e];if(!r.extensions||!r.extensions[this.name])return null;let n=r.extensions[this.name],i=t.options.ktx2Loader;if(!i)if(!(s.extensionsRequired&&s.extensionsRequired.indexOf(this.name)>=0))return null;else throw Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return t.loadTextureImage(e,n.source,i)}}class A{constructor(e){this.parser=e,this.name=l.EXT_TEXTURE_WEBP}loadTexture(e){let t=this.name,s=this.parser,r=s.json,n=r.textures[e];if(!n.extensions||!n.extensions[t])return null;let i=n.extensions[t],o=r.images[i.source],a=s.textureLoader;if(o.uri){let e=s.options.manager.getHandler(o.uri);null!==e&&(a=e)}return s.loadTextureImage(e,i.source,a)}}class w{constructor(e){this.parser=e,this.name=l.EXT_TEXTURE_AVIF}loadTexture(e){let t=this.name,s=this.parser,r=s.json,n=r.textures[e];if(!n.extensions||!n.extensions[t])return null;let i=n.extensions[t],o=r.images[i.source],a=s.textureLoader;if(o.uri){let e=s.options.manager.getHandler(o.uri);null!==e&&(a=e)}return s.loadTextureImage(e,i.source,a)}}class S{constructor(e,t){this.name=t,this.parser=e}loadBufferView(e){let t=this.parser.json,s=t.bufferViews[e];if(!s.extensions||!s.extensions[this.name])return null;{let e=s.extensions[this.name],r=this.parser.getDependency("buffer",e.buffer),n=this.parser.options.meshoptDecoder;if(!n||!n.supported)if(!(t.extensionsRequired&&t.extensionsRequired.indexOf(this.name)>=0))return null;else throw Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return r.then(function(t){let s=e.byteOffset||0,r=e.byteLength||0,i=e.count,o=e.byteStride,a=new Uint8Array(t,s,r);return n.decodeGltfBufferAsync?n.decodeGltfBufferAsync(i,o,a,e.mode,e.filter).then(function(e){return e.buffer}):n.ready.then(function(){let t=new ArrayBuffer(i*o);return n.decodeGltfBuffer(new Uint8Array(t),i,o,a,e.mode,e.filter),t})})}}}class M{constructor(e){this.name=l.EXT_MESH_GPU_INSTANCING,this.parser=e}createNodeMesh(e){let t=this.parser.json,s=t.nodes[e];if(!s.extensions||!s.extensions[this.name]||void 0===s.mesh)return null;for(let e of t.meshes[s.mesh].primitives)if(e.mode!==H.TRIANGLES&&e.mode!==H.TRIANGLE_STRIP&&e.mode!==H.TRIANGLE_FAN&&void 0!==e.mode)return null;let n=s.extensions[this.name].attributes,i=[],o={};for(let e in n)i.push(this.parser.getDependency("accessor",n[e]).then(t=>(o[e]=t,o[e])));return i.length<1?null:(i.push(this.parser.createNodeMesh(e)),Promise.all(i).then(e=>{let t=e.pop(),s=t.isGroup?t.children:[t],n=e[0].count,i=[];for(let e of s){let t=new r.kn4,s=new r.Pq0,a=new r.PTz,l=new r.Pq0(1,1,1),u=new r.ZLX(e.geometry,e.material,n);for(let e=0;e<n;e++)o.TRANSLATION&&s.fromBufferAttribute(o.TRANSLATION,e),o.ROTATION&&a.fromBufferAttribute(o.ROTATION,e),o.SCALE&&l.fromBufferAttribute(o.SCALE,e),u.setMatrixAt(e,t.compose(s,a,l));let c=null;for(let e in o)if("_COLOR_0"===e){let t=o[e];u.instanceColor=new r.uWO(t.array,t.itemSize,t.normalized)}else if("TRANSLATION"!==e&&"ROTATION"!==e&&"SCALE"!==e){if(null===c){let e=u.geometry;for(let t in(c=new r.LoY).name=e.name,e.attributes)c.setAttribute(t,e.attributes[t]);for(let t in e.morphAttributes)c.morphAttributes[t]=e.morphAttributes[t];for(let t of(null!==e.index&&c.setIndex(e.index),c.morphTargetsRelative=e.morphTargetsRelative,e.groups))c.addGroup(t.start,t.count,t.materialIndex);null!==e.boundingBox&&(c.boundingBox=e.boundingBox.clone()),null!==e.boundingSphere&&(c.boundingSphere=e.boundingSphere.clone()),c.drawRange.start=e.drawRange.start,c.drawRange.count=e.drawRange.count,c.userData=Object.assign({},e.userData),u.geometry=c}let t=o[e];c.setAttribute(e,new r.uWO(t.array,t.itemSize,t.normalized))}r.B69.prototype.copy.call(u,e),this.parser.assignFinalMaterial(u),i.push(u)}return t.isGroup?(t.clear(),t.add(...i),t):i[0]}))}}let y="glTF";class I{constructor(e){this.name=l.KHR_BINARY_GLTF,this.content=null,this.body=null;const t=new DataView(e,0,12),s=new TextDecoder;if(this.header={magic:s.decode(new Uint8Array(e.slice(0,4))),version:t.getUint32(4,!0),length:t.getUint32(8,!0)},this.header.magic!==y)throw Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw Error("THREE.GLTFLoader: Legacy binary file detected.");const r=this.header.length-12,n=new DataView(e,12);let i=0;for(;i<r;){const t=n.getUint32(i,!0);i+=4;const r=n.getUint32(i,!0);if(i+=4,0x4e4f534a===r){const r=new Uint8Array(e,12+i,t);this.content=s.decode(r)}else if(5130562===r){const s=12+i;this.body=e.slice(s,s+t)}i+=t}if(null===this.content)throw Error("THREE.GLTFLoader: JSON content not found.")}}class L{constructor(e,t){if(!t)throw Error("THREE.GLTFLoader: No DRACOLoader instance provided.");this.name=l.KHR_DRACO_MESH_COMPRESSION,this.json=e,this.dracoLoader=t,this.dracoLoader.preload()}decodePrimitive(e,t){let s=this.json,n=this.dracoLoader,i=e.extensions[this.name].bufferView,o=e.extensions[this.name].attributes,a={},l={},u={};for(let e in o)a[G[e]||e.toLowerCase()]=o[e];for(let t in e.attributes){let r=G[t]||t.toLowerCase();if(void 0!==o[t]){let n=s.accessors[e.attributes[t]],i=k[n.componentType];u[r]=i.name,l[r]=!0===n.normalized}}return t.getDependency("bufferView",i).then(function(e){return new Promise(function(t,s){n.decodeDracoFile(e,function(e){for(let t in e.attributes){let s=e.attributes[t],r=l[t];void 0!==r&&(s.normalized=r)}t(e)},a,u,r.Zr2,s)})})}}class b{constructor(){this.name=l.KHR_TEXTURE_TRANSFORM}extendTexture(e,t){if((void 0===t.texCoord||t.texCoord===e.channel)&&void 0===t.offset&&void 0===t.rotation&&void 0===t.scale)return e;if(e=e.clone(),void 0!==t.texCoord&&(e.channel=t.texCoord),void 0!==t.offset&&e.offset.fromArray(t.offset),void 0!==t.rotation&&(e.rotation=t.rotation),void 0!==t.scale&&e.repeat.fromArray(t.scale),void 0!==t.rotation){let t=Math.cos(e.rotation),s=Math.sin(e.rotation);e.matrix.set(e.repeat.x*t,e.repeat.y*s,e.offset.x,-e.repeat.x*s,e.repeat.y*t,e.offset.y,0,0,1),e.matrixAutoUpdate=!1}return e.needsUpdate=!0,e}}class N{constructor(){this.name=l.KHR_MESH_QUANTIZATION}}class O extends r.lGw{constructor(e,t,s,r){super(e,t,s,r)}copySampleValue_(e){let t=this.resultBuffer,s=this.sampleValues,r=this.valueSize,n=e*r*3+r;for(let e=0;e!==r;e++)t[e]=s[n+e];return t}interpolate_(e,t,s,r){let n=this.resultBuffer,i=this.sampleValues,o=this.valueSize,a=2*o,l=3*o,u=r-t,c=(s-t)/u,h=c*c,d=h*c,p=e*l,m=p-l,f=-2*d+3*h,g=d-h,T=1-f,x=g-h+c;for(let e=0;e!==o;e++){let t=i[m+e+o],s=i[m+e+a]*u,r=i[p+e+o],l=i[p+e]*u;n[e]=T*t+x*s+f*r+g*l}return n}}let C=new r.PTz;class P extends O{interpolate_(e,t,s,r){let n=super.interpolate_(e,t,s,r);return C.fromArray(n).normalize().toArray(n),n}}let H={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},k={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},F={9728:r.hxR,9729:r.k6q,9984:r.pHI,9985:r.kRr,9986:r.Cfg,9987:r.$_I},U={33071:r.ghU,33648:r.kTW,10497:r.GJx},D={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},G={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv1",TEXCOORD_2:"uv2",TEXCOORD_3:"uv3",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},B={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},K={CUBICSPLINE:void 0,LINEAR:r.PJ3,STEP:r.ljd};function j(e,t,s){for(let r in s.extensions)void 0===e[r]&&(t.userData.gltfExtensions=t.userData.gltfExtensions||{},t.userData.gltfExtensions[r]=s.extensions[r])}function V(e,t){void 0!==t.extras&&("object"==typeof t.extras?Object.assign(e.userData,t.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+t.extras))}function X(e){let t="",s=Object.keys(e).sort();for(let r=0,n=s.length;r<n;r++)t+=s[r]+":"+e[s[r]]+";";return t}function z(e){switch(e){case Int8Array:return 1/127;case Uint8Array:return 1/255;case Int16Array:return 1/32767;case Uint16Array:return 1/65535;default:throw Error("THREE.GLTFLoader: Unsupported normalized accessor component type.")}}let q=new r.kn4;class Y{constructor(e={},t={}){this.json=e,this.extensions={},this.plugins={},this.options=t,this.cache=new o,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let s=!1,n=-1,i=!1,a=-1;if("u">typeof navigator&&void 0!==navigator.userAgent){const e=navigator.userAgent;s=!0===/^((?!chrome|android).)*safari/i.test(e);const t=e.match(/Version\/(\d+)/);n=s&&t?parseInt(t[1],10):-1,a=(i=e.indexOf("Firefox")>-1)?e.match(/Firefox\/([0-9]+)\./)[1]:-1}"u"<typeof createImageBitmap||s&&n<17||i&&a<98?this.textureLoader=new r.Tap(this.options.manager):this.textureLoader=new r.Kzg(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new r.Y9S(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),"use-credentials"===this.options.crossOrigin&&this.fileLoader.setWithCredentials(!0)}setExtensions(e){this.extensions=e}setPlugins(e){this.plugins=e}parse(e,t){let s=this,r=this.json,n=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(e){return e._markDefs&&e._markDefs()}),Promise.all(this._invokeAll(function(e){return e.beforeRoot&&e.beforeRoot()})).then(function(){return Promise.all([s.getDependencies("scene"),s.getDependencies("animation"),s.getDependencies("camera")])}).then(function(t){let i={scene:t[0][r.scene||0],scenes:t[0],animations:t[1],cameras:t[2],asset:r.asset,parser:s,userData:{}};return j(n,i,r),V(i,r),Promise.all(s._invokeAll(function(e){return e.afterRoot&&e.afterRoot(i)})).then(function(){for(let e of i.scenes)e.updateMatrixWorld();e(i)})}).catch(t)}_markDefs(){let e=this.json.nodes||[],t=this.json.skins||[],s=this.json.meshes||[];for(let s=0,r=t.length;s<r;s++){let r=t[s].joints;for(let t=0,s=r.length;t<s;t++)e[r[t]].isBone=!0}for(let t=0,r=e.length;t<r;t++){let r=e[t];void 0!==r.mesh&&(this._addNodeRef(this.meshCache,r.mesh),void 0!==r.skin&&(s[r.mesh].isSkinnedMesh=!0)),void 0!==r.camera&&this._addNodeRef(this.cameraCache,r.camera)}}_addNodeRef(e,t){void 0!==t&&(void 0===e.refs[t]&&(e.refs[t]=e.uses[t]=0),e.refs[t]++)}_getNodeRef(e,t,s){if(e.refs[t]<=1)return s;let r=s.clone(),n=(e,t)=>{let s=this.associations.get(e);for(let[r,i]of(null!=s&&this.associations.set(t,s),e.children.entries()))n(i,t.children[r])};return n(s,r),r.name+="_instance_"+e.uses[t]++,r}_invokeOne(e){let t=Object.values(this.plugins);t.push(this);for(let s=0;s<t.length;s++){let r=e(t[s]);if(r)return r}return null}_invokeAll(e){let t=Object.values(this.plugins);t.unshift(this);let s=[];for(let r=0;r<t.length;r++){let n=e(t[r]);n&&s.push(n)}return s}getDependency(e,t){let s=e+":"+t,r=this.cache.get(s);if(!r){switch(e){case"scene":r=this.loadScene(t);break;case"node":r=this._invokeOne(function(e){return e.loadNode&&e.loadNode(t)});break;case"mesh":r=this._invokeOne(function(e){return e.loadMesh&&e.loadMesh(t)});break;case"accessor":r=this.loadAccessor(t);break;case"bufferView":r=this._invokeOne(function(e){return e.loadBufferView&&e.loadBufferView(t)});break;case"buffer":r=this.loadBuffer(t);break;case"material":r=this._invokeOne(function(e){return e.loadMaterial&&e.loadMaterial(t)});break;case"texture":r=this._invokeOne(function(e){return e.loadTexture&&e.loadTexture(t)});break;case"skin":r=this.loadSkin(t);break;case"animation":r=this._invokeOne(function(e){return e.loadAnimation&&e.loadAnimation(t)});break;case"camera":r=this.loadCamera(t);break;default:if(!(r=this._invokeOne(function(s){return s!=this&&s.getDependency&&s.getDependency(e,t)})))throw Error("Unknown type: "+e)}this.cache.add(s,r)}return r}getDependencies(e){let t=this.cache.get(e);if(!t){let s=this;t=Promise.all((this.json[e+("mesh"===e?"es":"s")]||[]).map(function(t,r){return s.getDependency(e,r)})),this.cache.add(e,t)}return t}loadBuffer(e){let t=this.json.buffers[e],s=this.fileLoader;if(t.type&&"arraybuffer"!==t.type)throw Error("THREE.GLTFLoader: "+t.type+" buffer type is not supported.");if(void 0===t.uri&&0===e)return Promise.resolve(this.extensions[l.KHR_BINARY_GLTF].body);let n=this.options;return new Promise(function(e,i){s.load(r.r6x.resolveURL(t.uri,n.path),e,void 0,function(){i(Error('THREE.GLTFLoader: Failed to load buffer "'+t.uri+'".'))})})}loadBufferView(e){let t=this.json.bufferViews[e];return this.getDependency("buffer",t.buffer).then(function(e){let s=t.byteLength||0,r=t.byteOffset||0;return e.slice(r,r+s)})}loadAccessor(e){let t=this,s=this.json,n=this.json.accessors[e];if(void 0===n.bufferView&&void 0===n.sparse){let e=D[n.type],t=k[n.componentType],s=!0===n.normalized,i=new t(n.count*e);return Promise.resolve(new r.THS(i,e,s))}let i=[];return void 0!==n.bufferView?i.push(this.getDependency("bufferView",n.bufferView)):i.push(null),void 0!==n.sparse&&(i.push(this.getDependency("bufferView",n.sparse.indices.bufferView)),i.push(this.getDependency("bufferView",n.sparse.values.bufferView))),Promise.all(i).then(function(e){let i,o,a=e[0],l=D[n.type],u=k[n.componentType],c=u.BYTES_PER_ELEMENT,h=c*l,d=n.byteOffset||0,p=void 0!==n.bufferView?s.bufferViews[n.bufferView].byteStride:void 0,m=!0===n.normalized;if(p&&p!==h){let e=Math.floor(d/p),s="InterleavedBuffer:"+n.bufferView+":"+n.componentType+":"+e+":"+n.count,h=t.cache.get(s);h||(i=new u(a,e*p,n.count*p/c),h=new r.eB$(i,p/c),t.cache.add(s,h)),o=new r.eHs(h,l,d%p/c,m)}else i=null===a?new u(n.count*l):new u(a,d,n.count*l),o=new r.THS(i,l,m);if(void 0!==n.sparse){let t=D.SCALAR,s=k[n.sparse.indices.componentType],i=n.sparse.indices.byteOffset||0,c=n.sparse.values.byteOffset||0,h=new s(e[1],i,n.sparse.count*t),d=new u(e[2],c,n.sparse.count*l);null!==a&&(o=new r.THS(o.array.slice(),o.itemSize,o.normalized)),o.normalized=!1;for(let e=0,t=h.length;e<t;e++){let t=h[e];if(o.setX(t,d[e*l]),l>=2&&o.setY(t,d[e*l+1]),l>=3&&o.setZ(t,d[e*l+2]),l>=4&&o.setW(t,d[e*l+3]),l>=5)throw Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}o.normalized=m}return o})}loadTexture(e){let t=this.json,s=this.options,r=t.textures[e].source,n=t.images[r],i=this.textureLoader;if(n.uri){let e=s.manager.getHandler(n.uri);null!==e&&(i=e)}return this.loadTextureImage(e,r,i)}loadTextureImage(e,t,s){let n=this,i=this.json,o=i.textures[e],a=i.images[t],l=(a.uri||a.bufferView)+":"+o.sampler;if(this.textureCache[l])return this.textureCache[l];let u=this.loadImageSource(t,s).then(function(t){t.flipY=!1,t.name=o.name||a.name||"",""===t.name&&"string"==typeof a.uri&&!1===a.uri.startsWith("data:image/")&&(t.name=a.uri);let s=(i.samplers||{})[o.sampler]||{};return t.magFilter=F[s.magFilter]||r.k6q,t.minFilter=F[s.minFilter]||r.$_I,t.wrapS=U[s.wrapS]||r.GJx,t.wrapT=U[s.wrapT]||r.GJx,t.generateMipmaps=!t.isCompressedTexture&&t.minFilter!==r.hxR&&t.minFilter!==r.k6q,n.associations.set(t,{textures:e}),t}).catch(function(){return null});return this.textureCache[l]=u,u}loadImageSource(e,t){let s=this.json,n=this.options;if(void 0!==this.sourceCache[e])return this.sourceCache[e].then(e=>e.clone());let i=s.images[e],o=self.URL||self.webkitURL,a=i.uri||"",l=!1;if(void 0!==i.bufferView)a=this.getDependency("bufferView",i.bufferView).then(function(e){l=!0;let t=new Blob([e],{type:i.mimeType});return a=o.createObjectURL(t)});else if(void 0===i.uri)throw Error("THREE.GLTFLoader: Image "+e+" is missing URI and bufferView");let u=Promise.resolve(a).then(function(e){return new Promise(function(s,i){let o=s;!0===t.isImageBitmapLoader&&(o=function(e){let t=new r.gPd(e);t.needsUpdate=!0,s(t)}),t.load(r.r6x.resolveURL(e,n.path),o,void 0,i)})}).then(function(e){var t;return!0===l&&o.revokeObjectURL(a),V(e,i),e.userData.mimeType=i.mimeType||((t=i.uri).search(/\.jpe?g($|\?)/i)>0||0===t.search(/^data\:image\/jpeg/)?"image/jpeg":t.search(/\.webp($|\?)/i)>0||0===t.search(/^data\:image\/webp/)?"image/webp":t.search(/\.ktx2($|\?)/i)>0||0===t.search(/^data\:image\/ktx2/)?"image/ktx2":"image/png"),e}).catch(function(e){throw console.error("THREE.GLTFLoader: Couldn't load texture",a),e});return this.sourceCache[e]=u,u}assignTexture(e,t,s,r){let n=this;return this.getDependency("texture",s.index).then(function(i){if(!i)return null;if(void 0!==s.texCoord&&s.texCoord>0&&((i=i.clone()).channel=s.texCoord),n.extensions[l.KHR_TEXTURE_TRANSFORM]){let e=void 0!==s.extensions?s.extensions[l.KHR_TEXTURE_TRANSFORM]:void 0;if(e){let t=n.associations.get(i);i=n.extensions[l.KHR_TEXTURE_TRANSFORM].extendTexture(i,e),n.associations.set(i,t)}}return void 0!==r&&(i.colorSpace=r),e[t]=i,i})}assignFinalMaterial(e){let t=e.geometry,s=e.material,n=void 0===t.attributes.tangent,i=void 0!==t.attributes.color,o=void 0===t.attributes.normal;if(e.isPoints){let e="PointsMaterial:"+s.uuid,t=this.cache.get(e);t||(t=new r.BH$,r.imn.prototype.copy.call(t,s),t.color.copy(s.color),t.map=s.map,t.sizeAttenuation=!1,this.cache.add(e,t)),s=t}else if(e.isLine){let e="LineBasicMaterial:"+s.uuid,t=this.cache.get(e);t||(t=new r.mrM,r.imn.prototype.copy.call(t,s),t.color.copy(s.color),t.map=s.map,this.cache.add(e,t)),s=t}if(n||i||o){let e="ClonedMaterial:"+s.uuid+":";n&&(e+="derivative-tangents:"),i&&(e+="vertex-colors:"),o&&(e+="flat-shading:");let t=this.cache.get(e);t||(t=s.clone(),i&&(t.vertexColors=!0),o&&(t.flatShading=!0),n&&(t.normalScale&&(t.normalScale.y*=-1),t.clearcoatNormalScale&&(t.clearcoatNormalScale.y*=-1)),this.cache.add(e,t),this.associations.set(t,this.associations.get(s))),s=t}e.material=s}getMaterialType(){return r._4j}loadMaterial(e){let t,s=this,n=this.json,i=this.extensions,o=n.materials[e],a={},u=o.extensions||{},c=[];if(u[l.KHR_MATERIALS_UNLIT]){let e=i[l.KHR_MATERIALS_UNLIT];t=e.getMaterialType(),c.push(e.extendParams(a,o,s))}else{let n=o.pbrMetallicRoughness||{};if(a.color=new r.Q1f(1,1,1),a.opacity=1,Array.isArray(n.baseColorFactor)){let e=n.baseColorFactor;a.color.setRGB(e[0],e[1],e[2],r.Zr2),a.opacity=e[3]}void 0!==n.baseColorTexture&&c.push(s.assignTexture(a,"map",n.baseColorTexture,r.er$)),a.metalness=void 0!==n.metallicFactor?n.metallicFactor:1,a.roughness=void 0!==n.roughnessFactor?n.roughnessFactor:1,void 0!==n.metallicRoughnessTexture&&(c.push(s.assignTexture(a,"metalnessMap",n.metallicRoughnessTexture)),c.push(s.assignTexture(a,"roughnessMap",n.metallicRoughnessTexture))),t=this._invokeOne(function(t){return t.getMaterialType&&t.getMaterialType(e)}),c.push(Promise.all(this._invokeAll(function(t){return t.extendMaterialParams&&t.extendMaterialParams(e,a)})))}!0===o.doubleSided&&(a.side=r.$EB);let h=o.alphaMode||"OPAQUE";if("BLEND"===h?(a.transparent=!0,a.depthWrite=!1):(a.transparent=!1,"MASK"===h&&(a.alphaTest=void 0!==o.alphaCutoff?o.alphaCutoff:.5)),void 0!==o.normalTexture&&t!==r.V9B&&(c.push(s.assignTexture(a,"normalMap",o.normalTexture)),a.normalScale=new r.I9Y(1,1),void 0!==o.normalTexture.scale)){let e=o.normalTexture.scale;a.normalScale.set(e,e)}if(void 0!==o.occlusionTexture&&t!==r.V9B&&(c.push(s.assignTexture(a,"aoMap",o.occlusionTexture)),void 0!==o.occlusionTexture.strength&&(a.aoMapIntensity=o.occlusionTexture.strength)),void 0!==o.emissiveFactor&&t!==r.V9B){let e=o.emissiveFactor;a.emissive=new r.Q1f().setRGB(e[0],e[1],e[2],r.Zr2)}return void 0!==o.emissiveTexture&&t!==r.V9B&&c.push(s.assignTexture(a,"emissiveMap",o.emissiveTexture,r.er$)),Promise.all(c).then(function(){let r=new t(a);return o.name&&(r.name=o.name),V(r,o),s.associations.set(r,{materials:e}),o.extensions&&j(i,r,o),r})}createUniqueName(e){let t=r.Nwf.sanitizeNodeName(e||"");return t in this.nodeNamesUsed?t+"_"+ ++this.nodeNamesUsed[t]:(this.nodeNamesUsed[t]=0,t)}loadGeometries(e){let t=this,s=this.extensions,i=this.primitiveCache,o=[];for(let a=0,u=e.length;a<u;a++){let u=e[a],c=function(e){let t,s=e.extensions&&e.extensions[l.KHR_DRACO_MESH_COMPRESSION];if(t=s?"draco:"+s.bufferView+":"+s.indices+":"+X(s.attributes):e.indices+":"+X(e.attributes)+":"+e.mode,void 0!==e.targets)for(let s=0,r=e.targets.length;s<r;s++)t+=":"+X(e.targets[s]);return t}(u),h=i[c];if(h)o.push(h.promise);else{let e;e=u.extensions&&u.extensions[l.KHR_DRACO_MESH_COMPRESSION]?function(e){return s[l.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(e,t).then(function(s){return Z(s,e,t)})}(u):Z(new r.LoY,u,t),u.mode===H.TRIANGLE_STRIP?e=e.then(e=>n(e,r.O49)):u.mode===H.TRIANGLE_FAN&&(e=e.then(e=>n(e,r.rYR))),i[c]={primitive:u,promise:e},o.push(e)}}return Promise.all(o)}loadMesh(e){let t=this,s=this.json,n=this.extensions,i=s.meshes[e],o=i.primitives,a=[];for(let e=0,t=o.length;e<t;e++){var l;let t=void 0===o[e].material?(void 0===(l=this.cache).DefaultMaterial&&(l.DefaultMaterial=new r._4j({color:0xffffff,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:r.hB5})),l.DefaultMaterial):this.getDependency("material",o[e].material);a.push(t)}return a.push(t.loadGeometries(o)),Promise.all(a).then(async function(s){let a=s.slice(0,s.length-1),l=s[s.length-1],u=[];for(let s=0,c=l.length;s<c;s++){let c,h=l[s],d=o[s],p=a[s];if(d.mode===H.TRIANGLES||d.mode===H.TRIANGLE_STRIP||d.mode===H.TRIANGLE_FAN||void 0===d.mode){let e=!0===i.isSkinnedMesh,t=h.hasAttribute("skinIndex")&&h.hasAttribute("skinWeight");e&&!1===t&&console.warn("THREE.GLTFLoader: Missing skinIndex or skinWeight attributes. Skinning disabled."),!0===(c=e&&t?new r.I46(h,p):new r.eaF(h,p)).isSkinnedMesh&&c.normalizeSkinWeights()}else if(d.mode===H.LINES)c=new r.DXC(h,p);else if(d.mode===H.LINE_STRIP)c=new r.N1A(h,p);else if(d.mode===H.LINE_LOOP)c=new r.FCc(h,p);else if(d.mode===H.POINTS)c=new r.ONl(h,p);else throw Error("THREE.GLTFLoader: Primitive mode unsupported: "+d.mode);Object.keys(c.geometry.morphAttributes).length>0&&function(e,t){if(e.updateMorphTargets(),void 0!==t.weights)for(let s=0,r=t.weights.length;s<r;s++)e.morphTargetInfluences[s]=t.weights[s];if(t.extras&&Array.isArray(t.extras.targetNames)){let s=t.extras.targetNames;if(e.morphTargetInfluences.length===s.length){e.morphTargetDictionary={};for(let t=0,r=s.length;t<r;t++)e.morphTargetDictionary[s[t]]=t}else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.")}}(c,i),c.name=t.createUniqueName(i.name||"mesh_"+e),V(c,i),d.extensions&&j(n,c,d),t.assignFinalMaterial(c),u.push(c)}for(let s=0,r=u.length;s<r;s++)t.associations.set(u[s],{meshes:e,primitives:s});if(1===u.length)return i.extensions&&j(n,u[0],i),u[0];let c=new r.YJl;i.extensions&&j(n,c,i),t.associations.set(c,{meshes:e});for(let e=0,t=u.length;e<t;e++)c.add(u[e]);return c})}loadCamera(e){let t,s=this.json.cameras[e],n=s[s.type];return n?("perspective"===s.type?t=new r.ubm(r.cj9.radToDeg(n.yfov),n.aspectRatio||1,n.znear||1,n.zfar||2e6):"orthographic"===s.type&&(t=new r.qUd(-n.xmag,n.xmag,n.ymag,-n.ymag,n.znear,n.zfar)),s.name&&(t.name=this.createUniqueName(s.name)),V(t,s),Promise.resolve(t)):void console.warn("THREE.GLTFLoader: Missing camera parameters.")}loadSkin(e){let t=this.json.skins[e],s=[];for(let e=0,r=t.joints.length;e<r;e++)s.push(this._loadNodeShallow(t.joints[e]));return void 0!==t.inverseBindMatrices?s.push(this.getDependency("accessor",t.inverseBindMatrices)):s.push(null),Promise.all(s).then(function(e){let s=e.pop(),n=[],i=[];for(let o=0,a=e.length;o<a;o++){let a=e[o];if(a){n.push(a);let e=new r.kn4;null!==s&&e.fromArray(s.array,16*o),i.push(e)}else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.',t.joints[o])}return new r.EAD(n,i)})}loadAnimation(e){let t=this.json,s=this,n=t.animations[e],i=n.name?n.name:"animation_"+e,o=[],a=[],l=[],u=[],c=[];for(let e=0,t=n.channels.length;e<t;e++){let t=n.channels[e],s=n.samplers[t.sampler],r=t.target,i=r.node,h=void 0!==n.parameters?n.parameters[s.input]:s.input,d=void 0!==n.parameters?n.parameters[s.output]:s.output;void 0!==r.node&&(o.push(this.getDependency("node",i)),a.push(this.getDependency("accessor",h)),l.push(this.getDependency("accessor",d)),u.push(s),c.push(r))}return Promise.all([Promise.all(o),Promise.all(a),Promise.all(l),Promise.all(u),Promise.all(c)]).then(function(e){let t=e[0],o=e[1],a=e[2],l=e[3],u=e[4],c=[];for(let e=0,r=t.length;e<r;e++){let r=t[e],n=o[e],i=a[e],h=l[e],d=u[e];if(void 0===r)continue;r.updateMatrix&&r.updateMatrix();let p=s._createAnimationTracks(r,n,i,h,d);if(p)for(let e=0;e<p.length;e++)c.push(p[e])}let h=new r.tz3(i,void 0,c);return V(h,n),h})}createNodeMesh(e){let t=this.json,s=this,r=t.nodes[e];return void 0===r.mesh?null:s.getDependency("mesh",r.mesh).then(function(e){let t=s._getNodeRef(s.meshCache,r.mesh,e);return void 0!==r.weights&&t.traverse(function(e){if(e.isMesh)for(let t=0,s=r.weights.length;t<s;t++)e.morphTargetInfluences[t]=r.weights[t]}),t})}loadNode(e){let t=this.json.nodes[e],s=this._loadNodeShallow(e),n=[],i=t.children||[];for(let e=0,t=i.length;e<t;e++)n.push(this.getDependency("node",i[e]));let o=void 0===t.skin?Promise.resolve(null):this.getDependency("skin",t.skin);return Promise.all([s,Promise.all(n),o]).then(function(e){let t=e[0],s=e[1],n=e[2];null!==n&&t.traverse(function(e){e.isSkinnedMesh&&e.bind(n,q)});for(let e=0,r=s.length;e<r;e++)t.add(s[e]);if(void 0!==t.userData.pivot&&s.length>0){let e=t.userData.pivot,n=s[0];t.pivot=new r.Pq0().fromArray(e),t.position.x-=e[0],t.position.y-=e[1],t.position.z-=e[2],n.position.set(0,0,0),delete t.userData.pivot}return t})}_loadNodeShallow(e){let t=this.json,s=this.extensions,n=this;if(void 0!==this.nodeCache[e])return this.nodeCache[e];let i=t.nodes[e],o=i.name?n.createUniqueName(i.name):"",a=[],l=n._invokeOne(function(t){return t.createNodeMesh&&t.createNodeMesh(e)});return l&&a.push(l),void 0!==i.camera&&a.push(n.getDependency("camera",i.camera).then(function(e){return n._getNodeRef(n.cameraCache,i.camera,e)})),n._invokeAll(function(t){return t.createNodeAttachment&&t.createNodeAttachment(e)}).forEach(function(e){a.push(e)}),this.nodeCache[e]=Promise.all(a).then(function(t){let a;if((a=!0===i.isBone?new r.$Kf:t.length>1?new r.YJl:1===t.length?t[0]:new r.B69)!==t[0])for(let e=0,s=t.length;e<s;e++)a.add(t[e]);if(i.name&&(a.userData.name=i.name,a.name=o),V(a,i),i.extensions&&j(s,a,i),void 0!==i.matrix){let e=new r.kn4;e.fromArray(i.matrix),a.applyMatrix4(e)}else void 0!==i.translation&&a.position.fromArray(i.translation),void 0!==i.rotation&&a.quaternion.fromArray(i.rotation),void 0!==i.scale&&a.scale.fromArray(i.scale);if(n.associations.has(a)){if(void 0!==i.mesh&&n.meshCache.refs[i.mesh]>1){let e=n.associations.get(a);n.associations.set(a,{...e})}}else n.associations.set(a,{});return n.associations.get(a).nodes=e,a}),this.nodeCache[e]}loadScene(e){let t=this.extensions,s=this.json.scenes[e],n=this,i=new r.YJl;s.name&&(i.name=n.createUniqueName(s.name)),V(i,s),s.extensions&&j(t,i,s);let o=s.nodes||[],a=[];for(let e=0,t=o.length;e<t;e++)a.push(n.getDependency("node",o[e]));return Promise.all(a).then(function(e){for(let t=0,s=e.length;t<s;t++){let s=e[t];null!==s.parent?i.add(function(e){let t=new Map,s=new Map,r=e.clone();return function e(t,s,r){r(t,s);for(let n=0;n<t.children.length;n++)e(t.children[n],s.children[n],r)}(e,r,function(e,r){t.set(r,e),s.set(e,r)}),r.traverse(function(e){if(!e.isSkinnedMesh)return;let r=t.get(e),n=r.skeleton.bones;e.skeleton=r.skeleton.clone(),e.bindMatrix.copy(r.bindMatrix),e.skeleton.bones=n.map(function(e){return s.get(e)}),e.bind(e.skeleton,e.bindMatrix)}),r}(s)):i.add(s)}return n.associations=(e=>{let t=new Map;for(let[e,s]of n.associations)(e instanceof r.imn||e instanceof r.gPd)&&t.set(e,s);return e.traverse(e=>{let s=n.associations.get(e);null!=s&&t.set(e,s)}),t})(i),i})}_createAnimationTracks(e,t,s,n,i){let o,a=[],l=e.name?e.name:e.uuid,u=[];function c(e){e.morphTargetInfluences&&u.push(e.name?e.name:e.uuid)}switch(B[i.path]===B.weights?(c(e),e.isGroup&&e.children.forEach(c)):u.push(l),B[i.path]){case B.weights:o=r.Hit;break;case B.rotation:o=r.MBL;break;case B.translation:case B.scale:o=r.RiT;break;default:o=1===s.itemSize?r.Hit:r.RiT}let h=void 0!==n.interpolation?K[n.interpolation]:r.PJ3,d=this._getArrayFromAccessor(s);for(let e=0,s=u.length;e<s;e++){let s=new o(u[e]+"."+B[i.path],t.array,d,h);"CUBICSPLINE"===n.interpolation&&this._createCubicSplineTrackInterpolant(s),a.push(s)}return a}_getArrayFromAccessor(e){let t=e.array;if(e.normalized){let e=z(t.constructor),s=new Float32Array(t.length);for(let r=0,n=t.length;r<n;r++)s[r]=t[r]*e;t=s}return t}_createCubicSplineTrackInterpolant(e){e.createInterpolant=function(e){return new(this instanceof r.MBL?P:O)(this.times,this.values,this.getValueSize()/3,e)},e.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0}}function Z(e,t,s){let n=t.attributes,i=[];for(let t in n){let r=G[t]||t.toLowerCase();r in e.attributes||i.push(function(t,r){return s.getDependency("accessor",t).then(function(t){e.setAttribute(r,t)})}(n[t],r))}if(void 0!==t.indices&&!e.index){let r=s.getDependency("accessor",t.indices).then(function(t){e.setIndex(t)});i.push(r)}return r.ppV.workingColorSpace!==r.Zr2&&"COLOR_0"in n&&console.warn(`THREE.GLTFLoader: Converting vertex colors from "srgb-linear" to "${r.ppV.workingColorSpace}" not supported.`),V(e,t),!function(e,t,s){let n=t.attributes,i=new r.NRn;if(void 0===n.POSITION)return;{let e=s.json.accessors[n.POSITION],t=e.min,o=e.max;if(void 0===t||void 0===o)return console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");if(i.set(new r.Pq0(t[0],t[1],t[2]),new r.Pq0(o[0],o[1],o[2])),e.normalized){let t=z(k[e.componentType]);i.min.multiplyScalar(t),i.max.multiplyScalar(t)}}let o=t.targets;if(void 0!==o){let e=new r.Pq0,t=new r.Pq0;for(let r=0,n=o.length;r<n;r++){let n=o[r];if(void 0!==n.POSITION){let r=s.json.accessors[n.POSITION],i=r.min,o=r.max;if(void 0!==i&&void 0!==o){if(t.setX(Math.max(Math.abs(i[0]),Math.abs(o[0]))),t.setY(Math.max(Math.abs(i[1]),Math.abs(o[1]))),t.setZ(Math.max(Math.abs(i[2]),Math.abs(o[2]))),r.normalized){let e=z(k[r.componentType]);t.multiplyScalar(e)}e.max(t)}else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}}i.expandByVector(e)}e.boundingBox=i;let a=new r.iyt;i.getCenter(a.center),a.radius=i.min.distanceTo(i.max)/2,e.boundingSphere=a}(e,t,s),Promise.all(i).then(function(){return void 0!==t.targets?function(e,t,s){let r=!1,n=!1,i=!1;for(let e=0,s=t.length;e<s;e++){let s=t[e];if(void 0!==s.POSITION&&(r=!0),void 0!==s.NORMAL&&(n=!0),void 0!==s.COLOR_0&&(i=!0),r&&n&&i)break}if(!r&&!n&&!i)return Promise.resolve(e);let o=[],a=[],l=[];for(let u=0,c=t.length;u<c;u++){let c=t[u];if(r){let t=void 0!==c.POSITION?s.getDependency("accessor",c.POSITION):e.attributes.position;o.push(t)}if(n){let t=void 0!==c.NORMAL?s.getDependency("accessor",c.NORMAL):e.attributes.normal;a.push(t)}if(i){let t=void 0!==c.COLOR_0?s.getDependency("accessor",c.COLOR_0):e.attributes.color;l.push(t)}}return Promise.all([Promise.all(o),Promise.all(a),Promise.all(l)]).then(function(t){let s=t[0],o=t[1],a=t[2];return r&&(e.morphAttributes.position=s),n&&(e.morphAttributes.normal=o),i&&(e.morphAttributes.color=a),e.morphTargetsRelative=!0,e})}(e,t.targets,s):e})}},96992:(e,t,s)=>{s.d(t,{l:()=>n});var r=s(84910);class n extends r.Z58{constructor(){super(),this.name="RoomEnvironment",this.position.y=-3.5;const e=new r.iNn;e.deleteAttribute("uv");const t=new r._4j({side:r.hsX}),s=new r._4j,n=new r.HiM(0xffffff,900,28,2);n.position.set(.418,16.199,.3),this.add(n);const o=new r.eaF(e,t);o.position.set(-.757,13.219,.717),o.scale.set(31.713,28.305,28.591),this.add(o);const a=new r.ZLX(e,s,6),l=new r.B69;l.position.set(-10.906,2.009,1.846),l.rotation.set(0,-.195,0),l.scale.set(2.328,7.905,4.651),l.updateMatrix(),a.setMatrixAt(0,l.matrix),l.position.set(-5.607,-.754,-.758),l.rotation.set(0,.994,0),l.scale.set(1.97,1.534,3.955),l.updateMatrix(),a.setMatrixAt(1,l.matrix),l.position.set(6.167,.857,7.803),l.rotation.set(0,.561,0),l.scale.set(3.927,6.285,3.687),l.updateMatrix(),a.setMatrixAt(2,l.matrix),l.position.set(-2.017,.018,6.124),l.rotation.set(0,.333,0),l.scale.set(2.002,4.566,2.064),l.updateMatrix(),a.setMatrixAt(3,l.matrix),l.position.set(2.291,-.756,-2.621),l.rotation.set(0,-.286,0),l.scale.set(1.546,1.552,1.496),l.updateMatrix(),a.setMatrixAt(4,l.matrix),l.position.set(-2.193,-.369,-5.547),l.rotation.set(0,.516,0),l.scale.set(3.875,3.487,2.986),l.updateMatrix(),a.setMatrixAt(5,l.matrix),this.add(a);const u=new r.eaF(e,i(50));u.position.set(-16.116,14.37,8.208),u.scale.set(.1,2.428,2.739),this.add(u);const c=new r.eaF(e,i(50));c.position.set(-16.109,18.021,-8.207),c.scale.set(.1,2.425,2.751),this.add(c);const h=new r.eaF(e,i(17));h.position.set(14.904,12.198,-1.832),h.scale.set(.15,4.265,6.331),this.add(h);const d=new r.eaF(e,i(43));d.position.set(-.462,8.89,14.52),d.scale.set(4.38,5.441,.088),this.add(d);const p=new r.eaF(e,i(20));p.position.set(3.235,11.486,-12.541),p.scale.set(2.5,2,.1),this.add(p);const m=new r.eaF(e,i(100));m.position.set(0,20,0),m.scale.set(1,.1,1),this.add(m)}dispose(){let e=new Set;for(let t of(this.traverse(t=>{t.isMesh&&(e.add(t.geometry),e.add(t.material))}),e))t.dispose()}}function i(e){return new r.G_z({color:0,emissive:0xffffff,emissiveIntensity:e})}}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[484],{5780:()=>{},88484:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>h});var a=r(73365),n=r(50018),i=r(11075),s=r(24539),o=r(1521),l=r(95813),d=r(84910),c=r(76770),u=r(76999),m=r(96992),f=r(29415),p=r(27812);function h({url:e,labels:t}){let r=(0,o.useRef)(null),y=(0,o.useRef)(null),[v,g]=(0,o.useState)("loading"),[x,b]=(0,o.useState)(0);return(0,o.useEffect)(()=>{let t,a,n=r.current;g("loading");try{t=new l.JeP({antialias:!0,alpha:!0})}catch{g("error");return}t.toneMapping=d.FV,t.setPixelRatio(Math.min(window.devicePixelRatio,2)),n.appendChild(t.domElement);let i=new d.Z58,s=new d.ubm(35,1,.01,100),o=new c.N(s,t.domElement);o.enablePan=!1;let f=new d.$p8(0xffffff,.5),p=new d.ZyN(0xffffff,2);p.position.set(3,5,4),i.add(f,p);let h=new m.l,v=new l.BdL(t),x=v.fromScene(h,.04);i.environment=x.texture,h.dispose(),v.dispose();let b=[],k=!1,j=1,A=()=>t.render(i,s),E=()=>{let e=Math.atan(Math.tan(s.fov*Math.PI/360)*Math.min(1,s.aspect)),t=j/Math.sin(e)*1.15;s.position.copy(new d.Pq0(1,.7,1.2).normalize().multiplyScalar(t)),s.near=j/100,s.far=t+100*j,s.updateProjectionMatrix(),o.target.set(0,0,0),o.minDistance=1.15*j,o.maxDistance=4*t,o.update(),A()};y.current=E;let M=()=>{let e=n.clientWidth,r=n.clientHeight;e&&r&&(t.setSize(e,r),s.aspect=e/r,s.updateProjectionMatrix(),a&&E())},P=new ResizeObserver(M);P.observe(n),o.addEventListener("change",A);let S=e=>{if(!a||!["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","+","=","-","Home"].includes(e.key))return;if(e.preventDefault(),"Home"===e.key)return void E();let t=new d.YHV().setFromVector3(s.position.clone().sub(o.target));"ArrowLeft"===e.key&&(t.theta-=.12),"ArrowRight"===e.key&&(t.theta+=.12),"ArrowUp"===e.key&&(t.phi-=.12),"ArrowDown"===e.key&&(t.phi+=.12),("+"===e.key||"="===e.key)&&(t.radius/=1.15),"-"===e.key&&(t.radius*=1.15),t.makeSafe(),t.radius=Math.max(o.minDistance,Math.min(o.maxDistance,t.radius)),s.position.setFromSpherical(t).add(o.target),o.update()};n.addEventListener("keydown",S);let N=new AbortController,_=new d.KPJ;return _.setURLModifier(e=>{if(!e.startsWith("blob:"))throw Error("External model resources are unsupported");return e}),fetch(e,{signal:N.signal}).then(e=>{if(!e.ok)throw Error("Model request failed");return e.arrayBuffer()}).then(e=>new u.B(_).parseAsync(e,"")).then(e=>{if(k)return void e.scenes.forEach(w);b=e.scenes,a=e.scene;let t=new d.NRn().setFromObject(a);if(!Number.isFinite(j=t.getSize(new d.Pq0).length()/2)||j<=0)throw Error("Model has no visible geometry");a.position.sub(t.getCenter(new d.Pq0)),i.add(a),M(),g("ready")}).catch(()=>{k||g("error")}),()=>{k=!0,N.abort(),y.current=null,P.disconnect(),n.removeEventListener("keydown",S),o.dispose(),b.forEach(w),x.dispose(),t.dispose(),t.domElement.remove()}},[e,x]),(0,a.jsxs)("div",{...(0,p.Se)({namespace:"human2ai",id:"style-model-preview",name:"StyleModelPreview",category:"canvas",origin:"project",status:"candidate"}),className:"human2ai-style-model-preview","data-state":v,children:[(0,a.jsx)("div",{ref:r,className:"human2ai-style-model-preview__canvas",role:"region","aria-label":t.label,"aria-busy":"loading"===v,tabIndex:0}),"ready"!==v?(0,a.jsxs)("div",{className:"human2ai-style-model-preview__status",role:"error"===v?"alert":"status",children:[(0,a.jsx)("span",{children:"error"===v?t.failed:t.loading}),"error"===v?(0,a.jsx)(f.J,{type:"text",onClick:()=>b(e=>e+1),children:t.retry}):null]}):null,(0,a.jsxs)("div",{className:"human2ai-style-model-preview__tools",children:[(0,a.jsx)(s.A,{title:t.controls,children:(0,a.jsx)(f.J,{type:"text",mode:"icon-only","aria-label":t.controls,icon:(0,a.jsx)(n.A,{"aria-hidden":"true"})})}),(0,a.jsx)(s.A,{title:t.reset,children:(0,a.jsx)(f.J,{type:"text",mode:"icon-only","aria-label":t.reset,disabled:"ready"!==v,icon:(0,a.jsx)(i.A,{"aria-hidden":"true"}),onClick:()=>y.current?.()})})]})]})}function w(e){let t=new Set;for(let r of(e.traverse(e=>{if(e instanceof d.eaF){for(let r of(e.geometry.dispose(),Array.isArray(e.material)?e.material:[e.material])){for(let e of Object.values(r))e instanceof d.gPd&&t.add(e);r.dispose()}"skeleton"in e&&e.skeleton.dispose()}}),t))"u">typeof ImageBitmap&&r.image instanceof ImageBitmap&&r.image.close(),r.dispose()}r(5780)}}]);
|