UNPKG

devextreme-angular

Version:

Angular UI and visualization components based on DevExtreme widgets

74 lines 8.59 kB
/*! * devextreme-angular * Version: 24.2.6 * Build date: Mon Mar 17 2025 * * Copyright (c) 2012 - 2025 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, TransferState, makeStateKey, } from '@angular/core'; import { isPlatformServer } from '@angular/common'; import ajax from 'devextreme/core/utils/ajax'; import { Deferred } from 'devextreme/core/utils/deferred'; import * as i0 from "@angular/core"; export class DxServerTransferStateModule { state; platformId; constructor(state, platformId) { this.state = state; this.platformId = platformId; const that = this; ajax.inject({ sendRequest(...args) { const key = makeStateKey(that.generateKey(args)); const cachedData = that.state.get(key, null); if (isPlatformServer(that.platformId)) { const result = this.callBase.apply(this, args); result.always((data, status) => { const dataForCache = { data, status, }; that.state.set(key, dataForCache); }); return result; } if (cachedData) { const 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 (const key in args) { if (typeof args[key] === 'object') { const objKey = this.generateKey(args[key]); keyValue += key + objKey; } else { keyValue += key + args[key]; } } return keyValue; } /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxServerTransferStateModule, deps: [{ token: i0.TransferState }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.NgModule }); /** @nocollapse */ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: DxServerTransferStateModule }); /** @nocollapse */ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxServerTransferStateModule }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxServerTransferStateModule, decorators: [{ type: NgModule, args: [{}] }], ctorParameters: () => [{ type: i0.TransferState }, { type: undefined, decorators: [{ type: Inject, args: [PLATFORM_ID] }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXItc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9kaXN0L2NvcmUvdHJhbnNmZXItc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0dBV0c7QUFFSCxPQUFPLEVBQ0wsV0FBVyxFQUNYLE1BQU0sRUFDTixRQUFRLEVBQ1IsYUFBYSxFQUNiLFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLElBQUksTUFBTSw0QkFBNEIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBSTFELE1BQU0sT0FBTywyQkFBMkI7SUFDVDtJQUE0RDtJQUF6RixZQUE2QixLQUFvQixFQUF3QyxVQUFlO1FBQTNFLFVBQUssR0FBTCxLQUFLLENBQWU7UUFBd0MsZUFBVSxHQUFWLFVBQVUsQ0FBSztRQUN0RyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUM7UUFFbEIsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUNWLFdBQVcsQ0FBQyxHQUFHLElBQUk7Z0JBQ2pCLE1BQU0sR0FBRyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ2pELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFXLENBQUMsQ0FBQztnQkFFcEQsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztvQkFDdEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO29CQUMvQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxFQUFFO3dCQUM3QixNQUFNLFlBQVksR0FBRzs0QkFDbkIsSUFBSTs0QkFDSixNQUFNO3lCQUNQLENBQUM7d0JBQ0YsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQW1CLENBQUMsQ0FBQztvQkFDM0MsQ0FBQyxDQUFDLENBQUM7b0JBQ0gsT0FBTyxNQUFNLENBQUM7Z0JBQ2hCLENBQUM7Z0JBQ0QsSUFBSSxVQUFVLEVBQUUsQ0FBQztvQkFDZixNQUFNLENBQUMsR0FBSSxRQUFnQixFQUFFLENBQUM7b0JBQzlCLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQzlDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFXLENBQUMsQ0FBQztvQkFFakMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ3JCLENBQUM7Z0JBQ0QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDekMsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsSUFBSTtRQUNkLElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNsQixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3ZCLElBQUksT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ2xDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQzNDLFFBQVEsSUFBSSxHQUFHLEdBQUcsTUFBTSxDQUFDO1lBQzNCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixRQUFRLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM5QixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7MkhBNUNVLDJCQUEyQiwrQ0FDcUIsV0FBVzs0SEFEM0QsMkJBQTJCOzRIQUEzQiwyQkFBMkI7OzRGQUEzQiwyQkFBMkI7a0JBRnZDLFFBQVE7bUJBQUMsRUFBRTs7MEJBRzBDLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogZGV2ZXh0cmVtZS1hbmd1bGFyXG4gKiBWZXJzaW9uOiAyNC4yLjZcbiAqIEJ1aWxkIGRhdGU6IE1vbiBNYXIgMTcgMjAyNVxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxMiAtIDIwMjUgRGV2ZWxvcGVyIEV4cHJlc3MgSW5jLiBBTEwgUklHSFRTIFJFU0VSVkVEXG4gKlxuICogVGhpcyBzb2Z0d2FyZSBtYXkgYmUgbW9kaWZpZWQgYW5kIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtc1xuICogb2YgdGhlIE1JVCBsaWNlbnNlLiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdCBmb3IgZGV0YWlscy5cbiAqXG4gKiBodHRwczovL2dpdGh1Yi5jb20vRGV2RXhwcmVzcy9kZXZleHRyZW1lLWFuZ3VsYXJcbiAqL1xuXG5pbXBvcnQge1xyXG4gIFBMQVRGT1JNX0lELFxyXG4gIEluamVjdCxcclxuICBOZ01vZHVsZSxcclxuICBUcmFuc2ZlclN0YXRlLFxyXG4gIG1ha2VTdGF0ZUtleSxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgaXNQbGF0Zm9ybVNlcnZlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCBhamF4IGZyb20gJ2RldmV4dHJlbWUvY29yZS91dGlscy9hamF4JztcclxuaW1wb3J0IHsgRGVmZXJyZWQgfSBmcm9tICdkZXZleHRyZW1lL2NvcmUvdXRpbHMvZGVmZXJyZWQnO1xyXG5cclxuQE5nTW9kdWxlKHt9KVxyXG5cclxuZXhwb3J0IGNsYXNzIER4U2VydmVyVHJhbnNmZXJTdGF0ZU1vZHVsZSB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBzdGF0ZTogVHJhbnNmZXJTdGF0ZSwgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSByZWFkb25seSBwbGF0Zm9ybUlkOiBhbnkpIHtcclxuICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xyXG5cclxuICAgIGFqYXguaW5qZWN0KHtcclxuICAgICAgc2VuZFJlcXVlc3QoLi4uYXJncykge1xyXG4gICAgICAgIGNvbnN0IGtleSA9IG1ha2VTdGF0ZUtleSh0aGF0LmdlbmVyYXRlS2V5KGFyZ3MpKTtcclxuICAgICAgICBjb25zdCBjYWNoZWREYXRhID0gdGhhdC5zdGF0ZS5nZXQoa2V5LCBudWxsIGFzIGFueSk7XHJcblxyXG4gICAgICAgIGlmIChpc1BsYXRmb3JtU2VydmVyKHRoYXQucGxhdGZvcm1JZCkpIHtcclxuICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuY2FsbEJhc2UuYXBwbHkodGhpcywgYXJncyk7XHJcbiAgICAgICAgICByZXN1bHQuYWx3YXlzKChkYXRhLCBzdGF0dXMpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgZGF0YUZvckNhY2hlID0ge1xyXG4gICAgICAgICAgICAgIGRhdGEsXHJcbiAgICAgICAgICAgICAgc3RhdHVzLFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB0aGF0LnN0YXRlLnNldChrZXksIGRhdGFGb3JDYWNoZSBhcyBhbnkpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoY2FjaGVkRGF0YSkge1xyXG4gICAgICAgICAgY29uc3QgZCA9IChEZWZlcnJlZCBhcyBhbnkpKCk7XHJcbiAgICAgICAgICBkLnJlc29sdmUoY2FjaGVkRGF0YS5kYXRhLCBjYWNoZWREYXRhLnN0YXR1cyk7XHJcbiAgICAgICAgICB0aGF0LnN0YXRlLnNldChrZXksIG51bGwgYXMgYW55KTtcclxuXHJcbiAgICAgICAgICByZXR1cm4gZC5wcm9taXNlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmNhbGxCYXNlLmFwcGx5KHRoaXMsIGFyZ3MpO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZUtleShhcmdzKSB7XHJcbiAgICBsZXQga2V5VmFsdWUgPSAnJztcclxuICAgIGZvciAoY29uc3Qga2V5IGluIGFyZ3MpIHtcclxuICAgICAgaWYgKHR5cGVvZiBhcmdzW2tleV0gPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgY29uc3Qgb2JqS2V5ID0gdGhpcy5nZW5lcmF0ZUtleShhcmdzW2tleV0pO1xyXG4gICAgICAgIGtleVZhbHVlICs9IGtleSArIG9iaktleTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBrZXlWYWx1ZSArPSBrZXkgKyBhcmdzW2tleV07XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4ga2V5VmFsdWU7XHJcbiAgfVxyXG59XHJcbiJdfQ==