@multiplatform.one/backoffice 6.4.0 → 6.4.2
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/chrome/CommandPalette.cjs +20 -9
- package/dist/cjs/chrome/CommandPalette.native.js +18 -10
- package/dist/cjs/chrome/CommandPalette.native.js.map +1 -1
- package/dist/cjs/i18n/en.cjs +21 -0
- package/dist/cjs/i18n/en.native.js +21 -0
- package/dist/cjs/i18n/en.native.js.map +1 -1
- package/dist/cjs/index.cjs +49 -1
- package/dist/cjs/index.native.js +48 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/shared/types.cjs +18 -0
- package/dist/cjs/shared/types.native.js +21 -0
- package/dist/cjs/shared/types.native.js.map +1 -0
- package/dist/cjs/shared/useDocinfo.cjs +116 -0
- package/dist/cjs/shared/useDocinfo.native.js +167 -0
- package/dist/cjs/shared/useDocinfo.native.js.map +1 -0
- package/dist/cjs/shared/useDoctypeMeta.cjs +124 -0
- package/dist/cjs/shared/useDoctypeMeta.native.js +158 -0
- package/dist/cjs/shared/useDoctypeMeta.native.js.map +1 -0
- package/dist/cjs/shared/useRecentVisit.cjs +40 -0
- package/dist/cjs/shared/useRecentVisit.native.js +43 -0
- package/dist/cjs/shared/useRecentVisit.native.js.map +1 -0
- package/dist/cjs/shared/useSessionUserId.cjs +54 -0
- package/dist/cjs/shared/useSessionUserId.native.js +59 -0
- package/dist/cjs/shared/useSessionUserId.native.js.map +1 -0
- package/dist/cjs/shared/useSlugTarget.cjs +138 -0
- package/dist/cjs/shared/useSlugTarget.native.js +166 -0
- package/dist/cjs/shared/useSlugTarget.native.js.map +1 -0
- package/dist/cjs/shared/useUserRoles.cjs +72 -0
- package/dist/cjs/shared/useUserRoles.native.js +79 -0
- package/dist/cjs/shared/useUserRoles.native.js.map +1 -0
- package/dist/cjs/workspace/WorkspaceChartBlock.cjs +136 -0
- package/dist/cjs/workspace/WorkspaceChartBlock.native.js +144 -0
- package/dist/cjs/workspace/WorkspaceChartBlock.native.js.map +1 -0
- package/dist/cjs/workspace/WorkspaceGrid.cjs +91 -0
- package/dist/cjs/workspace/WorkspaceGrid.native.js +126 -0
- package/dist/cjs/workspace/WorkspaceGrid.native.js.map +1 -0
- package/dist/cjs/workspace/WorkspaceLinkCard.cjs +139 -0
- package/dist/cjs/workspace/WorkspaceLinkCard.native.js +155 -0
- package/dist/cjs/workspace/WorkspaceLinkCard.native.js.map +1 -0
- package/dist/cjs/workspace/WorkspaceLinkDirectory.cjs +110 -0
- package/dist/cjs/workspace/WorkspaceLinkDirectory.native.js +127 -0
- package/dist/cjs/workspace/WorkspaceLinkDirectory.native.js.map +1 -0
- package/dist/cjs/workspace/WorkspaceNumberCard.cjs +133 -0
- package/dist/cjs/workspace/WorkspaceNumberCard.native.js +138 -0
- package/dist/cjs/workspace/WorkspaceNumberCard.native.js.map +1 -0
- package/dist/cjs/workspace/WorkspaceQuickList.cjs +112 -0
- package/dist/cjs/workspace/WorkspaceQuickList.native.js +130 -0
- package/dist/cjs/workspace/WorkspaceQuickList.native.js.map +1 -0
- package/dist/cjs/workspace/WorkspaceRecents.cjs +116 -0
- package/dist/cjs/workspace/WorkspaceRecents.native.js +132 -0
- package/dist/cjs/workspace/WorkspaceRecents.native.js.map +1 -0
- package/dist/cjs/workspace/WorkspaceScreen.cjs +291 -0
- package/dist/cjs/workspace/WorkspaceScreen.native.js +323 -0
- package/dist/cjs/workspace/WorkspaceScreen.native.js.map +1 -0
- package/dist/cjs/workspace/WorkspaceShortcut.cjs +185 -0
- package/dist/cjs/workspace/WorkspaceShortcut.native.js +202 -0
- package/dist/cjs/workspace/WorkspaceShortcut.native.js.map +1 -0
- package/dist/cjs/workspace/parseContent.cjs +180 -0
- package/dist/cjs/workspace/parseContent.native.js +299 -0
- package/dist/cjs/workspace/parseContent.native.js.map +1 -0
- package/dist/cjs/workspace/types.cjs +18 -0
- package/dist/cjs/workspace/types.native.js +21 -0
- package/dist/cjs/workspace/types.native.js.map +1 -0
- package/dist/cjs/workspace/useDashboardChart.cjs +96 -0
- package/dist/cjs/workspace/useDashboardChart.native.js +110 -0
- package/dist/cjs/workspace/useDashboardChart.native.js.map +1 -0
- package/dist/cjs/workspace/useWorkspaceDoc.cjs +103 -0
- package/dist/cjs/workspace/useWorkspaceDoc.native.js +120 -0
- package/dist/cjs/workspace/useWorkspaceDoc.native.js.map +1 -0
- package/dist/esm/chrome/CommandPalette.mjs +20 -9
- package/dist/esm/chrome/CommandPalette.mjs.map +1 -1
- package/dist/esm/chrome/CommandPalette.native.js +18 -10
- package/dist/esm/chrome/CommandPalette.native.js.map +1 -1
- package/dist/esm/i18n/en.mjs +21 -0
- package/dist/esm/i18n/en.mjs.map +1 -1
- package/dist/esm/i18n/en.native.js +21 -0
- package/dist/esm/i18n/en.native.js.map +1 -1
- package/dist/esm/index.mjs +19 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +19 -1
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/shared/types.mjs +2 -0
- package/dist/esm/shared/types.mjs.map +1 -0
- package/dist/esm/shared/types.native.js +2 -0
- package/dist/esm/shared/types.native.js.map +1 -0
- package/dist/esm/shared/useDocinfo.mjs +90 -0
- package/dist/esm/shared/useDocinfo.mjs.map +1 -0
- package/dist/esm/shared/useDocinfo.native.js +138 -0
- package/dist/esm/shared/useDocinfo.native.js.map +1 -0
- package/dist/esm/shared/useDoctypeMeta.mjs +99 -0
- package/dist/esm/shared/useDoctypeMeta.mjs.map +1 -0
- package/dist/esm/shared/useDoctypeMeta.native.js +130 -0
- package/dist/esm/shared/useDoctypeMeta.native.js.map +1 -0
- package/dist/esm/shared/useRecentVisit.mjs +15 -0
- package/dist/esm/shared/useRecentVisit.mjs.map +1 -0
- package/dist/esm/shared/useRecentVisit.native.js +15 -0
- package/dist/esm/shared/useRecentVisit.native.js.map +1 -0
- package/dist/esm/shared/useSessionUserId.mjs +29 -0
- package/dist/esm/shared/useSessionUserId.mjs.map +1 -0
- package/dist/esm/shared/useSessionUserId.native.js +31 -0
- package/dist/esm/shared/useSessionUserId.native.js.map +1 -0
- package/dist/esm/shared/useSlugTarget.mjs +113 -0
- package/dist/esm/shared/useSlugTarget.mjs.map +1 -0
- package/dist/esm/shared/useSlugTarget.native.js +138 -0
- package/dist/esm/shared/useSlugTarget.native.js.map +1 -0
- package/dist/esm/shared/useUserRoles.mjs +47 -0
- package/dist/esm/shared/useUserRoles.mjs.map +1 -0
- package/dist/esm/shared/useUserRoles.native.js +51 -0
- package/dist/esm/shared/useUserRoles.native.js.map +1 -0
- package/dist/esm/workspace/WorkspaceChartBlock.mjs +111 -0
- package/dist/esm/workspace/WorkspaceChartBlock.mjs.map +1 -0
- package/dist/esm/workspace/WorkspaceChartBlock.native.js +116 -0
- package/dist/esm/workspace/WorkspaceChartBlock.native.js.map +1 -0
- package/dist/esm/workspace/WorkspaceGrid.mjs +66 -0
- package/dist/esm/workspace/WorkspaceGrid.mjs.map +1 -0
- package/dist/esm/workspace/WorkspaceGrid.native.js +98 -0
- package/dist/esm/workspace/WorkspaceGrid.native.js.map +1 -0
- package/dist/esm/workspace/WorkspaceLinkCard.mjs +113 -0
- package/dist/esm/workspace/WorkspaceLinkCard.mjs.map +1 -0
- package/dist/esm/workspace/WorkspaceLinkCard.native.js +126 -0
- package/dist/esm/workspace/WorkspaceLinkCard.native.js.map +1 -0
- package/dist/esm/workspace/WorkspaceLinkDirectory.mjs +84 -0
- package/dist/esm/workspace/WorkspaceLinkDirectory.mjs.map +1 -0
- package/dist/esm/workspace/WorkspaceLinkDirectory.native.js +98 -0
- package/dist/esm/workspace/WorkspaceLinkDirectory.native.js.map +1 -0
- package/dist/esm/workspace/WorkspaceNumberCard.mjs +108 -0
- package/dist/esm/workspace/WorkspaceNumberCard.mjs.map +1 -0
- package/dist/esm/workspace/WorkspaceNumberCard.native.js +110 -0
- package/dist/esm/workspace/WorkspaceNumberCard.native.js.map +1 -0
- package/dist/esm/workspace/WorkspaceQuickList.mjs +87 -0
- package/dist/esm/workspace/WorkspaceQuickList.mjs.map +1 -0
- package/dist/esm/workspace/WorkspaceQuickList.native.js +102 -0
- package/dist/esm/workspace/WorkspaceQuickList.native.js.map +1 -0
- package/dist/esm/workspace/WorkspaceRecents.mjs +91 -0
- package/dist/esm/workspace/WorkspaceRecents.mjs.map +1 -0
- package/dist/esm/workspace/WorkspaceRecents.native.js +104 -0
- package/dist/esm/workspace/WorkspaceRecents.native.js.map +1 -0
- package/dist/esm/workspace/WorkspaceScreen.mjs +266 -0
- package/dist/esm/workspace/WorkspaceScreen.mjs.map +1 -0
- package/dist/esm/workspace/WorkspaceScreen.native.js +295 -0
- package/dist/esm/workspace/WorkspaceScreen.native.js.map +1 -0
- package/dist/esm/workspace/WorkspaceShortcut.mjs +159 -0
- package/dist/esm/workspace/WorkspaceShortcut.mjs.map +1 -0
- package/dist/esm/workspace/WorkspaceShortcut.native.js +173 -0
- package/dist/esm/workspace/WorkspaceShortcut.native.js.map +1 -0
- package/dist/esm/workspace/parseContent.mjs +148 -0
- package/dist/esm/workspace/parseContent.mjs.map +1 -0
- package/dist/esm/workspace/parseContent.native.js +264 -0
- package/dist/esm/workspace/parseContent.native.js.map +1 -0
- package/dist/esm/workspace/types.mjs +2 -0
- package/dist/esm/workspace/types.mjs.map +1 -0
- package/dist/esm/workspace/types.native.js +2 -0
- package/dist/esm/workspace/types.native.js.map +1 -0
- package/dist/esm/workspace/useDashboardChart.mjs +71 -0
- package/dist/esm/workspace/useDashboardChart.mjs.map +1 -0
- package/dist/esm/workspace/useDashboardChart.native.js +82 -0
- package/dist/esm/workspace/useDashboardChart.native.js.map +1 -0
- package/dist/esm/workspace/useWorkspaceDoc.mjs +77 -0
- package/dist/esm/workspace/useWorkspaceDoc.mjs.map +1 -0
- package/dist/esm/workspace/useWorkspaceDoc.native.js +91 -0
- package/dist/esm/workspace/useWorkspaceDoc.native.js.map +1 -0
- package/dist/jsx/chrome/CommandPalette.mjs +20 -9
- package/dist/jsx/chrome/CommandPalette.mjs.map +1 -1
- package/dist/jsx/chrome/CommandPalette.native.js +18 -10
- package/dist/jsx/chrome/CommandPalette.native.js.map +1 -1
- package/dist/jsx/i18n/en.mjs +21 -0
- package/dist/jsx/i18n/en.mjs.map +1 -1
- package/dist/jsx/i18n/en.native.js +21 -0
- package/dist/jsx/i18n/en.native.js.map +1 -1
- package/dist/jsx/index.js +19 -1
- package/dist/jsx/index.js.map +1 -1
- package/dist/jsx/index.mjs +19 -1
- package/dist/jsx/index.mjs.map +1 -1
- package/dist/jsx/index.native.js +48 -0
- package/dist/jsx/index.native.js.map +1 -1
- package/dist/jsx/shared/types.mjs +2 -0
- package/dist/jsx/shared/types.mjs.map +1 -0
- package/dist/jsx/shared/types.native.js +21 -0
- package/dist/jsx/shared/types.native.js.map +1 -0
- package/dist/jsx/shared/useDocinfo.mjs +90 -0
- package/dist/jsx/shared/useDocinfo.mjs.map +1 -0
- package/dist/jsx/shared/useDocinfo.native.js +167 -0
- package/dist/jsx/shared/useDocinfo.native.js.map +1 -0
- package/dist/jsx/shared/useDoctypeMeta.mjs +99 -0
- package/dist/jsx/shared/useDoctypeMeta.mjs.map +1 -0
- package/dist/jsx/shared/useDoctypeMeta.native.js +158 -0
- package/dist/jsx/shared/useDoctypeMeta.native.js.map +1 -0
- package/dist/jsx/shared/useRecentVisit.mjs +15 -0
- package/dist/jsx/shared/useRecentVisit.mjs.map +1 -0
- package/dist/jsx/shared/useRecentVisit.native.js +43 -0
- package/dist/jsx/shared/useRecentVisit.native.js.map +1 -0
- package/dist/jsx/shared/useSessionUserId.mjs +29 -0
- package/dist/jsx/shared/useSessionUserId.mjs.map +1 -0
- package/dist/jsx/shared/useSessionUserId.native.js +59 -0
- package/dist/jsx/shared/useSessionUserId.native.js.map +1 -0
- package/dist/jsx/shared/useSlugTarget.mjs +113 -0
- package/dist/jsx/shared/useSlugTarget.mjs.map +1 -0
- package/dist/jsx/shared/useSlugTarget.native.js +166 -0
- package/dist/jsx/shared/useSlugTarget.native.js.map +1 -0
- package/dist/jsx/shared/useUserRoles.mjs +47 -0
- package/dist/jsx/shared/useUserRoles.mjs.map +1 -0
- package/dist/jsx/shared/useUserRoles.native.js +79 -0
- package/dist/jsx/shared/useUserRoles.native.js.map +1 -0
- package/dist/jsx/workspace/WorkspaceChartBlock.mjs +111 -0
- package/dist/jsx/workspace/WorkspaceChartBlock.mjs.map +1 -0
- package/dist/jsx/workspace/WorkspaceChartBlock.native.js +144 -0
- package/dist/jsx/workspace/WorkspaceChartBlock.native.js.map +1 -0
- package/dist/jsx/workspace/WorkspaceGrid.mjs +66 -0
- package/dist/jsx/workspace/WorkspaceGrid.mjs.map +1 -0
- package/dist/jsx/workspace/WorkspaceGrid.native.js +126 -0
- package/dist/jsx/workspace/WorkspaceGrid.native.js.map +1 -0
- package/dist/jsx/workspace/WorkspaceLinkCard.mjs +113 -0
- package/dist/jsx/workspace/WorkspaceLinkCard.mjs.map +1 -0
- package/dist/jsx/workspace/WorkspaceLinkCard.native.js +155 -0
- package/dist/jsx/workspace/WorkspaceLinkCard.native.js.map +1 -0
- package/dist/jsx/workspace/WorkspaceLinkDirectory.mjs +84 -0
- package/dist/jsx/workspace/WorkspaceLinkDirectory.mjs.map +1 -0
- package/dist/jsx/workspace/WorkspaceLinkDirectory.native.js +127 -0
- package/dist/jsx/workspace/WorkspaceLinkDirectory.native.js.map +1 -0
- package/dist/jsx/workspace/WorkspaceNumberCard.mjs +108 -0
- package/dist/jsx/workspace/WorkspaceNumberCard.mjs.map +1 -0
- package/dist/jsx/workspace/WorkspaceNumberCard.native.js +138 -0
- package/dist/jsx/workspace/WorkspaceNumberCard.native.js.map +1 -0
- package/dist/jsx/workspace/WorkspaceQuickList.mjs +87 -0
- package/dist/jsx/workspace/WorkspaceQuickList.mjs.map +1 -0
- package/dist/jsx/workspace/WorkspaceQuickList.native.js +130 -0
- package/dist/jsx/workspace/WorkspaceQuickList.native.js.map +1 -0
- package/dist/jsx/workspace/WorkspaceRecents.mjs +91 -0
- package/dist/jsx/workspace/WorkspaceRecents.mjs.map +1 -0
- package/dist/jsx/workspace/WorkspaceRecents.native.js +132 -0
- package/dist/jsx/workspace/WorkspaceRecents.native.js.map +1 -0
- package/dist/jsx/workspace/WorkspaceScreen.mjs +266 -0
- package/dist/jsx/workspace/WorkspaceScreen.mjs.map +1 -0
- package/dist/jsx/workspace/WorkspaceScreen.native.js +323 -0
- package/dist/jsx/workspace/WorkspaceScreen.native.js.map +1 -0
- package/dist/jsx/workspace/WorkspaceShortcut.mjs +159 -0
- package/dist/jsx/workspace/WorkspaceShortcut.mjs.map +1 -0
- package/dist/jsx/workspace/WorkspaceShortcut.native.js +202 -0
- package/dist/jsx/workspace/WorkspaceShortcut.native.js.map +1 -0
- package/dist/jsx/workspace/parseContent.mjs +148 -0
- package/dist/jsx/workspace/parseContent.mjs.map +1 -0
- package/dist/jsx/workspace/parseContent.native.js +299 -0
- package/dist/jsx/workspace/parseContent.native.js.map +1 -0
- package/dist/jsx/workspace/types.mjs +2 -0
- package/dist/jsx/workspace/types.mjs.map +1 -0
- package/dist/jsx/workspace/types.native.js +21 -0
- package/dist/jsx/workspace/types.native.js.map +1 -0
- package/dist/jsx/workspace/useDashboardChart.mjs +71 -0
- package/dist/jsx/workspace/useDashboardChart.mjs.map +1 -0
- package/dist/jsx/workspace/useDashboardChart.native.js +110 -0
- package/dist/jsx/workspace/useDashboardChart.native.js.map +1 -0
- package/dist/jsx/workspace/useWorkspaceDoc.mjs +77 -0
- package/dist/jsx/workspace/useWorkspaceDoc.mjs.map +1 -0
- package/dist/jsx/workspace/useWorkspaceDoc.native.js +120 -0
- package/dist/jsx/workspace/useWorkspaceDoc.native.js.map +1 -0
- package/package.json +12 -12
- package/src/chrome/CommandPalette.tsx +35 -15
- package/src/i18n/en.ts +21 -0
- package/src/index.ts +69 -0
- package/src/shared/types.ts +14 -0
- package/src/shared/useDocinfo.ts +163 -0
- package/src/shared/useDoctypeMeta.ts +243 -0
- package/src/shared/useRecentVisit.ts +33 -0
- package/src/shared/useSessionUserId.ts +42 -0
- package/src/shared/useSlugTarget.ts +143 -0
- package/src/shared/useUserRoles.ts +66 -0
- package/src/workspace/WorkspaceChartBlock.tsx +115 -0
- package/src/workspace/WorkspaceGrid.tsx +82 -0
- package/src/workspace/WorkspaceLinkCard.tsx +134 -0
- package/src/workspace/WorkspaceLinkDirectory.tsx +126 -0
- package/src/workspace/WorkspaceNumberCard.tsx +126 -0
- package/src/workspace/WorkspaceQuickList.tsx +100 -0
- package/src/workspace/WorkspaceRecents.tsx +100 -0
- package/src/workspace/WorkspaceScreen.tsx +322 -0
- package/src/workspace/WorkspaceShortcut.tsx +223 -0
- package/src/workspace/parseContent.spec.ts +327 -0
- package/src/workspace/parseContent.ts +240 -0
- package/src/workspace/types.ts +135 -0
- package/src/workspace/useDashboardChart.ts +115 -0
- package/src/workspace/useWorkspaceDoc.ts +111 -0
- package/types/chrome/CommandPalette.d.ts.map +1 -1
- package/types/i18n/en.d.ts +19 -0
- package/types/i18n/en.d.ts.map +1 -1
- package/types/index.d.ts +34 -0
- package/types/index.d.ts.map +1 -1
- package/types/shared/types.d.ts +21 -0
- package/types/shared/types.d.ts.map +1 -0
- package/types/shared/useDocinfo.d.ts +61 -0
- package/types/shared/useDocinfo.d.ts.map +1 -0
- package/types/shared/useDoctypeMeta.d.ts +118 -0
- package/types/shared/useDoctypeMeta.d.ts.map +1 -0
- package/types/shared/useRecentVisit.d.ts +10 -0
- package/types/shared/useRecentVisit.d.ts.map +1 -0
- package/types/shared/useSessionUserId.d.ts +6 -0
- package/types/shared/useSessionUserId.d.ts.map +1 -0
- package/types/shared/useSlugTarget.d.ts +18 -0
- package/types/shared/useSlugTarget.d.ts.map +1 -0
- package/types/shared/useUserRoles.d.ts +15 -0
- package/types/shared/useUserRoles.d.ts.map +1 -0
- package/types/workspace/WorkspaceChartBlock.d.ts +6 -0
- package/types/workspace/WorkspaceChartBlock.d.ts.map +1 -0
- package/types/workspace/WorkspaceGrid.d.ts +23 -0
- package/types/workspace/WorkspaceGrid.d.ts.map +1 -0
- package/types/workspace/WorkspaceLinkCard.d.ts +20 -0
- package/types/workspace/WorkspaceLinkCard.d.ts.map +1 -0
- package/types/workspace/WorkspaceLinkDirectory.d.ts +19 -0
- package/types/workspace/WorkspaceLinkDirectory.d.ts.map +1 -0
- package/types/workspace/WorkspaceNumberCard.d.ts +19 -0
- package/types/workspace/WorkspaceNumberCard.d.ts.map +1 -0
- package/types/workspace/WorkspaceQuickList.d.ts +6 -0
- package/types/workspace/WorkspaceQuickList.d.ts.map +1 -0
- package/types/workspace/WorkspaceRecents.d.ts +2 -0
- package/types/workspace/WorkspaceRecents.d.ts.map +1 -0
- package/types/workspace/WorkspaceScreen.d.ts +24 -0
- package/types/workspace/WorkspaceScreen.d.ts.map +1 -0
- package/types/workspace/WorkspaceShortcut.d.ts +27 -0
- package/types/workspace/WorkspaceShortcut.d.ts.map +1 -0
- package/types/workspace/parseContent.d.ts +77 -0
- package/types/workspace/parseContent.d.ts.map +1 -0
- package/types/workspace/types.d.ts +112 -0
- package/types/workspace/types.d.ts.map +1 -0
- package/types/workspace/useDashboardChart.d.ts +29 -0
- package/types/workspace/useDashboardChart.d.ts.map +1 -0
- package/types/workspace/useWorkspaceDoc.d.ts +18 -0
- package/types/workspace/useWorkspaceDoc.d.ts.map +1 -0
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { XStack, YStack } from "@multiplatform.one/components";
|
|
2
|
+
import { useResolvedKnobs } from "@multiplatform.one/theme";
|
|
3
|
+
import { useState } from "react";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
const NARROW_MAX = 640;
|
|
6
|
+
const MEDIUM_MAX = 960;
|
|
7
|
+
function effectiveSpan(raw, width) {
|
|
8
|
+
const span = Math.min(Math.max(Math.round(raw ?? 12), 1), 12);
|
|
9
|
+
if (width <= 0) return span;
|
|
10
|
+
if (width < NARROW_MAX) return 12;
|
|
11
|
+
if (width < MEDIUM_MAX) return span <= 6 ? 6 : 12;
|
|
12
|
+
return span;
|
|
13
|
+
}
|
|
14
|
+
function WorkspaceGrid({
|
|
15
|
+
items,
|
|
16
|
+
...stackProps
|
|
17
|
+
}) {
|
|
18
|
+
const {
|
|
19
|
+
knobProps
|
|
20
|
+
} = useResolvedKnobs();
|
|
21
|
+
const [width, setWidth] = useState(0);
|
|
22
|
+
const rows = [];
|
|
23
|
+
let current = [];
|
|
24
|
+
let used = 0;
|
|
25
|
+
for (const item of items) {
|
|
26
|
+
const span = effectiveSpan(item.col, width);
|
|
27
|
+
if (used + span > 12 && current.length > 0) {
|
|
28
|
+
rows.push(current);
|
|
29
|
+
current = [];
|
|
30
|
+
used = 0;
|
|
31
|
+
}
|
|
32
|
+
current.push({
|
|
33
|
+
item,
|
|
34
|
+
span
|
|
35
|
+
});
|
|
36
|
+
used += span;
|
|
37
|
+
}
|
|
38
|
+
if (current.length > 0) rows.push(current);
|
|
39
|
+
return /* @__PURE__ */jsx(YStack, {
|
|
40
|
+
...knobProps.gap,
|
|
41
|
+
onLayout: event => setWidth(event.nativeEvent.layout.width),
|
|
42
|
+
...stackProps,
|
|
43
|
+
children: rows.map((row, rowIndex) => {
|
|
44
|
+
const rowUsed = row.reduce((sum, cell) => sum + cell.span, 0);
|
|
45
|
+
return /* @__PURE__ */jsxs(XStack, {
|
|
46
|
+
...knobProps.gap,
|
|
47
|
+
alignItems: "stretch",
|
|
48
|
+
children: [row.map(({
|
|
49
|
+
item,
|
|
50
|
+
span
|
|
51
|
+
}) => /* @__PURE__ */jsx(YStack, {
|
|
52
|
+
flexGrow: span,
|
|
53
|
+
flexShrink: 1,
|
|
54
|
+
flexBasis: 0,
|
|
55
|
+
minWidth: 0,
|
|
56
|
+
children: item.node
|
|
57
|
+
}, item.key)), rowUsed < 12 ? /* @__PURE__ */jsx(YStack, {
|
|
58
|
+
flexGrow: 12 - rowUsed,
|
|
59
|
+
flexBasis: 0
|
|
60
|
+
}) : null]
|
|
61
|
+
}, row[0]?.item.key ?? rowIndex);
|
|
62
|
+
})
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
export { WorkspaceGrid };
|
|
66
|
+
//# sourceMappingURL=WorkspaceGrid.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["XStack","YStack","useResolvedKnobs","useState","jsx","jsxs","NARROW_MAX","MEDIUM_MAX","effectiveSpan","raw","width","span","Math","min","max","round","WorkspaceGrid","items","stackProps","knobProps","setWidth","rows","current","used","item","col","length","push","gap","onLayout","event","nativeEvent","layout","children","map","row","rowIndex","rowUsed","reduce","sum","cell","alignItems","flexGrow","flexShrink","flexBasis","minWidth","node","key"],"sources":["../../../src/workspace/WorkspaceGrid.tsx"],"sourcesContent":[null],"mappings":"AAUA,SAASA,MAAA,EAAQC,MAAA,QAAgC;AACjD,SAASC,gBAAA,QAAwB;AACjC,SAASC,QAAA,QAAgC;AAuD/B,SAEIC,GAAA,EAFJC,IAAA;AApDV,MAAMC,UAAA,GAAa;AAEnB,MAAMC,UAAA,GAAa;AASnB,SAASC,cAAcC,GAAA,EAAyBC,KAAA,EAAuB;EACrE,MAAMC,IAAA,GAAOC,IAAA,CAAKC,GAAA,CAAID,IAAA,CAAKE,GAAA,CAAIF,IAAA,CAAKG,KAAA,CAAMN,GAAA,IAAO,EAAE,GAAG,CAAC,GAAG,EAAE;EAC5D,IAAIC,KAAA,IAAS,GAAG,OAAOC,IAAA;EACvB,IAAID,KAAA,GAAQJ,UAAA,EAAY,OAAO;EAC/B,IAAII,KAAA,GAAQH,UAAA,EAAY,OAAOI,IAAA,IAAQ,IAAI,IAAI;EAC/C,OAAOA,IAAA;AACT;AAMO,SAASK,cAAc;EAAEC,KAAA;EAAO,GAAGC;AAAW,GAAuB;EAC1E,MAAM;IAAEC;EAAU,IAAIjB,gBAAA,CAAiB;EACvC,MAAM,CAACQ,KAAA,EAAOU,QAAQ,IAAIjB,QAAA,CAAS,CAAC;EAGpC,MAAMkB,IAAA,GAAgE,EAAC;EACvE,IAAIC,OAAA,GAA4D,EAAC;EACjE,IAAIC,IAAA,GAAO;EACX,WAAWC,IAAA,IAAQP,KAAA,EAAO;IACxB,MAAMN,IAAA,GAAOH,aAAA,CAAcgB,IAAA,CAAKC,GAAA,EAAKf,KAAK;IAC1C,IAAIa,IAAA,GAAOZ,IAAA,GAAO,MAAMW,OAAA,CAAQI,MAAA,GAAS,GAAG;MAC1CL,IAAA,CAAKM,IAAA,CAAKL,OAAO;MACjBA,OAAA,GAAU,EAAC;MACXC,IAAA,GAAO;IACT;IACAD,OAAA,CAAQK,IAAA,CAAK;MAAEH,IAAA;MAAMb;IAAK,CAAC;IAC3BY,IAAA,IAAQZ,IAAA;EACV;EACA,IAAIW,OAAA,CAAQI,MAAA,GAAS,GAAGL,IAAA,CAAKM,IAAA,CAAKL,OAAO;EAEzC,OACE,eAAAlB,GAAA,CAACH,MAAA;IACE,GAAGkB,SAAA,CAAUS,GAAA;IACdC,QAAA,EAAWC,KAAA,IAAUV,QAAA,CAASU,KAAA,CAAMC,WAAA,CAAYC,MAAA,CAAOtB,KAAK;IAC3D,GAAGQ,UAAA;IAEHe,QAAA,EAAAZ,IAAA,CAAKa,GAAA,CAAI,CAACC,GAAA,EAAKC,QAAA,KAAa;MAC3B,MAAMC,OAAA,GAAUF,GAAA,CAAIG,MAAA,CAAO,CAACC,GAAA,EAAKC,IAAA,KAASD,GAAA,GAAMC,IAAA,CAAK7B,IAAA,EAAM,CAAC;MAC5D,OACE,eAAAN,IAAA,CAACL,MAAA;QAA2C,GAAGmB,SAAA,CAAUS,GAAA;QAAKa,UAAA,EAAW;QACtER,QAAA,GAAAE,GAAA,CAAID,GAAA,CAAI,CAAC;UAAEV,IAAA;UAAMb;QAAK,MACrB,eAAAP,GAAA,CAACH,MAAA;UAAsByC,QAAA,EAAU/B,IAAA;UAAMgC,UAAA,EAAY;UAAGC,SAAA,EAAW;UAAGC,QAAA,EAAU;UAC3EZ,QAAA,EAAAT,IAAA,CAAKsB;QAAA,GADKtB,IAAA,CAAKuB,GAElB,CACD,GAGAV,OAAA,GAAU,KAAK,eAAAjC,GAAA,CAACH,MAAA;UAAOyC,QAAA,EAAU,KAAKL,OAAA;UAASO,SAAA,EAAW;QAAA,CAAG,IAAK;MAAA,GARxDT,GAAA,CAAI,CAAC,GAAGX,IAAA,CAAKuB,GAAA,IAAOX,QASjC;IAEJ,CAAC;EAAA,CACH;AAEJ","ignoreList":[]}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { XStack, YStack } from "@multiplatform.one/components";
|
|
3
|
+
import { useResolvedKnobs } from "@multiplatform.one/theme";
|
|
4
|
+
import { useState } from "react";
|
|
5
|
+
var NARROW_MAX = 640;
|
|
6
|
+
var MEDIUM_MAX = 960;
|
|
7
|
+
function effectiveSpan(raw, width) {
|
|
8
|
+
var span = Math.min(Math.max(Math.round(raw !== null && raw !== void 0 ? raw : 12), 1), 12);
|
|
9
|
+
if (width <= 0) return span;
|
|
10
|
+
if (width < NARROW_MAX) return 12;
|
|
11
|
+
if (width < MEDIUM_MAX) return span <= 6 ? 6 : 12;
|
|
12
|
+
return span;
|
|
13
|
+
}
|
|
14
|
+
function WorkspaceGrid(param) {
|
|
15
|
+
var {
|
|
16
|
+
items,
|
|
17
|
+
...stackProps
|
|
18
|
+
} = param;
|
|
19
|
+
var {
|
|
20
|
+
knobProps
|
|
21
|
+
} = useResolvedKnobs();
|
|
22
|
+
var [width, setWidth] = useState(0);
|
|
23
|
+
var rows = [];
|
|
24
|
+
var current = [];
|
|
25
|
+
var used = 0;
|
|
26
|
+
var _iteratorNormalCompletion = true,
|
|
27
|
+
_didIteratorError = false,
|
|
28
|
+
_iteratorError = void 0;
|
|
29
|
+
try {
|
|
30
|
+
for (var _iterator = items[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
31
|
+
var item = _step.value;
|
|
32
|
+
var span = effectiveSpan(item.col, width);
|
|
33
|
+
if (used + span > 12 && current.length > 0) {
|
|
34
|
+
rows.push(current);
|
|
35
|
+
current = [];
|
|
36
|
+
used = 0;
|
|
37
|
+
}
|
|
38
|
+
current.push({
|
|
39
|
+
item,
|
|
40
|
+
span
|
|
41
|
+
});
|
|
42
|
+
used += span;
|
|
43
|
+
}
|
|
44
|
+
} catch (err) {
|
|
45
|
+
_didIteratorError = true;
|
|
46
|
+
_iteratorError = err;
|
|
47
|
+
} finally {
|
|
48
|
+
try {
|
|
49
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
50
|
+
_iterator.return();
|
|
51
|
+
}
|
|
52
|
+
} finally {
|
|
53
|
+
if (_didIteratorError) {
|
|
54
|
+
throw _iteratorError;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
if (current.length > 0) rows.push(current);
|
|
59
|
+
return /* @__PURE__ */_jsx(YStack, {
|
|
60
|
+
...knobProps.gap,
|
|
61
|
+
onLayout: function onLayout(event) {
|
|
62
|
+
return setWidth(event.nativeEvent.layout.width);
|
|
63
|
+
},
|
|
64
|
+
...stackProps,
|
|
65
|
+
children: rows.map(function (row, rowIndex) {
|
|
66
|
+
var _ref;
|
|
67
|
+
var _row_;
|
|
68
|
+
var rowUsed = row.reduce(function (sum, cell) {
|
|
69
|
+
return sum + cell.span;
|
|
70
|
+
}, 0);
|
|
71
|
+
return /* @__PURE__ */_jsxs(XStack, {
|
|
72
|
+
...knobProps.gap,
|
|
73
|
+
alignItems: "stretch",
|
|
74
|
+
children: [row.map(function (param2) {
|
|
75
|
+
var {
|
|
76
|
+
item: item2,
|
|
77
|
+
span: span2
|
|
78
|
+
} = param2;
|
|
79
|
+
return /* @__PURE__ */_jsx(YStack, {
|
|
80
|
+
flexGrow: span2,
|
|
81
|
+
flexShrink: 1,
|
|
82
|
+
flexBasis: 0,
|
|
83
|
+
minWidth: 0,
|
|
84
|
+
children: item2.node
|
|
85
|
+
}, item2.key);
|
|
86
|
+
}),
|
|
87
|
+
/* Filler keeps a partial row's cells at their 12-col width
|
|
88
|
+
(a lone col-3 shortcut stays ~25%, like desk). */
|
|
89
|
+
rowUsed < 12 ? /* @__PURE__ */_jsx(YStack, {
|
|
90
|
+
flexGrow: 12 - rowUsed,
|
|
91
|
+
flexBasis: 0
|
|
92
|
+
}) : null]
|
|
93
|
+
}, (_ref = (_row_ = row[0]) === null || _row_ === void 0 ? void 0 : _row_.item.key) !== null && _ref !== void 0 ? _ref : rowIndex);
|
|
94
|
+
})
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
export { WorkspaceGrid };
|
|
98
|
+
//# sourceMappingURL=WorkspaceGrid.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["jsx","_jsx","jsxs","_jsxs","XStack","YStack","useResolvedKnobs","useState","NARROW_MAX","MEDIUM_MAX","effectiveSpan","raw","width","span","Math","min","max","round","WorkspaceGrid","param","items","stackProps","knobProps","setWidth","rows","current","used","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","item","value","col","length","push","err","return"],"sources":["../../../src/workspace/WorkspaceGrid.tsx"],"sourcesContent":[null],"mappings":"AAUA,SAASA,GAAA,IAAAC,IAAQ,EAAAC,IAAA,IAAAC,KAAgC;AACjD,SAASC,MAAA,EAAAC,MAAA,uCAAwB;AACjC,SAASC,gBAAgC;AAuD/B,SAEIC,QAFJ;AApDV,IAAAC,UAAM,MAAa;AAEnB,IAAAC,UAAM,MAAa;AASnB,SAASC,cAAcC,GAAA,EAAyBC,KAAA,EAAuB;EACrE,IAAAC,IAAM,GAAAC,IAAO,CAAAC,GAAK,CAAAD,IAAI,CAAAE,GAAK,CAAAF,IAAI,CAAAG,KAAK,CAAAN,GAAM,SAAS,IAAIA,GAAG,KAAE,SAAAA,GAAA;EAC5D,IAAIC,KAAA,IAAS,GAAG,OAAOC,IAAA;EACvB,IAAID,KAAA,GAAQJ,UAAA,EAAY,OAAO;EAC/B,IAAII,KAAA,GAAQH,UAAA,EAAY,OAAOI,IAAA,IAAQ,IAAI,IAAI;EAC/C,OAAOA,IAAA;AACT;AAMO,SAASK,cAAcC,KAAE;EAC9B;IAAMC,KAAE;IAAA,GAAAC;EAAc,IAAAF,KAAA;EACtB;IAAMG;EAAQ,IAAAhB,gBAAsB;EAGpC,KAAAM,KAAM,EAAAW,QAAiE,IAAAhB,QAAA;EACvE,IAAIiB,IAAA;EACJ,IAAIC,OAAO;EACX,IAAAC,IAAA,GAAW;EACT,IAAAC,yBAA2B,OAAK;IAAAC,iBAAU;IAAAC,cAAA;EAC1C;IACE,SAAKC,SAAK,GAAOV,KAAA,CAAAW,MAAA,CAAAC,QAAA,KAAAC,KAAA,IAAAN,yBAAA,IAAAM,KAAA,GAAAH,SAAA,CAAAI,IAAA,IAAAC,IAAA,GAAAR,yBAAA;MACjB,IAAAS,IAAA,GAAWH,KAAA,CAAAI,KAAA;MACX,IAAAxB,IAAO,GAAAH,aAAA,CAAA0B,IAAA,CAAAE,GAAA,EAAA1B,KAAA;MACT,IAAAc,IAAA,GAAAb,IAAA,SAAAY,OAAA,CAAAc,MAAA;QACAf,IAAQ,CAAAgB,IAAK,CAAAf,OAAQ;QACrBA,OAAQ;QACVC,IAAA;MACI;MAEJD,OACE,CAAAe,IAAA;QAACJ,IAAA;QAAAvB;MACE;MACDa,IAAA,IAAAb,IAAW;IAAiD;EACxD,SAEH4B,GAAA;IACCb,iBAAM,GAAU,IAAI;IACpBC,cACE,GAAAY,GAAA;EACG;IAIA;MAGkE,KAAAd,yBARpC,IAAAG,SASjC,CAAAY,MAAA;QAEHZ,SAAA,CAAAY,MAAA;MAAA;IACH;MAEJ,IAAAd,iBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { Card, SizableText, XStack, YStack } from "@multiplatform.one/components";
|
|
2
|
+
import { useResolvedKnobs } from "@multiplatform.one/theme";
|
|
3
|
+
import { useTranslation } from "react-i18next";
|
|
4
|
+
import { useBackofficeCapabilities, useBackofficeNavigator, useBackofficePaths, useIsDoctypeAllowed } from "../config/BackofficeProvider.mjs";
|
|
5
|
+
import { BACKOFFICE_I18N_NAMESPACE } from "../i18n/index.mjs";
|
|
6
|
+
import { createBackofficePaths } from "../navigation/paths.mjs";
|
|
7
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
const defaultPaths = createBackofficePaths();
|
|
9
|
+
function resolveLinkTarget(row, paths = defaultPaths) {
|
|
10
|
+
const target = row.link_to ?? "";
|
|
11
|
+
if (!target) return {
|
|
12
|
+
disabled: true
|
|
13
|
+
};
|
|
14
|
+
const prefix = paths.base === "/" ? "" : paths.base;
|
|
15
|
+
switch (row.link_type) {
|
|
16
|
+
case "DocType":
|
|
17
|
+
return {
|
|
18
|
+
path: paths.list(target)
|
|
19
|
+
};
|
|
20
|
+
case "Report":
|
|
21
|
+
return {
|
|
22
|
+
path: paths.list(target)
|
|
23
|
+
};
|
|
24
|
+
case "Page":
|
|
25
|
+
return {
|
|
26
|
+
path: `${prefix}/${target}`
|
|
27
|
+
};
|
|
28
|
+
default:
|
|
29
|
+
return {
|
|
30
|
+
disabled: true
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
function LinkRow({
|
|
35
|
+
row
|
|
36
|
+
}) {
|
|
37
|
+
const navigator = useBackofficeNavigator();
|
|
38
|
+
const paths = useBackofficePaths();
|
|
39
|
+
const target = resolveLinkTarget(row, paths);
|
|
40
|
+
return /* @__PURE__ */jsx(XStack, {
|
|
41
|
+
onPress: target.disabled ? void 0 : () => target.path && navigator.navigate(target.path),
|
|
42
|
+
disabled: target.disabled,
|
|
43
|
+
opacity: target.disabled ? 0.5 : 1,
|
|
44
|
+
cursor: target.disabled ? "default" : "pointer",
|
|
45
|
+
paddingVertical: "$1.5",
|
|
46
|
+
alignItems: "center",
|
|
47
|
+
role: "link",
|
|
48
|
+
"aria-label": row.label,
|
|
49
|
+
hoverStyle: target.disabled ? void 0 : {
|
|
50
|
+
backgroundColor: "$color3"
|
|
51
|
+
},
|
|
52
|
+
borderRadius: "$2",
|
|
53
|
+
children: /* @__PURE__ */jsx(SizableText, {
|
|
54
|
+
size: "$3",
|
|
55
|
+
color: target.disabled ? "$color10" : "$color12",
|
|
56
|
+
numberOfLines: 1,
|
|
57
|
+
flexShrink: 1,
|
|
58
|
+
hoverStyle: target.disabled ? void 0 : {
|
|
59
|
+
color: "$color12"
|
|
60
|
+
},
|
|
61
|
+
children: row.label
|
|
62
|
+
})
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
function WorkspaceLinkCard({
|
|
66
|
+
group
|
|
67
|
+
}) {
|
|
68
|
+
const {
|
|
69
|
+
knobProps
|
|
70
|
+
} = useResolvedKnobs();
|
|
71
|
+
const {
|
|
72
|
+
t
|
|
73
|
+
} = useTranslation(BACKOFFICE_I18N_NAMESPACE);
|
|
74
|
+
const {
|
|
75
|
+
views
|
|
76
|
+
} = useBackofficeCapabilities();
|
|
77
|
+
const isDoctypeAllowed = useIsDoctypeAllowed();
|
|
78
|
+
const visibleLinks = group.links.filter(row => {
|
|
79
|
+
if (row.link_type === "DocType" || row.link_type === "Report") {
|
|
80
|
+
if (!views.enabled) return false;
|
|
81
|
+
if (row.link_type === "DocType" && row.link_to && !isDoctypeAllowed(row.link_to)) {
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return true;
|
|
86
|
+
});
|
|
87
|
+
return /* @__PURE__ */jsx(Card, {
|
|
88
|
+
flexGrow: 1,
|
|
89
|
+
height: "100%",
|
|
90
|
+
children: /* @__PURE__ */jsxs(YStack, {
|
|
91
|
+
...knobProps.panelPadding,
|
|
92
|
+
...knobProps.gap,
|
|
93
|
+
flex: 1,
|
|
94
|
+
children: [/* @__PURE__ */jsx(SizableText, {
|
|
95
|
+
size: "$2",
|
|
96
|
+
fontWeight: "600",
|
|
97
|
+
textTransform: "uppercase",
|
|
98
|
+
color: "$color11",
|
|
99
|
+
children: group.label
|
|
100
|
+
}), visibleLinks.length === 0 ? /* @__PURE__ */jsx(SizableText, {
|
|
101
|
+
size: "$2",
|
|
102
|
+
color: "$color10",
|
|
103
|
+
children: t("workspaceCardEmpty", "No links in this section")
|
|
104
|
+
}) : /* @__PURE__ */jsx(YStack, {
|
|
105
|
+
children: visibleLinks.map(row => /* @__PURE__ */jsx(LinkRow, {
|
|
106
|
+
row
|
|
107
|
+
}, row.name))
|
|
108
|
+
})]
|
|
109
|
+
})
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
export { WorkspaceLinkCard, resolveLinkTarget };
|
|
113
|
+
//# sourceMappingURL=WorkspaceLinkCard.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Card","SizableText","XStack","YStack","useResolvedKnobs","useTranslation","useBackofficeCapabilities","useBackofficeNavigator","useBackofficePaths","useIsDoctypeAllowed","BACKOFFICE_I18N_NAMESPACE","createBackofficePaths","jsx","jsxs","defaultPaths","resolveLinkTarget","row","paths","target","link_to","disabled","prefix","base","link_type","path","list","LinkRow","navigator","onPress","navigate","opacity","cursor","paddingVertical","alignItems","role","label","hoverStyle","backgroundColor","borderRadius","children","size","color","numberOfLines","flexShrink","WorkspaceLinkCard","group","knobProps","t","views","isDoctypeAllowed","visibleLinks","links","filter","enabled","flexGrow","height","panelPadding","gap","flex","fontWeight","textTransform","length","map","name"],"sources":["../../../src/workspace/WorkspaceLinkCard.tsx"],"sourcesContent":[null],"mappings":"AAWA,SAASA,IAAA,EAAMC,WAAA,EAAaC,MAAA,EAAQC,MAAA,QAAc;AAClD,SAASC,gBAAA,QAAwB;AACjC,SAASC,cAAA,QAAsB;AAC/B,SACEC,yBAAA,EACAC,sBAAA,EACAC,kBAAA,EACAC,mBAAA,QACK;AACP,SAASC,yBAAA,QAAiC;AAC1C,SAASC,qBAAA,QAAmD;AAqDtD,SAAAC,GAAA,EAsCAC,IAAA,QAtCA;AAlDN,MAAMC,YAAA,GAAeH,qBAAA,CAAsB;AAWpC,SAASI,kBACdC,GAAA,EACAC,KAAA,GAAyBH,YAAA,EAIzB;EACA,MAAMI,MAAA,GAASF,GAAA,CAAIG,OAAA,IAAW;EAC9B,IAAI,CAACD,MAAA,EAAQ,OAAO;IAAEE,QAAA,EAAU;EAAK;EACrC,MAAMC,MAAA,GAASJ,KAAA,CAAMK,IAAA,KAAS,MAAM,KAAKL,KAAA,CAAMK,IAAA;EAC/C,QAAQN,GAAA,CAAIO,SAAA;IACV,KAAK;MACH,OAAO;QAAEC,IAAA,EAAMP,KAAA,CAAMQ,IAAA,CAAKP,MAAM;MAAE;IACpC,KAAK;MACH,OAAO;QAAEM,IAAA,EAAMP,KAAA,CAAMQ,IAAA,CAAKP,MAAM;MAAE;IACpC,KAAK;MACH,OAAO;QAAEM,IAAA,EAAM,GAAGH,MAAM,IAAIH,MAAM;MAAG;IACvC;MACE,OAAO;QAAEE,QAAA,EAAU;MAAK;EAC5B;AACF;AAEA,SAASM,QAAQ;EAAEV;AAAI,GAA8B;EACnD,MAAMW,SAAA,GAAYpB,sBAAA,CAAuB;EACzC,MAAMU,KAAA,GAAQT,kBAAA,CAAmB;EACjC,MAAMU,MAAA,GAASH,iBAAA,CAAkBC,GAAA,EAAKC,KAAK;EAC3C,OACE,eAAAL,GAAA,CAACV,MAAA;IACC0B,OAAA,EAASV,MAAA,CAAOE,QAAA,GAAW,SAAY,MAAMF,MAAA,CAAOM,IAAA,IAAQG,SAAA,CAAUE,QAAA,CAASX,MAAA,CAAOM,IAAI;IAC1FJ,QAAA,EAAUF,MAAA,CAAOE,QAAA;IACjBU,OAAA,EAASZ,MAAA,CAAOE,QAAA,GAAW,MAAM;IACjCW,MAAA,EAAQb,MAAA,CAAOE,QAAA,GAAW,YAAY;IACtCY,eAAA,EAAgB;IAChBC,UAAA,EAAW;IACXC,IAAA,EAAK;IACL,cAAYlB,GAAA,CAAImB,KAAA;IAChBC,UAAA,EAAYlB,MAAA,CAAOE,QAAA,GAAW,SAAY;MAAEiB,eAAA,EAAiB;IAAU;IACvEC,YAAA,EAAa;IAEbC,QAAA,iBAAA3B,GAAA,CAACX,WAAA;MACCuC,IAAA,EAAK;MACLC,KAAA,EAAOvB,MAAA,CAAOE,QAAA,GAAW,aAAa;MACtCsB,aAAA,EAAe;MACfC,UAAA,EAAY;MACZP,UAAA,EAAYlB,MAAA,CAAOE,QAAA,GAAW,SAAY;QAAEqB,KAAA,EAAO;MAAW;MAE7DF,QAAA,EAAAvB,GAAA,CAAImB;IAAA,CACP;EAAA,CACF;AAEJ;AAMO,SAASS,kBAAkB;EAAEC;AAAM,GAA2B;EACnE,MAAM;IAAEC;EAAU,IAAI1C,gBAAA,CAAiB;EACvC,MAAM;IAAE2C;EAAE,IAAI1C,cAAA,CAAeK,yBAAyB;EACtD,MAAM;IAAEsC;EAAM,IAAI1C,yBAAA,CAA0B;EAC5C,MAAM2C,gBAAA,GAAmBxC,mBAAA,CAAoB;EAK7C,MAAMyC,YAAA,GAAeL,KAAA,CAAMM,KAAA,CAAMC,MAAA,CAAQpC,GAAA,IAAQ;IAC/C,IAAIA,GAAA,CAAIO,SAAA,KAAc,aAAaP,GAAA,CAAIO,SAAA,KAAc,UAAU;MAC7D,IAAI,CAACyB,KAAA,CAAMK,OAAA,EAAS,OAAO;MAC3B,IAAIrC,GAAA,CAAIO,SAAA,KAAc,aAAaP,GAAA,CAAIG,OAAA,IAAW,CAAC8B,gBAAA,CAAiBjC,GAAA,CAAIG,OAAO,GAAG;QAChF,OAAO;MACT;IACF;IACA,OAAO;EACT,CAAC;EAED,OACE,eAAAP,GAAA,CAACZ,IAAA;IAAKsD,QAAA,EAAU;IAAGC,MAAA,EAAO;IACxBhB,QAAA,iBAAA1B,IAAA,CAACV,MAAA;MAAQ,GAAG2C,SAAA,CAAUU,YAAA;MAAe,GAAGV,SAAA,CAAUW,GAAA;MAAKC,IAAA,EAAM;MAI3DnB,QAAA,kBAAA3B,GAAA,CAACX,WAAA;QAAYuC,IAAA,EAAK;QAAKmB,UAAA,EAAW;QAAMC,aAAA,EAAc;QAAYnB,KAAA,EAAM;QACrEF,QAAA,EAAAM,KAAA,CAAMV;MAAA,CACT,GACCe,YAAA,CAAaW,MAAA,KAAW,IACvB,eAAAjD,GAAA,CAACX,WAAA;QAAYuC,IAAA,EAAK;QAAKC,KAAA,EAAM;QAC1BF,QAAA,EAAAQ,CAAA,CAAE,sBAAsB,0BAA0B;MAAA,CACrD,IAEA,eAAAnC,GAAA,CAACT,MAAA;QACEoC,QAAA,EAAAW,YAAA,CAAaY,GAAA,CAAK9C,GAAA,IACjB,eAAAJ,GAAA,CAACc,OAAA;UAAuBV;QAAA,GAAVA,GAAA,CAAI+C,IAAgB,CACnC;MAAA,CACH;IAAA,CAEJ;EAAA,CACF;AAEJ","ignoreList":[]}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Card, SizableText, XStack, YStack } from "@multiplatform.one/components";
|
|
3
|
+
import { useResolvedKnobs } from "@multiplatform.one/theme";
|
|
4
|
+
import { useTranslation } from "react-i18next";
|
|
5
|
+
import { useBackofficeCapabilities, useBackofficeNavigator, useBackofficePaths, useIsDoctypeAllowed } from "../config/BackofficeProvider.native.js";
|
|
6
|
+
import { BACKOFFICE_I18N_NAMESPACE } from "../i18n/index.native.js";
|
|
7
|
+
import { createBackofficePaths } from "../navigation/paths.native.js";
|
|
8
|
+
var defaultPaths = createBackofficePaths();
|
|
9
|
+
function resolveLinkTarget(row) {
|
|
10
|
+
var paths = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : defaultPaths;
|
|
11
|
+
var _row_link_to;
|
|
12
|
+
var target = (_row_link_to = row.link_to) !== null && _row_link_to !== void 0 ? _row_link_to : "";
|
|
13
|
+
if (!target) return {
|
|
14
|
+
disabled: true
|
|
15
|
+
};
|
|
16
|
+
var prefix = paths.base === "/" ? "" : paths.base;
|
|
17
|
+
switch (row.link_type) {
|
|
18
|
+
case "DocType":
|
|
19
|
+
return {
|
|
20
|
+
path: paths.list(target)
|
|
21
|
+
};
|
|
22
|
+
case "Report":
|
|
23
|
+
return {
|
|
24
|
+
path: paths.list(target)
|
|
25
|
+
};
|
|
26
|
+
case "Page":
|
|
27
|
+
return {
|
|
28
|
+
path: `${prefix}/${target}`
|
|
29
|
+
};
|
|
30
|
+
default:
|
|
31
|
+
return {
|
|
32
|
+
disabled: true
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
function LinkRow(param) {
|
|
37
|
+
var {
|
|
38
|
+
row
|
|
39
|
+
} = param;
|
|
40
|
+
var navigator = useBackofficeNavigator();
|
|
41
|
+
var paths = useBackofficePaths();
|
|
42
|
+
var target = resolveLinkTarget(row, paths);
|
|
43
|
+
return /* @__PURE__ */_jsx(XStack, {
|
|
44
|
+
onPress: target.disabled ? void 0 : function () {
|
|
45
|
+
return target.path && navigator.navigate(target.path);
|
|
46
|
+
},
|
|
47
|
+
disabled: target.disabled,
|
|
48
|
+
opacity: target.disabled ? 0.5 : 1,
|
|
49
|
+
cursor: target.disabled ? "default" : "pointer",
|
|
50
|
+
paddingVertical: "$1.5",
|
|
51
|
+
alignItems: "center",
|
|
52
|
+
role: "link",
|
|
53
|
+
"aria-label": row.label,
|
|
54
|
+
hoverStyle: target.disabled ? void 0 : {
|
|
55
|
+
backgroundColor: "$color3"
|
|
56
|
+
},
|
|
57
|
+
borderRadius: "$2",
|
|
58
|
+
children: /* @__PURE__ */_jsx(SizableText, {
|
|
59
|
+
size: "$3",
|
|
60
|
+
color: target.disabled ? "$color10" : "$color12",
|
|
61
|
+
numberOfLines: 1,
|
|
62
|
+
flexShrink: 1,
|
|
63
|
+
hoverStyle: target.disabled ? void 0 : {
|
|
64
|
+
color: "$color12"
|
|
65
|
+
},
|
|
66
|
+
children: row.label
|
|
67
|
+
})
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
function WorkspaceLinkCard(param) {
|
|
71
|
+
var {
|
|
72
|
+
group
|
|
73
|
+
} = param;
|
|
74
|
+
var {
|
|
75
|
+
knobProps
|
|
76
|
+
} = useResolvedKnobs();
|
|
77
|
+
var {
|
|
78
|
+
t
|
|
79
|
+
} = useTranslation(BACKOFFICE_I18N_NAMESPACE);
|
|
80
|
+
var {
|
|
81
|
+
views
|
|
82
|
+
} = useBackofficeCapabilities();
|
|
83
|
+
var isDoctypeAllowed = useIsDoctypeAllowed();
|
|
84
|
+
var visibleLinks = group.links.filter(function (row) {
|
|
85
|
+
if (row.link_type === "DocType" || row.link_type === "Report") {
|
|
86
|
+
if (!views.enabled) return false;
|
|
87
|
+
if (row.link_type === "DocType" && row.link_to && !isDoctypeAllowed(row.link_to)) {
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return true;
|
|
92
|
+
});
|
|
93
|
+
return /* @__PURE__ */_jsx(Card, {
|
|
94
|
+
flexGrow: 1,
|
|
95
|
+
height: "100%",
|
|
96
|
+
children: /* @__PURE__ */_jsxs(YStack, {
|
|
97
|
+
...knobProps.panelPadding,
|
|
98
|
+
...knobProps.gap,
|
|
99
|
+
flex: 1,
|
|
100
|
+
children: [
|
|
101
|
+
/* Catalog list-group caption (Sidebar section-label treatment):
|
|
102
|
+
small-caps muted label, no underline rule — a full-width rule
|
|
103
|
+
under uneven columns read as table chrome (Axiom 16). */
|
|
104
|
+
/* @__PURE__ */
|
|
105
|
+
_jsx(SizableText, {
|
|
106
|
+
size: "$2",
|
|
107
|
+
fontWeight: "600",
|
|
108
|
+
textTransform: "uppercase",
|
|
109
|
+
color: "$color11",
|
|
110
|
+
children: group.label
|
|
111
|
+
}), visibleLinks.length === 0 ? /* @__PURE__ */_jsx(SizableText, {
|
|
112
|
+
size: "$2",
|
|
113
|
+
color: "$color10",
|
|
114
|
+
children: t("workspaceCardEmpty", "No links in this section")
|
|
115
|
+
}) : /* @__PURE__ */_jsx(YStack, {
|
|
116
|
+
children: visibleLinks.map(function (row) {
|
|
117
|
+
return /* @__PURE__ */_jsx(LinkRow, {
|
|
118
|
+
row
|
|
119
|
+
}, row.name);
|
|
120
|
+
})
|
|
121
|
+
})]
|
|
122
|
+
})
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
export { WorkspaceLinkCard, resolveLinkTarget };
|
|
126
|
+
//# sourceMappingURL=WorkspaceLinkCard.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["jsx","_jsx","jsxs","_jsxs","Card","SizableText","XStack","YStack","useResolvedKnobs","useTranslation","useBackofficeCapabilities","useBackofficeNavigator","useBackofficePaths","useIsDoctypeAllowed","BACKOFFICE_I18N_NAMESPACE","createBackofficePaths","defaultPaths","resolveLinkTarget","row","paths","arguments","length","_row_link_to","target","link_to","disabled","prefix","base","link_type","path","list","LinkRow","param","navigator","onPress","navigate","opacity","cursor","paddingVertical","alignItems","role","label","hoverStyle","backgroundColor","borderRadius","children","size","color","numberOfLines","flexShrink","WorkspaceLinkCard","group","knobProps","t","views","isDoctypeAllowed","visibleLinks","links","filter","enabled"],"sources":["../../../src/workspace/WorkspaceLinkCard.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { EmptyState, Accordion, YStack } from "@multiplatform.one/components";
|
|
2
|
+
import { SearchInput, useViewportGtSm } from "@multiplatform.one/forms";
|
|
3
|
+
import { useResolvedKnobs } from "@multiplatform.one/theme";
|
|
4
|
+
import { useMemo, useState } from "react";
|
|
5
|
+
import { useTranslation } from "react-i18next";
|
|
6
|
+
import { BACKOFFICE_I18N_NAMESPACE } from "../i18n/index.mjs";
|
|
7
|
+
import { WorkspaceGrid } from "./WorkspaceGrid.mjs";
|
|
8
|
+
import { WorkspaceLinkCard } from "./WorkspaceLinkCard.mjs";
|
|
9
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
10
|
+
const DIRECTORY_VALUE = "links";
|
|
11
|
+
function filterLinkGroup(group, query) {
|
|
12
|
+
const needle = query.trim().toLowerCase();
|
|
13
|
+
if (!needle) return group;
|
|
14
|
+
if (group.label.toLowerCase().includes(needle)) return group;
|
|
15
|
+
const links = group.links.filter(row => row.label.toLowerCase().includes(needle));
|
|
16
|
+
return links.length > 0 ? {
|
|
17
|
+
...group,
|
|
18
|
+
links
|
|
19
|
+
} : void 0;
|
|
20
|
+
}
|
|
21
|
+
function WorkspaceLinkDirectory({
|
|
22
|
+
items
|
|
23
|
+
}) {
|
|
24
|
+
const {
|
|
25
|
+
t
|
|
26
|
+
} = useTranslation(BACKOFFICE_I18N_NAMESPACE);
|
|
27
|
+
const {
|
|
28
|
+
knobProps
|
|
29
|
+
} = useResolvedKnobs();
|
|
30
|
+
const viewportGtSm = useViewportGtSm();
|
|
31
|
+
const [filter, setFilter] = useState("");
|
|
32
|
+
const [openValue, setOpenValue] = useState(() => viewportGtSm ? DIRECTORY_VALUE : "");
|
|
33
|
+
const totalLinks = useMemo(() => items.reduce((sum, item) => sum + item.group.links.length, 0), [items]);
|
|
34
|
+
const filteredItems = useMemo(() => items.flatMap(item => {
|
|
35
|
+
const group = filterLinkGroup(item.group, filter);
|
|
36
|
+
if (!group) return [];
|
|
37
|
+
return [{
|
|
38
|
+
key: item.key,
|
|
39
|
+
col: item.col ?? 4,
|
|
40
|
+
node: /* @__PURE__ */jsx(WorkspaceLinkCard, {
|
|
41
|
+
group
|
|
42
|
+
})
|
|
43
|
+
}];
|
|
44
|
+
}), [items, filter]);
|
|
45
|
+
return /* @__PURE__ */jsx(Accordion, {
|
|
46
|
+
type: "single",
|
|
47
|
+
collapsible: true,
|
|
48
|
+
variant: "card",
|
|
49
|
+
value: openValue,
|
|
50
|
+
onValueChange: setOpenValue,
|
|
51
|
+
children: /* @__PURE__ */jsxs(Accordion.Item, {
|
|
52
|
+
value: DIRECTORY_VALUE,
|
|
53
|
+
children: [/* @__PURE__ */jsx(Accordion.Trigger, {
|
|
54
|
+
description: t("workspaceBrowseAllCount", {
|
|
55
|
+
count: totalLinks,
|
|
56
|
+
defaultValue_one: "{{count}} link",
|
|
57
|
+
defaultValue_other: "{{count}} links"
|
|
58
|
+
}),
|
|
59
|
+
children: t("workspaceBrowseAll", "Browse all")
|
|
60
|
+
}), /* @__PURE__ */jsx(Accordion.Content, {
|
|
61
|
+
children: /* @__PURE__ */jsxs(YStack, {
|
|
62
|
+
...knobProps.gap,
|
|
63
|
+
children: [/* @__PURE__ */jsx(SearchInput, {
|
|
64
|
+
value: filter,
|
|
65
|
+
onChange: setFilter,
|
|
66
|
+
debounceMs: 0,
|
|
67
|
+
compact: true,
|
|
68
|
+
placeholder: t("workspaceFilterLinks", "Filter links..."),
|
|
69
|
+
"aria-label": t("workspaceFilterLinks", "Filter links...")
|
|
70
|
+
}), filteredItems.length === 0 ? /* @__PURE__ */jsx(EmptyState, {
|
|
71
|
+
compact: true,
|
|
72
|
+
title: t("workspaceFilterNoMatch", 'No links match "{{query}}"', {
|
|
73
|
+
query: filter.trim()
|
|
74
|
+
})
|
|
75
|
+
}) : /* @__PURE__ */jsx(WorkspaceGrid, {
|
|
76
|
+
items: filteredItems
|
|
77
|
+
})]
|
|
78
|
+
})
|
|
79
|
+
})]
|
|
80
|
+
})
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
export { WorkspaceLinkDirectory, filterLinkGroup };
|
|
84
|
+
//# sourceMappingURL=WorkspaceLinkDirectory.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["EmptyState","Accordion","YStack","SearchInput","useViewportGtSm","useResolvedKnobs","useMemo","useState","useTranslation","BACKOFFICE_I18N_NAMESPACE","WorkspaceGrid","WorkspaceLinkCard","jsx","jsxs","DIRECTORY_VALUE","filterLinkGroup","group","query","needle","trim","toLowerCase","label","includes","links","filter","row","length","WorkspaceLinkDirectory","items","t","knobProps","viewportGtSm","setFilter","openValue","setOpenValue","totalLinks","reduce","sum","item","filteredItems","flatMap","key","col","node","type","collapsible","variant","value","onValueChange","children","Item","Trigger","description","count","defaultValue_one","defaultValue_other","Content","gap","onChange","debounceMs","compact","placeholder","title"],"sources":["../../../src/workspace/WorkspaceLinkDirectory.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { EmptyState, Accordion, YStack } from "@multiplatform.one/components";
|
|
3
|
+
import { SearchInput, useViewportGtSm } from "@multiplatform.one/forms";
|
|
4
|
+
import { useResolvedKnobs } from "@multiplatform.one/theme";
|
|
5
|
+
import { useMemo, useState } from "react";
|
|
6
|
+
import { useTranslation } from "react-i18next";
|
|
7
|
+
import { BACKOFFICE_I18N_NAMESPACE } from "../i18n/index.native.js";
|
|
8
|
+
import { WorkspaceGrid } from "./WorkspaceGrid.native.js";
|
|
9
|
+
import { WorkspaceLinkCard } from "./WorkspaceLinkCard.native.js";
|
|
10
|
+
var DIRECTORY_VALUE = "links";
|
|
11
|
+
function filterLinkGroup(group, query) {
|
|
12
|
+
var needle = query.trim().toLowerCase();
|
|
13
|
+
if (!needle) return group;
|
|
14
|
+
if (group.label.toLowerCase().includes(needle)) return group;
|
|
15
|
+
var links = group.links.filter(function (row) {
|
|
16
|
+
return row.label.toLowerCase().includes(needle);
|
|
17
|
+
});
|
|
18
|
+
return links.length > 0 ? {
|
|
19
|
+
...group,
|
|
20
|
+
links
|
|
21
|
+
} : void 0;
|
|
22
|
+
}
|
|
23
|
+
function WorkspaceLinkDirectory(param) {
|
|
24
|
+
var {
|
|
25
|
+
items
|
|
26
|
+
} = param;
|
|
27
|
+
var {
|
|
28
|
+
t
|
|
29
|
+
} = useTranslation(BACKOFFICE_I18N_NAMESPACE);
|
|
30
|
+
var {
|
|
31
|
+
knobProps
|
|
32
|
+
} = useResolvedKnobs();
|
|
33
|
+
var viewportGtSm = useViewportGtSm();
|
|
34
|
+
var [filter, setFilter] = useState("");
|
|
35
|
+
var [openValue, setOpenValue] = useState(function () {
|
|
36
|
+
return viewportGtSm ? DIRECTORY_VALUE : "";
|
|
37
|
+
});
|
|
38
|
+
var totalLinks = useMemo(function () {
|
|
39
|
+
return items.reduce(function (sum, item) {
|
|
40
|
+
return sum + item.group.links.length;
|
|
41
|
+
}, 0);
|
|
42
|
+
}, [items]);
|
|
43
|
+
var filteredItems = useMemo(function () {
|
|
44
|
+
return items.flatMap(function (item) {
|
|
45
|
+
var _item_col;
|
|
46
|
+
var group = filterLinkGroup(item.group, filter);
|
|
47
|
+
if (!group) return [];
|
|
48
|
+
return [{
|
|
49
|
+
key: item.key,
|
|
50
|
+
col: (_item_col = item.col) !== null && _item_col !== void 0 ? _item_col : 4,
|
|
51
|
+
node: /* @__PURE__ */_jsx(WorkspaceLinkCard, {
|
|
52
|
+
group
|
|
53
|
+
})
|
|
54
|
+
}];
|
|
55
|
+
});
|
|
56
|
+
}, [items, filter]);
|
|
57
|
+
return /* @__PURE__ */_jsx(Accordion, {
|
|
58
|
+
type: "single",
|
|
59
|
+
collapsible: true,
|
|
60
|
+
variant: "card",
|
|
61
|
+
value: openValue,
|
|
62
|
+
onValueChange: setOpenValue,
|
|
63
|
+
children: /* @__PURE__ */_jsxs(Accordion.Item, {
|
|
64
|
+
value: DIRECTORY_VALUE,
|
|
65
|
+
children: [/* @__PURE__ */_jsx(Accordion.Trigger, {
|
|
66
|
+
// Count-based plural via i18next suffix resolution ("1 link" /
|
|
67
|
+
// "N links"); defaultValue_* carries the en fallback per form.
|
|
68
|
+
description: t("workspaceBrowseAllCount", {
|
|
69
|
+
count: totalLinks,
|
|
70
|
+
defaultValue_one: "{{count}} link",
|
|
71
|
+
defaultValue_other: "{{count}} links"
|
|
72
|
+
}),
|
|
73
|
+
children: t("workspaceBrowseAll", "Browse all")
|
|
74
|
+
}), /* @__PURE__ */_jsx(Accordion.Content, {
|
|
75
|
+
children: /* @__PURE__ */_jsxs(YStack, {
|
|
76
|
+
...knobProps.gap,
|
|
77
|
+
children: [/* @__PURE__ */_jsx(SearchInput, {
|
|
78
|
+
value: filter,
|
|
79
|
+
onChange: setFilter,
|
|
80
|
+
debounceMs: 0,
|
|
81
|
+
compact: true,
|
|
82
|
+
placeholder: t("workspaceFilterLinks", "Filter links..."),
|
|
83
|
+
"aria-label": t("workspaceFilterLinks", "Filter links...")
|
|
84
|
+
}), filteredItems.length === 0 ? /* @__PURE__ */_jsx(EmptyState, {
|
|
85
|
+
compact: true,
|
|
86
|
+
title: t("workspaceFilterNoMatch", 'No links match "{{query}}"', {
|
|
87
|
+
query: filter.trim()
|
|
88
|
+
})
|
|
89
|
+
}) : /* @__PURE__ */_jsx(WorkspaceGrid, {
|
|
90
|
+
items: filteredItems
|
|
91
|
+
})]
|
|
92
|
+
})
|
|
93
|
+
})]
|
|
94
|
+
})
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
export { WorkspaceLinkDirectory, filterLinkGroup };
|
|
98
|
+
//# sourceMappingURL=WorkspaceLinkDirectory.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["jsx","_jsx","jsxs","_jsxs","EmptyState","Accordion","YStack","SearchInput","useViewportGtSm","useResolvedKnobs","useMemo","useState","useTranslation","BACKOFFICE_I18N_NAMESPACE","WorkspaceGrid","WorkspaceLinkCard","DIRECTORY_VALUE","filterLinkGroup","group","query","needle","trim","toLowerCase","label","includes","links","filter","row","length","WorkspaceLinkDirectory","param","items","t","knobProps","viewportGtSm","setFilter","openValue","setOpenValue","totalLinks","reduce","sum","item","filteredItems","flatMap","_item_col","key","col","node","type","collapsible","variant","value","onValueChange","children","Item","Trigger","description","count","defaultValue_one","defaultValue_other","Content","gap","onChange","debounceMs","compact","placeholder"],"sources":["../../../src/workspace/WorkspaceLinkDirectory.tsx"],"sourcesContent":[null],"mappings":"AAOA,SAASA,GAAA,IAAAC,IAAA,EAAYC,IAAA,IAAAC,KAAW,2BAAc;AAC9C,SAASC,UAAA,EAAAC,SAAa,EAAAC,MAAA,QAAuB;AAC7C,SAASC,WAAA,EAAAC,eAAwB;AACjC,SAASC,gBAAS,kCAAgB;AAClC,SAASC,OAAA,EAAAC,QAAA,QAAsB;AAC/B,SAASC,cAAA,uBAAiC;AAE1C,SAASC,yBAA6C;AACtD,SAASC,aAAA,mCAAyB;AAwDhB,SAAAC,iBAAA;AA1ClB,IAAAC,eAAM,UAAkB;AAOjB,SAASC,gBACdC,KAAA,EACAC,KAAA,EACgC;EAChC,IAAAC,MAAM,GAAAD,KAAS,CAAAE,IAAM,GAAKC,WAAE;EAC5B,IAAI,CAACF,MAAA,EAAQ,OAAOF,KAAA;EACpB,IAAIA,KAAA,CAAMK,KAAA,CAAMD,WAAA,CAAY,EAAEE,QAAA,CAASJ,MAAM,GAAG,OAAOF,KAAA;EACvD,IAAAO,KAAM,GAAAP,KAAQ,CAAAO,KAAM,CAAAC,MAAM,WAAQC,GAAQ;IAC1C,OAAOA,GAAA,CAAMJ,KAAA,CAAAD,WAAe,CAAG,EAAAE,QAAO,CAAAJ,MAAU;EAClD;EAEO,OAASK,KAAA,CAAAG,MAAA;IACd,GAAAV,KAAU;IACVO;EACA,SAAM;AACN;AAIA,SAAOI,sBAAWA,CAAYC,KAAI;EAElC;IAAMC;EAAA,IAAAD,KAAa;EAAA,IACjB;IAAAE;EAAM,IAAApB,cAAc,CAAKC,yBAAoB,CAAM;EAAe,IACjE;IAAAoB;EAAK,IAAAxB,gBAAA;EACR,IAAAyB,YAAA,GAAA1B,eAAA;EAEA,KAAAkB,MAAM,EAAAS,SAAgB,IAAAxB,QAAA;EAAA,IACpB,CAAAyB,SACQ,EAAAC,YAAS,IAAS1B,QAAA;IACtB,OAAAuB,YAAc,GAAAlB,eAAqB;EACnC;EACA,IAAAsB,UAAO,GAAA5B,OAAA;IAAA,OACLqB,KAAA,CAAAQ,MAAA,WAAAC,GAAA,EAAAC,IAAA;MAAA,OACED,GAAK,GAAAC,IAAK,CAAAvB,KAAA,CAAAO,KAAA,CAAAG,MAAA;IAAA;EACO,IACsBG,KACzC;EACF,IACDW,aAAA,GAAAhC,OAAA;IACH,OAACqB,KAAO,CAAAY,OAAM,WAAAF,IAAA;MAChB,IAAAG,SAAA;MAEA,IACE1B,KAAA,GAAAD,eAAA,CAAAwB,IAAA,CAAAvB,KAAA,EAAAQ,MAAA;MAAC,KAAAR,KAAA;MAAA,QACC;QACA2B,GAAA,EAAAJ,IAAW,CAAAI,GAAA;QACXC,GAAA,EAAQ,CAAAF,SAAA,GAAAH,IAAA,CAAAK,GAAA,cAAAF,SAAA,cAAAA,SAAA;QACRG,IAAO,iBAAA9C,IAAA,CAAAc,iBAAA;UACPG;QAEA;MACE;IAAW;EAAV,IAG2Ca,KAAA,EACjCL,MAAA,CACW;EACE,sBACrBzB,IAAA,CAAAI,SAAA;IAAA2C,IAAA,UAEA;IAAoCC,WAAA;IAAAC,OACvC;IAAAC,KACA,EAAAf,SAAA;IAEIgB,aAAA,EAAAf,YAAA;IAAAgB,QAAC,iBAAAlD,KAAA,CAAAE,SAAA,CAAAiD,IAAA;MAAAH,KAAA,EAAAnC,eAAA;MAAAqC,QACC,GAAO,eACGpD,IAAA,CAAAI,SAAA,CAAAkD,OAAA;QAAA;QACE;QACLC,WACP,EAAAxB,CAAA,0BAAe;UAAyCyB,KACxD,EAAAnB,UAAY;UAA2CoB,gBAAA;UACzDC,kBAAA;QACC;QACCN,QAAC,EAAArB,CAAA;MAAA,mBACQ/B,IAAA,CAAAI,SAAA,CAAAuD,OAAA;QAAAP,QACP,iBAAOlD,KAAA,CAAAG,MAAA;UAAA,GAAA2B,SACL,CAAA4B,GAAA;UAAAR,QACA,kBACSpD,IAAO,CAAAM,WAAO;YACzB4C,KAAA,EAAAzB,MAAA;YAAAoC,QAAA,EAAA3B,SAAA;YAGF4B,UAAA;YAGNC,OAAA;YACFC,WAAA,EAAAjC,CAAA;YAAA,cAAAA,CAAA;UACF,IAEJU,aAAA,CAAAd,MAAA,wBAAA3B,IAAA,CAAAG,UAAA","ignoreList":[]}
|