UNPKG

devextreme-angular

Version:

Angular UI and visualization components based on DevExtreme widgets

82 lines 9.53 kB
/*! * devextreme-angular * Version: 22.1.14 * Build date: Mon Apr 29 2024 * * Copyright (c) 2012 - 2024 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 { PLATFORM_ID, Inject, NgModule } from '@angular/core'; import { isPlatformServer } from '@angular/common'; import ajax from 'devextreme/core/utils/ajax'; import { Deferred } from 'devextreme/core/utils/deferred'; import { makeStateKey, BrowserTransferStateModule } from '@angular/platform-browser'; import * as i0 from "@angular/core"; import * as i1 from "@angular/platform-browser"; export class DxServerTransferStateModule { constructor(state, platformId) { this.state = state; this.platformId = platformId; let that = this; ajax.inject({ sendRequest: function (...args) { let key = makeStateKey(that.generateKey(args)), cachedData = that.state.get(key, null); if (isPlatformServer(that.platformId)) { let result = this.callBase.apply(this, args); result.always((data, status) => { let dataForCache = { data: data, status: status }; that.state.set(key, dataForCache); }); return result; } else { if (cachedData) { let d = Deferred(); d.resolve(cachedData.data, cachedData.status); that.state.set(key, null); return d.promise(); } return this.callBase.apply(this, args); } } }); } generateKey(args) { let keyValue = ''; for (let key in args) { if (typeof args[key] === 'object') { let objKey = this.generateKey(args[key]); keyValue += key + objKey; } else { keyValue += key + args[key]; } } return keyValue; } } /** @nocollapse */ DxServerTransferStateModule.ɵfac = function DxServerTransferStateModule_Factory(t) { return new (t || DxServerTransferStateModule)(i0.ɵɵinject(i1.TransferState), i0.ɵɵinject(PLATFORM_ID)); }; /** @nocollapse */ DxServerTransferStateModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxServerTransferStateModule }); /** @nocollapse */ DxServerTransferStateModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[ BrowserTransferStateModule ]] }); (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DxServerTransferStateModule, [{ type: NgModule, args: [{ imports: [ BrowserTransferStateModule ] }] }], function () { return [{ type: i1.TransferState }, { type: undefined, decorators: [{ type: Inject, args: [PLATFORM_ID] }] }]; }, null); })(); (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxServerTransferStateModule, { imports: [BrowserTransferStateModule] }); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXItc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9kaXN0L2NvcmUvdHJhbnNmZXItc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0dBV0c7QUFFSCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxJQUFJLE1BQU0sNEJBQTRCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzFELE9BQU8sRUFBaUIsWUFBWSxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7OztBQVFwRyxNQUFNLE9BQU8sMkJBQTJCO0lBQ3BDLFlBQW9CLEtBQW9CLEVBQStCLFVBQWU7UUFBbEUsVUFBSyxHQUFMLEtBQUssQ0FBZTtRQUErQixlQUFVLEdBQVYsVUFBVSxDQUFLO1FBQ2xGLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQztRQUVoQixJQUFJLENBQUMsTUFBTSxDQUFDO1lBQ1IsV0FBVyxFQUFFLFVBQVMsR0FBRyxJQUFJO2dCQUN6QixJQUFJLEdBQUcsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUMxQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQVcsQ0FBQyxDQUFDO2dCQUVsRCxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtvQkFDbkMsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO29CQUM3QyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxFQUFFO3dCQUMzQixJQUFJLFlBQVksR0FBRzs0QkFDZixJQUFJLEVBQUUsSUFBSTs0QkFDVixNQUFNLEVBQUUsTUFBTTt5QkFDakIsQ0FBQzt3QkFDRixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsWUFBbUIsQ0FBQyxDQUFDO29CQUM3QyxDQUFDLENBQUMsQ0FBQztvQkFDSCxPQUFPLE1BQU0sQ0FBQztpQkFDakI7cUJBQU07b0JBQ0gsSUFBSSxVQUFVLEVBQUU7d0JBQ1osSUFBSSxDQUFDLEdBQUksUUFBZ0IsRUFBRSxDQUFDO3dCQUM1QixDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO3dCQUM5QyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBVyxDQUFDLENBQUM7d0JBRWpDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO3FCQUN0QjtvQkFDRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztpQkFDMUM7WUFDTCxDQUFDO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFJO1FBQ1osSUFBSSxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLEtBQUssSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFO1lBQ2xCLElBQUksT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssUUFBUSxFQUFFO2dCQUMvQixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUN6QyxRQUFRLElBQUksR0FBRyxHQUFHLE1BQU0sQ0FBQzthQUM1QjtpQkFBTTtnQkFDSCxRQUFRLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUMvQjtTQUNKO1FBRUQsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQzs7eUhBN0NRLDJCQUEyQiw2Q0FDYyxXQUFXOzRHQURwRCwyQkFBMkI7Z0hBTDdCO1lBQ1AsMEJBQTBCO1NBQzNCO3VGQUdVLDJCQUEyQjtjQU52QyxRQUFRO2VBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLDBCQUEwQjtpQkFDM0I7YUFDRjs7c0JBRzhDLE1BQU07dUJBQUMsV0FBVzs7d0ZBRHBELDJCQUEyQixjQUpwQywwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIGRldmV4dHJlbWUtYW5ndWxhclxuICogVmVyc2lvbjogMjIuMS4xNFxuICogQnVpbGQgZGF0ZTogTW9uIEFwciAyOSAyMDI0XG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDEyIC0gMjAyNCBEZXZlbG9wZXIgRXhwcmVzcyBJbmMuIEFMTCBSSUdIVFMgUkVTRVJWRURcbiAqXG4gKiBUaGlzIHNvZnR3YXJlIG1heSBiZSBtb2RpZmllZCBhbmQgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zXG4gKiBvZiB0aGUgTUlUIGxpY2Vuc2UuIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoZSBwcm9qZWN0IGZvciBkZXRhaWxzLlxuICpcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9EZXZFeHByZXNzL2RldmV4dHJlbWUtYW5ndWxhclxuICovXG5cbmltcG9ydCB7IFBMQVRGT1JNX0lELCBJbmplY3QsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpc1BsYXRmb3JtU2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCBhamF4IGZyb20gJ2RldmV4dHJlbWUvY29yZS91dGlscy9hamF4JztcbmltcG9ydCB7IERlZmVycmVkIH0gZnJvbSAnZGV2ZXh0cmVtZS9jb3JlL3V0aWxzL2RlZmVycmVkJztcbmltcG9ydCB7IFRyYW5zZmVyU3RhdGUsIG1ha2VTdGF0ZUtleSwgQnJvd3NlclRyYW5zZmVyU3RhdGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIEJyb3dzZXJUcmFuc2ZlclN0YXRlTW9kdWxlXG4gIF1cbn0pXG5cbmV4cG9ydCBjbGFzcyBEeFNlcnZlclRyYW5zZmVyU3RhdGVNb2R1bGUge1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RhdGU6IFRyYW5zZmVyU3RhdGUsIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogYW55KSB7XG4gICAgICAgIGxldCB0aGF0ID0gdGhpcztcblxuICAgICAgICBhamF4LmluamVjdCh7XG4gICAgICAgICAgICBzZW5kUmVxdWVzdDogZnVuY3Rpb24oLi4uYXJncykge1xuICAgICAgICAgICAgICAgIGxldCBrZXkgPSBtYWtlU3RhdGVLZXkodGhhdC5nZW5lcmF0ZUtleShhcmdzKSksXG4gICAgICAgICAgICAgICAgICAgIGNhY2hlZERhdGEgPSB0aGF0LnN0YXRlLmdldChrZXksIG51bGwgYXMgYW55KTtcblxuICAgICAgICAgICAgICAgIGlmIChpc1BsYXRmb3JtU2VydmVyKHRoYXQucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHRoaXMuY2FsbEJhc2UuYXBwbHkodGhpcywgYXJncyk7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hbHdheXMoKGRhdGEsIHN0YXR1cykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRhdGFGb3JDYWNoZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czogc3RhdHVzXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5zdGF0ZS5zZXQoa2V5LCBkYXRhRm9yQ2FjaGUgYXMgYW55KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNhY2hlZERhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkID0gKERlZmVycmVkIGFzIGFueSkoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGQucmVzb2x2ZShjYWNoZWREYXRhLmRhdGEsIGNhY2hlZERhdGEuc3RhdHVzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuc3RhdGUuc2V0KGtleSwgbnVsbCBhcyBhbnkpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZC5wcm9taXNlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2FsbEJhc2UuYXBwbHkodGhpcywgYXJncyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZW5lcmF0ZUtleShhcmdzKSB7XG4gICAgICAgIGxldCBrZXlWYWx1ZSA9ICcnO1xuICAgICAgICBmb3IgKGxldCBrZXkgaW4gYXJncykge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBhcmdzW2tleV0gPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgbGV0IG9iaktleSA9IHRoaXMuZ2VuZXJhdGVLZXkoYXJnc1trZXldKTtcbiAgICAgICAgICAgICAgICBrZXlWYWx1ZSArPSBrZXkgKyBvYmpLZXk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGtleVZhbHVlICs9IGtleSArIGFyZ3Nba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBrZXlWYWx1ZTtcbiAgICB9XG4gfVxuIl19