This repository has been archived on 2024-07-22. You can view files and clone it, but cannot push or open issues or pull requests.
Doric/doric-js/bundle/doric-lib.es5.js
2020-03-31 12:00:47 +08:00

3263 lines
116 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
function obj2Model(obj) {
if (obj instanceof Array) {
return obj.map(function (e) { return obj2Model(e); });
}
else if (obj instanceof Object) {
if (Reflect.has(obj, 'toModel') && Reflect.get(obj, 'toModel') instanceof Function) {
obj = Reflect.apply(Reflect.get(obj, 'toModel'), obj, []);
return obj;
}
else {
for (var key in obj) {
var val = Reflect.get(obj, key);
Reflect.set(obj, key, obj2Model(val));
}
return obj;
}
}
else {
return obj;
}
}
var Mutable = /** @class */ (function () {
function Mutable(v) {
var _this = this;
this.binders = new Set;
this.get = function () {
return _this.val;
};
this.set = function (v) {
_this.val = v;
_this.binders.forEach(function (e) {
Reflect.apply(e, undefined, [_this.val]);
});
};
this.val = v;
}
Mutable.prototype.bind = function (binder) {
this.binders.add(binder);
Reflect.apply(binder, undefined, [this.val]);
};
Mutable.of = function (v) {
return new Mutable(v);
};
return Mutable;
}());
/*
* Copyright [2019] [Doric.Pub]
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
var __uniqueId__ = 0;
function uniqueId(prefix) {
return "__" + prefix + "_" + __uniqueId__++ + "__";
}
function toString(message) {
if (message instanceof Function) {
return message.toString();
}
else if (message instanceof Object) {
try {
return JSON.stringify(message);
}
catch (e) {
return message.toString();
}
}
else if (message === undefined) {
return "undefined";
}
else {
return message.toString();
}
}
function log() {
var arguments$1 = arguments;
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments$1[_i];
}
var out = "";
for (var i = 0; i < arguments.length; i++) {
if (i > 0) {
out += ',';
}
out += toString(arguments$1[i]);
}
nativeLog('d', out);
}
function loge() {
var arguments$1 = arguments;
var message = [];
for (var _i = 0; _i < arguments.length; _i++) {
message[_i] = arguments$1[_i];
}
var out = "";
for (var i = 0; i < arguments.length; i++) {
if (i > 0) {
out += ',';
}
out += toString(arguments$1[i]);
}
nativeLog('e', out);
}
function logw() {
var arguments$1 = arguments;
var message = [];
for (var _i = 0; _i < arguments.length; _i++) {
message[_i] = arguments$1[_i];
}
var out = "";
for (var i = 0; i < arguments.length; i++) {
if (i > 0) {
out += ',';
}
out += toString(arguments$1[i]);
}
nativeLog('w', out);
}
var __extends = (undefined && undefined.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) { if (b.hasOwnProperty(p)) { d[p] = b[p]; } } };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") { r = Reflect.decorate(decorators, target, key, desc); }
else { for (var i = decorators.length - 1; i >= 0; i--) { if (d = decorators[i]) { r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; } } }
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") { return Reflect.metadata(k, v); }
};
var __values = (undefined && undefined.__values) || function(o) {
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
if (m) { return m.call(o); }
if (o && typeof o.length === "number") { return {
next: function () {
if (o && i >= o.length) { o = void 0; }
return { value: o && o[i++], done: !o };
}
}; }
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
};
function Property(target, propKey) {
Object.defineProperty(target, propKey, {
get: function () {
return Reflect.get(this, "__prop__" + propKey, this);
},
set: function (v) {
var oldV = Reflect.get(this, "__prop__" + propKey, this);
Reflect.set(this, "__prop__" + propKey, v, this);
if (oldV !== v) {
Reflect.apply(this.onPropertyChanged, this, [propKey, oldV, v]);
}
},
});
}
var View = /** @class */ (function () {
function View() {
this.width = 0;
this.height = 0;
this.x = 0;
this.y = 0;
this.viewId = uniqueId('ViewId');
this.nativeViewModel = {
id: this.viewId,
type: this.constructor.name,
props: this.__dirty_props__,
};
}
View.prototype.callback2Id = function (f) {
if (this.callbacks === undefined) {
this.callbacks = new Map;
}
var id = uniqueId('Function');
this.callbacks.set(id, f);
return id;
};
View.prototype.id2Callback = function (id) {
if (this.callbacks === undefined) {
this.callbacks = new Map;
}
var f = this.callbacks.get(id);
if (f === undefined) {
f = Reflect.get(this, id);
}
return f;
};
Object.defineProperty(View.prototype, "left", {
/** Anchor start*/
get: function () {
return this.x;
},
set: function (v) {
this.x = v;
},
enumerable: true,
configurable: true
});
Object.defineProperty(View.prototype, "right", {
get: function () {
return this.x + this.width;
},
set: function (v) {
this.x = v - this.width;
},
enumerable: true,
configurable: true
});
Object.defineProperty(View.prototype, "top", {
get: function () {
return this.y;
},
set: function (v) {
this.y = v;
},
enumerable: true,
configurable: true
});
Object.defineProperty(View.prototype, "bottom", {
get: function () {
return this.y + this.height;
},
set: function (v) {
this.y = v - this.height;
},
enumerable: true,
configurable: true
});
Object.defineProperty(View.prototype, "centerX", {
get: function () {
return this.x + this.width / 2;
},
set: function (v) {
this.x = v - this.width / 2;
},
enumerable: true,
configurable: true
});
Object.defineProperty(View.prototype, "centerY", {
get: function () {
return this.y + this.height / 2;
},
set: function (v) {
this.y = v - this.height / 2;
},
enumerable: true,
configurable: true
});
Object.defineProperty(View.prototype, "dirtyProps", {
/** Anchor end*/
get: function () {
return this.__dirty_props__;
},
enumerable: true,
configurable: true
});
View.prototype.onPropertyChanged = function (propKey, oldV, newV) {
if (newV instanceof Function) {
newV = this.callback2Id(newV);
}
else {
newV = obj2Model(newV);
}
if (this.__dirty_props__ === undefined) {
this.__dirty_props__ = {};
}
this.__dirty_props__[propKey] = newV;
};
View.prototype.clean = function () {
for (var key in this.__dirty_props__) {
if (Reflect.has(this.__dirty_props__, key)) {
Reflect.deleteProperty(this.__dirty_props__, key);
}
}
};
View.prototype.isDirty = function () {
return Reflect.ownKeys(this.__dirty_props__).length !== 0;
};
View.prototype.responseCallback = function (id) {
var arguments$1 = arguments;
var args = [];
for (var _i = 1; _i < arguments.length; _i++) {
args[_i - 1] = arguments$1[_i];
}
var f = this.id2Callback(id);
if (f instanceof Function) {
var argumentsList = [];
for (var i = 1; i < arguments.length; i++) {
argumentsList.push(arguments$1[i]);
}
return Reflect.apply(f, this, argumentsList);
}
else {
loge("Cannot find callback:" + id + " for " + JSON.stringify(this.toModel()));
}
};
View.prototype.toModel = function () {
return this.nativeViewModel;
};
View.prototype.let = function (block) {
block(this);
};
View.prototype.also = function (block) {
block(this);
return this;
};
View.prototype.apply = function (config) {
for (var key in config) {
Reflect.set(this, key, Reflect.get(config, key, config), this);
}
return this;
};
View.prototype.in = function (group) {
group.addChild(this);
return this;
};
View.prototype.nativeChannel = function (context, name) {
var thisView = this;
return function (args) {
if (args === void 0) { args = undefined; }
var viewIds = [];
while (thisView != undefined) {
viewIds.push(thisView.viewId);
thisView = thisView.superview;
}
var params = {
viewIds: viewIds.reverse(),
name: name,
args: args,
};
return context.callNative('shader', 'command', params);
};
};
View.prototype.getWidth = function (context) {
return this.nativeChannel(context, 'getWidth')();
};
View.prototype.getHeight = function (context) {
return this.nativeChannel(context, 'getHeight')();
};
View.prototype.getX = function (context) {
return this.nativeChannel(context, 'getX')();
};
View.prototype.getY = function (context) {
return this.nativeChannel(context, 'getY')();
};
View.prototype.getLocationOnScreen = function (context) {
return this.nativeChannel(context, "getLocationOnScreen")();
};
/**----------transform----------*/
View.prototype.doAnimation = function (context, animation) {
var _this = this;
return this.nativeChannel(context, "doAnimation")(animation.toModel()).then(function (args) {
for (var key in args) {
Reflect.set(_this, key, Reflect.get(args, key, args), _this);
Reflect.deleteProperty(_this.__dirty_props__, key);
}
});
};
__decorate([
Property,
__metadata("design:type", Number)
], View.prototype, "width", void 0);
__decorate([
Property,
__metadata("design:type", Number)
], View.prototype, "height", void 0);
__decorate([
Property,
__metadata("design:type", Number)
], View.prototype, "x", void 0);
__decorate([
Property,
__metadata("design:type", Number)
], View.prototype, "y", void 0);
__decorate([
Property,
__metadata("design:type", Object)
], View.prototype, "backgroundColor", void 0);
__decorate([
Property,
__metadata("design:type", Object)
], View.prototype, "corners", void 0);
__decorate([
Property,
__metadata("design:type", Object)
], View.prototype, "border", void 0);
__decorate([
Property,
__metadata("design:type", Object)
], View.prototype, "shadow", void 0);
__decorate([
Property,
__metadata("design:type", Number)
], View.prototype, "alpha", void 0);
__decorate([
Property,
__metadata("design:type", Boolean)
], View.prototype, "hidden", void 0);
__decorate([
Property,
__metadata("design:type", Object)
], View.prototype, "padding", void 0);
__decorate([
Property,
__metadata("design:type", Object)
], View.prototype, "layoutConfig", void 0);
__decorate([
Property,
__metadata("design:type", Function)
], View.prototype, "onClick", void 0);
__decorate([
Property,
__metadata("design:type", Number)
], View.prototype, "translationX", void 0);
__decorate([
Property,
__metadata("design:type", Number)
], View.prototype, "translationY", void 0);
__decorate([
Property,
__metadata("design:type", Number)
], View.prototype, "scaleX", void 0);
__decorate([
Property,
__metadata("design:type", Number)
], View.prototype, "scaleY", void 0);
__decorate([
Property,
__metadata("design:type", Number)
], View.prototype, "pivotX", void 0);
__decorate([
Property,
__metadata("design:type", Number)
], View.prototype, "pivotY", void 0);
__decorate([
Property,
__metadata("design:type", Number)
], View.prototype, "rotation", void 0);
return View;
}());
var Superview = /** @class */ (function (_super) {
__extends(Superview, _super);
function Superview() {
return _super !== null && _super.apply(this, arguments) || this;
}
Superview.prototype.subviewById = function (id) {
var e_1, _a;
try {
for (var _b = __values(this.allSubviews()), _c = _b.next(); !_c.done; _c = _b.next()) {
var v = _c.value;
if (v.viewId === id) {
return v;
}
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (_c && !_c.done && (_a = _b.return)) { _a.call(_b); }
}
finally { if (e_1) { throw e_1.error; } }
}
};
Superview.prototype.isDirty = function () {
var e_2, _a;
if (_super.prototype.isDirty.call(this)) {
return true;
}
else {
try {
for (var _b = __values(this.allSubviews()), _c = _b.next(); !_c.done; _c = _b.next()) {
var v = _c.value;
if (v.isDirty()) {
return true;
}
}
}
catch (e_2_1) { e_2 = { error: e_2_1 }; }
finally {
try {
if (_c && !_c.done && (_a = _b.return)) { _a.call(_b); }
}
finally { if (e_2) { throw e_2.error; } }
}
}
return false;
};
Superview.prototype.clean = function () {
var e_3, _a;
try {
for (var _b = __values(this.allSubviews()), _c = _b.next(); !_c.done; _c = _b.next()) {
var v = _c.value;
v.clean();
}
}
catch (e_3_1) { e_3 = { error: e_3_1 }; }
finally {
try {
if (_c && !_c.done && (_a = _b.return)) { _a.call(_b); }
}
finally { if (e_3) { throw e_3.error; } }
}
_super.prototype.clean.call(this);
};
Superview.prototype.toModel = function () {
var e_4, _a;
var subviews = [];
try {
for (var _b = __values(this.allSubviews()), _c = _b.next(); !_c.done; _c = _b.next()) {
var v = _c.value;
if (v != undefined) {
v.superview = this;
if (v.isDirty()) {
subviews.push(v.toModel());
}
}
}
}
catch (e_4_1) { e_4 = { error: e_4_1 }; }
finally {
try {
if (_c && !_c.done && (_a = _b.return)) { _a.call(_b); }
}
finally { if (e_4) { throw e_4.error; } }
}
this.dirtyProps.subviews = subviews;
return _super.prototype.toModel.call(this);
};
return Superview;
}(View));
var Group = /** @class */ (function (_super) {
__extends(Group, _super);
function Group() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.children = [];
return _this;
}
Group.prototype.allSubviews = function () {
return this.children;
};
Group.prototype.addChild = function (view) {
this.children.push(view);
this.dirtyProps.children = this.children.map(function (e) { return e.viewId; });
};
return Group;
}(Superview));
var SPECIFIED = 1;
var START = 1 << 1;
var END = 1 << 2;
var SHIFT_X = 0;
var SHIFT_Y = 4;
var LEFT = (START | SPECIFIED) << SHIFT_X;
var RIGHT = (END | SPECIFIED) << SHIFT_X;
var TOP = (START | SPECIFIED) << SHIFT_Y;
var BOTTOM = (END | SPECIFIED) << SHIFT_Y;
var CENTER_X = SPECIFIED << SHIFT_X;
var CENTER_Y = SPECIFIED << SHIFT_Y;
var CENTER = CENTER_X | CENTER_Y;
var Gravity = /** @class */ (function () {
function Gravity() {
this.val = 0;
}
Gravity.prototype.left = function () {
var val = this.val | LEFT;
var ret = new Gravity;
ret.val = val;
return ret;
};
Gravity.prototype.right = function () {
var val = this.val | RIGHT;
var ret = new Gravity;
ret.val = val;
return ret;
};
Gravity.prototype.top = function () {
var val = this.val | TOP;
var ret = new Gravity;
ret.val = val;
return ret;
};
Gravity.prototype.bottom = function () {
var val = this.val | BOTTOM;
var ret = new Gravity;
ret.val = val;
return ret;
};
Gravity.prototype.center = function () {
var val = this.val | CENTER;
var ret = new Gravity;
ret.val = val;
return ret;
};
Gravity.prototype.centerX = function () {
var val = this.val | CENTER_X;
var ret = new Gravity;
ret.val = val;
return ret;
};
Gravity.prototype.centerY = function () {
var val = this.val | CENTER_Y;
var ret = new Gravity;
ret.val = val;
return ret;
};
Gravity.prototype.toModel = function () {
return this.val;
};
Gravity.origin = new Gravity;
Gravity.Center = Gravity.origin.center();
Gravity.CenterX = Gravity.origin.centerX();
Gravity.CenterY = Gravity.origin.centerY();
Gravity.Left = Gravity.origin.left();
Gravity.Right = Gravity.origin.right();
Gravity.Top = Gravity.origin.top();
Gravity.Bottom = Gravity.origin.bottom();
return Gravity;
}());
function gravity() {
return new Gravity;
}
(function (LayoutSpec) {
/**
* Depends on what's been set on width or height.
*/
LayoutSpec[LayoutSpec["JUST"] = 0] = "JUST";
/**
* Depends on it's content.
*/
LayoutSpec[LayoutSpec["FIT"] = 1] = "FIT";
/**
* Extend as much as parent let it take.
*/
LayoutSpec[LayoutSpec["MOST"] = 2] = "MOST";
})(exports.LayoutSpec || (exports.LayoutSpec = {}));
var LayoutConfigImpl = /** @class */ (function () {
function LayoutConfigImpl() {
}
LayoutConfigImpl.prototype.fit = function () {
this.widthSpec = exports.LayoutSpec.FIT;
this.heightSpec = exports.LayoutSpec.FIT;
return this;
};
LayoutConfigImpl.prototype.most = function () {
this.widthSpec = exports.LayoutSpec.MOST;
this.heightSpec = exports.LayoutSpec.MOST;
return this;
};
LayoutConfigImpl.prototype.just = function () {
this.widthSpec = exports.LayoutSpec.JUST;
this.heightSpec = exports.LayoutSpec.JUST;
return this;
};
LayoutConfigImpl.prototype.configWidth = function (w) {
this.widthSpec = w;
return this;
};
LayoutConfigImpl.prototype.configHeight = function (h) {
this.heightSpec = h;
return this;
};
LayoutConfigImpl.prototype.configMargin = function (m) {
this.margin = m;
return this;
};
LayoutConfigImpl.prototype.configAlignment = function (a) {
this.alignment = a;
return this;
};
LayoutConfigImpl.prototype.configWeight = function (w) {
this.weight = w;
return this;
};
LayoutConfigImpl.prototype.toModel = function () {
return {
widthSpec: this.widthSpec,
heightSpec: this.heightSpec,
margin: this.margin,
alignment: this.alignment ? this.alignment.toModel() : undefined,
weight: this.weight,
};
};
return LayoutConfigImpl;
}());
function layoutConfig() {
return new LayoutConfigImpl;
}
var __extends$1 = (undefined && undefined.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) { if (b.hasOwnProperty(p)) { d[p] = b[p]; } } };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __decorate$1 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") { r = Reflect.decorate(decorators, target, key, desc); }
else { for (var i = decorators.length - 1; i >= 0; i--) { if (d = decorators[i]) { r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; } } }
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata$1 = (undefined && undefined.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") { return Reflect.metadata(k, v); }
};
var __values$1 = (undefined && undefined.__values) || function(o) {
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
if (m) { return m.call(o); }
if (o && typeof o.length === "number") { return {
next: function () {
if (o && i >= o.length) { o = void 0; }
return { value: o && o[i++], done: !o };
}
}; }
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
};
var Stack = /** @class */ (function (_super) {
__extends$1(Stack, _super);
function Stack() {
return _super !== null && _super.apply(this, arguments) || this;
}
return Stack;
}(Group));
var Root = /** @class */ (function (_super) {
__extends$1(Root, _super);
function Root() {
return _super !== null && _super.apply(this, arguments) || this;
}
return Root;
}(Stack));
var LinearLayout = /** @class */ (function (_super) {
__extends$1(LinearLayout, _super);
function LinearLayout() {
return _super !== null && _super.apply(this, arguments) || this;
}
__decorate$1([
Property,
__metadata$1("design:type", Number)
], LinearLayout.prototype, "space", void 0);
__decorate$1([
Property,
__metadata$1("design:type", Gravity)
], LinearLayout.prototype, "gravity", void 0);
return LinearLayout;
}(Group));
var VLayout = /** @class */ (function (_super) {
__extends$1(VLayout, _super);
function VLayout() {
return _super !== null && _super.apply(this, arguments) || this;
}
return VLayout;
}(LinearLayout));
var HLayout = /** @class */ (function (_super) {
__extends$1(HLayout, _super);
function HLayout() {
return _super !== null && _super.apply(this, arguments) || this;
}
return HLayout;
}(LinearLayout));
function stack(views, config) {
var e_1, _a;
var ret = new Stack;
ret.layoutConfig = layoutConfig().fit();
try {
for (var views_1 = __values$1(views), views_1_1 = views_1.next(); !views_1_1.done; views_1_1 = views_1.next()) {
var v = views_1_1.value;
ret.addChild(v);
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (views_1_1 && !views_1_1.done && (_a = views_1.return)) { _a.call(views_1); }
}
finally { if (e_1) { throw e_1.error; } }
}
if (config) {
for (var key in config) {
Reflect.set(ret, key, Reflect.get(config, key, config), ret);
}
}
return ret;
}
function hlayout(views, config) {
var e_2, _a;
var ret = new HLayout;
ret.layoutConfig = layoutConfig().fit();
try {
for (var views_2 = __values$1(views), views_2_1 = views_2.next(); !views_2_1.done; views_2_1 = views_2.next()) {
var v = views_2_1.value;
ret.addChild(v);
}
}
catch (e_2_1) { e_2 = { error: e_2_1 }; }
finally {
try {
if (views_2_1 && !views_2_1.done && (_a = views_2.return)) { _a.call(views_2); }
}
finally { if (e_2) { throw e_2.error; } }
}
if (config) {
for (var key in config) {
Reflect.set(ret, key, Reflect.get(config, key, config), ret);
}
}
return ret;
}
function vlayout(views, config) {
var e_3, _a;
var ret = new VLayout;
ret.layoutConfig = layoutConfig().fit();
try {
for (var views_3 = __values$1(views), views_3_1 = views_3.next(); !views_3_1.done; views_3_1 = views_3.next()) {
var v = views_3_1.value;
ret.addChild(v);
}
}
catch (e_3_1) { e_3 = { error: e_3_1 }; }
finally {
try {
if (views_3_1 && !views_3_1.done && (_a = views_3.return)) { _a.call(views_3); }
}
finally { if (e_3) { throw e_3.error; } }
}
if (config) {
for (var key in config) {
Reflect.set(ret, key, Reflect.get(config, key, config), ret);
}
}
return ret;
}
var __decorate$2 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") { r = Reflect.decorate(decorators, target, key, desc); }
else { for (var i = decorators.length - 1; i >= 0; i--) { if (d = decorators[i]) { r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; } } }
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata$2 = (undefined && undefined.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") { return Reflect.metadata(k, v); }
};
var __values$2 = (undefined && undefined.__values) || function(o) {
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
if (m) { return m.call(o); }
if (o && typeof o.length === "number") { return {
next: function () {
if (o && i >= o.length) { o = void 0; }
return { value: o && o[i++], done: !o };
}
}; }
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
};
function NativeCall(target, propertyKey, descriptor) {
var originVal = descriptor.value;
descriptor.value = function () {
var ret = Reflect.apply(originVal, this, arguments);
return ret;
};
return descriptor;
}
var Panel = /** @class */ (function () {
function Panel() {
this.__root__ = new Root;
this.headviews = new Map;
this.onRenderFinishedCallback = [];
}
Panel.prototype.onCreate = function () { };
Panel.prototype.onDestroy = function () { };
Panel.prototype.onShow = function () { };
Panel.prototype.onHidden = function () { };
Panel.prototype.addHeadView = function (type, v) {
var map = this.headviews.get(type);
if (map) {
map.set(v.viewId, v);
}
else {
map = new Map;
map.set(v.viewId, v);
this.headviews.set(type, map);
}
};
Panel.prototype.allHeadViews = function () {
return this.headviews.values();
};
Panel.prototype.removeHeadView = function (type, v) {
if (this.headviews.has(type)) {
var map = this.headviews.get(type);
if (map) {
if (v instanceof View) {
map.delete(v.viewId);
}
else {
map.delete(v);
}
}
}
};
Panel.prototype.clearHeadViews = function (type) {
if (this.headviews.has(type)) {
this.headviews.delete(type);
}
};
Panel.prototype.getRootView = function () {
return this.__root__;
};
Panel.prototype.getInitData = function () {
return this.__data__;
};
Panel.prototype.__init__ = function (data) {
if (data) {
this.__data__ = JSON.parse(data);
}
};
Panel.prototype.__onCreate__ = function () {
this.onCreate();
};
Panel.prototype.__onDestroy__ = function () {
this.onDestroy();
};
Panel.prototype.__onShow__ = function () {
this.onShow();
};
Panel.prototype.__onHidden__ = function () {
this.onHidden();
};
Panel.prototype.__build__ = function (frame) {
this.__root__.width = frame.width;
this.__root__.height = frame.height;
this.__root__.children.length = 0;
this.build(this.__root__);
};
Panel.prototype.__response__ = function (viewIds, callbackId) {
var arguments$1 = arguments;
var v = this.retrospectView(viewIds);
if (v === undefined) {
loge("Cannot find view for " + viewIds);
}
else {
var argumentsList = [callbackId];
for (var i = 2; i < arguments.length; i++) {
argumentsList.push(arguments$1[i]);
}
return Reflect.apply(v.responseCallback, v, argumentsList);
}
};
Panel.prototype.retrospectView = function (ids) {
var _this = this;
return ids.reduce(function (acc, cur) {
var e_1, _a;
if (acc === undefined) {
if (cur === _this.__root__.viewId) {
return _this.__root__;
}
try {
for (var _b = __values$2(_this.headviews.values()), _c = _b.next(); !_c.done; _c = _b.next()) {
var map = _c.value;
if (map.has(cur)) {
return map.get(cur);
}
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (_c && !_c.done && (_a = _b.return)) { _a.call(_b); }
}
finally { if (e_1) { throw e_1.error; } }
}
return undefined;
}
else {
if (Reflect.has(acc, "subviewById")) {
return Reflect.apply(Reflect.get(acc, "subviewById"), acc, [cur]);
}
return acc;
}
}, undefined);
};
Panel.prototype.nativeRender = function (model) {
return this.context.callNative("shader", "render", model);
};
Panel.prototype.hookBeforeNativeCall = function () {
var e_2, _a, e_3, _b;
if (Environment.platform !== 'web') {
this.__root__.clean();
try {
for (var _c = __values$2(this.headviews.values()), _d = _c.next(); !_d.done; _d = _c.next()) {
var map = _d.value;
try {
for (var _e = (e_3 = void 0, __values$2(map.values())), _f = _e.next(); !_f.done; _f = _e.next()) {
var v = _f.value;
v.clean();
}
}
catch (e_3_1) { e_3 = { error: e_3_1 }; }
finally {
try {
if (_f && !_f.done && (_b = _e.return)) { _b.call(_e); }
}
finally { if (e_3) { throw e_3.error; } }
}
}
}
catch (e_2_1) { e_2 = { error: e_2_1 }; }
finally {
try {
if (_d && !_d.done && (_a = _c.return)) { _a.call(_c); }
}
finally { if (e_2) { throw e_2.error; } }
}
}
};
Panel.prototype.hookAfterNativeCall = function () {
var e_4, _a, e_5, _b;
var _this = this;
var promises = [];
if (Environment.platform !== 'web') {
//Here insert a native call to ensure the promise is resolved done.
nativeEmpty();
if (this.__root__.isDirty()) {
var model = this.__root__.toModel();
promises.push(this.nativeRender(model));
}
try {
for (var _c = __values$2(this.headviews.values()), _d = _c.next(); !_d.done; _d = _c.next()) {
var map = _d.value;
try {
for (var _e = (e_5 = void 0, __values$2(map.values())), _f = _e.next(); !_f.done; _f = _e.next()) {
var v = _f.value;
if (v.isDirty()) {
var model = v.toModel();
promises.push(this.nativeRender(model));
}
}
}
catch (e_5_1) { e_5 = { error: e_5_1 }; }
finally {
try {
if (_f && !_f.done && (_b = _e.return)) { _b.call(_e); }
}
finally { if (e_5) { throw e_5.error; } }
}
}
}
catch (e_4_1) { e_4 = { error: e_4_1 }; }
finally {
try {
if (_d && !_d.done && (_a = _c.return)) { _a.call(_c); }
}
finally { if (e_4) { throw e_4.error; } }
}
}
else {
Promise.resolve().then(function () {
var e_6, _a, e_7, _b;
if (_this.__root__.isDirty()) {
var model = _this.__root__.toModel();
promises.push(_this.nativeRender(model));
_this.__root__.clean();
}
try {
for (var _c = __values$2(_this.headviews.values()), _d = _c.next(); !_d.done; _d = _c.next()) {
var map = _d.value;
try {
for (var _e = (e_7 = void 0, __values$2(map.values())), _f = _e.next(); !_f.done; _f = _e.next()) {
var v = _f.value;
if (v.isDirty()) {
var model = v.toModel();
promises.push(_this.nativeRender(model));
v.clean();
}
}
}
catch (e_7_1) { e_7 = { error: e_7_1 }; }
finally {
try {
if (_f && !_f.done && (_b = _e.return)) { _b.call(_e); }
}
finally { if (e_7) { throw e_7.error; } }
}
}
}
catch (e_6_1) { e_6 = { error: e_6_1 }; }
finally {
try {
if (_d && !_d.done && (_a = _c.return)) { _a.call(_c); }
}
finally { if (e_6) { throw e_6.error; } }
}
});
}
Promise.all(promises).then(function (_) {
_this.onRenderFinished();
});
};
Panel.prototype.onRenderFinished = function () {
this.onRenderFinishedCallback.forEach(function (e) {
e();
});
this.onRenderFinishedCallback.length = 0;
};
Panel.prototype.addOnRenderFinishedCallback = function (cb) {
this.onRenderFinishedCallback.push(cb);
};
__decorate$2([
NativeCall,
__metadata$2("design:type", Function),
__metadata$2("design:paramtypes", [String]),
__metadata$2("design:returntype", void 0)
], Panel.prototype, "__init__", null);
__decorate$2([
NativeCall,
__metadata$2("design:type", Function),
__metadata$2("design:paramtypes", []),
__metadata$2("design:returntype", void 0)
], Panel.prototype, "__onCreate__", null);
__decorate$2([
NativeCall,
__metadata$2("design:type", Function),
__metadata$2("design:paramtypes", []),
__metadata$2("design:returntype", void 0)
], Panel.prototype, "__onDestroy__", null);
__decorate$2([
NativeCall,
__metadata$2("design:type", Function),
__metadata$2("design:paramtypes", []),
__metadata$2("design:returntype", void 0)
], Panel.prototype, "__onShow__", null);
__decorate$2([
NativeCall,
__metadata$2("design:type", Function),
__metadata$2("design:paramtypes", []),
__metadata$2("design:returntype", void 0)
], Panel.prototype, "__onHidden__", null);
__decorate$2([
NativeCall,
__metadata$2("design:type", Function),
__metadata$2("design:paramtypes", [Object]),
__metadata$2("design:returntype", void 0)
], Panel.prototype, "__build__", null);
__decorate$2([
NativeCall,
__metadata$2("design:type", Function),
__metadata$2("design:paramtypes", [Array, String]),
__metadata$2("design:returntype", void 0)
], Panel.prototype, "__response__", null);
return Panel;
}());
/*
* Copyright [2019] [Doric.Pub]
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
var __extends$2 = (undefined && undefined.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) { if (b.hasOwnProperty(p)) { d[p] = b[p]; } } };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __values$3 = (undefined && undefined.__values) || function(o) {
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
if (m) { return m.call(o); }
if (o && typeof o.length === "number") { return {
next: function () {
if (o && i >= o.length) { o = void 0; }
return { value: o && o[i++], done: !o };
}
}; }
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
};
(function (RepeatMode) {
RepeatMode[RepeatMode["RESTART"] = 1] = "RESTART";
RepeatMode[RepeatMode["REVERSE"] = 2] = "REVERSE";
})(exports.RepeatMode || (exports.RepeatMode = {}));
(function (FillMode) {
/**
* The receiver is removed from the presentation when the animation is completed.
*/
FillMode[FillMode["Removed"] = 0] = "Removed";
/**
* The receiver remains visible in its final state when the animation is completed.
*/
FillMode[FillMode["Forward"] = 1] = "Forward";
/**
* The receiver clamps values before zero to zero when the animation is completed.
*/
FillMode[FillMode["Backward"] = 2] = "Backward";
/**
* The receiver clamps values at both ends of the objects time space
*/
FillMode[FillMode["Both"] = 3] = "Both";
})(exports.FillMode || (exports.FillMode = {}));
(function (TimingFunction) {
/**
* The system default timing function. Use this function to ensure that the timing of your animations matches that of most system animations.
*/
TimingFunction[TimingFunction["Default"] = 0] = "Default";
/**
* Linear pacing, which causes an animation to occur evenly over its duration.
*/
TimingFunction[TimingFunction["Linear"] = 1] = "Linear";
/**
* Ease-in pacing, which causes an animation to begin slowly and then speed up as it progresses.
*/
TimingFunction[TimingFunction["EaseIn"] = 2] = "EaseIn";
/**
* Ease-out pacing, which causes an animation to begin quickly and then slow as it progresses.
*/
TimingFunction[TimingFunction["EaseOut"] = 3] = "EaseOut";
/**
* Ease-in-ease-out pacing, which causes an animation to begin slowly, accelerate through the middle of its duration, and then slow again before completing.
*/
TimingFunction[TimingFunction["EaseInEaseOut"] = 4] = "EaseInEaseOut";
})(exports.TimingFunction || (exports.TimingFunction = {}));
var Animation = /** @class */ (function () {
function Animation() {
this.changeables = new Map;
this.duration = 0;
this.fillMode = exports.FillMode.Forward;
}
Animation.prototype.toModel = function () {
var e_1, _a;
var changeables = [];
try {
for (var _b = __values$3(this.changeables.values()), _c = _b.next(); !_c.done; _c = _b.next()) {
var e = _c.value;
changeables.push({
key: e.key,
fromValue: e.fromValue,
toValue: e.toValue,
});
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (_c && !_c.done && (_a = _b.return)) { _a.call(_b); }
}
finally { if (e_1) { throw e_1.error; } }
}
return {
type: this.constructor.name,
delay: this.delay,
duration: this.duration,
changeables: changeables,
repeatCount: this.repeatCount,
repeatMode: this.repeatMode,
fillMode: this.fillMode,
timingFunction: this.timingFunction
};
};
return Animation;
}());
var ScaleAnimation = /** @class */ (function (_super) {
__extends$2(ScaleAnimation, _super);
function ScaleAnimation() {
var _this = _super.call(this) || this;
_this.scaleXChangeable = {
key: "scaleX",
fromValue: 1,
toValue: 1,
};
_this.scaleYChangeable = {
key: "scaleY",
fromValue: 1,
toValue: 1,
};
_this.changeables.set("scaleX", _this.scaleXChangeable);
_this.changeables.set("scaleY", _this.scaleYChangeable);
return _this;
}
Object.defineProperty(ScaleAnimation.prototype, "fromScaleX", {
get: function () {
return this.scaleXChangeable.fromValue;
},
set: function (v) {
this.scaleXChangeable.fromValue = v;
},
enumerable: true,
configurable: true
});
Object.defineProperty(ScaleAnimation.prototype, "toScaleX", {
get: function () {
return this.scaleXChangeable.toValue;
},
set: function (v) {
this.scaleXChangeable.toValue = v;
},
enumerable: true,
configurable: true
});
Object.defineProperty(ScaleAnimation.prototype, "fromScaleY", {
get: function () {
return this.scaleYChangeable.fromValue;
},
set: function (v) {
this.scaleYChangeable.fromValue = v;
},
enumerable: true,
configurable: true
});
Object.defineProperty(ScaleAnimation.prototype, "toScaleY", {
get: function () {
return this.scaleYChangeable.toValue;
},
set: function (v) {
this.scaleYChangeable.toValue = v;
},
enumerable: true,
configurable: true
});
return ScaleAnimation;
}(Animation));
var TranslationAnimation = /** @class */ (function (_super) {
__extends$2(TranslationAnimation, _super);
function TranslationAnimation() {
var _this = _super.call(this) || this;
_this.translationXChangeable = {
key: "translationX",
fromValue: 1,
toValue: 1,
};
_this.translationYChangeable = {
key: "translationY",
fromValue: 1,
toValue: 1,
};
_this.changeables.set("translationX", _this.translationXChangeable);
_this.changeables.set("translationY", _this.translationYChangeable);
return _this;
}
Object.defineProperty(TranslationAnimation.prototype, "fromTranslationX", {
get: function () {
return this.translationXChangeable.fromValue;
},
set: function (v) {
this.translationXChangeable.fromValue = v;
},
enumerable: true,
configurable: true
});
Object.defineProperty(TranslationAnimation.prototype, "toTranslationX", {
get: function () {
return this.translationXChangeable.toValue;
},
set: function (v) {
this.translationXChangeable.toValue = v;
},
enumerable: true,
configurable: true
});
Object.defineProperty(TranslationAnimation.prototype, "fromTranslationY", {
get: function () {
return this.translationYChangeable.fromValue;
},
set: function (v) {
this.translationYChangeable.fromValue = v;
},
enumerable: true,
configurable: true
});
Object.defineProperty(TranslationAnimation.prototype, "toTranslationY", {
get: function () {
return this.translationYChangeable.toValue;
},
set: function (v) {
this.translationYChangeable.toValue = v;
},
enumerable: true,
configurable: true
});
return TranslationAnimation;
}(Animation));
var RotationAnimation = /** @class */ (function (_super) {
__extends$2(RotationAnimation, _super);
function RotationAnimation() {
var _this = _super.call(this) || this;
_this.rotationChaneable = {
key: "rotation",
fromValue: 1,
toValue: 1,
};
_this.changeables.set("rotation", _this.rotationChaneable);
return _this;
}
Object.defineProperty(RotationAnimation.prototype, "fromRotation", {
get: function () {
return this.rotationChaneable.fromValue;
},
set: function (v) {
this.rotationChaneable.fromValue = v;
},
enumerable: true,
configurable: true
});
Object.defineProperty(RotationAnimation.prototype, "toRotation", {
get: function () {
return this.rotationChaneable.toValue;
},
set: function (v) {
this.rotationChaneable.toValue = v;
},
enumerable: true,
configurable: true
});
return RotationAnimation;
}(Animation));
var AnimationSet = /** @class */ (function () {
function AnimationSet() {
this.animations = [];
this._duration = 0;
}
AnimationSet.prototype.addAnimation = function (anim) {
this.animations.push(anim);
};
Object.defineProperty(AnimationSet.prototype, "duration", {
get: function () {
return this._duration;
},
set: function (v) {
this._duration = v;
this.animations.forEach(function (e) { return e.duration = v; });
},
enumerable: true,
configurable: true
});
AnimationSet.prototype.toModel = function () {
return {
animations: this.animations.map(function (e) {
return e.toModel();
}),
delay: this.delay,
};
};
return AnimationSet;
}());
/**
* Store color as format AARRGGBB or RRGGBB
*/
var Color = /** @class */ (function () {
function Color(v) {
this._value = 0;
this._value = v | 0x0;
}
Color.parse = function (str) {
if (!str.startsWith("#")) {
throw new Error("Parse color error with " + str);
}
var val = parseInt(str.substr(1), 16);
if (str.length === 7) {
return new Color(val | 0xff000000);
}
else if (str.length === 9) {
return new Color(val);
}
else {
throw new Error("Parse color error with " + str);
}
};
Color.safeParse = function (str, defVal) {
if (defVal === void 0) { defVal = Color.TRANSPARENT; }
var color = defVal;
try {
color = Color.parse(str);
}
catch (e) {
}
finally {
return color;
}
};
Color.prototype.alpha = function (v) {
v = v * 255;
return new Color((this._value & 0xffffff) | ((v & 0xff) << 24));
};
Color.prototype.toModel = function () {
return this._value;
};
Color.BLACK = new Color(0xFF000000);
Color.DKGRAY = new Color(0xFF444444);
Color.GRAY = new Color(0xFF888888);
Color.LTGRAY = new Color(0xFFCCCCCC);
Color.WHITE = new Color(0xFFFFFFFF);
Color.RED = new Color(0xFFFF0000);
Color.GREEN = new Color(0xFF00FF00);
Color.BLUE = new Color(0xFF0000FF);
Color.YELLOW = new Color(0xFFFFFF00);
Color.CYAN = new Color(0xFF00FFFF);
Color.MAGENTA = new Color(0xFFFF00FF);
Color.TRANSPARENT = new Color(0);
return Color;
}());
(function (GradientOrientation) {
/** draw the gradient from the top to the bottom */
GradientOrientation[GradientOrientation["TOP_BOTTOM"] = 0] = "TOP_BOTTOM";
/** draw the gradient from the top-right to the bottom-left */
GradientOrientation[GradientOrientation["TR_BL"] = 1] = "TR_BL";
/** draw the gradient from the right to the left */
GradientOrientation[GradientOrientation["RIGHT_LEFT"] = 2] = "RIGHT_LEFT";
/** draw the gradient from the bottom-right to the top-left */
GradientOrientation[GradientOrientation["BR_TL"] = 3] = "BR_TL";
/** draw the gradient from the bottom to the top */
GradientOrientation[GradientOrientation["BOTTOM_TOP"] = 4] = "BOTTOM_TOP";
/** draw the gradient from the bottom-left to the top-right */
GradientOrientation[GradientOrientation["BL_TR"] = 5] = "BL_TR";
/** draw the gradient from the left to the right */
GradientOrientation[GradientOrientation["LEFT_RIGHT"] = 6] = "LEFT_RIGHT";
/** draw the gradient from the top-left to the bottom-right */
GradientOrientation[GradientOrientation["TL_BR"] = 7] = "TL_BR";
})(exports.GradientOrientation || (exports.GradientOrientation = {}));
var __extends$3 = (undefined && undefined.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) { if (b.hasOwnProperty(p)) { d[p] = b[p]; } } };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __decorate$3 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") { r = Reflect.decorate(decorators, target, key, desc); }
else { for (var i = decorators.length - 1; i >= 0; i--) { if (d = decorators[i]) { r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; } } }
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata$3 = (undefined && undefined.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") { return Reflect.metadata(k, v); }
};
var Text = /** @class */ (function (_super) {
__extends$3(Text, _super);
function Text() {
return _super !== null && _super.apply(this, arguments) || this;
}
__decorate$3([
Property,
__metadata$3("design:type", String)
], Text.prototype, "text", void 0);
__decorate$3([
Property,
__metadata$3("design:type", Color)
], Text.prototype, "textColor", void 0);
__decorate$3([
Property,
__metadata$3("design:type", Number)
], Text.prototype, "textSize", void 0);
__decorate$3([
Property,
__metadata$3("design:type", Number)
], Text.prototype, "maxLines", void 0);
__decorate$3([
Property,
__metadata$3("design:type", Gravity)
], Text.prototype, "textAlignment", void 0);
__decorate$3([
Property,
__metadata$3("design:type", String)
], Text.prototype, "fontStyle", void 0);
__decorate$3([
Property,
__metadata$3("design:type", String)
], Text.prototype, "font", void 0);
__decorate$3([
Property,
__metadata$3("design:type", Number)
], Text.prototype, "maxWidth", void 0);
__decorate$3([
Property,
__metadata$3("design:type", Number)
], Text.prototype, "maxHeight", void 0);
__decorate$3([
Property,
__metadata$3("design:type", Number)
], Text.prototype, "lineSpacing", void 0);
return Text;
}(View));
function text(config) {
var ret = new Text;
ret.layoutConfig = layoutConfig().fit();
for (var key in config) {
Reflect.set(ret, key, Reflect.get(config, key, config), ret);
}
return ret;
}
var __extends$4 = (undefined && undefined.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) { if (b.hasOwnProperty(p)) { d[p] = b[p]; } } };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __decorate$4 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") { r = Reflect.decorate(decorators, target, key, desc); }
else { for (var i = decorators.length - 1; i >= 0; i--) { if (d = decorators[i]) { r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; } } }
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata$4 = (undefined && undefined.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") { return Reflect.metadata(k, v); }
};
(function (ScaleType) {
ScaleType[ScaleType["ScaleToFill"] = 0] = "ScaleToFill";
ScaleType[ScaleType["ScaleAspectFit"] = 1] = "ScaleAspectFit";
ScaleType[ScaleType["ScaleAspectFill"] = 2] = "ScaleAspectFill";
})(exports.ScaleType || (exports.ScaleType = {}));
var Image = /** @class */ (function (_super) {
__extends$4(Image, _super);
function Image() {
return _super !== null && _super.apply(this, arguments) || this;
}
__decorate$4([
Property,
__metadata$4("design:type", String)
], Image.prototype, "imageUrl", void 0);
__decorate$4([
Property,
__metadata$4("design:type", String)
], Image.prototype, "imagePath", void 0);
__decorate$4([
Property,
__metadata$4("design:type", String)
], Image.prototype, "imageRes", void 0);
__decorate$4([
Property,
__metadata$4("design:type", String)
], Image.prototype, "imageBase64", void 0);
__decorate$4([
Property,
__metadata$4("design:type", Number)
], Image.prototype, "scaleType", void 0);
__decorate$4([
Property,
__metadata$4("design:type", Boolean)
], Image.prototype, "isBlur", void 0);
__decorate$4([
Property,
__metadata$4("design:type", String)
], Image.prototype, "placeHolderImage", void 0);
__decorate$4([
Property,
__metadata$4("design:type", Color)
], Image.prototype, "placeHolderColor", void 0);
__decorate$4([
Property,
__metadata$4("design:type", String)
], Image.prototype, "errorImage", void 0);
__decorate$4([
Property,
__metadata$4("design:type", Color)
], Image.prototype, "errorColor", void 0);
__decorate$4([
Property,
__metadata$4("design:type", Function)
], Image.prototype, "loadCallback", void 0);
return Image;
}(View));
function image(config) {
var ret = new Image;
ret.layoutConfig = layoutConfig().fit();
for (var key in config) {
Reflect.set(ret, key, Reflect.get(config, key, config), ret);
}
return ret;
}
/*
* Copyright [2019] [Doric.Pub]
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
var __extends$5 = (undefined && undefined.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) { if (b.hasOwnProperty(p)) { d[p] = b[p]; } } };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __decorate$5 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") { r = Reflect.decorate(decorators, target, key, desc); }
else { for (var i = decorators.length - 1; i >= 0; i--) { if (d = decorators[i]) { r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; } } }
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata$5 = (undefined && undefined.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") { return Reflect.metadata(k, v); }
};
var __read = (undefined && undefined.__read) || function (o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) { return o; }
var i = m.call(o), r, ar = [], e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { ar.push(r.value); }
}
catch (error) { e = { error: error }; }
finally {
try {
if (r && !r.done && (m = i["return"])) { m.call(i); }
}
finally { if (e) { throw e.error; } }
}
return ar;
};
var __spread = (undefined && undefined.__spread) || function () {
var arguments$1 = arguments;
for (var ar = [], i = 0; i < arguments.length; i++) { ar = ar.concat(__read(arguments$1[i])); }
return ar;
};
var ListItem = /** @class */ (function (_super) {
__extends$5(ListItem, _super);
function ListItem() {
return _super !== null && _super.apply(this, arguments) || this;
}
__decorate$5([
Property,
__metadata$5("design:type", String)
], ListItem.prototype, "identifier", void 0);
return ListItem;
}(Stack));
var List = /** @class */ (function (_super) {
__extends$5(List, _super);
function List() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.cachedViews = new Map;
_this.ignoreDirtyCallOnce = false;
_this.itemCount = 0;
_this.batchCount = 15;
return _this;
}
List.prototype.allSubviews = function () {
if (this.loadMoreView) {
return __spread(this.cachedViews.values(), [this.loadMoreView]);
}
else {
return this.cachedViews.values();
}
};
List.prototype.reset = function () {
this.cachedViews.clear();
this.itemCount = 0;
};
List.prototype.getItem = function (itemIdx) {
var view = this.renderItem(itemIdx);
view.superview = this;
this.cachedViews.set("" + itemIdx, view);
return view;
};
List.prototype.isDirty = function () {
if (this.ignoreDirtyCallOnce) {
this.ignoreDirtyCallOnce = false;
//Ignore the dirty call once.
return false;
}
return _super.prototype.isDirty.call(this);
};
List.prototype.renderBunchedItems = function (start, length) {
var _this = this;
this.ignoreDirtyCallOnce = true;
return new Array(Math.max(0, Math.min(length, this.itemCount - start))).fill(0).map(function (_, idx) {
var listItem = _this.getItem(start + idx);
return listItem.toModel();
});
};
List.prototype.toModel = function () {
if (this.loadMoreView) {
this.dirtyProps['loadMoreView'] = this.loadMoreView.viewId;
}
return _super.prototype.toModel.call(this);
};
__decorate$5([
Property,
__metadata$5("design:type", Object)
], List.prototype, "itemCount", void 0);
__decorate$5([
Property,
__metadata$5("design:type", Function)
], List.prototype, "renderItem", void 0);
__decorate$5([
Property,
__metadata$5("design:type", Object)
], List.prototype, "batchCount", void 0);
__decorate$5([
Property,
__metadata$5("design:type", Function)
], List.prototype, "onLoadMore", void 0);
__decorate$5([
Property,
__metadata$5("design:type", Boolean)
], List.prototype, "loadMore", void 0);
__decorate$5([
Property,
__metadata$5("design:type", ListItem)
], List.prototype, "loadMoreView", void 0);
__decorate$5([
Property,
__metadata$5("design:type", Function)
], List.prototype, "onScroll", void 0);
__decorate$5([
Property,
__metadata$5("design:type", Function)
], List.prototype, "onScrollEnd", void 0);
return List;
}(Superview));
function list(config) {
var ret = new List;
for (var key in config) {
Reflect.set(ret, key, Reflect.get(config, key, config), ret);
}
return ret;
}
function listItem(item, config) {
return (new ListItem).also(function (it) {
it.layoutConfig = layoutConfig().fit();
if (item instanceof View) {
it.addChild(item);
}
else {
item.forEach(function (e) {
it.addChild(e);
});
}
if (config) {
for (var key in config) {
Reflect.set(it, key, Reflect.get(config, key, config), it);
}
}
});
}
var __extends$6 = (undefined && undefined.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) { if (b.hasOwnProperty(p)) { d[p] = b[p]; } } };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __decorate$6 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") { r = Reflect.decorate(decorators, target, key, desc); }
else { for (var i = decorators.length - 1; i >= 0; i--) { if (d = decorators[i]) { r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; } } }
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata$6 = (undefined && undefined.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") { return Reflect.metadata(k, v); }
};
var SlideItem = /** @class */ (function (_super) {
__extends$6(SlideItem, _super);
function SlideItem() {
return _super !== null && _super.apply(this, arguments) || this;
}
__decorate$6([
Property,
__metadata$6("design:type", String)
], SlideItem.prototype, "identifier", void 0);
return SlideItem;
}(Stack));
var Slider = /** @class */ (function (_super) {
__extends$6(Slider, _super);
function Slider() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.cachedViews = new Map;
_this.ignoreDirtyCallOnce = false;
_this.itemCount = 0;
_this.batchCount = 3;
return _this;
}
Slider.prototype.allSubviews = function () {
return this.cachedViews.values();
};
Slider.prototype.getItem = function (itemIdx) {
var view = this.cachedViews.get("" + itemIdx);
if (view === undefined) {
view = this.renderPage(itemIdx);
view.superview = this;
this.cachedViews.set("" + itemIdx, view);
}
return view;
};
Slider.prototype.isDirty = function () {
if (this.ignoreDirtyCallOnce) {
this.ignoreDirtyCallOnce = false;
//Ignore the dirty call once.
return false;
}
return _super.prototype.isDirty.call(this);
};
Slider.prototype.renderBunchedItems = function (start, length) {
var _this = this;
this.ignoreDirtyCallOnce = true;
return new Array(Math.min(length, this.itemCount - start)).fill(0).map(function (_, idx) {
var slideItem = _this.getItem(start + idx);
return slideItem.toModel();
});
};
Slider.prototype.slidePage = function (context, page, smooth) {
if (smooth === void 0) { smooth = false; }
return this.nativeChannel(context, "slidePage")({ page: page, smooth: smooth });
};
Slider.prototype.getSlidedPage = function (context) {
return this.nativeChannel(context, "getSlidedPage")();
};
__decorate$6([
Property,
__metadata$6("design:type", Object)
], Slider.prototype, "itemCount", void 0);
__decorate$6([
Property,
__metadata$6("design:type", Function)
], Slider.prototype, "renderPage", void 0);
__decorate$6([
Property,
__metadata$6("design:type", Object)
], Slider.prototype, "batchCount", void 0);
__decorate$6([
Property,
__metadata$6("design:type", Function)
], Slider.prototype, "onPageSlided", void 0);
return Slider;
}(Superview));
function slider(config) {
var ret = new Slider;
for (var key in config) {
Reflect.set(ret, key, Reflect.get(config, key, config), ret);
}
return ret;
}
function slideItem(item, config) {
return (new SlideItem).also(function (it) {
it.layoutConfig = layoutConfig().fit();
if (item instanceof View) {
it.addChild(item);
}
else {
item.forEach(function (e) {
it.addChild(e);
});
}
if (config) {
for (var key in config) {
Reflect.set(it, key, Reflect.get(config, key, config), it);
}
}
});
}
var __extends$7 = (undefined && undefined.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) { if (b.hasOwnProperty(p)) { d[p] = b[p]; } } };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __decorate$7 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") { r = Reflect.decorate(decorators, target, key, desc); }
else { for (var i = decorators.length - 1; i >= 0; i--) { if (d = decorators[i]) { r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; } } }
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata$7 = (undefined && undefined.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") { return Reflect.metadata(k, v); }
};
function scroller(content, config) {
return (new Scroller).also(function (v) {
v.layoutConfig = layoutConfig().fit();
if (config) {
for (var key in config) {
Reflect.set(v, key, Reflect.get(config, key, config), v);
}
}
v.content = content;
});
}
var Scroller = /** @class */ (function (_super) {
__extends$7(Scroller, _super);
function Scroller() {
return _super !== null && _super.apply(this, arguments) || this;
}
Scroller.prototype.allSubviews = function () {
return [this.content];
};
Scroller.prototype.toModel = function () {
this.dirtyProps.content = this.content.viewId;
return _super.prototype.toModel.call(this);
};
Scroller.prototype.scrollTo = function (context, offset, animated) {
return this.nativeChannel(context, "scrollTo")({ offset: offset, animated: animated });
};
Scroller.prototype.scrollBy = function (context, offset, animated) {
return this.nativeChannel(context, "scrollBy")({ offset: offset, animated: animated });
};
__decorate$7([
Property,
__metadata$7("design:type", Object)
], Scroller.prototype, "contentOffset", void 0);
__decorate$7([
Property,
__metadata$7("design:type", Function)
], Scroller.prototype, "onScroll", void 0);
__decorate$7([
Property,
__metadata$7("design:type", Function)
], Scroller.prototype, "onScrollEnd", void 0);
return Scroller;
}(Superview));
var __extends$8 = (undefined && undefined.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) { if (b.hasOwnProperty(p)) { d[p] = b[p]; } } };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __decorate$8 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") { r = Reflect.decorate(decorators, target, key, desc); }
else { for (var i = decorators.length - 1; i >= 0; i--) { if (d = decorators[i]) { r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; } } }
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata$8 = (undefined && undefined.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") { return Reflect.metadata(k, v); }
};
var Refreshable = /** @class */ (function (_super) {
__extends$8(Refreshable, _super);
function Refreshable() {
return _super !== null && _super.apply(this, arguments) || this;
}
Refreshable.prototype.allSubviews = function () {
var ret = [this.content];
if (this.header) {
ret.push(this.header);
}
return ret;
};
Refreshable.prototype.setRefreshable = function (context, refreshable) {
return this.nativeChannel(context, 'setRefreshable')(refreshable);
};
Refreshable.prototype.setRefreshing = function (context, refreshing) {
return this.nativeChannel(context, 'setRefreshing')(refreshing);
};
Refreshable.prototype.isRefreshable = function (context) {
return this.nativeChannel(context, 'isRefreshable')();
};
Refreshable.prototype.isRefreshing = function (context) {
return this.nativeChannel(context, 'isRefreshing')();
};
Refreshable.prototype.toModel = function () {
this.dirtyProps.content = this.content.viewId;
this.dirtyProps.header = (this.header || {}).viewId;
return _super.prototype.toModel.call(this);
};
__decorate$8([
Property,
__metadata$8("design:type", Function)
], Refreshable.prototype, "onRefresh", void 0);
return Refreshable;
}(Superview));
function refreshable(config) {
var ret = new Refreshable;
ret.layoutConfig = layoutConfig().fit();
for (var key in config) {
Reflect.set(ret, key, Reflect.get(config, key, config), ret);
}
return ret;
}
function pullable(v, config) {
Reflect.set(v, 'startAnimation', config.startAnimation);
Reflect.set(v, 'stopAnimation', config.stopAnimation);
Reflect.set(v, 'setPullingDistance', config.setPullingDistance);
return v;
}
var __extends$9 = (undefined && undefined.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) { if (b.hasOwnProperty(p)) { d[p] = b[p]; } } };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __decorate$9 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") { r = Reflect.decorate(decorators, target, key, desc); }
else { for (var i = decorators.length - 1; i >= 0; i--) { if (d = decorators[i]) { r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; } } }
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata$9 = (undefined && undefined.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") { return Reflect.metadata(k, v); }
};
var __read$1 = (undefined && undefined.__read) || function (o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) { return o; }
var i = m.call(o), r, ar = [], e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { ar.push(r.value); }
}
catch (error) { e = { error: error }; }
finally {
try {
if (r && !r.done && (m = i["return"])) { m.call(i); }
}
finally { if (e) { throw e.error; } }
}
return ar;
};
var __spread$1 = (undefined && undefined.__spread) || function () {
var arguments$1 = arguments;
for (var ar = [], i = 0; i < arguments.length; i++) { ar = ar.concat(__read$1(arguments$1[i])); }
return ar;
};
var FlowLayoutItem = /** @class */ (function (_super) {
__extends$9(FlowLayoutItem, _super);
function FlowLayoutItem() {
return _super !== null && _super.apply(this, arguments) || this;
}
__decorate$9([
Property,
__metadata$9("design:type", String)
], FlowLayoutItem.prototype, "identifier", void 0);
return FlowLayoutItem;
}(Stack));
var FlowLayout = /** @class */ (function (_super) {
__extends$9(FlowLayout, _super);
function FlowLayout() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.cachedViews = new Map;
_this.ignoreDirtyCallOnce = false;
_this.columnCount = 2;
_this.itemCount = 0;
_this.batchCount = 15;
return _this;
}
FlowLayout.prototype.allSubviews = function () {
if (this.loadMoreView) {
return __spread$1(this.cachedViews.values(), [this.loadMoreView]);
}
else {
return this.cachedViews.values();
}
};
FlowLayout.prototype.reset = function () {
this.cachedViews.clear();
this.itemCount = 0;
};
FlowLayout.prototype.getItem = function (itemIdx) {
var view = this.renderItem(itemIdx);
view.superview = this;
this.cachedViews.set("" + itemIdx, view);
return view;
};
FlowLayout.prototype.isDirty = function () {
if (this.ignoreDirtyCallOnce) {
this.ignoreDirtyCallOnce = false;
//Ignore the dirty call once.
return false;
}
return _super.prototype.isDirty.call(this);
};
FlowLayout.prototype.renderBunchedItems = function (start, length) {
var _this = this;
this.ignoreDirtyCallOnce = true;
return new Array(Math.min(length, this.itemCount - start)).fill(0).map(function (_, idx) {
var listItem = _this.getItem(start + idx);
return listItem.toModel();
});
};
FlowLayout.prototype.toModel = function () {
if (this.loadMoreView) {
this.dirtyProps['loadMoreView'] = this.loadMoreView.viewId;
}
return _super.prototype.toModel.call(this);
};
__decorate$9([
Property,
__metadata$9("design:type", Object)
], FlowLayout.prototype, "columnCount", void 0);
__decorate$9([
Property,
__metadata$9("design:type", Number)
], FlowLayout.prototype, "columnSpace", void 0);
__decorate$9([
Property,
__metadata$9("design:type", Number)
], FlowLayout.prototype, "rowSpace", void 0);
__decorate$9([
Property,
__metadata$9("design:type", Object)
], FlowLayout.prototype, "itemCount", void 0);
__decorate$9([
Property,
__metadata$9("design:type", Function)
], FlowLayout.prototype, "renderItem", void 0);
__decorate$9([
Property,
__metadata$9("design:type", Object)
], FlowLayout.prototype, "batchCount", void 0);
__decorate$9([
Property,
__metadata$9("design:type", Function)
], FlowLayout.prototype, "onLoadMore", void 0);
__decorate$9([
Property,
__metadata$9("design:type", Boolean)
], FlowLayout.prototype, "loadMore", void 0);
__decorate$9([
Property,
__metadata$9("design:type", FlowLayoutItem)
], FlowLayout.prototype, "loadMoreView", void 0);
__decorate$9([
Property,
__metadata$9("design:type", Function)
], FlowLayout.prototype, "onScroll", void 0);
__decorate$9([
Property,
__metadata$9("design:type", Function)
], FlowLayout.prototype, "onScrollEnd", void 0);
return FlowLayout;
}(Superview));
function flowlayout(config) {
var ret = new FlowLayout;
for (var key in config) {
Reflect.set(ret, key, Reflect.get(config, key, config), ret);
}
return ret;
}
function flowItem(item, config) {
return (new FlowLayoutItem).also(function (it) {
it.layoutConfig = layoutConfig().fit();
if (item instanceof View) {
it.addChild(item);
}
else {
item.forEach(function (e) {
it.addChild(e);
});
}
if (config) {
for (var key in config) {
Reflect.set(it, key, Reflect.get(config, key, config), it);
}
}
});
}
var __extends$a = (undefined && undefined.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) { if (b.hasOwnProperty(p)) { d[p] = b[p]; } } };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __decorate$a = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") { r = Reflect.decorate(decorators, target, key, desc); }
else { for (var i = decorators.length - 1; i >= 0; i--) { if (d = decorators[i]) { r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; } } }
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata$a = (undefined && undefined.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") { return Reflect.metadata(k, v); }
};
var Input = /** @class */ (function (_super) {
__extends$a(Input, _super);
function Input() {
return _super !== null && _super.apply(this, arguments) || this;
}
Input.prototype.getText = function (context) {
return this.nativeChannel(context, 'getText')();
};
Input.prototype.setSelection = function (context, start, end) {
if (end === void 0) { end = start; }
return this.nativeChannel(context, 'setSelection')({
start: start,
end: end,
});
};
Input.prototype.requestFocus = function (context) {
return this.nativeChannel(context, 'requestFocus')();
};
Input.prototype.releaseFocus = function (context) {
return this.nativeChannel(context, 'releaseFocus')();
};
__decorate$a([
Property,
__metadata$a("design:type", String)
], Input.prototype, "text", void 0);
__decorate$a([
Property,
__metadata$a("design:type", Color)
], Input.prototype, "textColor", void 0);
__decorate$a([
Property,
__metadata$a("design:type", Number)
], Input.prototype, "textSize", void 0);
__decorate$a([
Property,
__metadata$a("design:type", String)
], Input.prototype, "hintText", void 0);
__decorate$a([
Property,
__metadata$a("design:type", Color)
], Input.prototype, "hintTextColor", void 0);
__decorate$a([
Property,
__metadata$a("design:type", Boolean)
], Input.prototype, "multiline", void 0);
__decorate$a([
Property,
__metadata$a("design:type", Gravity)
], Input.prototype, "textAlignment", void 0);
__decorate$a([
Property,
__metadata$a("design:type", Function)
], Input.prototype, "onTextChange", void 0);
__decorate$a([
Property,
__metadata$a("design:type", Function)
], Input.prototype, "onFocusChange", void 0);
return Input;
}(View));
function input(config) {
var ret = new Input;
ret.layoutConfig = layoutConfig().just();
for (var key in config) {
Reflect.set(ret, key, Reflect.get(config, key, config), ret);
}
return ret;
}
var __extends$b = (undefined && undefined.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) { if (b.hasOwnProperty(p)) { d[p] = b[p]; } } };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __decorate$b = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") { r = Reflect.decorate(decorators, target, key, desc); }
else { for (var i = decorators.length - 1; i >= 0; i--) { if (d = decorators[i]) { r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; } } }
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata$b = (undefined && undefined.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") { return Reflect.metadata(k, v); }
};
var NestedSlider = /** @class */ (function (_super) {
__extends$b(NestedSlider, _super);
function NestedSlider() {
return _super !== null && _super.apply(this, arguments) || this;
}
NestedSlider.prototype.addSlideItem = function (view) {
this.addChild(view);
};
NestedSlider.prototype.slidePage = function (context, page, smooth) {
if (smooth === void 0) { smooth = false; }
return this.nativeChannel(context, "slidePage")({ page: page, smooth: smooth });
};
NestedSlider.prototype.getSlidedPage = function (context) {
return this.nativeChannel(context, "getSlidedPage")();
};
__decorate$b([
Property,
__metadata$b("design:type", Function)
], NestedSlider.prototype, "onPageSlided", void 0);
return NestedSlider;
}(Group));
var __extends$c = (undefined && undefined.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) { if (b.hasOwnProperty(p)) { d[p] = b[p]; } } };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __decorate$c = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") { r = Reflect.decorate(decorators, target, key, desc); }
else { for (var i = decorators.length - 1; i >= 0; i--) { if (d = decorators[i]) { r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; } } }
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata$c = (undefined && undefined.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") { return Reflect.metadata(k, v); }
};
var Draggable = /** @class */ (function (_super) {
__extends$c(Draggable, _super);
function Draggable() {
return _super !== null && _super.apply(this, arguments) || this;
}
__decorate$c([
Property,
__metadata$c("design:type", Function)
], Draggable.prototype, "onDrag", void 0);
return Draggable;
}(Stack));
function draggable(views, config) {
var ret = new Draggable;
ret.layoutConfig = layoutConfig().fit();
if (views instanceof View) {
ret.addChild(views);
}
else {
views.forEach(function (e) {
ret.addChild(e);
});
}
if (config) {
for (var key in config) {
Reflect.set(ret, key, Reflect.get(config, key, config), ret);
}
}
return ret;
}
var __extends$d = (undefined && undefined.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) { if (b.hasOwnProperty(p)) { d[p] = b[p]; } } };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __decorate$d = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") { r = Reflect.decorate(decorators, target, key, desc); }
else { for (var i = decorators.length - 1; i >= 0; i--) { if (d = decorators[i]) { r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; } } }
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata$d = (undefined && undefined.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") { return Reflect.metadata(k, v); }
};
var Switch = /** @class */ (function (_super) {
__extends$d(Switch, _super);
function Switch() {
return _super !== null && _super.apply(this, arguments) || this;
}
__decorate$d([
Property,
__metadata$d("design:type", Boolean)
], Switch.prototype, "state", void 0);
__decorate$d([
Property,
__metadata$d("design:type", Function)
], Switch.prototype, "onSwitch", void 0);
__decorate$d([
Property,
__metadata$d("design:type", Color)
], Switch.prototype, "offTintColor", void 0);
__decorate$d([
Property,
__metadata$d("design:type", Color)
], Switch.prototype, "onTintColor", void 0);
__decorate$d([
Property,
__metadata$d("design:type", Color)
], Switch.prototype, "thumbTintColor", void 0);
return Switch;
}(View));
function switchView(config) {
var ret = new Switch;
ret.layoutConfig = layoutConfig().just();
ret.width = 50;
ret.height = 30;
for (var key in config) {
Reflect.set(ret, key, Reflect.get(config, key, config), ret);
}
return ret;
}
function modal(context) {
return {
toast: function (msg, gravity) {
if (gravity === void 0) { gravity = Gravity.Bottom; }
context.callNative('modal', 'toast', {
msg: msg,
gravity: gravity.toModel(),
});
},
alert: function (arg) {
if (typeof arg === 'string') {
return context.callNative('modal', 'alert', { msg: arg });
}
else {
return context.callNative('modal', 'alert', arg);
}
},
confirm: function (arg) {
if (typeof arg === 'string') {
return context.callNative('modal', 'confirm', { msg: arg });
}
else {
return context.callNative('modal', 'confirm', arg);
}
},
prompt: function (arg) {
return context.callNative('modal', 'prompt', arg);
},
};
}
function navbar(context) {
var entity = context.entity;
var panel = undefined;
if (entity instanceof Panel) {
panel = entity;
}
return {
isHidden: function () {
return context.callNative('navbar', 'isHidden');
},
setHidden: function (hidden) {
return context.callNative('navbar', 'setHidden', { hidden: hidden, });
},
setTitle: function (title) {
return context.callNative('navbar', 'setTitle', { title: title, });
},
setBgColor: function (color) {
return context.callNative('navbar', 'setBgColor', { color: color.toModel(), });
},
setLeft: function (view) {
if (panel) {
panel.clearHeadViews("navbar_left");
panel.addHeadView("navbar_left", view);
}
return context.callNative('navbar', 'setLeft', view.toModel());
},
setRight: function (view) {
if (panel) {
panel.clearHeadViews("navbar_right");
panel.addHeadView("navbar_right", view);
}
return context.callNative('navbar', 'setRight', view.toModel());
}
};
}
function navigator(context) {
return {
push: function (source, config) {
if (config && config.extra) {
config.extra = JSON.stringify(config.extra);
}
return context.callNative('navigator', 'push', {
source: source, config: config
});
},
pop: function (animated) {
if (animated === void 0) { animated = true; }
return context.callNative('navigator', 'pop', { animated: animated });
},
};
}
function transformRequest(request) {
var url = request.url || "";
if (request.params !== undefined) {
var queryStrings = [];
for (var key in request.params) {
queryStrings.push(key + "=" + encodeURIComponent(request.params[key]));
}
request.url = "" + request.url + (url.indexOf('?') >= 0 ? '&' : '?') + queryStrings.join('&');
}
if (typeof request.data === 'object') {
request.data = JSON.stringify(request.data);
}
return request;
}
function network(context) {
return {
request: function (config) {
return context.callNative('network', 'request', transformRequest(config));
},
get: function (url, config) {
var finalConfig = config;
if (finalConfig === undefined) {
finalConfig = {};
}
finalConfig.url = url;
finalConfig.method = "get";
return context.callNative('network', 'request', transformRequest(finalConfig));
},
post: function (url, data, config) {
var finalConfig = config;
if (finalConfig === undefined) {
finalConfig = {};
}
finalConfig.url = url;
finalConfig.method = "post";
if (data !== undefined) {
finalConfig.data = data;
}
return context.callNative('network', 'request', transformRequest(finalConfig));
},
put: function (url, data, config) {
var finalConfig = config;
if (finalConfig === undefined) {
finalConfig = {};
}
finalConfig.url = url;
finalConfig.method = "put";
if (data !== undefined) {
finalConfig.data = data;
}
return context.callNative('network', 'request', transformRequest(finalConfig));
},
delete: function (url, data, config) {
var finalConfig = config;
if (finalConfig === undefined) {
finalConfig = {};
}
finalConfig.url = url;
finalConfig.method = "delete";
return context.callNative('network', 'request', transformRequest(finalConfig));
},
};
}
function storage(context) {
return {
setItem: function (key, value, zone) {
return context.callNative('storage', 'setItem', { key: key, value: value, zone: zone });
},
getItem: function (key, zone) {
return context.callNative('storage', 'getItem', { key: key, zone: zone });
},
remove: function (key, zone) {
return context.callNative('storage', 'remove', { key: key, zone: zone });
},
clear: function (zone) {
return context.callNative('storage', 'clear', { zone: zone });
},
};
}
function popover(context) {
var entity = context.entity;
var panel = undefined;
if (entity instanceof Panel) {
panel = entity;
}
return {
show: function (view) {
if (panel) {
panel.addHeadView("popover", view);
}
return context.callNative('popover', 'show', view.toModel());
},
dismiss: function (view) {
if (view === void 0) { view = undefined; }
if (panel) {
if (view) {
panel.removeHeadView("popover", view);
}
else {
panel.clearHeadViews("popover");
}
}
return context.callNative('popover', 'dismiss', view ? { id: view.viewId } : undefined);
},
};
}
/*
* Copyright [2019] [Doric.Pub]
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
function take(target) {
return function (block) {
block(target);
};
}
function takeNonNull(target) {
return function (block) {
if (target !== undefined) {
return block(target);
}
};
}
function takeNull(target) {
return function (block) {
if (target === undefined) {
return block();
}
};
}
function takeLet(target) {
return function (block) {
return block(target);
};
}
function takeAlso(target) {
return function (block) {
block(target);
return target;
};
}
function takeIf(target) {
return function (predicate) {
return predicate(target) ? target : undefined;
};
}
function takeUnless(target) {
return function (predicate) {
return predicate(target) ? undefined : target;
};
}
function repeat(action) {
return function (times) {
for (var i = 0; i < times; i++) {
action(i);
}
};
}
var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (undefined && undefined.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) { throw t[1]; } return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) { throw new TypeError("Generator is already executing."); }
while (_) { try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) { return t; }
if (y = 0, t) { op = [op[0] & 2, t.value]; }
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) { _.ops.pop(); }
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } }
if (op[0] & 5) { throw op[1]; } return { value: op[0] ? op[1] : void 0, done: true };
}
};
var __values$4 = (undefined && undefined.__values) || function(o) {
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
if (m) { return m.call(o); }
if (o && typeof o.length === "number") { return {
next: function () {
if (o && i >= o.length) { o = void 0; }
return { value: o && o[i++], done: !o };
}
}; }
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
};
/**
* Only supports x,y,width,height,corner(just for four corners),rotation,bgColor,
* @param panel @see Panel
*/
function animate(context) {
var _this = this;
var entity = context.entity;
if (entity instanceof Panel) {
var panel_1 = entity;
return function (args) { return __awaiter(_this, void 0, void 0, function () {
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, context.callNative('animate', 'submit')];
case 1:
_a.sent();
args.animations();
return [2 /*return*/, takeLet(panel_1.getRootView())(function (root) {
var e_1, _a, e_2, _b;
if (root.isDirty()) {
var model = root.toModel();
model.duration = args.duration;
var ret = context.callNative('animate', 'animateRender', model);
root.clean();
return ret;
}
try {
for (var _c = __values$4(panel_1.allHeadViews()), _d = _c.next(); !_d.done; _d = _c.next()) {
var map = _d.value;
try {
for (var _e = (e_2 = void 0, __values$4(map.values())), _f = _e.next(); !_f.done; _f = _e.next()) {
var v = _f.value;
if (v.isDirty()) {
var model_1 = v.toModel();
var ret_1 = context.callNative('animate', 'animateRender', model_1);
v.clean();
return ret_1;
}
}
}
catch (e_2_1) { e_2 = { error: e_2_1 }; }
finally {
try {
if (_f && !_f.done && (_b = _e.return)) { _b.call(_e); }
}
finally { if (e_2) { throw e_2.error; } }
}
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (_d && !_d.done && (_a = _c.return)) { _a.call(_c); }
}
finally { if (e_1) { throw e_1.error; } }
}
throw new Error('Cannot find any animated elements');
})];
}
});
}); };
}
else {
return function (args) {
return Promise.reject("Cannot find panel in Context:" + context.id);
};
}
}
function notification(context) {
return {
publish: function (args) {
if (args.data !== undefined) {
args.data = JSON.stringify(args.data);
}
return context.callNative('notification', 'publish', args);
},
subscribe: function (args) {
args.callback = context.function2Id(args.callback);
return context.callNative('notification', 'subscribe', args);
},
unsubscribe: function (subscribeId) {
context.removeFuncById(subscribeId);
return context.callNative('notification', 'unsubscribe', subscribeId);
}
};
}
(function (StatusBarMode) {
StatusBarMode[StatusBarMode["LIGHT"] = 0] = "LIGHT";
StatusBarMode[StatusBarMode["DARK"] = 1] = "DARK";
})(exports.StatusBarMode || (exports.StatusBarMode = {}));
function statusbar(context) {
return {
setHidden: function (hidden) {
return context.callNative('statusbar', 'setHidden', { hidden: hidden });
},
setMode: function (mode) {
return context.callNative('statusbar', 'setMode', { mode: mode });
},
setColor: function (color) {
return context.callNative('statusbar', 'setColor', { color: color.toModel() });
},
};
}
function viewIdChains(view) {
var viewIds = [];
var thisView = view;
while (thisView != undefined) {
viewIds.push(thisView.viewId);
thisView = thisView.superview;
}
return viewIds.reverse();
}
function coordinator(context) {
return {
verticalScrolling: function (argument) {
if (context.entity instanceof Panel) {
var panel = context.entity;
panel.addOnRenderFinishedCallback(function () {
argument.scrollable = viewIdChains(argument.scrollable);
if (argument.target instanceof View) {
argument.target = viewIdChains(argument.target);
}
if (argument.changing.start instanceof Color) {
argument.changing.start = argument.changing.start.toModel();
}
if (argument.changing.end instanceof Color) {
argument.changing.end = argument.changing.end.toModel();
}
context.callNative("coordinator", "verticalScrolling", argument);
});
}
}
};
}
function notch(context) {
return {
inset: function () {
return context.callNative('notch', 'inset', {});
}
};
}
var __values$5 = (undefined && undefined.__values) || function(o) {
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
if (m) { return m.call(o); }
if (o && typeof o.length === "number") { return {
next: function () {
if (o && i >= o.length) { o = void 0; }
return { value: o && o[i++], done: !o };
}
}; }
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
};
var Observable = /** @class */ (function () {
function Observable(provider, clz) {
this.observers = new Set;
this.provider = provider;
this.clz = clz;
}
Observable.prototype.addObserver = function (observer) {
this.observers.add(observer);
};
Observable.prototype.removeObserver = function (observer) {
this.observers.delete(observer);
};
Observable.prototype.update = function (updater) {
var e_1, _a;
var oldV = this.provider.acquire(this.clz);
var newV = updater(oldV);
if (newV !== undefined) {
this.provider.provide(newV);
}
try {
for (var _b = __values$5(this.observers), _c = _b.next(); !_c.done; _c = _b.next()) {
var observer = _c.value;
observer(newV);
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (_c && !_c.done && (_a = _b.return)) { _a.call(_b); }
}
finally { if (e_1) { throw e_1.error; } }
}
};
return Observable;
}());
var Provider = /** @class */ (function () {
function Provider() {
this.provision = new Map;
this.observableMap = new Map;
}
Provider.prototype.provide = function (obj) {
this.provision.set(obj.constructor, obj);
};
Provider.prototype.acquire = function (clz) {
var ret = this.provision.get(clz);
return ret;
};
Provider.prototype.remove = function (clz) {
this.provision.delete(clz);
};
Provider.prototype.clear = function () {
this.provision.clear();
};
Provider.prototype.observe = function (clz) {
var observable = this.observableMap.get(clz);
if (observable === undefined) {
observable = new Observable(this, clz);
this.observableMap.set(clz, observable);
}
return observable;
};
return Provider;
}());
var __extends$e = (undefined && undefined.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) { if (b.hasOwnProperty(p)) { d[p] = b[p]; } } };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var ViewHolder = /** @class */ (function () {
function ViewHolder() {
}
return ViewHolder;
}());
var ViewModel = /** @class */ (function () {
function ViewModel(obj, v) {
this.state = obj;
this.viewHolder = v;
}
ViewModel.prototype.getState = function () {
return this.state;
};
ViewModel.prototype.getViewHolder = function () {
return this.viewHolder;
};
ViewModel.prototype.updateState = function (setter) {
setter(this.state);
this.onBind(this.state, this.viewHolder);
};
ViewModel.prototype.attach = function (view) {
this.viewHolder.build(view);
this.onAttached(this.state, this.viewHolder);
this.onBind(this.state, this.viewHolder);
};
return ViewModel;
}());
var VMPanel = /** @class */ (function (_super) {
__extends$e(VMPanel, _super);
function VMPanel() {
return _super !== null && _super.apply(this, arguments) || this;
}
VMPanel.prototype.getViewModel = function () {
return this.vm;
};
VMPanel.prototype.build = function (root) {
this.vh = new (this.getViewHolderClass());
this.vm = new (this.getViewModelClass())(this.getState(), this.vh);
this.vm.attach(root);
};
return VMPanel;
}(Panel));
exports.AnimationSet = AnimationSet;
exports.BOTTOM = BOTTOM;
exports.CENTER = CENTER;
exports.CENTER_X = CENTER_X;
exports.CENTER_Y = CENTER_Y;
exports.Color = Color;
exports.Draggable = Draggable;
exports.FlowLayout = FlowLayout;
exports.FlowLayoutItem = FlowLayoutItem;
exports.Gravity = Gravity;
exports.Group = Group;
exports.HLayout = HLayout;
exports.Image = Image;
exports.Input = Input;
exports.LEFT = LEFT;
exports.LayoutConfigImpl = LayoutConfigImpl;
exports.List = List;
exports.ListItem = ListItem;
exports.Mutable = Mutable;
exports.NativeCall = NativeCall;
exports.NestedSlider = NestedSlider;
exports.Observable = Observable;
exports.Panel = Panel;
exports.Property = Property;
exports.Provider = Provider;
exports.RIGHT = RIGHT;
exports.Refreshable = Refreshable;
exports.Root = Root;
exports.RotationAnimation = RotationAnimation;
exports.ScaleAnimation = ScaleAnimation;
exports.Scroller = Scroller;
exports.SlideItem = SlideItem;
exports.Slider = Slider;
exports.Stack = Stack;
exports.Superview = Superview;
exports.Switch = Switch;
exports.TOP = TOP;
exports.Text = Text;
exports.TranslationAnimation = TranslationAnimation;
exports.VLayout = VLayout;
exports.VMPanel = VMPanel;
exports.View = View;
exports.ViewHolder = ViewHolder;
exports.ViewModel = ViewModel;
exports.animate = animate;
exports.coordinator = coordinator;
exports.draggable = draggable;
exports.flowItem = flowItem;
exports.flowlayout = flowlayout;
exports.gravity = gravity;
exports.hlayout = hlayout;
exports.image = image;
exports.input = input;
exports.layoutConfig = layoutConfig;
exports.list = list;
exports.listItem = listItem;
exports.log = log;
exports.loge = loge;
exports.logw = logw;
exports.modal = modal;
exports.navbar = navbar;
exports.navigator = navigator;
exports.network = network;
exports.notch = notch;
exports.notification = notification;
exports.obj2Model = obj2Model;
exports.popover = popover;
exports.pullable = pullable;
exports.refreshable = refreshable;
exports.repeat = repeat;
exports.scroller = scroller;
exports.slideItem = slideItem;
exports.slider = slider;
exports.stack = stack;
exports.statusbar = statusbar;
exports.storage = storage;
exports.switchView = switchView;
exports.take = take;
exports.takeAlso = takeAlso;
exports.takeIf = takeIf;
exports.takeLet = takeLet;
exports.takeNonNull = takeNonNull;
exports.takeNull = takeNull;
exports.takeUnless = takeUnless;
exports.text = text;
exports.uniqueId = uniqueId;
exports.vlayout = vlayout;