@web-atoms/core-docs
Version:
155 lines • 6.6 kB
JavaScript
var __awaiter = (this && this.__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());
});
};
(function (factory) {
if (typeof module === "object" && typeof module.exports === "object") {
var v = factory(require, exports);
if (v !== undefined) module.exports = v;
}
else if (typeof define === "function" && define.amd) {
define(["require", "exports", "../../core/AtomBinder", "../../core/AtomBridge", "../../core/AtomComponent", "../../di/TypeKey", "../../services/NavigationService", "../../web/styles/AtomStyle", "../../web/styles/AtomStyleSheet"], factory);
}
})(function (require, exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.AtomXFControl = void 0;
const AtomBinder_1 = require("../../core/AtomBinder");
const AtomBridge_1 = require("../../core/AtomBridge");
const AtomComponent_1 = require("../../core/AtomComponent");
const TypeKey_1 = require("../../di/TypeKey");
const NavigationService_1 = require("../../services/NavigationService");
const AtomStyle_1 = require("../../web/styles/AtomStyle");
const AtomStyleSheet_1 = require("../../web/styles/AtomStyleSheet");
UMD.defaultApp = "@web-atoms/core/dist/xf/XFApp";
UMD.viewPrefix = "xf";
AtomBridge_1.AtomBridge.platform = "xf";
const defaultStyleSheets = {};
class AtomXFControl extends AtomComponent_1.AtomComponent {
get controlStyle() {
if (this.mControlStyle === undefined) {
const key = TypeKey_1.TypeKey.get(this.defaultControlStyle || this.constructor);
this.mControlStyle = defaultStyleSheets[key];
if (this.mControlStyle) {
return this.mControlStyle;
}
if (this.defaultControlStyle) {
this.mControlStyle = defaultStyleSheets[key] ||
(defaultStyleSheets[key] = this.theme.createNamedStyle(this.defaultControlStyle, key, 0));
}
this.mControlStyle = this.mControlStyle || null;
}
return this.mControlStyle;
}
set controlStyle(v) {
if (v instanceof AtomStyle_1.AtomStyle) {
this.mControlStyle = v;
}
else {
const key = TypeKey_1.TypeKey.get(v);
this.mControlStyle = defaultStyleSheets[key] ||
(defaultStyleSheets[key] = this.theme.createNamedStyle(v, key, 0));
}
AtomBinder_1.AtomBinder.refreshValue(this, "controlStyle");
// this.invalidate();
}
get theme() {
return this.mTheme ||
this.mCachedTheme ||
(this.mCachedTheme = (this.parent ? this.parent.theme : this.app.resolve(AtomStyleSheet_1.AtomStyleSheet, false, null)));
}
get parent() {
let e = this.element;
e = e.parent;
while (e) {
const ac = e.atomControl;
if (ac) {
return ac;
}
e = e.parent;
}
}
atomParent(e) {
// return AtomBridge.instance.atomParent(e, false) as any;
let e1 = e;
while (e1) {
const ac = e1.atomControl;
if (ac) {
return ac;
}
e1 = e1.parent;
}
}
append(element) {
this.element.appendChild(element.element || element);
return this;
}
// public dispose(e?: IAtomElement): void {
// const el = this.element;
// super.dispose(e);
// AtomBridge.instance.dispose(el);
// }
invokeEvent(event) {
AtomBridge_1.AtomBridge.instance.invokeEvent(this.element, event.type, event);
}
staticResource(name) {
return AtomBridge_1.AtomBridge.instance.getStaticResource(this.element, name);
}
loadXaml(text) {
AtomBridge_1.AtomBridge.instance.loadXaml(this.element, text);
}
setElementValue(element, name, value) {
if (/^event/.test(name)) {
this.bindEvent(element, name.substr(5), () => __awaiter(this, void 0, void 0, function* () {
try {
const p = value();
if (p) {
yield p;
}
}
catch (e) {
if (/canceled|cancelled/i.test(e)) {
return;
}
const nav = this.app.resolve(NavigationService_1.NavigationService);
nav.alert(e, "Error").catch(() => {
// nothing...
});
}
}));
return;
}
if (/^(class|styleClass)$/i.test(name)) {
let classes;
if (typeof value === "object") {
classes = [];
for (const key in value) {
if (value.hasOwnProperty(key)) {
const e1 = value[key];
if (e1) {
classes.push(key);
}
}
}
}
else {
classes = value.toString().split(" ");
}
value = classes.join(",");
}
AtomBridge_1.AtomBridge.instance.setValue(element, name, value);
}
}
exports.AtomXFControl = AtomXFControl;
bridge.controlFactory = AtomXFControl;
global.CustomEvent = function (type, { detail }) {
this.type = type;
this.detail = detail;
};
});
//# sourceMappingURL=AtomXFControl.js.map