@uxf/cms 2.5.0 → 2.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -26,7 +26,9 @@ container
26
26
  .register("router", Router<any>)
27
27
  .register("service.error", ErrorService)
28
28
  .register("service.notification", FlashMessagesService)
29
- .register("useLoggedUser", UseLoggedUser);
29
+ .register("useLoggedUser", UseLoggedUser)
30
+ .register("api.getLoggedUser", GetLoggedUser)
31
+ .register("api.getUserConfig", GetUserConfig);
30
32
  ```
31
33
 
32
34
  ## Api
package/api/index.d.ts CHANGED
@@ -12,7 +12,7 @@ export interface FormSchemaResponse {
12
12
  fields: FieldSchemaResponse[];
13
13
  }
14
14
  export default interface UserResponse {
15
- id: number;
15
+ id: number | string;
16
16
  email: string;
17
17
  name: string;
18
18
  roles: string[];
@@ -1,5 +1,7 @@
1
1
  import { ReactNode } from "react";
2
2
  import { Router } from "@uxf/router";
3
+ import { NextPageContext } from "next";
4
+ import UserResponse from "../api";
3
5
  export interface NotificationServiceInterface {
4
6
  info: (message: ReactNode) => void;
5
7
  success: (message: ReactNode) => void;
@@ -14,9 +16,13 @@ export interface LoggedUser {
14
16
  roles: string[];
15
17
  }
16
18
  export declare type UseLoggedUser = () => LoggedUser;
19
+ export declare type GetLoggedUser = (ctx: NextPageContext) => Promise<UserResponse>;
20
+ export declare type GetUserConfig = (ctx: NextPageContext, name: string, defaultValue: any) => Promise<any>;
17
21
  declare type ContainerStore = {
18
22
  router: Router<any>;
19
23
  useLoggedUser: UseLoggedUser;
24
+ "api.getLoggedUser": GetLoggedUser;
25
+ "api.getUserConfig": GetUserConfig;
20
26
  "service.notification": NotificationServiceInterface;
21
27
  "service.error": ErrorServiceInterface;
22
28
  };
@@ -24,5 +30,6 @@ export declare class Container {
24
30
  private store;
25
31
  register<T extends keyof ContainerStore>(key: T, value: ContainerStore[T]): Container;
26
32
  get<T extends keyof ContainerStore>(key: T): ContainerStore[T];
33
+ has(key: keyof ContainerStore): boolean;
27
34
  }
28
35
  export {};
@@ -16,7 +16,10 @@ var Container = /** @class */ (function () {
16
16
  }
17
17
  return value;
18
18
  };
19
+ Container.prototype.has = function (key) {
20
+ return !!this.store[key];
21
+ };
19
22
  return Container;
20
23
  }());
21
24
  exports.Container = Container;
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udGFpbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy9Db250YWluZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBNEJBO0lBQUE7UUFDWSxVQUFLLEdBQTRCLEVBQUUsQ0FBQztJQWdCaEQsQ0FBQztJQWRVLDRCQUFRLEdBQWYsVUFBZ0QsR0FBTSxFQUFFLEtBQXdCO1FBQzVFLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSx1QkFBRyxHQUFWLFVBQTJDLEdBQU07UUFDN0MsSUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUU5QixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1IsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBNkIsR0FBRyxPQUFJLENBQUMsQ0FBQztTQUN6RDtRQUVELE9BQU8sS0FBWSxDQUFDO0lBQ3hCLENBQUM7SUFDTCxnQkFBQztBQUFELENBQUMsQUFqQkQsSUFpQkM7QUFqQlksOEJBQVMifQ==
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udGFpbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy9Db250YWluZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBa0NBO0lBQUE7UUFDWSxVQUFLLEdBQTRCLEVBQUUsQ0FBQztJQW9CaEQsQ0FBQztJQWxCVSw0QkFBUSxHQUFmLFVBQWdELEdBQU0sRUFBRSxLQUF3QjtRQUM1RSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUN4QixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sdUJBQUcsR0FBVixVQUEyQyxHQUFNO1FBQzdDLElBQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFOUIsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNSLE1BQU0sSUFBSSxLQUFLLENBQUMsb0NBQTZCLEdBQUcsT0FBSSxDQUFDLENBQUM7U0FDekQ7UUFFRCxPQUFPLEtBQVksQ0FBQztJQUN4QixDQUFDO0lBRU0sdUJBQUcsR0FBVixVQUFXLEdBQXlCO1FBQ2hDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUNMLGdCQUFDO0FBQUQsQ0FBQyxBQXJCRCxJQXFCQztBQXJCWSw4QkFBUyJ9
@@ -71,6 +71,7 @@ var api_1 = require("../../api");
71
71
  var user_1 = require("../redux/user");
72
72
  var react_1 = __importDefault(require("react"));
73
73
  var CmsAuthorizator_1 = __importDefault(require("../security/CmsAuthorizator"));
74
+ var config_1 = require("../../config");
74
75
  // TODO component any
75
76
  var withAuthenticate = function (config) {
76
77
  return function (Component) {
@@ -83,30 +84,38 @@ var withAuthenticate = function (config) {
83
84
  class_1.getInitialProps = function (ctx) {
84
85
  var _a;
85
86
  return __awaiter(this, void 0, void 0, function () {
86
- var user, _b;
87
- return __generator(this, function (_c) {
88
- switch (_c.label) {
87
+ var user, _b, _c;
88
+ return __generator(this, function (_d) {
89
+ switch (_d.label) {
89
90
  case 0:
90
91
  user = ctx.reduxStore.getState().user.user;
91
- if (!!user) return [3 /*break*/, 2];
92
- return [4 /*yield*/, (0, api_1.getLoggedUser)(ctx)];
92
+ if (!!user) return [3 /*break*/, 5];
93
+ if (!config_1.container.has("api.getLoggedUser")) return [3 /*break*/, 2];
94
+ return [4 /*yield*/, config_1.container.get("api.getLoggedUser")(ctx)];
93
95
  case 1:
94
- user = _c.sent();
96
+ _b = _d.sent();
97
+ return [3 /*break*/, 4];
98
+ case 2: return [4 /*yield*/, (0, api_1.getLoggedUser)(ctx)];
99
+ case 3:
100
+ _b = _d.sent();
101
+ _d.label = 4;
102
+ case 4:
103
+ user = _b;
95
104
  ctx.reduxStore.dispatch((0, user_1.onUserPersist)(user));
96
- _c.label = 2;
97
- case 2:
105
+ _d.label = 5;
106
+ case 5:
98
107
  if (config.allowedRoles && !CmsAuthorizator_1.default.isGranted(config.allowedRoles, (_a = user === null || user === void 0 ? void 0 : user.roles) !== null && _a !== void 0 ? _a : [])) {
99
108
  throw new UnauthorizedError_1.UnauthorizedError();
100
109
  }
101
- if (!(typeof Component.getInitialProps === "function")) return [3 /*break*/, 4];
110
+ if (!(typeof Component.getInitialProps === "function")) return [3 /*break*/, 7];
102
111
  return [4 /*yield*/, Component.getInitialProps(ctx)];
103
- case 3:
104
- _b = _c.sent();
105
- return [3 /*break*/, 5];
106
- case 4:
107
- _b = {};
108
- _c.label = 5;
109
- case 5: return [2 /*return*/, _b];
112
+ case 6:
113
+ _c = _d.sent();
114
+ return [3 /*break*/, 8];
115
+ case 7:
116
+ _c = {};
117
+ _d.label = 8;
118
+ case 8: return [2 /*return*/, _c];
110
119
  }
111
120
  });
112
121
  });
@@ -121,4 +130,4 @@ var withAuthenticate = function (config) {
121
130
  };
122
131
  }; // TODO!
123
132
  exports.withAuthenticate = withAuthenticate;
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aEF1dGhlbnRpY2F0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZXByZWNhdGVkL2hvYy93aXRoQXV0aGVudGljYXRlLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9FQUFtRTtBQUNuRSxpQ0FBMEM7QUFDMUMsc0NBQThDO0FBRTlDLGdEQUEwQjtBQUUxQixnRkFBMEQ7QUFNMUQscUJBQXFCO0FBQ2QsSUFBTSxnQkFBZ0IsR0FDekIsVUFBcUQsTUFBZTtJQUNwRSxPQUFBLFVBQUMsU0FBYzs7UUFDWCxPQUFBO2dCQUFjLDJCQUFzQjtnQkFBcEM7O2dCQW1CQSxDQUFDO2dCQWpCdUIsdUJBQWUsR0FBbkMsVUFBb0MsR0FBZ0I7Ozs7Ozs7b0NBQzVDLElBQUksR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7eUNBQzNDLENBQUMsSUFBSSxFQUFMLHdCQUFLO29DQUNFLHFCQUFNLElBQUEsbUJBQWEsRUFBQyxHQUFHLENBQUMsRUFBQTs7b0NBQS9CLElBQUksR0FBRyxTQUF3QixDQUFDO29DQUNoQyxHQUFHLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFBLG9CQUFhLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzs7O29DQUdqRCxJQUFJLE1BQU0sQ0FBQyxZQUFZLElBQUksQ0FBQyx5QkFBZSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLE1BQUEsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLEtBQUssbUNBQUksRUFBRSxDQUFDLEVBQUU7d0NBQzNGLE1BQU0sSUFBSSxxQ0FBaUIsRUFBRSxDQUFDO3FDQUNqQzt5Q0FFTSxDQUFBLE9BQU8sU0FBUyxDQUFDLGVBQWUsS0FBSyxVQUFVLENBQUEsRUFBL0Msd0JBQStDO29DQUFHLHFCQUFNLFNBQVMsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEVBQUE7O29DQUFwQyxLQUFBLFNBQW9DLENBQUE7OztvQ0FBRyxLQUFBLEVBQUUsQ0FBQTs7d0NBQWxHLDBCQUFtRzs7OztpQkFDdEc7Z0JBRU0sd0JBQU0sR0FBYjtvQkFDSSxPQUFPLDhCQUFDLFNBQVMsZUFBSyxJQUFJLENBQUMsS0FBSyxFQUFJLENBQUM7Z0JBQ3pDLENBQUM7Z0JBQ0wsY0FBQztZQUFELENBQUMsQUFuQkQsQ0FBYyxlQUFLLENBQUMsU0FBUztZQUNsQixjQUFXLEdBQUcscUJBQXNCO2NBa0J2QyxDQUFBO0tBQUE7QUFwQlosQ0FvQlksQ0FBQyxDQUFDLFFBQVE7QUF0QmIsUUFBQSxnQkFBZ0Isb0JBc0JaIn0=
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aEF1dGhlbnRpY2F0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZXByZWNhdGVkL2hvYy93aXRoQXV0aGVudGljYXRlLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9FQUFtRTtBQUNuRSxpQ0FBMEM7QUFDMUMsc0NBQThDO0FBRTlDLGdEQUEwQjtBQUUxQixnRkFBMEQ7QUFDMUQsdUNBQXlDO0FBTXpDLHFCQUFxQjtBQUNkLElBQU0sZ0JBQWdCLEdBQ3pCLFVBQXFELE1BQWU7SUFDcEUsT0FBQSxVQUFDLFNBQWM7O1FBQ1gsT0FBQTtnQkFBYywyQkFBc0I7Z0JBQXBDOztnQkFxQkEsQ0FBQztnQkFuQnVCLHVCQUFlLEdBQW5DLFVBQW9DLEdBQWdCOzs7Ozs7O29DQUM1QyxJQUFJLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO3lDQUMzQyxDQUFDLElBQUksRUFBTCx3QkFBSzt5Q0FDRSxrQkFBUyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFsQyx3QkFBa0M7b0NBQ25DLHFCQUFNLGtCQUFTLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUE7O29DQUE3QyxLQUFBLFNBQTZDLENBQUE7O3dDQUM3QyxxQkFBTSxJQUFBLG1CQUFhLEVBQUMsR0FBRyxDQUFDLEVBQUE7O29DQUF4QixLQUFBLFNBQXdCLENBQUE7OztvQ0FGOUIsSUFBSSxLQUUwQixDQUFDO29DQUMvQixHQUFHLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFBLG9CQUFhLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzs7O29DQUdqRCxJQUFJLE1BQU0sQ0FBQyxZQUFZLElBQUksQ0FBQyx5QkFBZSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLE1BQUEsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLEtBQUssbUNBQUksRUFBRSxDQUFDLEVBQUU7d0NBQzNGLE1BQU0sSUFBSSxxQ0FBaUIsRUFBRSxDQUFDO3FDQUNqQzt5Q0FFTSxDQUFBLE9BQU8sU0FBUyxDQUFDLGVBQWUsS0FBSyxVQUFVLENBQUEsRUFBL0Msd0JBQStDO29DQUFHLHFCQUFNLFNBQVMsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEVBQUE7O29DQUFwQyxLQUFBLFNBQW9DLENBQUE7OztvQ0FBRyxLQUFBLEVBQUUsQ0FBQTs7d0NBQWxHLDBCQUFtRzs7OztpQkFDdEc7Z0JBRU0sd0JBQU0sR0FBYjtvQkFDSSxPQUFPLDhCQUFDLFNBQVMsZUFBSyxJQUFJLENBQUMsS0FBSyxFQUFJLENBQUM7Z0JBQ3pDLENBQUM7Z0JBQ0wsY0FBQztZQUFELENBQUMsQUFyQkQsQ0FBYyxlQUFLLENBQUMsU0FBUztZQUNsQixjQUFXLEdBQUcscUJBQXNCO2NBb0J2QyxDQUFBO0tBQUE7QUF0QlosQ0FzQlksQ0FBQyxDQUFDLFFBQVE7QUF4QmIsUUFBQSxnQkFBZ0Isb0JBd0JaIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uxf/cms",
3
- "version": "2.5.0",
3
+ "version": "2.6.0",
4
4
  "description": "UXF Cms",
5
5
  "author": "UXFans <dev@uxf.cz>",
6
6
  "homepage": "https://gitlab.com/uxf-npm/cms#readme",
@@ -85,6 +85,7 @@ var withAuthenticate_1 = require("../../deprecated/hoc/withAuthenticate");
85
85
  var api_2 = require("../../lib/api");
86
86
  var getInitialPropsHelper_1 = require("./getInitialPropsHelper");
87
87
  var useHiddenColumns_1 = require("./useHiddenColumns");
88
+ var config_1 = require("../../config");
88
89
  var axiosRequest = (0, api_2.createAxiosInstance)().axiosRequest;
89
90
  var dataGridLoader = function (gridName, request) {
90
91
  return axiosRequest(null, "/api/cms/datagrid/".concat(gridName), "get", null, request).then(function (r) { return r.data; });
@@ -117,30 +118,38 @@ var GridPage = function (config) {
117
118
  return (react_1.default.createElement(GridPageComponent, __assign({}, props, { title: config.title, loader: config.loader, onEdit: config.onEdit, getEditUrl: config.getEditUrl, onAdd: config.onAdd, onRemove: config.onRemove, onOpen: config.onOpen, getOpenUrl: config.getOpenUrl, BodyCell: config.BodyCell, ActionCell: config.ActionCell, FilterInput: config.FilterInput, FilterListItem: config.FilterListItem, actionCellWidth: config.actionCellWidth, Layout: config.Layout, rowHeight: config.rowHeight, FullTextInputProps: config.FullTextInputProps, defaultConfig: config.defaultConfig })));
118
119
  };
119
120
  Component.getInitialProps = function (ctx) { return __awaiter(void 0, void 0, void 0, function () {
120
- var entityAlias, initialHiddenColumns;
121
- var _a;
122
- return __generator(this, function (_b) {
123
- switch (_b.label) {
121
+ var entityAlias, initialHiddenColumns, _a;
122
+ var _b;
123
+ return __generator(this, function (_c) {
124
+ switch (_c.label) {
124
125
  case 0:
125
126
  entityAlias = typeof config.entityAlias === "function" ? config.entityAlias(ctx) : config.entityAlias;
126
- return [4 /*yield*/, (0, api_1.userConfigGet)(ctx, "v1--hidden-columns--".concat(entityAlias), [])];
127
+ if (!config_1.container.has("api.getUserConfig")) return [3 /*break*/, 2];
128
+ return [4 /*yield*/, config_1.container.get("api.getUserConfig")(ctx, "v1--hidden-columns--".concat(entityAlias), [])];
127
129
  case 1:
128
- initialHiddenColumns = _b.sent();
129
- _a = {
130
+ _a = _c.sent();
131
+ return [3 /*break*/, 4];
132
+ case 2: return [4 /*yield*/, (0, api_1.userConfigGet)(ctx, "v1--hidden-columns--".concat(entityAlias), [])];
133
+ case 3:
134
+ _a = _c.sent();
135
+ _c.label = 4;
136
+ case 4:
137
+ initialHiddenColumns = _a;
138
+ _b = {
130
139
  entityAlias: entityAlias,
131
140
  initialHiddenColumns: initialHiddenColumns,
132
141
  query: ctx.query
133
142
  };
134
143
  return [4 /*yield*/, (0, getInitialPropsHelper_1.loadEntityMetaSchema)(ctx, entityAlias)];
135
- case 2:
136
- _a.metaSchema = _b.sent();
144
+ case 5:
145
+ _b.metaSchema = _c.sent();
137
146
  return [4 /*yield*/, (0, getInitialPropsHelper_1.loadEntityGridSchema)(ctx, entityAlias)];
138
- case 3: return [2 /*return*/, (_a.gridSchema = _b.sent(),
139
- _a)];
147
+ case 6: return [2 /*return*/, (_b.gridSchema = _c.sent(),
148
+ _b)];
140
149
  }
141
150
  });
142
151
  }); };
143
152
  return (0, withAuthenticate_1.withAuthenticate)({ allowedRoles: config.allowedRoles || ["ROLE_ROOT"] })(Component);
144
153
  };
145
154
  exports.GridPage = GridPage;
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JpZFBhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFnZXMvR3JpZFBhZ2UvR3JpZFBhZ2UudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGdFQUEwQztBQUMxQywwREFBb0M7QUFDcEMsMERBQW9DO0FBQ3BDLGtFQUE0QztBQUM1Qyw0Q0FBcUU7QUFDckUsc0NBQWlEO0FBRWpELHVEQUFpQztBQUNqQywwQ0FBb0I7QUFDcEIsNkNBQTJDO0FBQzNDLDJCQUF3QztBQUN4QyxpQ0FBMEM7QUFDMUMsMEVBQXlFO0FBQ3pFLHFDQUFvRDtBQUNwRCxpRUFBcUY7QUFFckYsdURBQXNEO0FBRTlDLElBQUEsWUFBWSxHQUFLLElBQUEseUJBQW1CLEdBQUUsYUFBMUIsQ0FBMkI7QUFFeEMsSUFBTSxjQUFjLEdBQUcsVUFBQyxRQUFnQixFQUFFLE9BQWdCO0lBQzdELE9BQU8sWUFBWSxDQUFXLElBQUksRUFBRSw0QkFBcUIsUUFBUSxDQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBQyxDQUFDLElBQUssT0FBQSxDQUFDLENBQUMsSUFBSSxFQUFOLENBQU0sQ0FBQyxDQUFDO0FBQ25ILENBQUMsQ0FBQztBQUZXLFFBQUEsY0FBYyxrQkFFekI7QUFFRixJQUFNLGFBQWEsR0FBb0IsVUFBQyxLQUFLLElBQUssT0FBQSxrREFBUyxLQUFLLEVBQUksRUFBbEIsQ0FBa0IsQ0FBQztBQUVyRSxJQUFNLGlCQUFpQixHQUFxQyxVQUFDLEtBQUs7O0lBRTFELElBQUEsVUFBVSxHQXNCVixLQUFLLFdBdEJLLEVBQ1YsV0FBVyxHQXFCWCxLQUFLLFlBckJNLEVBQ1gsVUFBVSxHQW9CVixLQUFLLFdBcEJLLEVBQ1YsVUFBVSxHQW1CVixLQUFLLFdBbkJL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
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JpZFBhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFnZXMvR3JpZFBhZ2UvR3JpZFBhZ2UudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGdFQUEwQztBQUMxQywwREFBb0M7QUFDcEMsMERBQW9DO0FBQ3BDLGtFQUE0QztBQUM1Qyw0Q0FBcUU7QUFDckUsc0NBQWlEO0FBRWpELHVEQUFpQztBQUNqQywwQ0FBb0I7QUFDcEIsNkNBQTJDO0FBQzNDLDJCQUF3QztBQUN4QyxpQ0FBMEM7QUFDMUMsMEVBQXlFO0FBQ3pFLHFDQUFvRDtBQUNwRCxpRUFBcUY7QUFFckYsdURBQXNEO0FBQ3RELHVDQUF5QztBQUVqQyxJQUFBLFlBQVksR0FBSyxJQUFBLHlCQUFtQixHQUFFLGFBQTFCLENBQTJCO0FBRXhDLElBQU0sY0FBYyxHQUFHLFVBQUMsUUFBZ0IsRUFBRSxPQUFnQjtJQUM3RCxPQUFPLFlBQVksQ0FBVyxJQUFJLEVBQUUsNEJBQXFCLFFBQVEsQ0FBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUMsQ0FBQyxJQUFLLE9BQUEsQ0FBQyxDQUFDLElBQUksRUFBTixDQUFNLENBQUMsQ0FBQztBQUNuSCxDQUFDLENBQUM7QUFGVyxRQUFBLGNBQWMsa0JBRXpCO0FBRUYsSUFBTSxhQUFhLEdBQW9CLFVBQUMsS0FBSyxJQUFLLE9BQUEsa0RBQVMsS0FBSyxFQUFJLEVBQWxCLENBQWtCLENBQUM7QUFFckUsSUFBTSxpQkFBaUIsR0FBcUMsVUFBQyxLQUFLOztJQUUxRCxJQUFBLFVBQVUsR0FzQlYsS0FBSyxXQXRCSyxFQUNWLFdBQVcsR0FxQlgsS0FBSyxZQXJCTSxFQUNYLFVBQVUsR0FvQlYsS0FBSyxXQXBCSyxFQUNWLFVBQVUsR0Ft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