devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
58 lines (57 loc) • 1.8 kB
JavaScript
/**
* DevExtreme (esm/core/templates/template_base.js)
* Version: 23.2.6
* Build date: Wed May 01 2024
*
* Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
import $ from "../renderer";
import domAdapter from "../dom_adapter";
import Callbacks from "../utils/callbacks";
import {
contains
} from "../utils/dom";
import {
triggerShownEvent
} from "../../events/visibility_change";
import errors from "../errors";
export var renderedCallbacks = Callbacks({
syncStrategy: true
});
export class TemplateBase {
render(options) {
options = options || {};
var onRendered = options.onRendered;
delete options.onRendered;
var $result;
if (options.renovated && options.transclude && this._element) {
$result = $("<div>").append(this._element).contents()
} else {
$result = this._renderCore(options)
}
this._ensureResultInContainer($result, options.container);
renderedCallbacks.fire($result, options.container);
onRendered && onRendered();
return $result
}
_ensureResultInContainer($result, container) {
if (!container) {
return
}
var $container = $(container);
var resultInContainer = contains($container.get(0), $result.get(0));
$container.append($result);
if (resultInContainer) {
return
}
var resultInBody = domAdapter.getBody().contains($container.get(0));
if (!resultInBody) {
return
}
triggerShownEvent($result)
}
_renderCore() {
throw errors.Error("E0001")
}
}