| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 |
- /**
- * DevExtreme (core/dom_adapter.js)
- * Version: 19.1.16
- * Build date: Tue Oct 18 2022
- *
- * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED
- * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
- */
- "use strict";
- var _dependency_injector = require("./utils/dependency_injector");
- var _dependency_injector2 = _interopRequireDefault(_dependency_injector);
- var _common = require("./utils/common");
- function _interopRequireDefault(obj) {
- return obj && obj.__esModule ? obj : {
- "default": obj
- }
- }
- function _typeof(obj) {
- "@babel/helpers - typeof";
- return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) {
- return typeof obj
- } : function(obj) {
- return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj
- }, _typeof(obj)
- }
- var ELEMENT_NODE = 1;
- var TEXT_NODE = 3;
- var DOCUMENT_NODE = 9;
- var nativeDOMAdapterStrategy = {
- querySelectorAll: function(element, selector) {
- return element.querySelectorAll(selector)
- },
- elementMatches: function(element, selector) {
- var _this = this;
- var matches = element.matches || element.matchesSelector || element.mozMatchesSelector || element.msMatchesSelector || element.oMatchesSelector || element.webkitMatchesSelector || function(selector) {
- var doc = element.document || element.ownerDocument;
- if (!doc) {
- return false
- }
- var items = _this.querySelectorAll(doc, selector);
- for (var i = 0; i < items.length; i++) {
- if (items[i] === element) {
- return true
- }
- }
- };
- return matches.call(element, selector)
- },
- createElement: function(tagName, context) {
- context = context || this._document;
- return context.createElement(tagName)
- },
- createElementNS: function(ns, tagName, context) {
- context = context || this._document;
- return context.createElementNS(ns, tagName)
- },
- createTextNode: function(text, context) {
- context = context || this._document;
- return context.createTextNode(text)
- },
- isNode: function(element) {
- return "object" === _typeof(element) && "nodeType" in element
- },
- isElementNode: function(element) {
- return element && element.nodeType === ELEMENT_NODE
- },
- isTextNode: function(element) {
- return element && element.nodeType === TEXT_NODE
- },
- isDocument: function(element) {
- return element && element.nodeType === DOCUMENT_NODE
- },
- removeElement: function(element) {
- var parentNode = element && element.parentNode;
- if (parentNode) {
- parentNode.removeChild(element)
- }
- },
- insertElement: function(parentElement, newElement, nextSiblingElement) {
- if (parentElement && newElement && parentElement !== newElement) {
- if (nextSiblingElement) {
- parentElement.insertBefore(newElement, nextSiblingElement)
- } else {
- parentElement.appendChild(newElement)
- }
- }
- },
- getAttribute: function(element, name) {
- return element.getAttribute(name)
- },
- setAttribute: function(element, name, value) {
- element.setAttribute(name, value)
- },
- removeAttribute: function(element, name) {
- element.removeAttribute(name)
- },
- setProperty: function(element, name, value) {
- element[name] = value
- },
- setText: function(element, text) {
- if (element) {
- element.textContent = text
- }
- },
- setClass: function(element, className, isAdd) {
- if (1 === element.nodeType && className) {
- if (element.classList) {
- if (isAdd) {
- element.classList.add(className)
- } else {
- element.classList.remove(className)
- }
- } else {
- var classNameSupported = "string" === typeof element.className;
- var elementClass = classNameSupported ? element.className : this.getAttribute(element, "class") || "";
- var classNames = elementClass.split(" ");
- var classIndex = classNames.indexOf(className);
- var resultClassName;
- if (isAdd && classIndex < 0) {
- resultClassName = elementClass ? elementClass + " " + className : className
- }
- if (!isAdd && classIndex >= 0) {
- classNames.splice(classIndex, 1);
- resultClassName = classNames.join(" ")
- }
- if (void 0 !== resultClassName) {
- if (classNameSupported) {
- element.className = resultClassName
- } else {
- this.setAttribute(element, "class", resultClassName)
- }
- }
- }
- }
- },
- setStyle: function(element, name, value) {
- element.style[name] = value || ""
- },
- _document: "undefined" === typeof document ? void 0 : document,
- getDocument: function() {
- return this._document
- },
- getActiveElement: function() {
- return this._document.activeElement
- },
- getBody: function() {
- return this._document.body
- },
- createDocumentFragment: function() {
- return this._document.createDocumentFragment()
- },
- getDocumentElement: function() {
- return this._document.documentElement
- },
- getLocation: function() {
- return this._document.location
- },
- getSelection: function() {
- return this._document.selection
- },
- getReadyState: function() {
- return this._document.readyState
- },
- getHead: function() {
- return this._document.head
- },
- hasDocumentProperty: function(property) {
- return property in this._document
- },
- listen: function(element, event, callback, options) {
- if (!element || !("addEventListener" in element)) {
- return _common.noop
- }
- element.addEventListener(event, callback, options);
- return function() {
- element.removeEventListener(event, callback)
- }
- }
- };
- module.exports = (0, _dependency_injector2.default)(nativeDOMAdapterStrategy);
|