@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,93 @@
1
+ import { BACKOFFICE_BASE, isBackofficeView, parseDocDefaults } from "../navigation/paths.mjs";
2
+ function first(value) {
3
+ return typeof value === "string" ? value : value?.[0];
4
+ }
5
+ function decode(segment) {
6
+ try {
7
+ return decodeURIComponent(segment);
8
+ } catch {
9
+ return segment;
10
+ }
11
+ }
12
+ function resolveDeskPath(path, basePath = BACKOFFICE_BASE, params = {}) {
13
+ const base = basePath.replace(/\/+$/, "") || "/";
14
+ const clean = path.replace(/\/+$/, "") || "/";
15
+ let rest;
16
+ if (base === "/") rest = clean;else if (clean === base) rest = "/";else if (clean.startsWith(`${base}/`)) rest = clean.slice(base.length);else return {
17
+ kind: "not-found",
18
+ path
19
+ };
20
+ const segments = rest.split("/").filter(Boolean).map(decode);
21
+ if (segments.length === 0) return {
22
+ kind: "home"
23
+ };
24
+ if (segments[0] === "query-report") {
25
+ if (segments.length === 2 && segments[1]) {
26
+ return {
27
+ kind: "report",
28
+ reportName: segments[1],
29
+ filtersParam: first(params.filters)
30
+ };
31
+ }
32
+ return {
33
+ kind: "not-found",
34
+ path
35
+ };
36
+ }
37
+ const slug = segments[0];
38
+ if (segments.length === 1) {
39
+ return {
40
+ kind: "slug",
41
+ slug,
42
+ filtersParam: first(params.f),
43
+ sortParam: first(params.sort)
44
+ };
45
+ }
46
+ if (segments.length === 2 && segments[1] === "new") {
47
+ return {
48
+ kind: "slug-new",
49
+ slug,
50
+ defaults: parseDocDefaults(first(params.d))
51
+ };
52
+ }
53
+ if (segments.length === 3 && segments[1] === "view" && isBackofficeView(segments[2])) {
54
+ const view = segments[2];
55
+ if (view === "list") {
56
+ return {
57
+ kind: "slug",
58
+ slug,
59
+ filtersParam: first(params.f),
60
+ sortParam: first(params.sort)
61
+ };
62
+ }
63
+ const board = first(params.board);
64
+ const field = first(params.field);
65
+ const filtersParam = first(params.f);
66
+ const viewParams = board || field || filtersParam ? {
67
+ board,
68
+ field,
69
+ filtersParam
70
+ } : void 0;
71
+ return {
72
+ kind: "slug-view",
73
+ slug,
74
+ view,
75
+ ...(viewParams && {
76
+ params: viewParams
77
+ })
78
+ };
79
+ }
80
+ if (segments.length === 2) {
81
+ return {
82
+ kind: "slug-name",
83
+ slug,
84
+ name: segments[1]
85
+ };
86
+ }
87
+ return {
88
+ kind: "not-found",
89
+ path
90
+ };
91
+ }
92
+ export { resolveDeskPath };
93
+ //# sourceMappingURL=resolveDeskPath.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["BACKOFFICE_BASE","isBackofficeView","parseDocDefaults","first","value","decode","segment","decodeURIComponent","resolveDeskPath","path","basePath","params","base","replace","clean","rest","startsWith","slice","length","kind","segments","split","filter","Boolean","map","reportName","filtersParam","filters","slug","f","sortParam","sort","defaults","d","view","board","field","viewParams","name"],"sources":["../../../src/desk/resolveDeskPath.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -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":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","resolveDeskPath_exports","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"],"sources":["../../../src/desk/resolveDeskPath.ts"],"sourcesContent":[null],"mappings":"AAWA;;AAAA,IACEA,SAAA,GAAAC,MAAA,CAAAC,cAAA;AAAA,IACAC,gBAAA,GAAAF,MAAA,CAAAG,wBAAA;AAAA,IACAC,iBAAA,GAAAJ,MAAA,CAAAK,mBAAA;AAAA,IAAAC,YAEK,GAAAN,MAAA,CAAAO,SAAA,CAAAC,cAAA;AA8BP,IAAAC,QAAS,GAAMA,CAAAC,MAA0D,EAAAC,GAAA;EACvE,SAAOC,IAAA,IAAOD,GAAA,EAChBZ,SAAA,CAAAW,MAAA,EAAAE,IAAA;IAAAC,GAAA,EAAAF,GAAA,CAAAC,IAAA;IAAAE,UAAA;EAAA;AAEA;AACE,IAAAC,WAAI,GAAAA,CAAAC,EAAA,EAAAC,IAAA,EAAAC,MAAA,EAAAC,IAAA;EACF,IAAAF,IAAA,IAAO,OAAAA,IAAA,KAAmB,QAAO,WAAAA,IAAA;IACnC,SAAQG,GAAA,IAAAhB,iBAAA,CAAAa,IAAA,GACN,KAAOX,YAAA,CAAAe,IAAA,CAAAL,EAAA,EAAAI,GAAA,KAAAA,GAAA,KAAAF,MAAA,EACTnB,SAAA,CAAAiB,EAAA,EAAAI,GAAA;MAAAP,GAAA,EAAAA,CAAA,KAAAI,IAAA,CAAAG,GAAA;MAAAN,UAAA,IAAAK,IAAA,GAAAjB,gBAAA,CAAAe,IAAA,EAAAG,GAAA,MAAAD,IAAA,CAAAL;IAAA;EACF;EAOO,OAASE,EAAA;AAKd;AACA,IAAAM,YAAc,GAAAC,GAAK,IAAAR,WAAkB,CAAAhB,SAAK;EAAAyB,KAAA;AAAA,IAAAD,GAAA;AAC1C,IAAAE,uBAAI;AACJhB,QAAI,CAAAgB,uBAAqB;EAAAC,eAChB,EAAAA,CAAA,KAAUA;AAAa;AACqCC,MAChE,CAAAC,OAAO,GAAEN,YAAM,CAAAG,uBAAkB;AAEtC,IAAAI,YAAM,GAAWC,OAAK,gCAAkB,CAAO;AAC/C,SAAIC,MAASP,KAAA;EAEb,OAAI,OAAUA,KAAA,KAAM,WAAAA,KAAgB,GAAAA,KAAA,aAAAA,KAAA,uBAAAA,KAAA;AAClC;AACE,SAAAQ,MAASA,CAAAC,OAAM;EAAuE,IACxF;IACA,OAAOC,kBAAQ,CAAAD,OAAkB;EACnC,SAAAE,MAAA;IAEA,OAAMF,OAAO;EACb;AACE;AAA0F,SAC5FP,gBAAAU,IAAA;EACA,IAAIC,QAAA,GAASC,SAAW,CAAAC,MAAK,QAAUD,SAAM,QAAO,SAAAA,SAAA,MAAAT,YAAA,CAAAW,eAAA;IAAAC,MAAA,GAAAH,SAAA,CAAAC,MAAA,QAAAD,SAAA,iBAAAA,SAAA;EAClD,IAAAI,IAAA,GAASL,QAAM,CAAAM,OAAA,OAAY,EAAM,UAAU;EAC7C,IAAAC,KAAA,GAAAR,IAAA,CAAAO,OAAA;EACA,IAAIE,IAAA;EACF,IAAAH,IAAM,QAAO,EAAAG,IAAA,GAAUD,KAAA,MAEvB,IAAIA,KAAA,KAASF,IAAQ,EAAAG,IAAA,YACnB,IAAAD,KAAS,CAAAE,UAAM,IAAQJ,IAAM,MAAAG,IAAA,GAAAD,KAAc,CAAAG,KAAM,CAAAL,IAAQ,CAAAH,MAAG,OAC9D;IACAS,IAAA,EAAM,WAAQ;IACdZ;EACA;EACA,IAAAa,QAAM,GAAAJ,IAAA,CAAAK,KACJ,KAAS,CAAAC,MAAA,CAAAC,OAAS,EAAAC,GAAA,CAAArB,MAAiB;EACrC,IAAAiB,QAAS,CAAAV,MAAM,eAAa;IAC9BS,IAAA;EACA;EACE,IAAAC,QAAS,QAAM,cAAa,EAAM;IACpC,IAAAA,QAAA,CAAAV,MAAA,UAAAU,QAAA;MACA,OAAS;QACXD,IAAA","ignoreList":[]}
@@ -0,0 +1,27 @@
1
+ import { createContext, useContext, useMemo } from "react";
2
+ import { jsx } from "react/jsx-runtime";
3
+ const EMPTY_SCOPE = [];
4
+ const DeskScopeContext = createContext(EMPTY_SCOPE);
5
+ function DeskScopeProvider({
6
+ scope,
7
+ children
8
+ }) {
9
+ const scopeKey = JSON.stringify(scope ?? EMPTY_SCOPE);
10
+ const value = useMemo(() => JSON.parse(scopeKey) ?? EMPTY_SCOPE, [scopeKey]);
11
+ return /* @__PURE__ */jsx(DeskScopeContext.Provider, {
12
+ value,
13
+ children
14
+ });
15
+ }
16
+ function useDeskScope() {
17
+ return useContext(DeskScopeContext);
18
+ }
19
+ function useScopedFilters(filters) {
20
+ const scope = useDeskScope();
21
+ return useMemo(() => {
22
+ if (scope.length === 0 && (!filters || filters.length === 0)) return void 0;
23
+ return [...scope, ...(filters ?? [])];
24
+ }, [scope, filters]);
25
+ }
26
+ export { DeskScopeProvider, useDeskScope, useScopedFilters };
27
+ //# sourceMappingURL=scope.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createContext","useContext","useMemo","jsx","EMPTY_SCOPE","DeskScopeContext","DeskScopeProvider","scope","children","scopeKey","JSON","stringify","value","parse","Provider","useDeskScope","useScopedFilters","filters","length"],"sources":["../../../src/desk/scope.tsx"],"sourcesContent":[null],"mappings":"AAgBA,SAASA,aAAA,EAAeC,UAAA,EAAYC,OAAA,QAAe;AAiB1C,SAAAC,GAAA;AAdT,MAAMC,WAAA,GAA6B,EAAC;AAEpC,MAAMC,gBAAA,GAAmBL,aAAA,CAA6BI,WAAW;AAQ1D,SAASE,kBAAkB;EAAEC,KAAA;EAAOC;AAAS,GAA2B;EAE7E,MAAMC,QAAA,GAAWC,IAAA,CAAKC,SAAA,CAAUJ,KAAA,IAASH,WAAW;EACpD,MAAMQ,KAAA,GAAQV,OAAA,CAAQ,MAAOQ,IAAA,CAAKG,KAAA,CAAMJ,QAAQ,KAAuBL,WAAA,EAAa,CAACK,QAAQ,CAAC;EAC9F,OAAO,eAAAN,GAAA,CAACE,gBAAA,CAAiBS,QAAA,EAAjB;IAA0BF,KAAA;IAAeJ;EAAA,CAAS;AAC5D;AAGO,SAASO,aAAA,EAA8B;EAC5C,OAAOd,UAAA,CAAWI,gBAAgB;AACpC;AAMO,SAASW,iBAAiBC,OAAA,EAAoD;EACnF,MAAMV,KAAA,GAAQQ,YAAA,CAAa;EAC3B,OAAOb,OAAA,CAAQ,MAAM;IACnB,IAAIK,KAAA,CAAMW,MAAA,KAAW,MAAM,CAACD,OAAA,IAAWA,OAAA,CAAQC,MAAA,KAAW,IAAI,OAAO;IACrE,OAAO,CAAC,GAAGX,KAAA,EAAO,IAAIU,OAAA,IAAW,EAAG;EACtC,GAAG,CAACV,KAAA,EAAOU,OAAO,CAAC;AACrB","ignoreList":[]}
@@ -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":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","scope_exports"],"sources":["../../../src/desk/scope.tsx"],"sourcesContent":[null],"mappings":"AAgBA,YAAS;;AAiBA,IAAAA,SAAA,GAAAC,MAAA,CAAAC,cAAA;AAdT,IAAAC,gBAAmC,GAACF,MAAA,CAAAG,wBAAA;AAEpC,IAAAC,iBAAM,GAAAJ,MAAmB,CAAAK,mBAAwC;AAQ1D,IAAAC,YAAS,GAAAN,MAAA,CAAAO,SAAoB,CAAOC,cAAoC;AAE7E,IAAAC,QAAM,GAAAA,CAAAC,MAAW,EAAKC,GAAA;EACtB,SAAMC,IAAA,IAAQD,GAAA,EACdZ,SAAO,CAAAW,MAAA,EAAAE,IAAA;IAACC,GAAA,EAAAF,GAAA,CAAAC,IAAA;IAAiBE,UAAjB,EAA0B;EAAA,EAAe;AACnD;AAGO,IAAAC,WAAS,GAAAA,CAAAC,EAAA,EAAAC,IAA8B,EAAAC,MAAA,EAAAC,IAAA;EAC5C,IAAAF,IAAO,WAAWA,IAAA,aAAgB,WAAAA,IAAA;IACpC,SAAAG,GAAA,IAAAhB,iBAAA,CAAAa,IAAA,GAMO,IAAS,CAAAX,YAAA,CAAAe,IAAiB,CAAAL,EAAA,EAAAI,GAAoD,KAAAA,GAAA,KAAAF,MAAA,EAC7EnB,SAAQ,CAAAiB,EAAA,EAAAI,GAAA;MAAaP,GAAA,EAAAA,CAAA,KAAAI,IAAA,CAAAG,GAAA;MAAAN,UAAA,IAAAK,IAAA,GAAAjB,gBAAA,CAAAe,IAAA,EAAAG,GAAA,MAAAD,IAAA,CAAAL;IAAA;EAC3B;EACE,OAAIE,EAAA;AACJ;AAAoC,IACtCM,YAAW,GAAOC,GAAC,IAAAR,WAAA,CAAAhB,SAAA;EAAAyB,KAAA;AAAA,IAAAD,GAAA;AACrB,IAAAE,aAAA","ignoreList":[]}
@@ -0,0 +1,147 @@
1
+ import { useMemo, useRef } from "react";
2
+ import { useBackofficeConfig, useBackofficeLocation } from "../config/BackofficeProvider.mjs";
3
+ import { parseBackofficeHref } from "../navigation/navigator.mjs";
4
+ import { slugToDisplayName } from "../navigation/paths.mjs";
5
+ import { useSlugTarget } from "../shared/useSlugTarget.mjs";
6
+ import { resolveDeskPath } from "./resolveDeskPath.mjs";
7
+ function hasDeskPin(pins) {
8
+ return Boolean(pins.doctype || pins.workspace || pins.report || pins.path);
9
+ }
10
+ function pinnedTarget(pins) {
11
+ if (pins.doctype) {
12
+ if (pins.name === "new") return {
13
+ kind: "new",
14
+ doctype: pins.doctype
15
+ };
16
+ if (pins.name) return {
17
+ kind: "form",
18
+ doctype: pins.doctype,
19
+ name: pins.name
20
+ };
21
+ if (pins.view && pins.view !== "list") {
22
+ return {
23
+ kind: "view",
24
+ doctype: pins.doctype,
25
+ view: pins.view
26
+ };
27
+ }
28
+ return {
29
+ kind: "list",
30
+ doctype: pins.doctype
31
+ };
32
+ }
33
+ if (pins.workspace) return {
34
+ kind: "workspace",
35
+ workspace: pins.workspace
36
+ };
37
+ if (pins.report) return {
38
+ kind: "report",
39
+ reportName: pins.report
40
+ };
41
+ return void 0;
42
+ }
43
+ function addressToTarget(address, slugKind, slugName) {
44
+ switch (address.kind) {
45
+ case "home":
46
+ return {
47
+ kind: "home"
48
+ };
49
+ case "report":
50
+ return {
51
+ kind: "report",
52
+ reportName: address.reportName,
53
+ filtersParam: address.filtersParam
54
+ };
55
+ case "not-found":
56
+ return {
57
+ kind: "not-found"
58
+ };
59
+ default:
60
+ break;
61
+ }
62
+ if (slugKind === "loading") return void 0;
63
+ if (slugKind === "not-found" || !slugName) return {
64
+ kind: "not-found",
65
+ slug: address.slug
66
+ };
67
+ if (slugKind === "workspace") {
68
+ return address.kind === "slug" ? {
69
+ kind: "workspace",
70
+ workspace: slugName
71
+ } : {
72
+ kind: "not-found",
73
+ slug: address.slug
74
+ };
75
+ }
76
+ switch (address.kind) {
77
+ case "slug":
78
+ return {
79
+ kind: "list",
80
+ doctype: slugName,
81
+ filtersParam: address.filtersParam,
82
+ sortParam: address.sortParam
83
+ };
84
+ case "slug-view":
85
+ return {
86
+ kind: "view",
87
+ doctype: slugName,
88
+ view: address.view,
89
+ params: address.params
90
+ };
91
+ case "slug-new":
92
+ return {
93
+ kind: "new",
94
+ doctype: slugName,
95
+ defaults: address.defaults
96
+ };
97
+ case "slug-name":
98
+ return {
99
+ kind: "form",
100
+ doctype: slugName,
101
+ name: address.name
102
+ };
103
+ }
104
+ }
105
+ function guessDeskTarget(path, basePath) {
106
+ const {
107
+ path: cleanPath,
108
+ params
109
+ } = parseBackofficeHref(path);
110
+ const address = resolveDeskPath(cleanPath, basePath, params);
111
+ const guess = "slug" in address ? slugToDisplayName(address.slug) : void 0;
112
+ return addressToTarget(address, guess ? "doctype" : "not-found", guess) ?? {
113
+ kind: "not-found"
114
+ };
115
+ }
116
+ function useDeskTarget(pins) {
117
+ const {
118
+ basePath
119
+ } = useBackofficeConfig();
120
+ const location = useBackofficeLocation();
121
+ const initialLocation = useRef(location);
122
+ const entryActive = location === initialLocation.current;
123
+ const address = useMemo(() => {
124
+ if (entryActive && pins.path) {
125
+ const prefix = basePath === "/" ? "" : basePath.replace(/\/+$/, "");
126
+ const {
127
+ path,
128
+ params
129
+ } = parseBackofficeHref(`${prefix}${pins.path}`);
130
+ return resolveDeskPath(path, basePath, params);
131
+ }
132
+ if (entryActive && hasDeskPin(pins)) return void 0;
133
+ return resolveDeskPath(location.path, basePath, location.params);
134
+ }, [entryActive, pins, basePath, location]);
135
+ const pinned = entryActive && !pins.path ? pinnedTarget(pins) : void 0;
136
+ const slug = !pinned && address && "slug" in address ? address.slug : void 0;
137
+ const slugTarget = useSlugTarget(slug);
138
+ return useMemo(() => {
139
+ if (pinned) return pinned;
140
+ if (!address) return void 0;
141
+ const slugKind = slugTarget.status === "loading" ? "loading" : slugTarget.status === "not-found" ? "not-found" : slugTarget.kind;
142
+ const slugName = slugTarget.status === "resolved" ? slugTarget.kind === "workspace" ? slugTarget.workspace : slugTarget.doctype : void 0;
143
+ return addressToTarget(address, slugKind, slugName);
144
+ }, [pinned, address, slugTarget]);
145
+ }
146
+ export { guessDeskTarget, hasDeskPin, useDeskTarget };
147
+ //# sourceMappingURL=target.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useMemo","useRef","useBackofficeConfig","useBackofficeLocation","parseBackofficeHref","slugToDisplayName","useSlugTarget","resolveDeskPath","hasDeskPin","pins","Boolean","doctype","workspace","report","path","pinnedTarget","name","kind","view","reportName","addressToTarget","address","slugKind","slugName","filtersParam","slug","sortParam","params","defaults","guessDeskTarget","basePath","cleanPath","guess","useDeskTarget","location","initialLocation","entryActive","current","prefix","replace","pinned","slugTarget","status"],"sources":["../../../src/desk/target.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,178 @@
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 target_exports = {};
26
+ __export(target_exports, {
27
+ guessDeskTarget: () => guessDeskTarget,
28
+ hasDeskPin: () => hasDeskPin,
29
+ useDeskTarget: () => useDeskTarget
30
+ });
31
+ module.exports = __toCommonJS(target_exports);
32
+ var import_react = require("react");
33
+ var import_BackofficeProvider = require("../config/BackofficeProvider.native.js");
34
+ var import_navigator = require("../navigation/navigator.native.js");
35
+ var import_paths = require("../navigation/paths.native.js");
36
+ var import_useSlugTarget = require("../shared/useSlugTarget.native.js");
37
+ var import_resolveDeskPath = require("./resolveDeskPath.native.js");
38
+ function hasDeskPin(pins) {
39
+ return Boolean(pins.doctype || pins.workspace || pins.report || pins.path);
40
+ }
41
+ function pinnedTarget(pins) {
42
+ if (pins.doctype) {
43
+ if (pins.name === "new") return {
44
+ kind: "new",
45
+ doctype: pins.doctype
46
+ };
47
+ if (pins.name) return {
48
+ kind: "form",
49
+ doctype: pins.doctype,
50
+ name: pins.name
51
+ };
52
+ if (pins.view && pins.view !== "list") {
53
+ return {
54
+ kind: "view",
55
+ doctype: pins.doctype,
56
+ view: pins.view
57
+ };
58
+ }
59
+ return {
60
+ kind: "list",
61
+ doctype: pins.doctype
62
+ };
63
+ }
64
+ if (pins.workspace) return {
65
+ kind: "workspace",
66
+ workspace: pins.workspace
67
+ };
68
+ if (pins.report) return {
69
+ kind: "report",
70
+ reportName: pins.report
71
+ };
72
+ return void 0;
73
+ }
74
+ function addressToTarget(address, slugKind, slugName) {
75
+ switch (address.kind) {
76
+ case "home":
77
+ return {
78
+ kind: "home"
79
+ };
80
+ case "report":
81
+ return {
82
+ kind: "report",
83
+ reportName: address.reportName,
84
+ filtersParam: address.filtersParam
85
+ };
86
+ case "not-found":
87
+ return {
88
+ kind: "not-found"
89
+ };
90
+ default:
91
+ break;
92
+ }
93
+ if (slugKind === "loading") return void 0;
94
+ if (slugKind === "not-found" || !slugName) return {
95
+ kind: "not-found",
96
+ slug: address.slug
97
+ };
98
+ if (slugKind === "workspace") {
99
+ return address.kind === "slug" ? {
100
+ kind: "workspace",
101
+ workspace: slugName
102
+ } : {
103
+ kind: "not-found",
104
+ slug: address.slug
105
+ };
106
+ }
107
+ switch (address.kind) {
108
+ case "slug":
109
+ return {
110
+ kind: "list",
111
+ doctype: slugName,
112
+ filtersParam: address.filtersParam,
113
+ sortParam: address.sortParam
114
+ };
115
+ case "slug-view":
116
+ return {
117
+ kind: "view",
118
+ doctype: slugName,
119
+ view: address.view,
120
+ params: address.params
121
+ };
122
+ case "slug-new":
123
+ return {
124
+ kind: "new",
125
+ doctype: slugName,
126
+ defaults: address.defaults
127
+ };
128
+ case "slug-name":
129
+ return {
130
+ kind: "form",
131
+ doctype: slugName,
132
+ name: address.name
133
+ };
134
+ }
135
+ }
136
+ function guessDeskTarget(path, basePath) {
137
+ var _addressToTarget;
138
+ var {
139
+ path: cleanPath,
140
+ params
141
+ } = (0, import_navigator.parseBackofficeHref)(path);
142
+ var address = (0, import_resolveDeskPath.resolveDeskPath)(cleanPath, basePath, params);
143
+ var guess = "slug" in address ? (0, import_paths.slugToDisplayName)(address.slug) : void 0;
144
+ return (_addressToTarget = addressToTarget(address, guess ? "doctype" : "not-found", guess)) !== null && _addressToTarget !== void 0 ? _addressToTarget : {
145
+ kind: "not-found"
146
+ };
147
+ }
148
+ function useDeskTarget(pins) {
149
+ var {
150
+ basePath
151
+ } = (0, import_BackofficeProvider.useBackofficeConfig)();
152
+ var location = (0, import_BackofficeProvider.useBackofficeLocation)();
153
+ var initialLocation = (0, import_react.useRef)(location);
154
+ var entryActive = location === initialLocation.current;
155
+ var address = (0, import_react.useMemo)(function () {
156
+ if (entryActive && pins.path) {
157
+ var prefix = basePath === "/" ? "" : basePath.replace(/\/+$/, "");
158
+ var {
159
+ path,
160
+ params
161
+ } = (0, import_navigator.parseBackofficeHref)(`${prefix}${pins.path}`);
162
+ return (0, import_resolveDeskPath.resolveDeskPath)(path, basePath, params);
163
+ }
164
+ if (entryActive && hasDeskPin(pins)) return void 0;
165
+ return (0, import_resolveDeskPath.resolveDeskPath)(location.path, basePath, location.params);
166
+ }, [entryActive, pins, basePath, location]);
167
+ var pinned = entryActive && !pins.path ? pinnedTarget(pins) : void 0;
168
+ var slug = !pinned && address && "slug" in address ? address.slug : void 0;
169
+ var slugTarget = (0, import_useSlugTarget.useSlugTarget)(slug);
170
+ return (0, import_react.useMemo)(function () {
171
+ if (pinned) return pinned;
172
+ if (!address) return void 0;
173
+ var slugKind = slugTarget.status === "loading" ? "loading" : slugTarget.status === "not-found" ? "not-found" : slugTarget.kind;
174
+ var slugName = slugTarget.status === "resolved" ? slugTarget.kind === "workspace" ? slugTarget.workspace : slugTarget.doctype : void 0;
175
+ return addressToTarget(address, slugKind, slugName);
176
+ }, [pinned, address, slugTarget]);
177
+ }
178
+ //# sourceMappingURL=target.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","target_exports","guessDeskTarget","hasDeskPin","useDeskTarget","module","exports","import_react","require","import_BackofficeProvider","import_navigator","import_paths","import_useSlugTarget","import_resolveDeskPath","pins","Boolean","doctype","workspace","report","path","pinnedTarget","kind","view","reportName","addressToTarget","address","slugKind","slugName","filtersParam"],"sources":["../../../src/desk/target.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}