elmer-ui-core
Version:
web app framework
103 lines (102 loc) • 4.84 kB
JavaScript
;
var __extends = (this && this.__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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __decorate = (this && this.__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 = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.removeResize = exports.addResize = exports.ElmerUI = void 0;
var elmer_common_1 = require("elmer-common");
var globalUtil_1 = require("../init/globalUtil");
var injectable_1 = require("../inject/injectable");
var Component_1 = require("./Component");
var ElmerDom_1 = require("./ElmerDom");
var ElmerRender_1 = require("./ElmerRender");
var ElmerResize_1 = require("./ElmerResize");
var ElmerUI = (function (_super) {
__extends(ElmerUI, _super);
function ElmerUI() {
var _this = _super.call(this) || this;
if (document && document.body && !_this.$.hasClass(document.body, "elmerTheme")) {
_this.$.addClass(document.body, "elmerTheme");
}
return _this;
}
ElmerUI.prototype.render = function (target, htmlCode, bindComponent, options) {
if (this.isDOM(target)) {
var ignorePropKeys = ["selector", "template", "model", "service", "i18n", "connect", "setData", "setState", "render",
"$after", "$onPropsChanged", "$afterVirtualRender", "$afterDiff", "$beforeVirtualRender", "$beforeDiff", "$init",
"$inject", "$before", "$resize", "$dispose"];
var handler = bindComponent || {};
var defaultProps = handler.props || {};
this.extend(handler, elmer_common_1.Common.prototype);
this.extend(handler, Component_1.Component.prototype, true, ignorePropKeys);
this.defineReadOnlyProperty(handler, "props", defaultProps);
var render = new ElmerRender_1.ElmerRender({
component: handler,
context: {
renderStore: {
options: options
}
},
htmlCode: htmlCode,
uiRenderOptions: options,
virtualId: "root",
virtualTarget: target
});
handler.dom = {};
handler["render"] = function () {
return htmlCode;
};
if (!globalUtil_1.getGlobalState("renderOptions")) {
globalUtil_1.defineGlobalState("renderOptions", options || {});
}
render.render(true);
if (options && options.isRSV) {
this.setValue(globalUtil_1.getGlobalState("renderOptions"), "rsvAttachDom", true);
}
typeof handler.$didMount === "function" && handler.$didMount();
return render;
}
else {
console.error("render方法指定参数target不是一个有效的dom", target, htmlCode);
}
};
__decorate([
injectable_1.autowired(ElmerDom_1.ElmerDOM),
__metadata("design:type", ElmerDom_1.ElmerDOM)
], ElmerUI.prototype, "$", void 0);
return ElmerUI;
}(elmer_common_1.Common));
exports.ElmerUI = ElmerUI;
var addResize = function (id, callBack) {
var sender = new ElmerResize_1.WindowResizeListen();
var liseners = sender.getEventListener();
liseners[id] = callBack;
elmerData.resizeListeners = liseners;
};
exports.addResize = addResize;
var removeResize = function (id) {
var sender = new ElmerResize_1.WindowResizeListen();
sender.remove(id);
};
exports.removeResize = removeResize;