@qoretechnologies/reqraft 0.1.0 → 0.2.1

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.
Files changed (88) hide show
  1. package/__tests__/ mock.ts +44 -0
  2. package/__tests__/utils.ts +11 -0
  3. package/dist/components/menu/Menu.d.ts +31 -0
  4. package/dist/components/menu/Menu.d.ts.map +1 -0
  5. package/dist/components/menu/Menu.js +130 -0
  6. package/dist/components/menu/Menu.js.map +1 -0
  7. package/dist/contexts/FetchContext.d.ts +10 -0
  8. package/dist/contexts/FetchContext.d.ts.map +1 -0
  9. package/dist/contexts/FetchContext.js +63 -0
  10. package/dist/contexts/FetchContext.js.map +1 -0
  11. package/dist/contexts/ReqraftContext.d.ts +9 -0
  12. package/dist/contexts/ReqraftContext.d.ts.map +1 -0
  13. package/dist/contexts/ReqraftContext.js +11 -0
  14. package/dist/contexts/ReqraftContext.js.map +1 -0
  15. package/dist/contexts/StorageContext.d.ts +11 -0
  16. package/dist/contexts/StorageContext.d.ts.map +1 -0
  17. package/dist/contexts/StorageContext.js +17 -0
  18. package/dist/contexts/StorageContext.js.map +1 -0
  19. package/dist/hooks/useFetch/useFetch.d.ts +21 -0
  20. package/dist/hooks/useFetch/useFetch.d.ts.map +1 -0
  21. package/dist/hooks/useFetch/useFetch.js +106 -0
  22. package/dist/hooks/useFetch/useFetch.js.map +1 -0
  23. package/dist/hooks/useReqraftProperty.d.ts +3 -0
  24. package/dist/hooks/useReqraftProperty.d.ts.map +1 -0
  25. package/dist/hooks/useReqraftProperty.js +16 -0
  26. package/dist/hooks/useReqraftProperty.js.map +1 -0
  27. package/dist/hooks/useStorage/useStorage.d.ts +8 -0
  28. package/dist/hooks/useStorage/useStorage.d.ts.map +1 -0
  29. package/dist/hooks/useStorage/useStorage.js +22 -0
  30. package/dist/hooks/useStorage/useStorage.js.map +1 -0
  31. package/dist/index.d.ts +4 -0
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +10 -1
  34. package/dist/index.js.map +1 -1
  35. package/dist/providers/FetchProvider.d.ts +6 -0
  36. package/dist/providers/FetchProvider.d.ts.map +1 -0
  37. package/dist/providers/FetchProvider.js +112 -0
  38. package/dist/providers/FetchProvider.js.map +1 -0
  39. package/dist/providers/ReqraftProvider.d.ts +10 -0
  40. package/dist/providers/ReqraftProvider.d.ts.map +1 -0
  41. package/dist/providers/ReqraftProvider.js +15 -0
  42. package/dist/providers/ReqraftProvider.js.map +1 -0
  43. package/dist/providers/StorageProvider.d.ts +6 -0
  44. package/dist/providers/StorageProvider.d.ts.map +1 -0
  45. package/dist/providers/StorageProvider.js +55 -0
  46. package/dist/providers/StorageProvider.js.map +1 -0
  47. package/dist/utils/fetch.d.ts +22 -0
  48. package/dist/utils/fetch.d.ts.map +1 -0
  49. package/dist/utils/fetch.js +140 -0
  50. package/dist/utils/fetch.js.map +1 -0
  51. package/package.json +8 -3
  52. package/src/components/menu/Menu.stories.tsx +73 -0
  53. package/src/components/menu/Menu.tsx +244 -0
  54. package/src/contexts/FetchContext.tsx +25 -0
  55. package/src/contexts/ReqraftContext.tsx +16 -0
  56. package/src/contexts/StorageContext.tsx +33 -0
  57. package/src/hooks/useFetch/useFetch.stories.tsx +123 -0
  58. package/src/hooks/useFetch/useFetch.tsx +71 -0
  59. package/src/hooks/useReqraftProperty.ts +16 -0
  60. package/src/hooks/useStorage/useStorage.stories.tsx +84 -0
  61. package/src/hooks/useStorage/useStorage.ts +30 -0
  62. package/src/index.tsx +11 -0
  63. package/src/providers/FetchProvider.tsx +62 -0
  64. package/src/providers/ReqraftProvider.tsx +33 -0
  65. package/src/providers/StorageProvider.tsx +80 -0
  66. package/src/utils/fetch.ts +121 -0
  67. package/.eslintrc.js +0 -40
  68. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -38
  69. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
  70. package/.github/ISSUE_TEMPLATE/new-component.md +0 -20
  71. package/.github/ISSUE_TEMPLATE/visual-bug-report.md +0 -38
  72. package/.github/workflows/beta_release.yml +0 -108
  73. package/.github/workflows/tests.yml +0 -120
  74. package/.prettierrc +0 -7
  75. package/build-storybook.log +0 -28
  76. package/dist/components/form/fields/string/String.stories.d.ts +0 -10
  77. package/dist/components/form/fields/string/String.stories.d.ts.map +0 -1
  78. package/dist/components/form/fields/string/String.stories.js +0 -21
  79. package/dist/components/form/fields/string/String.stories.js.map +0 -1
  80. package/public/logo-dark.png +0 -0
  81. package/public/logo.png +0 -0
  82. package/public/q-symbol-small.png +0 -0
  83. package/public/q-symbol.png +0 -0
  84. package/public/qoreLogo-dark.png +0 -0
  85. package/public/qoreLogo.png +0 -0
  86. package/src/icons.json +0 -2295
  87. package/tests.json +0 -1
  88. package/tsconfig.prod.json +0 -26
package/dist/index.js CHANGED
@@ -1,6 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FormStringField = void 0;
3
+ exports.query = exports.ReqraftQueryClient = exports.ReqraftProvider = exports.useFetch = exports.FormStringField = exports.ReqraftMenu = void 0;
4
+ var Menu_1 = require("./components/menu/Menu");
5
+ Object.defineProperty(exports, "ReqraftMenu", { enumerable: true, get: function () { return Menu_1.ReqraftMenu; } });
4
6
  var String_1 = require("./components/form/fields/string/String");
5
7
  Object.defineProperty(exports, "FormStringField", { enumerable: true, get: function () { return String_1.FormStringField; } });
8
+ var useFetch_1 = require("./hooks/useFetch/useFetch");
9
+ Object.defineProperty(exports, "useFetch", { enumerable: true, get: function () { return useFetch_1.useFetch; } });
10
+ var ReqraftProvider_1 = require("./providers/ReqraftProvider");
11
+ Object.defineProperty(exports, "ReqraftProvider", { enumerable: true, get: function () { return ReqraftProvider_1.ReqraftProvider; } });
12
+ Object.defineProperty(exports, "ReqraftQueryClient", { enumerable: true, get: function () { return ReqraftProvider_1.ReqraftQueryClient; } });
13
+ var fetch_1 = require("./utils/fetch");
14
+ Object.defineProperty(exports, "query", { enumerable: true, get: function () { return fetch_1.query; } });
6
15
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";;;AAAA,iEAAgG;AAAvF,yGAAA,eAAe,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";;;AAAA,+CAMgC;AAH9B,mGAAA,WAAW,OAAA;AAKb,iEAAgG;AAAvF,yGAAA,eAAe,OAAA;AACxB,sDAAuE;AAA5C,oGAAA,QAAQ,OAAA;AACnC,+DAAkF;AAAzE,kHAAA,eAAe,OAAA;AAAE,qHAAA,kBAAkB,OAAA;AAC5C,uCAAsC;AAA7B,8FAAA,KAAK,OAAA"}
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ export interface IReqraftFetchProviderProps {
3
+ children: React.ReactNode;
4
+ }
5
+ export declare const ReqraftFetchProvider: ({ children }: IReqraftFetchProviderProps) => import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=FetchProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FetchProvider.d.ts","sourceRoot":"","sources":["../../src/providers/FetchProvider.tsx"],"names":[],"mappings":";AAOA,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,eAAO,MAAM,oBAAoB,iBAAkB,0BAA0B,4CAkD5E,CAAC"}
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ Object.defineProperty(exports, "__esModule", { value: true });
50
+ exports.ReqraftFetchProvider = void 0;
51
+ var jsx_runtime_1 = require("react/jsx-runtime");
52
+ var react_query_1 = require("@tanstack/react-query");
53
+ var react_1 = require("react");
54
+ var react_use_1 = require("react-use");
55
+ var FetchContext_1 = require("../contexts/FetchContext");
56
+ var useReqraftProperty_1 = require("../hooks/useReqraftProperty");
57
+ var fetch_1 = require("../utils/fetch");
58
+ var ReqraftFetchProvider = function (_a) {
59
+ var children = _a.children;
60
+ var queryClient = (0, react_query_1.useQueryClient)();
61
+ var instance = (0, useReqraftProperty_1.useReqraftProperty)('instance');
62
+ var instanceToken = (0, useReqraftProperty_1.useReqraftProperty)('instanceToken');
63
+ var instanceUnauthorizedRedirect = (0, useReqraftProperty_1.useReqraftProperty)('instanceUnauthorizedRedirect');
64
+ var _b = (0, react_1.useState)(false), ready = _b[0], setReady = _b[1];
65
+ (0, react_use_1.useEffectOnce)(function () {
66
+ (0, fetch_1.setupFetch)({
67
+ instance: instance,
68
+ instanceToken: instanceToken,
69
+ unauthorizedRedirect: instanceUnauthorizedRedirect,
70
+ });
71
+ setReady(true);
72
+ });
73
+ if (!ready) {
74
+ return null;
75
+ }
76
+ function get(config) {
77
+ return __awaiter(this, void 0, void 0, function () {
78
+ return __generator(this, function (_a) {
79
+ return [2 /*return*/, (0, fetch_1.query)(__assign(__assign({ queryClient: queryClient }, config), { method: 'GET' }))];
80
+ });
81
+ });
82
+ }
83
+ function post(config) {
84
+ return __awaiter(this, void 0, void 0, function () {
85
+ return __generator(this, function (_a) {
86
+ return [2 /*return*/, (0, fetch_1.query)(__assign(__assign({ queryClient: queryClient }, config), { method: 'POST' }))];
87
+ });
88
+ });
89
+ }
90
+ function put(config) {
91
+ return __awaiter(this, void 0, void 0, function () {
92
+ return __generator(this, function (_a) {
93
+ return [2 /*return*/, (0, fetch_1.query)(__assign(__assign({ queryClient: queryClient }, config), { method: 'PUT' }))];
94
+ });
95
+ });
96
+ }
97
+ function del(config) {
98
+ return __awaiter(this, void 0, void 0, function () {
99
+ return __generator(this, function (_a) {
100
+ return [2 /*return*/, (0, fetch_1.query)(__assign(__assign({ queryClient: queryClient }, config), { method: 'DELETE' }))];
101
+ });
102
+ });
103
+ }
104
+ return ((0, jsx_runtime_1.jsx)(FetchContext_1.FetchContext.Provider, { value: {
105
+ get: get,
106
+ post: post,
107
+ put: put,
108
+ del: del,
109
+ }, children: children }));
110
+ };
111
+ exports.ReqraftFetchProvider = ReqraftFetchProvider;
112
+ //# sourceMappingURL=FetchProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FetchProvider.js","sourceRoot":"","sources":["../../src/providers/FetchProvider.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qDAAuD;AACvD,+BAAiC;AACjC,uCAA0C;AAC1C,yDAAoF;AACpF,kEAAiE;AACjE,wCAAmD;AAM5C,IAAM,oBAAoB,GAAG,UAAC,EAAwC;QAAtC,QAAQ,cAAA;IAC7C,IAAM,WAAW,GAAG,IAAA,4BAAc,GAAE,CAAC;IACrC,IAAM,QAAQ,GAAG,IAAA,uCAAkB,EAAC,UAAU,CAAC,CAAC;IAChD,IAAM,aAAa,GAAG,IAAA,uCAAkB,EAAC,eAAe,CAAC,CAAC;IAC1D,IAAM,4BAA4B,GAAG,IAAA,uCAAkB,EAAC,8BAA8B,CAAC,CAAC;IAElF,IAAA,KAAoB,IAAA,gBAAQ,EAAC,KAAK,CAAC,EAAlC,KAAK,QAAA,EAAE,QAAQ,QAAmB,CAAC;IAE1C,IAAA,yBAAa,EAAC;QACZ,IAAA,kBAAU,EAAC;YACT,QAAQ,UAAA;YACR,aAAa,eAAA;YACb,oBAAoB,EAAE,4BAA4B;SACnD,CAAC,CAAC;QAEH,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAe,GAAG,CAAI,MAAkC;;;gBACtD,sBAAO,IAAA,aAAK,sBAAM,WAAW,aAAA,IAAK,MAAM,KAAE,MAAM,EAAE,KAAK,IAAG,EAAC;;;KAC5D;IAED,SAAe,IAAI,CAAI,MAAkC;;;gBACvD,sBAAO,IAAA,aAAK,sBAAM,WAAW,aAAA,IAAK,MAAM,KAAE,MAAM,EAAE,MAAM,IAAG,EAAC;;;KAC7D;IAED,SAAe,GAAG,CAAI,MAAkC;;;gBACtD,sBAAO,IAAA,aAAK,sBAAM,WAAW,aAAA,IAAK,MAAM,KAAE,MAAM,EAAE,KAAK,IAAG,EAAC;;;KAC5D;IAED,SAAe,GAAG,CAAI,MAAkC;;;gBACtD,sBAAO,IAAA,aAAK,sBAAM,WAAW,aAAA,IAAK,MAAM,KAAE,MAAM,EAAE,QAAQ,IAAG,EAAC;;;KAC/D;IAED,OAAO,CACL,uBAAC,2BAAY,CAAC,QAAQ,IACpB,KAAK,EAAE;YACL,GAAG,KAAA;YACH,IAAI,MAAA;YACJ,GAAG,KAAA;YACH,GAAG,KAAA;SACJ,YAEA,QAAQ,GACa,CACzB,CAAC;AACJ,CAAC,CAAC;AAlDW,QAAA,oBAAoB,wBAkD/B"}
@@ -0,0 +1,10 @@
1
+ import { QueryClient } from '@tanstack/react-query';
2
+ import { ReactNode } from 'react';
3
+ import { IReqraftContext } from '../contexts/ReqraftContext';
4
+ export declare const ReqraftQueryClient: QueryClient;
5
+ export interface IReqraftProviderProps extends IReqraftContext {
6
+ children: ReactNode;
7
+ reactQueryClient?: QueryClient;
8
+ }
9
+ export declare const ReqraftProvider: ({ appName, children, instance, instanceToken, instanceUnauthorizedRedirect, reactQueryClient, }: IReqraftProviderProps) => import("react/jsx-runtime").JSX.Element;
10
+ //# sourceMappingURL=ReqraftProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReqraftProvider.d.ts","sourceRoot":"","sources":["../../src/providers/ReqraftProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAuB,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,eAAe,EAAkB,MAAM,4BAA4B,CAAC;AAI7E,eAAO,MAAM,kBAAkB,aAAoB,CAAC;AAEpD,MAAM,WAAW,qBAAsB,SAAQ,eAAe;IAC5D,QAAQ,EAAE,SAAS,CAAC;IACpB,gBAAgB,CAAC,EAAE,WAAW,CAAC;CAChC;AAED,eAAO,MAAM,eAAe,oGAOzB,qBAAqB,4CAYvB,CAAC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ReqraftProvider = exports.ReqraftQueryClient = void 0;
4
+ var jsx_runtime_1 = require("react/jsx-runtime");
5
+ var react_query_1 = require("@tanstack/react-query");
6
+ var ReqraftContext_1 = require("../contexts/ReqraftContext");
7
+ var FetchProvider_1 = require("./FetchProvider");
8
+ var StorageProvider_1 = require("./StorageProvider");
9
+ exports.ReqraftQueryClient = new react_query_1.QueryClient();
10
+ var ReqraftProvider = function (_a) {
11
+ var appName = _a.appName, children = _a.children, instance = _a.instance, instanceToken = _a.instanceToken, instanceUnauthorizedRedirect = _a.instanceUnauthorizedRedirect, reactQueryClient = _a.reactQueryClient;
12
+ return ((0, jsx_runtime_1.jsx)(ReqraftContext_1.ReqraftContext.Provider, { value: { appName: appName, instanceToken: instanceToken, instance: instance, instanceUnauthorizedRedirect: instanceUnauthorizedRedirect }, children: (0, jsx_runtime_1.jsx)(react_query_1.QueryClientProvider, { client: reactQueryClient || exports.ReqraftQueryClient, children: (0, jsx_runtime_1.jsx)(FetchProvider_1.ReqraftFetchProvider, { children: (0, jsx_runtime_1.jsx)(StorageProvider_1.ReqraftStorageProvider, { children: children }) }) }) }));
13
+ };
14
+ exports.ReqraftProvider = ReqraftProvider;
15
+ //# sourceMappingURL=ReqraftProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReqraftProvider.js","sourceRoot":"","sources":["../../src/providers/ReqraftProvider.tsx"],"names":[],"mappings":";;;;AAAA,qDAAyE;AAEzE,6DAA6E;AAC7E,iDAAuD;AACvD,qDAA2D;AAE9C,QAAA,kBAAkB,GAAG,IAAI,yBAAW,EAAE,CAAC;AAO7C,IAAM,eAAe,GAAG,UAAC,EAOR;QANtB,OAAO,aAAA,EACP,QAAQ,cAAA,EACR,QAAQ,cAAA,EACR,aAAa,mBAAA,EACb,4BAA4B,kCAAA,EAC5B,gBAAgB,sBAAA;IAEhB,OAAO,CACL,uBAAC,+BAAc,CAAC,QAAQ,IACtB,KAAK,EAAE,EAAE,OAAO,SAAA,EAAE,aAAa,eAAA,EAAE,QAAQ,UAAA,EAAE,4BAA4B,8BAAA,EAAE,YAEzE,uBAAC,iCAAmB,IAAC,MAAM,EAAE,gBAAgB,IAAI,0BAAkB,YACjE,uBAAC,oCAAoB,cACnB,uBAAC,wCAAsB,cAAE,QAAQ,GAA0B,GACtC,GACH,GACE,CAC3B,CAAC;AACJ,CAAC,CAAC;AAnBW,QAAA,eAAe,mBAmB1B"}
@@ -0,0 +1,6 @@
1
+ import { ReactNode } from 'react';
2
+ export interface IReqraftStorageProviderProps {
3
+ children: ReactNode;
4
+ }
5
+ export declare const ReqraftStorageProvider: ({ children }: IReqraftStorageProviderProps) => import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=StorageProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StorageProvider.d.ts","sourceRoot":"","sources":["../../src/providers/StorageProvider.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAuB,MAAM,OAAO,CAAC;AAOvD,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,eAAO,MAAM,sBAAsB,iBAAkB,4BAA4B,4CAmEhF,CAAC"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ReqraftStorageProvider = void 0;
4
+ var jsx_runtime_1 = require("react/jsx-runtime");
5
+ var lodash_1 = require("lodash");
6
+ var react_1 = require("react");
7
+ var StorageContext_1 = require("../contexts/StorageContext");
8
+ var useFetch_1 = require("../hooks/useFetch/useFetch");
9
+ var useReqraftProperty_1 = require("../hooks/useReqraftProperty");
10
+ var ReqraftStorageProvider = function (_a) {
11
+ var children = _a.children;
12
+ var appName = (0, useReqraftProperty_1.useReqraftProperty)('appName');
13
+ var _b = (0, useFetch_1.useFetch)({
14
+ url: 'users/_current_/storage',
15
+ cache: false,
16
+ loadOnMount: true,
17
+ }), data = _b.data, loading = _b.loading;
18
+ var load = (0, useFetch_1.useFetch)({
19
+ url: 'users/_current_/',
20
+ method: 'PUT',
21
+ cache: false,
22
+ }).load;
23
+ var _c = (0, react_1.useState)(data), storage = _c[0], setStorage = _c[1];
24
+ (0, react_1.useEffect)(function () {
25
+ if (data) {
26
+ setStorage(data);
27
+ }
28
+ }, [data]);
29
+ var getStorage = function (path, defaultValue, includeAppPrefix) {
30
+ var _a;
31
+ if (includeAppPrefix === void 0) { includeAppPrefix = true; }
32
+ var _path = includeAppPrefix ? "".concat(appName, ".").concat(path) : path;
33
+ return (_a = (0, lodash_1.get)(storage, _path)) !== null && _a !== void 0 ? _a : defaultValue;
34
+ };
35
+ var updateStorage = function (path, value, includeAppPrefix) {
36
+ if (includeAppPrefix === void 0) { includeAppPrefix = true; }
37
+ var _path = includeAppPrefix ? "".concat(appName, ".").concat(path) : path;
38
+ var updatedStorage = (0, lodash_1.set)((0, lodash_1.cloneDeep)(storage), _path, value);
39
+ setStorage(updatedStorage);
40
+ load({ body: { storage: updatedStorage } });
41
+ };
42
+ var removeStorageValue = function (path, includeAppPrefix) {
43
+ if (includeAppPrefix === void 0) { includeAppPrefix = true; }
44
+ var _path = includeAppPrefix ? "".concat(appName, ".").concat(path) : path;
45
+ var updatedStorage = (0, lodash_1.set)((0, lodash_1.cloneDeep)(storage), _path, null);
46
+ setStorage(updatedStorage);
47
+ load({ body: { storage_path: _path } });
48
+ };
49
+ if (loading || !storage) {
50
+ return null;
51
+ }
52
+ return ((0, jsx_runtime_1.jsx)(StorageContext_1.ReqraftStorageContext.Provider, { value: { storage: storage, getStorage: getStorage, updateStorage: updateStorage, removeStorageValue: removeStorageValue }, children: children }));
53
+ };
54
+ exports.ReqraftStorageProvider = ReqraftStorageProvider;
55
+ //# sourceMappingURL=StorageProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StorageProvider.js","sourceRoot":"","sources":["../../src/providers/StorageProvider.tsx"],"names":[],"mappings":";;;;AAAA,iCAA6C;AAC7C,+BAAuD;AAEvD,6DAAoF;AACpF,uDAAsD;AACtD,kEAAiE;AAO1D,IAAM,sBAAsB,GAAG,UAAC,EAA0C;QAAxC,QAAQ,cAAA;IAC/C,IAAM,OAAO,GAAG,IAAA,uCAAkB,EAAC,SAAS,CAAC,CAAC;IAExC,IAAA,KAAoB,IAAA,mBAAQ,EAAC;QACjC,GAAG,EAAE,yBAAyB;QAC9B,KAAK,EAAE,KAAK;QACZ,WAAW,EAAE,IAAI;KAClB,CAAC,EAJM,IAAI,UAAA,EAAE,OAAO,aAInB,CAAC;IAEK,IAAA,IAAI,GAAK,IAAA,mBAAQ,EAAC;QACxB,GAAG,EAAE,kBAAkB;QACvB,MAAM,EAAE,KAAK;QACb,KAAK,EAAE,KAAK;KACb,CAAC,KAJU,CAIT;IAEG,IAAA,KAAwB,IAAA,gBAAQ,EAAkB,IAAI,CAAC,EAAtD,OAAO,QAAA,EAAE,UAAU,QAAmC,CAAC;IAE9D,IAAA,iBAAS,EAAC;QACR,IAAI,IAAI,EAAE,CAAC;YACT,UAAU,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,IAAM,UAAU,GAAG,UACjB,IAAY,EACZ,YAAe,EACf,gBAAgC;;QAAhC,iCAAA,EAAA,uBAAgC;QAEhC,IAAM,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,UAAG,OAAO,cAAI,IAAI,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAE7D,OAAO,MAAA,IAAA,YAAG,EAAC,OAAO,EAAE,KAAK,CAAC,mCAAI,YAAY,CAAC;IAC7C,CAAC,CAAC;IAEF,IAAM,aAAa,GAAG,UACpB,IAAY,EACZ,KAAQ,EACR,gBAAgC;QAAhC,iCAAA,EAAA,uBAAgC;QAEhC,IAAM,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,UAAG,OAAO,cAAI,IAAI,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7D,IAAM,cAAc,GAAG,IAAA,YAAG,EAAC,IAAA,kBAAS,EAAC,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAE7D,UAAU,CAAC,cAAc,CAAC,CAAC;QAE3B,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;IAC9C,CAAC,CAAC;IAEF,IAAM,kBAAkB,GAAG,UAAU,IAAY,EAAE,gBAAgC;QAAhC,iCAAA,EAAA,uBAAgC;QACjF,IAAM,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,UAAG,OAAO,cAAI,IAAI,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAE7D,IAAM,cAAc,GAAG,IAAA,YAAG,EAAC,IAAA,kBAAS,EAAC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAE5D,UAAU,CAAC,cAAc,CAAC,CAAC;QAE3B,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEF,IAAI,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,uBAAC,sCAAqB,CAAC,QAAQ,IAC7B,KAAK,EAAE,EAAE,OAAO,SAAA,EAAE,UAAU,YAAA,EAAE,aAAa,eAAA,EAAE,kBAAkB,oBAAA,EAAE,YAEhE,QAAQ,GACsB,CAClC,CAAC;AACJ,CAAC,CAAC;AAnEW,QAAA,sBAAsB,0BAmEjC"}
@@ -0,0 +1,22 @@
1
+ import { QueryClient } from '@tanstack/react-query';
2
+ export interface IReqraftFetchConfig {
3
+ instance: string;
4
+ instanceToken: string;
5
+ unauthorizedRedirect?: (pathname: string) => string;
6
+ }
7
+ export interface IReqraftFetchResponse<T> {
8
+ data: T;
9
+ ok: boolean;
10
+ code?: number;
11
+ error?: any;
12
+ }
13
+ export declare const setupFetch: ({ instance, instanceToken, unauthorizedRedirect, }: IReqraftFetchConfig) => void;
14
+ export interface IReqraftQueryConfig {
15
+ url: string;
16
+ method?: 'GET' | 'POST' | 'PUT' | 'DELETE';
17
+ body?: Record<string | number, any>;
18
+ cache?: boolean;
19
+ queryClient?: QueryClient;
20
+ }
21
+ export declare function query<T>({ url, method, body, cache, queryClient, }: IReqraftQueryConfig): Promise<IReqraftFetchResponse<T>>;
22
+ //# sourceMappingURL=fetch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/utils/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;CACrD;AAED,MAAM,WAAW,qBAAqB,CAAC,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC;IACR,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,GAAG,CAAC;CACb;AAUD,eAAO,MAAM,UAAU,uDAIpB,mBAAmB,SAOrB,CAAC;AA6BF,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,wBAAsB,KAAK,CAAC,CAAC,EAAE,EAC7B,GAAG,EACH,MAAc,EACd,IAAI,EACJ,KAAY,EACZ,WAAgC,GACjC,EAAE,mBAAmB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CA0CzD"}
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.query = exports.setupFetch = void 0;
40
+ var ReqraftProvider_1 = require("../providers/ReqraftProvider");
41
+ var fetchConfig = {
42
+ instance: window.location.origin + '/',
43
+ instanceToken: '',
44
+ unauthorizedRedirect: function (pathname) { return "/?next=".concat(pathname); },
45
+ };
46
+ var CACHE_EXPIRATION_TIME = 5 * 60 * 1000; // 5 minutes
47
+ var setupFetch = function (_a) {
48
+ var instance = _a.instance, instanceToken = _a.instanceToken, unauthorizedRedirect = _a.unauthorizedRedirect;
49
+ fetchConfig.instance = instance;
50
+ fetchConfig.instanceToken = instanceToken;
51
+ if (unauthorizedRedirect) {
52
+ fetchConfig.unauthorizedRedirect = unauthorizedRedirect;
53
+ }
54
+ };
55
+ exports.setupFetch = setupFetch;
56
+ function doFetchData(url_1) {
57
+ return __awaiter(this, arguments, void 0, function (url, method, body) {
58
+ if (method === void 0) { method = 'GET'; }
59
+ return __generator(this, function (_a) {
60
+ if (!fetchConfig.instanceToken) {
61
+ return [2 /*return*/, new Response(JSON.stringify({}), {
62
+ status: 401,
63
+ statusText: 'Unauthorized',
64
+ })];
65
+ }
66
+ return [2 /*return*/, fetch("".concat(fetchConfig.instance, "api/latest/").concat(url), {
67
+ method: method,
68
+ headers: {
69
+ 'Content-Type': 'application/json',
70
+ Authorization: "Bearer ".concat(fetchConfig.instanceToken),
71
+ },
72
+ body: JSON.stringify(body),
73
+ }).catch(function (error) {
74
+ return new Response(JSON.stringify({}), {
75
+ status: 500,
76
+ statusText: "Request failed ".concat(error.message),
77
+ });
78
+ })];
79
+ });
80
+ });
81
+ }
82
+ function query(_a) {
83
+ return __awaiter(this, arguments, void 0, function (_b) {
84
+ var shouldCache, cacheKey, requestData;
85
+ var _this = this;
86
+ var url = _b.url, _c = _b.method, method = _c === void 0 ? 'GET' : _c, body = _b.body, _d = _b.cache, cache = _d === void 0 ? true : _d, _e = _b.queryClient, queryClient = _e === void 0 ? ReqraftProvider_1.ReqraftQueryClient : _e;
87
+ return __generator(this, function (_f) {
88
+ switch (_f.label) {
89
+ case 0:
90
+ shouldCache = method === 'DELETE' || method === 'POST' ? false : cache;
91
+ cacheKey = "".concat(url, ":").concat(method, ":").concat(JSON.stringify(body || {}));
92
+ return [4 /*yield*/, queryClient.fetchQuery({
93
+ queryKey: [cacheKey],
94
+ queryFn: function () { return __awaiter(_this, void 0, void 0, function () {
95
+ var response, clone, json;
96
+ return __generator(this, function (_a) {
97
+ switch (_a.label) {
98
+ case 0: return [4 /*yield*/, doFetchData(url, method, body)];
99
+ case 1:
100
+ response = _a.sent();
101
+ clone = response.clone();
102
+ return [4 /*yield*/, clone.json()];
103
+ case 2:
104
+ json = _a.sent();
105
+ if (response.status === 401) {
106
+ window.location.href = fetchConfig.unauthorizedRedirect(window.location.pathname);
107
+ }
108
+ return [2 /*return*/, {
109
+ data: json,
110
+ ok: response.ok,
111
+ status: response.status,
112
+ statusText: response.statusText,
113
+ }];
114
+ }
115
+ });
116
+ }); },
117
+ staleTime: shouldCache ? CACHE_EXPIRATION_TIME : 0,
118
+ })];
119
+ case 1:
120
+ requestData = _f.sent();
121
+ if (!requestData.ok) {
122
+ queryClient.invalidateQueries({ queryKey: [cacheKey] });
123
+ return [2 /*return*/, {
124
+ data: null,
125
+ ok: false,
126
+ code: requestData.status,
127
+ error: requestData.statusText,
128
+ }];
129
+ }
130
+ return [2 /*return*/, {
131
+ data: requestData.data,
132
+ ok: true,
133
+ code: requestData.status,
134
+ }];
135
+ }
136
+ });
137
+ });
138
+ }
139
+ exports.query = query;
140
+ //# sourceMappingURL=fetch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../src/utils/fetch.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qoretechnologies/reqraft",
3
- "version": "0.1.0",
3
+ "version": "0.2.1",
4
4
  "description": "ReQraft is a collection of React components and hooks that are used across Qore Technologies' products made using the ReQore component library from Qore.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -9,11 +9,13 @@
9
9
  "test": "./node_modules/.bin/jest --passWithNoTests",
10
10
  "test:watch": "./node_modules/.bin/jest --watch --passWithNoTests",
11
11
  "test:ci": "./node_modules/.bin/jest --silent --json --outputFile=tests.json --passWithNoTests",
12
+ "precheck": "yarn run lint && yarn run test && yarn build:test:prod",
12
13
  "build": "./node_modules/typescript/bin/tsc --project tsconfig.prod.json",
13
14
  "build:test": "./node_modules/typescript/bin/tsc --noEmit",
14
15
  "build:test:prod": "./node_modules/typescript/bin/tsc --project tsconfig.prod.json --noEmit",
15
16
  "lint": "yarn run eslint ./src/",
16
17
  "storybook": "storybook dev -p 6008",
18
+ "update-reqore": "yarn add @qoretechnologies/reqore@beta",
17
19
  "test-storybook": "DEBUG_PRINT_LIMIT=0 test-storybook --url http://localhost:6008",
18
20
  "install-playwright": "npx playwright install --with-deps",
19
21
  "build-storybook": "storybook build",
@@ -32,7 +34,6 @@
32
34
  "qorus"
33
35
  ],
34
36
  "pre-push": [
35
- "source",
36
37
  "build:test:prod",
37
38
  "lint",
38
39
  "test"
@@ -51,7 +52,7 @@
51
52
  "@babel/preset-react": "^7.12.10",
52
53
  "@babel/preset-typescript": "^7.12.7",
53
54
  "@chromatic-com/storybook": "^1",
54
- "@qoretechnologies/reqore": "^0.41.0",
55
+ "@qoretechnologies/reqore": "^0.43.0",
55
56
  "@storybook/addon-actions": "^8.0.9",
56
57
  "@storybook/addon-essentials": "^8.0.9",
57
58
  "@storybook/addon-interactions": "^8.0.9",
@@ -71,6 +72,7 @@
71
72
  "@types/node": "^14.14.14",
72
73
  "@types/react": "^18.3.1",
73
74
  "@types/react-dom": "^18.3.0",
75
+ "@types/react-query": "^1.2.9",
74
76
  "@typescript-eslint/eslint-plugin": "^7.8.0",
75
77
  "@typescript-eslint/parser": "^7.8.0",
76
78
  "babel-jest": "^29.7.0",
@@ -89,8 +91,10 @@
89
91
  "react-intersection-observer": "^9.4.2",
90
92
  "react-test-renderer": "^18.2.0",
91
93
  "storybook": "^8.0.9",
94
+ "storybook-addon-mock": "^5.0.0",
92
95
  "ts-jest": "^29.1.2",
93
96
  "ts-node": "^9.1.1",
97
+ "type-fest": "^4.18.2",
94
98
  "typescript": "^5.4.5"
95
99
  },
96
100
  "peerDependencies": {
@@ -99,6 +103,7 @@
99
103
  "react-dom": "^18.3.1"
100
104
  },
101
105
  "dependencies": {
106
+ "@tanstack/react-query": "^5.35.5",
102
107
  "classnames": "^2.2.6",
103
108
  "epoch-timeago": "^1.1.9",
104
109
  "lodash": "^4.17.21",
@@ -0,0 +1,73 @@
1
+ import { StoryObj } from '@storybook/react';
2
+ import { expect, fireEvent, fn, waitFor } from '@storybook/test';
3
+ import { storiesStorageMock, storiesStorageMockEmpty } from '../../../__tests__/ mock';
4
+ import { testsWaitForText } from '../../../__tests__/utils';
5
+ import menu from '../../../mock/menu';
6
+ import { StoryMeta } from '../../types';
7
+ import { ReqraftMenu, TReqraftMenu } from './Menu';
8
+
9
+ const typedMenu = menu as TReqraftMenu;
10
+
11
+ const meta = {
12
+ component: ReqraftMenu,
13
+ title: 'Components/Menu',
14
+ render: (props) => <ReqraftMenu {...props} />,
15
+ parameters: {
16
+ mockData: [...storiesStorageMockEmpty],
17
+ },
18
+ } as StoryMeta<typeof ReqraftMenu>;
19
+
20
+ export default meta;
21
+ export type Story = StoryObj<typeof meta>;
22
+
23
+ export const Basic: Story = {
24
+ args: {
25
+ menu: typedMenu,
26
+ },
27
+ play: async () => {
28
+ await testsWaitForText('Developer Portal');
29
+ },
30
+ };
31
+ export const ActivePath: Story = {
32
+ args: {
33
+ path: '/Interfaces/mapper',
34
+ menu: typedMenu,
35
+ },
36
+ play: async () => {
37
+ await testsWaitForText('Developer Portal');
38
+ },
39
+ };
40
+
41
+ export const WithDefaultQuery: Story = {
42
+ args: {
43
+ menu: typedMenu,
44
+ defaultQuery: 'mapper',
45
+ },
46
+ play: async () => {
47
+ await testsWaitForText('Developer Portal');
48
+ await expect(document.querySelector('.reqore-input')).toHaveValue('mapper');
49
+ await expect(document.querySelectorAll('.reqore-menu-item')).toHaveLength(2);
50
+ },
51
+ };
52
+
53
+ export const Filtered: Story = {
54
+ args: {
55
+ menu: typedMenu,
56
+ onQueryChange: fn(),
57
+ },
58
+ play: async () => {
59
+ await testsWaitForText('Developer Portal');
60
+ await fireEvent.change(document.querySelector('.reqore-input'), { target: { value: 'step' } });
61
+
62
+ await waitFor(() => expect(document.querySelectorAll('.reqore-menu-item')).toHaveLength(2), {
63
+ timeout: 1000,
64
+ });
65
+ },
66
+ };
67
+
68
+ export const WidthFromStorage: Story = {
69
+ ...ActivePath,
70
+ parameters: {
71
+ mockData: [...storiesStorageMock],
72
+ },
73
+ };