transfer-state.js 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. "use strict";
  2. /*!
  3. * devextreme-angular
  4. * Version: 19.1.16
  5. * Build date: Tue Oct 18 2022
  6. *
  7. * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED
  8. *
  9. * This software may be modified and distributed under the terms
  10. * of the MIT license. See the LICENSE file in the root of the project for details.
  11. *
  12. * https://github.com/DevExpress/devextreme-angular
  13. */
  14. Object.defineProperty(exports, "__esModule", { value: true });
  15. var core_1 = require("@angular/core");
  16. var common_1 = require("@angular/common");
  17. var ajax = require("devextreme/core/utils/ajax");
  18. var deferred = require("devextreme/core/utils/deferred");
  19. var platform_browser_1 = require("@angular/platform-browser");
  20. var DxServerTransferStateModule = (function () {
  21. function DxServerTransferStateModule(state, platformId) {
  22. this.state = state;
  23. this.platformId = platformId;
  24. var that = this;
  25. ajax.inject({
  26. sendRequest: function () {
  27. var args = [];
  28. for (var _i = 0; _i < arguments.length; _i++) {
  29. args[_i] = arguments[_i];
  30. }
  31. var key = platform_browser_1.makeStateKey(that.generateKey(args)), cachedData = that.state.get(key, null);
  32. if (common_1.isPlatformServer(that.platformId)) {
  33. var result = this.callBase.apply(this, args);
  34. result.always(function (data, status) {
  35. var dataForCache = {
  36. data: data,
  37. status: status
  38. };
  39. that.state.set(key, dataForCache);
  40. });
  41. return result;
  42. }
  43. else {
  44. if (cachedData) {
  45. var d = new deferred.Deferred();
  46. d.resolve(cachedData.data, cachedData.status);
  47. that.state.set(key, null);
  48. return d.promise();
  49. }
  50. return this.callBase.apply(this, args);
  51. }
  52. }
  53. });
  54. }
  55. DxServerTransferStateModule.prototype.generateKey = function (args) {
  56. var keyValue = '';
  57. for (var key in args) {
  58. if (typeof args[key] === 'object') {
  59. var objKey = this.generateKey(args[key]);
  60. keyValue += key + objKey;
  61. }
  62. else {
  63. keyValue += key + args[key];
  64. }
  65. }
  66. return keyValue;
  67. };
  68. DxServerTransferStateModule.decorators = [
  69. { type: core_1.NgModule, args: [{
  70. imports: [
  71. platform_browser_1.BrowserTransferStateModule
  72. ]
  73. },] },
  74. ];
  75. /** @nocollapse */
  76. DxServerTransferStateModule.ctorParameters = function () { return [
  77. { type: platform_browser_1.TransferState, },
  78. { type: undefined, decorators: [{ type: core_1.Inject, args: [core_1.PLATFORM_ID,] },] },
  79. ]; };
  80. return DxServerTransferStateModule;
  81. }());
  82. exports.DxServerTransferStateModule = DxServerTransferStateModule;
  83. //# sourceMappingURL=transfer-state.js.map