@dxos/plugin-kanban 0.8.2-main.12df754 → 0.8.2-main.30e4dbb
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/lib/browser/{artifact-definition-SVNHDJQT.mjs → artifact-definition-VGRBHXJ6.mjs} +10 -10
- package/dist/lib/browser/artifact-definition-VGRBHXJ6.mjs.map +7 -0
- package/dist/lib/browser/{chunk-K5BYEZ4Z.mjs → chunk-6JAA7YSW.mjs} +23 -35
- package/dist/lib/browser/chunk-6JAA7YSW.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +4 -4
- package/dist/lib/browser/intent-resolver-44SXCRIH.mjs +297 -0
- package/dist/lib/browser/intent-resolver-44SXCRIH.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-R25PYWQV.mjs → react-surface-H5UD7LKX.mjs} +56 -26
- package/dist/lib/browser/react-surface-H5UD7LKX.mjs.map +7 -0
- package/dist/lib/browser/types.mjs +1 -3
- package/dist/lib/node/{artifact-definition-M2XAYUI2.cjs → artifact-definition-KDTULJLX.cjs} +17 -17
- package/dist/lib/node/artifact-definition-KDTULJLX.cjs.map +7 -0
- package/dist/lib/node/{chunk-3EUR6ZR2.cjs → chunk-O4U7ZQ2I.cjs} +25 -38
- package/dist/lib/node/chunk-O4U7ZQ2I.cjs.map +7 -0
- package/dist/lib/node/index.cjs +16 -16
- package/dist/lib/node/intent-resolver-23TVN46D.cjs +308 -0
- package/dist/lib/node/intent-resolver-23TVN46D.cjs.map +7 -0
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/{react-surface-FVM64YAQ.cjs → react-surface-LKFQ3TZH.cjs} +61 -31
- package/dist/lib/node/react-surface-LKFQ3TZH.cjs.map +7 -0
- package/dist/lib/node/types.cjs +6 -8
- package/dist/lib/node/types.cjs.map +2 -2
- package/dist/lib/node-esm/{artifact-definition-HQ5I2OO5.mjs → artifact-definition-G2R5LF26.mjs} +10 -10
- package/dist/lib/node-esm/artifact-definition-G2R5LF26.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-2N7CO3DI.mjs → chunk-NOC32MF5.mjs} +23 -35
- package/dist/lib/node-esm/chunk-NOC32MF5.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +4 -4
- package/dist/lib/node-esm/intent-resolver-SUADAOIJ.mjs +298 -0
- package/dist/lib/node-esm/intent-resolver-SUADAOIJ.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-surface-LZ7MP3CQ.mjs → react-surface-TUKDSY4T.mjs} +56 -26
- package/dist/lib/node-esm/react-surface-TUKDSY4T.mjs.map +7 -0
- package/dist/lib/node-esm/types.mjs +1 -3
- package/dist/types/src/capabilities/index.d.ts +1 -1
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts +2 -2
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/components/KanbanContainer.d.ts.map +1 -1
- package/dist/types/src/components/KanbanContainer.stories.d.ts +10 -0
- package/dist/types/src/components/KanbanContainer.stories.d.ts.map +1 -0
- package/dist/types/src/components/KanbanViewEditor.d.ts.map +1 -1
- package/dist/types/src/testing/index.d.ts +3 -0
- package/dist/types/src/testing/index.d.ts.map +1 -0
- package/dist/types/src/testing/initialize-kanban.d.ts +17 -0
- package/dist/types/src/testing/initialize-kanban.d.ts.map +1 -0
- package/dist/types/src/testing/kanban-manager.d.ts +7 -0
- package/dist/types/src/testing/kanban-manager.d.ts.map +1 -0
- package/dist/types/src/testing/playwright/smoke.spec.d.ts +2 -0
- package/dist/types/src/testing/playwright/smoke.spec.d.ts.map +1 -0
- package/dist/types/src/translations.d.ts +2 -28
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types.d.ts +34 -41
- package/dist/types/src/types.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +29 -25
- package/src/capabilities/artifact-definition.ts +8 -8
- package/src/capabilities/intent-resolver.ts +10 -6
- package/src/capabilities/react-surface.tsx +46 -12
- package/src/components/KanbanContainer.stories.tsx +186 -0
- package/src/components/KanbanContainer.tsx +21 -8
- package/src/testing/index.ts +6 -0
- package/src/testing/initialize-kanban.ts +139 -0
- package/src/testing/kanban-manager.ts +13 -0
- package/src/testing/playwright/playwright.config.cts +18 -0
- package/src/testing/playwright/smoke.spec.ts +7 -0
- package/src/types.ts +26 -43
- package/dist/lib/browser/artifact-definition-SVNHDJQT.mjs.map +0 -7
- package/dist/lib/browser/chunk-K5BYEZ4Z.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-XCDQ5N3Q.mjs +0 -132
- package/dist/lib/browser/intent-resolver-XCDQ5N3Q.mjs.map +0 -7
- package/dist/lib/browser/react-surface-R25PYWQV.mjs.map +0 -7
- package/dist/lib/node/artifact-definition-M2XAYUI2.cjs.map +0 -7
- package/dist/lib/node/chunk-3EUR6ZR2.cjs.map +0 -7
- package/dist/lib/node/intent-resolver-P3PSZO7H.cjs +0 -146
- package/dist/lib/node/intent-resolver-P3PSZO7H.cjs.map +0 -7
- package/dist/lib/node/react-surface-FVM64YAQ.cjs.map +0 -7
- package/dist/lib/node-esm/artifact-definition-HQ5I2OO5.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-2N7CO3DI.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-4G47V67J.mjs +0 -133
- package/dist/lib/node-esm/intent-resolver-4G47V67J.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-LZ7MP3CQ.mjs.map +0 -7
|
@@ -5,32 +5,46 @@ import {
|
|
|
5
5
|
PivotColumnAnnotationId,
|
|
6
6
|
TypenameAnnotationId,
|
|
7
7
|
isKanban
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-NOC32MF5.mjs";
|
|
9
9
|
|
|
10
10
|
// packages/plugins/plugin-kanban/src/capabilities/react-surface.tsx
|
|
11
|
-
import React3, { useMemo as
|
|
12
|
-
import { Capabilities, contributes, createSurface } from "@dxos/app-framework";
|
|
11
|
+
import React3, { useMemo as useMemo3 } from "react";
|
|
12
|
+
import { Capabilities, contributes, createSurface, useCapabilities } from "@dxos/app-framework";
|
|
13
|
+
import { getTypenameOrThrow as getTypenameOrThrow2, toJsonSchema as toJsonSchema2 } from "@dxos/echo-schema";
|
|
13
14
|
import { findAnnotation } from "@dxos/effect";
|
|
15
|
+
import { ClientCapabilities } from "@dxos/plugin-client";
|
|
16
|
+
import { useClient as useClient3 } from "@dxos/react-client";
|
|
14
17
|
import { getSpace as getSpace3, isSpace } from "@dxos/react-client/echo";
|
|
15
18
|
import { SelectInput as SelectInput2, useFormValues } from "@dxos/react-ui-form";
|
|
16
19
|
|
|
17
20
|
// packages/plugins/plugin-kanban/src/components/KanbanContainer.tsx
|
|
18
|
-
import React, { useCallback, useEffect, useState } from "react";
|
|
21
|
+
import React, { useCallback, useEffect, useMemo, useState } from "react";
|
|
19
22
|
import { createIntent, useIntentDispatcher } from "@dxos/app-framework";
|
|
23
|
+
import { EchoSchema, getTypenameOrThrow, toJsonSchema } from "@dxos/echo-schema";
|
|
20
24
|
import { useGlobalFilteredObjects } from "@dxos/plugin-search";
|
|
25
|
+
import { useClient } from "@dxos/react-client";
|
|
21
26
|
import { Filter, useQuery, getSpace, live } from "@dxos/react-client/echo";
|
|
22
27
|
import { useKanbanModel, Kanban } from "@dxos/react-ui-kanban";
|
|
23
28
|
import { StackItem } from "@dxos/react-ui-stack";
|
|
24
29
|
import { ViewProjection } from "@dxos/schema";
|
|
25
30
|
var KanbanContainer = ({ kanban }) => {
|
|
31
|
+
const client = useClient();
|
|
26
32
|
const [cardSchema, setCardSchema] = useState();
|
|
27
33
|
const [projection, setProjection] = useState();
|
|
28
34
|
const space = getSpace(kanban);
|
|
29
35
|
const { dispatchPromise: dispatch } = useIntentDispatcher();
|
|
36
|
+
const jsonSchema = useMemo(() => cardSchema instanceof EchoSchema ? cardSchema.jsonSchema : cardSchema ? toJsonSchema(cardSchema) : void 0, [
|
|
37
|
+
cardSchema
|
|
38
|
+
]);
|
|
30
39
|
useEffect(() => {
|
|
31
|
-
|
|
40
|
+
const typename = kanban.cardView?.target?.query?.typename;
|
|
41
|
+
const staticSchema = client.graph.schemaRegistry.schemas.find((schema) => getTypenameOrThrow(schema) === typename);
|
|
42
|
+
if (staticSchema) {
|
|
43
|
+
setCardSchema(() => staticSchema);
|
|
44
|
+
}
|
|
45
|
+
if (!staticSchema && typename && space) {
|
|
32
46
|
const query = space.db.schemaRegistry.query({
|
|
33
|
-
typename
|
|
47
|
+
typename
|
|
34
48
|
});
|
|
35
49
|
const unsubscribe = query.subscribe(() => {
|
|
36
50
|
const [schema] = query.results;
|
|
@@ -47,13 +61,12 @@ var KanbanContainer = ({ kanban }) => {
|
|
|
47
61
|
space
|
|
48
62
|
]);
|
|
49
63
|
useEffect(() => {
|
|
50
|
-
if (kanban.cardView?.target &&
|
|
51
|
-
setProjection(new ViewProjection(
|
|
64
|
+
if (kanban.cardView?.target && jsonSchema) {
|
|
65
|
+
setProjection(new ViewProjection(jsonSchema, kanban.cardView.target));
|
|
52
66
|
}
|
|
53
67
|
}, [
|
|
54
68
|
kanban.cardView?.target,
|
|
55
|
-
|
|
56
|
-
JSON.stringify(cardSchema?.jsonSchema)
|
|
69
|
+
JSON.stringify(jsonSchema)
|
|
57
70
|
]);
|
|
58
71
|
const objects = useQuery(space, cardSchema ? Filter.schema(cardSchema) : Filter.nothing());
|
|
59
72
|
const filteredObjects = useGlobalFilteredObjects(objects);
|
|
@@ -92,11 +105,11 @@ var KanbanContainer = ({ kanban }) => {
|
|
|
92
105
|
};
|
|
93
106
|
|
|
94
107
|
// packages/plugins/plugin-kanban/src/components/KanbanViewEditor.tsx
|
|
95
|
-
import React2, { useCallback as useCallback2, useMemo } from "react";
|
|
108
|
+
import React2, { useCallback as useCallback2, useMemo as useMemo2 } from "react";
|
|
96
109
|
import { createIntent as createIntent2, useIntentDispatcher as useIntentDispatcher2 } from "@dxos/app-framework";
|
|
97
110
|
import { FormatEnum } from "@dxos/echo-schema";
|
|
98
111
|
import { invariant } from "@dxos/invariant";
|
|
99
|
-
import { useClient } from "@dxos/react-client";
|
|
112
|
+
import { useClient as useClient2 } from "@dxos/react-client";
|
|
100
113
|
import { Filter as Filter2, getSpace as getSpace2, useQuery as useQuery2, useSchema } from "@dxos/react-client/echo";
|
|
101
114
|
import { ViewEditor, Form, SelectInput } from "@dxos/react-ui-form";
|
|
102
115
|
import { KanbanSettingsSchema } from "@dxos/react-ui-kanban";
|
|
@@ -104,9 +117,9 @@ import { ViewType, ViewProjection as ViewProjection2 } from "@dxos/schema";
|
|
|
104
117
|
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-kanban/src/components/KanbanViewEditor.tsx";
|
|
105
118
|
var KanbanViewEditor = ({ kanban }) => {
|
|
106
119
|
const { dispatchPromise: dispatch } = useIntentDispatcher2();
|
|
107
|
-
const client =
|
|
120
|
+
const client = useClient2();
|
|
108
121
|
const space = getSpace2(kanban);
|
|
109
|
-
const currentTypename =
|
|
122
|
+
const currentTypename = useMemo2(() => kanban?.cardView?.target?.query?.typename, [
|
|
110
123
|
kanban?.cardView?.target?.query?.typename
|
|
111
124
|
]);
|
|
112
125
|
const schema = useSchema(client, space, currentTypename);
|
|
@@ -139,7 +152,7 @@ var KanbanViewEditor = ({ kanban }) => {
|
|
|
139
152
|
dispatch,
|
|
140
153
|
kanban
|
|
141
154
|
]);
|
|
142
|
-
const projection =
|
|
155
|
+
const projection = useMemo2(() => {
|
|
143
156
|
if (kanban?.cardView?.target && schema) {
|
|
144
157
|
return new ViewProjection2(schema.jsonSchema, kanban.cardView.target);
|
|
145
158
|
}
|
|
@@ -158,12 +171,12 @@ var KanbanViewEditor = ({ kanban }) => {
|
|
|
158
171
|
}, [
|
|
159
172
|
kanban
|
|
160
173
|
]);
|
|
161
|
-
const initialValues =
|
|
174
|
+
const initialValues = useMemo2(() => ({
|
|
162
175
|
columnFieldId: kanban.columnFieldId
|
|
163
176
|
}), [
|
|
164
177
|
kanban.columnFieldId
|
|
165
178
|
]);
|
|
166
|
-
const custom =
|
|
179
|
+
const custom = useMemo2(() => ({
|
|
167
180
|
columnFieldId: (props) => /* @__PURE__ */ React2.createElement(SelectInput, {
|
|
168
181
|
...props,
|
|
169
182
|
options: selectFields
|
|
@@ -212,23 +225,36 @@ var react_surface_default = () => contributes(Capabilities.ReactSurface, [
|
|
|
212
225
|
})
|
|
213
226
|
}),
|
|
214
227
|
createSurface({
|
|
215
|
-
id: `${KANBAN_PLUGIN}/create-initial-schema-form
|
|
228
|
+
id: `${KANBAN_PLUGIN}/create-initial-schema-form`,
|
|
216
229
|
role: "form-input",
|
|
217
230
|
filter: (data) => {
|
|
231
|
+
if (data.prop !== "typename") {
|
|
232
|
+
return false;
|
|
233
|
+
}
|
|
218
234
|
const annotation = findAnnotation(data.schema.ast, TypenameAnnotationId);
|
|
219
235
|
return !!annotation;
|
|
220
236
|
},
|
|
221
237
|
component: ({ data: { target }, ...inputProps }) => {
|
|
238
|
+
const client = useClient3();
|
|
222
239
|
const props = inputProps;
|
|
223
240
|
const space = isSpace(target) ? target : getSpace3(target);
|
|
224
241
|
if (!space) {
|
|
225
242
|
return null;
|
|
226
243
|
}
|
|
227
|
-
const
|
|
244
|
+
const schemaWhitelists = useCapabilities(ClientCapabilities.SchemaWhiteList);
|
|
245
|
+
const whitelistedTypenames = useMemo3(() => new Set(schemaWhitelists.flatMap((typeArray) => typeArray.map((type) => type.typename))), [
|
|
246
|
+
schemaWhitelists
|
|
247
|
+
]);
|
|
248
|
+
const fixed = client.graph.schemaRegistry.schemas.filter((schema) => whitelistedTypenames.has(getTypenameOrThrow2(schema)));
|
|
249
|
+
const dynamic = space?.db.schemaRegistry.query().runSync();
|
|
250
|
+
const typenames = Array.from(/* @__PURE__ */ new Set([
|
|
251
|
+
...fixed.map((schema) => getTypenameOrThrow2(schema)),
|
|
252
|
+
...dynamic.map((schema) => schema.typename)
|
|
253
|
+
])).sort();
|
|
228
254
|
return /* @__PURE__ */ React3.createElement(SelectInput2, {
|
|
229
255
|
...props,
|
|
230
|
-
options:
|
|
231
|
-
value:
|
|
256
|
+
options: typenames.map((typename) => ({
|
|
257
|
+
value: typename
|
|
232
258
|
}))
|
|
233
259
|
});
|
|
234
260
|
}
|
|
@@ -247,14 +273,17 @@ var react_surface_default = () => contributes(Capabilities.ReactSurface, [
|
|
|
247
273
|
return null;
|
|
248
274
|
}
|
|
249
275
|
const { typename } = useFormValues();
|
|
276
|
+
const schemaWhitelists = useCapabilities(ClientCapabilities.SchemaWhiteList);
|
|
277
|
+
const staticSchema = schemaWhitelists.flat().find((schema) => getTypenameOrThrow2(schema) === typename);
|
|
250
278
|
const [selectedSchema] = space?.db.schemaRegistry.query({
|
|
251
279
|
typename
|
|
252
280
|
}).runSync();
|
|
253
|
-
const singleSelectColumns =
|
|
254
|
-
|
|
281
|
+
const singleSelectColumns = useMemo3(() => {
|
|
282
|
+
const properties = staticSchema ? toJsonSchema2(staticSchema).properties : selectedSchema?.jsonSchema?.properties;
|
|
283
|
+
if (!properties) {
|
|
255
284
|
return [];
|
|
256
285
|
}
|
|
257
|
-
const columns = Object.entries(
|
|
286
|
+
const columns = Object.entries(properties).reduce((acc, [key, value]) => {
|
|
258
287
|
if (typeof value === "object" && value?.format === "single-select") {
|
|
259
288
|
acc.push(key);
|
|
260
289
|
}
|
|
@@ -262,7 +291,8 @@ var react_surface_default = () => contributes(Capabilities.ReactSurface, [
|
|
|
262
291
|
}, []);
|
|
263
292
|
return columns;
|
|
264
293
|
}, [
|
|
265
|
-
selectedSchema?.jsonSchema
|
|
294
|
+
selectedSchema?.jsonSchema,
|
|
295
|
+
staticSchema
|
|
266
296
|
]);
|
|
267
297
|
if (!typename) {
|
|
268
298
|
return null;
|
|
@@ -279,4 +309,4 @@ var react_surface_default = () => contributes(Capabilities.ReactSurface, [
|
|
|
279
309
|
export {
|
|
280
310
|
react_surface_default as default
|
|
281
311
|
};
|
|
282
|
-
//# sourceMappingURL=react-surface-
|
|
312
|
+
//# sourceMappingURL=react-surface-TUKDSY4T.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/react-surface.tsx", "../../../src/components/KanbanContainer.tsx", "../../../src/components/KanbanViewEditor.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Schema } from 'effect';\nimport React, { useMemo } from 'react';\n\nimport { Capabilities, contributes, createSurface, useCapabilities } from '@dxos/app-framework';\nimport { getTypenameOrThrow, toJsonSchema } from '@dxos/echo-schema';\nimport { findAnnotation } from '@dxos/effect';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { type CollectionType } from '@dxos/plugin-space/types';\nimport { useClient } from '@dxos/react-client';\nimport { getSpace, isSpace, type Space } from '@dxos/react-client/echo';\nimport { type InputProps, SelectInput, useFormValues } from '@dxos/react-ui-form';\nimport { type KanbanType } from '@dxos/react-ui-kanban';\n\nimport { KanbanContainer, KanbanViewEditor } from '../components';\nimport { KANBAN_PLUGIN } from '../meta';\nimport { isKanban, TypenameAnnotationId, PivotColumnAnnotationId } from '../types';\n\nexport default () =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: `${KANBAN_PLUGIN}/kanban`,\n role: ['article', 'section'],\n filter: (data): data is { subject: KanbanType } => isKanban(data.subject),\n component: ({ data, role }) => <KanbanContainer kanban={data.subject} role={role} />,\n }),\n createSurface({\n id: `${KANBAN_PLUGIN}/object-settings`,\n role: 'object-settings',\n filter: (data): data is { subject: KanbanType } => isKanban(data.subject),\n component: ({ data }) => <KanbanViewEditor kanban={data.subject} />,\n }),\n createSurface({\n id: `${KANBAN_PLUGIN}/create-initial-schema-form`,\n role: 'form-input',\n filter: (\n data,\n ): data is { prop: string; schema: Schema.Schema<any>; target: Space | CollectionType | undefined } => {\n if (data.prop !== 'typename') {\n return false;\n }\n\n const annotation = findAnnotation<boolean>((data.schema as Schema.Schema.All).ast, TypenameAnnotationId);\n return !!annotation;\n },\n component: ({ data: { target }, ...inputProps }) => {\n const client = useClient();\n const props = inputProps as any as InputProps;\n const space = isSpace(target) ? target : getSpace(target);\n if (!space) {\n return null;\n }\n\n const schemaWhitelists = useCapabilities(ClientCapabilities.SchemaWhiteList);\n const whitelistedTypenames = useMemo(\n () => new Set(schemaWhitelists.flatMap((typeArray) => typeArray.map((type) => type.typename))),\n [schemaWhitelists],\n );\n\n const fixed = client.graph.schemaRegistry.schemas.filter((schema) =>\n whitelistedTypenames.has(getTypenameOrThrow(schema)),\n );\n const dynamic = space?.db.schemaRegistry.query().runSync();\n const typenames = Array.from(\n new Set<string>([\n ...fixed.map((schema) => getTypenameOrThrow(schema)),\n ...dynamic.map((schema) => schema.typename),\n ]),\n ).sort();\n\n return <SelectInput {...props} options={typenames.map((typename) => ({ value: typename }))} />;\n },\n }),\n createSurface({\n id: `${KANBAN_PLUGIN}/create-initial-schema-form-[pivot-column]`,\n role: 'form-input',\n filter: (\n data,\n ): data is { prop: string; schema: Schema.Schema<any>; target: Space | CollectionType | undefined } => {\n const annotation = findAnnotation<boolean>((data.schema as Schema.Schema.All).ast, PivotColumnAnnotationId);\n return !!annotation;\n },\n component: ({ data: { target }, ...inputProps }) => {\n const props = inputProps as any as InputProps;\n const space = isSpace(target) ? target : getSpace(target);\n if (!space) {\n return null;\n }\n const { typename } = useFormValues();\n // TODO(wittjosiah): Unify this schema lookup.\n const schemaWhitelists = useCapabilities(ClientCapabilities.SchemaWhiteList);\n const staticSchema = schemaWhitelists.flat().find((schema) => getTypenameOrThrow(schema) === typename);\n const [selectedSchema] = space?.db.schemaRegistry.query({ typename }).runSync();\n\n const singleSelectColumns = useMemo(() => {\n const properties = staticSchema\n ? toJsonSchema(staticSchema).properties\n : selectedSchema?.jsonSchema?.properties;\n if (!properties) {\n return [];\n }\n\n const columns = Object.entries(properties).reduce<string[]>((acc, [key, value]) => {\n if (typeof value === 'object' && value?.format === 'single-select') {\n acc.push(key);\n }\n return acc;\n }, []);\n\n return columns;\n }, [selectedSchema?.jsonSchema, staticSchema]);\n\n if (!typename) {\n return null;\n }\n\n return <SelectInput {...props} options={singleSelectColumns.map((column) => ({ value: column }))} />;\n },\n }),\n ]);\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { EchoSchema, getTypenameOrThrow, toJsonSchema, type TypedObject } from '@dxos/echo-schema';\nimport { useGlobalFilteredObjects } from '@dxos/plugin-search';\nimport { useClient } from '@dxos/react-client';\nimport { Filter, useQuery, getSpace, live } from '@dxos/react-client/echo';\nimport { type KanbanType, useKanbanModel, Kanban } from '@dxos/react-ui-kanban';\nimport { StackItem } from '@dxos/react-ui-stack';\nimport { ViewProjection } from '@dxos/schema';\n\nimport { KanbanAction } from '../types';\n\nexport const KanbanContainer = ({ kanban }: { kanban: KanbanType; role: string }) => {\n const client = useClient();\n const [cardSchema, setCardSchema] = useState<TypedObject<any, any>>();\n const [projection, setProjection] = useState<ViewProjection>();\n const space = getSpace(kanban);\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n\n const jsonSchema = useMemo(\n () =>\n cardSchema instanceof EchoSchema ? cardSchema.jsonSchema : cardSchema ? toJsonSchema(cardSchema) : undefined,\n [cardSchema],\n );\n\n useEffect(() => {\n const typename = kanban.cardView?.target?.query?.typename;\n const staticSchema = client.graph.schemaRegistry.schemas.find((schema) => getTypenameOrThrow(schema) === typename);\n if (staticSchema) {\n setCardSchema(() => staticSchema as TypedObject<any, any>);\n }\n if (!staticSchema && typename && space) {\n const query = space.db.schemaRegistry.query({ typename });\n const unsubscribe = query.subscribe(\n () => {\n const [schema] = query.results;\n if (schema) {\n setCardSchema(schema);\n }\n },\n { fire: true },\n );\n return unsubscribe;\n }\n }, [kanban.cardView?.target?.query, space]);\n\n useEffect(() => {\n if (kanban.cardView?.target && jsonSchema) {\n setProjection(new ViewProjection(jsonSchema, kanban.cardView.target));\n }\n // TODO(ZaymonFC): Is there a better way to get notified about deep changes in the json schema?\n }, [kanban.cardView?.target, JSON.stringify(jsonSchema)]);\n\n const objects = useQuery(space, cardSchema ? Filter.schema(cardSchema) : Filter.nothing());\n const filteredObjects = useGlobalFilteredObjects(objects);\n\n const model = useKanbanModel({\n kanban,\n schema: cardSchema,\n projection,\n items: filteredObjects,\n });\n\n const handleAddCard = useCallback(\n (columnValue: string | undefined) => {\n const path = model?.columnFieldPath;\n if (space && cardSchema && path) {\n const card = live(cardSchema, { [path]: columnValue });\n space.db.add(card);\n return card.id;\n }\n },\n [space, cardSchema, model],\n );\n\n const handleRemoveCard = useCallback(\n (card: { id: string }) => {\n void dispatch(createIntent(KanbanAction.DeleteCard, { card }));\n },\n [dispatch],\n );\n\n return (\n <StackItem.Content>\n {model && <Kanban model={model} onAddCard={handleAddCard} onRemoveCard={handleRemoveCard} />}\n </StackItem.Content>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useMemo } from 'react';\n\nimport { createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { FormatEnum } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { useClient } from '@dxos/react-client';\nimport { Filter, getSpace, useQuery, useSchema } from '@dxos/react-client/echo';\nimport { ViewEditor, Form, SelectInput, type CustomInputMap } from '@dxos/react-ui-form';\nimport { type KanbanType, KanbanSettingsSchema } from '@dxos/react-ui-kanban';\nimport { ViewType, ViewProjection } from '@dxos/schema';\n\nimport { KanbanAction } from '../types';\n\ntype KanbanViewEditorProps = { kanban: KanbanType };\n\nexport const KanbanViewEditor = ({ kanban }: KanbanViewEditorProps) => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const client = useClient();\n const space = getSpace(kanban);\n const currentTypename = useMemo(\n () => kanban?.cardView?.target?.query?.typename,\n [kanban?.cardView?.target?.query?.typename],\n );\n const schema = useSchema(client, space, currentTypename);\n const views = useQuery(space, Filter.schema(ViewType));\n\n const handleUpdateTypename = useCallback(\n (newTypename: string) => {\n invariant(schema);\n const matchingViews = views.filter((view) => view.query.typename === currentTypename);\n for (const view of matchingViews) {\n view.query.typename = newTypename;\n }\n\n schema.mutable.updateTypename(newTypename);\n },\n [views, schema],\n );\n\n const handleDelete = useCallback(\n (fieldId: string) => {\n void dispatch?.(createIntent(KanbanAction.DeleteCardField, { kanban, fieldId }));\n },\n [dispatch, kanban],\n );\n\n const projection = useMemo(() => {\n if (kanban?.cardView?.target && schema) {\n return new ViewProjection(schema.jsonSchema, kanban.cardView.target);\n }\n }, [kanban?.cardView?.target, schema, JSON.stringify(schema)]);\n\n const fieldProjections = projection?.getFieldProjections() || [];\n const selectFields = fieldProjections\n .filter((field) => field.props.format === FormatEnum.SingleSelect)\n .map(({ field }) => ({ value: field.id, label: field.path }));\n\n const onSave = useCallback(\n (values: Partial<{ columnFieldId: string }>) => {\n kanban.columnFieldId = values.columnFieldId;\n },\n [kanban],\n );\n\n const initialValues = useMemo(() => ({ columnFieldId: kanban.columnFieldId }), [kanban.columnFieldId]);\n const custom: CustomInputMap = useMemo(\n () => ({ columnFieldId: (props) => <SelectInput {...props} options={selectFields} /> }),\n [selectFields],\n );\n\n if (!space || !schema || !kanban.cardView?.target) {\n return null;\n }\n\n return (\n <>\n <Form schema={KanbanSettingsSchema} values={initialValues} onSave={onSave} autoSave Custom={custom} />\n <ViewEditor\n registry={space.db.schemaRegistry}\n schema={schema}\n view={kanban.cardView.target}\n onTypenameChanged={schema.readonly ? undefined : handleUpdateTypename}\n onDelete={schema.readonly ? undefined : handleDelete}\n />\n </>\n );\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "useMemo", "Capabilities", "contributes", "createSurface", "useCapabilities", "getTypenameOrThrow", "toJsonSchema", "findAnnotation", "ClientCapabilities", "useClient", "getSpace", "isSpace", "SelectInput", "useFormValues", "React", "useCallback", "useEffect", "useMemo", "useState", "createIntent", "useIntentDispatcher", "EchoSchema", "getTypenameOrThrow", "toJsonSchema", "useGlobalFilteredObjects", "useClient", "Filter", "useQuery", "getSpace", "live", "useKanbanModel", "Kanban", "StackItem", "ViewProjection", "KanbanContainer", "kanban", "client", "useClient", "cardSchema", "setCardSchema", "useState", "projection", "setProjection", "space", "getSpace", "dispatchPromise", "dispatch", "useIntentDispatcher", "jsonSchema", "useMemo", "EchoSchema", "toJsonSchema", "undefined", "useEffect", "typename", "cardView", "target", "query", "staticSchema", "graph", "schemaRegistry", "schemas", "find", "schema", "getTypenameOrThrow", "db", "unsubscribe", "subscribe", "results", "fire", "ViewProjection", "JSON", "stringify", "objects", "useQuery", "Filter", "nothing", "filteredObjects", "useGlobalFilteredObjects", "model", "useKanbanModel", "items", "handleAddCard", "useCallback", "columnValue", "path", "columnFieldPath", "card", "live", "add", "id", "handleRemoveCard", "createIntent", "KanbanAction", "DeleteCard", "StackItem", "Content", "Kanban", "onAddCard", "onRemoveCard", "React", "useCallback", "useMemo", "createIntent", "useIntentDispatcher", "FormatEnum", "invariant", "useClient", "Filter", "getSpace", "useQuery", "useSchema", "ViewEditor", "Form", "SelectInput", "KanbanSettingsSchema", "ViewType", "ViewProjection", "KanbanViewEditor", "kanban", "dispatchPromise", "dispatch", "useIntentDispatcher", "client", "useClient", "space", "getSpace", "currentTypename", "useMemo", "cardView", "target", "query", "typename", "schema", "useSchema", "views", "useQuery", "Filter", "ViewType", "handleUpdateTypename", "useCallback", "newTypename", "invariant", "matchingViews", "filter", "view", "mutable", "updateTypename", "handleDelete", "fieldId", "createIntent", "KanbanAction", "DeleteCardField", "projection", "ViewProjection", "jsonSchema", "JSON", "stringify", "fieldProjections", "getFieldProjections", "selectFields", "field", "props", "format", "FormatEnum", "SingleSelect", "map", "value", "id", "label", "path", "onSave", "values", "columnFieldId", "initialValues", "custom", "React", "SelectInput", "options", "Form", "KanbanSettingsSchema", "autoSave", "Custom", "ViewEditor", "registry", "db", "schemaRegistry", "onTypenameChanged", "readonly", "undefined", "onDelete", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "KANBAN_PLUGIN", "role", "filter", "data", "isKanban", "subject", "component", "React", "KanbanContainer", "kanban", "KanbanViewEditor", "prop", "annotation", "findAnnotation", "schema", "ast", "TypenameAnnotationId", "target", "inputProps", "client", "useClient", "props", "space", "isSpace", "getSpace", "schemaWhitelists", "useCapabilities", "ClientCapabilities", "SchemaWhiteList", "whitelistedTypenames", "useMemo", "Set", "flatMap", "typeArray", "map", "type", "typename", "fixed", "graph", "schemaRegistry", "schemas", "has", "getTypenameOrThrow", "dynamic", "db", "query", "runSync", "typenames", "Array", "from", "sort", "SelectInput", "options", "value", "PivotColumnAnnotationId", "useFormValues", "staticSchema", "flat", "find", "selectedSchema", "singleSelectColumns", "properties", "toJsonSchema", "jsonSchema", "columns", "Object", "entries", "reduce", "acc", "key", "format", "push", "column"]
|
|
7
|
+
}
|
|
@@ -4,15 +4,13 @@ import {
|
|
|
4
4
|
KanbanAction,
|
|
5
5
|
PivotColumnAnnotationId,
|
|
6
6
|
TypenameAnnotationId,
|
|
7
|
-
createKanban,
|
|
8
7
|
isKanban
|
|
9
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-NOC32MF5.mjs";
|
|
10
9
|
export {
|
|
11
10
|
CreateKanbanSchema,
|
|
12
11
|
KanbanAction,
|
|
13
12
|
PivotColumnAnnotationId,
|
|
14
13
|
TypenameAnnotationId,
|
|
15
|
-
createKanban,
|
|
16
14
|
isKanban
|
|
17
15
|
};
|
|
18
16
|
//# sourceMappingURL=types.mjs.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export declare const ArtifactDefinition: (props?: unknown) => Promise<() => Promise<import("@dxos/app-framework").Capability<import("@dxos/artifact").ArtifactDefinition> | import("@dxos/app-framework").AnyCapability[]>>;
|
|
2
|
-
export declare const IntentResolver: (props?:
|
|
2
|
+
export declare const IntentResolver: (props?: import("@dxos/app-framework").PluginsContext | undefined) => Promise<() => Promise<import("@dxos/app-framework").Capability<import("@dxos/app-framework").Capabilities.IntentResolver> | import("@dxos/app-framework").AnyCapability[]>>;
|
|
3
3
|
export declare const ReactSurface: (props?: unknown) => Promise<() => Promise<import("@dxos/app-framework").Capability<import("@dxos/app-framework").Capabilities.ReactSurface> | import("@dxos/app-framework").AnyCapability[]>>;
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/index.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,kBAAkB,oLAA8C,CAAC;AAC9E,eAAO,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/index.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,kBAAkB,oLAA8C,CAAC;AAC9E,eAAO,MAAM,cAAc,mPAA0C,CAAC;AACtE,eAAO,MAAM,YAAY,gMAAwC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Capabilities } from '@dxos/app-framework';
|
|
2
|
-
declare const _default: () => import("@dxos/app-framework").Capability<Capabilities.IntentResolver>;
|
|
1
|
+
import { Capabilities, type PluginsContext } from '@dxos/app-framework';
|
|
2
|
+
declare const _default: (context: PluginsContext) => import("@dxos/app-framework").Capability<Capabilities.IntentResolver>;
|
|
3
3
|
export default _default;
|
|
4
4
|
//# sourceMappingURL=intent-resolver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intent-resolver.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/intent-resolver.ts"],"names":[],"mappings":"AAIA,OAAO,EAAe,YAAY,EAAkB,MAAM,qBAAqB,CAAC
|
|
1
|
+
{"version":3,"file":"intent-resolver.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/intent-resolver.ts"],"names":[],"mappings":"AAIA,OAAO,EAAe,YAAY,EAAkB,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;yBAUrF,SAAS,cAAc;AAAvC,wBAwDK"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-surface.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/react-surface.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"react-surface.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/react-surface.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAA+C,MAAM,qBAAqB,CAAC;;AAchG,wBAqGK"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KanbanContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/KanbanContainer.tsx"],"names":[],"mappings":"AAIA,OAAO,
|
|
1
|
+
{"version":3,"file":"KanbanContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/KanbanContainer.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAoD,MAAM,OAAO,CAAC;AAOzE,OAAO,EAAE,KAAK,UAAU,EAA0B,MAAM,uBAAuB,CAAC;AAMhF,eAAO,MAAM,eAAe,GAAI,YAAY;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,sBA2E/E,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import '@dxos-theme';
|
|
2
|
+
import { type StoryObj, type Meta } from '@storybook/react';
|
|
3
|
+
type StoryProps = {
|
|
4
|
+
rows?: number;
|
|
5
|
+
};
|
|
6
|
+
declare const meta: Meta<StoryProps>;
|
|
7
|
+
export default meta;
|
|
8
|
+
type Story = StoryObj<StoryProps>;
|
|
9
|
+
export declare const Default: Story;
|
|
10
|
+
//# sourceMappingURL=KanbanContainer.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KanbanContainer.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/KanbanContainer.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,aAAa,CAAC;AACrB,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,IAAI,EAAE,MAAM,kBAAkB,CAAC;AA8H5D,KAAK,UAAU,GAAG;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAMF,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,UAAU,CAwC1B,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;AAElC,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KanbanViewEditor.d.ts","sourceRoot":"","sources":["../../../../src/components/KanbanViewEditor.tsx"],"names":[],"mappings":"AAIA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAQpD,OAAO,EAAE,KAAK,UAAU,EAAwB,MAAM,uBAAuB,CAAC;AAK9E,KAAK,qBAAqB,GAAG;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC;AAEpD,eAAO,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"KanbanViewEditor.d.ts","sourceRoot":"","sources":["../../../../src/components/KanbanViewEditor.tsx"],"names":[],"mappings":"AAIA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAQpD,OAAO,EAAE,KAAK,UAAU,EAAwB,MAAM,uBAAuB,CAAC;AAK9E,KAAK,qBAAqB,GAAG;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC;AAEpD,eAAO,MAAM,gBAAgB,GAAI,YAAY,qBAAqB,6BAuEjE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/testing/index.ts"],"names":[],"mappings":"AAIA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type EchoSchema } from '@dxos/echo-schema';
|
|
2
|
+
import { type Client } from '@dxos/react-client';
|
|
3
|
+
import { type Space } from '@dxos/react-client/echo';
|
|
4
|
+
import { KanbanType } from '@dxos/react-ui-kanban';
|
|
5
|
+
type InitializeKanbanProps = {
|
|
6
|
+
client: Client;
|
|
7
|
+
space: Space;
|
|
8
|
+
name?: string;
|
|
9
|
+
typename?: string;
|
|
10
|
+
initialPivotColumn?: string;
|
|
11
|
+
};
|
|
12
|
+
export declare const initializeKanban: ({ client, space, name, typename, initialPivotColumn, }: InitializeKanbanProps) => Promise<{
|
|
13
|
+
kanban: KanbanType;
|
|
14
|
+
schema?: EchoSchema;
|
|
15
|
+
}>;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=initialize-kanban.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initialize-kanban.d.ts","sourceRoot":"","sources":["../../../../src/testing/initialize-kanban.ts"],"names":[],"mappings":"AAMA,OAAO,EAKL,KAAK,UAAU,EAGhB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,KAAK,MAAM,EAAa,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,KAAK,KAAK,EAAiB,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAMnD,KAAK,qBAAqB,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAyBF,eAAO,MAAM,gBAAgB,GAAU,wDAMpC,qBAAqB,KAAG,OAAO,CAAC;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,MAAM,CAAC,EAAE,UAAU,CAAA;CAAE,CA6E7E,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kanban-manager.d.ts","sourceRoot":"","sources":["../../../../src/testing/kanban-manager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAQ,MAAM,kBAAkB,CAAC;AAEtD,qBAAa,aAAa;IAGZ,QAAQ,CAAC,OAAO,EAAE,OAAO;IAFrC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAO;gBAER,OAAO,EAAE,OAAO;CAGtC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"smoke.spec.d.ts","sourceRoot":"","sources":["../../../../../src/testing/playwright/smoke.spec.ts"],"names":[],"mappings":""}
|
|
@@ -1,35 +1,9 @@
|
|
|
1
|
+
import { KanbanType } from '@dxos/react-ui-kanban';
|
|
1
2
|
declare const _default: {
|
|
2
3
|
'en-US': {
|
|
3
|
-
[
|
|
4
|
+
[KanbanType.typename]: {
|
|
4
5
|
'typename label': string;
|
|
5
6
|
'object name placeholder': string;
|
|
6
|
-
'plugin name'?: undefined;
|
|
7
|
-
'kanban title label'?: undefined;
|
|
8
|
-
'column title label'?: undefined;
|
|
9
|
-
'column title placeholder'?: undefined;
|
|
10
|
-
'item title label'?: undefined;
|
|
11
|
-
'item title placeholder'?: undefined;
|
|
12
|
-
'add column label'?: undefined;
|
|
13
|
-
'add item label'?: undefined;
|
|
14
|
-
'delete column label'?: undefined;
|
|
15
|
-
'delete item label'?: undefined;
|
|
16
|
-
'card field deleted label'?: undefined;
|
|
17
|
-
'card deleted label'?: undefined;
|
|
18
|
-
} | {
|
|
19
|
-
'plugin name': string;
|
|
20
|
-
'kanban title label': string;
|
|
21
|
-
'column title label': string;
|
|
22
|
-
'column title placeholder': string;
|
|
23
|
-
'item title label': string;
|
|
24
|
-
'item title placeholder': string;
|
|
25
|
-
'add column label': string;
|
|
26
|
-
'add item label': string;
|
|
27
|
-
'delete column label': string;
|
|
28
|
-
'delete item label': string;
|
|
29
|
-
'card field deleted label': string;
|
|
30
|
-
'card deleted label': string;
|
|
31
|
-
'typename label'?: undefined;
|
|
32
|
-
'object name placeholder'?: undefined;
|
|
33
7
|
};
|
|
34
8
|
"dxos.org/plugin/kanban": {
|
|
35
9
|
'plugin name': string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../../src/translations.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../../src/translations.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;;;QAO7C,CAAC,UAAU,CAAC,QAAQ,CAAC;;;UAGpB;;;;;;;;;;;;;;;;;AANP,wBAuBE"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { type Space } from '@dxos/react-client/echo';
|
|
1
|
+
import { Schema } from 'effect';
|
|
3
2
|
import { KanbanType } from '@dxos/react-ui-kanban';
|
|
4
3
|
/**
|
|
5
4
|
* Kanban data model.
|
|
@@ -11,58 +10,58 @@ import { KanbanType } from '@dxos/react-ui-kanban';
|
|
|
11
10
|
*/
|
|
12
11
|
export declare const TypenameAnnotationId: unique symbol;
|
|
13
12
|
export declare const PivotColumnAnnotationId: unique symbol;
|
|
14
|
-
export declare const CreateKanbanSchema:
|
|
15
|
-
name:
|
|
16
|
-
typename:
|
|
17
|
-
initialPivotColumn:
|
|
13
|
+
export declare const CreateKanbanSchema: Schema.Struct<{
|
|
14
|
+
name: Schema.optional<typeof Schema.String>;
|
|
15
|
+
typename: Schema.optional<Schema.SchemaClass<string, string, never>>;
|
|
16
|
+
initialPivotColumn: Schema.optional<Schema.SchemaClass<string, string, never>>;
|
|
18
17
|
}>;
|
|
19
|
-
export type CreateKanbanType =
|
|
18
|
+
export type CreateKanbanType = Schema.Schema.Type<typeof CreateKanbanSchema>;
|
|
20
19
|
export declare namespace KanbanAction {
|
|
21
|
-
const Create_base:
|
|
22
|
-
readonly _tag:
|
|
20
|
+
const Create_base: Schema.TaggedClass<Create, "dxos.org/plugin/kanban/action/create", {
|
|
21
|
+
readonly _tag: Schema.tag<"dxos.org/plugin/kanban/action/create">;
|
|
23
22
|
} & {
|
|
24
|
-
input:
|
|
25
|
-
space:
|
|
26
|
-
}>,
|
|
27
|
-
name:
|
|
28
|
-
typename:
|
|
29
|
-
initialPivotColumn:
|
|
23
|
+
input: Schema.extend<Schema.Struct<{
|
|
24
|
+
space: Schema.Schema<import("@dxos/client-protocol").Space, import("@dxos/client-protocol").Space, never>;
|
|
25
|
+
}>, Schema.Struct<{
|
|
26
|
+
name: Schema.optional<typeof Schema.String>;
|
|
27
|
+
typename: Schema.optional<Schema.SchemaClass<string, string, never>>;
|
|
28
|
+
initialPivotColumn: Schema.optional<Schema.SchemaClass<string, string, never>>;
|
|
30
29
|
}>>;
|
|
31
|
-
output:
|
|
30
|
+
output: Schema.Struct<{
|
|
32
31
|
object: typeof KanbanType;
|
|
33
32
|
}>;
|
|
34
33
|
}>;
|
|
35
34
|
export class Create extends Create_base {
|
|
36
35
|
}
|
|
37
|
-
const DeleteCardField_base:
|
|
38
|
-
readonly _tag:
|
|
36
|
+
const DeleteCardField_base: Schema.TaggedClass<DeleteCardField, "dxos.org/plugin/kanban/action/delete-card-field", {
|
|
37
|
+
readonly _tag: Schema.tag<"dxos.org/plugin/kanban/action/delete-card-field">;
|
|
39
38
|
} & {
|
|
40
|
-
input:
|
|
39
|
+
input: Schema.Struct<{
|
|
41
40
|
kanban: typeof KanbanType;
|
|
42
|
-
fieldId: typeof
|
|
43
|
-
deletionData:
|
|
44
|
-
field:
|
|
45
|
-
id: typeof
|
|
46
|
-
path:
|
|
47
|
-
visible:
|
|
48
|
-
size:
|
|
49
|
-
referencePath:
|
|
41
|
+
fieldId: typeof Schema.String;
|
|
42
|
+
deletionData: Schema.optional<Schema.Struct<{
|
|
43
|
+
field: Schema.mutable<Schema.Struct<{
|
|
44
|
+
id: typeof Schema.String;
|
|
45
|
+
path: Schema.Schema<import("@dxos/effect").JsonPath, import("@dxos/effect").JsonPath, never>;
|
|
46
|
+
visible: Schema.optional<typeof Schema.Boolean>;
|
|
47
|
+
size: Schema.optional<typeof Schema.Number>;
|
|
48
|
+
referencePath: Schema.optional<Schema.Schema<import("@dxos/effect").JsonPath, import("@dxos/effect").JsonPath, never>>;
|
|
50
49
|
}>>;
|
|
51
|
-
props: typeof
|
|
52
|
-
index: typeof
|
|
50
|
+
props: typeof Schema.Any;
|
|
51
|
+
index: typeof Schema.Number;
|
|
53
52
|
}>>;
|
|
54
53
|
}>;
|
|
55
|
-
output: typeof
|
|
54
|
+
output: typeof Schema.Void;
|
|
56
55
|
}>;
|
|
57
56
|
export class DeleteCardField extends DeleteCardField_base {
|
|
58
57
|
}
|
|
59
|
-
const DeleteCard_base:
|
|
60
|
-
readonly _tag:
|
|
58
|
+
const DeleteCard_base: Schema.TaggedClass<DeleteCard, "dxos.org/plugin/kanban/action/delete-card", {
|
|
59
|
+
readonly _tag: Schema.tag<"dxos.org/plugin/kanban/action/delete-card">;
|
|
61
60
|
} & {
|
|
62
|
-
input:
|
|
63
|
-
card: typeof
|
|
61
|
+
input: Schema.Struct<{
|
|
62
|
+
card: typeof Schema.Any;
|
|
64
63
|
}>;
|
|
65
|
-
output: typeof
|
|
64
|
+
output: typeof Schema.Void;
|
|
66
65
|
}>;
|
|
67
66
|
export class DeleteCard extends DeleteCard_base {
|
|
68
67
|
}
|
|
@@ -75,10 +74,4 @@ export type Location = {
|
|
|
75
74
|
idx?: number;
|
|
76
75
|
};
|
|
77
76
|
export declare const isKanban: (object: unknown) => object is KanbanType;
|
|
78
|
-
export declare const createKanban: ({ space, name, typename, initialPivotColumn, }: {
|
|
79
|
-
space: Space;
|
|
80
|
-
name?: string;
|
|
81
|
-
typename?: string;
|
|
82
|
-
initialPivotColumn?: string;
|
|
83
|
-
}) => Promise<KanbanType>;
|
|
84
77
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAa,MAAM,QAAQ,CAAC;AAG3C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAKnD;;;;;;;GAOG;AAGH,eAAO,MAAM,oBAAoB,eAAwD,CAAC;AAC1F,eAAO,MAAM,uBAAuB,eAA2D,CAAC;AAEhG,eAAO,MAAM,kBAAkB;;;;EAc7B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE7E,yBAAiB,YAAY,CAAC;;;;;;;;;;;;;;;IAG5B,MAAM,OAAO,MAAO,SAAQ,WAK1B;KAAG;;;;;;;;;;;;;;;;;;;;;IAEL,MAAM,OAAO,eAAgB,SAAQ,oBAgBnC;KAAG;;;;;;;;;IAEL,MAAM,OAAO,UAAW,SAAQ,eAK9B;KAAG;;CACN;AAUD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,QAAQ,OAAO,KAAG,MAAM,IAAI,UAA4D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"5.
|
|
1
|
+
{"version":"5.8.3"}
|