From d29ff4991d5a9e9c7f92fb64d473eb378774b751 Mon Sep 17 00:00:00 2001 From: "pengfei.zhou" Date: Sat, 11 Apr 2020 19:10:56 +0800 Subject: [PATCH] add handling layoutconfig in flexlayout --- .../main/java/pub/doric/shader/ImageNode.java | 15 +- .../main/java/pub/doric/shader/ViewNode.java | 7 + .../java/pub/doric/shader/flex/FlexNode.java | 67 +++++- .../doric/src/main/res/values/ids.xml | 1 + doric-demo/src/FlexDemo.ts | 191 +++++++++++------- doric-iOS/Pod/Classes/Shader/DoricFlexNode.m | 14 +- doric-js/bundle/doric-sandbox.es5.js | 12 +- doric-web/dist/index.js | 2 +- doric-web/dist/index.js.map | 2 +- 9 files changed, 218 insertions(+), 93 deletions(-) diff --git a/doric-android/doric/src/main/java/pub/doric/shader/ImageNode.java b/doric-android/doric/src/main/java/pub/doric/shader/ImageNode.java index b414cb7a..438b421d 100644 --- a/doric-android/doric/src/main/java/pub/doric/shader/ImageNode.java +++ b/doric-android/doric/src/main/java/pub/doric/shader/ImageNode.java @@ -34,6 +34,7 @@ import com.bumptech.glide.request.RequestOptions; import com.bumptech.glide.request.target.DrawableImageViewTarget; import com.bumptech.glide.request.target.SizeReadyCallback; import com.bumptech.glide.request.target.Target; +import com.facebook.yoga.YogaNode; import com.github.pengfeizhou.jscore.JSONBuilder; import com.github.pengfeizhou.jscore.JSObject; import com.github.pengfeizhou.jscore.JSValue; @@ -47,6 +48,7 @@ import androidx.annotation.Nullable; import jp.wasabeef.glide.transformations.BlurTransformation; import pub.doric.DoricContext; import pub.doric.extension.bridge.DoricPlugin; +import pub.doric.shader.flex.FlexNode; import pub.doric.utils.DoricLog; import pub.doric.utils.DoricUtils; @@ -83,7 +85,12 @@ public class ImageNode extends ViewNode { @Override protected ImageView build() { - ImageView imageView = new ImageView(getContext()); + ImageView imageView = new ImageView(getContext()) { + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + } + }; imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); imageView.setAdjustViewBounds(true); return imageView; @@ -223,6 +230,12 @@ public class ImageNode extends ViewNode { @Override protected void setResource(@Nullable Drawable resource) { super.setResource(resource); + if (mSuperNode instanceof FlexNode) { + YogaNode node = ((FlexNode) mSuperNode).mView.getYogaNodeForView(mView); + if (node != null) { + node.dirty(); + } + } } }); } diff --git a/doric-android/doric/src/main/java/pub/doric/shader/ViewNode.java b/doric-android/doric/src/main/java/pub/doric/shader/ViewNode.java index 97c96aa3..6993a3d0 100644 --- a/doric-android/doric/src/main/java/pub/doric/shader/ViewNode.java +++ b/doric-android/doric/src/main/java/pub/doric/shader/ViewNode.java @@ -50,6 +50,7 @@ import java.util.LinkedList; import pub.doric.DoricContext; import pub.doric.DoricRegistry; +import pub.doric.R; import pub.doric.async.AsyncResult; import pub.doric.extension.bridge.DoricMethod; import pub.doric.extension.bridge.DoricPromise; @@ -89,6 +90,7 @@ public abstract class ViewNode extends DoricContextHolder { this.mSuperNode = superNode; this.mLayoutParams = superNode.generateDefaultLayoutParams(); this.mView = build(); + this.mView.setTag(R.id.doric_node, this); this.mView.setLayoutParams(mLayoutParams); } @@ -106,6 +108,10 @@ public abstract class ViewNode extends DoricContextHolder { return mType; } + public T getView() { + return mView; + } + public View getNodeView() { if (doricLayer != null) { return doricLayer; @@ -466,6 +472,7 @@ public abstract class ViewNode extends DoricContextHolder { } else { doricLayer.addView(mView, params); } + this.doricLayer.setTag(R.id.doric_node, this); } return doricLayer; } diff --git a/doric-android/doric/src/main/java/pub/doric/shader/flex/FlexNode.java b/doric-android/doric/src/main/java/pub/doric/shader/flex/FlexNode.java index 167251f0..47cb2e8e 100644 --- a/doric-android/doric/src/main/java/pub/doric/shader/flex/FlexNode.java +++ b/doric-android/doric/src/main/java/pub/doric/shader/flex/FlexNode.java @@ -15,7 +15,9 @@ */ package pub.doric.shader.flex; +import android.view.View; import android.view.ViewGroup; +import android.widget.ImageView; import com.facebook.yoga.YogaAlign; import com.facebook.yoga.YogaDirection; @@ -32,6 +34,7 @@ import com.github.pengfeizhou.jscore.JSObject; import com.github.pengfeizhou.jscore.JSValue; import pub.doric.DoricContext; +import pub.doric.R; import pub.doric.extension.bridge.DoricPlugin; import pub.doric.shader.GroupNode; import pub.doric.shader.ViewNode; @@ -56,7 +59,56 @@ public class FlexNode extends GroupNode { @Override protected YogaLayout build() { - return new YogaLayout(getContext()); + YogaLayout yogaLayout = new YogaLayout(getContext()) { + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + for (int i = 0; i < getChildCount(); i++) { + View child = getChildAt(i); + ViewNode childNode = (ViewNode) child.getTag(R.id.doric_node); + if (childNode != null && childNode.getFlexConfig() == null) { + ViewGroup.LayoutParams layoutParams = child.getLayoutParams(); + int childWidthMeasureSpec; + int childHeightMeasureSpec; + if (layoutParams.width == ViewGroup.LayoutParams.MATCH_PARENT) { + childWidthMeasureSpec = View.MeasureSpec.makeMeasureSpec( + 0, + View.MeasureSpec.AT_MOST); + } else if (layoutParams.width == ViewGroup.LayoutParams.WRAP_CONTENT) { + childWidthMeasureSpec = View.MeasureSpec.makeMeasureSpec( + 0, + View.MeasureSpec.UNSPECIFIED); + } else { + childWidthMeasureSpec = View.MeasureSpec.makeMeasureSpec( + layoutParams.width, + View.MeasureSpec.EXACTLY); + } + + if (layoutParams.height == ViewGroup.LayoutParams.MATCH_PARENT) { + childHeightMeasureSpec = View.MeasureSpec.makeMeasureSpec( + 0, + View.MeasureSpec.AT_MOST); + } else if (layoutParams.height == ViewGroup.LayoutParams.WRAP_CONTENT) { + childHeightMeasureSpec = View.MeasureSpec.makeMeasureSpec( + 0, + View.MeasureSpec.UNSPECIFIED); + } else { + childHeightMeasureSpec = View.MeasureSpec.makeMeasureSpec( + layoutParams.height, + View.MeasureSpec.EXACTLY); + } + child.measure(childWidthMeasureSpec, childHeightMeasureSpec); + if (layoutParams.width != ViewGroup.LayoutParams.MATCH_PARENT) { + getYogaNodeForView(child).setWidth(childNode.getView().getMeasuredWidth()); + } + if (layoutParams.height != ViewGroup.LayoutParams.MATCH_PARENT) { + getYogaNodeForView(child).setHeight(childNode.getView().getMeasuredHeight()); + } + } + } + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + } + }; + return yogaLayout; } @Override @@ -84,6 +136,9 @@ public class FlexNode extends GroupNode { super.blend(jsObject); for (ViewNode childNode : mChildNodes) { YogaNode yogaNode = this.mView.getYogaNodeForView(childNode.getNodeView()); + if (childNode.getFlexConfig() != null && childNode.getView() instanceof ImageView) { + ((ImageView) childNode.getView()).setAdjustViewBounds(false); + } if (yogaNode != null) { blendSubFlexConfig(yogaNode, childNode.getFlexConfig()); } @@ -92,11 +147,11 @@ public class FlexNode extends GroupNode { private void blendSubFlexConfig(YogaNode yogaNode, JSObject jsObject) { if (jsObject == null) { - return; - } - for (String name : jsObject.propertySet()) { - JSValue value = jsObject.getProperty(name); - blendFlexConfig(yogaNode, name, value); + } else { + for (String name : jsObject.propertySet()) { + JSValue value = jsObject.getProperty(name); + blendFlexConfig(yogaNode, name, value); + } } } diff --git a/doric-android/doric/src/main/res/values/ids.xml b/doric-android/doric/src/main/res/values/ids.xml index 5a5b7948..9ba20ba8 100644 --- a/doric-android/doric/src/main/res/values/ids.xml +++ b/doric-android/doric/src/main/res/values/ids.xml @@ -3,4 +3,5 @@ + \ No newline at end of file diff --git a/doric-demo/src/FlexDemo.ts b/doric-demo/src/FlexDemo.ts index e27833df..64eb9ace 100644 --- a/doric-demo/src/FlexDemo.ts +++ b/doric-demo/src/FlexDemo.ts @@ -1,88 +1,131 @@ -import { Group, Panel, text, gravity, Color, LayoutSpec, vlayout, hlayout, scroller, IVLayout, IHLayout, layoutConfig, stack, Gravity, flexlayout } from "doric"; +import { Group, Panel, text, gravity, Color, LayoutSpec, vlayout, hlayout, scroller, IVLayout, IHLayout, layoutConfig, stack, Gravity, flexlayout, image, ScaleType } from "doric"; import { FlexDirection, Wrap, Justify, Align, FlexTypedValue, OverFlow } from "doric/lib/src/util/flexbox"; import { colors } from "./utils"; +export const ICON_GENDER_MAN = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAAnCAYAAABT7SsqAAAAAXNSR0IArs4c6QAABWhJREFUaAXlWl1sFFUU/ma6tSAUrE39qWBJK4sBrNKHKgpig/y0oA8mJGpifMQHoqQ1Ud948ycp2oiJPPpiQoyRxNImxLhlkcSINIgSoI0lCFZQVCj+tLad8Tu7vTtzpzO7y87sQtPzsPf/3PPNOfeec+9dAwXQ3r12+cA1PGGZ2AIL9QZQaxuoJas7YKOsAJbBQwxMsvFXw8awDQwbBn5kvideib7t243x4IH+LZQ1f+p4z37cnsRLBNXGyRfmPzL6nhT8Kgz0GGX4sHOnkcx3hrwAv7bbXjFu4y3bxtZ8GZeyH7XeXW7g9bfbjZO55s0KeFfCjo30o5Ma3UGNmrmY3ch2ArFsE+8vXIVXd7UYE0GyBAJ+Y49dPTaGT6jVlqDBN2M9tZ2oqMC2N3cYv/vJ5wu4vdOOU6O91Gy936Cbvs7AEIG17u4wBryyTgMsmh0dwzczFqxCSNBzKtDs1bS2LmXNihnPeLACmtYpWAST+gaSagXZoEq1ZufNBbZtoOO+3S2Ok59bAcxnnz9HgHc+AibEG18nCZbUpgu8ooZmTDrleiycKNVu3LYGePJhJUb2NHkM2N+XvU9QKwFa5SYalcvKmHTKz5bQ9Vy5FiSiT31GLT5tOapEgYJNdUuxkgjKmsAhVVmqtOl+oIYmrfDUVAEPxilhRg1pST79AjjyXTipzBjWSUSWWsOpcDEcv4JG9592hq28D1jfPB2s0yNcbgpj0pSDAHe0tnDswo0WsC8yaC1zHTvG/gvHc9poYhSsppx6aOdFOwjcUg7U3Q2saAAaFgGV83RR/MDuTxS2K+uc9ZJgFKyxqSOe3hpBadGdwKbVwLI6+j7N+QHnLwF9R4FxuhqvZgVssh/Y8EgEQnhYCNaYnGc99aGLmx8DNmYReDE/xgs0YcvS16wCG1qAIAbEGuMOWUt1R0bPrAfWPJQfO/du7AUrH0PRpCuv6gpJBWssdVMREWJxM16wv1wGjnM3vsizy20L0ia+3GNTZ39Om7EbxPEzwNom4J9R4Mw5d0vhecEa43VJdRR4y+g7t6zVhfmS67T3K8CtocNcn41LgedbAdnQhJbwcqi2hvc3v6XL8vsZ1/LX3wMSoPw75tSHyQlWk6h9z43XyzheB1RRg4pOnQW6kzpY1XZiEOjhh1DEMyyaV6qSk4p1RAVWuApWk6iHnSkKzy29Vx974LBe9pZE0yN/O7Vxz3inJbqcYDVpzpEAdmt3nBcsF6mdbMR5cYHuSZGs72KTYDV5UzUU9UQ8ljF4y03STxGtuugkV7ymaeFAFDO5Tz+yGd1VnZurBCeK3ONVXdQpTbrHlAttft2rYZkP/qRz2PyoXvaWVjcy1pvv1A6ed/LFyAlGwWqmbu95oR12koFz5PiXw+UBuh6JtmQH9tKyJcDT6/Taoz/o5chLxChYU1Gu3N7bE3guzCRyBdN7BHh2k8NFQszlPDT0n0oHHlWVgLivVQxQ3CRBhsTXxSTBKPwz359Xs59zE9kadlIB7OdTg/heYhTQ9TEwGvVx0DUhraybV7ZPSRXjozTJUwXRh45a9x0EDh1TXLOnQxeAD/YVGazcaRGbkiSjYamglruo5ZdVY5i0/h4eD7lxNSzmV9Vm4VPgH0DiW0DWreVyTWHmCxxrouvddmOnatdEmXpLOkjQLapD2PTWOYC4H7lyFbMVsJevhOWa33iacmJBEza635o0wMJmVr08CGB5muBXaOV2FnkEJvxLQlNvS95nFpk7s2m5BZFHKHmXEZNw18+EvMgssvs9pIn800zaDWqmvQ8TzR6u2Q73mnXjyQlYdZ41/wBQgFU6a/7joQCr9Eb+i0eOs3LCK/RfPP8DkNfI8QB2e54AAAAASUVORK5CYII=" +export const ICON_GENDER_WOMAN = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAAnCAYAAABT7SsqAAAAAXNSR0IArs4c6QAABUpJREFUaAXlWmtsFUUU/ma7LdAqPqoSik21RBNTgjGSJiqg+Ezx9cf+wBhSglUTjP6gMaYRQsA0xsQfFkzQajDEQJRfPmhVMEWUaDDiI4KmBKoQioKkqWCF9vaO5+zsdGf37vb23syW10nunec5Z76d2ZlzzqxAESSferMUQ3/fBZF9EJC1kKgCBP1wDZVLihA5BosYocZjJLcPAn2k6wBQ0omyq3aIt54eHoMxtknE1iZUyqUvz0dWPkPNCyHlZQndJqZaiAFS1AlHrBfvvLRzvErHBVg2r65DRrxCIB8ar+AJ7SfEJ3Dli6Jj5d58escELFd1u/jjq9dIyLO0lJx8ws5qu0CWXqu1qJnbIlYtyCSNJRGwXNZWicHMFgK6IIn5nKwX6Ea52yjeaD0RN75YwLK57UZkMl0EtjaO6ZyvEzgI120QHa090bHmAPZndvd5C1YjZNDlbn10pkOA/Xf281SW8XXTgfm3ALNo0VwxVQ2r/x/gl4PAzh+A34/qodpLeXnXzLvffKfDgJesfp3APmdPI0kqdYHFDcAdN9OeElIXqJES2PUTsLELGE7cb4L+heQE2sWGlc9rltERqKMHPxNge7txGYF9YTEwc4bWN3Z64Ajw6kZgyCJo3r1dzNZHVgDOO2ctgmVoTXRsR8GeIHvhu33qx3mTuC/z2CSeQMbmkzfDngU1kv1SV1pJb6gGWpsCUbxUt3wBbNsd1HHuvnqg8R619HVL27vA/sO6ZCctce5ki0zNsDIX7QjWUhiISZs+ywXL7fwAuM2kKK/ZVmzex+h4jgDbxjaJN6dZMwOJh/8CduwJytEct3EfTcybtMHpPoWnCxmr43k9th2BqRXAlEnBkHoOBfmknNmHeVmGTWKM5OE5ysWzKZlkmWBZdP/J/AqifaIy8kvI34PcWXqHyZ+1TQOnwhJnXB0ux5WuJVfapKgMs63ovKx16Nxlx90u/XeGXPb+QCa/kxVTgnI0x211xnNnXpZhmwgrzbAXqbAtGvj+10DmpeXK2orbiLiOLTHuo8nk1XVWUlFFppCstCIrKuTTb4G75wCTylRLfR1QeTmdxduB3j5Vdz0trsZ7w8bJmSGAeVMhWSlk0xrSLqenIp/t5ycfyRWdJV+dyaEFFqW3P1J2dbTeSlkcJY0UHEuL2CH4gGaUnQOTGGgULPfhvsyTGsk+148E3pqajq5vgEN/AoseAJJ26yPHgc1kbe3tTW0YnmCKetI7LMghjcyAbbUMZMV6gO3rJ2iDqp6mNLB19R65hGw3pzwETyGFeOlYcrbaxhcrjwH1EDDThOQ8100EWG9QJZ0uB7QxfGwgtTgzn8HVhlFRZRghnG+4TT2fzAjw437guHF+xz65Iis5jl1KwXtml0vWbCLAi4oUlcw25yZg2WPJ7dGWk4NASzsFAAq+UIhKyi0LsVlsWPG4Ohcoep/bw0LNtCsLE8LGR8XkwnjG29vH6M0w89Asf2z9ZoEHv/TR8JK+hEBN9o2R02RknKJZZeIl/TUdSVt3qbLNf7qZoNl9mEXSLu0TXVUgw3dGFsM8/54G2t/XGlTaTA/g9tkqv+c3oOPDcLvtkhfTImw+jZo6fpBrnW64cFKxVgfwGNMoYA9gzbzlZIh0pwp2kGZdk5nXdTZTLy49t8UUGQLsBazpXoZAkzGSErFjsK9X/VJzEmjs6uah0QzCM6LRTcuEdyHfLYVmWIP2LqHoXib15a0V2kzV7WF93EUaq4mdYa3//Lsfxjq6S1oeXcYaT17AuuNF8wWABqzTi+YbDw1Yp2f1Kx52Z9nDK/Irnv8Byni35ICQM38AAAAASUVORK5CYII=" +export const ICON_AUTH = "data:image/png;base64,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" +export const ICON_CURRENT_SEND_ORDER_TAG = "data:image/png;base64,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" + +export const ICON_ACTIVITY_BOX_TOP = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA2YAAADACAMAAABYpoCiAAADAFBMVEUAAAD5pU39nzj4zED+pDn5zD/+lTn8sDX6xzf9uC/0ylb7zUL451r541j7tybrrlz55V346En530vznjj7wSX5oD38vBTunh346j/9yDb7tQ38swj9dTv22Ff7yT/8yiT55lb64Dz750v80lz784X6pTr884n5/bj7djv+oz3/aD39pDf/URz/pEr+VR79nj//sjb+TFf/T1f/bD79k0L/aCD/pFT+pET9rmVV/Nv9mEH9kzr/YyE12f/8jkP+rDj+pzr9jzn+XiD9izn6/bX/WB7+lzn+VST+Sxv9mzn++mb7/bn++V/++m378WX8+4D6/aj+cD38smH9+3b+gUD9hjr+ikD7/aH78m/7/Jn78F7+VDL6/a76lUP89IH+ekD+5W/0/bXgORb88mv68Fj8hEL8vFn883v883X+nzf/Wir89Yr+UDr4pUD9/In/yyn/5lL+Uyv8xlP93V/+TkT+63X9TE7++ln+5WT/VFP8/JL+SV/470062/r7tFv2eDf9pC7+62j671L7wE/6Uh/91Vr8z1X8fjr91WL+3mn9/fz6pTP6+rT6skf+dT78ylv47UP6uUn9uGD6rET5Zh/8aTj++rn/4Ur+R2nfQRj7rln995pR+uH+Wkv+RnL++aX89pL+20H++a7/wSD5mTX+sjzgNzT+rgb8mkr7u1D/Wz/3fzr+0zPiVzX4+3E+4vb+YkVE6vD8s01M8ej3Wx7+XzT9uzr0/K3qQRtb+d/35aD+vwr+ySD2+4v1+6L37DfyShz3/fr59rHviTf58avuq3H7wYH5z4/4x2X9gS7gOSPxrELiViT6oWDrlGDfShn7dSj+ql733Jf2XSv0bj/kakX89e35xnP9l1Rj8cvock/rQjvxzY7gRCbwgkf6sXT7iVL6oXf613PqlE/wvn7mYiPmhlX51YD8ZGD7dVD65oX86NrmdDHmZzN847b83MX70K76qIpN0eX5imz6upWHwrDYlGNrx8mysYThuXOe0p7GoXDFxIeduZX7srH6eYXXxI1nAAAAJ3RSTlMA/m8S9iT3+Thw/v36Slb+cfyV94bPo/3m2cfmcPu07LfB1dyfotqql5foAACopElEQVR42uybT2viQByGjWNohJoao25ViK67FpZSeluP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" + +//管理面板icon ######################### +//打开音乐,关闭音乐 +export const ICON_BGM_CLOSE = "data:image/png;base64,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" +export const ICON_BGM_OPEN = "data:image/png;base64,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" +//抱下麦,我要下麦 +export const ICON_LET_USER_LEAVE_SEAT = "data:image/png;base64,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" +export const ICON_I_WANT_LEAVE_SEAT = "data:image/png;base64,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" +//请出房间,选择主播 +export const ICON_KICK_OUT = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAACWCAYAAAA8AXHiAAAU3UlEQVR42u1dWW8cV3YuGbBhYAw4D8YYMfI2A2T8MJjkDxgwnPkPCWYQwNAA/gNxEOXJbzOIszyNYyUYCDMBOOpq9kZSIptd1dXct5a476u47yKbpEg1l5vvu822qXZXc2t2V1XfAg5EShRZvPXVOed+5zvnalrxr3uPHlnvVlXVfhAKmT/xRcxP9JBx3xcyfu8LmQl/2Bzzh8wdPWQKZSWxXa65HjETeiD+jR6y7vsiTZ/w2VRVWR/wWfGZaU69hBBvVVUZH/pD8c/0oPkvetjUAaBJfLwJYO36gsahHoqn8YuewM7UAy+ZnWXWPJ7OPANjF5/jmZhTetDw43k90IPRX1ZFjA/5DB0FqkCg+S9xw/+Bm2/BDS/g4wNf0EwrADkccJlndIA/F/nsfAHzvyKR1o/KCqaHyeTbuIm/rq4xf6uHjVU9HD9WQHK/Z/OHjDWEzt9V11o/S+IZlzLk3QsGoz/2h2Of+4LxPuRO+7ihU/VgvAMwX9jcRz48wNy4qirCEHn3OZgejv3cFzBq4D7XEbMVoDxqANYpbAPgqnlcG//FnQHqT9Hoj/CD/gE/NAUvpQBVMQDjs46nqkPGr3Vdf6+4XkqPve8PW/+EPGrWH46rPKoSLRif1yPxL2Ox2PtFAdVXX+nvIJn7H3zz1XOqQC1yJXoupj1Bc80fNP7wla6/c3tPFTT/FyEwrRZX2bkd+yLxP+o39VxR5FRwf1+CRFtTi6nsooFUXasmNm6Sc/kjxt/jm8yp8KcsjxETL/xB61fX4qn0cNPPuftTC6jsEkpiTw81/s2VeK4M+WlGFKWg7AqGhN6oD0bbfly4TPMw+TYZdfyHdbVoyq5GQxibcESfPyxU/mHt73HA7FeMurLr0BCIbgOsLRYo11i/1WXcVAum7Fq51j6ECP9mK32BS1tRBWVlN8q1oIqINOZIbijw8tea/66oBWW3oSBQ7vv9G2JBKj8hzGtVeiplN7ZMDbmbStTvNOpSTiyVn2qBlN3Klvy18c+khp5ieqlRh5xYLYyy2xkk6SHjwSMLDRrs1GDjw7lGXS2OsltQD8BQ0PRX1VofaGwDkt00Kr9SVgRZM2Q105GI9VNN9v3JFi21MMqKYlu+iPGpptdY99nUqBZEWZEs5Q8bX2jQM6M71nylFkRZkfKsQ8jYv9XY9q4rhaiyIipMUd5p1mRfv2LclRVTBBg0JrTzAR1qR5ifTRZ+WiQuqiOWNH7MvwNFo9bHvnU/pamFyKPpBnBCtQnxpKFNGE09oqN7SPQOTIhnfWOitaNPNFpdora+VQRqLLVeNqaAlQdUT2MdEkQvFlbE7u6BODx8LY5ep6UdvDoU29u7YnJ6QbR1Doqapy1q3RSwClt12IInahMzc0tib/9AHB8fi7OzM5F78e9eA2Rb2zuib2hSBOHdsLtWa6iA9UMjOBItz8Ty6kZeMNldJyenYnxyTjTAyxGYai0VsL4z5kotnf1icXldeqLrXgyPDI0xqyeT2Ks1VcAiqOLNz8TG1o5Ip49tvRX/vtC/HRweISdbQ87VqjxXpQMr/KRZdCWHxcudlK03Ojp6LdY3XorpmUUAZxVfuycBaAew5dVNYQGowZqEAlbl7fwIqia589uEp2KelA8kh0dHYnRsTpiJHrn7q21oBd3QL+awWzw+PskLLobSxaV10YKvq2Q6orKAFf7eU3U/HxV7ewfi9DQ/qF4htI1OzIk68FXVkfgboTNqdorlla284OL/pUdb33wpTHBglQourdI4KpKeQ6PT4uDg0Dac7ezuS0K05mmzZN/zcl2NbWJyZkEm7nbXDkJsJ8jVcF2zApZnOSp4nSfRNjEGL0SO6vT0LC91sJs6ED29o5LPKrTDY3knGu8SI2OzIE5f503s+f024bme9Y7J0FtJZSCtEsKf9FSN7WJkfFYm43ak587unkgiRIbqmjiq50pgZagcBY91iO+b72KoTSHkdidHROhJ8xshWQHL1Z7KEjF4ltm5ZdvdHB/++sa2aOsaQI3wmp4FoGXI7B+cQvln35aSYMgcHJ6SobgSuC5PA4tb/pjVLeZBE3CHl++hE2xr69uipb1Peqqb5m51CLNJhNBdeKcTmw0BPRdDcR3AVe1xcGleDX8BeCqzKSkLyen0SV5QHZ+ciBXwTs1tfdi9JW69MQgDmD0IpTs2nktSGChoj4xnwOVl+Y3mVU/V1NYLT7Rly1GxwExPFkt0y3BZlAeM7xGqS0BmMyBDaz4qQ3Jd6bSYml0SjWYX9F2WApY72PQm0QZykjySHc/06tWRmJtfwa6u8054Jt4DQ+sawEUA293Di/lV0Yj8z4tcl+al8Jf1FvRUhbwFZTEU61XfobdgaG1pL+w1GaLnEaoNMPtF85oKWMUlPmV+82xU8lB2+Q2phtFS5TcX8ryFReR5xye2XBfzPIZuL9UXNS+Aijuy533jIrX/Ki/xeYoHupvalzzWZcTnXagnGO64iTgqsDNlTtba3n/jnakCVpGbHWolhzQpyU07Dmn/nEN62tCet0RTMi7txTKK1PZcGmmPtq5+qbd3e1h0LbAk6w21AQvFdqw3+SQWmruflZn1DpuSt3oaa8f9vijM/u/sy5Au2X8Xc12aO0EFD4DkewylFLuHRI5qAztDkpYhh9TpMi9DG/K8WUmWFqpXPsN919W7l6XX3JhTSWXB9Dy27PbKgm0qC3qGRORJs+Pu/wlC8tDoTGGFBQSFz/vtFRYKWEXewjcYHWJpdUt6JDstFMV73MJ/xw+FnUWLvKEJ27crAQlowl5L71abowlTwCoym87SC9nyfKDKqjfnF1dFM/gjp5OOWRVrEpKazc0CKtbDDEUSNe+Wd6tIYDF8UI25VKCL5qLePOAiPihyrrvffpkq2AU0PvkCyb97ci5HA4uaKBKfTW3PRQoJ7anNTooy4vnFNalLd6NqgC9CHEQqO6ztOoVIsC4ub4h67CzdUALSnP02t0iqYA1dMrY6JyTA41Pz4Im6Xb09J1iaUV9kI4adV2YKQKK1qfW541l6xwIrEEmIzuSQ2Nrate2IyXYhR2UXsvv1TQRLAqAp1I1N0C0sraIXMunoF0lzYj5F/oatWSzS2hGf5IGGxmbQGt/kqbkJmfkRrdJzMXHPBzDyXyxRWRgJ4NQSkLOAhZ3Sk2i7GByZkQtn2/2C8k0fyjhsjvCiUI4zuBjap9C2X4jrYn3RiVydw4AVl95ndGLWtosm05l8DP5nBDXCVk9rx8lbsX9xYuoFQn7+tWCKsAGqogMpA1MHBax8rVRYRLLpBRdx66XUWzltEe9yV8zmjuHxGdvm2kzedQxJ9IgMoU552TQnvJkGprRMzy7almjovVj575DNn00VAaqL6QFlQf3DGQWH3cXUYYBdQNF2R6QHWrkTVS6aTFRttEoEFRfUannuLq3S+cOtBo3A2Vu0ask/XV9gmN3QsKDOVMDu5eOGZhglICdsaLRy8jbcWq+sbV6ytV6TrLvr8iluRKBkoA6MxOf2dkp+TGrEf8O6H1MApgKshdpTMGcypWBNtZwUjFYuSsFMJCVobMlALNzciyXXjgRi3jiI8JXNjWgHB68g9lsR9Ubnjet+3AGS31uFlr4QaTw2OQ8VSHvZlBFlARZDArfShzZaKpYvFhAe+QDc2sHC0EdPdTHhzqovpjBrqz5L6l43LFIZcV7mYl5lV+ZK4d86egbxEluVAywuOgeY5S7KWfZtg8qSmis30wkSWC938+7kCC62/FMLf9O+Qq6NUaAwz5/BdSyXIkIrV37FeZ8X84TsuMVhsOkNtwgVzgqFUzL85XrlbOH8tmFRloDguebml95cS6mIOBK9EApWFLD4tnV0D2Zcucw/zqSn4kggN4ra7JJ3JupsoMg3jKQYYTH7kjaAA5Se61wZQZBRQmSUcdiuVq5Fp1QkAQqBIrYxaI1kX11dwjslGjk+yYJH6pDgsZXDFCks1tQ3SyUIf1b/0ETG64fL1wRbVh6LDZ1UUVKm69WRigxF9EgED9vq7yosUpHKvC4CjTz5vnJ7fTXnvURFZXqkuTsOi6pWeMNElW8ia2euy8HCmSpDKcKiAtY18ocIJMddGLU4ODwtJ+fF0IGTOb9GhUUFrJuOBMLE4b7BCVkHY3MqbWExU+aRnit8ubfIrdmV00huxiHQW0A3UaFx3tmw6NbhbJrT33DWE7fAYL+hyQIhOAxq4koCtws1uy3ZrHAiH2g5jZLqyw6CkmERw9miCJ+qYfUOiFTyXakcNSkfDt9ozm647G0mOCknKaRncuIlCWPJ7U27MiRqTk/Yu9Fzt4fxRLnAmsXwtCcSWPFLSytb27uuAtXFCTQvURZyYz5ZEcBiM6hrgYUZFApYDgRWtma3J4eyqVCogFUkYDEHexrNTHeh2iB9XP7k/RjJ++kVkncSquwFUMm7Q4FFma6j6Aa008/PF6YbWLyuN8tb71PAchNB2tghZmbtCdLDc4K0QRGkClhXUzrE5UCPCcyZKFTSYfjjMS3VqqSjgHWlIjQ80Oxs4SK028OfApYKfwpYrgVWBYY/BawSAasBnor1vkoJfwpYJWym2LdppvBi+FPAKlNfodfDnwJWmfoKvR7+FLBK2WK/f6HFHtN0vBz+FLBKlLw/xSSdYdQoKX2hSoHNuKz9XUvPHlbAUsC6pEbJj/3XGGNEuoK9lnVo4mUjr5vkMwpYDm4ieYJpMTysiSfCTs4syFMs2IPpDytgKWDd0NuFa5tF78CU2N3dl79vGmdLM1/jKRZu8FwO17wn5ELmBRZ2Vt4FVoaxX8G891y6giMzeXqYAtYtgdWBcdNs/Xpzah1PaFiVybEXgcUwyMPQeTReLrm6tb2Dzp1Ox494cnyXTtv5VJrcEymWeK6M0eHJkdxy9lWiW75QueXFTQCrAd7M6XmW4/sKeZQct+q5TQY8PdWwuj0LrLbOAXkyRe7FUMhTWlUovOUCs+xBEOXW2tgn2NrR70lg8YXieKfc4jV/7xnklhw5oIB1S+PbyaFiubkGh4yNYPS0FxlsDj9hyMs9nYOeundg0hVjyTU3LDLPzcldZHluMua/s33eS16LVEILwn++43w5a5SHrLth2o7m/LDAcNiDYSDpvMfKDQxNOfKQopuGftYR5+ZXfpC001vx3Ea3HKKguSU0rK5t5T03eQPD9HlqBacDulopgHvn7K8kjtPL5e2yg1A4g8Itod81Z0IzPJB2yM21SJbyAPJYvMvV+RaplZaOvvM5Ez/8HZdX1kU03qnOhC7228wkfhoy39d5dkrclrOeJuUoLpxlSo+caO1FqNvO28TKVvve/nFXHVClueeNTsjTv3Z29/Pqx5nYssxjYNqfHJTrhrYw3CNB1d41IMdn51Obnknuaks0ml2u2qS4argtK/uc7ndkc1QKczCeadgDRQDLPZnpwZbjwETgc8PBg5RImezvH9icfJY5opjnCQVcdp6Q5q5dk4l55i3ydCvO6rQDF8895GnvfeB8mnAyPIu2HFPN0d9yQG5dosTWJIHEe+f4x3aUqSj6W8GG5LVNWxiHhuzgWJjnfeOgINS0mZJU/huhwmQROl9b1fcJ77EE2DYeDhNfHrQ5gpNKewcmxHPkKyWzgXEM9J8U4zgkYW5+WR6jx00ID6jKt8vNXnxxqD6lyE8NBSlRIp8dbc1GUD4gu/Ojv8/BMnkYvy6rPy+9nV06dzR7XMne3isJSnpZt8qTXXuAAIlT7hSHRqehKU9h5tSJcPvF3JEejUeXMGz7XczLufpkCurHa3CafWfPMERxmwVDi9On91EhOo2BvRZGdYc8cO61u488CX8/zYUPo+f5qGTo2X0sx16fXj72ulxAoljxdTot8605tISRx2KS7g95o+7pqbN0CC4y8F3PhuXOkdzQznmiTJ6LO7B0mYwgYlmGSTkbWReWVsXIxKzUXfGIXa8dUuW5Q5okTwSFQB1CZBSkYrwlKTpBrFIhwV0Wj7DjDm2iRMafNQobGpmW1EE7gMSTUesBpsj5qWde1JQRWLuwM691uWRBRmOiT6K03OaXFv/uvtzckFrAzvSgmdKw8xjDJydebvdWVlI70YPGhKZHzAQ+SasFUVYkO/aFjBbNH7T+2xc0D9WCKCuGEUu+cPxbTa+x7iPO76pFUVYkSz0OGF9ovkjTJ/hkUy2IsiLZViCS+FQLhcyf4JMpz+0MlZVlRwiCdzoSsX6qVdVaHyAU6oiNKoFXdtv8Kg2qwU9MaY8eWe/6QvEHesg4UIuj7HZmHPw5YPzrI8t6V8N1LxC2/g5IW1QLo+x2ogBjmVgipggsrarK+BDAalV5lrJblNKAHau7KmJ8qGUvFNzfqg6b/6kYeGU3z6+M0+pQ/BtiSbt4/TnS+pEejK0rr6XsZvXB+HrgqfVXWr7LHzR+hy/aUwul7Jq2jx3h15rdVV1r/QzNCv34olO1WMquSDGc6mFr4HGw6WNbYD1MJt9+HGj8Df7Dhlo0ZVeUh2/6A+ZvksCOVujiDrE6ZNagQq28lrLLDBiJN7yxE7S7kNXfC9bGf4HtY0otnLJLejz3qiNNf0vMaFe9oHb8FdA4z22kWkRluXmVPxhfgPP5R+26VzQa/REkvV/6g+aaWkxlb5q1jtzqn3Xdek+7yRWLJd8HBfEHn1KYKst6q5Bx4g+Z/xcKWX+h3eb6StffgSLwjwiL64qZr3BaARggqHRgQivGpcdi7+sMi+H4XKYmpBa64mgF5lQIf7f2VD8Al66/Bzf4a6A2paiIipLCgAA194JI1G+cU13legwqAtvMerT4bKodo5dzKez8QH6SpyKloN31Rc6ChBj6ET+H5xpgnShDlKmH4ZmCchi1v1B8MBCy7vNZX4unuu0lyz/B2McA2Ne4mTVfxmWq/Mu93eNn5ynOuj9sfR2sa/r40jLNXV+RxtaPHofMb3BT3bAlSlTPNfQKaM5uheczOqDyE2W8btg3ttKXcl0UeMkQWRv/zBcwHlBUj63pNP7cYq+ZLyybYo/9GcpCAa6knTNyzY/Pn0Eq80ziM3rAqPaHEg/0SPSX5yHvLc3B1z2K6dmpwTYgX8T41B82vgBN8a0eNprZ18+hEeqBl8i41lhztr1D4fkQYe4L9v3x2fAZnTc+FD2H+n9DSNSloxTzHgAAAABJRU5ErkJggg==" +export const ICON_CHOOSE_HOST = "data:image/png;base64,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" +//打开座位,关闭座位 +export const ICON_OPEN_SEAT = "data:image/png;base64,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" +export const ICON_LOCK_SEAT = "data:image/png;base64,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" +//开麦,闭麦 +export const ICON_MUTE_SEAT = "data:image/png;base64,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" +export const ICON_CANCEL_MUTE_SEAT = "data:image/png;base64,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" +//拉黑,禁言 +export const ICON_BLOCK_USER = "data:image/png;base64,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" +export const ICON_MUTE_USER = "data:image/png;base64,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" +//管理面板icon ######################### + +//气泡下箭头 +export const ICON_BUBBLE_BLACK_ARROW_DOWN = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAMCAMAAABC8P0AAAAAb1BMVEUAAAAAAAAAAAAAAAAaGhoUFBQSEhIVFRUQEBAXFxcSEhIREREVFRUVFRUSEhIQEBAUFBQRERESEhISEhIRERESEhISEhISEhIRERERERESEhIRERERERESEhIRERERERERERERERERERERERERERGfbmHqAAAAJHRSTlMAAgMFCg0OGCAhKiw8PUdOaGtvkJefuLnD0tXe3+fq8fX8/f5xc98cAAAAb0lEQVQYGXXBhw2DMAAEwKeZjqkJ3ZTff8YoCCGa75CNKzXWMYMlG2o00gIM/8tXH9/AnygnPkylwE7kA2+GXOBgxi0v2sjEWVDPPMx1gBu3UNypwsWDnSpuVGrjTdIt5NIl0Airvq9CaDme5+DsB3v3GTHwjSCHAAAAAElFTkSuQmCC" + +//白色气泡箭头 +export const ICON_BUBBLE_WHITE_ARROW_UP = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAMCAMAAABC8P0AAAAAb1BMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8v0wLRAAAAJHRSTlMAAgMFCg0OGCAhKiw8RkdOaGtvkJefuMLD0tXe3+fq8fX8/f5cT/XEAAAAbUlEQVQY03XJVxZAMBQFwKd3UaKLeve/Rg6OnvkdojvDtg2S8rK2zTzZhs0ETE3wm3rUY9NH+net9Nj1U+u9bjniNBbuI1W/xkPtq9eaicCLSMxz+YCPge+vODl+5Y5CpLEKEhXTKO5mWc9dvAAgAxkt6wmxUgAAAABJRU5ErkJggg==" + @Entry class LayoutDemo extends Panel { build(root: Group) { - stack( + flexlayout( [ - scroller( - flexlayout( - [ - stack([], - { - backgroundColor: colors[1], - flexConfig: { - width: 500, - height: 100, - } - }), - stack([], - { - backgroundColor: colors[2], - flexConfig: { - width: 100, - height: 100, - } - }), - ], - { - flexConfig: { - flexDirection: FlexDirection.COLUMN, - }, - backgroundColor: colors[4].alpha(0.1) - }), - { - layoutConfig: { - widthSpec: LayoutSpec.FIT, - heightSpec: LayoutSpec.FIT, - minHeight: 200, - maxHeight: 400, - maxWidth: 300, - }, - backgroundColor: colors[0].alpha(0.3), - }) + // image({ + // imageBase64: ICON_GENDER_MAN, + // scaleType: ScaleType.ScaleAspectFit, + // // flexConfig: { + // // width: FlexTypedValue.Auto, + // // height: FlexTypedValue.Auto, + // // }, + // backgroundColor: Color.GRAY, + // layoutConfig: { + // widthSpec: LayoutSpec.FIT, + // heightSpec: LayoutSpec.JUST, + // alignment: Gravity.Center, + // }, + // height: 30, + // }), + // text({ + // text: "1234343434343456", + // backgroundColor: Color.RED, + // flexConfig: { + // width: FlexTypedValue.Auto, + // height: FlexTypedValue.Auto, + // }, + // }), + text({ + text: "123456", + backgroundColor: Color.RED, + flexConfig: { + + }, + }), + image({ + imageBase64: ICON_GENDER_MAN, + scaleType: ScaleType.ScaleAspectFit, + layoutConfig: { + widthSpec: LayoutSpec.FIT, + heightSpec: LayoutSpec.JUST, + }, + height: 20, + backgroundColor: Color.GRAY, + }), + image({ + imageBase64: ICON_GENDER_MAN, + scaleType: ScaleType.ScaleAspectFit, + flexConfig: { + width: 80, + }, + backgroundColor: Color.GRAY, + }), + image({ + imageBase64: ICON_GENDER_MAN, + scaleType: ScaleType.ScaleAspectFit, + flexConfig: { + height: 20, + }, + backgroundColor: Color.RED, + }), + image({ + imageBase64: ICON_GENDER_MAN, + scaleType: ScaleType.ScaleAspectFit, + flexConfig: { + height: 20, + }, + backgroundColor: Color.GRAY, + }), ], { - layoutConfig: layoutConfig().fit(), + flexConfig: { + width: 300, + height: 300, + flexDirection: FlexDirection.ROW, + }, + backgroundColor: Color.GRAY.alpha(0.1), } ).in(root) - // flexScroller( - // [ - // stack([], - // { - // backgroundColor: colors[1], - // flexConfig: { - // width: 500, - // height: 100, - // } - // }), - // stack([], - // { - // backgroundColor: colors[2], - // flexConfig: { - // width: 100, - // height: 300, - // } - // }), - // stack([], - // { - // backgroundColor: colors[3], - // flexConfig: { - // width: 100, - // height: 100, - // } - // }), - // ], - // { - // backgroundColor: Color.GRAY.alpha(0.3), - // layoutConfig: layoutConfig().fit(), - // flexConfig: { - // maxWidth: 300, - // maxHeight: 300, - // }, - // })//.in(root) + + image({ + imageBase64: ICON_GENDER_MAN, + backgroundColor: Color.GRAY, + layoutConfig: { + widthSpec: LayoutSpec.FIT, + heightSpec: LayoutSpec.JUST, + alignment: Gravity.Center, + }, + height: 30, + }).in(root) } } \ No newline at end of file diff --git a/doric-iOS/Pod/Classes/Shader/DoricFlexNode.m b/doric-iOS/Pod/Classes/Shader/DoricFlexNode.m index 887ea060..3a92ec4b 100644 --- a/doric-iOS/Pod/Classes/Shader/DoricFlexNode.m +++ b/doric-iOS/Pod/Classes/Shader/DoricFlexNode.m @@ -27,6 +27,16 @@ @interface DoricFlexView : UIView @implementation DoricFlexView - (CGSize)sizeThatFits:(CGSize)size { + for (UIView *view in self.subviews) { + if (!view.doricLayout.disabled) { + [view.doricLayout apply]; + [view configureLayoutWithBlock:^(YGLayout *layout) { + layout.isEnabled = YES; + layout.width = YGPointValue(view.doricLayout.measuredWidth); + layout.height = YGPointValue(view.doricLayout.measuredHeight); + }]; + } + } return [self.yoga intrinsicSize]; } @end @@ -53,6 +63,7 @@ - (void)blendSubNode:(DoricViewNode *)subNode flexConfig:(NSDictionary *)flexCon [subNode.view configureLayoutWithBlock:^(YGLayout *_Nonnull layout) { layout.isEnabled = YES; }]; + subNode.view.doricLayout.disabled = YES; [self blendYoga:subNode.view.yoga from:flexConfig]; } @@ -195,6 +206,7 @@ - (YGValue)translateYGValueFromProperty:(id)prop { - (void)requestLayout { [super requestLayout]; + if (self.view.doricLayout.widthSpec != DoricLayoutFit) { self.view.yoga.width = YGPointValue(self.view.width); } @@ -204,7 +216,7 @@ - (void)requestLayout { [self.view.yoga applyLayoutPreservingOrigin:YES]; /// Need layout again. for (UIView *view in self.view.subviews) { - if (view.yoga.isEnabled) { + if ([view isKindOfClass:[DoricFlexView class]]) { continue; } if (view.doricLayout.measuredWidth == view.width && view.doricLayout.measuredHeight == view.height) { diff --git a/doric-js/bundle/doric-sandbox.es5.js b/doric-js/bundle/doric-sandbox.es5.js index 82a1a9ba..7dbc0c03 100644 --- a/doric-js/bundle/doric-sandbox.es5.js +++ b/doric-js/bundle/doric-sandbox.es5.js @@ -1705,7 +1705,7 @@ var doric = (function (exports) { (module.exports = function (key, value) { return sharedStore[key] || (sharedStore[key] = value !== undefined ? value : {}); })('versions', []).push({ - version: '3.6.5', + version: '3.6.4', mode: 'global', copyright: '© 2020 Denis Pushkarev (zloirock.ru)' }); @@ -6489,13 +6489,7 @@ var doric = (function (exports) { defer = functionBindContext(port.postMessage, port, 1); // Browsers with postMessage, skip WebWorkers // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' - } else if ( - global_1.addEventListener && - typeof postMessage == 'function' && - !global_1.importScripts && - !fails(post) && - location.protocol !== 'file:' - ) { + } else if (global_1.addEventListener && typeof postMessage == 'function' && !global_1.importScripts && !fails(post)) { defer = post; global_1.addEventListener('message', listener, false); // IE8- @@ -9867,7 +9861,7 @@ var doric = (function (exports) { var INVALID_PORT = 'Invalid port'; var ALPHA = /[A-Za-z]/; - var ALPHANUMERIC = /[\d+-.A-Za-z]/; + var ALPHANUMERIC = /[\d+\-.A-Za-z]/; var DIGIT = /\d/; var HEX_START = /^(0x|0X)/; var OCT = /^[0-7]+$/; diff --git a/doric-web/dist/index.js b/doric-web/dist/index.js index 1b4a457d..21b86976 100644 --- a/doric-web/dist/index.js +++ b/doric-web/dist/index.js @@ -4055,7 +4055,7 @@ return __module.exports; var doric_web = (function (exports, axios, sandbox) { 'use strict'; - axios = axios && Object.prototype.hasOwnProperty.call(axios, 'default') ? axios['default'] : axios; + axios = axios && axios.hasOwnProperty('default') ? axios['default'] : axios; class DoricPlugin { constructor(context) { diff --git a/doric-web/dist/index.js.map b/doric-web/dist/index.js.map index 977cf678..9f859556 100644 --- a/doric-web/dist/index.js.map +++ b/doric-web/dist/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sources":["../build/src/DoricPlugin.js","../build/src/plugins/ShaderPlugin.js","../build/src/shader/DoricViewNode.js","../build/src/shader/DoricStackNode.js","../build/src/shader/DoricVLayoutNode.js","../build/src/shader/DoricHLayoutNode.js","../build/src/shader/DoricTextNode.js","../build/src/shader/DoricImageNode.js","../build/src/shader/DoricScrollerNode.js","../build/src/plugins/ModalPlugin.js","../build/src/plugins/StoragePlugin.js","../build/src/navigate/NavigatorPlugin.js","../build/src/plugins/PopoverPlugin.js","../build/src/shader/DoricListItemNode.js","../build/src/shader/DoricListNode.js","../build/src/shader/DoricDraggableNode.js","../build/src/DoricRegistry.js","../build/src/DoricDriver.js","../build/src/DoricContext.js","../build/src/DoricElement.js","../build/src/navigate/NavigationElement.js","../build/index.js"],"sourcesContent":["export class DoricPlugin {\n constructor(context) {\n this.context = context;\n }\n onTearDown() {\n }\n}\n","import { DoricPlugin } from \"../DoricPlugin\";\nexport class ShaderPlugin extends DoricPlugin {\n render(ret) {\n var _a;\n if (((_a = this.context.rootNode.viewId) === null || _a === void 0 ? void 0 : _a.length) > 0) {\n if (this.context.rootNode.viewId === ret.id) {\n this.context.rootNode.blend(ret.props);\n }\n else {\n for (let map of this.context.headNodes.values()) {\n const viewNode = map.get(ret.id);\n if (viewNode) {\n viewNode.blend(ret.props);\n }\n }\n }\n }\n else {\n this.context.rootNode.viewId = ret.id;\n this.context.rootNode.blend(ret.props);\n }\n }\n}\n","import { acquireViewNode } from \"../DoricRegistry\";\nexport var LayoutSpec;\n(function (LayoutSpec) {\n LayoutSpec[LayoutSpec[\"EXACTLY\"] = 0] = \"EXACTLY\";\n LayoutSpec[LayoutSpec[\"WRAP_CONTENT\"] = 1] = \"WRAP_CONTENT\";\n LayoutSpec[LayoutSpec[\"AT_MOST\"] = 2] = \"AT_MOST\";\n})(LayoutSpec || (LayoutSpec = {}));\nconst SPECIFIED = 1;\nconst START = 1 << 1;\nconst END = 1 << 2;\nconst SHIFT_X = 0;\nconst SHIFT_Y = 4;\nexport const LEFT = (START | SPECIFIED) << SHIFT_X;\nexport const RIGHT = (END | SPECIFIED) << SHIFT_X;\nexport const TOP = (START | SPECIFIED) << SHIFT_Y;\nexport const BOTTOM = (END | SPECIFIED) << SHIFT_Y;\nexport const CENTER_X = SPECIFIED << SHIFT_X;\nexport const CENTER_Y = SPECIFIED << SHIFT_Y;\nexport const CENTER = CENTER_X | CENTER_Y;\nexport function toPixelString(v) {\n return `${v}px`;\n}\nexport function toRGBAString(color) {\n let strs = [];\n for (let i = 0; i < 32; i += 8) {\n strs.push(((color >> i) & 0xff).toString(16));\n }\n strs = strs.map(e => {\n if (e.length === 1) {\n return '0' + e;\n }\n return e;\n }).reverse();\n /// RGBA\n return `#${strs[1]}${strs[2]}${strs[3]}${strs[0]}`;\n}\nexport class DoricViewNode {\n constructor(context) {\n this.viewId = \"\";\n this.viewType = \"View\";\n this.layoutConfig = {\n widthSpec: LayoutSpec.EXACTLY,\n heightSpec: LayoutSpec.EXACTLY,\n alignment: 0,\n weight: 0,\n margin: {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n }\n };\n this.padding = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n };\n this.frameWidth = 0;\n this.frameHeight = 0;\n this.offsetX = 0;\n this.offsetY = 0;\n this.context = context;\n }\n init(superNode) {\n if (superNode) {\n this.superNode = superNode;\n if (this instanceof DoricSuperNode) {\n this.reusable = superNode.reusable;\n }\n }\n this.view = this.build();\n }\n get paddingLeft() {\n return this.padding.left || 0;\n }\n get paddingRight() {\n return this.padding.right || 0;\n }\n get paddingTop() {\n return this.padding.top || 0;\n }\n get paddingBottom() {\n return this.padding.bottom || 0;\n }\n get borderWidth() {\n var _a;\n return ((_a = this.border) === null || _a === void 0 ? void 0 : _a.width) || 0;\n }\n blend(props) {\n this.view.id = `${this.viewId}`;\n for (let key in props) {\n this.blendProps(this.view, key, props[key]);\n }\n this.onBlended();\n this.layout();\n }\n onBlended() {\n }\n configBorder() {\n if (this.border) {\n this.view.style.borderStyle = \"solid\";\n this.view.style.borderWidth = toPixelString(this.border.width);\n this.view.style.borderColor = toRGBAString(this.border.color);\n }\n }\n configWidth() {\n switch (this.layoutConfig.widthSpec) {\n case LayoutSpec.WRAP_CONTENT:\n this.view.style.width = \"max-content\";\n break;\n case LayoutSpec.AT_MOST:\n this.view.style.width = \"100%\";\n break;\n case LayoutSpec.EXACTLY:\n default:\n this.view.style.width = toPixelString(this.frameWidth\n - this.paddingLeft - this.paddingRight\n - this.borderWidth * 2);\n break;\n }\n }\n configHeight() {\n switch (this.layoutConfig.heightSpec) {\n case LayoutSpec.WRAP_CONTENT:\n this.view.style.height = \"max-content\";\n break;\n case LayoutSpec.AT_MOST:\n this.view.style.height = \"100%\";\n break;\n case LayoutSpec.EXACTLY:\n default:\n this.view.style.height = toPixelString(this.frameHeight\n - this.paddingTop - this.paddingBottom\n - this.borderWidth * 2);\n break;\n }\n }\n configMargin() {\n if (this.layoutConfig.margin) {\n this.view.style.marginLeft = toPixelString(this.layoutConfig.margin.left || 0);\n this.view.style.marginRight = toPixelString(this.layoutConfig.margin.right || 0);\n this.view.style.marginTop = toPixelString(this.layoutConfig.margin.top || 0);\n this.view.style.marginBottom = toPixelString(this.layoutConfig.margin.bottom || 0);\n }\n }\n configPadding() {\n if (this.padding) {\n this.view.style.paddingLeft = toPixelString(this.paddingLeft);\n this.view.style.paddingRight = toPixelString(this.paddingRight);\n this.view.style.paddingTop = toPixelString(this.paddingTop);\n this.view.style.paddingBottom = toPixelString(this.paddingBottom);\n }\n }\n layout() {\n this.configMargin();\n this.configBorder();\n this.configPadding();\n this.configWidth();\n this.configHeight();\n }\n blendProps(v, propName, prop) {\n switch (propName) {\n case \"border\":\n this.border = prop;\n break;\n case \"padding\":\n this.padding = prop;\n break;\n case 'width':\n this.frameWidth = prop;\n break;\n case 'height':\n this.frameHeight = prop;\n break;\n case 'backgroundColor':\n this.backgroundColor = prop;\n break;\n case 'layoutConfig':\n const layoutConfig = prop;\n for (let key in layoutConfig) {\n Reflect.set(this.layoutConfig, key, Reflect.get(layoutConfig, key, layoutConfig));\n }\n break;\n case 'x':\n this.offsetX = prop;\n break;\n case 'y':\n this.offsetY = prop;\n break;\n case 'onClick':\n this.view.onclick = (event) => {\n this.callJSResponse(prop);\n event.stopPropagation();\n };\n break;\n case 'corners':\n if (typeof prop === 'object') {\n this.view.style.borderTopLeftRadius = toPixelString(prop.leftTop);\n this.view.style.borderTopRightRadius = toPixelString(prop.rightTop);\n this.view.style.borderBottomRightRadius = toPixelString(prop.rightBottom);\n this.view.style.borderBottomLeftRadius = toPixelString(prop.leftBottom);\n }\n else {\n this.view.style.borderRadius = toPixelString(prop);\n }\n break;\n case 'shadow':\n const opacity = prop.opacity || 0;\n if (opacity > 0) {\n const offsetX = prop.offsetX || 0;\n const offsetY = prop.offsetY || 0;\n const shadowColor = prop.color || 0xff000000;\n const shadowRadius = prop.radius;\n const alpha = opacity * 255;\n this.view.style.boxShadow = `${toPixelString(offsetX)} ${toPixelString(offsetY)} ${toPixelString(shadowRadius)} ${toRGBAString((shadowColor & 0xffffff) | ((alpha & 0xff) << 24))} `;\n }\n else {\n this.view.style.boxShadow = \"\";\n }\n break;\n }\n }\n set backgroundColor(v) {\n this.view.style.backgroundColor = toRGBAString(v);\n }\n static create(context, type) {\n const viewNodeClass = acquireViewNode(type);\n if (viewNodeClass === undefined) {\n console.error(`Cannot find ViewNode for ${type}`);\n return undefined;\n }\n const ret = new viewNodeClass(context);\n ret.viewType = type;\n return ret;\n }\n getIdList() {\n const ids = [];\n let viewNode = this;\n do {\n ids.push(viewNode.viewId);\n viewNode = viewNode.superNode;\n } while (viewNode);\n return ids.reverse();\n }\n callJSResponse(funcId, ...args) {\n const argumentsList = ['__response__', this.getIdList(), funcId];\n for (let i = 1; i < arguments.length; i++) {\n argumentsList.push(arguments[i]);\n }\n return Reflect.apply(this.context.invokeEntityMethod, this.context, argumentsList);\n }\n}\nexport class DoricSuperNode extends DoricViewNode {\n constructor() {\n super(...arguments);\n this.reusable = false;\n this.subModels = new Map;\n }\n blendProps(v, propName, prop) {\n if (propName === 'subviews') {\n if (prop instanceof Array) {\n prop.forEach((e) => {\n this.mixinSubModel(e);\n this.blendSubNode(e);\n });\n }\n }\n else {\n super.blendProps(v, propName, prop);\n }\n }\n mixinSubModel(subNode) {\n const oldValue = this.getSubModel(subNode.id);\n if (oldValue) {\n this.mixin(subNode, oldValue);\n }\n else {\n this.subModels.set(subNode.id, subNode);\n }\n }\n getSubModel(id) {\n return this.subModels.get(id);\n }\n mixin(src, target) {\n for (let key in src.props) {\n if (key === \"subviews\") {\n continue;\n }\n Reflect.set(target.props, key, Reflect.get(src.props, key));\n }\n }\n clearSubModels() {\n this.subModels.clear();\n }\n removeSubModel(id) {\n this.subModels.delete(id);\n }\n}\nexport class DoricGroupViewNode extends DoricSuperNode {\n constructor() {\n super(...arguments);\n this.childNodes = [];\n this.childViewIds = [];\n }\n init(superNode) {\n super.init(superNode);\n this.view.style.overflow = \"hidden\";\n }\n blendProps(v, propName, prop) {\n if (propName === 'children') {\n if (prop instanceof Array) {\n this.childViewIds = prop;\n }\n }\n else {\n super.blendProps(v, propName, prop);\n }\n }\n blend(props) {\n super.blend(props);\n }\n onBlended() {\n super.onBlended();\n this.configChildNode();\n }\n configChildNode() {\n this.childViewIds.forEach((childViewId, index) => {\n const model = this.getSubModel(childViewId);\n if (model === undefined) {\n return;\n }\n if (index < this.childNodes.length) {\n const oldNode = this.childNodes[index];\n if (oldNode.viewId === childViewId) {\n //The same,skip\n }\n else {\n if (this.reusable) {\n if (oldNode.viewType === model.type) {\n //Same type,can be reused\n oldNode.viewId = childViewId;\n oldNode.blend(model.props);\n }\n else {\n //Replace this view\n this.view.removeChild(oldNode.view);\n const newNode = DoricViewNode.create(this.context, model.type);\n if (newNode === undefined) {\n return;\n }\n newNode.viewId = childViewId;\n newNode.init(this);\n newNode.blend(model.props);\n this.childNodes[index] = newNode;\n this.view.replaceChild(newNode.view, oldNode.view);\n }\n }\n else {\n //Find in remain nodes\n let position = -1;\n for (let start = index + 1; start < this.childNodes.length; start++) {\n if (childViewId === this.childNodes[start].viewId) {\n //Found\n position = start;\n break;\n }\n }\n if (position >= 0) {\n //Found swap idx,position\n const reused = this.childNodes[position];\n const abandoned = this.childNodes[index];\n this.childNodes[index] = reused;\n this.childNodes[position] = abandoned;\n this.view.removeChild(reused.view);\n this.view.insertBefore(reused.view, abandoned.view);\n this.view.removeChild(abandoned.view);\n if (position === this.view.childElementCount - 1) {\n this.view.appendChild(abandoned.view);\n }\n else {\n this.view.insertBefore(abandoned.view, this.view.children[position]);\n }\n }\n else {\n //Not found,insert\n const newNode = DoricViewNode.create(this.context, model.type);\n if (newNode === undefined) {\n return;\n }\n newNode.viewId = childViewId;\n newNode.init(this);\n newNode.blend(model.props);\n this.childNodes[index] = newNode;\n this.view.insertBefore(newNode.view, this.view.children[index]);\n }\n }\n }\n }\n else {\n //Insert\n const newNode = DoricViewNode.create(this.context, model.type);\n if (newNode === undefined) {\n return;\n }\n newNode.viewId = childViewId;\n newNode.init(this);\n newNode.blend(model.props);\n this.childNodes.push(newNode);\n this.view.appendChild(newNode.view);\n }\n });\n let size = this.childNodes.length;\n for (let idx = this.childViewIds.length; idx < size; idx++) {\n this.view.removeChild(this.childNodes[idx].view);\n }\n this.childNodes = this.childNodes.slice(0, this.childViewIds.length);\n }\n blendSubNode(model) {\n var _a;\n (_a = this.getSubNodeById(model.id)) === null || _a === void 0 ? void 0 : _a.blend(model.props);\n }\n getSubNodeById(viewId) {\n return this.childNodes.filter(e => e.viewId === viewId)[0];\n }\n}\n","import { DoricGroupViewNode, LayoutSpec, LEFT, RIGHT, CENTER_X, CENTER_Y, TOP, BOTTOM, toPixelString } from \"./DoricViewNode\";\nexport class DoricStackNode extends DoricGroupViewNode {\n build() {\n const ret = document.createElement('div');\n ret.style.position = \"relative\";\n return ret;\n }\n layout() {\n super.layout();\n Promise.resolve().then(_ => {\n this.configSize();\n this.configOffset();\n });\n }\n configSize() {\n if (this.layoutConfig.widthSpec === LayoutSpec.WRAP_CONTENT) {\n const width = this.childNodes.reduce((prev, current) => {\n return Math.max(prev, current.view.offsetWidth);\n }, 0);\n this.view.style.width = toPixelString(width);\n }\n if (this.layoutConfig.heightSpec === LayoutSpec.WRAP_CONTENT) {\n const height = this.childNodes.reduce((prev, current) => {\n return Math.max(prev, current.view.offsetHeight);\n }, 0);\n this.view.style.height = toPixelString(height);\n }\n }\n configOffset() {\n this.childNodes.forEach(e => {\n e.view.style.position = \"absolute\";\n e.view.style.left = toPixelString(e.offsetX + this.paddingLeft);\n e.view.style.top = toPixelString(e.offsetY + this.paddingTop);\n const gravity = e.layoutConfig.alignment;\n if ((gravity & LEFT) === LEFT) {\n e.view.style.left = toPixelString(0);\n }\n else if ((gravity & RIGHT) === RIGHT) {\n e.view.style.left = toPixelString(this.view.offsetWidth - e.view.offsetWidth);\n }\n else if ((gravity & CENTER_X) === CENTER_X) {\n e.view.style.left = toPixelString(this.view.offsetWidth / 2 - e.view.offsetWidth / 2);\n }\n if ((gravity & TOP) === TOP) {\n e.view.style.top = toPixelString(0);\n }\n else if ((gravity & BOTTOM) === BOTTOM) {\n e.view.style.top = toPixelString(this.view.offsetHeight - e.view.offsetHeight);\n }\n else if ((gravity & CENTER_Y) === CENTER_Y) {\n e.view.style.top = toPixelString(this.view.offsetHeight / 2 - e.view.offsetHeight / 2);\n }\n });\n }\n}\n","import { DoricGroupViewNode, LEFT, RIGHT, CENTER_X, CENTER_Y, TOP, BOTTOM, toPixelString } from \"./DoricViewNode\";\nexport class DoricVLayoutNode extends DoricGroupViewNode {\n constructor() {\n super(...arguments);\n this.space = 0;\n this.gravity = 0;\n }\n build() {\n const ret = document.createElement('div');\n ret.style.display = \"flex\";\n ret.style.flexDirection = \"column\";\n ret.style.flexWrap = \"nowrap\";\n return ret;\n }\n blendProps(v, propName, prop) {\n if (propName === 'space') {\n this.space = prop;\n }\n else if (propName === 'gravity') {\n this.gravity = prop;\n if ((this.gravity & LEFT) === LEFT) {\n this.view.style.alignItems = \"flex-start\";\n }\n else if ((this.gravity & RIGHT) === RIGHT) {\n this.view.style.alignItems = \"flex-end\";\n }\n else if ((this.gravity & CENTER_X) === CENTER_X) {\n this.view.style.alignItems = \"center\";\n }\n if ((this.gravity & TOP) === TOP) {\n this.view.style.justifyContent = \"flex-start\";\n }\n else if ((this.gravity & BOTTOM) === BOTTOM) {\n this.view.style.justifyContent = \"flex-end\";\n }\n else if ((this.gravity & CENTER_Y) === CENTER_Y) {\n this.view.style.justifyContent = \"center\";\n }\n }\n else {\n super.blendProps(v, propName, prop);\n }\n }\n layout() {\n super.layout();\n this.childNodes.forEach((e, idx) => {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n e.view.style.flexShrink = \"0\";\n if ((_a = e.layoutConfig) === null || _a === void 0 ? void 0 : _a.weight) {\n e.view.style.flex = `${(_b = e.layoutConfig) === null || _b === void 0 ? void 0 : _b.weight}`;\n }\n e.view.style.marginTop = toPixelString(((_d = (_c = e.layoutConfig) === null || _c === void 0 ? void 0 : _c.margin) === null || _d === void 0 ? void 0 : _d.top) || 0);\n e.view.style.marginBottom = toPixelString((idx === this.childNodes.length - 1) ? 0 : this.space\n + (((_f = (_e = e.layoutConfig) === null || _e === void 0 ? void 0 : _e.margin) === null || _f === void 0 ? void 0 : _f.bottom) || 0));\n e.view.style.marginLeft = toPixelString(((_h = (_g = e.layoutConfig) === null || _g === void 0 ? void 0 : _g.margin) === null || _h === void 0 ? void 0 : _h.left) || 0);\n e.view.style.marginRight = toPixelString(((_k = (_j = e.layoutConfig) === null || _j === void 0 ? void 0 : _j.margin) === null || _k === void 0 ? void 0 : _k.right) || 0);\n if ((e.layoutConfig.alignment & LEFT) === LEFT) {\n e.view.style.alignSelf = \"flex-start\";\n }\n else if ((e.layoutConfig.alignment & RIGHT) === RIGHT) {\n e.view.style.alignSelf = \"flex-end\";\n }\n else if ((e.layoutConfig.alignment & CENTER_X) === CENTER_X) {\n e.view.style.alignSelf = \"center\";\n }\n });\n }\n}\n","import { DoricGroupViewNode, LEFT, RIGHT, CENTER_X, CENTER_Y, TOP, BOTTOM, toPixelString } from \"./DoricViewNode\";\nexport class DoricHLayoutNode extends DoricGroupViewNode {\n constructor() {\n super(...arguments);\n this.space = 0;\n this.gravity = 0;\n }\n build() {\n const ret = document.createElement('div');\n ret.style.display = \"flex\";\n ret.style.flexDirection = \"row\";\n ret.style.flexWrap = \"nowrap\";\n return ret;\n }\n blendProps(v, propName, prop) {\n if (propName === 'space') {\n this.space = prop;\n }\n else if (propName === 'gravity') {\n this.gravity = prop;\n this.gravity = prop;\n if ((this.gravity & LEFT) === LEFT) {\n this.view.style.justifyContent = \"flex-start\";\n }\n else if ((this.gravity & RIGHT) === RIGHT) {\n this.view.style.justifyContent = \"flex-end\";\n }\n else if ((this.gravity & CENTER_X) === CENTER_X) {\n this.view.style.justifyContent = \"center\";\n }\n if ((this.gravity & TOP) === TOP) {\n this.view.style.alignItems = \"flex-start\";\n }\n else if ((this.gravity & BOTTOM) === BOTTOM) {\n this.view.style.alignItems = \"flex-end\";\n }\n else if ((this.gravity & CENTER_Y) === CENTER_Y) {\n this.view.style.alignItems = \"center\";\n }\n }\n else {\n super.blendProps(v, propName, prop);\n }\n }\n layout() {\n super.layout();\n this.childNodes.forEach((e, idx) => {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n e.view.style.flexShrink = \"0\";\n if ((_a = e.layoutConfig) === null || _a === void 0 ? void 0 : _a.weight) {\n e.view.style.flex = `${(_b = e.layoutConfig) === null || _b === void 0 ? void 0 : _b.weight}`;\n }\n e.view.style.marginLeft = toPixelString(((_d = (_c = e.layoutConfig) === null || _c === void 0 ? void 0 : _c.margin) === null || _d === void 0 ? void 0 : _d.left) || 0);\n e.view.style.marginRight = toPixelString((idx === this.childNodes.length - 1) ? 0 : this.space\n + (((_f = (_e = e.layoutConfig) === null || _e === void 0 ? void 0 : _e.margin) === null || _f === void 0 ? void 0 : _f.right) || 0));\n e.view.style.marginTop = toPixelString(((_h = (_g = e.layoutConfig) === null || _g === void 0 ? void 0 : _g.margin) === null || _h === void 0 ? void 0 : _h.top) || 0);\n e.view.style.marginBottom = toPixelString(((_k = (_j = e.layoutConfig) === null || _j === void 0 ? void 0 : _j.margin) === null || _k === void 0 ? void 0 : _k.bottom) || 0);\n if ((e.layoutConfig.alignment & TOP) === TOP) {\n e.view.style.alignSelf = \"flex-start\";\n }\n else if ((e.layoutConfig.alignment & BOTTOM) === BOTTOM) {\n e.view.style.alignSelf = \"flex-end\";\n }\n else if ((e.layoutConfig.alignment & CENTER_Y) === CENTER_Y) {\n e.view.style.alignSelf = \"center\";\n }\n });\n }\n}\n","import { DoricViewNode, LEFT, RIGHT, CENTER_X, CENTER_Y, TOP, BOTTOM, toPixelString, toRGBAString } from \"./DoricViewNode\";\nexport class DoricTextNode extends DoricViewNode {\n build() {\n const div = document.createElement('div');\n div.style.display = \"flex\";\n this.textElement = document.createElement('span');\n div.appendChild(this.textElement);\n div.style.justifyContent = \"center\";\n div.style.alignItems = \"center\";\n return div;\n }\n blendProps(v, propName, prop) {\n switch (propName) {\n case 'text':\n this.textElement.innerText = prop;\n break;\n case 'textSize':\n v.style.fontSize = toPixelString(prop);\n break;\n case 'textColor':\n v.style.color = toRGBAString(prop);\n break;\n case 'textAlignment':\n const gravity = prop;\n if ((gravity & LEFT) === LEFT) {\n v.style.justifyContent = \"flex-start\";\n }\n else if ((gravity & RIGHT) === RIGHT) {\n v.style.justifyContent = \"flex-end\";\n }\n else if ((gravity & CENTER_X) === CENTER_X) {\n v.style.justifyContent = \"center\";\n }\n if ((gravity & TOP) === TOP) {\n v.style.alignItems = \"flex-start\";\n }\n else if ((gravity & BOTTOM) === BOTTOM) {\n v.style.alignItems = \"flex-end\";\n }\n else if ((gravity & CENTER_Y) === CENTER_Y) {\n v.style.alignItems = \"center\";\n }\n break;\n case \"fontStyle\":\n switch (prop) {\n case \"bold\":\n v.style.fontWeight = \"bold\";\n v.style.fontStyle = \"normal\";\n break;\n case \"italic\":\n v.style.fontWeight = \"normal\";\n v.style.fontStyle = \"italic\";\n break;\n case \"bold_italic\":\n v.style.fontWeight = \"bold\";\n v.style.fontStyle = \"italic\";\n break;\n default:\n v.style.fontWeight = \"normal\";\n v.style.fontStyle = \"normal\";\n break;\n }\n break;\n default:\n super.blendProps(v, propName, prop);\n break;\n }\n }\n}\n","import { DoricViewNode } from \"./DoricViewNode\";\nvar ScaleType;\n(function (ScaleType) {\n ScaleType[ScaleType[\"ScaleToFill\"] = 0] = \"ScaleToFill\";\n ScaleType[ScaleType[\"ScaleAspectFit\"] = 1] = \"ScaleAspectFit\";\n ScaleType[ScaleType[\"ScaleAspectFill\"] = 2] = \"ScaleAspectFill\";\n})(ScaleType || (ScaleType = {}));\nexport class DoricImageNode extends DoricViewNode {\n build() {\n const ret = document.createElement('img');\n ret.style.objectFit = \"fill\";\n return ret;\n }\n blendProps(v, propName, prop) {\n switch (propName) {\n case 'imageUrl':\n v.setAttribute('src', prop);\n break;\n case 'imageBase64':\n v.setAttribute('src', prop);\n break;\n case 'loadCallback':\n v.onload = () => {\n this.callJSResponse(prop, {\n width: v.width,\n height: v.height\n });\n };\n break;\n case 'scaleType':\n switch (prop) {\n case ScaleType.ScaleToFill:\n v.style.objectFit = \"fill\";\n break;\n case ScaleType.ScaleAspectFit:\n v.style.objectFit = \"contain\";\n break;\n case ScaleType.ScaleAspectFill:\n v.style.objectFit = \"cover\";\n break;\n }\n break;\n case 'isBlur':\n if (prop) {\n v.style.filter = 'blur(8px)';\n }\n else {\n v.style.filter = '';\n }\n break;\n default:\n super.blendProps(v, propName, prop);\n break;\n }\n }\n}\n","import { DoricSuperNode, DoricViewNode } from \"./DoricViewNode\";\nexport class DoricScrollerNode extends DoricSuperNode {\n constructor() {\n super(...arguments);\n this.childViewId = \"\";\n }\n build() {\n const ret = document.createElement('div');\n ret.style.overflow = \"scroll\";\n return ret;\n }\n blendProps(v, propName, prop) {\n if (propName === 'content') {\n this.childViewId = prop;\n }\n else {\n super.blendProps(v, propName, prop);\n }\n }\n blendSubNode(model) {\n var _a;\n (_a = this.childNode) === null || _a === void 0 ? void 0 : _a.blend(model.props);\n }\n getSubNodeById(viewId) {\n return viewId === this.childViewId ? this.childNode : undefined;\n }\n onBlended() {\n super.onBlended();\n const model = this.getSubModel(this.childViewId);\n if (model === undefined) {\n return;\n }\n if (this.childNode) {\n if (this.childNode.viewId === this.childViewId) {\n ///skip\n }\n else {\n if (this.reusable && this.childNode.viewType === model.type) {\n this.childNode.viewId = model.id;\n this.childNode.blend(model.props);\n }\n else {\n this.view.removeChild(this.childNode.view);\n const childNode = DoricViewNode.create(this.context, model.type);\n if (childNode === undefined) {\n return;\n }\n childNode.viewId = model.id;\n childNode.init(this);\n childNode.blend(model.props);\n this.view.appendChild(childNode.view);\n this.childNode = childNode;\n }\n }\n }\n else {\n const childNode = DoricViewNode.create(this.context, model.type);\n if (childNode === undefined) {\n return;\n }\n childNode.viewId = model.id;\n childNode.init(this);\n childNode.blend(model.props);\n this.view.appendChild(childNode.view);\n this.childNode = childNode;\n }\n }\n layout() {\n super.layout();\n }\n}\n","import { DoricPlugin } from '../DoricPlugin';\nimport { TOP, CENTER_Y, BOTTOM, toPixelString } from '../shader/DoricViewNode';\nexport class ModalPlugin extends DoricPlugin {\n toast(args) {\n const toastElement = document.createElement('div');\n toastElement.style.position = \"absolute\";\n toastElement.style.textAlign = \"center\";\n toastElement.style.width = \"100%\";\n const textElement = document.createElement('span');\n textElement.innerText = args.msg || \"\";\n textElement.style.backgroundColor = \"#777777\";\n textElement.style.color = \"white\";\n textElement.style.paddingLeft = '20px';\n textElement.style.paddingRight = '20px';\n textElement.style.paddingTop = '10px';\n textElement.style.paddingBottom = '10px';\n toastElement.appendChild(textElement);\n document.body.appendChild(toastElement);\n const gravity = args.gravity || BOTTOM;\n if ((gravity & TOP) == TOP) {\n toastElement.style.top = toPixelString(30);\n }\n else if ((gravity & BOTTOM) == BOTTOM) {\n toastElement.style.bottom = toPixelString(30);\n }\n else if ((gravity & CENTER_Y) == CENTER_Y) {\n toastElement.style.top = toPixelString(document.body.offsetHeight / 2 - toastElement.offsetHeight / 2);\n }\n setTimeout(() => {\n document.body.removeChild(toastElement);\n }, 2000);\n return Promise.resolve();\n }\n alert(args) {\n window.alert(args.msg || \"\");\n return Promise.resolve();\n }\n confirm(args) {\n if (window.confirm(args.msg || \"\")) {\n return Promise.resolve();\n }\n else {\n return Promise.reject();\n }\n }\n prompt(args) {\n const result = window.prompt(args.msg || \"\", args.defaultText);\n if (result) {\n return Promise.resolve(result);\n }\n else {\n return Promise.reject(result);\n }\n }\n}\n","import { DoricPlugin } from \"../DoricPlugin\";\nexport class StoragePlugin extends DoricPlugin {\n setItem(args) {\n localStorage.setItem(`${args.zone}_${args.key}`, args.value);\n return Promise.resolve();\n }\n getItem(args) {\n return Promise.resolve(localStorage.getItem(`${args.zone}_${args.key}`));\n }\n remove(args) {\n localStorage.removeItem(`${args.zone}_${args.key}`);\n return Promise.resolve();\n }\n clear(args) {\n let removingKeys = [];\n for (let i = 0; i < localStorage.length; i++) {\n const key = localStorage.key(i);\n if (key && key.startsWith(`${args.zone}_`)) {\n removingKeys.push(key);\n }\n }\n removingKeys.forEach(e => {\n localStorage.removeItem(e);\n });\n return Promise.resolve();\n }\n}\n","import { DoricPlugin } from \"../DoricPlugin\";\nimport { DoricElement } from \"../DoricElement\";\nexport class NavigatorPlugin extends DoricPlugin {\n constructor() {\n super(...arguments);\n this.navigation = document.getElementsByTagName('doric-navigation')[0];\n }\n push(args) {\n var _a;\n if (this.navigation) {\n const div = new DoricElement;\n div.src = args.source;\n div.alias = ((_a = args.config) === null || _a === void 0 ? void 0 : _a.alias) || args.source;\n this.navigation.push(div);\n return Promise.resolve();\n }\n else {\n return Promise.reject('Not implemented');\n }\n }\n pop() {\n if (this.navigation) {\n this.navigation.pop();\n return Promise.resolve();\n }\n else {\n return Promise.reject('Not implemented');\n }\n }\n}\n","import { DoricPlugin } from '../DoricPlugin';\nimport { DoricViewNode } from '../shader/DoricViewNode';\nexport class PopoverPlugin extends DoricPlugin {\n constructor(context) {\n super(context);\n this.fullScreen = document.createElement('div');\n this.fullScreen.id = `PopOver__${context.contextId}`;\n this.fullScreen.style.position = 'fixed';\n this.fullScreen.style.top = '0px';\n this.fullScreen.style.width = \"100%\";\n this.fullScreen.style.height = \"100%\";\n }\n show(model) {\n const viewNode = DoricViewNode.create(this.context, model.type);\n if (viewNode === undefined) {\n return Promise.reject(`Cannot create ViewNode for ${model.type}`);\n }\n viewNode.viewId = model.id;\n viewNode.init();\n viewNode.blend(model.props);\n this.fullScreen.appendChild(viewNode.view);\n let map = this.context.headNodes.get(PopoverPlugin.TYPE);\n if (map) {\n map.set(model.id, viewNode);\n }\n else {\n map = new Map;\n map.set(model.id, viewNode);\n this.context.headNodes.set(PopoverPlugin.TYPE, map);\n }\n if (!document.body.contains(this.fullScreen)) {\n document.body.appendChild(this.fullScreen);\n }\n return Promise.resolve();\n }\n dismiss(args) {\n if (args) {\n let map = this.context.headNodes.get(PopoverPlugin.TYPE);\n if (map) {\n const viewNode = map.get(args.id);\n if (viewNode) {\n this.fullScreen.removeChild(viewNode.view);\n }\n if (map.size === 0) {\n document.body.removeChild(this.fullScreen);\n }\n }\n }\n else {\n this.dismissAll();\n }\n return Promise.resolve();\n }\n dismissAll() {\n let map = this.context.headNodes.get(PopoverPlugin.TYPE);\n if (map) {\n for (let node of map.values()) {\n map.delete(node.viewId);\n this.fullScreen.removeChild(node.view);\n }\n }\n if (document.body.contains(this.fullScreen)) {\n document.body.removeChild(this.fullScreen);\n }\n }\n onTearDown() {\n super.onTearDown();\n this.dismissAll();\n }\n}\nPopoverPlugin.TYPE = \"popover\";\n","import { DoricStackNode } from \"./DoricStackNode\";\nexport class DoricListItemNode extends DoricStackNode {\n}\n","import { DoricSuperNode, DoricViewNode } from \"./DoricViewNode\";\nexport class DoricListNode extends DoricSuperNode {\n constructor() {\n super(...arguments);\n this.itemCount = 0;\n this.batchCount = 15;\n this.loadMore = false;\n this.childNodes = [];\n }\n blendProps(v, propName, prop) {\n switch (propName) {\n case \"itemCount\":\n this.itemCount = prop;\n break;\n case \"renderItem\":\n this.reset();\n this.renderItemFuncId = prop;\n break;\n case \"onLoadMore\":\n this.onLoadMoreFuncId = prop;\n break;\n case \"loadMoreView\":\n this.loadMoreViewId = prop;\n break;\n case \"batchCount\":\n this.batchCount = prop;\n break;\n case \"loadMore\":\n this.loadMore = prop;\n break;\n default:\n super.blendProps(v, propName, prop);\n break;\n }\n }\n reset() {\n while (this.view.lastElementChild) {\n this.view.removeChild(this.view.lastElementChild);\n }\n }\n onBlended() {\n super.onBlended();\n if (this.childNodes.length !== this.itemCount) {\n const ret = this.callJSResponse(\"renderBunchedItems\", this.childNodes.length, this.itemCount);\n this.childNodes = this.childNodes.concat(ret.map(e => {\n const viewNode = DoricViewNode.create(this.context, e.type);\n viewNode.viewId = e.id;\n viewNode.init(this);\n viewNode.blend(e.props);\n this.view.appendChild(viewNode.view);\n return viewNode;\n }));\n }\n if (this.loadMoreViewNode && this.view.contains(this.loadMoreViewNode.view)) {\n this.view.removeChild(this.loadMoreViewNode.view);\n }\n if (this.loadMore) {\n if (!this.loadMoreViewNode) {\n const loadMoreViewModel = this.getSubModel(this.loadMoreViewId || \"\");\n if (loadMoreViewModel) {\n this.loadMoreViewNode = DoricViewNode.create(this.context, loadMoreViewModel.type);\n this.loadMoreViewNode.viewId = loadMoreViewModel.id;\n this.loadMoreViewNode.init(this);\n this.loadMoreViewNode.blend(loadMoreViewModel.props);\n }\n }\n if (this.loadMoreViewNode) {\n this.view.appendChild(this.loadMoreViewNode.view);\n }\n }\n }\n blendSubNode(model) {\n const viewNode = this.getSubNodeById(model.id);\n if (viewNode) {\n viewNode.blend(model.props);\n }\n }\n getSubNodeById(viewId) {\n if (viewId === this.loadMoreViewId) {\n return this.loadMoreViewNode;\n }\n return this.childNodes.filter(e => e.viewId === viewId)[0];\n }\n onScrollToEnd() {\n if (this.loadMore && this.onLoadMoreFuncId) {\n this.callJSResponse(this.onLoadMoreFuncId);\n }\n }\n build() {\n const ret = document.createElement('div');\n ret.style.overflow = \"scroll\";\n ret.addEventListener(\"scroll\", () => {\n if (this.loadMore) {\n if (ret.scrollTop + ret.offsetHeight === ret.scrollHeight) {\n this.onScrollToEnd();\n }\n }\n });\n return ret;\n }\n}\n","import { DoricStackNode } from \"./DoricStackNode\";\nexport class DoricDraggableNode extends DoricStackNode {\n constructor() {\n super(...arguments);\n this.onDrag = \"\";\n this.dragging = false;\n this.lastX = 0;\n this.lastY = 0;\n }\n build() {\n const ret = document.createElement('div');\n ret.ontouchstart = (event) => {\n this.dragging = true;\n this.lastX = event.targetTouches[0].clientX;\n this.lastY = event.targetTouches[0].clientY;\n };\n ret.ontouchend = (event) => {\n this.dragging = false;\n };\n ret.ontouchcancel = (event) => {\n this.dragging = false;\n };\n ret.ontouchmove = (event) => {\n if (this.dragging) {\n this.offsetX += (event.targetTouches[0].clientX - this.lastX);\n this.offsetY += (event.targetTouches[0].clientY - this.lastY);\n this.callJSResponse(this.onDrag, this.offsetX, this.offsetY);\n this.lastX = event.targetTouches[0].clientX;\n this.lastY = event.targetTouches[0].clientY;\n }\n };\n ret.onmousedown = (event) => {\n this.dragging = true;\n this.lastX = event.x;\n this.lastY = event.y;\n };\n ret.onmousemove = (event) => {\n if (this.dragging) {\n this.offsetX += (event.x - this.lastX);\n this.offsetY += (event.y - this.lastY);\n this.callJSResponse(this.onDrag, this.offsetX, this.offsetY);\n this.lastX = event.x;\n this.lastY = event.y;\n }\n };\n ret.onmouseup = (event) => {\n this.dragging = false;\n };\n ret.onmouseout = (event) => {\n this.dragging = false;\n };\n ret.style.position = \"relative\";\n return ret;\n }\n blendProps(v, propName, prop) {\n switch (propName) {\n case 'onDrag':\n this.onDrag = prop;\n break;\n default:\n super.blendProps(v, propName, prop);\n break;\n }\n }\n}\n","import { ShaderPlugin } from \"./plugins/ShaderPlugin\";\nimport { DoricStackNode } from \"./shader/DoricStackNode\";\nimport { DoricVLayoutNode } from './shader/DoricVLayoutNode';\nimport { DoricHLayoutNode } from './shader/DoricHLayoutNode';\nimport { DoricTextNode } from \"./shader/DoricTextNode\";\nimport { DoricImageNode } from \"./shader/DoricImageNode\";\nimport { DoricScrollerNode } from \"./shader/DoricScrollerNode\";\nimport { ModalPlugin } from './plugins/ModalPlugin';\nimport { StoragePlugin } from \"./plugins/StoragePlugin\";\nimport { NavigatorPlugin } from \"./navigate/NavigatorPlugin\";\nimport { PopoverPlugin } from './plugins/PopoverPlugin';\nimport { DoricListItemNode } from \"./shader/DoricListItemNode\";\nimport { DoricListNode } from \"./shader/DoricListNode\";\nimport { DoricDraggableNode } from \"./shader/DoricDraggableNode\";\nconst bundles = new Map;\nconst plugins = new Map;\nconst nodes = new Map;\nexport function acquireJSBundle(name) {\n return bundles.get(name);\n}\nexport function registerJSBundle(name, bundle) {\n bundles.set(name, bundle);\n}\nexport function registerPlugin(name, plugin) {\n plugins.set(name, plugin);\n}\nexport function acquirePlugin(name) {\n return plugins.get(name);\n}\nexport function registerViewNode(name, node) {\n nodes.set(name, node);\n}\nexport function acquireViewNode(name) {\n return nodes.get(name);\n}\nregisterPlugin('shader', ShaderPlugin);\nregisterPlugin('modal', ModalPlugin);\nregisterPlugin('storage', StoragePlugin);\nregisterPlugin('navigator', NavigatorPlugin);\nregisterPlugin('popover', PopoverPlugin);\nregisterViewNode('Stack', DoricStackNode);\nregisterViewNode('VLayout', DoricVLayoutNode);\nregisterViewNode('HLayout', DoricHLayoutNode);\nregisterViewNode('Text', DoricTextNode);\nregisterViewNode('Image', DoricImageNode);\nregisterViewNode('Scroller', DoricScrollerNode);\nregisterViewNode('ListItem', DoricListItemNode);\nregisterViewNode('List', DoricListNode);\nregisterViewNode('Draggable', DoricDraggableNode);\n","import { jsCallResolve, jsCallReject, jsCallbackTimer, jsReleaseContext } from 'doric/src/runtime/sandbox';\nimport { acquireJSBundle, acquirePlugin } from './DoricRegistry';\nimport { getDoricContext } from './DoricContext';\nfunction getScriptId(contextId) {\n return `__doric_script_${contextId}`;\n}\nconst originSetTimeout = window.setTimeout;\nconst originClearTimeout = window.clearTimeout;\nconst originSetInterval = window.setInterval;\nconst originClearInterval = window.clearInterval;\nconst timers = new Map;\nexport function injectGlobalObject(name, value) {\n Reflect.set(window, name, value, window);\n}\nexport function loadJS(contextId, script) {\n const scriptElement = document.createElement('script');\n scriptElement.text = script;\n scriptElement.id = getScriptId(contextId);\n document.body.appendChild(scriptElement);\n}\nfunction packageModuleScript(name, content) {\n return `Reflect.apply(doric.jsRegisterModule,this,[${name},Reflect.apply(function(__module){(function(module,exports,require,setTimeout,setInterval,clearTimeout,clearInterval){\n${content}\n})(__module,__module.exports,doric.__require__,doricSetTimeout,doricSetInterval,doricClearTimeout,doricClearInterval);\nreturn __module.exports;},this,[{exports:{}}])])`;\n}\nfunction packageCreateContext(contextId, content) {\n return `//@ sourceURL=contextId_${contextId}.js\nReflect.apply(function(doric,context,Entry,require,exports,setTimeout,setInterval,clearTimeout,clearInterval){\n${content}\n},undefined,[undefined,doric.jsObtainContext(\"${contextId}\"),doric.jsObtainEntry(\"${contextId}\"),doric.__require__,{},doricSetTimeout,doricSetInterval,doricClearTimeout,doricClearInterval])`;\n}\nfunction initDoric() {\n injectGlobalObject(\"Environment\", {\n platform: \"h5\"\n });\n injectGlobalObject(\"nativeEmpty\", () => undefined);\n injectGlobalObject('nativeLog', (type, message) => {\n switch (type) {\n case 'd':\n console.log(message);\n break;\n case 'w':\n console.warn(message);\n break;\n case 'e':\n console.error(message);\n break;\n }\n });\n injectGlobalObject('nativeRequire', (moduleName) => {\n const bundle = acquireJSBundle(moduleName);\n if (bundle === undefined || bundle.length === 0) {\n console.log(`Cannot require JS Bundle :${moduleName}`);\n return false;\n }\n else {\n loadJS(moduleName, packageModuleScript(moduleName, packageModuleScript(name, bundle)));\n return true;\n }\n });\n injectGlobalObject('nativeBridge', (contextId, namespace, method, callbackId, args) => {\n const pluginClass = acquirePlugin(namespace);\n const doricContext = getDoricContext(contextId);\n if (pluginClass === undefined) {\n console.error(`Cannot find Plugin:${namespace}`);\n return false;\n }\n if (doricContext === undefined) {\n console.error(`Cannot find Doric Context:${contextId}`);\n return false;\n }\n let plugin = doricContext.pluginInstances.get(namespace);\n if (plugin === undefined) {\n plugin = new pluginClass(doricContext);\n doricContext.pluginInstances.set(namespace, plugin);\n }\n if (!Reflect.has(plugin, method)) {\n console.error(`Cannot find Method:${method} in plugin ${namespace}`);\n return false;\n }\n const pluginMethod = Reflect.get(plugin, method, plugin);\n if (typeof pluginMethod !== 'function') {\n console.error(`Plugin ${namespace}'s property ${method}'s type is ${typeof pluginMethod} not function,`);\n }\n const ret = Reflect.apply(pluginMethod, plugin, [args]);\n if (ret instanceof Promise) {\n ret.then(e => {\n jsCallResolve(contextId, callbackId, e);\n }, e => {\n jsCallReject(contextId, callbackId, e);\n });\n }\n else if (ret !== undefined) {\n jsCallResolve(contextId, callbackId, ret);\n }\n return true;\n });\n injectGlobalObject('nativeSetTimer', (timerId, time, repeat) => {\n if (repeat) {\n const handleId = originSetInterval(() => {\n jsCallbackTimer(timerId);\n }, time);\n timers.set(timerId, { handleId, repeat });\n }\n else {\n const handleId = originSetTimeout(() => {\n jsCallbackTimer(timerId);\n }, time);\n timers.set(timerId, { handleId, repeat });\n }\n });\n injectGlobalObject('nativeClearTimer', (timerId) => {\n const timerInfo = timers.get(timerId);\n if (timerInfo) {\n if (timerInfo.repeat) {\n originClearInterval(timerInfo.handleId);\n }\n else {\n originClearTimeout(timerInfo.handleId);\n }\n }\n });\n}\nexport function createContext(contextId, content) {\n loadJS(contextId, packageCreateContext(contextId, content));\n}\nexport function destroyContext(contextId) {\n jsReleaseContext(contextId);\n const scriptElement = document.getElementById(getScriptId(contextId));\n if (scriptElement) {\n document.body.removeChild(scriptElement);\n }\n}\ninitDoric();\n","import { jsObtainContext, jsCallEntityMethod } from 'doric/src/runtime/sandbox';\nimport { createContext, destroyContext } from \"./DoricDriver\";\nimport { DoricStackNode } from './shader/DoricStackNode';\nconst doricContexts = new Map;\nlet __contextId__ = 0;\nfunction getContextId() {\n return `context_${__contextId__++}`;\n}\nexport function getDoricContext(contextId) {\n return doricContexts.get(contextId);\n}\nexport class DoricContext {\n constructor(content) {\n this.contextId = getContextId();\n this.pluginInstances = new Map;\n this.headNodes = new Map;\n createContext(this.contextId, content);\n doricContexts.set(this.contextId, this);\n this.rootNode = new DoricStackNode(this);\n }\n get panel() {\n var _a;\n return (_a = jsObtainContext(this.contextId)) === null || _a === void 0 ? void 0 : _a.entity;\n }\n invokeEntityMethod(method, ...otherArgs) {\n const argumentsList = [this.contextId];\n for (let i = 0; i < arguments.length; i++) {\n argumentsList.push(arguments[i]);\n }\n return Reflect.apply(jsCallEntityMethod, this.panel, argumentsList);\n }\n init(extra) {\n this.invokeEntityMethod(\"__init__\", extra ? JSON.stringify(extra) : undefined);\n }\n build(frame) {\n this.invokeEntityMethod(\"__build__\", frame);\n }\n teardown() {\n for (let plugin of this.pluginInstances.values()) {\n plugin.onTearDown();\n }\n destroyContext(this.contextId);\n }\n}\n","import axios from 'axios';\nimport { DoricContext } from './DoricContext';\nexport class DoricElement extends HTMLElement {\n constructor() {\n super();\n }\n get src() {\n return this.getAttribute('src');\n }\n get alias() {\n return this.getAttribute('alias');\n }\n set src(v) {\n this.setAttribute('src', v);\n }\n set alias(v) {\n this.setAttribute('alias', v);\n }\n connectedCallback() {\n if (this.src && this.context === undefined) {\n axios.get(this.src).then(result => {\n this.load(result.data);\n });\n }\n }\n disconnectedCallback() {\n }\n adoptedCallback() {\n }\n attributeChangedCallback() {\n }\n onDestroy() {\n var _a;\n (_a = this.context) === null || _a === void 0 ? void 0 : _a.teardown();\n }\n load(content) {\n this.context = new DoricContext(content);\n const divElement = document.createElement('div');\n divElement.style.position = 'relative';\n divElement.style.height = '100%';\n this.append(divElement);\n this.context.rootNode.view = divElement;\n this.context.build({\n width: divElement.offsetWidth,\n height: divElement.offsetHeight,\n });\n }\n}\n","import { DoricElement } from \"../DoricElement\";\nexport class NavigationElement extends HTMLElement {\n constructor() {\n super(...arguments);\n this.elementStack = [];\n }\n get currentNode() {\n for (let i = 0; i < this.childNodes.length; i++) {\n if (this.childNodes[i] instanceof DoricElement) {\n return this.childNodes[i];\n }\n }\n return undefined;\n }\n push(element) {\n const currentNode = this.currentNode;\n if (currentNode) {\n this.elementStack.push(currentNode);\n this.replaceChild(element, currentNode);\n }\n else {\n this.appendChild(element);\n }\n }\n pop() {\n const lastElement = this.elementStack.pop();\n const currentNode = this.currentNode;\n if (lastElement && currentNode) {\n this.replaceChild(lastElement, currentNode);\n currentNode.onDestroy();\n }\n else {\n window.history.back();\n }\n }\n}\n","import { DoricElement } from './src/DoricElement';\nimport { NavigationElement } from './src/navigate/NavigationElement';\nwindow.customElements.define('doric-div', DoricElement);\nwindow.customElements.define('doric-navigation', NavigationElement);\nexport * from './src/DoricElement';\nexport * from './src/navigate/NavigationElement';\nexport * from './src/DoricPlugin';\nexport * from './src/DoricRegistry';\nexport * from './src/DoricDriver';\nexport * from './src/shader/DoricViewNode';\n"],"names":["LayoutSpec","jsCallResolve","jsCallReject","jsCallbackTimer","jsReleaseContext","jsObtainContext","jsCallEntityMethod"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"} \ No newline at end of file +{"version":3,"file":"index.js","sources":["../build/src/DoricPlugin.js","../build/src/plugins/ShaderPlugin.js","../build/src/shader/DoricViewNode.js","../build/src/shader/DoricStackNode.js","../build/src/shader/DoricVLayoutNode.js","../build/src/shader/DoricHLayoutNode.js","../build/src/shader/DoricTextNode.js","../build/src/shader/DoricImageNode.js","../build/src/shader/DoricScrollerNode.js","../build/src/plugins/ModalPlugin.js","../build/src/plugins/StoragePlugin.js","../build/src/navigate/NavigatorPlugin.js","../build/src/plugins/PopoverPlugin.js","../build/src/shader/DoricListItemNode.js","../build/src/shader/DoricListNode.js","../build/src/shader/DoricDraggableNode.js","../build/src/DoricRegistry.js","../build/src/DoricDriver.js","../build/src/DoricContext.js","../build/src/DoricElement.js","../build/src/navigate/NavigationElement.js","../build/index.js"],"sourcesContent":["export class DoricPlugin {\n constructor(context) {\n this.context = context;\n }\n onTearDown() {\n }\n}\n","import { DoricPlugin } from \"../DoricPlugin\";\nexport class ShaderPlugin extends DoricPlugin {\n render(ret) {\n var _a;\n if (((_a = this.context.rootNode.viewId) === null || _a === void 0 ? void 0 : _a.length) > 0) {\n if (this.context.rootNode.viewId === ret.id) {\n this.context.rootNode.blend(ret.props);\n }\n else {\n for (let map of this.context.headNodes.values()) {\n const viewNode = map.get(ret.id);\n if (viewNode) {\n viewNode.blend(ret.props);\n }\n }\n }\n }\n else {\n this.context.rootNode.viewId = ret.id;\n this.context.rootNode.blend(ret.props);\n }\n }\n}\n","import { acquireViewNode } from \"../DoricRegistry\";\nexport var LayoutSpec;\n(function (LayoutSpec) {\n LayoutSpec[LayoutSpec[\"EXACTLY\"] = 0] = \"EXACTLY\";\n LayoutSpec[LayoutSpec[\"WRAP_CONTENT\"] = 1] = \"WRAP_CONTENT\";\n LayoutSpec[LayoutSpec[\"AT_MOST\"] = 2] = \"AT_MOST\";\n})(LayoutSpec || (LayoutSpec = {}));\nconst SPECIFIED = 1;\nconst START = 1 << 1;\nconst END = 1 << 2;\nconst SHIFT_X = 0;\nconst SHIFT_Y = 4;\nexport const LEFT = (START | SPECIFIED) << SHIFT_X;\nexport const RIGHT = (END | SPECIFIED) << SHIFT_X;\nexport const TOP = (START | SPECIFIED) << SHIFT_Y;\nexport const BOTTOM = (END | SPECIFIED) << SHIFT_Y;\nexport const CENTER_X = SPECIFIED << SHIFT_X;\nexport const CENTER_Y = SPECIFIED << SHIFT_Y;\nexport const CENTER = CENTER_X | CENTER_Y;\nexport function toPixelString(v) {\n return `${v}px`;\n}\nexport function toRGBAString(color) {\n let strs = [];\n for (let i = 0; i < 32; i += 8) {\n strs.push(((color >> i) & 0xff).toString(16));\n }\n strs = strs.map(e => {\n if (e.length === 1) {\n return '0' + e;\n }\n return e;\n }).reverse();\n /// RGBA\n return `#${strs[1]}${strs[2]}${strs[3]}${strs[0]}`;\n}\nexport class DoricViewNode {\n constructor(context) {\n this.viewId = \"\";\n this.viewType = \"View\";\n this.layoutConfig = {\n widthSpec: LayoutSpec.EXACTLY,\n heightSpec: LayoutSpec.EXACTLY,\n alignment: 0,\n weight: 0,\n margin: {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n }\n };\n this.padding = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n };\n this.frameWidth = 0;\n this.frameHeight = 0;\n this.offsetX = 0;\n this.offsetY = 0;\n this.context = context;\n }\n init(superNode) {\n if (superNode) {\n this.superNode = superNode;\n if (this instanceof DoricSuperNode) {\n this.reusable = superNode.reusable;\n }\n }\n this.view = this.build();\n }\n get paddingLeft() {\n return this.padding.left || 0;\n }\n get paddingRight() {\n return this.padding.right || 0;\n }\n get paddingTop() {\n return this.padding.top || 0;\n }\n get paddingBottom() {\n return this.padding.bottom || 0;\n }\n get borderWidth() {\n var _a;\n return ((_a = this.border) === null || _a === void 0 ? void 0 : _a.width) || 0;\n }\n blend(props) {\n this.view.id = `${this.viewId}`;\n for (let key in props) {\n this.blendProps(this.view, key, props[key]);\n }\n this.onBlended();\n this.layout();\n }\n onBlended() {\n }\n configBorder() {\n if (this.border) {\n this.view.style.borderStyle = \"solid\";\n this.view.style.borderWidth = toPixelString(this.border.width);\n this.view.style.borderColor = toRGBAString(this.border.color);\n }\n }\n configWidth() {\n switch (this.layoutConfig.widthSpec) {\n case LayoutSpec.WRAP_CONTENT:\n this.view.style.width = \"max-content\";\n break;\n case LayoutSpec.AT_MOST:\n this.view.style.width = \"100%\";\n break;\n case LayoutSpec.EXACTLY:\n default:\n this.view.style.width = toPixelString(this.frameWidth\n - this.paddingLeft - this.paddingRight\n - this.borderWidth * 2);\n break;\n }\n }\n configHeight() {\n switch (this.layoutConfig.heightSpec) {\n case LayoutSpec.WRAP_CONTENT:\n this.view.style.height = \"max-content\";\n break;\n case LayoutSpec.AT_MOST:\n this.view.style.height = \"100%\";\n break;\n case LayoutSpec.EXACTLY:\n default:\n this.view.style.height = toPixelString(this.frameHeight\n - this.paddingTop - this.paddingBottom\n - this.borderWidth * 2);\n break;\n }\n }\n configMargin() {\n if (this.layoutConfig.margin) {\n this.view.style.marginLeft = toPixelString(this.layoutConfig.margin.left || 0);\n this.view.style.marginRight = toPixelString(this.layoutConfig.margin.right || 0);\n this.view.style.marginTop = toPixelString(this.layoutConfig.margin.top || 0);\n this.view.style.marginBottom = toPixelString(this.layoutConfig.margin.bottom || 0);\n }\n }\n configPadding() {\n if (this.padding) {\n this.view.style.paddingLeft = toPixelString(this.paddingLeft);\n this.view.style.paddingRight = toPixelString(this.paddingRight);\n this.view.style.paddingTop = toPixelString(this.paddingTop);\n this.view.style.paddingBottom = toPixelString(this.paddingBottom);\n }\n }\n layout() {\n this.configMargin();\n this.configBorder();\n this.configPadding();\n this.configWidth();\n this.configHeight();\n }\n blendProps(v, propName, prop) {\n switch (propName) {\n case \"border\":\n this.border = prop;\n break;\n case \"padding\":\n this.padding = prop;\n break;\n case 'width':\n this.frameWidth = prop;\n break;\n case 'height':\n this.frameHeight = prop;\n break;\n case 'backgroundColor':\n this.backgroundColor = prop;\n break;\n case 'layoutConfig':\n const layoutConfig = prop;\n for (let key in layoutConfig) {\n Reflect.set(this.layoutConfig, key, Reflect.get(layoutConfig, key, layoutConfig));\n }\n break;\n case 'x':\n this.offsetX = prop;\n break;\n case 'y':\n this.offsetY = prop;\n break;\n case 'onClick':\n this.view.onclick = (event) => {\n this.callJSResponse(prop);\n event.stopPropagation();\n };\n break;\n case 'corners':\n if (typeof prop === 'object') {\n this.view.style.borderTopLeftRadius = toPixelString(prop.leftTop);\n this.view.style.borderTopRightRadius = toPixelString(prop.rightTop);\n this.view.style.borderBottomRightRadius = toPixelString(prop.rightBottom);\n this.view.style.borderBottomLeftRadius = toPixelString(prop.leftBottom);\n }\n else {\n this.view.style.borderRadius = toPixelString(prop);\n }\n break;\n case 'shadow':\n const opacity = prop.opacity || 0;\n if (opacity > 0) {\n const offsetX = prop.offsetX || 0;\n const offsetY = prop.offsetY || 0;\n const shadowColor = prop.color || 0xff000000;\n const shadowRadius = prop.radius;\n const alpha = opacity * 255;\n this.view.style.boxShadow = `${toPixelString(offsetX)} ${toPixelString(offsetY)} ${toPixelString(shadowRadius)} ${toRGBAString((shadowColor & 0xffffff) | ((alpha & 0xff) << 24))} `;\n }\n else {\n this.view.style.boxShadow = \"\";\n }\n break;\n }\n }\n set backgroundColor(v) {\n this.view.style.backgroundColor = toRGBAString(v);\n }\n static create(context, type) {\n const viewNodeClass = acquireViewNode(type);\n if (viewNodeClass === undefined) {\n console.error(`Cannot find ViewNode for ${type}`);\n return undefined;\n }\n const ret = new viewNodeClass(context);\n ret.viewType = type;\n return ret;\n }\n getIdList() {\n const ids = [];\n let viewNode = this;\n do {\n ids.push(viewNode.viewId);\n viewNode = viewNode.superNode;\n } while (viewNode);\n return ids.reverse();\n }\n callJSResponse(funcId, ...args) {\n const argumentsList = ['__response__', this.getIdList(), funcId];\n for (let i = 1; i < arguments.length; i++) {\n argumentsList.push(arguments[i]);\n }\n return Reflect.apply(this.context.invokeEntityMethod, this.context, argumentsList);\n }\n}\nexport class DoricSuperNode extends DoricViewNode {\n constructor() {\n super(...arguments);\n this.reusable = false;\n this.subModels = new Map;\n }\n blendProps(v, propName, prop) {\n if (propName === 'subviews') {\n if (prop instanceof Array) {\n prop.forEach((e) => {\n this.mixinSubModel(e);\n this.blendSubNode(e);\n });\n }\n }\n else {\n super.blendProps(v, propName, prop);\n }\n }\n mixinSubModel(subNode) {\n const oldValue = this.getSubModel(subNode.id);\n if (oldValue) {\n this.mixin(subNode, oldValue);\n }\n else {\n this.subModels.set(subNode.id, subNode);\n }\n }\n getSubModel(id) {\n return this.subModels.get(id);\n }\n mixin(src, target) {\n for (let key in src.props) {\n if (key === \"subviews\") {\n continue;\n }\n Reflect.set(target.props, key, Reflect.get(src.props, key));\n }\n }\n clearSubModels() {\n this.subModels.clear();\n }\n removeSubModel(id) {\n this.subModels.delete(id);\n }\n}\nexport class DoricGroupViewNode extends DoricSuperNode {\n constructor() {\n super(...arguments);\n this.childNodes = [];\n this.childViewIds = [];\n }\n init(superNode) {\n super.init(superNode);\n this.view.style.overflow = \"hidden\";\n }\n blendProps(v, propName, prop) {\n if (propName === 'children') {\n if (prop instanceof Array) {\n this.childViewIds = prop;\n }\n }\n else {\n super.blendProps(v, propName, prop);\n }\n }\n blend(props) {\n super.blend(props);\n }\n onBlended() {\n super.onBlended();\n this.configChildNode();\n }\n configChildNode() {\n this.childViewIds.forEach((childViewId, index) => {\n const model = this.getSubModel(childViewId);\n if (model === undefined) {\n return;\n }\n if (index < this.childNodes.length) {\n const oldNode = this.childNodes[index];\n if (oldNode.viewId === childViewId) {\n //The same,skip\n }\n else {\n if (this.reusable) {\n if (oldNode.viewType === model.type) {\n //Same type,can be reused\n oldNode.viewId = childViewId;\n oldNode.blend(model.props);\n }\n else {\n //Replace this view\n this.view.removeChild(oldNode.view);\n const newNode = DoricViewNode.create(this.context, model.type);\n if (newNode === undefined) {\n return;\n }\n newNode.viewId = childViewId;\n newNode.init(this);\n newNode.blend(model.props);\n this.childNodes[index] = newNode;\n this.view.replaceChild(newNode.view, oldNode.view);\n }\n }\n else {\n //Find in remain nodes\n let position = -1;\n for (let start = index + 1; start < this.childNodes.length; start++) {\n if (childViewId === this.childNodes[start].viewId) {\n //Found\n position = start;\n break;\n }\n }\n if (position >= 0) {\n //Found swap idx,position\n const reused = this.childNodes[position];\n const abandoned = this.childNodes[index];\n this.childNodes[index] = reused;\n this.childNodes[position] = abandoned;\n this.view.removeChild(reused.view);\n this.view.insertBefore(reused.view, abandoned.view);\n this.view.removeChild(abandoned.view);\n if (position === this.view.childElementCount - 1) {\n this.view.appendChild(abandoned.view);\n }\n else {\n this.view.insertBefore(abandoned.view, this.view.children[position]);\n }\n }\n else {\n //Not found,insert\n const newNode = DoricViewNode.create(this.context, model.type);\n if (newNode === undefined) {\n return;\n }\n newNode.viewId = childViewId;\n newNode.init(this);\n newNode.blend(model.props);\n this.childNodes[index] = newNode;\n this.view.insertBefore(newNode.view, this.view.children[index]);\n }\n }\n }\n }\n else {\n //Insert\n const newNode = DoricViewNode.create(this.context, model.type);\n if (newNode === undefined) {\n return;\n }\n newNode.viewId = childViewId;\n newNode.init(this);\n newNode.blend(model.props);\n this.childNodes.push(newNode);\n this.view.appendChild(newNode.view);\n }\n });\n let size = this.childNodes.length;\n for (let idx = this.childViewIds.length; idx < size; idx++) {\n this.view.removeChild(this.childNodes[idx].view);\n }\n this.childNodes = this.childNodes.slice(0, this.childViewIds.length);\n }\n blendSubNode(model) {\n var _a;\n (_a = this.getSubNodeById(model.id)) === null || _a === void 0 ? void 0 : _a.blend(model.props);\n }\n getSubNodeById(viewId) {\n return this.childNodes.filter(e => e.viewId === viewId)[0];\n }\n}\n","import { DoricGroupViewNode, LayoutSpec, LEFT, RIGHT, CENTER_X, CENTER_Y, TOP, BOTTOM, toPixelString } from \"./DoricViewNode\";\nexport class DoricStackNode extends DoricGroupViewNode {\n build() {\n const ret = document.createElement('div');\n ret.style.position = \"relative\";\n return ret;\n }\n layout() {\n super.layout();\n Promise.resolve().then(_ => {\n this.configSize();\n this.configOffset();\n });\n }\n configSize() {\n if (this.layoutConfig.widthSpec === LayoutSpec.WRAP_CONTENT) {\n const width = this.childNodes.reduce((prev, current) => {\n return Math.max(prev, current.view.offsetWidth);\n }, 0);\n this.view.style.width = toPixelString(width);\n }\n if (this.layoutConfig.heightSpec === LayoutSpec.WRAP_CONTENT) {\n const height = this.childNodes.reduce((prev, current) => {\n return Math.max(prev, current.view.offsetHeight);\n }, 0);\n this.view.style.height = toPixelString(height);\n }\n }\n configOffset() {\n this.childNodes.forEach(e => {\n e.view.style.position = \"absolute\";\n e.view.style.left = toPixelString(e.offsetX + this.paddingLeft);\n e.view.style.top = toPixelString(e.offsetY + this.paddingTop);\n const gravity = e.layoutConfig.alignment;\n if ((gravity & LEFT) === LEFT) {\n e.view.style.left = toPixelString(0);\n }\n else if ((gravity & RIGHT) === RIGHT) {\n e.view.style.left = toPixelString(this.view.offsetWidth - e.view.offsetWidth);\n }\n else if ((gravity & CENTER_X) === CENTER_X) {\n e.view.style.left = toPixelString(this.view.offsetWidth / 2 - e.view.offsetWidth / 2);\n }\n if ((gravity & TOP) === TOP) {\n e.view.style.top = toPixelString(0);\n }\n else if ((gravity & BOTTOM) === BOTTOM) {\n e.view.style.top = toPixelString(this.view.offsetHeight - e.view.offsetHeight);\n }\n else if ((gravity & CENTER_Y) === CENTER_Y) {\n e.view.style.top = toPixelString(this.view.offsetHeight / 2 - e.view.offsetHeight / 2);\n }\n });\n }\n}\n","import { DoricGroupViewNode, LEFT, RIGHT, CENTER_X, CENTER_Y, TOP, BOTTOM, toPixelString } from \"./DoricViewNode\";\nexport class DoricVLayoutNode extends DoricGroupViewNode {\n constructor() {\n super(...arguments);\n this.space = 0;\n this.gravity = 0;\n }\n build() {\n const ret = document.createElement('div');\n ret.style.display = \"flex\";\n ret.style.flexDirection = \"column\";\n ret.style.flexWrap = \"nowrap\";\n return ret;\n }\n blendProps(v, propName, prop) {\n if (propName === 'space') {\n this.space = prop;\n }\n else if (propName === 'gravity') {\n this.gravity = prop;\n if ((this.gravity & LEFT) === LEFT) {\n this.view.style.alignItems = \"flex-start\";\n }\n else if ((this.gravity & RIGHT) === RIGHT) {\n this.view.style.alignItems = \"flex-end\";\n }\n else if ((this.gravity & CENTER_X) === CENTER_X) {\n this.view.style.alignItems = \"center\";\n }\n if ((this.gravity & TOP) === TOP) {\n this.view.style.justifyContent = \"flex-start\";\n }\n else if ((this.gravity & BOTTOM) === BOTTOM) {\n this.view.style.justifyContent = \"flex-end\";\n }\n else if ((this.gravity & CENTER_Y) === CENTER_Y) {\n this.view.style.justifyContent = \"center\";\n }\n }\n else {\n super.blendProps(v, propName, prop);\n }\n }\n layout() {\n super.layout();\n this.childNodes.forEach((e, idx) => {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n e.view.style.flexShrink = \"0\";\n if ((_a = e.layoutConfig) === null || _a === void 0 ? void 0 : _a.weight) {\n e.view.style.flex = `${(_b = e.layoutConfig) === null || _b === void 0 ? void 0 : _b.weight}`;\n }\n e.view.style.marginTop = toPixelString(((_d = (_c = e.layoutConfig) === null || _c === void 0 ? void 0 : _c.margin) === null || _d === void 0 ? void 0 : _d.top) || 0);\n e.view.style.marginBottom = toPixelString((idx === this.childNodes.length - 1) ? 0 : this.space\n + (((_f = (_e = e.layoutConfig) === null || _e === void 0 ? void 0 : _e.margin) === null || _f === void 0 ? void 0 : _f.bottom) || 0));\n e.view.style.marginLeft = toPixelString(((_h = (_g = e.layoutConfig) === null || _g === void 0 ? void 0 : _g.margin) === null || _h === void 0 ? void 0 : _h.left) || 0);\n e.view.style.marginRight = toPixelString(((_k = (_j = e.layoutConfig) === null || _j === void 0 ? void 0 : _j.margin) === null || _k === void 0 ? void 0 : _k.right) || 0);\n if ((e.layoutConfig.alignment & LEFT) === LEFT) {\n e.view.style.alignSelf = \"flex-start\";\n }\n else if ((e.layoutConfig.alignment & RIGHT) === RIGHT) {\n e.view.style.alignSelf = \"flex-end\";\n }\n else if ((e.layoutConfig.alignment & CENTER_X) === CENTER_X) {\n e.view.style.alignSelf = \"center\";\n }\n });\n }\n}\n","import { DoricGroupViewNode, LEFT, RIGHT, CENTER_X, CENTER_Y, TOP, BOTTOM, toPixelString } from \"./DoricViewNode\";\nexport class DoricHLayoutNode extends DoricGroupViewNode {\n constructor() {\n super(...arguments);\n this.space = 0;\n this.gravity = 0;\n }\n build() {\n const ret = document.createElement('div');\n ret.style.display = \"flex\";\n ret.style.flexDirection = \"row\";\n ret.style.flexWrap = \"nowrap\";\n return ret;\n }\n blendProps(v, propName, prop) {\n if (propName === 'space') {\n this.space = prop;\n }\n else if (propName === 'gravity') {\n this.gravity = prop;\n this.gravity = prop;\n if ((this.gravity & LEFT) === LEFT) {\n this.view.style.justifyContent = \"flex-start\";\n }\n else if ((this.gravity & RIGHT) === RIGHT) {\n this.view.style.justifyContent = \"flex-end\";\n }\n else if ((this.gravity & CENTER_X) === CENTER_X) {\n this.view.style.justifyContent = \"center\";\n }\n if ((this.gravity & TOP) === TOP) {\n this.view.style.alignItems = \"flex-start\";\n }\n else if ((this.gravity & BOTTOM) === BOTTOM) {\n this.view.style.alignItems = \"flex-end\";\n }\n else if ((this.gravity & CENTER_Y) === CENTER_Y) {\n this.view.style.alignItems = \"center\";\n }\n }\n else {\n super.blendProps(v, propName, prop);\n }\n }\n layout() {\n super.layout();\n this.childNodes.forEach((e, idx) => {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n e.view.style.flexShrink = \"0\";\n if ((_a = e.layoutConfig) === null || _a === void 0 ? void 0 : _a.weight) {\n e.view.style.flex = `${(_b = e.layoutConfig) === null || _b === void 0 ? void 0 : _b.weight}`;\n }\n e.view.style.marginLeft = toPixelString(((_d = (_c = e.layoutConfig) === null || _c === void 0 ? void 0 : _c.margin) === null || _d === void 0 ? void 0 : _d.left) || 0);\n e.view.style.marginRight = toPixelString((idx === this.childNodes.length - 1) ? 0 : this.space\n + (((_f = (_e = e.layoutConfig) === null || _e === void 0 ? void 0 : _e.margin) === null || _f === void 0 ? void 0 : _f.right) || 0));\n e.view.style.marginTop = toPixelString(((_h = (_g = e.layoutConfig) === null || _g === void 0 ? void 0 : _g.margin) === null || _h === void 0 ? void 0 : _h.top) || 0);\n e.view.style.marginBottom = toPixelString(((_k = (_j = e.layoutConfig) === null || _j === void 0 ? void 0 : _j.margin) === null || _k === void 0 ? void 0 : _k.bottom) || 0);\n if ((e.layoutConfig.alignment & TOP) === TOP) {\n e.view.style.alignSelf = \"flex-start\";\n }\n else if ((e.layoutConfig.alignment & BOTTOM) === BOTTOM) {\n e.view.style.alignSelf = \"flex-end\";\n }\n else if ((e.layoutConfig.alignment & CENTER_Y) === CENTER_Y) {\n e.view.style.alignSelf = \"center\";\n }\n });\n }\n}\n","import { DoricViewNode, LEFT, RIGHT, CENTER_X, CENTER_Y, TOP, BOTTOM, toPixelString, toRGBAString } from \"./DoricViewNode\";\nexport class DoricTextNode extends DoricViewNode {\n build() {\n const div = document.createElement('div');\n div.style.display = \"flex\";\n this.textElement = document.createElement('span');\n div.appendChild(this.textElement);\n div.style.justifyContent = \"center\";\n div.style.alignItems = \"center\";\n return div;\n }\n blendProps(v, propName, prop) {\n switch (propName) {\n case 'text':\n this.textElement.innerText = prop;\n break;\n case 'textSize':\n v.style.fontSize = toPixelString(prop);\n break;\n case 'textColor':\n v.style.color = toRGBAString(prop);\n break;\n case 'textAlignment':\n const gravity = prop;\n if ((gravity & LEFT) === LEFT) {\n v.style.justifyContent = \"flex-start\";\n }\n else if ((gravity & RIGHT) === RIGHT) {\n v.style.justifyContent = \"flex-end\";\n }\n else if ((gravity & CENTER_X) === CENTER_X) {\n v.style.justifyContent = \"center\";\n }\n if ((gravity & TOP) === TOP) {\n v.style.alignItems = \"flex-start\";\n }\n else if ((gravity & BOTTOM) === BOTTOM) {\n v.style.alignItems = \"flex-end\";\n }\n else if ((gravity & CENTER_Y) === CENTER_Y) {\n v.style.alignItems = \"center\";\n }\n break;\n case \"fontStyle\":\n switch (prop) {\n case \"bold\":\n v.style.fontWeight = \"bold\";\n v.style.fontStyle = \"normal\";\n break;\n case \"italic\":\n v.style.fontWeight = \"normal\";\n v.style.fontStyle = \"italic\";\n break;\n case \"bold_italic\":\n v.style.fontWeight = \"bold\";\n v.style.fontStyle = \"italic\";\n break;\n default:\n v.style.fontWeight = \"normal\";\n v.style.fontStyle = \"normal\";\n break;\n }\n break;\n default:\n super.blendProps(v, propName, prop);\n break;\n }\n }\n}\n","import { DoricViewNode } from \"./DoricViewNode\";\nvar ScaleType;\n(function (ScaleType) {\n ScaleType[ScaleType[\"ScaleToFill\"] = 0] = \"ScaleToFill\";\n ScaleType[ScaleType[\"ScaleAspectFit\"] = 1] = \"ScaleAspectFit\";\n ScaleType[ScaleType[\"ScaleAspectFill\"] = 2] = \"ScaleAspectFill\";\n})(ScaleType || (ScaleType = {}));\nexport class DoricImageNode extends DoricViewNode {\n build() {\n const ret = document.createElement('img');\n ret.style.objectFit = \"fill\";\n return ret;\n }\n blendProps(v, propName, prop) {\n switch (propName) {\n case 'imageUrl':\n v.setAttribute('src', prop);\n break;\n case 'imageBase64':\n v.setAttribute('src', prop);\n break;\n case 'loadCallback':\n v.onload = () => {\n this.callJSResponse(prop, {\n width: v.width,\n height: v.height\n });\n };\n break;\n case 'scaleType':\n switch (prop) {\n case ScaleType.ScaleToFill:\n v.style.objectFit = \"fill\";\n break;\n case ScaleType.ScaleAspectFit:\n v.style.objectFit = \"contain\";\n break;\n case ScaleType.ScaleAspectFill:\n v.style.objectFit = \"cover\";\n break;\n }\n break;\n case 'isBlur':\n if (prop) {\n v.style.filter = 'blur(8px)';\n }\n else {\n v.style.filter = '';\n }\n break;\n default:\n super.blendProps(v, propName, prop);\n break;\n }\n }\n}\n","import { DoricSuperNode, DoricViewNode } from \"./DoricViewNode\";\nexport class DoricScrollerNode extends DoricSuperNode {\n constructor() {\n super(...arguments);\n this.childViewId = \"\";\n }\n build() {\n const ret = document.createElement('div');\n ret.style.overflow = \"scroll\";\n return ret;\n }\n blendProps(v, propName, prop) {\n if (propName === 'content') {\n this.childViewId = prop;\n }\n else {\n super.blendProps(v, propName, prop);\n }\n }\n blendSubNode(model) {\n var _a;\n (_a = this.childNode) === null || _a === void 0 ? void 0 : _a.blend(model.props);\n }\n getSubNodeById(viewId) {\n return viewId === this.childViewId ? this.childNode : undefined;\n }\n onBlended() {\n super.onBlended();\n const model = this.getSubModel(this.childViewId);\n if (model === undefined) {\n return;\n }\n if (this.childNode) {\n if (this.childNode.viewId === this.childViewId) {\n ///skip\n }\n else {\n if (this.reusable && this.childNode.viewType === model.type) {\n this.childNode.viewId = model.id;\n this.childNode.blend(model.props);\n }\n else {\n this.view.removeChild(this.childNode.view);\n const childNode = DoricViewNode.create(this.context, model.type);\n if (childNode === undefined) {\n return;\n }\n childNode.viewId = model.id;\n childNode.init(this);\n childNode.blend(model.props);\n this.view.appendChild(childNode.view);\n this.childNode = childNode;\n }\n }\n }\n else {\n const childNode = DoricViewNode.create(this.context, model.type);\n if (childNode === undefined) {\n return;\n }\n childNode.viewId = model.id;\n childNode.init(this);\n childNode.blend(model.props);\n this.view.appendChild(childNode.view);\n this.childNode = childNode;\n }\n }\n layout() {\n super.layout();\n }\n}\n","import { DoricPlugin } from '../DoricPlugin';\nimport { TOP, CENTER_Y, BOTTOM, toPixelString } from '../shader/DoricViewNode';\nexport class ModalPlugin extends DoricPlugin {\n toast(args) {\n const toastElement = document.createElement('div');\n toastElement.style.position = \"absolute\";\n toastElement.style.textAlign = \"center\";\n toastElement.style.width = \"100%\";\n const textElement = document.createElement('span');\n textElement.innerText = args.msg || \"\";\n textElement.style.backgroundColor = \"#777777\";\n textElement.style.color = \"white\";\n textElement.style.paddingLeft = '20px';\n textElement.style.paddingRight = '20px';\n textElement.style.paddingTop = '10px';\n textElement.style.paddingBottom = '10px';\n toastElement.appendChild(textElement);\n document.body.appendChild(toastElement);\n const gravity = args.gravity || BOTTOM;\n if ((gravity & TOP) == TOP) {\n toastElement.style.top = toPixelString(30);\n }\n else if ((gravity & BOTTOM) == BOTTOM) {\n toastElement.style.bottom = toPixelString(30);\n }\n else if ((gravity & CENTER_Y) == CENTER_Y) {\n toastElement.style.top = toPixelString(document.body.offsetHeight / 2 - toastElement.offsetHeight / 2);\n }\n setTimeout(() => {\n document.body.removeChild(toastElement);\n }, 2000);\n return Promise.resolve();\n }\n alert(args) {\n window.alert(args.msg || \"\");\n return Promise.resolve();\n }\n confirm(args) {\n if (window.confirm(args.msg || \"\")) {\n return Promise.resolve();\n }\n else {\n return Promise.reject();\n }\n }\n prompt(args) {\n const result = window.prompt(args.msg || \"\", args.defaultText);\n if (result) {\n return Promise.resolve(result);\n }\n else {\n return Promise.reject(result);\n }\n }\n}\n","import { DoricPlugin } from \"../DoricPlugin\";\nexport class StoragePlugin extends DoricPlugin {\n setItem(args) {\n localStorage.setItem(`${args.zone}_${args.key}`, args.value);\n return Promise.resolve();\n }\n getItem(args) {\n return Promise.resolve(localStorage.getItem(`${args.zone}_${args.key}`));\n }\n remove(args) {\n localStorage.removeItem(`${args.zone}_${args.key}`);\n return Promise.resolve();\n }\n clear(args) {\n let removingKeys = [];\n for (let i = 0; i < localStorage.length; i++) {\n const key = localStorage.key(i);\n if (key && key.startsWith(`${args.zone}_`)) {\n removingKeys.push(key);\n }\n }\n removingKeys.forEach(e => {\n localStorage.removeItem(e);\n });\n return Promise.resolve();\n }\n}\n","import { DoricPlugin } from \"../DoricPlugin\";\nimport { DoricElement } from \"../DoricElement\";\nexport class NavigatorPlugin extends DoricPlugin {\n constructor() {\n super(...arguments);\n this.navigation = document.getElementsByTagName('doric-navigation')[0];\n }\n push(args) {\n var _a;\n if (this.navigation) {\n const div = new DoricElement;\n div.src = args.source;\n div.alias = ((_a = args.config) === null || _a === void 0 ? void 0 : _a.alias) || args.source;\n this.navigation.push(div);\n return Promise.resolve();\n }\n else {\n return Promise.reject('Not implemented');\n }\n }\n pop() {\n if (this.navigation) {\n this.navigation.pop();\n return Promise.resolve();\n }\n else {\n return Promise.reject('Not implemented');\n }\n }\n}\n","import { DoricPlugin } from '../DoricPlugin';\nimport { DoricViewNode } from '../shader/DoricViewNode';\nexport class PopoverPlugin extends DoricPlugin {\n constructor(context) {\n super(context);\n this.fullScreen = document.createElement('div');\n this.fullScreen.id = `PopOver__${context.contextId}`;\n this.fullScreen.style.position = 'fixed';\n this.fullScreen.style.top = '0px';\n this.fullScreen.style.width = \"100%\";\n this.fullScreen.style.height = \"100%\";\n }\n show(model) {\n const viewNode = DoricViewNode.create(this.context, model.type);\n if (viewNode === undefined) {\n return Promise.reject(`Cannot create ViewNode for ${model.type}`);\n }\n viewNode.viewId = model.id;\n viewNode.init();\n viewNode.blend(model.props);\n this.fullScreen.appendChild(viewNode.view);\n let map = this.context.headNodes.get(PopoverPlugin.TYPE);\n if (map) {\n map.set(model.id, viewNode);\n }\n else {\n map = new Map;\n map.set(model.id, viewNode);\n this.context.headNodes.set(PopoverPlugin.TYPE, map);\n }\n if (!document.body.contains(this.fullScreen)) {\n document.body.appendChild(this.fullScreen);\n }\n return Promise.resolve();\n }\n dismiss(args) {\n if (args) {\n let map = this.context.headNodes.get(PopoverPlugin.TYPE);\n if (map) {\n const viewNode = map.get(args.id);\n if (viewNode) {\n this.fullScreen.removeChild(viewNode.view);\n }\n if (map.size === 0) {\n document.body.removeChild(this.fullScreen);\n }\n }\n }\n else {\n this.dismissAll();\n }\n return Promise.resolve();\n }\n dismissAll() {\n let map = this.context.headNodes.get(PopoverPlugin.TYPE);\n if (map) {\n for (let node of map.values()) {\n map.delete(node.viewId);\n this.fullScreen.removeChild(node.view);\n }\n }\n if (document.body.contains(this.fullScreen)) {\n document.body.removeChild(this.fullScreen);\n }\n }\n onTearDown() {\n super.onTearDown();\n this.dismissAll();\n }\n}\nPopoverPlugin.TYPE = \"popover\";\n","import { DoricStackNode } from \"./DoricStackNode\";\nexport class DoricListItemNode extends DoricStackNode {\n}\n","import { DoricSuperNode, DoricViewNode } from \"./DoricViewNode\";\nexport class DoricListNode extends DoricSuperNode {\n constructor() {\n super(...arguments);\n this.itemCount = 0;\n this.batchCount = 15;\n this.loadMore = false;\n this.childNodes = [];\n }\n blendProps(v, propName, prop) {\n switch (propName) {\n case \"itemCount\":\n this.itemCount = prop;\n break;\n case \"renderItem\":\n this.reset();\n this.renderItemFuncId = prop;\n break;\n case \"onLoadMore\":\n this.onLoadMoreFuncId = prop;\n break;\n case \"loadMoreView\":\n this.loadMoreViewId = prop;\n break;\n case \"batchCount\":\n this.batchCount = prop;\n break;\n case \"loadMore\":\n this.loadMore = prop;\n break;\n default:\n super.blendProps(v, propName, prop);\n break;\n }\n }\n reset() {\n while (this.view.lastElementChild) {\n this.view.removeChild(this.view.lastElementChild);\n }\n }\n onBlended() {\n super.onBlended();\n if (this.childNodes.length !== this.itemCount) {\n const ret = this.callJSResponse(\"renderBunchedItems\", this.childNodes.length, this.itemCount);\n this.childNodes = this.childNodes.concat(ret.map(e => {\n const viewNode = DoricViewNode.create(this.context, e.type);\n viewNode.viewId = e.id;\n viewNode.init(this);\n viewNode.blend(e.props);\n this.view.appendChild(viewNode.view);\n return viewNode;\n }));\n }\n if (this.loadMoreViewNode && this.view.contains(this.loadMoreViewNode.view)) {\n this.view.removeChild(this.loadMoreViewNode.view);\n }\n if (this.loadMore) {\n if (!this.loadMoreViewNode) {\n const loadMoreViewModel = this.getSubModel(this.loadMoreViewId || \"\");\n if (loadMoreViewModel) {\n this.loadMoreViewNode = DoricViewNode.create(this.context, loadMoreViewModel.type);\n this.loadMoreViewNode.viewId = loadMoreViewModel.id;\n this.loadMoreViewNode.init(this);\n this.loadMoreViewNode.blend(loadMoreViewModel.props);\n }\n }\n if (this.loadMoreViewNode) {\n this.view.appendChild(this.loadMoreViewNode.view);\n }\n }\n }\n blendSubNode(model) {\n const viewNode = this.getSubNodeById(model.id);\n if (viewNode) {\n viewNode.blend(model.props);\n }\n }\n getSubNodeById(viewId) {\n if (viewId === this.loadMoreViewId) {\n return this.loadMoreViewNode;\n }\n return this.childNodes.filter(e => e.viewId === viewId)[0];\n }\n onScrollToEnd() {\n if (this.loadMore && this.onLoadMoreFuncId) {\n this.callJSResponse(this.onLoadMoreFuncId);\n }\n }\n build() {\n const ret = document.createElement('div');\n ret.style.overflow = \"scroll\";\n ret.addEventListener(\"scroll\", () => {\n if (this.loadMore) {\n if (ret.scrollTop + ret.offsetHeight === ret.scrollHeight) {\n this.onScrollToEnd();\n }\n }\n });\n return ret;\n }\n}\n","import { DoricStackNode } from \"./DoricStackNode\";\nexport class DoricDraggableNode extends DoricStackNode {\n constructor() {\n super(...arguments);\n this.onDrag = \"\";\n this.dragging = false;\n this.lastX = 0;\n this.lastY = 0;\n }\n build() {\n const ret = document.createElement('div');\n ret.ontouchstart = (event) => {\n this.dragging = true;\n this.lastX = event.targetTouches[0].clientX;\n this.lastY = event.targetTouches[0].clientY;\n };\n ret.ontouchend = (event) => {\n this.dragging = false;\n };\n ret.ontouchcancel = (event) => {\n this.dragging = false;\n };\n ret.ontouchmove = (event) => {\n if (this.dragging) {\n this.offsetX += (event.targetTouches[0].clientX - this.lastX);\n this.offsetY += (event.targetTouches[0].clientY - this.lastY);\n this.callJSResponse(this.onDrag, this.offsetX, this.offsetY);\n this.lastX = event.targetTouches[0].clientX;\n this.lastY = event.targetTouches[0].clientY;\n }\n };\n ret.onmousedown = (event) => {\n this.dragging = true;\n this.lastX = event.x;\n this.lastY = event.y;\n };\n ret.onmousemove = (event) => {\n if (this.dragging) {\n this.offsetX += (event.x - this.lastX);\n this.offsetY += (event.y - this.lastY);\n this.callJSResponse(this.onDrag, this.offsetX, this.offsetY);\n this.lastX = event.x;\n this.lastY = event.y;\n }\n };\n ret.onmouseup = (event) => {\n this.dragging = false;\n };\n ret.onmouseout = (event) => {\n this.dragging = false;\n };\n ret.style.position = \"relative\";\n return ret;\n }\n blendProps(v, propName, prop) {\n switch (propName) {\n case 'onDrag':\n this.onDrag = prop;\n break;\n default:\n super.blendProps(v, propName, prop);\n break;\n }\n }\n}\n","import { ShaderPlugin } from \"./plugins/ShaderPlugin\";\nimport { DoricStackNode } from \"./shader/DoricStackNode\";\nimport { DoricVLayoutNode } from './shader/DoricVLayoutNode';\nimport { DoricHLayoutNode } from './shader/DoricHLayoutNode';\nimport { DoricTextNode } from \"./shader/DoricTextNode\";\nimport { DoricImageNode } from \"./shader/DoricImageNode\";\nimport { DoricScrollerNode } from \"./shader/DoricScrollerNode\";\nimport { ModalPlugin } from './plugins/ModalPlugin';\nimport { StoragePlugin } from \"./plugins/StoragePlugin\";\nimport { NavigatorPlugin } from \"./navigate/NavigatorPlugin\";\nimport { PopoverPlugin } from './plugins/PopoverPlugin';\nimport { DoricListItemNode } from \"./shader/DoricListItemNode\";\nimport { DoricListNode } from \"./shader/DoricListNode\";\nimport { DoricDraggableNode } from \"./shader/DoricDraggableNode\";\nconst bundles = new Map;\nconst plugins = new Map;\nconst nodes = new Map;\nexport function acquireJSBundle(name) {\n return bundles.get(name);\n}\nexport function registerJSBundle(name, bundle) {\n bundles.set(name, bundle);\n}\nexport function registerPlugin(name, plugin) {\n plugins.set(name, plugin);\n}\nexport function acquirePlugin(name) {\n return plugins.get(name);\n}\nexport function registerViewNode(name, node) {\n nodes.set(name, node);\n}\nexport function acquireViewNode(name) {\n return nodes.get(name);\n}\nregisterPlugin('shader', ShaderPlugin);\nregisterPlugin('modal', ModalPlugin);\nregisterPlugin('storage', StoragePlugin);\nregisterPlugin('navigator', NavigatorPlugin);\nregisterPlugin('popover', PopoverPlugin);\nregisterViewNode('Stack', DoricStackNode);\nregisterViewNode('VLayout', DoricVLayoutNode);\nregisterViewNode('HLayout', DoricHLayoutNode);\nregisterViewNode('Text', DoricTextNode);\nregisterViewNode('Image', DoricImageNode);\nregisterViewNode('Scroller', DoricScrollerNode);\nregisterViewNode('ListItem', DoricListItemNode);\nregisterViewNode('List', DoricListNode);\nregisterViewNode('Draggable', DoricDraggableNode);\n","import { jsCallResolve, jsCallReject, jsCallbackTimer, jsReleaseContext } from 'doric/src/runtime/sandbox';\nimport { acquireJSBundle, acquirePlugin } from './DoricRegistry';\nimport { getDoricContext } from './DoricContext';\nfunction getScriptId(contextId) {\n return `__doric_script_${contextId}`;\n}\nconst originSetTimeout = window.setTimeout;\nconst originClearTimeout = window.clearTimeout;\nconst originSetInterval = window.setInterval;\nconst originClearInterval = window.clearInterval;\nconst timers = new Map;\nexport function injectGlobalObject(name, value) {\n Reflect.set(window, name, value, window);\n}\nexport function loadJS(contextId, script) {\n const scriptElement = document.createElement('script');\n scriptElement.text = script;\n scriptElement.id = getScriptId(contextId);\n document.body.appendChild(scriptElement);\n}\nfunction packageModuleScript(name, content) {\n return `Reflect.apply(doric.jsRegisterModule,this,[${name},Reflect.apply(function(__module){(function(module,exports,require,setTimeout,setInterval,clearTimeout,clearInterval){\n${content}\n})(__module,__module.exports,doric.__require__,doricSetTimeout,doricSetInterval,doricClearTimeout,doricClearInterval);\nreturn __module.exports;},this,[{exports:{}}])])`;\n}\nfunction packageCreateContext(contextId, content) {\n return `//@ sourceURL=contextId_${contextId}.js\nReflect.apply(function(doric,context,Entry,require,exports,setTimeout,setInterval,clearTimeout,clearInterval){\n${content}\n},undefined,[undefined,doric.jsObtainContext(\"${contextId}\"),doric.jsObtainEntry(\"${contextId}\"),doric.__require__,{},doricSetTimeout,doricSetInterval,doricClearTimeout,doricClearInterval])`;\n}\nfunction initDoric() {\n injectGlobalObject(\"Environment\", {\n platform: \"h5\"\n });\n injectGlobalObject(\"nativeEmpty\", () => undefined);\n injectGlobalObject('nativeLog', (type, message) => {\n switch (type) {\n case 'd':\n console.log(message);\n break;\n case 'w':\n console.warn(message);\n break;\n case 'e':\n console.error(message);\n break;\n }\n });\n injectGlobalObject('nativeRequire', (moduleName) => {\n const bundle = acquireJSBundle(moduleName);\n if (bundle === undefined || bundle.length === 0) {\n console.log(`Cannot require JS Bundle :${moduleName}`);\n return false;\n }\n else {\n loadJS(moduleName, packageModuleScript(moduleName, packageModuleScript(name, bundle)));\n return true;\n }\n });\n injectGlobalObject('nativeBridge', (contextId, namespace, method, callbackId, args) => {\n const pluginClass = acquirePlugin(namespace);\n const doricContext = getDoricContext(contextId);\n if (pluginClass === undefined) {\n console.error(`Cannot find Plugin:${namespace}`);\n return false;\n }\n if (doricContext === undefined) {\n console.error(`Cannot find Doric Context:${contextId}`);\n return false;\n }\n let plugin = doricContext.pluginInstances.get(namespace);\n if (plugin === undefined) {\n plugin = new pluginClass(doricContext);\n doricContext.pluginInstances.set(namespace, plugin);\n }\n if (!Reflect.has(plugin, method)) {\n console.error(`Cannot find Method:${method} in plugin ${namespace}`);\n return false;\n }\n const pluginMethod = Reflect.get(plugin, method, plugin);\n if (typeof pluginMethod !== 'function') {\n console.error(`Plugin ${namespace}'s property ${method}'s type is ${typeof pluginMethod} not function,`);\n }\n const ret = Reflect.apply(pluginMethod, plugin, [args]);\n if (ret instanceof Promise) {\n ret.then(e => {\n jsCallResolve(contextId, callbackId, e);\n }, e => {\n jsCallReject(contextId, callbackId, e);\n });\n }\n else if (ret !== undefined) {\n jsCallResolve(contextId, callbackId, ret);\n }\n return true;\n });\n injectGlobalObject('nativeSetTimer', (timerId, time, repeat) => {\n if (repeat) {\n const handleId = originSetInterval(() => {\n jsCallbackTimer(timerId);\n }, time);\n timers.set(timerId, { handleId, repeat });\n }\n else {\n const handleId = originSetTimeout(() => {\n jsCallbackTimer(timerId);\n }, time);\n timers.set(timerId, { handleId, repeat });\n }\n });\n injectGlobalObject('nativeClearTimer', (timerId) => {\n const timerInfo = timers.get(timerId);\n if (timerInfo) {\n if (timerInfo.repeat) {\n originClearInterval(timerInfo.handleId);\n }\n else {\n originClearTimeout(timerInfo.handleId);\n }\n }\n });\n}\nexport function createContext(contextId, content) {\n loadJS(contextId, packageCreateContext(contextId, content));\n}\nexport function destroyContext(contextId) {\n jsReleaseContext(contextId);\n const scriptElement = document.getElementById(getScriptId(contextId));\n if (scriptElement) {\n document.body.removeChild(scriptElement);\n }\n}\ninitDoric();\n","import { jsObtainContext, jsCallEntityMethod } from 'doric/src/runtime/sandbox';\nimport { createContext, destroyContext } from \"./DoricDriver\";\nimport { DoricStackNode } from './shader/DoricStackNode';\nconst doricContexts = new Map;\nlet __contextId__ = 0;\nfunction getContextId() {\n return `context_${__contextId__++}`;\n}\nexport function getDoricContext(contextId) {\n return doricContexts.get(contextId);\n}\nexport class DoricContext {\n constructor(content) {\n this.contextId = getContextId();\n this.pluginInstances = new Map;\n this.headNodes = new Map;\n createContext(this.contextId, content);\n doricContexts.set(this.contextId, this);\n this.rootNode = new DoricStackNode(this);\n }\n get panel() {\n var _a;\n return (_a = jsObtainContext(this.contextId)) === null || _a === void 0 ? void 0 : _a.entity;\n }\n invokeEntityMethod(method, ...otherArgs) {\n const argumentsList = [this.contextId];\n for (let i = 0; i < arguments.length; i++) {\n argumentsList.push(arguments[i]);\n }\n return Reflect.apply(jsCallEntityMethod, this.panel, argumentsList);\n }\n init(extra) {\n this.invokeEntityMethod(\"__init__\", extra ? JSON.stringify(extra) : undefined);\n }\n build(frame) {\n this.invokeEntityMethod(\"__build__\", frame);\n }\n teardown() {\n for (let plugin of this.pluginInstances.values()) {\n plugin.onTearDown();\n }\n destroyContext(this.contextId);\n }\n}\n","import axios from 'axios';\nimport { DoricContext } from './DoricContext';\nexport class DoricElement extends HTMLElement {\n constructor() {\n super();\n }\n get src() {\n return this.getAttribute('src');\n }\n get alias() {\n return this.getAttribute('alias');\n }\n set src(v) {\n this.setAttribute('src', v);\n }\n set alias(v) {\n this.setAttribute('alias', v);\n }\n connectedCallback() {\n if (this.src && this.context === undefined) {\n axios.get(this.src).then(result => {\n this.load(result.data);\n });\n }\n }\n disconnectedCallback() {\n }\n adoptedCallback() {\n }\n attributeChangedCallback() {\n }\n onDestroy() {\n var _a;\n (_a = this.context) === null || _a === void 0 ? void 0 : _a.teardown();\n }\n load(content) {\n this.context = new DoricContext(content);\n const divElement = document.createElement('div');\n divElement.style.position = 'relative';\n divElement.style.height = '100%';\n this.append(divElement);\n this.context.rootNode.view = divElement;\n this.context.build({\n width: divElement.offsetWidth,\n height: divElement.offsetHeight,\n });\n }\n}\n","import { DoricElement } from \"../DoricElement\";\nexport class NavigationElement extends HTMLElement {\n constructor() {\n super(...arguments);\n this.elementStack = [];\n }\n get currentNode() {\n for (let i = 0; i < this.childNodes.length; i++) {\n if (this.childNodes[i] instanceof DoricElement) {\n return this.childNodes[i];\n }\n }\n return undefined;\n }\n push(element) {\n const currentNode = this.currentNode;\n if (currentNode) {\n this.elementStack.push(currentNode);\n this.replaceChild(element, currentNode);\n }\n else {\n this.appendChild(element);\n }\n }\n pop() {\n const lastElement = this.elementStack.pop();\n const currentNode = this.currentNode;\n if (lastElement && currentNode) {\n this.replaceChild(lastElement, currentNode);\n currentNode.onDestroy();\n }\n else {\n window.history.back();\n }\n }\n}\n","import { DoricElement } from './src/DoricElement';\nimport { NavigationElement } from './src/navigate/NavigationElement';\nwindow.customElements.define('doric-div', DoricElement);\nwindow.customElements.define('doric-navigation', NavigationElement);\nexport * from './src/DoricElement';\nexport * from './src/navigate/NavigationElement';\nexport * from './src/DoricPlugin';\nexport * from './src/DoricRegistry';\nexport * from './src/DoricDriver';\nexport * from './src/shader/DoricViewNode';\n"],"names":["LayoutSpec","jsCallResolve","jsCallReject","jsCallbackTimer","jsReleaseContext","jsObtainContext","jsCallEntityMethod"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"} \ No newline at end of file