devextreme-angular
Version:
Angular UI and visualization components based on DevExtreme widgets
74 lines • 8.59 kB
JavaScript
/*!
* 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==