@multiplatform.one/backoffice 7.2.1 → 7.3.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
@@ -1 +1 @@
1
- {"version":3,"names":["jsx","_jsx","FrappeProvider","registerField","React","createContext","useContext","useMemo","useRef","useState","useSyncExternalStore","registerBackofficeTranslations","createNoopNavigator","BACKOFFICE_BASE","createBackofficePaths","isDoctypeAllowed","resolveCapabilities","actionsForDoctype","actions","doctype","filter","action","doctypes","includes","DEFAULT_CONFIG","navigation","basePath","paths","capabilities","slots","emitEvent","BackofficeConfigContext","useBackofficeConfig","useBackofficeCapabilities","useBackofficeNavigator","useBackofficePaths","useBackofficeSlots","useBackofficeLocation","navigator","subscribe","getLocation","useIsDoctypeAllowed","BackofficeProvider","param","children","frappe","fields","appearance","integrations","onEvent","i18nInstance","appliedFields","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Object","entries","Symbol","iterator","_step","next","done","fieldtype","component","value","current","err","return","onEventRef","emitEvent2","event","_onEventRef_current","call","wrappedNavigation","navigate","path","type","mode","replace","back","setParams","params","_navigation_setParams","listener","resolvedCapabilities","config","Provider","baseURL","socketPort","socketBaseURL","siteName","auth","syncOptions","socketOptions","fixtures"],"sources":["BackofficeProvider.native.js"],"sourcesContent":["import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { FrappeProvider, registerField } from \"@multiplatform.one/frappe-ui\";\nimport React, { createContext, useContext, useMemo, useRef, useState } from \"react\";\nimport { useSyncExternalStore } from \"react\";\nimport { registerBackofficeTranslations } from \"../i18n\";\nimport { createNoopNavigator } from \"../navigation/navigator\";\nimport { BACKOFFICE_BASE, createBackofficePaths } from \"../navigation/paths\";\nimport { isDoctypeAllowed, resolveCapabilities } from \"./capabilities\";\nfunction actionsForDoctype(actions, doctype) {\n return (actions !== null && actions !== void 0 ? actions : []).filter(function(action) {\n return !action.doctypes || action.doctypes.includes(doctype);\n });\n}\nvar DEFAULT_CONFIG = {\n navigation: createNoopNavigator(BACKOFFICE_BASE),\n basePath: BACKOFFICE_BASE,\n paths: createBackofficePaths(BACKOFFICE_BASE),\n capabilities: resolveCapabilities(),\n actions: {},\n slots: {},\n emitEvent: function emitEvent() {\n }\n};\nvar BackofficeConfigContext = /* @__PURE__ */ createContext(DEFAULT_CONFIG);\nfunction useBackofficeConfig() {\n return useContext(BackofficeConfigContext);\n}\nfunction useBackofficeCapabilities() {\n return useBackofficeConfig().capabilities;\n}\nfunction useBackofficeNavigator() {\n return useBackofficeConfig().navigation;\n}\nfunction useBackofficePaths() {\n return useBackofficeConfig().paths;\n}\nfunction useBackofficeSlots() {\n return useBackofficeConfig().slots;\n}\nfunction useBackofficeLocation() {\n var navigator = useBackofficeNavigator();\n return useSyncExternalStore(navigator.subscribe, navigator.getLocation, navigator.getLocation);\n}\nfunction useIsDoctypeAllowed() {\n var { doctypes } = useBackofficeConfig();\n return useMemo(function() {\n return function(doctype) {\n return isDoctypeAllowed(doctypes, doctype);\n };\n }, [\n doctypes\n ]);\n}\nfunction BackofficeProvider(param) {\n var { children, frappe, navigation, basePath = BACKOFFICE_BASE, capabilities, doctypes, fields, actions, slots, appearance, integrations, onEvent, i18nInstance } = param;\n useState(function() {\n registerBackofficeTranslations(i18nInstance);\n return true;\n });\n var appliedFields = useRef({});\n if (fields) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = Object.entries(fields)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var [fieldtype, component] = _step.value;\n if (appliedFields.current[fieldtype] !== component) {\n registerField(fieldtype, component);\n appliedFields.current[fieldtype] = component;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n var onEventRef = useRef(onEvent);\n onEventRef.current = onEvent;\n var emitEvent2 = useMemo(function() {\n return function(event) {\n var _onEventRef_current;\n (_onEventRef_current = onEventRef.current) === null || _onEventRef_current === void 0 ? void 0 : _onEventRef_current.call(onEventRef, event);\n };\n }, []);\n var wrappedNavigation = useMemo(function() {\n return {\n navigate: function navigate(path) {\n emitEvent2({\n type: \"navigate\",\n path,\n mode: \"push\"\n });\n navigation.navigate(path);\n },\n replace: function replace(path) {\n emitEvent2({\n type: \"navigate\",\n path,\n mode: \"replace\"\n });\n navigation.replace(path);\n },\n back: function back() {\n emitEvent2({\n type: \"navigate\",\n path: navigation.getLocation().path,\n mode: \"back\"\n });\n navigation.back();\n },\n // Param merges are URL-state mirrors, not navigations — forwarded\n // without a navigate event (and only when the host supports them).\n ...navigation.setParams ? {\n setParams: function setParams(params) {\n var _navigation_setParams;\n return (_navigation_setParams = navigation.setParams) === null || _navigation_setParams === void 0 ? void 0 : _navigation_setParams.call(navigation, params);\n }\n } : {},\n getLocation: function getLocation() {\n return navigation.getLocation();\n },\n subscribe: function subscribe(listener) {\n return navigation.subscribe(listener);\n }\n };\n }, [\n navigation,\n emitEvent2\n ]);\n var paths = useMemo(function() {\n return createBackofficePaths(basePath);\n }, [\n basePath\n ]);\n var resolvedCapabilities = useMemo(function() {\n return resolveCapabilities(capabilities);\n }, [\n capabilities\n ]);\n var config = useMemo(function() {\n return {\n frappe,\n navigation: wrappedNavigation,\n basePath,\n paths,\n capabilities: resolvedCapabilities,\n doctypes,\n actions: actions !== null && actions !== void 0 ? actions : {},\n slots: slots !== null && slots !== void 0 ? slots : {},\n appearance,\n integrations,\n emitEvent: emitEvent2\n };\n }, [\n frappe,\n wrappedNavigation,\n basePath,\n paths,\n resolvedCapabilities,\n doctypes,\n actions,\n slots,\n appearance,\n integrations,\n emitEvent2\n ]);\n return /* @__PURE__ */ _jsx(BackofficeConfigContext.Provider, {\n value: config,\n children: /* @__PURE__ */ _jsx(FrappeProvider, {\n baseURL: frappe.baseURL,\n socketPort: frappe.socketPort,\n socketBaseURL: frappe.socketBaseURL,\n siteName: frappe.siteName,\n auth: frappe.auth,\n syncOptions: frappe.syncOptions,\n socketOptions: frappe.socketOptions,\n fixtures: frappe.fixtures,\n children\n })\n });\n}\nexport {\n BackofficeProvider,\n actionsForDoctype,\n useBackofficeCapabilities,\n useBackofficeConfig,\n useBackofficeLocation,\n useBackofficeNavigator,\n useBackofficePaths,\n useBackofficeSlots,\n useIsDoctypeAllowed\n};\n//# sourceMappingURL=BackofficeProvider.js.map\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["jsx","_jsx","FieldOverridesProvider","FrappeProvider","React","createContext","useContext","useMemo","useRef","useState","useSyncExternalStore","registerBackofficeTranslations","createNoopNavigator","BACKOFFICE_BASE","createBackofficePaths","isDoctypeAllowed","resolveCapabilities","actionsForDoctype","actions","doctype","filter","action","doctypes","includes","DEFAULT_CONFIG","navigation","basePath","paths","capabilities","slots","emitEvent","BackofficeConfigContext","useBackofficeConfig","useBackofficeCapabilities","useBackofficeNavigator","useBackofficePaths","useBackofficeSlots","useBackofficeLocation","navigator","subscribe","getLocation","useIsDoctypeAllowed","BackofficeProvider","param","children","frappe","fields","appearance","integrations","onEvent","i18nInstance","onEventRef","current","emitEvent2","event","_onEventRef_current","call","wrappedNavigation","navigate","path","type","mode","replace","back","setParams","params","_navigation_setParams","listener","resolvedCapabilities","config","Provider","value","baseURL","socketPort","socketBaseURL","siteName","auth","syncOptions","socketOptions","fixtures"],"sources":["BackofficeProvider.native.js"],"sourcesContent":["import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { FieldOverridesProvider, FrappeProvider } from \"@multiplatform.one/frappe-ui\";\nimport React, { createContext, useContext, useMemo, useRef, useState } from \"react\";\nimport { useSyncExternalStore } from \"react\";\nimport { registerBackofficeTranslations } from \"../i18n\";\nimport { createNoopNavigator } from \"../navigation/navigator\";\nimport { BACKOFFICE_BASE, createBackofficePaths } from \"../navigation/paths\";\nimport { isDoctypeAllowed, resolveCapabilities } from \"./capabilities\";\nfunction actionsForDoctype(actions, doctype) {\n return (actions !== null && actions !== void 0 ? actions : []).filter(function(action) {\n return !action.doctypes || action.doctypes.includes(doctype);\n });\n}\nvar DEFAULT_CONFIG = {\n navigation: createNoopNavigator(BACKOFFICE_BASE),\n basePath: BACKOFFICE_BASE,\n paths: createBackofficePaths(BACKOFFICE_BASE),\n capabilities: resolveCapabilities(),\n actions: {},\n slots: {},\n emitEvent: function emitEvent() {\n }\n};\nvar BackofficeConfigContext = /* @__PURE__ */ createContext(DEFAULT_CONFIG);\nfunction useBackofficeConfig() {\n return useContext(BackofficeConfigContext);\n}\nfunction useBackofficeCapabilities() {\n return useBackofficeConfig().capabilities;\n}\nfunction useBackofficeNavigator() {\n return useBackofficeConfig().navigation;\n}\nfunction useBackofficePaths() {\n return useBackofficeConfig().paths;\n}\nfunction useBackofficeSlots() {\n return useBackofficeConfig().slots;\n}\nfunction useBackofficeLocation() {\n var navigator = useBackofficeNavigator();\n return useSyncExternalStore(navigator.subscribe, navigator.getLocation, navigator.getLocation);\n}\nfunction useIsDoctypeAllowed() {\n var { doctypes } = useBackofficeConfig();\n return useMemo(function() {\n return function(doctype) {\n return isDoctypeAllowed(doctypes, doctype);\n };\n }, [\n doctypes\n ]);\n}\nfunction BackofficeProvider(param) {\n var { children, frappe, navigation, basePath = BACKOFFICE_BASE, capabilities, doctypes, fields, actions, slots, appearance, integrations, onEvent, i18nInstance } = param;\n useState(function() {\n registerBackofficeTranslations(i18nInstance);\n return true;\n });\n var onEventRef = useRef(onEvent);\n onEventRef.current = onEvent;\n var emitEvent2 = useMemo(function() {\n return function(event) {\n var _onEventRef_current;\n (_onEventRef_current = onEventRef.current) === null || _onEventRef_current === void 0 ? void 0 : _onEventRef_current.call(onEventRef, event);\n };\n }, []);\n var wrappedNavigation = useMemo(function() {\n return {\n navigate: function navigate(path) {\n emitEvent2({\n type: \"navigate\",\n path,\n mode: \"push\"\n });\n navigation.navigate(path);\n },\n replace: function replace(path) {\n emitEvent2({\n type: \"navigate\",\n path,\n mode: \"replace\"\n });\n navigation.replace(path);\n },\n back: function back() {\n emitEvent2({\n type: \"navigate\",\n path: navigation.getLocation().path,\n mode: \"back\"\n });\n navigation.back();\n },\n // Param merges are URL-state mirrors, not navigations — forwarded\n // without a navigate event (and only when the host supports them).\n ...navigation.setParams ? {\n setParams: function setParams(params) {\n var _navigation_setParams;\n return (_navigation_setParams = navigation.setParams) === null || _navigation_setParams === void 0 ? void 0 : _navigation_setParams.call(navigation, params);\n }\n } : {},\n getLocation: function getLocation() {\n return navigation.getLocation();\n },\n subscribe: function subscribe(listener) {\n return navigation.subscribe(listener);\n }\n };\n }, [\n navigation,\n emitEvent2\n ]);\n var paths = useMemo(function() {\n return createBackofficePaths(basePath);\n }, [\n basePath\n ]);\n var resolvedCapabilities = useMemo(function() {\n return resolveCapabilities(capabilities);\n }, [\n capabilities\n ]);\n var config = useMemo(function() {\n return {\n frappe,\n navigation: wrappedNavigation,\n basePath,\n paths,\n capabilities: resolvedCapabilities,\n doctypes,\n actions: actions !== null && actions !== void 0 ? actions : {},\n slots: slots !== null && slots !== void 0 ? slots : {},\n appearance,\n integrations,\n emitEvent: emitEvent2\n };\n }, [\n frappe,\n wrappedNavigation,\n basePath,\n paths,\n resolvedCapabilities,\n doctypes,\n actions,\n slots,\n appearance,\n integrations,\n emitEvent2\n ]);\n return /* @__PURE__ */ _jsx(BackofficeConfigContext.Provider, {\n value: config,\n children: /* @__PURE__ */ _jsx(FrappeProvider, {\n baseURL: frappe.baseURL,\n socketPort: frappe.socketPort,\n socketBaseURL: frappe.socketBaseURL,\n siteName: frappe.siteName,\n auth: frappe.auth,\n syncOptions: frappe.syncOptions,\n socketOptions: frappe.socketOptions,\n fixtures: frappe.fixtures,\n children: (\n /* Context-scoped field overrides (GL-4): per-provider, never the\n module-global registry — two providers with different `fields` on\n one page must not clobber each other. */\n /* @__PURE__ */ _jsx(FieldOverridesProvider, {\n fields,\n children\n })\n )\n })\n });\n}\nexport {\n BackofficeProvider,\n actionsForDoctype,\n useBackofficeCapabilities,\n useBackofficeConfig,\n useBackofficeLocation,\n useBackofficeNavigator,\n useBackofficePaths,\n useBackofficeSlots,\n useIsDoctypeAllowed\n};\n//# sourceMappingURL=BackofficeProvider.js.map\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,162 @@
1
+ import { YStack } from "@multiplatform.one/components";
2
+ import { useFrappeConfig } from "@multiplatform.one/frappe-ui";
3
+ import { useEffect, useMemo, useRef } from "react";
4
+ import { BackofficeProvider } from "../config/BackofficeProvider.mjs";
5
+ import { createMemoryNavigator } from "../navigation/navigator.mjs";
6
+ import { BACKOFFICE_BASE, createBackofficePaths } from "../navigation/paths.mjs";
7
+ import { BackofficeShell } from "../shell/BackofficeShell.mjs";
8
+ import { DeskSurface, DeskSurfaceLoading } from "./DeskSurface.mjs";
9
+ import { DeskScopeProvider } from "./scope.mjs";
10
+ import { guessDeskTarget, hasDeskPin, useDeskTarget } from "./target.mjs";
11
+ import { jsx } from "react/jsx-runtime";
12
+ function pinnedPath(pins, basePath) {
13
+ const paths = createBackofficePaths(basePath);
14
+ if (pins.path) {
15
+ const prefix = basePath === "/" ? "" : basePath.replace(/\/+$/, "");
16
+ return `${prefix}${pins.path}`;
17
+ }
18
+ if (pins.doctype) {
19
+ if (pins.name === "new") return paths.newDoc(pins.doctype);
20
+ if (pins.name) return paths.form(pins.doctype, pins.name);
21
+ if (pins.view && pins.view !== "list") return paths.view(pins.doctype, pins.view);
22
+ return paths.list(pins.doctype);
23
+ }
24
+ if (pins.workspace) return paths.workspace(pins.workspace);
25
+ if (pins.report) return paths.queryReport(pins.report);
26
+ return paths.home();
27
+ }
28
+ function Desk(props) {
29
+ const {
30
+ doctype,
31
+ name,
32
+ view,
33
+ workspace,
34
+ report,
35
+ path,
36
+ basePath = BACKOFFICE_BASE,
37
+ chrome: chromeProp,
38
+ embedded,
39
+ onNavigate
40
+ } = props;
41
+ const pins = useMemo(() => ({
42
+ doctype,
43
+ name,
44
+ view,
45
+ workspace,
46
+ report,
47
+ path
48
+ }), [doctype, name, view, workspace, report, path]);
49
+ const ambient = useFrappeConfig();
50
+ const warned = useRef(false);
51
+ if (ambient && props.frappe && !warned.current) {
52
+ warned.current = true;
53
+ console.warn("[backoffice] <Desk frappe> is ignored: an ambient FrappeProvider exists and the SyncModule is cached per baseURL.");
54
+ }
55
+ const frappe = useMemo(() => {
56
+ if (ambient) {
57
+ return {
58
+ baseURL: ambient.baseURL,
59
+ auth: ambient.auth,
60
+ fixtures: ambient.fixtures
61
+ };
62
+ }
63
+ return props.frappe ?? {
64
+ baseURL: ""
65
+ };
66
+ }, [ambient, props.frappe]);
67
+ const memoryNavigator = useMemo(() => props.navigation ? void 0 : createMemoryNavigator(pinnedPath(pins, basePath)),
68
+ // The seed is the ENTRY; later pin changes re-enter through useDeskTarget.
69
+ // oxlint-disable-next-line exhaustive-deps
70
+ [props.navigation ? "host" : "memory"]);
71
+ const baseNavigation = props.navigation ?? memoryNavigator;
72
+ const onNavigateRef = useRef(onNavigate);
73
+ onNavigateRef.current = onNavigate;
74
+ const navigation = useMemo(() => {
75
+ const intercept = path2 => onNavigateRef.current?.(guessDeskTarget(path2, basePath), path2) !== false;
76
+ return {
77
+ ...baseNavigation,
78
+ navigate: path2 => {
79
+ if (intercept(path2)) baseNavigation.navigate(path2);
80
+ },
81
+ replace: path2 => {
82
+ if (intercept(path2)) baseNavigation.replace(path2);
83
+ },
84
+ back: () => baseNavigation.back(),
85
+ getLocation: () => baseNavigation.getLocation(),
86
+ subscribe: listener => baseNavigation.subscribe(listener),
87
+ ...(baseNavigation.setParams ? {
88
+ setParams: params => baseNavigation.setParams?.(params)
89
+ } : {})
90
+ };
91
+ }, [baseNavigation, basePath]);
92
+ const chrome = chromeProp ?? (embedded || hasDeskPin(pins) ? "content" : "full");
93
+ const doctypes = props.doctypes ?? (doctype ? {
94
+ allow: [doctype]
95
+ } : void 0);
96
+ const capabilities = useMemo(() => chrome === "bare" ? {
97
+ ...props.capabilities,
98
+ sidebar: false
99
+ } : props.capabilities, [chrome, props.capabilities]);
100
+ return /* @__PURE__ */jsx(BackofficeProvider, {
101
+ frappe,
102
+ navigation,
103
+ basePath,
104
+ capabilities,
105
+ doctypes,
106
+ fields: props.fields,
107
+ actions: props.actions,
108
+ slots: props.slots,
109
+ appearance: props.appearance,
110
+ integrations: props.integrations,
111
+ onEvent: props.onEvent,
112
+ children: /* @__PURE__ */jsx(DeskScopeProvider, {
113
+ scope: props.scope,
114
+ children: /* @__PURE__ */jsx(DeskBody, {
115
+ pins,
116
+ chrome,
117
+ readOnly: props.readOnly,
118
+ surfaces: props.surfaces,
119
+ initialFilters: props.filters,
120
+ views: props.views,
121
+ onTargetChange: props.onTargetChange
122
+ })
123
+ })
124
+ });
125
+ }
126
+ function DeskBody({
127
+ pins,
128
+ chrome,
129
+ readOnly,
130
+ surfaces,
131
+ initialFilters,
132
+ views,
133
+ onTargetChange
134
+ }) {
135
+ const target = useDeskTarget(pins);
136
+ const onTargetChangeRef = useRef(onTargetChange);
137
+ onTargetChangeRef.current = onTargetChange;
138
+ const targetKey = target ? JSON.stringify(target) : void 0;
139
+ useEffect(() => {
140
+ if (target) onTargetChangeRef.current?.(target);
141
+ }, [targetKey]);
142
+ const surface = target ? /* @__PURE__ */jsx(DeskSurface, {
143
+ target,
144
+ overrides: surfaces,
145
+ readOnly,
146
+ initialFilters,
147
+ views
148
+ }) : /* @__PURE__ */jsx(DeskSurfaceLoading, {});
149
+ if (chrome === "content") {
150
+ return /* @__PURE__ */jsx(YStack, {
151
+ flex: 1,
152
+ minHeight: 0,
153
+ minWidth: 0,
154
+ children: surface
155
+ });
156
+ }
157
+ return /* @__PURE__ */jsx(BackofficeShell, {
158
+ children: surface
159
+ });
160
+ }
161
+ export { Desk };
162
+ //# sourceMappingURL=Desk.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["YStack","useFrappeConfig","useEffect","useMemo","useRef","BackofficeProvider","createMemoryNavigator","BACKOFFICE_BASE","createBackofficePaths","BackofficeShell","DeskSurface","DeskSurfaceLoading","DeskScopeProvider","guessDeskTarget","hasDeskPin","useDeskTarget","jsx","pinnedPath","pins","basePath","paths","path","prefix","replace","doctype","name","newDoc","form","view","list","workspace","report","queryReport","home","Desk","props","chrome","chromeProp","embedded","onNavigate","ambient","warned","frappe","current","console","warn","baseURL","auth","fixtures","memoryNavigator","navigation","baseNavigation","onNavigateRef","intercept","path2","navigate","back","getLocation","subscribe","listener","setParams","params","doctypes","allow","capabilities","sidebar","fields","actions","slots","appearance","integrations","onEvent","children","scope","DeskBody","readOnly","surfaces","initialFilters","filters","views","onTargetChange","target","onTargetChangeRef","targetKey","JSON","stringify","surface","overrides","flex","minHeight","minWidth"],"sources":["../../../src/desk/Desk.tsx"],"sourcesContent":[null],"mappings":"AAYA,SAASA,MAAA,QAAc;AACvB,SAASC,eAAA,QAA8C;AAEvD,SAASC,SAAA,EAAWC,OAAA,EAASC,MAAA,QAAc;AAC3C,SACEC,kBAAA,QAKK;AAIP,SAASC,qBAAA,QAAuD;AAChE,SAASC,eAAA,EAAiBC,qBAAA,QAAkD;AAE5E,SAASC,eAAA,QAAuB;AAChC,SAASC,WAAA,EAAaC,kBAAA,QAAqD;AAC3E,SAASC,iBAAA,QAAyB;AAClC,SACEC,eAAA,EACAC,UAAA,EACAC,aAAA,QAGK;AA6MC,SAAAC,GAAA;AA7GR,SAASC,WAAWC,IAAA,EAAgBC,QAAA,EAA0B;EAC5D,MAAMC,KAAA,GAAQZ,qBAAA,CAAsBW,QAAQ;EAC5C,IAAID,IAAA,CAAKG,IAAA,EAAM;IACb,MAAMC,MAAA,GAASH,QAAA,KAAa,MAAM,KAAKA,QAAA,CAASI,OAAA,CAAQ,QAAQ,EAAE;IAClE,OAAO,GAAGD,MAAM,GAAGJ,IAAA,CAAKG,IAAI;EAC9B;EACA,IAAIH,IAAA,CAAKM,OAAA,EAAS;IAChB,IAAIN,IAAA,CAAKO,IAAA,KAAS,OAAO,OAAOL,KAAA,CAAMM,MAAA,CAAOR,IAAA,CAAKM,OAAO;IACzD,IAAIN,IAAA,CAAKO,IAAA,EAAM,OAAOL,KAAA,CAAMO,IAAA,CAAKT,IAAA,CAAKM,OAAA,EAASN,IAAA,CAAKO,IAAI;IACxD,IAAIP,IAAA,CAAKU,IAAA,IAAQV,IAAA,CAAKU,IAAA,KAAS,QAAQ,OAAOR,KAAA,CAAMQ,IAAA,CAAKV,IAAA,CAAKM,OAAA,EAASN,IAAA,CAAKU,IAAI;IAChF,OAAOR,KAAA,CAAMS,IAAA,CAAKX,IAAA,CAAKM,OAAO;EAChC;EACA,IAAIN,IAAA,CAAKY,SAAA,EAAW,OAAOV,KAAA,CAAMU,SAAA,CAAUZ,IAAA,CAAKY,SAAS;EACzD,IAAIZ,IAAA,CAAKa,MAAA,EAAQ,OAAOX,KAAA,CAAMY,WAAA,CAAYd,IAAA,CAAKa,MAAM;EACrD,OAAOX,KAAA,CAAMa,IAAA,CAAK;AACpB;AAEO,SAASC,KAAKC,KAAA,EAAkB;EACrC,MAAM;IACJX,OAAA;IACAC,IAAA;IACAG,IAAA;IACAE,SAAA;IACAC,MAAA;IACAV,IAAA;IACAF,QAAA,GAAWZ,eAAA;IACX6B,MAAA,EAAQC,UAAA;IACRC,QAAA;IACAC;EACF,IAAIJ,KAAA;EAEJ,MAAMjB,IAAA,GAAOf,OAAA,CACX,OAAO;IAAEqB,OAAA;IAASC,IAAA;IAAMG,IAAA;IAAME,SAAA;IAAWC,MAAA;IAAQV;EAAK,IACtD,CAACG,OAAA,EAASC,IAAA,EAAMG,IAAA,EAAME,SAAA,EAAWC,MAAA,EAAQV,IAAI,CAC/C;EAGA,MAAMmB,OAAA,GAAUvC,eAAA,CAAgB;EAChC,MAAMwC,MAAA,GAASrC,MAAA,CAAO,KAAK;EAC3B,IAAIoC,OAAA,IAAWL,KAAA,CAAMO,MAAA,IAAU,CAACD,MAAA,CAAOE,OAAA,EAAS;IAC9CF,MAAA,CAAOE,OAAA,GAAU;IACjBC,OAAA,CAAQC,IAAA,CACN,mHACF;EACF;EACA,MAAMH,MAAA,GAASvC,OAAA,CAAgC,MAAM;IACnD,IAAIqC,OAAA,EAAS;MACX,OAAO;QAAEM,OAAA,EAASN,OAAA,CAAQM,OAAA;QAASC,IAAA,EAAMP,OAAA,CAAQO,IAAA;QAAMC,QAAA,EAAUR,OAAA,CAAQQ;MAAS;IACpF;IACA,OAAOb,KAAA,CAAMO,MAAA,IAAU;MAAEI,OAAA,EAAS;IAAG;EACvC,GAAG,CAACN,OAAA,EAASL,KAAA,CAAMO,MAAM,CAAC;EAG1B,MAAMO,eAAA,GAAkB9C,OAAA,CACtB,MAAOgC,KAAA,CAAMe,UAAA,GAAa,SAAY5C,qBAAA,CAAsBW,UAAA,CAAWC,IAAA,EAAMC,QAAQ,CAAC;EAAA;EAAA;EAGtF,CAACgB,KAAA,CAAMe,UAAA,GAAa,SAAS,QAAQ,CACvC;EACA,MAAMC,cAAA,GAAiBhB,KAAA,CAAMe,UAAA,IAAcD,eAAA;EAE3C,MAAMG,aAAA,GAAgBhD,MAAA,CAAOmC,UAAU;EACvCa,aAAA,CAAcT,OAAA,GAAUJ,UAAA;EACxB,MAAMW,UAAA,GAAa/C,OAAA,CAA6B,MAAM;IACpD,MAAMkD,SAAA,GAAahC,KAAA,IACjB+B,aAAA,CAAcT,OAAA,GAAU9B,eAAA,CAAgByC,KAAA,EAAMnC,QAAQ,GAAGmC,KAAI,MAAM;IACrE,OAAO;MACL,GAAGH,cAAA;MACHI,QAAA,EAAWlC,KAAA,IAAS;QAClB,IAAIgC,SAAA,CAAUhC,KAAI,GAAG8B,cAAA,CAAeI,QAAA,CAASD,KAAI;MACnD;MACA/B,OAAA,EAAUF,KAAA,IAAS;QACjB,IAAIgC,SAAA,CAAUhC,KAAI,GAAG8B,cAAA,CAAe5B,OAAA,CAAQ+B,KAAI;MAClD;MACAE,IAAA,EAAMA,CAAA,KAAML,cAAA,CAAeK,IAAA,CAAK;MAChCC,WAAA,EAAaA,CAAA,KAAMN,cAAA,CAAeM,WAAA,CAAY;MAC9CC,SAAA,EAAYC,QAAA,IAAaR,cAAA,CAAeO,SAAA,CAAUC,QAAQ;MAC1D,IAAIR,cAAA,CAAeS,SAAA,GACf;QACEA,SAAA,EAAYC,MAAA,IACVV,cAAA,CAAeS,SAAA,GAAYC,MAAM;MACrC,IACA,CAAC;IACP;EACF,GAAG,CAACV,cAAA,EAAgBhC,QAAQ,CAAC;EAG7B,MAAMiB,MAAA,GAAqBC,UAAA,KAAeC,QAAA,IAAYxB,UAAA,CAAWI,IAAI,IAAI,YAAY;EACrF,MAAM4C,QAAA,GAAW3B,KAAA,CAAM2B,QAAA,KAAatC,OAAA,GAAU;IAAEuC,KAAA,EAAO,CAACvC,OAAO;EAAE,IAAI;EACrE,MAAMwC,YAAA,GAAe7D,OAAA,CACnB,MAAOiC,MAAA,KAAW,SAAS;IAAE,GAAGD,KAAA,CAAM6B,YAAA;IAAcC,OAAA,EAAS;EAAM,IAAI9B,KAAA,CAAM6B,YAAA,EAC7E,CAAC5B,MAAA,EAAQD,KAAA,CAAM6B,YAAY,CAC7B;EAEA,OACE,eAAAhD,GAAA,CAACX,kBAAA;IACCqC,MAAA;IACAQ,UAAA;IACA/B,QAAA;IACA6C,YAAA;IACAF,QAAA;IACAI,MAAA,EAAQ/B,KAAA,CAAM+B,MAAA;IACdC,OAAA,EAAShC,KAAA,CAAMgC,OAAA;IACfC,KAAA,EAAOjC,KAAA,CAAMiC,KAAA;IACbC,UAAA,EAAYlC,KAAA,CAAMkC,UAAA;IAClBC,YAAA,EAAcnC,KAAA,CAAMmC,YAAA;IACpBC,OAAA,EAASpC,KAAA,CAAMoC,OAAA;IAEfC,QAAA,iBAAAxD,GAAA,CAACJ,iBAAA;MAAkB6D,KAAA,EAAOtC,KAAA,CAAMsC,KAAA;MAC9BD,QAAA,iBAAAxD,GAAA,CAAC0D,QAAA;QACCxD,IAAA;QACAkB,MAAA;QACAuC,QAAA,EAAUxC,KAAA,CAAMwC,QAAA;QAChBC,QAAA,EAAUzC,KAAA,CAAMyC,QAAA;QAChBC,cAAA,EAAgB1C,KAAA,CAAM2C,OAAA;QACtBC,KAAA,EAAO5C,KAAA,CAAM4C,KAAA;QACbC,cAAA,EAAgB7C,KAAA,CAAM6C;MAAA,CACxB;IAAA,CACF;EAAA,CACF;AAEJ;AAaA,SAASN,SAAS;EAChBxD,IAAA;EACAkB,MAAA;EACAuC,QAAA;EACAC,QAAA;EACAC,cAAA;EACAE,KAAA;EACAC;AACF,GAAkB;EAChB,MAAMC,MAAA,GAASlE,aAAA,CAAcG,IAAI;EAEjC,MAAMgE,iBAAA,GAAoB9E,MAAA,CAAO4E,cAAc;EAC/CE,iBAAA,CAAkBvC,OAAA,GAAUqC,cAAA;EAC5B,MAAMG,SAAA,GAAYF,MAAA,GAASG,IAAA,CAAKC,SAAA,CAAUJ,MAAM,IAAI;EACpD/E,SAAA,CAAU,MAAM;IACd,IAAI+E,MAAA,EAAQC,iBAAA,CAAkBvC,OAAA,GAAUsC,MAAM;EAEhD,GAAG,CAACE,SAAS,CAAC;EAEd,MAAMG,OAAA,GAAUL,MAAA,GACd,eAAAjE,GAAA,CAACN,WAAA;IACCuE,MAAA;IACAM,SAAA,EAAWX,QAAA;IACXD,QAAA;IACAE,cAAA;IACAE;EAAA,CACF,IAEA,eAAA/D,GAAA,CAACL,kBAAA,IAAmB;EAGtB,IAAIyB,MAAA,KAAW,WAAW;IACxB,OACE,eAAApB,GAAA,CAAChB,MAAA;MAAOwF,IAAA,EAAM;MAAGC,SAAA,EAAW;MAAGC,QAAA,EAAU;MACtClB,QAAA,EAAAc;IAAA,CACH;EAEJ;EACA,OAAO,eAAAtE,GAAA,CAACP,eAAA;IAAiB+D,QAAA,EAAAc;EAAA,CAAQ;AACnC","ignoreList":[]}
@@ -0,0 +1,186 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { YStack } from "@multiplatform.one/components";
3
+ import { useFrappeConfig } from "@multiplatform.one/frappe-ui";
4
+ import { useEffect, useMemo, useRef } from "react";
5
+ import { BackofficeProvider } from "../config/BackofficeProvider.native.js";
6
+ import { createMemoryNavigator } from "../navigation/navigator.native.js";
7
+ import { BACKOFFICE_BASE, createBackofficePaths } from "../navigation/paths.native.js";
8
+ import { BackofficeShell } from "../shell/BackofficeShell.native.js";
9
+ import { DeskSurface, DeskSurfaceLoading } from "./DeskSurface.native.js";
10
+ import { DeskScopeProvider } from "./scope.native.js";
11
+ import { guessDeskTarget, hasDeskPin, useDeskTarget } from "./target.native.js";
12
+ function pinnedPath(pins, basePath) {
13
+ var paths = createBackofficePaths(basePath);
14
+ if (pins.path) {
15
+ var prefix = basePath === "/" ? "" : basePath.replace(/\/+$/, "");
16
+ return `${prefix}${pins.path}`;
17
+ }
18
+ if (pins.doctype) {
19
+ if (pins.name === "new") return paths.newDoc(pins.doctype);
20
+ if (pins.name) return paths.form(pins.doctype, pins.name);
21
+ if (pins.view && pins.view !== "list") return paths.view(pins.doctype, pins.view);
22
+ return paths.list(pins.doctype);
23
+ }
24
+ if (pins.workspace) return paths.workspace(pins.workspace);
25
+ if (pins.report) return paths.queryReport(pins.report);
26
+ return paths.home();
27
+ }
28
+ function Desk(props) {
29
+ var _props_navigation, _props_doctypes;
30
+ var {
31
+ doctype,
32
+ name,
33
+ view,
34
+ workspace,
35
+ report,
36
+ path,
37
+ basePath = BACKOFFICE_BASE,
38
+ chrome: chromeProp,
39
+ embedded,
40
+ onNavigate
41
+ } = props;
42
+ var pins = useMemo(function () {
43
+ return {
44
+ doctype,
45
+ name,
46
+ view,
47
+ workspace,
48
+ report,
49
+ path
50
+ };
51
+ }, [doctype, name, view, workspace, report, path]);
52
+ var ambient = useFrappeConfig();
53
+ var warned = useRef(false);
54
+ if (ambient && props.frappe && !warned.current) {
55
+ warned.current = true;
56
+ console.warn("[backoffice] <Desk frappe> is ignored: an ambient FrappeProvider exists and the SyncModule is cached per baseURL.");
57
+ }
58
+ var frappe = useMemo(function () {
59
+ var _props_frappe;
60
+ if (ambient) {
61
+ return {
62
+ baseURL: ambient.baseURL,
63
+ auth: ambient.auth,
64
+ fixtures: ambient.fixtures
65
+ };
66
+ }
67
+ return (_props_frappe = props.frappe) !== null && _props_frappe !== void 0 ? _props_frappe : {
68
+ baseURL: ""
69
+ };
70
+ }, [ambient, props.frappe]);
71
+ var memoryNavigator = useMemo(function () {
72
+ return props.navigation ? void 0 : createMemoryNavigator(pinnedPath(pins, basePath));
73
+ },
74
+ // The seed is the ENTRY; later pin changes re-enter through useDeskTarget.
75
+ // oxlint-disable-next-line exhaustive-deps
76
+ [props.navigation ? "host" : "memory"]);
77
+ var baseNavigation = (_props_navigation = props.navigation) !== null && _props_navigation !== void 0 ? _props_navigation : memoryNavigator;
78
+ var onNavigateRef = useRef(onNavigate);
79
+ onNavigateRef.current = onNavigate;
80
+ var navigation = useMemo(function () {
81
+ var intercept = function intercept2(path2) {
82
+ var _onNavigateRef_current;
83
+ return ((_onNavigateRef_current = onNavigateRef.current) === null || _onNavigateRef_current === void 0 ? void 0 : _onNavigateRef_current.call(onNavigateRef, guessDeskTarget(path2, basePath), path2)) !== false;
84
+ };
85
+ return {
86
+ ...baseNavigation,
87
+ navigate: function navigate(path2) {
88
+ if (intercept(path2)) baseNavigation.navigate(path2);
89
+ },
90
+ replace: function replace(path2) {
91
+ if (intercept(path2)) baseNavigation.replace(path2);
92
+ },
93
+ back: function back() {
94
+ return baseNavigation.back();
95
+ },
96
+ getLocation: function getLocation() {
97
+ return baseNavigation.getLocation();
98
+ },
99
+ subscribe: function subscribe(listener) {
100
+ return baseNavigation.subscribe(listener);
101
+ },
102
+ ...(baseNavigation.setParams ? {
103
+ setParams: function setParams(params) {
104
+ var _baseNavigation_setParams;
105
+ return (_baseNavigation_setParams = baseNavigation.setParams) === null || _baseNavigation_setParams === void 0 ? void 0 : _baseNavigation_setParams.call(baseNavigation, params);
106
+ }
107
+ } : {})
108
+ };
109
+ }, [baseNavigation, basePath]);
110
+ var chrome = chromeProp !== null && chromeProp !== void 0 ? chromeProp : embedded || hasDeskPin(pins) ? "content" : "full";
111
+ var doctypes = (_props_doctypes = props.doctypes) !== null && _props_doctypes !== void 0 ? _props_doctypes : doctype ? {
112
+ allow: [doctype]
113
+ } : void 0;
114
+ var capabilities = useMemo(function () {
115
+ return chrome === "bare" ? {
116
+ ...props.capabilities,
117
+ sidebar: false
118
+ } : props.capabilities;
119
+ }, [chrome, props.capabilities]);
120
+ return /* @__PURE__ */_jsx(BackofficeProvider, {
121
+ frappe,
122
+ navigation,
123
+ basePath,
124
+ capabilities,
125
+ doctypes,
126
+ fields: props.fields,
127
+ actions: props.actions,
128
+ slots: props.slots,
129
+ appearance: props.appearance,
130
+ integrations: props.integrations,
131
+ onEvent: props.onEvent,
132
+ children: /* @__PURE__ */_jsx(DeskScopeProvider, {
133
+ scope: props.scope,
134
+ children: /* @__PURE__ */_jsx(DeskBody, {
135
+ pins,
136
+ chrome,
137
+ readOnly: props.readOnly,
138
+ surfaces: props.surfaces,
139
+ initialFilters: props.filters,
140
+ views: props.views,
141
+ onTargetChange: props.onTargetChange
142
+ })
143
+ })
144
+ });
145
+ }
146
+ function DeskBody(param) {
147
+ var {
148
+ pins,
149
+ chrome,
150
+ readOnly,
151
+ surfaces,
152
+ initialFilters,
153
+ views,
154
+ onTargetChange
155
+ } = param;
156
+ var target = useDeskTarget(pins);
157
+ var onTargetChangeRef = useRef(onTargetChange);
158
+ onTargetChangeRef.current = onTargetChange;
159
+ var targetKey = target ? JSON.stringify(target) : void 0;
160
+ useEffect(function () {
161
+ var _onTargetChangeRef_current;
162
+ if (target) (_onTargetChangeRef_current = onTargetChangeRef.current) === null || _onTargetChangeRef_current === void 0 ? void 0 : _onTargetChangeRef_current.call(onTargetChangeRef, target);
163
+ },
164
+ // oxlint-disable-next-line exhaustive-deps
165
+ [targetKey]);
166
+ var surface = target ? /* @__PURE__ */_jsx(DeskSurface, {
167
+ target,
168
+ overrides: surfaces,
169
+ readOnly,
170
+ initialFilters,
171
+ views
172
+ }) : /* @__PURE__ */_jsx(DeskSurfaceLoading, {});
173
+ if (chrome === "content") {
174
+ return /* @__PURE__ */_jsx(YStack, {
175
+ flex: 1,
176
+ minHeight: 0,
177
+ minWidth: 0,
178
+ children: surface
179
+ });
180
+ }
181
+ return /* @__PURE__ */_jsx(BackofficeShell, {
182
+ children: surface
183
+ });
184
+ }
185
+ export { Desk };
186
+ //# sourceMappingURL=Desk.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["jsx","_jsx","YStack","useFrappeConfig","useEffect","useMemo","useRef","BackofficeProvider","createMemoryNavigator","BACKOFFICE_BASE","createBackofficePaths","BackofficeShell","DeskSurface","DeskSurfaceLoading","DeskScopeProvider","guessDeskTarget","hasDeskPin","useDeskTarget","pinnedPath","pins","basePath","paths","path","prefix","replace","doctype","name","newDoc","form","view","list","workspace","report","queryReport","home","Desk","props","_props_navigation","_props_doctypes","chrome","chromeProp","embedded","onNavigate","ambient","warned","frappe","current","console","warn","_props_frappe","baseURL","auth","fixtures","memoryNavigator","navigation","baseNavigation","onNavigateRef","intercept","intercept2","path2","_onNavigateRef_current","call","navigate","back","getLocation","subscribe","listener","setParams","params","_baseNavigation_setParams","doctypes","allow","capabilities","sidebar","fields","actions","slots","appearance","integrations","onEvent","children","scope","DeskBody","readOnly","surfaces","initialFilters","filters","views","onTargetChange","param","target","onTargetChangeRef","targetKey","JSON","stringify","_onTargetChangeRef_current","surface","overrides","flex","minHeight","minWidth"],"sources":["Desk.native.js"],"sourcesContent":["import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { YStack } from \"@multiplatform.one/components\";\nimport { useFrappeConfig } from \"@multiplatform.one/frappe-ui\";\nimport { useEffect, useMemo, useRef } from \"react\";\nimport { BackofficeProvider } from \"../config/BackofficeProvider\";\nimport { createMemoryNavigator } from \"../navigation/navigator\";\nimport { BACKOFFICE_BASE, createBackofficePaths } from \"../navigation/paths\";\nimport { BackofficeShell } from \"../shell/BackofficeShell\";\nimport { DeskSurface, DeskSurfaceLoading } from \"./DeskSurface\";\nimport { DeskScopeProvider } from \"./scope\";\nimport { guessDeskTarget, hasDeskPin, useDeskTarget } from \"./target\";\nfunction pinnedPath(pins, basePath) {\n var paths = createBackofficePaths(basePath);\n if (pins.path) {\n var prefix = basePath === \"/\" ? \"\" : basePath.replace(/\\/+$/, \"\");\n return `${prefix}${pins.path}`;\n }\n if (pins.doctype) {\n if (pins.name === \"new\") return paths.newDoc(pins.doctype);\n if (pins.name) return paths.form(pins.doctype, pins.name);\n if (pins.view && pins.view !== \"list\") return paths.view(pins.doctype, pins.view);\n return paths.list(pins.doctype);\n }\n if (pins.workspace) return paths.workspace(pins.workspace);\n if (pins.report) return paths.queryReport(pins.report);\n return paths.home();\n}\nfunction Desk(props) {\n var _props_navigation, _props_doctypes;\n var { doctype, name, view, workspace, report, path, basePath = BACKOFFICE_BASE, chrome: chromeProp, embedded, onNavigate } = props;\n var pins = useMemo(function() {\n return {\n doctype,\n name,\n view,\n workspace,\n report,\n path\n };\n }, [\n doctype,\n name,\n view,\n workspace,\n report,\n path\n ]);\n var ambient = useFrappeConfig();\n var warned = useRef(false);\n if (ambient && props.frappe && !warned.current) {\n warned.current = true;\n console.warn(\"[backoffice] <Desk frappe> is ignored: an ambient FrappeProvider exists and the SyncModule is cached per baseURL.\");\n }\n var frappe = useMemo(function() {\n var _props_frappe;\n if (ambient) {\n return {\n baseURL: ambient.baseURL,\n auth: ambient.auth,\n fixtures: ambient.fixtures\n };\n }\n return (_props_frappe = props.frappe) !== null && _props_frappe !== void 0 ? _props_frappe : {\n baseURL: \"\"\n };\n }, [\n ambient,\n props.frappe\n ]);\n var memoryNavigator = useMemo(\n function() {\n return props.navigation ? void 0 : createMemoryNavigator(pinnedPath(pins, basePath));\n },\n // The seed is the ENTRY; later pin changes re-enter through useDeskTarget.\n // oxlint-disable-next-line exhaustive-deps\n [\n props.navigation ? \"host\" : \"memory\"\n ]\n );\n var baseNavigation = (_props_navigation = props.navigation) !== null && _props_navigation !== void 0 ? _props_navigation : memoryNavigator;\n var onNavigateRef = useRef(onNavigate);\n onNavigateRef.current = onNavigate;\n var navigation = useMemo(function() {\n var intercept = function intercept2(path2) {\n var _onNavigateRef_current;\n return ((_onNavigateRef_current = onNavigateRef.current) === null || _onNavigateRef_current === void 0 ? void 0 : _onNavigateRef_current.call(onNavigateRef, guessDeskTarget(path2, basePath), path2)) !== false;\n };\n return {\n ...baseNavigation,\n navigate: function navigate(path2) {\n if (intercept(path2)) baseNavigation.navigate(path2);\n },\n replace: function replace(path2) {\n if (intercept(path2)) baseNavigation.replace(path2);\n },\n back: function back() {\n return baseNavigation.back();\n },\n getLocation: function getLocation() {\n return baseNavigation.getLocation();\n },\n subscribe: function subscribe(listener) {\n return baseNavigation.subscribe(listener);\n },\n ...baseNavigation.setParams ? {\n setParams: function setParams(params) {\n var _baseNavigation_setParams;\n return (_baseNavigation_setParams = baseNavigation.setParams) === null || _baseNavigation_setParams === void 0 ? void 0 : _baseNavigation_setParams.call(baseNavigation, params);\n }\n } : {}\n };\n }, [\n baseNavigation,\n basePath\n ]);\n var chrome = chromeProp !== null && chromeProp !== void 0 ? chromeProp : embedded || hasDeskPin(pins) ? \"content\" : \"full\";\n var doctypes = (_props_doctypes = props.doctypes) !== null && _props_doctypes !== void 0 ? _props_doctypes : doctype ? {\n allow: [\n doctype\n ]\n } : void 0;\n var capabilities = useMemo(function() {\n return chrome === \"bare\" ? {\n ...props.capabilities,\n sidebar: false\n } : props.capabilities;\n }, [\n chrome,\n props.capabilities\n ]);\n return /* @__PURE__ */ _jsx(BackofficeProvider, {\n frappe,\n navigation,\n basePath,\n capabilities,\n doctypes,\n fields: props.fields,\n actions: props.actions,\n slots: props.slots,\n appearance: props.appearance,\n integrations: props.integrations,\n onEvent: props.onEvent,\n children: /* @__PURE__ */ _jsx(DeskScopeProvider, {\n scope: props.scope,\n children: /* @__PURE__ */ _jsx(DeskBody, {\n pins,\n chrome,\n readOnly: props.readOnly,\n surfaces: props.surfaces,\n initialFilters: props.filters,\n views: props.views,\n onTargetChange: props.onTargetChange\n })\n })\n });\n}\nfunction DeskBody(param) {\n var { pins, chrome, readOnly, surfaces, initialFilters, views, onTargetChange } = param;\n var target = useDeskTarget(pins);\n var onTargetChangeRef = useRef(onTargetChange);\n onTargetChangeRef.current = onTargetChange;\n var targetKey = target ? JSON.stringify(target) : void 0;\n useEffect(\n function() {\n var _onTargetChangeRef_current;\n if (target) (_onTargetChangeRef_current = onTargetChangeRef.current) === null || _onTargetChangeRef_current === void 0 ? void 0 : _onTargetChangeRef_current.call(onTargetChangeRef, target);\n },\n // oxlint-disable-next-line exhaustive-deps\n [\n targetKey\n ]\n );\n var surface = target ? /* @__PURE__ */ _jsx(DeskSurface, {\n target,\n overrides: surfaces,\n readOnly,\n initialFilters,\n views\n }) : /* @__PURE__ */ _jsx(DeskSurfaceLoading, {});\n if (chrome === \"content\") {\n return /* @__PURE__ */ _jsx(YStack, {\n flex: 1,\n minHeight: 0,\n minWidth: 0,\n children: surface\n });\n }\n return /* @__PURE__ */ _jsx(BackofficeShell, {\n children: surface\n });\n}\nexport {\n Desk\n};\n//# sourceMappingURL=Desk.js.map\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,97 @@
1
+ import { Spinner, YStack } from "@multiplatform.one/components";
2
+ import { useMemo } from "react";
3
+ import { setCreatePrefill } from "../form/createPrefill.mjs";
4
+ import { DocFormScreen } from "../form/DocFormScreen.mjs";
5
+ import { DoctypeListScreen } from "../list/DoctypeListScreen.mjs";
6
+ import { QueryReportScreen } from "../report/QueryReportScreen.mjs";
7
+ import { HomeRedirect } from "../shell/HomeRedirect.mjs";
8
+ import { NotFoundScreen } from "../shell/NotFoundScreen.mjs";
9
+ import { DoctypeViewScreen } from "../views/DoctypeViewScreen.mjs";
10
+ import { WorkspaceScreen } from "../workspace/WorkspaceScreen.mjs";
11
+ import { jsx } from "react/jsx-runtime";
12
+ function resolveOverride(overrides, target) {
13
+ const entry = overrides?.[target.kind];
14
+ if (!entry) return void 0;
15
+ if (typeof entry === "function") return entry;
16
+ const doctype = "doctype" in target ? target.doctype : void 0;
17
+ return doctype ? entry[doctype] : void 0;
18
+ }
19
+ function NewDocSurface({
20
+ doctype,
21
+ defaults,
22
+ readOnly
23
+ }) {
24
+ const defaultsKey = JSON.stringify(defaults ?? null);
25
+ useMemo(() => {
26
+ if (defaults && Object.keys(defaults).length > 0) setCreatePrefill(doctype, defaults);
27
+ }, [doctype, defaultsKey]);
28
+ return /* @__PURE__ */jsx(DocFormScreen, {
29
+ doctype,
30
+ name: "new",
31
+ readOnly
32
+ }, defaultsKey);
33
+ }
34
+ function DeskSurface({
35
+ target,
36
+ overrides,
37
+ readOnly,
38
+ initialFilters,
39
+ views
40
+ }) {
41
+ const Override = resolveOverride(overrides, target);
42
+ if (Override) return /* @__PURE__ */jsx(Override, {
43
+ target,
44
+ readOnly
45
+ });
46
+ switch (target.kind) {
47
+ case "home":
48
+ return /* @__PURE__ */jsx(HomeRedirect, {});
49
+ case "workspace":
50
+ return /* @__PURE__ */jsx(WorkspaceScreen, {
51
+ workspace: target.workspace
52
+ });
53
+ case "list":
54
+ return /* @__PURE__ */jsx(DoctypeListScreen, {
55
+ doctype: target.doctype,
56
+ filtersParam: target.filtersParam,
57
+ sortParam: target.sortParam,
58
+ initialFilters,
59
+ views
60
+ });
61
+ case "view":
62
+ return /* @__PURE__ */jsx(DoctypeViewScreen, {
63
+ doctype: target.doctype,
64
+ view: target.view
65
+ });
66
+ case "new":
67
+ return /* @__PURE__ */jsx(NewDocSurface, {
68
+ doctype: target.doctype,
69
+ defaults: target.defaults,
70
+ readOnly
71
+ });
72
+ case "form":
73
+ return /* @__PURE__ */jsx(DocFormScreen, {
74
+ doctype: target.doctype,
75
+ name: target.name,
76
+ readOnly
77
+ });
78
+ case "report":
79
+ return /* @__PURE__ */jsx(QueryReportScreen, {
80
+ reportName: target.reportName
81
+ });
82
+ case "not-found":
83
+ return /* @__PURE__ */jsx(NotFoundScreen, {});
84
+ }
85
+ }
86
+ function DeskSurfaceLoading() {
87
+ return /* @__PURE__ */jsx(YStack, {
88
+ flex: 1,
89
+ alignItems: "center",
90
+ justifyContent: "center",
91
+ children: /* @__PURE__ */jsx(Spinner, {
92
+ size: "large"
93
+ })
94
+ });
95
+ }
96
+ export { DeskSurface, DeskSurfaceLoading };
97
+ //# sourceMappingURL=DeskSurface.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Spinner","YStack","useMemo","setCreatePrefill","DocFormScreen","DoctypeListScreen","QueryReportScreen","HomeRedirect","NotFoundScreen","DoctypeViewScreen","WorkspaceScreen","jsx","resolveOverride","overrides","target","entry","kind","doctype","NewDocSurface","defaults","readOnly","defaultsKey","JSON","stringify","Object","keys","length","name","DeskSurface","initialFilters","views","Override","workspace","filtersParam","sortParam","view","reportName","DeskSurfaceLoading","flex","alignItems","justifyContent","children","size"],"sources":["../../../src/desk/DeskSurface.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}