UNPKG

devextreme-angular

Version:

Angular UI and visualization components based on DevExtreme widgets

115 lines 14.1 kB
/*! * devextreme-angular * Version: 20.2.5 * Build date: Fri Jan 15 2021 * * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED * * This software may be modified and distributed under the terms * of the MIT license. See the LICENSE file in the root of the project for details. * * https://github.com/DevExpress/devextreme-angular */ import * as tslib_1 from "tslib"; import { NgModule, Inject, NgZone, Optional, VERSION } from '@angular/core'; import { XhrFactory } from '@angular/common/http'; import * as httpRequest from 'devextreme/core/http_request'; import { DOCUMENT } from '@angular/common'; import * as domAdapter from 'devextreme/core/dom_adapter'; import * as readyCallbacks from 'devextreme/core/utils/ready_callbacks'; import * as eventsEngine from 'devextreme/events/core/events_engine'; var outsideZoneEvents = ['mousemove', 'mouseover', 'mouseout']; var insideZoneEvents = ['mouseup', 'click', 'mousedown', 'transitionend', 'wheel']; var originalAdd; var readyCallbackAdd = function (callback) { if (!originalAdd) { originalAdd = this.callBase.bind(this); } callbacks.push(callback); }; var ɵ0 = readyCallbackAdd; var callbacks = []; readyCallbacks.inject({ add: function (callback) { return readyCallbackAdd.call(this, callback); } }); var doInjections = function (document, ngZone, xhrFactory) { if (Number(VERSION.major) < 7) { console.warn('Your version of Angular is not supported (https://supportcenter.devexpress.com/ticket/details/t879496). Please update your project to version 7 or later. Please refer to the Angular Update Guide for more information: https://update.angular.io'); } domAdapter.inject({ _document: document, listen: function () { var _this = this; var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } var eventName = args[1]; if (outsideZoneEvents.indexOf(eventName) !== -1) { return ngZone.runOutsideAngular(function () { return _this.callBase.apply(_this, args); }); } if (ngZone.isStable && insideZoneEvents.indexOf(eventName) !== -1) { return ngZone.run(function () { return _this.callBase.apply(_this, args); }); } return this.callBase.apply(this, args); }, isElementNode: function (element) { return element && element.nodeType === 1; }, isTextNode: function (element) { return element && element.nodeType === 3; }, isDocument: function (element) { return element && element.nodeType === 9; } }); httpRequest.inject({ getXhr: function () { if (!xhrFactory) { return this.callBase.apply(this); } var _xhr = xhrFactory.build(); if (!('withCredentials' in _xhr)) { _xhr['withCredentials'] = false; } return _xhr; } }); var runReadyCallbacksInZone = function () { ngZone.run(function () { eventsEngine.set({}); callbacks.forEach(function (callback) { return originalAdd.call(null, callback); }); callbacks = []; readyCallbacks.fire(); }); }; runReadyCallbacksInZone(); readyCallbackAdd = function (callback) { return ngZone.run(function () { return callback(); }); }; doInjections = runReadyCallbacksInZone; }; var ɵ1 = doInjections; var DxIntegrationModule = /** @class */ (function () { function DxIntegrationModule(document, ngZone, xhrFactory) { doInjections(document, ngZone, xhrFactory); } DxIntegrationModule.ctorParameters = function () { return [ { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }, { type: NgZone }, { type: XhrFactory, decorators: [{ type: Optional }] } ]; }; DxIntegrationModule = tslib_1.__decorate([ NgModule({}), tslib_1.__param(0, Inject(DOCUMENT)), tslib_1.__param(2, Optional()), tslib_1.__metadata("design:paramtypes", [Object, NgZone, XhrFactory]) ], DxIntegrationModule); return DxIntegrationModule; }()); export { DxIntegrationModule }; export { ɵ0, ɵ1 }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWdyYXRpb24uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9kZXZleHRyZW1lLWFuZ3VsYXIvY29yZS8iLCJzb3VyY2VzIjpbImludGVncmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztHQVdHOztBQUdILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEtBQUssV0FBVyxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUzQyxPQUFPLEtBQUssVUFBVSxNQUFNLDZCQUE2QixDQUFDO0FBQzFELE9BQU8sS0FBSyxjQUFjLE1BQU0sdUNBQXVDLENBQUM7QUFDeEUsT0FBTyxLQUFLLFlBQVksTUFBTSxzQ0FBc0MsQ0FBQztBQUVyRSxJQUFNLGlCQUFpQixHQUFHLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUNqRSxJQUFNLGdCQUFnQixHQUFHLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBRXJGLElBQUksV0FBVyxDQUFDO0FBQ2hCLElBQUksZ0JBQWdCLEdBQUcsVUFBUyxRQUFRO0lBQ3BDLElBQUksQ0FBQyxXQUFXLEVBQUU7UUFDZCxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDMUM7SUFDRCxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQzdCLENBQUMsQ0FBQzs7QUFFRixJQUFJLFNBQVMsR0FBRyxFQUFFLENBQUM7QUFDbkIsY0FBYyxDQUFDLE1BQU0sQ0FBQztJQUNsQixHQUFHLEVBQUUsVUFBUyxR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Z0JBQWdCLEdBQUcsVUFBQyxRQUFRLElBQUssT0FBQSxNQUFNLENBQUMsR0FBRyxDQUFDLGNBQU0sT0FBQSxRQUFRLEVBQUUsRUFBVixDQUFVLENBQUMsRUFBNUIsQ0FBNEIsQ0FBQztJQUM5RCxZQUFZLEdBQUcsdUJBQXVCLENBQUM7QUFDM0MsQ0FBQyxDQUFDOztBQUdGO0lBQ0ksNkJBQThCLFFBQWEsRUFBRSxNQUFjLEVBQWMsVUFBc0I7UUFDM0YsWUFBWSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDL0MsQ0FBQzs7Z0RBRlksTUFBTSxTQUFDLFFBQVE7Z0JBQXlCLE1BQU07Z0JBQTBCLFVBQVUsdUJBQWpDLFFBQVE7O0lBRDdELG1CQUFtQjtRQUQvQixRQUFRLENBQUMsRUFBRSxDQUFDO1FBRUksbUJBQUEsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBLEVBQWlDLG1CQUFBLFFBQVEsRUFBRSxDQUFBO3lEQUFuQixNQUFNLEVBQTBCLFVBQVU7T0FEdEYsbUJBQW1CLENBSS9CO0lBQUQsMEJBQUM7Q0FBQSxBQUpELElBSUM7U0FKWSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIGRldmV4dHJlbWUtYW5ndWxhclxuICogVmVyc2lvbjogMjAuMi41XG4gKiBCdWlsZCBkYXRlOiBGcmkgSmFuIDE1IDIwMjFcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTIgLSAyMDIxIERldmVsb3BlciBFeHByZXNzIEluYy4gQUxMIFJJR0hUUyBSRVNFUlZFRFxuICpcbiAqIFRoaXMgc29mdHdhcmUgbWF5IGJlIG1vZGlmaWVkIGFuZCBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXNcbiAqIG9mIHRoZSBNSVQgbGljZW5zZS4gU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHByb2plY3QgZm9yIGRldGFpbHMuXG4gKlxuICogaHR0cHM6Ly9naXRodWIuY29tL0RldkV4cHJlc3MvZGV2ZXh0cmVtZS1hbmd1bGFyXG4gKi9cblxuXHJcbmltcG9ydCB7IE5nTW9kdWxlLCBJbmplY3QsIE5nWm9uZSwgT3B0aW9uYWwsIFZFUlNJT04gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWGhyRmFjdG9yeSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0ICogYXMgaHR0cFJlcXVlc3QgZnJvbSAnZGV2ZXh0cmVtZS9jb3JlL2h0dHBfcmVxdWVzdCc7XHJcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbmltcG9ydCAqIGFzIGRvbUFkYXB0ZXIgZnJvbSAnZGV2ZXh0cmVtZS9jb3JlL2RvbV9hZGFwdGVyJztcclxuaW1wb3J0ICogYXMgcmVhZHlDYWxsYmFja3MgZnJvbSAnZGV2ZXh0cmVtZS9jb3JlL3V0aWxzL3JlYWR5X2NhbGxiYWNrcyc7XHJcbmltcG9ydCAqIGFzIGV2ZW50c0VuZ2luZSBmcm9tICdkZXZleHRyZW1lL2V2ZW50cy9jb3JlL2V2ZW50c19lbmdpbmUnO1xyXG5cclxuY29uc3Qgb3V0c2lkZVpvbmVFdmVudHMgPSBbJ21vdXNlbW92ZScsICdtb3VzZW92ZXInLCAnbW91c2VvdXQnXTtcclxuY29uc3QgaW5zaWRlWm9uZUV2ZW50cyA9IFsnbW91c2V1cCcsICdjbGljaycsICdtb3VzZWRvd24nLCAndHJhbnNpdGlvbmVuZCcsICd3aGVlbCddO1xyXG5cclxubGV0IG9yaWdpbmFsQWRkO1xyXG5sZXQgcmVhZHlDYWxsYmFja0FkZCA9IGZ1bmN0aW9uKGNhbGxiYWNrKSB7XHJcbiAgICBpZiAoIW9yaWdpbmFsQWRkKSB7XHJcbiAgICAgICAgb3JpZ2luYWxBZGQgPSB0aGlzLmNhbGxCYXNlLmJpbmQodGhpcyk7XHJcbiAgICB9XHJcbiAgICBjYWxsYmFja3MucHVzaChjYWxsYmFjayk7XHJcbn07XHJcblxyXG5sZXQgY2FsbGJhY2tzID0gW107XHJcbnJlYWR5Q2FsbGJhY2tzLmluamVjdCh7XHJcbiAgICBhZGQ6IGZ1bmN0aW9uKGNhbGxiYWNrKSB7XHJcbiAgICAgICAgcmV0dXJuIHJlYWR5Q2FsbGJhY2tBZGQuY2FsbCh0aGlzLCBjYWxsYmFjayk7XHJcbiAgICB9XHJcbn0pO1xyXG5cclxubGV0IGRvSW5qZWN0aW9ucyA9IChkb2N1bWVudDogYW55LCBuZ1pvbmU6IE5nWm9uZSwgeGhyRmFjdG9yeTogWGhyRmFjdG9yeSkgPT4ge1xyXG4gICAgaWYgKE51bWJlcihWRVJTSU9OLm1ham9yKSA8IDcpIHtcclxuICAgICAgICBjb25zb2xlLndhcm4oJ1lvdXIgdmVyc2lvbiBvZiBBbmd1bGFyIGlzIG5vdCBzdXBwb3J0ZWQgKGh0dHBzOi8vc3VwcG9ydGNlbnRlci5kZXZleHByZXNzLmNvbS90aWNrZXQvZGV0YWlscy90ODc5NDk2KS4gUGxlYXNlIHVwZGF0ZSB5b3VyIHByb2plY3QgdG8gdmVyc2lvbiA3IG9yIGxhdGVyLiBQbGVhc2UgcmVmZXIgdG8gdGhlIEFuZ3VsYXIgVXBkYXRlIEd1aWRlIGZvciBtb3JlIGluZm9ybWF0aW9uOiBodHRwczovL3VwZGF0ZS5hbmd1bGFyLmlvJyk7XHJcbiAgICB9XHJcblxyXG4gICAgZG9tQWRhcHRlci5pbmplY3Qoe1xyXG4gICAgICAgIF9kb2N1bWVudDogZG9jdW1lbnQsXHJcblxyXG4gICAgICAgIGxpc3RlbjogZnVuY3Rpb24oLi4uYXJncykge1xyXG4gICAgICAgICAgICBjb25zdCBldmVudE5hbWUgPSBhcmdzWzFdO1xyXG4gICAgICAgICAgICBpZiAob3V0c2lkZVpvbmVFdmVudHMuaW5kZXhPZihldmVudE5hbWUpICE9PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2FsbEJhc2UuYXBwbHkodGhpcywgYXJncyk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKG5nWm9uZS5pc1N0YWJsZSAmJiBpbnNpZGVab25lRXZlbnRzLmluZGV4T2YoZXZlbnROYW1lKSAhPT0gLTEpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBuZ1pvbmUucnVuKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jYWxsQmFzZS5hcHBseSh0aGlzLCBhcmdzKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jYWxsQmFzZS5hcHBseSh0aGlzLCBhcmdzKTtcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBpc0VsZW1lbnROb2RlOiBmdW5jdGlvbihlbGVtZW50KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBlbGVtZW50ICYmIGVsZW1lbnQubm9kZVR5cGUgPT09IDE7XHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgaXNUZXh0Tm9kZTogZnVuY3Rpb24oZWxlbWVudCkge1xyXG4gICAgICAgICAgICByZXR1cm4gZWxlbWVudCAmJiBlbGVtZW50Lm5vZGVUeXBlID09PSAzO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIGlzRG9jdW1lbnQ6IGZ1bmN0aW9uKGVsZW1lbnQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQgJiYgZWxlbWVudC5ub2RlVHlwZSA9PT0gOTtcclxuICAgICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBodHRwUmVxdWVzdC5pbmplY3Qoe1xyXG4gICAgICAgIGdldFhocjogZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgICAgIGlmICgheGhyRmFjdG9yeSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2FsbEJhc2UuYXBwbHkodGhpcyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGV0IF94aHIgPSB4aHJGYWN0b3J5LmJ1aWxkKCk7XHJcbiAgICAgICAgICAgIGlmICghKCd3aXRoQ3JlZGVudGlhbHMnIGluIF94aHIpKSB7XHJcbiAgICAgICAgICAgICAgICAoX3hociBhcyBhbnkpWyd3aXRoQ3JlZGVudGlhbHMnXSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gX3hocjtcclxuICAgICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb25zdCBydW5SZWFkeUNhbGxiYWNrc0luWm9uZSA9ICgpID0+IHtcclxuICAgICAgICBuZ1pvbmUucnVuKCgpID0+IHtcclxuICAgICAgICAgICAgZXZlbnRzRW5naW5lLnNldCh7fSk7XHJcbiAgICAgICAgICAgIGNhbGxiYWNrcy5mb3JFYWNoKGNhbGxiYWNrID0+IG9yaWdpbmFsQWRkLmNhbGwobnVsbCwgY2FsbGJhY2spKTtcclxuICAgICAgICAgICAgY2FsbGJhY2tzID0gW107XHJcbiAgICAgICAgICAgIHJlYWR5Q2FsbGJhY2tzLmZpcmUoKTtcclxuICAgICAgICB9KTtcclxuICAgIH07XHJcblxyXG4gICAgcnVuUmVhZHlDYWxsYmFja3NJblpvbmUoKTtcclxuXHJcbiAgICByZWFkeUNhbGxiYWNrQWRkID0gKGNhbGxiYWNrKSA9PiBuZ1pvbmUucnVuKCgpID0+IGNhbGxiYWNrKCkpO1xyXG4gICAgZG9JbmplY3Rpb25zID0gcnVuUmVhZHlDYWxsYmFja3NJblpvbmU7XHJcbn07XHJcblxyXG5ATmdNb2R1bGUoe30pXHJcbmV4cG9ydCBjbGFzcyBEeEludGVncmF0aW9uTW9kdWxlIHtcclxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoRE9DVU1FTlQpIGRvY3VtZW50OiBhbnksIG5nWm9uZTogTmdab25lLCBAT3B0aW9uYWwoKSB4aHJGYWN0b3J5OiBYaHJGYWN0b3J5KSB7XHJcbiAgICAgICAgZG9JbmplY3Rpb25zKGRvY3VtZW50LCBuZ1pvbmUsIHhockZhY3RvcnkpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==