@multiplatform.one/backoffice 7.2.2 → 7.4.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 (195) hide show
  1. package/dist/cjs/config/BackofficeProvider.cjs +4 -10
  2. package/dist/cjs/config/BackofficeProvider.native.js +9 -29
  3. package/dist/cjs/config/BackofficeProvider.native.js.map +1 -1
  4. package/dist/cjs/desk/Desk.cjs +187 -0
  5. package/dist/cjs/desk/Desk.native.js +214 -0
  6. package/dist/cjs/desk/Desk.native.js.map +1 -0
  7. package/dist/cjs/desk/DeskSurface.cjs +123 -0
  8. package/dist/cjs/desk/DeskSurface.native.js +130 -0
  9. package/dist/cjs/desk/DeskSurface.native.js.map +1 -0
  10. package/dist/cjs/desk/resolveDeskPath.cjs +118 -0
  11. package/dist/cjs/desk/resolveDeskPath.native.js +123 -0
  12. package/dist/cjs/desk/resolveDeskPath.native.js.map +1 -0
  13. package/dist/cjs/desk/scope.cjs +54 -0
  14. package/dist/cjs/desk/scope.native.js +61 -0
  15. package/dist/cjs/desk/scope.native.js.map +1 -0
  16. package/dist/cjs/desk/target.cjs +174 -0
  17. package/dist/cjs/desk/target.native.js +178 -0
  18. package/dist/cjs/desk/target.native.js.map +1 -0
  19. package/dist/cjs/index.cjs +13 -0
  20. package/dist/cjs/index.native.js +13 -0
  21. package/dist/cjs/index.native.js.map +1 -1
  22. package/dist/cjs/list/DoctypeListScreen.cjs +3 -1
  23. package/dist/cjs/list/DoctypeListScreen.native.js +3 -1
  24. package/dist/cjs/list/DoctypeListScreen.native.js.map +1 -1
  25. package/dist/cjs/report/DoctypeReportView.cjs +3 -1
  26. package/dist/cjs/report/DoctypeReportView.native.js +4 -2
  27. package/dist/cjs/report/DoctypeReportView.native.js.map +1 -1
  28. package/dist/cjs/views/CalendarView.cjs +5 -0
  29. package/dist/cjs/views/CalendarView.native.js +5 -0
  30. package/dist/cjs/views/CalendarView.native.js.map +1 -1
  31. package/dist/cjs/views/DashboardView.cjs +5 -3
  32. package/dist/cjs/views/DashboardView.native.js +5 -3
  33. package/dist/cjs/views/DashboardView.native.js.map +1 -1
  34. package/dist/cjs/views/ImageView.cjs +5 -0
  35. package/dist/cjs/views/ImageView.native.js +5 -0
  36. package/dist/cjs/views/ImageView.native.js.map +1 -1
  37. package/dist/cjs/views/KanbanView.cjs +5 -2
  38. package/dist/cjs/views/KanbanView.native.js +5 -2
  39. package/dist/cjs/views/KanbanView.native.js.map +1 -1
  40. package/dist/cjs/views/TreeView.cjs +5 -0
  41. package/dist/cjs/views/TreeView.native.js +5 -0
  42. package/dist/cjs/views/TreeView.native.js.map +1 -1
  43. package/dist/esm/config/BackofficeProvider.mjs +5 -11
  44. package/dist/esm/config/BackofficeProvider.mjs.map +1 -1
  45. package/dist/esm/config/BackofficeProvider.native.js +10 -30
  46. package/dist/esm/config/BackofficeProvider.native.js.map +1 -1
  47. package/dist/esm/desk/Desk.mjs +162 -0
  48. package/dist/esm/desk/Desk.mjs.map +1 -0
  49. package/dist/esm/desk/Desk.native.js +186 -0
  50. package/dist/esm/desk/Desk.native.js.map +1 -0
  51. package/dist/esm/desk/DeskSurface.mjs +97 -0
  52. package/dist/esm/desk/DeskSurface.mjs.map +1 -0
  53. package/dist/esm/desk/DeskSurface.native.js +101 -0
  54. package/dist/esm/desk/DeskSurface.native.js.map +1 -0
  55. package/dist/esm/desk/resolveDeskPath.mjs +93 -0
  56. package/dist/esm/desk/resolveDeskPath.mjs.map +1 -0
  57. package/dist/esm/desk/resolveDeskPath.native.js +95 -0
  58. package/dist/esm/desk/resolveDeskPath.native.js.map +1 -0
  59. package/dist/esm/desk/scope.mjs +27 -0
  60. package/dist/esm/desk/scope.mjs.map +1 -0
  61. package/dist/esm/desk/scope.native.js +31 -0
  62. package/dist/esm/desk/scope.native.js.map +1 -0
  63. package/dist/esm/desk/target.mjs +147 -0
  64. package/dist/esm/desk/target.mjs.map +1 -0
  65. package/dist/esm/desk/target.native.js +148 -0
  66. package/dist/esm/desk/target.native.js.map +1 -0
  67. package/dist/esm/index.mjs +6 -1
  68. package/dist/esm/index.mjs.map +1 -1
  69. package/dist/esm/index.native.js +6 -1
  70. package/dist/esm/index.native.js.map +1 -1
  71. package/dist/esm/list/DoctypeListScreen.mjs +3 -1
  72. package/dist/esm/list/DoctypeListScreen.mjs.map +1 -1
  73. package/dist/esm/list/DoctypeListScreen.native.js +3 -1
  74. package/dist/esm/list/DoctypeListScreen.native.js.map +1 -1
  75. package/dist/esm/report/DoctypeReportView.mjs +3 -1
  76. package/dist/esm/report/DoctypeReportView.mjs.map +1 -1
  77. package/dist/esm/report/DoctypeReportView.native.js +4 -2
  78. package/dist/esm/report/DoctypeReportView.native.js.map +1 -1
  79. package/dist/esm/views/CalendarView.mjs +5 -0
  80. package/dist/esm/views/CalendarView.mjs.map +1 -1
  81. package/dist/esm/views/CalendarView.native.js +5 -0
  82. package/dist/esm/views/CalendarView.native.js.map +1 -1
  83. package/dist/esm/views/DashboardView.mjs +5 -3
  84. package/dist/esm/views/DashboardView.mjs.map +1 -1
  85. package/dist/esm/views/DashboardView.native.js +5 -3
  86. package/dist/esm/views/DashboardView.native.js.map +1 -1
  87. package/dist/esm/views/ImageView.mjs +5 -0
  88. package/dist/esm/views/ImageView.mjs.map +1 -1
  89. package/dist/esm/views/ImageView.native.js +5 -0
  90. package/dist/esm/views/ImageView.native.js.map +1 -1
  91. package/dist/esm/views/KanbanView.mjs +5 -2
  92. package/dist/esm/views/KanbanView.mjs.map +1 -1
  93. package/dist/esm/views/KanbanView.native.js +5 -2
  94. package/dist/esm/views/KanbanView.native.js.map +1 -1
  95. package/dist/esm/views/TreeView.mjs +5 -0
  96. package/dist/esm/views/TreeView.mjs.map +1 -1
  97. package/dist/esm/views/TreeView.native.js +5 -0
  98. package/dist/esm/views/TreeView.native.js.map +1 -1
  99. package/dist/jsx/config/BackofficeProvider.mjs +5 -11
  100. package/dist/jsx/config/BackofficeProvider.mjs.map +1 -1
  101. package/dist/jsx/config/BackofficeProvider.native.js +9 -29
  102. package/dist/jsx/config/BackofficeProvider.native.js.map +1 -1
  103. package/dist/jsx/desk/Desk.mjs +162 -0
  104. package/dist/jsx/desk/Desk.mjs.map +1 -0
  105. package/dist/jsx/desk/Desk.native.js +214 -0
  106. package/dist/jsx/desk/Desk.native.js.map +1 -0
  107. package/dist/jsx/desk/DeskSurface.mjs +97 -0
  108. package/dist/jsx/desk/DeskSurface.mjs.map +1 -0
  109. package/dist/jsx/desk/DeskSurface.native.js +130 -0
  110. package/dist/jsx/desk/DeskSurface.native.js.map +1 -0
  111. package/dist/jsx/desk/resolveDeskPath.mjs +93 -0
  112. package/dist/jsx/desk/resolveDeskPath.mjs.map +1 -0
  113. package/dist/jsx/desk/resolveDeskPath.native.js +123 -0
  114. package/dist/jsx/desk/resolveDeskPath.native.js.map +1 -0
  115. package/dist/jsx/desk/scope.mjs +27 -0
  116. package/dist/jsx/desk/scope.mjs.map +1 -0
  117. package/dist/jsx/desk/scope.native.js +61 -0
  118. package/dist/jsx/desk/scope.native.js.map +1 -0
  119. package/dist/jsx/desk/target.mjs +147 -0
  120. package/dist/jsx/desk/target.mjs.map +1 -0
  121. package/dist/jsx/desk/target.native.js +178 -0
  122. package/dist/jsx/desk/target.native.js.map +1 -0
  123. package/dist/jsx/index.js +6 -1
  124. package/dist/jsx/index.js.map +1 -1
  125. package/dist/jsx/index.mjs +6 -1
  126. package/dist/jsx/index.mjs.map +1 -1
  127. package/dist/jsx/index.native.js +13 -0
  128. package/dist/jsx/index.native.js.map +1 -1
  129. package/dist/jsx/list/DoctypeListScreen.mjs +3 -1
  130. package/dist/jsx/list/DoctypeListScreen.mjs.map +1 -1
  131. package/dist/jsx/list/DoctypeListScreen.native.js +3 -1
  132. package/dist/jsx/list/DoctypeListScreen.native.js.map +1 -1
  133. package/dist/jsx/report/DoctypeReportView.mjs +3 -1
  134. package/dist/jsx/report/DoctypeReportView.mjs.map +1 -1
  135. package/dist/jsx/report/DoctypeReportView.native.js +4 -2
  136. package/dist/jsx/report/DoctypeReportView.native.js.map +1 -1
  137. package/dist/jsx/views/CalendarView.mjs +5 -0
  138. package/dist/jsx/views/CalendarView.mjs.map +1 -1
  139. package/dist/jsx/views/CalendarView.native.js +5 -0
  140. package/dist/jsx/views/CalendarView.native.js.map +1 -1
  141. package/dist/jsx/views/DashboardView.mjs +5 -3
  142. package/dist/jsx/views/DashboardView.mjs.map +1 -1
  143. package/dist/jsx/views/DashboardView.native.js +5 -3
  144. package/dist/jsx/views/DashboardView.native.js.map +1 -1
  145. package/dist/jsx/views/ImageView.mjs +5 -0
  146. package/dist/jsx/views/ImageView.mjs.map +1 -1
  147. package/dist/jsx/views/ImageView.native.js +5 -0
  148. package/dist/jsx/views/ImageView.native.js.map +1 -1
  149. package/dist/jsx/views/KanbanView.mjs +5 -2
  150. package/dist/jsx/views/KanbanView.mjs.map +1 -1
  151. package/dist/jsx/views/KanbanView.native.js +5 -2
  152. package/dist/jsx/views/KanbanView.native.js.map +1 -1
  153. package/dist/jsx/views/TreeView.mjs +5 -0
  154. package/dist/jsx/views/TreeView.mjs.map +1 -1
  155. package/dist/jsx/views/TreeView.native.js +5 -0
  156. package/dist/jsx/views/TreeView.native.js.map +1 -1
  157. package/package.json +12 -12
  158. package/src/config/BackofficeProvider.tsx +11 -18
  159. package/src/desk/Desk.spec.tsx +287 -0
  160. package/src/desk/Desk.tsx +308 -0
  161. package/src/desk/DeskSurface.tsx +132 -0
  162. package/src/desk/doctrine.spec.ts +48 -0
  163. package/src/desk/resolveDeskPath.spec.ts +174 -0
  164. package/src/desk/resolveDeskPath.ts +111 -0
  165. package/src/desk/scope.tsx +52 -0
  166. package/src/desk/target.ts +169 -0
  167. package/src/index.ts +17 -0
  168. package/src/list/DoctypeListScreen.tsx +4 -1
  169. package/src/report/DoctypeReportView.tsx +6 -2
  170. package/src/views/CalendarView.tsx +3 -0
  171. package/src/views/DashboardView.tsx +5 -3
  172. package/src/views/ImageView.tsx +3 -0
  173. package/src/views/KanbanView.tsx +5 -1
  174. package/src/views/TreeView.tsx +3 -0
  175. package/types/config/BackofficeProvider.d.ts +6 -4
  176. package/types/config/BackofficeProvider.d.ts.map +1 -1
  177. package/types/desk/Desk.d.ts +91 -0
  178. package/types/desk/Desk.d.ts.map +1 -0
  179. package/types/desk/DeskSurface.d.ts +24 -0
  180. package/types/desk/DeskSurface.d.ts.map +1 -0
  181. package/types/desk/resolveDeskPath.d.ts +60 -0
  182. package/types/desk/resolveDeskPath.d.ts.map +1 -0
  183. package/types/desk/scope.d.ts +31 -0
  184. package/types/desk/scope.d.ts.map +1 -0
  185. package/types/desk/target.d.ts +57 -0
  186. package/types/desk/target.d.ts.map +1 -0
  187. package/types/index.d.ts +10 -0
  188. package/types/index.d.ts.map +1 -1
  189. package/types/list/DoctypeListScreen.d.ts.map +1 -1
  190. package/types/report/DoctypeReportView.d.ts.map +1 -1
  191. package/types/views/CalendarView.d.ts.map +1 -1
  192. package/types/views/DashboardView.d.ts.map +1 -1
  193. package/types/views/ImageView.d.ts.map +1 -1
  194. package/types/views/KanbanView.d.ts.map +1 -1
  195. package/types/views/TreeView.d.ts.map +1 -1
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
+ get: () => from[key],
17
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
+ });
19
+ }
20
+ return to;
21
+ };
22
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
23
+ value: true
24
+ }), mod);
25
+ var DeskSurface_exports = {};
26
+ __export(DeskSurface_exports, {
27
+ DeskSurface: () => DeskSurface,
28
+ DeskSurfaceLoading: () => DeskSurfaceLoading
29
+ });
30
+ module.exports = __toCommonJS(DeskSurface_exports);
31
+ var import_jsx_runtime = require("react/jsx-runtime");
32
+ var import_components = require("@multiplatform.one/components");
33
+ var import_react = require("react");
34
+ var import_createPrefill = require("../form/createPrefill.native.js");
35
+ var import_DocFormScreen = require("../form/DocFormScreen.native.js");
36
+ var import_DoctypeListScreen = require("../list/DoctypeListScreen.native.js");
37
+ var import_QueryReportScreen = require("../report/QueryReportScreen.native.js");
38
+ var import_HomeRedirect = require("../shell/HomeRedirect.native.js");
39
+ var import_NotFoundScreen = require("../shell/NotFoundScreen.native.js");
40
+ var import_DoctypeViewScreen = require("../views/DoctypeViewScreen.native.js");
41
+ var import_WorkspaceScreen = require("../workspace/WorkspaceScreen.native.js");
42
+ function resolveOverride(overrides, target) {
43
+ var entry = overrides === null || overrides === void 0 ? void 0 : overrides[target.kind];
44
+ if (!entry) return void 0;
45
+ if (typeof entry === "function") return entry;
46
+ var doctype = "doctype" in target ? target.doctype : void 0;
47
+ return doctype ? entry[doctype] : void 0;
48
+ }
49
+ function NewDocSurface(param) {
50
+ var {
51
+ doctype,
52
+ defaults,
53
+ readOnly
54
+ } = param;
55
+ var defaultsKey = JSON.stringify(defaults !== null && defaults !== void 0 ? defaults : null);
56
+ (0, import_react.useMemo)(function () {
57
+ if (defaults && Object.keys(defaults).length > 0) (0, import_createPrefill.setCreatePrefill)(doctype, defaults);
58
+ },
59
+ // oxlint-disable-next-line exhaustive-deps
60
+ [doctype, defaultsKey]);
61
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_DocFormScreen.DocFormScreen, {
62
+ doctype,
63
+ name: "new",
64
+ readOnly
65
+ }, defaultsKey);
66
+ }
67
+ function DeskSurface(param) {
68
+ var {
69
+ target,
70
+ overrides,
71
+ readOnly,
72
+ initialFilters,
73
+ views
74
+ } = param;
75
+ var Override = resolveOverride(overrides, target);
76
+ if (Override) return /* @__PURE__ */(0, import_jsx_runtime.jsx)(Override, {
77
+ target,
78
+ readOnly
79
+ });
80
+ switch (target.kind) {
81
+ case "home":
82
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_HomeRedirect.HomeRedirect, {});
83
+ case "workspace":
84
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_WorkspaceScreen.WorkspaceScreen, {
85
+ workspace: target.workspace
86
+ });
87
+ case "list":
88
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_DoctypeListScreen.DoctypeListScreen, {
89
+ doctype: target.doctype,
90
+ filtersParam: target.filtersParam,
91
+ sortParam: target.sortParam,
92
+ initialFilters,
93
+ views
94
+ });
95
+ case "view":
96
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_DoctypeViewScreen.DoctypeViewScreen, {
97
+ doctype: target.doctype,
98
+ view: target.view
99
+ });
100
+ case "new":
101
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(NewDocSurface, {
102
+ doctype: target.doctype,
103
+ defaults: target.defaults,
104
+ readOnly
105
+ });
106
+ case "form":
107
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_DocFormScreen.DocFormScreen, {
108
+ doctype: target.doctype,
109
+ name: target.name,
110
+ readOnly
111
+ });
112
+ case "report":
113
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_QueryReportScreen.QueryReportScreen, {
114
+ reportName: target.reportName
115
+ });
116
+ case "not-found":
117
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_NotFoundScreen.NotFoundScreen, {});
118
+ }
119
+ }
120
+ function DeskSurfaceLoading() {
121
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.YStack, {
122
+ flex: 1,
123
+ alignItems: "center",
124
+ justifyContent: "center",
125
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Spinner, {
126
+ size: "large"
127
+ })
128
+ });
129
+ }
130
+ //# sourceMappingURL=DeskSurface.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","DeskSurface_exports","__export","DeskSurface","DeskSurfaceLoading","module","exports","import_jsx_runtime","require","import_components","import_react","import_createPrefill","import_DocFormScreen","import_DoctypeListScreen","import_QueryReportScreen","import_HomeRedirect","import_NotFoundScreen","import_DoctypeViewScreen","import_WorkspaceScreen","resolveOverride","overrides","target","entry","kind","doctype","NewDocSurface","param","defaults","readOnly","defaultsKey","JSON","stringify","useMemo","Object","keys","length","setCreatePrefill","jsx","DocFormScreen","name","initialFilters","views","Override","HomeRedirect","WorkspaceScreen","workspace","DoctypeListScreen","filtersParam","sortParam","DoctypeViewScreen","view"],"sources":["../../../src/desk/DeskSurface.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,118 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all) __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: true
9
+ });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
14
+ get: () => from[key],
15
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
16
+ });
17
+ }
18
+ return to;
19
+ };
20
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
21
+ value: true
22
+ }), mod);
23
+ var resolveDeskPath_exports = {};
24
+ __export(resolveDeskPath_exports, {
25
+ resolveDeskPath: () => resolveDeskPath
26
+ });
27
+ module.exports = __toCommonJS(resolveDeskPath_exports);
28
+ var import_paths = require("../navigation/paths.cjs");
29
+ function first(value) {
30
+ return typeof value === "string" ? value : value?.[0];
31
+ }
32
+ function decode(segment) {
33
+ try {
34
+ return decodeURIComponent(segment);
35
+ } catch {
36
+ return segment;
37
+ }
38
+ }
39
+ function resolveDeskPath(path, basePath = import_paths.BACKOFFICE_BASE, params = {}) {
40
+ const base = basePath.replace(/\/+$/, "") || "/";
41
+ const clean = path.replace(/\/+$/, "") || "/";
42
+ let rest;
43
+ if (base === "/") rest = clean;else if (clean === base) rest = "/";else if (clean.startsWith(`${base}/`)) rest = clean.slice(base.length);else return {
44
+ kind: "not-found",
45
+ path
46
+ };
47
+ const segments = rest.split("/").filter(Boolean).map(decode);
48
+ if (segments.length === 0) return {
49
+ kind: "home"
50
+ };
51
+ if (segments[0] === "query-report") {
52
+ if (segments.length === 2 && segments[1]) {
53
+ return {
54
+ kind: "report",
55
+ reportName: segments[1],
56
+ filtersParam: first(params.filters)
57
+ };
58
+ }
59
+ return {
60
+ kind: "not-found",
61
+ path
62
+ };
63
+ }
64
+ const slug = segments[0];
65
+ if (segments.length === 1) {
66
+ return {
67
+ kind: "slug",
68
+ slug,
69
+ filtersParam: first(params.f),
70
+ sortParam: first(params.sort)
71
+ };
72
+ }
73
+ if (segments.length === 2 && segments[1] === "new") {
74
+ return {
75
+ kind: "slug-new",
76
+ slug,
77
+ defaults: (0, import_paths.parseDocDefaults)(first(params.d))
78
+ };
79
+ }
80
+ if (segments.length === 3 && segments[1] === "view" && (0, import_paths.isBackofficeView)(segments[2])) {
81
+ const view = segments[2];
82
+ if (view === "list") {
83
+ return {
84
+ kind: "slug",
85
+ slug,
86
+ filtersParam: first(params.f),
87
+ sortParam: first(params.sort)
88
+ };
89
+ }
90
+ const board = first(params.board);
91
+ const field = first(params.field);
92
+ const filtersParam = first(params.f);
93
+ const viewParams = board || field || filtersParam ? {
94
+ board,
95
+ field,
96
+ filtersParam
97
+ } : void 0;
98
+ return {
99
+ kind: "slug-view",
100
+ slug,
101
+ view,
102
+ ...(viewParams && {
103
+ params: viewParams
104
+ })
105
+ };
106
+ }
107
+ if (segments.length === 2) {
108
+ return {
109
+ kind: "slug-name",
110
+ slug,
111
+ name: segments[1]
112
+ };
113
+ }
114
+ return {
115
+ kind: "not-found",
116
+ path
117
+ };
118
+ }
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
+ get: () => from[key],
17
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
+ });
19
+ }
20
+ return to;
21
+ };
22
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
23
+ value: true
24
+ }), mod);
25
+ var resolveDeskPath_exports = {};
26
+ __export(resolveDeskPath_exports, {
27
+ resolveDeskPath: () => resolveDeskPath
28
+ });
29
+ module.exports = __toCommonJS(resolveDeskPath_exports);
30
+ var import_paths = require("../navigation/paths.native.js");
31
+ function first(value) {
32
+ return typeof value === "string" ? value : value === null || value === void 0 ? void 0 : value[0];
33
+ }
34
+ function decode(segment) {
35
+ try {
36
+ return decodeURIComponent(segment);
37
+ } catch (unused) {
38
+ return segment;
39
+ }
40
+ }
41
+ function resolveDeskPath(path) {
42
+ var basePath = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : import_paths.BACKOFFICE_BASE,
43
+ params = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
44
+ var base = basePath.replace(/\/+$/, "") || "/";
45
+ var clean = path.replace(/\/+$/, "") || "/";
46
+ var rest;
47
+ if (base === "/") rest = clean;else if (clean === base) rest = "/";else if (clean.startsWith(`${base}/`)) rest = clean.slice(base.length);else return {
48
+ kind: "not-found",
49
+ path
50
+ };
51
+ var segments = rest.split("/").filter(Boolean).map(decode);
52
+ if (segments.length === 0) return {
53
+ kind: "home"
54
+ };
55
+ if (segments[0] === "query-report") {
56
+ if (segments.length === 2 && segments[1]) {
57
+ return {
58
+ kind: "report",
59
+ reportName: segments[1],
60
+ filtersParam: first(params.filters)
61
+ };
62
+ }
63
+ return {
64
+ kind: "not-found",
65
+ path
66
+ };
67
+ }
68
+ var slug = segments[0];
69
+ if (segments.length === 1) {
70
+ return {
71
+ kind: "slug",
72
+ slug,
73
+ filtersParam: first(params.f),
74
+ sortParam: first(params.sort)
75
+ };
76
+ }
77
+ if (segments.length === 2 && segments[1] === "new") {
78
+ return {
79
+ kind: "slug-new",
80
+ slug,
81
+ defaults: (0, import_paths.parseDocDefaults)(first(params.d))
82
+ };
83
+ }
84
+ if (segments.length === 3 && segments[1] === "view" && (0, import_paths.isBackofficeView)(segments[2])) {
85
+ var view = segments[2];
86
+ if (view === "list") {
87
+ return {
88
+ kind: "slug",
89
+ slug,
90
+ filtersParam: first(params.f),
91
+ sortParam: first(params.sort)
92
+ };
93
+ }
94
+ var board = first(params.board);
95
+ var field = first(params.field);
96
+ var filtersParam = first(params.f);
97
+ var viewParams = board || field || filtersParam ? {
98
+ board,
99
+ field,
100
+ filtersParam
101
+ } : void 0;
102
+ return {
103
+ kind: "slug-view",
104
+ slug,
105
+ view,
106
+ ...(viewParams && {
107
+ params: viewParams
108
+ })
109
+ };
110
+ }
111
+ if (segments.length === 2) {
112
+ return {
113
+ kind: "slug-name",
114
+ slug,
115
+ name: segments[1]
116
+ };
117
+ }
118
+ return {
119
+ kind: "not-found",
120
+ path
121
+ };
122
+ }
123
+ //# sourceMappingURL=resolveDeskPath.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","resolveDeskPath_exports","__export","resolveDeskPath","module","exports","import_paths","require","first","decode","segment","decodeURIComponent","unused","path","basePath","arguments","length","BACKOFFICE_BASE","params","base","replace","clean","rest","startsWith","slice","kind","segments","split","filter","Boolean","map","reportName","filtersParam","filters","slug","f","sortParam","sort"],"sources":["../../../src/desk/resolveDeskPath.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,uBAAA;AAAAC,QAAA,CAAAD,uBAAA;EAAAE,eAAA,EAAAA,CAAA,KAAAA;AAAA;AAWAC,MAAA,CAAAC,OAAA,GAAAT,YAKO,CAAAK,uBAAA;AA8BP,IAAAK,YAAe,GAAAC,OAA0D;AACvE,SAAOC,MAAAR,KAAO;EAChB,cAAAA,KAAA,gBAAAA,KAAA,GAAAA,KAAA,aAAAA,KAAA,uBAAAA,KAAA;AAEA;AACE,SAAIS,OAAAC,OAAA;EACF;IACF,OAAQC,kBAAA,CAAAD,OAAA;EACN,SAAOE,MAAA;IACT,OAAAF,OAAA;EACF;AAOO;AAKL,SAAMP,eAAgBA,CAAAU,IAAA;EACtB,IAAAC,QAAM,GAAQC,SAAK,CAAAC,MAAQ,IAAQ,IAAED,SAAK,iBAAAA,SAAA,MAAAT,YAAA,CAAAW,eAAA;IAAAC,MAAA,GAAAH,SAAA,CAAAC,MAAA,QAAAD,SAAA,iBAAAA,SAAA;EAC1C,IAAII,IAAA,GAAAL,QAAA,CAAAM,OAAA;EACJ,IAAIC,KAAA,GAAAR,IAAS,CAAKO,OAAA,CAAO;EAAA,IAAAE,IAAA;EACO,IAAAH,IAAA,KACvB,GAAM,EAAAG,IAAA,GAAAD,KAAc,MACxB,IAAAA,KAAS,KAAAF,IAAM,EAAAG,IAAA,MAAa,MAEjC,IAAMD,KAAA,CAAAE,UAAgB,IAAMJ,IAAK,MAAAG,IAAO,GAAAD,KAAS,CAAAG,KAAI,CAAAL,IAAM,CAAAH,MAAA,OACvD;IAEJS,IAAI,aAAU;IACZZ;EACE;EAAsF,IACxFa,QAAA,GAAAJ,IAAA,CAAAK,KAAA,MAAAC,MAAA,CAAAC,OAAA,EAAAC,GAAA,CAAArB,MAAA;EACA,IAAAiB,QAAS,CAAAV,MAAM,eAAa;IAC9BS,IAAA;EAEA;EACA,IAAIC,QAAA,CAAS,qBAAc;IACzB,IAAAA,QAAS,CAAAV,MAAM,KAAQ,KAAMU,QAAA;MAC/B;QACID,IAAA,UAAS;QACXM,UAAS,EAAML,QAAA,GAAY;QAC7BM,YAAA,EAAAxB,KAAA,CAAAU,MAAA,CAAAe,OAAA;MACI;IACF;IAEA,OAAI;MACFR,IAAA,aAAe;MACjBZ;IACA;EACA;EACA,IAAAqB,IAAM,GAAAR,QAAA;EACN,IAAAA,QAAM,CAAAV,MAAA,KACJ;IACF,OAAO;MACTS,IAAA;MACIS,IAAA;MACFF,YAAS,EAAMxB,KAAA,CAAAU,MAAa,CAAAiB,CAAA;MAC9BC,SAAA,EAAA5B,KAAA,CAAAU,MAAA,CAAAmB,IAAA;IACA;EACF","ignoreList":[]}
@@ -0,0 +1,54 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all) __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: true
9
+ });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
14
+ get: () => from[key],
15
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
16
+ });
17
+ }
18
+ return to;
19
+ };
20
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
21
+ value: true
22
+ }), mod);
23
+ var scope_exports = {};
24
+ __export(scope_exports, {
25
+ DeskScopeProvider: () => DeskScopeProvider,
26
+ useDeskScope: () => useDeskScope,
27
+ useScopedFilters: () => useScopedFilters
28
+ });
29
+ module.exports = __toCommonJS(scope_exports);
30
+ var import_react = require("react");
31
+ var import_jsx_runtime = require("react/jsx-runtime");
32
+ const EMPTY_SCOPE = [];
33
+ const DeskScopeContext = (0, import_react.createContext)(EMPTY_SCOPE);
34
+ function DeskScopeProvider({
35
+ scope,
36
+ children
37
+ }) {
38
+ const scopeKey = JSON.stringify(scope ?? EMPTY_SCOPE);
39
+ const value = (0, import_react.useMemo)(() => JSON.parse(scopeKey) ?? EMPTY_SCOPE, [scopeKey]);
40
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(DeskScopeContext.Provider, {
41
+ value,
42
+ children
43
+ });
44
+ }
45
+ function useDeskScope() {
46
+ return (0, import_react.useContext)(DeskScopeContext);
47
+ }
48
+ function useScopedFilters(filters) {
49
+ const scope = useDeskScope();
50
+ return (0, import_react.useMemo)(() => {
51
+ if (scope.length === 0 && (!filters || filters.length === 0)) return void 0;
52
+ return [...scope, ...(filters ?? [])];
53
+ }, [scope, filters]);
54
+ }
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
+ get: () => from[key],
17
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
+ });
19
+ }
20
+ return to;
21
+ };
22
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
23
+ value: true
24
+ }), mod);
25
+ var scope_exports = {};
26
+ __export(scope_exports, {
27
+ DeskScopeProvider: () => DeskScopeProvider,
28
+ useDeskScope: () => useDeskScope,
29
+ useScopedFilters: () => useScopedFilters
30
+ });
31
+ module.exports = __toCommonJS(scope_exports);
32
+ var import_jsx_runtime = require("react/jsx-runtime");
33
+ var import_react = require("react");
34
+ var EMPTY_SCOPE = [];
35
+ var DeskScopeContext = /* @__PURE__ */(0, import_react.createContext)(EMPTY_SCOPE);
36
+ function DeskScopeProvider(param) {
37
+ var {
38
+ scope,
39
+ children
40
+ } = param;
41
+ var scopeKey = JSON.stringify(scope !== null && scope !== void 0 ? scope : EMPTY_SCOPE);
42
+ var value = (0, import_react.useMemo)(function () {
43
+ var _JSON_parse;
44
+ return (_JSON_parse = JSON.parse(scopeKey)) !== null && _JSON_parse !== void 0 ? _JSON_parse : EMPTY_SCOPE;
45
+ }, [scopeKey]);
46
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(DeskScopeContext.Provider, {
47
+ value,
48
+ children
49
+ });
50
+ }
51
+ function useDeskScope() {
52
+ return (0, import_react.useContext)(DeskScopeContext);
53
+ }
54
+ function useScopedFilters(filters) {
55
+ var scope = useDeskScope();
56
+ return (0, import_react.useMemo)(function () {
57
+ if (scope.length === 0 && (!filters || filters.length === 0)) return void 0;
58
+ return [...scope, ...(filters !== null && filters !== void 0 ? filters : [])];
59
+ }, [scope, filters]);
60
+ }
61
+ //# sourceMappingURL=scope.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","scope_exports","__export","DeskScopeProvider","useDeskScope","useScopedFilters","module","exports","import_jsx_runtime","require","import_react","EMPTY_SCOPE","DeskScopeContext","createContext","param","scope","children","scopeKey","JSON","stringify","useMemo","_JSON_parse","parse","jsx","Provider"],"sources":["../../../src/desk/scope.tsx"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,aAAA;AAAAC,QAAA,CAAAD,aAAA;EAAAE,iBAAA,EAAAA,CAAA,KAAAA,iBAAA;EAAAC,YAAA,EAAAA,CAAA,KAAAA,YAAA;EAAAC,gBAAA,EAAAA,CAAA,KAAAA;AAAA;AAgBAC,MAAA,CAAAC,OAAA,GAAAX,YAAmD,CAAAK,aAAA;AAiB1C,IAAAO,kBAAA,GAAAC,OAAA;AAdT,IAAAC,YAAM,GAAAD,OAA8B;AAEpC,IAAAE,WAAM;AAQC,IAAAC,gBAAS,kBAA2B,IAAAF,YAAoC,CAAAG,aAAA,EAAAF,WAAA;AAE7E,SAAMR,iBAAgBA,CAAAW,KAAA,EAAU;EAChC;IAAMC,KAAA;IAAAC;EAAQ,IAAAF,KAAA;EACd,IAAAG,QAAO,GAAAC,IAAA,CAAAC,SAAA,CAAAJ,KAAA,aAAAA,KAAC,cAAAA,KAAiB,GAAAJ,WAAS,CAAe;EACnD,IAAAX,KAAA,OAAAU,YAAA,CAAAU,OAAA;IAGO,IAAAC,WAAS;IACd,QAAAA,WAAO,GAAAH,IAAA,CAAAI,KAAA,CAAAL,QAAW,WAAgB,IAAAI,WAAA,cAAAA,WAAA,GAAAV,WAAA;EACpC,IAMOM,QAAS,CACd;EACA,sBAAO,IAAAT,kBAAc,CAAAe,GAAA,EAAAX,gBAAA,CAAAY,QAAA;IACnBxB,KAAI;IACJgB;EACF;AACF","ignoreList":[]}
@@ -0,0 +1,174 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all) __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: true
9
+ });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
14
+ get: () => from[key],
15
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
16
+ });
17
+ }
18
+ return to;
19
+ };
20
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
21
+ value: true
22
+ }), mod);
23
+ var target_exports = {};
24
+ __export(target_exports, {
25
+ guessDeskTarget: () => guessDeskTarget,
26
+ hasDeskPin: () => hasDeskPin,
27
+ useDeskTarget: () => useDeskTarget
28
+ });
29
+ module.exports = __toCommonJS(target_exports);
30
+ var import_react = require("react");
31
+ var import_BackofficeProvider = require("../config/BackofficeProvider.cjs");
32
+ var import_navigator = require("../navigation/navigator.cjs");
33
+ var import_paths = require("../navigation/paths.cjs");
34
+ var import_useSlugTarget = require("../shared/useSlugTarget.cjs");
35
+ var import_resolveDeskPath = require("./resolveDeskPath.cjs");
36
+ function hasDeskPin(pins) {
37
+ return Boolean(pins.doctype || pins.workspace || pins.report || pins.path);
38
+ }
39
+ function pinnedTarget(pins) {
40
+ if (pins.doctype) {
41
+ if (pins.name === "new") return {
42
+ kind: "new",
43
+ doctype: pins.doctype
44
+ };
45
+ if (pins.name) return {
46
+ kind: "form",
47
+ doctype: pins.doctype,
48
+ name: pins.name
49
+ };
50
+ if (pins.view && pins.view !== "list") {
51
+ return {
52
+ kind: "view",
53
+ doctype: pins.doctype,
54
+ view: pins.view
55
+ };
56
+ }
57
+ return {
58
+ kind: "list",
59
+ doctype: pins.doctype
60
+ };
61
+ }
62
+ if (pins.workspace) return {
63
+ kind: "workspace",
64
+ workspace: pins.workspace
65
+ };
66
+ if (pins.report) return {
67
+ kind: "report",
68
+ reportName: pins.report
69
+ };
70
+ return void 0;
71
+ }
72
+ function addressToTarget(address, slugKind, slugName) {
73
+ switch (address.kind) {
74
+ case "home":
75
+ return {
76
+ kind: "home"
77
+ };
78
+ case "report":
79
+ return {
80
+ kind: "report",
81
+ reportName: address.reportName,
82
+ filtersParam: address.filtersParam
83
+ };
84
+ case "not-found":
85
+ return {
86
+ kind: "not-found"
87
+ };
88
+ default:
89
+ break;
90
+ }
91
+ if (slugKind === "loading") return void 0;
92
+ if (slugKind === "not-found" || !slugName) return {
93
+ kind: "not-found",
94
+ slug: address.slug
95
+ };
96
+ if (slugKind === "workspace") {
97
+ return address.kind === "slug" ? {
98
+ kind: "workspace",
99
+ workspace: slugName
100
+ } : {
101
+ kind: "not-found",
102
+ slug: address.slug
103
+ };
104
+ }
105
+ switch (address.kind) {
106
+ case "slug":
107
+ return {
108
+ kind: "list",
109
+ doctype: slugName,
110
+ filtersParam: address.filtersParam,
111
+ sortParam: address.sortParam
112
+ };
113
+ case "slug-view":
114
+ return {
115
+ kind: "view",
116
+ doctype: slugName,
117
+ view: address.view,
118
+ params: address.params
119
+ };
120
+ case "slug-new":
121
+ return {
122
+ kind: "new",
123
+ doctype: slugName,
124
+ defaults: address.defaults
125
+ };
126
+ case "slug-name":
127
+ return {
128
+ kind: "form",
129
+ doctype: slugName,
130
+ name: address.name
131
+ };
132
+ }
133
+ }
134
+ function guessDeskTarget(path, basePath) {
135
+ const {
136
+ path: cleanPath,
137
+ params
138
+ } = (0, import_navigator.parseBackofficeHref)(path);
139
+ const address = (0, import_resolveDeskPath.resolveDeskPath)(cleanPath, basePath, params);
140
+ const guess = "slug" in address ? (0, import_paths.slugToDisplayName)(address.slug) : void 0;
141
+ return addressToTarget(address, guess ? "doctype" : "not-found", guess) ?? {
142
+ kind: "not-found"
143
+ };
144
+ }
145
+ function useDeskTarget(pins) {
146
+ const {
147
+ basePath
148
+ } = (0, import_BackofficeProvider.useBackofficeConfig)();
149
+ const location = (0, import_BackofficeProvider.useBackofficeLocation)();
150
+ const initialLocation = (0, import_react.useRef)(location);
151
+ const entryActive = location === initialLocation.current;
152
+ const address = (0, import_react.useMemo)(() => {
153
+ if (entryActive && pins.path) {
154
+ const prefix = basePath === "/" ? "" : basePath.replace(/\/+$/, "");
155
+ const {
156
+ path,
157
+ params
158
+ } = (0, import_navigator.parseBackofficeHref)(`${prefix}${pins.path}`);
159
+ return (0, import_resolveDeskPath.resolveDeskPath)(path, basePath, params);
160
+ }
161
+ if (entryActive && hasDeskPin(pins)) return void 0;
162
+ return (0, import_resolveDeskPath.resolveDeskPath)(location.path, basePath, location.params);
163
+ }, [entryActive, pins, basePath, location]);
164
+ const pinned = entryActive && !pins.path ? pinnedTarget(pins) : void 0;
165
+ const slug = !pinned && address && "slug" in address ? address.slug : void 0;
166
+ const slugTarget = (0, import_useSlugTarget.useSlugTarget)(slug);
167
+ return (0, import_react.useMemo)(() => {
168
+ if (pinned) return pinned;
169
+ if (!address) return void 0;
170
+ const slugKind = slugTarget.status === "loading" ? "loading" : slugTarget.status === "not-found" ? "not-found" : slugTarget.kind;
171
+ const slugName = slugTarget.status === "resolved" ? slugTarget.kind === "workspace" ? slugTarget.workspace : slugTarget.doctype : void 0;
172
+ return addressToTarget(address, slugKind, slugName);
173
+ }, [pinned, address, slugTarget]);
174
+ }