devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
63 lines (47 loc) • 1.5 kB
JavaScript
"use strict";
var $ = require("../../core/renderer"),
domAdapter = require("../../core/dom_adapter"),
Callbacks = require("../../core/utils/callbacks"),
domUtils = require("../../core/utils/dom"),
Class = require("../../core/class"),
abstract = Class.abstract;
var renderedCallbacks = Callbacks();
/**
* @name dxTemplate
* @section uiWidgetMarkupComponents
* @publicName dxTemplate
* @type object
*/
/**
* @name dxTemplateOptions.name
* @publicName name
* @type string
*/
var TemplateBase = Class.inherit({
render: function render(options) {
options = options || {};
var $result = this._renderCore(options);
this._ensureResultInContainer($result, options.container);
renderedCallbacks.fire($result, options.container);
return $result;
},
_ensureResultInContainer: function _ensureResultInContainer($result, container) {
if (!container) {
return;
}
var $container = $(container);
var resultInContainer = domUtils.contains($container.get(0), $result.get(0));
$container.append($result);
if (resultInContainer) {
return;
}
var resultInBody = domAdapter.getBody().contains($container.get(0));
if (!resultInBody) {
return;
}
domUtils.triggerShownEvent($result);
},
_renderCore: abstract
});
module.exports = TemplateBase;
module.exports.renderedCallbacks = renderedCallbacks;