@zxh19890103/wik
Version:
The world-class JavaScript library for building large-scale digital warehouse both on 2D and 3D.
11 lines (10 loc) • 31.7 kB
JavaScript
"use strict";/*!
* Wik 1.0.0-dev01
* https://wik.zhangxinghai.cn/
*
* Copyright 2023-present Sea Zhang
* Released under the MIT license
*
* Date: Fri, 17 Feb 2023 14:08:06 GMT
*/const v=require("react"),st=t=>t&&typeof t=="object"&&"default"in t?t:{default:t},g=st(v);var ot=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},P={exports:{}};(function(t){var e=Object.prototype.hasOwnProperty,n="~";function r(){}Object.create&&(r.prototype=Object.create(null),new r().__proto__||(n=!1));function s(c,l,f){this.fn=c,this.context=l,this.once=f||!1}function o(c,l,f,p,y){if(typeof f!="function")throw new TypeError("The listener must be a function");var m=new s(f,p||c,y),d=n?n+l:l;return c._events[d]?c._events[d].fn?c._events[d]=[c._events[d],m]:c._events[d].push(m):(c._events[d]=m,c._eventsCount++),c}function i(c,l){--c._eventsCount===0?c._events=new r:delete c._events[l]}function a(){this._events=new r,this._eventsCount=0}a.prototype.eventNames=function(){var l=[],f,p;if(this._eventsCount===0)return l;for(p in f=this._events)e.call(f,p)&&l.push(n?p.slice(1):p);return Object.getOwnPropertySymbols?l.concat(Object.getOwnPropertySymbols(f)):l},a.prototype.listeners=function(l){var f=n?n+l:l,p=this._events[f];if(!p)return[];if(p.fn)return[p.fn];for(var y=0,m=p.length,d=new Array(m);y<m;y++)d[y]=p[y].fn;return d},a.prototype.listenerCount=function(l){var f=n?n+l:l,p=this._events[f];return p?p.fn?1:p.length:0},a.prototype.emit=function(l,f,p,y,m,d){var _=n?n+l:l;if(!this._events[_])return!1;var u=this._events[_],w=arguments.length,b,h;if(u.fn){switch(u.once&&this.removeListener(l,u.fn,void 0,!0),w){case 1:return u.fn.call(u.context),!0;case 2:return u.fn.call(u.context,f),!0;case 3:return u.fn.call(u.context,f,p),!0;case 4:return u.fn.call(u.context,f,p,y),!0;case 5:return u.fn.call(u.context,f,p,y,m),!0;case 6:return u.fn.call(u.context,f,p,y,m,d),!0}for(h=1,b=new Array(w-1);h<w;h++)b[h-1]=arguments[h];u.fn.apply(u.context,b)}else{var O=u.length,x;for(h=0;h<O;h++)switch(u[h].once&&this.removeListener(l,u[h].fn,void 0,!0),w){case 1:u[h].fn.call(u[h].context);break;case 2:u[h].fn.call(u[h].context,f);break;case 3:u[h].fn.call(u[h].context,f,p);break;case 4:u[h].fn.call(u[h].context,f,p,y);break;default:if(!b)for(x=1,b=new Array(w-1);x<w;x++)b[x-1]=arguments[x];u[h].fn.apply(u[h].context,b)}}return!0},a.prototype.on=function(l,f,p){return o(this,l,f,p,!1)},a.prototype.once=function(l,f,p){return o(this,l,f,p,!0)},a.prototype.removeListener=function(l,f,p,y){var m=n?n+l:l;if(!this._events[m])return this;if(!f)return i(this,m),this;var d=this._events[m];if(d.fn)d.fn===f&&(!y||d.once)&&(!p||d.context===p)&&i(this,m);else{for(var _=0,u=[],w=d.length;_<w;_++)(d[_].fn!==f||y&&!d[_].once||p&&d[_].context!==p)&&u.push(d[_]);u.length?this._events[m]=u.length===1?u[0]:u:i(this,m)}return this},a.prototype.removeAllListeners=function(l){var f;return l?(f=n?n+l:l,this._events[f]&&i(this,f)):(this._events=new r,this._eventsCount=0),this},a.prototype.off=a.prototype.removeListener,a.prototype.addListener=a.prototype.on,a.prefixed=n,a.EventEmitter=a,t.exports=a})(P);class W{constructor(e,n,r){this.type=null,this.target=null,this.source=null,this.payload=null,this.timeStamp=performance.now(),this.stopped=!1,this.source=e,this.type=n,this.payload=r}stop(){this.stopped=!0}}const Pe=Object.prototype.hasOwnProperty,se=Object.defineProperty;function S(t,e,n){se(t,e,{value:n,configurable:!1,enumerable:!1,writable:!1})}function Ee(t,e,n){se(t,e,{value:n,configurable:!1,enumerable:!1,writable:!0})}function it(...t){return t.reduce((e,n)=>n(e),this.b)}const _e={b:null,with:it};function oe(t){return _e.b=t,_e}function ie(...t){return e=>{for(const n of t)Pe.call(n,"prototype")?we(e,n,!0):we(e,{name:"FakeClass",prototype:n},!0)}}function z(t,e){return n=>{if(typeof t=="object"){at(n,t);return}S(n.prototype,e,n.prototype[t])}}function $e(t,e){return n=>{const r=t.prototype,s=n.prototype;for(const[o,i]of Object.entries(e)){const a=r[o];!a||S(s,i,a)}}}function at(t,e){const n=t.prototype;for(const[r,s]of Object.entries(e)){const o=n[r];!o||S(n,s,o)}}function we(t,e,n=!1){const r=t.prototype,s=e.prototype;for(const o of Object.getOwnPropertyNames(s))if(o!=="constructor"&&!(n&&typeof s[o]!="function")){if(Pe.call(r,o))return;se(r,o,{value:s[o]})}}var lt=Object.defineProperty,ct=Object.getOwnPropertyDescriptor,ut=(t,e,n,r)=>{for(var s=r>1?void 0:r?ct(e,n):e,o=t.length-1,i;o>=0;o--)(i=t[o])&&(s=(r?i(e,n,s):i(s))||s);return r&&s&<(e,n,s),s};let G=class{fire(t,e){if(this.noEmit){this.noEmit=!1;return}if(D){M={target:this,event:t};return}const n=e instanceof W?e:new W(this,t,e),r=P.exports.EventEmitter.prototype.emit.call(this,t,n);return!n.stopped&&this.$$parent?this.$$parent.fire(t,n):queueMicrotask(ft),r}emit(...t){}setEventChild(t,e=!1){return t.$$parent=e?null:this,this}setEventParent(t){return this.$$parent=t,this}fire$n(t,e){const n=t.split(/[\s,]/g).filter(Boolean);if(n.length!==0)for(const r of n)this.fire(r,e)}listen$n(t,e){const n=t.split(/[\s,]/g).filter(Boolean);if(n.length!==0)for(const r of n)P.exports.EventEmitter.prototype.on.call(this,r,e)}unlisten$n(t,e){const n=t.split(/[\s,]/g).filter(Boolean);if(n.length!==0)for(const r of n)P.exports.EventEmitter.prototype.off.call(this,r,e)}};G=ut([$e(P.exports.EventEmitter,{on:"listen",once:"listen$1",off:"unlisten"})],G);let D=!1,M=null;const ft=()=>{},ht=(t,e)=>{D=!0;const n=t();return n instanceof Promise?n.then(()=>{D=!1,M==null||M.target.fire(e||M.event)}):(D=!1,M==null||M.target.fire(e||M.event),n)};var pt=Object.defineProperty,dt=Object.getOwnPropertyDescriptor,mt=(t,e,n,r)=>{for(var s=r>1?void 0:r?dt(e,n):e,o=t.length-1,i;o>=0;o--)(i=t[o])&&(s=(r?i(e,n,s):i(s))||s);return r&&s&&pt(e,n,s),s};exports.Core=class extends P.exports.EventEmitter{assign(t,e){if(!!t)if(typeof t=="string"){if(e===void 0)return;this[t]=e}else for(const n in t)this[n]=t[n]}};exports.Core=mt([ie(G)],exports.Core);class ae extends exports.Core{constructor(e){super(),this.items=new Set,this.index=new Map,this.size=0,this.isBatching=!1,e&&(this.noEmit=!0,this.addArr(e))}*[Symbol.iterator](){for(const e of this.items)yield e}add(e){this._add(e),!this.isBatching&&(this.fire("add",{item:e}),this.fire("size"))}_add(e){this.items.add(e),this.index.set(e[this.itemKey],e),this.onItemAdd&&this.onItemAdd(e),this.size+=1}addRange(...e){this.addArr(e)}addArr(e){this.isBatching=!0;for(const n of e)this.add(n);this.isBatching=!1,this.fire("add.r",{items:e}),this.fire("size")}remove(e){if(!e){this.clear();return}!this.items.has(e)||(this._remove(e),!this.isBatching&&(this.fire("remove",{item:e}),this.fire("size")))}_remove(e){this.items.delete(e),this.index.delete(e[this.itemKey]),this.onItemRemove&&this.onItemRemove(e),this.size-=1}removeById(e){const n=this.index.get(e);if(n)this.remove(n);else for(const r of this.items)r[this.itemKey]===e&&this.remove(r)}removeRange(...e){this.removeArr(e)}removeArr(e){this.isBatching=!0;for(const n of e)this.remove(n);this.isBatching=!1,this.fire("remove.r",{items:e}),this.fire("size")}clear(){this._clear(),this.fire("clear"),this.fire("size")}_clear(){this.items.clear(),this.index.clear(),this.onClear&&this.onClear(),this.size=0}update(e){throw new Error("Method not implemented.")}updateRange(...e){throw new Error("Method not implemented.")}has(e){if(typeof e=="string"){const n=this.index.get(e);return n?this.items.has(n):!1}return this.items.has(e)}find(e){const n=this.index.get(e);if(n)return n;for(const r of this.items)if(r[this.itemKey]===e)return r;return null}query(e){const n=[];for(const r of this.items)e(r)&&n.push(r);return n}map(e){const n=[];for(const r of this.items)n.push(e(r));return n}filter(e){const n=[];for(const r of this.items)(!e||e(r))&&n.push(r);return n}}class vt{constructor(){this._snapshot=null}getSnapshot(){return this._snapshot}snapshot(){!this.toSnapshot||(this._snapshot=this.toSnapshot())}}var gt=Object.defineProperty,yt=Object.getOwnPropertyDescriptor,_t=(t,e,n,r)=>{for(var s=r>1?void 0:r?yt(e,n):e,o=t.length-1,i;o>=0;o--)(i=t[o])&&(s=(r?i(e,n,s):i(s))||s);return r&&s&>(e,n,s),s};let $=class extends exports.Core{constructor(){super(...arguments),this.id=`model${wt++}`,this.$$views=[],this.$$parent=null}remove(){var t;(t=this.$$parent)==null||t.remove(this)}};$=_t([ie(vt)],$);let wt=1992;const{random:Ie}=Math,bt=(t=0,e=1)=>t+Ie()*(e-t),St=()=>"#"+Ie().toString(16).substring(2,8),k=t=>t&&t[0].toUpperCase()+t.substring(1),V=new Set,L=new Map;let K=!1,J=!1;const T=t=>{if(!J){if(L.has(t.key)){const e=L.get(t.key);Object.assign(e,t);return}else V.add(t),L.set(t.key,t);K||(queueMicrotask(Mt),K=!0)}},Mt=()=>{J=!0;for(const t of V){const{context:e,run:n,args:r}=t;typeof n=="function"?n.apply(e,r):e[n].apply(e,r)}V.clear(),L.clear(),J=!1,K=!1},je=(t,e,...n)=>{if(!Object.hasOwn(t.__proto__,e))return;const r=t[e];typeof r=="function"&&r.call(t,...n)},Ae=(t,e)=>{const n=document.createElement("canvas"),r=t.naturalWidth,s=t.naturalHeight,o=r*e,i=s*e;n.width=r,n.height=s,n.width=o*devicePixelRatio,n.height=i*devicePixelRatio,n.style.width=o+"px",n.style.height=i+"px";const a=n.getContext("2d");return a.scale(devicePixelRatio,devicePixelRatio),a.drawImage(t,0,0,r,s,0,0,o,i),n},Re=t=>{const e={};for(const n of t)e[n[0]]=n[1];return e},De=t=>{const e=Object.getOwnPropertySymbols(t),n=Object.getOwnPropertyNames(t),r=[];for(const s of[...e,...n])r.push([s,t[s]]);return r},be={duration:1e3,auto:!0,delay:3e3},Ct=(t,e=be)=>{const n={...be,...e};let r=0,s=performance.now(),o=10;const i=()=>{switch(o){case 40:{o=50;return}case 20:{o=30;break}}setTimeout(i,n.duration);const l=performance.now();t(l-s,r++)===1&&a(),s=l},a=()=>{o===30&&(o=40)},c=()=>{o===20||o===40||(o=20,n.delay===0?i():setTimeout(i,n.delay))};return n.auto&&c(),{stop:a,start:c}},Le=t=>typeof t!="function"||t.prototype===void 0?!1:Object.getPrototypeOf(t.prototype)!==Object.prototype,xt=t=>typeof t!="function"||t.prototype===void 0?!1:Object.getPrototypeOf(t.prototype)===Object.prototype,Te=t=>typeof t!="function"?!1:t.prototype===void 0,Ot=Object.freeze(Object.defineProperty({__proto__:null,random2:bt,randomColor:St,toCapital:k,queueTask:T,tryInvokingOwn:je,createOffscreenCanvas:Ae,fromEntries:Re,toEntries:De,loop:Ct,isClass:Le,isFunction:xt,isArrowFunction:Te},Symbol.toStringTag,{value:"Module"}));class Pt extends ae{constructor(e,n){super(n),this.itemKey="id",this.itemC=null,this.itemC=e}*[Symbol.iterator](){for(const e of this.items)yield e}fromJSON(e){throw new Error("Method not implemented.")}toJSON(){throw new Error("Method not implemented.")}_add(e){this.setEventChild(e),super._add(e)}_remove(e){this.setEventChild(e,!0),super._remove(e)}_clear(){for(const e of this.items)this.setEventChild(e,!0);super._clear()}create(...e){let n;return Le(this.itemC)?n=new this.itemC(...e):n=this.itemC(...e),this.add(n),n}}const H=new Map;let Y=!1,X=!1;function He(t){if(X){console.warn("You can't call appendEffectCallReq while effects applying...");return}let e=null;typeof t=="string"?e={effect:t,payload:null,by:null,cause:null}:e=t,!e.cause&&this instanceof $&&(e.cause=this);const n=H.get(e.cause);n?n.push(e):H.set(e.cause,[e]),!Y&&(Y=!0,queueMicrotask(Et))}S($.prototype,"reqEffectCall",He);const Et=()=>{X=!0;for(const[t,e]of H){if(!t.$$views||t.$$views.length===0)continue;const n=t.getSnapshot();let r=null;for(;r=e.shift();){const{effect:s,payload:o,by:i}=r;for(const a of t.$$views)a[s]&&a[s](o,n,i)}t.fire("effect")}H.clear(),X=!1,Y=!1};function F(...t){return function(e,n,r){const s=r.value,o=t.map(i=>{if(!i)return null;if(typeof i=="string")return`when${k(i)}`;const a=k(i.self?n:i.name);return(i.prefix===void 0?!0:i.prefix)?`when${a}`:a}).filter(Boolean);r.value=function(...i){this.snapshot(),s.call(this,...i);for(const a of o)He.call(null,{effect:a,by:n,cause:this,payload:i})}}}var Be=(t=>(t[t.before=1]="before",t[t.after=2]="after",t[t.both=3]="both",t))(Be||{});function $t(t){return(e,n,r)=>{r.value=It(e,n,t.flag)}}function It(t,e,n){const r=t[e],s=`${e[0].toUpperCase()}${e.slice(1)}`,o=`before${s}`,i=`after${s}`,a=`on${s}`;return function(...c){let l=!0;1&n&&this[o]&&(l=this[o](),l===!1)||(this[a]&&this[a](),r.call(this,...c),2&n&&this[i]&&this[i]())}}class le{onHover(e,n){}onUnHover(e,n){}onClick(e,n){}onDblClick(e,n){}onMouseDown(e){}onMouseMove(e){}onMouseUp(e){}onNoopClick(e){}onPress(e,n){}onContextMenu(e,n){}}class ce{constructor(e,...n){this.name=e,this.behaviors=n}onLoad(){}onUnload(){}add(e,...n){throw new Error("not implemented")}remove(e,...n){throw new Error("not implemented")}load(){for(const e of this.behaviors)e.onLoad();this.onLoad&&this.onLoad()}unload(){for(const e of this.behaviors)e.onUnload();this.onUnload&&this.onUnload()}}const jt=Symbol.for("IHighlightManager"),At=Symbol.for("ISelectionManager"),Rt=Symbol.for("IStateActionManager"),Ne=Symbol.for("IRedoUndoManager"),Dt=Symbol.for("IImageManager"),Lt=Symbol.for("IAnimationManager"),Tt=Symbol.for("IPaneManager"),Ht=Symbol.for("IModeManager"),Bt=Symbol.for("IGlobalConstManager"),ze=Symbol.for("IInjector"),Nt=Symbol.for("ILogger"),zt=Symbol.for("IRendererManager"),Ft=Symbol.for("IWikMap"),I={IHighlightManager:jt,ISelectionManager:At,IStateActionManager:Rt,IRedoUndoManager:Ne,IImageManager:Dt,IAnimationManager:Lt,IPaneManager:Tt,IModeManager:Ht,IGlobalConstManager:Bt,IInjector:ze,ILogger:Nt,IRendererManager:zt,IWikMap:Ft};class ue{constructor(e){this.C=e,this.values=new Map,this.providers=new Map,this.loadProviders(),this.writeProp=S}loadProviders(){const e=B.get(this.C)||{},n=Object.getOwnPropertySymbols(e);for(const r of n)this.providers.set(r,e[r])}$new(e,...n){let r=this;B.has(e)&&(r=new ue(e),r.parent=this);const s=Se(e,r),o=new e(...s,...n);return S(o,"injector",r),r!==this&&S(r,"own",o),Q(o,r),o}get(e){let n=this.values.get(e);if(n)return n;if(this.providers.has(e)){const r=this.providers.get(e);return n=this.getService(r),this.values.set(e,n),n}return this.parent?this.parent.get(e):null}getService(e){if(e.useClass!==void 0){const n=e.useClass,r=Se(n,this),s=new n(...r);return S(s,"injector",this),Q(s,this),s}else return e.useFactory!==void 0?e.useFactory():e.useValue!==void 0?e.useValue:null}}class Fe{}const E=new Map,B=new Map,fe=new ue(Fe);function U(t,e){const n=t==="root"?Fe:t,r=B.get(n);let s={};const o=Object.getPrototypeOf(e);if(o===Object.prototype){const i=De(e);for(const[a,c]of i)Object.getPrototypeOf(c)===Object.prototype?s[a]=c:s[a]={useClass:c}}else o===Array.prototype&&(s=Re(Array.prototype.map.call(e,i=>[i.provide,i])));B.set(n,{...r,...s}),t==="root"&&fe.loadProviders()}function Se(t,e){const n=E.get(t);return n?n.paramsDeps.map(r=>r.child.token===ze?e:e.get(r.child.token)):[]}function Q(t,e){const n=Ut(t.constructor);for(const r of n){const s=e.get(r.child.token);S(t,r.symbol,s),Q(s,e)}}function Ut(t){var r;let e=t;const n=[];for(;e;){if(E.has(e)){const s=E.get(e).deps;n.push(...s)}e=(r=Object.getPrototypeOf(e.prototype))==null?void 0:r.constructor}return n}function R(t){if(!t)return null;if(E.has(t))return E.get(t);let e;return typeof t=="symbol"?e={token:t,_dev_label:`${t.description}`,deps:null,paramsDeps:null}:e={target:t,_dev_label:`${t.name}`,deps:[],paramsDeps:[]},E.set(t,e),e}function Me(t,e,n){return{parent:t,child:e,symbol:String(n)}}function C(t){return function(e){S(e,"__injectable__",!0),(t==null?void 0:t.providedIn)==="root"&&U("root",[{provide:t.provide,useClass:e}])}}function A(t,...e){return function(...n){n.length===1?T({key:"class inject"+Ce++,run:()=>{const r=R(n[0]);let s=0;for(const o of[t,...e]){const i=R(o);r.paramsDeps.push(Me(r,i,s)),s++}}}):T({key:"member inject"+Ce++,run:()=>{const[r,s,o]=n,i=R(r.constructor),a=R(t),c=Me(i,a,s);i.deps.push(c)}})}}function Ue(t){return function(e){U(e,t)}}let Ce=1992;var qt=Object.defineProperty,Wt=Object.getOwnPropertyDescriptor,Gt=(t,e,n,r)=>{for(var s=r>1?void 0:r?Wt(e,n):e,o=t.length-1,i;o>=0;o--)(i=t[o])&&(s=(r?i(e,n,s):i(s))||s);return r&&s&&qt(e,n,s),s};exports.ModeManager=class extends exports.Core{constructor(){super(...arguments),this.modes=new Map,this._mode=null}set mode(t){var n;if(t===this._mode||t===((n=this._mode)==null?void 0:n.name))return;const e=typeof t=="string"?this.modes.get(t):t;this._mode&&this._mode.unload(),e.load(),this._mode=e,this.fire("change",null),this.modes.has(e.name)||this.modes.set(e.name,e)}get mode(){return this._mode}apply(t,...e){if(!!this._mode)for(const n of this._mode.behaviors){const r=n[t];r!==le.prototype[t]&&r&&r.call(n,...e)}}create(t,...e){const n=new ce(t,...e);return this.modes.set(t,n),S(n,"modeMgr",this),n}add(...t){throw new Error("Method not implemented.")}remove(...t){throw new Error("Method not implemented.")}};exports.ModeManager=Gt([C()],exports.ModeManager);var kt=Object.defineProperty,Vt=Object.getOwnPropertyDescriptor,Kt=(t,e,n,r)=>{for(var s=r>1?void 0:r?Vt(e,n):e,o=t.length-1,i;o>=0;o--)(i=t[o])&&(s=(r?i(e,n,s):i(s))||s);return r&&s&&kt(e,n,s),s};let Z=class{constructor(){this.kubotMoveSpeed=1800,this.kubotRotateSpeed=90,this.robotAnimationRate=.1}getVal(t,e=null){return this[t]===void 0?e:this[t]}setVal(t,e){this[t]=e}};Z=Kt([C()],Z);var Jt=Object.defineProperty,Yt=Object.getOwnPropertyDescriptor,qe=(t,e,n,r)=>{for(var s=r>1?void 0:r?Yt(e,n):e,o=t.length-1,i;o>=0;o--)(i=t[o])&&(s=(r?i(e,n,s):i(s))||s);return r&&s&&Jt(e,n,s),s};exports.HighlightManager=class{constructor(){this.layers=new Set}highlight(...t){for(const e of t)e.onHighlight&&e.onUnHighlight&&(this.layers.add(e),this.interactiveStateActionManager.push(e,"Highlight"))}unHighlight(...t){for(const e of t)!this.layers.has(e)||(e.onHighlight&&e.onUnHighlight&&this.interactiveStateActionManager.pop(e,"Highlight"),this.layers.delete(e))}clear(){for(const t of this.layers)this.interactiveStateActionManager.pop(t,"Highlight");this.layers.clear()}};qe([A(I.IStateActionManager)],exports.HighlightManager.prototype,"interactiveStateActionManager",2);exports.HighlightManager=qe([C()],exports.HighlightManager);let Xt=1999;class he{constructor(){this.tag=Xt++,this.isRedo=0}}const xe=()=>null,Qt={Hover:"isHover",Highlight:"isHighlight",Select:"isSelected"};class We extends he{constructor(e,n,r){super(),this.context=e,this.payload=null,this.data=null,this.fieldIs=null,this.applied=!1,this.type=n,this.payload=r||null,this.doFn=e[`on${n}`]||xe,this.unDoFn=e[`onUn${n}`]||xe,this.fieldIs=Qt[n]}apply(){this.applied||(this.data=this.doFn.call(this.context,this.payload),this.context[this.fieldIs]=!0,this.applied=!0)}revert(){!this.applied||(this.unDoFn.call(this.context,this.data,this.payload),this.context[this.fieldIs]=!1,this.applied=!1)}}var Zt=Object.defineProperty,en=Object.getOwnPropertyDescriptor,tn=(t,e,n,r)=>{for(var s=r>1?void 0:r?en(e,n):e,o=t.length-1,i;o>=0;o--)(i=t[o])&&(s=(r?i(e,n,s):i(s))||s);return r&&s&&Zt(e,n,s),s};const nn=5;let ee=class{constructor(){this.currentContext=null,this.currType=null,this._postPop=()=>{this.currentContext=null,this.currType=null}}push(t,e,n){const r=new We(t,e,n);return t.uiStateChangeLogs||(t.uiStateChangeLogs=[]),t.uiStateChangeLogs.push(r),r.apply(),this}pop(t,e){this.currentContext=t,this.currType=e,queueMicrotask(this._postPop);const{currentContext:n,currType:r}=this;if(!n||!r)return;const s=n.uiStateChangeLogs;if(!s)return;const o=[];let i=s.pop(),a=0;for(;a++<nn&&i&&(i.revert(),i.type!==r);)o.unshift(i),i=s.pop();for(const c of o)c.apply();return s.push(...o),s.length===0&&(n.uiStateChangeLogs=null),this}delete(t){throw new Error("Method not implemented.")}};ee=tn([C({providedIn:"root",provide:I.IStateActionManager})],ee);var rn=Object.defineProperty,sn=Object.getOwnPropertyDescriptor,Ge=(t,e,n,r)=>{for(var s=r>1?void 0:r?sn(e,n):e,o=t.length-1,i;o>=0;o--)(i=t[o])&&(s=(r?i(e,n,s):i(s))||s);return r&&s&&rn(e,n,s),s};let N=class extends exports.Core{constructor(){super(...arguments),this.item=null,this.items=[]}getCurrent(){return this.item}getMany(){return this.items||[]}setItem(t){this.item=t,this.fire("item",{item:t})}setItems(t){this.items=t,this.fire("items",{items:t})}current(t,e){t!==this.item&&(this.item&&this.interactiveStateActionManager.pop(this.item,"Select"),this.interactiveStateActionManager.push(t,"Select",e),this.setItem(t))}many(t){const e=[];for(const n of t)e.push(n),this.interactiveStateActionManager.push(n,"Select");this.setItems(e)}append(t){this.items.indexOf(t)>-1||(this.interactiveStateActionManager.push(t,"Select"),this.setItems([...this.items,t]))}isSelectable(t){return!!t.onSelect&&!!t.onUnSelect}clearCurrent(){!this.item||(this.interactiveStateActionManager.pop(this.item,"Select"),this.setItem(null))}clearMany(){for(const t of this.items)this.interactiveStateActionManager.pop(t,"Select");this.setItems([])}clear(){this.clearCurrent(),this.clearMany()}};Ge([A(I.IStateActionManager)],N.prototype,"interactiveStateActionManager",2);N=Ge([C({providedIn:"root",provide:I.ISelectionManager})],N);var on=Object.defineProperty,an=Object.getOwnPropertyDescriptor,ln=(t,e,n,r)=>{for(var s=r>1?void 0:r?an(e,n):e,o=t.length-1,i;o>=0;o--)(i=t[o])&&(s=(r?i(e,n,s):i(s))||s);return r&&s&&on(e,n,s),s};let te=class{constructor(){this.undoLimit=20,this.redoLimit=20,this.actions=[],this.actions_=[]}last(t){let e=this.actions.length-1,n=this.actions[e];if(t===null)return e;for(;n&&n.tag!==t;)n=this.actions[--e];return e}push(t){return t.apply(),this.actions.push(t),this}delete(t){if(this.actions.length===0)return this;const e=this.last(t);if(e===-1)return this;const n=this.actions,r=n.length;let s=r-1,o=null;for(;s>=e;)o=n[s],o.revert(),s--;for(s++;s<r;)o=n[s],o.apply(),s++;return this.actions.splice(e,1),this}pop(){const t=this.actions.pop();return t?(t.revert(),this.actions_.push(t),this):this}redo(){const t=this.actions_.pop();return t?(Ee(t,"isRedo",t.isRedo+1),this.push(t),this):this}};te=ln([z("pop","undo"),C({providedIn:"root",provide:Ne})],te);class pe extends ${toSnapshot(){return null}fromJSON(e){return this}toJSON(){return{}}}function de(...t){if(t.length===3){Oe(t[0],t[1]);return}return(...e)=>{const[n,r]=e;Oe(n,r,t[0])}}function Oe(t,e,n){if(Object.hasOwn(t,e))return;const r=t.constructor.name;Object.defineProperty(t,e,{get:function(){return this[`#${e}`]||n},set:function(s){this[`#${e}`]=s,T({key:`${r}_prop_event_${e}`,run:"fire",context:this,args:[e]})}})}var cn=Object.defineProperty,un=Object.getOwnPropertyDescriptor,me=(t,e,n,r)=>{for(var s=r>1?void 0:r?un(e,n):e,o=t.length-1,i;o>=0;o--)(i=t[o])&&(s=(r?i(e,n,s):i(s))||s);return r&&s&&cn(e,n,s),s},ke=(t=>(t.translate="Translate",t.rotate="Rotate",t.state="State",t))(ke||{});class q extends pe{constructor(){super(...arguments),this.px=0,this.py=0,this.pz=0,this.theta=0,this.error=!1,this.path=null}setPosition(e,n){this.px+=e,this.py+=n}setTheta(e){this.theta+=e}}me([de("0")],q.prototype,"zone",2);me([F("Translate")],q.prototype,"setPosition",1);me([F("Rotate")],q.prototype,"setTheta",1);class fn extends pe{constructor(){super(...arguments),this.px=0,this.py=0,this.pz=0}}const hn={"item@click":"onClick","item@dblclick":"onDblClick","item@mouseover":"onHover","item@mouseout":"onUnHover","item@mousedown":"onPress","item@contextmenu":"onContextMenu",mousedown:"onMouseDown",mousemove:"onMouseMove",mouseup:"onMouseUp",click:"onNoopClick"},pn=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),Ve={effect:F,mix:oe,mixin:ie,alias:z,link:$e,prop:de,inject:A,injectable:C,provides:Ue,hook:$t},Ke={writeProp:Ee,writeReadonlyProp:S},Je={event2behavior:hn},dn=Object.freeze(Object.defineProperty({__proto__:null,deco$$:Ve,util$$:Ke,const$$:Je,rootInjector:fe,interfaces:I,inject:A,injectable:C,alias:z,mix:oe,prop:de,provides:Ue,effect:F,configProviders:U,get Core(){return exports.Core},CoreList:ae,get Base(){return $},List:Pt,WikEvent:W,HookFlag:Be,Behavior:le,Mode:ce,get ModeManager(){return exports.ModeManager},get GlobalConstManager(){return Z},get HighlightManager(){return exports.HighlightManager},InteractiveStateAction:We,get InteractiveStateActionManager(){return ee},get SelectionManager(){return N},StateActionBase:he,get StateActionManager(){return te},WikModel:pe,Robot:q,RobotEffect:ke,Point:fn,__batched_fires__:ht,meta:pn},Symbol.toStringTag,{value:"Module"}));class mn{cancelClickEventFire(){this.isClickEventFireCancelled=!0,requestAnimationFrame(()=>{this.isClickEventFireCancelled=!1})}}let Ye=2021;const vn=()=>++Ye,ve=()=>{const[t,e]=v.useReducer(vn,Ye);return e},ge=(t,e)=>{const n=ve();v.useEffect(()=>{const r=e.split(/[\s,]/g).filter(Boolean);for(const s of r)t.on(s,n);return()=>{for(const s of r)t.off(s,n)}},[t,e])},Xe=(t,e)=>{const n=ve();v.useEffect(()=>(t.on(e,n),()=>{t.off(e,n)}),[t,e])},j=t=>{const[e,n]=v.useState(0),[r,s]=v.useState(null);switch(v.useEffect(()=>{n(1),fetch(t.url).then(o=>o.json()).then(o=>{n(2),s(o)},()=>{n(3)})},[t.url]),v.useEffect(()=>{console.log(t.children.props)},[r,t.children]),e){case 0:return React.createElement("div",null,"ready to load!");case 1:return t.fallback||React.createElement(j.Fallback,null);case 2:return t.children;case 3:return t.wrong||React.createElement(j.Wrong,null)}};j.Fallback=()=>React.createElement("div",null,"loading...");j.Wrong=()=>React.createElement("div",null,"something wrong!");var Qe={exports:{}};(function(t,e){(function(n,r){t.exports=r()})(ot,function(){var n=function(){function r(m){return i.appendChild(m.dom),m}function s(m){for(var d=0;d<i.children.length;d++)i.children[d].style.display=d===m?"block":"none";o=m}var o=0,i=document.createElement("div");i.style.cssText="position:fixed;top:0;left:0;cursor:pointer;opacity:0.9;z-index:10000",i.addEventListener("click",function(m){m.preventDefault(),s(++o%i.children.length)},!1);var a=(performance||Date).now(),c=a,l=0,f=r(new n.Panel("FPS","#0ff","#002")),p=r(new n.Panel("MS","#0f0","#020"));if(self.performance&&self.performance.memory)var y=r(new n.Panel("MB","#f08","#201"));return s(0),{REVISION:16,dom:i,addPanel:r,showPanel:s,begin:function(){a=(performance||Date).now()},end:function(){l++;var m=(performance||Date).now();if(p.update(m-a,200),m>c+1e3&&(f.update(1e3*l/(m-c),100),c=m,l=0,y)){var d=performance.memory;y.update(d.usedJSHeapSize/1048576,d.jsHeapSizeLimit/1048576)}return m},update:function(){a=this.end()},domElement:i,setMode:s}};return n.Panel=function(r,s,o){var i=1/0,a=0,c=Math.round,l=c(window.devicePixelRatio||1),f=80*l,p=48*l,y=3*l,m=2*l,d=3*l,_=15*l,u=74*l,w=30*l,b=document.createElement("canvas");b.width=f,b.height=p,b.style.cssText="width:80px;height:48px";var h=b.getContext("2d");return h.font="bold "+9*l+"px Helvetica,Arial,sans-serif",h.textBaseline="top",h.fillStyle=o,h.fillRect(0,0,f,p),h.fillStyle=s,h.fillText(r,y,m),h.fillRect(d,_,u,w),h.fillStyle=o,h.globalAlpha=.9,h.fillRect(d,_,u,w),{dom:b,update:function(O,x){i=Math.min(i,O),a=Math.max(a,O),h.fillStyle=o,h.globalAlpha=1,h.fillRect(0,0,f,_),h.fillStyle=s,h.fillText(c(O)+" "+r+" ("+c(i)+"-"+c(a)+")",y,m),h.drawImage(b,d+l,_,u-l,w,d,_,u-l,w),h.fillRect(d+u-l,_,l,w),h.fillStyle=o,h.globalAlpha=.9,h.fillRect(d+u-l,_,l,c((1-O/x)*w))}}},n})})(Qe);const gn=Qe.exports,yn=t=>(v.useEffect(()=>{if(t.off)return;const e=new gn;e.showPanel(0),document.body.appendChild(e.dom);let n=!1;function r(){n||(e.begin(),e.end(),requestAnimationFrame(r))}return requestAnimationFrame(r),()=>{n=!0,document.body.removeChild(e.dom)}},[t.off]),null),Ze=v.memo(t=>{const{model:e}=t;Xe(e,"position angle");const{position:n,angle:r}=e;return React.createElement("div",null,React.createElement("label",null,"X,Y:"),Math.round(n.lng),", ",Math.round(n.lat),React.createElement("br",null),React.createElement("label",null,"Deg: "),Math.round(r))}),ne=new Set,re=new Set,_n=()=>{const[t,e]=v.useState(null);return v.useEffect(()=>(ne.add(e),()=>{ne.delete(e)}),[]),t},wn=()=>{const[t,e]=v.useState([]);return v.useEffect(()=>(re.add(e),()=>{re.delete(e)}),[]),t},bn=v.memo(t=>{const{warehouse:e}=t,n=e.selectionManager;return v.useEffect(()=>{const r=o=>{const i=o.payload.item;for(const a of ne)a(i)},s=o=>{const i=o.payload.items;for(const a of re)a(i)};return n.on("item",r),n.on("items",s),()=>{n.off("item",r),n.off("items",s)}},[e]),null}),et=v.memo(t=>{const e=v.useMemo(()=>({width:t.w}),[t.w]),n=_n(),r=n?g.default.Children.map(t.children,s=>!s.props.C||n instanceof s.props.C?g.default.createElement(s.type,{...s.props,key:s.key,position:g.default.createElement(Ze,{model:n}),model:n}):null).filter(Boolean):g.default.createElement("div",null,"no item.");return g.default.createElement("div",{style:e,className:"wik-select"},r)}),tt=v.memo(t=>{const e=v.useMemo(()=>({width:t.w}),[t.w]),n=wn(),r=g.default.Children.map(t.children,s=>g.default.createElement(s.type,{...s.props,key:s.key,groups:null,model:n})).filter(Boolean);return g.default.createElement("div",{style:e,className:"wik-multi-select"},r)}),Sn=v.memo(t=>{var a;const e=v.useMemo(()=>({}),[]),{warehouse:n}=t,{modeManager:r}=n;ge(r,"change");const s=c=>{const l=c.target.getAttribute("itemid");o!==l&&(r.mode=l)},o=(a=r.mode)==null?void 0:a.name,i=[...r.modes];return g.default.createElement("div",{style:e,className:"wik-modes"},i.map(([c])=>{const l=c===o;return g.default.createElement("div",{key:c,className:`wik-mode wik-mode--${l?"active":"normal"}`},g.default.createElement("a",{itemID:c,onClick:s},c))}))}),nt=g.default.createContext({injector:null}),Mn=t=>{const[e]=v.useState(()=>({injector:fe})),[n,r]=v.useState(t.defaultKeys),s=g.default.Children.map(t.children,o=>o.key);return g.default.createElement(nt.Provider,{value:e},g.default.createElement("div",{className:"wik wik-world"},t.switch&&g.default.createElement(Cn,{value:n,items:s,onSwitch:r}),g.default.Children.map(t.children,o=>o.type===et||o.type===tt?o:n.includes(o.key)?g.default.createElement("div",{key:o.key,className:"wik-world-item"},o):null)))},Cn=t=>{const{items:e,onSwitch:n,value:r}=t;return g.default.createElement("div",{className:"wik-world-switch"},e.map(s=>{const o=r.indexOf(s),i=o===-1;return g.default.createElement("button",{className:`wik-world-switch-btn${i?" disabled":""}`,key:s,onClick:()=>{i?n([...r,s]):(r.splice(o,1),n([...r]))}},s)}))},rt=Object.freeze({warehouse:null,mvMappings:null}),ye=g.default.createContext(rt),xn=(t,e)=>typeof e=="function"?Te(e)?e(t):t.$new(e):e,On={width:"100%",height:"100%"},Pn=v.memo(t=>{const{parent:e,model:n,type:r}=t,{warehouse:s,mvMappings:o}=v.useContext(ye);return v.useEffect(()=>{const i=o[r],a=i?i(n,s):e.create(n),c=n.$$views.push(a)-1;return a.model=n,s.add(r,a),a.whenInit&&a.whenInit(),()=>{n.$$views.splice(c,1),a.model=null,a.whenUnInit&&a.whenUnInit(),s.remove(r,a)}},[]),null},()=>!0),En=t=>{const{model:e,reactOn:n,type:r,filter:s}=t,{warehouse:o}=v.useContext(ye);ge(e,`size ${n}`);const i=v.useMemo(()=>{if(!s)return null;if(typeof s=="string"){const[c,l]=s.split(/=/);return f=>String(f[c])===l}return s},[s]);return v.useEffect(()=>()=>{o.removeList(r)},[]),{items:i?e.filter(i):e}};exports.Behavior=le;exports.ClickCancelMix=mn;exports.CoreList=ae;exports.FPS=yn;exports.Fetch=j;exports.LayerPosition=Ze;exports.Mode=ce;exports.Modes=Sn;exports.MultipleSelectShell=tt;exports.SelectShell=et;exports.SelectionContext=bn;exports.StateActionBase=he;exports.View=Pn;exports.World=Mn;exports.__context_value__=rt;exports.__warehouse_context__=ye;exports.__world_context__=nt;exports.alias=z;exports.configProviders=U;exports.const$$=Je;exports.createOffscreenCanvas=Ae;exports.createWarehouse=xn;exports.deco$$=Ve;exports.index=dn;exports.index$1=Ot;exports.inject=A;exports.injectable=C;exports.interfaces=I;exports.mix=oe;exports.tryInvokingOwn=je;exports.useEvented=ge;exports.useGlobalTick=ve;exports.useLeafletEvented=Xe;exports.useViewSet=En;exports.util$$=Ke;exports.whStyle=On;
//# sourceMappingURL=_shared.js.map