bananas-commerce-admin 0.1.2 → 0.2.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.
Files changed (161) hide show
  1. package/dist/cjs/Admin.js +18 -19
  2. package/dist/cjs/App.js +11 -22
  3. package/dist/cjs/api.js +65 -124
  4. package/dist/cjs/components/Branding.js +8 -9
  5. package/dist/cjs/components/Hamburger.js +11 -22
  6. package/dist/cjs/components/Link.js +7 -8
  7. package/dist/cjs/components/Logo.js +3 -4
  8. package/dist/cjs/components/NavBar.js +31 -47
  9. package/dist/cjs/components/NavBarItem.js +14 -15
  10. package/dist/cjs/components/NavBarRoutes.js +18 -22
  11. package/dist/cjs/components/ProgressBar.js +3 -4
  12. package/dist/cjs/components/TitleBar.js +13 -14
  13. package/dist/cjs/components/User.js +21 -33
  14. package/dist/cjs/containers/Content.js +9 -5
  15. package/dist/cjs/containers/ErrorScreen.js +19 -20
  16. package/dist/cjs/containers/LoadingScreen.js +49 -63
  17. package/dist/cjs/containers/PageErrorBoundary.js +14 -32
  18. package/dist/cjs/containers/PageLoader.js +39 -95
  19. package/dist/cjs/contexts/ApiContext.js +16 -52
  20. package/dist/cjs/contexts/I18nContext.js +18 -57
  21. package/dist/cjs/contexts/RouterContext.js +44 -51
  22. package/dist/cjs/contexts/UserContext.js +43 -95
  23. package/dist/cjs/extensions/bananas/components/PasswordChangeForm.js +32 -44
  24. package/dist/cjs/extensions/bananas/index.js +3 -3
  25. package/dist/cjs/extensions/bananas/pages/me/list.js +9 -9
  26. package/dist/cjs/extensions/fulfillment/components/AddressInfo.js +6 -7
  27. package/dist/cjs/extensions/fulfillment/components/ContactInfo.js +13 -8
  28. package/dist/cjs/extensions/fulfillment/components/RecipientCard.js +12 -13
  29. package/dist/cjs/extensions/fulfillment/components/ShipmentAccordion.js +148 -25
  30. package/dist/cjs/extensions/fulfillment/components/ShipmentCard.js +25 -19
  31. package/dist/cjs/extensions/fulfillment/components/ShipmentDestinationButtons.js +24 -36
  32. package/dist/cjs/extensions/fulfillment/components/ShipmentDestinationIcon.js +11 -22
  33. package/dist/cjs/extensions/fulfillment/components/ShipmentItemsCard.js +44 -65
  34. package/dist/cjs/extensions/fulfillment/components/ShipmentItemsTable.js +71 -0
  35. package/dist/cjs/extensions/fulfillment/components/ShipmentRow.js +10 -11
  36. package/dist/cjs/extensions/fulfillment/index.js +21 -65
  37. package/dist/cjs/extensions/fulfillment/pages/order/list.js +69 -0
  38. package/dist/cjs/extensions/fulfillment/pages/recipient/detail.js +6 -10
  39. package/dist/cjs/extensions/fulfillment/pages/shipment/detail.js +82 -31
  40. package/dist/cjs/extensions/fulfillment/pages/shipment/list.js +31 -34
  41. package/dist/cjs/extensions/pos/components/PurchaseRow.js +13 -16
  42. package/dist/cjs/extensions/pos/components/ReceiptCard.js +43 -46
  43. package/dist/cjs/extensions/pos/components/ReceiptLine.js +14 -17
  44. package/dist/cjs/extensions/pos/components/ReceiptTable.js +71 -0
  45. package/dist/cjs/extensions/{fulfillment → pos}/components/SearchBar.js +26 -39
  46. package/dist/cjs/extensions/pos/index.js +12 -56
  47. package/dist/cjs/extensions/pos/pages/purchase/detail.js +32 -11
  48. package/dist/cjs/extensions/pos/pages/purchase/list.js +57 -21
  49. package/dist/cjs/forms/LoginForm.js +30 -30
  50. package/dist/cjs/hooks/useAsyncError.js +4 -4
  51. package/dist/cjs/hooks/useLocalStorage.js +7 -7
  52. package/dist/cjs/pages/DashboardPage.js +2 -2
  53. package/dist/cjs/pages/LoginPage.js +10 -11
  54. package/dist/cjs/router/Router.js +23 -21
  55. package/dist/cjs/router/routes.js +7 -7
  56. package/dist/cjs/util/format_purchase_number.js +1 -1
  57. package/dist/cjs/util/get_cookie.js +3 -3
  58. package/dist/cjs/util/index.js +7 -9
  59. package/dist/cjs/util/is_positive_integer.js +1 -1
  60. package/dist/cjs/util/select_styles.js +7 -23
  61. package/dist/esm/Admin.js +7 -8
  62. package/dist/esm/App.js +3 -14
  63. package/dist/esm/api.js +63 -124
  64. package/dist/esm/components/Branding.js +2 -3
  65. package/dist/esm/components/Hamburger.js +5 -16
  66. package/dist/esm/components/Link.js +4 -5
  67. package/dist/esm/components/Logo.js +2 -3
  68. package/dist/esm/components/NavBar.js +21 -37
  69. package/dist/esm/components/NavBarItem.js +6 -7
  70. package/dist/esm/components/NavBarRoutes.js +14 -18
  71. package/dist/esm/components/ProgressBar.js +1 -2
  72. package/dist/esm/components/TitleBar.js +4 -5
  73. package/dist/esm/components/User.js +12 -24
  74. package/dist/esm/containers/Content.js +7 -3
  75. package/dist/esm/containers/ErrorScreen.js +8 -9
  76. package/dist/esm/containers/LoadingScreen.js +41 -55
  77. package/dist/esm/containers/PageErrorBoundary.js +13 -32
  78. package/dist/esm/containers/PageLoader.js +33 -90
  79. package/dist/esm/contexts/ApiContext.js +12 -48
  80. package/dist/esm/contexts/I18nContext.js +15 -54
  81. package/dist/esm/contexts/RouterContext.js +39 -46
  82. package/dist/esm/contexts/UserContext.js +40 -92
  83. package/dist/esm/extensions/bananas/components/PasswordChangeForm.js +19 -31
  84. package/dist/esm/extensions/bananas/index.js +3 -3
  85. package/dist/esm/extensions/bananas/pages/me/list.js +2 -2
  86. package/dist/esm/extensions/fulfillment/components/AddressInfo.js +3 -4
  87. package/dist/esm/extensions/fulfillment/components/ContactInfo.js +9 -4
  88. package/dist/esm/extensions/fulfillment/components/RecipientCard.js +4 -5
  89. package/dist/esm/extensions/fulfillment/components/ShipmentAccordion.js +142 -19
  90. package/dist/esm/extensions/fulfillment/components/ShipmentCard.js +16 -10
  91. package/dist/esm/extensions/fulfillment/components/ShipmentDestinationButtons.js +19 -31
  92. package/dist/esm/extensions/fulfillment/components/ShipmentDestinationIcon.js +10 -21
  93. package/dist/esm/extensions/fulfillment/components/ShipmentItemsCard.js +25 -46
  94. package/dist/esm/extensions/fulfillment/components/ShipmentItemsTable.js +64 -0
  95. package/dist/esm/extensions/fulfillment/components/ShipmentRow.js +6 -7
  96. package/dist/esm/extensions/fulfillment/index.js +23 -67
  97. package/dist/esm/extensions/fulfillment/pages/order/list.js +64 -0
  98. package/dist/esm/extensions/fulfillment/pages/recipient/detail.js +3 -7
  99. package/dist/esm/extensions/fulfillment/pages/shipment/detail.js +77 -26
  100. package/dist/esm/extensions/fulfillment/pages/shipment/list.js +21 -24
  101. package/dist/esm/extensions/pos/components/PurchaseRow.js +8 -11
  102. package/dist/esm/extensions/pos/components/ReceiptCard.js +31 -34
  103. package/dist/esm/extensions/pos/components/ReceiptLine.js +9 -12
  104. package/dist/esm/extensions/pos/components/ReceiptTable.js +64 -0
  105. package/dist/esm/extensions/{fulfillment → pos}/components/SearchBar.js +14 -27
  106. package/dist/esm/extensions/pos/index.js +14 -58
  107. package/dist/esm/extensions/pos/pages/purchase/detail.js +26 -5
  108. package/dist/esm/extensions/pos/pages/purchase/list.js +45 -9
  109. package/dist/esm/forms/LoginForm.js +18 -18
  110. package/dist/esm/hooks/useAsyncError.js +3 -3
  111. package/dist/esm/hooks/useLocalStorage.js +6 -6
  112. package/dist/esm/pages/DashboardPage.js +1 -1
  113. package/dist/esm/pages/LoginPage.js +3 -4
  114. package/dist/esm/router/Router.js +16 -14
  115. package/dist/esm/router/routes.js +6 -6
  116. package/dist/esm/util/format_purchase_number.js +1 -1
  117. package/dist/esm/util/get_cookie.js +3 -3
  118. package/dist/esm/util/index.js +7 -9
  119. package/dist/esm/util/is_positive_integer.js +1 -1
  120. package/dist/esm/util/select_styles.js +8 -24
  121. package/dist/types/containers/PageLoader.d.ts +2 -0
  122. package/dist/types/extensions/fulfillment/components/ShipmentAccordion.d.ts +2 -2
  123. package/dist/types/extensions/fulfillment/components/ShipmentCard.d.ts +2 -2
  124. package/dist/types/extensions/fulfillment/components/ShipmentItemsTable.d.ts +8 -0
  125. package/dist/types/extensions/fulfillment/pages/order/list.d.ts +5 -0
  126. package/dist/types/extensions/fulfillment/pages/shipment/detail.d.ts +1 -1
  127. package/dist/types/extensions/fulfillment/types/shipment.d.ts +7 -0
  128. package/dist/types/extensions/pos/components/ReceiptCard.d.ts +2 -1
  129. package/dist/types/extensions/pos/components/ReceiptLine.d.ts +2 -0
  130. package/dist/types/extensions/pos/components/ReceiptTable.d.ts +8 -0
  131. package/dist/types/extensions/pos/components/SearchBar.d.ts +14 -0
  132. package/dist/types/router/Router.d.ts +6 -2
  133. package/package.json +1 -1
  134. package/src/Admin.tsx +0 -2
  135. package/src/components/User.tsx +2 -3
  136. package/src/containers/Content.tsx +6 -1
  137. package/src/containers/PageLoader.tsx +12 -3
  138. package/src/extensions/bananas/index.ts +1 -1
  139. package/src/extensions/fulfillment/components/ContactInfo.tsx +18 -2
  140. package/src/extensions/fulfillment/components/ShipmentAccordion.tsx +188 -24
  141. package/src/extensions/fulfillment/components/ShipmentCard.tsx +11 -13
  142. package/src/extensions/fulfillment/components/ShipmentDestinationButtons.tsx +5 -5
  143. package/src/extensions/fulfillment/components/ShipmentDestinationIcon.tsx +8 -8
  144. package/src/extensions/fulfillment/components/ShipmentItemsTable.tsx +130 -0
  145. package/src/extensions/fulfillment/index.tsx +27 -15
  146. package/src/extensions/fulfillment/pages/order/list.tsx +144 -0
  147. package/src/extensions/fulfillment/pages/recipient/detail.tsx +5 -4
  148. package/src/extensions/fulfillment/pages/shipment/detail.tsx +112 -14
  149. package/src/extensions/fulfillment/pages/shipment/list.tsx +2 -2
  150. package/src/extensions/fulfillment/types/shipment.ts +7 -0
  151. package/src/extensions/pos/components/PurchaseRow.tsx +3 -8
  152. package/src/extensions/pos/components/ReceiptCard.tsx +69 -44
  153. package/src/extensions/pos/components/ReceiptLine.tsx +16 -10
  154. package/src/extensions/pos/components/ReceiptTable.tsx +140 -0
  155. package/src/extensions/{fulfillment → pos}/components/SearchBar.tsx +8 -6
  156. package/src/extensions/pos/index.tsx +3 -3
  157. package/src/extensions/pos/pages/purchase/detail.tsx +34 -3
  158. package/src/extensions/pos/pages/purchase/list.tsx +55 -6
  159. package/src/router/Router.tsx +22 -8
  160. package/tsconfig.json +1 -1
  161. package/dist/types/extensions/fulfillment/components/SearchBar.d.ts +0 -14
package/dist/cjs/Admin.js CHANGED
@@ -3,24 +3,23 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- var react_1 = __importDefault(require("react"));
7
- var react_router_dom_1 = require("react-router-dom");
8
- var Box_1 = __importDefault(require("@mui/material/Box"));
9
- var NavBar_1 = __importDefault(require("./components/NavBar"));
10
- var LoadingScreen_1 = __importDefault(require("./containers/LoadingScreen"));
11
- var ApiContext_1 = require("./contexts/ApiContext");
12
- var I18nContext_1 = require("./contexts/I18nContext");
13
- var RouterContext_1 = require("./contexts/RouterContext");
14
- var UserContext_1 = require("./contexts/UserContext");
15
- var LoginPage_1 = __importDefault(require("./pages/LoginPage"));
16
- var Router_1 = require("./router/Router");
17
- var Admin = function (_a) {
18
- var logo = _a.logo, title = _a.title, subtitle = _a.subtitle, version = _a.version, nav = _a.nav, pages = _a.pages, extensions = _a.extensions, dashboard = _a.dashboard, basename = _a.basename;
19
- var _b = react_1.default.useState(false), loaded = _b[0], setLoaded = _b[1];
20
- var api = (0, ApiContext_1.useApi)();
21
- var i18n = (0, I18nContext_1.useI18n)();
22
- var user = (0, UserContext_1.useUser)().user;
23
- react_1.default.useEffect(function () {
6
+ const react_1 = __importDefault(require("react"));
7
+ const react_router_dom_1 = require("react-router-dom");
8
+ const Box_1 = __importDefault(require("@mui/material/Box"));
9
+ const NavBar_1 = __importDefault(require("./components/NavBar"));
10
+ const LoadingScreen_1 = __importDefault(require("./containers/LoadingScreen"));
11
+ const ApiContext_1 = require("./contexts/ApiContext");
12
+ const I18nContext_1 = require("./contexts/I18nContext");
13
+ const RouterContext_1 = require("./contexts/RouterContext");
14
+ const UserContext_1 = require("./contexts/UserContext");
15
+ const LoginPage_1 = __importDefault(require("./pages/LoginPage"));
16
+ const Router_1 = require("./router/Router");
17
+ const Admin = ({ logo, title, subtitle, version, nav, extensions, dashboard, basename, }) => {
18
+ const [loaded, setLoaded] = react_1.default.useState(false);
19
+ const api = (0, ApiContext_1.useApi)();
20
+ const i18n = (0, I18nContext_1.useI18n)();
21
+ const { user } = (0, UserContext_1.useUser)();
22
+ react_1.default.useEffect(() => {
24
23
  if (!loaded && api !== undefined && i18n !== undefined && user !== undefined) {
25
24
  setLoaded(true);
26
25
  }
@@ -40,7 +39,7 @@ var Admin = function (_a) {
40
39
  react_1.default.createElement(RouterContext_1.RouterContextProvider, null,
41
40
  react_1.default.createElement(Box_1.default, { sx: { display: "flex" } },
42
41
  react_1.default.createElement(NavBar_1.default, { nav: nav, logo: logo, title: title, subtitle: subtitle, version: version }),
43
- react_1.default.createElement(Router_1.Router, { pages: pages, extensions: extensions, dashboard: dashboard })))))
42
+ react_1.default.createElement(Router_1.Router, { extensions: extensions, dashboard: dashboard })))))
44
43
  : react_1.default.createElement(LoginPage_1.default, { logo: logo, title: title })
45
44
  : react_1.default.createElement(LoadingScreen_1.default, { logo: logo, loading: !loaded }))));
46
45
  };
package/dist/cjs/App.js CHANGED
@@ -1,15 +1,4 @@
1
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
2
  var __rest = (this && this.__rest) || function (s, e) {
14
3
  var t = {};
15
4
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
@@ -25,16 +14,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
25
14
  return (mod && mod.__esModule) ? mod : { "default": mod };
26
15
  };
27
16
  Object.defineProperty(exports, "__esModule", { value: true });
28
- var react_1 = __importDefault(require("react"));
29
- var CssBaseline_1 = __importDefault(require("@mui/material/CssBaseline"));
30
- var styles_1 = require("@mui/material/styles");
31
- var Admin_1 = __importDefault(require("./Admin"));
32
- var ApiContext_1 = require("./contexts/ApiContext");
33
- var UserContext_1 = require("./contexts/UserContext");
34
- var I18nContext_1 = require("./contexts/I18nContext");
35
- var notistack_1 = require("notistack");
36
- var App = function (_a) {
37
- var theme = _a.theme, api = _a.api, rest = __rest(_a, ["theme", "api"]);
17
+ const react_1 = __importDefault(require("react"));
18
+ const CssBaseline_1 = __importDefault(require("@mui/material/CssBaseline"));
19
+ const styles_1 = require("@mui/material/styles");
20
+ const Admin_1 = __importDefault(require("./Admin"));
21
+ const ApiContext_1 = require("./contexts/ApiContext");
22
+ const UserContext_1 = require("./contexts/UserContext");
23
+ const I18nContext_1 = require("./contexts/I18nContext");
24
+ const notistack_1 = require("notistack");
25
+ const App = (_a) => {
26
+ var { theme, api } = _a, rest = __rest(_a, ["theme", "api"]);
38
27
  return (react_1.default.createElement(styles_1.ThemeProvider, { theme: theme !== null && theme !== void 0 ? theme : (0, styles_1.createTheme)() },
39
28
  react_1.default.createElement(CssBaseline_1.default, null),
40
29
  react_1.default.createElement(notistack_1.SnackbarProvider, { maxSnack: 4, anchorOrigin: {
@@ -44,6 +33,6 @@ var App = function (_a) {
44
33
  react_1.default.createElement(ApiContext_1.ApiContextProvider, { api: api },
45
34
  react_1.default.createElement(I18nContext_1.I18nContextProvider, null,
46
35
  react_1.default.createElement(UserContext_1.UserContextProvider, null,
47
- react_1.default.createElement(Admin_1.default, __assign({}, rest))))))));
36
+ react_1.default.createElement(Admin_1.default, Object.assign({}, rest))))))));
48
37
  };
49
38
  exports.default = App;
package/dist/cjs/api.js CHANGED
@@ -8,42 +8,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
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 (_) 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
11
  var __importDefault = (this && this.__importDefault) || function (mod) {
39
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
40
13
  };
41
14
  Object.defineProperty(exports, "__esModule", { value: true });
42
15
  exports.ApiClient = exports.ApiOperation = void 0;
43
- var swagger_parser_1 = __importDefault(require("@apidevtools/swagger-parser"));
44
- var get_cookie_1 = require("./util/get_cookie");
45
- var ApiOperation = /** @class */ (function () {
46
- function ApiOperation(id, tags, server, endpoint, method, request, summary, description) {
16
+ const swagger_parser_1 = __importDefault(require("@apidevtools/swagger-parser"));
17
+ const get_cookie_1 = require("./util/get_cookie");
18
+ class ApiOperation {
19
+ constructor(id, tags, server, endpoint, method, request, summary, description) {
47
20
  this.id = id;
48
21
  this.tags = tags;
49
22
  this.server = server;
@@ -53,48 +26,39 @@ var ApiOperation = /** @class */ (function () {
53
26
  this.summary = summary;
54
27
  this.description = description;
55
28
  }
56
- ApiOperation.prototype.call = function (request, init) {
29
+ call(request, init) {
57
30
  var _a, _b;
58
- return __awaiter(this, void 0, void 0, function () {
59
- var endpoint, csrftoken, _i, _c, _d, name_1, value, url;
60
- return __generator(this, function (_e) {
61
- switch (_e.label) {
62
- case 0:
63
- endpoint = this.endpoint;
64
- csrftoken = (0, get_cookie_1.getCookie)("csrftoken");
65
- init !== null && init !== void 0 ? init : (init = {});
66
- (_a = init.method) !== null && _a !== void 0 ? _a : (init.method = this.method);
67
- init.headers = new Headers(init.headers);
68
- if (csrftoken !== undefined)
69
- init.headers.append("X-CSRFToken", csrftoken);
70
- init.credentials = "include";
71
- // Add body to request
72
- if ((request === null || request === void 0 ? void 0 : request.body) !== undefined) {
73
- (_b = init.body) !== null && _b !== void 0 ? _b : (init.body = JSON.stringify(request === null || request === void 0 ? void 0 : request.body));
74
- }
75
- // Add params to url
76
- if ((request === null || request === void 0 ? void 0 : request.params) !== undefined) {
77
- for (_i = 0, _c = Object.entries(request.params); _i < _c.length; _i++) {
78
- _d = _c[_i], name_1 = _d[0], value = _d[1];
79
- endpoint = endpoint.replace("{".concat(name_1, "}"), value);
80
- }
81
- }
82
- url = new URL(this.server + endpoint);
83
- // Add query to url
84
- if ((request === null || request === void 0 ? void 0 : request.query) !== undefined) {
85
- url.search = request.query.toString();
86
- }
87
- return [4 /*yield*/, fetch(url, init)];
88
- case 1: return [2 /*return*/, _e.sent()];
31
+ return __awaiter(this, void 0, void 0, function* () {
32
+ let endpoint = this.endpoint;
33
+ const csrftoken = (0, get_cookie_1.getCookie)("csrftoken");
34
+ init !== null && init !== void 0 ? init : (init = {});
35
+ (_a = init.method) !== null && _a !== void 0 ? _a : (init.method = this.method);
36
+ init.headers = new Headers(init.headers);
37
+ if (csrftoken !== undefined)
38
+ init.headers.append("X-CSRFToken", csrftoken);
39
+ init.credentials = "include";
40
+ // Add body to request
41
+ if ((request === null || request === void 0 ? void 0 : request.body) !== undefined) {
42
+ (_b = init.body) !== null && _b !== void 0 ? _b : (init.body = JSON.stringify(request === null || request === void 0 ? void 0 : request.body));
43
+ }
44
+ // Add params to url
45
+ if ((request === null || request === void 0 ? void 0 : request.params) !== undefined) {
46
+ for (const [name, value] of Object.entries(request.params)) {
47
+ endpoint = endpoint.replace(`{${name}}`, value);
89
48
  }
90
- });
49
+ }
50
+ const url = new URL(this.server + endpoint);
51
+ // Add query to url
52
+ if ((request === null || request === void 0 ? void 0 : request.query) !== undefined) {
53
+ url.search = request.query.toString();
54
+ }
55
+ return yield fetch(url, init);
91
56
  });
92
- };
93
- return ApiOperation;
94
- }());
57
+ }
58
+ }
95
59
  exports.ApiOperation = ApiOperation;
96
- var ApiClient = /** @class */ (function () {
97
- function ApiClient(document, server) {
60
+ class ApiClient {
61
+ constructor(document, server) {
98
62
  var _a, _b, _c, _d, _e, _f, _g, _h;
99
63
  this.operations = {};
100
64
  this.document = document;
@@ -108,22 +72,19 @@ var ApiClient = /** @class */ (function () {
108
72
  server = new URL(server);
109
73
  }
110
74
  // Build operations
111
- for (var _i = 0, _j = Object.entries((_a = this.document.paths) !== null && _a !== void 0 ? _a : {}); _i < _j.length; _i++) {
112
- var _k = _j[_i], path = _k[0], definition = _k[1];
113
- for (var _l = 0, _m = Object.entries(definition); _l < _m.length; _l++) {
114
- var _o = _m[_l], method = _o[0], operation = _o[1];
75
+ for (const [path, definition] of Object.entries((_a = this.document.paths) !== null && _a !== void 0 ? _a : {})) {
76
+ for (const [method, operation] of Object.entries(definition)) {
115
77
  // All operations require an operation id
116
78
  if (!operation.operationId) {
117
79
  break;
118
80
  }
119
81
  // Check if an tag starting with `app:` exists on the operation
120
- if (!((_b = operation.tags) === null || _b === void 0 ? void 0 : _b.some(function (tag) { return tag.startsWith("app:"); }))) {
82
+ if (!((_b = operation.tags) === null || _b === void 0 ? void 0 : _b.some((tag) => tag.startsWith("app:")))) {
121
83
  break;
122
84
  }
123
- var request = {};
85
+ const request = {};
124
86
  // Fill the request object with `path`, `query` and `body` data which may be provided
125
- for (var _p = 0, _q = (_c = operation.parameters) !== null && _c !== void 0 ? _c : []; _p < _q.length; _p++) {
126
- var parameter = _q[_p];
87
+ for (const parameter of (_c = operation.parameters) !== null && _c !== void 0 ? _c : []) {
127
88
  if ("in" in parameter) {
128
89
  switch (parameter.in) {
129
90
  case "body": {
@@ -155,11 +116,11 @@ var ApiClient = /** @class */ (function () {
155
116
  // If `requestBody` exists then add it to the request objects body object
156
117
  if ("requestBody" in operation && operation.requestBody !== undefined) {
157
118
  if ("content" in operation.requestBody) {
158
- var schema = operation.requestBody.content["application/json"].schema;
159
- var required = (_h = operation.requestBody.required) !== null && _h !== void 0 ? _h : false;
119
+ const schema = operation.requestBody.content["application/json"].schema;
120
+ const required = (_h = operation.requestBody.required) !== null && _h !== void 0 ? _h : false;
160
121
  request["body"] = {
161
- schema: schema,
162
- required: required,
122
+ schema,
123
+ required,
163
124
  };
164
125
  }
165
126
  }
@@ -168,55 +129,35 @@ var ApiClient = /** @class */ (function () {
168
129
  if (server.endsWith("/")) {
169
130
  server = server.slice(0, -1);
170
131
  }
171
- var endpoint = path.startsWith("/") ? path : "/" + path;
132
+ const endpoint = path.startsWith("/") ? path : "/" + path;
172
133
  // Create a new `ApiOperation` with the relevant information
173
134
  this.operations[operation.operationId] = new ApiOperation(operation.operationId, operation.tags, server, endpoint, method, request, operation.summary, operation.description);
174
135
  }
175
136
  }
176
137
  }
177
- ApiClient.load = function (source, server) {
178
- return __awaiter(this, void 0, void 0, function () {
179
- var response, schema, document;
180
- return __generator(this, function (_a) {
181
- switch (_a.label) {
182
- case 0: return [4 /*yield*/, fetch(source)];
183
- case 1:
184
- response = _a.sent();
185
- if (!response.ok) {
186
- throw new Error("Could not load schema from ".concat(source));
187
- }
188
- return [4 /*yield*/, response.json().catch(function (e) {
189
- throw e;
190
- })];
191
- case 2:
192
- schema = _a.sent();
193
- return [4 /*yield*/, swagger_parser_1.default.dereference(schema)];
194
- case 3:
195
- document = _a.sent();
196
- return [2 /*return*/, new ApiClient(document, server)];
197
- }
138
+ static load(source, server) {
139
+ return __awaiter(this, void 0, void 0, function* () {
140
+ const response = yield fetch(source);
141
+ if (!response.ok) {
142
+ throw new Error(`Could not load schema from ${source}`);
143
+ }
144
+ const schema = yield response.json().catch((e) => {
145
+ throw e;
198
146
  });
147
+ const document = yield swagger_parser_1.default.dereference(schema);
148
+ return new ApiClient(document, server);
199
149
  });
200
- };
201
- ApiClient.prototype.isAuthenticated = function () {
202
- return __awaiter(this, void 0, void 0, function () {
203
- var response, _a;
204
- return __generator(this, function (_b) {
205
- switch (_b.label) {
206
- case 0:
207
- _b.trys.push([0, 2, , 3]);
208
- return [4 /*yield*/, this.operations["bananas.me:list"].call()];
209
- case 1:
210
- response = _b.sent();
211
- return [2 /*return*/, response.ok];
212
- case 2:
213
- _a = _b.sent();
214
- return [2 /*return*/, false];
215
- case 3: return [2 /*return*/];
216
- }
217
- });
150
+ }
151
+ isAuthenticated() {
152
+ return __awaiter(this, void 0, void 0, function* () {
153
+ try {
154
+ const response = yield this.operations["bananas.me:list"].call();
155
+ return response.ok;
156
+ }
157
+ catch (_a) {
158
+ return false;
159
+ }
218
160
  });
219
- };
220
- return ApiClient;
221
- }());
161
+ }
162
+ }
222
163
  exports.ApiClient = ApiClient;
@@ -3,14 +3,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- var react_1 = __importDefault(require("react"));
7
- var Box_1 = __importDefault(require("@mui/material/Box"));
8
- var ButtonBase_1 = __importDefault(require("@mui/material/ButtonBase"));
9
- var Typography_1 = __importDefault(require("@mui/material/Typography"));
10
- var select_styles_1 = require("../util/select_styles");
11
- var Logo_1 = __importDefault(require("./Logo"));
12
- var Branding = function (_a) {
13
- var logo = _a.logo, title = _a.title, subtitle = _a.subtitle, version = _a.version, onClick = _a.onClick, fullWidth = _a.fullWidth, sx = _a.sx;
6
+ const react_1 = __importDefault(require("react"));
7
+ const Box_1 = __importDefault(require("@mui/material/Box"));
8
+ const ButtonBase_1 = __importDefault(require("@mui/material/ButtonBase"));
9
+ const Typography_1 = __importDefault(require("@mui/material/Typography"));
10
+ const select_styles_1 = require("../util/select_styles");
11
+ const Logo_1 = __importDefault(require("./Logo"));
12
+ const Branding = ({ logo, title, subtitle, version, onClick, fullWidth, sx }) => {
14
13
  return (react_1.default.createElement(Box_1.default, { sx: (0, select_styles_1.ss)({
15
14
  display: "flex",
16
15
  flexDirection: "row",
@@ -32,7 +31,7 @@ var Branding = function (_a) {
32
31
  textAlign: "left",
33
32
  fontSize: "0.75rem",
34
33
  display: "block",
35
- lineHeight: "1em",
34
+ lineHeight: `1em`,
36
35
  },
37
36
  } },
38
37
  react_1.default.createElement(Typography_1.default, { color: "inherit" }, subtitle),
@@ -1,15 +1,4 @@
1
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
2
  var __rest = (this && this.__rest) || function (s, e) {
14
3
  var t = {};
15
4
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
@@ -25,16 +14,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
25
14
  return (mod && mod.__esModule) ? mod : { "default": mod };
26
15
  };
27
16
  Object.defineProperty(exports, "__esModule", { value: true });
28
- var react_1 = __importDefault(require("react"));
29
- var ChevronLeft_1 = __importDefault(require("@mui/icons-material/ChevronLeft"));
30
- var Menu_1 = __importDefault(require("@mui/icons-material/Menu"));
31
- var Box_1 = __importDefault(require("@mui/material/Box"));
32
- var IconButton_1 = __importDefault(require("@mui/material/IconButton"));
33
- var styles_1 = require("@mui/material/styles");
34
- var Hamburger = function (_a) {
35
- var open = _a.open, onToggle = _a.onToggle, rest = __rest(_a, ["open", "onToggle"]);
36
- var theme = (0, styles_1.useTheme)();
37
- return (react_1.default.createElement(Box_1.default, { sx: __assign({ display: "flex", alignItems: "center", justifyContent: "flex-start", padding: theme.spacing(0, 1), flexShrink: 1 }, theme.mixins.toolbar) },
38
- react_1.default.createElement(IconButton_1.default, __assign({ "aria-label": open ? "Close drawer" : "Open drawer", color: "inherit", onClick: onToggle }, rest, { size: "large" }), open ? react_1.default.createElement(ChevronLeft_1.default, null) : react_1.default.createElement(Menu_1.default, null))));
17
+ const react_1 = __importDefault(require("react"));
18
+ const ChevronLeft_1 = __importDefault(require("@mui/icons-material/ChevronLeft"));
19
+ const Menu_1 = __importDefault(require("@mui/icons-material/Menu"));
20
+ const Box_1 = __importDefault(require("@mui/material/Box"));
21
+ const IconButton_1 = __importDefault(require("@mui/material/IconButton"));
22
+ const styles_1 = require("@mui/material/styles");
23
+ const Hamburger = (_a) => {
24
+ var { open, onToggle } = _a, rest = __rest(_a, ["open", "onToggle"]);
25
+ const theme = (0, styles_1.useTheme)();
26
+ return (react_1.default.createElement(Box_1.default, { sx: Object.assign({ display: "flex", alignItems: "center", justifyContent: "flex-start", padding: theme.spacing(0, 1), flexShrink: 1 }, theme.mixins.toolbar) },
27
+ react_1.default.createElement(IconButton_1.default, Object.assign({ "aria-label": open ? "Close drawer" : "Open drawer", color: "inherit", onClick: onToggle }, rest, { size: "large" }), open ? react_1.default.createElement(ChevronLeft_1.default, null) : react_1.default.createElement(Menu_1.default, null))));
39
28
  };
40
29
  exports.default = Hamburger;
@@ -3,16 +3,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- var RouterContext_1 = require("../contexts/RouterContext");
7
- var react_router_dom_1 = require("react-router-dom");
8
- var react_1 = __importDefault(require("react"));
9
- var Link = function (_a) {
10
- var route = _a.route;
11
- var getRoute = (0, RouterContext_1.useRouter)().getRoute;
6
+ const RouterContext_1 = require("../contexts/RouterContext");
7
+ const react_router_dom_1 = require("react-router-dom");
8
+ const react_1 = __importDefault(require("react"));
9
+ const Link = ({ route }) => {
10
+ const { getRoute } = (0, RouterContext_1.useRouter)();
12
11
  if (typeof route === "string") {
13
- var routeInfo = getRoute(route);
12
+ const routeInfo = getRoute(route);
14
13
  if (routeInfo === undefined) {
15
- throw new Error("Could not find route with reverse: ".concat(route));
14
+ throw new Error(`Could not find route with reverse: ${route}`);
16
15
  }
17
16
  route = routeInfo;
18
17
  }
@@ -3,9 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- var react_1 = __importDefault(require("react"));
7
- var Logo = function (_a) {
8
- var src = _a.src;
6
+ const react_1 = __importDefault(require("react"));
7
+ const Logo = ({ src }) => {
9
8
  if (src === true) {
10
9
  return (react_1.default.createElement("svg", { version: "1.1", id: "bananas", x: "0px", y: "0px", width: "32px", height: "32px", viewBox: "0 0 927.611 927.611", xmlSpace: "preserve", xmlns: "http://www.w3.org/2000/svg", xmlnsXlink: "http://www.w3.org/1999/xlink" },
11
10
  react_1.default.createElement("g", { fill: "#FFFFFF" },
@@ -17,7 +16,7 @@ var Logo = function (_a) {
17
16
  return react_1.default.createElement("img", { src: src });
18
17
  }
19
18
  if (src) {
20
- var Src = src;
19
+ const Src = src;
21
20
  return react_1.default.createElement(Src, null);
22
21
  }
23
22
  return null;
@@ -1,15 +1,4 @@
1
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
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
3
  if (k2 === undefined) k2 = k;
15
4
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -37,52 +26,47 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
37
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
38
27
  };
39
28
  Object.defineProperty(exports, "__esModule", { value: true });
40
- var React = __importStar(require("react"));
41
- var styles_1 = require("@mui/material/styles");
42
- var Box_1 = __importDefault(require("@mui/material/Box"));
43
- var Drawer_1 = __importDefault(require("@mui/material/Drawer"));
44
- var Divider_1 = __importDefault(require("@mui/material/Divider"));
45
- var User_1 = __importDefault(require("./User"));
46
- var Hamburger_1 = __importDefault(require("./Hamburger"));
47
- var NavBarRoutes_1 = __importDefault(require("./NavBarRoutes"));
48
- var Branding_1 = __importDefault(require("./Branding"));
49
- var react_router_dom_1 = require("react-router-dom");
50
- var drawerWidth = 240;
51
- var openedMixin = function (theme) { return ({
29
+ const React = __importStar(require("react"));
30
+ const styles_1 = require("@mui/material/styles");
31
+ const Box_1 = __importDefault(require("@mui/material/Box"));
32
+ const Drawer_1 = __importDefault(require("@mui/material/Drawer"));
33
+ const Divider_1 = __importDefault(require("@mui/material/Divider"));
34
+ const User_1 = __importDefault(require("./User"));
35
+ const Hamburger_1 = __importDefault(require("./Hamburger"));
36
+ const NavBarRoutes_1 = __importDefault(require("./NavBarRoutes"));
37
+ const Branding_1 = __importDefault(require("./Branding"));
38
+ const react_router_dom_1 = require("react-router-dom");
39
+ const drawerWidth = 240;
40
+ const openedMixin = (theme) => ({
52
41
  width: drawerWidth,
53
42
  transition: theme.transitions.create("width", {
54
43
  easing: theme.transitions.easing.sharp,
55
44
  duration: theme.transitions.duration.enteringScreen,
56
45
  }),
57
46
  overflowX: "hidden",
58
- }); };
59
- var closedMixin = function (theme) {
60
- var _a;
61
- return (_a = {
62
- transition: theme.transitions.create("width", {
63
- easing: theme.transitions.easing.sharp,
64
- duration: theme.transitions.duration.leavingScreen,
65
- }),
66
- overflowX: "hidden",
67
- width: "calc(".concat(theme.spacing(7), " + 1px)")
68
- },
69
- _a[theme.breakpoints.up("sm")] = {
70
- width: "calc(".concat(theme.spacing(8), " + 1px)"),
71
- },
72
- _a);
73
- };
74
- var NavBar = function (_a) {
75
- var nav = _a.nav, logo = _a.logo, title = _a.title, subtitle = _a.subtitle, version = _a.version;
76
- var theme = (0, styles_1.useTheme)();
77
- var navigate = (0, react_router_dom_1.useNavigate)();
78
- var _b = React.useState(true), open = _b[0], setOpen = _b[1];
79
- var toggleDrawerOpen = function () {
47
+ });
48
+ const closedMixin = (theme) => ({
49
+ transition: theme.transitions.create("width", {
50
+ easing: theme.transitions.easing.sharp,
51
+ duration: theme.transitions.duration.leavingScreen,
52
+ }),
53
+ overflowX: "hidden",
54
+ width: `calc(${theme.spacing(7)} + 1px)`,
55
+ [theme.breakpoints.up("sm")]: {
56
+ width: `calc(${theme.spacing(8)} + 1px)`,
57
+ },
58
+ });
59
+ const NavBar = ({ nav, logo, title, subtitle, version }) => {
60
+ const theme = (0, styles_1.useTheme)();
61
+ const navigate = (0, react_router_dom_1.useNavigate)();
62
+ const [open, setOpen] = React.useState(true);
63
+ const toggleDrawerOpen = () => {
80
64
  setOpen(!open);
81
65
  };
82
- var onClick = function () {
66
+ const onClick = () => {
83
67
  navigate("/", { replace: true });
84
68
  };
85
- return (React.createElement(Drawer_1.default, { sx: __assign(__assign({ width: drawerWidth, flexShrink: 0, whiteSpace: "nowrap", boxSizing: "border-box" }, (open && __assign(__assign({}, openedMixin(theme)), { "& .MuiDrawer-paper": openedMixin(theme) }))), (!open && __assign(__assign({}, closedMixin(theme)), { "& .MuiDrawer-paper": closedMixin(theme) }))), anchor: "left", variant: "permanent", open: open },
69
+ return (React.createElement(Drawer_1.default, { sx: Object.assign(Object.assign({ width: drawerWidth, flexShrink: 0, whiteSpace: "nowrap", boxSizing: "border-box" }, (open && Object.assign(Object.assign({}, openedMixin(theme)), { "& .MuiDrawer-paper": openedMixin(theme) }))), (!open && Object.assign(Object.assign({}, closedMixin(theme)), { "& .MuiDrawer-paper": closedMixin(theme) }))), anchor: "left", variant: "permanent", open: open },
86
70
  React.createElement(Box_1.default, { sx: { display: "flex", padding: theme.spacing(2, 0, 2) } },
87
71
  React.createElement(Hamburger_1.default, { open: open, onClick: toggleDrawerOpen }),
88
72
  React.createElement(Branding_1.default, { sx: { opacity: open ? 1 : 0 }, logo: logo, title: title, subtitle: subtitle, version: version, onClick: onClick, fullWidth: open })),
@@ -3,21 +3,20 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- var styles_1 = require("@mui/material/styles");
7
- var ListItemButton_1 = __importDefault(require("@mui/material/ListItemButton"));
8
- var ListItemIcon_1 = __importDefault(require("@mui/material/ListItemIcon"));
9
- var ListItemText_1 = __importDefault(require("@mui/material/ListItemText"));
10
- var react_1 = __importDefault(require("react"));
11
- var react_router_dom_1 = require("react-router-dom");
12
- var RouterContext_1 = require("../contexts/RouterContext");
13
- var Logo_1 = __importDefault(require("./Logo"));
14
- var NavBarItem = function (_a) {
15
- var route = _a.route, title = _a.title, subtitle = _a.subtitle, icon = _a.icon, children = _a.children, open = _a.open;
16
- var Icon = icon;
17
- var location = (0, react_router_dom_1.useLocation)();
18
- var navigate = (0, RouterContext_1.useRouter)().navigate;
19
- var theme = (0, styles_1.useTheme)();
20
- return (react_1.default.createElement(ListItemButton_1.default, { selected: location.pathname === route.path, onClick: function () { return navigate(route); }, sx: {
6
+ const styles_1 = require("@mui/material/styles");
7
+ const ListItemButton_1 = __importDefault(require("@mui/material/ListItemButton"));
8
+ const ListItemIcon_1 = __importDefault(require("@mui/material/ListItemIcon"));
9
+ const ListItemText_1 = __importDefault(require("@mui/material/ListItemText"));
10
+ const react_1 = __importDefault(require("react"));
11
+ const react_router_dom_1 = require("react-router-dom");
12
+ const RouterContext_1 = require("../contexts/RouterContext");
13
+ const Logo_1 = __importDefault(require("./Logo"));
14
+ const NavBarItem = ({ route, title, subtitle, icon, children, open }) => {
15
+ const Icon = icon;
16
+ const location = (0, react_router_dom_1.useLocation)();
17
+ const { navigate } = (0, RouterContext_1.useRouter)();
18
+ const theme = (0, styles_1.useTheme)();
19
+ return (react_1.default.createElement(ListItemButton_1.default, { selected: location.pathname === route.path, onClick: () => navigate(route), sx: {
21
20
  justifyContent: open ? "initial" : "center",
22
21
  } },
23
22
  react_1.default.createElement(ListItemIcon_1.default, { sx: {