UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

76 lines (74 loc) 2.77 kB
/** * DevExtreme (cjs/__internal/integration/knockout/clean_node_old.js) * Version: 25.2.3 * Build date: Fri Dec 12 2025 * * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/ */ "use strict"; var _m_element_data = require("../../core/m_element_data"); var _m_version = require("../../core/utils/m_version"); var _knockout = _interopRequireDefault(require("knockout")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e } } if (_knockout.default) { const patchCleanData = function(jQuery) { const cleanKoData = function(element, andSelf) { const cleanNode = function() { _knockout.default.cleanNode(this) }; if (andSelf) { element.each(cleanNode) } else { element.find("*").each(cleanNode) } }; const originalEmpty = jQuery.fn.empty; jQuery.fn.empty = function() { cleanKoData(this, false); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key] } return originalEmpty.apply(this, args) }; const originalRemove = jQuery.fn.remove; jQuery.fn.remove = function(selector, keepData) { if (!keepData) { let subject = this; if (selector) { subject = subject.filter(selector) } cleanKoData(subject, true) } return originalRemove.call(this, selector, keepData) }; const originalHtml = jQuery.fn.html; jQuery.fn.html = function(value) { if ("string" === typeof value) { cleanKoData(this, false) } return originalHtml.apply(this, arguments) }; const originalReplaceWith = jQuery.fn.replaceWith; jQuery.fn.replaceWith = function() { for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { args[_key2] = arguments[_key2] } const result = originalReplaceWith.apply(this, args); if (!this.parent().length) { cleanKoData(this, true) } return result } }; _m_element_data.strategyChanging.add((strategy => { const isJQuery = !!strategy.fn; if (isJQuery && (0, _m_version.compare)(strategy.fn.jquery, [2, 0]) < 0) { patchCleanData(strategy) } })) }