devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
44 lines (43 loc) • 1.44 kB
JavaScript
/**
* DevExtreme (esm/__internal/core/templates/m_template.js)
* Version: 24.2.6
* Build date: Mon Mar 17 2025
*
* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
import $ from "../../../core/renderer";
import {
TemplateBase
} from "../../../core/templates/template_base";
import {
getCurrentTemplateEngine,
registerTemplateEngine,
setTemplateEngine
} from "../../../core/templates/template_engine_registry";
import {
normalizeTemplateElement
} from "../../../core/utils/dom";
registerTemplateEngine("default", {
compile: element => normalizeTemplateElement(element),
render: (template, model, index) => template.clone()
});
setTemplateEngine("default");
export class Template extends TemplateBase {
constructor(element) {
super();
this._element = element
}
_renderCore(options) {
const {
transclude: transclude
} = options;
if (!transclude && !this._compiledTemplate) {
this._compiledTemplate = getCurrentTemplateEngine().compile(this._element)
}
return $("<div>").append(transclude ? this._element : getCurrentTemplateEngine().render(this._compiledTemplate, options.model, options.index)).contents()
}
source() {
return $(this._element).clone()
}
}