From d71e55e673433be2f73bcab651feec20b3ec40d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B3=BD=E8=99=B9?= Date: Wed, 13 Sep 2023 19:08:28 +0800 Subject: [PATCH] feat:web text maxLines --- doric-web/dist/index.js | 46 +++++++++++++----------- doric-web/dist/index.js.map | 2 +- doric-web/src/shader/DoricTextNode.ts | 50 ++++++++++++++++----------- 3 files changed, 56 insertions(+), 42 deletions(-) diff --git a/doric-web/dist/index.js b/doric-web/dist/index.js index 885d5b2e..44cb93a0 100644 --- a/doric-web/dist/index.js +++ b/doric-web/dist/index.js @@ -7204,7 +7204,6 @@ var doric_web = (function (exports, axios, sandbox) { const div = document.createElement('div'); div.style.display = "flex"; div.style.overflow = "hidden"; - div.style.lineHeight = `${this.lineHeight()}em`; this.textElement = document.createElement('span'); div.appendChild(this.textElement); div.style.justifyContent = "center"; @@ -7300,46 +7299,53 @@ var doric_web = (function (exports, axios, sandbox) { configSize() { if (this.maxLines > 0) { const computedStyle = window.getComputedStyle(this.view); - const currentContentHeight = this.view.clientHeight - pixelString2Number(computedStyle.paddingTop) - pixelString2Number(computedStyle.paddingBottom); - let maxHeight = Math.ceil(parseFloat(computedStyle.getPropertyValue('font-size')) * this.lineHeight() * this.maxLines); - if (currentContentHeight > 0) { - maxHeight = Math.min(maxHeight, Math.ceil(currentContentHeight)); + const lineHeight = this.lineHeight(computedStyle); + let allowedMaxLines = this.maxLines; + const contentHeight = this.view.clientHeight - pixelString2Number(computedStyle.paddingTop) - pixelString2Number(computedStyle.paddingBottom); + if (contentHeight > 0) { + const contentAllowedLines = Math.floor(contentHeight / lineHeight); + allowedMaxLines = Math.min(this.maxLines, contentAllowedLines); } - if (this.computedHeight(computedStyle) > maxHeight) { - this.textElement.innerText = this.truncationText(computedStyle, maxHeight); + const originalLines = Math.floor(this.originalHeight(computedStyle) / lineHeight); + if (originalLines > allowedMaxLines) { + this.textElement.innerText = this.truncationText(computedStyle, lineHeight, allowedMaxLines); } } } - lineHeight() { - return 1.3; + lineHeight(style) { + const canvas = document.createElement('canvas'); + const ctx = canvas.getContext('2d'); + ctx.font = style.font; + const pureText = this.textElement.innerText.replace(/\n/g, ''); + const metrics = ctx.measureText(pureText); + return metrics.fontBoundingBoxAscent + metrics.fontBoundingBoxDescent; } - computedHeight(style) { + originalHeight(style) { const tempEle = document.createElement('div'); tempEle.style.font = style.font; tempEle.textContent = this.textElement.innerText; - tempEle.style.whiteSpace = 'normal'; - this.view.style.overflow = 'hidden'; - tempEle.style.lineHeight = `${this.lineHeight()}em`; - tempEle.style.width = this.view.style.width; + tempEle.style.whiteSpace = style.whiteSpace; + this.view.style.overflow = style.overflow; + tempEle.style.width = style.width; document.body.appendChild(tempEle); const height = tempEle.offsetHeight; document.body.removeChild(tempEle); return height; } - truncationText(style, maxHeight) { + truncationText(style, lineHeight, maxLines) { const originalText = this.textElement.innerText; let start = 0, end = originalText.length; const tempEle = document.createElement('div'); tempEle.style.font = style.font; - tempEle.style.whiteSpace = 'normal'; - this.view.style.overflow = 'hidden'; - tempEle.style.lineHeight = `${this.lineHeight()}em`; - tempEle.style.width = this.view.style.width; + tempEle.style.whiteSpace = style.whiteSpace; + this.view.style.overflow = style.overflow; + tempEle.style.width = style.width; document.body.appendChild(tempEle); while (start <= end) { const mid = Math.floor((start + end) / 2); tempEle.textContent = originalText.slice(0, mid) + '...'; - if (tempEle.offsetHeight > maxHeight) { + const lines = Math.floor(tempEle.offsetHeight / lineHeight); + if (lines > maxLines) { end = mid - 1; } else { diff --git a/doric-web/dist/index.js.map b/doric-web/dist/index.js.map index 210a6ba0..910a6859 100644 --- a/doric-web/dist/index.js.map +++ b/doric-web/dist/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sources":["../node_modules/smoothscroll-polyfill/dist/smoothscroll.js","../build/src/DoricBundleLoader.js","../build/src/DoricPlugin.js","../build/src/utils/color.js","../build/src/shader/DoricViewNode.js","../build/src/plugins/ShaderPlugin.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/shader/DoricRefreshableNode.js","../build/src/plugins/AnimatePlugin.js","../build/src/shader/DoricSwitchNode.js","../build/src/shader/DoricSliderNode.js","../build/src/shader/DoricSlideItemNode.js","../build/src/plugins/NotificationPlugin.js","../build/src/plugins/NetworkPlugin.js","../build/src/widgets/NestedSliderView.js","../build/src/shader/DoricNestedSliderNode.js","../build/src/resource/DoricResourceManager.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":["/* smoothscroll v0.4.4 - 2019 - Dustan Kasten, Jeremias Menichelli - MIT License */\n(function () {\n 'use strict';\n\n // polyfill\n function polyfill() {\n // aliases\n var w = window;\n var d = document;\n\n // return if scroll behavior is supported and polyfill is not forced\n if (\n 'scrollBehavior' in d.documentElement.style &&\n w.__forceSmoothScrollPolyfill__ !== true\n ) {\n return;\n }\n\n // globals\n var Element = w.HTMLElement || w.Element;\n var SCROLL_TIME = 468;\n\n // object gathering original scroll methods\n var original = {\n scroll: w.scroll || w.scrollTo,\n scrollBy: w.scrollBy,\n elementScroll: Element.prototype.scroll || scrollElement,\n scrollIntoView: Element.prototype.scrollIntoView\n };\n\n // define timing method\n var now =\n w.performance && w.performance.now\n ? w.performance.now.bind(w.performance)\n : Date.now;\n\n /**\n * indicates if a the current browser is made by Microsoft\n * @method isMicrosoftBrowser\n * @param {String} userAgent\n * @returns {Boolean}\n */\n function isMicrosoftBrowser(userAgent) {\n var userAgentPatterns = ['MSIE ', 'Trident/', 'Edge/'];\n\n return new RegExp(userAgentPatterns.join('|')).test(userAgent);\n }\n\n /*\n * IE has rounding bug rounding down clientHeight and clientWidth and\n * rounding up scrollHeight and scrollWidth causing false positives\n * on hasScrollableSpace\n */\n var ROUNDING_TOLERANCE = isMicrosoftBrowser(w.navigator.userAgent) ? 1 : 0;\n\n /**\n * changes scroll position inside an element\n * @method scrollElement\n * @param {Number} x\n * @param {Number} y\n * @returns {undefined}\n */\n function scrollElement(x, y) {\n this.scrollLeft = x;\n this.scrollTop = y;\n }\n\n /**\n * returns result of applying ease math function to a number\n * @method ease\n * @param {Number} k\n * @returns {Number}\n */\n function ease(k) {\n return 0.5 * (1 - Math.cos(Math.PI * k));\n }\n\n /**\n * indicates if a smooth behavior should be applied\n * @method shouldBailOut\n * @param {Number|Object} firstArg\n * @returns {Boolean}\n */\n function shouldBailOut(firstArg) {\n if (\n firstArg === null ||\n typeof firstArg !== 'object' ||\n firstArg.behavior === undefined ||\n firstArg.behavior === 'auto' ||\n firstArg.behavior === 'instant'\n ) {\n // first argument is not an object/null\n // or behavior is auto, instant or undefined\n return true;\n }\n\n if (typeof firstArg === 'object' && firstArg.behavior === 'smooth') {\n // first argument is an object and behavior is smooth\n return false;\n }\n\n // throw error when behavior is not supported\n throw new TypeError(\n 'behavior member of ScrollOptions ' +\n firstArg.behavior +\n ' is not a valid value for enumeration ScrollBehavior.'\n );\n }\n\n /**\n * indicates if an element has scrollable space in the provided axis\n * @method hasScrollableSpace\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function hasScrollableSpace(el, axis) {\n if (axis === 'Y') {\n return el.clientHeight + ROUNDING_TOLERANCE < el.scrollHeight;\n }\n\n if (axis === 'X') {\n return el.clientWidth + ROUNDING_TOLERANCE < el.scrollWidth;\n }\n }\n\n /**\n * indicates if an element has a scrollable overflow property in the axis\n * @method canOverflow\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function canOverflow(el, axis) {\n var overflowValue = w.getComputedStyle(el, null)['overflow' + axis];\n\n return overflowValue === 'auto' || overflowValue === 'scroll';\n }\n\n /**\n * indicates if an element can be scrolled in either axis\n * @method isScrollable\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function isScrollable(el) {\n var isScrollableY = hasScrollableSpace(el, 'Y') && canOverflow(el, 'Y');\n var isScrollableX = hasScrollableSpace(el, 'X') && canOverflow(el, 'X');\n\n return isScrollableY || isScrollableX;\n }\n\n /**\n * finds scrollable parent of an element\n * @method findScrollableParent\n * @param {Node} el\n * @returns {Node} el\n */\n function findScrollableParent(el) {\n while (el !== d.body && isScrollable(el) === false) {\n el = el.parentNode || el.host;\n }\n\n return el;\n }\n\n /**\n * self invoked function that, given a context, steps through scrolling\n * @method step\n * @param {Object} context\n * @returns {undefined}\n */\n function step(context) {\n var time = now();\n var value;\n var currentX;\n var currentY;\n var elapsed = (time - context.startTime) / SCROLL_TIME;\n\n // avoid elapsed times higher than one\n elapsed = elapsed > 1 ? 1 : elapsed;\n\n // apply easing to elapsed time\n value = ease(elapsed);\n\n currentX = context.startX + (context.x - context.startX) * value;\n currentY = context.startY + (context.y - context.startY) * value;\n\n context.method.call(context.scrollable, currentX, currentY);\n\n // scroll more if we have not reached our destination\n if (currentX !== context.x || currentY !== context.y) {\n w.requestAnimationFrame(step.bind(w, context));\n }\n }\n\n /**\n * scrolls window or element with a smooth behavior\n * @method smoothScroll\n * @param {Object|Node} el\n * @param {Number} x\n * @param {Number} y\n * @returns {undefined}\n */\n function smoothScroll(el, x, y) {\n var scrollable;\n var startX;\n var startY;\n var method;\n var startTime = now();\n\n // define scroll context\n if (el === d.body) {\n scrollable = w;\n startX = w.scrollX || w.pageXOffset;\n startY = w.scrollY || w.pageYOffset;\n method = original.scroll;\n } else {\n scrollable = el;\n startX = el.scrollLeft;\n startY = el.scrollTop;\n method = scrollElement;\n }\n\n // scroll looping over a frame\n step({\n scrollable: scrollable,\n method: method,\n startTime: startTime,\n startX: startX,\n startY: startY,\n x: x,\n y: y\n });\n }\n\n // ORIGINAL METHODS OVERRIDES\n // w.scroll and w.scrollTo\n w.scroll = w.scrollTo = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.scroll.call(\n w,\n arguments[0].left !== undefined\n ? arguments[0].left\n : typeof arguments[0] !== 'object'\n ? arguments[0]\n : w.scrollX || w.pageXOffset,\n // use top prop, second argument if present or fallback to scrollY\n arguments[0].top !== undefined\n ? arguments[0].top\n : arguments[1] !== undefined\n ? arguments[1]\n : w.scrollY || w.pageYOffset\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n w,\n d.body,\n arguments[0].left !== undefined\n ? ~~arguments[0].left\n : w.scrollX || w.pageXOffset,\n arguments[0].top !== undefined\n ? ~~arguments[0].top\n : w.scrollY || w.pageYOffset\n );\n };\n\n // w.scrollBy\n w.scrollBy = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0])) {\n original.scrollBy.call(\n w,\n arguments[0].left !== undefined\n ? arguments[0].left\n : typeof arguments[0] !== 'object' ? arguments[0] : 0,\n arguments[0].top !== undefined\n ? arguments[0].top\n : arguments[1] !== undefined ? arguments[1] : 0\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n w,\n d.body,\n ~~arguments[0].left + (w.scrollX || w.pageXOffset),\n ~~arguments[0].top + (w.scrollY || w.pageYOffset)\n );\n };\n\n // Element.prototype.scroll and Element.prototype.scrollTo\n Element.prototype.scroll = Element.prototype.scrollTo = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n // if one number is passed, throw error to match Firefox implementation\n if (typeof arguments[0] === 'number' && arguments[1] === undefined) {\n throw new SyntaxError('Value could not be converted');\n }\n\n original.elementScroll.call(\n this,\n // use left prop, first number argument or fallback to scrollLeft\n arguments[0].left !== undefined\n ? ~~arguments[0].left\n : typeof arguments[0] !== 'object' ? ~~arguments[0] : this.scrollLeft,\n // use top prop, second argument or fallback to scrollTop\n arguments[0].top !== undefined\n ? ~~arguments[0].top\n : arguments[1] !== undefined ? ~~arguments[1] : this.scrollTop\n );\n\n return;\n }\n\n var left = arguments[0].left;\n var top = arguments[0].top;\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n this,\n this,\n typeof left === 'undefined' ? this.scrollLeft : ~~left,\n typeof top === 'undefined' ? this.scrollTop : ~~top\n );\n };\n\n // Element.prototype.scrollBy\n Element.prototype.scrollBy = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.elementScroll.call(\n this,\n arguments[0].left !== undefined\n ? ~~arguments[0].left + this.scrollLeft\n : ~~arguments[0] + this.scrollLeft,\n arguments[0].top !== undefined\n ? ~~arguments[0].top + this.scrollTop\n : ~~arguments[1] + this.scrollTop\n );\n\n return;\n }\n\n this.scroll({\n left: ~~arguments[0].left + this.scrollLeft,\n top: ~~arguments[0].top + this.scrollTop,\n behavior: arguments[0].behavior\n });\n };\n\n // Element.prototype.scrollIntoView\n Element.prototype.scrollIntoView = function() {\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.scrollIntoView.call(\n this,\n arguments[0] === undefined ? true : arguments[0]\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n var scrollableParent = findScrollableParent(this);\n var parentRects = scrollableParent.getBoundingClientRect();\n var clientRects = this.getBoundingClientRect();\n\n if (scrollableParent !== d.body) {\n // reveal element inside parent\n smoothScroll.call(\n this,\n scrollableParent,\n scrollableParent.scrollLeft + clientRects.left - parentRects.left,\n scrollableParent.scrollTop + clientRects.top - parentRects.top\n );\n\n // reveal parent in viewport unless is fixed\n if (w.getComputedStyle(scrollableParent).position !== 'fixed') {\n w.scrollBy({\n left: parentRects.left,\n top: parentRects.top,\n behavior: 'smooth'\n });\n }\n } else {\n // reveal element in viewport\n w.scrollBy({\n left: clientRects.left,\n top: clientRects.top,\n behavior: 'smooth'\n });\n }\n };\n }\n\n if (typeof exports === 'object' && typeof module !== 'undefined') {\n // commonjs\n module.exports = { polyfill: polyfill };\n } else {\n // global\n polyfill();\n }\n\n}());\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport axios from \"axios\";\nconst loaders = [\n {\n filter: () => true,\n request: (source) => __awaiter(void 0, void 0, void 0, function* () {\n const result = yield axios.get(source);\n return result.data;\n })\n }\n];\nexport function registerDoricJSLoader(loader) {\n loaders.push(loader);\n}\nexport function loadDoricJSBundle(source) {\n return __awaiter(this, void 0, void 0, function* () {\n const matched = loaders.filter(e => e.filter(source));\n if (matched.length > 0) {\n return matched[matched.length - 1].request(source);\n }\n throw new Error(`Cannot find matched loader for '${source}'`);\n });\n}\n//# sourceMappingURL=DoricBundleLoader.js.map","export class DoricPlugin {\n constructor(context) {\n this.context = context;\n }\n onTearDown() {\n }\n}\n//# sourceMappingURL=DoricPlugin.js.map","export var GradientOrientation;\n(function (GradientOrientation) {\n /** draw the gradient from the top to the bottom */\n GradientOrientation[GradientOrientation[\"TOP_BOTTOM\"] = 0] = \"TOP_BOTTOM\";\n /** draw the gradient from the top-right to the bottom-left */\n GradientOrientation[GradientOrientation[\"TR_BL\"] = 1] = \"TR_BL\";\n /** draw the gradient from the right to the left */\n GradientOrientation[GradientOrientation[\"RIGHT_LEFT\"] = 2] = \"RIGHT_LEFT\";\n /** draw the gradient from the bottom-right to the top-left */\n GradientOrientation[GradientOrientation[\"BR_TL\"] = 3] = \"BR_TL\";\n /** draw the gradient from the bottom to the top */\n GradientOrientation[GradientOrientation[\"BOTTOM_TOP\"] = 4] = \"BOTTOM_TOP\";\n /** draw the gradient from the bottom-left to the top-right */\n GradientOrientation[GradientOrientation[\"BL_TR\"] = 5] = \"BL_TR\";\n /** draw the gradient from the left to the right */\n GradientOrientation[GradientOrientation[\"LEFT_RIGHT\"] = 6] = \"LEFT_RIGHT\";\n /** draw the gradient from the top-left to the bottom-right */\n GradientOrientation[GradientOrientation[\"TL_BR\"] = 7] = \"TL_BR\";\n})(GradientOrientation || (GradientOrientation = {}));\nexport function toRGBAString(color) {\n let strs = [];\n for (let i = 0; i < 32; i += 8) {\n strs.push(((color >> i) & 0xff));\n }\n strs = strs.reverse();\n /// RGBAd\n return `rgba(${strs[1]},${strs[2]},${strs[3]},${strs[0] / 255})`;\n}\nexport function generateGradientColorDesc(colors, locations) {\n if (!locations) {\n return colors.join(', ');\n }\n if (colors.length !== locations.length) {\n throw new Error(\"Colors and locations arrays must have the same length.\");\n }\n const gradientStops = colors.map((color, index) => `${color} ${locations[index] * 100}%`);\n return gradientStops.join(\", \");\n}\nexport function generateGradientOrientationDesc(orientation) {\n switch (orientation) {\n case GradientOrientation.TR_BL:\n return 'to bottom left';\n case GradientOrientation.RIGHT_LEFT:\n return 'to left';\n case GradientOrientation.BR_TL:\n return 'to top left';\n case GradientOrientation.BOTTOM_TOP:\n return 'to top';\n case GradientOrientation.BL_TR:\n return 'to top right';\n case GradientOrientation.LEFT_RIGHT:\n return 'to right';\n case GradientOrientation.TL_BR:\n return 'to bottom right';\n default:\n return 'to bottom';\n }\n}\n//# sourceMappingURL=color.js.map","import { acquireViewNode } from \"../DoricRegistry\";\nimport { generateGradientColorDesc, generateGradientOrientationDesc } from \"../utils/color\";\nimport { toRGBAString } from \"../utils/color\";\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 pixelString2Number(v) {\n return parseFloat(v.substring(0, v.indexOf(\"px\")));\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 maxWidth: -1,\n maxHeight: -1,\n minWidth: -1,\n minHeight: -1\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._originDisplay = \"\";\n this.transform = {};\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 this._originDisplay = this.view.style.display;\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.onBlending();\n this.layout();\n }\n onBlending() {\n this.updateTransform();\n }\n onBlended() {\n }\n configBorder() {\n if (this.border) {\n this.applyCSSStyle({\n borderStyle: \"solid\",\n borderWidth: toPixelString(this.border.width),\n borderColor: toRGBAString(this.border.color),\n });\n }\n }\n configWidth() {\n let width;\n switch (this.layoutConfig.widthSpec) {\n case LayoutSpec.WRAP_CONTENT:\n width = \"max-content\";\n break;\n case LayoutSpec.AT_MOST:\n width = \"100%\";\n break;\n case LayoutSpec.EXACTLY:\n default:\n width = toPixelString(this.frameWidth\n - this.paddingLeft - this.paddingRight\n - this.borderWidth * 2);\n break;\n }\n this.applyCSSStyle({ width });\n }\n configSizeConstraints() {\n if (this.layoutConfig.maxWidth && this.layoutConfig.maxWidth !== -1) {\n this.applyCSSStyle({ maxWidth: toPixelString(this.layoutConfig.maxWidth) });\n }\n else {\n this.view.style.removeProperty('max-width');\n }\n if (this.layoutConfig.maxHeight && this.layoutConfig.maxHeight !== -1) {\n this.applyCSSStyle({ maxHeight: toPixelString(this.layoutConfig.maxHeight) });\n }\n else {\n this.view.style.removeProperty('max-height');\n }\n if (this.layoutConfig.minWidth && this.layoutConfig.minWidth !== -1) {\n this.applyCSSStyle({ minWidth: toPixelString(this.layoutConfig.minWidth) });\n }\n else {\n this.view.style.removeProperty('min-width');\n }\n if (this.layoutConfig.minHeight && this.layoutConfig.minHeight !== -1) {\n this.applyCSSStyle({ minHeight: toPixelString(this.layoutConfig.minHeight) });\n }\n else {\n this.view.style.removeProperty('min-height');\n }\n }\n configHeight() {\n let height;\n switch (this.layoutConfig.heightSpec) {\n case LayoutSpec.WRAP_CONTENT:\n height = \"max-content\";\n break;\n case LayoutSpec.AT_MOST:\n height = \"100%\";\n break;\n case LayoutSpec.EXACTLY:\n default:\n height = toPixelString(this.frameHeight\n - this.paddingTop - this.paddingBottom\n - this.borderWidth * 2);\n break;\n }\n this.applyCSSStyle({ height });\n }\n configMargin() {\n if (this.layoutConfig.margin) {\n this.applyCSSStyle({\n marginLeft: toPixelString(this.layoutConfig.margin.left || 0),\n marginRight: toPixelString(this.layoutConfig.margin.right || 0),\n marginTop: toPixelString(this.layoutConfig.margin.top || 0),\n marginBottom: toPixelString(this.layoutConfig.margin.bottom || 0),\n });\n }\n }\n configPadding() {\n if (this.padding) {\n this.applyCSSStyle({\n paddingLeft: toPixelString(this.paddingLeft),\n paddingRight: toPixelString(this.paddingRight),\n paddingTop: toPixelString(this.paddingTop),\n paddingBottom: toPixelString(this.paddingBottom),\n });\n }\n }\n layout() {\n this.configMargin();\n this.configBorder();\n this.configPadding();\n this.configWidth();\n this.configHeight();\n this.configSizeConstraints();\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.applyCSSStyle({\n borderTopLeftRadius: toPixelString(prop.leftTop),\n borderTopRightRadius: toPixelString(prop.rightTop),\n borderBottomRightRadius: toPixelString(prop.rightBottom),\n borderBottomLeftRadius: toPixelString(prop.leftBottom),\n });\n }\n else {\n this.applyCSSStyle({ borderRadius: toPixelString(prop) });\n }\n break;\n case 'shadow':\n const opacity = prop.opacity || 0;\n let boxShadow;\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 boxShadow = `${toPixelString(offsetX)} ${toPixelString(offsetY)} ${toPixelString(shadowRadius)} ${toRGBAString((shadowColor & 0xffffff) | ((alpha & 0xff) << 24))} `;\n }\n else {\n boxShadow = \"\";\n }\n this.applyCSSStyle({\n boxShadow,\n });\n break;\n case 'alpha':\n this.applyCSSStyle({\n opacity: `${prop}`,\n });\n break;\n case 'rotation':\n this.transform.rotation = prop;\n break;\n case 'rotationX':\n this.transform.rotationX = prop;\n break;\n case 'rotationY':\n this.transform.rotationY = prop;\n break;\n case 'scaleX':\n this.transform.scaleX = prop;\n break;\n case 'scaleY':\n this.transform.scaleY = prop;\n break;\n case 'translationX':\n this.transform.translateX = prop;\n break;\n case 'translationY':\n this.transform.translateY = prop;\n break;\n case 'pivotX':\n if (this.transformOrigin) {\n this.transformOrigin.x = prop;\n }\n else {\n this.transformOrigin = {\n x: prop,\n y: 0.5,\n };\n }\n break;\n case 'pivotY':\n if (this.transformOrigin) {\n this.transformOrigin.y = prop;\n }\n else {\n this.transformOrigin = {\n x: 0.5,\n y: prop,\n };\n }\n break;\n case 'hidden':\n this.applyCSSStyle({\n display: prop === true ? \"none\" : this._originDisplay\n });\n break;\n default:\n console.error(`Cannot blend prop for ${propName}`);\n break;\n }\n }\n set backgroundColor(v) {\n if (typeof v === 'number') {\n this.applyCSSStyle({ backgroundColor: toRGBAString(v) });\n }\n else {\n let colorsParam = [];\n const { start, end, colors, locations, orientation = 0 } = v;\n if (colors) {\n colorsParam = colors.map((c) => {\n return toRGBAString(c);\n });\n }\n else if (typeof start === 'number' && typeof end === 'number') {\n colorsParam.push(...[toRGBAString(start), toRGBAString(end)]);\n }\n this.applyCSSStyle({ backgroundImage: `linear-gradient(${generateGradientOrientationDesc(orientation)}, ${generateGradientColorDesc(colorsParam, locations)})` });\n }\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 pureCallJSResponse(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.pureInvokeEntityMethod, this.context, argumentsList);\n }\n updateTransform() {\n this.applyCSSStyle({\n transform: Object.entries(this.transform).filter((e) => !!e[1]).map((e) => {\n const v = e[1] || 0;\n switch (e[0]) {\n case \"translateX\":\n return `translateX(${v}px)`;\n case \"scaleX\":\n return `scaleX(${v})`;\n case \"scaleY\":\n return `scaleY(${v})`;\n case \"rotation\":\n return `rotate(${v / 2}turn)`;\n case \"rotationX\":\n return `rotateX(${v / 2}turn)`;\n case \"rotationY\":\n return `rotateY(${v / 2}turn)`;\n default:\n console.error(`Do not support transform ${e[0]}`);\n return \"\";\n }\n }).join(\" \")\n });\n }\n updateTransformOrigin() {\n if (this.transformOrigin) {\n this.applyCSSStyle({\n transformOrigin: `${Math.round(this.transformOrigin.x * 100)}% ${Math.round(this.transformOrigin.y * 100)}%`\n });\n }\n }\n applyCSSStyle(cssStyle) {\n if (this.context.inAnimation()) {\n this.context.addAnimation(this, cssStyle);\n }\n else {\n for (let v in cssStyle) {\n Reflect.set(this.view.style, v, cssStyle[v]);\n }\n }\n }\n /** ++++++++++call from doric ++++++++++*/\n getWidth() {\n return this.view.offsetWidth;\n }\n getHeight() {\n return this.view.offsetHeight;\n }\n setWidth(v) {\n this.view.style.width = toPixelString(v);\n }\n setHeight(v) {\n this.view.style.height = toPixelString(v);\n }\n getX() {\n return this.view.offsetLeft;\n }\n getY() {\n return this.view.offsetTop;\n }\n setX(v) {\n this.view.style.left = toPixelString(v);\n }\n setY(v) {\n this.view.style.top = toPixelString(v);\n }\n getBackgroundColor() {\n return this.view.style.backgroundColor;\n }\n setBackgroundColor(v) {\n this.backgroundColor = v;\n }\n getAlpha() {\n return parseFloat(this.view.style.opacity);\n }\n setAlpha(v) {\n this.view.style.opacity = `${v}`;\n }\n getCorners() {\n return parseFloat(this.view.style.borderRadius);\n }\n setCorners(v) {\n this.view.style.borderRadius = toPixelString(v);\n }\n getLocationOnScreen() {\n const rect = this.view.getClientRects()[0];\n return {\n x: rect.left,\n y: rect.top,\n };\n }\n getRotation() {\n return this.transform.rotation;\n }\n setRotation(v) {\n this.transform.rotation = v;\n this.updateTransform();\n }\n getRotationX() {\n return this.transform.rotationX;\n }\n setRotationX(v) {\n this.transform.rotationX = v;\n this.updateTransform();\n }\n getRotationY() {\n return this.transform.rotationY;\n }\n setRotationY(v) {\n this.transform.rotationY = v;\n this.updateTransform();\n }\n getTranslationX() {\n return this.transform.translateX;\n }\n setTranslationX(v) {\n this.transform.translateX = v;\n this.updateTransform();\n }\n getTranslationY() {\n return this.transform.translateY;\n }\n setTranslationY(v) {\n this.transform.translateY = v;\n this.updateTransform();\n }\n getScaleX() {\n return this.transform.scaleX;\n }\n setScaleX(v) {\n this.transform.scaleX = v;\n this.updateTransform();\n }\n getScaleY() {\n return this.transform.scaleY;\n }\n setScaleY(v) {\n this.transform.scaleY = v;\n this.updateTransform();\n }\n getPivotX() {\n var _a;\n return ((_a = this.transformOrigin) === null || _a === void 0 ? void 0 : _a.x) || 0.5;\n }\n setPivotX(v) {\n if (this.transformOrigin) {\n this.transformOrigin.x = v;\n }\n else {\n this.transformOrigin = {\n x: v,\n y: 0.5,\n };\n }\n this.updateTransform();\n }\n getPivotY() {\n var _a;\n return ((_a = this.transformOrigin) === null || _a === void 0 ? void 0 : _a.y) || 0.5;\n }\n setPivotY(v) {\n if (this.transformOrigin) {\n this.transformOrigin.y = v;\n }\n else {\n this.transformOrigin = {\n x: 0.5,\n y: v,\n };\n }\n this.updateTransform();\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 onBlending() {\n super.onBlending();\n this.configChildNode();\n }\n onBlended() {\n super.onBlended();\n this.childNodes.forEach(e => e.onBlended());\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.splice(index, 0, 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//# sourceMappingURL=DoricViewNode.js.map","import { DoricPlugin } from \"../DoricPlugin\";\nimport { DoricSuperNode } from \"../shader/DoricViewNode\";\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 const viewNode = this.context.targetViewNode(ret.id);\n viewNode === null || viewNode === void 0 ? void 0 : viewNode.blend(ret.props);\n viewNode === null || viewNode === void 0 ? void 0 : viewNode.onBlended();\n }\n else {\n this.context.rootNode.viewId = ret.id;\n this.context.rootNode.blend(ret.props);\n this.context.rootNode.onBlended();\n }\n }\n command(options) {\n let viewNode = undefined;\n for (let viewId of options.viewIds) {\n if (!viewNode) {\n viewNode = this.context.targetViewNode(viewId);\n }\n else {\n if (viewNode instanceof DoricSuperNode) {\n viewNode = viewNode.getSubNodeById(viewId);\n }\n }\n }\n if (!viewNode) {\n return Promise.reject(\"Cannot find opposite view\");\n }\n else {\n const target = viewNode;\n return new Promise((resolve, reject) => {\n try {\n const method = Reflect.get(target, options.name);\n if (!method) {\n reject(`\"Cannot find plugin method in class:${target},method:${options.name}\"`);\n }\n resolve(Reflect.apply(method, target, [options.args]));\n }\n catch (err) {\n reject(err);\n }\n });\n }\n }\n}\n//# sourceMappingURL=ShaderPlugin.js.map","import { DoricGroupViewNode, LayoutSpec, LEFT, RIGHT, CENTER_X, CENTER_Y, TOP, BOTTOM, toPixelString, pixelString2Number } 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 const computedStyle = window.getComputedStyle(current.view);\n return Math.max(prev, current.view.offsetWidth\n + pixelString2Number(computedStyle.marginLeft)\n + pixelString2Number(computedStyle.marginRight));\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 const computedStyle = window.getComputedStyle(current.view);\n return Math.max(prev, current.view.offsetHeight\n + pixelString2Number(computedStyle.marginTop)\n + pixelString2Number(computedStyle.marginBottom));\n }, 0);\n this.view.style.height = toPixelString(height);\n }\n }\n configOffset() {\n this.childNodes.forEach(e => {\n const position = \"absolute\";\n let left = toPixelString(e.offsetX + this.paddingLeft);\n let top = toPixelString(e.offsetY + this.paddingTop);\n const gravity = e.layoutConfig.alignment;\n if ((gravity & LEFT) === LEFT) {\n left = toPixelString(0);\n }\n else if ((gravity & RIGHT) === RIGHT) {\n //ignore marginLeft\n const childMarginRight = pixelString2Number(window.getComputedStyle(e.view).marginRight);\n left = toPixelString(this.view.offsetWidth - e.view.offsetWidth - childMarginRight);\n }\n else if ((gravity & CENTER_X) === CENTER_X) {\n const childMarginLeft = pixelString2Number(window.getComputedStyle(e.view).marginLeft);\n const childMarginRight = pixelString2Number(window.getComputedStyle(e.view).marginRight);\n left = toPixelString(this.view.offsetWidth / 2 - e.view.offsetWidth / 2 + childMarginLeft - childMarginRight);\n }\n if ((gravity & TOP) === TOP) {\n top = toPixelString(0);\n }\n else if ((gravity & BOTTOM) === BOTTOM) {\n //ignore marginTop\n const childMarginTop = pixelString2Number(window.getComputedStyle(e.view).marginBottom);\n top = toPixelString(this.view.offsetHeight - e.view.offsetHeight - childMarginTop);\n }\n else if ((gravity & CENTER_Y) === CENTER_Y) {\n const childMarginTop = pixelString2Number(window.getComputedStyle(e.view).marginTop);\n const childMarginBottom = pixelString2Number(window.getComputedStyle(e.view).marginBottom);\n top = toPixelString(this.view.offsetHeight / 2 - e.view.offsetHeight / 2 + childMarginTop - childMarginBottom);\n }\n e.applyCSSStyle({\n position,\n left,\n top,\n });\n });\n }\n}\n//# sourceMappingURL=DoricStackNode.js.map","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 const bottomMargin = ((_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.marginBottom = toPixelString((idx === this.childNodes.length - 1) ? bottomMargin : this.space + bottomMargin);\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//# sourceMappingURL=DoricVLayoutNode.js.map","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 const rightMargin = ((_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.marginRight = toPixelString((idx === this.childNodes.length - 1) ? rightMargin : this.space + rightMargin);\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//# sourceMappingURL=DoricHLayoutNode.js.map","import { DoricViewNode, LEFT, RIGHT, CENTER_X, CENTER_Y, TOP, BOTTOM, toPixelString, pixelString2Number } from \"./DoricViewNode\";\nimport { toRGBAString } from \"../utils/color\";\nexport class DoricTextNode extends DoricViewNode {\n constructor() {\n super(...arguments);\n this.maxLines = 0;\n }\n build() {\n const div = document.createElement('div');\n div.style.display = \"flex\";\n div.style.overflow = \"hidden\";\n div.style.lineHeight = `${this.lineHeight()}em`;\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 \"font\":\n this.view.style.fontFamily = prop;\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 case \"maxLines\":\n this.maxLines = prop;\n this.view.style.whiteSpace = 'normal';\n break;\n case \"maxWidth\":\n if (prop) {\n this.layoutConfig.maxWidth = prop;\n }\n else {\n this.layoutConfig.maxWidth = -1;\n }\n break;\n case \"maxHeight\":\n if (prop) {\n this.layoutConfig.maxHeight = prop;\n }\n else {\n this.layoutConfig.maxHeight = -1;\n }\n break;\n default:\n super.blendProps(v, propName, prop);\n break;\n }\n }\n layout() {\n super.layout();\n Promise.resolve().then(_ => {\n this.configSize();\n });\n }\n configSize() {\n if (this.maxLines > 0) {\n const computedStyle = window.getComputedStyle(this.view);\n const currentContentHeight = this.view.clientHeight - pixelString2Number(computedStyle.paddingTop) - pixelString2Number(computedStyle.paddingBottom);\n let maxHeight = Math.ceil(parseFloat(computedStyle.getPropertyValue('font-size')) * this.lineHeight() * this.maxLines);\n if (currentContentHeight > 0) {\n maxHeight = Math.min(maxHeight, Math.ceil(currentContentHeight));\n }\n if (this.computedHeight(computedStyle) > maxHeight) {\n this.textElement.innerText = this.truncationText(computedStyle, maxHeight);\n }\n }\n }\n lineHeight() {\n return 1.3;\n }\n computedHeight(style) {\n const tempEle = document.createElement('div');\n tempEle.style.font = style.font;\n tempEle.textContent = this.textElement.innerText;\n tempEle.style.whiteSpace = 'normal';\n this.view.style.overflow = 'hidden';\n tempEle.style.lineHeight = `${this.lineHeight()}em`;\n tempEle.style.width = this.view.style.width;\n document.body.appendChild(tempEle);\n const height = tempEle.offsetHeight;\n document.body.removeChild(tempEle);\n return height;\n }\n truncationText(style, maxHeight) {\n const originalText = this.textElement.innerText;\n let start = 0, end = originalText.length;\n const tempEle = document.createElement('div');\n tempEle.style.font = style.font;\n tempEle.style.whiteSpace = 'normal';\n this.view.style.overflow = 'hidden';\n tempEle.style.lineHeight = `${this.lineHeight()}em`;\n tempEle.style.width = this.view.style.width;\n document.body.appendChild(tempEle);\n while (start <= end) {\n const mid = Math.floor((start + end) / 2);\n tempEle.textContent = originalText.slice(0, mid) + '...';\n if (tempEle.offsetHeight > maxHeight) {\n end = mid - 1;\n }\n else {\n start = mid + 1;\n }\n }\n document.body.removeChild(tempEle);\n return `${originalText.slice(0, end) + '...'}`;\n }\n}\n//# sourceMappingURL=DoricTextNode.js.map","import { DoricViewNode, toPixelString } from './DoricViewNode';\nimport { toRGBAString } from '../utils/color';\nimport { resourceManager } from '../DoricRegistry';\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 = {}));\nconst transparentBase64 = \"data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWNgYGBgAAAABQABh6FO1AAAAABJRU5ErkJggg==\";\nexport class DoricImageNode extends DoricViewNode {\n build() {\n const ret = document.createElement('img');\n ret.style.objectFit = 'fill';\n return ret;\n }\n blend(props) {\n this.placeHolderImage = props['placeHolderImage'];\n this.placeHolderImageBase64 = props['placeHolderImageBase64'];\n this.placeHolderColor = props['placeHolderColor'];\n this.errorImage = props['errorImage'];\n this.errorImageBase64 = props['errorImageBase64'];\n this.errorColor = props['errorColor'];\n this.stretchInset = props['stretchInset'];\n super.blend(props);\n }\n blendProps(v, propName, prop) {\n var _a;\n switch (propName) {\n case 'image':\n (_a = resourceManager.load(prop)) === null || _a === void 0 ? void 0 : _a.then(e => {\n this.loadIntoTarget(v, e);\n }).catch(e => {\n this.loadIntoTarget(v, '');\n });\n break;\n case 'imageUrl':\n case 'imageBase64':\n this.loadIntoTarget(v, prop);\n break;\n case 'placeHolderImage':\n case 'placeHolderImageBase64':\n case 'placeHolderColor':\n case 'errorImage':\n case 'errorImageBase64':\n case 'errorColor':\n break;\n case 'stretchInset':\n break;\n case 'loadCallback':\n this.onloadFuncId = prop;\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 loadIntoTarget(targetElement, src) {\n this.clearStretchElementAttributes(targetElement);\n this.loadPlaceHolder(targetElement);\n let tempLoadElement = this.stretchInset ? document.createElement('img') : targetElement;\n tempLoadElement.onload = () => {\n //remove placeHolderColor\n targetElement.style.removeProperty('background-color');\n if (tempLoadElement.src === src && this.onloadFuncId) {\n this.callJSResponse(this.onloadFuncId, {\n width: tempLoadElement.naturalWidth,\n height: tempLoadElement.naturalHeight,\n });\n }\n };\n tempLoadElement.onerror = () => {\n this.clearStretchElementAttributes(targetElement);\n const error = this.getError(targetElement.offsetWidth, targetElement.offsetHeight);\n if (!error)\n return;\n const same = src === error;\n const srcLoadError = tempLoadElement.src.length === 0 || tempLoadElement.src === src;\n if (same || !srcLoadError)\n return;\n targetElement.src = error;\n if (this.onloadFuncId) {\n this.callJSResponse(this.onloadFuncId);\n }\n };\n Promise.resolve().then(e => {\n tempLoadElement.src = src;\n if (this.stretchInset) {\n this.loadImageWithStretch(targetElement, src, this.stretchInset);\n }\n });\n }\n loadImageWithStretch(v, src, stretchInset) {\n v.src = transparentBase64;\n v.style.borderImageSource = `url(${src})`;\n v.style.borderImageSlice = `${stretchInset.top} ${stretchInset.right} ${stretchInset.bottom} ${stretchInset.left} fill`;\n const top = toPixelString(stretchInset.top);\n const right = toPixelString(stretchInset.right);\n const bottom = toPixelString(stretchInset.bottom);\n const left = toPixelString(stretchInset.left);\n v.style.borderImageWidth = `${top} ${right} ${bottom} ${left}`;\n }\n loadPlaceHolder(v) {\n if (this.placeHolderImage) {\n v.src = this.placeHolderImage;\n }\n else if (this.placeHolderImageBase64) {\n v.src = this.placeHolderImageBase64;\n }\n else if (this.placeHolderColor) {\n v.style.backgroundColor = toRGBAString(this.placeHolderColor);\n }\n }\n clearStretchElementAttributes(v) {\n v.style.removeProperty('background-color');\n v.style.removeProperty('border-image-source');\n v.style.removeProperty('border-image-slice');\n v.style.removeProperty('border-image-width');\n }\n getError(width, height) {\n if (this.errorImage) {\n return this.errorImage;\n }\n else if (this.errorImageBase64) {\n return this.errorImageBase64;\n }\n else if (this.errorColor && this.view) {\n return this.createColoredCanvas(width, height, this.errorColor);\n }\n return null;\n }\n createColoredCanvas(width, height, color) {\n const canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n const context = canvas.getContext('2d');\n if (context) {\n context.fillStyle = toRGBAString(color);\n context.fillRect(0, 0, width, height);\n return canvas.toDataURL('image/png');\n }\n return null;\n }\n}\n//# sourceMappingURL=DoricImageNode.js.map","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 onBlending() {\n super.onBlending();\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 onBlended() {\n var _a;\n super.onBlended();\n (_a = this.childNode) === null || _a === void 0 ? void 0 : _a.onBlended();\n }\n}\n//# sourceMappingURL=DoricScrollerNode.js.map","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//# sourceMappingURL=ModalPlugin.js.map","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//# sourceMappingURL=StoragePlugin.js.map","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//# sourceMappingURL=NavigatorPlugin.js.map","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//# sourceMappingURL=PopoverPlugin.js.map","import { DoricStackNode } from \"./DoricStackNode\";\nexport class DoricListItemNode extends DoricStackNode {\n constructor(context) {\n super(context);\n this.reusable = true;\n }\n}\n//# sourceMappingURL=DoricListItemNode.js.map","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 \"onScroll\":\n this.onScrollFuncId = 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 case 'scrollable':\n v.style.overflow = prop ? 'scroll' : 'hidden';\n break;\n default:\n super.blendProps(v, propName, prop);\n break;\n }\n }\n reload() {\n this.reset();\n const ret = this.pureCallJSResponse(\"renderBunchedItems\", 0, this.itemCount);\n ret.forEach(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 reset() {\n while (this.view.lastElementChild) {\n this.view.removeChild(this.view.lastElementChild);\n }\n this.childNodes = [];\n }\n onBlending() {\n super.onBlending();\n if (this.childNodes.length !== this.itemCount) {\n const ret = this.pureCallJSResponse(\"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 if (this.view.scrollTop + this.view.offsetHeight === this.view.scrollHeight) {\n this.onScrollToEnd();\n }\n }\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 var _a;\n if (viewId === this.loadMoreViewId) {\n return this.loadMoreViewNode;\n }\n return (_a = this.childNodes.filter(e => e.viewId === viewId)) === null || _a === void 0 ? void 0 : _a[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\", event => {\n if (this.onScrollFuncId) {\n this.callJSResponse(this.onScrollFuncId, { x: event.target.scrollLeft || 0, y: event.target.scrollTop });\n }\n if (this.loadMore) {\n if (ret.scrollTop + ret.offsetHeight === ret.scrollHeight) {\n this.onScrollToEnd();\n }\n }\n });\n return ret;\n }\n onBlended() {\n super.onBlended();\n this.childNodes.forEach(e => e.onBlended());\n }\n}\n//# sourceMappingURL=DoricListNode.js.map","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//# sourceMappingURL=DoricDraggableNode.js.map","import { DoricSuperNode, DoricViewNode } from \"./DoricViewNode\";\nexport class DoricRefreshableNode extends DoricSuperNode {\n constructor() {\n super(...arguments);\n this.headerViewId = \"\";\n this.contentViewId = \"\";\n this.refreshable = true;\n }\n build() {\n const ret = document.createElement('div');\n ret.style.overflow = \"hidden\";\n const header = document.createElement('div');\n const content = document.createElement('div');\n header.style.width = \"100%\";\n header.style.height = \"100%\";\n header.style.display = \"flex\";\n header.style.alignItems = \"flex-end\";\n header.style.justifyContent = \"center\";\n content.style.width = \"100%\";\n content.style.height = \"100%\";\n ret.appendChild(header);\n ret.appendChild(content);\n let touchStart = 0;\n ret.ontouchstart = (ev) => {\n if (!this.refreshable) {\n return;\n }\n touchStart = ev.touches[0].pageY;\n };\n ret.ontouchmove = (ev) => {\n var _a;\n if (!this.refreshable) {\n return;\n }\n const offset = (ev.touches[0].pageY - touchStart) * 0.68;\n ret.scrollTop = Math.max(0, header.offsetHeight - offset);\n (_a = this.headerNode) === null || _a === void 0 ? void 0 : _a.callJSResponse(\"setPullingDistance\", offset);\n };\n const touchend = () => {\n var _a, _b;\n if (!this.refreshable) {\n return;\n }\n if (header.offsetHeight - ret.scrollTop >= (((_a = this.headerNode) === null || _a === void 0 ? void 0 : _a.getWidth()) || 0)) {\n this.setRefreshing(true);\n (_b = this.onRefreshCallback) === null || _b === void 0 ? void 0 : _b.call(this);\n }\n else {\n // To idel\n ret.scrollTo({\n top: header.offsetHeight,\n behavior: \"smooth\"\n });\n }\n };\n ret.ontouchcancel = () => {\n touchend();\n };\n ret.ontouchend = () => {\n touchend();\n };\n window.requestAnimationFrame(() => {\n ret.scrollTop = header.offsetHeight;\n });\n this.headerContainer = header;\n this.contentContainer = content;\n return ret;\n }\n blendProps(v, propName, prop) {\n if (propName === 'content') {\n this.contentViewId = prop;\n }\n else if (propName === 'header') {\n this.headerViewId = prop;\n }\n else if (propName === 'onRefresh') {\n this.onRefreshCallback = () => {\n this.callJSResponse(prop);\n };\n }\n else {\n super.blendProps(v, propName, prop);\n }\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 if (viewId === this.headerViewId) {\n return this.headerNode;\n }\n else if (viewId === this.contentViewId) {\n return this.contentNode;\n }\n return undefined;\n }\n onBlending() {\n var _a, _b, _c, _d, _e, _f;\n super.onBlending();\n {\n const headerModel = this.getSubModel(this.headerViewId);\n if (headerModel) {\n if (this.headerNode) {\n if (this.headerNode.viewId !== this.headerViewId) {\n if (this.reusable && this.headerNode.viewType === headerModel.type) {\n this.headerNode.viewId = headerModel.id;\n this.headerNode.blend(headerModel.props);\n }\n else {\n (_a = this.headerContainer) === null || _a === void 0 ? void 0 : _a.removeChild(this.headerNode.view);\n const headerNode = DoricViewNode.create(this.context, headerModel.type);\n if (headerNode) {\n headerNode.viewId = headerModel.id;\n headerNode.init(this);\n headerNode.blend(headerModel.props);\n (_b = this.headerContainer) === null || _b === void 0 ? void 0 : _b.appendChild(headerNode.view);\n this.headerNode = headerNode;\n }\n }\n }\n }\n else {\n const headerNode = DoricViewNode.create(this.context, headerModel.type);\n if (headerNode) {\n headerNode.viewId = headerModel.id;\n headerNode.init(this);\n headerNode.blend(headerModel.props);\n (_c = this.headerContainer) === null || _c === void 0 ? void 0 : _c.appendChild(headerNode.view);\n this.headerNode = headerNode;\n }\n }\n }\n }\n {\n const contentModel = this.getSubModel(this.contentViewId);\n if (contentModel) {\n if (this.contentNode) {\n if (this.contentNode.viewId !== this.contentViewId) {\n if (this.reusable && this.contentNode.viewType === contentModel.type) {\n this.contentNode.viewId = contentModel.id;\n this.contentNode.blend(contentModel.props);\n }\n else {\n (_d = this.contentContainer) === null || _d === void 0 ? void 0 : _d.removeChild(this.contentNode.view);\n const contentNode = DoricViewNode.create(this.context, contentModel.type);\n if (contentNode) {\n contentNode.viewId = contentModel.id;\n contentNode.init(this);\n contentNode.blend(contentModel.props);\n (_e = this.contentContainer) === null || _e === void 0 ? void 0 : _e.appendChild(contentNode.view);\n this.contentNode = contentNode;\n }\n }\n }\n }\n else {\n const contentNode = DoricViewNode.create(this.context, contentModel.type);\n if (contentNode) {\n contentNode.viewId = contentModel.id;\n contentNode.init(this);\n contentNode.blend(contentModel.props);\n (_f = this.contentContainer) === null || _f === void 0 ? void 0 : _f.appendChild(contentNode.view);\n this.contentNode = contentNode;\n }\n }\n }\n }\n }\n onBlended() {\n super.onBlended();\n }\n setRefreshing(v) {\n var _a;\n if (!this.headerContainer || !this.headerNode) {\n return;\n }\n if (v) {\n this.view.scrollTo({\n top: this.headerContainer.offsetHeight - this.headerNode.getHeight(),\n behavior: \"smooth\"\n });\n this.headerNode.callJSResponse(\"startAnimation\");\n }\n else {\n this.view.scrollTo({\n top: (_a = this.headerContainer) === null || _a === void 0 ? void 0 : _a.offsetHeight,\n behavior: \"smooth\"\n });\n this.headerNode.callJSResponse(\"stopAnimation\");\n }\n }\n setRefreshable(v) {\n this.refreshable = v;\n if (!v) {\n this.setRefreshing(false);\n }\n }\n}\n//# sourceMappingURL=DoricRefreshableNode.js.map","import { DoricPlugin } from \"../DoricPlugin\";\nexport class AnimatePlugin extends DoricPlugin {\n submit() {\n return Promise.resolve();\n }\n animateRender(args) {\n var _a;\n this.context.animationSet = [];\n if (((_a = this.context.rootNode.viewId) === null || _a === void 0 ? void 0 : _a.length) > 0) {\n const viewNode = this.context.targetViewNode(args.id);\n viewNode === null || viewNode === void 0 ? void 0 : viewNode.blend(args.props);\n viewNode === null || viewNode === void 0 ? void 0 : viewNode.onBlended();\n }\n else {\n this.context.rootNode.viewId = args.id;\n this.context.rootNode.blend(args.props);\n this.context.rootNode.onBlended();\n }\n return new Promise(resolve => {\n Promise.resolve().then(() => {\n var _a;\n Promise.all(((_a = this.context.animationSet) === null || _a === void 0 ? void 0 : _a.map(e => {\n return new Promise(resolve => {\n const keyFrame = {};\n const ensureNonString = (key, value) => {\n if (!!value && value !== \"\") {\n return value;\n }\n switch ((key)) {\n case \"backgroundColor\":\n return \"transparent\";\n case \"transform\":\n return \"none\";\n default:\n return \"none\";\n }\n };\n for (let k in e.keyFrame) {\n keyFrame[k] = ensureNonString(k, e.viewNode.view.style[k]);\n e.keyFrame[k] = ensureNonString(k, e.keyFrame[k]);\n }\n try {\n const animation = e.viewNode.view.animate([keyFrame, e.keyFrame], {\n duration: args.duration,\n fill: \"forwards\"\n });\n animation.onfinish = () => {\n Object.entries(e.keyFrame).forEach(entry => {\n Reflect.set(e.viewNode.view.style, entry[0], entry[1]);\n });\n resolve(true);\n };\n }\n catch (e) {\n console.error(e);\n }\n });\n })) || [])\n .then(() => {\n resolve(0);\n })\n .finally(() => {\n this.context.animationSet = undefined;\n });\n });\n });\n }\n}\n//# sourceMappingURL=AnimatePlugin.js.map","import { DoricViewNode } from \"./DoricViewNode\";\nimport { toRGBAString } from \"../utils/color\";\nexport class DoricSwitchNode extends DoricViewNode {\n constructor() {\n super(...arguments);\n this.offTintColor = \"#e6e6e6\";\n this.onTintColor = \"#52d769\";\n }\n build() {\n const ret = document.createElement('div');\n ret.style.position = \"relative\";\n ret.style.width = \"50px\";\n ret.style.height = \"30px\";\n const input = document.createElement('input');\n input.type = \"checkbox\";\n input.style.display = \"none\";\n const box = document.createElement('div');\n box.style.width = \"100%\";\n box.style.height = \"100%\";\n box.style.backgroundColor = \"#ccc\";\n box.style.borderRadius = \"15px\";\n const span = document.createElement('span');\n span.style.display = \"inline-block\";\n span.style.height = \"30px\";\n span.style.width = \"30px\";\n span.style.borderRadius = \"15px\";\n span.style.background = \"#fff\";\n span.style.boxShadow = \"0px 3px 3px #eee\";\n box.appendChild(span);\n ret.appendChild(input);\n ret.appendChild(box);\n ret.onclick = () => {\n try {\n if (input.checked === false) {\n span.animate([{ transform: \"translateX(0px)\" }, { transform: \"translateX(30px)\" }], {\n duration: 200,\n fill: \"forwards\"\n });\n box.animate([{ backgroundColor: this.offTintColor }, { backgroundColor: this.onTintColor }], {\n duration: 200,\n fill: \"forwards\"\n });\n input.checked = true;\n }\n else {\n span.animate([{ transform: \"translateX(30px)\" }, { transform: \"translateX(0px)\" }], {\n duration: 200,\n fill: \"forwards\"\n });\n box.animate([{ backgroundColor: this.onTintColor }, { backgroundColor: this.offTintColor }], {\n duration: 200,\n fill: \"forwards\"\n });\n input.checked = false;\n }\n if (this.onSwitchFuncId) {\n this.callJSResponse(this.onSwitchFuncId, input.checked);\n }\n }\n catch (e) {\n alert(e);\n }\n };\n this.input = input;\n this.span = span;\n this.box = box;\n return ret;\n }\n setChecked(v) {\n if (!this.input || !this.span || !this.box) {\n return;\n }\n if (v) {\n this.span.style.transform = \"translateX(30px)\";\n this.box.style.backgroundColor = this.onTintColor;\n this.input.checked = v;\n }\n else {\n this.span.style.transform = \"translateX(0px)\";\n this.box.style.backgroundColor = this.offTintColor;\n this.input.checked = v;\n }\n }\n blendProps(v, propName, prop) {\n switch (propName) {\n case \"state\":\n this.setChecked(prop);\n break;\n case \"onSwitch\":\n this.onSwitchFuncId = prop;\n break;\n case \"offTintColor\":\n this.offTintColor = toRGBAString(prop);\n this.setChecked(this.getState());\n break;\n case \"onTintColor\":\n this.onTintColor = toRGBAString(prop);\n this.setChecked(this.getState());\n break;\n case \"thumbTintColor\":\n if (this.span) {\n this.span.style.backgroundColor = toRGBAString(prop);\n }\n break;\n default:\n super.blendProps(v, propName, prop);\n break;\n }\n }\n getState() {\n var _a;\n return ((_a = this.input) === null || _a === void 0 ? void 0 : _a.checked) || false;\n }\n}\n//# sourceMappingURL=DoricSwitchNode.js.map","import { DoricSuperNode, DoricViewNode } from \"./DoricViewNode\";\nexport class DoricSliderNode extends DoricSuperNode {\n constructor() {\n super(...arguments);\n this.itemCount = 0;\n this.renderPageFuncId = \"\";\n this.batchCount = 15;\n this.onPageSelectedFuncId = \"\";\n this.loop = false;\n this.childNodes = [];\n }\n blendProps(v, propName, prop) {\n if (propName === 'itemCount') {\n this.itemCount = prop;\n }\n else if (propName === 'renderPage') {\n if (prop !== this.renderPageFuncId) {\n this.childNodes = [];\n this.renderPageFuncId = prop;\n }\n }\n else if (propName === 'batchCount') {\n this.batchCount = prop;\n }\n else if (propName === 'onPageSlided') {\n this.onPageSelectedFuncId = prop;\n }\n else if (propName === 'loop') {\n this.loop = prop;\n }\n else {\n super.blendProps(v, propName, prop);\n }\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 var _a;\n return (_a = this.childNodes.filter(e => e.viewId === viewId)) === null || _a === void 0 ? void 0 : _a[0];\n }\n onBlending() {\n super.onBlending();\n if (this.childNodes.length !== this.itemCount) {\n const ret = this.pureCallJSResponse(\"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 }\n build() {\n const ret = document.createElement('div');\n ret.style.overflow = \"hidden\";\n ret.style.display = \"inline\";\n ret.style.whiteSpace = \"nowrap\";\n let touchStartX = 0;\n let currentIndex = 0;\n ret.ontouchstart = (ev) => {\n currentIndex = Math.round(ret.scrollLeft / ret.offsetWidth);\n touchStartX = ev.touches[0].pageX;\n };\n ret.ontouchmove = (ev) => {\n const offsetX = (touchStartX - ev.touches[0].pageX) * 3;\n ret.scrollTo({\n left: currentIndex * ret.offsetWidth + offsetX\n });\n };\n ret.ontouchcancel = ret.ontouchend = () => {\n let originInndex = currentIndex;\n currentIndex = Math.round(ret.scrollLeft / ret.offsetWidth);\n ret.scrollTo({\n left: currentIndex * ret.offsetWidth,\n behavior: \"smooth\"\n });\n if (originInndex !== currentIndex) {\n if (this.onPageSelectedFuncId.length > 0) {\n this.callJSResponse(this.onPageSelectedFuncId, currentIndex);\n }\n }\n };\n return ret;\n }\n getSlidedPage() {\n return Math.round(this.view.scrollLeft / this.view.offsetWidth);\n }\n slidePage(params) {\n if (params.smooth) {\n this.view.scrollTo({\n left: this.view.offsetWidth * params.page,\n behavior: \"smooth\"\n });\n }\n else {\n this.view.scrollTo({\n left: this.view.offsetWidth * params.page\n });\n }\n if (this.onPageSelectedFuncId.length > 0) {\n this.callJSResponse(this.onPageSelectedFuncId, params.page);\n }\n }\n}\n//# sourceMappingURL=DoricSliderNode.js.map","import { DoricStackNode } from \"./DoricStackNode\";\nexport class DoricSlideItemNode extends DoricStackNode {\n constructor(context) {\n super(context);\n this.reusable = true;\n }\n build() {\n const ret = super.build();\n ret.style.display = \"inline-block\";\n ret.style.width = \"100%\";\n ret.style.height = \"100%\";\n return ret;\n }\n}\n//# sourceMappingURL=DoricSlideItemNode.js.map","import { jsCallResolve } from \"doric/src/runtime/sandbox\";\nimport { DoricPlugin } from \"../DoricPlugin\";\nvar NotificationCenter;\n(function (NotificationCenter) {\n let receivers = [];\n function publish(notification) {\n receivers.filter(e => e.name === notification.name).forEach(e => {\n e.callback(notification.data);\n });\n }\n NotificationCenter.publish = publish;\n function subscribe(receiver) {\n receivers.push(receiver);\n }\n NotificationCenter.subscribe = subscribe;\n function unsubscribe(receiver) {\n receivers = receivers.filter(e => e !== receiver);\n }\n NotificationCenter.unsubscribe = unsubscribe;\n})(NotificationCenter || (NotificationCenter = {}));\nexport class NotificationPlugin extends DoricPlugin {\n constructor() {\n super(...arguments);\n this.receivers = {};\n }\n publish(args) {\n const key = `__doric__${args.biz || \"\"}#${args.name}`;\n NotificationCenter.publish({\n name: key,\n data: !!args.data ? JSON.parse(args.data) : undefined\n });\n return true;\n }\n subscribe(args) {\n const key = `__doric__${args.biz || \"\"}#${args.name}`;\n const receiver = {\n name: key,\n callback: (data) => {\n jsCallResolve(this.context.contextId, args.callback, data);\n }\n };\n this.receivers[args.callback] = receiver;\n NotificationCenter.subscribe(receiver);\n return args.callback;\n }\n unsubscribe(subscribeId) {\n const recevier = this.receivers[subscribeId];\n if (recevier) {\n NotificationCenter.unsubscribe(recevier);\n this.receivers[subscribeId] = undefined;\n return true;\n }\n else {\n return false;\n }\n }\n onTearDown() {\n Object.entries(this.receivers).map(e => e[1]).filter(e => !!e).forEach(e => {\n if (e) {\n NotificationCenter.unsubscribe(e);\n }\n });\n this.receivers = {};\n }\n}\n//# sourceMappingURL=NotificationPlugin.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport axios from \"axios\";\nimport { DoricPlugin } from \"../DoricPlugin\";\nexport class NetworkPlugin extends DoricPlugin {\n request(args) {\n return __awaiter(this, void 0, void 0, function* () {\n let result;\n let error;\n if (args.method.toLowerCase() === \"get\") {\n try {\n result = yield axios.get(args.url, {\n headers: args.headers ? args.headers : {},\n timeout: args.timeout\n });\n }\n catch (exception) {\n error = exception;\n }\n }\n else if (args.method.toLowerCase() === \"post\") {\n try {\n result = yield axios.post(args.url, args.data, {\n headers: args.headers ? args.headers : {},\n timeout: args.timeout\n });\n }\n catch (exception) {\n error = exception;\n }\n }\n else if (args.method.toLowerCase() === \"put\") {\n try {\n result = yield axios.put(args.url, args.data, {\n headers: args.headers ? args.headers : {},\n timeout: args.timeout\n });\n }\n catch (exception) {\n error = exception;\n }\n }\n else if (args.method.toLowerCase() === \"delete\") {\n try {\n result = yield axios.delete(args.url, {\n headers: args.headers ? args.headers : {},\n timeout: args.timeout\n });\n }\n catch (exception) {\n error = exception;\n }\n }\n result.data = JSON.stringify(result.data);\n if (result) {\n return Promise.resolve(result);\n }\n if (error) {\n return Promise.reject(error);\n }\n });\n }\n}\n//# sourceMappingURL=NetworkPlugin.js.map","function getX(ev) {\n return ev instanceof MouseEvent ? ev.pageX : ev.touches[0].pageX;\n}\nfunction getY(ev) {\n return ev instanceof MouseEvent ? ev.pageY : ev.touches[0].pageY;\n}\nexport function NestedSliderView(props) {\n const ret = document.createElement(\"div\");\n ret.style.overflow = \"hidden\";\n ret.style.display = \"inline\";\n ret.style.whiteSpace = \"nowrap\";\n let touch = {\n touchStartX: 0,\n touchStartY: 0,\n currentIndex: 0,\n isDragging: false,\n horizontal: true\n };\n ret.ontouchstart = ret.onmousedown = (ev) => {\n if (!props.scrollable())\n return;\n touch = Object.assign(Object.assign({}, touch), { currentIndex: Math.round(ret.scrollLeft / ret.offsetWidth), touchStartX: getX(ev), touchStartY: getY(ev), isDragging: true });\n };\n ret.ontouchmove = ret.onmousemove = (ev) => {\n if (!props.scrollable() || !touch.isDragging)\n return;\n if (!touch.horizontal) {\n return;\n }\n if (Math.abs(getX(ev) - touch.touchStartX) < Math.abs(getY(ev) - touch.touchStartY)) {\n touch.horizontal = false;\n return;\n }\n const offsetX = (touch.touchStartX - getX(ev)) * 1.2;\n ret.scrollTo({\n left: touch.currentIndex * ret.offsetWidth + offsetX,\n });\n };\n ret.onmouseup = ret.ontouchcancel = ret.ontouchend = () => {\n if (!props.scrollable())\n return;\n touch = Object.assign(Object.assign({}, touch), { isDragging: false, horizontal: true });\n let originIndex = touch.currentIndex;\n if (Math.abs(ret.scrollLeft - originIndex * ret.offsetWidth) > ret.offsetWidth / 5) {\n const positionOffset = Math.abs(ret.scrollLeft) > originIndex * ret.offsetWidth ? 1 : -1;\n touch.currentIndex += positionOffset;\n }\n ret.scrollTo({\n left: touch.currentIndex * ret.offsetWidth,\n behavior: \"smooth\",\n });\n if (originIndex !== touch.currentIndex) {\n if (props.onPageSelected) {\n props.onPageSelected(touch.currentIndex);\n }\n }\n };\n return ret;\n}\n//# sourceMappingURL=NestedSliderView.js.map","import { DoricGroupViewNode } from \"./DoricViewNode\";\nimport { NestedSliderView } from '../widgets/NestedSliderView';\nexport class DoricNestedSliderNode extends DoricGroupViewNode {\n constructor() {\n super(...arguments);\n this.onPageSelectedFuncId = \"\";\n this.scrollable = true;\n }\n blendProps(v, propName, prop) {\n if (propName === \"scrollable\") {\n this.scrollable = prop;\n }\n else if (propName === \"onPageSlided\") {\n this.onPageSelectedFuncId = prop;\n }\n else if (propName === \"slidePosition\") {\n setTimeout(() => {\n this.slidePage({ page: prop, smooth: false });\n });\n }\n else {\n super.blendProps(v, propName, prop);\n }\n }\n build() {\n return NestedSliderView({\n scrollable: () => this.scrollable, onPageSelected: index => {\n if (this.onPageSelectedFuncId.length > 0) {\n this.callJSResponse(this.onPageSelectedFuncId, index);\n }\n }\n });\n }\n layout() {\n super.layout();\n this.childNodes.forEach((e, idx) => {\n e.view.style.display = \"inline-block\";\n e.view.style.width = \"100%\";\n e.view.style.height = \"100%\";\n });\n }\n getSlidedPage() {\n return Math.round(this.view.scrollLeft / this.view.offsetWidth);\n }\n slidePage(params) {\n if (params.smooth) {\n this.view.scrollTo({\n left: this.view.offsetWidth * params.page,\n behavior: \"smooth\",\n });\n }\n else {\n this.view.scrollTo({\n left: this.view.offsetWidth * params.page,\n });\n }\n if (this.onPageSelectedFuncId.length > 0) {\n this.callJSResponse(this.onPageSelectedFuncId, params.page);\n }\n }\n}\n//# sourceMappingURL=DoricNestedSliderNode.js.map","export default class DoricResourceManager {\n constructor() {\n this.resourceLoaders = new Map();\n }\n registerLoader(loader) {\n this.resourceLoaders.set(loader.resourceType(), loader);\n }\n load(resource) {\n var _a;\n return (_a = this.resourceLoaders.get(resource.type)) === null || _a === void 0 ? void 0 : _a.load(resource.identifier);\n }\n}\n//# sourceMappingURL=DoricResourceManager.js.map","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\";\nimport { DoricRefreshableNode } from \"./shader/DoricRefreshableNode\";\nimport { AnimatePlugin } from \"./plugins/AnimatePlugin\";\nimport { DoricSwitchNode } from \"./shader/DoricSwitchNode\";\nimport { DoricSliderNode } from \"./shader/DoricSliderNode\";\nimport { DoricSlideItemNode } from \"./shader/DoricSlideItemNode\";\nimport { NotificationPlugin } from \"./plugins/NotificationPlugin\";\nimport { NetworkPlugin } from \"./plugins/NetworkPlugin\";\nimport { DoricNestedSliderNode } from \"./shader/DoricNestedSliderNode\";\nimport DoricResourceManager from \"./resource/DoricResourceManager\";\nconst bundles = new Map;\nconst plugins = new Map;\nconst nodes = new Map;\nexport const resourceManager = new DoricResourceManager();\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);\nregisterPlugin('animate', AnimatePlugin);\nregisterPlugin('notification', NotificationPlugin);\nregisterPlugin('network', NetworkPlugin);\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);\nregisterViewNode('Refreshable', DoricRefreshableNode);\nregisterViewNode('Switch', DoricSwitchNode);\nregisterViewNode('Slider', DoricSliderNode);\nregisterViewNode('SlideItem', DoricSlideItemNode);\nregisterViewNode('NestedSlider', DoricNestedSliderNode);\n//# sourceMappingURL=DoricRegistry.js.map","import { jsCallResolve, jsCallReject, jsCallbackTimer, jsReleaseContext, jsHookAfterNativeCall } 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: \"web\"\n });\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, 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 markNeedHook();\n }, e => {\n jsCallReject(contextId, callbackId, e);\n markNeedHook();\n });\n }\n else if (ret !== undefined) {\n Promise.resolve(ret).then((ret) => {\n jsCallResolve(contextId, callbackId, ret);\n markNeedHook();\n });\n }\n return true;\n });\n injectGlobalObject('nativeSetTimer', (timerId, time, repeat) => {\n if (repeat) {\n const handleId = originSetInterval(() => {\n jsCallbackTimer(timerId);\n markNeedHook();\n }, time);\n timers.set(timerId, { handleId, repeat });\n }\n else {\n const handleId = originSetTimeout(() => {\n jsCallbackTimer(timerId);\n markNeedHook();\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}\nlet requesting = false;\nexport function markNeedHook() {\n if (requesting) {\n return;\n }\n requesting = true;\n requestAnimationFrame(() => {\n jsHookAfterNativeCall();\n requesting = false;\n });\n}\ninitDoric();\n//# sourceMappingURL=DoricDriver.js.map","import { jsObtainContext, jsCallEntityMethod, pureCallEntityMethod } from 'doric/src/runtime/sandbox';\nimport { createContext, destroyContext, markNeedHook } 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 targetViewNode(viewId) {\n if (this.rootNode.viewId === viewId) {\n return this.rootNode;\n }\n for (let nodes of this.headNodes.values()) {\n if (nodes.has(viewId)) {\n return nodes.get(viewId);\n }\n }\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 const ret = Reflect.apply(jsCallEntityMethod, this.panel, argumentsList);\n markNeedHook();\n return ret;\n }\n pureInvokeEntityMethod(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(pureCallEntityMethod, this.panel, argumentsList);\n }\n init(data) {\n this.invokeEntityMethod(\"__init__\", data);\n }\n onCreate() {\n this.invokeEntityMethod(\"__onCreate__\");\n }\n onDestroy() {\n this.invokeEntityMethod(\"__onDestroy__\");\n }\n onShow() {\n this.invokeEntityMethod(\"__onShow__\");\n }\n onHidden() {\n this.invokeEntityMethod(\"__onHidden__\");\n }\n build(frame) {\n this.invokeEntityMethod(\"__build__\", frame);\n }\n inAnimation() {\n return !!this.animationSet;\n }\n addAnimation(viewNode, keyFrame) {\n var _a;\n (_a = this.animationSet) === null || _a === void 0 ? void 0 : _a.push({\n viewNode,\n keyFrame,\n });\n }\n teardown() {\n for (let plugin of this.pluginInstances.values()) {\n plugin.onTearDown();\n }\n destroyContext(this.contextId);\n }\n}\n//# sourceMappingURL=DoricContext.js.map","import { loadDoricJSBundle } from './DoricBundleLoader';\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 get initData() {\n return this.getAttribute('data');\n }\n set initData(v) {\n this.setAttribute('data', v);\n }\n connectedCallback() {\n if (this.src && this.context === undefined) {\n loadDoricJSBundle(this.src).then(result => {\n this.load(result);\n });\n }\n }\n disconnectedCallback() {\n }\n adoptedCallback() {\n }\n attributeChangedCallback() {\n }\n onDestroy() {\n var _a, _b;\n (_a = this.context) === null || _a === void 0 ? void 0 : _a.onDestroy();\n (_b = this.context) === null || _b === void 0 ? void 0 : _b.teardown();\n }\n load(content) {\n this.context = new DoricContext(content);\n this.context.init(this.initData);\n this.context.onCreate();\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 this.context.onShow();\n }\n}\n//# sourceMappingURL=DoricElement.js.map","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//# sourceMappingURL=NavigationElement.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport axios from 'axios';\nimport smoothscroll from 'smoothscroll-polyfill';\nimport { registerDoricJSLoader } from './src/DoricBundleLoader';\nimport { DoricElement } from './src/DoricElement';\nimport { NavigationElement } from './src/navigate/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';\nexport * from './src/resource/DoricResourceLoader';\nwindow.customElements.define('doric-div', DoricElement);\nwindow.customElements.define('doric-navigation', NavigationElement);\nsmoothscroll.polyfill();\nregisterDoricJSLoader({\n filter: (source) => source.startsWith(\"assets://\"),\n request: (source) => __awaiter(void 0, void 0, void 0, function* () {\n const ret = yield axios.get(source.replace(\"assets://\", `${window.location.href}/../../doric-demo/bundle/`));\n return ret.data;\n })\n});\n//# sourceMappingURL=index.js.map"],"names":["__awaiter","this","axios","LayoutSpec","jsCallResolve","jsCallReject","jsCallbackTimer","jsReleaseContext","jsHookAfterNativeCall","jsObtainContext","jsCallEntityMethod","pureCallEntityMethod"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"} \ No newline at end of file +{"version":3,"file":"index.js","sources":["../node_modules/smoothscroll-polyfill/dist/smoothscroll.js","../build/src/DoricBundleLoader.js","../build/src/DoricPlugin.js","../build/src/utils/color.js","../build/src/shader/DoricViewNode.js","../build/src/plugins/ShaderPlugin.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/shader/DoricRefreshableNode.js","../build/src/plugins/AnimatePlugin.js","../build/src/shader/DoricSwitchNode.js","../build/src/shader/DoricSliderNode.js","../build/src/shader/DoricSlideItemNode.js","../build/src/plugins/NotificationPlugin.js","../build/src/plugins/NetworkPlugin.js","../build/src/widgets/NestedSliderView.js","../build/src/shader/DoricNestedSliderNode.js","../build/src/resource/DoricResourceManager.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":["/* smoothscroll v0.4.4 - 2019 - Dustan Kasten, Jeremias Menichelli - MIT License */\n(function () {\n 'use strict';\n\n // polyfill\n function polyfill() {\n // aliases\n var w = window;\n var d = document;\n\n // return if scroll behavior is supported and polyfill is not forced\n if (\n 'scrollBehavior' in d.documentElement.style &&\n w.__forceSmoothScrollPolyfill__ !== true\n ) {\n return;\n }\n\n // globals\n var Element = w.HTMLElement || w.Element;\n var SCROLL_TIME = 468;\n\n // object gathering original scroll methods\n var original = {\n scroll: w.scroll || w.scrollTo,\n scrollBy: w.scrollBy,\n elementScroll: Element.prototype.scroll || scrollElement,\n scrollIntoView: Element.prototype.scrollIntoView\n };\n\n // define timing method\n var now =\n w.performance && w.performance.now\n ? w.performance.now.bind(w.performance)\n : Date.now;\n\n /**\n * indicates if a the current browser is made by Microsoft\n * @method isMicrosoftBrowser\n * @param {String} userAgent\n * @returns {Boolean}\n */\n function isMicrosoftBrowser(userAgent) {\n var userAgentPatterns = ['MSIE ', 'Trident/', 'Edge/'];\n\n return new RegExp(userAgentPatterns.join('|')).test(userAgent);\n }\n\n /*\n * IE has rounding bug rounding down clientHeight and clientWidth and\n * rounding up scrollHeight and scrollWidth causing false positives\n * on hasScrollableSpace\n */\n var ROUNDING_TOLERANCE = isMicrosoftBrowser(w.navigator.userAgent) ? 1 : 0;\n\n /**\n * changes scroll position inside an element\n * @method scrollElement\n * @param {Number} x\n * @param {Number} y\n * @returns {undefined}\n */\n function scrollElement(x, y) {\n this.scrollLeft = x;\n this.scrollTop = y;\n }\n\n /**\n * returns result of applying ease math function to a number\n * @method ease\n * @param {Number} k\n * @returns {Number}\n */\n function ease(k) {\n return 0.5 * (1 - Math.cos(Math.PI * k));\n }\n\n /**\n * indicates if a smooth behavior should be applied\n * @method shouldBailOut\n * @param {Number|Object} firstArg\n * @returns {Boolean}\n */\n function shouldBailOut(firstArg) {\n if (\n firstArg === null ||\n typeof firstArg !== 'object' ||\n firstArg.behavior === undefined ||\n firstArg.behavior === 'auto' ||\n firstArg.behavior === 'instant'\n ) {\n // first argument is not an object/null\n // or behavior is auto, instant or undefined\n return true;\n }\n\n if (typeof firstArg === 'object' && firstArg.behavior === 'smooth') {\n // first argument is an object and behavior is smooth\n return false;\n }\n\n // throw error when behavior is not supported\n throw new TypeError(\n 'behavior member of ScrollOptions ' +\n firstArg.behavior +\n ' is not a valid value for enumeration ScrollBehavior.'\n );\n }\n\n /**\n * indicates if an element has scrollable space in the provided axis\n * @method hasScrollableSpace\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function hasScrollableSpace(el, axis) {\n if (axis === 'Y') {\n return el.clientHeight + ROUNDING_TOLERANCE < el.scrollHeight;\n }\n\n if (axis === 'X') {\n return el.clientWidth + ROUNDING_TOLERANCE < el.scrollWidth;\n }\n }\n\n /**\n * indicates if an element has a scrollable overflow property in the axis\n * @method canOverflow\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function canOverflow(el, axis) {\n var overflowValue = w.getComputedStyle(el, null)['overflow' + axis];\n\n return overflowValue === 'auto' || overflowValue === 'scroll';\n }\n\n /**\n * indicates if an element can be scrolled in either axis\n * @method isScrollable\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function isScrollable(el) {\n var isScrollableY = hasScrollableSpace(el, 'Y') && canOverflow(el, 'Y');\n var isScrollableX = hasScrollableSpace(el, 'X') && canOverflow(el, 'X');\n\n return isScrollableY || isScrollableX;\n }\n\n /**\n * finds scrollable parent of an element\n * @method findScrollableParent\n * @param {Node} el\n * @returns {Node} el\n */\n function findScrollableParent(el) {\n while (el !== d.body && isScrollable(el) === false) {\n el = el.parentNode || el.host;\n }\n\n return el;\n }\n\n /**\n * self invoked function that, given a context, steps through scrolling\n * @method step\n * @param {Object} context\n * @returns {undefined}\n */\n function step(context) {\n var time = now();\n var value;\n var currentX;\n var currentY;\n var elapsed = (time - context.startTime) / SCROLL_TIME;\n\n // avoid elapsed times higher than one\n elapsed = elapsed > 1 ? 1 : elapsed;\n\n // apply easing to elapsed time\n value = ease(elapsed);\n\n currentX = context.startX + (context.x - context.startX) * value;\n currentY = context.startY + (context.y - context.startY) * value;\n\n context.method.call(context.scrollable, currentX, currentY);\n\n // scroll more if we have not reached our destination\n if (currentX !== context.x || currentY !== context.y) {\n w.requestAnimationFrame(step.bind(w, context));\n }\n }\n\n /**\n * scrolls window or element with a smooth behavior\n * @method smoothScroll\n * @param {Object|Node} el\n * @param {Number} x\n * @param {Number} y\n * @returns {undefined}\n */\n function smoothScroll(el, x, y) {\n var scrollable;\n var startX;\n var startY;\n var method;\n var startTime = now();\n\n // define scroll context\n if (el === d.body) {\n scrollable = w;\n startX = w.scrollX || w.pageXOffset;\n startY = w.scrollY || w.pageYOffset;\n method = original.scroll;\n } else {\n scrollable = el;\n startX = el.scrollLeft;\n startY = el.scrollTop;\n method = scrollElement;\n }\n\n // scroll looping over a frame\n step({\n scrollable: scrollable,\n method: method,\n startTime: startTime,\n startX: startX,\n startY: startY,\n x: x,\n y: y\n });\n }\n\n // ORIGINAL METHODS OVERRIDES\n // w.scroll and w.scrollTo\n w.scroll = w.scrollTo = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.scroll.call(\n w,\n arguments[0].left !== undefined\n ? arguments[0].left\n : typeof arguments[0] !== 'object'\n ? arguments[0]\n : w.scrollX || w.pageXOffset,\n // use top prop, second argument if present or fallback to scrollY\n arguments[0].top !== undefined\n ? arguments[0].top\n : arguments[1] !== undefined\n ? arguments[1]\n : w.scrollY || w.pageYOffset\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n w,\n d.body,\n arguments[0].left !== undefined\n ? ~~arguments[0].left\n : w.scrollX || w.pageXOffset,\n arguments[0].top !== undefined\n ? ~~arguments[0].top\n : w.scrollY || w.pageYOffset\n );\n };\n\n // w.scrollBy\n w.scrollBy = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0])) {\n original.scrollBy.call(\n w,\n arguments[0].left !== undefined\n ? arguments[0].left\n : typeof arguments[0] !== 'object' ? arguments[0] : 0,\n arguments[0].top !== undefined\n ? arguments[0].top\n : arguments[1] !== undefined ? arguments[1] : 0\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n w,\n d.body,\n ~~arguments[0].left + (w.scrollX || w.pageXOffset),\n ~~arguments[0].top + (w.scrollY || w.pageYOffset)\n );\n };\n\n // Element.prototype.scroll and Element.prototype.scrollTo\n Element.prototype.scroll = Element.prototype.scrollTo = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n // if one number is passed, throw error to match Firefox implementation\n if (typeof arguments[0] === 'number' && arguments[1] === undefined) {\n throw new SyntaxError('Value could not be converted');\n }\n\n original.elementScroll.call(\n this,\n // use left prop, first number argument or fallback to scrollLeft\n arguments[0].left !== undefined\n ? ~~arguments[0].left\n : typeof arguments[0] !== 'object' ? ~~arguments[0] : this.scrollLeft,\n // use top prop, second argument or fallback to scrollTop\n arguments[0].top !== undefined\n ? ~~arguments[0].top\n : arguments[1] !== undefined ? ~~arguments[1] : this.scrollTop\n );\n\n return;\n }\n\n var left = arguments[0].left;\n var top = arguments[0].top;\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n this,\n this,\n typeof left === 'undefined' ? this.scrollLeft : ~~left,\n typeof top === 'undefined' ? this.scrollTop : ~~top\n );\n };\n\n // Element.prototype.scrollBy\n Element.prototype.scrollBy = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.elementScroll.call(\n this,\n arguments[0].left !== undefined\n ? ~~arguments[0].left + this.scrollLeft\n : ~~arguments[0] + this.scrollLeft,\n arguments[0].top !== undefined\n ? ~~arguments[0].top + this.scrollTop\n : ~~arguments[1] + this.scrollTop\n );\n\n return;\n }\n\n this.scroll({\n left: ~~arguments[0].left + this.scrollLeft,\n top: ~~arguments[0].top + this.scrollTop,\n behavior: arguments[0].behavior\n });\n };\n\n // Element.prototype.scrollIntoView\n Element.prototype.scrollIntoView = function() {\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.scrollIntoView.call(\n this,\n arguments[0] === undefined ? true : arguments[0]\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n var scrollableParent = findScrollableParent(this);\n var parentRects = scrollableParent.getBoundingClientRect();\n var clientRects = this.getBoundingClientRect();\n\n if (scrollableParent !== d.body) {\n // reveal element inside parent\n smoothScroll.call(\n this,\n scrollableParent,\n scrollableParent.scrollLeft + clientRects.left - parentRects.left,\n scrollableParent.scrollTop + clientRects.top - parentRects.top\n );\n\n // reveal parent in viewport unless is fixed\n if (w.getComputedStyle(scrollableParent).position !== 'fixed') {\n w.scrollBy({\n left: parentRects.left,\n top: parentRects.top,\n behavior: 'smooth'\n });\n }\n } else {\n // reveal element in viewport\n w.scrollBy({\n left: clientRects.left,\n top: clientRects.top,\n behavior: 'smooth'\n });\n }\n };\n }\n\n if (typeof exports === 'object' && typeof module !== 'undefined') {\n // commonjs\n module.exports = { polyfill: polyfill };\n } else {\n // global\n polyfill();\n }\n\n}());\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport axios from \"axios\";\nconst loaders = [\n {\n filter: () => true,\n request: (source) => __awaiter(void 0, void 0, void 0, function* () {\n const result = yield axios.get(source);\n return result.data;\n })\n }\n];\nexport function registerDoricJSLoader(loader) {\n loaders.push(loader);\n}\nexport function loadDoricJSBundle(source) {\n return __awaiter(this, void 0, void 0, function* () {\n const matched = loaders.filter(e => e.filter(source));\n if (matched.length > 0) {\n return matched[matched.length - 1].request(source);\n }\n throw new Error(`Cannot find matched loader for '${source}'`);\n });\n}\n//# sourceMappingURL=DoricBundleLoader.js.map","export class DoricPlugin {\n constructor(context) {\n this.context = context;\n }\n onTearDown() {\n }\n}\n//# sourceMappingURL=DoricPlugin.js.map","export var GradientOrientation;\n(function (GradientOrientation) {\n /** draw the gradient from the top to the bottom */\n GradientOrientation[GradientOrientation[\"TOP_BOTTOM\"] = 0] = \"TOP_BOTTOM\";\n /** draw the gradient from the top-right to the bottom-left */\n GradientOrientation[GradientOrientation[\"TR_BL\"] = 1] = \"TR_BL\";\n /** draw the gradient from the right to the left */\n GradientOrientation[GradientOrientation[\"RIGHT_LEFT\"] = 2] = \"RIGHT_LEFT\";\n /** draw the gradient from the bottom-right to the top-left */\n GradientOrientation[GradientOrientation[\"BR_TL\"] = 3] = \"BR_TL\";\n /** draw the gradient from the bottom to the top */\n GradientOrientation[GradientOrientation[\"BOTTOM_TOP\"] = 4] = \"BOTTOM_TOP\";\n /** draw the gradient from the bottom-left to the top-right */\n GradientOrientation[GradientOrientation[\"BL_TR\"] = 5] = \"BL_TR\";\n /** draw the gradient from the left to the right */\n GradientOrientation[GradientOrientation[\"LEFT_RIGHT\"] = 6] = \"LEFT_RIGHT\";\n /** draw the gradient from the top-left to the bottom-right */\n GradientOrientation[GradientOrientation[\"TL_BR\"] = 7] = \"TL_BR\";\n})(GradientOrientation || (GradientOrientation = {}));\nexport function toRGBAString(color) {\n let strs = [];\n for (let i = 0; i < 32; i += 8) {\n strs.push(((color >> i) & 0xff));\n }\n strs = strs.reverse();\n /// RGBAd\n return `rgba(${strs[1]},${strs[2]},${strs[3]},${strs[0] / 255})`;\n}\nexport function generateGradientColorDesc(colors, locations) {\n if (!locations) {\n return colors.join(', ');\n }\n if (colors.length !== locations.length) {\n throw new Error(\"Colors and locations arrays must have the same length.\");\n }\n const gradientStops = colors.map((color, index) => `${color} ${locations[index] * 100}%`);\n return gradientStops.join(\", \");\n}\nexport function generateGradientOrientationDesc(orientation) {\n switch (orientation) {\n case GradientOrientation.TR_BL:\n return 'to bottom left';\n case GradientOrientation.RIGHT_LEFT:\n return 'to left';\n case GradientOrientation.BR_TL:\n return 'to top left';\n case GradientOrientation.BOTTOM_TOP:\n return 'to top';\n case GradientOrientation.BL_TR:\n return 'to top right';\n case GradientOrientation.LEFT_RIGHT:\n return 'to right';\n case GradientOrientation.TL_BR:\n return 'to bottom right';\n default:\n return 'to bottom';\n }\n}\n//# sourceMappingURL=color.js.map","import { acquireViewNode } from \"../DoricRegistry\";\nimport { generateGradientColorDesc, generateGradientOrientationDesc } from \"../utils/color\";\nimport { toRGBAString } from \"../utils/color\";\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 pixelString2Number(v) {\n return parseFloat(v.substring(0, v.indexOf(\"px\")));\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 maxWidth: -1,\n maxHeight: -1,\n minWidth: -1,\n minHeight: -1\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._originDisplay = \"\";\n this.transform = {};\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 this._originDisplay = this.view.style.display;\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.onBlending();\n this.layout();\n }\n onBlending() {\n this.updateTransform();\n }\n onBlended() {\n }\n configBorder() {\n if (this.border) {\n this.applyCSSStyle({\n borderStyle: \"solid\",\n borderWidth: toPixelString(this.border.width),\n borderColor: toRGBAString(this.border.color),\n });\n }\n }\n configWidth() {\n let width;\n switch (this.layoutConfig.widthSpec) {\n case LayoutSpec.WRAP_CONTENT:\n width = \"max-content\";\n break;\n case LayoutSpec.AT_MOST:\n width = \"100%\";\n break;\n case LayoutSpec.EXACTLY:\n default:\n width = toPixelString(this.frameWidth\n - this.paddingLeft - this.paddingRight\n - this.borderWidth * 2);\n break;\n }\n this.applyCSSStyle({ width });\n }\n configSizeConstraints() {\n if (this.layoutConfig.maxWidth && this.layoutConfig.maxWidth !== -1) {\n this.applyCSSStyle({ maxWidth: toPixelString(this.layoutConfig.maxWidth) });\n }\n else {\n this.view.style.removeProperty('max-width');\n }\n if (this.layoutConfig.maxHeight && this.layoutConfig.maxHeight !== -1) {\n this.applyCSSStyle({ maxHeight: toPixelString(this.layoutConfig.maxHeight) });\n }\n else {\n this.view.style.removeProperty('max-height');\n }\n if (this.layoutConfig.minWidth && this.layoutConfig.minWidth !== -1) {\n this.applyCSSStyle({ minWidth: toPixelString(this.layoutConfig.minWidth) });\n }\n else {\n this.view.style.removeProperty('min-width');\n }\n if (this.layoutConfig.minHeight && this.layoutConfig.minHeight !== -1) {\n this.applyCSSStyle({ minHeight: toPixelString(this.layoutConfig.minHeight) });\n }\n else {\n this.view.style.removeProperty('min-height');\n }\n }\n configHeight() {\n let height;\n switch (this.layoutConfig.heightSpec) {\n case LayoutSpec.WRAP_CONTENT:\n height = \"max-content\";\n break;\n case LayoutSpec.AT_MOST:\n height = \"100%\";\n break;\n case LayoutSpec.EXACTLY:\n default:\n height = toPixelString(this.frameHeight\n - this.paddingTop - this.paddingBottom\n - this.borderWidth * 2);\n break;\n }\n this.applyCSSStyle({ height });\n }\n configMargin() {\n if (this.layoutConfig.margin) {\n this.applyCSSStyle({\n marginLeft: toPixelString(this.layoutConfig.margin.left || 0),\n marginRight: toPixelString(this.layoutConfig.margin.right || 0),\n marginTop: toPixelString(this.layoutConfig.margin.top || 0),\n marginBottom: toPixelString(this.layoutConfig.margin.bottom || 0),\n });\n }\n }\n configPadding() {\n if (this.padding) {\n this.applyCSSStyle({\n paddingLeft: toPixelString(this.paddingLeft),\n paddingRight: toPixelString(this.paddingRight),\n paddingTop: toPixelString(this.paddingTop),\n paddingBottom: toPixelString(this.paddingBottom),\n });\n }\n }\n layout() {\n this.configMargin();\n this.configBorder();\n this.configPadding();\n this.configWidth();\n this.configHeight();\n this.configSizeConstraints();\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.applyCSSStyle({\n borderTopLeftRadius: toPixelString(prop.leftTop),\n borderTopRightRadius: toPixelString(prop.rightTop),\n borderBottomRightRadius: toPixelString(prop.rightBottom),\n borderBottomLeftRadius: toPixelString(prop.leftBottom),\n });\n }\n else {\n this.applyCSSStyle({ borderRadius: toPixelString(prop) });\n }\n break;\n case 'shadow':\n const opacity = prop.opacity || 0;\n let boxShadow;\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 boxShadow = `${toPixelString(offsetX)} ${toPixelString(offsetY)} ${toPixelString(shadowRadius)} ${toRGBAString((shadowColor & 0xffffff) | ((alpha & 0xff) << 24))} `;\n }\n else {\n boxShadow = \"\";\n }\n this.applyCSSStyle({\n boxShadow,\n });\n break;\n case 'alpha':\n this.applyCSSStyle({\n opacity: `${prop}`,\n });\n break;\n case 'rotation':\n this.transform.rotation = prop;\n break;\n case 'rotationX':\n this.transform.rotationX = prop;\n break;\n case 'rotationY':\n this.transform.rotationY = prop;\n break;\n case 'scaleX':\n this.transform.scaleX = prop;\n break;\n case 'scaleY':\n this.transform.scaleY = prop;\n break;\n case 'translationX':\n this.transform.translateX = prop;\n break;\n case 'translationY':\n this.transform.translateY = prop;\n break;\n case 'pivotX':\n if (this.transformOrigin) {\n this.transformOrigin.x = prop;\n }\n else {\n this.transformOrigin = {\n x: prop,\n y: 0.5,\n };\n }\n break;\n case 'pivotY':\n if (this.transformOrigin) {\n this.transformOrigin.y = prop;\n }\n else {\n this.transformOrigin = {\n x: 0.5,\n y: prop,\n };\n }\n break;\n case 'hidden':\n this.applyCSSStyle({\n display: prop === true ? \"none\" : this._originDisplay\n });\n break;\n default:\n console.error(`Cannot blend prop for ${propName}`);\n break;\n }\n }\n set backgroundColor(v) {\n if (typeof v === 'number') {\n this.applyCSSStyle({ backgroundColor: toRGBAString(v) });\n }\n else {\n let colorsParam = [];\n const { start, end, colors, locations, orientation = 0 } = v;\n if (colors) {\n colorsParam = colors.map((c) => {\n return toRGBAString(c);\n });\n }\n else if (typeof start === 'number' && typeof end === 'number') {\n colorsParam.push(...[toRGBAString(start), toRGBAString(end)]);\n }\n this.applyCSSStyle({ backgroundImage: `linear-gradient(${generateGradientOrientationDesc(orientation)}, ${generateGradientColorDesc(colorsParam, locations)})` });\n }\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 pureCallJSResponse(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.pureInvokeEntityMethod, this.context, argumentsList);\n }\n updateTransform() {\n this.applyCSSStyle({\n transform: Object.entries(this.transform).filter((e) => !!e[1]).map((e) => {\n const v = e[1] || 0;\n switch (e[0]) {\n case \"translateX\":\n return `translateX(${v}px)`;\n case \"scaleX\":\n return `scaleX(${v})`;\n case \"scaleY\":\n return `scaleY(${v})`;\n case \"rotation\":\n return `rotate(${v / 2}turn)`;\n case \"rotationX\":\n return `rotateX(${v / 2}turn)`;\n case \"rotationY\":\n return `rotateY(${v / 2}turn)`;\n default:\n console.error(`Do not support transform ${e[0]}`);\n return \"\";\n }\n }).join(\" \")\n });\n }\n updateTransformOrigin() {\n if (this.transformOrigin) {\n this.applyCSSStyle({\n transformOrigin: `${Math.round(this.transformOrigin.x * 100)}% ${Math.round(this.transformOrigin.y * 100)}%`\n });\n }\n }\n applyCSSStyle(cssStyle) {\n if (this.context.inAnimation()) {\n this.context.addAnimation(this, cssStyle);\n }\n else {\n for (let v in cssStyle) {\n Reflect.set(this.view.style, v, cssStyle[v]);\n }\n }\n }\n /** ++++++++++call from doric ++++++++++*/\n getWidth() {\n return this.view.offsetWidth;\n }\n getHeight() {\n return this.view.offsetHeight;\n }\n setWidth(v) {\n this.view.style.width = toPixelString(v);\n }\n setHeight(v) {\n this.view.style.height = toPixelString(v);\n }\n getX() {\n return this.view.offsetLeft;\n }\n getY() {\n return this.view.offsetTop;\n }\n setX(v) {\n this.view.style.left = toPixelString(v);\n }\n setY(v) {\n this.view.style.top = toPixelString(v);\n }\n getBackgroundColor() {\n return this.view.style.backgroundColor;\n }\n setBackgroundColor(v) {\n this.backgroundColor = v;\n }\n getAlpha() {\n return parseFloat(this.view.style.opacity);\n }\n setAlpha(v) {\n this.view.style.opacity = `${v}`;\n }\n getCorners() {\n return parseFloat(this.view.style.borderRadius);\n }\n setCorners(v) {\n this.view.style.borderRadius = toPixelString(v);\n }\n getLocationOnScreen() {\n const rect = this.view.getClientRects()[0];\n return {\n x: rect.left,\n y: rect.top,\n };\n }\n getRotation() {\n return this.transform.rotation;\n }\n setRotation(v) {\n this.transform.rotation = v;\n this.updateTransform();\n }\n getRotationX() {\n return this.transform.rotationX;\n }\n setRotationX(v) {\n this.transform.rotationX = v;\n this.updateTransform();\n }\n getRotationY() {\n return this.transform.rotationY;\n }\n setRotationY(v) {\n this.transform.rotationY = v;\n this.updateTransform();\n }\n getTranslationX() {\n return this.transform.translateX;\n }\n setTranslationX(v) {\n this.transform.translateX = v;\n this.updateTransform();\n }\n getTranslationY() {\n return this.transform.translateY;\n }\n setTranslationY(v) {\n this.transform.translateY = v;\n this.updateTransform();\n }\n getScaleX() {\n return this.transform.scaleX;\n }\n setScaleX(v) {\n this.transform.scaleX = v;\n this.updateTransform();\n }\n getScaleY() {\n return this.transform.scaleY;\n }\n setScaleY(v) {\n this.transform.scaleY = v;\n this.updateTransform();\n }\n getPivotX() {\n var _a;\n return ((_a = this.transformOrigin) === null || _a === void 0 ? void 0 : _a.x) || 0.5;\n }\n setPivotX(v) {\n if (this.transformOrigin) {\n this.transformOrigin.x = v;\n }\n else {\n this.transformOrigin = {\n x: v,\n y: 0.5,\n };\n }\n this.updateTransform();\n }\n getPivotY() {\n var _a;\n return ((_a = this.transformOrigin) === null || _a === void 0 ? void 0 : _a.y) || 0.5;\n }\n setPivotY(v) {\n if (this.transformOrigin) {\n this.transformOrigin.y = v;\n }\n else {\n this.transformOrigin = {\n x: 0.5,\n y: v,\n };\n }\n this.updateTransform();\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 onBlending() {\n super.onBlending();\n this.configChildNode();\n }\n onBlended() {\n super.onBlended();\n this.childNodes.forEach(e => e.onBlended());\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.splice(index, 0, 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//# sourceMappingURL=DoricViewNode.js.map","import { DoricPlugin } from \"../DoricPlugin\";\nimport { DoricSuperNode } from \"../shader/DoricViewNode\";\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 const viewNode = this.context.targetViewNode(ret.id);\n viewNode === null || viewNode === void 0 ? void 0 : viewNode.blend(ret.props);\n viewNode === null || viewNode === void 0 ? void 0 : viewNode.onBlended();\n }\n else {\n this.context.rootNode.viewId = ret.id;\n this.context.rootNode.blend(ret.props);\n this.context.rootNode.onBlended();\n }\n }\n command(options) {\n let viewNode = undefined;\n for (let viewId of options.viewIds) {\n if (!viewNode) {\n viewNode = this.context.targetViewNode(viewId);\n }\n else {\n if (viewNode instanceof DoricSuperNode) {\n viewNode = viewNode.getSubNodeById(viewId);\n }\n }\n }\n if (!viewNode) {\n return Promise.reject(\"Cannot find opposite view\");\n }\n else {\n const target = viewNode;\n return new Promise((resolve, reject) => {\n try {\n const method = Reflect.get(target, options.name);\n if (!method) {\n reject(`\"Cannot find plugin method in class:${target},method:${options.name}\"`);\n }\n resolve(Reflect.apply(method, target, [options.args]));\n }\n catch (err) {\n reject(err);\n }\n });\n }\n }\n}\n//# sourceMappingURL=ShaderPlugin.js.map","import { DoricGroupViewNode, LayoutSpec, LEFT, RIGHT, CENTER_X, CENTER_Y, TOP, BOTTOM, toPixelString, pixelString2Number } 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 const computedStyle = window.getComputedStyle(current.view);\n return Math.max(prev, current.view.offsetWidth\n + pixelString2Number(computedStyle.marginLeft)\n + pixelString2Number(computedStyle.marginRight));\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 const computedStyle = window.getComputedStyle(current.view);\n return Math.max(prev, current.view.offsetHeight\n + pixelString2Number(computedStyle.marginTop)\n + pixelString2Number(computedStyle.marginBottom));\n }, 0);\n this.view.style.height = toPixelString(height);\n }\n }\n configOffset() {\n this.childNodes.forEach(e => {\n const position = \"absolute\";\n let left = toPixelString(e.offsetX + this.paddingLeft);\n let top = toPixelString(e.offsetY + this.paddingTop);\n const gravity = e.layoutConfig.alignment;\n if ((gravity & LEFT) === LEFT) {\n left = toPixelString(0);\n }\n else if ((gravity & RIGHT) === RIGHT) {\n //ignore marginLeft\n const childMarginRight = pixelString2Number(window.getComputedStyle(e.view).marginRight);\n left = toPixelString(this.view.offsetWidth - e.view.offsetWidth - childMarginRight);\n }\n else if ((gravity & CENTER_X) === CENTER_X) {\n const childMarginLeft = pixelString2Number(window.getComputedStyle(e.view).marginLeft);\n const childMarginRight = pixelString2Number(window.getComputedStyle(e.view).marginRight);\n left = toPixelString(this.view.offsetWidth / 2 - e.view.offsetWidth / 2 + childMarginLeft - childMarginRight);\n }\n if ((gravity & TOP) === TOP) {\n top = toPixelString(0);\n }\n else if ((gravity & BOTTOM) === BOTTOM) {\n //ignore marginTop\n const childMarginTop = pixelString2Number(window.getComputedStyle(e.view).marginBottom);\n top = toPixelString(this.view.offsetHeight - e.view.offsetHeight - childMarginTop);\n }\n else if ((gravity & CENTER_Y) === CENTER_Y) {\n const childMarginTop = pixelString2Number(window.getComputedStyle(e.view).marginTop);\n const childMarginBottom = pixelString2Number(window.getComputedStyle(e.view).marginBottom);\n top = toPixelString(this.view.offsetHeight / 2 - e.view.offsetHeight / 2 + childMarginTop - childMarginBottom);\n }\n e.applyCSSStyle({\n position,\n left,\n top,\n });\n });\n }\n}\n//# sourceMappingURL=DoricStackNode.js.map","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 const bottomMargin = ((_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.marginBottom = toPixelString((idx === this.childNodes.length - 1) ? bottomMargin : this.space + bottomMargin);\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//# sourceMappingURL=DoricVLayoutNode.js.map","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 const rightMargin = ((_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.marginRight = toPixelString((idx === this.childNodes.length - 1) ? rightMargin : this.space + rightMargin);\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//# sourceMappingURL=DoricHLayoutNode.js.map","import { DoricViewNode, LEFT, RIGHT, CENTER_X, CENTER_Y, TOP, BOTTOM, toPixelString, pixelString2Number } from \"./DoricViewNode\";\nimport { toRGBAString } from \"../utils/color\";\nexport class DoricTextNode extends DoricViewNode {\n constructor() {\n super(...arguments);\n this.maxLines = 0;\n }\n build() {\n const div = document.createElement('div');\n div.style.display = \"flex\";\n div.style.overflow = \"hidden\";\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 \"font\":\n this.view.style.fontFamily = prop;\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 case \"maxLines\":\n this.maxLines = prop;\n this.view.style.whiteSpace = 'normal';\n break;\n case \"maxWidth\":\n if (prop) {\n this.layoutConfig.maxWidth = prop;\n }\n else {\n this.layoutConfig.maxWidth = -1;\n }\n break;\n case \"maxHeight\":\n if (prop) {\n this.layoutConfig.maxHeight = prop;\n }\n else {\n this.layoutConfig.maxHeight = -1;\n }\n break;\n default:\n super.blendProps(v, propName, prop);\n break;\n }\n }\n layout() {\n super.layout();\n Promise.resolve().then(_ => {\n this.configSize();\n });\n }\n configSize() {\n if (this.maxLines > 0) {\n const computedStyle = window.getComputedStyle(this.view);\n const lineHeight = this.lineHeight(computedStyle);\n let allowedMaxLines = this.maxLines;\n const contentHeight = this.view.clientHeight - pixelString2Number(computedStyle.paddingTop) - pixelString2Number(computedStyle.paddingBottom);\n if (contentHeight > 0) {\n const contentAllowedLines = Math.floor(contentHeight / lineHeight);\n allowedMaxLines = Math.min(this.maxLines, contentAllowedLines);\n }\n const originalLines = Math.floor(this.originalHeight(computedStyle) / lineHeight);\n if (originalLines > allowedMaxLines) {\n this.textElement.innerText = this.truncationText(computedStyle, lineHeight, allowedMaxLines);\n }\n }\n }\n lineHeight(style) {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n ctx.font = style.font;\n const pureText = this.textElement.innerText.replace(/\\n/g, '');\n const metrics = ctx.measureText(pureText);\n return metrics.fontBoundingBoxAscent + metrics.fontBoundingBoxDescent;\n }\n originalHeight(style) {\n const tempEle = document.createElement('div');\n tempEle.style.font = style.font;\n tempEle.textContent = this.textElement.innerText;\n tempEle.style.whiteSpace = style.whiteSpace;\n this.view.style.overflow = style.overflow;\n tempEle.style.width = style.width;\n document.body.appendChild(tempEle);\n const height = tempEle.offsetHeight;\n document.body.removeChild(tempEle);\n return height;\n }\n truncationText(style, lineHeight, maxLines) {\n const originalText = this.textElement.innerText;\n let start = 0, end = originalText.length;\n const tempEle = document.createElement('div');\n tempEle.style.font = style.font;\n tempEle.style.whiteSpace = style.whiteSpace;\n this.view.style.overflow = style.overflow;\n tempEle.style.width = style.width;\n document.body.appendChild(tempEle);\n while (start <= end) {\n const mid = Math.floor((start + end) / 2);\n tempEle.textContent = originalText.slice(0, mid) + '...';\n const lines = Math.floor(tempEle.offsetHeight / lineHeight);\n if (lines > maxLines) {\n end = mid - 1;\n }\n else {\n start = mid + 1;\n }\n }\n document.body.removeChild(tempEle);\n return `${originalText.slice(0, end) + '...'}`;\n }\n}\n//# sourceMappingURL=DoricTextNode.js.map","import { DoricViewNode, toPixelString } from './DoricViewNode';\nimport { toRGBAString } from '../utils/color';\nimport { resourceManager } from '../DoricRegistry';\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 = {}));\nconst transparentBase64 = \"data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWNgYGBgAAAABQABh6FO1AAAAABJRU5ErkJggg==\";\nexport class DoricImageNode extends DoricViewNode {\n build() {\n const ret = document.createElement('img');\n ret.style.objectFit = 'fill';\n return ret;\n }\n blend(props) {\n this.placeHolderImage = props['placeHolderImage'];\n this.placeHolderImageBase64 = props['placeHolderImageBase64'];\n this.placeHolderColor = props['placeHolderColor'];\n this.errorImage = props['errorImage'];\n this.errorImageBase64 = props['errorImageBase64'];\n this.errorColor = props['errorColor'];\n this.stretchInset = props['stretchInset'];\n super.blend(props);\n }\n blendProps(v, propName, prop) {\n var _a;\n switch (propName) {\n case 'image':\n (_a = resourceManager.load(prop)) === null || _a === void 0 ? void 0 : _a.then(e => {\n this.loadIntoTarget(v, e);\n }).catch(e => {\n this.loadIntoTarget(v, '');\n });\n break;\n case 'imageUrl':\n case 'imageBase64':\n this.loadIntoTarget(v, prop);\n break;\n case 'placeHolderImage':\n case 'placeHolderImageBase64':\n case 'placeHolderColor':\n case 'errorImage':\n case 'errorImageBase64':\n case 'errorColor':\n break;\n case 'stretchInset':\n break;\n case 'loadCallback':\n this.onloadFuncId = prop;\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 loadIntoTarget(targetElement, src) {\n this.clearStretchElementAttributes(targetElement);\n this.loadPlaceHolder(targetElement);\n let tempLoadElement = this.stretchInset ? document.createElement('img') : targetElement;\n tempLoadElement.onload = () => {\n //remove placeHolderColor\n targetElement.style.removeProperty('background-color');\n if (tempLoadElement.src === src && this.onloadFuncId) {\n this.callJSResponse(this.onloadFuncId, {\n width: tempLoadElement.naturalWidth,\n height: tempLoadElement.naturalHeight,\n });\n }\n };\n tempLoadElement.onerror = () => {\n this.clearStretchElementAttributes(targetElement);\n const error = this.getError(targetElement.offsetWidth, targetElement.offsetHeight);\n if (!error)\n return;\n const same = src === error;\n const srcLoadError = tempLoadElement.src.length === 0 || tempLoadElement.src === src;\n if (same || !srcLoadError)\n return;\n targetElement.src = error;\n if (this.onloadFuncId) {\n this.callJSResponse(this.onloadFuncId);\n }\n };\n Promise.resolve().then(e => {\n tempLoadElement.src = src;\n if (this.stretchInset) {\n this.loadImageWithStretch(targetElement, src, this.stretchInset);\n }\n });\n }\n loadImageWithStretch(v, src, stretchInset) {\n v.src = transparentBase64;\n v.style.borderImageSource = `url(${src})`;\n v.style.borderImageSlice = `${stretchInset.top} ${stretchInset.right} ${stretchInset.bottom} ${stretchInset.left} fill`;\n const top = toPixelString(stretchInset.top);\n const right = toPixelString(stretchInset.right);\n const bottom = toPixelString(stretchInset.bottom);\n const left = toPixelString(stretchInset.left);\n v.style.borderImageWidth = `${top} ${right} ${bottom} ${left}`;\n }\n loadPlaceHolder(v) {\n if (this.placeHolderImage) {\n v.src = this.placeHolderImage;\n }\n else if (this.placeHolderImageBase64) {\n v.src = this.placeHolderImageBase64;\n }\n else if (this.placeHolderColor) {\n v.style.backgroundColor = toRGBAString(this.placeHolderColor);\n }\n }\n clearStretchElementAttributes(v) {\n v.style.removeProperty('background-color');\n v.style.removeProperty('border-image-source');\n v.style.removeProperty('border-image-slice');\n v.style.removeProperty('border-image-width');\n }\n getError(width, height) {\n if (this.errorImage) {\n return this.errorImage;\n }\n else if (this.errorImageBase64) {\n return this.errorImageBase64;\n }\n else if (this.errorColor && this.view) {\n return this.createColoredCanvas(width, height, this.errorColor);\n }\n return null;\n }\n createColoredCanvas(width, height, color) {\n const canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n const context = canvas.getContext('2d');\n if (context) {\n context.fillStyle = toRGBAString(color);\n context.fillRect(0, 0, width, height);\n return canvas.toDataURL('image/png');\n }\n return null;\n }\n}\n//# sourceMappingURL=DoricImageNode.js.map","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 onBlending() {\n super.onBlending();\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 onBlended() {\n var _a;\n super.onBlended();\n (_a = this.childNode) === null || _a === void 0 ? void 0 : _a.onBlended();\n }\n}\n//# sourceMappingURL=DoricScrollerNode.js.map","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//# sourceMappingURL=ModalPlugin.js.map","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//# sourceMappingURL=StoragePlugin.js.map","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//# sourceMappingURL=NavigatorPlugin.js.map","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//# sourceMappingURL=PopoverPlugin.js.map","import { DoricStackNode } from \"./DoricStackNode\";\nexport class DoricListItemNode extends DoricStackNode {\n constructor(context) {\n super(context);\n this.reusable = true;\n }\n}\n//# sourceMappingURL=DoricListItemNode.js.map","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 \"onScroll\":\n this.onScrollFuncId = 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 case 'scrollable':\n v.style.overflow = prop ? 'scroll' : 'hidden';\n break;\n default:\n super.blendProps(v, propName, prop);\n break;\n }\n }\n reload() {\n this.reset();\n const ret = this.pureCallJSResponse(\"renderBunchedItems\", 0, this.itemCount);\n ret.forEach(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 reset() {\n while (this.view.lastElementChild) {\n this.view.removeChild(this.view.lastElementChild);\n }\n this.childNodes = [];\n }\n onBlending() {\n super.onBlending();\n if (this.childNodes.length !== this.itemCount) {\n const ret = this.pureCallJSResponse(\"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 if (this.view.scrollTop + this.view.offsetHeight === this.view.scrollHeight) {\n this.onScrollToEnd();\n }\n }\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 var _a;\n if (viewId === this.loadMoreViewId) {\n return this.loadMoreViewNode;\n }\n return (_a = this.childNodes.filter(e => e.viewId === viewId)) === null || _a === void 0 ? void 0 : _a[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\", event => {\n if (this.onScrollFuncId) {\n this.callJSResponse(this.onScrollFuncId, { x: event.target.scrollLeft || 0, y: event.target.scrollTop });\n }\n if (this.loadMore) {\n if (ret.scrollTop + ret.offsetHeight === ret.scrollHeight) {\n this.onScrollToEnd();\n }\n }\n });\n return ret;\n }\n onBlended() {\n super.onBlended();\n this.childNodes.forEach(e => e.onBlended());\n }\n}\n//# sourceMappingURL=DoricListNode.js.map","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//# sourceMappingURL=DoricDraggableNode.js.map","import { DoricSuperNode, DoricViewNode } from \"./DoricViewNode\";\nexport class DoricRefreshableNode extends DoricSuperNode {\n constructor() {\n super(...arguments);\n this.headerViewId = \"\";\n this.contentViewId = \"\";\n this.refreshable = true;\n }\n build() {\n const ret = document.createElement('div');\n ret.style.overflow = \"hidden\";\n const header = document.createElement('div');\n const content = document.createElement('div');\n header.style.width = \"100%\";\n header.style.height = \"100%\";\n header.style.display = \"flex\";\n header.style.alignItems = \"flex-end\";\n header.style.justifyContent = \"center\";\n content.style.width = \"100%\";\n content.style.height = \"100%\";\n ret.appendChild(header);\n ret.appendChild(content);\n let touchStart = 0;\n ret.ontouchstart = (ev) => {\n if (!this.refreshable) {\n return;\n }\n touchStart = ev.touches[0].pageY;\n };\n ret.ontouchmove = (ev) => {\n var _a;\n if (!this.refreshable) {\n return;\n }\n const offset = (ev.touches[0].pageY - touchStart) * 0.68;\n ret.scrollTop = Math.max(0, header.offsetHeight - offset);\n (_a = this.headerNode) === null || _a === void 0 ? void 0 : _a.callJSResponse(\"setPullingDistance\", offset);\n };\n const touchend = () => {\n var _a, _b;\n if (!this.refreshable) {\n return;\n }\n if (header.offsetHeight - ret.scrollTop >= (((_a = this.headerNode) === null || _a === void 0 ? void 0 : _a.getWidth()) || 0)) {\n this.setRefreshing(true);\n (_b = this.onRefreshCallback) === null || _b === void 0 ? void 0 : _b.call(this);\n }\n else {\n // To idel\n ret.scrollTo({\n top: header.offsetHeight,\n behavior: \"smooth\"\n });\n }\n };\n ret.ontouchcancel = () => {\n touchend();\n };\n ret.ontouchend = () => {\n touchend();\n };\n window.requestAnimationFrame(() => {\n ret.scrollTop = header.offsetHeight;\n });\n this.headerContainer = header;\n this.contentContainer = content;\n return ret;\n }\n blendProps(v, propName, prop) {\n if (propName === 'content') {\n this.contentViewId = prop;\n }\n else if (propName === 'header') {\n this.headerViewId = prop;\n }\n else if (propName === 'onRefresh') {\n this.onRefreshCallback = () => {\n this.callJSResponse(prop);\n };\n }\n else {\n super.blendProps(v, propName, prop);\n }\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 if (viewId === this.headerViewId) {\n return this.headerNode;\n }\n else if (viewId === this.contentViewId) {\n return this.contentNode;\n }\n return undefined;\n }\n onBlending() {\n var _a, _b, _c, _d, _e, _f;\n super.onBlending();\n {\n const headerModel = this.getSubModel(this.headerViewId);\n if (headerModel) {\n if (this.headerNode) {\n if (this.headerNode.viewId !== this.headerViewId) {\n if (this.reusable && this.headerNode.viewType === headerModel.type) {\n this.headerNode.viewId = headerModel.id;\n this.headerNode.blend(headerModel.props);\n }\n else {\n (_a = this.headerContainer) === null || _a === void 0 ? void 0 : _a.removeChild(this.headerNode.view);\n const headerNode = DoricViewNode.create(this.context, headerModel.type);\n if (headerNode) {\n headerNode.viewId = headerModel.id;\n headerNode.init(this);\n headerNode.blend(headerModel.props);\n (_b = this.headerContainer) === null || _b === void 0 ? void 0 : _b.appendChild(headerNode.view);\n this.headerNode = headerNode;\n }\n }\n }\n }\n else {\n const headerNode = DoricViewNode.create(this.context, headerModel.type);\n if (headerNode) {\n headerNode.viewId = headerModel.id;\n headerNode.init(this);\n headerNode.blend(headerModel.props);\n (_c = this.headerContainer) === null || _c === void 0 ? void 0 : _c.appendChild(headerNode.view);\n this.headerNode = headerNode;\n }\n }\n }\n }\n {\n const contentModel = this.getSubModel(this.contentViewId);\n if (contentModel) {\n if (this.contentNode) {\n if (this.contentNode.viewId !== this.contentViewId) {\n if (this.reusable && this.contentNode.viewType === contentModel.type) {\n this.contentNode.viewId = contentModel.id;\n this.contentNode.blend(contentModel.props);\n }\n else {\n (_d = this.contentContainer) === null || _d === void 0 ? void 0 : _d.removeChild(this.contentNode.view);\n const contentNode = DoricViewNode.create(this.context, contentModel.type);\n if (contentNode) {\n contentNode.viewId = contentModel.id;\n contentNode.init(this);\n contentNode.blend(contentModel.props);\n (_e = this.contentContainer) === null || _e === void 0 ? void 0 : _e.appendChild(contentNode.view);\n this.contentNode = contentNode;\n }\n }\n }\n }\n else {\n const contentNode = DoricViewNode.create(this.context, contentModel.type);\n if (contentNode) {\n contentNode.viewId = contentModel.id;\n contentNode.init(this);\n contentNode.blend(contentModel.props);\n (_f = this.contentContainer) === null || _f === void 0 ? void 0 : _f.appendChild(contentNode.view);\n this.contentNode = contentNode;\n }\n }\n }\n }\n }\n onBlended() {\n super.onBlended();\n }\n setRefreshing(v) {\n var _a;\n if (!this.headerContainer || !this.headerNode) {\n return;\n }\n if (v) {\n this.view.scrollTo({\n top: this.headerContainer.offsetHeight - this.headerNode.getHeight(),\n behavior: \"smooth\"\n });\n this.headerNode.callJSResponse(\"startAnimation\");\n }\n else {\n this.view.scrollTo({\n top: (_a = this.headerContainer) === null || _a === void 0 ? void 0 : _a.offsetHeight,\n behavior: \"smooth\"\n });\n this.headerNode.callJSResponse(\"stopAnimation\");\n }\n }\n setRefreshable(v) {\n this.refreshable = v;\n if (!v) {\n this.setRefreshing(false);\n }\n }\n}\n//# sourceMappingURL=DoricRefreshableNode.js.map","import { DoricPlugin } from \"../DoricPlugin\";\nexport class AnimatePlugin extends DoricPlugin {\n submit() {\n return Promise.resolve();\n }\n animateRender(args) {\n var _a;\n this.context.animationSet = [];\n if (((_a = this.context.rootNode.viewId) === null || _a === void 0 ? void 0 : _a.length) > 0) {\n const viewNode = this.context.targetViewNode(args.id);\n viewNode === null || viewNode === void 0 ? void 0 : viewNode.blend(args.props);\n viewNode === null || viewNode === void 0 ? void 0 : viewNode.onBlended();\n }\n else {\n this.context.rootNode.viewId = args.id;\n this.context.rootNode.blend(args.props);\n this.context.rootNode.onBlended();\n }\n return new Promise(resolve => {\n Promise.resolve().then(() => {\n var _a;\n Promise.all(((_a = this.context.animationSet) === null || _a === void 0 ? void 0 : _a.map(e => {\n return new Promise(resolve => {\n const keyFrame = {};\n const ensureNonString = (key, value) => {\n if (!!value && value !== \"\") {\n return value;\n }\n switch ((key)) {\n case \"backgroundColor\":\n return \"transparent\";\n case \"transform\":\n return \"none\";\n default:\n return \"none\";\n }\n };\n for (let k in e.keyFrame) {\n keyFrame[k] = ensureNonString(k, e.viewNode.view.style[k]);\n e.keyFrame[k] = ensureNonString(k, e.keyFrame[k]);\n }\n try {\n const animation = e.viewNode.view.animate([keyFrame, e.keyFrame], {\n duration: args.duration,\n fill: \"forwards\"\n });\n animation.onfinish = () => {\n Object.entries(e.keyFrame).forEach(entry => {\n Reflect.set(e.viewNode.view.style, entry[0], entry[1]);\n });\n resolve(true);\n };\n }\n catch (e) {\n console.error(e);\n }\n });\n })) || [])\n .then(() => {\n resolve(0);\n })\n .finally(() => {\n this.context.animationSet = undefined;\n });\n });\n });\n }\n}\n//# sourceMappingURL=AnimatePlugin.js.map","import { DoricViewNode } from \"./DoricViewNode\";\nimport { toRGBAString } from \"../utils/color\";\nexport class DoricSwitchNode extends DoricViewNode {\n constructor() {\n super(...arguments);\n this.offTintColor = \"#e6e6e6\";\n this.onTintColor = \"#52d769\";\n }\n build() {\n const ret = document.createElement('div');\n ret.style.position = \"relative\";\n ret.style.width = \"50px\";\n ret.style.height = \"30px\";\n const input = document.createElement('input');\n input.type = \"checkbox\";\n input.style.display = \"none\";\n const box = document.createElement('div');\n box.style.width = \"100%\";\n box.style.height = \"100%\";\n box.style.backgroundColor = \"#ccc\";\n box.style.borderRadius = \"15px\";\n const span = document.createElement('span');\n span.style.display = \"inline-block\";\n span.style.height = \"30px\";\n span.style.width = \"30px\";\n span.style.borderRadius = \"15px\";\n span.style.background = \"#fff\";\n span.style.boxShadow = \"0px 3px 3px #eee\";\n box.appendChild(span);\n ret.appendChild(input);\n ret.appendChild(box);\n ret.onclick = () => {\n try {\n if (input.checked === false) {\n span.animate([{ transform: \"translateX(0px)\" }, { transform: \"translateX(30px)\" }], {\n duration: 200,\n fill: \"forwards\"\n });\n box.animate([{ backgroundColor: this.offTintColor }, { backgroundColor: this.onTintColor }], {\n duration: 200,\n fill: \"forwards\"\n });\n input.checked = true;\n }\n else {\n span.animate([{ transform: \"translateX(30px)\" }, { transform: \"translateX(0px)\" }], {\n duration: 200,\n fill: \"forwards\"\n });\n box.animate([{ backgroundColor: this.onTintColor }, { backgroundColor: this.offTintColor }], {\n duration: 200,\n fill: \"forwards\"\n });\n input.checked = false;\n }\n if (this.onSwitchFuncId) {\n this.callJSResponse(this.onSwitchFuncId, input.checked);\n }\n }\n catch (e) {\n alert(e);\n }\n };\n this.input = input;\n this.span = span;\n this.box = box;\n return ret;\n }\n setChecked(v) {\n if (!this.input || !this.span || !this.box) {\n return;\n }\n if (v) {\n this.span.style.transform = \"translateX(30px)\";\n this.box.style.backgroundColor = this.onTintColor;\n this.input.checked = v;\n }\n else {\n this.span.style.transform = \"translateX(0px)\";\n this.box.style.backgroundColor = this.offTintColor;\n this.input.checked = v;\n }\n }\n blendProps(v, propName, prop) {\n switch (propName) {\n case \"state\":\n this.setChecked(prop);\n break;\n case \"onSwitch\":\n this.onSwitchFuncId = prop;\n break;\n case \"offTintColor\":\n this.offTintColor = toRGBAString(prop);\n this.setChecked(this.getState());\n break;\n case \"onTintColor\":\n this.onTintColor = toRGBAString(prop);\n this.setChecked(this.getState());\n break;\n case \"thumbTintColor\":\n if (this.span) {\n this.span.style.backgroundColor = toRGBAString(prop);\n }\n break;\n default:\n super.blendProps(v, propName, prop);\n break;\n }\n }\n getState() {\n var _a;\n return ((_a = this.input) === null || _a === void 0 ? void 0 : _a.checked) || false;\n }\n}\n//# sourceMappingURL=DoricSwitchNode.js.map","import { DoricSuperNode, DoricViewNode } from \"./DoricViewNode\";\nexport class DoricSliderNode extends DoricSuperNode {\n constructor() {\n super(...arguments);\n this.itemCount = 0;\n this.renderPageFuncId = \"\";\n this.batchCount = 15;\n this.onPageSelectedFuncId = \"\";\n this.loop = false;\n this.childNodes = [];\n }\n blendProps(v, propName, prop) {\n if (propName === 'itemCount') {\n this.itemCount = prop;\n }\n else if (propName === 'renderPage') {\n if (prop !== this.renderPageFuncId) {\n this.childNodes = [];\n this.renderPageFuncId = prop;\n }\n }\n else if (propName === 'batchCount') {\n this.batchCount = prop;\n }\n else if (propName === 'onPageSlided') {\n this.onPageSelectedFuncId = prop;\n }\n else if (propName === 'loop') {\n this.loop = prop;\n }\n else {\n super.blendProps(v, propName, prop);\n }\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 var _a;\n return (_a = this.childNodes.filter(e => e.viewId === viewId)) === null || _a === void 0 ? void 0 : _a[0];\n }\n onBlending() {\n super.onBlending();\n if (this.childNodes.length !== this.itemCount) {\n const ret = this.pureCallJSResponse(\"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 }\n build() {\n const ret = document.createElement('div');\n ret.style.overflow = \"hidden\";\n ret.style.display = \"inline\";\n ret.style.whiteSpace = \"nowrap\";\n let touchStartX = 0;\n let currentIndex = 0;\n ret.ontouchstart = (ev) => {\n currentIndex = Math.round(ret.scrollLeft / ret.offsetWidth);\n touchStartX = ev.touches[0].pageX;\n };\n ret.ontouchmove = (ev) => {\n const offsetX = (touchStartX - ev.touches[0].pageX) * 3;\n ret.scrollTo({\n left: currentIndex * ret.offsetWidth + offsetX\n });\n };\n ret.ontouchcancel = ret.ontouchend = () => {\n let originInndex = currentIndex;\n currentIndex = Math.round(ret.scrollLeft / ret.offsetWidth);\n ret.scrollTo({\n left: currentIndex * ret.offsetWidth,\n behavior: \"smooth\"\n });\n if (originInndex !== currentIndex) {\n if (this.onPageSelectedFuncId.length > 0) {\n this.callJSResponse(this.onPageSelectedFuncId, currentIndex);\n }\n }\n };\n return ret;\n }\n getSlidedPage() {\n return Math.round(this.view.scrollLeft / this.view.offsetWidth);\n }\n slidePage(params) {\n if (params.smooth) {\n this.view.scrollTo({\n left: this.view.offsetWidth * params.page,\n behavior: \"smooth\"\n });\n }\n else {\n this.view.scrollTo({\n left: this.view.offsetWidth * params.page\n });\n }\n if (this.onPageSelectedFuncId.length > 0) {\n this.callJSResponse(this.onPageSelectedFuncId, params.page);\n }\n }\n}\n//# sourceMappingURL=DoricSliderNode.js.map","import { DoricStackNode } from \"./DoricStackNode\";\nexport class DoricSlideItemNode extends DoricStackNode {\n constructor(context) {\n super(context);\n this.reusable = true;\n }\n build() {\n const ret = super.build();\n ret.style.display = \"inline-block\";\n ret.style.width = \"100%\";\n ret.style.height = \"100%\";\n return ret;\n }\n}\n//# sourceMappingURL=DoricSlideItemNode.js.map","import { jsCallResolve } from \"doric/src/runtime/sandbox\";\nimport { DoricPlugin } from \"../DoricPlugin\";\nvar NotificationCenter;\n(function (NotificationCenter) {\n let receivers = [];\n function publish(notification) {\n receivers.filter(e => e.name === notification.name).forEach(e => {\n e.callback(notification.data);\n });\n }\n NotificationCenter.publish = publish;\n function subscribe(receiver) {\n receivers.push(receiver);\n }\n NotificationCenter.subscribe = subscribe;\n function unsubscribe(receiver) {\n receivers = receivers.filter(e => e !== receiver);\n }\n NotificationCenter.unsubscribe = unsubscribe;\n})(NotificationCenter || (NotificationCenter = {}));\nexport class NotificationPlugin extends DoricPlugin {\n constructor() {\n super(...arguments);\n this.receivers = {};\n }\n publish(args) {\n const key = `__doric__${args.biz || \"\"}#${args.name}`;\n NotificationCenter.publish({\n name: key,\n data: !!args.data ? JSON.parse(args.data) : undefined\n });\n return true;\n }\n subscribe(args) {\n const key = `__doric__${args.biz || \"\"}#${args.name}`;\n const receiver = {\n name: key,\n callback: (data) => {\n jsCallResolve(this.context.contextId, args.callback, data);\n }\n };\n this.receivers[args.callback] = receiver;\n NotificationCenter.subscribe(receiver);\n return args.callback;\n }\n unsubscribe(subscribeId) {\n const recevier = this.receivers[subscribeId];\n if (recevier) {\n NotificationCenter.unsubscribe(recevier);\n this.receivers[subscribeId] = undefined;\n return true;\n }\n else {\n return false;\n }\n }\n onTearDown() {\n Object.entries(this.receivers).map(e => e[1]).filter(e => !!e).forEach(e => {\n if (e) {\n NotificationCenter.unsubscribe(e);\n }\n });\n this.receivers = {};\n }\n}\n//# sourceMappingURL=NotificationPlugin.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport axios from \"axios\";\nimport { DoricPlugin } from \"../DoricPlugin\";\nexport class NetworkPlugin extends DoricPlugin {\n request(args) {\n return __awaiter(this, void 0, void 0, function* () {\n let result;\n let error;\n if (args.method.toLowerCase() === \"get\") {\n try {\n result = yield axios.get(args.url, {\n headers: args.headers ? args.headers : {},\n timeout: args.timeout\n });\n }\n catch (exception) {\n error = exception;\n }\n }\n else if (args.method.toLowerCase() === \"post\") {\n try {\n result = yield axios.post(args.url, args.data, {\n headers: args.headers ? args.headers : {},\n timeout: args.timeout\n });\n }\n catch (exception) {\n error = exception;\n }\n }\n else if (args.method.toLowerCase() === \"put\") {\n try {\n result = yield axios.put(args.url, args.data, {\n headers: args.headers ? args.headers : {},\n timeout: args.timeout\n });\n }\n catch (exception) {\n error = exception;\n }\n }\n else if (args.method.toLowerCase() === \"delete\") {\n try {\n result = yield axios.delete(args.url, {\n headers: args.headers ? args.headers : {},\n timeout: args.timeout\n });\n }\n catch (exception) {\n error = exception;\n }\n }\n result.data = JSON.stringify(result.data);\n if (result) {\n return Promise.resolve(result);\n }\n if (error) {\n return Promise.reject(error);\n }\n });\n }\n}\n//# sourceMappingURL=NetworkPlugin.js.map","function getX(ev) {\n return ev instanceof MouseEvent ? ev.pageX : ev.touches[0].pageX;\n}\nfunction getY(ev) {\n return ev instanceof MouseEvent ? ev.pageY : ev.touches[0].pageY;\n}\nexport function NestedSliderView(props) {\n const ret = document.createElement(\"div\");\n ret.style.overflow = \"hidden\";\n ret.style.display = \"inline\";\n ret.style.whiteSpace = \"nowrap\";\n let touch = {\n touchStartX: 0,\n touchStartY: 0,\n currentIndex: 0,\n isDragging: false,\n horizontal: true\n };\n ret.ontouchstart = ret.onmousedown = (ev) => {\n if (!props.scrollable())\n return;\n touch = Object.assign(Object.assign({}, touch), { currentIndex: Math.round(ret.scrollLeft / ret.offsetWidth), touchStartX: getX(ev), touchStartY: getY(ev), isDragging: true });\n };\n ret.ontouchmove = ret.onmousemove = (ev) => {\n if (!props.scrollable() || !touch.isDragging)\n return;\n if (!touch.horizontal) {\n return;\n }\n if (Math.abs(getX(ev) - touch.touchStartX) < Math.abs(getY(ev) - touch.touchStartY)) {\n touch.horizontal = false;\n return;\n }\n const offsetX = (touch.touchStartX - getX(ev)) * 1.2;\n ret.scrollTo({\n left: touch.currentIndex * ret.offsetWidth + offsetX,\n });\n };\n ret.onmouseup = ret.ontouchcancel = ret.ontouchend = () => {\n if (!props.scrollable())\n return;\n touch = Object.assign(Object.assign({}, touch), { isDragging: false, horizontal: true });\n let originIndex = touch.currentIndex;\n if (Math.abs(ret.scrollLeft - originIndex * ret.offsetWidth) > ret.offsetWidth / 5) {\n const positionOffset = Math.abs(ret.scrollLeft) > originIndex * ret.offsetWidth ? 1 : -1;\n touch.currentIndex += positionOffset;\n }\n ret.scrollTo({\n left: touch.currentIndex * ret.offsetWidth,\n behavior: \"smooth\",\n });\n if (originIndex !== touch.currentIndex) {\n if (props.onPageSelected) {\n props.onPageSelected(touch.currentIndex);\n }\n }\n };\n return ret;\n}\n//# sourceMappingURL=NestedSliderView.js.map","import { DoricGroupViewNode } from \"./DoricViewNode\";\nimport { NestedSliderView } from '../widgets/NestedSliderView';\nexport class DoricNestedSliderNode extends DoricGroupViewNode {\n constructor() {\n super(...arguments);\n this.onPageSelectedFuncId = \"\";\n this.scrollable = true;\n }\n blendProps(v, propName, prop) {\n if (propName === \"scrollable\") {\n this.scrollable = prop;\n }\n else if (propName === \"onPageSlided\") {\n this.onPageSelectedFuncId = prop;\n }\n else if (propName === \"slidePosition\") {\n setTimeout(() => {\n this.slidePage({ page: prop, smooth: false });\n });\n }\n else {\n super.blendProps(v, propName, prop);\n }\n }\n build() {\n return NestedSliderView({\n scrollable: () => this.scrollable, onPageSelected: index => {\n if (this.onPageSelectedFuncId.length > 0) {\n this.callJSResponse(this.onPageSelectedFuncId, index);\n }\n }\n });\n }\n layout() {\n super.layout();\n this.childNodes.forEach((e, idx) => {\n e.view.style.display = \"inline-block\";\n e.view.style.width = \"100%\";\n e.view.style.height = \"100%\";\n });\n }\n getSlidedPage() {\n return Math.round(this.view.scrollLeft / this.view.offsetWidth);\n }\n slidePage(params) {\n if (params.smooth) {\n this.view.scrollTo({\n left: this.view.offsetWidth * params.page,\n behavior: \"smooth\",\n });\n }\n else {\n this.view.scrollTo({\n left: this.view.offsetWidth * params.page,\n });\n }\n if (this.onPageSelectedFuncId.length > 0) {\n this.callJSResponse(this.onPageSelectedFuncId, params.page);\n }\n }\n}\n//# sourceMappingURL=DoricNestedSliderNode.js.map","export default class DoricResourceManager {\n constructor() {\n this.resourceLoaders = new Map();\n }\n registerLoader(loader) {\n this.resourceLoaders.set(loader.resourceType(), loader);\n }\n load(resource) {\n var _a;\n return (_a = this.resourceLoaders.get(resource.type)) === null || _a === void 0 ? void 0 : _a.load(resource.identifier);\n }\n}\n//# sourceMappingURL=DoricResourceManager.js.map","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\";\nimport { DoricRefreshableNode } from \"./shader/DoricRefreshableNode\";\nimport { AnimatePlugin } from \"./plugins/AnimatePlugin\";\nimport { DoricSwitchNode } from \"./shader/DoricSwitchNode\";\nimport { DoricSliderNode } from \"./shader/DoricSliderNode\";\nimport { DoricSlideItemNode } from \"./shader/DoricSlideItemNode\";\nimport { NotificationPlugin } from \"./plugins/NotificationPlugin\";\nimport { NetworkPlugin } from \"./plugins/NetworkPlugin\";\nimport { DoricNestedSliderNode } from \"./shader/DoricNestedSliderNode\";\nimport DoricResourceManager from \"./resource/DoricResourceManager\";\nconst bundles = new Map;\nconst plugins = new Map;\nconst nodes = new Map;\nexport const resourceManager = new DoricResourceManager();\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);\nregisterPlugin('animate', AnimatePlugin);\nregisterPlugin('notification', NotificationPlugin);\nregisterPlugin('network', NetworkPlugin);\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);\nregisterViewNode('Refreshable', DoricRefreshableNode);\nregisterViewNode('Switch', DoricSwitchNode);\nregisterViewNode('Slider', DoricSliderNode);\nregisterViewNode('SlideItem', DoricSlideItemNode);\nregisterViewNode('NestedSlider', DoricNestedSliderNode);\n//# sourceMappingURL=DoricRegistry.js.map","import { jsCallResolve, jsCallReject, jsCallbackTimer, jsReleaseContext, jsHookAfterNativeCall } 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: \"web\"\n });\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, 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 markNeedHook();\n }, e => {\n jsCallReject(contextId, callbackId, e);\n markNeedHook();\n });\n }\n else if (ret !== undefined) {\n Promise.resolve(ret).then((ret) => {\n jsCallResolve(contextId, callbackId, ret);\n markNeedHook();\n });\n }\n return true;\n });\n injectGlobalObject('nativeSetTimer', (timerId, time, repeat) => {\n if (repeat) {\n const handleId = originSetInterval(() => {\n jsCallbackTimer(timerId);\n markNeedHook();\n }, time);\n timers.set(timerId, { handleId, repeat });\n }\n else {\n const handleId = originSetTimeout(() => {\n jsCallbackTimer(timerId);\n markNeedHook();\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}\nlet requesting = false;\nexport function markNeedHook() {\n if (requesting) {\n return;\n }\n requesting = true;\n requestAnimationFrame(() => {\n jsHookAfterNativeCall();\n requesting = false;\n });\n}\ninitDoric();\n//# sourceMappingURL=DoricDriver.js.map","import { jsObtainContext, jsCallEntityMethod, pureCallEntityMethod } from 'doric/src/runtime/sandbox';\nimport { createContext, destroyContext, markNeedHook } 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 targetViewNode(viewId) {\n if (this.rootNode.viewId === viewId) {\n return this.rootNode;\n }\n for (let nodes of this.headNodes.values()) {\n if (nodes.has(viewId)) {\n return nodes.get(viewId);\n }\n }\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 const ret = Reflect.apply(jsCallEntityMethod, this.panel, argumentsList);\n markNeedHook();\n return ret;\n }\n pureInvokeEntityMethod(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(pureCallEntityMethod, this.panel, argumentsList);\n }\n init(data) {\n this.invokeEntityMethod(\"__init__\", data);\n }\n onCreate() {\n this.invokeEntityMethod(\"__onCreate__\");\n }\n onDestroy() {\n this.invokeEntityMethod(\"__onDestroy__\");\n }\n onShow() {\n this.invokeEntityMethod(\"__onShow__\");\n }\n onHidden() {\n this.invokeEntityMethod(\"__onHidden__\");\n }\n build(frame) {\n this.invokeEntityMethod(\"__build__\", frame);\n }\n inAnimation() {\n return !!this.animationSet;\n }\n addAnimation(viewNode, keyFrame) {\n var _a;\n (_a = this.animationSet) === null || _a === void 0 ? void 0 : _a.push({\n viewNode,\n keyFrame,\n });\n }\n teardown() {\n for (let plugin of this.pluginInstances.values()) {\n plugin.onTearDown();\n }\n destroyContext(this.contextId);\n }\n}\n//# sourceMappingURL=DoricContext.js.map","import { loadDoricJSBundle } from './DoricBundleLoader';\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 get initData() {\n return this.getAttribute('data');\n }\n set initData(v) {\n this.setAttribute('data', v);\n }\n connectedCallback() {\n if (this.src && this.context === undefined) {\n loadDoricJSBundle(this.src).then(result => {\n this.load(result);\n });\n }\n }\n disconnectedCallback() {\n }\n adoptedCallback() {\n }\n attributeChangedCallback() {\n }\n onDestroy() {\n var _a, _b;\n (_a = this.context) === null || _a === void 0 ? void 0 : _a.onDestroy();\n (_b = this.context) === null || _b === void 0 ? void 0 : _b.teardown();\n }\n load(content) {\n this.context = new DoricContext(content);\n this.context.init(this.initData);\n this.context.onCreate();\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 this.context.onShow();\n }\n}\n//# sourceMappingURL=DoricElement.js.map","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//# sourceMappingURL=NavigationElement.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport axios from 'axios';\nimport smoothscroll from 'smoothscroll-polyfill';\nimport { registerDoricJSLoader } from './src/DoricBundleLoader';\nimport { DoricElement } from './src/DoricElement';\nimport { NavigationElement } from './src/navigate/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';\nexport * from './src/resource/DoricResourceLoader';\nwindow.customElements.define('doric-div', DoricElement);\nwindow.customElements.define('doric-navigation', NavigationElement);\nsmoothscroll.polyfill();\nregisterDoricJSLoader({\n filter: (source) => source.startsWith(\"assets://\"),\n request: (source) => __awaiter(void 0, void 0, void 0, function* () {\n const ret = yield axios.get(source.replace(\"assets://\", `${window.location.href}/../../doric-demo/bundle/`));\n return ret.data;\n })\n});\n//# sourceMappingURL=index.js.map"],"names":["__awaiter","this","axios","LayoutSpec","jsCallResolve","jsCallReject","jsCallbackTimer","jsReleaseContext","jsHookAfterNativeCall","jsObtainContext","jsCallEntityMethod","pureCallEntityMethod"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"} \ No newline at end of file diff --git a/doric-web/src/shader/DoricTextNode.ts b/doric-web/src/shader/DoricTextNode.ts index 478823b4..81645a9e 100644 --- a/doric-web/src/shader/DoricTextNode.ts +++ b/doric-web/src/shader/DoricTextNode.ts @@ -8,7 +8,6 @@ export class DoricTextNode extends DoricViewNode { const div = document.createElement('div') div.style.display = "flex" div.style.overflow = "hidden" - div.style.lineHeight = `${this.lineHeight()}em` this.textElement = document.createElement('span') div.appendChild(this.textElement) div.style.justifyContent = "center" @@ -100,30 +99,39 @@ export class DoricTextNode extends DoricViewNode { configSize() { if (this.maxLines > 0) { - const computedStyle = window.getComputedStyle(this.view) - const currentContentHeight = this.view.clientHeight - pixelString2Number(computedStyle.paddingTop) - pixelString2Number(computedStyle.paddingBottom) - let maxHeight = Math.ceil(parseFloat(computedStyle.getPropertyValue('font-size')) * this.lineHeight() * this.maxLines) - if (currentContentHeight > 0) { - maxHeight = Math.min(maxHeight, Math.ceil(currentContentHeight)) + const computedStyle = window.getComputedStyle(this.view) + const lineHeight = this.lineHeight(computedStyle) + let allowedMaxLines = this.maxLines + + const contentHeight = this.view.clientHeight - pixelString2Number(computedStyle.paddingTop) - pixelString2Number(computedStyle.paddingBottom) + if (contentHeight > 0) { + const contentAllowedLines = Math.floor(contentHeight / lineHeight) + allowedMaxLines = Math.min(this.maxLines, contentAllowedLines) } - if (this.computedHeight(computedStyle) > maxHeight) { - this.textElement.innerText = this.truncationText(computedStyle, maxHeight) + + const originalLines = Math.floor(this.originalHeight(computedStyle) / lineHeight) + if (originalLines > allowedMaxLines) { + this.textElement.innerText = this.truncationText(computedStyle, lineHeight, allowedMaxLines) } } } - lineHeight() { - return 1.3 + lineHeight(style: CSSStyleDeclaration) { + const canvas = document.createElement('canvas') + const ctx = canvas.getContext('2d') + ctx!.font = style.font + const pureText = this.textElement.innerText.replace(/\n/g, '') + const metrics = ctx!.measureText(pureText) + return metrics.fontBoundingBoxAscent + metrics.fontBoundingBoxDescent } - computedHeight(style:CSSStyleDeclaration) { + originalHeight(style:CSSStyleDeclaration) { const tempEle = document.createElement('div') tempEle.style.font = style.font tempEle.textContent = this.textElement.innerText - tempEle.style.whiteSpace = 'normal' - this.view.style.overflow = 'hidden' - tempEle.style.lineHeight = `${this.lineHeight()}em` - tempEle.style.width = this.view.style.width + tempEle.style.whiteSpace = style.whiteSpace + this.view.style.overflow = style.overflow + tempEle.style.width = style.width document.body.appendChild(tempEle) const height = tempEle.offsetHeight @@ -131,22 +139,22 @@ export class DoricTextNode extends DoricViewNode { return height } - truncationText(style:CSSStyleDeclaration, maxHeight:number) { + truncationText(style:CSSStyleDeclaration, lineHeight:number, maxLines:number) { const originalText = this.textElement.innerText let start = 0, end = originalText.length const tempEle = document.createElement('div') tempEle.style.font = style.font - tempEle.style.whiteSpace = 'normal' - this.view.style.overflow = 'hidden' - tempEle.style.lineHeight = `${this.lineHeight()}em` - tempEle.style.width = this.view.style.width + tempEle.style.whiteSpace = style.whiteSpace + this.view.style.overflow = style.overflow + tempEle.style.width = style.width document.body.appendChild(tempEle); while(start <= end) { const mid = Math.floor((start + end) / 2) tempEle.textContent = originalText.slice(0,mid) + '...' - if (tempEle.offsetHeight > maxHeight) { + const lines = Math.floor(tempEle.offsetHeight / lineHeight) + if (lines > maxLines) { end = mid - 1 } else { start = mid + 1