@mpkit/types
Advanced tools
| /*! | ||
| * MpKit v1.0.16 | ||
| * MpKit v1.0.17 | ||
| * (c) 2020-2021 imingyu<mingyuhisoft@163.com> | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.cjs.js","sources":["../api.ts","../platform.ts","../view.ts","../mpxml-parser.ts","../mpspec.ts"],"sourcesContent":["export interface MpApiCallback {\n (res?: any);\n}\nexport interface MpApiMethodArg {\n success: MpApiCallback;\n fail: MpApiCallback;\n complete: MpApiCallback;\n [prop: string]: any;\n}\nexport interface MpApiMethod {\n (options?: MpApiMethodArg | any): any;\n}\n\nexport interface MpApiVar {\n [prop: string]: MpApiMethod;\n}\nexport enum MpRequestOptionsMethod {\n OPTIONS = \"OPTIONS\",\n GET = \"GET\",\n POST = \"POST\",\n HEAD = \"HEAD\",\n PUT = \"PUT\",\n DELETE = \"DELETE\",\n TRACE = \"TRACE\",\n CONNECT = \"CONNECT\",\n}\nexport interface MpRequestOptions extends MpApiMethodArg {\n url: string;\n method: MpRequestOptionsMethod;\n headers?: {\n [prop: string]: string | number;\n };\n}\nexport interface MpRequestTask {\n abort: Function;\n}\nexport interface MpApiRequestMethod {\n (options: MpRequestOptions): MpRequestTask;\n}\n","export enum MpPlatform {\n wechat = \"wechat\",\n alipay = \"alipay\",\n smart = \"smart\",\n tiktok = \"tiktok\",\n unknown = \"unknown\",\n}\n","import { MkEnumMap } from \"./util\";\nimport { MkSetData } from \"./set-data\";\nexport interface MpAppLaunchOptions {}\nexport interface MpViewInitLife<V, T> {\n (this: V, options: T): void;\n}\nexport interface MpViewLife<V> {\n (this: V): void;\n}\nexport type MpViewInitLifes = \"onLaunch\" | \"onLoad\" | \"created\" | \"onInit\";\nexport type MpViewMountLifes = \"onShow\" | \"attached\" | \"didMount\";\n// 小程序App实例\nexport interface MpViewApp extends MpViewAppSpec, MpView {}\n// 小程序App函数接收的配置对象\nexport interface MpViewAppSpec {\n onLaunch: MpViewInitLife<MpViewApp, MpAppLaunchOptions>;\n onShow: MpViewInitLife<MpViewApp, MpAppLaunchOptions>;\n onHide: MpViewLife<MpViewApp>;\n onError: MpViewLife<MpViewApp>;\n [prop: string]: any;\n}\nexport interface MpAlipayViewApp extends MpViewApp, MpAlipayViewAppSpec {}\nexport interface MpAlipayViewAppSpec extends MpViewAppSpec {\n onShareAppMessage: MpViewLife<MpAlipayViewApp>;\n}\n\nexport interface MpViewFactory {\n (spec: MpViewAppSpec | MpViewPageSpec | MpViewComponentSpec | any): void;\n}\nexport enum MpViewType {\n App = \"App\",\n Page = \"Page\",\n Component = \"Component\",\n}\nexport interface MpViewSpec {\n data: any;\n}\nexport interface MpViewComponetPropSpec {\n type: Function;\n default?: any;\n observer?: Function;\n}\nexport interface MpViewPageSpec extends MpViewSpec {\n [prop: string]: any;\n}\nexport type MpViewComponentLifes =\n | \"created\"\n | \"attached\"\n | \"ready\"\n | \"moved\"\n | \"detached\"\n | \"error\";\nexport type MpViewComponentPageLifes = \"show\" | \"hide\" | \"resize\";\nexport interface MpViewComponentSpec extends MpViewSpec {\n properties?: {\n [prop: string]: Function | MpViewComponetPropSpec;\n };\n lifetimes?: MkEnumMap<MpViewComponentLifes, Function | string>;\n pageLifetimes?: MkEnumMap<MpViewComponentPageLifes, Function | string>;\n methods: {\n [prop: string]: Function;\n };\n [prop: string]: any;\n}\nexport interface MpView {\n $mkSpec: MpViewSpec;\n $mkType: MpViewType;\n $mkKey: string;\n $mkKeyIsDefine?: string;\n $mkNativeSetData: MpSetDataHandler;\n $mkSetData: MkSetData;\n $mkSetDataIsBind?: boolean;\n $mkReadyData: any;\n data: any;\n setData: MpSetDataHandler;\n}\nexport interface MpWechatSelectOwnerComponent {\n (): void | MpView;\n}\nexport interface MpWechatView extends MpView {\n __wxExparserNodeId__: string;\n __wxWebviewId__: number;\n is: string;\n selectOwnerComponent: MpWechatSelectOwnerComponent;\n}\nexport interface MpWechatPageView extends MpWechatView {\n route: string;\n}\nexport interface MpTiktokView extends MpView {\n __webviewId__: number;\n __nodeId__: number;\n is: string;\n}\nexport interface MpComponentPropObserver {\n (this: MpView, oldValue: any, newVal: any): void;\n}\n\nexport interface MpComponentPropSpec {\n type: Function;\n default: any;\n observer: MpComponentPropObserver;\n}\n\nexport interface MpAlipayView extends MpView {\n $id: number;\n}\n\nexport interface MpAlipayViewPage extends MpAlipayView {\n $viewId: string;\n route: string;\n}\nexport interface MpAlipayViewComponent extends MpAlipayView {\n $page: MpAlipayViewPage;\n is: string;\n props: {\n [prop: string]: any;\n __tag: string;\n };\n}\nexport interface MpSmartViewPage extends MpView {\n route: string;\n}\nexport interface MpSmartViewComponent extends MpView {\n componentName: string;\n nodeId: string;\n pageinstance: MpSmartViewPage;\n is: string;\n}\nexport interface MpSetDataHandler {\n (data: any, callback?: Function): void;\n}\n","import { MkOmit, MkMap } from \"./util\";\nimport {\n FxNode,\n FxParseResult,\n FxWrong,\n FxLocation,\n FxNodeJSON,\n FxEventHandler,\n FxNodeAdapter,\n FxSerializeOptions,\n FxEventType,\n FxNodeType,\n} from \"forgiving-xml-parser\";\nimport { MpPlatform } from \"./platform\";\nexport interface MpViewSyntaxSpec {\n namespace: string;\n for: string;\n forItem: string;\n forIndex: string;\n key: string;\n if: string;\n elseIf: string;\n else: string;\n xmlFileSuffix?: string;\n xjsNodeName?: string;\n xjsFileSuffix?: string;\n xjsModuleAttrName?: string;\n xjsSrcAttrName?: string;\n forAndWhereAttrNeedBracket: boolean;\n importNodeName?: string;\n importSrcAttrName?: string;\n includeNodeName?: string;\n includeSrcAttrName?: string;\n}\n\n// export interface MkMpXmlParseRuleMatcher extends FxEventHandler {}\n// export interface MkMpXmlParseRuleHnalder extends FxEventHandler {}\n// export interface MkMpXmlParseRule {\n// target: FxEventType | FxNodeType | MkMpXmlParseRuleMatcher;\n// handler: MkMpXmlParseRuleHnalder;\n// }\nexport type MkPlatformNodeAdapterMap = {\n [prop in MpPlatform]?: FxNodeAdapter[];\n};\nexport interface MkMpXmlParseOptions {\n onEvent?: FxEventHandler;\n // rules?: MkMpXmlParseRule[];\n}\nexport interface MkMpXmlSerializeOptions extends FxSerializeOptions {}\nexport interface MkXmlContent {\n type: MpXmlContentType;\n value: string;\n locationInfo?: FxLocation;\n}\nexport interface MkXmlContentParseResult {\n contents: MkXmlContent[];\n leftStaticContents: MkXmlContent[];\n leftStaticContentsIsEmpty: boolean;\n rightStaticContents: MkXmlContent[];\n rightStaticContentsIsEmpty: boolean;\n betweenStaticContents: MkXmlContent[];\n dynamicContents: MkXmlContent[];\n}\nexport interface MpForAttrContent extends MkXmlContent {\n type: MpXmlContentType;\n value: string;\n featureList?: string;\n featureItem?: string;\n featureIndex?: string;\n featureKey?: string;\n}\nexport interface MkMpXmlParseContext {\n xjsModuleNames?: []; // 该页面引入的wxs/sjs...之类的模块名称\n}\nexport interface IMkMpXmlAttrParseAdapter {\n parse(\n attr: FxNodeJSON,\n parent?: FxNodeJSON | LikeFxParseContext,\n grandpa?: FxNodeJSON | LikeFxParseContext\n ): MkXmlNode;\n}\nexport interface IMkMpXmlContentParseAdapter {\n parse(\n content: string,\n node?: FxNodeJSON,\n parent?: FxNodeJSON | LikeFxParseContext,\n grandpa?: FxNodeJSON | LikeFxParseContext\n ): MkXmlContent[];\n}\nexport interface IMkMpXmlParseAdapter {\n attrAdapters: MkMap<IMkMpXmlAttrParseAdapter>;\n contentAdapter: IMkMpXmlContentParseAdapter;\n}\nexport enum MpXmlContentType {\n static = \"static\",\n dynamic = \"dynamic\",\n}\nexport interface MkXmlNodeJSON\n extends MkOmit<FxNodeJSON, \"attrs\" | \"children\"> {\n attrs?: MkXmlNodeJSON[];\n children?: MkXmlNodeJSON[];\n mpContents?: MpForAttrContent[] | MkXmlContent[];\n}\nexport interface LikeFxParseContext {\n nodes?: FxNode[] | FxNodeJSON[] | MkXmlNodeJSON[] | MkXmlNode[];\n}\nexport interface MkXmlNode\n extends MkOmit<MkXmlNodeJSON, \"attrs\" | \"children\" | \"parent\"> {\n attrs?: MkXmlNode[];\n children?: MkXmlNode[];\n mpContents?: MpForAttrContent[] | MkXmlContent[];\n parent?: MkXmlNode;\n // 前一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n previousSibling?: MkXmlNode;\n // 后一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n nextSibling?: MkXmlNode;\n}\n\nexport enum MkXmlParseMessagePosition {\n text = \"text\",\n attr = \"attr\",\n}\nexport interface MkXmlParseMessage extends FxWrong {\n // position: MkXmlParseMessagePosition;\n target?: FxNode | FxNodeJSON;\n}\n\nexport interface MkXmlParseResult extends MkOmit<FxParseResult, \"nodes\"> {\n nodes?: MkXmlNode[];\n}\n\nexport interface MkXmlParseResultBase {\n error?: FxWrong;\n nodes?: MkXmlNode[];\n}\n\nexport interface MkMpXmlParseAdapterFormater {\n parseAdapter?: IMkMpXmlParseAdapter;\n hasAttrAdapter: boolean;\n hasContentAdapter: boolean;\n}\nexport interface MkNodeSerializer {\n (\n nodes: FxNodeJSON[],\n handler: MkNodeSerializeHandler,\n parentNode?: FxNodeJSON\n ): string;\n}\nexport interface MkNodeSerializeHandler {\n (\n currentNode: MkXmlNodeJSON,\n brotherNodes: MkXmlNodeJSON[],\n rootNodes: MkXmlNodeJSON[],\n rootSerializer: MkNodeSerializer,\n parentNode: FxNodeJSON,\n adapter: FxNodeAdapter,\n serializeResult: string\n ): string;\n}\n","import { MpPlatform } from \"./platform\";\nimport { MkOmit, MkRequireAll } from \"./util\";\n\nexport type MkMpSDKVersion<\n N extends number = number,\n S extends string = `${N}.${N}.${N}`\n> = S;\n\nexport interface LikeMkMpSDKVersionSupport {\n supportVersion?: MkMpSDKVersion;\n}\nexport interface MkMpSDKVersionSupport\n extends MkRequireAll<LikeMkMpSDKVersionSupport> {}\n\n// xml绑定变量语法,如:{{xx}}\nexport interface LikeMkMpXmlDataBinding {\n // 左边界字符串\n leftBoundaryChar?: string;\n // 右边界字符串\n rightBoundaryChar?: string;\n // 左边界符距离内容可被允许包含的空白字符数量,小于0|undefined=允许左边界与内容之间出现空白字符且不限数量;0=不允许;大于0代表必须有,且数量一致\n leftBoundarySpace?: number;\n // 右边界符距离内容可被允许包含的空白字符数量,小于0|undefined=允许左边界与内容之间出现空白字符且不限数量;0=不允许;大于0代表必须有,且数量一致\n rightBoundarySpace?: number;\n}\nexport interface MkMpXmlDataBinding\n extends MkRequireAll<LikeMkMpXmlDataBinding> {}\n\n// 是否支持数据绑定\nexport interface MkMpXmlSupportDataBinding {\n // 是否支持变量绑定\n dataBinding?: MkMpXmlDataBinding;\n // 支持的变量绑定数量,0代表不支持,小于0代表支持无限个,大于0代表具体数量\n dataBindingCount?: number;\n}\nexport enum MkMpXmlAstContentType {\n static = \"static\",\n dataBinding = \"dataBinding\",\n}\nexport interface MkMpXmlAstContent {\n type: MkMpXmlAstContentType;\n value: string;\n}\n// xml ast 节点\nexport interface MkMpXmlAstNode {\n name: string;\n content?: string;\n mpContents?: MkMpXmlAstContent[];\n}\n// xml ast 属性\nexport interface MkMpXmlAstAttr extends MkMpXmlAstNode {}\n// xml ast 元素\nexport interface MkMpXmlAstElement extends MkMpXmlAstNode {\n attrs?: MkMpXmlAstAttr[];\n children?: MkMpXmlAstElement[];\n // 前一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n previousSibling?: MkMpXmlAstElement;\n // 后一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n nextSibling?: MkMpXmlAstElement;\n}\n\nexport interface MkMpXmlAstPreviousSiblingFinder {\n (node: MkMpXmlAstElement, siblings: MkMpXmlAstElement[]): MkMpXmlAstElement;\n}\n\n// xml 属性验证器\nexport interface MkMpXmlNodeValidater {\n (\n attr: MkMpXmlAstAttr, // 属性ast对象\n parent: MkMpXmlAstElement, // 属性的父节点ast对象\n grandpa?: MkMpXmlAstElement, // 属性的爷爷节点ast对象\n previousSiblingFinder?: MkMpXmlAstPreviousSiblingFinder // 查找前一个节点的函数\n ): boolean | MkMpXmlNodeValidateResult;\n}\nexport enum MkMpXmlNodeValidateResultLevel {\n success = \"success\",\n fail = \"fail\",\n warn = \"warn\",\n ignore = \"ignore\",\n}\nexport interface MkMpXmlNodeValidateResult {\n pass: boolean;\n level: MkMpXmlNodeValidateResultLevel;\n code: string;\n message: string;\n}\nexport enum MkMpXmlAttrContentType {\n string = \"string\",\n boolean = \"boolean\",\n number = \"number\",\n}\n// xml 属性 技术特性\nexport interface LikeMkMpXmlAttrSpec\n extends MkMpXmlSupportDataBinding,\n LikeMkMpSDKVersionSupport {\n // 内容必选?0|undefined=可有可没有,小于0=必须没有,1=必须有,但是可为空,大于1=必须有,且不为空(含任意字符串)\n requireContent?: number;\n // 是否必选?0|undefined=可有可没有,小于0=必须没有,大于0=必须有\n require?: number;\n // 该属性是否是事件绑定\n isEvent?: boolean;\n // 内容类型\n contentType?: MkMpXmlAttrContentType | MkMpXmlAttrContentType[];\n // 默认内容\n defaultContent?: any;\n validater?: MkMpXmlNodeValidater;\n}\n\nexport interface MkMpXmlAttrSpec\n extends MkOmit<\n MkRequireAll<LikeMkMpXmlAttrSpec>,\n \"defaultContent\" | \"validater\"\n > {\n defaultContent?: any;\n validater?: MkMpXmlNodeValidater;\n}\n\nexport interface MkMpXmlNodeSpecMap<T> {\n // 匹配所有目标节点\n _common?: T;\n // 指定的名称均匹配不上时,采用此特性,最后采用的特性将是_common&&_unclaimed\n _unclaimed?: T;\n // 按照名称匹配,最后的该名称对应的节点特定将是此属性与_common的合并体\n [p: string]: T;\n}\n\nexport interface LikeMkMpXmlElementSpec\n extends MkMpXmlSupportDataBinding,\n LikeMkMpSDKVersionSupport {\n // 节点关闭类型,0|undefined=自关闭或结束标签关闭均可以;小于0=只可以自关闭方式关闭;大于0=必须通过结束标签关闭\n closeType?: number;\n // 属性特性\n attrsSpec?: MkMpXmlNodeSpecMap<LikeMkMpXmlAttrSpec>;\n}\n// xml 节点 技术特性\nexport interface MkMpXmlElementSpec\n extends MkOmit<MkRequireAll<LikeMkMpXmlElementSpec>, \"attrsSpec\">,\n MkMpSDKVersionSupport {\n attrsSpec: MkMpXmlNodeSpecMap<MkMpXmlAttrSpec>;\n}\n// xml 节点对象\nexport interface MkMpXmlElement {\n id?: string;\n dataset?: {\n [p: string]: any;\n };\n}\n// xml 事件对象\nexport interface MkMpXmlBaseEvent<T = undefined> {\n type: string;\n timeStamp: number;\n target: MkMpXmlElement;\n currentTarget: MkMpXmlElement;\n detail?: T;\n}\n\n// xml 事件处理程序\nexport interface MkMpXmlEventHandler<D = undefined, T = MkMpXmlBaseEvent<D>> {\n (event: T);\n}\n\n// xml 技术特性\nexport interface LikeMkMpXmlSpec\n extends MkMpXmlNodeSpecMap<LikeMkMpXmlElementSpec> {}\nexport interface MkMpXmlSpec extends MkMpXmlNodeSpecMap<MkMpXmlElementSpec> {}\n\nexport interface MkMpPlatformSpec<T> {\n [MpPlatform.wechat]: T;\n [MpPlatform.alipay]: T;\n [MpPlatform.smart]: T;\n [MpPlatform.tiktok]: T;\n}\n"],"names":["MpRequestOptionsMethod","MpPlatform","MpViewType","MpXmlContentType","MkXmlParseMessagePosition","MkMpXmlAstContentType","MkMpXmlNodeValidateResultLevel","MkMpXmlAttrContentType"],"mappings":";;;;;;;;;;;;AAgBA,WAAYA;AACRA,EAAAA,iCAAA,YAAA;AACAA,EAAAA,6BAAA,QAAA;AACAA,EAAAA,8BAAA,SAAA;AACAA,EAAAA,8BAAA,SAAA;AACAA,EAAAA,6BAAA,QAAA;AACAA,EAAAA,gCAAA,WAAA;AACAA,EAAAA,+BAAA,UAAA;AACAA,EAAAA,iCAAA,YAAA;AACH,CATD,EAAYA,8BAAsB,KAAtBA,8BAAsB,KAAA,CAAlC;;AChBA,WAAYC;AACRA,EAAAA,oBAAA,WAAA;AACAA,EAAAA,oBAAA,WAAA;AACAA,EAAAA,mBAAA,UAAA;AACAA,EAAAA,oBAAA,WAAA;AACAA,EAAAA,qBAAA,YAAA;AACH,CAND,EAAYA,kBAAU,KAAVA,kBAAU,KAAA,CAAtB;;AC6BA,WAAYC;AACRA,EAAAA,iBAAA,QAAA;AACAA,EAAAA,kBAAA,SAAA;AACAA,EAAAA,uBAAA,cAAA;AACH,CAJD,EAAYA,kBAAU,KAAVA,kBAAU,KAAA,CAAtB;;ACgEA,WAAYC;AACRA,EAAAA,0BAAA,WAAA;AACAA,EAAAA,2BAAA,YAAA;AACH,CAHD,EAAYA,wBAAgB,KAAhBA,wBAAgB,KAAA,CAA5B;;AAyBA,WAAYC;AACRA,EAAAA,iCAAA,SAAA;AACAA,EAAAA,iCAAA,SAAA;AACH,CAHD,EAAYA,iCAAyB,KAAzBA,iCAAyB,KAAA,CAArC;;ACnFA,WAAYC;AACRA,EAAAA,+BAAA,WAAA;AACAA,EAAAA,oCAAA,gBAAA;AACH,CAHD,EAAYA,6BAAqB,KAArBA,6BAAqB,KAAA,CAAjC;;AAuCA,WAAYC;AACRA,EAAAA,yCAAA,YAAA;AACAA,EAAAA,sCAAA,SAAA;AACAA,EAAAA,sCAAA,SAAA;AACAA,EAAAA,wCAAA,WAAA;AACH,CALD,EAAYA,sCAA8B,KAA9BA,sCAA8B,KAAA,CAA1C;;AAYA,WAAYC;AACRA,EAAAA,gCAAA,WAAA;AACAA,EAAAA,iCAAA,YAAA;AACAA,EAAAA,gCAAA,WAAA;AACH,CAJD,EAAYA,8BAAsB,KAAtBA,8BAAsB,KAAA,CAAlC;;;;;;;;;;;;;;;"} | ||
| {"version":3,"file":"index.cjs.js","sources":["../api.ts","../platform.ts","../view.ts","../mpxml-parser.ts","../mpspec.ts"],"sourcesContent":["export interface MpApiCallback {\n (res?: any);\n}\nexport interface MpApiMethodArg {\n success: MpApiCallback;\n fail: MpApiCallback;\n complete: MpApiCallback;\n [prop: string]: any;\n}\nexport interface MpApiMethod {\n (options?: MpApiMethodArg | any): any;\n}\n\nexport interface MpApiVar {\n [prop: string]: MpApiMethod;\n}\nexport enum MpRequestOptionsMethod {\n OPTIONS = \"OPTIONS\",\n GET = \"GET\",\n POST = \"POST\",\n HEAD = \"HEAD\",\n PUT = \"PUT\",\n DELETE = \"DELETE\",\n TRACE = \"TRACE\",\n CONNECT = \"CONNECT\",\n}\nexport interface MpRequestOptions extends MpApiMethodArg {\n url: string;\n method: MpRequestOptionsMethod;\n headers?: {\n [prop: string]: string | number;\n };\n}\nexport interface MpRequestTask {\n abort: Function;\n}\nexport interface MpApiRequestMethod {\n (options: MpRequestOptions): MpRequestTask;\n}\n","export enum MpPlatform {\n wechat = \"wechat\",\n alipay = \"alipay\",\n smart = \"smart\",\n tiktok = \"tiktok\",\n unknown = \"unknown\",\n}\n","import { MkEnumMap } from \"./util\";\nimport { MkSetData } from \"./set-data\";\nexport interface MpAppLaunchOptions {}\nexport interface MpViewInitLife<V, T> {\n (this: V, options: T): void;\n}\nexport interface MpViewLife<V> {\n (this: V): void;\n}\nexport type MpViewInitLifes = \"onLaunch\" | \"onLoad\" | \"created\" | \"onInit\";\nexport type MpViewMountLifes = \"onShow\" | \"attached\" | \"didMount\";\n// 小程序App实例\nexport interface MpViewApp extends MpViewAppSpec, MpView {}\n// 小程序App函数接收的配置对象\nexport interface MpViewAppSpec {\n onLaunch: MpViewInitLife<MpViewApp, MpAppLaunchOptions>;\n onShow: MpViewInitLife<MpViewApp, MpAppLaunchOptions>;\n onHide: MpViewLife<MpViewApp>;\n onError: MpViewLife<MpViewApp>;\n [prop: string]: any;\n}\nexport interface MpAlipayViewApp extends MpViewApp, MpAlipayViewAppSpec {}\nexport interface MpAlipayViewAppSpec extends MpViewAppSpec {\n onShareAppMessage: MpViewLife<MpAlipayViewApp>;\n}\n\nexport interface MpViewFactory {\n (spec: MpViewAppSpec | MpViewPageSpec | MpViewComponentSpec | any): void;\n}\nexport enum MpViewType {\n App = \"App\",\n Page = \"Page\",\n Component = \"Component\",\n}\nexport interface MpViewSpec {\n data: any;\n}\nexport interface MpViewComponetPropSpec {\n type: Function;\n default?: any;\n observer?: Function;\n}\nexport interface MpViewPageSpec extends MpViewSpec {\n [prop: string]: any;\n}\nexport type MpViewComponentLifes =\n | \"created\"\n | \"attached\"\n | \"ready\"\n | \"moved\"\n | \"detached\"\n | \"error\";\nexport type MpViewComponentPageLifes = \"show\" | \"hide\" | \"resize\";\nexport interface MpViewComponentSpec extends MpViewSpec {\n properties?: {\n [prop: string]: Function | MpViewComponetPropSpec;\n };\n lifetimes?: MkEnumMap<MpViewComponentLifes, Function | string>;\n pageLifetimes?: MkEnumMap<MpViewComponentPageLifes, Function | string>;\n methods: {\n [prop: string]: Function;\n };\n [prop: string]: any;\n}\nexport interface MpView {\n $mkSpec: MpViewSpec;\n $mkType: MpViewType;\n $mkKey: string;\n $mkKeyIsDefine?: string;\n $mkNativeSetData: MpSetDataHandler;\n $mkDiffSetDataBeforeValue: MpSetDataHandler;\n $mkSetData: MkSetData;\n $mkSetDataIsBind?: boolean;\n $mkReadyData: any;\n data: any;\n setData: MpSetDataHandler;\n}\nexport interface MpWechatSelectOwnerComponent {\n (): void | MpView;\n}\nexport interface MpWechatView extends MpView {\n __wxExparserNodeId__: string;\n __wxWebviewId__: number;\n is: string;\n selectOwnerComponent: MpWechatSelectOwnerComponent;\n}\nexport interface MpWechatPageView extends MpWechatView {\n route: string;\n}\nexport interface MpTiktokView extends MpView {\n __webviewId__: number;\n __nodeId__: number;\n is: string;\n}\nexport interface MpComponentPropObserver {\n (this: MpView, oldValue: any, newVal: any): void;\n}\n\nexport interface MpComponentPropSpec {\n type: Function;\n default: any;\n observer: MpComponentPropObserver;\n}\n\nexport interface MpAlipayView extends MpView {\n $id: number;\n}\n\nexport interface MpAlipayViewPage extends MpAlipayView {\n $viewId: string;\n route: string;\n}\nexport interface MpAlipayViewComponent extends MpAlipayView {\n $page: MpAlipayViewPage;\n is: string;\n props: {\n [prop: string]: any;\n __tag: string;\n };\n}\nexport interface MpSmartViewPage extends MpView {\n route: string;\n}\nexport interface MpSmartViewComponent extends MpView {\n componentName: string;\n nodeId: string;\n pageinstance: MpSmartViewPage;\n is: string;\n}\nexport interface MpSetDataHandler {\n (data: any, callback?: Function): void;\n}\n","import { MkOmit, MkMap } from \"./util\";\nimport {\n FxNode,\n FxParseResult,\n FxWrong,\n FxLocation,\n FxNodeJSON,\n FxEventHandler,\n FxNodeAdapter,\n FxSerializeOptions,\n FxEventType,\n FxNodeType,\n} from \"forgiving-xml-parser\";\nimport { MpPlatform } from \"./platform\";\nexport interface MpViewSyntaxSpec {\n namespace: string;\n for: string;\n forItem: string;\n forIndex: string;\n key: string;\n if: string;\n elseIf: string;\n else: string;\n xmlFileSuffix?: string;\n xjsNodeName?: string;\n xjsFileSuffix?: string;\n xjsModuleAttrName?: string;\n xjsSrcAttrName?: string;\n forAndWhereAttrNeedBracket: boolean;\n importNodeName?: string;\n importSrcAttrName?: string;\n includeNodeName?: string;\n includeSrcAttrName?: string;\n}\n\n// export interface MkMpXmlParseRuleMatcher extends FxEventHandler {}\n// export interface MkMpXmlParseRuleHnalder extends FxEventHandler {}\n// export interface MkMpXmlParseRule {\n// target: FxEventType | FxNodeType | MkMpXmlParseRuleMatcher;\n// handler: MkMpXmlParseRuleHnalder;\n// }\nexport type MkPlatformNodeAdapterMap = {\n [prop in MpPlatform]?: FxNodeAdapter[];\n};\nexport interface MkMpXmlParseOptions {\n onEvent?: FxEventHandler;\n // rules?: MkMpXmlParseRule[];\n}\nexport interface MkMpXmlSerializeOptions extends FxSerializeOptions {}\nexport interface MkXmlContent {\n type: MpXmlContentType;\n value: string;\n locationInfo?: FxLocation;\n}\nexport interface MkXmlContentParseResult {\n contents: MkXmlContent[];\n leftStaticContents: MkXmlContent[];\n leftStaticContentsIsEmpty: boolean;\n rightStaticContents: MkXmlContent[];\n rightStaticContentsIsEmpty: boolean;\n betweenStaticContents: MkXmlContent[];\n dynamicContents: MkXmlContent[];\n}\nexport interface MpForAttrContent extends MkXmlContent {\n type: MpXmlContentType;\n value: string;\n featureList?: string;\n featureItem?: string;\n featureIndex?: string;\n featureKey?: string;\n}\nexport interface MkMpXmlParseContext {\n xjsModuleNames?: []; // 该页面引入的wxs/sjs...之类的模块名称\n}\nexport interface IMkMpXmlAttrParseAdapter {\n parse(\n attr: FxNodeJSON,\n parent?: FxNodeJSON | LikeFxParseContext,\n grandpa?: FxNodeJSON | LikeFxParseContext\n ): MkXmlNode;\n}\nexport interface IMkMpXmlContentParseAdapter {\n parse(\n content: string,\n node?: FxNodeJSON,\n parent?: FxNodeJSON | LikeFxParseContext,\n grandpa?: FxNodeJSON | LikeFxParseContext\n ): MkXmlContent[];\n}\nexport interface IMkMpXmlParseAdapter {\n attrAdapters: MkMap<IMkMpXmlAttrParseAdapter>;\n contentAdapter: IMkMpXmlContentParseAdapter;\n}\nexport enum MpXmlContentType {\n static = \"static\",\n dynamic = \"dynamic\",\n}\nexport interface MkXmlNodeJSON\n extends MkOmit<FxNodeJSON, \"attrs\" | \"children\"> {\n attrs?: MkXmlNodeJSON[];\n children?: MkXmlNodeJSON[];\n mpContents?: MpForAttrContent[] | MkXmlContent[];\n}\nexport interface LikeFxParseContext {\n nodes?: FxNode[] | FxNodeJSON[] | MkXmlNodeJSON[] | MkXmlNode[];\n}\nexport interface MkXmlNode\n extends MkOmit<MkXmlNodeJSON, \"attrs\" | \"children\" | \"parent\"> {\n attrs?: MkXmlNode[];\n children?: MkXmlNode[];\n mpContents?: MpForAttrContent[] | MkXmlContent[];\n parent?: MkXmlNode;\n // 前一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n previousSibling?: MkXmlNode;\n // 后一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n nextSibling?: MkXmlNode;\n}\n\nexport enum MkXmlParseMessagePosition {\n text = \"text\",\n attr = \"attr\",\n}\nexport interface MkXmlParseMessage extends FxWrong {\n // position: MkXmlParseMessagePosition;\n target?: FxNode | FxNodeJSON;\n}\n\nexport interface MkXmlParseResult extends MkOmit<FxParseResult, \"nodes\"> {\n nodes?: MkXmlNode[];\n}\n\nexport interface MkXmlParseResultBase {\n error?: FxWrong;\n nodes?: MkXmlNode[];\n}\n\nexport interface MkMpXmlParseAdapterFormater {\n parseAdapter?: IMkMpXmlParseAdapter;\n hasAttrAdapter: boolean;\n hasContentAdapter: boolean;\n}\nexport interface MkNodeSerializer {\n (\n nodes: FxNodeJSON[],\n handler: MkNodeSerializeHandler,\n parentNode?: FxNodeJSON\n ): string;\n}\nexport interface MkNodeSerializeHandler {\n (\n currentNode: MkXmlNodeJSON,\n brotherNodes: MkXmlNodeJSON[],\n rootNodes: MkXmlNodeJSON[],\n rootSerializer: MkNodeSerializer,\n parentNode: FxNodeJSON,\n adapter: FxNodeAdapter,\n serializeResult: string\n ): string;\n}\n","import { MpPlatform } from \"./platform\";\nimport { MkOmit, MkRequireAll } from \"./util\";\n\nexport type MkMpSDKVersion<\n N extends number = number,\n S extends string = `${N}.${N}.${N}`\n> = S;\n\nexport interface LikeMkMpSDKVersionSupport {\n supportVersion?: MkMpSDKVersion;\n}\nexport interface MkMpSDKVersionSupport\n extends MkRequireAll<LikeMkMpSDKVersionSupport> {}\n\n// xml绑定变量语法,如:{{xx}}\nexport interface LikeMkMpXmlDataBinding {\n // 左边界字符串\n leftBoundaryChar?: string;\n // 右边界字符串\n rightBoundaryChar?: string;\n // 左边界符距离内容可被允许包含的空白字符数量,小于0|undefined=允许左边界与内容之间出现空白字符且不限数量;0=不允许;大于0代表必须有,且数量一致\n leftBoundarySpace?: number;\n // 右边界符距离内容可被允许包含的空白字符数量,小于0|undefined=允许左边界与内容之间出现空白字符且不限数量;0=不允许;大于0代表必须有,且数量一致\n rightBoundarySpace?: number;\n}\nexport interface MkMpXmlDataBinding\n extends MkRequireAll<LikeMkMpXmlDataBinding> {}\n\n// 是否支持数据绑定\nexport interface MkMpXmlSupportDataBinding {\n // 是否支持变量绑定\n dataBinding?: MkMpXmlDataBinding;\n // 支持的变量绑定数量,0代表不支持,小于0代表支持无限个,大于0代表具体数量\n dataBindingCount?: number;\n}\nexport enum MkMpXmlAstContentType {\n static = \"static\",\n dataBinding = \"dataBinding\",\n}\nexport interface MkMpXmlAstContent {\n type: MkMpXmlAstContentType;\n value: string;\n}\n// xml ast 节点\nexport interface MkMpXmlAstNode {\n name: string;\n content?: string;\n mpContents?: MkMpXmlAstContent[];\n}\n// xml ast 属性\nexport interface MkMpXmlAstAttr extends MkMpXmlAstNode {}\n// xml ast 元素\nexport interface MkMpXmlAstElement extends MkMpXmlAstNode {\n attrs?: MkMpXmlAstAttr[];\n children?: MkMpXmlAstElement[];\n // 前一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n previousSibling?: MkMpXmlAstElement;\n // 后一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n nextSibling?: MkMpXmlAstElement;\n}\n\nexport interface MkMpXmlAstPreviousSiblingFinder {\n (node: MkMpXmlAstElement, siblings: MkMpXmlAstElement[]): MkMpXmlAstElement;\n}\n\n// xml 属性验证器\nexport interface MkMpXmlNodeValidater {\n (\n attr: MkMpXmlAstAttr, // 属性ast对象\n parent: MkMpXmlAstElement, // 属性的父节点ast对象\n grandpa?: MkMpXmlAstElement, // 属性的爷爷节点ast对象\n previousSiblingFinder?: MkMpXmlAstPreviousSiblingFinder // 查找前一个节点的函数\n ): boolean | MkMpXmlNodeValidateResult;\n}\nexport enum MkMpXmlNodeValidateResultLevel {\n success = \"success\",\n fail = \"fail\",\n warn = \"warn\",\n ignore = \"ignore\",\n}\nexport interface MkMpXmlNodeValidateResult {\n pass: boolean;\n level: MkMpXmlNodeValidateResultLevel;\n code: string;\n message: string;\n}\nexport enum MkMpXmlAttrContentType {\n string = \"string\",\n boolean = \"boolean\",\n number = \"number\",\n}\n// xml 属性 技术特性\nexport interface LikeMkMpXmlAttrSpec\n extends MkMpXmlSupportDataBinding,\n LikeMkMpSDKVersionSupport {\n // 内容必选?0|undefined=可有可没有,小于0=必须没有,1=必须有,但是可为空,大于1=必须有,且不为空(含任意字符串)\n requireContent?: number;\n // 是否必选?0|undefined=可有可没有,小于0=必须没有,大于0=必须有\n require?: number;\n // 该属性是否是事件绑定\n isEvent?: boolean;\n // 内容类型\n contentType?: MkMpXmlAttrContentType | MkMpXmlAttrContentType[];\n // 默认内容\n defaultContent?: any;\n validater?: MkMpXmlNodeValidater;\n}\n\nexport interface MkMpXmlAttrSpec\n extends MkOmit<\n MkRequireAll<LikeMkMpXmlAttrSpec>,\n \"defaultContent\" | \"validater\"\n > {\n defaultContent?: any;\n validater?: MkMpXmlNodeValidater;\n}\n\nexport interface MkMpXmlNodeSpecMap<T> {\n // 匹配所有目标节点\n _common?: T;\n // 指定的名称均匹配不上时,采用此特性,最后采用的特性将是_common&&_unclaimed\n _unclaimed?: T;\n // 按照名称匹配,最后的该名称对应的节点特定将是此属性与_common的合并体\n [p: string]: T;\n}\n\nexport interface LikeMkMpXmlElementSpec\n extends MkMpXmlSupportDataBinding,\n LikeMkMpSDKVersionSupport {\n // 节点关闭类型,0|undefined=自关闭或结束标签关闭均可以;小于0=只可以自关闭方式关闭;大于0=必须通过结束标签关闭\n closeType?: number;\n // 属性特性\n attrsSpec?: MkMpXmlNodeSpecMap<LikeMkMpXmlAttrSpec>;\n}\n// xml 节点 技术特性\nexport interface MkMpXmlElementSpec\n extends MkOmit<MkRequireAll<LikeMkMpXmlElementSpec>, \"attrsSpec\">,\n MkMpSDKVersionSupport {\n attrsSpec: MkMpXmlNodeSpecMap<MkMpXmlAttrSpec>;\n}\n// xml 节点对象\nexport interface MkMpXmlElement {\n id?: string;\n dataset?: {\n [p: string]: any;\n };\n}\n// xml 事件对象\nexport interface MkMpXmlBaseEvent<T = undefined> {\n type: string;\n timeStamp: number;\n target: MkMpXmlElement;\n currentTarget: MkMpXmlElement;\n detail?: T;\n}\n\n// xml 事件处理程序\nexport interface MkMpXmlEventHandler<D = undefined, T = MkMpXmlBaseEvent<D>> {\n (event: T);\n}\n\n// xml 技术特性\nexport interface LikeMkMpXmlSpec\n extends MkMpXmlNodeSpecMap<LikeMkMpXmlElementSpec> {}\nexport interface MkMpXmlSpec extends MkMpXmlNodeSpecMap<MkMpXmlElementSpec> {}\n\nexport interface MkMpPlatformSpec<T> {\n [MpPlatform.wechat]: T;\n [MpPlatform.alipay]: T;\n [MpPlatform.smart]: T;\n [MpPlatform.tiktok]: T;\n}\n"],"names":["MpRequestOptionsMethod","MpPlatform","MpViewType","MpXmlContentType","MkXmlParseMessagePosition","MkMpXmlAstContentType","MkMpXmlNodeValidateResultLevel","MkMpXmlAttrContentType"],"mappings":";;;;;;;;;;;;AAgBA,WAAYA;AACRA,EAAAA,iCAAA,YAAA;AACAA,EAAAA,6BAAA,QAAA;AACAA,EAAAA,8BAAA,SAAA;AACAA,EAAAA,8BAAA,SAAA;AACAA,EAAAA,6BAAA,QAAA;AACAA,EAAAA,gCAAA,WAAA;AACAA,EAAAA,+BAAA,UAAA;AACAA,EAAAA,iCAAA,YAAA;AACH,CATD,EAAYA,8BAAsB,KAAtBA,8BAAsB,KAAA,CAAlC;;AChBA,WAAYC;AACRA,EAAAA,oBAAA,WAAA;AACAA,EAAAA,oBAAA,WAAA;AACAA,EAAAA,mBAAA,UAAA;AACAA,EAAAA,oBAAA,WAAA;AACAA,EAAAA,qBAAA,YAAA;AACH,CAND,EAAYA,kBAAU,KAAVA,kBAAU,KAAA,CAAtB;;AC6BA,WAAYC;AACRA,EAAAA,iBAAA,QAAA;AACAA,EAAAA,kBAAA,SAAA;AACAA,EAAAA,uBAAA,cAAA;AACH,CAJD,EAAYA,kBAAU,KAAVA,kBAAU,KAAA,CAAtB;;ACgEA,WAAYC;AACRA,EAAAA,0BAAA,WAAA;AACAA,EAAAA,2BAAA,YAAA;AACH,CAHD,EAAYA,wBAAgB,KAAhBA,wBAAgB,KAAA,CAA5B;;AAyBA,WAAYC;AACRA,EAAAA,iCAAA,SAAA;AACAA,EAAAA,iCAAA,SAAA;AACH,CAHD,EAAYA,iCAAyB,KAAzBA,iCAAyB,KAAA,CAArC;;ACnFA,WAAYC;AACRA,EAAAA,+BAAA,WAAA;AACAA,EAAAA,oCAAA,gBAAA;AACH,CAHD,EAAYA,6BAAqB,KAArBA,6BAAqB,KAAA,CAAjC;;AAuCA,WAAYC;AACRA,EAAAA,yCAAA,YAAA;AACAA,EAAAA,sCAAA,SAAA;AACAA,EAAAA,sCAAA,SAAA;AACAA,EAAAA,wCAAA,WAAA;AACH,CALD,EAAYA,sCAA8B,KAA9BA,sCAA8B,KAAA,CAA1C;;AAYA,WAAYC;AACRA,EAAAA,gCAAA,WAAA;AACAA,EAAAA,iCAAA,YAAA;AACAA,EAAAA,gCAAA,WAAA;AACH,CAJD,EAAYA,8BAAsB,KAAtBA,8BAAsB,KAAA,CAAlC;;;;;;;;;;;;;;;"} |
| /*! | ||
| * MpKit v1.0.16 | ||
| * MpKit v1.0.17 | ||
| * (c) 2020-2021 imingyu<mingyuhisoft@163.com> | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.esm.js","sources":["../api.ts","../platform.ts","../view.ts","../mpxml-parser.ts","../mpspec.ts"],"sourcesContent":["export interface MpApiCallback {\n (res?: any);\n}\nexport interface MpApiMethodArg {\n success: MpApiCallback;\n fail: MpApiCallback;\n complete: MpApiCallback;\n [prop: string]: any;\n}\nexport interface MpApiMethod {\n (options?: MpApiMethodArg | any): any;\n}\n\nexport interface MpApiVar {\n [prop: string]: MpApiMethod;\n}\nexport enum MpRequestOptionsMethod {\n OPTIONS = \"OPTIONS\",\n GET = \"GET\",\n POST = \"POST\",\n HEAD = \"HEAD\",\n PUT = \"PUT\",\n DELETE = \"DELETE\",\n TRACE = \"TRACE\",\n CONNECT = \"CONNECT\",\n}\nexport interface MpRequestOptions extends MpApiMethodArg {\n url: string;\n method: MpRequestOptionsMethod;\n headers?: {\n [prop: string]: string | number;\n };\n}\nexport interface MpRequestTask {\n abort: Function;\n}\nexport interface MpApiRequestMethod {\n (options: MpRequestOptions): MpRequestTask;\n}\n","export enum MpPlatform {\n wechat = \"wechat\",\n alipay = \"alipay\",\n smart = \"smart\",\n tiktok = \"tiktok\",\n unknown = \"unknown\",\n}\n","import { MkEnumMap } from \"./util\";\nimport { MkSetData } from \"./set-data\";\nexport interface MpAppLaunchOptions {}\nexport interface MpViewInitLife<V, T> {\n (this: V, options: T): void;\n}\nexport interface MpViewLife<V> {\n (this: V): void;\n}\nexport type MpViewInitLifes = \"onLaunch\" | \"onLoad\" | \"created\" | \"onInit\";\nexport type MpViewMountLifes = \"onShow\" | \"attached\" | \"didMount\";\n// 小程序App实例\nexport interface MpViewApp extends MpViewAppSpec, MpView {}\n// 小程序App函数接收的配置对象\nexport interface MpViewAppSpec {\n onLaunch: MpViewInitLife<MpViewApp, MpAppLaunchOptions>;\n onShow: MpViewInitLife<MpViewApp, MpAppLaunchOptions>;\n onHide: MpViewLife<MpViewApp>;\n onError: MpViewLife<MpViewApp>;\n [prop: string]: any;\n}\nexport interface MpAlipayViewApp extends MpViewApp, MpAlipayViewAppSpec {}\nexport interface MpAlipayViewAppSpec extends MpViewAppSpec {\n onShareAppMessage: MpViewLife<MpAlipayViewApp>;\n}\n\nexport interface MpViewFactory {\n (spec: MpViewAppSpec | MpViewPageSpec | MpViewComponentSpec | any): void;\n}\nexport enum MpViewType {\n App = \"App\",\n Page = \"Page\",\n Component = \"Component\",\n}\nexport interface MpViewSpec {\n data: any;\n}\nexport interface MpViewComponetPropSpec {\n type: Function;\n default?: any;\n observer?: Function;\n}\nexport interface MpViewPageSpec extends MpViewSpec {\n [prop: string]: any;\n}\nexport type MpViewComponentLifes =\n | \"created\"\n | \"attached\"\n | \"ready\"\n | \"moved\"\n | \"detached\"\n | \"error\";\nexport type MpViewComponentPageLifes = \"show\" | \"hide\" | \"resize\";\nexport interface MpViewComponentSpec extends MpViewSpec {\n properties?: {\n [prop: string]: Function | MpViewComponetPropSpec;\n };\n lifetimes?: MkEnumMap<MpViewComponentLifes, Function | string>;\n pageLifetimes?: MkEnumMap<MpViewComponentPageLifes, Function | string>;\n methods: {\n [prop: string]: Function;\n };\n [prop: string]: any;\n}\nexport interface MpView {\n $mkSpec: MpViewSpec;\n $mkType: MpViewType;\n $mkKey: string;\n $mkKeyIsDefine?: string;\n $mkNativeSetData: MpSetDataHandler;\n $mkSetData: MkSetData;\n $mkSetDataIsBind?: boolean;\n $mkReadyData: any;\n data: any;\n setData: MpSetDataHandler;\n}\nexport interface MpWechatSelectOwnerComponent {\n (): void | MpView;\n}\nexport interface MpWechatView extends MpView {\n __wxExparserNodeId__: string;\n __wxWebviewId__: number;\n is: string;\n selectOwnerComponent: MpWechatSelectOwnerComponent;\n}\nexport interface MpWechatPageView extends MpWechatView {\n route: string;\n}\nexport interface MpTiktokView extends MpView {\n __webviewId__: number;\n __nodeId__: number;\n is: string;\n}\nexport interface MpComponentPropObserver {\n (this: MpView, oldValue: any, newVal: any): void;\n}\n\nexport interface MpComponentPropSpec {\n type: Function;\n default: any;\n observer: MpComponentPropObserver;\n}\n\nexport interface MpAlipayView extends MpView {\n $id: number;\n}\n\nexport interface MpAlipayViewPage extends MpAlipayView {\n $viewId: string;\n route: string;\n}\nexport interface MpAlipayViewComponent extends MpAlipayView {\n $page: MpAlipayViewPage;\n is: string;\n props: {\n [prop: string]: any;\n __tag: string;\n };\n}\nexport interface MpSmartViewPage extends MpView {\n route: string;\n}\nexport interface MpSmartViewComponent extends MpView {\n componentName: string;\n nodeId: string;\n pageinstance: MpSmartViewPage;\n is: string;\n}\nexport interface MpSetDataHandler {\n (data: any, callback?: Function): void;\n}\n","import { MkOmit, MkMap } from \"./util\";\nimport {\n FxNode,\n FxParseResult,\n FxWrong,\n FxLocation,\n FxNodeJSON,\n FxEventHandler,\n FxNodeAdapter,\n FxSerializeOptions,\n FxEventType,\n FxNodeType,\n} from \"forgiving-xml-parser\";\nimport { MpPlatform } from \"./platform\";\nexport interface MpViewSyntaxSpec {\n namespace: string;\n for: string;\n forItem: string;\n forIndex: string;\n key: string;\n if: string;\n elseIf: string;\n else: string;\n xmlFileSuffix?: string;\n xjsNodeName?: string;\n xjsFileSuffix?: string;\n xjsModuleAttrName?: string;\n xjsSrcAttrName?: string;\n forAndWhereAttrNeedBracket: boolean;\n importNodeName?: string;\n importSrcAttrName?: string;\n includeNodeName?: string;\n includeSrcAttrName?: string;\n}\n\n// export interface MkMpXmlParseRuleMatcher extends FxEventHandler {}\n// export interface MkMpXmlParseRuleHnalder extends FxEventHandler {}\n// export interface MkMpXmlParseRule {\n// target: FxEventType | FxNodeType | MkMpXmlParseRuleMatcher;\n// handler: MkMpXmlParseRuleHnalder;\n// }\nexport type MkPlatformNodeAdapterMap = {\n [prop in MpPlatform]?: FxNodeAdapter[];\n};\nexport interface MkMpXmlParseOptions {\n onEvent?: FxEventHandler;\n // rules?: MkMpXmlParseRule[];\n}\nexport interface MkMpXmlSerializeOptions extends FxSerializeOptions {}\nexport interface MkXmlContent {\n type: MpXmlContentType;\n value: string;\n locationInfo?: FxLocation;\n}\nexport interface MkXmlContentParseResult {\n contents: MkXmlContent[];\n leftStaticContents: MkXmlContent[];\n leftStaticContentsIsEmpty: boolean;\n rightStaticContents: MkXmlContent[];\n rightStaticContentsIsEmpty: boolean;\n betweenStaticContents: MkXmlContent[];\n dynamicContents: MkXmlContent[];\n}\nexport interface MpForAttrContent extends MkXmlContent {\n type: MpXmlContentType;\n value: string;\n featureList?: string;\n featureItem?: string;\n featureIndex?: string;\n featureKey?: string;\n}\nexport interface MkMpXmlParseContext {\n xjsModuleNames?: []; // 该页面引入的wxs/sjs...之类的模块名称\n}\nexport interface IMkMpXmlAttrParseAdapter {\n parse(\n attr: FxNodeJSON,\n parent?: FxNodeJSON | LikeFxParseContext,\n grandpa?: FxNodeJSON | LikeFxParseContext\n ): MkXmlNode;\n}\nexport interface IMkMpXmlContentParseAdapter {\n parse(\n content: string,\n node?: FxNodeJSON,\n parent?: FxNodeJSON | LikeFxParseContext,\n grandpa?: FxNodeJSON | LikeFxParseContext\n ): MkXmlContent[];\n}\nexport interface IMkMpXmlParseAdapter {\n attrAdapters: MkMap<IMkMpXmlAttrParseAdapter>;\n contentAdapter: IMkMpXmlContentParseAdapter;\n}\nexport enum MpXmlContentType {\n static = \"static\",\n dynamic = \"dynamic\",\n}\nexport interface MkXmlNodeJSON\n extends MkOmit<FxNodeJSON, \"attrs\" | \"children\"> {\n attrs?: MkXmlNodeJSON[];\n children?: MkXmlNodeJSON[];\n mpContents?: MpForAttrContent[] | MkXmlContent[];\n}\nexport interface LikeFxParseContext {\n nodes?: FxNode[] | FxNodeJSON[] | MkXmlNodeJSON[] | MkXmlNode[];\n}\nexport interface MkXmlNode\n extends MkOmit<MkXmlNodeJSON, \"attrs\" | \"children\" | \"parent\"> {\n attrs?: MkXmlNode[];\n children?: MkXmlNode[];\n mpContents?: MpForAttrContent[] | MkXmlContent[];\n parent?: MkXmlNode;\n // 前一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n previousSibling?: MkXmlNode;\n // 后一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n nextSibling?: MkXmlNode;\n}\n\nexport enum MkXmlParseMessagePosition {\n text = \"text\",\n attr = \"attr\",\n}\nexport interface MkXmlParseMessage extends FxWrong {\n // position: MkXmlParseMessagePosition;\n target?: FxNode | FxNodeJSON;\n}\n\nexport interface MkXmlParseResult extends MkOmit<FxParseResult, \"nodes\"> {\n nodes?: MkXmlNode[];\n}\n\nexport interface MkXmlParseResultBase {\n error?: FxWrong;\n nodes?: MkXmlNode[];\n}\n\nexport interface MkMpXmlParseAdapterFormater {\n parseAdapter?: IMkMpXmlParseAdapter;\n hasAttrAdapter: boolean;\n hasContentAdapter: boolean;\n}\nexport interface MkNodeSerializer {\n (\n nodes: FxNodeJSON[],\n handler: MkNodeSerializeHandler,\n parentNode?: FxNodeJSON\n ): string;\n}\nexport interface MkNodeSerializeHandler {\n (\n currentNode: MkXmlNodeJSON,\n brotherNodes: MkXmlNodeJSON[],\n rootNodes: MkXmlNodeJSON[],\n rootSerializer: MkNodeSerializer,\n parentNode: FxNodeJSON,\n adapter: FxNodeAdapter,\n serializeResult: string\n ): string;\n}\n","import { MpPlatform } from \"./platform\";\nimport { MkOmit, MkRequireAll } from \"./util\";\n\nexport type MkMpSDKVersion<\n N extends number = number,\n S extends string = `${N}.${N}.${N}`\n> = S;\n\nexport interface LikeMkMpSDKVersionSupport {\n supportVersion?: MkMpSDKVersion;\n}\nexport interface MkMpSDKVersionSupport\n extends MkRequireAll<LikeMkMpSDKVersionSupport> {}\n\n// xml绑定变量语法,如:{{xx}}\nexport interface LikeMkMpXmlDataBinding {\n // 左边界字符串\n leftBoundaryChar?: string;\n // 右边界字符串\n rightBoundaryChar?: string;\n // 左边界符距离内容可被允许包含的空白字符数量,小于0|undefined=允许左边界与内容之间出现空白字符且不限数量;0=不允许;大于0代表必须有,且数量一致\n leftBoundarySpace?: number;\n // 右边界符距离内容可被允许包含的空白字符数量,小于0|undefined=允许左边界与内容之间出现空白字符且不限数量;0=不允许;大于0代表必须有,且数量一致\n rightBoundarySpace?: number;\n}\nexport interface MkMpXmlDataBinding\n extends MkRequireAll<LikeMkMpXmlDataBinding> {}\n\n// 是否支持数据绑定\nexport interface MkMpXmlSupportDataBinding {\n // 是否支持变量绑定\n dataBinding?: MkMpXmlDataBinding;\n // 支持的变量绑定数量,0代表不支持,小于0代表支持无限个,大于0代表具体数量\n dataBindingCount?: number;\n}\nexport enum MkMpXmlAstContentType {\n static = \"static\",\n dataBinding = \"dataBinding\",\n}\nexport interface MkMpXmlAstContent {\n type: MkMpXmlAstContentType;\n value: string;\n}\n// xml ast 节点\nexport interface MkMpXmlAstNode {\n name: string;\n content?: string;\n mpContents?: MkMpXmlAstContent[];\n}\n// xml ast 属性\nexport interface MkMpXmlAstAttr extends MkMpXmlAstNode {}\n// xml ast 元素\nexport interface MkMpXmlAstElement extends MkMpXmlAstNode {\n attrs?: MkMpXmlAstAttr[];\n children?: MkMpXmlAstElement[];\n // 前一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n previousSibling?: MkMpXmlAstElement;\n // 后一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n nextSibling?: MkMpXmlAstElement;\n}\n\nexport interface MkMpXmlAstPreviousSiblingFinder {\n (node: MkMpXmlAstElement, siblings: MkMpXmlAstElement[]): MkMpXmlAstElement;\n}\n\n// xml 属性验证器\nexport interface MkMpXmlNodeValidater {\n (\n attr: MkMpXmlAstAttr, // 属性ast对象\n parent: MkMpXmlAstElement, // 属性的父节点ast对象\n grandpa?: MkMpXmlAstElement, // 属性的爷爷节点ast对象\n previousSiblingFinder?: MkMpXmlAstPreviousSiblingFinder // 查找前一个节点的函数\n ): boolean | MkMpXmlNodeValidateResult;\n}\nexport enum MkMpXmlNodeValidateResultLevel {\n success = \"success\",\n fail = \"fail\",\n warn = \"warn\",\n ignore = \"ignore\",\n}\nexport interface MkMpXmlNodeValidateResult {\n pass: boolean;\n level: MkMpXmlNodeValidateResultLevel;\n code: string;\n message: string;\n}\nexport enum MkMpXmlAttrContentType {\n string = \"string\",\n boolean = \"boolean\",\n number = \"number\",\n}\n// xml 属性 技术特性\nexport interface LikeMkMpXmlAttrSpec\n extends MkMpXmlSupportDataBinding,\n LikeMkMpSDKVersionSupport {\n // 内容必选?0|undefined=可有可没有,小于0=必须没有,1=必须有,但是可为空,大于1=必须有,且不为空(含任意字符串)\n requireContent?: number;\n // 是否必选?0|undefined=可有可没有,小于0=必须没有,大于0=必须有\n require?: number;\n // 该属性是否是事件绑定\n isEvent?: boolean;\n // 内容类型\n contentType?: MkMpXmlAttrContentType | MkMpXmlAttrContentType[];\n // 默认内容\n defaultContent?: any;\n validater?: MkMpXmlNodeValidater;\n}\n\nexport interface MkMpXmlAttrSpec\n extends MkOmit<\n MkRequireAll<LikeMkMpXmlAttrSpec>,\n \"defaultContent\" | \"validater\"\n > {\n defaultContent?: any;\n validater?: MkMpXmlNodeValidater;\n}\n\nexport interface MkMpXmlNodeSpecMap<T> {\n // 匹配所有目标节点\n _common?: T;\n // 指定的名称均匹配不上时,采用此特性,最后采用的特性将是_common&&_unclaimed\n _unclaimed?: T;\n // 按照名称匹配,最后的该名称对应的节点特定将是此属性与_common的合并体\n [p: string]: T;\n}\n\nexport interface LikeMkMpXmlElementSpec\n extends MkMpXmlSupportDataBinding,\n LikeMkMpSDKVersionSupport {\n // 节点关闭类型,0|undefined=自关闭或结束标签关闭均可以;小于0=只可以自关闭方式关闭;大于0=必须通过结束标签关闭\n closeType?: number;\n // 属性特性\n attrsSpec?: MkMpXmlNodeSpecMap<LikeMkMpXmlAttrSpec>;\n}\n// xml 节点 技术特性\nexport interface MkMpXmlElementSpec\n extends MkOmit<MkRequireAll<LikeMkMpXmlElementSpec>, \"attrsSpec\">,\n MkMpSDKVersionSupport {\n attrsSpec: MkMpXmlNodeSpecMap<MkMpXmlAttrSpec>;\n}\n// xml 节点对象\nexport interface MkMpXmlElement {\n id?: string;\n dataset?: {\n [p: string]: any;\n };\n}\n// xml 事件对象\nexport interface MkMpXmlBaseEvent<T = undefined> {\n type: string;\n timeStamp: number;\n target: MkMpXmlElement;\n currentTarget: MkMpXmlElement;\n detail?: T;\n}\n\n// xml 事件处理程序\nexport interface MkMpXmlEventHandler<D = undefined, T = MkMpXmlBaseEvent<D>> {\n (event: T);\n}\n\n// xml 技术特性\nexport interface LikeMkMpXmlSpec\n extends MkMpXmlNodeSpecMap<LikeMkMpXmlElementSpec> {}\nexport interface MkMpXmlSpec extends MkMpXmlNodeSpecMap<MkMpXmlElementSpec> {}\n\nexport interface MkMpPlatformSpec<T> {\n [MpPlatform.wechat]: T;\n [MpPlatform.alipay]: T;\n [MpPlatform.smart]: T;\n [MpPlatform.tiktok]: T;\n}\n"],"names":["MpRequestOptionsMethod","MpPlatform","MpViewType","MpXmlContentType","MkXmlParseMessagePosition","MkMpXmlAstContentType","MkMpXmlNodeValidateResultLevel","MkMpXmlAttrContentType"],"mappings":";;;;;;;;IAgBYA;;AAAZ,WAAYA;AACRA,EAAAA,iCAAA,YAAA;AACAA,EAAAA,6BAAA,QAAA;AACAA,EAAAA,8BAAA,SAAA;AACAA,EAAAA,8BAAA,SAAA;AACAA,EAAAA,6BAAA,QAAA;AACAA,EAAAA,gCAAA,WAAA;AACAA,EAAAA,+BAAA,UAAA;AACAA,EAAAA,iCAAA,YAAA;AACH,CATD,EAAYA,sBAAsB,KAAtBA,sBAAsB,KAAA,CAAlC;;IChBYC;;AAAZ,WAAYA;AACRA,EAAAA,oBAAA,WAAA;AACAA,EAAAA,oBAAA,WAAA;AACAA,EAAAA,mBAAA,UAAA;AACAA,EAAAA,oBAAA,WAAA;AACAA,EAAAA,qBAAA,YAAA;AACH,CAND,EAAYA,UAAU,KAAVA,UAAU,KAAA,CAAtB;;IC6BYC;;AAAZ,WAAYA;AACRA,EAAAA,iBAAA,QAAA;AACAA,EAAAA,kBAAA,SAAA;AACAA,EAAAA,uBAAA,cAAA;AACH,CAJD,EAAYA,UAAU,KAAVA,UAAU,KAAA,CAAtB;;ICgEYC;;AAAZ,WAAYA;AACRA,EAAAA,0BAAA,WAAA;AACAA,EAAAA,2BAAA,YAAA;AACH,CAHD,EAAYA,gBAAgB,KAAhBA,gBAAgB,KAAA,CAA5B;;IAyBYC;;AAAZ,WAAYA;AACRA,EAAAA,iCAAA,SAAA;AACAA,EAAAA,iCAAA,SAAA;AACH,CAHD,EAAYA,yBAAyB,KAAzBA,yBAAyB,KAAA,CAArC;;ICnFYC;;AAAZ,WAAYA;AACRA,EAAAA,+BAAA,WAAA;AACAA,EAAAA,oCAAA,gBAAA;AACH,CAHD,EAAYA,qBAAqB,KAArBA,qBAAqB,KAAA,CAAjC;;IAuCYC;;AAAZ,WAAYA;AACRA,EAAAA,yCAAA,YAAA;AACAA,EAAAA,sCAAA,SAAA;AACAA,EAAAA,sCAAA,SAAA;AACAA,EAAAA,wCAAA,WAAA;AACH,CALD,EAAYA,8BAA8B,KAA9BA,8BAA8B,KAAA,CAA1C;;IAYYC;;AAAZ,WAAYA;AACRA,EAAAA,gCAAA,WAAA;AACAA,EAAAA,iCAAA,YAAA;AACAA,EAAAA,gCAAA,WAAA;AACH,CAJD,EAAYA,sBAAsB,KAAtBA,sBAAsB,KAAA,CAAlC;;;;"} | ||
| {"version":3,"file":"index.esm.js","sources":["../api.ts","../platform.ts","../view.ts","../mpxml-parser.ts","../mpspec.ts"],"sourcesContent":["export interface MpApiCallback {\n (res?: any);\n}\nexport interface MpApiMethodArg {\n success: MpApiCallback;\n fail: MpApiCallback;\n complete: MpApiCallback;\n [prop: string]: any;\n}\nexport interface MpApiMethod {\n (options?: MpApiMethodArg | any): any;\n}\n\nexport interface MpApiVar {\n [prop: string]: MpApiMethod;\n}\nexport enum MpRequestOptionsMethod {\n OPTIONS = \"OPTIONS\",\n GET = \"GET\",\n POST = \"POST\",\n HEAD = \"HEAD\",\n PUT = \"PUT\",\n DELETE = \"DELETE\",\n TRACE = \"TRACE\",\n CONNECT = \"CONNECT\",\n}\nexport interface MpRequestOptions extends MpApiMethodArg {\n url: string;\n method: MpRequestOptionsMethod;\n headers?: {\n [prop: string]: string | number;\n };\n}\nexport interface MpRequestTask {\n abort: Function;\n}\nexport interface MpApiRequestMethod {\n (options: MpRequestOptions): MpRequestTask;\n}\n","export enum MpPlatform {\n wechat = \"wechat\",\n alipay = \"alipay\",\n smart = \"smart\",\n tiktok = \"tiktok\",\n unknown = \"unknown\",\n}\n","import { MkEnumMap } from \"./util\";\nimport { MkSetData } from \"./set-data\";\nexport interface MpAppLaunchOptions {}\nexport interface MpViewInitLife<V, T> {\n (this: V, options: T): void;\n}\nexport interface MpViewLife<V> {\n (this: V): void;\n}\nexport type MpViewInitLifes = \"onLaunch\" | \"onLoad\" | \"created\" | \"onInit\";\nexport type MpViewMountLifes = \"onShow\" | \"attached\" | \"didMount\";\n// 小程序App实例\nexport interface MpViewApp extends MpViewAppSpec, MpView {}\n// 小程序App函数接收的配置对象\nexport interface MpViewAppSpec {\n onLaunch: MpViewInitLife<MpViewApp, MpAppLaunchOptions>;\n onShow: MpViewInitLife<MpViewApp, MpAppLaunchOptions>;\n onHide: MpViewLife<MpViewApp>;\n onError: MpViewLife<MpViewApp>;\n [prop: string]: any;\n}\nexport interface MpAlipayViewApp extends MpViewApp, MpAlipayViewAppSpec {}\nexport interface MpAlipayViewAppSpec extends MpViewAppSpec {\n onShareAppMessage: MpViewLife<MpAlipayViewApp>;\n}\n\nexport interface MpViewFactory {\n (spec: MpViewAppSpec | MpViewPageSpec | MpViewComponentSpec | any): void;\n}\nexport enum MpViewType {\n App = \"App\",\n Page = \"Page\",\n Component = \"Component\",\n}\nexport interface MpViewSpec {\n data: any;\n}\nexport interface MpViewComponetPropSpec {\n type: Function;\n default?: any;\n observer?: Function;\n}\nexport interface MpViewPageSpec extends MpViewSpec {\n [prop: string]: any;\n}\nexport type MpViewComponentLifes =\n | \"created\"\n | \"attached\"\n | \"ready\"\n | \"moved\"\n | \"detached\"\n | \"error\";\nexport type MpViewComponentPageLifes = \"show\" | \"hide\" | \"resize\";\nexport interface MpViewComponentSpec extends MpViewSpec {\n properties?: {\n [prop: string]: Function | MpViewComponetPropSpec;\n };\n lifetimes?: MkEnumMap<MpViewComponentLifes, Function | string>;\n pageLifetimes?: MkEnumMap<MpViewComponentPageLifes, Function | string>;\n methods: {\n [prop: string]: Function;\n };\n [prop: string]: any;\n}\nexport interface MpView {\n $mkSpec: MpViewSpec;\n $mkType: MpViewType;\n $mkKey: string;\n $mkKeyIsDefine?: string;\n $mkNativeSetData: MpSetDataHandler;\n $mkDiffSetDataBeforeValue: MpSetDataHandler;\n $mkSetData: MkSetData;\n $mkSetDataIsBind?: boolean;\n $mkReadyData: any;\n data: any;\n setData: MpSetDataHandler;\n}\nexport interface MpWechatSelectOwnerComponent {\n (): void | MpView;\n}\nexport interface MpWechatView extends MpView {\n __wxExparserNodeId__: string;\n __wxWebviewId__: number;\n is: string;\n selectOwnerComponent: MpWechatSelectOwnerComponent;\n}\nexport interface MpWechatPageView extends MpWechatView {\n route: string;\n}\nexport interface MpTiktokView extends MpView {\n __webviewId__: number;\n __nodeId__: number;\n is: string;\n}\nexport interface MpComponentPropObserver {\n (this: MpView, oldValue: any, newVal: any): void;\n}\n\nexport interface MpComponentPropSpec {\n type: Function;\n default: any;\n observer: MpComponentPropObserver;\n}\n\nexport interface MpAlipayView extends MpView {\n $id: number;\n}\n\nexport interface MpAlipayViewPage extends MpAlipayView {\n $viewId: string;\n route: string;\n}\nexport interface MpAlipayViewComponent extends MpAlipayView {\n $page: MpAlipayViewPage;\n is: string;\n props: {\n [prop: string]: any;\n __tag: string;\n };\n}\nexport interface MpSmartViewPage extends MpView {\n route: string;\n}\nexport interface MpSmartViewComponent extends MpView {\n componentName: string;\n nodeId: string;\n pageinstance: MpSmartViewPage;\n is: string;\n}\nexport interface MpSetDataHandler {\n (data: any, callback?: Function): void;\n}\n","import { MkOmit, MkMap } from \"./util\";\nimport {\n FxNode,\n FxParseResult,\n FxWrong,\n FxLocation,\n FxNodeJSON,\n FxEventHandler,\n FxNodeAdapter,\n FxSerializeOptions,\n FxEventType,\n FxNodeType,\n} from \"forgiving-xml-parser\";\nimport { MpPlatform } from \"./platform\";\nexport interface MpViewSyntaxSpec {\n namespace: string;\n for: string;\n forItem: string;\n forIndex: string;\n key: string;\n if: string;\n elseIf: string;\n else: string;\n xmlFileSuffix?: string;\n xjsNodeName?: string;\n xjsFileSuffix?: string;\n xjsModuleAttrName?: string;\n xjsSrcAttrName?: string;\n forAndWhereAttrNeedBracket: boolean;\n importNodeName?: string;\n importSrcAttrName?: string;\n includeNodeName?: string;\n includeSrcAttrName?: string;\n}\n\n// export interface MkMpXmlParseRuleMatcher extends FxEventHandler {}\n// export interface MkMpXmlParseRuleHnalder extends FxEventHandler {}\n// export interface MkMpXmlParseRule {\n// target: FxEventType | FxNodeType | MkMpXmlParseRuleMatcher;\n// handler: MkMpXmlParseRuleHnalder;\n// }\nexport type MkPlatformNodeAdapterMap = {\n [prop in MpPlatform]?: FxNodeAdapter[];\n};\nexport interface MkMpXmlParseOptions {\n onEvent?: FxEventHandler;\n // rules?: MkMpXmlParseRule[];\n}\nexport interface MkMpXmlSerializeOptions extends FxSerializeOptions {}\nexport interface MkXmlContent {\n type: MpXmlContentType;\n value: string;\n locationInfo?: FxLocation;\n}\nexport interface MkXmlContentParseResult {\n contents: MkXmlContent[];\n leftStaticContents: MkXmlContent[];\n leftStaticContentsIsEmpty: boolean;\n rightStaticContents: MkXmlContent[];\n rightStaticContentsIsEmpty: boolean;\n betweenStaticContents: MkXmlContent[];\n dynamicContents: MkXmlContent[];\n}\nexport interface MpForAttrContent extends MkXmlContent {\n type: MpXmlContentType;\n value: string;\n featureList?: string;\n featureItem?: string;\n featureIndex?: string;\n featureKey?: string;\n}\nexport interface MkMpXmlParseContext {\n xjsModuleNames?: []; // 该页面引入的wxs/sjs...之类的模块名称\n}\nexport interface IMkMpXmlAttrParseAdapter {\n parse(\n attr: FxNodeJSON,\n parent?: FxNodeJSON | LikeFxParseContext,\n grandpa?: FxNodeJSON | LikeFxParseContext\n ): MkXmlNode;\n}\nexport interface IMkMpXmlContentParseAdapter {\n parse(\n content: string,\n node?: FxNodeJSON,\n parent?: FxNodeJSON | LikeFxParseContext,\n grandpa?: FxNodeJSON | LikeFxParseContext\n ): MkXmlContent[];\n}\nexport interface IMkMpXmlParseAdapter {\n attrAdapters: MkMap<IMkMpXmlAttrParseAdapter>;\n contentAdapter: IMkMpXmlContentParseAdapter;\n}\nexport enum MpXmlContentType {\n static = \"static\",\n dynamic = \"dynamic\",\n}\nexport interface MkXmlNodeJSON\n extends MkOmit<FxNodeJSON, \"attrs\" | \"children\"> {\n attrs?: MkXmlNodeJSON[];\n children?: MkXmlNodeJSON[];\n mpContents?: MpForAttrContent[] | MkXmlContent[];\n}\nexport interface LikeFxParseContext {\n nodes?: FxNode[] | FxNodeJSON[] | MkXmlNodeJSON[] | MkXmlNode[];\n}\nexport interface MkXmlNode\n extends MkOmit<MkXmlNodeJSON, \"attrs\" | \"children\" | \"parent\"> {\n attrs?: MkXmlNode[];\n children?: MkXmlNode[];\n mpContents?: MpForAttrContent[] | MkXmlContent[];\n parent?: MkXmlNode;\n // 前一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n previousSibling?: MkXmlNode;\n // 后一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n nextSibling?: MkXmlNode;\n}\n\nexport enum MkXmlParseMessagePosition {\n text = \"text\",\n attr = \"attr\",\n}\nexport interface MkXmlParseMessage extends FxWrong {\n // position: MkXmlParseMessagePosition;\n target?: FxNode | FxNodeJSON;\n}\n\nexport interface MkXmlParseResult extends MkOmit<FxParseResult, \"nodes\"> {\n nodes?: MkXmlNode[];\n}\n\nexport interface MkXmlParseResultBase {\n error?: FxWrong;\n nodes?: MkXmlNode[];\n}\n\nexport interface MkMpXmlParseAdapterFormater {\n parseAdapter?: IMkMpXmlParseAdapter;\n hasAttrAdapter: boolean;\n hasContentAdapter: boolean;\n}\nexport interface MkNodeSerializer {\n (\n nodes: FxNodeJSON[],\n handler: MkNodeSerializeHandler,\n parentNode?: FxNodeJSON\n ): string;\n}\nexport interface MkNodeSerializeHandler {\n (\n currentNode: MkXmlNodeJSON,\n brotherNodes: MkXmlNodeJSON[],\n rootNodes: MkXmlNodeJSON[],\n rootSerializer: MkNodeSerializer,\n parentNode: FxNodeJSON,\n adapter: FxNodeAdapter,\n serializeResult: string\n ): string;\n}\n","import { MpPlatform } from \"./platform\";\nimport { MkOmit, MkRequireAll } from \"./util\";\n\nexport type MkMpSDKVersion<\n N extends number = number,\n S extends string = `${N}.${N}.${N}`\n> = S;\n\nexport interface LikeMkMpSDKVersionSupport {\n supportVersion?: MkMpSDKVersion;\n}\nexport interface MkMpSDKVersionSupport\n extends MkRequireAll<LikeMkMpSDKVersionSupport> {}\n\n// xml绑定变量语法,如:{{xx}}\nexport interface LikeMkMpXmlDataBinding {\n // 左边界字符串\n leftBoundaryChar?: string;\n // 右边界字符串\n rightBoundaryChar?: string;\n // 左边界符距离内容可被允许包含的空白字符数量,小于0|undefined=允许左边界与内容之间出现空白字符且不限数量;0=不允许;大于0代表必须有,且数量一致\n leftBoundarySpace?: number;\n // 右边界符距离内容可被允许包含的空白字符数量,小于0|undefined=允许左边界与内容之间出现空白字符且不限数量;0=不允许;大于0代表必须有,且数量一致\n rightBoundarySpace?: number;\n}\nexport interface MkMpXmlDataBinding\n extends MkRequireAll<LikeMkMpXmlDataBinding> {}\n\n// 是否支持数据绑定\nexport interface MkMpXmlSupportDataBinding {\n // 是否支持变量绑定\n dataBinding?: MkMpXmlDataBinding;\n // 支持的变量绑定数量,0代表不支持,小于0代表支持无限个,大于0代表具体数量\n dataBindingCount?: number;\n}\nexport enum MkMpXmlAstContentType {\n static = \"static\",\n dataBinding = \"dataBinding\",\n}\nexport interface MkMpXmlAstContent {\n type: MkMpXmlAstContentType;\n value: string;\n}\n// xml ast 节点\nexport interface MkMpXmlAstNode {\n name: string;\n content?: string;\n mpContents?: MkMpXmlAstContent[];\n}\n// xml ast 属性\nexport interface MkMpXmlAstAttr extends MkMpXmlAstNode {}\n// xml ast 元素\nexport interface MkMpXmlAstElement extends MkMpXmlAstNode {\n attrs?: MkMpXmlAstAttr[];\n children?: MkMpXmlAstElement[];\n // 前一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n previousSibling?: MkMpXmlAstElement;\n // 后一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n nextSibling?: MkMpXmlAstElement;\n}\n\nexport interface MkMpXmlAstPreviousSiblingFinder {\n (node: MkMpXmlAstElement, siblings: MkMpXmlAstElement[]): MkMpXmlAstElement;\n}\n\n// xml 属性验证器\nexport interface MkMpXmlNodeValidater {\n (\n attr: MkMpXmlAstAttr, // 属性ast对象\n parent: MkMpXmlAstElement, // 属性的父节点ast对象\n grandpa?: MkMpXmlAstElement, // 属性的爷爷节点ast对象\n previousSiblingFinder?: MkMpXmlAstPreviousSiblingFinder // 查找前一个节点的函数\n ): boolean | MkMpXmlNodeValidateResult;\n}\nexport enum MkMpXmlNodeValidateResultLevel {\n success = \"success\",\n fail = \"fail\",\n warn = \"warn\",\n ignore = \"ignore\",\n}\nexport interface MkMpXmlNodeValidateResult {\n pass: boolean;\n level: MkMpXmlNodeValidateResultLevel;\n code: string;\n message: string;\n}\nexport enum MkMpXmlAttrContentType {\n string = \"string\",\n boolean = \"boolean\",\n number = \"number\",\n}\n// xml 属性 技术特性\nexport interface LikeMkMpXmlAttrSpec\n extends MkMpXmlSupportDataBinding,\n LikeMkMpSDKVersionSupport {\n // 内容必选?0|undefined=可有可没有,小于0=必须没有,1=必须有,但是可为空,大于1=必须有,且不为空(含任意字符串)\n requireContent?: number;\n // 是否必选?0|undefined=可有可没有,小于0=必须没有,大于0=必须有\n require?: number;\n // 该属性是否是事件绑定\n isEvent?: boolean;\n // 内容类型\n contentType?: MkMpXmlAttrContentType | MkMpXmlAttrContentType[];\n // 默认内容\n defaultContent?: any;\n validater?: MkMpXmlNodeValidater;\n}\n\nexport interface MkMpXmlAttrSpec\n extends MkOmit<\n MkRequireAll<LikeMkMpXmlAttrSpec>,\n \"defaultContent\" | \"validater\"\n > {\n defaultContent?: any;\n validater?: MkMpXmlNodeValidater;\n}\n\nexport interface MkMpXmlNodeSpecMap<T> {\n // 匹配所有目标节点\n _common?: T;\n // 指定的名称均匹配不上时,采用此特性,最后采用的特性将是_common&&_unclaimed\n _unclaimed?: T;\n // 按照名称匹配,最后的该名称对应的节点特定将是此属性与_common的合并体\n [p: string]: T;\n}\n\nexport interface LikeMkMpXmlElementSpec\n extends MkMpXmlSupportDataBinding,\n LikeMkMpSDKVersionSupport {\n // 节点关闭类型,0|undefined=自关闭或结束标签关闭均可以;小于0=只可以自关闭方式关闭;大于0=必须通过结束标签关闭\n closeType?: number;\n // 属性特性\n attrsSpec?: MkMpXmlNodeSpecMap<LikeMkMpXmlAttrSpec>;\n}\n// xml 节点 技术特性\nexport interface MkMpXmlElementSpec\n extends MkOmit<MkRequireAll<LikeMkMpXmlElementSpec>, \"attrsSpec\">,\n MkMpSDKVersionSupport {\n attrsSpec: MkMpXmlNodeSpecMap<MkMpXmlAttrSpec>;\n}\n// xml 节点对象\nexport interface MkMpXmlElement {\n id?: string;\n dataset?: {\n [p: string]: any;\n };\n}\n// xml 事件对象\nexport interface MkMpXmlBaseEvent<T = undefined> {\n type: string;\n timeStamp: number;\n target: MkMpXmlElement;\n currentTarget: MkMpXmlElement;\n detail?: T;\n}\n\n// xml 事件处理程序\nexport interface MkMpXmlEventHandler<D = undefined, T = MkMpXmlBaseEvent<D>> {\n (event: T);\n}\n\n// xml 技术特性\nexport interface LikeMkMpXmlSpec\n extends MkMpXmlNodeSpecMap<LikeMkMpXmlElementSpec> {}\nexport interface MkMpXmlSpec extends MkMpXmlNodeSpecMap<MkMpXmlElementSpec> {}\n\nexport interface MkMpPlatformSpec<T> {\n [MpPlatform.wechat]: T;\n [MpPlatform.alipay]: T;\n [MpPlatform.smart]: T;\n [MpPlatform.tiktok]: T;\n}\n"],"names":["MpRequestOptionsMethod","MpPlatform","MpViewType","MpXmlContentType","MkXmlParseMessagePosition","MkMpXmlAstContentType","MkMpXmlNodeValidateResultLevel","MkMpXmlAttrContentType"],"mappings":";;;;;;;;IAgBYA;;AAAZ,WAAYA;AACRA,EAAAA,iCAAA,YAAA;AACAA,EAAAA,6BAAA,QAAA;AACAA,EAAAA,8BAAA,SAAA;AACAA,EAAAA,8BAAA,SAAA;AACAA,EAAAA,6BAAA,QAAA;AACAA,EAAAA,gCAAA,WAAA;AACAA,EAAAA,+BAAA,UAAA;AACAA,EAAAA,iCAAA,YAAA;AACH,CATD,EAAYA,sBAAsB,KAAtBA,sBAAsB,KAAA,CAAlC;;IChBYC;;AAAZ,WAAYA;AACRA,EAAAA,oBAAA,WAAA;AACAA,EAAAA,oBAAA,WAAA;AACAA,EAAAA,mBAAA,UAAA;AACAA,EAAAA,oBAAA,WAAA;AACAA,EAAAA,qBAAA,YAAA;AACH,CAND,EAAYA,UAAU,KAAVA,UAAU,KAAA,CAAtB;;IC6BYC;;AAAZ,WAAYA;AACRA,EAAAA,iBAAA,QAAA;AACAA,EAAAA,kBAAA,SAAA;AACAA,EAAAA,uBAAA,cAAA;AACH,CAJD,EAAYA,UAAU,KAAVA,UAAU,KAAA,CAAtB;;ICgEYC;;AAAZ,WAAYA;AACRA,EAAAA,0BAAA,WAAA;AACAA,EAAAA,2BAAA,YAAA;AACH,CAHD,EAAYA,gBAAgB,KAAhBA,gBAAgB,KAAA,CAA5B;;IAyBYC;;AAAZ,WAAYA;AACRA,EAAAA,iCAAA,SAAA;AACAA,EAAAA,iCAAA,SAAA;AACH,CAHD,EAAYA,yBAAyB,KAAzBA,yBAAyB,KAAA,CAArC;;ICnFYC;;AAAZ,WAAYA;AACRA,EAAAA,+BAAA,WAAA;AACAA,EAAAA,oCAAA,gBAAA;AACH,CAHD,EAAYA,qBAAqB,KAArBA,qBAAqB,KAAA,CAAjC;;IAuCYC;;AAAZ,WAAYA;AACRA,EAAAA,yCAAA,YAAA;AACAA,EAAAA,sCAAA,SAAA;AACAA,EAAAA,sCAAA,SAAA;AACAA,EAAAA,wCAAA,WAAA;AACH,CALD,EAAYA,8BAA8B,KAA9BA,8BAA8B,KAAA,CAA1C;;IAYYC;;AAAZ,WAAYA;AACRA,EAAAA,gCAAA,WAAA;AACAA,EAAAA,iCAAA,YAAA;AACAA,EAAAA,gCAAA,WAAA;AACH,CAJD,EAAYA,sBAAsB,KAAtBA,sBAAsB,KAAA,CAAlC;;;;"} |
| /*! | ||
| * MpKit v1.0.16 | ||
| * MpKit v1.0.17 | ||
| * (c) 2020-2021 imingyu<mingyuhisoft@163.com> | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.umd.js","sources":["../api.ts","../platform.ts","../view.ts","../mpxml-parser.ts","../mpspec.ts"],"sourcesContent":["export interface MpApiCallback {\n (res?: any);\n}\nexport interface MpApiMethodArg {\n success: MpApiCallback;\n fail: MpApiCallback;\n complete: MpApiCallback;\n [prop: string]: any;\n}\nexport interface MpApiMethod {\n (options?: MpApiMethodArg | any): any;\n}\n\nexport interface MpApiVar {\n [prop: string]: MpApiMethod;\n}\nexport enum MpRequestOptionsMethod {\n OPTIONS = \"OPTIONS\",\n GET = \"GET\",\n POST = \"POST\",\n HEAD = \"HEAD\",\n PUT = \"PUT\",\n DELETE = \"DELETE\",\n TRACE = \"TRACE\",\n CONNECT = \"CONNECT\",\n}\nexport interface MpRequestOptions extends MpApiMethodArg {\n url: string;\n method: MpRequestOptionsMethod;\n headers?: {\n [prop: string]: string | number;\n };\n}\nexport interface MpRequestTask {\n abort: Function;\n}\nexport interface MpApiRequestMethod {\n (options: MpRequestOptions): MpRequestTask;\n}\n","export enum MpPlatform {\n wechat = \"wechat\",\n alipay = \"alipay\",\n smart = \"smart\",\n tiktok = \"tiktok\",\n unknown = \"unknown\",\n}\n","import { MkEnumMap } from \"./util\";\nimport { MkSetData } from \"./set-data\";\nexport interface MpAppLaunchOptions {}\nexport interface MpViewInitLife<V, T> {\n (this: V, options: T): void;\n}\nexport interface MpViewLife<V> {\n (this: V): void;\n}\nexport type MpViewInitLifes = \"onLaunch\" | \"onLoad\" | \"created\" | \"onInit\";\nexport type MpViewMountLifes = \"onShow\" | \"attached\" | \"didMount\";\n// 小程序App实例\nexport interface MpViewApp extends MpViewAppSpec, MpView {}\n// 小程序App函数接收的配置对象\nexport interface MpViewAppSpec {\n onLaunch: MpViewInitLife<MpViewApp, MpAppLaunchOptions>;\n onShow: MpViewInitLife<MpViewApp, MpAppLaunchOptions>;\n onHide: MpViewLife<MpViewApp>;\n onError: MpViewLife<MpViewApp>;\n [prop: string]: any;\n}\nexport interface MpAlipayViewApp extends MpViewApp, MpAlipayViewAppSpec {}\nexport interface MpAlipayViewAppSpec extends MpViewAppSpec {\n onShareAppMessage: MpViewLife<MpAlipayViewApp>;\n}\n\nexport interface MpViewFactory {\n (spec: MpViewAppSpec | MpViewPageSpec | MpViewComponentSpec | any): void;\n}\nexport enum MpViewType {\n App = \"App\",\n Page = \"Page\",\n Component = \"Component\",\n}\nexport interface MpViewSpec {\n data: any;\n}\nexport interface MpViewComponetPropSpec {\n type: Function;\n default?: any;\n observer?: Function;\n}\nexport interface MpViewPageSpec extends MpViewSpec {\n [prop: string]: any;\n}\nexport type MpViewComponentLifes =\n | \"created\"\n | \"attached\"\n | \"ready\"\n | \"moved\"\n | \"detached\"\n | \"error\";\nexport type MpViewComponentPageLifes = \"show\" | \"hide\" | \"resize\";\nexport interface MpViewComponentSpec extends MpViewSpec {\n properties?: {\n [prop: string]: Function | MpViewComponetPropSpec;\n };\n lifetimes?: MkEnumMap<MpViewComponentLifes, Function | string>;\n pageLifetimes?: MkEnumMap<MpViewComponentPageLifes, Function | string>;\n methods: {\n [prop: string]: Function;\n };\n [prop: string]: any;\n}\nexport interface MpView {\n $mkSpec: MpViewSpec;\n $mkType: MpViewType;\n $mkKey: string;\n $mkKeyIsDefine?: string;\n $mkNativeSetData: MpSetDataHandler;\n $mkSetData: MkSetData;\n $mkSetDataIsBind?: boolean;\n $mkReadyData: any;\n data: any;\n setData: MpSetDataHandler;\n}\nexport interface MpWechatSelectOwnerComponent {\n (): void | MpView;\n}\nexport interface MpWechatView extends MpView {\n __wxExparserNodeId__: string;\n __wxWebviewId__: number;\n is: string;\n selectOwnerComponent: MpWechatSelectOwnerComponent;\n}\nexport interface MpWechatPageView extends MpWechatView {\n route: string;\n}\nexport interface MpTiktokView extends MpView {\n __webviewId__: number;\n __nodeId__: number;\n is: string;\n}\nexport interface MpComponentPropObserver {\n (this: MpView, oldValue: any, newVal: any): void;\n}\n\nexport interface MpComponentPropSpec {\n type: Function;\n default: any;\n observer: MpComponentPropObserver;\n}\n\nexport interface MpAlipayView extends MpView {\n $id: number;\n}\n\nexport interface MpAlipayViewPage extends MpAlipayView {\n $viewId: string;\n route: string;\n}\nexport interface MpAlipayViewComponent extends MpAlipayView {\n $page: MpAlipayViewPage;\n is: string;\n props: {\n [prop: string]: any;\n __tag: string;\n };\n}\nexport interface MpSmartViewPage extends MpView {\n route: string;\n}\nexport interface MpSmartViewComponent extends MpView {\n componentName: string;\n nodeId: string;\n pageinstance: MpSmartViewPage;\n is: string;\n}\nexport interface MpSetDataHandler {\n (data: any, callback?: Function): void;\n}\n","import { MkOmit, MkMap } from \"./util\";\nimport {\n FxNode,\n FxParseResult,\n FxWrong,\n FxLocation,\n FxNodeJSON,\n FxEventHandler,\n FxNodeAdapter,\n FxSerializeOptions,\n FxEventType,\n FxNodeType,\n} from \"forgiving-xml-parser\";\nimport { MpPlatform } from \"./platform\";\nexport interface MpViewSyntaxSpec {\n namespace: string;\n for: string;\n forItem: string;\n forIndex: string;\n key: string;\n if: string;\n elseIf: string;\n else: string;\n xmlFileSuffix?: string;\n xjsNodeName?: string;\n xjsFileSuffix?: string;\n xjsModuleAttrName?: string;\n xjsSrcAttrName?: string;\n forAndWhereAttrNeedBracket: boolean;\n importNodeName?: string;\n importSrcAttrName?: string;\n includeNodeName?: string;\n includeSrcAttrName?: string;\n}\n\n// export interface MkMpXmlParseRuleMatcher extends FxEventHandler {}\n// export interface MkMpXmlParseRuleHnalder extends FxEventHandler {}\n// export interface MkMpXmlParseRule {\n// target: FxEventType | FxNodeType | MkMpXmlParseRuleMatcher;\n// handler: MkMpXmlParseRuleHnalder;\n// }\nexport type MkPlatformNodeAdapterMap = {\n [prop in MpPlatform]?: FxNodeAdapter[];\n};\nexport interface MkMpXmlParseOptions {\n onEvent?: FxEventHandler;\n // rules?: MkMpXmlParseRule[];\n}\nexport interface MkMpXmlSerializeOptions extends FxSerializeOptions {}\nexport interface MkXmlContent {\n type: MpXmlContentType;\n value: string;\n locationInfo?: FxLocation;\n}\nexport interface MkXmlContentParseResult {\n contents: MkXmlContent[];\n leftStaticContents: MkXmlContent[];\n leftStaticContentsIsEmpty: boolean;\n rightStaticContents: MkXmlContent[];\n rightStaticContentsIsEmpty: boolean;\n betweenStaticContents: MkXmlContent[];\n dynamicContents: MkXmlContent[];\n}\nexport interface MpForAttrContent extends MkXmlContent {\n type: MpXmlContentType;\n value: string;\n featureList?: string;\n featureItem?: string;\n featureIndex?: string;\n featureKey?: string;\n}\nexport interface MkMpXmlParseContext {\n xjsModuleNames?: []; // 该页面引入的wxs/sjs...之类的模块名称\n}\nexport interface IMkMpXmlAttrParseAdapter {\n parse(\n attr: FxNodeJSON,\n parent?: FxNodeJSON | LikeFxParseContext,\n grandpa?: FxNodeJSON | LikeFxParseContext\n ): MkXmlNode;\n}\nexport interface IMkMpXmlContentParseAdapter {\n parse(\n content: string,\n node?: FxNodeJSON,\n parent?: FxNodeJSON | LikeFxParseContext,\n grandpa?: FxNodeJSON | LikeFxParseContext\n ): MkXmlContent[];\n}\nexport interface IMkMpXmlParseAdapter {\n attrAdapters: MkMap<IMkMpXmlAttrParseAdapter>;\n contentAdapter: IMkMpXmlContentParseAdapter;\n}\nexport enum MpXmlContentType {\n static = \"static\",\n dynamic = \"dynamic\",\n}\nexport interface MkXmlNodeJSON\n extends MkOmit<FxNodeJSON, \"attrs\" | \"children\"> {\n attrs?: MkXmlNodeJSON[];\n children?: MkXmlNodeJSON[];\n mpContents?: MpForAttrContent[] | MkXmlContent[];\n}\nexport interface LikeFxParseContext {\n nodes?: FxNode[] | FxNodeJSON[] | MkXmlNodeJSON[] | MkXmlNode[];\n}\nexport interface MkXmlNode\n extends MkOmit<MkXmlNodeJSON, \"attrs\" | \"children\" | \"parent\"> {\n attrs?: MkXmlNode[];\n children?: MkXmlNode[];\n mpContents?: MpForAttrContent[] | MkXmlContent[];\n parent?: MkXmlNode;\n // 前一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n previousSibling?: MkXmlNode;\n // 后一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n nextSibling?: MkXmlNode;\n}\n\nexport enum MkXmlParseMessagePosition {\n text = \"text\",\n attr = \"attr\",\n}\nexport interface MkXmlParseMessage extends FxWrong {\n // position: MkXmlParseMessagePosition;\n target?: FxNode | FxNodeJSON;\n}\n\nexport interface MkXmlParseResult extends MkOmit<FxParseResult, \"nodes\"> {\n nodes?: MkXmlNode[];\n}\n\nexport interface MkXmlParseResultBase {\n error?: FxWrong;\n nodes?: MkXmlNode[];\n}\n\nexport interface MkMpXmlParseAdapterFormater {\n parseAdapter?: IMkMpXmlParseAdapter;\n hasAttrAdapter: boolean;\n hasContentAdapter: boolean;\n}\nexport interface MkNodeSerializer {\n (\n nodes: FxNodeJSON[],\n handler: MkNodeSerializeHandler,\n parentNode?: FxNodeJSON\n ): string;\n}\nexport interface MkNodeSerializeHandler {\n (\n currentNode: MkXmlNodeJSON,\n brotherNodes: MkXmlNodeJSON[],\n rootNodes: MkXmlNodeJSON[],\n rootSerializer: MkNodeSerializer,\n parentNode: FxNodeJSON,\n adapter: FxNodeAdapter,\n serializeResult: string\n ): string;\n}\n","import { MpPlatform } from \"./platform\";\nimport { MkOmit, MkRequireAll } from \"./util\";\n\nexport type MkMpSDKVersion<\n N extends number = number,\n S extends string = `${N}.${N}.${N}`\n> = S;\n\nexport interface LikeMkMpSDKVersionSupport {\n supportVersion?: MkMpSDKVersion;\n}\nexport interface MkMpSDKVersionSupport\n extends MkRequireAll<LikeMkMpSDKVersionSupport> {}\n\n// xml绑定变量语法,如:{{xx}}\nexport interface LikeMkMpXmlDataBinding {\n // 左边界字符串\n leftBoundaryChar?: string;\n // 右边界字符串\n rightBoundaryChar?: string;\n // 左边界符距离内容可被允许包含的空白字符数量,小于0|undefined=允许左边界与内容之间出现空白字符且不限数量;0=不允许;大于0代表必须有,且数量一致\n leftBoundarySpace?: number;\n // 右边界符距离内容可被允许包含的空白字符数量,小于0|undefined=允许左边界与内容之间出现空白字符且不限数量;0=不允许;大于0代表必须有,且数量一致\n rightBoundarySpace?: number;\n}\nexport interface MkMpXmlDataBinding\n extends MkRequireAll<LikeMkMpXmlDataBinding> {}\n\n// 是否支持数据绑定\nexport interface MkMpXmlSupportDataBinding {\n // 是否支持变量绑定\n dataBinding?: MkMpXmlDataBinding;\n // 支持的变量绑定数量,0代表不支持,小于0代表支持无限个,大于0代表具体数量\n dataBindingCount?: number;\n}\nexport enum MkMpXmlAstContentType {\n static = \"static\",\n dataBinding = \"dataBinding\",\n}\nexport interface MkMpXmlAstContent {\n type: MkMpXmlAstContentType;\n value: string;\n}\n// xml ast 节点\nexport interface MkMpXmlAstNode {\n name: string;\n content?: string;\n mpContents?: MkMpXmlAstContent[];\n}\n// xml ast 属性\nexport interface MkMpXmlAstAttr extends MkMpXmlAstNode {}\n// xml ast 元素\nexport interface MkMpXmlAstElement extends MkMpXmlAstNode {\n attrs?: MkMpXmlAstAttr[];\n children?: MkMpXmlAstElement[];\n // 前一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n previousSibling?: MkMpXmlAstElement;\n // 后一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n nextSibling?: MkMpXmlAstElement;\n}\n\nexport interface MkMpXmlAstPreviousSiblingFinder {\n (node: MkMpXmlAstElement, siblings: MkMpXmlAstElement[]): MkMpXmlAstElement;\n}\n\n// xml 属性验证器\nexport interface MkMpXmlNodeValidater {\n (\n attr: MkMpXmlAstAttr, // 属性ast对象\n parent: MkMpXmlAstElement, // 属性的父节点ast对象\n grandpa?: MkMpXmlAstElement, // 属性的爷爷节点ast对象\n previousSiblingFinder?: MkMpXmlAstPreviousSiblingFinder // 查找前一个节点的函数\n ): boolean | MkMpXmlNodeValidateResult;\n}\nexport enum MkMpXmlNodeValidateResultLevel {\n success = \"success\",\n fail = \"fail\",\n warn = \"warn\",\n ignore = \"ignore\",\n}\nexport interface MkMpXmlNodeValidateResult {\n pass: boolean;\n level: MkMpXmlNodeValidateResultLevel;\n code: string;\n message: string;\n}\nexport enum MkMpXmlAttrContentType {\n string = \"string\",\n boolean = \"boolean\",\n number = \"number\",\n}\n// xml 属性 技术特性\nexport interface LikeMkMpXmlAttrSpec\n extends MkMpXmlSupportDataBinding,\n LikeMkMpSDKVersionSupport {\n // 内容必选?0|undefined=可有可没有,小于0=必须没有,1=必须有,但是可为空,大于1=必须有,且不为空(含任意字符串)\n requireContent?: number;\n // 是否必选?0|undefined=可有可没有,小于0=必须没有,大于0=必须有\n require?: number;\n // 该属性是否是事件绑定\n isEvent?: boolean;\n // 内容类型\n contentType?: MkMpXmlAttrContentType | MkMpXmlAttrContentType[];\n // 默认内容\n defaultContent?: any;\n validater?: MkMpXmlNodeValidater;\n}\n\nexport interface MkMpXmlAttrSpec\n extends MkOmit<\n MkRequireAll<LikeMkMpXmlAttrSpec>,\n \"defaultContent\" | \"validater\"\n > {\n defaultContent?: any;\n validater?: MkMpXmlNodeValidater;\n}\n\nexport interface MkMpXmlNodeSpecMap<T> {\n // 匹配所有目标节点\n _common?: T;\n // 指定的名称均匹配不上时,采用此特性,最后采用的特性将是_common&&_unclaimed\n _unclaimed?: T;\n // 按照名称匹配,最后的该名称对应的节点特定将是此属性与_common的合并体\n [p: string]: T;\n}\n\nexport interface LikeMkMpXmlElementSpec\n extends MkMpXmlSupportDataBinding,\n LikeMkMpSDKVersionSupport {\n // 节点关闭类型,0|undefined=自关闭或结束标签关闭均可以;小于0=只可以自关闭方式关闭;大于0=必须通过结束标签关闭\n closeType?: number;\n // 属性特性\n attrsSpec?: MkMpXmlNodeSpecMap<LikeMkMpXmlAttrSpec>;\n}\n// xml 节点 技术特性\nexport interface MkMpXmlElementSpec\n extends MkOmit<MkRequireAll<LikeMkMpXmlElementSpec>, \"attrsSpec\">,\n MkMpSDKVersionSupport {\n attrsSpec: MkMpXmlNodeSpecMap<MkMpXmlAttrSpec>;\n}\n// xml 节点对象\nexport interface MkMpXmlElement {\n id?: string;\n dataset?: {\n [p: string]: any;\n };\n}\n// xml 事件对象\nexport interface MkMpXmlBaseEvent<T = undefined> {\n type: string;\n timeStamp: number;\n target: MkMpXmlElement;\n currentTarget: MkMpXmlElement;\n detail?: T;\n}\n\n// xml 事件处理程序\nexport interface MkMpXmlEventHandler<D = undefined, T = MkMpXmlBaseEvent<D>> {\n (event: T);\n}\n\n// xml 技术特性\nexport interface LikeMkMpXmlSpec\n extends MkMpXmlNodeSpecMap<LikeMkMpXmlElementSpec> {}\nexport interface MkMpXmlSpec extends MkMpXmlNodeSpecMap<MkMpXmlElementSpec> {}\n\nexport interface MkMpPlatformSpec<T> {\n [MpPlatform.wechat]: T;\n [MpPlatform.alipay]: T;\n [MpPlatform.smart]: T;\n [MpPlatform.tiktok]: T;\n}\n"],"names":["MpRequestOptionsMethod","MpPlatform","MpViewType","MpXmlContentType","MkXmlParseMessagePosition","MkMpXmlAstContentType","MkMpXmlNodeValidateResultLevel","MkMpXmlAttrContentType"],"mappings":";;;;;;;;;;;;IAgBA,WAAYA;IACRA,EAAAA,iCAAA,YAAA;IACAA,EAAAA,6BAAA,QAAA;IACAA,EAAAA,8BAAA,SAAA;IACAA,EAAAA,8BAAA,SAAA;IACAA,EAAAA,6BAAA,QAAA;IACAA,EAAAA,gCAAA,WAAA;IACAA,EAAAA,+BAAA,UAAA;IACAA,EAAAA,iCAAA,YAAA;IACH,CATD,EAAYA,8BAAsB,KAAtBA,8BAAsB,KAAA,CAAlC;;IChBA,WAAYC;IACRA,EAAAA,oBAAA,WAAA;IACAA,EAAAA,oBAAA,WAAA;IACAA,EAAAA,mBAAA,UAAA;IACAA,EAAAA,oBAAA,WAAA;IACAA,EAAAA,qBAAA,YAAA;IACH,CAND,EAAYA,kBAAU,KAAVA,kBAAU,KAAA,CAAtB;;IC6BA,WAAYC;IACRA,EAAAA,iBAAA,QAAA;IACAA,EAAAA,kBAAA,SAAA;IACAA,EAAAA,uBAAA,cAAA;IACH,CAJD,EAAYA,kBAAU,KAAVA,kBAAU,KAAA,CAAtB;;ICgEA,WAAYC;IACRA,EAAAA,0BAAA,WAAA;IACAA,EAAAA,2BAAA,YAAA;IACH,CAHD,EAAYA,wBAAgB,KAAhBA,wBAAgB,KAAA,CAA5B;;IAyBA,WAAYC;IACRA,EAAAA,iCAAA,SAAA;IACAA,EAAAA,iCAAA,SAAA;IACH,CAHD,EAAYA,iCAAyB,KAAzBA,iCAAyB,KAAA,CAArC;;ICnFA,WAAYC;IACRA,EAAAA,+BAAA,WAAA;IACAA,EAAAA,oCAAA,gBAAA;IACH,CAHD,EAAYA,6BAAqB,KAArBA,6BAAqB,KAAA,CAAjC;;IAuCA,WAAYC;IACRA,EAAAA,yCAAA,YAAA;IACAA,EAAAA,sCAAA,SAAA;IACAA,EAAAA,sCAAA,SAAA;IACAA,EAAAA,wCAAA,WAAA;IACH,CALD,EAAYA,sCAA8B,KAA9BA,sCAA8B,KAAA,CAA1C;;IAYA,WAAYC;IACRA,EAAAA,gCAAA,WAAA;IACAA,EAAAA,iCAAA,YAAA;IACAA,EAAAA,gCAAA,WAAA;IACH,CAJD,EAAYA,8BAAsB,KAAtBA,8BAAsB,KAAA,CAAlC;;;;;;;;;;;;;;;;;;;;;"} | ||
| {"version":3,"file":"index.umd.js","sources":["../api.ts","../platform.ts","../view.ts","../mpxml-parser.ts","../mpspec.ts"],"sourcesContent":["export interface MpApiCallback {\n (res?: any);\n}\nexport interface MpApiMethodArg {\n success: MpApiCallback;\n fail: MpApiCallback;\n complete: MpApiCallback;\n [prop: string]: any;\n}\nexport interface MpApiMethod {\n (options?: MpApiMethodArg | any): any;\n}\n\nexport interface MpApiVar {\n [prop: string]: MpApiMethod;\n}\nexport enum MpRequestOptionsMethod {\n OPTIONS = \"OPTIONS\",\n GET = \"GET\",\n POST = \"POST\",\n HEAD = \"HEAD\",\n PUT = \"PUT\",\n DELETE = \"DELETE\",\n TRACE = \"TRACE\",\n CONNECT = \"CONNECT\",\n}\nexport interface MpRequestOptions extends MpApiMethodArg {\n url: string;\n method: MpRequestOptionsMethod;\n headers?: {\n [prop: string]: string | number;\n };\n}\nexport interface MpRequestTask {\n abort: Function;\n}\nexport interface MpApiRequestMethod {\n (options: MpRequestOptions): MpRequestTask;\n}\n","export enum MpPlatform {\n wechat = \"wechat\",\n alipay = \"alipay\",\n smart = \"smart\",\n tiktok = \"tiktok\",\n unknown = \"unknown\",\n}\n","import { MkEnumMap } from \"./util\";\nimport { MkSetData } from \"./set-data\";\nexport interface MpAppLaunchOptions {}\nexport interface MpViewInitLife<V, T> {\n (this: V, options: T): void;\n}\nexport interface MpViewLife<V> {\n (this: V): void;\n}\nexport type MpViewInitLifes = \"onLaunch\" | \"onLoad\" | \"created\" | \"onInit\";\nexport type MpViewMountLifes = \"onShow\" | \"attached\" | \"didMount\";\n// 小程序App实例\nexport interface MpViewApp extends MpViewAppSpec, MpView {}\n// 小程序App函数接收的配置对象\nexport interface MpViewAppSpec {\n onLaunch: MpViewInitLife<MpViewApp, MpAppLaunchOptions>;\n onShow: MpViewInitLife<MpViewApp, MpAppLaunchOptions>;\n onHide: MpViewLife<MpViewApp>;\n onError: MpViewLife<MpViewApp>;\n [prop: string]: any;\n}\nexport interface MpAlipayViewApp extends MpViewApp, MpAlipayViewAppSpec {}\nexport interface MpAlipayViewAppSpec extends MpViewAppSpec {\n onShareAppMessage: MpViewLife<MpAlipayViewApp>;\n}\n\nexport interface MpViewFactory {\n (spec: MpViewAppSpec | MpViewPageSpec | MpViewComponentSpec | any): void;\n}\nexport enum MpViewType {\n App = \"App\",\n Page = \"Page\",\n Component = \"Component\",\n}\nexport interface MpViewSpec {\n data: any;\n}\nexport interface MpViewComponetPropSpec {\n type: Function;\n default?: any;\n observer?: Function;\n}\nexport interface MpViewPageSpec extends MpViewSpec {\n [prop: string]: any;\n}\nexport type MpViewComponentLifes =\n | \"created\"\n | \"attached\"\n | \"ready\"\n | \"moved\"\n | \"detached\"\n | \"error\";\nexport type MpViewComponentPageLifes = \"show\" | \"hide\" | \"resize\";\nexport interface MpViewComponentSpec extends MpViewSpec {\n properties?: {\n [prop: string]: Function | MpViewComponetPropSpec;\n };\n lifetimes?: MkEnumMap<MpViewComponentLifes, Function | string>;\n pageLifetimes?: MkEnumMap<MpViewComponentPageLifes, Function | string>;\n methods: {\n [prop: string]: Function;\n };\n [prop: string]: any;\n}\nexport interface MpView {\n $mkSpec: MpViewSpec;\n $mkType: MpViewType;\n $mkKey: string;\n $mkKeyIsDefine?: string;\n $mkNativeSetData: MpSetDataHandler;\n $mkDiffSetDataBeforeValue: MpSetDataHandler;\n $mkSetData: MkSetData;\n $mkSetDataIsBind?: boolean;\n $mkReadyData: any;\n data: any;\n setData: MpSetDataHandler;\n}\nexport interface MpWechatSelectOwnerComponent {\n (): void | MpView;\n}\nexport interface MpWechatView extends MpView {\n __wxExparserNodeId__: string;\n __wxWebviewId__: number;\n is: string;\n selectOwnerComponent: MpWechatSelectOwnerComponent;\n}\nexport interface MpWechatPageView extends MpWechatView {\n route: string;\n}\nexport interface MpTiktokView extends MpView {\n __webviewId__: number;\n __nodeId__: number;\n is: string;\n}\nexport interface MpComponentPropObserver {\n (this: MpView, oldValue: any, newVal: any): void;\n}\n\nexport interface MpComponentPropSpec {\n type: Function;\n default: any;\n observer: MpComponentPropObserver;\n}\n\nexport interface MpAlipayView extends MpView {\n $id: number;\n}\n\nexport interface MpAlipayViewPage extends MpAlipayView {\n $viewId: string;\n route: string;\n}\nexport interface MpAlipayViewComponent extends MpAlipayView {\n $page: MpAlipayViewPage;\n is: string;\n props: {\n [prop: string]: any;\n __tag: string;\n };\n}\nexport interface MpSmartViewPage extends MpView {\n route: string;\n}\nexport interface MpSmartViewComponent extends MpView {\n componentName: string;\n nodeId: string;\n pageinstance: MpSmartViewPage;\n is: string;\n}\nexport interface MpSetDataHandler {\n (data: any, callback?: Function): void;\n}\n","import { MkOmit, MkMap } from \"./util\";\nimport {\n FxNode,\n FxParseResult,\n FxWrong,\n FxLocation,\n FxNodeJSON,\n FxEventHandler,\n FxNodeAdapter,\n FxSerializeOptions,\n FxEventType,\n FxNodeType,\n} from \"forgiving-xml-parser\";\nimport { MpPlatform } from \"./platform\";\nexport interface MpViewSyntaxSpec {\n namespace: string;\n for: string;\n forItem: string;\n forIndex: string;\n key: string;\n if: string;\n elseIf: string;\n else: string;\n xmlFileSuffix?: string;\n xjsNodeName?: string;\n xjsFileSuffix?: string;\n xjsModuleAttrName?: string;\n xjsSrcAttrName?: string;\n forAndWhereAttrNeedBracket: boolean;\n importNodeName?: string;\n importSrcAttrName?: string;\n includeNodeName?: string;\n includeSrcAttrName?: string;\n}\n\n// export interface MkMpXmlParseRuleMatcher extends FxEventHandler {}\n// export interface MkMpXmlParseRuleHnalder extends FxEventHandler {}\n// export interface MkMpXmlParseRule {\n// target: FxEventType | FxNodeType | MkMpXmlParseRuleMatcher;\n// handler: MkMpXmlParseRuleHnalder;\n// }\nexport type MkPlatformNodeAdapterMap = {\n [prop in MpPlatform]?: FxNodeAdapter[];\n};\nexport interface MkMpXmlParseOptions {\n onEvent?: FxEventHandler;\n // rules?: MkMpXmlParseRule[];\n}\nexport interface MkMpXmlSerializeOptions extends FxSerializeOptions {}\nexport interface MkXmlContent {\n type: MpXmlContentType;\n value: string;\n locationInfo?: FxLocation;\n}\nexport interface MkXmlContentParseResult {\n contents: MkXmlContent[];\n leftStaticContents: MkXmlContent[];\n leftStaticContentsIsEmpty: boolean;\n rightStaticContents: MkXmlContent[];\n rightStaticContentsIsEmpty: boolean;\n betweenStaticContents: MkXmlContent[];\n dynamicContents: MkXmlContent[];\n}\nexport interface MpForAttrContent extends MkXmlContent {\n type: MpXmlContentType;\n value: string;\n featureList?: string;\n featureItem?: string;\n featureIndex?: string;\n featureKey?: string;\n}\nexport interface MkMpXmlParseContext {\n xjsModuleNames?: []; // 该页面引入的wxs/sjs...之类的模块名称\n}\nexport interface IMkMpXmlAttrParseAdapter {\n parse(\n attr: FxNodeJSON,\n parent?: FxNodeJSON | LikeFxParseContext,\n grandpa?: FxNodeJSON | LikeFxParseContext\n ): MkXmlNode;\n}\nexport interface IMkMpXmlContentParseAdapter {\n parse(\n content: string,\n node?: FxNodeJSON,\n parent?: FxNodeJSON | LikeFxParseContext,\n grandpa?: FxNodeJSON | LikeFxParseContext\n ): MkXmlContent[];\n}\nexport interface IMkMpXmlParseAdapter {\n attrAdapters: MkMap<IMkMpXmlAttrParseAdapter>;\n contentAdapter: IMkMpXmlContentParseAdapter;\n}\nexport enum MpXmlContentType {\n static = \"static\",\n dynamic = \"dynamic\",\n}\nexport interface MkXmlNodeJSON\n extends MkOmit<FxNodeJSON, \"attrs\" | \"children\"> {\n attrs?: MkXmlNodeJSON[];\n children?: MkXmlNodeJSON[];\n mpContents?: MpForAttrContent[] | MkXmlContent[];\n}\nexport interface LikeFxParseContext {\n nodes?: FxNode[] | FxNodeJSON[] | MkXmlNodeJSON[] | MkXmlNode[];\n}\nexport interface MkXmlNode\n extends MkOmit<MkXmlNodeJSON, \"attrs\" | \"children\" | \"parent\"> {\n attrs?: MkXmlNode[];\n children?: MkXmlNode[];\n mpContents?: MpForAttrContent[] | MkXmlContent[];\n parent?: MkXmlNode;\n // 前一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n previousSibling?: MkXmlNode;\n // 后一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n nextSibling?: MkXmlNode;\n}\n\nexport enum MkXmlParseMessagePosition {\n text = \"text\",\n attr = \"attr\",\n}\nexport interface MkXmlParseMessage extends FxWrong {\n // position: MkXmlParseMessagePosition;\n target?: FxNode | FxNodeJSON;\n}\n\nexport interface MkXmlParseResult extends MkOmit<FxParseResult, \"nodes\"> {\n nodes?: MkXmlNode[];\n}\n\nexport interface MkXmlParseResultBase {\n error?: FxWrong;\n nodes?: MkXmlNode[];\n}\n\nexport interface MkMpXmlParseAdapterFormater {\n parseAdapter?: IMkMpXmlParseAdapter;\n hasAttrAdapter: boolean;\n hasContentAdapter: boolean;\n}\nexport interface MkNodeSerializer {\n (\n nodes: FxNodeJSON[],\n handler: MkNodeSerializeHandler,\n parentNode?: FxNodeJSON\n ): string;\n}\nexport interface MkNodeSerializeHandler {\n (\n currentNode: MkXmlNodeJSON,\n brotherNodes: MkXmlNodeJSON[],\n rootNodes: MkXmlNodeJSON[],\n rootSerializer: MkNodeSerializer,\n parentNode: FxNodeJSON,\n adapter: FxNodeAdapter,\n serializeResult: string\n ): string;\n}\n","import { MpPlatform } from \"./platform\";\nimport { MkOmit, MkRequireAll } from \"./util\";\n\nexport type MkMpSDKVersion<\n N extends number = number,\n S extends string = `${N}.${N}.${N}`\n> = S;\n\nexport interface LikeMkMpSDKVersionSupport {\n supportVersion?: MkMpSDKVersion;\n}\nexport interface MkMpSDKVersionSupport\n extends MkRequireAll<LikeMkMpSDKVersionSupport> {}\n\n// xml绑定变量语法,如:{{xx}}\nexport interface LikeMkMpXmlDataBinding {\n // 左边界字符串\n leftBoundaryChar?: string;\n // 右边界字符串\n rightBoundaryChar?: string;\n // 左边界符距离内容可被允许包含的空白字符数量,小于0|undefined=允许左边界与内容之间出现空白字符且不限数量;0=不允许;大于0代表必须有,且数量一致\n leftBoundarySpace?: number;\n // 右边界符距离内容可被允许包含的空白字符数量,小于0|undefined=允许左边界与内容之间出现空白字符且不限数量;0=不允许;大于0代表必须有,且数量一致\n rightBoundarySpace?: number;\n}\nexport interface MkMpXmlDataBinding\n extends MkRequireAll<LikeMkMpXmlDataBinding> {}\n\n// 是否支持数据绑定\nexport interface MkMpXmlSupportDataBinding {\n // 是否支持变量绑定\n dataBinding?: MkMpXmlDataBinding;\n // 支持的变量绑定数量,0代表不支持,小于0代表支持无限个,大于0代表具体数量\n dataBindingCount?: number;\n}\nexport enum MkMpXmlAstContentType {\n static = \"static\",\n dataBinding = \"dataBinding\",\n}\nexport interface MkMpXmlAstContent {\n type: MkMpXmlAstContentType;\n value: string;\n}\n// xml ast 节点\nexport interface MkMpXmlAstNode {\n name: string;\n content?: string;\n mpContents?: MkMpXmlAstContent[];\n}\n// xml ast 属性\nexport interface MkMpXmlAstAttr extends MkMpXmlAstNode {}\n// xml ast 元素\nexport interface MkMpXmlAstElement extends MkMpXmlAstNode {\n attrs?: MkMpXmlAstAttr[];\n children?: MkMpXmlAstElement[];\n // 前一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n previousSibling?: MkMpXmlAstElement;\n // 后一个兄弟:只在非text和comment的node上存在,且Sibling本身也非text和comment\n nextSibling?: MkMpXmlAstElement;\n}\n\nexport interface MkMpXmlAstPreviousSiblingFinder {\n (node: MkMpXmlAstElement, siblings: MkMpXmlAstElement[]): MkMpXmlAstElement;\n}\n\n// xml 属性验证器\nexport interface MkMpXmlNodeValidater {\n (\n attr: MkMpXmlAstAttr, // 属性ast对象\n parent: MkMpXmlAstElement, // 属性的父节点ast对象\n grandpa?: MkMpXmlAstElement, // 属性的爷爷节点ast对象\n previousSiblingFinder?: MkMpXmlAstPreviousSiblingFinder // 查找前一个节点的函数\n ): boolean | MkMpXmlNodeValidateResult;\n}\nexport enum MkMpXmlNodeValidateResultLevel {\n success = \"success\",\n fail = \"fail\",\n warn = \"warn\",\n ignore = \"ignore\",\n}\nexport interface MkMpXmlNodeValidateResult {\n pass: boolean;\n level: MkMpXmlNodeValidateResultLevel;\n code: string;\n message: string;\n}\nexport enum MkMpXmlAttrContentType {\n string = \"string\",\n boolean = \"boolean\",\n number = \"number\",\n}\n// xml 属性 技术特性\nexport interface LikeMkMpXmlAttrSpec\n extends MkMpXmlSupportDataBinding,\n LikeMkMpSDKVersionSupport {\n // 内容必选?0|undefined=可有可没有,小于0=必须没有,1=必须有,但是可为空,大于1=必须有,且不为空(含任意字符串)\n requireContent?: number;\n // 是否必选?0|undefined=可有可没有,小于0=必须没有,大于0=必须有\n require?: number;\n // 该属性是否是事件绑定\n isEvent?: boolean;\n // 内容类型\n contentType?: MkMpXmlAttrContentType | MkMpXmlAttrContentType[];\n // 默认内容\n defaultContent?: any;\n validater?: MkMpXmlNodeValidater;\n}\n\nexport interface MkMpXmlAttrSpec\n extends MkOmit<\n MkRequireAll<LikeMkMpXmlAttrSpec>,\n \"defaultContent\" | \"validater\"\n > {\n defaultContent?: any;\n validater?: MkMpXmlNodeValidater;\n}\n\nexport interface MkMpXmlNodeSpecMap<T> {\n // 匹配所有目标节点\n _common?: T;\n // 指定的名称均匹配不上时,采用此特性,最后采用的特性将是_common&&_unclaimed\n _unclaimed?: T;\n // 按照名称匹配,最后的该名称对应的节点特定将是此属性与_common的合并体\n [p: string]: T;\n}\n\nexport interface LikeMkMpXmlElementSpec\n extends MkMpXmlSupportDataBinding,\n LikeMkMpSDKVersionSupport {\n // 节点关闭类型,0|undefined=自关闭或结束标签关闭均可以;小于0=只可以自关闭方式关闭;大于0=必须通过结束标签关闭\n closeType?: number;\n // 属性特性\n attrsSpec?: MkMpXmlNodeSpecMap<LikeMkMpXmlAttrSpec>;\n}\n// xml 节点 技术特性\nexport interface MkMpXmlElementSpec\n extends MkOmit<MkRequireAll<LikeMkMpXmlElementSpec>, \"attrsSpec\">,\n MkMpSDKVersionSupport {\n attrsSpec: MkMpXmlNodeSpecMap<MkMpXmlAttrSpec>;\n}\n// xml 节点对象\nexport interface MkMpXmlElement {\n id?: string;\n dataset?: {\n [p: string]: any;\n };\n}\n// xml 事件对象\nexport interface MkMpXmlBaseEvent<T = undefined> {\n type: string;\n timeStamp: number;\n target: MkMpXmlElement;\n currentTarget: MkMpXmlElement;\n detail?: T;\n}\n\n// xml 事件处理程序\nexport interface MkMpXmlEventHandler<D = undefined, T = MkMpXmlBaseEvent<D>> {\n (event: T);\n}\n\n// xml 技术特性\nexport interface LikeMkMpXmlSpec\n extends MkMpXmlNodeSpecMap<LikeMkMpXmlElementSpec> {}\nexport interface MkMpXmlSpec extends MkMpXmlNodeSpecMap<MkMpXmlElementSpec> {}\n\nexport interface MkMpPlatformSpec<T> {\n [MpPlatform.wechat]: T;\n [MpPlatform.alipay]: T;\n [MpPlatform.smart]: T;\n [MpPlatform.tiktok]: T;\n}\n"],"names":["MpRequestOptionsMethod","MpPlatform","MpViewType","MpXmlContentType","MkXmlParseMessagePosition","MkMpXmlAstContentType","MkMpXmlNodeValidateResultLevel","MkMpXmlAttrContentType"],"mappings":";;;;;;;;;;;;IAgBA,WAAYA;IACRA,EAAAA,iCAAA,YAAA;IACAA,EAAAA,6BAAA,QAAA;IACAA,EAAAA,8BAAA,SAAA;IACAA,EAAAA,8BAAA,SAAA;IACAA,EAAAA,6BAAA,QAAA;IACAA,EAAAA,gCAAA,WAAA;IACAA,EAAAA,+BAAA,UAAA;IACAA,EAAAA,iCAAA,YAAA;IACH,CATD,EAAYA,8BAAsB,KAAtBA,8BAAsB,KAAA,CAAlC;;IChBA,WAAYC;IACRA,EAAAA,oBAAA,WAAA;IACAA,EAAAA,oBAAA,WAAA;IACAA,EAAAA,mBAAA,UAAA;IACAA,EAAAA,oBAAA,WAAA;IACAA,EAAAA,qBAAA,YAAA;IACH,CAND,EAAYA,kBAAU,KAAVA,kBAAU,KAAA,CAAtB;;IC6BA,WAAYC;IACRA,EAAAA,iBAAA,QAAA;IACAA,EAAAA,kBAAA,SAAA;IACAA,EAAAA,uBAAA,cAAA;IACH,CAJD,EAAYA,kBAAU,KAAVA,kBAAU,KAAA,CAAtB;;ICgEA,WAAYC;IACRA,EAAAA,0BAAA,WAAA;IACAA,EAAAA,2BAAA,YAAA;IACH,CAHD,EAAYA,wBAAgB,KAAhBA,wBAAgB,KAAA,CAA5B;;IAyBA,WAAYC;IACRA,EAAAA,iCAAA,SAAA;IACAA,EAAAA,iCAAA,SAAA;IACH,CAHD,EAAYA,iCAAyB,KAAzBA,iCAAyB,KAAA,CAArC;;ICnFA,WAAYC;IACRA,EAAAA,+BAAA,WAAA;IACAA,EAAAA,oCAAA,gBAAA;IACH,CAHD,EAAYA,6BAAqB,KAArBA,6BAAqB,KAAA,CAAjC;;IAuCA,WAAYC;IACRA,EAAAA,yCAAA,YAAA;IACAA,EAAAA,sCAAA,SAAA;IACAA,EAAAA,sCAAA,SAAA;IACAA,EAAAA,wCAAA,WAAA;IACH,CALD,EAAYA,sCAA8B,KAA9BA,sCAA8B,KAAA,CAA1C;;IAYA,WAAYC;IACRA,EAAAA,gCAAA,WAAA;IACAA,EAAAA,iCAAA,YAAA;IACAA,EAAAA,gCAAA,WAAA;IACH,CAJD,EAAYA,8BAAsB,KAAtBA,8BAAsB,KAAA,CAAlC;;;;;;;;;;;;;;;;;;;;;"} |
+2
-2
| { | ||
| "name": "@mpkit/types", | ||
| "version": "1.0.16", | ||
| "version": "1.0.17", | ||
| "description": "mpkit包相关typescript类型", | ||
@@ -38,3 +38,3 @@ "author": "imingyu <mingyuhisoft@163.com>", | ||
| }, | ||
| "gitHead": "f051b52fec1a728b5999ceb2e78f02ae15f130aa" | ||
| "gitHead": "9b3b1871ec8eb30e659c484ccece5666e1631204" | ||
| } |
+1
-0
@@ -65,2 +65,3 @@ import { MkEnumMap } from "./util"; | ||
| $mkNativeSetData: MpSetDataHandler; | ||
| $mkDiffSetDataBeforeValue: MpSetDataHandler; | ||
| $mkSetData: MkSetData; | ||
@@ -67,0 +68,0 @@ $mkSetDataIsBind?: boolean; |
79923
0.25%727
0.14%