glass-easel-miniprogram-adapter 0.5.1 → 0.5.2
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/dist/glass_easel_miniprogram_adapter.d.ts +31 -3
- package/dist/glass_easel_miniprogram_adapter.es.js +1 -1
- package/dist/glass_easel_miniprogram_adapter.es.js.map +1 -1
- package/dist/glass_easel_miniprogram_adapter.js +1 -1
- package/dist/glass_easel_miniprogram_adapter.js.map +1 -1
- package/package.json +4 -4
- package/src/backend.ts +9 -1
- package/src/builder/index.ts +1 -0
- package/src/index.ts +2 -0
- package/src/space.ts +0 -1
|
@@ -393,6 +393,22 @@ declare class TraitBehavior<TIn extends {
|
|
|
393
393
|
constructor(inner: glassEasel.TraitBehavior<TIn, TOut>);
|
|
394
394
|
}
|
|
395
395
|
|
|
396
|
+
type behavior_Behavior<TData extends DataList$5, TProperty extends PropertyList$5, TMethod extends MethodList$4, TChainingFilter extends ChainingFilterType$4, TComponentExport = never> = Behavior<TData, TProperty, TMethod, TChainingFilter, TComponentExport>;
|
|
397
|
+
declare const behavior_Behavior: typeof Behavior;
|
|
398
|
+
type behavior_ComponentType<TData extends DataList$5, TProperty extends PropertyList$5, TMethod extends MethodList$4, TComponentExport> = ComponentType<TData, TProperty, TMethod, TComponentExport>;
|
|
399
|
+
declare const behavior_ComponentType: typeof ComponentType;
|
|
400
|
+
type behavior_DefinitionFilter = DefinitionFilter;
|
|
401
|
+
type behavior_GeneralBehavior = GeneralBehavior;
|
|
402
|
+
type behavior_TraitBehavior<TIn extends {
|
|
403
|
+
[key: string]: any;
|
|
404
|
+
}, TOut extends {
|
|
405
|
+
[key: string]: any;
|
|
406
|
+
} = TIn> = TraitBehavior<TIn, TOut>;
|
|
407
|
+
declare const behavior_TraitBehavior: typeof TraitBehavior;
|
|
408
|
+
declare namespace behavior {
|
|
409
|
+
export { behavior_Behavior as Behavior, behavior_ComponentType as ComponentType, type behavior_DefinitionFilter as DefinitionFilter, type behavior_GeneralBehavior as GeneralBehavior, behavior_TraitBehavior as TraitBehavior };
|
|
410
|
+
}
|
|
411
|
+
|
|
396
412
|
type ResolveBehaviorBuilder<B, TChainingFilter extends ChainingFilterType$3> = typeUtils.IsNever<TChainingFilter> extends false ? TChainingFilter extends ChainingFilterType$3 ? Omit<B, TChainingFilter['remove']> & TChainingFilter['add'] : B : B;
|
|
397
413
|
type DataList$4 = typeUtils.DataList;
|
|
398
414
|
type PropertyList$4 = typeUtils.PropertyList;
|
|
@@ -627,6 +643,15 @@ declare class ComponentBuilder<TPrevData extends DataList$1 = Empty$1, TData ext
|
|
|
627
643
|
register(): ComponentType<TData, TProperty, TMethod, TComponentExport>;
|
|
628
644
|
}
|
|
629
645
|
|
|
646
|
+
type index_BehaviorBuilder<TPrevData extends DataList$2 = Empty$2, TData extends DataList$2 = Empty$2, TProperty extends PropertyList$2 = Empty$2, TMethod extends MethodList$2 = Empty$2, TChainingFilter extends ChainingFilterType$1 = never, TPendingChainingFilter extends ChainingFilterType$1 = never, TComponentExport = never> = BehaviorBuilder<TPrevData, TData, TProperty, TMethod, TChainingFilter, TPendingChainingFilter, TComponentExport>;
|
|
647
|
+
declare const index_BehaviorBuilder: typeof BehaviorBuilder;
|
|
648
|
+
type index_BuilderContext<TPrevData extends DataList$4, TProperty extends PropertyList$4, TMethodCaller> = BuilderContext<TPrevData, TProperty, TMethodCaller>;
|
|
649
|
+
type index_ComponentBuilder<TPrevData extends DataList$1 = Empty$1, TData extends DataList$1 = Empty$1, TProperty extends PropertyList$1 = Empty$1, TMethod extends MethodList$1 = Empty$1, TChainingFilter extends ChainingFilterType = never, TPendingChainingFilter extends ChainingFilterType = never, TComponentExport = never> = ComponentBuilder<TPrevData, TData, TProperty, TMethod, TChainingFilter, TPendingChainingFilter, TComponentExport>;
|
|
650
|
+
declare const index_ComponentBuilder: typeof ComponentBuilder;
|
|
651
|
+
declare namespace index {
|
|
652
|
+
export { index_BehaviorBuilder as BehaviorBuilder, type index_BuilderContext as BuilderContext, index_ComponentBuilder as ComponentBuilder };
|
|
653
|
+
}
|
|
654
|
+
|
|
630
655
|
interface PageConstructor {
|
|
631
656
|
<TData extends DataList, TNewExtraFields extends {
|
|
632
657
|
[k: PropertyKey]: any;
|
|
@@ -756,7 +781,6 @@ declare class CodeSpace {
|
|
|
756
781
|
* Build a behavior outside of a definition environment
|
|
757
782
|
*
|
|
758
783
|
* The method do not need a definition environment, so the global object pollution is avoided.
|
|
759
|
-
* `path` should be the component path (without ".js" extension).
|
|
760
784
|
*/
|
|
761
785
|
behavior(): BehaviorBuilder;
|
|
762
786
|
/**
|
|
@@ -800,7 +824,11 @@ declare class AssociatedBackend {
|
|
|
800
824
|
declare class Root {
|
|
801
825
|
private _$comp;
|
|
802
826
|
/**
|
|
803
|
-
* Get the
|
|
827
|
+
* Get the root component
|
|
828
|
+
*/
|
|
829
|
+
get(): ComponentCaller<any, any, any, any>;
|
|
830
|
+
/**
|
|
831
|
+
* Get the underlying component of the root component
|
|
804
832
|
*/
|
|
805
833
|
getComponent(): glassEasel.GeneralComponent;
|
|
806
834
|
/**
|
|
@@ -869,4 +897,4 @@ declare class MiniProgramEnv {
|
|
|
869
897
|
getCodeSpace(id: string): CodeSpace | undefined;
|
|
870
898
|
}
|
|
871
899
|
|
|
872
|
-
export { AssociatedBackend, type BehaviorConstructor, CodeSpace, type ComponentConstructor, type ComponentEnv, MiniProgramEnv, type PageConstructor, Root, component, types };
|
|
900
|
+
export { AssociatedBackend, type BehaviorConstructor, CodeSpace, type ComponentConstructor, type ComponentEnv, MiniProgramEnv, type PageConstructor, Root, behavior, index as builder, component, types };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import*as e from"glass-easel";import{typeUtils as t}from"glass-easel";export{e as glassEasel};class i{constructor(e,t){this._$env=e,this._$=t}registerStyleSheetContent(e,t){this._$.registerStyleSheetContent(e,t)}createRoot(e,t,i,s){if(this._$env!==t._$env)throw new Error("The code space is not in the same environment as the backend");return new o(this._$,e,t,i,s)}}class o{constructor(t,i,o,s,r){if(this._$comp=o.getComponentSpace().createComponentByUrl(i,s,r||null,t),o.isMainSpace()){const e=o.getStyleSheet("app");if(void 0!==e){const i=o._$styleIsolationMap[this._$comp.is];"isolated"!==i&&"apply-shared"!==i&&"shared"!==i||t.appendStyleSheetPath(e,o._$sharedStyleScope)}}const n=i=>{const{styleScope:s}=i.getComponentOptions(),r=o.getStyleSheet(i.is);void 0!==r&&t.appendStyleSheetPath(r,null!=s?s:e.StyleScopeManager.globalScope())};this._$comp.getRootBehavior().getComponentDependencies().forEach(n),n(this._$comp.getComponentDefinition())}getComponent(){return this._$comp}attach(t,i){e.Element.replaceDocumentElement(this._$comp,t,i)}release(){e.Element.pretendDetached(this._$comp),this._$comp.destroyBackendElement()}}const s=(e,t)=>{let i=!1,o=e.length;const s=new Array(o);e.forEach(((e,r)=>{e((e=>{s[r]=e,o-=1,0===o&&i&&t(s)}))})),i=!0,0===o&&setTimeout((()=>{t(s)}),0)};class r{constructor(e,t,i,o){this._$sq=e,this._$comp=t,this._$sel=i,this._$single=o}fields(e,t=(()=>{})){return this._$sq._$push(this._$sel,this._$comp,this._$single,e,t),this._$sq}boundingClientRect(e=(()=>{})){return this._$sq._$push(this._$sel,this._$comp,this._$single,{id:!0,dataset:!0,rect:!0,size:!0},e),this._$sq}scrollOffset(e=(()=>{})){return this._$sq._$push(this._$sel,this._$comp,this._$single,{id:!0,dataset:!0,scrollOffset:!0},e),this._$sq}}class n{constructor(e){this._$comp=e,this._$queue=[]}in(e){return this._$comp=e,this}select(e){return new r(this,this._$comp,e,!0)}selectAll(e){return new r(this,this._$comp,e,!1)}selectViewport(){return new r(this,this._$comp,null,!0)}_$push(e,t,i,o,s){this._$queue.push({component:t,selector:e,single:i,fields:o,cb:s})}exec(t=(()=>{})){const i=this._$queue;s(i.map((t=>i=>{const{component:o,selector:r,single:n,fields:a,cb:l}=t;if(null===r){const e={};s([t=>{const i=o._$.getBackendContext(),s=i?i.getWindowWidth():0,r=i?i.getWindowHeight():0;if(a.id&&(e.id=""),a.dataset&&(e.dataset={}),a.mark&&(e.mark={}),a.rect&&(e.left=0,e.top=0,e.right=s,e.bottom=r),a.size&&(e.width=s,e.height=r),a.scrollOffset){let i=o._$.general();for(;i.ownerShadowRoot;)i=i.ownerShadowRoot.getHostNode();i.getBoundingClientRect((({left:i,top:o,width:s,height:r})=>{e.scrollLeft=i,e.scrollTop=o,e.scrollWidth=s,e.scrollHeight=r,t(void 0)}))}else t(void 0)}],(()=>{l(e),i(e)}))}else{const t=(t,i)=>{const o={};a.id&&(o.id=t.id),a.dataset&&(o.dataset=t.dataset),a.mark&&(o.mark=t.collectMarks()),s([e=>{a.rect||a.size?t.getBoundingClientRect((t=>{a.rect&&(o.left=t.left,o.top=t.top,o.right=t.left+t.width,o.bottom=t.top+t.height),a.size&&(o.width=t.width,o.height=t.height),e(void 0)})):e(void 0)},e=>{a.scrollOffset?t.getScrollOffset((t=>{o.scrollLeft=t.scrollLeft,o.scrollTop=t.scrollTop,o.scrollWidth=t.scrollWidth,o.scrollHeight=t.scrollHeight,e(void 0)})):e(void 0)}],(()=>{a.properties&&e.Component.isComponent(t)&&a.properties.forEach((i=>{if(e.Component.hasProperty(t,i)){const s=t.getComponentOptions().propertyPassingDeepCopy,r=t.data[i];s===e.DeepCopyKind.None?o[i]=r:s===e.DeepCopyKind.Simple?o[i]=e.dataUtils.simpleDeepCopy(r):s===e.DeepCopyKind.SimpleWithRecursion&&(o[i]=e.dataUtils.deepCopy(r,!0))}})),i(o)}))};if(n){const e=o._$.getShadowRoot().querySelector(r);e?t(e,(e=>{l(e),i(e)})):setTimeout((()=>{l(null),i(null)}),0)}else{const e=o._$.getShadowRoot().querySelectorAll(r);s(e.map((e=>i=>{t(e,(e=>{i(e)}))})),(e=>{l(e),i(e)}))}}})),t)}}const a={left:0,top:0,right:0,bottom:0};class l{constructor(e,t,i,o){this._$selector=null,this._$margins=null,this._$observers=[],this._$comp=e,this._$thresholds=t,this._$initialRatio=i,this._$observeAll=o}relativeTo(e,t){return this._$selector=e,this._$margins=null!=t?t:a,this}relativeToViewport(e){return this._$selector=null,this._$margins=null!=e?e:a,this}observe(e,t){const i=this._$comp._$.getShadowRoot();let o,s;if(i)if(this._$observeAll)o=i.querySelectorAll(e);else{const t=i.querySelector(e);o=null===t?[]:[t]}else o=[];if(null!==this._$selector&&i){const e=i.querySelector(this._$selector);null===e||(s=e)}else s=null;if(!this._$margins)throw new Error("`relativeTo` or `relativeToViewport` should be called before observe");const{left:r,top:n,right:a,bottom:l}=this._$margins,h=`${n}px ${a}px ${l}px ${r}px`;o.forEach((e=>{let i=this._$initialRatio;const o=e.createIntersectionObserver(s,h,this._$thresholds,(e=>{if(null!==i){let t=0;for(;t<this._$thresholds.length;t+=1){const o=this._$thresholds[t];if(i!==e.intersectionRatio&&(i-o)*(e.intersectionRatio-o)<=0)break}if(i=null,t<this._$thresholds.length)return}t(e)}));null===o||this._$observers.push(o)}))}disconnect(){const e=this._$observers;this._$observers=[],e.forEach((e=>e.disconnect()))}}class h{constructor(e){this._$observer=null,this._$comp=e}observe(e,t){var i,o;this._$observer&&this._$observer.disconnect(),this._$observer=(null===(o=null===(i=this._$comp._$.getBackendContext())||void 0===i?void 0:i.createMediaQueryObserver)||void 0===o?void 0:o.call(i,e,t))||null}disconnect(){this._$observer&&this._$observer.disconnect(),this._$observer=null}}const p=(e,t,i)=>{var o;const s=t.asInstanceOf(i._$);if(null===s)return;const r=s.getRootBehavior().ownerSpace,n=s.getMethodCaller(),a=n instanceof d?n:null,l=e._$.getRootBehavior().ownerSpace,h=r!==l?null:a,p=null===(o=null==a?void 0:a._$export)||void 0===o?void 0:o.call(a,r!==l?null:e);return void 0===p?h:p},c=(t,i)=>{var o;if(e.Component.isComponent(i)){const e=i.getRootBehavior().ownerSpace,s=i.getMethodCaller(),r=s instanceof d?s:null,n=t._$.getRootBehavior().ownerSpace,a=e!==n?null:r,l=null===(o=null==r?void 0:r._$export)||void 0===o?void 0:o.call(r,e!==n?null:t);return void 0===l?a:l}};class d{get is(){return this._$.is}set is(e){Object.defineProperty(this,"is",{value:e,writable:!0,enumerable:!0,configurable:!0})}get id(){return this._$.id}set id(e){Object.defineProperty(this,"id",{value:e,writable:!0,enumerable:!0,configurable:!0})}get dataset(){return this._$.dataset}set dataset(e){Object.defineProperty(this,"dataset",{value:e,writable:!0,enumerable:!0,configurable:!0})}get data(){return this._$.data}set data(e){Object.defineProperty(this,"data",{value:e,writable:!0,enumerable:!0,configurable:!0})}get properties(){return this._$.data}set properties(e){Object.defineProperty(this,"properties",{value:e,writable:!0,enumerable:!0,configurable:!0})}groupSetData(e){e()}setData(t,i){this._$.setData(t),i&&e.triggerRender(this._$,(()=>{i()}))}updateData(e){this._$.updateData(e)}replaceDataOnPath(e,t){this._$.replaceDataOnPath(e,t)}spliceArrayDataOnPath(e,t,i,o){this._$.spliceArrayDataOnPath(e,t,i,o)}applyDataUpdates(){this._$.applyDataUpdates()}groupUpdates(e){return this._$.groupUpdates(e)}hasBehavior(e){return this._$.hasBehavior(e._$)}traitBehavior(e){return this._$.traitBehavior(e._$)}triggerEvent(e,t,i){return this._$.triggerEvent(e,t,i)}createSelectorQuery(){return new n(this)}createIntersectionObserver(e){return new l(this,(null==e?void 0:e.thresholds)||[0],(null==e?void 0:e.initialRatio)||0,(null==e?void 0:e.observeAll)||!1)}createMediaQueryObserver(){return new h(this)}selectComponent(e,t){var i,o;const s=this._$.getShadowRoot().querySelector(e);return null===s?null:t?null!==(i=p(this,s,t))&&void 0!==i?i:null:null!==(o=c(this,s))&&void 0!==o?o:null}selectAllComponents(e,t){const i=this._$.getShadowRoot().querySelectorAll(e),o=[];return i.forEach((e=>{const i=t?p(this,e,t):c(this,e);void 0!==i&&o.push(i)})),o}selectOwnerComponent(e){var t,i,o;const s=null===(t=this._$.ownerShadowRoot)||void 0===t?void 0:t.getHostNode();return void 0===s?null:e?null!==(i=p(this,s,e))&&void 0!==i?i:null:null!==(o=c(this,s))&&void 0!==o?o:null}getRelationNodes(e){return this._$.getRelationNodes(e).map((e=>e.getMethodCaller()))}general(){return this}asInstanceOf(e){return this._$.asInstanceOf(e._$)?this:null}}class u{constructor(e,t){this.proto=Object.create(d.prototype),Object.assign(this.proto,e),this.proto._$export=t}derive(){return Object.create(this.proto)}}var _=Object.freeze({__proto__:null,ComponentCaller:d,ComponentProto:u});const $=()=>Math.floor(4294967296*(1+Math.random())).toString(16).slice(1);class g{constructor(e,t,i,o){if(this._$=e,this._$export=o,void 0!==i){const e=t.map((e=>{var t;return null!==(t=e._$bindedDefinitionFilter)&&void 0!==t?t:null}));this._$bindedDefinitionFilter=t=>{i(t,e)}}}}class v{constructor(e){this._$=e}}class m{constructor(e){this._$=e}}class f{constructor(){this._$parents=[]}implement(e,t){return this._$.implement(e._$,t),this}externalClasses(e){return this._$.externalClasses(e),this}export(e){return this._$export=e,this}data(e){return this._$.data(e),this}property(e,t){return this._$.property(e,t),this}methods(e){return this._$.methods(e),this}observer(e,t,i=!1){return this._$.observer(e,t,i),this}lifetime(e,t,i=!1){return this._$.lifetime(e,t,i),this}pageLifetime(e,t,i=!1){return this._$.pageLifetime(e,t,i),this}relation(e,t){const i=t.target instanceof g||t.target instanceof v?t.target._$:t.target;return this._$.relation(e,{target:i,type:t.type,linked:t.linked,linkChanged:t.linkChanged,unlinked:t.unlinked,linkFailed:t.linkFailed}),this}init(t){return this._$.init((function({data:i,setData:o,implement:s,relation:r,observer:n,lifetime:a,pageLifetime:l,method:h,listener:p}){const c=this;return t.call(c,{self:c,data:i,setData:(t,i)=>{o(t),i&&e.triggerRender(c._$,(()=>{i()}))},implement:(e,t)=>{s(e._$,t)},relation:e=>{if(e.target instanceof m)return r({target:e.target._$,type:e.type,linked:e.linked,linkChanged:e.linkChanged,unlinked:e.unlinked,linkFailed:e.linkFailed});const t=e.target instanceof g||e.target instanceof v?e.target._$:e.target;return r({target:t,type:e.type,linked:e.linked,linkChanged:e.linkChanged,unlinked:e.unlinked,linkFailed:e.linkFailed})},observer:n,lifetime:a,pageLifetime:l,method:h,listener:p})})),this}definition(e){var t;null===(t=e.behaviors)||void 0===t||t.forEach((t=>{var i;return null===(i=t._$bindedDefinitionFilter)||void 0===i?void 0:i.call(t,e)}));const i=this._$,{behaviors:o,properties:s,data:r,observers:n,methods:a,created:l,attached:h,ready:p,moved:c,detached:d,lifetimes:u,pageLifetimes:_,relations:$,externalClasses:g,export:v}=e;if(null==o||o.forEach((e=>{this._$parents.push(e),i.behavior(e._$)})),void 0!==r&&("function"==typeof r?i.data(r):i.staticData(r)),void 0!==s){const e=Object.keys(s);for(let t=0;t<e.length;t+=1){const o=e[t];i.property(o,s[o])}}if(void 0!==n)if(Array.isArray(n))for(let e=0;e<n.length;e+=1){const{fields:t,observer:o}=n[e];i.observer(t||"**",o)}else{const e=Object.keys(n);for(let t=0;t<e.length;t+=1){const o=e[t],s=n[o];i.observer(o,s)}}if(a&&i.methods(a),l&&void 0===(null==u?void 0:u.created)&&i.lifetime("created",l,!0),h&&void 0===(null==u?void 0:u.attached)&&i.lifetime("attached",h,!0),p&&void 0===(null==u?void 0:u.ready)&&i.lifetime("ready",p,!0),c&&void 0===(null==u?void 0:u.moved)&&i.lifetime("moved",c,!0),d&&void 0===(null==u?void 0:u.detached)&&i.lifetime("detached",d,!0),u){const e=Object.keys(u);for(let t=0;t<e.length;t+=1){const o=e[t],s=u[o];i.lifetime(o,s,!0)}}if(_){const e=Object.keys(_);for(let t=0;t<e.length;t+=1){const o=e[t],s=_[o];i.pageLifetime(o,s,!0)}}if($){const e=Object.keys($);for(let t=0;t<e.length;t+=1){const o=e[t],s=$[o];i.relation(o,s)}}return g&&i.externalClasses(g),v&&(this._$export=v),this}}class y extends f{static create(e){const t=new y;return t._$codeSpace=e,t._$=e.getComponentSpace().defineWithMethodCaller(),t}chainingFilter(e){return this._$.chainingFilter(e),this}behavior(e){return this._$parents.push(e),this._$=this._$.behavior(e._$),this}export(e){return super.export(e)}data(e){return super.data(e)}property(e,t){return super.property(e,t)}methods(e){return super.methods(e)}init(e){return super.init(e)}definition(e){return super.definition(e),e.definitionFilter&&(this._$definitionFilter=e.definitionFilter),this}register(){return new g(this._$.registerBehavior(),this._$parents,this._$definitionFilter,this._$export)}}class S extends f{static create(e,t,i){const o=new S,s=e._$overallBehavior;return o._$codeSpace=e,o._$=e.getComponentSpace().defineWithMethodCaller(t||""),o._$is=t||"",o._$alias=i,o._$.methodCallerInit((function(){const e=this;let t=o._$proto;if(void 0===t){const i=e.getComponentDefinition().behavior.getMethods();t=o._$proto=new u(i,o._$export)}const i=t.derive();return i._$=e,i})),s&&o._$.behavior(s),o}options(e){return this._$options=e,this}behavior(e){return this._$parents.push(e),this._$=this._$.behavior(e._$),e._$export&&(this._$export=e._$export),this}export(e){return this._$export=e,this}data(e){return super.data(e)}property(e,t){return super.property(e,t)}methods(e){return super.methods(e)}init(e){return super.init(e)}definition(e){return super.definition(e),e.options&&this.options(e.options),this}pageDefinition(t){const i=Object.create(null),o={methods:{}},s=Object.keys(t);for(let e=0;e<s.length;e+=1){const r=s[e];"data"===r||"options"===r||"behaviors"===r?o[r]=t[r]:"function"==typeof t[r]?o.methods[r]=t[r]:i[r]=t[r]}return this.definition(o),this._$.init((function(){Object.assign(this,e.dataUtils.simpleDeepCopy(i))})),this}register(){var e;const t=this._$is,i=this._$codeSpace,[o,s]=i.prepareComponentOptions(t,this._$options);this._$.options(o);const r=i.getComponentStaticConfig(t),n=null==r?void 0:r.usingComponents,a=null==r?void 0:r.componentGenerics,l=null==r?void 0:r.componentPlaceholder;n&&this._$.usingComponents(n),a&&this._$.generics(a),l&&this._$.placeholders(l);const h=i.getCompiledTemplate(t);h&&this._$.template(h),i._$styleIsolationMap[t]=s;const p=this._$.registerComponent();return null===(e=this._$alias)||void 0===e||e.forEach((e=>{this._$codeSpace.getComponentSpace().exportComponent(e,this._$is)})),new v(p)}}class b{constructor(t,i,o,s){this._$overallBehavior=null,this._$env=t,this._$isMainSpace=i,this.space=new e.ComponentSpace("",null==s?void 0:s.space,null==s?void 0:s.space.styleScopeManager),this.styleScopeManager=this.space.styleScopeManager,this.staticConfigMap=Object.create(null),this.styleSheetMap=Object.create(null),this.compiledTemplateMap=Object.create(null),this.waitingAliasMap=Object.create(null),Object.keys(o).forEach((e=>{const t=o[e];this.waitingAliasMap[t]?this.waitingAliasMap[t].push(e):this.waitingAliasMap[t]=[e]})),this._$sharedStyleScope=this.styleScopeManager.register(""),this._$styleIsolationMap=Object.create(null)}isMainSpace(){return this._$isMainSpace}getComponentSpace(){return this.space}setOverallBehavior(e){this._$overallBehavior=e}importCodeSpace(e,t,i=!1){const o=this._$env.getCodeSpace(e);if(!o)throw new Error(`There is no space "${e}" in the environment`);t&&this.space.importSpace(`plugin://${t}`,o.space,!1),i&&this.space.importSpace(`plugin-private://${e}`,o.space,!0)}addStyleSheet(e,t,i){this.styleSheetMap[e]={url:t,styleScopeName:i}}getStyleSheet(e){var t;return null===(t=this.styleSheetMap[e])||void 0===t?void 0:t.url}getStyleScopeName(e){var t;return null===(t=this.styleSheetMap[e])||void 0===t?void 0:t.styleScopeName}addCompiledTemplate(e,t){this.compiledTemplateMap[e]=t}getCompiledTemplate(e){return this.compiledTemplateMap[e]}addComponentStaticConfig(e,t){this.staticConfigMap[e]=t}getComponentStaticConfig(e){return this.staticConfigMap[e]}prepareComponentOptions(e,t){const i=this.staticConfigMap[e],o=null==i?void 0:i.pureDataPattern,s=o?new RegExp(o):null==t?void 0:t.pureDataPattern,r=null==i?void 0:i.addGlobalClass;let n,a,l=null==i?void 0:i.styleIsolation;void 0===l&&(l=(null==i?void 0:i.component)?r?"apply-shared":"isolated":"shared"),"apply-shared"===l||"page-apply-shared"===l?(n=this.styleScopeManager.register(this.getStyleScopeName(e)||`__${$()}`),a=this._$sharedStyleScope):n="shared"!==l&&"page-shared"!==l||!this._$isMainSpace?this.styleScopeManager.register(this.getStyleScopeName(e)||`__${$()}`):this._$sharedStyleScope;return[{idPrefixGenerator:$,multipleSlots:null==t?void 0:t.multipleSlots,pureDataPattern:s,virtualHost:null==t?void 0:t.virtualHost,styleScope:n,extraStyleScope:a,dataDeepCopy:null==t?void 0:t.dataDeepCopy,propertyPassingDeepCopy:null==t?void 0:t.propertyPassingDeepCopy,propertyEarlyInit:null==t?void 0:t.propertyEarlyInit},l]}globalComponentEnv(e,t,i){return this.componentEnv(t,(({Page:t,Component:o,Behavior:s})=>{const r=e.Page,n=e.Component,a=e.Behavior;e.Page=t,e.Component=o,e.Behavior=s;const l=i();return e.Page=r,e.Component=n,e.Behavior=a,l}))}componentEnv(e,t){const i=this;function o(e){return void 0!==e?i.behavior().definition(e).register():i.behavior()}return o.trait=i.traitBehavior.bind(i),t({Page:function(t){return i.component(e).pageDefinition(t).register()},Component:function(t){return void 0!==t?i.component(e).definition(t).register():i.component(e)},Behavior:o})}component(e){return S.create(this,e,this.waitingAliasMap[e])}behavior(){return y.create(this)}traitBehavior(e){return new m(void 0===e?this.space.defineTraitBehavior():this.space.defineTraitBehavior(e))}}class C{constructor(){this.codeSpaceMap=Object.create(null),this.globalCodeSpace=new b(this,!1,{})}getGlobalCodeSpace(){return this.globalCodeSpace}associateBackend(t){const o=null!=t?t:new e.CurrentWindowBackendContext;return new i(this,o)}createCodeSpace(e,t,i=Object.create(null)){const o=new b(this,t,i,this.globalCodeSpace);return this.codeSpaceMap[e]=o,o}getCodeSpace(e){return this.codeSpaceMap[e]}}var w;!function(e){e.Isolated="isolated",e.ApplyShared="apply-shared",e.Shared="shared",e.PageIsolated="page-isolated",e.PageApplyShared="page-apply-shared",e.PageShared="page-shared"}(w||(w={}));var O=Object.freeze({__proto__:null,get StyleIsolation(){return w},utils:t});export{i as AssociatedBackend,b as CodeSpace,C as MiniProgramEnv,o as Root,_ as component,O as types};
|
|
1
|
+
import*as e from"glass-easel";import{typeUtils as t}from"glass-easel";export{e as glassEasel};class i{constructor(e,t){this._$env=e,this._$=t}registerStyleSheetContent(e,t){this._$.registerStyleSheetContent(e,t)}createRoot(e,t,i,s){if(this._$env!==t._$env)throw new Error("The code space is not in the same environment as the backend");return new o(this._$,e,t,i,s)}}class o{constructor(t,i,o,s,r){if(this._$comp=o.getComponentSpace().createComponentByUrl(i,s,r||null,t),o.isMainSpace()){const e=o.getStyleSheet("app");if(void 0!==e){const i=o._$styleIsolationMap[this._$comp.is];"isolated"!==i&&"apply-shared"!==i&&"shared"!==i||t.appendStyleSheetPath(e,o._$sharedStyleScope)}}const n=i=>{const{styleScope:s}=i.getComponentOptions(),r=o.getStyleSheet(i.is);void 0!==r&&t.appendStyleSheetPath(r,null!=s?s:e.StyleScopeManager.globalScope())};this._$comp.getRootBehavior().getComponentDependencies().forEach(n),n(this._$comp.getComponentDefinition())}get(){return this._$comp.getMethodCaller()}getComponent(){return this._$comp}attach(t,i){e.Element.replaceDocumentElement(this._$comp,t,i)}release(){e.Element.pretendDetached(this._$comp),this._$comp.destroyBackendElement()}}const s=(e,t)=>{let i=!1,o=e.length;const s=new Array(o);e.forEach(((e,r)=>{e((e=>{s[r]=e,o-=1,0===o&&i&&t(s)}))})),i=!0,0===o&&setTimeout((()=>{t(s)}),0)};class r{constructor(e,t,i,o){this._$sq=e,this._$comp=t,this._$sel=i,this._$single=o}fields(e,t=(()=>{})){return this._$sq._$push(this._$sel,this._$comp,this._$single,e,t),this._$sq}boundingClientRect(e=(()=>{})){return this._$sq._$push(this._$sel,this._$comp,this._$single,{id:!0,dataset:!0,rect:!0,size:!0},e),this._$sq}scrollOffset(e=(()=>{})){return this._$sq._$push(this._$sel,this._$comp,this._$single,{id:!0,dataset:!0,scrollOffset:!0},e),this._$sq}}class n{constructor(e){this._$comp=e,this._$queue=[]}in(e){return this._$comp=e,this}select(e){return new r(this,this._$comp,e,!0)}selectAll(e){return new r(this,this._$comp,e,!1)}selectViewport(){return new r(this,this._$comp,null,!0)}_$push(e,t,i,o,s){this._$queue.push({component:t,selector:e,single:i,fields:o,cb:s})}exec(t=(()=>{})){const i=this._$queue;s(i.map((t=>i=>{const{component:o,selector:r,single:n,fields:a,cb:l}=t;if(null===r){const e={};s([t=>{const i=o._$.getBackendContext(),s=i?i.getWindowWidth():0,r=i?i.getWindowHeight():0;if(a.id&&(e.id=""),a.dataset&&(e.dataset={}),a.mark&&(e.mark={}),a.rect&&(e.left=0,e.top=0,e.right=s,e.bottom=r),a.size&&(e.width=s,e.height=r),a.scrollOffset){let i=o._$.general();for(;i.ownerShadowRoot;)i=i.ownerShadowRoot.getHostNode();i.getBoundingClientRect((({left:i,top:o,width:s,height:r})=>{e.scrollLeft=i,e.scrollTop=o,e.scrollWidth=s,e.scrollHeight=r,t(void 0)}))}else t(void 0)}],(()=>{l(e),i(e)}))}else{const t=(t,i)=>{const o={};a.id&&(o.id=t.id),a.dataset&&(o.dataset=t.dataset),a.mark&&(o.mark=t.collectMarks()),s([e=>{a.rect||a.size?t.getBoundingClientRect((t=>{a.rect&&(o.left=t.left,o.top=t.top,o.right=t.left+t.width,o.bottom=t.top+t.height),a.size&&(o.width=t.width,o.height=t.height),e(void 0)})):e(void 0)},e=>{a.scrollOffset?t.getScrollOffset((t=>{o.scrollLeft=t.scrollLeft,o.scrollTop=t.scrollTop,o.scrollWidth=t.scrollWidth,o.scrollHeight=t.scrollHeight,e(void 0)})):e(void 0)}],(()=>{a.properties&&e.Component.isComponent(t)&&a.properties.forEach((i=>{if(e.Component.hasProperty(t,i)){const s=t.getComponentOptions().propertyPassingDeepCopy,r=t.data[i];s===e.DeepCopyKind.None?o[i]=r:s===e.DeepCopyKind.Simple?o[i]=e.dataUtils.simpleDeepCopy(r):s===e.DeepCopyKind.SimpleWithRecursion&&(o[i]=e.dataUtils.deepCopy(r,!0))}})),i(o)}))};if(n){const e=o._$.getShadowRoot().querySelector(r);e?t(e,(e=>{l(e),i(e)})):setTimeout((()=>{l(null),i(null)}),0)}else{const e=o._$.getShadowRoot().querySelectorAll(r);s(e.map((e=>i=>{t(e,(e=>{i(e)}))})),(e=>{l(e),i(e)}))}}})),t)}}const a={left:0,top:0,right:0,bottom:0};class l{constructor(e,t,i,o){this._$selector=null,this._$margins=null,this._$observers=[],this._$comp=e,this._$thresholds=t,this._$initialRatio=i,this._$observeAll=o}relativeTo(e,t){return this._$selector=e,this._$margins=null!=t?t:a,this}relativeToViewport(e){return this._$selector=null,this._$margins=null!=e?e:a,this}observe(e,t){const i=this._$comp._$.getShadowRoot();let o,s;if(i)if(this._$observeAll)o=i.querySelectorAll(e);else{const t=i.querySelector(e);o=null===t?[]:[t]}else o=[];if(null!==this._$selector&&i){const e=i.querySelector(this._$selector);null===e||(s=e)}else s=null;if(!this._$margins)throw new Error("`relativeTo` or `relativeToViewport` should be called before observe");const{left:r,top:n,right:a,bottom:l}=this._$margins,h=`${n}px ${a}px ${l}px ${r}px`;o.forEach((e=>{let i=this._$initialRatio;const o=e.createIntersectionObserver(s,h,this._$thresholds,(e=>{if(null!==i){let t=0;for(;t<this._$thresholds.length;t+=1){const o=this._$thresholds[t];if(i!==e.intersectionRatio&&(i-o)*(e.intersectionRatio-o)<=0)break}if(i=null,t<this._$thresholds.length)return}t(e)}));null===o||this._$observers.push(o)}))}disconnect(){const e=this._$observers;this._$observers=[],e.forEach((e=>e.disconnect()))}}class h{constructor(e){this._$observer=null,this._$comp=e}observe(e,t){var i,o;this._$observer&&this._$observer.disconnect(),this._$observer=(null===(o=null===(i=this._$comp._$.getBackendContext())||void 0===i?void 0:i.createMediaQueryObserver)||void 0===o?void 0:o.call(i,e,t))||null}disconnect(){this._$observer&&this._$observer.disconnect(),this._$observer=null}}const p=(e,t,i)=>{var o;const s=t.asInstanceOf(i._$);if(null===s)return;const r=s.getRootBehavior().ownerSpace,n=s.getMethodCaller(),a=n instanceof d?n:null,l=e._$.getRootBehavior().ownerSpace,h=r!==l?null:a,p=null===(o=null==a?void 0:a._$export)||void 0===o?void 0:o.call(a,r!==l?null:e);return void 0===p?h:p},c=(t,i)=>{var o;if(e.Component.isComponent(i)){const e=i.getRootBehavior().ownerSpace,s=i.getMethodCaller(),r=s instanceof d?s:null,n=t._$.getRootBehavior().ownerSpace,a=e!==n?null:r,l=null===(o=null==r?void 0:r._$export)||void 0===o?void 0:o.call(r,e!==n?null:t);return void 0===l?a:l}};class d{get is(){return this._$.is}set is(e){Object.defineProperty(this,"is",{value:e,writable:!0,enumerable:!0,configurable:!0})}get id(){return this._$.id}set id(e){Object.defineProperty(this,"id",{value:e,writable:!0,enumerable:!0,configurable:!0})}get dataset(){return this._$.dataset}set dataset(e){Object.defineProperty(this,"dataset",{value:e,writable:!0,enumerable:!0,configurable:!0})}get data(){return this._$.data}set data(e){Object.defineProperty(this,"data",{value:e,writable:!0,enumerable:!0,configurable:!0})}get properties(){return this._$.data}set properties(e){Object.defineProperty(this,"properties",{value:e,writable:!0,enumerable:!0,configurable:!0})}groupSetData(e){e()}setData(t,i){this._$.setData(t),i&&e.triggerRender(this._$,(()=>{i()}))}updateData(e){this._$.updateData(e)}replaceDataOnPath(e,t){this._$.replaceDataOnPath(e,t)}spliceArrayDataOnPath(e,t,i,o){this._$.spliceArrayDataOnPath(e,t,i,o)}applyDataUpdates(){this._$.applyDataUpdates()}groupUpdates(e){return this._$.groupUpdates(e)}hasBehavior(e){return this._$.hasBehavior(e._$)}traitBehavior(e){return this._$.traitBehavior(e._$)}triggerEvent(e,t,i){return this._$.triggerEvent(e,t,i)}createSelectorQuery(){return new n(this)}createIntersectionObserver(e){return new l(this,(null==e?void 0:e.thresholds)||[0],(null==e?void 0:e.initialRatio)||0,(null==e?void 0:e.observeAll)||!1)}createMediaQueryObserver(){return new h(this)}selectComponent(e,t){var i,o;const s=this._$.getShadowRoot().querySelector(e);return null===s?null:t?null!==(i=p(this,s,t))&&void 0!==i?i:null:null!==(o=c(this,s))&&void 0!==o?o:null}selectAllComponents(e,t){const i=this._$.getShadowRoot().querySelectorAll(e),o=[];return i.forEach((e=>{const i=t?p(this,e,t):c(this,e);void 0!==i&&o.push(i)})),o}selectOwnerComponent(e){var t,i,o;const s=null===(t=this._$.ownerShadowRoot)||void 0===t?void 0:t.getHostNode();return void 0===s?null:e?null!==(i=p(this,s,e))&&void 0!==i?i:null:null!==(o=c(this,s))&&void 0!==o?o:null}getRelationNodes(e){return this._$.getRelationNodes(e).map((e=>e.getMethodCaller()))}general(){return this}asInstanceOf(e){return this._$.asInstanceOf(e._$)?this:null}}class u{constructor(e,t){this.proto=Object.create(d.prototype),Object.assign(this.proto,e),this.proto._$export=t}derive(){return Object.create(this.proto)}}var _=Object.freeze({__proto__:null,ComponentCaller:d,ComponentProto:u});class ${constructor(e,t,i,o){if(this._$=e,this._$export=o,void 0!==i){const e=t.map((e=>{var t;return null!==(t=e._$bindedDefinitionFilter)&&void 0!==t?t:null}));this._$bindedDefinitionFilter=t=>{i(t,e)}}}}class g{constructor(e){this._$=e}}class v{constructor(e){this._$=e}}var m=Object.freeze({__proto__:null,Behavior:$,ComponentType:g,TraitBehavior:v});class f{constructor(){this._$parents=[]}implement(e,t){return this._$.implement(e._$,t),this}externalClasses(e){return this._$.externalClasses(e),this}export(e){return this._$export=e,this}data(e){return this._$.data(e),this}property(e,t){return this._$.property(e,t),this}methods(e){return this._$.methods(e),this}observer(e,t,i=!1){return this._$.observer(e,t,i),this}lifetime(e,t,i=!1){return this._$.lifetime(e,t,i),this}pageLifetime(e,t,i=!1){return this._$.pageLifetime(e,t,i),this}relation(e,t){const i=t.target instanceof $||t.target instanceof g?t.target._$:t.target;return this._$.relation(e,{target:i,type:t.type,linked:t.linked,linkChanged:t.linkChanged,unlinked:t.unlinked,linkFailed:t.linkFailed}),this}init(t){return this._$.init((function({data:i,setData:o,implement:s,relation:r,observer:n,lifetime:a,pageLifetime:l,method:h,listener:p}){const c=this;return t.call(c,{self:c,data:i,setData:(t,i)=>{o(t),i&&e.triggerRender(c._$,(()=>{i()}))},implement:(e,t)=>{s(e._$,t)},relation:e=>{if(e.target instanceof v)return r({target:e.target._$,type:e.type,linked:e.linked,linkChanged:e.linkChanged,unlinked:e.unlinked,linkFailed:e.linkFailed});const t=e.target instanceof $||e.target instanceof g?e.target._$:e.target;return r({target:t,type:e.type,linked:e.linked,linkChanged:e.linkChanged,unlinked:e.unlinked,linkFailed:e.linkFailed})},observer:n,lifetime:a,pageLifetime:l,method:h,listener:p})})),this}definition(e){var t;null===(t=e.behaviors)||void 0===t||t.forEach((t=>{var i;return null===(i=t._$bindedDefinitionFilter)||void 0===i?void 0:i.call(t,e)}));const i=this._$,{behaviors:o,properties:s,data:r,observers:n,methods:a,created:l,attached:h,ready:p,moved:c,detached:d,lifetimes:u,pageLifetimes:_,relations:$,externalClasses:g,export:v}=e;if(null==o||o.forEach((e=>{this._$parents.push(e),i.behavior(e._$)})),void 0!==r&&("function"==typeof r?i.data(r):i.staticData(r)),void 0!==s){const e=Object.keys(s);for(let t=0;t<e.length;t+=1){const o=e[t];i.property(o,s[o])}}if(void 0!==n)if(Array.isArray(n))for(let e=0;e<n.length;e+=1){const{fields:t,observer:o}=n[e];i.observer(t||"**",o)}else{const e=Object.keys(n);for(let t=0;t<e.length;t+=1){const o=e[t],s=n[o];i.observer(o,s)}}if(a&&i.methods(a),l&&void 0===(null==u?void 0:u.created)&&i.lifetime("created",l,!0),h&&void 0===(null==u?void 0:u.attached)&&i.lifetime("attached",h,!0),p&&void 0===(null==u?void 0:u.ready)&&i.lifetime("ready",p,!0),c&&void 0===(null==u?void 0:u.moved)&&i.lifetime("moved",c,!0),d&&void 0===(null==u?void 0:u.detached)&&i.lifetime("detached",d,!0),u){const e=Object.keys(u);for(let t=0;t<e.length;t+=1){const o=e[t],s=u[o];i.lifetime(o,s,!0)}}if(_){const e=Object.keys(_);for(let t=0;t<e.length;t+=1){const o=e[t],s=_[o];i.pageLifetime(o,s,!0)}}if($){const e=Object.keys($);for(let t=0;t<e.length;t+=1){const o=e[t],s=$[o];i.relation(o,s)}}return g&&i.externalClasses(g),v&&(this._$export=v),this}}class y extends f{static create(e){const t=new y;return t._$codeSpace=e,t._$=e.getComponentSpace().defineWithMethodCaller(),t}chainingFilter(e){return this._$.chainingFilter(e),this}behavior(e){return this._$parents.push(e),this._$=this._$.behavior(e._$),this}export(e){return super.export(e)}data(e){return super.data(e)}property(e,t){return super.property(e,t)}methods(e){return super.methods(e)}init(e){return super.init(e)}definition(e){return super.definition(e),e.definitionFilter&&(this._$definitionFilter=e.definitionFilter),this}register(){return new $(this._$.registerBehavior(),this._$parents,this._$definitionFilter,this._$export)}}class S extends f{static create(e,t,i){const o=new S,s=e._$overallBehavior;return o._$codeSpace=e,o._$=e.getComponentSpace().defineWithMethodCaller(t||""),o._$is=t||"",o._$alias=i,o._$.methodCallerInit((function(){const e=this;let t=o._$proto;if(void 0===t){const i=e.getComponentDefinition().behavior.getMethods();t=o._$proto=new u(i,o._$export)}const i=t.derive();return i._$=e,i})),s&&o._$.behavior(s),o}options(e){return this._$options=e,this}behavior(e){return this._$parents.push(e),this._$=this._$.behavior(e._$),e._$export&&(this._$export=e._$export),this}export(e){return this._$export=e,this}data(e){return super.data(e)}property(e,t){return super.property(e,t)}methods(e){return super.methods(e)}init(e){return super.init(e)}definition(e){return super.definition(e),e.options&&this.options(e.options),this}pageDefinition(t){const i=Object.create(null),o={methods:{}},s=Object.keys(t);for(let e=0;e<s.length;e+=1){const r=s[e];"data"===r||"options"===r||"behaviors"===r?o[r]=t[r]:"function"==typeof t[r]?o.methods[r]=t[r]:i[r]=t[r]}return this.definition(o),this._$.init((function(){Object.assign(this,e.dataUtils.simpleDeepCopy(i))})),this}register(){var e;const t=this._$is,i=this._$codeSpace,[o,s]=i.prepareComponentOptions(t,this._$options);this._$.options(o);const r=i.getComponentStaticConfig(t),n=null==r?void 0:r.usingComponents,a=null==r?void 0:r.componentGenerics,l=null==r?void 0:r.componentPlaceholder;n&&this._$.usingComponents(n),a&&this._$.generics(a),l&&this._$.placeholders(l);const h=i.getCompiledTemplate(t);h&&this._$.template(h),i._$styleIsolationMap[t]=s;const p=this._$.registerComponent();return null===(e=this._$alias)||void 0===e||e.forEach((e=>{this._$codeSpace.getComponentSpace().exportComponent(e,this._$is)})),new g(p)}}var b=Object.freeze({__proto__:null,BehaviorBuilder:y,ComponentBuilder:S});const C=()=>Math.floor(4294967296*(1+Math.random())).toString(16).slice(1);class w{constructor(t,i,o,s){this._$overallBehavior=null,this._$env=t,this._$isMainSpace=i,this.space=new e.ComponentSpace("",null==s?void 0:s.space,null==s?void 0:s.space.styleScopeManager),this.styleScopeManager=this.space.styleScopeManager,this.staticConfigMap=Object.create(null),this.styleSheetMap=Object.create(null),this.compiledTemplateMap=Object.create(null),this.waitingAliasMap=Object.create(null),Object.keys(o).forEach((e=>{const t=o[e];this.waitingAliasMap[t]?this.waitingAliasMap[t].push(e):this.waitingAliasMap[t]=[e]})),this._$sharedStyleScope=this.styleScopeManager.register(""),this._$styleIsolationMap=Object.create(null)}isMainSpace(){return this._$isMainSpace}getComponentSpace(){return this.space}setOverallBehavior(e){this._$overallBehavior=e}importCodeSpace(e,t,i=!1){const o=this._$env.getCodeSpace(e);if(!o)throw new Error(`There is no space "${e}" in the environment`);t&&this.space.importSpace(`plugin://${t}`,o.space,!1),i&&this.space.importSpace(`plugin-private://${e}`,o.space,!0)}addStyleSheet(e,t,i){this.styleSheetMap[e]={url:t,styleScopeName:i}}getStyleSheet(e){var t;return null===(t=this.styleSheetMap[e])||void 0===t?void 0:t.url}getStyleScopeName(e){var t;return null===(t=this.styleSheetMap[e])||void 0===t?void 0:t.styleScopeName}addCompiledTemplate(e,t){this.compiledTemplateMap[e]=t}getCompiledTemplate(e){return this.compiledTemplateMap[e]}addComponentStaticConfig(e,t){this.staticConfigMap[e]=t}getComponentStaticConfig(e){return this.staticConfigMap[e]}prepareComponentOptions(e,t){const i=this.staticConfigMap[e],o=null==i?void 0:i.pureDataPattern,s=o?new RegExp(o):null==t?void 0:t.pureDataPattern,r=null==i?void 0:i.addGlobalClass;let n,a,l=null==i?void 0:i.styleIsolation;void 0===l&&(l=(null==i?void 0:i.component)?r?"apply-shared":"isolated":"shared"),"apply-shared"===l||"page-apply-shared"===l?(n=this.styleScopeManager.register(this.getStyleScopeName(e)||`__${C()}`),a=this._$sharedStyleScope):n="shared"!==l&&"page-shared"!==l||!this._$isMainSpace?this.styleScopeManager.register(this.getStyleScopeName(e)||`__${C()}`):this._$sharedStyleScope;return[{idPrefixGenerator:C,multipleSlots:null==t?void 0:t.multipleSlots,pureDataPattern:s,virtualHost:null==t?void 0:t.virtualHost,styleScope:n,extraStyleScope:a,dataDeepCopy:null==t?void 0:t.dataDeepCopy,propertyPassingDeepCopy:null==t?void 0:t.propertyPassingDeepCopy,propertyEarlyInit:null==t?void 0:t.propertyEarlyInit},l]}globalComponentEnv(e,t,i){return this.componentEnv(t,(({Page:t,Component:o,Behavior:s})=>{const r=e.Page,n=e.Component,a=e.Behavior;e.Page=t,e.Component=o,e.Behavior=s;const l=i();return e.Page=r,e.Component=n,e.Behavior=a,l}))}componentEnv(e,t){const i=this;function o(e){return void 0!==e?i.behavior().definition(e).register():i.behavior()}return o.trait=i.traitBehavior.bind(i),t({Page:function(t){return i.component(e).pageDefinition(t).register()},Component:function(t){return void 0!==t?i.component(e).definition(t).register():i.component(e)},Behavior:o})}component(e){return S.create(this,e,this.waitingAliasMap[e])}behavior(){return y.create(this)}traitBehavior(e){return new v(void 0===e?this.space.defineTraitBehavior():this.space.defineTraitBehavior(e))}}class O{constructor(){this.codeSpaceMap=Object.create(null),this.globalCodeSpace=new w(this,!1,{})}getGlobalCodeSpace(){return this.globalCodeSpace}associateBackend(t){const o=null!=t?t:new e.CurrentWindowBackendContext;return new i(this,o)}createCodeSpace(e,t,i=Object.create(null)){const o=new w(this,t,i,this.globalCodeSpace);return this.codeSpaceMap[e]=o,o}getCodeSpace(e){return this.codeSpaceMap[e]}}var M;!function(e){e.Isolated="isolated",e.ApplyShared="apply-shared",e.Shared="shared",e.PageIsolated="page-isolated",e.PageApplyShared="page-apply-shared",e.PageShared="page-shared"}(M||(M={}));var k=Object.freeze({__proto__:null,get StyleIsolation(){return M},utils:t});export{i as AssociatedBackend,w as CodeSpace,O as MiniProgramEnv,o as Root,m as behavior,b as builder,_ as component,k as types};
|
|
2
2
|
//# sourceMappingURL=glass_easel_miniprogram_adapter.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glass_easel_miniprogram_adapter.es.js","sources":["../src/backend.ts","../src/selector_query.ts","../src/intersection.ts","../src/media_query.ts","../src/component.ts","../src/utils.ts","../src/behavior.ts","../src/builder/base_behavior_builder.ts","../src/builder/behavior_builder.ts","../src/builder/component_builder.ts","../src/space.ts","../src/env.ts","../src/types.ts"],"sourcesContent":["import * as glassEasel from 'glass-easel';\n/**\n * A backend context that has been associated to an environment\n */\nexport class AssociatedBackend {\n /** @internal */\n constructor(env, backendContext) {\n this._$env = env;\n this._$ = backendContext;\n }\n /**\n * Register a style sheet resource\n *\n * Some backend cannot load style sheet URL.\n * In this cases, the content should be registered here.\n */\n registerStyleSheetContent(url, content) {\n this._$.registerStyleSheetContent(url, content);\n }\n /**\n * Create a root component in specified backend\n *\n * The component is searched in the `codeSpace` with `url` .\n * If `url` contains \"?\" params, it will be parsed and try to set to component properties.\n */\n createRoot(tagName, codeSpace, url, genericTargets) {\n if (this._$env !== codeSpace._$env)\n throw new Error('The code space is not in the same environment as the backend');\n return new Root(this._$, tagName, codeSpace, url, genericTargets);\n }\n}\n/**\n * A root component\n */\nexport class Root {\n /** @internal */\n constructor(backendContext, tagName, codeSpace, url, genericTargets) {\n this._$comp = codeSpace\n .getComponentSpace()\n .createComponentByUrl(tagName, url, genericTargets || null, backendContext);\n if (codeSpace.isMainSpace()) {\n const globalStyleSheet = codeSpace.getStyleSheet('app');\n if (globalStyleSheet !== undefined) {\n const styleIsolation = codeSpace._$styleIsolationMap[this._$comp.is];\n if (styleIsolation === \"isolated\" /* StyleIsolation.Isolated */ ||\n styleIsolation === \"apply-shared\" /* StyleIsolation.ApplyShared */ ||\n styleIsolation === \"shared\" /* StyleIsolation.Shared */) {\n backendContext.appendStyleSheetPath(globalStyleSheet, codeSpace._$sharedStyleScope);\n }\n }\n }\n const addStyleSheet = (comp) => {\n const { styleScope } = comp.getComponentOptions();\n const path = codeSpace.getStyleSheet(comp.is);\n if (path !== undefined) {\n backendContext.appendStyleSheetPath(path, styleScope !== null && styleScope !== void 0 ? styleScope : glassEasel.StyleScopeManager.globalScope());\n }\n };\n this._$comp.getRootBehavior().getComponentDependencies().forEach(addStyleSheet);\n addStyleSheet(this._$comp.getComponentDefinition());\n }\n /**\n * Get the underlying component\n */\n getComponent() {\n return this._$comp;\n }\n /**\n * Attach the root component to the backend\n *\n * This component, the `parent` and the `placeholder` MUST be in the same context.\n * The `parent` MUST be a parent node of the `placeholder` .\n * This also triggers `attached` lifetimes for components.\n */\n attach(parent, placeholder) {\n glassEasel.Element.replaceDocumentElement(this._$comp, parent, placeholder);\n }\n /**\n * Release the root component\n *\n * Some backends require this explicit call to avoid memory leaks.\n * This also triggers `detached` lifetimes for components.\n */\n release() {\n glassEasel.Element.pretendDetached(this._$comp);\n this._$comp.destroyBackendElement();\n }\n}\n//# sourceMappingURL=backend.js.map","import * as glassEasel from 'glass-easel';\nconst joinAsync = (inits, cb) => {\n let initDone = false;\n let jobCount = inits.length;\n const rets = new Array(jobCount);\n inits.forEach((init, index) => {\n init((ret) => {\n rets[index] = ret;\n jobCount -= 1;\n if (jobCount === 0 && initDone) {\n cb(rets);\n }\n });\n });\n initDone = true;\n if (jobCount === 0) {\n setTimeout(() => {\n cb(rets);\n }, 0);\n }\n};\nclass NodesRef {\n constructor(selectorQuery, component, selector, selectSingle) {\n this._$sq = selectorQuery;\n this._$comp = component;\n this._$sel = selector;\n this._$single = selectSingle;\n }\n fields(fields, cb = () => {\n /* empty */\n }) {\n this._$sq._$push(this._$sel, this._$comp, this._$single, fields, cb);\n return this._$sq;\n }\n boundingClientRect(cb = () => {\n /* empty */\n }) {\n this._$sq._$push(this._$sel, this._$comp, this._$single, {\n id: true,\n dataset: true,\n rect: true,\n size: true,\n }, cb);\n return this._$sq;\n }\n scrollOffset(cb = () => {\n /* empty */\n }) {\n this._$sq._$push(this._$sel, this._$comp, this._$single, {\n id: true,\n dataset: true,\n scrollOffset: true,\n }, cb);\n return this._$sq;\n }\n}\n// main class\nexport class SelectorQuery {\n /** @internal */\n constructor(component) {\n this._$comp = component;\n this._$queue = [];\n }\n /** Change where the node should be selected from */\n in(component) {\n this._$comp = component;\n return this;\n }\n /** Select the first node that matches the selector */\n select(selector) {\n return new NodesRef(this, this._$comp, selector, true);\n }\n /** Select all nodes that match the selector */\n selectAll(selector) {\n return new NodesRef(this, this._$comp, selector, false);\n }\n /**\n * Select the viewport of the component\n *\n * Only the size and the scroll position is meaningful when the viewport is selected.\n */\n selectViewport() {\n return new NodesRef(this, this._$comp, null, true);\n }\n /** @internal */\n _$push(selector, component, single, fields, cb) {\n this._$queue.push({\n component,\n selector,\n single,\n fields,\n cb,\n });\n }\n /**\n * Execute all queries\n *\n * The `cb` is called after all queries done.\n */\n exec(cb = () => {\n /* empty */\n }) {\n const q = this._$queue;\n joinAsync(q.map((req) => (done) => {\n const { component, selector, single, fields, cb } = req;\n if (selector === null) {\n // for the viewport selection, return available fields\n const res = {};\n joinAsync([\n (done) => {\n const ctx = component._$.getBackendContext();\n const width = ctx ? ctx.getWindowWidth() : 0;\n const height = ctx ? ctx.getWindowHeight() : 0;\n if (fields.id)\n res.id = '';\n if (fields.dataset)\n res.dataset = {};\n if (fields.mark)\n res.mark = {};\n if (fields.rect) {\n res.left = 0;\n res.top = 0;\n res.right = width;\n res.bottom = height;\n }\n if (fields.size) {\n res.width = width;\n res.height = height;\n }\n if (fields.scrollOffset) {\n let rootComp = component._$.general();\n while (rootComp.ownerShadowRoot) {\n rootComp = rootComp.ownerShadowRoot.getHostNode();\n }\n rootComp.getBoundingClientRect(({ left, top, width, height }) => {\n res.scrollLeft = left;\n res.scrollTop = top;\n res.scrollWidth = width;\n res.scrollHeight = height;\n done(undefined);\n });\n }\n else {\n done(undefined);\n }\n },\n ], () => {\n cb(res);\n done(res);\n });\n }\n else {\n // for common node selection, return specified fields\n const constructSingleRes = (elem, cb) => {\n const res = {};\n if (fields.id)\n res.id = elem.id;\n if (fields.dataset)\n res.dataset = elem.dataset;\n if (fields.mark)\n res.mark = elem.collectMarks();\n joinAsync([\n (done) => {\n if (fields.rect || fields.size) {\n elem.getBoundingClientRect((rect) => {\n if (fields.rect) {\n res.left = rect.left;\n res.top = rect.top;\n res.right = rect.left + rect.width;\n res.bottom = rect.top + rect.height;\n }\n if (fields.size) {\n res.width = rect.width;\n res.height = rect.height;\n }\n done(undefined);\n });\n }\n else {\n done(undefined);\n }\n },\n (done) => {\n if (fields.scrollOffset) {\n elem.getScrollOffset((rect) => {\n res.scrollLeft = rect.scrollLeft;\n res.scrollTop = rect.scrollTop;\n res.scrollWidth = rect.scrollWidth;\n res.scrollHeight = rect.scrollHeight;\n done(undefined);\n });\n }\n else {\n done(undefined);\n }\n },\n ], () => {\n if (fields.properties) {\n if (glassEasel.Component.isComponent(elem)) {\n fields.properties.forEach((propName) => {\n if (glassEasel.Component.hasProperty(elem, propName)) {\n const ds = elem.getComponentOptions().propertyPassingDeepCopy;\n const v = elem.data[propName];\n if (ds === glassEasel.DeepCopyKind.None) {\n res[propName] = v;\n }\n else if (ds === glassEasel.DeepCopyKind.Simple) {\n res[propName] = glassEasel.dataUtils.simpleDeepCopy(v);\n }\n else if (ds === glassEasel.DeepCopyKind.SimpleWithRecursion) {\n res[propName] = glassEasel.dataUtils.deepCopy(v, true);\n }\n }\n });\n }\n }\n cb(res);\n });\n };\n if (single) {\n // select single node\n const node = component._$.getShadowRoot().querySelector(selector);\n if (node) {\n constructSingleRes(node, (res) => {\n cb(res);\n done(res);\n });\n }\n else {\n setTimeout(() => {\n cb(null);\n done(null);\n }, 0);\n }\n }\n else {\n // select multiple nodes\n const nodes = component._$.getShadowRoot().querySelectorAll(selector);\n joinAsync(nodes.map((node) => (done) => {\n constructSingleRes(node, (res) => {\n done(res);\n });\n }), (resList) => {\n cb(resList);\n done(resList);\n });\n }\n }\n }), cb);\n }\n}\n//# sourceMappingURL=selector_query.js.map","const defaultMargins = {\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n};\nexport class IntersectionObserver {\n /** @internal */\n constructor(comp, thresholds, initialRatio, observeAll) {\n this._$selector = null;\n this._$margins = null;\n this._$observers = [];\n this._$comp = comp;\n this._$thresholds = thresholds;\n this._$initialRatio = initialRatio;\n this._$observeAll = observeAll;\n }\n relativeTo(selector, margins) {\n this._$selector = selector;\n this._$margins = margins !== null && margins !== void 0 ? margins : defaultMargins;\n return this;\n }\n relativeToViewport(margins) {\n this._$selector = null;\n this._$margins = margins !== null && margins !== void 0 ? margins : defaultMargins;\n return this;\n }\n observe(targetSelector, listener) {\n const shadowRoot = this._$comp._$.getShadowRoot();\n let targets;\n if (!shadowRoot) {\n targets = [];\n }\n else if (this._$observeAll) {\n targets = shadowRoot.querySelectorAll(targetSelector);\n }\n else {\n const elem = shadowRoot.querySelector(targetSelector);\n if (elem === null) {\n targets = [];\n }\n else {\n targets = [elem];\n }\n }\n let relativeElement;\n if (this._$selector === null || !shadowRoot) {\n relativeElement = null;\n }\n else {\n const rel = shadowRoot.querySelector(this._$selector);\n if (rel === null) {\n // TODO warn no matched relative element\n }\n else {\n relativeElement = rel;\n }\n }\n if (!this._$margins) {\n throw new Error('`relativeTo` or `relativeToViewport` should be called before observe');\n }\n const { left, top, right, bottom } = this._$margins;\n const margin = `${top}px ${right}px ${bottom}px ${left}px`;\n targets.forEach((target) => {\n let initial = this._$initialRatio;\n const observer = target.createIntersectionObserver(relativeElement, margin, this._$thresholds, (args) => {\n if (initial !== null) {\n let i = 0;\n for (; i < this._$thresholds.length; i += 1) {\n const threshold = this._$thresholds[i];\n if (initial === args.intersectionRatio)\n continue;\n if ((initial - threshold) * (args.intersectionRatio - threshold) <= 0)\n break;\n }\n initial = null;\n if (i < this._$thresholds.length)\n return;\n }\n listener(args);\n });\n if (observer === null) {\n // TODO warn no observer attached\n }\n else {\n this._$observers.push(observer);\n }\n });\n }\n disconnect() {\n const observers = this._$observers;\n this._$observers = [];\n observers.forEach((observer) => observer.disconnect());\n }\n}\n//# sourceMappingURL=intersection.js.map","export class MediaQueryObserver {\n /** @internal */\n constructor(comp) {\n this._$observer = null;\n this._$comp = comp;\n }\n observe(descriptor, listener) {\n var _a, _b;\n if (this._$observer)\n this._$observer.disconnect();\n this._$observer =\n ((_b = (_a = this._$comp._$.getBackendContext()) === null || _a === void 0 ? void 0 : _a.createMediaQueryObserver) === null || _b === void 0 ? void 0 : _b.call(_a, descriptor, listener)) || null;\n }\n disconnect() {\n if (this._$observer)\n this._$observer.disconnect();\n this._$observer = null;\n }\n}\n//# sourceMappingURL=media_query.js.map","import * as glassEasel from 'glass-easel';\nimport { SelectorQuery } from './selector_query';\nimport { IntersectionObserver } from './intersection';\nimport { MediaQueryObserver } from './media_query';\nconst filterComponentExportWithType = (source, elem, componentType) => {\n var _a;\n const comp = elem.asInstanceOf(componentType._$);\n if (comp === null)\n return undefined;\n const selectedSpace = comp.getRootBehavior().ownerSpace;\n const uncheckedCaller = comp.getMethodCaller();\n const caller = uncheckedCaller instanceof ComponentCaller ? uncheckedCaller : null;\n const sourceSpace = source._$.getRootBehavior().ownerSpace;\n const defaultResult = selectedSpace !== sourceSpace ? null : caller;\n const ret = (_a = caller === null || caller === void 0 ? void 0 : caller._$export) === null || _a === void 0 ? void 0 : _a.call(caller, selectedSpace !== sourceSpace ? null : source);\n if (ret === undefined) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return defaultResult;\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return ret;\n};\nconst filterComponentExport = (source, elem) => {\n var _a;\n if (glassEasel.Component.isComponent(elem)) {\n const selectedSpace = elem.getRootBehavior().ownerSpace;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const uncheckedCaller = elem.getMethodCaller();\n const caller = uncheckedCaller instanceof ComponentCaller ? uncheckedCaller : null;\n const sourceSpace = source._$.getRootBehavior().ownerSpace;\n const defaultResult = selectedSpace !== sourceSpace ? null : caller;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const ret = (_a = caller === null || caller === void 0 ? void 0 : caller._$export) === null || _a === void 0 ? void 0 : _a.call(caller, selectedSpace !== sourceSpace ? null : source);\n if (ret === undefined) {\n return defaultResult;\n }\n return ret;\n }\n return undefined;\n};\nexport class ComponentCaller {\n /** The component path in the code space */\n get is() {\n return this._$.is;\n }\n set is(value) {\n Object.defineProperty(this, 'is', {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n /** The `id` field in the template */\n get id() {\n return this._$.id;\n }\n set id(value) {\n Object.defineProperty(this, 'id', {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n /** The `data-*` field in the template */\n get dataset() {\n return this._$.dataset;\n }\n set dataset(value) {\n Object.defineProperty(this, 'dataset', {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n /** The component data and property values */\n get data() {\n return this._$.data;\n }\n set data(value) {\n Object.defineProperty(this, 'data', {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n /** The component data and property values (same as `data` ) */\n get properties() {\n return this._$.data;\n }\n set properties(value) {\n Object.defineProperty(this, 'properties', {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n /**\n * Group several data update calls\n *\n * This method is designed for hinting the backend that some updates should be handled together.\n * However, this is done automatically now,\n * so this method is just for backward compatibilities.\n */\n // eslint-disable-next-line class-methods-use-this\n groupSetData(callback) {\n callback();\n }\n setData(data, callback) {\n this._$.setData(data);\n if (callback) {\n glassEasel.triggerRender(this._$, () => {\n callback();\n });\n }\n }\n updateData(newData) {\n this._$.updateData(newData);\n }\n replaceDataOnPath(path, data) {\n this._$.replaceDataOnPath(path, data);\n }\n spliceArrayDataOnPath(path, index, del, inserts) {\n this._$.spliceArrayDataOnPath(path, index, del, inserts);\n }\n /**\n * Apply all scheduled updates immediately\n *\n * Inside observers, it is generally not .\n */\n applyDataUpdates() {\n this._$.applyDataUpdates();\n }\n /**\n * Pending all data updates in the callback, and apply updates after callback returns\n *\n * This function helps grouping several `replaceDataOnPath` or `spliceArrayDataOnPath` calls,\n * and then apply them at the end of the callback.\n * `setData` and `applyDataUpdates` calls inside the callback still apply updates immediately.\n */\n groupUpdates(callback) {\n return this._$.groupUpdates(callback);\n }\n /**\n * Check whether the `other` behavior is a dependent behavior or a implemented trait behavior\n */\n hasBehavior(behavior) {\n return this._$.hasBehavior(behavior._$);\n }\n /**\n * Get the trait behavior implementation of the component\n *\n * Returns `undefined` if the specified trait behavior is not implemented.\n */\n traitBehavior(traitBehavior) {\n return this._$.traitBehavior(traitBehavior._$);\n }\n /** Trigger an event */\n triggerEvent(name, detail, options) {\n return this._$.triggerEvent(name, detail, options);\n }\n /** Create a selector query for searching element inside the component */\n createSelectorQuery() {\n return new SelectorQuery(this);\n }\n /** Create an intersection observer */\n createIntersectionObserver(options) {\n return new IntersectionObserver(this, (options === null || options === void 0 ? void 0 : options.thresholds) || [0], (options === null || options === void 0 ? void 0 : options.initialRatio) || 0, (options === null || options === void 0 ? void 0 : options.observeAll) || false);\n }\n /** Create an media query observer */\n createMediaQueryObserver() {\n return new MediaQueryObserver(this);\n }\n selectComponent(selector, componentType) {\n var _a, _b;\n const target = this._$.getShadowRoot().querySelector(selector);\n if (target === null)\n return null;\n return componentType\n ? (_a = filterComponentExportWithType(this, target, componentType)) !== null && _a !== void 0 ? _a : null\n : (_b = filterComponentExport(this, target)) !== null && _b !== void 0 ? _b : null;\n }\n selectAllComponents(selector, componentType) {\n const targets = this._$.getShadowRoot().querySelectorAll(selector);\n const ret = [];\n targets.forEach((target) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const r = componentType\n ? filterComponentExportWithType(this, target, componentType)\n : filterComponentExport(this, target);\n if (r !== undefined)\n ret.push(r);\n });\n return ret;\n }\n selectOwnerComponent(componentType) {\n var _a, _b, _c;\n const target = (_a = this._$.ownerShadowRoot) === null || _a === void 0 ? void 0 : _a.getHostNode();\n if (target === undefined)\n return null;\n return componentType\n ? (_b = filterComponentExportWithType(this, target, componentType)) !== null && _b !== void 0 ? _b : null\n : (_c = filterComponentExport(this, target)) !== null && _c !== void 0 ? _c : null;\n }\n getRelationNodes(relationKey) {\n return this._$.getRelationNodes(relationKey).map((target) => target.getMethodCaller());\n }\n /** Cast the component into a general-typed one */\n general() {\n return this;\n }\n /**\n * Cast the component into the specified type\n *\n * Returns `null` if the component node is not the instance of the specified component.\n */\n asInstanceOf(componentType) {\n const inner = this._$.asInstanceOf(componentType._$);\n if (!inner)\n return null;\n return this;\n }\n}\nexport class ComponentProto {\n constructor(methods, componentExport) {\n this.proto = Object.create(ComponentCaller.prototype);\n Object.assign(this.proto, methods);\n this.proto._$export = componentExport;\n }\n derive() {\n return Object.create(this.proto);\n }\n}\n//# sourceMappingURL=component.js.map","export const guid = () => Math.floor((1 + Math.random()) * 0x100000000)\n .toString(16)\n .slice(1);\n//# sourceMappingURL=utils.js.map","export class Behavior {\n /** @internal */\n constructor(inner, parents, definitionFilter, componentExport) {\n this._$ = inner;\n this._$export = componentExport;\n // processing definition filter\n if (definitionFilter !== undefined) {\n const definitionFilterArgs = parents.map((p) => { var _a; return (_a = p._$bindedDefinitionFilter) !== null && _a !== void 0 ? _a : null; });\n this._$bindedDefinitionFilter = (childDef) => {\n definitionFilter(childDef, definitionFilterArgs);\n };\n }\n }\n}\nexport class ComponentType {\n /** @internal */\n constructor(inner) {\n this._$ = inner;\n }\n}\nexport class TraitBehavior {\n constructor(inner) {\n this._$ = inner;\n }\n}\n//# sourceMappingURL=behavior.js.map","/* eslint-disable @typescript-eslint/no-unsafe-return */\nimport * as glassEasel from 'glass-easel';\nimport { Behavior, ComponentType, TraitBehavior } from '../behavior';\nexport class BaseBehaviorBuilder {\n constructor() {\n this._$parents = [];\n }\n /** Implement a trait behavior */\n implement(traitBehavior, impl) {\n this._$.implement(traitBehavior._$, impl);\n return this;\n }\n /** Add external classes */\n externalClasses(list) {\n this._$.externalClasses(list);\n return this;\n }\n /** Set the export value when the component is being selected */\n export(f) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n this._$export = f;\n return this;\n }\n data(gen) {\n this._$.data(gen);\n return this;\n }\n property(name, def) {\n this._$.property(name, def);\n return this;\n }\n /**\n * Add some public methods\n *\n * The public method can be used as an event handler, and can be visited in component instance.\n */\n methods(funcs) {\n this._$.methods(funcs);\n return this;\n }\n observer(paths, func, once = false) {\n this._$.observer(paths, func, once);\n return this;\n }\n /**\n * Add a lifetime callback\n */\n lifetime(name, func, once = false) {\n this._$.lifetime(name, func, once);\n return this;\n }\n /**\n * Add a page-lifetime callback\n */\n pageLifetime(name, func, once = false) {\n this._$.pageLifetime(name, func, once);\n return this;\n }\n /**\n * Add a relation\n */\n relation(name, rel) {\n const target = rel.target instanceof Behavior || rel.target instanceof ComponentType\n ? rel.target._$\n : rel.target;\n this._$.relation(name, {\n target,\n type: rel.type,\n linked: rel.linked,\n linkChanged: rel.linkChanged,\n unlinked: rel.unlinked,\n linkFailed: rel.linkFailed,\n });\n return this;\n }\n init(func) {\n this._$.init(function ({ data, setData, implement, relation, observer, lifetime, pageLifetime, method, listener, }) {\n const relationInit = ((rel) => {\n if (rel.target instanceof TraitBehavior) {\n return relation({\n target: rel.target._$,\n type: rel.type,\n linked: rel.linked,\n linkChanged: rel.linkChanged,\n unlinked: rel.unlinked,\n linkFailed: rel.linkFailed,\n });\n }\n const target = rel.target instanceof Behavior || rel.target instanceof ComponentType\n ? rel.target._$\n : rel.target;\n return relation({\n target,\n type: rel.type,\n linked: rel.linked,\n linkChanged: rel.linkChanged,\n unlinked: rel.unlinked,\n linkFailed: rel.linkFailed,\n });\n });\n const implementInit = ((traitBehavior, impl) => {\n implement(traitBehavior._$, impl);\n });\n const methodCaller = this;\n return func.call(methodCaller, {\n self: methodCaller,\n data,\n setData: (newData, callback) => {\n setData(newData);\n if (callback) {\n glassEasel.triggerRender(methodCaller._$, () => {\n callback();\n });\n }\n },\n implement: implementInit,\n relation: relationInit,\n observer,\n lifetime,\n pageLifetime,\n method,\n listener,\n });\n });\n return this;\n }\n definition(def) {\n var _a;\n (_a = def.behaviors) === null || _a === void 0 ? void 0 : _a.forEach((beh) => { var _a; return (_a = beh._$bindedDefinitionFilter) === null || _a === void 0 ? void 0 : _a.call(beh, def); });\n const inner = this._$;\n const { behaviors, properties: rawProperties, data: rawData, observers: rawObservers, methods, created, attached, ready, moved, detached, lifetimes: rawLifetimes, pageLifetimes: rawPageLifetimes, relations: rawRelations, externalClasses, export: exports, } = def;\n behaviors === null || behaviors === void 0 ? void 0 : behaviors.forEach((beh) => {\n this._$parents.push(beh);\n inner.behavior(beh._$);\n });\n if (rawData !== undefined) {\n if (typeof rawData === 'function') {\n inner.data(rawData);\n }\n else {\n inner.staticData(rawData);\n }\n }\n if (rawProperties !== undefined) {\n const keys = Object.keys(rawProperties);\n for (let i = 0; i < keys.length; i += 1) {\n const name = keys[i];\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n inner.property(name, rawProperties[name]);\n }\n }\n if (rawObservers !== undefined) {\n if (Array.isArray(rawObservers)) {\n for (let i = 0; i < rawObservers.length; i += 1) {\n const { fields, observer } = rawObservers[i];\n inner.observer(fields || '**', observer);\n }\n }\n else {\n const keys = Object.keys(rawObservers);\n for (let i = 0; i < keys.length; i += 1) {\n const fields = keys[i];\n const observer = rawObservers[fields];\n inner.observer(fields, observer);\n }\n }\n }\n if (methods)\n inner.methods(methods);\n if (created && (rawLifetimes === null || rawLifetimes === void 0 ? void 0 : rawLifetimes.created) === undefined)\n inner.lifetime('created', created, true);\n if (attached && (rawLifetimes === null || rawLifetimes === void 0 ? void 0 : rawLifetimes.attached) === undefined)\n inner.lifetime('attached', attached, true);\n if (ready && (rawLifetimes === null || rawLifetimes === void 0 ? void 0 : rawLifetimes.ready) === undefined)\n inner.lifetime('ready', ready, true);\n if (moved && (rawLifetimes === null || rawLifetimes === void 0 ? void 0 : rawLifetimes.moved) === undefined)\n inner.lifetime('moved', moved, true);\n if (detached && (rawLifetimes === null || rawLifetimes === void 0 ? void 0 : rawLifetimes.detached) === undefined)\n inner.lifetime('detached', detached, true);\n if (rawLifetimes) {\n const keys = Object.keys(rawLifetimes);\n for (let i = 0; i < keys.length; i += 1) {\n const name = keys[i];\n const func = rawLifetimes[name];\n inner.lifetime(name, func, true);\n }\n }\n if (rawPageLifetimes) {\n const keys = Object.keys(rawPageLifetimes);\n for (let i = 0; i < keys.length; i += 1) {\n const name = keys[i];\n const func = rawPageLifetimes[name];\n inner.pageLifetime(name, func, true);\n }\n }\n if (rawRelations) {\n const keys = Object.keys(rawRelations);\n for (let i = 0; i < keys.length; i += 1) {\n const name = keys[i];\n const rel = rawRelations[name];\n inner.relation(name, rel);\n }\n }\n if (externalClasses)\n inner.externalClasses(externalClasses);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n if (exports)\n this._$export = exports;\n return this;\n }\n}\n//# sourceMappingURL=base_behavior_builder.js.map","/* eslint-disable @typescript-eslint/no-unsafe-return */\nimport { BaseBehaviorBuilder } from './base_behavior_builder';\nimport { Behavior } from '../behavior';\nexport class BehaviorBuilder extends BaseBehaviorBuilder {\n /** @internal */\n static create(codeSpace) {\n const ret = new BehaviorBuilder();\n ret._$codeSpace = codeSpace;\n ret._$ = codeSpace.getComponentSpace().defineWithMethodCaller();\n return ret;\n }\n /** Define a chaining filter */\n chainingFilter(func) {\n this._$.chainingFilter(func);\n return this;\n }\n /** Use another behavior */\n behavior(behavior) {\n this._$parents.push(behavior);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n this._$ = this._$.behavior(behavior._$);\n return this;\n }\n /** Set the export value when the component is being selected */\n export(f) {\n return super.export(f);\n }\n /**\n * Add some template data fields\n *\n * It does not support raw data, but a `gen` function which returns the new data fields.\n * The `gen` function executes once during component creation.\n */\n data(gen) {\n return super.data(gen);\n }\n /**\n * Add a single property\n *\n * The property name should be different from other properties.\n */\n property(name, def) {\n return super.property(name, def);\n }\n /**\n * Add some public methods\n *\n * The public method can be used as an event handler, and can be visited in component instance.\n */\n methods(funcs) {\n return super.methods(funcs);\n }\n /**\n * Execute a function while component instance creation\n *\n * A `BuilderContext` is provided to tweak the component creation progress.\n * The return value is used as the \"export\" value of the behavior,\n * which can be imported by other behaviors.\n */\n init(func) {\n return super.init(func);\n }\n /** Apply a classic definition object */\n definition(def) {\n super.definition(def);\n if (def.definitionFilter)\n this._$definitionFilter = def.definitionFilter;\n return this;\n }\n /**\n * Finish the behavior definition process\n */\n register() {\n return new Behavior(this._$.registerBehavior(), this._$parents, this._$definitionFilter, this._$export);\n }\n}\n//# sourceMappingURL=behavior_builder.js.map","/* eslint-disable @typescript-eslint/no-unsafe-return */\nimport * as glassEasel from 'glass-easel';\nimport { BaseBehaviorBuilder } from './base_behavior_builder';\nimport { ComponentType } from '../behavior';\nimport { ComponentProto } from '../component';\n/**\n * A direct way to create a component\n */\nexport class ComponentBuilder extends BaseBehaviorBuilder {\n /** @internal */\n static create(codeSpace, is, alias) {\n const ret = new ComponentBuilder();\n const overallBehavior = codeSpace._$overallBehavior;\n ret._$codeSpace = codeSpace;\n ret._$ = codeSpace.getComponentSpace().defineWithMethodCaller(is || '');\n ret._$is = is || '';\n ret._$alias = alias;\n ret._$.methodCallerInit(function () {\n const originalCaller = this;\n let proto = ret._$proto;\n if (proto === undefined) {\n const methods = originalCaller.getComponentDefinition().behavior.getMethods();\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n proto = ret._$proto = new ComponentProto(methods, ret._$export);\n }\n const caller = proto.derive();\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n caller._$ = originalCaller;\n return caller;\n });\n if (overallBehavior)\n ret._$.behavior(overallBehavior);\n return ret;\n }\n /**\n * Set the component options\n *\n * If called multiple times, only the latest call is valid.\n */\n options(options) {\n this._$options = options;\n return this;\n }\n /** Use another behavior */\n behavior(behavior) {\n this._$parents.push(behavior);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n this._$ = this._$.behavior(behavior._$);\n if (behavior._$export) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n this._$export = behavior._$export;\n }\n return this;\n }\n /** Set the export value when the component is being selected */\n export(f) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n this._$export = f;\n return this;\n }\n /**\n * Add some template data fields\n *\n * It does not support raw data, but a `gen` function which returns the new data fields.\n * The `gen` function executes once during component creation.\n */\n data(gen) {\n return super.data(gen);\n }\n /**\n * Add a single property\n *\n * The property name should be different from other properties.\n */\n property(name, def) {\n return super.property(name, def);\n }\n /**\n * Add some public methods\n *\n * The public method can be used as an event handler, and can be visited in component instance.\n */\n methods(funcs) {\n return super.methods(funcs);\n }\n /**\n * Execute a function while component instance creation\n *\n * A `BuilderContext` is provided to tweak the component creation progress.\n * The return value is used as the \"export\" value of the behavior,\n * which can be imported by other behaviors.\n */\n init(func) {\n return super.init(func);\n }\n /** Apply a classic definition object */\n definition(def) {\n super.definition(def);\n if (def.options)\n this.options(def.options);\n return this;\n }\n pageDefinition(def) {\n const freeData = Object.create(null);\n const compDef = {\n methods: {},\n };\n const keys = Object.keys(def);\n for (let i = 0; i < keys.length; i += 1) {\n const k = keys[i];\n if (k === 'data' || k === 'options' || k === 'behaviors') {\n compDef[k] = def[k];\n }\n else if (typeof def[k] === 'function') {\n ;\n compDef.methods[k] = def[k];\n }\n else {\n ;\n freeData[k] = def[k];\n }\n }\n this.definition(compDef);\n this._$.init(function () {\n Object.assign(this, glassEasel.dataUtils.simpleDeepCopy(freeData));\n });\n return this;\n }\n /**\n * Finish the component definition process\n */\n register() {\n var _a;\n const is = this._$is;\n const codeSpace = this._$codeSpace;\n // processing common fields\n const [options, styleIsolation] = codeSpace.prepareComponentOptions(is, this._$options);\n this._$.options(options);\n const staticConfig = codeSpace.getComponentStaticConfig(is);\n const using = staticConfig === null || staticConfig === void 0 ? void 0 : staticConfig.usingComponents;\n const generics = staticConfig === null || staticConfig === void 0 ? void 0 : staticConfig.componentGenerics;\n const placeholder = staticConfig === null || staticConfig === void 0 ? void 0 : staticConfig.componentPlaceholder;\n if (using)\n this._$.usingComponents(using);\n if (generics)\n this._$.generics(generics);\n if (placeholder)\n this._$.placeholders(placeholder);\n const template = codeSpace.getCompiledTemplate(is);\n if (template)\n this._$.template(template);\n // do registration\n codeSpace._$styleIsolationMap[is] = styleIsolation;\n const compDef = this._$.registerComponent();\n (_a = this._$alias) === null || _a === void 0 ? void 0 : _a.forEach((alias) => {\n this._$codeSpace.getComponentSpace().exportComponent(alias, this._$is);\n });\n return new ComponentType(compDef);\n }\n}\n//# sourceMappingURL=component_builder.js.map","/* eslint-disable @typescript-eslint/no-unsafe-return */\nimport * as glassEasel from 'glass-easel';\nimport { guid } from './utils';\nimport { TraitBehavior } from './behavior';\nimport { BehaviorBuilder, ComponentBuilder } from './builder';\n/**\n * A component space with mini-program code manager\n */\nexport class CodeSpace {\n /** @internal */\n constructor(env, isMainSpace, publicComponents, globalCodeSpace) {\n /** @internal */\n this._$overallBehavior = null;\n this._$env = env;\n this._$isMainSpace = isMainSpace;\n this.space = new glassEasel.ComponentSpace('', globalCodeSpace === null || globalCodeSpace === void 0 ? void 0 : globalCodeSpace.space, globalCodeSpace === null || globalCodeSpace === void 0 ? void 0 : globalCodeSpace.space.styleScopeManager);\n this.styleScopeManager = this.space.styleScopeManager;\n this.staticConfigMap = Object.create(null);\n this.styleSheetMap = Object.create(null);\n this.compiledTemplateMap = Object.create(null);\n this.waitingAliasMap = Object.create(null);\n Object.keys(publicComponents).forEach((alias) => {\n const is = publicComponents[alias];\n if (this.waitingAliasMap[is])\n this.waitingAliasMap[is].push(alias);\n else\n this.waitingAliasMap[is] = [alias];\n });\n this._$sharedStyleScope = this.styleScopeManager.register('');\n this._$styleIsolationMap = Object.create(null);\n }\n isMainSpace() {\n return this._$isMainSpace;\n }\n /**\n * Get the underlying component space\n */\n getComponentSpace() {\n return this.space;\n }\n /**\n * Add a behavior for all components\n *\n * Must be called before any component registration so that the component will use this behavior.\n * Set to `null` to disable this behavior.\n */\n setOverallBehavior(behavior) {\n this._$overallBehavior = behavior;\n }\n /**\n * Import another component space as a plugin (must be in the same environment)\n *\n * Components from the imported `codeSpace` can be used with URLs.\n * If `domainAlias` is provided, the URL format is `plugin://DOMAIN_ALIAS/COMPONENT_SPACE_EXPORT_ALIAS` .\n * If `privateImport` is enabled, another URL format is `plugin-private://DOMAIN/COMPONENT_IS` .\n */\n importCodeSpace(id, domainAlias, privateImport = false) {\n const cs = this._$env.getCodeSpace(id);\n if (!cs) {\n throw new Error(`There is no space \"${id}\" in the environment`);\n }\n if (domainAlias)\n this.space.importSpace(`plugin://${domainAlias}`, cs.space, false);\n if (privateImport)\n this.space.importSpace(`plugin-private://${id}`, cs.space, true);\n }\n /**\n * Add a style sheet URL with style scope name\n *\n * The URL should be recognized by the target backend.\n * The `path` should not contain the `.wxss` suffix.\n */\n addStyleSheet(path, styleSheetUrl, styleScopeName) {\n this.styleSheetMap[path] = { url: styleSheetUrl, styleScopeName };\n }\n /**\n * Get a style sheet URL\n *\n * The URL should be recognized by the target backend.\n * The `path` should not contain the `.wxss` suffix.\n */\n getStyleSheet(path) {\n var _a;\n return (_a = this.styleSheetMap[path]) === null || _a === void 0 ? void 0 : _a.url;\n }\n getStyleScopeName(path) {\n var _a;\n return (_a = this.styleSheetMap[path]) === null || _a === void 0 ? void 0 : _a.styleScopeName;\n }\n /**\n * Add a compiled template\n *\n * The content is the execution result of the generated string of the template compiler.\n * The `path` should not contain the `.wxml` suffix.\n */\n addCompiledTemplate(path, content) {\n this.compiledTemplateMap[path] = content;\n }\n /**\n * Get a compiled template\n *\n * The content is the execution result of the generated string of the template compiler.\n * The `path` should not contain the `.wxml` suffix.\n */\n getCompiledTemplate(path) {\n return this.compiledTemplateMap[path];\n }\n /**\n * Add a static JSON config\n *\n * The `path` should not contain the `.json` suffix.\n */\n addComponentStaticConfig(path, content) {\n this.staticConfigMap[path] = content;\n }\n /**\n * Get a static JSON config\n *\n * The `path` should not contain the `.json` suffix.\n */\n getComponentStaticConfig(path) {\n return this.staticConfigMap[path];\n }\n /** @internal */\n prepareComponentOptions(is, options) {\n // accept some fields from static JSON config\n const staticConfig = this.staticConfigMap[is];\n const pureDataPatternString = staticConfig === null || staticConfig === void 0 ? void 0 : staticConfig.pureDataPattern;\n const pureDataPattern = pureDataPatternString\n ? new RegExp(pureDataPatternString)\n : options === null || options === void 0 ? void 0 : options.pureDataPattern;\n // calculate style scope\n const addGlobalClass = staticConfig === null || staticConfig === void 0 ? void 0 : staticConfig.addGlobalClass;\n let styleIsolation = staticConfig === null || staticConfig === void 0 ? void 0 : staticConfig.styleIsolation;\n if (styleIsolation === undefined) {\n if (staticConfig === null || staticConfig === void 0 ? void 0 : staticConfig.component) {\n styleIsolation = addGlobalClass ? \"apply-shared\" /* StyleIsolation.ApplyShared */ : \"isolated\" /* StyleIsolation.Isolated */;\n }\n else {\n styleIsolation = \"shared\" /* StyleIsolation.Shared */;\n }\n }\n let styleScope;\n let extraStyleScope;\n if (styleIsolation === \"apply-shared\" /* StyleIsolation.ApplyShared */ ||\n styleIsolation === \"page-apply-shared\" /* StyleIsolation.PageApplyShared */) {\n styleScope = this.styleScopeManager.register(this.getStyleScopeName(is) || `__${guid()}`);\n extraStyleScope = this._$sharedStyleScope;\n }\n else if ((styleIsolation === \"shared\" /* StyleIsolation.Shared */ || styleIsolation === \"page-shared\" /* StyleIsolation.PageShared */) &&\n this._$isMainSpace) {\n styleScope = this._$sharedStyleScope;\n }\n else {\n styleScope = this.styleScopeManager.register(this.getStyleScopeName(is) || `__${guid()}`);\n }\n // construct component options\n const ret = {\n idPrefixGenerator: guid,\n multipleSlots: options === null || options === void 0 ? void 0 : options.multipleSlots,\n pureDataPattern,\n virtualHost: options === null || options === void 0 ? void 0 : options.virtualHost,\n styleScope,\n extraStyleScope,\n dataDeepCopy: options === null || options === void 0 ? void 0 : options.dataDeepCopy,\n propertyPassingDeepCopy: options === null || options === void 0 ? void 0 : options.propertyPassingDeepCopy,\n propertyEarlyInit: options === null || options === void 0 ? void 0 : options.propertyEarlyInit,\n };\n return [ret, styleIsolation];\n }\n /**\n * Create a component definition environment\n *\n * During the sync execution of `cb` , `Component` and `Behavior` global vars will be available.\n * `globalObject` should be the JavaScript global object, a.k.a. `window` in DOM.\n * Some global variables, a.k.a `Component` `Behavior` `Page` ,\n * will be written into `globalObject` .\n * `path` should be the component path (without \".js\" extension).\n */\n globalComponentEnv(globalObject, path, cb) {\n return this.componentEnv(path, ({ Page, Component, Behavior }) => {\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n /* eslint-disable @typescript-eslint/no-unsafe-assignment */\n const oldPage = globalObject.Page;\n const oldComponent = globalObject.Component;\n const oldBehavior = globalObject.Behavior;\n globalObject.Page = Page;\n globalObject.Component = Component;\n globalObject.Behavior = Behavior;\n const ret = cb();\n globalObject.Page = oldPage;\n globalObject.Component = oldComponent;\n globalObject.Behavior = oldBehavior;\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n /* eslint-enable @typescript-eslint/no-unsafe-assignment */\n return ret;\n });\n }\n /**\n * Create a component definition environment\n *\n * Like `globalComponentEnv` , but the global variables are given as callback arguments.\n */\n componentEnv(path, cb) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const self = this;\n // The page constructor\n function pageConstructor(definition) {\n return self.component(path).pageDefinition(definition).register();\n }\n function componentConstructor(definition) {\n if (definition !== undefined) {\n return self.component(path).definition(definition).register();\n }\n return self.component(path);\n }\n function behaviorConstructor(definition) {\n if (definition !== undefined) {\n return self.behavior().definition(definition).register();\n }\n return self.behavior();\n }\n behaviorConstructor.trait = self.traitBehavior.bind(self);\n // prepare global vars and execute\n return cb({\n Page: pageConstructor,\n Component: componentConstructor,\n Behavior: behaviorConstructor,\n });\n }\n /**\n * Build a component outside of a definition environment\n *\n * The method do not need a definition environment, so the global object pollution is avoided.\n * `path` should be the component path (without \".js\" extension).\n */\n component(path) {\n return ComponentBuilder.create(this, path, this.waitingAliasMap[path]);\n }\n /**\n * Build a behavior outside of a definition environment\n *\n * The method do not need a definition environment, so the global object pollution is avoided.\n * `path` should be the component path (without \".js\" extension).\n */\n behavior() {\n return BehaviorBuilder.create(this);\n }\n traitBehavior(trans) {\n if (trans === undefined) {\n return new TraitBehavior(this.space.defineTraitBehavior());\n }\n return new TraitBehavior(this.space.defineTraitBehavior(trans));\n }\n}\n//# sourceMappingURL=space.js.map","import * as glassEasel from 'glass-easel';\nimport { AssociatedBackend } from './backend';\nimport { CodeSpace } from './space';\n/**\n * A mini-program API environment\n *\n * Each environment manages multiple backend contexts.\n * However, a backend context should be exclusively managed by a single environment\n * (to avoid `StyleScopeId` confliction).\n * It is able to create multiple `CodeSpace` within the environment.\n */\nexport class MiniProgramEnv {\n /**\n * Create an empty mini-program API environment\n */\n constructor() {\n this.codeSpaceMap = Object.create(null);\n this.globalCodeSpace = new CodeSpace(this, false, {});\n }\n /**\n * Get a global code space in which global components can be defined\n *\n * External glass-easel based components can be defined in this code space.\n * All global components should be defined before any other `CodeSpace` created!\n */\n getGlobalCodeSpace() {\n return this.globalCodeSpace;\n }\n /**\n * Associate a backend context\n *\n * If `backendContext` is not given, the DOM-based backend is used\n * (causes failure if running outside browsers).\n * The backend context SHOULD NOT be associated by other environments!\n */\n associateBackend(backendContent) {\n const ctx = backendContent !== null && backendContent !== void 0 ? backendContent : new glassEasel.CurrentWindowBackendContext();\n return new AssociatedBackend(this, ctx);\n }\n /**\n * Create a component space that can manage WXML, WXSS, JS and static JSON config files\n *\n * The space can be specified as a *main* space.\n * This makes some features available:\n * * the `app.wxss` will be used as a style sheet for all root components in the space;\n * * the `StyleIsolation.Shared` is accepted for components in the space.\n * Non-main spaces usually act as plugins.\n * `publicComponents` is a map for specifying a map of aliases and component paths.\n */\n createCodeSpace(id, isMainSpace, publicComponents = Object.create(null)) {\n const cs = new CodeSpace(this, isMainSpace, publicComponents, this.globalCodeSpace);\n this.codeSpaceMap[id] = cs;\n return cs;\n }\n /**\n * Get a component space by the `id` specified when created\n */\n getCodeSpace(id) {\n return this.codeSpaceMap[id];\n }\n}\n//# sourceMappingURL=env.js.map","export { typeUtils as utils } from 'glass-easel';\nexport var StyleIsolation;\n(function (StyleIsolation) {\n StyleIsolation[\"Isolated\"] = \"isolated\";\n StyleIsolation[\"ApplyShared\"] = \"apply-shared\";\n StyleIsolation[\"Shared\"] = \"shared\";\n StyleIsolation[\"PageIsolated\"] = \"page-isolated\";\n StyleIsolation[\"PageApplyShared\"] = \"page-apply-shared\";\n StyleIsolation[\"PageShared\"] = \"page-shared\";\n})(StyleIsolation || (StyleIsolation = {}));\n//# sourceMappingURL=types.js.map"],"names":["AssociatedBackend","constructor","env","backendContext","this","_$env","_$","registerStyleSheetContent","url","content","createRoot","tagName","codeSpace","genericTargets","Error","Root","_$comp","getComponentSpace","createComponentByUrl","isMainSpace","globalStyleSheet","getStyleSheet","undefined","styleIsolation","_$styleIsolationMap","is","appendStyleSheetPath","_$sharedStyleScope","addStyleSheet","comp","styleScope","getComponentOptions","path","glassEasel","StyleScopeManager","globalScope","getRootBehavior","getComponentDependencies","forEach","getComponentDefinition","getComponent","attach","parent","placeholder","Element","replaceDocumentElement","release","pretendDetached","destroyBackendElement","joinAsync","inits","cb","initDone","jobCount","length","rets","Array","init","index","ret","setTimeout","NodesRef","selectorQuery","component","selector","selectSingle","_$sq","_$sel","_$single","fields","_$push","boundingClientRect","id","dataset","rect","size","scrollOffset","SelectorQuery","_$queue","select","selectAll","selectViewport","single","push","exec","q","map","req","done","res","ctx","getBackendContext","width","getWindowWidth","height","getWindowHeight","mark","left","top","right","bottom","rootComp","general","ownerShadowRoot","getHostNode","getBoundingClientRect","scrollLeft","scrollTop","scrollWidth","scrollHeight","constructSingleRes","elem","collectMarks","getScrollOffset","properties","Component","isComponent","propName","hasProperty","ds","propertyPassingDeepCopy","v","data","DeepCopyKind","None","Simple","dataUtils","simpleDeepCopy","SimpleWithRecursion","deepCopy","node","getShadowRoot","querySelector","nodes","querySelectorAll","resList","defaultMargins","IntersectionObserver","thresholds","initialRatio","observeAll","_$selector","_$margins","_$observers","_$thresholds","_$initialRatio","_$observeAll","relativeTo","margins","relativeToViewport","observe","targetSelector","listener","shadowRoot","targets","relativeElement","rel","margin","target","initial","observer","createIntersectionObserver","args","i","threshold","intersectionRatio","disconnect","observers","MediaQueryObserver","_$observer","descriptor","_a","_b","createMediaQueryObserver","call","filterComponentExportWithType","source","componentType","asInstanceOf","selectedSpace","ownerSpace","uncheckedCaller","getMethodCaller","caller","ComponentCaller","sourceSpace","defaultResult","_$export","filterComponentExport","value","Object","defineProperty","writable","enumerable","configurable","groupSetData","callback","setData","triggerRender","updateData","newData","replaceDataOnPath","spliceArrayDataOnPath","del","inserts","applyDataUpdates","groupUpdates","hasBehavior","behavior","traitBehavior","triggerEvent","name","detail","options","createSelectorQuery","selectComponent","selectAllComponents","r","selectOwnerComponent","_c","getRelationNodes","relationKey","ComponentProto","methods","componentExport","proto","create","prototype","assign","derive","guid","Math","floor","random","toString","slice","Behavior","inner","parents","definitionFilter","definitionFilterArgs","p","_$bindedDefinitionFilter","childDef","ComponentType","TraitBehavior","BaseBehaviorBuilder","_$parents","implement","impl","externalClasses","list","f","gen","property","def","funcs","paths","func","once","lifetime","pageLifetime","relation","type","linked","linkChanged","unlinked","linkFailed","method","methodCaller","self","definition","behaviors","beh","rawProperties","rawData","rawObservers","created","attached","ready","moved","detached","lifetimes","rawLifetimes","pageLifetimes","rawPageLifetimes","relations","rawRelations","export","exports","staticData","keys","isArray","BehaviorBuilder","_$codeSpace","defineWithMethodCaller","chainingFilter","super","_$definitionFilter","register","registerBehavior","ComponentBuilder","alias","overallBehavior","_$overallBehavior","_$is","_$alias","methodCallerInit","originalCaller","_$proto","getMethods","_$options","pageDefinition","freeData","compDef","k","prepareComponentOptions","staticConfig","getComponentStaticConfig","using","usingComponents","generics","componentGenerics","componentPlaceholder","placeholders","template","getCompiledTemplate","registerComponent","exportComponent","CodeSpace","publicComponents","globalCodeSpace","_$isMainSpace","space","ComponentSpace","styleScopeManager","staticConfigMap","styleSheetMap","compiledTemplateMap","waitingAliasMap","setOverallBehavior","importCodeSpace","domainAlias","privateImport","cs","getCodeSpace","importSpace","styleSheetUrl","styleScopeName","getStyleScopeName","addCompiledTemplate","addComponentStaticConfig","pureDataPatternString","pureDataPattern","RegExp","addGlobalClass","extraStyleScope","idPrefixGenerator","multipleSlots","virtualHost","dataDeepCopy","propertyEarlyInit","globalComponentEnv","globalObject","componentEnv","Page","oldPage","oldComponent","oldBehavior","behaviorConstructor","trait","bind","trans","defineTraitBehavior","MiniProgramEnv","codeSpaceMap","getGlobalCodeSpace","associateBackend","backendContent","CurrentWindowBackendContext","createCodeSpace","StyleIsolation"],"mappings":"8FAIO,MAAMA,EAET,WAAAC,CAAYC,EAAKC,GACbC,KAAKC,MAAQH,EACbE,KAAKE,GAAKH,CACb,CAOD,yBAAAI,CAA0BC,EAAKC,GAC3BL,KAAKE,GAAGC,0BAA0BC,EAAKC,EAC1C,CAOD,UAAAC,CAAWC,EAASC,EAAWJ,EAAKK,GAChC,GAAIT,KAAKC,QAAUO,EAAUP,MACzB,MAAM,IAAIS,MAAM,gEACpB,OAAO,IAAIC,EAAKX,KAAKE,GAAIK,EAASC,EAAWJ,EAAKK,EACrD,EAKE,MAAME,EAET,WAAAd,CAAYE,EAAgBQ,EAASC,EAAWJ,EAAKK,GAIjD,GAHAT,KAAKY,OAASJ,EACTK,oBACAC,qBAAqBP,EAASH,EAAKK,GAAkB,KAAMV,GAC5DS,EAAUO,cAAe,CACzB,MAAMC,EAAmBR,EAAUS,cAAc,OACjD,QAAyBC,IAArBF,EAAgC,CAChC,MAAMG,EAAiBX,EAAUY,oBAAoBpB,KAAKY,OAAOS,IAC1C,aAAnBF,GACmB,iBAAnBA,GACmB,WAAnBA,GACApB,EAAeuB,qBAAqBN,EAAkBR,EAAUe,mBAEvE,CACJ,CACD,MAAMC,EAAiBC,IACnB,MAAMC,WAAEA,GAAeD,EAAKE,sBACtBC,EAAOpB,EAAUS,cAAcQ,EAAKJ,SAC7BH,IAATU,GACA7B,EAAeuB,qBAAqBM,EAAMF,QAA+CA,EAAaG,EAAWC,kBAAkBC,cACtI,EAEL/B,KAAKY,OAAOoB,kBAAkBC,2BAA2BC,QAAQV,GACjEA,EAAcxB,KAAKY,OAAOuB,yBAC7B,CAID,YAAAC,GACI,OAAOpC,KAAKY,MACf,CAQD,MAAAyB,CAAOC,EAAQC,GACXV,EAAWW,QAAQC,uBAAuBzC,KAAKY,OAAQ0B,EAAQC,EAClE,CAOD,OAAAG,GACIb,EAAWW,QAAQG,gBAAgB3C,KAAKY,QACxCZ,KAAKY,OAAOgC,uBACf,ECrFL,MAAMC,EAAY,CAACC,EAAOC,KACtB,IAAIC,GAAW,EACXC,EAAWH,EAAMI,OACrB,MAAMC,EAAO,IAAIC,MAAMH,GACvBH,EAAMZ,SAAQ,CAACmB,EAAMC,KACjBD,GAAME,IACFJ,EAAKG,GAASC,EACdN,GAAY,EACK,IAAbA,GAAkBD,GAClBD,EAAGI,EACN,GACH,IAENH,GAAW,EACM,IAAbC,GACAO,YAAW,KACPT,EAAGI,EAAK,GACT,EACN,EAEL,MAAMM,EACF,WAAA5D,CAAY6D,EAAeC,EAAWC,EAAUC,GAC5C7D,KAAK8D,KAAOJ,EACZ1D,KAAKY,OAAS+C,EACd3D,KAAK+D,MAAQH,EACb5D,KAAKgE,SAAWH,CACnB,CACD,MAAAI,CAAOA,EAAQlB,EAAK,UAIhB,OADA/C,KAAK8D,KAAKI,OAAOlE,KAAK+D,MAAO/D,KAAKY,OAAQZ,KAAKgE,SAAUC,EAAQlB,GAC1D/C,KAAK8D,IACf,CACD,kBAAAK,CAAmBpB,EAAK,UASpB,OANA/C,KAAK8D,KAAKI,OAAOlE,KAAK+D,MAAO/D,KAAKY,OAAQZ,KAAKgE,SAAU,CACrDI,IAAI,EACJC,SAAS,EACTC,MAAM,EACNC,MAAM,GACPxB,GACI/C,KAAK8D,IACf,CACD,YAAAU,CAAazB,EAAK,UAQd,OALA/C,KAAK8D,KAAKI,OAAOlE,KAAK+D,MAAO/D,KAAKY,OAAQZ,KAAKgE,SAAU,CACrDI,IAAI,EACJC,SAAS,EACTG,cAAc,GACfzB,GACI/C,KAAK8D,IACf,EAGE,MAAMW,EAET,WAAA5E,CAAY8D,GACR3D,KAAKY,OAAS+C,EACd3D,KAAK0E,QAAU,EAClB,CAED,GAAGf,GAEC,OADA3D,KAAKY,OAAS+C,EACP3D,IACV,CAED,MAAA2E,CAAOf,GACH,OAAO,IAAIH,EAASzD,KAAMA,KAAKY,OAAQgD,GAAU,EACpD,CAED,SAAAgB,CAAUhB,GACN,OAAO,IAAIH,EAASzD,KAAMA,KAAKY,OAAQgD,GAAU,EACpD,CAMD,cAAAiB,GACI,OAAO,IAAIpB,EAASzD,KAAMA,KAAKY,OAAQ,MAAM,EAChD,CAED,MAAAsD,CAAON,EAAUD,EAAWmB,EAAQb,EAAQlB,GACxC/C,KAAK0E,QAAQK,KAAK,CACdpB,YACAC,WACAkB,SACAb,SACAlB,MAEP,CAMD,IAAAiC,CAAKjC,EAAK,UAGN,MAAMkC,EAAIjF,KAAK0E,QACf7B,EAAUoC,EAAEC,KAAKC,GAASC,IACtB,MAAMzB,UAAEA,EAASC,SAAEA,EAAQkB,OAAEA,EAAMb,OAAEA,EAAMlB,GAAEA,GAAOoC,EACpD,GAAiB,OAAbvB,EAAmB,CAEnB,MAAMyB,EAAM,CAAA,EACZxC,EAAU,CACLuC,IACG,MAAME,EAAM3B,EAAUzD,GAAGqF,oBACnBC,EAAQF,EAAMA,EAAIG,iBAAmB,EACrCC,EAASJ,EAAMA,EAAIK,kBAAoB,EAiB7C,GAhBI1B,EAAOG,KACPiB,EAAIjB,GAAK,IACTH,EAAOI,UACPgB,EAAIhB,QAAU,IACdJ,EAAO2B,OACPP,EAAIO,KAAO,IACX3B,EAAOK,OACPe,EAAIQ,KAAO,EACXR,EAAIS,IAAM,EACVT,EAAIU,MAAQP,EACZH,EAAIW,OAASN,GAEbzB,EAAOM,OACPc,EAAIG,MAAQA,EACZH,EAAIK,OAASA,GAEbzB,EAAOO,aAAc,CACrB,IAAIyB,EAAWtC,EAAUzD,GAAGgG,UAC5B,KAAOD,EAASE,iBACZF,EAAWA,EAASE,gBAAgBC,cAExCH,EAASI,uBAAsB,EAAGR,OAAMC,MAAKN,QAAOE,aAChDL,EAAIiB,WAAaT,EACjBR,EAAIkB,UAAYT,EAChBT,EAAImB,YAAchB,EAClBH,EAAIoB,aAAef,EACnBN,OAAKlE,EAAU,GAEtB,MAEGkE,OAAKlE,EACR,IAEN,KACC6B,EAAGsC,GACHD,EAAKC,EAAI,GAEhB,KACI,CAED,MAAMqB,EAAqB,CAACC,EAAM5D,KAC9B,MAAMsC,EAAM,CAAA,EACRpB,EAAOG,KACPiB,EAAIjB,GAAKuC,EAAKvC,IACdH,EAAOI,UACPgB,EAAIhB,QAAUsC,EAAKtC,SACnBJ,EAAO2B,OACPP,EAAIO,KAAOe,EAAKC,gBACpB/D,EAAU,CACLuC,IACOnB,EAAOK,MAAQL,EAAOM,KACtBoC,EAAKN,uBAAuB/B,IACpBL,EAAOK,OACPe,EAAIQ,KAAOvB,EAAKuB,KAChBR,EAAIS,IAAMxB,EAAKwB,IACfT,EAAIU,MAAQzB,EAAKuB,KAAOvB,EAAKkB,MAC7BH,EAAIW,OAAS1B,EAAKwB,IAAMxB,EAAKoB,QAE7BzB,EAAOM,OACPc,EAAIG,MAAQlB,EAAKkB,MACjBH,EAAIK,OAASpB,EAAKoB,QAEtBN,OAAKlE,EAAU,IAInBkE,OAAKlE,EACR,EAEJkE,IACOnB,EAAOO,aACPmC,EAAKE,iBAAiBvC,IAClBe,EAAIiB,WAAahC,EAAKgC,WACtBjB,EAAIkB,UAAYjC,EAAKiC,UACrBlB,EAAImB,YAAclC,EAAKkC,YACvBnB,EAAIoB,aAAenC,EAAKmC,aACxBrB,OAAKlE,EAAU,IAInBkE,OAAKlE,EACR,IAEN,KACK+C,EAAO6C,YACHjF,EAAWkF,UAAUC,YAAYL,IACjC1C,EAAO6C,WAAW5E,SAAS+E,IACvB,GAAIpF,EAAWkF,UAAUG,YAAYP,EAAMM,GAAW,CAClD,MAAME,EAAKR,EAAKhF,sBAAsByF,wBAChCC,EAAIV,EAAKW,KAAKL,GAChBE,IAAOtF,EAAW0F,aAAaC,KAC/BnC,EAAI4B,GAAYI,EAEXF,IAAOtF,EAAW0F,aAAaE,OACpCpC,EAAI4B,GAAYpF,EAAW6F,UAAUC,eAAeN,GAE/CF,IAAOtF,EAAW0F,aAAaK,sBACpCvC,EAAI4B,GAAYpF,EAAW6F,UAAUG,SAASR,GAAG,GAExD,KAIbtE,EAAGsC,EAAI,GACT,EAEN,GAAIP,EAAQ,CAER,MAAMgD,EAAOnE,EAAUzD,GAAG6H,gBAAgBC,cAAcpE,GACpDkE,EACApB,EAAmBoB,GAAOzC,IACtBtC,EAAGsC,GACHD,EAAKC,EAAI,IAIb7B,YAAW,KACPT,EAAG,MACHqC,EAAK,KAAK,GACX,EAEV,KACI,CAED,MAAM6C,EAAQtE,EAAUzD,GAAG6H,gBAAgBG,iBAAiBtE,GAC5Df,EAAUoF,EAAM/C,KAAK4C,GAAU1C,IAC3BsB,EAAmBoB,GAAOzC,IACtBD,EAAKC,EAAI,GACX,KACD8C,IACDpF,EAAGoF,GACH/C,EAAK+C,EAAQ,GAEpB,CACJ,KACDpF,EACP,ECzPL,MAAMqF,EAAiB,CACnBvC,KAAM,EACNC,IAAK,EACLC,MAAO,EACPC,OAAQ,GAEL,MAAMqC,EAET,WAAAxI,CAAY4B,EAAM6G,EAAYC,EAAcC,GACxCxI,KAAKyI,WAAa,KAClBzI,KAAK0I,UAAY,KACjB1I,KAAK2I,YAAc,GACnB3I,KAAKY,OAASa,EACdzB,KAAK4I,aAAeN,EACpBtI,KAAK6I,eAAiBN,EACtBvI,KAAK8I,aAAeN,CACvB,CACD,UAAAO,CAAWnF,EAAUoF,GAGjB,OAFAhJ,KAAKyI,WAAa7E,EAClB5D,KAAK0I,UAAYM,QAAyCA,EAAUZ,EAC7DpI,IACV,CACD,kBAAAiJ,CAAmBD,GAGf,OAFAhJ,KAAKyI,WAAa,KAClBzI,KAAK0I,UAAYM,QAAyCA,EAAUZ,EAC7DpI,IACV,CACD,OAAAkJ,CAAQC,EAAgBC,GACpB,MAAMC,EAAarJ,KAAKY,OAAOV,GAAG6H,gBAClC,IAAIuB,EAgBAC,EAfJ,GAAKF,EAGA,GAAIrJ,KAAK8I,aACVQ,EAAUD,EAAWnB,iBAAiBiB,OAErC,CACD,MAAMxC,EAAO0C,EAAWrB,cAAcmB,GAElCG,EADS,OAAT3C,EACU,GAGA,CAACA,EAElB,MAbG2C,EAAU,GAed,GAAwB,OAApBtJ,KAAKyI,YAAwBY,EAG5B,CACD,MAAMG,EAAMH,EAAWrB,cAAchI,KAAKyI,YAC9B,OAARe,IAIAD,EAAkBC,EAEzB,MAVGD,EAAkB,KAWtB,IAAKvJ,KAAK0I,UACN,MAAM,IAAIhI,MAAM,wEAEpB,MAAMmF,KAAEA,EAAIC,IAAEA,EAAGC,MAAEA,EAAKC,OAAEA,GAAWhG,KAAK0I,UACpCe,EAAS,GAAG3D,OAASC,OAAWC,OAAYH,MAClDyD,EAAQpH,SAASwH,IACb,IAAIC,EAAU3J,KAAK6I,eACnB,MAAMe,EAAWF,EAAOG,2BAA2BN,EAAiBE,EAAQzJ,KAAK4I,cAAekB,IAC5F,GAAgB,OAAZH,EAAkB,CAClB,IAAII,EAAI,EACR,KAAOA,EAAI/J,KAAK4I,aAAa1F,OAAQ6G,GAAK,EAAG,CACzC,MAAMC,EAAYhK,KAAK4I,aAAamB,GACpC,GAAIJ,IAAYG,EAAKG,oBAEhBN,EAAUK,IAAcF,EAAKG,kBAAoBD,IAAc,EAChE,KACP,CAED,GADAL,EAAU,KACNI,EAAI/J,KAAK4I,aAAa1F,OACtB,MACP,CACDkG,EAASU,EAAK,IAED,OAAbF,GAIA5J,KAAK2I,YAAY5D,KAAK6E,EACzB,GAER,CACD,UAAAM,GACI,MAAMC,EAAYnK,KAAK2I,YACvB3I,KAAK2I,YAAc,GACnBwB,EAAUjI,SAAS0H,GAAaA,EAASM,cAC5C,EC7FE,MAAME,EAET,WAAAvK,CAAY4B,GACRzB,KAAKqK,WAAa,KAClBrK,KAAKY,OAASa,CACjB,CACD,OAAAyH,CAAQoB,EAAYlB,GAChB,IAAImB,EAAIC,EACJxK,KAAKqK,YACLrK,KAAKqK,WAAWH,aACpBlK,KAAKqK,YACsH,QAArHG,EAAmD,QAA7CD,EAAKvK,KAAKY,OAAOV,GAAGqF,2BAAwC,IAAPgF,OAAgB,EAASA,EAAGE,gCAA6C,IAAPD,OAAgB,EAASA,EAAGE,KAAKH,EAAID,EAAYlB,KAAc,IACrM,CACD,UAAAc,GACQlK,KAAKqK,YACLrK,KAAKqK,WAAWH,aACpBlK,KAAKqK,WAAa,IACrB,ECbL,MAAMM,EAAgC,CAACC,EAAQjE,EAAMkE,KACjD,IAAIN,EACJ,MAAM9I,EAAOkF,EAAKmE,aAAaD,EAAc3K,IAC7C,GAAa,OAATuB,EACA,OACJ,MAAMsJ,EAAgBtJ,EAAKO,kBAAkBgJ,WACvCC,EAAkBxJ,EAAKyJ,kBACvBC,EAASF,aAA2BG,EAAkBH,EAAkB,KACxEI,EAAcT,EAAO1K,GAAG8B,kBAAkBgJ,WAC1CM,EAAgBP,IAAkBM,EAAc,KAAOF,EACvD5H,EAAiF,QAA1EgH,EAAKY,aAAuC,EAASA,EAAOI,gBAA6B,IAAPhB,OAAgB,EAASA,EAAGG,KAAKS,EAAQJ,IAAkBM,EAAc,KAAOT,GAC/K,YAAY1J,IAARqC,EAEO+H,EAGJ/H,CAAG,EAERiI,EAAwB,CAACZ,EAAQjE,KACnC,IAAI4D,EACJ,GAAI1I,EAAWkF,UAAUC,YAAYL,GAAO,CACxC,MAAMoE,EAAgBpE,EAAK3E,kBAAkBgJ,WAEvCC,EAAkBtE,EAAKuE,kBACvBC,EAASF,aAA2BG,EAAkBH,EAAkB,KACxEI,EAAcT,EAAO1K,GAAG8B,kBAAkBgJ,WAC1CM,EAAgBP,IAAkBM,EAAc,KAAOF,EAEvD5H,EAAiF,QAA1EgH,EAAKY,aAAuC,EAASA,EAAOI,gBAA6B,IAAPhB,OAAgB,EAASA,EAAGG,KAAKS,EAAQJ,IAAkBM,EAAc,KAAOT,GAC/K,YAAY1J,IAARqC,EACO+H,EAEJ/H,CACV,CACe,EAEb,MAAM6H,EAET,MAAI/J,GACA,OAAOrB,KAAKE,GAAGmB,EAClB,CACD,MAAIA,CAAGoK,GACHC,OAAOC,eAAe3L,KAAM,KAAM,CAC9ByL,QACAG,UAAU,EACVC,YAAY,EACZC,cAAc,GAErB,CAED,MAAI1H,GACA,OAAOpE,KAAKE,GAAGkE,EAClB,CACD,MAAIA,CAAGqH,GACHC,OAAOC,eAAe3L,KAAM,KAAM,CAC9ByL,QACAG,UAAU,EACVC,YAAY,EACZC,cAAc,GAErB,CAED,WAAIzH,GACA,OAAOrE,KAAKE,GAAGmE,OAClB,CACD,WAAIA,CAAQoH,GACRC,OAAOC,eAAe3L,KAAM,UAAW,CACnCyL,QACAG,UAAU,EACVC,YAAY,EACZC,cAAc,GAErB,CAED,QAAIxE,GACA,OAAOtH,KAAKE,GAAGoH,IAClB,CACD,QAAIA,CAAKmE,GACLC,OAAOC,eAAe3L,KAAM,OAAQ,CAChCyL,QACAG,UAAU,EACVC,YAAY,EACZC,cAAc,GAErB,CAED,cAAIhF,GACA,OAAO9G,KAAKE,GAAGoH,IAClB,CACD,cAAIR,CAAW2E,GACXC,OAAOC,eAAe3L,KAAM,aAAc,CACtCyL,QACAG,UAAU,EACVC,YAAY,EACZC,cAAc,GAErB,CASD,YAAAC,CAAaC,GACTA,GACH,CACD,OAAAC,CAAQ3E,EAAM0E,GACVhM,KAAKE,GAAG+L,QAAQ3E,GACZ0E,GACAnK,EAAWqK,cAAclM,KAAKE,IAAI,KAC9B8L,GAAU,GAGrB,CACD,UAAAG,CAAWC,GACPpM,KAAKE,GAAGiM,WAAWC,EACtB,CACD,iBAAAC,CAAkBzK,EAAM0F,GACpBtH,KAAKE,GAAGmM,kBAAkBzK,EAAM0F,EACnC,CACD,qBAAAgF,CAAsB1K,EAAM0B,EAAOiJ,EAAKC,GACpCxM,KAAKE,GAAGoM,sBAAsB1K,EAAM0B,EAAOiJ,EAAKC,EACnD,CAMD,gBAAAC,GACIzM,KAAKE,GAAGuM,kBACX,CAQD,YAAAC,CAAaV,GACT,OAAOhM,KAAKE,GAAGwM,aAAaV,EAC/B,CAID,WAAAW,CAAYC,GACR,OAAO5M,KAAKE,GAAGyM,YAAYC,EAAS1M,GACvC,CAMD,aAAA2M,CAAcA,GACV,OAAO7M,KAAKE,GAAG2M,cAAcA,EAAc3M,GAC9C,CAED,YAAA4M,CAAaC,EAAMC,EAAQC,GACvB,OAAOjN,KAAKE,GAAG4M,aAAaC,EAAMC,EAAQC,EAC7C,CAED,mBAAAC,GACI,OAAO,IAAIzI,EAAczE,KAC5B,CAED,0BAAA6J,CAA2BoD,GACvB,OAAO,IAAI5E,EAAqBrI,MAAOiN,aAAyC,EAASA,EAAQ3E,aAAe,CAAC,IAAK2E,aAAyC,EAASA,EAAQ1E,eAAiB,GAAI0E,aAAyC,EAASA,EAAQzE,cAAe,EACjR,CAED,wBAAAiC,GACI,OAAO,IAAIL,EAAmBpK,KACjC,CACD,eAAAmN,CAAgBvJ,EAAUiH,GACtB,IAAIN,EAAIC,EACR,MAAMd,EAAS1J,KAAKE,GAAG6H,gBAAgBC,cAAcpE,GACrD,OAAe,OAAX8F,EACO,KACJmB,EACqE,QAArEN,EAAKI,EAA8B3K,KAAM0J,EAAQmB,UAAmC,IAAPN,EAAgBA,EAAK,KACpD,QAA9CC,EAAKgB,EAAsBxL,KAAM0J,UAA4B,IAAPc,EAAgBA,EAAK,IACrF,CACD,mBAAA4C,CAAoBxJ,EAAUiH,GAC1B,MAAMvB,EAAUtJ,KAAKE,GAAG6H,gBAAgBG,iBAAiBtE,GACnDL,EAAM,GASZ,OARA+F,EAAQpH,SAASwH,IAEb,MAAM2D,EAAIxC,EACJF,EAA8B3K,KAAM0J,EAAQmB,GAC5CW,EAAsBxL,KAAM0J,QACxBxI,IAANmM,GACA9J,EAAIwB,KAAKsI,EAAE,IAEZ9J,CACV,CACD,oBAAA+J,CAAqBzC,GACjB,IAAIN,EAAIC,EAAI+C,EACZ,MAAM7D,EAA4C,QAAlCa,EAAKvK,KAAKE,GAAGiG,uBAAoC,IAAPoE,OAAgB,EAASA,EAAGnE,cACtF,YAAelF,IAAXwI,EACO,KACJmB,EACqE,QAArEL,EAAKG,EAA8B3K,KAAM0J,EAAQmB,UAAmC,IAAPL,EAAgBA,EAAK,KACpD,QAA9C+C,EAAK/B,EAAsBxL,KAAM0J,UAA4B,IAAP6D,EAAgBA,EAAK,IACrF,CACD,gBAAAC,CAAiBC,GACb,OAAOzN,KAAKE,GAAGsN,iBAAiBC,GAAavI,KAAKwE,GAAWA,EAAOwB,mBACvE,CAED,OAAAhF,GACI,OAAOlG,IACV,CAMD,YAAA8K,CAAaD,GAET,OADc7K,KAAKE,GAAG4K,aAAaD,EAAc3K,IAG1CF,KADI,IAEd,EAEE,MAAM0N,EACT,WAAA7N,CAAY8N,EAASC,GACjB5N,KAAK6N,MAAQnC,OAAOoC,OAAO1C,EAAgB2C,WAC3CrC,OAAOsC,OAAOhO,KAAK6N,MAAOF,GAC1B3N,KAAK6N,MAAMtC,SAAWqC,CACzB,CACD,MAAAK,GACI,OAAOvC,OAAOoC,OAAO9N,KAAK6N,MAC7B,2EC3OE,MAAMK,EAAO,IAAMC,KAAKC,MAA4B,YAArB,EAAID,KAAKE,WAC1CC,SAAS,IACTC,MAAM,GCFJ,MAAMC,EAET,WAAA3O,CAAY4O,EAAOC,EAASC,EAAkBf,GAI1C,GAHA5N,KAAKE,GAAKuO,EACVzO,KAAKuL,SAAWqC,OAES1M,IAArByN,EAAgC,CAChC,MAAMC,EAAuBF,EAAQxJ,KAAK2J,IAAQ,IAAItE,EAAI,OAA6C,QAArCA,EAAKsE,EAAEC,gCAA6C,IAAPvE,EAAgBA,EAAK,IAAI,IACxIvK,KAAK8O,yBAA4BC,IAC7BJ,EAAiBI,EAAUH,EAAqB,CAEvD,CACJ,EAEE,MAAMI,EAET,WAAAnP,CAAY4O,GACRzO,KAAKE,GAAKuO,CACb,EAEE,MAAMQ,EACT,WAAApP,CAAY4O,GACRzO,KAAKE,GAAKuO,CACb,ECpBE,MAAMS,EACT,WAAArP,GACIG,KAAKmP,UAAY,EACpB,CAED,SAAAC,CAAUvC,EAAewC,GAErB,OADArP,KAAKE,GAAGkP,UAAUvC,EAAc3M,GAAImP,GAC7BrP,IACV,CAED,eAAAsP,CAAgBC,GAEZ,OADAvP,KAAKE,GAAGoP,gBAAgBC,GACjBvP,IACV,CAED,OAAOwP,GAGH,OADAxP,KAAKuL,SAAWiE,EACTxP,IACV,CACD,IAAAsH,CAAKmI,GAED,OADAzP,KAAKE,GAAGoH,KAAKmI,GACNzP,IACV,CACD,QAAA0P,CAAS3C,EAAM4C,GAEX,OADA3P,KAAKE,GAAGwP,SAAS3C,EAAM4C,GAChB3P,IACV,CAMD,OAAA2N,CAAQiC,GAEJ,OADA5P,KAAKE,GAAGyN,QAAQiC,GACT5P,IACV,CACD,QAAA4J,CAASiG,EAAOC,EAAMC,GAAO,GAEzB,OADA/P,KAAKE,GAAG0J,SAASiG,EAAOC,EAAMC,GACvB/P,IACV,CAID,QAAAgQ,CAASjD,EAAM+C,EAAMC,GAAO,GAExB,OADA/P,KAAKE,GAAG8P,SAASjD,EAAM+C,EAAMC,GACtB/P,IACV,CAID,YAAAiQ,CAAalD,EAAM+C,EAAMC,GAAO,GAE5B,OADA/P,KAAKE,GAAG+P,aAAalD,EAAM+C,EAAMC,GAC1B/P,IACV,CAID,QAAAkQ,CAASnD,EAAMvD,GACX,MAAME,EAASF,EAAIE,kBAAkB8E,GAAYhF,EAAIE,kBAAkBsF,EACjExF,EAAIE,OAAOxJ,GACXsJ,EAAIE,OASV,OARA1J,KAAKE,GAAGgQ,SAASnD,EAAM,CACnBrD,SACAyG,KAAM3G,EAAI2G,KACVC,OAAQ5G,EAAI4G,OACZC,YAAa7G,EAAI6G,YACjBC,SAAU9G,EAAI8G,SACdC,WAAY/G,EAAI+G,aAEbvQ,IACV,CACD,IAAAqD,CAAKyM,GAiDD,OAhDA9P,KAAKE,GAAGmD,MAAK,UAAUiE,KAAEA,EAAI2E,QAAEA,EAAOmD,UAAEA,EAASc,SAAEA,EAAQtG,SAAEA,EAAQoG,SAAEA,EAAQC,aAAEA,EAAYO,OAAEA,EAAMpH,SAAEA,IACnG,MA0BMqH,EAAezQ,KACrB,OAAO8P,EAAKpF,KAAK+F,EAAc,CAC3BC,KAAMD,EACNnJ,OACA2E,QAAS,CAACG,EAASJ,KACfC,EAAQG,GACJJ,GACAnK,EAAWqK,cAAcuE,EAAavQ,IAAI,KACtC8L,GAAU,GAEjB,EAELoD,UAfe,CAAKvC,EAAewC,KACnCD,EAAUvC,EAAc3M,GAAImP,EAC/B,EAcGa,SAvCmB1G,IACnB,GAAIA,EAAIE,kBAAkBuF,EACtB,OAAOiB,EAAS,CACZxG,OAAQF,EAAIE,OAAOxJ,GACnBiQ,KAAM3G,EAAI2G,KACVC,OAAQ5G,EAAI4G,OACZC,YAAa7G,EAAI6G,YACjBC,SAAU9G,EAAI8G,SACdC,WAAY/G,EAAI+G,aAGxB,MAAM7G,EAASF,EAAIE,kBAAkB8E,GAAYhF,EAAIE,kBAAkBsF,EACjExF,EAAIE,OAAOxJ,GACXsJ,EAAIE,OACV,OAAOwG,EAAS,CACZxG,SACAyG,KAAM3G,EAAI2G,KACVC,OAAQ5G,EAAI4G,OACZC,YAAa7G,EAAI6G,YACjBC,SAAU9G,EAAI8G,SACdC,WAAY/G,EAAI+G,YAEvB,EAkBG3G,WACAoG,WACAC,eACAO,SACApH,YAEhB,IACepJ,IACV,CACD,UAAA2Q,CAAWhB,GACP,IAAIpF,EACqB,QAAxBA,EAAKoF,EAAIiB,iBAA8B,IAAPrG,GAAyBA,EAAGrI,SAAS2O,IAAU,IAAItG,EAAI,OAA+C,QAAvCA,EAAKsG,EAAI/B,gCAA6C,IAAPvE,OAAgB,EAASA,EAAGG,KAAKmG,EAAKlB,EAAI,IACzL,MAAMlB,EAAQzO,KAAKE,IACb0Q,UAAEA,EAAW9J,WAAYgK,EAAexJ,KAAMyJ,EAAS5G,UAAW6G,EAAYrD,QAAEA,EAAOsD,QAAEA,EAAOC,SAAEA,EAAQC,MAAEA,EAAKC,MAAEA,EAAKC,SAAEA,EAAUC,UAAWC,EAAcC,cAAeC,EAAkBC,UAAWC,EAAYrC,gBAAEA,EAAiBsC,OAAQC,GAAalC,EAanQ,GAZAiB,SAAsDA,EAAU1O,SAAS2O,IACrE7Q,KAAKmP,UAAUpK,KAAK8L,GACpBpC,EAAM7B,SAASiE,EAAI3Q,GAAG,SAEVgB,IAAZ6P,IACuB,mBAAZA,EACPtC,EAAMnH,KAAKyJ,GAGXtC,EAAMqD,WAAWf,SAGH7P,IAAlB4P,EAA6B,CAC7B,MAAMiB,EAAOrG,OAAOqG,KAAKjB,GACzB,IAAK,IAAI/G,EAAI,EAAGA,EAAIgI,EAAK7O,OAAQ6G,GAAK,EAAG,CACrC,MAAMgD,EAAOgF,EAAKhI,GAElB0E,EAAMiB,SAAS3C,EAAM+D,EAAc/D,GACtC,CACJ,CACD,QAAqB7L,IAAjB8P,EACA,GAAI5N,MAAM4O,QAAQhB,GACd,IAAK,IAAIjH,EAAI,EAAGA,EAAIiH,EAAa9N,OAAQ6G,GAAK,EAAG,CAC7C,MAAM9F,OAAEA,EAAM2F,SAAEA,GAAaoH,EAAajH,GAC1C0E,EAAM7E,SAAS3F,GAAU,KAAM2F,EAClC,KAEA,CACD,MAAMmI,EAAOrG,OAAOqG,KAAKf,GACzB,IAAK,IAAIjH,EAAI,EAAGA,EAAIgI,EAAK7O,OAAQ6G,GAAK,EAAG,CACrC,MAAM9F,EAAS8N,EAAKhI,GACdH,EAAWoH,EAAa/M,GAC9BwK,EAAM7E,SAAS3F,EAAQ2F,EAC1B,CACJ,CAcL,GAZI+D,GACAc,EAAMd,QAAQA,GACdsD,QAAkG/P,KAAtFqQ,aAAmD,EAASA,EAAaN,UACrFxC,EAAMuB,SAAS,UAAWiB,GAAS,GACnCC,QAAoGhQ,KAAvFqQ,aAAmD,EAASA,EAAaL,WACtFzC,EAAMuB,SAAS,WAAYkB,GAAU,GACrCC,QAA8FjQ,KAApFqQ,aAAmD,EAASA,EAAaJ,QACnF1C,EAAMuB,SAAS,QAASmB,GAAO,GAC/BC,QAA8FlQ,KAApFqQ,aAAmD,EAASA,EAAaH,QACnF3C,EAAMuB,SAAS,QAASoB,GAAO,GAC/BC,QAAoGnQ,KAAvFqQ,aAAmD,EAASA,EAAaF,WACtF5C,EAAMuB,SAAS,WAAYqB,GAAU,GACrCE,EAAc,CACd,MAAMQ,EAAOrG,OAAOqG,KAAKR,GACzB,IAAK,IAAIxH,EAAI,EAAGA,EAAIgI,EAAK7O,OAAQ6G,GAAK,EAAG,CACrC,MAAMgD,EAAOgF,EAAKhI,GACZ+F,EAAOyB,EAAaxE,GAC1B0B,EAAMuB,SAASjD,EAAM+C,GAAM,EAC9B,CACJ,CACD,GAAI2B,EAAkB,CAClB,MAAMM,EAAOrG,OAAOqG,KAAKN,GACzB,IAAK,IAAI1H,EAAI,EAAGA,EAAIgI,EAAK7O,OAAQ6G,GAAK,EAAG,CACrC,MAAMgD,EAAOgF,EAAKhI,GACZ+F,EAAO2B,EAAiB1E,GAC9B0B,EAAMwB,aAAalD,EAAM+C,GAAM,EAClC,CACJ,CACD,GAAI6B,EAAc,CACd,MAAMI,EAAOrG,OAAOqG,KAAKJ,GACzB,IAAK,IAAI5H,EAAI,EAAGA,EAAIgI,EAAK7O,OAAQ6G,GAAK,EAAG,CACrC,MAAMgD,EAAOgF,EAAKhI,GACZP,EAAMmI,EAAa5E,GACzB0B,EAAMyB,SAASnD,EAAMvD,EACxB,CACJ,CAMD,OALI8F,GACAb,EAAMa,gBAAgBA,GAEtBuC,IACA7R,KAAKuL,SAAWsG,GACb7R,IACV,EC9ME,MAAMiS,UAAwB/C,EAEjC,aAAOpB,CAAOtN,GACV,MAAM+C,EAAM,IAAI0O,EAGhB,OAFA1O,EAAI2O,YAAc1R,EAClB+C,EAAIrD,GAAKM,EAAUK,oBAAoBsR,yBAChC5O,CACV,CAED,cAAA6O,CAAetC,GAEX,OADA9P,KAAKE,GAAGkS,eAAetC,GAChB9P,IACV,CAED,QAAA4M,CAASA,GAIL,OAHA5M,KAAKmP,UAAUpK,KAAK6H,GAEpB5M,KAAKE,GAAKF,KAAKE,GAAG0M,SAASA,EAAS1M,IAC7BF,IACV,CAED,OAAOwP,GACH,OAAO6C,MAAMT,OAAOpC,EACvB,CAOD,IAAAlI,CAAKmI,GACD,OAAO4C,MAAM/K,KAAKmI,EACrB,CAMD,QAAAC,CAAS3C,EAAM4C,GACX,OAAO0C,MAAM3C,SAAS3C,EAAM4C,EAC/B,CAMD,OAAAhC,CAAQiC,GACJ,OAAOyC,MAAM1E,QAAQiC,EACxB,CAQD,IAAAvM,CAAKyM,GACD,OAAOuC,MAAMhP,KAAKyM,EACrB,CAED,UAAAa,CAAWhB,GAIP,OAHA0C,MAAM1B,WAAWhB,GACbA,EAAIhB,mBACJ3O,KAAKsS,mBAAqB3C,EAAIhB,kBAC3B3O,IACV,CAID,QAAAuS,GACI,OAAO,IAAI/D,EAASxO,KAAKE,GAAGsS,mBAAoBxS,KAAKmP,UAAWnP,KAAKsS,mBAAoBtS,KAAKuL,SACjG,EClEE,MAAMkH,UAAyBvD,EAElC,aAAOpB,CAAOtN,EAAWa,EAAIqR,GACzB,MAAMnP,EAAM,IAAIkP,EACVE,EAAkBnS,EAAUoS,kBAoBlC,OAnBArP,EAAI2O,YAAc1R,EAClB+C,EAAIrD,GAAKM,EAAUK,oBAAoBsR,uBAAuB9Q,GAAM,IACpEkC,EAAIsP,KAAOxR,GAAM,GACjBkC,EAAIuP,QAAUJ,EACdnP,EAAIrD,GAAG6S,kBAAiB,WACpB,MAAMC,EAAiBhT,KACvB,IAAI6N,EAAQtK,EAAI0P,QAChB,QAAc/R,IAAV2M,EAAqB,CACrB,MAAMF,EAAUqF,EAAe7Q,yBAAyByK,SAASsG,aAEjErF,EAAQtK,EAAI0P,QAAU,IAAIvF,EAAeC,EAASpK,EAAIgI,SACzD,CACD,MAAMJ,EAAS0C,EAAMI,SAGrB,OADA9C,EAAOjL,GAAK8S,EACL7H,CACnB,IACYwH,GACApP,EAAIrD,GAAG0M,SAAS+F,GACbpP,CACV,CAMD,OAAA0J,CAAQA,GAEJ,OADAjN,KAAKmT,UAAYlG,EACVjN,IACV,CAED,QAAA4M,CAASA,GAQL,OAPA5M,KAAKmP,UAAUpK,KAAK6H,GAEpB5M,KAAKE,GAAKF,KAAKE,GAAG0M,SAASA,EAAS1M,IAChC0M,EAASrB,WAETvL,KAAKuL,SAAWqB,EAASrB,UAEtBvL,IACV,CAED,OAAOwP,GAGH,OADAxP,KAAKuL,SAAWiE,EACTxP,IACV,CAOD,IAAAsH,CAAKmI,GACD,OAAO4C,MAAM/K,KAAKmI,EACrB,CAMD,QAAAC,CAAS3C,EAAM4C,GACX,OAAO0C,MAAM3C,SAAS3C,EAAM4C,EAC/B,CAMD,OAAAhC,CAAQiC,GACJ,OAAOyC,MAAM1E,QAAQiC,EACxB,CAQD,IAAAvM,CAAKyM,GACD,OAAOuC,MAAMhP,KAAKyM,EACrB,CAED,UAAAa,CAAWhB,GAIP,OAHA0C,MAAM1B,WAAWhB,GACbA,EAAI1C,SACJjN,KAAKiN,QAAQ0C,EAAI1C,SACdjN,IACV,CACD,cAAAoT,CAAezD,GACX,MAAM0D,EAAW3H,OAAOoC,OAAO,MACzBwF,EAAU,CACZ3F,QAAS,CAAE,GAEToE,EAAOrG,OAAOqG,KAAKpC,GACzB,IAAK,IAAI5F,EAAI,EAAGA,EAAIgI,EAAK7O,OAAQ6G,GAAK,EAAG,CACrC,MAAMwJ,EAAIxB,EAAKhI,GACL,SAANwJ,GAAsB,YAANA,GAAyB,cAANA,EACnCD,EAAQC,GAAK5D,EAAI4D,GAEM,mBAAX5D,EAAI4D,GAEhBD,EAAQ3F,QAAQ4F,GAAK5D,EAAI4D,GAIzBF,EAASE,GAAK5D,EAAI4D,EAEzB,CAKD,OAJAvT,KAAK2Q,WAAW2C,GAChBtT,KAAKE,GAAGmD,MAAK,WACTqI,OAAOsC,OAAOhO,KAAM6B,EAAW6F,UAAUC,eAAe0L,GACpE,IACerT,IACV,CAID,QAAAuS,GACI,IAAIhI,EACJ,MAAMlJ,EAAKrB,KAAK6S,KACVrS,EAAYR,KAAKkS,aAEhBjF,EAAS9L,GAAkBX,EAAUgT,wBAAwBnS,EAAIrB,KAAKmT,WAC7EnT,KAAKE,GAAG+M,QAAQA,GAChB,MAAMwG,EAAejT,EAAUkT,yBAAyBrS,GAClDsS,EAAQF,aAAmD,EAASA,EAAaG,gBACjFC,EAAWJ,aAAmD,EAASA,EAAaK,kBACpFvR,EAAckR,aAAmD,EAASA,EAAaM,qBACzFJ,GACA3T,KAAKE,GAAG0T,gBAAgBD,GACxBE,GACA7T,KAAKE,GAAG2T,SAASA,GACjBtR,GACAvC,KAAKE,GAAG8T,aAAazR,GACzB,MAAM0R,EAAWzT,EAAU0T,oBAAoB7S,GAC3C4S,GACAjU,KAAKE,GAAG+T,SAASA,GAErBzT,EAAUY,oBAAoBC,GAAMF,EACpC,MAAMmS,EAAUtT,KAAKE,GAAGiU,oBAIxB,OAHwB,QAAvB5J,EAAKvK,KAAK8S,eAA4B,IAAPvI,GAAyBA,EAAGrI,SAASwQ,IACjE1S,KAAKkS,YAAYrR,oBAAoBuT,gBAAgB1B,EAAO1S,KAAK6S,KAAK,IAEnE,IAAI7D,EAAcsE,EAC5B,ECtJE,MAAMe,EAET,WAAAxU,CAAYC,EAAKiB,EAAauT,EAAkBC,GAE5CvU,KAAK4S,kBAAoB,KACzB5S,KAAKC,MAAQH,EACbE,KAAKwU,cAAgBzT,EACrBf,KAAKyU,MAAQ,IAAI5S,EAAW6S,eAAe,GAAIH,aAAyD,EAASA,EAAgBE,MAAOF,aAAyD,EAASA,EAAgBE,MAAME,mBAChO3U,KAAK2U,kBAAoB3U,KAAKyU,MAAME,kBACpC3U,KAAK4U,gBAAkBlJ,OAAOoC,OAAO,MACrC9N,KAAK6U,cAAgBnJ,OAAOoC,OAAO,MACnC9N,KAAK8U,oBAAsBpJ,OAAOoC,OAAO,MACzC9N,KAAK+U,gBAAkBrJ,OAAOoC,OAAO,MACrCpC,OAAOqG,KAAKuC,GAAkBpS,SAASwQ,IACnC,MAAMrR,EAAKiT,EAAiB5B,GACxB1S,KAAK+U,gBAAgB1T,GACrBrB,KAAK+U,gBAAgB1T,GAAI0D,KAAK2N,GAE9B1S,KAAK+U,gBAAgB1T,GAAM,CAACqR,EAAM,IAE1C1S,KAAKuB,mBAAqBvB,KAAK2U,kBAAkBpC,SAAS,IAC1DvS,KAAKoB,oBAAsBsK,OAAOoC,OAAO,KAC5C,CACD,WAAA/M,GACI,OAAOf,KAAKwU,aACf,CAID,iBAAA3T,GACI,OAAOb,KAAKyU,KACf,CAOD,kBAAAO,CAAmBpI,GACf5M,KAAK4S,kBAAoBhG,CAC5B,CAQD,eAAAqI,CAAgB7Q,EAAI8Q,EAAaC,GAAgB,GAC7C,MAAMC,EAAKpV,KAAKC,MAAMoV,aAAajR,GACnC,IAAKgR,EACD,MAAM,IAAI1U,MAAM,sBAAsB0D,yBAEtC8Q,GACAlV,KAAKyU,MAAMa,YAAY,YAAYJ,IAAeE,EAAGX,OAAO,GAC5DU,GACAnV,KAAKyU,MAAMa,YAAY,oBAAoBlR,IAAMgR,EAAGX,OAAO,EAClE,CAOD,aAAAjT,CAAcI,EAAM2T,EAAeC,GAC/BxV,KAAK6U,cAAcjT,GAAQ,CAAExB,IAAKmV,EAAeC,iBACpD,CAOD,aAAAvU,CAAcW,GACV,IAAI2I,EACJ,OAA2C,QAAnCA,EAAKvK,KAAK6U,cAAcjT,UAA0B,IAAP2I,OAAgB,EAASA,EAAGnK,GAClF,CACD,iBAAAqV,CAAkB7T,GACd,IAAI2I,EACJ,OAA2C,QAAnCA,EAAKvK,KAAK6U,cAAcjT,UAA0B,IAAP2I,OAAgB,EAASA,EAAGiL,cAClF,CAOD,mBAAAE,CAAoB9T,EAAMvB,GACtBL,KAAK8U,oBAAoBlT,GAAQvB,CACpC,CAOD,mBAAA6T,CAAoBtS,GAChB,OAAO5B,KAAK8U,oBAAoBlT,EACnC,CAMD,wBAAA+T,CAAyB/T,EAAMvB,GAC3BL,KAAK4U,gBAAgBhT,GAAQvB,CAChC,CAMD,wBAAAqT,CAAyB9R,GACrB,OAAO5B,KAAK4U,gBAAgBhT,EAC/B,CAED,uBAAA4R,CAAwBnS,EAAI4L,GAExB,MAAMwG,EAAezT,KAAK4U,gBAAgBvT,GACpCuU,EAAwBnC,aAAmD,EAASA,EAAaoC,gBACjGA,EAAkBD,EAClB,IAAIE,OAAOF,GACX3I,aAAyC,EAASA,EAAQ4I,gBAE1DE,EAAiBtC,aAAmD,EAASA,EAAasC,eAChG,IASIrU,EACAsU,EAVA7U,EAAiBsS,aAAmD,EAASA,EAAatS,oBACvED,IAAnBC,IAEIA,GADAsS,aAAmD,EAASA,EAAa9P,WACxDoS,EAAiB,eAAkD,WAGnE,UAKF,iBAAnB5U,GACmB,sBAAnBA,GACAO,EAAa1B,KAAK2U,kBAAkBpC,SAASvS,KAAKyV,kBAAkBpU,IAAO,KAAK6M,OAChF8H,EAAkBhW,KAAKuB,oBAOvBG,EALyB,WAAnBP,GAA8E,gBAAnBA,IACjEnB,KAAKwU,cAIQxU,KAAK2U,kBAAkBpC,SAASvS,KAAKyV,kBAAkBpU,IAAO,KAAK6M,OAHnElO,KAAKuB,mBAiBtB,MAAO,CAXK,CACR0U,kBAAmB/H,EACnBgI,cAAejJ,aAAyC,EAASA,EAAQiJ,cACzEL,kBACAM,YAAalJ,aAAyC,EAASA,EAAQkJ,YACvEzU,aACAsU,kBACAI,aAAcnJ,aAAyC,EAASA,EAAQmJ,aACxEhP,wBAAyB6F,aAAyC,EAASA,EAAQ7F,wBACnFiP,kBAAmBpJ,aAAyC,EAASA,EAAQoJ,mBAEpElV,EAChB,CAUD,kBAAAmV,CAAmBC,EAAc3U,EAAMmB,GACnC,OAAO/C,KAAKwW,aAAa5U,GAAM,EAAG6U,OAAM1P,YAAWyH,eAG/C,MAAMkI,EAAUH,EAAaE,KACvBE,EAAeJ,EAAaxP,UAC5B6P,EAAcL,EAAa/H,SACjC+H,EAAaE,KAAOA,EACpBF,EAAaxP,UAAYA,EACzBwP,EAAa/H,SAAWA,EACxB,MAAMjL,EAAMR,IAMZ,OALAwT,EAAaE,KAAOC,EACpBH,EAAaxP,UAAY4P,EACzBJ,EAAa/H,SAAWoI,EAGjBrT,CAAG,GAEjB,CAMD,YAAAiT,CAAa5U,EAAMmB,GAEf,MAAM2N,EAAO1Q,KAWb,SAAS6W,EAAoBlG,GACzB,YAAmBzP,IAAfyP,EACOD,EAAK9D,WAAW+D,WAAWA,GAAY4B,WAE3C7B,EAAK9D,UACf,CAGD,OAFAiK,EAAoBC,MAAQpG,EAAK7D,cAAckK,KAAKrG,GAE7C3N,EAAG,CACN0T,KAlBJ,SAAyB9F,GACrB,OAAOD,EAAK/M,UAAU/B,GAAMwR,eAAezC,GAAY4B,UAC1D,EAiBGxL,UAhBJ,SAA8B4J,GAC1B,YAAmBzP,IAAfyP,EACOD,EAAK/M,UAAU/B,GAAM+O,WAAWA,GAAY4B,WAEhD7B,EAAK/M,UAAU/B,EACzB,EAYG4M,SAAUqI,GAEjB,CAOD,SAAAlT,CAAU/B,GACN,OAAO6Q,EAAiB3E,OAAO9N,KAAM4B,EAAM5B,KAAK+U,gBAAgBnT,GACnE,CAOD,QAAAgL,GACI,OAAOqF,EAAgBnE,OAAO9N,KACjC,CACD,aAAA6M,CAAcmK,GACV,OACW,IAAI/H,OADD/N,IAAV8V,EACyBhX,KAAKyU,MAAMwC,sBAEfjX,KAAKyU,MAAMwC,oBAAoBD,GAC3D,EClPE,MAAME,EAIT,WAAArX,GACIG,KAAKmX,aAAezL,OAAOoC,OAAO,MAClC9N,KAAKuU,gBAAkB,IAAIF,EAAUrU,MAAM,EAAO,CAAA,EACrD,CAOD,kBAAAoX,GACI,OAAOpX,KAAKuU,eACf,CAQD,gBAAA8C,CAAiBC,GACb,MAAMhS,EAAMgS,QAAuDA,EAAiB,IAAIzV,EAAW0V,4BACnG,OAAO,IAAI3X,EAAkBI,KAAMsF,EACtC,CAWD,eAAAkS,CAAgBpT,EAAIrD,EAAauT,EAAmB5I,OAAOoC,OAAO,OAC9D,MAAMsH,EAAK,IAAIf,EAAUrU,KAAMe,EAAauT,EAAkBtU,KAAKuU,iBAEnE,OADAvU,KAAKmX,aAAa/S,GAAMgR,EACjBA,CACV,CAID,YAAAC,CAAajR,GACT,OAAOpE,KAAKmX,aAAa/S,EAC5B,EC1DE,IAAIqT,GACX,SAAWA,GACPA,EAAyB,SAAI,WAC7BA,EAA4B,YAAI,eAChCA,EAAuB,OAAI,SAC3BA,EAA6B,aAAI,gBACjCA,EAAgC,gBAAI,oBACpCA,EAA2B,WAAI,aAClC,CAPD,CAOGA,IAAmBA,EAAiB,CAAA"}
|
|
1
|
+
{"version":3,"file":"glass_easel_miniprogram_adapter.es.js","sources":["../src/backend.ts","../src/selector_query.ts","../src/intersection.ts","../src/media_query.ts","../src/component.ts","../src/behavior.ts","../src/builder/base_behavior_builder.ts","../src/builder/behavior_builder.ts","../src/builder/component_builder.ts","../src/utils.ts","../src/space.ts","../src/env.ts","../src/types.ts"],"sourcesContent":["import * as glassEasel from 'glass-easel';\n/**\n * A backend context that has been associated to an environment\n */\nexport class AssociatedBackend {\n /** @internal */\n constructor(env, backendContext) {\n this._$env = env;\n this._$ = backendContext;\n }\n /**\n * Register a style sheet resource\n *\n * Some backend cannot load style sheet URL.\n * In this cases, the content should be registered here.\n */\n registerStyleSheetContent(url, content) {\n this._$.registerStyleSheetContent(url, content);\n }\n /**\n * Create a root component in specified backend\n *\n * The component is searched in the `codeSpace` with `url` .\n * If `url` contains \"?\" params, it will be parsed and try to set to component properties.\n */\n createRoot(tagName, codeSpace, url, genericTargets) {\n if (this._$env !== codeSpace._$env)\n throw new Error('The code space is not in the same environment as the backend');\n return new Root(this._$, tagName, codeSpace, url, genericTargets);\n }\n}\n/**\n * A root component\n */\nexport class Root {\n /** @internal */\n constructor(backendContext, tagName, codeSpace, url, genericTargets) {\n this._$comp = codeSpace\n .getComponentSpace()\n .createComponentByUrl(tagName, url, genericTargets || null, backendContext);\n if (codeSpace.isMainSpace()) {\n const globalStyleSheet = codeSpace.getStyleSheet('app');\n if (globalStyleSheet !== undefined) {\n const styleIsolation = codeSpace._$styleIsolationMap[this._$comp.is];\n if (styleIsolation === \"isolated\" /* StyleIsolation.Isolated */ ||\n styleIsolation === \"apply-shared\" /* StyleIsolation.ApplyShared */ ||\n styleIsolation === \"shared\" /* StyleIsolation.Shared */) {\n backendContext.appendStyleSheetPath(globalStyleSheet, codeSpace._$sharedStyleScope);\n }\n }\n }\n const addStyleSheet = (comp) => {\n const { styleScope } = comp.getComponentOptions();\n const path = codeSpace.getStyleSheet(comp.is);\n if (path !== undefined) {\n backendContext.appendStyleSheetPath(path, styleScope !== null && styleScope !== void 0 ? styleScope : glassEasel.StyleScopeManager.globalScope());\n }\n };\n this._$comp.getRootBehavior().getComponentDependencies().forEach(addStyleSheet);\n addStyleSheet(this._$comp.getComponentDefinition());\n }\n /**\n * Get the root component\n */\n get() {\n return this._$comp.getMethodCaller();\n }\n /**\n * Get the underlying component of the root component\n */\n getComponent() {\n return this._$comp;\n }\n /**\n * Attach the root component to the backend\n *\n * This component, the `parent` and the `placeholder` MUST be in the same context.\n * The `parent` MUST be a parent node of the `placeholder` .\n * This also triggers `attached` lifetimes for components.\n */\n attach(parent, placeholder) {\n glassEasel.Element.replaceDocumentElement(this._$comp, parent, placeholder);\n }\n /**\n * Release the root component\n *\n * Some backends require this explicit call to avoid memory leaks.\n * This also triggers `detached` lifetimes for components.\n */\n release() {\n glassEasel.Element.pretendDetached(this._$comp);\n this._$comp.destroyBackendElement();\n }\n}\n//# sourceMappingURL=backend.js.map","import * as glassEasel from 'glass-easel';\nconst joinAsync = (inits, cb) => {\n let initDone = false;\n let jobCount = inits.length;\n const rets = new Array(jobCount);\n inits.forEach((init, index) => {\n init((ret) => {\n rets[index] = ret;\n jobCount -= 1;\n if (jobCount === 0 && initDone) {\n cb(rets);\n }\n });\n });\n initDone = true;\n if (jobCount === 0) {\n setTimeout(() => {\n cb(rets);\n }, 0);\n }\n};\nclass NodesRef {\n constructor(selectorQuery, component, selector, selectSingle) {\n this._$sq = selectorQuery;\n this._$comp = component;\n this._$sel = selector;\n this._$single = selectSingle;\n }\n fields(fields, cb = () => {\n /* empty */\n }) {\n this._$sq._$push(this._$sel, this._$comp, this._$single, fields, cb);\n return this._$sq;\n }\n boundingClientRect(cb = () => {\n /* empty */\n }) {\n this._$sq._$push(this._$sel, this._$comp, this._$single, {\n id: true,\n dataset: true,\n rect: true,\n size: true,\n }, cb);\n return this._$sq;\n }\n scrollOffset(cb = () => {\n /* empty */\n }) {\n this._$sq._$push(this._$sel, this._$comp, this._$single, {\n id: true,\n dataset: true,\n scrollOffset: true,\n }, cb);\n return this._$sq;\n }\n}\n// main class\nexport class SelectorQuery {\n /** @internal */\n constructor(component) {\n this._$comp = component;\n this._$queue = [];\n }\n /** Change where the node should be selected from */\n in(component) {\n this._$comp = component;\n return this;\n }\n /** Select the first node that matches the selector */\n select(selector) {\n return new NodesRef(this, this._$comp, selector, true);\n }\n /** Select all nodes that match the selector */\n selectAll(selector) {\n return new NodesRef(this, this._$comp, selector, false);\n }\n /**\n * Select the viewport of the component\n *\n * Only the size and the scroll position is meaningful when the viewport is selected.\n */\n selectViewport() {\n return new NodesRef(this, this._$comp, null, true);\n }\n /** @internal */\n _$push(selector, component, single, fields, cb) {\n this._$queue.push({\n component,\n selector,\n single,\n fields,\n cb,\n });\n }\n /**\n * Execute all queries\n *\n * The `cb` is called after all queries done.\n */\n exec(cb = () => {\n /* empty */\n }) {\n const q = this._$queue;\n joinAsync(q.map((req) => (done) => {\n const { component, selector, single, fields, cb } = req;\n if (selector === null) {\n // for the viewport selection, return available fields\n const res = {};\n joinAsync([\n (done) => {\n const ctx = component._$.getBackendContext();\n const width = ctx ? ctx.getWindowWidth() : 0;\n const height = ctx ? ctx.getWindowHeight() : 0;\n if (fields.id)\n res.id = '';\n if (fields.dataset)\n res.dataset = {};\n if (fields.mark)\n res.mark = {};\n if (fields.rect) {\n res.left = 0;\n res.top = 0;\n res.right = width;\n res.bottom = height;\n }\n if (fields.size) {\n res.width = width;\n res.height = height;\n }\n if (fields.scrollOffset) {\n let rootComp = component._$.general();\n while (rootComp.ownerShadowRoot) {\n rootComp = rootComp.ownerShadowRoot.getHostNode();\n }\n rootComp.getBoundingClientRect(({ left, top, width, height }) => {\n res.scrollLeft = left;\n res.scrollTop = top;\n res.scrollWidth = width;\n res.scrollHeight = height;\n done(undefined);\n });\n }\n else {\n done(undefined);\n }\n },\n ], () => {\n cb(res);\n done(res);\n });\n }\n else {\n // for common node selection, return specified fields\n const constructSingleRes = (elem, cb) => {\n const res = {};\n if (fields.id)\n res.id = elem.id;\n if (fields.dataset)\n res.dataset = elem.dataset;\n if (fields.mark)\n res.mark = elem.collectMarks();\n joinAsync([\n (done) => {\n if (fields.rect || fields.size) {\n elem.getBoundingClientRect((rect) => {\n if (fields.rect) {\n res.left = rect.left;\n res.top = rect.top;\n res.right = rect.left + rect.width;\n res.bottom = rect.top + rect.height;\n }\n if (fields.size) {\n res.width = rect.width;\n res.height = rect.height;\n }\n done(undefined);\n });\n }\n else {\n done(undefined);\n }\n },\n (done) => {\n if (fields.scrollOffset) {\n elem.getScrollOffset((rect) => {\n res.scrollLeft = rect.scrollLeft;\n res.scrollTop = rect.scrollTop;\n res.scrollWidth = rect.scrollWidth;\n res.scrollHeight = rect.scrollHeight;\n done(undefined);\n });\n }\n else {\n done(undefined);\n }\n },\n ], () => {\n if (fields.properties) {\n if (glassEasel.Component.isComponent(elem)) {\n fields.properties.forEach((propName) => {\n if (glassEasel.Component.hasProperty(elem, propName)) {\n const ds = elem.getComponentOptions().propertyPassingDeepCopy;\n const v = elem.data[propName];\n if (ds === glassEasel.DeepCopyKind.None) {\n res[propName] = v;\n }\n else if (ds === glassEasel.DeepCopyKind.Simple) {\n res[propName] = glassEasel.dataUtils.simpleDeepCopy(v);\n }\n else if (ds === glassEasel.DeepCopyKind.SimpleWithRecursion) {\n res[propName] = glassEasel.dataUtils.deepCopy(v, true);\n }\n }\n });\n }\n }\n cb(res);\n });\n };\n if (single) {\n // select single node\n const node = component._$.getShadowRoot().querySelector(selector);\n if (node) {\n constructSingleRes(node, (res) => {\n cb(res);\n done(res);\n });\n }\n else {\n setTimeout(() => {\n cb(null);\n done(null);\n }, 0);\n }\n }\n else {\n // select multiple nodes\n const nodes = component._$.getShadowRoot().querySelectorAll(selector);\n joinAsync(nodes.map((node) => (done) => {\n constructSingleRes(node, (res) => {\n done(res);\n });\n }), (resList) => {\n cb(resList);\n done(resList);\n });\n }\n }\n }), cb);\n }\n}\n//# sourceMappingURL=selector_query.js.map","const defaultMargins = {\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n};\nexport class IntersectionObserver {\n /** @internal */\n constructor(comp, thresholds, initialRatio, observeAll) {\n this._$selector = null;\n this._$margins = null;\n this._$observers = [];\n this._$comp = comp;\n this._$thresholds = thresholds;\n this._$initialRatio = initialRatio;\n this._$observeAll = observeAll;\n }\n relativeTo(selector, margins) {\n this._$selector = selector;\n this._$margins = margins !== null && margins !== void 0 ? margins : defaultMargins;\n return this;\n }\n relativeToViewport(margins) {\n this._$selector = null;\n this._$margins = margins !== null && margins !== void 0 ? margins : defaultMargins;\n return this;\n }\n observe(targetSelector, listener) {\n const shadowRoot = this._$comp._$.getShadowRoot();\n let targets;\n if (!shadowRoot) {\n targets = [];\n }\n else if (this._$observeAll) {\n targets = shadowRoot.querySelectorAll(targetSelector);\n }\n else {\n const elem = shadowRoot.querySelector(targetSelector);\n if (elem === null) {\n targets = [];\n }\n else {\n targets = [elem];\n }\n }\n let relativeElement;\n if (this._$selector === null || !shadowRoot) {\n relativeElement = null;\n }\n else {\n const rel = shadowRoot.querySelector(this._$selector);\n if (rel === null) {\n // TODO warn no matched relative element\n }\n else {\n relativeElement = rel;\n }\n }\n if (!this._$margins) {\n throw new Error('`relativeTo` or `relativeToViewport` should be called before observe');\n }\n const { left, top, right, bottom } = this._$margins;\n const margin = `${top}px ${right}px ${bottom}px ${left}px`;\n targets.forEach((target) => {\n let initial = this._$initialRatio;\n const observer = target.createIntersectionObserver(relativeElement, margin, this._$thresholds, (args) => {\n if (initial !== null) {\n let i = 0;\n for (; i < this._$thresholds.length; i += 1) {\n const threshold = this._$thresholds[i];\n if (initial === args.intersectionRatio)\n continue;\n if ((initial - threshold) * (args.intersectionRatio - threshold) <= 0)\n break;\n }\n initial = null;\n if (i < this._$thresholds.length)\n return;\n }\n listener(args);\n });\n if (observer === null) {\n // TODO warn no observer attached\n }\n else {\n this._$observers.push(observer);\n }\n });\n }\n disconnect() {\n const observers = this._$observers;\n this._$observers = [];\n observers.forEach((observer) => observer.disconnect());\n }\n}\n//# sourceMappingURL=intersection.js.map","export class MediaQueryObserver {\n /** @internal */\n constructor(comp) {\n this._$observer = null;\n this._$comp = comp;\n }\n observe(descriptor, listener) {\n var _a, _b;\n if (this._$observer)\n this._$observer.disconnect();\n this._$observer =\n ((_b = (_a = this._$comp._$.getBackendContext()) === null || _a === void 0 ? void 0 : _a.createMediaQueryObserver) === null || _b === void 0 ? void 0 : _b.call(_a, descriptor, listener)) || null;\n }\n disconnect() {\n if (this._$observer)\n this._$observer.disconnect();\n this._$observer = null;\n }\n}\n//# sourceMappingURL=media_query.js.map","import * as glassEasel from 'glass-easel';\nimport { SelectorQuery } from './selector_query';\nimport { IntersectionObserver } from './intersection';\nimport { MediaQueryObserver } from './media_query';\nconst filterComponentExportWithType = (source, elem, componentType) => {\n var _a;\n const comp = elem.asInstanceOf(componentType._$);\n if (comp === null)\n return undefined;\n const selectedSpace = comp.getRootBehavior().ownerSpace;\n const uncheckedCaller = comp.getMethodCaller();\n const caller = uncheckedCaller instanceof ComponentCaller ? uncheckedCaller : null;\n const sourceSpace = source._$.getRootBehavior().ownerSpace;\n const defaultResult = selectedSpace !== sourceSpace ? null : caller;\n const ret = (_a = caller === null || caller === void 0 ? void 0 : caller._$export) === null || _a === void 0 ? void 0 : _a.call(caller, selectedSpace !== sourceSpace ? null : source);\n if (ret === undefined) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return defaultResult;\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return ret;\n};\nconst filterComponentExport = (source, elem) => {\n var _a;\n if (glassEasel.Component.isComponent(elem)) {\n const selectedSpace = elem.getRootBehavior().ownerSpace;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const uncheckedCaller = elem.getMethodCaller();\n const caller = uncheckedCaller instanceof ComponentCaller ? uncheckedCaller : null;\n const sourceSpace = source._$.getRootBehavior().ownerSpace;\n const defaultResult = selectedSpace !== sourceSpace ? null : caller;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const ret = (_a = caller === null || caller === void 0 ? void 0 : caller._$export) === null || _a === void 0 ? void 0 : _a.call(caller, selectedSpace !== sourceSpace ? null : source);\n if (ret === undefined) {\n return defaultResult;\n }\n return ret;\n }\n return undefined;\n};\nexport class ComponentCaller {\n /** The component path in the code space */\n get is() {\n return this._$.is;\n }\n set is(value) {\n Object.defineProperty(this, 'is', {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n /** The `id` field in the template */\n get id() {\n return this._$.id;\n }\n set id(value) {\n Object.defineProperty(this, 'id', {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n /** The `data-*` field in the template */\n get dataset() {\n return this._$.dataset;\n }\n set dataset(value) {\n Object.defineProperty(this, 'dataset', {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n /** The component data and property values */\n get data() {\n return this._$.data;\n }\n set data(value) {\n Object.defineProperty(this, 'data', {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n /** The component data and property values (same as `data` ) */\n get properties() {\n return this._$.data;\n }\n set properties(value) {\n Object.defineProperty(this, 'properties', {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n /**\n * Group several data update calls\n *\n * This method is designed for hinting the backend that some updates should be handled together.\n * However, this is done automatically now,\n * so this method is just for backward compatibilities.\n */\n // eslint-disable-next-line class-methods-use-this\n groupSetData(callback) {\n callback();\n }\n setData(data, callback) {\n this._$.setData(data);\n if (callback) {\n glassEasel.triggerRender(this._$, () => {\n callback();\n });\n }\n }\n updateData(newData) {\n this._$.updateData(newData);\n }\n replaceDataOnPath(path, data) {\n this._$.replaceDataOnPath(path, data);\n }\n spliceArrayDataOnPath(path, index, del, inserts) {\n this._$.spliceArrayDataOnPath(path, index, del, inserts);\n }\n /**\n * Apply all scheduled updates immediately\n *\n * Inside observers, it is generally not .\n */\n applyDataUpdates() {\n this._$.applyDataUpdates();\n }\n /**\n * Pending all data updates in the callback, and apply updates after callback returns\n *\n * This function helps grouping several `replaceDataOnPath` or `spliceArrayDataOnPath` calls,\n * and then apply them at the end of the callback.\n * `setData` and `applyDataUpdates` calls inside the callback still apply updates immediately.\n */\n groupUpdates(callback) {\n return this._$.groupUpdates(callback);\n }\n /**\n * Check whether the `other` behavior is a dependent behavior or a implemented trait behavior\n */\n hasBehavior(behavior) {\n return this._$.hasBehavior(behavior._$);\n }\n /**\n * Get the trait behavior implementation of the component\n *\n * Returns `undefined` if the specified trait behavior is not implemented.\n */\n traitBehavior(traitBehavior) {\n return this._$.traitBehavior(traitBehavior._$);\n }\n /** Trigger an event */\n triggerEvent(name, detail, options) {\n return this._$.triggerEvent(name, detail, options);\n }\n /** Create a selector query for searching element inside the component */\n createSelectorQuery() {\n return new SelectorQuery(this);\n }\n /** Create an intersection observer */\n createIntersectionObserver(options) {\n return new IntersectionObserver(this, (options === null || options === void 0 ? void 0 : options.thresholds) || [0], (options === null || options === void 0 ? void 0 : options.initialRatio) || 0, (options === null || options === void 0 ? void 0 : options.observeAll) || false);\n }\n /** Create an media query observer */\n createMediaQueryObserver() {\n return new MediaQueryObserver(this);\n }\n selectComponent(selector, componentType) {\n var _a, _b;\n const target = this._$.getShadowRoot().querySelector(selector);\n if (target === null)\n return null;\n return componentType\n ? (_a = filterComponentExportWithType(this, target, componentType)) !== null && _a !== void 0 ? _a : null\n : (_b = filterComponentExport(this, target)) !== null && _b !== void 0 ? _b : null;\n }\n selectAllComponents(selector, componentType) {\n const targets = this._$.getShadowRoot().querySelectorAll(selector);\n const ret = [];\n targets.forEach((target) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const r = componentType\n ? filterComponentExportWithType(this, target, componentType)\n : filterComponentExport(this, target);\n if (r !== undefined)\n ret.push(r);\n });\n return ret;\n }\n selectOwnerComponent(componentType) {\n var _a, _b, _c;\n const target = (_a = this._$.ownerShadowRoot) === null || _a === void 0 ? void 0 : _a.getHostNode();\n if (target === undefined)\n return null;\n return componentType\n ? (_b = filterComponentExportWithType(this, target, componentType)) !== null && _b !== void 0 ? _b : null\n : (_c = filterComponentExport(this, target)) !== null && _c !== void 0 ? _c : null;\n }\n getRelationNodes(relationKey) {\n return this._$.getRelationNodes(relationKey).map((target) => target.getMethodCaller());\n }\n /** Cast the component into a general-typed one */\n general() {\n return this;\n }\n /**\n * Cast the component into the specified type\n *\n * Returns `null` if the component node is not the instance of the specified component.\n */\n asInstanceOf(componentType) {\n const inner = this._$.asInstanceOf(componentType._$);\n if (!inner)\n return null;\n return this;\n }\n}\nexport class ComponentProto {\n constructor(methods, componentExport) {\n this.proto = Object.create(ComponentCaller.prototype);\n Object.assign(this.proto, methods);\n this.proto._$export = componentExport;\n }\n derive() {\n return Object.create(this.proto);\n }\n}\n//# sourceMappingURL=component.js.map","export class Behavior {\n /** @internal */\n constructor(inner, parents, definitionFilter, componentExport) {\n this._$ = inner;\n this._$export = componentExport;\n // processing definition filter\n if (definitionFilter !== undefined) {\n const definitionFilterArgs = parents.map((p) => { var _a; return (_a = p._$bindedDefinitionFilter) !== null && _a !== void 0 ? _a : null; });\n this._$bindedDefinitionFilter = (childDef) => {\n definitionFilter(childDef, definitionFilterArgs);\n };\n }\n }\n}\nexport class ComponentType {\n /** @internal */\n constructor(inner) {\n this._$ = inner;\n }\n}\nexport class TraitBehavior {\n constructor(inner) {\n this._$ = inner;\n }\n}\n//# sourceMappingURL=behavior.js.map","/* eslint-disable @typescript-eslint/no-unsafe-return */\nimport * as glassEasel from 'glass-easel';\nimport { Behavior, ComponentType, TraitBehavior } from '../behavior';\nexport class BaseBehaviorBuilder {\n constructor() {\n this._$parents = [];\n }\n /** Implement a trait behavior */\n implement(traitBehavior, impl) {\n this._$.implement(traitBehavior._$, impl);\n return this;\n }\n /** Add external classes */\n externalClasses(list) {\n this._$.externalClasses(list);\n return this;\n }\n /** Set the export value when the component is being selected */\n export(f) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n this._$export = f;\n return this;\n }\n data(gen) {\n this._$.data(gen);\n return this;\n }\n property(name, def) {\n this._$.property(name, def);\n return this;\n }\n /**\n * Add some public methods\n *\n * The public method can be used as an event handler, and can be visited in component instance.\n */\n methods(funcs) {\n this._$.methods(funcs);\n return this;\n }\n observer(paths, func, once = false) {\n this._$.observer(paths, func, once);\n return this;\n }\n /**\n * Add a lifetime callback\n */\n lifetime(name, func, once = false) {\n this._$.lifetime(name, func, once);\n return this;\n }\n /**\n * Add a page-lifetime callback\n */\n pageLifetime(name, func, once = false) {\n this._$.pageLifetime(name, func, once);\n return this;\n }\n /**\n * Add a relation\n */\n relation(name, rel) {\n const target = rel.target instanceof Behavior || rel.target instanceof ComponentType\n ? rel.target._$\n : rel.target;\n this._$.relation(name, {\n target,\n type: rel.type,\n linked: rel.linked,\n linkChanged: rel.linkChanged,\n unlinked: rel.unlinked,\n linkFailed: rel.linkFailed,\n });\n return this;\n }\n init(func) {\n this._$.init(function ({ data, setData, implement, relation, observer, lifetime, pageLifetime, method, listener, }) {\n const relationInit = ((rel) => {\n if (rel.target instanceof TraitBehavior) {\n return relation({\n target: rel.target._$,\n type: rel.type,\n linked: rel.linked,\n linkChanged: rel.linkChanged,\n unlinked: rel.unlinked,\n linkFailed: rel.linkFailed,\n });\n }\n const target = rel.target instanceof Behavior || rel.target instanceof ComponentType\n ? rel.target._$\n : rel.target;\n return relation({\n target,\n type: rel.type,\n linked: rel.linked,\n linkChanged: rel.linkChanged,\n unlinked: rel.unlinked,\n linkFailed: rel.linkFailed,\n });\n });\n const implementInit = ((traitBehavior, impl) => {\n implement(traitBehavior._$, impl);\n });\n const methodCaller = this;\n return func.call(methodCaller, {\n self: methodCaller,\n data,\n setData: (newData, callback) => {\n setData(newData);\n if (callback) {\n glassEasel.triggerRender(methodCaller._$, () => {\n callback();\n });\n }\n },\n implement: implementInit,\n relation: relationInit,\n observer,\n lifetime,\n pageLifetime,\n method,\n listener,\n });\n });\n return this;\n }\n definition(def) {\n var _a;\n (_a = def.behaviors) === null || _a === void 0 ? void 0 : _a.forEach((beh) => { var _a; return (_a = beh._$bindedDefinitionFilter) === null || _a === void 0 ? void 0 : _a.call(beh, def); });\n const inner = this._$;\n const { behaviors, properties: rawProperties, data: rawData, observers: rawObservers, methods, created, attached, ready, moved, detached, lifetimes: rawLifetimes, pageLifetimes: rawPageLifetimes, relations: rawRelations, externalClasses, export: exports, } = def;\n behaviors === null || behaviors === void 0 ? void 0 : behaviors.forEach((beh) => {\n this._$parents.push(beh);\n inner.behavior(beh._$);\n });\n if (rawData !== undefined) {\n if (typeof rawData === 'function') {\n inner.data(rawData);\n }\n else {\n inner.staticData(rawData);\n }\n }\n if (rawProperties !== undefined) {\n const keys = Object.keys(rawProperties);\n for (let i = 0; i < keys.length; i += 1) {\n const name = keys[i];\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n inner.property(name, rawProperties[name]);\n }\n }\n if (rawObservers !== undefined) {\n if (Array.isArray(rawObservers)) {\n for (let i = 0; i < rawObservers.length; i += 1) {\n const { fields, observer } = rawObservers[i];\n inner.observer(fields || '**', observer);\n }\n }\n else {\n const keys = Object.keys(rawObservers);\n for (let i = 0; i < keys.length; i += 1) {\n const fields = keys[i];\n const observer = rawObservers[fields];\n inner.observer(fields, observer);\n }\n }\n }\n if (methods)\n inner.methods(methods);\n if (created && (rawLifetimes === null || rawLifetimes === void 0 ? void 0 : rawLifetimes.created) === undefined)\n inner.lifetime('created', created, true);\n if (attached && (rawLifetimes === null || rawLifetimes === void 0 ? void 0 : rawLifetimes.attached) === undefined)\n inner.lifetime('attached', attached, true);\n if (ready && (rawLifetimes === null || rawLifetimes === void 0 ? void 0 : rawLifetimes.ready) === undefined)\n inner.lifetime('ready', ready, true);\n if (moved && (rawLifetimes === null || rawLifetimes === void 0 ? void 0 : rawLifetimes.moved) === undefined)\n inner.lifetime('moved', moved, true);\n if (detached && (rawLifetimes === null || rawLifetimes === void 0 ? void 0 : rawLifetimes.detached) === undefined)\n inner.lifetime('detached', detached, true);\n if (rawLifetimes) {\n const keys = Object.keys(rawLifetimes);\n for (let i = 0; i < keys.length; i += 1) {\n const name = keys[i];\n const func = rawLifetimes[name];\n inner.lifetime(name, func, true);\n }\n }\n if (rawPageLifetimes) {\n const keys = Object.keys(rawPageLifetimes);\n for (let i = 0; i < keys.length; i += 1) {\n const name = keys[i];\n const func = rawPageLifetimes[name];\n inner.pageLifetime(name, func, true);\n }\n }\n if (rawRelations) {\n const keys = Object.keys(rawRelations);\n for (let i = 0; i < keys.length; i += 1) {\n const name = keys[i];\n const rel = rawRelations[name];\n inner.relation(name, rel);\n }\n }\n if (externalClasses)\n inner.externalClasses(externalClasses);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n if (exports)\n this._$export = exports;\n return this;\n }\n}\n//# sourceMappingURL=base_behavior_builder.js.map","/* eslint-disable @typescript-eslint/no-unsafe-return */\nimport { BaseBehaviorBuilder } from './base_behavior_builder';\nimport { Behavior } from '../behavior';\nexport class BehaviorBuilder extends BaseBehaviorBuilder {\n /** @internal */\n static create(codeSpace) {\n const ret = new BehaviorBuilder();\n ret._$codeSpace = codeSpace;\n ret._$ = codeSpace.getComponentSpace().defineWithMethodCaller();\n return ret;\n }\n /** Define a chaining filter */\n chainingFilter(func) {\n this._$.chainingFilter(func);\n return this;\n }\n /** Use another behavior */\n behavior(behavior) {\n this._$parents.push(behavior);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n this._$ = this._$.behavior(behavior._$);\n return this;\n }\n /** Set the export value when the component is being selected */\n export(f) {\n return super.export(f);\n }\n /**\n * Add some template data fields\n *\n * It does not support raw data, but a `gen` function which returns the new data fields.\n * The `gen` function executes once during component creation.\n */\n data(gen) {\n return super.data(gen);\n }\n /**\n * Add a single property\n *\n * The property name should be different from other properties.\n */\n property(name, def) {\n return super.property(name, def);\n }\n /**\n * Add some public methods\n *\n * The public method can be used as an event handler, and can be visited in component instance.\n */\n methods(funcs) {\n return super.methods(funcs);\n }\n /**\n * Execute a function while component instance creation\n *\n * A `BuilderContext` is provided to tweak the component creation progress.\n * The return value is used as the \"export\" value of the behavior,\n * which can be imported by other behaviors.\n */\n init(func) {\n return super.init(func);\n }\n /** Apply a classic definition object */\n definition(def) {\n super.definition(def);\n if (def.definitionFilter)\n this._$definitionFilter = def.definitionFilter;\n return this;\n }\n /**\n * Finish the behavior definition process\n */\n register() {\n return new Behavior(this._$.registerBehavior(), this._$parents, this._$definitionFilter, this._$export);\n }\n}\n//# sourceMappingURL=behavior_builder.js.map","/* eslint-disable @typescript-eslint/no-unsafe-return */\nimport * as glassEasel from 'glass-easel';\nimport { BaseBehaviorBuilder } from './base_behavior_builder';\nimport { ComponentType } from '../behavior';\nimport { ComponentProto } from '../component';\n/**\n * A direct way to create a component\n */\nexport class ComponentBuilder extends BaseBehaviorBuilder {\n /** @internal */\n static create(codeSpace, is, alias) {\n const ret = new ComponentBuilder();\n const overallBehavior = codeSpace._$overallBehavior;\n ret._$codeSpace = codeSpace;\n ret._$ = codeSpace.getComponentSpace().defineWithMethodCaller(is || '');\n ret._$is = is || '';\n ret._$alias = alias;\n ret._$.methodCallerInit(function () {\n const originalCaller = this;\n let proto = ret._$proto;\n if (proto === undefined) {\n const methods = originalCaller.getComponentDefinition().behavior.getMethods();\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n proto = ret._$proto = new ComponentProto(methods, ret._$export);\n }\n const caller = proto.derive();\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n caller._$ = originalCaller;\n return caller;\n });\n if (overallBehavior)\n ret._$.behavior(overallBehavior);\n return ret;\n }\n /**\n * Set the component options\n *\n * If called multiple times, only the latest call is valid.\n */\n options(options) {\n this._$options = options;\n return this;\n }\n /** Use another behavior */\n behavior(behavior) {\n this._$parents.push(behavior);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n this._$ = this._$.behavior(behavior._$);\n if (behavior._$export) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n this._$export = behavior._$export;\n }\n return this;\n }\n /** Set the export value when the component is being selected */\n export(f) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n this._$export = f;\n return this;\n }\n /**\n * Add some template data fields\n *\n * It does not support raw data, but a `gen` function which returns the new data fields.\n * The `gen` function executes once during component creation.\n */\n data(gen) {\n return super.data(gen);\n }\n /**\n * Add a single property\n *\n * The property name should be different from other properties.\n */\n property(name, def) {\n return super.property(name, def);\n }\n /**\n * Add some public methods\n *\n * The public method can be used as an event handler, and can be visited in component instance.\n */\n methods(funcs) {\n return super.methods(funcs);\n }\n /**\n * Execute a function while component instance creation\n *\n * A `BuilderContext` is provided to tweak the component creation progress.\n * The return value is used as the \"export\" value of the behavior,\n * which can be imported by other behaviors.\n */\n init(func) {\n return super.init(func);\n }\n /** Apply a classic definition object */\n definition(def) {\n super.definition(def);\n if (def.options)\n this.options(def.options);\n return this;\n }\n pageDefinition(def) {\n const freeData = Object.create(null);\n const compDef = {\n methods: {},\n };\n const keys = Object.keys(def);\n for (let i = 0; i < keys.length; i += 1) {\n const k = keys[i];\n if (k === 'data' || k === 'options' || k === 'behaviors') {\n compDef[k] = def[k];\n }\n else if (typeof def[k] === 'function') {\n ;\n compDef.methods[k] = def[k];\n }\n else {\n ;\n freeData[k] = def[k];\n }\n }\n this.definition(compDef);\n this._$.init(function () {\n Object.assign(this, glassEasel.dataUtils.simpleDeepCopy(freeData));\n });\n return this;\n }\n /**\n * Finish the component definition process\n */\n register() {\n var _a;\n const is = this._$is;\n const codeSpace = this._$codeSpace;\n // processing common fields\n const [options, styleIsolation] = codeSpace.prepareComponentOptions(is, this._$options);\n this._$.options(options);\n const staticConfig = codeSpace.getComponentStaticConfig(is);\n const using = staticConfig === null || staticConfig === void 0 ? void 0 : staticConfig.usingComponents;\n const generics = staticConfig === null || staticConfig === void 0 ? void 0 : staticConfig.componentGenerics;\n const placeholder = staticConfig === null || staticConfig === void 0 ? void 0 : staticConfig.componentPlaceholder;\n if (using)\n this._$.usingComponents(using);\n if (generics)\n this._$.generics(generics);\n if (placeholder)\n this._$.placeholders(placeholder);\n const template = codeSpace.getCompiledTemplate(is);\n if (template)\n this._$.template(template);\n // do registration\n codeSpace._$styleIsolationMap[is] = styleIsolation;\n const compDef = this._$.registerComponent();\n (_a = this._$alias) === null || _a === void 0 ? void 0 : _a.forEach((alias) => {\n this._$codeSpace.getComponentSpace().exportComponent(alias, this._$is);\n });\n return new ComponentType(compDef);\n }\n}\n//# sourceMappingURL=component_builder.js.map","export const guid = () => Math.floor((1 + Math.random()) * 0x100000000)\n .toString(16)\n .slice(1);\n//# sourceMappingURL=utils.js.map","/* eslint-disable @typescript-eslint/no-unsafe-return */\nimport * as glassEasel from 'glass-easel';\nimport { guid } from './utils';\nimport { TraitBehavior } from './behavior';\nimport { BehaviorBuilder, ComponentBuilder } from './builder';\n/**\n * A component space with mini-program code manager\n */\nexport class CodeSpace {\n /** @internal */\n constructor(env, isMainSpace, publicComponents, globalCodeSpace) {\n /** @internal */\n this._$overallBehavior = null;\n this._$env = env;\n this._$isMainSpace = isMainSpace;\n this.space = new glassEasel.ComponentSpace('', globalCodeSpace === null || globalCodeSpace === void 0 ? void 0 : globalCodeSpace.space, globalCodeSpace === null || globalCodeSpace === void 0 ? void 0 : globalCodeSpace.space.styleScopeManager);\n this.styleScopeManager = this.space.styleScopeManager;\n this.staticConfigMap = Object.create(null);\n this.styleSheetMap = Object.create(null);\n this.compiledTemplateMap = Object.create(null);\n this.waitingAliasMap = Object.create(null);\n Object.keys(publicComponents).forEach((alias) => {\n const is = publicComponents[alias];\n if (this.waitingAliasMap[is])\n this.waitingAliasMap[is].push(alias);\n else\n this.waitingAliasMap[is] = [alias];\n });\n this._$sharedStyleScope = this.styleScopeManager.register('');\n this._$styleIsolationMap = Object.create(null);\n }\n isMainSpace() {\n return this._$isMainSpace;\n }\n /**\n * Get the underlying component space\n */\n getComponentSpace() {\n return this.space;\n }\n /**\n * Add a behavior for all components\n *\n * Must be called before any component registration so that the component will use this behavior.\n * Set to `null` to disable this behavior.\n */\n setOverallBehavior(behavior) {\n this._$overallBehavior = behavior;\n }\n /**\n * Import another component space as a plugin (must be in the same environment)\n *\n * Components from the imported `codeSpace` can be used with URLs.\n * If `domainAlias` is provided, the URL format is `plugin://DOMAIN_ALIAS/COMPONENT_SPACE_EXPORT_ALIAS` .\n * If `privateImport` is enabled, another URL format is `plugin-private://DOMAIN/COMPONENT_IS` .\n */\n importCodeSpace(id, domainAlias, privateImport = false) {\n const cs = this._$env.getCodeSpace(id);\n if (!cs) {\n throw new Error(`There is no space \"${id}\" in the environment`);\n }\n if (domainAlias)\n this.space.importSpace(`plugin://${domainAlias}`, cs.space, false);\n if (privateImport)\n this.space.importSpace(`plugin-private://${id}`, cs.space, true);\n }\n /**\n * Add a style sheet URL with style scope name\n *\n * The URL should be recognized by the target backend.\n * The `path` should not contain the `.wxss` suffix.\n */\n addStyleSheet(path, styleSheetUrl, styleScopeName) {\n this.styleSheetMap[path] = { url: styleSheetUrl, styleScopeName };\n }\n /**\n * Get a style sheet URL\n *\n * The URL should be recognized by the target backend.\n * The `path` should not contain the `.wxss` suffix.\n */\n getStyleSheet(path) {\n var _a;\n return (_a = this.styleSheetMap[path]) === null || _a === void 0 ? void 0 : _a.url;\n }\n getStyleScopeName(path) {\n var _a;\n return (_a = this.styleSheetMap[path]) === null || _a === void 0 ? void 0 : _a.styleScopeName;\n }\n /**\n * Add a compiled template\n *\n * The content is the execution result of the generated string of the template compiler.\n * The `path` should not contain the `.wxml` suffix.\n */\n addCompiledTemplate(path, content) {\n this.compiledTemplateMap[path] = content;\n }\n /**\n * Get a compiled template\n *\n * The content is the execution result of the generated string of the template compiler.\n * The `path` should not contain the `.wxml` suffix.\n */\n getCompiledTemplate(path) {\n return this.compiledTemplateMap[path];\n }\n /**\n * Add a static JSON config\n *\n * The `path` should not contain the `.json` suffix.\n */\n addComponentStaticConfig(path, content) {\n this.staticConfigMap[path] = content;\n }\n /**\n * Get a static JSON config\n *\n * The `path` should not contain the `.json` suffix.\n */\n getComponentStaticConfig(path) {\n return this.staticConfigMap[path];\n }\n /** @internal */\n prepareComponentOptions(is, options) {\n // accept some fields from static JSON config\n const staticConfig = this.staticConfigMap[is];\n const pureDataPatternString = staticConfig === null || staticConfig === void 0 ? void 0 : staticConfig.pureDataPattern;\n const pureDataPattern = pureDataPatternString\n ? new RegExp(pureDataPatternString)\n : options === null || options === void 0 ? void 0 : options.pureDataPattern;\n // calculate style scope\n const addGlobalClass = staticConfig === null || staticConfig === void 0 ? void 0 : staticConfig.addGlobalClass;\n let styleIsolation = staticConfig === null || staticConfig === void 0 ? void 0 : staticConfig.styleIsolation;\n if (styleIsolation === undefined) {\n if (staticConfig === null || staticConfig === void 0 ? void 0 : staticConfig.component) {\n styleIsolation = addGlobalClass ? \"apply-shared\" /* StyleIsolation.ApplyShared */ : \"isolated\" /* StyleIsolation.Isolated */;\n }\n else {\n styleIsolation = \"shared\" /* StyleIsolation.Shared */;\n }\n }\n let styleScope;\n let extraStyleScope;\n if (styleIsolation === \"apply-shared\" /* StyleIsolation.ApplyShared */ ||\n styleIsolation === \"page-apply-shared\" /* StyleIsolation.PageApplyShared */) {\n styleScope = this.styleScopeManager.register(this.getStyleScopeName(is) || `__${guid()}`);\n extraStyleScope = this._$sharedStyleScope;\n }\n else if ((styleIsolation === \"shared\" /* StyleIsolation.Shared */ || styleIsolation === \"page-shared\" /* StyleIsolation.PageShared */) &&\n this._$isMainSpace) {\n styleScope = this._$sharedStyleScope;\n }\n else {\n styleScope = this.styleScopeManager.register(this.getStyleScopeName(is) || `__${guid()}`);\n }\n // construct component options\n const ret = {\n idPrefixGenerator: guid,\n multipleSlots: options === null || options === void 0 ? void 0 : options.multipleSlots,\n pureDataPattern,\n virtualHost: options === null || options === void 0 ? void 0 : options.virtualHost,\n styleScope,\n extraStyleScope,\n dataDeepCopy: options === null || options === void 0 ? void 0 : options.dataDeepCopy,\n propertyPassingDeepCopy: options === null || options === void 0 ? void 0 : options.propertyPassingDeepCopy,\n propertyEarlyInit: options === null || options === void 0 ? void 0 : options.propertyEarlyInit,\n };\n return [ret, styleIsolation];\n }\n /**\n * Create a component definition environment\n *\n * During the sync execution of `cb` , `Component` and `Behavior` global vars will be available.\n * `globalObject` should be the JavaScript global object, a.k.a. `window` in DOM.\n * Some global variables, a.k.a `Component` `Behavior` `Page` ,\n * will be written into `globalObject` .\n * `path` should be the component path (without \".js\" extension).\n */\n globalComponentEnv(globalObject, path, cb) {\n return this.componentEnv(path, ({ Page, Component, Behavior }) => {\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n /* eslint-disable @typescript-eslint/no-unsafe-assignment */\n const oldPage = globalObject.Page;\n const oldComponent = globalObject.Component;\n const oldBehavior = globalObject.Behavior;\n globalObject.Page = Page;\n globalObject.Component = Component;\n globalObject.Behavior = Behavior;\n const ret = cb();\n globalObject.Page = oldPage;\n globalObject.Component = oldComponent;\n globalObject.Behavior = oldBehavior;\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n /* eslint-enable @typescript-eslint/no-unsafe-assignment */\n return ret;\n });\n }\n /**\n * Create a component definition environment\n *\n * Like `globalComponentEnv` , but the global variables are given as callback arguments.\n */\n componentEnv(path, cb) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const self = this;\n // The page constructor\n function pageConstructor(definition) {\n return self.component(path).pageDefinition(definition).register();\n }\n function componentConstructor(definition) {\n if (definition !== undefined) {\n return self.component(path).definition(definition).register();\n }\n return self.component(path);\n }\n function behaviorConstructor(definition) {\n if (definition !== undefined) {\n return self.behavior().definition(definition).register();\n }\n return self.behavior();\n }\n behaviorConstructor.trait = self.traitBehavior.bind(self);\n // prepare global vars and execute\n return cb({\n Page: pageConstructor,\n Component: componentConstructor,\n Behavior: behaviorConstructor,\n });\n }\n /**\n * Build a component outside of a definition environment\n *\n * The method do not need a definition environment, so the global object pollution is avoided.\n * `path` should be the component path (without \".js\" extension).\n */\n component(path) {\n return ComponentBuilder.create(this, path, this.waitingAliasMap[path]);\n }\n /**\n * Build a behavior outside of a definition environment\n *\n * The method do not need a definition environment, so the global object pollution is avoided.\n */\n behavior() {\n return BehaviorBuilder.create(this);\n }\n traitBehavior(trans) {\n if (trans === undefined) {\n return new TraitBehavior(this.space.defineTraitBehavior());\n }\n return new TraitBehavior(this.space.defineTraitBehavior(trans));\n }\n}\n//# sourceMappingURL=space.js.map","import * as glassEasel from 'glass-easel';\nimport { AssociatedBackend } from './backend';\nimport { CodeSpace } from './space';\n/**\n * A mini-program API environment\n *\n * Each environment manages multiple backend contexts.\n * However, a backend context should be exclusively managed by a single environment\n * (to avoid `StyleScopeId` confliction).\n * It is able to create multiple `CodeSpace` within the environment.\n */\nexport class MiniProgramEnv {\n /**\n * Create an empty mini-program API environment\n */\n constructor() {\n this.codeSpaceMap = Object.create(null);\n this.globalCodeSpace = new CodeSpace(this, false, {});\n }\n /**\n * Get a global code space in which global components can be defined\n *\n * External glass-easel based components can be defined in this code space.\n * All global components should be defined before any other `CodeSpace` created!\n */\n getGlobalCodeSpace() {\n return this.globalCodeSpace;\n }\n /**\n * Associate a backend context\n *\n * If `backendContext` is not given, the DOM-based backend is used\n * (causes failure if running outside browsers).\n * The backend context SHOULD NOT be associated by other environments!\n */\n associateBackend(backendContent) {\n const ctx = backendContent !== null && backendContent !== void 0 ? backendContent : new glassEasel.CurrentWindowBackendContext();\n return new AssociatedBackend(this, ctx);\n }\n /**\n * Create a component space that can manage WXML, WXSS, JS and static JSON config files\n *\n * The space can be specified as a *main* space.\n * This makes some features available:\n * * the `app.wxss` will be used as a style sheet for all root components in the space;\n * * the `StyleIsolation.Shared` is accepted for components in the space.\n * Non-main spaces usually act as plugins.\n * `publicComponents` is a map for specifying a map of aliases and component paths.\n */\n createCodeSpace(id, isMainSpace, publicComponents = Object.create(null)) {\n const cs = new CodeSpace(this, isMainSpace, publicComponents, this.globalCodeSpace);\n this.codeSpaceMap[id] = cs;\n return cs;\n }\n /**\n * Get a component space by the `id` specified when created\n */\n getCodeSpace(id) {\n return this.codeSpaceMap[id];\n }\n}\n//# sourceMappingURL=env.js.map","export { typeUtils as utils } from 'glass-easel';\nexport var StyleIsolation;\n(function (StyleIsolation) {\n StyleIsolation[\"Isolated\"] = \"isolated\";\n StyleIsolation[\"ApplyShared\"] = \"apply-shared\";\n StyleIsolation[\"Shared\"] = \"shared\";\n StyleIsolation[\"PageIsolated\"] = \"page-isolated\";\n StyleIsolation[\"PageApplyShared\"] = \"page-apply-shared\";\n StyleIsolation[\"PageShared\"] = \"page-shared\";\n})(StyleIsolation || (StyleIsolation = {}));\n//# sourceMappingURL=types.js.map"],"names":["AssociatedBackend","constructor","env","backendContext","this","_$env","_$","registerStyleSheetContent","url","content","createRoot","tagName","codeSpace","genericTargets","Error","Root","_$comp","getComponentSpace","createComponentByUrl","isMainSpace","globalStyleSheet","getStyleSheet","undefined","styleIsolation","_$styleIsolationMap","is","appendStyleSheetPath","_$sharedStyleScope","addStyleSheet","comp","styleScope","getComponentOptions","path","glassEasel","StyleScopeManager","globalScope","getRootBehavior","getComponentDependencies","forEach","getComponentDefinition","get","getMethodCaller","getComponent","attach","parent","placeholder","Element","replaceDocumentElement","release","pretendDetached","destroyBackendElement","joinAsync","inits","cb","initDone","jobCount","length","rets","Array","init","index","ret","setTimeout","NodesRef","selectorQuery","component","selector","selectSingle","_$sq","_$sel","_$single","fields","_$push","boundingClientRect","id","dataset","rect","size","scrollOffset","SelectorQuery","_$queue","select","selectAll","selectViewport","single","push","exec","q","map","req","done","res","ctx","getBackendContext","width","getWindowWidth","height","getWindowHeight","mark","left","top","right","bottom","rootComp","general","ownerShadowRoot","getHostNode","getBoundingClientRect","scrollLeft","scrollTop","scrollWidth","scrollHeight","constructSingleRes","elem","collectMarks","getScrollOffset","properties","Component","isComponent","propName","hasProperty","ds","propertyPassingDeepCopy","v","data","DeepCopyKind","None","Simple","dataUtils","simpleDeepCopy","SimpleWithRecursion","deepCopy","node","getShadowRoot","querySelector","nodes","querySelectorAll","resList","defaultMargins","IntersectionObserver","thresholds","initialRatio","observeAll","_$selector","_$margins","_$observers","_$thresholds","_$initialRatio","_$observeAll","relativeTo","margins","relativeToViewport","observe","targetSelector","listener","shadowRoot","targets","relativeElement","rel","margin","target","initial","observer","createIntersectionObserver","args","i","threshold","intersectionRatio","disconnect","observers","MediaQueryObserver","_$observer","descriptor","_a","_b","createMediaQueryObserver","call","filterComponentExportWithType","source","componentType","asInstanceOf","selectedSpace","ownerSpace","uncheckedCaller","caller","ComponentCaller","sourceSpace","defaultResult","_$export","filterComponentExport","value","Object","defineProperty","writable","enumerable","configurable","groupSetData","callback","setData","triggerRender","updateData","newData","replaceDataOnPath","spliceArrayDataOnPath","del","inserts","applyDataUpdates","groupUpdates","hasBehavior","behavior","traitBehavior","triggerEvent","name","detail","options","createSelectorQuery","selectComponent","selectAllComponents","r","selectOwnerComponent","_c","getRelationNodes","relationKey","ComponentProto","methods","componentExport","proto","create","prototype","assign","derive","Behavior","inner","parents","definitionFilter","definitionFilterArgs","p","_$bindedDefinitionFilter","childDef","ComponentType","TraitBehavior","BaseBehaviorBuilder","_$parents","implement","impl","externalClasses","list","f","gen","property","def","funcs","paths","func","once","lifetime","pageLifetime","relation","type","linked","linkChanged","unlinked","linkFailed","method","methodCaller","self","definition","behaviors","beh","rawProperties","rawData","rawObservers","created","attached","ready","moved","detached","lifetimes","rawLifetimes","pageLifetimes","rawPageLifetimes","relations","rawRelations","export","exports","staticData","keys","isArray","BehaviorBuilder","_$codeSpace","defineWithMethodCaller","chainingFilter","super","_$definitionFilter","register","registerBehavior","ComponentBuilder","alias","overallBehavior","_$overallBehavior","_$is","_$alias","methodCallerInit","originalCaller","_$proto","getMethods","_$options","pageDefinition","freeData","compDef","k","prepareComponentOptions","staticConfig","getComponentStaticConfig","using","usingComponents","generics","componentGenerics","componentPlaceholder","placeholders","template","getCompiledTemplate","registerComponent","exportComponent","guid","Math","floor","random","toString","slice","CodeSpace","publicComponents","globalCodeSpace","_$isMainSpace","space","ComponentSpace","styleScopeManager","staticConfigMap","styleSheetMap","compiledTemplateMap","waitingAliasMap","setOverallBehavior","importCodeSpace","domainAlias","privateImport","cs","getCodeSpace","importSpace","styleSheetUrl","styleScopeName","getStyleScopeName","addCompiledTemplate","addComponentStaticConfig","pureDataPatternString","pureDataPattern","RegExp","addGlobalClass","extraStyleScope","idPrefixGenerator","multipleSlots","virtualHost","dataDeepCopy","propertyEarlyInit","globalComponentEnv","globalObject","componentEnv","Page","oldPage","oldComponent","oldBehavior","behaviorConstructor","trait","bind","trans","defineTraitBehavior","MiniProgramEnv","codeSpaceMap","getGlobalCodeSpace","associateBackend","backendContent","CurrentWindowBackendContext","createCodeSpace","StyleIsolation"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("glass-easel");function t(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(i){if("default"!==i){var o=Object.getOwnPropertyDescriptor(e,i);Object.defineProperty(t,i,o.get?o:{enumerable:!0,get:function(){return e[i]}})}})),t.default=e,Object.freeze(t)}var i=t(e);class o{constructor(e,t){this._$env=e,this._$=t}registerStyleSheetContent(e,t){this._$.registerStyleSheetContent(e,t)}createRoot(e,t,i,o){if(this._$env!==t._$env)throw new Error("The code space is not in the same environment as the backend");return new s(this._$,e,t,i,o)}}class s{constructor(e,t,o,s,r){if(this._$comp=o.getComponentSpace().createComponentByUrl(t,s,r||null,e),o.isMainSpace()){const t=o.getStyleSheet("app");if(void 0!==t){const i=o._$styleIsolationMap[this._$comp.is];"isolated"!==i&&"apply-shared"!==i&&"shared"!==i||e.appendStyleSheetPath(t,o._$sharedStyleScope)}}const n=t=>{const{styleScope:s}=t.getComponentOptions(),r=o.getStyleSheet(t.is);void 0!==r&&e.appendStyleSheetPath(r,null!=s?s:i.StyleScopeManager.globalScope())};this._$comp.getRootBehavior().getComponentDependencies().forEach(n),n(this._$comp.getComponentDefinition())}getComponent(){return this._$comp}attach(e,t){i.Element.replaceDocumentElement(this._$comp,e,t)}release(){i.Element.pretendDetached(this._$comp),this._$comp.destroyBackendElement()}}const r=(e,t)=>{let i=!1,o=e.length;const s=new Array(o);e.forEach(((e,r)=>{e((e=>{s[r]=e,o-=1,0===o&&i&&t(s)}))})),i=!0,0===o&&setTimeout((()=>{t(s)}),0)};class n{constructor(e,t,i,o){this._$sq=e,this._$comp=t,this._$sel=i,this._$single=o}fields(e,t=(()=>{})){return this._$sq._$push(this._$sel,this._$comp,this._$single,e,t),this._$sq}boundingClientRect(e=(()=>{})){return this._$sq._$push(this._$sel,this._$comp,this._$single,{id:!0,dataset:!0,rect:!0,size:!0},e),this._$sq}scrollOffset(e=(()=>{})){return this._$sq._$push(this._$sel,this._$comp,this._$single,{id:!0,dataset:!0,scrollOffset:!0},e),this._$sq}}class a{constructor(e){this._$comp=e,this._$queue=[]}in(e){return this._$comp=e,this}select(e){return new n(this,this._$comp,e,!0)}selectAll(e){return new n(this,this._$comp,e,!1)}selectViewport(){return new n(this,this._$comp,null,!0)}_$push(e,t,i,o,s){this._$queue.push({component:t,selector:e,single:i,fields:o,cb:s})}exec(e=(()=>{})){const t=this._$queue;r(t.map((e=>t=>{const{component:o,selector:s,single:n,fields:a,cb:l}=e;if(null===s){const e={};r([t=>{const i=o._$.getBackendContext(),s=i?i.getWindowWidth():0,r=i?i.getWindowHeight():0;if(a.id&&(e.id=""),a.dataset&&(e.dataset={}),a.mark&&(e.mark={}),a.rect&&(e.left=0,e.top=0,e.right=s,e.bottom=r),a.size&&(e.width=s,e.height=r),a.scrollOffset){let i=o._$.general();for(;i.ownerShadowRoot;)i=i.ownerShadowRoot.getHostNode();i.getBoundingClientRect((({left:i,top:o,width:s,height:r})=>{e.scrollLeft=i,e.scrollTop=o,e.scrollWidth=s,e.scrollHeight=r,t(void 0)}))}else t(void 0)}],(()=>{l(e),t(e)}))}else{const e=(e,t)=>{const o={};a.id&&(o.id=e.id),a.dataset&&(o.dataset=e.dataset),a.mark&&(o.mark=e.collectMarks()),r([t=>{a.rect||a.size?e.getBoundingClientRect((e=>{a.rect&&(o.left=e.left,o.top=e.top,o.right=e.left+e.width,o.bottom=e.top+e.height),a.size&&(o.width=e.width,o.height=e.height),t(void 0)})):t(void 0)},t=>{a.scrollOffset?e.getScrollOffset((e=>{o.scrollLeft=e.scrollLeft,o.scrollTop=e.scrollTop,o.scrollWidth=e.scrollWidth,o.scrollHeight=e.scrollHeight,t(void 0)})):t(void 0)}],(()=>{a.properties&&i.Component.isComponent(e)&&a.properties.forEach((t=>{if(i.Component.hasProperty(e,t)){const s=e.getComponentOptions().propertyPassingDeepCopy,r=e.data[t];s===i.DeepCopyKind.None?o[t]=r:s===i.DeepCopyKind.Simple?o[t]=i.dataUtils.simpleDeepCopy(r):s===i.DeepCopyKind.SimpleWithRecursion&&(o[t]=i.dataUtils.deepCopy(r,!0))}})),t(o)}))};if(n){const i=o._$.getShadowRoot().querySelector(s);i?e(i,(e=>{l(e),t(e)})):setTimeout((()=>{l(null),t(null)}),0)}else{const i=o._$.getShadowRoot().querySelectorAll(s);r(i.map((t=>i=>{e(t,(e=>{i(e)}))})),(e=>{l(e),t(e)}))}}})),e)}}const l={left:0,top:0,right:0,bottom:0};class h{constructor(e,t,i,o){this._$selector=null,this._$margins=null,this._$observers=[],this._$comp=e,this._$thresholds=t,this._$initialRatio=i,this._$observeAll=o}relativeTo(e,t){return this._$selector=e,this._$margins=null!=t?t:l,this}relativeToViewport(e){return this._$selector=null,this._$margins=null!=e?e:l,this}observe(e,t){const i=this._$comp._$.getShadowRoot();let o,s;if(i)if(this._$observeAll)o=i.querySelectorAll(e);else{const t=i.querySelector(e);o=null===t?[]:[t]}else o=[];if(null!==this._$selector&&i){const e=i.querySelector(this._$selector);null===e||(s=e)}else s=null;if(!this._$margins)throw new Error("`relativeTo` or `relativeToViewport` should be called before observe");const{left:r,top:n,right:a,bottom:l}=this._$margins,h=`${n}px ${a}px ${l}px ${r}px`;o.forEach((e=>{let i=this._$initialRatio;const o=e.createIntersectionObserver(s,h,this._$thresholds,(e=>{if(null!==i){let t=0;for(;t<this._$thresholds.length;t+=1){const o=this._$thresholds[t];if(i!==e.intersectionRatio&&(i-o)*(e.intersectionRatio-o)<=0)break}if(i=null,t<this._$thresholds.length)return}t(e)}));null===o||this._$observers.push(o)}))}disconnect(){const e=this._$observers;this._$observers=[],e.forEach((e=>e.disconnect()))}}class c{constructor(e){this._$observer=null,this._$comp=e}observe(e,t){var i,o;this._$observer&&this._$observer.disconnect(),this._$observer=(null===(o=null===(i=this._$comp._$.getBackendContext())||void 0===i?void 0:i.createMediaQueryObserver)||void 0===o?void 0:o.call(i,e,t))||null}disconnect(){this._$observer&&this._$observer.disconnect(),this._$observer=null}}const p=(e,t,i)=>{var o;const s=t.asInstanceOf(i._$);if(null===s)return;const r=s.getRootBehavior().ownerSpace,n=s.getMethodCaller(),a=n instanceof u?n:null,l=e._$.getRootBehavior().ownerSpace,h=r!==l?null:a,c=null===(o=null==a?void 0:a._$export)||void 0===o?void 0:o.call(a,r!==l?null:e);return void 0===c?h:c},d=(e,t)=>{var o;if(i.Component.isComponent(t)){const i=t.getRootBehavior().ownerSpace,s=t.getMethodCaller(),r=s instanceof u?s:null,n=e._$.getRootBehavior().ownerSpace,a=i!==n?null:r,l=null===(o=null==r?void 0:r._$export)||void 0===o?void 0:o.call(r,i!==n?null:e);return void 0===l?a:l}};class u{get is(){return this._$.is}set is(e){Object.defineProperty(this,"is",{value:e,writable:!0,enumerable:!0,configurable:!0})}get id(){return this._$.id}set id(e){Object.defineProperty(this,"id",{value:e,writable:!0,enumerable:!0,configurable:!0})}get dataset(){return this._$.dataset}set dataset(e){Object.defineProperty(this,"dataset",{value:e,writable:!0,enumerable:!0,configurable:!0})}get data(){return this._$.data}set data(e){Object.defineProperty(this,"data",{value:e,writable:!0,enumerable:!0,configurable:!0})}get properties(){return this._$.data}set properties(e){Object.defineProperty(this,"properties",{value:e,writable:!0,enumerable:!0,configurable:!0})}groupSetData(e){e()}setData(e,t){this._$.setData(e),t&&i.triggerRender(this._$,(()=>{t()}))}updateData(e){this._$.updateData(e)}replaceDataOnPath(e,t){this._$.replaceDataOnPath(e,t)}spliceArrayDataOnPath(e,t,i,o){this._$.spliceArrayDataOnPath(e,t,i,o)}applyDataUpdates(){this._$.applyDataUpdates()}groupUpdates(e){return this._$.groupUpdates(e)}hasBehavior(e){return this._$.hasBehavior(e._$)}traitBehavior(e){return this._$.traitBehavior(e._$)}triggerEvent(e,t,i){return this._$.triggerEvent(e,t,i)}createSelectorQuery(){return new a(this)}createIntersectionObserver(e){return new h(this,(null==e?void 0:e.thresholds)||[0],(null==e?void 0:e.initialRatio)||0,(null==e?void 0:e.observeAll)||!1)}createMediaQueryObserver(){return new c(this)}selectComponent(e,t){var i,o;const s=this._$.getShadowRoot().querySelector(e);return null===s?null:t?null!==(i=p(this,s,t))&&void 0!==i?i:null:null!==(o=d(this,s))&&void 0!==o?o:null}selectAllComponents(e,t){const i=this._$.getShadowRoot().querySelectorAll(e),o=[];return i.forEach((e=>{const i=t?p(this,e,t):d(this,e);void 0!==i&&o.push(i)})),o}selectOwnerComponent(e){var t,i,o;const s=null===(t=this._$.ownerShadowRoot)||void 0===t?void 0:t.getHostNode();return void 0===s?null:e?null!==(i=p(this,s,e))&&void 0!==i?i:null:null!==(o=d(this,s))&&void 0!==o?o:null}getRelationNodes(e){return this._$.getRelationNodes(e).map((e=>e.getMethodCaller()))}general(){return this}asInstanceOf(e){return this._$.asInstanceOf(e._$)?this:null}}class _{constructor(e,t){this.proto=Object.create(u.prototype),Object.assign(this.proto,e),this.proto._$export=t}derive(){return Object.create(this.proto)}}var $=Object.freeze({__proto__:null,ComponentCaller:u,ComponentProto:_});const g=()=>Math.floor(4294967296*(1+Math.random())).toString(16).slice(1);class v{constructor(e,t,i,o){if(this._$=e,this._$export=o,void 0!==i){const e=t.map((e=>{var t;return null!==(t=e._$bindedDefinitionFilter)&&void 0!==t?t:null}));this._$bindedDefinitionFilter=t=>{i(t,e)}}}}class m{constructor(e){this._$=e}}class f{constructor(e){this._$=e}}class y{constructor(){this._$parents=[]}implement(e,t){return this._$.implement(e._$,t),this}externalClasses(e){return this._$.externalClasses(e),this}export(e){return this._$export=e,this}data(e){return this._$.data(e),this}property(e,t){return this._$.property(e,t),this}methods(e){return this._$.methods(e),this}observer(e,t,i=!1){return this._$.observer(e,t,i),this}lifetime(e,t,i=!1){return this._$.lifetime(e,t,i),this}pageLifetime(e,t,i=!1){return this._$.pageLifetime(e,t,i),this}relation(e,t){const i=t.target instanceof v||t.target instanceof m?t.target._$:t.target;return this._$.relation(e,{target:i,type:t.type,linked:t.linked,linkChanged:t.linkChanged,unlinked:t.unlinked,linkFailed:t.linkFailed}),this}init(e){return this._$.init((function({data:t,setData:o,implement:s,relation:r,observer:n,lifetime:a,pageLifetime:l,method:h,listener:c}){const p=this;return e.call(p,{self:p,data:t,setData:(e,t)=>{o(e),t&&i.triggerRender(p._$,(()=>{t()}))},implement:(e,t)=>{s(e._$,t)},relation:e=>{if(e.target instanceof f)return r({target:e.target._$,type:e.type,linked:e.linked,linkChanged:e.linkChanged,unlinked:e.unlinked,linkFailed:e.linkFailed});const t=e.target instanceof v||e.target instanceof m?e.target._$:e.target;return r({target:t,type:e.type,linked:e.linked,linkChanged:e.linkChanged,unlinked:e.unlinked,linkFailed:e.linkFailed})},observer:n,lifetime:a,pageLifetime:l,method:h,listener:c})})),this}definition(e){var t;null===(t=e.behaviors)||void 0===t||t.forEach((t=>{var i;return null===(i=t._$bindedDefinitionFilter)||void 0===i?void 0:i.call(t,e)}));const i=this._$,{behaviors:o,properties:s,data:r,observers:n,methods:a,created:l,attached:h,ready:c,moved:p,detached:d,lifetimes:u,pageLifetimes:_,relations:$,externalClasses:g,export:v}=e;if(null==o||o.forEach((e=>{this._$parents.push(e),i.behavior(e._$)})),void 0!==r&&("function"==typeof r?i.data(r):i.staticData(r)),void 0!==s){const e=Object.keys(s);for(let t=0;t<e.length;t+=1){const o=e[t];i.property(o,s[o])}}if(void 0!==n)if(Array.isArray(n))for(let e=0;e<n.length;e+=1){const{fields:t,observer:o}=n[e];i.observer(t||"**",o)}else{const e=Object.keys(n);for(let t=0;t<e.length;t+=1){const o=e[t],s=n[o];i.observer(o,s)}}if(a&&i.methods(a),l&&void 0===(null==u?void 0:u.created)&&i.lifetime("created",l,!0),h&&void 0===(null==u?void 0:u.attached)&&i.lifetime("attached",h,!0),c&&void 0===(null==u?void 0:u.ready)&&i.lifetime("ready",c,!0),p&&void 0===(null==u?void 0:u.moved)&&i.lifetime("moved",p,!0),d&&void 0===(null==u?void 0:u.detached)&&i.lifetime("detached",d,!0),u){const e=Object.keys(u);for(let t=0;t<e.length;t+=1){const o=e[t],s=u[o];i.lifetime(o,s,!0)}}if(_){const e=Object.keys(_);for(let t=0;t<e.length;t+=1){const o=e[t],s=_[o];i.pageLifetime(o,s,!0)}}if($){const e=Object.keys($);for(let t=0;t<e.length;t+=1){const o=e[t],s=$[o];i.relation(o,s)}}return g&&i.externalClasses(g),v&&(this._$export=v),this}}class S extends y{static create(e){const t=new S;return t._$codeSpace=e,t._$=e.getComponentSpace().defineWithMethodCaller(),t}chainingFilter(e){return this._$.chainingFilter(e),this}behavior(e){return this._$parents.push(e),this._$=this._$.behavior(e._$),this}export(e){return super.export(e)}data(e){return super.data(e)}property(e,t){return super.property(e,t)}methods(e){return super.methods(e)}init(e){return super.init(e)}definition(e){return super.definition(e),e.definitionFilter&&(this._$definitionFilter=e.definitionFilter),this}register(){return new v(this._$.registerBehavior(),this._$parents,this._$definitionFilter,this._$export)}}class b extends y{static create(e,t,i){const o=new b,s=e._$overallBehavior;return o._$codeSpace=e,o._$=e.getComponentSpace().defineWithMethodCaller(t||""),o._$is=t||"",o._$alias=i,o._$.methodCallerInit((function(){const e=this;let t=o._$proto;if(void 0===t){const i=e.getComponentDefinition().behavior.getMethods();t=o._$proto=new _(i,o._$export)}const i=t.derive();return i._$=e,i})),s&&o._$.behavior(s),o}options(e){return this._$options=e,this}behavior(e){return this._$parents.push(e),this._$=this._$.behavior(e._$),e._$export&&(this._$export=e._$export),this}export(e){return this._$export=e,this}data(e){return super.data(e)}property(e,t){return super.property(e,t)}methods(e){return super.methods(e)}init(e){return super.init(e)}definition(e){return super.definition(e),e.options&&this.options(e.options),this}pageDefinition(e){const t=Object.create(null),o={methods:{}},s=Object.keys(e);for(let i=0;i<s.length;i+=1){const r=s[i];"data"===r||"options"===r||"behaviors"===r?o[r]=e[r]:"function"==typeof e[r]?o.methods[r]=e[r]:t[r]=e[r]}return this.definition(o),this._$.init((function(){Object.assign(this,i.dataUtils.simpleDeepCopy(t))})),this}register(){var e;const t=this._$is,i=this._$codeSpace,[o,s]=i.prepareComponentOptions(t,this._$options);this._$.options(o);const r=i.getComponentStaticConfig(t),n=null==r?void 0:r.usingComponents,a=null==r?void 0:r.componentGenerics,l=null==r?void 0:r.componentPlaceholder;n&&this._$.usingComponents(n),a&&this._$.generics(a),l&&this._$.placeholders(l);const h=i.getCompiledTemplate(t);h&&this._$.template(h),i._$styleIsolationMap[t]=s;const c=this._$.registerComponent();return null===(e=this._$alias)||void 0===e||e.forEach((e=>{this._$codeSpace.getComponentSpace().exportComponent(e,this._$is)})),new m(c)}}class C{constructor(e,t,o,s){this._$overallBehavior=null,this._$env=e,this._$isMainSpace=t,this.space=new i.ComponentSpace("",null==s?void 0:s.space,null==s?void 0:s.space.styleScopeManager),this.styleScopeManager=this.space.styleScopeManager,this.staticConfigMap=Object.create(null),this.styleSheetMap=Object.create(null),this.compiledTemplateMap=Object.create(null),this.waitingAliasMap=Object.create(null),Object.keys(o).forEach((e=>{const t=o[e];this.waitingAliasMap[t]?this.waitingAliasMap[t].push(e):this.waitingAliasMap[t]=[e]})),this._$sharedStyleScope=this.styleScopeManager.register(""),this._$styleIsolationMap=Object.create(null)}isMainSpace(){return this._$isMainSpace}getComponentSpace(){return this.space}setOverallBehavior(e){this._$overallBehavior=e}importCodeSpace(e,t,i=!1){const o=this._$env.getCodeSpace(e);if(!o)throw new Error(`There is no space "${e}" in the environment`);t&&this.space.importSpace(`plugin://${t}`,o.space,!1),i&&this.space.importSpace(`plugin-private://${e}`,o.space,!0)}addStyleSheet(e,t,i){this.styleSheetMap[e]={url:t,styleScopeName:i}}getStyleSheet(e){var t;return null===(t=this.styleSheetMap[e])||void 0===t?void 0:t.url}getStyleScopeName(e){var t;return null===(t=this.styleSheetMap[e])||void 0===t?void 0:t.styleScopeName}addCompiledTemplate(e,t){this.compiledTemplateMap[e]=t}getCompiledTemplate(e){return this.compiledTemplateMap[e]}addComponentStaticConfig(e,t){this.staticConfigMap[e]=t}getComponentStaticConfig(e){return this.staticConfigMap[e]}prepareComponentOptions(e,t){const i=this.staticConfigMap[e],o=null==i?void 0:i.pureDataPattern,s=o?new RegExp(o):null==t?void 0:t.pureDataPattern,r=null==i?void 0:i.addGlobalClass;let n,a,l=null==i?void 0:i.styleIsolation;void 0===l&&(l=(null==i?void 0:i.component)?r?"apply-shared":"isolated":"shared"),"apply-shared"===l||"page-apply-shared"===l?(n=this.styleScopeManager.register(this.getStyleScopeName(e)||`__${g()}`),a=this._$sharedStyleScope):n="shared"!==l&&"page-shared"!==l||!this._$isMainSpace?this.styleScopeManager.register(this.getStyleScopeName(e)||`__${g()}`):this._$sharedStyleScope;return[{idPrefixGenerator:g,multipleSlots:null==t?void 0:t.multipleSlots,pureDataPattern:s,virtualHost:null==t?void 0:t.virtualHost,styleScope:n,extraStyleScope:a,dataDeepCopy:null==t?void 0:t.dataDeepCopy,propertyPassingDeepCopy:null==t?void 0:t.propertyPassingDeepCopy,propertyEarlyInit:null==t?void 0:t.propertyEarlyInit},l]}globalComponentEnv(e,t,i){return this.componentEnv(t,(({Page:t,Component:o,Behavior:s})=>{const r=e.Page,n=e.Component,a=e.Behavior;e.Page=t,e.Component=o,e.Behavior=s;const l=i();return e.Page=r,e.Component=n,e.Behavior=a,l}))}componentEnv(e,t){const i=this;function o(e){return void 0!==e?i.behavior().definition(e).register():i.behavior()}return o.trait=i.traitBehavior.bind(i),t({Page:function(t){return i.component(e).pageDefinition(t).register()},Component:function(t){return void 0!==t?i.component(e).definition(t).register():i.component(e)},Behavior:o})}component(e){return b.create(this,e,this.waitingAliasMap[e])}behavior(){return S.create(this)}traitBehavior(e){return new f(void 0===e?this.space.defineTraitBehavior():this.space.defineTraitBehavior(e))}}var w;!function(e){e.Isolated="isolated",e.ApplyShared="apply-shared",e.Shared="shared",e.PageIsolated="page-isolated",e.PageApplyShared="page-apply-shared",e.PageShared="page-shared"}(w||(w={}));var O=Object.freeze({__proto__:null,get StyleIsolation(){return w},utils:e.typeUtils});exports.glassEasel=i,exports.AssociatedBackend=o,exports.CodeSpace=C,exports.MiniProgramEnv=class{constructor(){this.codeSpaceMap=Object.create(null),this.globalCodeSpace=new C(this,!1,{})}getGlobalCodeSpace(){return this.globalCodeSpace}associateBackend(e){const t=null!=e?e:new i.CurrentWindowBackendContext;return new o(this,t)}createCodeSpace(e,t,i=Object.create(null)){const o=new C(this,t,i,this.globalCodeSpace);return this.codeSpaceMap[e]=o,o}getCodeSpace(e){return this.codeSpaceMap[e]}},exports.Root=s,exports.component=$,exports.types=O;
|
|
1
|
+
"use strict";var e=require("glass-easel");function t(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(i){if("default"!==i){var o=Object.getOwnPropertyDescriptor(e,i);Object.defineProperty(t,i,o.get?o:{enumerable:!0,get:function(){return e[i]}})}})),t.default=e,Object.freeze(t)}var i=t(e);class o{constructor(e,t){this._$env=e,this._$=t}registerStyleSheetContent(e,t){this._$.registerStyleSheetContent(e,t)}createRoot(e,t,i,o){if(this._$env!==t._$env)throw new Error("The code space is not in the same environment as the backend");return new r(this._$,e,t,i,o)}}class r{constructor(e,t,o,r,s){if(this._$comp=o.getComponentSpace().createComponentByUrl(t,r,s||null,e),o.isMainSpace()){const t=o.getStyleSheet("app");if(void 0!==t){const i=o._$styleIsolationMap[this._$comp.is];"isolated"!==i&&"apply-shared"!==i&&"shared"!==i||e.appendStyleSheetPath(t,o._$sharedStyleScope)}}const n=t=>{const{styleScope:r}=t.getComponentOptions(),s=o.getStyleSheet(t.is);void 0!==s&&e.appendStyleSheetPath(s,null!=r?r:i.StyleScopeManager.globalScope())};this._$comp.getRootBehavior().getComponentDependencies().forEach(n),n(this._$comp.getComponentDefinition())}get(){return this._$comp.getMethodCaller()}getComponent(){return this._$comp}attach(e,t){i.Element.replaceDocumentElement(this._$comp,e,t)}release(){i.Element.pretendDetached(this._$comp),this._$comp.destroyBackendElement()}}const s=(e,t)=>{let i=!1,o=e.length;const r=new Array(o);e.forEach(((e,s)=>{e((e=>{r[s]=e,o-=1,0===o&&i&&t(r)}))})),i=!0,0===o&&setTimeout((()=>{t(r)}),0)};class n{constructor(e,t,i,o){this._$sq=e,this._$comp=t,this._$sel=i,this._$single=o}fields(e,t=(()=>{})){return this._$sq._$push(this._$sel,this._$comp,this._$single,e,t),this._$sq}boundingClientRect(e=(()=>{})){return this._$sq._$push(this._$sel,this._$comp,this._$single,{id:!0,dataset:!0,rect:!0,size:!0},e),this._$sq}scrollOffset(e=(()=>{})){return this._$sq._$push(this._$sel,this._$comp,this._$single,{id:!0,dataset:!0,scrollOffset:!0},e),this._$sq}}class a{constructor(e){this._$comp=e,this._$queue=[]}in(e){return this._$comp=e,this}select(e){return new n(this,this._$comp,e,!0)}selectAll(e){return new n(this,this._$comp,e,!1)}selectViewport(){return new n(this,this._$comp,null,!0)}_$push(e,t,i,o,r){this._$queue.push({component:t,selector:e,single:i,fields:o,cb:r})}exec(e=(()=>{})){const t=this._$queue;s(t.map((e=>t=>{const{component:o,selector:r,single:n,fields:a,cb:l}=e;if(null===r){const e={};s([t=>{const i=o._$.getBackendContext(),r=i?i.getWindowWidth():0,s=i?i.getWindowHeight():0;if(a.id&&(e.id=""),a.dataset&&(e.dataset={}),a.mark&&(e.mark={}),a.rect&&(e.left=0,e.top=0,e.right=r,e.bottom=s),a.size&&(e.width=r,e.height=s),a.scrollOffset){let i=o._$.general();for(;i.ownerShadowRoot;)i=i.ownerShadowRoot.getHostNode();i.getBoundingClientRect((({left:i,top:o,width:r,height:s})=>{e.scrollLeft=i,e.scrollTop=o,e.scrollWidth=r,e.scrollHeight=s,t(void 0)}))}else t(void 0)}],(()=>{l(e),t(e)}))}else{const e=(e,t)=>{const o={};a.id&&(o.id=e.id),a.dataset&&(o.dataset=e.dataset),a.mark&&(o.mark=e.collectMarks()),s([t=>{a.rect||a.size?e.getBoundingClientRect((e=>{a.rect&&(o.left=e.left,o.top=e.top,o.right=e.left+e.width,o.bottom=e.top+e.height),a.size&&(o.width=e.width,o.height=e.height),t(void 0)})):t(void 0)},t=>{a.scrollOffset?e.getScrollOffset((e=>{o.scrollLeft=e.scrollLeft,o.scrollTop=e.scrollTop,o.scrollWidth=e.scrollWidth,o.scrollHeight=e.scrollHeight,t(void 0)})):t(void 0)}],(()=>{a.properties&&i.Component.isComponent(e)&&a.properties.forEach((t=>{if(i.Component.hasProperty(e,t)){const r=e.getComponentOptions().propertyPassingDeepCopy,s=e.data[t];r===i.DeepCopyKind.None?o[t]=s:r===i.DeepCopyKind.Simple?o[t]=i.dataUtils.simpleDeepCopy(s):r===i.DeepCopyKind.SimpleWithRecursion&&(o[t]=i.dataUtils.deepCopy(s,!0))}})),t(o)}))};if(n){const i=o._$.getShadowRoot().querySelector(r);i?e(i,(e=>{l(e),t(e)})):setTimeout((()=>{l(null),t(null)}),0)}else{const i=o._$.getShadowRoot().querySelectorAll(r);s(i.map((t=>i=>{e(t,(e=>{i(e)}))})),(e=>{l(e),t(e)}))}}})),e)}}const l={left:0,top:0,right:0,bottom:0};class h{constructor(e,t,i,o){this._$selector=null,this._$margins=null,this._$observers=[],this._$comp=e,this._$thresholds=t,this._$initialRatio=i,this._$observeAll=o}relativeTo(e,t){return this._$selector=e,this._$margins=null!=t?t:l,this}relativeToViewport(e){return this._$selector=null,this._$margins=null!=e?e:l,this}observe(e,t){const i=this._$comp._$.getShadowRoot();let o,r;if(i)if(this._$observeAll)o=i.querySelectorAll(e);else{const t=i.querySelector(e);o=null===t?[]:[t]}else o=[];if(null!==this._$selector&&i){const e=i.querySelector(this._$selector);null===e||(r=e)}else r=null;if(!this._$margins)throw new Error("`relativeTo` or `relativeToViewport` should be called before observe");const{left:s,top:n,right:a,bottom:l}=this._$margins,h=`${n}px ${a}px ${l}px ${s}px`;o.forEach((e=>{let i=this._$initialRatio;const o=e.createIntersectionObserver(r,h,this._$thresholds,(e=>{if(null!==i){let t=0;for(;t<this._$thresholds.length;t+=1){const o=this._$thresholds[t];if(i!==e.intersectionRatio&&(i-o)*(e.intersectionRatio-o)<=0)break}if(i=null,t<this._$thresholds.length)return}t(e)}));null===o||this._$observers.push(o)}))}disconnect(){const e=this._$observers;this._$observers=[],e.forEach((e=>e.disconnect()))}}class p{constructor(e){this._$observer=null,this._$comp=e}observe(e,t){var i,o;this._$observer&&this._$observer.disconnect(),this._$observer=(null===(o=null===(i=this._$comp._$.getBackendContext())||void 0===i?void 0:i.createMediaQueryObserver)||void 0===o?void 0:o.call(i,e,t))||null}disconnect(){this._$observer&&this._$observer.disconnect(),this._$observer=null}}const c=(e,t,i)=>{var o;const r=t.asInstanceOf(i._$);if(null===r)return;const s=r.getRootBehavior().ownerSpace,n=r.getMethodCaller(),a=n instanceof u?n:null,l=e._$.getRootBehavior().ownerSpace,h=s!==l?null:a,p=null===(o=null==a?void 0:a._$export)||void 0===o?void 0:o.call(a,s!==l?null:e);return void 0===p?h:p},d=(e,t)=>{var o;if(i.Component.isComponent(t)){const i=t.getRootBehavior().ownerSpace,r=t.getMethodCaller(),s=r instanceof u?r:null,n=e._$.getRootBehavior().ownerSpace,a=i!==n?null:s,l=null===(o=null==s?void 0:s._$export)||void 0===o?void 0:o.call(s,i!==n?null:e);return void 0===l?a:l}};class u{get is(){return this._$.is}set is(e){Object.defineProperty(this,"is",{value:e,writable:!0,enumerable:!0,configurable:!0})}get id(){return this._$.id}set id(e){Object.defineProperty(this,"id",{value:e,writable:!0,enumerable:!0,configurable:!0})}get dataset(){return this._$.dataset}set dataset(e){Object.defineProperty(this,"dataset",{value:e,writable:!0,enumerable:!0,configurable:!0})}get data(){return this._$.data}set data(e){Object.defineProperty(this,"data",{value:e,writable:!0,enumerable:!0,configurable:!0})}get properties(){return this._$.data}set properties(e){Object.defineProperty(this,"properties",{value:e,writable:!0,enumerable:!0,configurable:!0})}groupSetData(e){e()}setData(e,t){this._$.setData(e),t&&i.triggerRender(this._$,(()=>{t()}))}updateData(e){this._$.updateData(e)}replaceDataOnPath(e,t){this._$.replaceDataOnPath(e,t)}spliceArrayDataOnPath(e,t,i,o){this._$.spliceArrayDataOnPath(e,t,i,o)}applyDataUpdates(){this._$.applyDataUpdates()}groupUpdates(e){return this._$.groupUpdates(e)}hasBehavior(e){return this._$.hasBehavior(e._$)}traitBehavior(e){return this._$.traitBehavior(e._$)}triggerEvent(e,t,i){return this._$.triggerEvent(e,t,i)}createSelectorQuery(){return new a(this)}createIntersectionObserver(e){return new h(this,(null==e?void 0:e.thresholds)||[0],(null==e?void 0:e.initialRatio)||0,(null==e?void 0:e.observeAll)||!1)}createMediaQueryObserver(){return new p(this)}selectComponent(e,t){var i,o;const r=this._$.getShadowRoot().querySelector(e);return null===r?null:t?null!==(i=c(this,r,t))&&void 0!==i?i:null:null!==(o=d(this,r))&&void 0!==o?o:null}selectAllComponents(e,t){const i=this._$.getShadowRoot().querySelectorAll(e),o=[];return i.forEach((e=>{const i=t?c(this,e,t):d(this,e);void 0!==i&&o.push(i)})),o}selectOwnerComponent(e){var t,i,o;const r=null===(t=this._$.ownerShadowRoot)||void 0===t?void 0:t.getHostNode();return void 0===r?null:e?null!==(i=c(this,r,e))&&void 0!==i?i:null:null!==(o=d(this,r))&&void 0!==o?o:null}getRelationNodes(e){return this._$.getRelationNodes(e).map((e=>e.getMethodCaller()))}general(){return this}asInstanceOf(e){return this._$.asInstanceOf(e._$)?this:null}}class _{constructor(e,t){this.proto=Object.create(u.prototype),Object.assign(this.proto,e),this.proto._$export=t}derive(){return Object.create(this.proto)}}var $=Object.freeze({__proto__:null,ComponentCaller:u,ComponentProto:_});class g{constructor(e,t,i,o){if(this._$=e,this._$export=o,void 0!==i){const e=t.map((e=>{var t;return null!==(t=e._$bindedDefinitionFilter)&&void 0!==t?t:null}));this._$bindedDefinitionFilter=t=>{i(t,e)}}}}class v{constructor(e){this._$=e}}class m{constructor(e){this._$=e}}var f=Object.freeze({__proto__:null,Behavior:g,ComponentType:v,TraitBehavior:m});class y{constructor(){this._$parents=[]}implement(e,t){return this._$.implement(e._$,t),this}externalClasses(e){return this._$.externalClasses(e),this}export(e){return this._$export=e,this}data(e){return this._$.data(e),this}property(e,t){return this._$.property(e,t),this}methods(e){return this._$.methods(e),this}observer(e,t,i=!1){return this._$.observer(e,t,i),this}lifetime(e,t,i=!1){return this._$.lifetime(e,t,i),this}pageLifetime(e,t,i=!1){return this._$.pageLifetime(e,t,i),this}relation(e,t){const i=t.target instanceof g||t.target instanceof v?t.target._$:t.target;return this._$.relation(e,{target:i,type:t.type,linked:t.linked,linkChanged:t.linkChanged,unlinked:t.unlinked,linkFailed:t.linkFailed}),this}init(e){return this._$.init((function({data:t,setData:o,implement:r,relation:s,observer:n,lifetime:a,pageLifetime:l,method:h,listener:p}){const c=this;return e.call(c,{self:c,data:t,setData:(e,t)=>{o(e),t&&i.triggerRender(c._$,(()=>{t()}))},implement:(e,t)=>{r(e._$,t)},relation:e=>{if(e.target instanceof m)return s({target:e.target._$,type:e.type,linked:e.linked,linkChanged:e.linkChanged,unlinked:e.unlinked,linkFailed:e.linkFailed});const t=e.target instanceof g||e.target instanceof v?e.target._$:e.target;return s({target:t,type:e.type,linked:e.linked,linkChanged:e.linkChanged,unlinked:e.unlinked,linkFailed:e.linkFailed})},observer:n,lifetime:a,pageLifetime:l,method:h,listener:p})})),this}definition(e){var t;null===(t=e.behaviors)||void 0===t||t.forEach((t=>{var i;return null===(i=t._$bindedDefinitionFilter)||void 0===i?void 0:i.call(t,e)}));const i=this._$,{behaviors:o,properties:r,data:s,observers:n,methods:a,created:l,attached:h,ready:p,moved:c,detached:d,lifetimes:u,pageLifetimes:_,relations:$,externalClasses:g,export:v}=e;if(null==o||o.forEach((e=>{this._$parents.push(e),i.behavior(e._$)})),void 0!==s&&("function"==typeof s?i.data(s):i.staticData(s)),void 0!==r){const e=Object.keys(r);for(let t=0;t<e.length;t+=1){const o=e[t];i.property(o,r[o])}}if(void 0!==n)if(Array.isArray(n))for(let e=0;e<n.length;e+=1){const{fields:t,observer:o}=n[e];i.observer(t||"**",o)}else{const e=Object.keys(n);for(let t=0;t<e.length;t+=1){const o=e[t],r=n[o];i.observer(o,r)}}if(a&&i.methods(a),l&&void 0===(null==u?void 0:u.created)&&i.lifetime("created",l,!0),h&&void 0===(null==u?void 0:u.attached)&&i.lifetime("attached",h,!0),p&&void 0===(null==u?void 0:u.ready)&&i.lifetime("ready",p,!0),c&&void 0===(null==u?void 0:u.moved)&&i.lifetime("moved",c,!0),d&&void 0===(null==u?void 0:u.detached)&&i.lifetime("detached",d,!0),u){const e=Object.keys(u);for(let t=0;t<e.length;t+=1){const o=e[t],r=u[o];i.lifetime(o,r,!0)}}if(_){const e=Object.keys(_);for(let t=0;t<e.length;t+=1){const o=e[t],r=_[o];i.pageLifetime(o,r,!0)}}if($){const e=Object.keys($);for(let t=0;t<e.length;t+=1){const o=e[t],r=$[o];i.relation(o,r)}}return g&&i.externalClasses(g),v&&(this._$export=v),this}}class b extends y{static create(e){const t=new b;return t._$codeSpace=e,t._$=e.getComponentSpace().defineWithMethodCaller(),t}chainingFilter(e){return this._$.chainingFilter(e),this}behavior(e){return this._$parents.push(e),this._$=this._$.behavior(e._$),this}export(e){return super.export(e)}data(e){return super.data(e)}property(e,t){return super.property(e,t)}methods(e){return super.methods(e)}init(e){return super.init(e)}definition(e){return super.definition(e),e.definitionFilter&&(this._$definitionFilter=e.definitionFilter),this}register(){return new g(this._$.registerBehavior(),this._$parents,this._$definitionFilter,this._$export)}}class S extends y{static create(e,t,i){const o=new S,r=e._$overallBehavior;return o._$codeSpace=e,o._$=e.getComponentSpace().defineWithMethodCaller(t||""),o._$is=t||"",o._$alias=i,o._$.methodCallerInit((function(){const e=this;let t=o._$proto;if(void 0===t){const i=e.getComponentDefinition().behavior.getMethods();t=o._$proto=new _(i,o._$export)}const i=t.derive();return i._$=e,i})),r&&o._$.behavior(r),o}options(e){return this._$options=e,this}behavior(e){return this._$parents.push(e),this._$=this._$.behavior(e._$),e._$export&&(this._$export=e._$export),this}export(e){return this._$export=e,this}data(e){return super.data(e)}property(e,t){return super.property(e,t)}methods(e){return super.methods(e)}init(e){return super.init(e)}definition(e){return super.definition(e),e.options&&this.options(e.options),this}pageDefinition(e){const t=Object.create(null),o={methods:{}},r=Object.keys(e);for(let i=0;i<r.length;i+=1){const s=r[i];"data"===s||"options"===s||"behaviors"===s?o[s]=e[s]:"function"==typeof e[s]?o.methods[s]=e[s]:t[s]=e[s]}return this.definition(o),this._$.init((function(){Object.assign(this,i.dataUtils.simpleDeepCopy(t))})),this}register(){var e;const t=this._$is,i=this._$codeSpace,[o,r]=i.prepareComponentOptions(t,this._$options);this._$.options(o);const s=i.getComponentStaticConfig(t),n=null==s?void 0:s.usingComponents,a=null==s?void 0:s.componentGenerics,l=null==s?void 0:s.componentPlaceholder;n&&this._$.usingComponents(n),a&&this._$.generics(a),l&&this._$.placeholders(l);const h=i.getCompiledTemplate(t);h&&this._$.template(h),i._$styleIsolationMap[t]=r;const p=this._$.registerComponent();return null===(e=this._$alias)||void 0===e||e.forEach((e=>{this._$codeSpace.getComponentSpace().exportComponent(e,this._$is)})),new v(p)}}var C=Object.freeze({__proto__:null,BehaviorBuilder:b,ComponentBuilder:S});const w=()=>Math.floor(4294967296*(1+Math.random())).toString(16).slice(1);class O{constructor(e,t,o,r){this._$overallBehavior=null,this._$env=e,this._$isMainSpace=t,this.space=new i.ComponentSpace("",null==r?void 0:r.space,null==r?void 0:r.space.styleScopeManager),this.styleScopeManager=this.space.styleScopeManager,this.staticConfigMap=Object.create(null),this.styleSheetMap=Object.create(null),this.compiledTemplateMap=Object.create(null),this.waitingAliasMap=Object.create(null),Object.keys(o).forEach((e=>{const t=o[e];this.waitingAliasMap[t]?this.waitingAliasMap[t].push(e):this.waitingAliasMap[t]=[e]})),this._$sharedStyleScope=this.styleScopeManager.register(""),this._$styleIsolationMap=Object.create(null)}isMainSpace(){return this._$isMainSpace}getComponentSpace(){return this.space}setOverallBehavior(e){this._$overallBehavior=e}importCodeSpace(e,t,i=!1){const o=this._$env.getCodeSpace(e);if(!o)throw new Error(`There is no space "${e}" in the environment`);t&&this.space.importSpace(`plugin://${t}`,o.space,!1),i&&this.space.importSpace(`plugin-private://${e}`,o.space,!0)}addStyleSheet(e,t,i){this.styleSheetMap[e]={url:t,styleScopeName:i}}getStyleSheet(e){var t;return null===(t=this.styleSheetMap[e])||void 0===t?void 0:t.url}getStyleScopeName(e){var t;return null===(t=this.styleSheetMap[e])||void 0===t?void 0:t.styleScopeName}addCompiledTemplate(e,t){this.compiledTemplateMap[e]=t}getCompiledTemplate(e){return this.compiledTemplateMap[e]}addComponentStaticConfig(e,t){this.staticConfigMap[e]=t}getComponentStaticConfig(e){return this.staticConfigMap[e]}prepareComponentOptions(e,t){const i=this.staticConfigMap[e],o=null==i?void 0:i.pureDataPattern,r=o?new RegExp(o):null==t?void 0:t.pureDataPattern,s=null==i?void 0:i.addGlobalClass;let n,a,l=null==i?void 0:i.styleIsolation;void 0===l&&(l=(null==i?void 0:i.component)?s?"apply-shared":"isolated":"shared"),"apply-shared"===l||"page-apply-shared"===l?(n=this.styleScopeManager.register(this.getStyleScopeName(e)||`__${w()}`),a=this._$sharedStyleScope):n="shared"!==l&&"page-shared"!==l||!this._$isMainSpace?this.styleScopeManager.register(this.getStyleScopeName(e)||`__${w()}`):this._$sharedStyleScope;return[{idPrefixGenerator:w,multipleSlots:null==t?void 0:t.multipleSlots,pureDataPattern:r,virtualHost:null==t?void 0:t.virtualHost,styleScope:n,extraStyleScope:a,dataDeepCopy:null==t?void 0:t.dataDeepCopy,propertyPassingDeepCopy:null==t?void 0:t.propertyPassingDeepCopy,propertyEarlyInit:null==t?void 0:t.propertyEarlyInit},l]}globalComponentEnv(e,t,i){return this.componentEnv(t,(({Page:t,Component:o,Behavior:r})=>{const s=e.Page,n=e.Component,a=e.Behavior;e.Page=t,e.Component=o,e.Behavior=r;const l=i();return e.Page=s,e.Component=n,e.Behavior=a,l}))}componentEnv(e,t){const i=this;function o(e){return void 0!==e?i.behavior().definition(e).register():i.behavior()}return o.trait=i.traitBehavior.bind(i),t({Page:function(t){return i.component(e).pageDefinition(t).register()},Component:function(t){return void 0!==t?i.component(e).definition(t).register():i.component(e)},Behavior:o})}component(e){return S.create(this,e,this.waitingAliasMap[e])}behavior(){return b.create(this)}traitBehavior(e){return new m(void 0===e?this.space.defineTraitBehavior():this.space.defineTraitBehavior(e))}}var M;!function(e){e.Isolated="isolated",e.ApplyShared="apply-shared",e.Shared="shared",e.PageIsolated="page-isolated",e.PageApplyShared="page-apply-shared",e.PageShared="page-shared"}(M||(M={}));var k=Object.freeze({__proto__:null,get StyleIsolation(){return M},utils:e.typeUtils});exports.glassEasel=i,exports.AssociatedBackend=o,exports.CodeSpace=O,exports.MiniProgramEnv=class{constructor(){this.codeSpaceMap=Object.create(null),this.globalCodeSpace=new O(this,!1,{})}getGlobalCodeSpace(){return this.globalCodeSpace}associateBackend(e){const t=null!=e?e:new i.CurrentWindowBackendContext;return new o(this,t)}createCodeSpace(e,t,i=Object.create(null)){const o=new O(this,t,i,this.globalCodeSpace);return this.codeSpaceMap[e]=o,o}getCodeSpace(e){return this.codeSpaceMap[e]}},exports.Root=r,exports.behavior=f,exports.builder=C,exports.component=$,exports.types=k;
|
|
2
2
|
//# sourceMappingURL=glass_easel_miniprogram_adapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glass_easel_miniprogram_adapter.js","sources":["../src/backend.ts","../src/selector_query.ts","../src/intersection.ts","../src/media_query.ts","../src/component.ts","../src/utils.ts","../src/behavior.ts","../src/builder/base_behavior_builder.ts","../src/builder/behavior_builder.ts","../src/builder/component_builder.ts","../src/space.ts","../src/types.ts","../src/env.ts"],"sourcesContent":["import * as glassEasel from 'glass-easel';\n/**\n * A backend context that has been associated to an environment\n */\nexport class AssociatedBackend {\n /** @internal */\n constructor(env, backendContext) {\n this._$env = env;\n this._$ = backendContext;\n }\n /**\n * Register a style sheet resource\n *\n * Some backend cannot load style sheet URL.\n * In this cases, the content should be registered here.\n */\n registerStyleSheetContent(url, content) {\n this._$.registerStyleSheetContent(url, content);\n }\n /**\n * Create a root component in specified backend\n *\n * The component is searched in the `codeSpace` with `url` .\n * If `url` contains \"?\" params, it will be parsed and try to set to component properties.\n */\n createRoot(tagName, codeSpace, url, genericTargets) {\n if (this._$env !== codeSpace._$env)\n throw new Error('The code space is not in the same environment as the backend');\n return new Root(this._$, tagName, codeSpace, url, genericTargets);\n }\n}\n/**\n * A root component\n */\nexport class Root {\n /** @internal */\n constructor(backendContext, tagName, codeSpace, url, genericTargets) {\n this._$comp = codeSpace\n .getComponentSpace()\n .createComponentByUrl(tagName, url, genericTargets || null, backendContext);\n if (codeSpace.isMainSpace()) {\n const globalStyleSheet = codeSpace.getStyleSheet('app');\n if (globalStyleSheet !== undefined) {\n const styleIsolation = codeSpace._$styleIsolationMap[this._$comp.is];\n if (styleIsolation === \"isolated\" /* StyleIsolation.Isolated */ ||\n styleIsolation === \"apply-shared\" /* StyleIsolation.ApplyShared */ ||\n styleIsolation === \"shared\" /* StyleIsolation.Shared */) {\n backendContext.appendStyleSheetPath(globalStyleSheet, codeSpace._$sharedStyleScope);\n }\n }\n }\n const addStyleSheet = (comp) => {\n const { styleScope } = comp.getComponentOptions();\n const path = codeSpace.getStyleSheet(comp.is);\n if (path !== undefined) {\n backendContext.appendStyleSheetPath(path, styleScope !== null && styleScope !== void 0 ? styleScope : glassEasel.StyleScopeManager.globalScope());\n }\n };\n this._$comp.getRootBehavior().getComponentDependencies().forEach(addStyleSheet);\n addStyleSheet(this._$comp.getComponentDefinition());\n }\n /**\n * Get the underlying component\n */\n getComponent() {\n return this._$comp;\n }\n /**\n * Attach the root component to the backend\n *\n * This component, the `parent` and the `placeholder` MUST be in the same context.\n * The `parent` MUST be a parent node of the `placeholder` .\n * This also triggers `attached` lifetimes for components.\n */\n attach(parent, placeholder) {\n glassEasel.Element.replaceDocumentElement(this._$comp, parent, placeholder);\n }\n /**\n * Release the root component\n *\n * Some backends require this explicit call to avoid memory leaks.\n * This also triggers `detached` lifetimes for components.\n */\n release() {\n glassEasel.Element.pretendDetached(this._$comp);\n this._$comp.destroyBackendElement();\n }\n}\n//# sourceMappingURL=backend.js.map","import * as glassEasel from 'glass-easel';\nconst joinAsync = (inits, cb) => {\n let initDone = false;\n let jobCount = inits.length;\n const rets = new Array(jobCount);\n inits.forEach((init, index) => {\n init((ret) => {\n rets[index] = ret;\n jobCount -= 1;\n if (jobCount === 0 && initDone) {\n cb(rets);\n }\n });\n });\n initDone = true;\n if (jobCount === 0) {\n setTimeout(() => {\n cb(rets);\n }, 0);\n }\n};\nclass NodesRef {\n constructor(selectorQuery, component, selector, selectSingle) {\n this._$sq = selectorQuery;\n this._$comp = component;\n this._$sel = selector;\n this._$single = selectSingle;\n }\n fields(fields, cb = () => {\n /* empty */\n }) {\n this._$sq._$push(this._$sel, this._$comp, this._$single, fields, cb);\n return this._$sq;\n }\n boundingClientRect(cb = () => {\n /* empty */\n }) {\n this._$sq._$push(this._$sel, this._$comp, this._$single, {\n id: true,\n dataset: true,\n rect: true,\n size: true,\n }, cb);\n return this._$sq;\n }\n scrollOffset(cb = () => {\n /* empty */\n }) {\n this._$sq._$push(this._$sel, this._$comp, this._$single, {\n id: true,\n dataset: true,\n scrollOffset: true,\n }, cb);\n return this._$sq;\n }\n}\n// main class\nexport class SelectorQuery {\n /** @internal */\n constructor(component) {\n this._$comp = component;\n this._$queue = [];\n }\n /** Change where the node should be selected from */\n in(component) {\n this._$comp = component;\n return this;\n }\n /** Select the first node that matches the selector */\n select(selector) {\n return new NodesRef(this, this._$comp, selector, true);\n }\n /** Select all nodes that match the selector */\n selectAll(selector) {\n return new NodesRef(this, this._$comp, selector, false);\n }\n /**\n * Select the viewport of the component\n *\n * Only the size and the scroll position is meaningful when the viewport is selected.\n */\n selectViewport() {\n return new NodesRef(this, this._$comp, null, true);\n }\n /** @internal */\n _$push(selector, component, single, fields, cb) {\n this._$queue.push({\n component,\n selector,\n single,\n fields,\n cb,\n });\n }\n /**\n * Execute all queries\n *\n * The `cb` is called after all queries done.\n */\n exec(cb = () => {\n /* empty */\n }) {\n const q = this._$queue;\n joinAsync(q.map((req) => (done) => {\n const { component, selector, single, fields, cb } = req;\n if (selector === null) {\n // for the viewport selection, return available fields\n const res = {};\n joinAsync([\n (done) => {\n const ctx = component._$.getBackendContext();\n const width = ctx ? ctx.getWindowWidth() : 0;\n const height = ctx ? ctx.getWindowHeight() : 0;\n if (fields.id)\n res.id = '';\n if (fields.dataset)\n res.dataset = {};\n if (fields.mark)\n res.mark = {};\n if (fields.rect) {\n res.left = 0;\n res.top = 0;\n res.right = width;\n res.bottom = height;\n }\n if (fields.size) {\n res.width = width;\n res.height = height;\n }\n if (fields.scrollOffset) {\n let rootComp = component._$.general();\n while (rootComp.ownerShadowRoot) {\n rootComp = rootComp.ownerShadowRoot.getHostNode();\n }\n rootComp.getBoundingClientRect(({ left, top, width, height }) => {\n res.scrollLeft = left;\n res.scrollTop = top;\n res.scrollWidth = width;\n res.scrollHeight = height;\n done(undefined);\n });\n }\n else {\n done(undefined);\n }\n },\n ], () => {\n cb(res);\n done(res);\n });\n }\n else {\n // for common node selection, return specified fields\n const constructSingleRes = (elem, cb) => {\n const res = {};\n if (fields.id)\n res.id = elem.id;\n if (fields.dataset)\n res.dataset = elem.dataset;\n if (fields.mark)\n res.mark = elem.collectMarks();\n joinAsync([\n (done) => {\n if (fields.rect || fields.size) {\n elem.getBoundingClientRect((rect) => {\n if (fields.rect) {\n res.left = rect.left;\n res.top = rect.top;\n res.right = rect.left + rect.width;\n res.bottom = rect.top + rect.height;\n }\n if (fields.size) {\n res.width = rect.width;\n res.height = rect.height;\n }\n done(undefined);\n });\n }\n else {\n done(undefined);\n }\n },\n (done) => {\n if (fields.scrollOffset) {\n elem.getScrollOffset((rect) => {\n res.scrollLeft = rect.scrollLeft;\n res.scrollTop = rect.scrollTop;\n res.scrollWidth = rect.scrollWidth;\n res.scrollHeight = rect.scrollHeight;\n done(undefined);\n });\n }\n else {\n done(undefined);\n }\n },\n ], () => {\n if (fields.properties) {\n if (glassEasel.Component.isComponent(elem)) {\n fields.properties.forEach((propName) => {\n if (glassEasel.Component.hasProperty(elem, propName)) {\n const ds = elem.getComponentOptions().propertyPassingDeepCopy;\n const v = elem.data[propName];\n if (ds === glassEasel.DeepCopyKind.None) {\n res[propName] = v;\n }\n else if (ds === glassEasel.DeepCopyKind.Simple) {\n res[propName] = glassEasel.dataUtils.simpleDeepCopy(v);\n }\n else if (ds === glassEasel.DeepCopyKind.SimpleWithRecursion) {\n res[propName] = glassEasel.dataUtils.deepCopy(v, true);\n }\n }\n });\n }\n }\n cb(res);\n });\n };\n if (single) {\n // select single node\n const node = component._$.getShadowRoot().querySelector(selector);\n if (node) {\n constructSingleRes(node, (res) => {\n cb(res);\n done(res);\n });\n }\n else {\n setTimeout(() => {\n cb(null);\n done(null);\n }, 0);\n }\n }\n else {\n // select multiple nodes\n const nodes = component._$.getShadowRoot().querySelectorAll(selector);\n joinAsync(nodes.map((node) => (done) => {\n constructSingleRes(node, (res) => {\n done(res);\n });\n }), (resList) => {\n cb(resList);\n done(resList);\n });\n }\n }\n }), cb);\n }\n}\n//# sourceMappingURL=selector_query.js.map","const defaultMargins = {\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n};\nexport class IntersectionObserver {\n /** @internal */\n constructor(comp, thresholds, initialRatio, observeAll) {\n this._$selector = null;\n this._$margins = null;\n this._$observers = [];\n this._$comp = comp;\n this._$thresholds = thresholds;\n this._$initialRatio = initialRatio;\n this._$observeAll = observeAll;\n }\n relativeTo(selector, margins) {\n this._$selector = selector;\n this._$margins = margins !== null && margins !== void 0 ? margins : defaultMargins;\n return this;\n }\n relativeToViewport(margins) {\n this._$selector = null;\n this._$margins = margins !== null && margins !== void 0 ? margins : defaultMargins;\n return this;\n }\n observe(targetSelector, listener) {\n const shadowRoot = this._$comp._$.getShadowRoot();\n let targets;\n if (!shadowRoot) {\n targets = [];\n }\n else if (this._$observeAll) {\n targets = shadowRoot.querySelectorAll(targetSelector);\n }\n else {\n const elem = shadowRoot.querySelector(targetSelector);\n if (elem === null) {\n targets = [];\n }\n else {\n targets = [elem];\n }\n }\n let relativeElement;\n if (this._$selector === null || !shadowRoot) {\n relativeElement = null;\n }\n else {\n const rel = shadowRoot.querySelector(this._$selector);\n if (rel === null) {\n // TODO warn no matched relative element\n }\n else {\n relativeElement = rel;\n }\n }\n if (!this._$margins) {\n throw new Error('`relativeTo` or `relativeToViewport` should be called before observe');\n }\n const { left, top, right, bottom } = this._$margins;\n const margin = `${top}px ${right}px ${bottom}px ${left}px`;\n targets.forEach((target) => {\n let initial = this._$initialRatio;\n const observer = target.createIntersectionObserver(relativeElement, margin, this._$thresholds, (args) => {\n if (initial !== null) {\n let i = 0;\n for (; i < this._$thresholds.length; i += 1) {\n const threshold = this._$thresholds[i];\n if (initial === args.intersectionRatio)\n continue;\n if ((initial - threshold) * (args.intersectionRatio - threshold) <= 0)\n break;\n }\n initial = null;\n if (i < this._$thresholds.length)\n return;\n }\n listener(args);\n });\n if (observer === null) {\n // TODO warn no observer attached\n }\n else {\n this._$observers.push(observer);\n }\n });\n }\n disconnect() {\n const observers = this._$observers;\n this._$observers = [];\n observers.forEach((observer) => observer.disconnect());\n }\n}\n//# sourceMappingURL=intersection.js.map","export class MediaQueryObserver {\n /** @internal */\n constructor(comp) {\n this._$observer = null;\n this._$comp = comp;\n }\n observe(descriptor, listener) {\n var _a, _b;\n if (this._$observer)\n this._$observer.disconnect();\n this._$observer =\n ((_b = (_a = this._$comp._$.getBackendContext()) === null || _a === void 0 ? void 0 : _a.createMediaQueryObserver) === null || _b === void 0 ? void 0 : _b.call(_a, descriptor, listener)) || null;\n }\n disconnect() {\n if (this._$observer)\n this._$observer.disconnect();\n this._$observer = null;\n }\n}\n//# sourceMappingURL=media_query.js.map","import * as glassEasel from 'glass-easel';\nimport { SelectorQuery } from './selector_query';\nimport { IntersectionObserver } from './intersection';\nimport { MediaQueryObserver } from './media_query';\nconst filterComponentExportWithType = (source, elem, componentType) => {\n var _a;\n const comp = elem.asInstanceOf(componentType._$);\n if (comp === null)\n return undefined;\n const selectedSpace = comp.getRootBehavior().ownerSpace;\n const uncheckedCaller = comp.getMethodCaller();\n const caller = uncheckedCaller instanceof ComponentCaller ? uncheckedCaller : null;\n const sourceSpace = source._$.getRootBehavior().ownerSpace;\n const defaultResult = selectedSpace !== sourceSpace ? null : caller;\n const ret = (_a = caller === null || caller === void 0 ? void 0 : caller._$export) === null || _a === void 0 ? void 0 : _a.call(caller, selectedSpace !== sourceSpace ? null : source);\n if (ret === undefined) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return defaultResult;\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return ret;\n};\nconst filterComponentExport = (source, elem) => {\n var _a;\n if (glassEasel.Component.isComponent(elem)) {\n const selectedSpace = elem.getRootBehavior().ownerSpace;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const uncheckedCaller = elem.getMethodCaller();\n const caller = uncheckedCaller instanceof ComponentCaller ? uncheckedCaller : null;\n const sourceSpace = source._$.getRootBehavior().ownerSpace;\n const defaultResult = selectedSpace !== sourceSpace ? null : caller;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const ret = (_a = caller === null || caller === void 0 ? void 0 : caller._$export) === null || _a === void 0 ? void 0 : _a.call(caller, selectedSpace !== sourceSpace ? null : source);\n if (ret === undefined) {\n return defaultResult;\n }\n return ret;\n }\n return undefined;\n};\nexport class ComponentCaller {\n /** The component path in the code space */\n get is() {\n return this._$.is;\n }\n set is(value) {\n Object.defineProperty(this, 'is', {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n /** The `id` field in the template */\n get id() {\n return this._$.id;\n }\n set id(value) {\n Object.defineProperty(this, 'id', {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n /** The `data-*` field in the template */\n get dataset() {\n return this._$.dataset;\n }\n set dataset(value) {\n Object.defineProperty(this, 'dataset', {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n /** The component data and property values */\n get data() {\n return this._$.data;\n }\n set data(value) {\n Object.defineProperty(this, 'data', {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n /** The component data and property values (same as `data` ) */\n get properties() {\n return this._$.data;\n }\n set properties(value) {\n Object.defineProperty(this, 'properties', {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n /**\n * Group several data update calls\n *\n * This method is designed for hinting the backend that some updates should be handled together.\n * However, this is done automatically now,\n * so this method is just for backward compatibilities.\n */\n // eslint-disable-next-line class-methods-use-this\n groupSetData(callback) {\n callback();\n }\n setData(data, callback) {\n this._$.setData(data);\n if (callback) {\n glassEasel.triggerRender(this._$, () => {\n callback();\n });\n }\n }\n updateData(newData) {\n this._$.updateData(newData);\n }\n replaceDataOnPath(path, data) {\n this._$.replaceDataOnPath(path, data);\n }\n spliceArrayDataOnPath(path, index, del, inserts) {\n this._$.spliceArrayDataOnPath(path, index, del, inserts);\n }\n /**\n * Apply all scheduled updates immediately\n *\n * Inside observers, it is generally not .\n */\n applyDataUpdates() {\n this._$.applyDataUpdates();\n }\n /**\n * Pending all data updates in the callback, and apply updates after callback returns\n *\n * This function helps grouping several `replaceDataOnPath` or `spliceArrayDataOnPath` calls,\n * and then apply them at the end of the callback.\n * `setData` and `applyDataUpdates` calls inside the callback still apply updates immediately.\n */\n groupUpdates(callback) {\n return this._$.groupUpdates(callback);\n }\n /**\n * Check whether the `other` behavior is a dependent behavior or a implemented trait behavior\n */\n hasBehavior(behavior) {\n return this._$.hasBehavior(behavior._$);\n }\n /**\n * Get the trait behavior implementation of the component\n *\n * Returns `undefined` if the specified trait behavior is not implemented.\n */\n traitBehavior(traitBehavior) {\n return this._$.traitBehavior(traitBehavior._$);\n }\n /** Trigger an event */\n triggerEvent(name, detail, options) {\n return this._$.triggerEvent(name, detail, options);\n }\n /** Create a selector query for searching element inside the component */\n createSelectorQuery() {\n return new SelectorQuery(this);\n }\n /** Create an intersection observer */\n createIntersectionObserver(options) {\n return new IntersectionObserver(this, (options === null || options === void 0 ? void 0 : options.thresholds) || [0], (options === null || options === void 0 ? void 0 : options.initialRatio) || 0, (options === null || options === void 0 ? void 0 : options.observeAll) || false);\n }\n /** Create an media query observer */\n createMediaQueryObserver() {\n return new MediaQueryObserver(this);\n }\n selectComponent(selector, componentType) {\n var _a, _b;\n const target = this._$.getShadowRoot().querySelector(selector);\n if (target === null)\n return null;\n return componentType\n ? (_a = filterComponentExportWithType(this, target, componentType)) !== null && _a !== void 0 ? _a : null\n : (_b = filterComponentExport(this, target)) !== null && _b !== void 0 ? _b : null;\n }\n selectAllComponents(selector, componentType) {\n const targets = this._$.getShadowRoot().querySelectorAll(selector);\n const ret = [];\n targets.forEach((target) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const r = componentType\n ? filterComponentExportWithType(this, target, componentType)\n : filterComponentExport(this, target);\n if (r !== undefined)\n ret.push(r);\n });\n return ret;\n }\n selectOwnerComponent(componentType) {\n var _a, _b, _c;\n const target = (_a = this._$.ownerShadowRoot) === null || _a === void 0 ? void 0 : _a.getHostNode();\n if (target === undefined)\n return null;\n return componentType\n ? (_b = filterComponentExportWithType(this, target, componentType)) !== null && _b !== void 0 ? _b : null\n : (_c = filterComponentExport(this, target)) !== null && _c !== void 0 ? _c : null;\n }\n getRelationNodes(relationKey) {\n return this._$.getRelationNodes(relationKey).map((target) => target.getMethodCaller());\n }\n /** Cast the component into a general-typed one */\n general() {\n return this;\n }\n /**\n * Cast the component into the specified type\n *\n * Returns `null` if the component node is not the instance of the specified component.\n */\n asInstanceOf(componentType) {\n const inner = this._$.asInstanceOf(componentType._$);\n if (!inner)\n return null;\n return this;\n }\n}\nexport class ComponentProto {\n constructor(methods, componentExport) {\n this.proto = Object.create(ComponentCaller.prototype);\n Object.assign(this.proto, methods);\n this.proto._$export = componentExport;\n }\n derive() {\n return Object.create(this.proto);\n }\n}\n//# sourceMappingURL=component.js.map","export const guid = () => Math.floor((1 + Math.random()) * 0x100000000)\n .toString(16)\n .slice(1);\n//# sourceMappingURL=utils.js.map","export class Behavior {\n /** @internal */\n constructor(inner, parents, definitionFilter, componentExport) {\n this._$ = inner;\n this._$export = componentExport;\n // processing definition filter\n if (definitionFilter !== undefined) {\n const definitionFilterArgs = parents.map((p) => { var _a; return (_a = p._$bindedDefinitionFilter) !== null && _a !== void 0 ? _a : null; });\n this._$bindedDefinitionFilter = (childDef) => {\n definitionFilter(childDef, definitionFilterArgs);\n };\n }\n }\n}\nexport class ComponentType {\n /** @internal */\n constructor(inner) {\n this._$ = inner;\n }\n}\nexport class TraitBehavior {\n constructor(inner) {\n this._$ = inner;\n }\n}\n//# sourceMappingURL=behavior.js.map","/* eslint-disable @typescript-eslint/no-unsafe-return */\nimport * as glassEasel from 'glass-easel';\nimport { Behavior, ComponentType, TraitBehavior } from '../behavior';\nexport class BaseBehaviorBuilder {\n constructor() {\n this._$parents = [];\n }\n /** Implement a trait behavior */\n implement(traitBehavior, impl) {\n this._$.implement(traitBehavior._$, impl);\n return this;\n }\n /** Add external classes */\n externalClasses(list) {\n this._$.externalClasses(list);\n return this;\n }\n /** Set the export value when the component is being selected */\n export(f) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n this._$export = f;\n return this;\n }\n data(gen) {\n this._$.data(gen);\n return this;\n }\n property(name, def) {\n this._$.property(name, def);\n return this;\n }\n /**\n * Add some public methods\n *\n * The public method can be used as an event handler, and can be visited in component instance.\n */\n methods(funcs) {\n this._$.methods(funcs);\n return this;\n }\n observer(paths, func, once = false) {\n this._$.observer(paths, func, once);\n return this;\n }\n /**\n * Add a lifetime callback\n */\n lifetime(name, func, once = false) {\n this._$.lifetime(name, func, once);\n return this;\n }\n /**\n * Add a page-lifetime callback\n */\n pageLifetime(name, func, once = false) {\n this._$.pageLifetime(name, func, once);\n return this;\n }\n /**\n * Add a relation\n */\n relation(name, rel) {\n const target = rel.target instanceof Behavior || rel.target instanceof ComponentType\n ? rel.target._$\n : rel.target;\n this._$.relation(name, {\n target,\n type: rel.type,\n linked: rel.linked,\n linkChanged: rel.linkChanged,\n unlinked: rel.unlinked,\n linkFailed: rel.linkFailed,\n });\n return this;\n }\n init(func) {\n this._$.init(function ({ data, setData, implement, relation, observer, lifetime, pageLifetime, method, listener, }) {\n const relationInit = ((rel) => {\n if (rel.target instanceof TraitBehavior) {\n return relation({\n target: rel.target._$,\n type: rel.type,\n linked: rel.linked,\n linkChanged: rel.linkChanged,\n unlinked: rel.unlinked,\n linkFailed: rel.linkFailed,\n });\n }\n const target = rel.target instanceof Behavior || rel.target instanceof ComponentType\n ? rel.target._$\n : rel.target;\n return relation({\n target,\n type: rel.type,\n linked: rel.linked,\n linkChanged: rel.linkChanged,\n unlinked: rel.unlinked,\n linkFailed: rel.linkFailed,\n });\n });\n const implementInit = ((traitBehavior, impl) => {\n implement(traitBehavior._$, impl);\n });\n const methodCaller = this;\n return func.call(methodCaller, {\n self: methodCaller,\n data,\n setData: (newData, callback) => {\n setData(newData);\n if (callback) {\n glassEasel.triggerRender(methodCaller._$, () => {\n callback();\n });\n }\n },\n implement: implementInit,\n relation: relationInit,\n observer,\n lifetime,\n pageLifetime,\n method,\n listener,\n });\n });\n return this;\n }\n definition(def) {\n var _a;\n (_a = def.behaviors) === null || _a === void 0 ? void 0 : _a.forEach((beh) => { var _a; return (_a = beh._$bindedDefinitionFilter) === null || _a === void 0 ? void 0 : _a.call(beh, def); });\n const inner = this._$;\n const { behaviors, properties: rawProperties, data: rawData, observers: rawObservers, methods, created, attached, ready, moved, detached, lifetimes: rawLifetimes, pageLifetimes: rawPageLifetimes, relations: rawRelations, externalClasses, export: exports, } = def;\n behaviors === null || behaviors === void 0 ? void 0 : behaviors.forEach((beh) => {\n this._$parents.push(beh);\n inner.behavior(beh._$);\n });\n if (rawData !== undefined) {\n if (typeof rawData === 'function') {\n inner.data(rawData);\n }\n else {\n inner.staticData(rawData);\n }\n }\n if (rawProperties !== undefined) {\n const keys = Object.keys(rawProperties);\n for (let i = 0; i < keys.length; i += 1) {\n const name = keys[i];\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n inner.property(name, rawProperties[name]);\n }\n }\n if (rawObservers !== undefined) {\n if (Array.isArray(rawObservers)) {\n for (let i = 0; i < rawObservers.length; i += 1) {\n const { fields, observer } = rawObservers[i];\n inner.observer(fields || '**', observer);\n }\n }\n else {\n const keys = Object.keys(rawObservers);\n for (let i = 0; i < keys.length; i += 1) {\n const fields = keys[i];\n const observer = rawObservers[fields];\n inner.observer(fields, observer);\n }\n }\n }\n if (methods)\n inner.methods(methods);\n if (created && (rawLifetimes === null || rawLifetimes === void 0 ? void 0 : rawLifetimes.created) === undefined)\n inner.lifetime('created', created, true);\n if (attached && (rawLifetimes === null || rawLifetimes === void 0 ? void 0 : rawLifetimes.attached) === undefined)\n inner.lifetime('attached', attached, true);\n if (ready && (rawLifetimes === null || rawLifetimes === void 0 ? void 0 : rawLifetimes.ready) === undefined)\n inner.lifetime('ready', ready, true);\n if (moved && (rawLifetimes === null || rawLifetimes === void 0 ? void 0 : rawLifetimes.moved) === undefined)\n inner.lifetime('moved', moved, true);\n if (detached && (rawLifetimes === null || rawLifetimes === void 0 ? void 0 : rawLifetimes.detached) === undefined)\n inner.lifetime('detached', detached, true);\n if (rawLifetimes) {\n const keys = Object.keys(rawLifetimes);\n for (let i = 0; i < keys.length; i += 1) {\n const name = keys[i];\n const func = rawLifetimes[name];\n inner.lifetime(name, func, true);\n }\n }\n if (rawPageLifetimes) {\n const keys = Object.keys(rawPageLifetimes);\n for (let i = 0; i < keys.length; i += 1) {\n const name = keys[i];\n const func = rawPageLifetimes[name];\n inner.pageLifetime(name, func, true);\n }\n }\n if (rawRelations) {\n const keys = Object.keys(rawRelations);\n for (let i = 0; i < keys.length; i += 1) {\n const name = keys[i];\n const rel = rawRelations[name];\n inner.relation(name, rel);\n }\n }\n if (externalClasses)\n inner.externalClasses(externalClasses);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n if (exports)\n this._$export = exports;\n return this;\n }\n}\n//# sourceMappingURL=base_behavior_builder.js.map","/* eslint-disable @typescript-eslint/no-unsafe-return */\nimport { BaseBehaviorBuilder } from './base_behavior_builder';\nimport { Behavior } from '../behavior';\nexport class BehaviorBuilder extends BaseBehaviorBuilder {\n /** @internal */\n static create(codeSpace) {\n const ret = new BehaviorBuilder();\n ret._$codeSpace = codeSpace;\n ret._$ = codeSpace.getComponentSpace().defineWithMethodCaller();\n return ret;\n }\n /** Define a chaining filter */\n chainingFilter(func) {\n this._$.chainingFilter(func);\n return this;\n }\n /** Use another behavior */\n behavior(behavior) {\n this._$parents.push(behavior);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n this._$ = this._$.behavior(behavior._$);\n return this;\n }\n /** Set the export value when the component is being selected */\n export(f) {\n return super.export(f);\n }\n /**\n * Add some template data fields\n *\n * It does not support raw data, but a `gen` function which returns the new data fields.\n * The `gen` function executes once during component creation.\n */\n data(gen) {\n return super.data(gen);\n }\n /**\n * Add a single property\n *\n * The property name should be different from other properties.\n */\n property(name, def) {\n return super.property(name, def);\n }\n /**\n * Add some public methods\n *\n * The public method can be used as an event handler, and can be visited in component instance.\n */\n methods(funcs) {\n return super.methods(funcs);\n }\n /**\n * Execute a function while component instance creation\n *\n * A `BuilderContext` is provided to tweak the component creation progress.\n * The return value is used as the \"export\" value of the behavior,\n * which can be imported by other behaviors.\n */\n init(func) {\n return super.init(func);\n }\n /** Apply a classic definition object */\n definition(def) {\n super.definition(def);\n if (def.definitionFilter)\n this._$definitionFilter = def.definitionFilter;\n return this;\n }\n /**\n * Finish the behavior definition process\n */\n register() {\n return new Behavior(this._$.registerBehavior(), this._$parents, this._$definitionFilter, this._$export);\n }\n}\n//# sourceMappingURL=behavior_builder.js.map","/* eslint-disable @typescript-eslint/no-unsafe-return */\nimport * as glassEasel from 'glass-easel';\nimport { BaseBehaviorBuilder } from './base_behavior_builder';\nimport { ComponentType } from '../behavior';\nimport { ComponentProto } from '../component';\n/**\n * A direct way to create a component\n */\nexport class ComponentBuilder extends BaseBehaviorBuilder {\n /** @internal */\n static create(codeSpace, is, alias) {\n const ret = new ComponentBuilder();\n const overallBehavior = codeSpace._$overallBehavior;\n ret._$codeSpace = codeSpace;\n ret._$ = codeSpace.getComponentSpace().defineWithMethodCaller(is || '');\n ret._$is = is || '';\n ret._$alias = alias;\n ret._$.methodCallerInit(function () {\n const originalCaller = this;\n let proto = ret._$proto;\n if (proto === undefined) {\n const methods = originalCaller.getComponentDefinition().behavior.getMethods();\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n proto = ret._$proto = new ComponentProto(methods, ret._$export);\n }\n const caller = proto.derive();\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n caller._$ = originalCaller;\n return caller;\n });\n if (overallBehavior)\n ret._$.behavior(overallBehavior);\n return ret;\n }\n /**\n * Set the component options\n *\n * If called multiple times, only the latest call is valid.\n */\n options(options) {\n this._$options = options;\n return this;\n }\n /** Use another behavior */\n behavior(behavior) {\n this._$parents.push(behavior);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n this._$ = this._$.behavior(behavior._$);\n if (behavior._$export) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n this._$export = behavior._$export;\n }\n return this;\n }\n /** Set the export value when the component is being selected */\n export(f) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n this._$export = f;\n return this;\n }\n /**\n * Add some template data fields\n *\n * It does not support raw data, but a `gen` function which returns the new data fields.\n * The `gen` function executes once during component creation.\n */\n data(gen) {\n return super.data(gen);\n }\n /**\n * Add a single property\n *\n * The property name should be different from other properties.\n */\n property(name, def) {\n return super.property(name, def);\n }\n /**\n * Add some public methods\n *\n * The public method can be used as an event handler, and can be visited in component instance.\n */\n methods(funcs) {\n return super.methods(funcs);\n }\n /**\n * Execute a function while component instance creation\n *\n * A `BuilderContext` is provided to tweak the component creation progress.\n * The return value is used as the \"export\" value of the behavior,\n * which can be imported by other behaviors.\n */\n init(func) {\n return super.init(func);\n }\n /** Apply a classic definition object */\n definition(def) {\n super.definition(def);\n if (def.options)\n this.options(def.options);\n return this;\n }\n pageDefinition(def) {\n const freeData = Object.create(null);\n const compDef = {\n methods: {},\n };\n const keys = Object.keys(def);\n for (let i = 0; i < keys.length; i += 1) {\n const k = keys[i];\n if (k === 'data' || k === 'options' || k === 'behaviors') {\n compDef[k] = def[k];\n }\n else if (typeof def[k] === 'function') {\n ;\n compDef.methods[k] = def[k];\n }\n else {\n ;\n freeData[k] = def[k];\n }\n }\n this.definition(compDef);\n this._$.init(function () {\n Object.assign(this, glassEasel.dataUtils.simpleDeepCopy(freeData));\n });\n return this;\n }\n /**\n * Finish the component definition process\n */\n register() {\n var _a;\n const is = this._$is;\n const codeSpace = this._$codeSpace;\n // processing common fields\n const [options, styleIsolation] = codeSpace.prepareComponentOptions(is, this._$options);\n this._$.options(options);\n const staticConfig = codeSpace.getComponentStaticConfig(is);\n const using = staticConfig === null || staticConfig === void 0 ? void 0 : staticConfig.usingComponents;\n const generics = staticConfig === null || staticConfig === void 0 ? void 0 : staticConfig.componentGenerics;\n const placeholder = staticConfig === null || staticConfig === void 0 ? void 0 : staticConfig.componentPlaceholder;\n if (using)\n this._$.usingComponents(using);\n if (generics)\n this._$.generics(generics);\n if (placeholder)\n this._$.placeholders(placeholder);\n const template = codeSpace.getCompiledTemplate(is);\n if (template)\n this._$.template(template);\n // do registration\n codeSpace._$styleIsolationMap[is] = styleIsolation;\n const compDef = this._$.registerComponent();\n (_a = this._$alias) === null || _a === void 0 ? void 0 : _a.forEach((alias) => {\n this._$codeSpace.getComponentSpace().exportComponent(alias, this._$is);\n });\n return new ComponentType(compDef);\n }\n}\n//# sourceMappingURL=component_builder.js.map","/* eslint-disable @typescript-eslint/no-unsafe-return */\nimport * as glassEasel from 'glass-easel';\nimport { guid } from './utils';\nimport { TraitBehavior } from './behavior';\nimport { BehaviorBuilder, ComponentBuilder } from './builder';\n/**\n * A component space with mini-program code manager\n */\nexport class CodeSpace {\n /** @internal */\n constructor(env, isMainSpace, publicComponents, globalCodeSpace) {\n /** @internal */\n this._$overallBehavior = null;\n this._$env = env;\n this._$isMainSpace = isMainSpace;\n this.space = new glassEasel.ComponentSpace('', globalCodeSpace === null || globalCodeSpace === void 0 ? void 0 : globalCodeSpace.space, globalCodeSpace === null || globalCodeSpace === void 0 ? void 0 : globalCodeSpace.space.styleScopeManager);\n this.styleScopeManager = this.space.styleScopeManager;\n this.staticConfigMap = Object.create(null);\n this.styleSheetMap = Object.create(null);\n this.compiledTemplateMap = Object.create(null);\n this.waitingAliasMap = Object.create(null);\n Object.keys(publicComponents).forEach((alias) => {\n const is = publicComponents[alias];\n if (this.waitingAliasMap[is])\n this.waitingAliasMap[is].push(alias);\n else\n this.waitingAliasMap[is] = [alias];\n });\n this._$sharedStyleScope = this.styleScopeManager.register('');\n this._$styleIsolationMap = Object.create(null);\n }\n isMainSpace() {\n return this._$isMainSpace;\n }\n /**\n * Get the underlying component space\n */\n getComponentSpace() {\n return this.space;\n }\n /**\n * Add a behavior for all components\n *\n * Must be called before any component registration so that the component will use this behavior.\n * Set to `null` to disable this behavior.\n */\n setOverallBehavior(behavior) {\n this._$overallBehavior = behavior;\n }\n /**\n * Import another component space as a plugin (must be in the same environment)\n *\n * Components from the imported `codeSpace` can be used with URLs.\n * If `domainAlias` is provided, the URL format is `plugin://DOMAIN_ALIAS/COMPONENT_SPACE_EXPORT_ALIAS` .\n * If `privateImport` is enabled, another URL format is `plugin-private://DOMAIN/COMPONENT_IS` .\n */\n importCodeSpace(id, domainAlias, privateImport = false) {\n const cs = this._$env.getCodeSpace(id);\n if (!cs) {\n throw new Error(`There is no space \"${id}\" in the environment`);\n }\n if (domainAlias)\n this.space.importSpace(`plugin://${domainAlias}`, cs.space, false);\n if (privateImport)\n this.space.importSpace(`plugin-private://${id}`, cs.space, true);\n }\n /**\n * Add a style sheet URL with style scope name\n *\n * The URL should be recognized by the target backend.\n * The `path` should not contain the `.wxss` suffix.\n */\n addStyleSheet(path, styleSheetUrl, styleScopeName) {\n this.styleSheetMap[path] = { url: styleSheetUrl, styleScopeName };\n }\n /**\n * Get a style sheet URL\n *\n * The URL should be recognized by the target backend.\n * The `path` should not contain the `.wxss` suffix.\n */\n getStyleSheet(path) {\n var _a;\n return (_a = this.styleSheetMap[path]) === null || _a === void 0 ? void 0 : _a.url;\n }\n getStyleScopeName(path) {\n var _a;\n return (_a = this.styleSheetMap[path]) === null || _a === void 0 ? void 0 : _a.styleScopeName;\n }\n /**\n * Add a compiled template\n *\n * The content is the execution result of the generated string of the template compiler.\n * The `path` should not contain the `.wxml` suffix.\n */\n addCompiledTemplate(path, content) {\n this.compiledTemplateMap[path] = content;\n }\n /**\n * Get a compiled template\n *\n * The content is the execution result of the generated string of the template compiler.\n * The `path` should not contain the `.wxml` suffix.\n */\n getCompiledTemplate(path) {\n return this.compiledTemplateMap[path];\n }\n /**\n * Add a static JSON config\n *\n * The `path` should not contain the `.json` suffix.\n */\n addComponentStaticConfig(path, content) {\n this.staticConfigMap[path] = content;\n }\n /**\n * Get a static JSON config\n *\n * The `path` should not contain the `.json` suffix.\n */\n getComponentStaticConfig(path) {\n return this.staticConfigMap[path];\n }\n /** @internal */\n prepareComponentOptions(is, options) {\n // accept some fields from static JSON config\n const staticConfig = this.staticConfigMap[is];\n const pureDataPatternString = staticConfig === null || staticConfig === void 0 ? void 0 : staticConfig.pureDataPattern;\n const pureDataPattern = pureDataPatternString\n ? new RegExp(pureDataPatternString)\n : options === null || options === void 0 ? void 0 : options.pureDataPattern;\n // calculate style scope\n const addGlobalClass = staticConfig === null || staticConfig === void 0 ? void 0 : staticConfig.addGlobalClass;\n let styleIsolation = staticConfig === null || staticConfig === void 0 ? void 0 : staticConfig.styleIsolation;\n if (styleIsolation === undefined) {\n if (staticConfig === null || staticConfig === void 0 ? void 0 : staticConfig.component) {\n styleIsolation = addGlobalClass ? \"apply-shared\" /* StyleIsolation.ApplyShared */ : \"isolated\" /* StyleIsolation.Isolated */;\n }\n else {\n styleIsolation = \"shared\" /* StyleIsolation.Shared */;\n }\n }\n let styleScope;\n let extraStyleScope;\n if (styleIsolation === \"apply-shared\" /* StyleIsolation.ApplyShared */ ||\n styleIsolation === \"page-apply-shared\" /* StyleIsolation.PageApplyShared */) {\n styleScope = this.styleScopeManager.register(this.getStyleScopeName(is) || `__${guid()}`);\n extraStyleScope = this._$sharedStyleScope;\n }\n else if ((styleIsolation === \"shared\" /* StyleIsolation.Shared */ || styleIsolation === \"page-shared\" /* StyleIsolation.PageShared */) &&\n this._$isMainSpace) {\n styleScope = this._$sharedStyleScope;\n }\n else {\n styleScope = this.styleScopeManager.register(this.getStyleScopeName(is) || `__${guid()}`);\n }\n // construct component options\n const ret = {\n idPrefixGenerator: guid,\n multipleSlots: options === null || options === void 0 ? void 0 : options.multipleSlots,\n pureDataPattern,\n virtualHost: options === null || options === void 0 ? void 0 : options.virtualHost,\n styleScope,\n extraStyleScope,\n dataDeepCopy: options === null || options === void 0 ? void 0 : options.dataDeepCopy,\n propertyPassingDeepCopy: options === null || options === void 0 ? void 0 : options.propertyPassingDeepCopy,\n propertyEarlyInit: options === null || options === void 0 ? void 0 : options.propertyEarlyInit,\n };\n return [ret, styleIsolation];\n }\n /**\n * Create a component definition environment\n *\n * During the sync execution of `cb` , `Component` and `Behavior` global vars will be available.\n * `globalObject` should be the JavaScript global object, a.k.a. `window` in DOM.\n * Some global variables, a.k.a `Component` `Behavior` `Page` ,\n * will be written into `globalObject` .\n * `path` should be the component path (without \".js\" extension).\n */\n globalComponentEnv(globalObject, path, cb) {\n return this.componentEnv(path, ({ Page, Component, Behavior }) => {\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n /* eslint-disable @typescript-eslint/no-unsafe-assignment */\n const oldPage = globalObject.Page;\n const oldComponent = globalObject.Component;\n const oldBehavior = globalObject.Behavior;\n globalObject.Page = Page;\n globalObject.Component = Component;\n globalObject.Behavior = Behavior;\n const ret = cb();\n globalObject.Page = oldPage;\n globalObject.Component = oldComponent;\n globalObject.Behavior = oldBehavior;\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n /* eslint-enable @typescript-eslint/no-unsafe-assignment */\n return ret;\n });\n }\n /**\n * Create a component definition environment\n *\n * Like `globalComponentEnv` , but the global variables are given as callback arguments.\n */\n componentEnv(path, cb) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const self = this;\n // The page constructor\n function pageConstructor(definition) {\n return self.component(path).pageDefinition(definition).register();\n }\n function componentConstructor(definition) {\n if (definition !== undefined) {\n return self.component(path).definition(definition).register();\n }\n return self.component(path);\n }\n function behaviorConstructor(definition) {\n if (definition !== undefined) {\n return self.behavior().definition(definition).register();\n }\n return self.behavior();\n }\n behaviorConstructor.trait = self.traitBehavior.bind(self);\n // prepare global vars and execute\n return cb({\n Page: pageConstructor,\n Component: componentConstructor,\n Behavior: behaviorConstructor,\n });\n }\n /**\n * Build a component outside of a definition environment\n *\n * The method do not need a definition environment, so the global object pollution is avoided.\n * `path` should be the component path (without \".js\" extension).\n */\n component(path) {\n return ComponentBuilder.create(this, path, this.waitingAliasMap[path]);\n }\n /**\n * Build a behavior outside of a definition environment\n *\n * The method do not need a definition environment, so the global object pollution is avoided.\n * `path` should be the component path (without \".js\" extension).\n */\n behavior() {\n return BehaviorBuilder.create(this);\n }\n traitBehavior(trans) {\n if (trans === undefined) {\n return new TraitBehavior(this.space.defineTraitBehavior());\n }\n return new TraitBehavior(this.space.defineTraitBehavior(trans));\n }\n}\n//# sourceMappingURL=space.js.map","export { typeUtils as utils } from 'glass-easel';\nexport var StyleIsolation;\n(function (StyleIsolation) {\n StyleIsolation[\"Isolated\"] = \"isolated\";\n StyleIsolation[\"ApplyShared\"] = \"apply-shared\";\n StyleIsolation[\"Shared\"] = \"shared\";\n StyleIsolation[\"PageIsolated\"] = \"page-isolated\";\n StyleIsolation[\"PageApplyShared\"] = \"page-apply-shared\";\n StyleIsolation[\"PageShared\"] = \"page-shared\";\n})(StyleIsolation || (StyleIsolation = {}));\n//# sourceMappingURL=types.js.map","import * as glassEasel from 'glass-easel';\nimport { AssociatedBackend } from './backend';\nimport { CodeSpace } from './space';\n/**\n * A mini-program API environment\n *\n * Each environment manages multiple backend contexts.\n * However, a backend context should be exclusively managed by a single environment\n * (to avoid `StyleScopeId` confliction).\n * It is able to create multiple `CodeSpace` within the environment.\n */\nexport class MiniProgramEnv {\n /**\n * Create an empty mini-program API environment\n */\n constructor() {\n this.codeSpaceMap = Object.create(null);\n this.globalCodeSpace = new CodeSpace(this, false, {});\n }\n /**\n * Get a global code space in which global components can be defined\n *\n * External glass-easel based components can be defined in this code space.\n * All global components should be defined before any other `CodeSpace` created!\n */\n getGlobalCodeSpace() {\n return this.globalCodeSpace;\n }\n /**\n * Associate a backend context\n *\n * If `backendContext` is not given, the DOM-based backend is used\n * (causes failure if running outside browsers).\n * The backend context SHOULD NOT be associated by other environments!\n */\n associateBackend(backendContent) {\n const ctx = backendContent !== null && backendContent !== void 0 ? backendContent : new glassEasel.CurrentWindowBackendContext();\n return new AssociatedBackend(this, ctx);\n }\n /**\n * Create a component space that can manage WXML, WXSS, JS and static JSON config files\n *\n * The space can be specified as a *main* space.\n * This makes some features available:\n * * the `app.wxss` will be used as a style sheet for all root components in the space;\n * * the `StyleIsolation.Shared` is accepted for components in the space.\n * Non-main spaces usually act as plugins.\n * `publicComponents` is a map for specifying a map of aliases and component paths.\n */\n createCodeSpace(id, isMainSpace, publicComponents = Object.create(null)) {\n const cs = new CodeSpace(this, isMainSpace, publicComponents, this.globalCodeSpace);\n this.codeSpaceMap[id] = cs;\n return cs;\n }\n /**\n * Get a component space by the `id` specified when created\n */\n getCodeSpace(id) {\n return this.codeSpaceMap[id];\n }\n}\n//# sourceMappingURL=env.js.map"],"names":["AssociatedBackend","constructor","env","backendContext","this","_$env","_$","registerStyleSheetContent","url","content","createRoot","tagName","codeSpace","genericTargets","Error","Root","_$comp","getComponentSpace","createComponentByUrl","isMainSpace","globalStyleSheet","getStyleSheet","undefined","styleIsolation","_$styleIsolationMap","is","appendStyleSheetPath","_$sharedStyleScope","addStyleSheet","comp","styleScope","getComponentOptions","path","glassEasel","StyleScopeManager","globalScope","getRootBehavior","getComponentDependencies","forEach","getComponentDefinition","getComponent","attach","parent","placeholder","Element","replaceDocumentElement","release","pretendDetached","destroyBackendElement","joinAsync","inits","cb","initDone","jobCount","length","rets","Array","init","index","ret","setTimeout","NodesRef","selectorQuery","component","selector","selectSingle","_$sq","_$sel","_$single","fields","_$push","boundingClientRect","id","dataset","rect","size","scrollOffset","SelectorQuery","_$queue","select","selectAll","selectViewport","single","push","exec","q","map","req","done","res","ctx","getBackendContext","width","getWindowWidth","height","getWindowHeight","mark","left","top","right","bottom","rootComp","general","ownerShadowRoot","getHostNode","getBoundingClientRect","scrollLeft","scrollTop","scrollWidth","scrollHeight","constructSingleRes","elem","collectMarks","getScrollOffset","properties","Component","isComponent","propName","hasProperty","ds","propertyPassingDeepCopy","v","data","DeepCopyKind","None","Simple","dataUtils","simpleDeepCopy","SimpleWithRecursion","deepCopy","node","getShadowRoot","querySelector","nodes","querySelectorAll","resList","defaultMargins","IntersectionObserver","thresholds","initialRatio","observeAll","_$selector","_$margins","_$observers","_$thresholds","_$initialRatio","_$observeAll","relativeTo","margins","relativeToViewport","observe","targetSelector","listener","shadowRoot","targets","relativeElement","rel","margin","target","initial","observer","createIntersectionObserver","args","i","threshold","intersectionRatio","disconnect","observers","MediaQueryObserver","_$observer","descriptor","_a","_b","createMediaQueryObserver","call","filterComponentExportWithType","source","componentType","asInstanceOf","selectedSpace","ownerSpace","uncheckedCaller","getMethodCaller","caller","ComponentCaller","sourceSpace","defaultResult","_$export","filterComponentExport","value","Object","defineProperty","writable","enumerable","configurable","groupSetData","callback","setData","triggerRender","updateData","newData","replaceDataOnPath","spliceArrayDataOnPath","del","inserts","applyDataUpdates","groupUpdates","hasBehavior","behavior","traitBehavior","triggerEvent","name","detail","options","createSelectorQuery","selectComponent","selectAllComponents","r","selectOwnerComponent","_c","getRelationNodes","relationKey","ComponentProto","methods","componentExport","proto","create","prototype","assign","derive","guid","Math","floor","random","toString","slice","Behavior","inner","parents","definitionFilter","definitionFilterArgs","p","_$bindedDefinitionFilter","childDef","ComponentType","TraitBehavior","BaseBehaviorBuilder","_$parents","implement","impl","externalClasses","list","f","gen","property","def","funcs","paths","func","once","lifetime","pageLifetime","relation","type","linked","linkChanged","unlinked","linkFailed","method","methodCaller","self","definition","behaviors","beh","rawProperties","rawData","rawObservers","created","attached","ready","moved","detached","lifetimes","rawLifetimes","pageLifetimes","rawPageLifetimes","relations","rawRelations","export","exports","staticData","keys","isArray","BehaviorBuilder","_$codeSpace","defineWithMethodCaller","chainingFilter","super","_$definitionFilter","register","registerBehavior","ComponentBuilder","alias","overallBehavior","_$overallBehavior","_$is","_$alias","methodCallerInit","originalCaller","_$proto","getMethods","_$options","pageDefinition","freeData","compDef","k","prepareComponentOptions","staticConfig","getComponentStaticConfig","using","usingComponents","generics","componentGenerics","componentPlaceholder","placeholders","template","getCompiledTemplate","registerComponent","exportComponent","CodeSpace","publicComponents","globalCodeSpace","_$isMainSpace","space","ComponentSpace","styleScopeManager","staticConfigMap","styleSheetMap","compiledTemplateMap","waitingAliasMap","setOverallBehavior","importCodeSpace","domainAlias","privateImport","cs","getCodeSpace","importSpace","styleSheetUrl","styleScopeName","getStyleScopeName","addCompiledTemplate","addComponentStaticConfig","pureDataPatternString","pureDataPattern","RegExp","addGlobalClass","extraStyleScope","idPrefixGenerator","multipleSlots","virtualHost","dataDeepCopy","propertyEarlyInit","globalComponentEnv","globalObject","componentEnv","Page","oldPage","oldComponent","oldBehavior","behaviorConstructor","trait","bind","trans","defineTraitBehavior","StyleIsolation","codeSpaceMap","getGlobalCodeSpace","associateBackend","backendContent","CurrentWindowBackendContext","createCodeSpace"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"glass_easel_miniprogram_adapter.js","sources":["../src/backend.ts","../src/selector_query.ts","../src/intersection.ts","../src/media_query.ts","../src/component.ts","../src/behavior.ts","../src/builder/base_behavior_builder.ts","../src/builder/behavior_builder.ts","../src/builder/component_builder.ts","../src/utils.ts","../src/space.ts","../src/types.ts","../src/env.ts"],"sourcesContent":["import * as glassEasel from 'glass-easel';\n/**\n * A backend context that has been associated to an environment\n */\nexport class AssociatedBackend {\n /** @internal */\n constructor(env, backendContext) {\n this._$env = env;\n this._$ = backendContext;\n }\n /**\n * Register a style sheet resource\n *\n * Some backend cannot load style sheet URL.\n * In this cases, the content should be registered here.\n */\n registerStyleSheetContent(url, content) {\n this._$.registerStyleSheetContent(url, content);\n }\n /**\n * Create a root component in specified backend\n *\n * The component is searched in the `codeSpace` with `url` .\n * If `url` contains \"?\" params, it will be parsed and try to set to component properties.\n */\n createRoot(tagName, codeSpace, url, genericTargets) {\n if (this._$env !== codeSpace._$env)\n throw new Error('The code space is not in the same environment as the backend');\n return new Root(this._$, tagName, codeSpace, url, genericTargets);\n }\n}\n/**\n * A root component\n */\nexport class Root {\n /** @internal */\n constructor(backendContext, tagName, codeSpace, url, genericTargets) {\n this._$comp = codeSpace\n .getComponentSpace()\n .createComponentByUrl(tagName, url, genericTargets || null, backendContext);\n if (codeSpace.isMainSpace()) {\n const globalStyleSheet = codeSpace.getStyleSheet('app');\n if (globalStyleSheet !== undefined) {\n const styleIsolation = codeSpace._$styleIsolationMap[this._$comp.is];\n if (styleIsolation === \"isolated\" /* StyleIsolation.Isolated */ ||\n styleIsolation === \"apply-shared\" /* StyleIsolation.ApplyShared */ ||\n styleIsolation === \"shared\" /* StyleIsolation.Shared */) {\n backendContext.appendStyleSheetPath(globalStyleSheet, codeSpace._$sharedStyleScope);\n }\n }\n }\n const addStyleSheet = (comp) => {\n const { styleScope } = comp.getComponentOptions();\n const path = codeSpace.getStyleSheet(comp.is);\n if (path !== undefined) {\n backendContext.appendStyleSheetPath(path, styleScope !== null && styleScope !== void 0 ? styleScope : glassEasel.StyleScopeManager.globalScope());\n }\n };\n this._$comp.getRootBehavior().getComponentDependencies().forEach(addStyleSheet);\n addStyleSheet(this._$comp.getComponentDefinition());\n }\n /**\n * Get the root component\n */\n get() {\n return this._$comp.getMethodCaller();\n }\n /**\n * Get the underlying component of the root component\n */\n getComponent() {\n return this._$comp;\n }\n /**\n * Attach the root component to the backend\n *\n * This component, the `parent` and the `placeholder` MUST be in the same context.\n * The `parent` MUST be a parent node of the `placeholder` .\n * This also triggers `attached` lifetimes for components.\n */\n attach(parent, placeholder) {\n glassEasel.Element.replaceDocumentElement(this._$comp, parent, placeholder);\n }\n /**\n * Release the root component\n *\n * Some backends require this explicit call to avoid memory leaks.\n * This also triggers `detached` lifetimes for components.\n */\n release() {\n glassEasel.Element.pretendDetached(this._$comp);\n this._$comp.destroyBackendElement();\n }\n}\n//# sourceMappingURL=backend.js.map","import * as glassEasel from 'glass-easel';\nconst joinAsync = (inits, cb) => {\n let initDone = false;\n let jobCount = inits.length;\n const rets = new Array(jobCount);\n inits.forEach((init, index) => {\n init((ret) => {\n rets[index] = ret;\n jobCount -= 1;\n if (jobCount === 0 && initDone) {\n cb(rets);\n }\n });\n });\n initDone = true;\n if (jobCount === 0) {\n setTimeout(() => {\n cb(rets);\n }, 0);\n }\n};\nclass NodesRef {\n constructor(selectorQuery, component, selector, selectSingle) {\n this._$sq = selectorQuery;\n this._$comp = component;\n this._$sel = selector;\n this._$single = selectSingle;\n }\n fields(fields, cb = () => {\n /* empty */\n }) {\n this._$sq._$push(this._$sel, this._$comp, this._$single, fields, cb);\n return this._$sq;\n }\n boundingClientRect(cb = () => {\n /* empty */\n }) {\n this._$sq._$push(this._$sel, this._$comp, this._$single, {\n id: true,\n dataset: true,\n rect: true,\n size: true,\n }, cb);\n return this._$sq;\n }\n scrollOffset(cb = () => {\n /* empty */\n }) {\n this._$sq._$push(this._$sel, this._$comp, this._$single, {\n id: true,\n dataset: true,\n scrollOffset: true,\n }, cb);\n return this._$sq;\n }\n}\n// main class\nexport class SelectorQuery {\n /** @internal */\n constructor(component) {\n this._$comp = component;\n this._$queue = [];\n }\n /** Change where the node should be selected from */\n in(component) {\n this._$comp = component;\n return this;\n }\n /** Select the first node that matches the selector */\n select(selector) {\n return new NodesRef(this, this._$comp, selector, true);\n }\n /** Select all nodes that match the selector */\n selectAll(selector) {\n return new NodesRef(this, this._$comp, selector, false);\n }\n /**\n * Select the viewport of the component\n *\n * Only the size and the scroll position is meaningful when the viewport is selected.\n */\n selectViewport() {\n return new NodesRef(this, this._$comp, null, true);\n }\n /** @internal */\n _$push(selector, component, single, fields, cb) {\n this._$queue.push({\n component,\n selector,\n single,\n fields,\n cb,\n });\n }\n /**\n * Execute all queries\n *\n * The `cb` is called after all queries done.\n */\n exec(cb = () => {\n /* empty */\n }) {\n const q = this._$queue;\n joinAsync(q.map((req) => (done) => {\n const { component, selector, single, fields, cb } = req;\n if (selector === null) {\n // for the viewport selection, return available fields\n const res = {};\n joinAsync([\n (done) => {\n const ctx = component._$.getBackendContext();\n const width = ctx ? ctx.getWindowWidth() : 0;\n const height = ctx ? ctx.getWindowHeight() : 0;\n if (fields.id)\n res.id = '';\n if (fields.dataset)\n res.dataset = {};\n if (fields.mark)\n res.mark = {};\n if (fields.rect) {\n res.left = 0;\n res.top = 0;\n res.right = width;\n res.bottom = height;\n }\n if (fields.size) {\n res.width = width;\n res.height = height;\n }\n if (fields.scrollOffset) {\n let rootComp = component._$.general();\n while (rootComp.ownerShadowRoot) {\n rootComp = rootComp.ownerShadowRoot.getHostNode();\n }\n rootComp.getBoundingClientRect(({ left, top, width, height }) => {\n res.scrollLeft = left;\n res.scrollTop = top;\n res.scrollWidth = width;\n res.scrollHeight = height;\n done(undefined);\n });\n }\n else {\n done(undefined);\n }\n },\n ], () => {\n cb(res);\n done(res);\n });\n }\n else {\n // for common node selection, return specified fields\n const constructSingleRes = (elem, cb) => {\n const res = {};\n if (fields.id)\n res.id = elem.id;\n if (fields.dataset)\n res.dataset = elem.dataset;\n if (fields.mark)\n res.mark = elem.collectMarks();\n joinAsync([\n (done) => {\n if (fields.rect || fields.size) {\n elem.getBoundingClientRect((rect) => {\n if (fields.rect) {\n res.left = rect.left;\n res.top = rect.top;\n res.right = rect.left + rect.width;\n res.bottom = rect.top + rect.height;\n }\n if (fields.size) {\n res.width = rect.width;\n res.height = rect.height;\n }\n done(undefined);\n });\n }\n else {\n done(undefined);\n }\n },\n (done) => {\n if (fields.scrollOffset) {\n elem.getScrollOffset((rect) => {\n res.scrollLeft = rect.scrollLeft;\n res.scrollTop = rect.scrollTop;\n res.scrollWidth = rect.scrollWidth;\n res.scrollHeight = rect.scrollHeight;\n done(undefined);\n });\n }\n else {\n done(undefined);\n }\n },\n ], () => {\n if (fields.properties) {\n if (glassEasel.Component.isComponent(elem)) {\n fields.properties.forEach((propName) => {\n if (glassEasel.Component.hasProperty(elem, propName)) {\n const ds = elem.getComponentOptions().propertyPassingDeepCopy;\n const v = elem.data[propName];\n if (ds === glassEasel.DeepCopyKind.None) {\n res[propName] = v;\n }\n else if (ds === glassEasel.DeepCopyKind.Simple) {\n res[propName] = glassEasel.dataUtils.simpleDeepCopy(v);\n }\n else if (ds === glassEasel.DeepCopyKind.SimpleWithRecursion) {\n res[propName] = glassEasel.dataUtils.deepCopy(v, true);\n }\n }\n });\n }\n }\n cb(res);\n });\n };\n if (single) {\n // select single node\n const node = component._$.getShadowRoot().querySelector(selector);\n if (node) {\n constructSingleRes(node, (res) => {\n cb(res);\n done(res);\n });\n }\n else {\n setTimeout(() => {\n cb(null);\n done(null);\n }, 0);\n }\n }\n else {\n // select multiple nodes\n const nodes = component._$.getShadowRoot().querySelectorAll(selector);\n joinAsync(nodes.map((node) => (done) => {\n constructSingleRes(node, (res) => {\n done(res);\n });\n }), (resList) => {\n cb(resList);\n done(resList);\n });\n }\n }\n }), cb);\n }\n}\n//# sourceMappingURL=selector_query.js.map","const defaultMargins = {\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n};\nexport class IntersectionObserver {\n /** @internal */\n constructor(comp, thresholds, initialRatio, observeAll) {\n this._$selector = null;\n this._$margins = null;\n this._$observers = [];\n this._$comp = comp;\n this._$thresholds = thresholds;\n this._$initialRatio = initialRatio;\n this._$observeAll = observeAll;\n }\n relativeTo(selector, margins) {\n this._$selector = selector;\n this._$margins = margins !== null && margins !== void 0 ? margins : defaultMargins;\n return this;\n }\n relativeToViewport(margins) {\n this._$selector = null;\n this._$margins = margins !== null && margins !== void 0 ? margins : defaultMargins;\n return this;\n }\n observe(targetSelector, listener) {\n const shadowRoot = this._$comp._$.getShadowRoot();\n let targets;\n if (!shadowRoot) {\n targets = [];\n }\n else if (this._$observeAll) {\n targets = shadowRoot.querySelectorAll(targetSelector);\n }\n else {\n const elem = shadowRoot.querySelector(targetSelector);\n if (elem === null) {\n targets = [];\n }\n else {\n targets = [elem];\n }\n }\n let relativeElement;\n if (this._$selector === null || !shadowRoot) {\n relativeElement = null;\n }\n else {\n const rel = shadowRoot.querySelector(this._$selector);\n if (rel === null) {\n // TODO warn no matched relative element\n }\n else {\n relativeElement = rel;\n }\n }\n if (!this._$margins) {\n throw new Error('`relativeTo` or `relativeToViewport` should be called before observe');\n }\n const { left, top, right, bottom } = this._$margins;\n const margin = `${top}px ${right}px ${bottom}px ${left}px`;\n targets.forEach((target) => {\n let initial = this._$initialRatio;\n const observer = target.createIntersectionObserver(relativeElement, margin, this._$thresholds, (args) => {\n if (initial !== null) {\n let i = 0;\n for (; i < this._$thresholds.length; i += 1) {\n const threshold = this._$thresholds[i];\n if (initial === args.intersectionRatio)\n continue;\n if ((initial - threshold) * (args.intersectionRatio - threshold) <= 0)\n break;\n }\n initial = null;\n if (i < this._$thresholds.length)\n return;\n }\n listener(args);\n });\n if (observer === null) {\n // TODO warn no observer attached\n }\n else {\n this._$observers.push(observer);\n }\n });\n }\n disconnect() {\n const observers = this._$observers;\n this._$observers = [];\n observers.forEach((observer) => observer.disconnect());\n }\n}\n//# sourceMappingURL=intersection.js.map","export class MediaQueryObserver {\n /** @internal */\n constructor(comp) {\n this._$observer = null;\n this._$comp = comp;\n }\n observe(descriptor, listener) {\n var _a, _b;\n if (this._$observer)\n this._$observer.disconnect();\n this._$observer =\n ((_b = (_a = this._$comp._$.getBackendContext()) === null || _a === void 0 ? void 0 : _a.createMediaQueryObserver) === null || _b === void 0 ? void 0 : _b.call(_a, descriptor, listener)) || null;\n }\n disconnect() {\n if (this._$observer)\n this._$observer.disconnect();\n this._$observer = null;\n }\n}\n//# sourceMappingURL=media_query.js.map","import * as glassEasel from 'glass-easel';\nimport { SelectorQuery } from './selector_query';\nimport { IntersectionObserver } from './intersection';\nimport { MediaQueryObserver } from './media_query';\nconst filterComponentExportWithType = (source, elem, componentType) => {\n var _a;\n const comp = elem.asInstanceOf(componentType._$);\n if (comp === null)\n return undefined;\n const selectedSpace = comp.getRootBehavior().ownerSpace;\n const uncheckedCaller = comp.getMethodCaller();\n const caller = uncheckedCaller instanceof ComponentCaller ? uncheckedCaller : null;\n const sourceSpace = source._$.getRootBehavior().ownerSpace;\n const defaultResult = selectedSpace !== sourceSpace ? null : caller;\n const ret = (_a = caller === null || caller === void 0 ? void 0 : caller._$export) === null || _a === void 0 ? void 0 : _a.call(caller, selectedSpace !== sourceSpace ? null : source);\n if (ret === undefined) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return defaultResult;\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return ret;\n};\nconst filterComponentExport = (source, elem) => {\n var _a;\n if (glassEasel.Component.isComponent(elem)) {\n const selectedSpace = elem.getRootBehavior().ownerSpace;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const uncheckedCaller = elem.getMethodCaller();\n const caller = uncheckedCaller instanceof ComponentCaller ? uncheckedCaller : null;\n const sourceSpace = source._$.getRootBehavior().ownerSpace;\n const defaultResult = selectedSpace !== sourceSpace ? null : caller;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const ret = (_a = caller === null || caller === void 0 ? void 0 : caller._$export) === null || _a === void 0 ? void 0 : _a.call(caller, selectedSpace !== sourceSpace ? null : source);\n if (ret === undefined) {\n return defaultResult;\n }\n return ret;\n }\n return undefined;\n};\nexport class ComponentCaller {\n /** The component path in the code space */\n get is() {\n return this._$.is;\n }\n set is(value) {\n Object.defineProperty(this, 'is', {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n /** The `id` field in the template */\n get id() {\n return this._$.id;\n }\n set id(value) {\n Object.defineProperty(this, 'id', {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n /** The `data-*` field in the template */\n get dataset() {\n return this._$.dataset;\n }\n set dataset(value) {\n Object.defineProperty(this, 'dataset', {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n /** The component data and property values */\n get data() {\n return this._$.data;\n }\n set data(value) {\n Object.defineProperty(this, 'data', {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n /** The component data and property values (same as `data` ) */\n get properties() {\n return this._$.data;\n }\n set properties(value) {\n Object.defineProperty(this, 'properties', {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n /**\n * Group several data update calls\n *\n * This method is designed for hinting the backend that some updates should be handled together.\n * However, this is done automatically now,\n * so this method is just for backward compatibilities.\n */\n // eslint-disable-next-line class-methods-use-this\n groupSetData(callback) {\n callback();\n }\n setData(data, callback) {\n this._$.setData(data);\n if (callback) {\n glassEasel.triggerRender(this._$, () => {\n callback();\n });\n }\n }\n updateData(newData) {\n this._$.updateData(newData);\n }\n replaceDataOnPath(path, data) {\n this._$.replaceDataOnPath(path, data);\n }\n spliceArrayDataOnPath(path, index, del, inserts) {\n this._$.spliceArrayDataOnPath(path, index, del, inserts);\n }\n /**\n * Apply all scheduled updates immediately\n *\n * Inside observers, it is generally not .\n */\n applyDataUpdates() {\n this._$.applyDataUpdates();\n }\n /**\n * Pending all data updates in the callback, and apply updates after callback returns\n *\n * This function helps grouping several `replaceDataOnPath` or `spliceArrayDataOnPath` calls,\n * and then apply them at the end of the callback.\n * `setData` and `applyDataUpdates` calls inside the callback still apply updates immediately.\n */\n groupUpdates(callback) {\n return this._$.groupUpdates(callback);\n }\n /**\n * Check whether the `other` behavior is a dependent behavior or a implemented trait behavior\n */\n hasBehavior(behavior) {\n return this._$.hasBehavior(behavior._$);\n }\n /**\n * Get the trait behavior implementation of the component\n *\n * Returns `undefined` if the specified trait behavior is not implemented.\n */\n traitBehavior(traitBehavior) {\n return this._$.traitBehavior(traitBehavior._$);\n }\n /** Trigger an event */\n triggerEvent(name, detail, options) {\n return this._$.triggerEvent(name, detail, options);\n }\n /** Create a selector query for searching element inside the component */\n createSelectorQuery() {\n return new SelectorQuery(this);\n }\n /** Create an intersection observer */\n createIntersectionObserver(options) {\n return new IntersectionObserver(this, (options === null || options === void 0 ? void 0 : options.thresholds) || [0], (options === null || options === void 0 ? void 0 : options.initialRatio) || 0, (options === null || options === void 0 ? void 0 : options.observeAll) || false);\n }\n /** Create an media query observer */\n createMediaQueryObserver() {\n return new MediaQueryObserver(this);\n }\n selectComponent(selector, componentType) {\n var _a, _b;\n const target = this._$.getShadowRoot().querySelector(selector);\n if (target === null)\n return null;\n return componentType\n ? (_a = filterComponentExportWithType(this, target, componentType)) !== null && _a !== void 0 ? _a : null\n : (_b = filterComponentExport(this, target)) !== null && _b !== void 0 ? _b : null;\n }\n selectAllComponents(selector, componentType) {\n const targets = this._$.getShadowRoot().querySelectorAll(selector);\n const ret = [];\n targets.forEach((target) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const r = componentType\n ? filterComponentExportWithType(this, target, componentType)\n : filterComponentExport(this, target);\n if (r !== undefined)\n ret.push(r);\n });\n return ret;\n }\n selectOwnerComponent(componentType) {\n var _a, _b, _c;\n const target = (_a = this._$.ownerShadowRoot) === null || _a === void 0 ? void 0 : _a.getHostNode();\n if (target === undefined)\n return null;\n return componentType\n ? (_b = filterComponentExportWithType(this, target, componentType)) !== null && _b !== void 0 ? _b : null\n : (_c = filterComponentExport(this, target)) !== null && _c !== void 0 ? _c : null;\n }\n getRelationNodes(relationKey) {\n return this._$.getRelationNodes(relationKey).map((target) => target.getMethodCaller());\n }\n /** Cast the component into a general-typed one */\n general() {\n return this;\n }\n /**\n * Cast the component into the specified type\n *\n * Returns `null` if the component node is not the instance of the specified component.\n */\n asInstanceOf(componentType) {\n const inner = this._$.asInstanceOf(componentType._$);\n if (!inner)\n return null;\n return this;\n }\n}\nexport class ComponentProto {\n constructor(methods, componentExport) {\n this.proto = Object.create(ComponentCaller.prototype);\n Object.assign(this.proto, methods);\n this.proto._$export = componentExport;\n }\n derive() {\n return Object.create(this.proto);\n }\n}\n//# sourceMappingURL=component.js.map","export class Behavior {\n /** @internal */\n constructor(inner, parents, definitionFilter, componentExport) {\n this._$ = inner;\n this._$export = componentExport;\n // processing definition filter\n if (definitionFilter !== undefined) {\n const definitionFilterArgs = parents.map((p) => { var _a; return (_a = p._$bindedDefinitionFilter) !== null && _a !== void 0 ? _a : null; });\n this._$bindedDefinitionFilter = (childDef) => {\n definitionFilter(childDef, definitionFilterArgs);\n };\n }\n }\n}\nexport class ComponentType {\n /** @internal */\n constructor(inner) {\n this._$ = inner;\n }\n}\nexport class TraitBehavior {\n constructor(inner) {\n this._$ = inner;\n }\n}\n//# sourceMappingURL=behavior.js.map","/* eslint-disable @typescript-eslint/no-unsafe-return */\nimport * as glassEasel from 'glass-easel';\nimport { Behavior, ComponentType, TraitBehavior } from '../behavior';\nexport class BaseBehaviorBuilder {\n constructor() {\n this._$parents = [];\n }\n /** Implement a trait behavior */\n implement(traitBehavior, impl) {\n this._$.implement(traitBehavior._$, impl);\n return this;\n }\n /** Add external classes */\n externalClasses(list) {\n this._$.externalClasses(list);\n return this;\n }\n /** Set the export value when the component is being selected */\n export(f) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n this._$export = f;\n return this;\n }\n data(gen) {\n this._$.data(gen);\n return this;\n }\n property(name, def) {\n this._$.property(name, def);\n return this;\n }\n /**\n * Add some public methods\n *\n * The public method can be used as an event handler, and can be visited in component instance.\n */\n methods(funcs) {\n this._$.methods(funcs);\n return this;\n }\n observer(paths, func, once = false) {\n this._$.observer(paths, func, once);\n return this;\n }\n /**\n * Add a lifetime callback\n */\n lifetime(name, func, once = false) {\n this._$.lifetime(name, func, once);\n return this;\n }\n /**\n * Add a page-lifetime callback\n */\n pageLifetime(name, func, once = false) {\n this._$.pageLifetime(name, func, once);\n return this;\n }\n /**\n * Add a relation\n */\n relation(name, rel) {\n const target = rel.target instanceof Behavior || rel.target instanceof ComponentType\n ? rel.target._$\n : rel.target;\n this._$.relation(name, {\n target,\n type: rel.type,\n linked: rel.linked,\n linkChanged: rel.linkChanged,\n unlinked: rel.unlinked,\n linkFailed: rel.linkFailed,\n });\n return this;\n }\n init(func) {\n this._$.init(function ({ data, setData, implement, relation, observer, lifetime, pageLifetime, method, listener, }) {\n const relationInit = ((rel) => {\n if (rel.target instanceof TraitBehavior) {\n return relation({\n target: rel.target._$,\n type: rel.type,\n linked: rel.linked,\n linkChanged: rel.linkChanged,\n unlinked: rel.unlinked,\n linkFailed: rel.linkFailed,\n });\n }\n const target = rel.target instanceof Behavior || rel.target instanceof ComponentType\n ? rel.target._$\n : rel.target;\n return relation({\n target,\n type: rel.type,\n linked: rel.linked,\n linkChanged: rel.linkChanged,\n unlinked: rel.unlinked,\n linkFailed: rel.linkFailed,\n });\n });\n const implementInit = ((traitBehavior, impl) => {\n implement(traitBehavior._$, impl);\n });\n const methodCaller = this;\n return func.call(methodCaller, {\n self: methodCaller,\n data,\n setData: (newData, callback) => {\n setData(newData);\n if (callback) {\n glassEasel.triggerRender(methodCaller._$, () => {\n callback();\n });\n }\n },\n implement: implementInit,\n relation: relationInit,\n observer,\n lifetime,\n pageLifetime,\n method,\n listener,\n });\n });\n return this;\n }\n definition(def) {\n var _a;\n (_a = def.behaviors) === null || _a === void 0 ? void 0 : _a.forEach((beh) => { var _a; return (_a = beh._$bindedDefinitionFilter) === null || _a === void 0 ? void 0 : _a.call(beh, def); });\n const inner = this._$;\n const { behaviors, properties: rawProperties, data: rawData, observers: rawObservers, methods, created, attached, ready, moved, detached, lifetimes: rawLifetimes, pageLifetimes: rawPageLifetimes, relations: rawRelations, externalClasses, export: exports, } = def;\n behaviors === null || behaviors === void 0 ? void 0 : behaviors.forEach((beh) => {\n this._$parents.push(beh);\n inner.behavior(beh._$);\n });\n if (rawData !== undefined) {\n if (typeof rawData === 'function') {\n inner.data(rawData);\n }\n else {\n inner.staticData(rawData);\n }\n }\n if (rawProperties !== undefined) {\n const keys = Object.keys(rawProperties);\n for (let i = 0; i < keys.length; i += 1) {\n const name = keys[i];\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n inner.property(name, rawProperties[name]);\n }\n }\n if (rawObservers !== undefined) {\n if (Array.isArray(rawObservers)) {\n for (let i = 0; i < rawObservers.length; i += 1) {\n const { fields, observer } = rawObservers[i];\n inner.observer(fields || '**', observer);\n }\n }\n else {\n const keys = Object.keys(rawObservers);\n for (let i = 0; i < keys.length; i += 1) {\n const fields = keys[i];\n const observer = rawObservers[fields];\n inner.observer(fields, observer);\n }\n }\n }\n if (methods)\n inner.methods(methods);\n if (created && (rawLifetimes === null || rawLifetimes === void 0 ? void 0 : rawLifetimes.created) === undefined)\n inner.lifetime('created', created, true);\n if (attached && (rawLifetimes === null || rawLifetimes === void 0 ? void 0 : rawLifetimes.attached) === undefined)\n inner.lifetime('attached', attached, true);\n if (ready && (rawLifetimes === null || rawLifetimes === void 0 ? void 0 : rawLifetimes.ready) === undefined)\n inner.lifetime('ready', ready, true);\n if (moved && (rawLifetimes === null || rawLifetimes === void 0 ? void 0 : rawLifetimes.moved) === undefined)\n inner.lifetime('moved', moved, true);\n if (detached && (rawLifetimes === null || rawLifetimes === void 0 ? void 0 : rawLifetimes.detached) === undefined)\n inner.lifetime('detached', detached, true);\n if (rawLifetimes) {\n const keys = Object.keys(rawLifetimes);\n for (let i = 0; i < keys.length; i += 1) {\n const name = keys[i];\n const func = rawLifetimes[name];\n inner.lifetime(name, func, true);\n }\n }\n if (rawPageLifetimes) {\n const keys = Object.keys(rawPageLifetimes);\n for (let i = 0; i < keys.length; i += 1) {\n const name = keys[i];\n const func = rawPageLifetimes[name];\n inner.pageLifetime(name, func, true);\n }\n }\n if (rawRelations) {\n const keys = Object.keys(rawRelations);\n for (let i = 0; i < keys.length; i += 1) {\n const name = keys[i];\n const rel = rawRelations[name];\n inner.relation(name, rel);\n }\n }\n if (externalClasses)\n inner.externalClasses(externalClasses);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n if (exports)\n this._$export = exports;\n return this;\n }\n}\n//# sourceMappingURL=base_behavior_builder.js.map","/* eslint-disable @typescript-eslint/no-unsafe-return */\nimport { BaseBehaviorBuilder } from './base_behavior_builder';\nimport { Behavior } from '../behavior';\nexport class BehaviorBuilder extends BaseBehaviorBuilder {\n /** @internal */\n static create(codeSpace) {\n const ret = new BehaviorBuilder();\n ret._$codeSpace = codeSpace;\n ret._$ = codeSpace.getComponentSpace().defineWithMethodCaller();\n return ret;\n }\n /** Define a chaining filter */\n chainingFilter(func) {\n this._$.chainingFilter(func);\n return this;\n }\n /** Use another behavior */\n behavior(behavior) {\n this._$parents.push(behavior);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n this._$ = this._$.behavior(behavior._$);\n return this;\n }\n /** Set the export value when the component is being selected */\n export(f) {\n return super.export(f);\n }\n /**\n * Add some template data fields\n *\n * It does not support raw data, but a `gen` function which returns the new data fields.\n * The `gen` function executes once during component creation.\n */\n data(gen) {\n return super.data(gen);\n }\n /**\n * Add a single property\n *\n * The property name should be different from other properties.\n */\n property(name, def) {\n return super.property(name, def);\n }\n /**\n * Add some public methods\n *\n * The public method can be used as an event handler, and can be visited in component instance.\n */\n methods(funcs) {\n return super.methods(funcs);\n }\n /**\n * Execute a function while component instance creation\n *\n * A `BuilderContext` is provided to tweak the component creation progress.\n * The return value is used as the \"export\" value of the behavior,\n * which can be imported by other behaviors.\n */\n init(func) {\n return super.init(func);\n }\n /** Apply a classic definition object */\n definition(def) {\n super.definition(def);\n if (def.definitionFilter)\n this._$definitionFilter = def.definitionFilter;\n return this;\n }\n /**\n * Finish the behavior definition process\n */\n register() {\n return new Behavior(this._$.registerBehavior(), this._$parents, this._$definitionFilter, this._$export);\n }\n}\n//# sourceMappingURL=behavior_builder.js.map","/* eslint-disable @typescript-eslint/no-unsafe-return */\nimport * as glassEasel from 'glass-easel';\nimport { BaseBehaviorBuilder } from './base_behavior_builder';\nimport { ComponentType } from '../behavior';\nimport { ComponentProto } from '../component';\n/**\n * A direct way to create a component\n */\nexport class ComponentBuilder extends BaseBehaviorBuilder {\n /** @internal */\n static create(codeSpace, is, alias) {\n const ret = new ComponentBuilder();\n const overallBehavior = codeSpace._$overallBehavior;\n ret._$codeSpace = codeSpace;\n ret._$ = codeSpace.getComponentSpace().defineWithMethodCaller(is || '');\n ret._$is = is || '';\n ret._$alias = alias;\n ret._$.methodCallerInit(function () {\n const originalCaller = this;\n let proto = ret._$proto;\n if (proto === undefined) {\n const methods = originalCaller.getComponentDefinition().behavior.getMethods();\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n proto = ret._$proto = new ComponentProto(methods, ret._$export);\n }\n const caller = proto.derive();\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n caller._$ = originalCaller;\n return caller;\n });\n if (overallBehavior)\n ret._$.behavior(overallBehavior);\n return ret;\n }\n /**\n * Set the component options\n *\n * If called multiple times, only the latest call is valid.\n */\n options(options) {\n this._$options = options;\n return this;\n }\n /** Use another behavior */\n behavior(behavior) {\n this._$parents.push(behavior);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n this._$ = this._$.behavior(behavior._$);\n if (behavior._$export) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n this._$export = behavior._$export;\n }\n return this;\n }\n /** Set the export value when the component is being selected */\n export(f) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n this._$export = f;\n return this;\n }\n /**\n * Add some template data fields\n *\n * It does not support raw data, but a `gen` function which returns the new data fields.\n * The `gen` function executes once during component creation.\n */\n data(gen) {\n return super.data(gen);\n }\n /**\n * Add a single property\n *\n * The property name should be different from other properties.\n */\n property(name, def) {\n return super.property(name, def);\n }\n /**\n * Add some public methods\n *\n * The public method can be used as an event handler, and can be visited in component instance.\n */\n methods(funcs) {\n return super.methods(funcs);\n }\n /**\n * Execute a function while component instance creation\n *\n * A `BuilderContext` is provided to tweak the component creation progress.\n * The return value is used as the \"export\" value of the behavior,\n * which can be imported by other behaviors.\n */\n init(func) {\n return super.init(func);\n }\n /** Apply a classic definition object */\n definition(def) {\n super.definition(def);\n if (def.options)\n this.options(def.options);\n return this;\n }\n pageDefinition(def) {\n const freeData = Object.create(null);\n const compDef = {\n methods: {},\n };\n const keys = Object.keys(def);\n for (let i = 0; i < keys.length; i += 1) {\n const k = keys[i];\n if (k === 'data' || k === 'options' || k === 'behaviors') {\n compDef[k] = def[k];\n }\n else if (typeof def[k] === 'function') {\n ;\n compDef.methods[k] = def[k];\n }\n else {\n ;\n freeData[k] = def[k];\n }\n }\n this.definition(compDef);\n this._$.init(function () {\n Object.assign(this, glassEasel.dataUtils.simpleDeepCopy(freeData));\n });\n return this;\n }\n /**\n * Finish the component definition process\n */\n register() {\n var _a;\n const is = this._$is;\n const codeSpace = this._$codeSpace;\n // processing common fields\n const [options, styleIsolation] = codeSpace.prepareComponentOptions(is, this._$options);\n this._$.options(options);\n const staticConfig = codeSpace.getComponentStaticConfig(is);\n const using = staticConfig === null || staticConfig === void 0 ? void 0 : staticConfig.usingComponents;\n const generics = staticConfig === null || staticConfig === void 0 ? void 0 : staticConfig.componentGenerics;\n const placeholder = staticConfig === null || staticConfig === void 0 ? void 0 : staticConfig.componentPlaceholder;\n if (using)\n this._$.usingComponents(using);\n if (generics)\n this._$.generics(generics);\n if (placeholder)\n this._$.placeholders(placeholder);\n const template = codeSpace.getCompiledTemplate(is);\n if (template)\n this._$.template(template);\n // do registration\n codeSpace._$styleIsolationMap[is] = styleIsolation;\n const compDef = this._$.registerComponent();\n (_a = this._$alias) === null || _a === void 0 ? void 0 : _a.forEach((alias) => {\n this._$codeSpace.getComponentSpace().exportComponent(alias, this._$is);\n });\n return new ComponentType(compDef);\n }\n}\n//# sourceMappingURL=component_builder.js.map","export const guid = () => Math.floor((1 + Math.random()) * 0x100000000)\n .toString(16)\n .slice(1);\n//# sourceMappingURL=utils.js.map","/* eslint-disable @typescript-eslint/no-unsafe-return */\nimport * as glassEasel from 'glass-easel';\nimport { guid } from './utils';\nimport { TraitBehavior } from './behavior';\nimport { BehaviorBuilder, ComponentBuilder } from './builder';\n/**\n * A component space with mini-program code manager\n */\nexport class CodeSpace {\n /** @internal */\n constructor(env, isMainSpace, publicComponents, globalCodeSpace) {\n /** @internal */\n this._$overallBehavior = null;\n this._$env = env;\n this._$isMainSpace = isMainSpace;\n this.space = new glassEasel.ComponentSpace('', globalCodeSpace === null || globalCodeSpace === void 0 ? void 0 : globalCodeSpace.space, globalCodeSpace === null || globalCodeSpace === void 0 ? void 0 : globalCodeSpace.space.styleScopeManager);\n this.styleScopeManager = this.space.styleScopeManager;\n this.staticConfigMap = Object.create(null);\n this.styleSheetMap = Object.create(null);\n this.compiledTemplateMap = Object.create(null);\n this.waitingAliasMap = Object.create(null);\n Object.keys(publicComponents).forEach((alias) => {\n const is = publicComponents[alias];\n if (this.waitingAliasMap[is])\n this.waitingAliasMap[is].push(alias);\n else\n this.waitingAliasMap[is] = [alias];\n });\n this._$sharedStyleScope = this.styleScopeManager.register('');\n this._$styleIsolationMap = Object.create(null);\n }\n isMainSpace() {\n return this._$isMainSpace;\n }\n /**\n * Get the underlying component space\n */\n getComponentSpace() {\n return this.space;\n }\n /**\n * Add a behavior for all components\n *\n * Must be called before any component registration so that the component will use this behavior.\n * Set to `null` to disable this behavior.\n */\n setOverallBehavior(behavior) {\n this._$overallBehavior = behavior;\n }\n /**\n * Import another component space as a plugin (must be in the same environment)\n *\n * Components from the imported `codeSpace` can be used with URLs.\n * If `domainAlias` is provided, the URL format is `plugin://DOMAIN_ALIAS/COMPONENT_SPACE_EXPORT_ALIAS` .\n * If `privateImport` is enabled, another URL format is `plugin-private://DOMAIN/COMPONENT_IS` .\n */\n importCodeSpace(id, domainAlias, privateImport = false) {\n const cs = this._$env.getCodeSpace(id);\n if (!cs) {\n throw new Error(`There is no space \"${id}\" in the environment`);\n }\n if (domainAlias)\n this.space.importSpace(`plugin://${domainAlias}`, cs.space, false);\n if (privateImport)\n this.space.importSpace(`plugin-private://${id}`, cs.space, true);\n }\n /**\n * Add a style sheet URL with style scope name\n *\n * The URL should be recognized by the target backend.\n * The `path` should not contain the `.wxss` suffix.\n */\n addStyleSheet(path, styleSheetUrl, styleScopeName) {\n this.styleSheetMap[path] = { url: styleSheetUrl, styleScopeName };\n }\n /**\n * Get a style sheet URL\n *\n * The URL should be recognized by the target backend.\n * The `path` should not contain the `.wxss` suffix.\n */\n getStyleSheet(path) {\n var _a;\n return (_a = this.styleSheetMap[path]) === null || _a === void 0 ? void 0 : _a.url;\n }\n getStyleScopeName(path) {\n var _a;\n return (_a = this.styleSheetMap[path]) === null || _a === void 0 ? void 0 : _a.styleScopeName;\n }\n /**\n * Add a compiled template\n *\n * The content is the execution result of the generated string of the template compiler.\n * The `path` should not contain the `.wxml` suffix.\n */\n addCompiledTemplate(path, content) {\n this.compiledTemplateMap[path] = content;\n }\n /**\n * Get a compiled template\n *\n * The content is the execution result of the generated string of the template compiler.\n * The `path` should not contain the `.wxml` suffix.\n */\n getCompiledTemplate(path) {\n return this.compiledTemplateMap[path];\n }\n /**\n * Add a static JSON config\n *\n * The `path` should not contain the `.json` suffix.\n */\n addComponentStaticConfig(path, content) {\n this.staticConfigMap[path] = content;\n }\n /**\n * Get a static JSON config\n *\n * The `path` should not contain the `.json` suffix.\n */\n getComponentStaticConfig(path) {\n return this.staticConfigMap[path];\n }\n /** @internal */\n prepareComponentOptions(is, options) {\n // accept some fields from static JSON config\n const staticConfig = this.staticConfigMap[is];\n const pureDataPatternString = staticConfig === null || staticConfig === void 0 ? void 0 : staticConfig.pureDataPattern;\n const pureDataPattern = pureDataPatternString\n ? new RegExp(pureDataPatternString)\n : options === null || options === void 0 ? void 0 : options.pureDataPattern;\n // calculate style scope\n const addGlobalClass = staticConfig === null || staticConfig === void 0 ? void 0 : staticConfig.addGlobalClass;\n let styleIsolation = staticConfig === null || staticConfig === void 0 ? void 0 : staticConfig.styleIsolation;\n if (styleIsolation === undefined) {\n if (staticConfig === null || staticConfig === void 0 ? void 0 : staticConfig.component) {\n styleIsolation = addGlobalClass ? \"apply-shared\" /* StyleIsolation.ApplyShared */ : \"isolated\" /* StyleIsolation.Isolated */;\n }\n else {\n styleIsolation = \"shared\" /* StyleIsolation.Shared */;\n }\n }\n let styleScope;\n let extraStyleScope;\n if (styleIsolation === \"apply-shared\" /* StyleIsolation.ApplyShared */ ||\n styleIsolation === \"page-apply-shared\" /* StyleIsolation.PageApplyShared */) {\n styleScope = this.styleScopeManager.register(this.getStyleScopeName(is) || `__${guid()}`);\n extraStyleScope = this._$sharedStyleScope;\n }\n else if ((styleIsolation === \"shared\" /* StyleIsolation.Shared */ || styleIsolation === \"page-shared\" /* StyleIsolation.PageShared */) &&\n this._$isMainSpace) {\n styleScope = this._$sharedStyleScope;\n }\n else {\n styleScope = this.styleScopeManager.register(this.getStyleScopeName(is) || `__${guid()}`);\n }\n // construct component options\n const ret = {\n idPrefixGenerator: guid,\n multipleSlots: options === null || options === void 0 ? void 0 : options.multipleSlots,\n pureDataPattern,\n virtualHost: options === null || options === void 0 ? void 0 : options.virtualHost,\n styleScope,\n extraStyleScope,\n dataDeepCopy: options === null || options === void 0 ? void 0 : options.dataDeepCopy,\n propertyPassingDeepCopy: options === null || options === void 0 ? void 0 : options.propertyPassingDeepCopy,\n propertyEarlyInit: options === null || options === void 0 ? void 0 : options.propertyEarlyInit,\n };\n return [ret, styleIsolation];\n }\n /**\n * Create a component definition environment\n *\n * During the sync execution of `cb` , `Component` and `Behavior` global vars will be available.\n * `globalObject` should be the JavaScript global object, a.k.a. `window` in DOM.\n * Some global variables, a.k.a `Component` `Behavior` `Page` ,\n * will be written into `globalObject` .\n * `path` should be the component path (without \".js\" extension).\n */\n globalComponentEnv(globalObject, path, cb) {\n return this.componentEnv(path, ({ Page, Component, Behavior }) => {\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n /* eslint-disable @typescript-eslint/no-unsafe-assignment */\n const oldPage = globalObject.Page;\n const oldComponent = globalObject.Component;\n const oldBehavior = globalObject.Behavior;\n globalObject.Page = Page;\n globalObject.Component = Component;\n globalObject.Behavior = Behavior;\n const ret = cb();\n globalObject.Page = oldPage;\n globalObject.Component = oldComponent;\n globalObject.Behavior = oldBehavior;\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n /* eslint-enable @typescript-eslint/no-unsafe-assignment */\n return ret;\n });\n }\n /**\n * Create a component definition environment\n *\n * Like `globalComponentEnv` , but the global variables are given as callback arguments.\n */\n componentEnv(path, cb) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const self = this;\n // The page constructor\n function pageConstructor(definition) {\n return self.component(path).pageDefinition(definition).register();\n }\n function componentConstructor(definition) {\n if (definition !== undefined) {\n return self.component(path).definition(definition).register();\n }\n return self.component(path);\n }\n function behaviorConstructor(definition) {\n if (definition !== undefined) {\n return self.behavior().definition(definition).register();\n }\n return self.behavior();\n }\n behaviorConstructor.trait = self.traitBehavior.bind(self);\n // prepare global vars and execute\n return cb({\n Page: pageConstructor,\n Component: componentConstructor,\n Behavior: behaviorConstructor,\n });\n }\n /**\n * Build a component outside of a definition environment\n *\n * The method do not need a definition environment, so the global object pollution is avoided.\n * `path` should be the component path (without \".js\" extension).\n */\n component(path) {\n return ComponentBuilder.create(this, path, this.waitingAliasMap[path]);\n }\n /**\n * Build a behavior outside of a definition environment\n *\n * The method do not need a definition environment, so the global object pollution is avoided.\n */\n behavior() {\n return BehaviorBuilder.create(this);\n }\n traitBehavior(trans) {\n if (trans === undefined) {\n return new TraitBehavior(this.space.defineTraitBehavior());\n }\n return new TraitBehavior(this.space.defineTraitBehavior(trans));\n }\n}\n//# sourceMappingURL=space.js.map","export { typeUtils as utils } from 'glass-easel';\nexport var StyleIsolation;\n(function (StyleIsolation) {\n StyleIsolation[\"Isolated\"] = \"isolated\";\n StyleIsolation[\"ApplyShared\"] = \"apply-shared\";\n StyleIsolation[\"Shared\"] = \"shared\";\n StyleIsolation[\"PageIsolated\"] = \"page-isolated\";\n StyleIsolation[\"PageApplyShared\"] = \"page-apply-shared\";\n StyleIsolation[\"PageShared\"] = \"page-shared\";\n})(StyleIsolation || (StyleIsolation = {}));\n//# sourceMappingURL=types.js.map","import * as glassEasel from 'glass-easel';\nimport { AssociatedBackend } from './backend';\nimport { CodeSpace } from './space';\n/**\n * A mini-program API environment\n *\n * Each environment manages multiple backend contexts.\n * However, a backend context should be exclusively managed by a single environment\n * (to avoid `StyleScopeId` confliction).\n * It is able to create multiple `CodeSpace` within the environment.\n */\nexport class MiniProgramEnv {\n /**\n * Create an empty mini-program API environment\n */\n constructor() {\n this.codeSpaceMap = Object.create(null);\n this.globalCodeSpace = new CodeSpace(this, false, {});\n }\n /**\n * Get a global code space in which global components can be defined\n *\n * External glass-easel based components can be defined in this code space.\n * All global components should be defined before any other `CodeSpace` created!\n */\n getGlobalCodeSpace() {\n return this.globalCodeSpace;\n }\n /**\n * Associate a backend context\n *\n * If `backendContext` is not given, the DOM-based backend is used\n * (causes failure if running outside browsers).\n * The backend context SHOULD NOT be associated by other environments!\n */\n associateBackend(backendContent) {\n const ctx = backendContent !== null && backendContent !== void 0 ? backendContent : new glassEasel.CurrentWindowBackendContext();\n return new AssociatedBackend(this, ctx);\n }\n /**\n * Create a component space that can manage WXML, WXSS, JS and static JSON config files\n *\n * The space can be specified as a *main* space.\n * This makes some features available:\n * * the `app.wxss` will be used as a style sheet for all root components in the space;\n * * the `StyleIsolation.Shared` is accepted for components in the space.\n * Non-main spaces usually act as plugins.\n * `publicComponents` is a map for specifying a map of aliases and component paths.\n */\n createCodeSpace(id, isMainSpace, publicComponents = Object.create(null)) {\n const cs = new CodeSpace(this, isMainSpace, publicComponents, this.globalCodeSpace);\n this.codeSpaceMap[id] = cs;\n return cs;\n }\n /**\n * Get a component space by the `id` specified when created\n */\n getCodeSpace(id) {\n return this.codeSpaceMap[id];\n }\n}\n//# sourceMappingURL=env.js.map"],"names":["AssociatedBackend","constructor","env","backendContext","this","_$env","_$","registerStyleSheetContent","url","content","createRoot","tagName","codeSpace","genericTargets","Error","Root","_$comp","getComponentSpace","createComponentByUrl","isMainSpace","globalStyleSheet","getStyleSheet","undefined","styleIsolation","_$styleIsolationMap","is","appendStyleSheetPath","_$sharedStyleScope","addStyleSheet","comp","styleScope","getComponentOptions","path","glassEasel","StyleScopeManager","globalScope","getRootBehavior","getComponentDependencies","forEach","getComponentDefinition","get","getMethodCaller","getComponent","attach","parent","placeholder","Element","replaceDocumentElement","release","pretendDetached","destroyBackendElement","joinAsync","inits","cb","initDone","jobCount","length","rets","Array","init","index","ret","setTimeout","NodesRef","selectorQuery","component","selector","selectSingle","_$sq","_$sel","_$single","fields","_$push","boundingClientRect","id","dataset","rect","size","scrollOffset","SelectorQuery","_$queue","select","selectAll","selectViewport","single","push","exec","q","map","req","done","res","ctx","getBackendContext","width","getWindowWidth","height","getWindowHeight","mark","left","top","right","bottom","rootComp","general","ownerShadowRoot","getHostNode","getBoundingClientRect","scrollLeft","scrollTop","scrollWidth","scrollHeight","constructSingleRes","elem","collectMarks","getScrollOffset","properties","Component","isComponent","propName","hasProperty","ds","propertyPassingDeepCopy","v","data","DeepCopyKind","None","Simple","dataUtils","simpleDeepCopy","SimpleWithRecursion","deepCopy","node","getShadowRoot","querySelector","nodes","querySelectorAll","resList","defaultMargins","IntersectionObserver","thresholds","initialRatio","observeAll","_$selector","_$margins","_$observers","_$thresholds","_$initialRatio","_$observeAll","relativeTo","margins","relativeToViewport","observe","targetSelector","listener","shadowRoot","targets","relativeElement","rel","margin","target","initial","observer","createIntersectionObserver","args","i","threshold","intersectionRatio","disconnect","observers","MediaQueryObserver","_$observer","descriptor","_a","_b","createMediaQueryObserver","call","filterComponentExportWithType","source","componentType","asInstanceOf","selectedSpace","ownerSpace","uncheckedCaller","caller","ComponentCaller","sourceSpace","defaultResult","_$export","filterComponentExport","value","Object","defineProperty","writable","enumerable","configurable","groupSetData","callback","setData","triggerRender","updateData","newData","replaceDataOnPath","spliceArrayDataOnPath","del","inserts","applyDataUpdates","groupUpdates","hasBehavior","behavior","traitBehavior","triggerEvent","name","detail","options","createSelectorQuery","selectComponent","selectAllComponents","r","selectOwnerComponent","_c","getRelationNodes","relationKey","ComponentProto","methods","componentExport","proto","create","prototype","assign","derive","Behavior","inner","parents","definitionFilter","definitionFilterArgs","p","_$bindedDefinitionFilter","childDef","ComponentType","TraitBehavior","BaseBehaviorBuilder","_$parents","implement","impl","externalClasses","list","f","gen","property","def","funcs","paths","func","once","lifetime","pageLifetime","relation","type","linked","linkChanged","unlinked","linkFailed","method","methodCaller","self","definition","behaviors","beh","rawProperties","rawData","rawObservers","created","attached","ready","moved","detached","lifetimes","rawLifetimes","pageLifetimes","rawPageLifetimes","relations","rawRelations","export","exports","staticData","keys","isArray","BehaviorBuilder","_$codeSpace","defineWithMethodCaller","chainingFilter","super","_$definitionFilter","register","registerBehavior","ComponentBuilder","alias","overallBehavior","_$overallBehavior","_$is","_$alias","methodCallerInit","originalCaller","_$proto","getMethods","_$options","pageDefinition","freeData","compDef","k","prepareComponentOptions","staticConfig","getComponentStaticConfig","using","usingComponents","generics","componentGenerics","componentPlaceholder","placeholders","template","getCompiledTemplate","registerComponent","exportComponent","guid","Math","floor","random","toString","slice","CodeSpace","publicComponents","globalCodeSpace","_$isMainSpace","space","ComponentSpace","styleScopeManager","staticConfigMap","styleSheetMap","compiledTemplateMap","waitingAliasMap","setOverallBehavior","importCodeSpace","domainAlias","privateImport","cs","getCodeSpace","importSpace","styleSheetUrl","styleScopeName","getStyleScopeName","addCompiledTemplate","addComponentStaticConfig","pureDataPatternString","pureDataPattern","RegExp","addGlobalClass","extraStyleScope","idPrefixGenerator","multipleSlots","virtualHost","dataDeepCopy","propertyEarlyInit","globalComponentEnv","globalObject","componentEnv","Page","oldPage","oldComponent","oldBehavior","behaviorConstructor","trait","bind","trans","defineTraitBehavior","StyleIsolation","codeSpaceMap","getGlobalCodeSpace","associateBackend","backendContent","CurrentWindowBackendContext","createCodeSpace"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "glass-easel-miniprogram-adapter",
|
|
3
3
|
"description": "The MiniProgram interface adapter of the glass-easel project",
|
|
4
|
-
"version": "0.5.
|
|
4
|
+
"version": "0.5.2",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/wechat-miniprogram/glass-easel.git"
|
|
@@ -19,11 +19,11 @@
|
|
|
19
19
|
"module": "dist/glass_easel_miniprogram_adapter.es.js",
|
|
20
20
|
"types": "dist/glass_easel_miniprogram_adapter.d.js",
|
|
21
21
|
"peerDependencies": {
|
|
22
|
-
"glass-easel": "0.5.
|
|
22
|
+
"glass-easel": "0.5.2"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
|
-
"glass-easel": "0.5.
|
|
26
|
-
"glass-easel-template-compiler": "0.5.
|
|
25
|
+
"glass-easel": "0.5.2",
|
|
26
|
+
"glass-easel-template-compiler": "0.5.2"
|
|
27
27
|
},
|
|
28
28
|
"scripts": {
|
|
29
29
|
"doc": "typedoc src/index.ts --excludePrivate --excludeProtected --excludeInternal",
|
package/src/backend.ts
CHANGED
|
@@ -2,6 +2,7 @@ import * as glassEasel from 'glass-easel'
|
|
|
2
2
|
import { type MiniProgramEnv } from './env'
|
|
3
3
|
import { type CodeSpace } from './space'
|
|
4
4
|
import { StyleIsolation } from './types'
|
|
5
|
+
import { ComponentCaller } from './component'
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* A backend context that has been associated to an environment
|
|
@@ -90,7 +91,14 @@ export class Root {
|
|
|
90
91
|
}
|
|
91
92
|
|
|
92
93
|
/**
|
|
93
|
-
* Get the
|
|
94
|
+
* Get the root component
|
|
95
|
+
*/
|
|
96
|
+
get(): ComponentCaller<any, any, any, any> {
|
|
97
|
+
return this._$comp.getMethodCaller() as unknown as ComponentCaller<any, any, any, any>
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Get the underlying component of the root component
|
|
94
102
|
*/
|
|
95
103
|
getComponent(): glassEasel.GeneralComponent {
|
|
96
104
|
return this._$comp
|
package/src/builder/index.ts
CHANGED
package/src/index.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export * as glassEasel from 'glass-easel'
|
|
2
2
|
export { AssociatedBackend, Root } from './backend'
|
|
3
3
|
export * as component from './component'
|
|
4
|
+
export * as behavior from './behavior'
|
|
5
|
+
export * as builder from './builder'
|
|
4
6
|
export { MiniProgramEnv } from './env'
|
|
5
7
|
export * from './space'
|
|
6
8
|
export * as types from './types'
|
package/src/space.ts
CHANGED
|
@@ -387,7 +387,6 @@ export class CodeSpace {
|
|
|
387
387
|
* Build a behavior outside of a definition environment
|
|
388
388
|
*
|
|
389
389
|
* The method do not need a definition environment, so the global object pollution is avoided.
|
|
390
|
-
* `path` should be the component path (without ".js" extension).
|
|
391
390
|
*/
|
|
392
391
|
behavior(): BehaviorBuilder {
|
|
393
392
|
return BehaviorBuilder.create(this)
|