@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.
- package/dist/cjs/config/BackofficeProvider.cjs +4 -10
- package/dist/cjs/config/BackofficeProvider.native.js +9 -29
- package/dist/cjs/config/BackofficeProvider.native.js.map +1 -1
- package/dist/cjs/desk/Desk.cjs +187 -0
- package/dist/cjs/desk/Desk.native.js +214 -0
- package/dist/cjs/desk/Desk.native.js.map +1 -0
- package/dist/cjs/desk/DeskSurface.cjs +123 -0
- package/dist/cjs/desk/DeskSurface.native.js +130 -0
- package/dist/cjs/desk/DeskSurface.native.js.map +1 -0
- package/dist/cjs/desk/resolveDeskPath.cjs +118 -0
- package/dist/cjs/desk/resolveDeskPath.native.js +123 -0
- package/dist/cjs/desk/resolveDeskPath.native.js.map +1 -0
- package/dist/cjs/desk/scope.cjs +54 -0
- package/dist/cjs/desk/scope.native.js +61 -0
- package/dist/cjs/desk/scope.native.js.map +1 -0
- package/dist/cjs/desk/target.cjs +174 -0
- package/dist/cjs/desk/target.native.js +178 -0
- package/dist/cjs/desk/target.native.js.map +1 -0
- package/dist/cjs/index.cjs +13 -0
- package/dist/cjs/index.native.js +13 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/list/DoctypeListScreen.cjs +3 -1
- package/dist/cjs/list/DoctypeListScreen.native.js +3 -1
- package/dist/cjs/list/DoctypeListScreen.native.js.map +1 -1
- package/dist/cjs/report/DoctypeReportView.cjs +3 -1
- package/dist/cjs/report/DoctypeReportView.native.js +4 -2
- package/dist/cjs/report/DoctypeReportView.native.js.map +1 -1
- package/dist/cjs/views/CalendarView.cjs +5 -0
- package/dist/cjs/views/CalendarView.native.js +5 -0
- package/dist/cjs/views/CalendarView.native.js.map +1 -1
- package/dist/cjs/views/DashboardView.cjs +5 -3
- package/dist/cjs/views/DashboardView.native.js +5 -3
- package/dist/cjs/views/DashboardView.native.js.map +1 -1
- package/dist/cjs/views/ImageView.cjs +5 -0
- package/dist/cjs/views/ImageView.native.js +5 -0
- package/dist/cjs/views/ImageView.native.js.map +1 -1
- package/dist/cjs/views/KanbanView.cjs +5 -2
- package/dist/cjs/views/KanbanView.native.js +5 -2
- package/dist/cjs/views/KanbanView.native.js.map +1 -1
- package/dist/cjs/views/TreeView.cjs +5 -0
- package/dist/cjs/views/TreeView.native.js +5 -0
- package/dist/cjs/views/TreeView.native.js.map +1 -1
- package/dist/esm/config/BackofficeProvider.mjs +5 -11
- package/dist/esm/config/BackofficeProvider.mjs.map +1 -1
- package/dist/esm/config/BackofficeProvider.native.js +10 -30
- package/dist/esm/config/BackofficeProvider.native.js.map +1 -1
- package/dist/esm/desk/Desk.mjs +162 -0
- package/dist/esm/desk/Desk.mjs.map +1 -0
- package/dist/esm/desk/Desk.native.js +186 -0
- package/dist/esm/desk/Desk.native.js.map +1 -0
- package/dist/esm/desk/DeskSurface.mjs +97 -0
- package/dist/esm/desk/DeskSurface.mjs.map +1 -0
- package/dist/esm/desk/DeskSurface.native.js +101 -0
- package/dist/esm/desk/DeskSurface.native.js.map +1 -0
- package/dist/esm/desk/resolveDeskPath.mjs +93 -0
- package/dist/esm/desk/resolveDeskPath.mjs.map +1 -0
- package/dist/esm/desk/resolveDeskPath.native.js +95 -0
- package/dist/esm/desk/resolveDeskPath.native.js.map +1 -0
- package/dist/esm/desk/scope.mjs +27 -0
- package/dist/esm/desk/scope.mjs.map +1 -0
- package/dist/esm/desk/scope.native.js +31 -0
- package/dist/esm/desk/scope.native.js.map +1 -0
- package/dist/esm/desk/target.mjs +147 -0
- package/dist/esm/desk/target.mjs.map +1 -0
- package/dist/esm/desk/target.native.js +148 -0
- package/dist/esm/desk/target.native.js.map +1 -0
- package/dist/esm/index.mjs +6 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +6 -1
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/list/DoctypeListScreen.mjs +3 -1
- package/dist/esm/list/DoctypeListScreen.mjs.map +1 -1
- package/dist/esm/list/DoctypeListScreen.native.js +3 -1
- package/dist/esm/list/DoctypeListScreen.native.js.map +1 -1
- package/dist/esm/report/DoctypeReportView.mjs +3 -1
- package/dist/esm/report/DoctypeReportView.mjs.map +1 -1
- package/dist/esm/report/DoctypeReportView.native.js +4 -2
- package/dist/esm/report/DoctypeReportView.native.js.map +1 -1
- package/dist/esm/views/CalendarView.mjs +5 -0
- package/dist/esm/views/CalendarView.mjs.map +1 -1
- package/dist/esm/views/CalendarView.native.js +5 -0
- package/dist/esm/views/CalendarView.native.js.map +1 -1
- package/dist/esm/views/DashboardView.mjs +5 -3
- package/dist/esm/views/DashboardView.mjs.map +1 -1
- package/dist/esm/views/DashboardView.native.js +5 -3
- package/dist/esm/views/DashboardView.native.js.map +1 -1
- package/dist/esm/views/ImageView.mjs +5 -0
- package/dist/esm/views/ImageView.mjs.map +1 -1
- package/dist/esm/views/ImageView.native.js +5 -0
- package/dist/esm/views/ImageView.native.js.map +1 -1
- package/dist/esm/views/KanbanView.mjs +5 -2
- package/dist/esm/views/KanbanView.mjs.map +1 -1
- package/dist/esm/views/KanbanView.native.js +5 -2
- package/dist/esm/views/KanbanView.native.js.map +1 -1
- package/dist/esm/views/TreeView.mjs +5 -0
- package/dist/esm/views/TreeView.mjs.map +1 -1
- package/dist/esm/views/TreeView.native.js +5 -0
- package/dist/esm/views/TreeView.native.js.map +1 -1
- package/dist/jsx/config/BackofficeProvider.mjs +5 -11
- package/dist/jsx/config/BackofficeProvider.mjs.map +1 -1
- package/dist/jsx/config/BackofficeProvider.native.js +9 -29
- package/dist/jsx/config/BackofficeProvider.native.js.map +1 -1
- package/dist/jsx/desk/Desk.mjs +162 -0
- package/dist/jsx/desk/Desk.mjs.map +1 -0
- package/dist/jsx/desk/Desk.native.js +214 -0
- package/dist/jsx/desk/Desk.native.js.map +1 -0
- package/dist/jsx/desk/DeskSurface.mjs +97 -0
- package/dist/jsx/desk/DeskSurface.mjs.map +1 -0
- package/dist/jsx/desk/DeskSurface.native.js +130 -0
- package/dist/jsx/desk/DeskSurface.native.js.map +1 -0
- package/dist/jsx/desk/resolveDeskPath.mjs +93 -0
- package/dist/jsx/desk/resolveDeskPath.mjs.map +1 -0
- package/dist/jsx/desk/resolveDeskPath.native.js +123 -0
- package/dist/jsx/desk/resolveDeskPath.native.js.map +1 -0
- package/dist/jsx/desk/scope.mjs +27 -0
- package/dist/jsx/desk/scope.mjs.map +1 -0
- package/dist/jsx/desk/scope.native.js +61 -0
- package/dist/jsx/desk/scope.native.js.map +1 -0
- package/dist/jsx/desk/target.mjs +147 -0
- package/dist/jsx/desk/target.mjs.map +1 -0
- package/dist/jsx/desk/target.native.js +178 -0
- package/dist/jsx/desk/target.native.js.map +1 -0
- package/dist/jsx/index.js +6 -1
- package/dist/jsx/index.js.map +1 -1
- package/dist/jsx/index.mjs +6 -1
- package/dist/jsx/index.mjs.map +1 -1
- package/dist/jsx/index.native.js +13 -0
- package/dist/jsx/index.native.js.map +1 -1
- package/dist/jsx/list/DoctypeListScreen.mjs +3 -1
- package/dist/jsx/list/DoctypeListScreen.mjs.map +1 -1
- package/dist/jsx/list/DoctypeListScreen.native.js +3 -1
- package/dist/jsx/list/DoctypeListScreen.native.js.map +1 -1
- package/dist/jsx/report/DoctypeReportView.mjs +3 -1
- package/dist/jsx/report/DoctypeReportView.mjs.map +1 -1
- package/dist/jsx/report/DoctypeReportView.native.js +4 -2
- package/dist/jsx/report/DoctypeReportView.native.js.map +1 -1
- package/dist/jsx/views/CalendarView.mjs +5 -0
- package/dist/jsx/views/CalendarView.mjs.map +1 -1
- package/dist/jsx/views/CalendarView.native.js +5 -0
- package/dist/jsx/views/CalendarView.native.js.map +1 -1
- package/dist/jsx/views/DashboardView.mjs +5 -3
- package/dist/jsx/views/DashboardView.mjs.map +1 -1
- package/dist/jsx/views/DashboardView.native.js +5 -3
- package/dist/jsx/views/DashboardView.native.js.map +1 -1
- package/dist/jsx/views/ImageView.mjs +5 -0
- package/dist/jsx/views/ImageView.mjs.map +1 -1
- package/dist/jsx/views/ImageView.native.js +5 -0
- package/dist/jsx/views/ImageView.native.js.map +1 -1
- package/dist/jsx/views/KanbanView.mjs +5 -2
- package/dist/jsx/views/KanbanView.mjs.map +1 -1
- package/dist/jsx/views/KanbanView.native.js +5 -2
- package/dist/jsx/views/KanbanView.native.js.map +1 -1
- package/dist/jsx/views/TreeView.mjs +5 -0
- package/dist/jsx/views/TreeView.mjs.map +1 -1
- package/dist/jsx/views/TreeView.native.js +5 -0
- package/dist/jsx/views/TreeView.native.js.map +1 -1
- package/package.json +12 -12
- package/src/config/BackofficeProvider.tsx +11 -18
- package/src/desk/Desk.spec.tsx +287 -0
- package/src/desk/Desk.tsx +308 -0
- package/src/desk/DeskSurface.tsx +132 -0
- package/src/desk/doctrine.spec.ts +48 -0
- package/src/desk/resolveDeskPath.spec.ts +174 -0
- package/src/desk/resolveDeskPath.ts +111 -0
- package/src/desk/scope.tsx +52 -0
- package/src/desk/target.ts +169 -0
- package/src/index.ts +17 -0
- package/src/list/DoctypeListScreen.tsx +4 -1
- package/src/report/DoctypeReportView.tsx +6 -2
- package/src/views/CalendarView.tsx +3 -0
- package/src/views/DashboardView.tsx +5 -3
- package/src/views/ImageView.tsx +3 -0
- package/src/views/KanbanView.tsx +5 -1
- package/src/views/TreeView.tsx +3 -0
- package/types/config/BackofficeProvider.d.ts +6 -4
- package/types/config/BackofficeProvider.d.ts.map +1 -1
- package/types/desk/Desk.d.ts +91 -0
- package/types/desk/Desk.d.ts.map +1 -0
- package/types/desk/DeskSurface.d.ts +24 -0
- package/types/desk/DeskSurface.d.ts.map +1 -0
- package/types/desk/resolveDeskPath.d.ts +60 -0
- package/types/desk/resolveDeskPath.d.ts.map +1 -0
- package/types/desk/scope.d.ts +31 -0
- package/types/desk/scope.d.ts.map +1 -0
- package/types/desk/target.d.ts +57 -0
- package/types/desk/target.d.ts.map +1 -0
- package/types/index.d.ts +10 -0
- package/types/index.d.ts.map +1 -1
- package/types/list/DoctypeListScreen.d.ts.map +1 -1
- package/types/report/DoctypeReportView.d.ts.map +1 -1
- package/types/views/CalendarView.d.ts.map +1 -1
- package/types/views/DashboardView.d.ts.map +1 -1
- package/types/views/ImageView.d.ts.map +1 -1
- package/types/views/KanbanView.d.ts.map +1 -1
- 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":[]}
|