@dxos/plugin-kanban 0.7.4 → 0.7.5-main.9cb18ac
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/chunk-JZBAL6SW.mjs +56 -0
- package/dist/lib/browser/chunk-JZBAL6SW.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +218 -109
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/types.mjs +12 -0
- package/dist/lib/node/chunk-BE2FRW7E.cjs +77 -0
- package/dist/lib/node/chunk-BE2FRW7E.cjs.map +7 -0
- package/dist/lib/node/index.cjs +210 -102
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/{types/index.cjs → types.cjs} +8 -10
- package/dist/lib/node/types.cjs.map +7 -0
- package/dist/lib/node-esm/chunk-L7JM7LGJ.mjs +57 -0
- package/dist/lib/node-esm/chunk-L7JM7LGJ.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +218 -109
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/types.mjs +13 -0
- package/dist/types/src/KanbanPlugin.d.ts.map +1 -1
- package/dist/types/src/components/KanbanContainer.d.ts +7 -0
- package/dist/types/src/components/KanbanContainer.d.ts.map +1 -0
- package/dist/types/src/components/KanbanViewEditor.d.ts +8 -0
- package/dist/types/src/components/KanbanViewEditor.d.ts.map +1 -0
- package/dist/types/src/components/index.d.ts +1 -3
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +32 -0
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types.d.ts +61 -0
- package/dist/types/src/types.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -0
- package/package.json +21 -23
- package/src/KanbanPlugin.tsx +50 -78
- package/src/components/KanbanContainer.tsx +79 -0
- package/src/components/KanbanViewEditor.tsx +72 -0
- package/src/components/index.ts +2 -4
- package/src/translations.ts +8 -2
- package/src/{types/types.ts → types.ts} +42 -11
- package/dist/lib/browser/KanbanMain-I5TMXNIY.mjs +0 -444
- package/dist/lib/browser/KanbanMain-I5TMXNIY.mjs.map +0 -7
- package/dist/lib/browser/chunk-4Y4TZ47E.mjs +0 -47
- package/dist/lib/browser/chunk-4Y4TZ47E.mjs.map +0 -7
- package/dist/lib/browser/types/index.mjs +0 -14
- package/dist/lib/node/KanbanMain-4OWAWTS4.cjs +0 -453
- package/dist/lib/node/KanbanMain-4OWAWTS4.cjs.map +0 -7
- package/dist/lib/node/chunk-LTR4WYI2.cjs +0 -67
- package/dist/lib/node/chunk-LTR4WYI2.cjs.map +0 -7
- package/dist/lib/node/types/index.cjs.map +0 -7
- package/dist/lib/node-esm/KanbanMain-PJC2JMJH.mjs +0 -445
- package/dist/lib/node-esm/KanbanMain-PJC2JMJH.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-2ZBX5F7L.mjs +0 -48
- package/dist/lib/node-esm/chunk-2ZBX5F7L.mjs.map +0 -7
- package/dist/lib/node-esm/types/index.mjs +0 -15
- package/dist/types/src/components/KanbanBoard.d.ts +0 -6
- package/dist/types/src/components/KanbanBoard.d.ts.map +0 -1
- package/dist/types/src/components/KanbanCard.d.ts +0 -9
- package/dist/types/src/components/KanbanCard.d.ts.map +0 -1
- package/dist/types/src/components/KanbanColumn.d.ts +0 -14
- package/dist/types/src/components/KanbanColumn.d.ts.map +0 -1
- package/dist/types/src/components/KanbanMain.d.ts +0 -7
- package/dist/types/src/components/KanbanMain.d.ts.map +0 -1
- package/dist/types/src/components/util.d.ts +0 -7
- package/dist/types/src/components/util.d.ts.map +0 -1
- package/dist/types/src/stories/testing.d.ts +0 -19
- package/dist/types/src/stories/testing.d.ts.map +0 -1
- package/dist/types/src/types/index.d.ts +0 -3
- package/dist/types/src/types/index.d.ts.map +0 -1
- package/dist/types/src/types/kanban.d.ts +0 -76
- package/dist/types/src/types/kanban.d.ts.map +0 -1
- package/dist/types/src/types/types.d.ts +0 -18
- package/dist/types/src/types/types.d.ts.map +0 -1
- package/src/components/KanbanBoard.tsx +0 -195
- package/src/components/KanbanCard.tsx +0 -82
- package/src/components/KanbanColumn.tsx +0 -143
- package/src/components/KanbanMain.tsx +0 -37
- package/src/components/util.ts +0 -38
- package/src/stories/testing.ts +0 -29
- package/src/types/index.ts +0 -6
- package/src/types/kanban.ts +0 -22
- /package/dist/lib/browser/{types/index.mjs.map → types.mjs.map} +0 -0
- /package/dist/lib/node-esm/{types/index.mjs.map → types.mjs.map} +0 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import {
|
|
2
|
+
KANBAN_PLUGIN
|
|
3
|
+
} from "./chunk-LG4OMN5S.mjs";
|
|
4
|
+
|
|
5
|
+
// packages/plugins/experimental/plugin-kanban/src/types.ts
|
|
6
|
+
import { S } from "@dxos/echo-schema";
|
|
7
|
+
import { SpaceSchema } from "@dxos/react-client/echo";
|
|
8
|
+
import { KanbanType } from "@dxos/react-ui-kanban";
|
|
9
|
+
import { initializeKanban } from "@dxos/react-ui-kanban/testing";
|
|
10
|
+
import { FieldSchema } from "@dxos/schema";
|
|
11
|
+
var KanbanAction;
|
|
12
|
+
(function(KanbanAction2) {
|
|
13
|
+
const KANBAN_ACTION = `${KANBAN_PLUGIN}/action`;
|
|
14
|
+
class Create extends S.TaggedClass()(`${KANBAN_ACTION}/create`, {
|
|
15
|
+
input: S.Struct({
|
|
16
|
+
name: S.optional(S.String),
|
|
17
|
+
space: SpaceSchema
|
|
18
|
+
}),
|
|
19
|
+
output: S.Struct({
|
|
20
|
+
object: KanbanType
|
|
21
|
+
})
|
|
22
|
+
}) {
|
|
23
|
+
}
|
|
24
|
+
KanbanAction2.Create = Create;
|
|
25
|
+
class DeleteCardField extends S.TaggedClass()(`${KANBAN_ACTION}/delete-card-field`, {
|
|
26
|
+
input: S.Struct({
|
|
27
|
+
kanban: KanbanType,
|
|
28
|
+
fieldId: S.String,
|
|
29
|
+
// TODO(wittjosiah): Separate fields for undo data?
|
|
30
|
+
deletionData: S.optional(S.Struct({
|
|
31
|
+
field: FieldSchema,
|
|
32
|
+
// TODO(wittjosiah): This creates a type error.
|
|
33
|
+
// props: PropertySchema,
|
|
34
|
+
props: S.Any,
|
|
35
|
+
index: S.Number
|
|
36
|
+
}))
|
|
37
|
+
}),
|
|
38
|
+
output: S.Void
|
|
39
|
+
}) {
|
|
40
|
+
}
|
|
41
|
+
KanbanAction2.DeleteCardField = DeleteCardField;
|
|
42
|
+
})(KanbanAction || (KanbanAction = {}));
|
|
43
|
+
var isKanban = (object) => object != null && object instanceof KanbanType;
|
|
44
|
+
var createKanban = async (space) => {
|
|
45
|
+
const { kanban } = await initializeKanban({
|
|
46
|
+
space
|
|
47
|
+
});
|
|
48
|
+
return kanban;
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
export {
|
|
52
|
+
KanbanAction,
|
|
53
|
+
isKanban,
|
|
54
|
+
createKanban
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=chunk-JZBAL6SW.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/types.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport type {\n IntentResolverProvides,\n MetadataRecordsProvides,\n SurfaceProvides,\n TranslationsProvides,\n} from '@dxos/app-framework';\nimport { S } from '@dxos/echo-schema';\nimport { type SchemaProvides } from '@dxos/plugin-space';\nimport { type Space, SpaceSchema } from '@dxos/react-client/echo';\nimport { KanbanType } from '@dxos/react-ui-kanban';\nimport { initializeKanban } from '@dxos/react-ui-kanban/testing';\nimport { FieldSchema } from '@dxos/schema';\n\nimport { KANBAN_PLUGIN } from './meta';\n\n/**\n * Kanban data model.\n * A Kanban board is a collection of columns, each of which contains a collection of items.\n * The layout of columns and items is controlled by models.\n * The underlying data model may be represented by direct object relationships\n * (e.g., a column object containing an array of ordered items) or projections constructed\n * by the model (e.g., a query of items based on metadata within a column object).\n */\n\nexport namespace KanbanAction {\n const KANBAN_ACTION = `${KANBAN_PLUGIN}/action`;\n\n export class Create extends S.TaggedClass<Create>()(`${KANBAN_ACTION}/create`, {\n input: S.Struct({\n name: S.optional(S.String),\n space: SpaceSchema,\n }),\n output: S.Struct({\n object: KanbanType,\n }),\n }) {}\n\n export class DeleteCardField extends S.TaggedClass<DeleteCardField>()(`${KANBAN_ACTION}/delete-card-field`, {\n input: S.Struct({\n kanban: KanbanType,\n fieldId: S.String,\n // TODO(wittjosiah): Separate fields for undo data?\n deletionData: S.optional(\n S.Struct({\n field: FieldSchema,\n // TODO(wittjosiah): This creates a type error.\n // props: PropertySchema,\n props: S.Any,\n index: S.Number,\n }),\n ),\n }),\n output: S.Void,\n }) {}\n}\n\nexport type KanbanPluginProvides = SurfaceProvides &\n IntentResolverProvides &\n MetadataRecordsProvides &\n TranslationsProvides &\n SchemaProvides;\n\n// TODO(burdon): Undo?\n// TODO(burdon): Typescript types (replace proto with annotations?)\n// TODO(burdon): Should pure components depend on ECHO? Relationship between ECHO object/array and Observable.\n// TODO(burdon): Can the plugin configure the object based on the data? E.g., how are the models constructed?\n// TODO(burdon): Create models. Simple first based on actual data.\n// Model is always a projection since the dragging state is tentative.\n\n// TODO(burdon): Extend model for moving items (in and across columns).\nexport interface KanbanModel {\n root: KanbanType;\n}\n\nexport type Location = {\n idx?: number;\n};\n\nexport const isKanban = (object: unknown): object is KanbanType => object != null && object instanceof KanbanType;\n\nexport const createKanban = async (space: Space) => {\n const { kanban } = await initializeKanban({ space });\n return kanban;\n};\n"],
|
|
5
|
+
"mappings": ";;;;;AAUA,SAASA,SAAS;AAElB,SAAqBC,mBAAmB;AACxC,SAASC,kBAAkB;AAC3B,SAASC,wBAAwB;AACjC,SAASC,mBAAmB;;UAaXC,eAAAA;AACf,QAAMC,gBAAgB,GAAGC,aAAAA;EAElB,MAAMC,eAAeC,EAAEC,YAAW,EAAW,GAAGJ,aAAAA,WAAwB;IAC7EK,OAAOF,EAAEG,OAAO;MACdC,MAAMJ,EAAEK,SAASL,EAAEM,MAAM;MACzBC,OAAOC;IACT,CAAA;IACAC,QAAQT,EAAEG,OAAO;MACfO,QAAQC;IACV,CAAA;EACF,CAAA,EAAA;EAAI;gBARSZ,SAAAA;EAUN,MAAMa,wBAAwBZ,EAAEC,YAAW,EAAoB,GAAGJ,aAAAA,sBAAmC;IAC1GK,OAAOF,EAAEG,OAAO;MACdU,QAAQF;MACRG,SAASd,EAAEM;;MAEXS,cAAcf,EAAEK,SACdL,EAAEG,OAAO;QACPa,OAAOC;;;QAGPC,OAAOlB,EAAEmB;QACTC,OAAOpB,EAAEqB;MACX,CAAA,CAAA;IAEJ,CAAA;IACAZ,QAAQT,EAAEsB;EACZ,CAAA,EAAA;EAAI;gBAhBSV,kBAAAA;AAiBf,GA9BiBhB,iBAAAA,eAAAA,CAAAA,EAAAA;AAsDV,IAAM2B,WAAW,CAACb,WAA0CA,UAAU,QAAQA,kBAAkBC;AAEhG,IAAMa,eAAe,OAAOjB,UAAAA;AACjC,QAAM,EAAEM,OAAM,IAAK,MAAMY,iBAAiB;IAAElB;EAAM,CAAA;AAClD,SAAOM;AACT;",
|
|
6
|
+
"names": ["S", "SpaceSchema", "KanbanType", "initializeKanban", "FieldSchema", "KanbanAction", "KANBAN_ACTION", "KANBAN_PLUGIN", "Create", "S", "TaggedClass", "input", "Struct", "name", "optional", "String", "space", "SpaceSchema", "output", "object", "KanbanType", "DeleteCardField", "kanban", "fieldId", "deletionData", "field", "FieldSchema", "props", "Any", "index", "Number", "Void", "isKanban", "createKanban", "initializeKanban"]
|
|
7
|
+
}
|
|
@@ -1,31 +1,154 @@
|
|
|
1
1
|
import {
|
|
2
2
|
KanbanAction,
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
} from "./chunk-4Y4TZ47E.mjs";
|
|
3
|
+
createKanban,
|
|
4
|
+
isKanban
|
|
5
|
+
} from "./chunk-JZBAL6SW.mjs";
|
|
7
6
|
import {
|
|
8
7
|
KANBAN_PLUGIN,
|
|
9
8
|
meta_default
|
|
10
9
|
} from "./chunk-LG4OMN5S.mjs";
|
|
11
10
|
|
|
12
11
|
// packages/plugins/experimental/plugin-kanban/src/KanbanPlugin.tsx
|
|
13
|
-
import
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import { loadObjectReferences } from "@dxos/react-client/echo";
|
|
12
|
+
import React3 from "react";
|
|
13
|
+
import { createSurface, createIntent as createIntent2, createResolver } from "@dxos/app-framework";
|
|
14
|
+
import { invariant as invariant2 } from "@dxos/invariant";
|
|
15
|
+
import { getSpace as getSpace3 } from "@dxos/react-client/echo";
|
|
16
|
+
import { KanbanType as KanbanType2, translations as kanbanTranslations } from "@dxos/react-ui-kanban";
|
|
17
|
+
import { ViewProjection } from "@dxos/schema";
|
|
20
18
|
|
|
21
|
-
// packages/plugins/experimental/plugin-kanban/src/components/
|
|
22
|
-
import {
|
|
23
|
-
|
|
19
|
+
// packages/plugins/experimental/plugin-kanban/src/components/KanbanContainer.tsx
|
|
20
|
+
import React, { useCallback, useEffect, useState } from "react";
|
|
21
|
+
import { invariant } from "@dxos/invariant";
|
|
22
|
+
import { useGlobalFilteredObjects } from "@dxos/plugin-search";
|
|
23
|
+
import { Filter, useQuery, getSpace, create } from "@dxos/react-client/echo";
|
|
24
|
+
import { useKanbanModel, Kanban } from "@dxos/react-ui-kanban";
|
|
25
|
+
import { StackItem } from "@dxos/react-ui-stack";
|
|
26
|
+
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-kanban/src/components/KanbanContainer.tsx";
|
|
27
|
+
var KanbanContainer = ({ kanban }) => {
|
|
28
|
+
const [cardSchema, setCardSchema] = useState();
|
|
29
|
+
const space = getSpace(kanban);
|
|
30
|
+
useEffect(() => {
|
|
31
|
+
if (kanban.cardView && space) {
|
|
32
|
+
setCardSchema(space.db.schemaRegistry.getSchema(kanban.cardView.target.query.type));
|
|
33
|
+
}
|
|
34
|
+
}, [
|
|
35
|
+
kanban.cardView,
|
|
36
|
+
space
|
|
37
|
+
]);
|
|
38
|
+
const objects = useQuery(space, cardSchema ? Filter.schema(cardSchema) : Filter.nothing());
|
|
39
|
+
const filteredObjects = useGlobalFilteredObjects(objects);
|
|
40
|
+
const model = useKanbanModel({
|
|
41
|
+
kanban,
|
|
42
|
+
cardSchema,
|
|
43
|
+
items: filteredObjects
|
|
44
|
+
});
|
|
45
|
+
const handleAddColumn = useCallback((columnValue) => model?.addEmptyColumn(columnValue), [
|
|
46
|
+
model
|
|
47
|
+
]);
|
|
48
|
+
const handleAddCard = useCallback((columnValue) => {
|
|
49
|
+
if (space && cardSchema) {
|
|
50
|
+
space.db.add(create(cardSchema, {
|
|
51
|
+
title: "",
|
|
52
|
+
description: "",
|
|
53
|
+
state: columnValue
|
|
54
|
+
}));
|
|
55
|
+
}
|
|
56
|
+
}, [
|
|
57
|
+
space,
|
|
58
|
+
cardSchema
|
|
59
|
+
]);
|
|
60
|
+
const handleRemoveCard = useCallback((card) => {
|
|
61
|
+
invariant(space, void 0, {
|
|
62
|
+
F: __dxlog_file,
|
|
63
|
+
L: 51,
|
|
64
|
+
S: void 0,
|
|
65
|
+
A: [
|
|
66
|
+
"space",
|
|
67
|
+
""
|
|
68
|
+
]
|
|
69
|
+
});
|
|
70
|
+
space.db.remove(card);
|
|
71
|
+
}, [
|
|
72
|
+
space
|
|
73
|
+
]);
|
|
74
|
+
const handleRemoveEmptyColumn = useCallback((columnValue) => {
|
|
75
|
+
model?.removeColumnFromArrangement(columnValue);
|
|
76
|
+
}, [
|
|
77
|
+
model
|
|
78
|
+
]);
|
|
79
|
+
return /* @__PURE__ */ React.createElement(StackItem.Content, {
|
|
80
|
+
toolbar: false
|
|
81
|
+
}, model ? /* @__PURE__ */ React.createElement(Kanban, {
|
|
82
|
+
model,
|
|
83
|
+
onAddCard: handleAddCard,
|
|
84
|
+
onAddColumn: handleAddColumn,
|
|
85
|
+
onRemoveCard: handleRemoveCard,
|
|
86
|
+
onRemoveEmptyColumn: handleRemoveEmptyColumn
|
|
87
|
+
}) : /* @__PURE__ */ React.createElement("span", null, "Loading"));
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
// packages/plugins/experimental/plugin-kanban/src/components/KanbanViewEditor.tsx
|
|
91
|
+
import React2, { useCallback as useCallback2, useEffect as useEffect2, useState as useState2 } from "react";
|
|
92
|
+
import { createIntent, useIntentDispatcher } from "@dxos/app-framework";
|
|
93
|
+
import { getSpace as getSpace2 } from "@dxos/react-client/echo";
|
|
94
|
+
import { ViewEditor, Form } from "@dxos/react-ui-form";
|
|
95
|
+
import { KanbanPropsSchema } from "@dxos/react-ui-kanban";
|
|
96
|
+
var KanbanViewEditor = ({ kanban }) => {
|
|
97
|
+
const { dispatchPromise: dispatch } = useIntentDispatcher();
|
|
98
|
+
const space = getSpace2(kanban);
|
|
99
|
+
const [schema, setSchema] = useState2(space && kanban?.cardView?.target?.query?.type ? space.db.schemaRegistry.getSchema(kanban.cardView.target.query.type) : void 0);
|
|
100
|
+
useEffect2(() => {
|
|
101
|
+
if (space && kanban?.cardView?.target?.query?.type) {
|
|
102
|
+
const unsubscribe = space.db.schemaRegistry.query({
|
|
103
|
+
typename: kanban?.cardView?.target?.query?.type
|
|
104
|
+
}).subscribe((query) => {
|
|
105
|
+
const [schema2] = query.results;
|
|
106
|
+
if (schema2) {
|
|
107
|
+
setSchema(schema2);
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
return unsubscribe;
|
|
111
|
+
}
|
|
112
|
+
}, [
|
|
113
|
+
space,
|
|
114
|
+
kanban?.cardView?.target?.query?.type
|
|
115
|
+
]);
|
|
116
|
+
const handleDelete = useCallback2((fieldId) => dispatch?.(createIntent(KanbanAction.DeleteCardField, {
|
|
117
|
+
kanban,
|
|
118
|
+
fieldId
|
|
119
|
+
})), [
|
|
120
|
+
dispatch,
|
|
121
|
+
kanban
|
|
122
|
+
]);
|
|
123
|
+
if (!space || !schema || !kanban.cardView?.target) {
|
|
124
|
+
return null;
|
|
125
|
+
}
|
|
126
|
+
return /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(Form, {
|
|
127
|
+
schema: KanbanPropsSchema,
|
|
128
|
+
values: {
|
|
129
|
+
columnField: kanban.columnField
|
|
130
|
+
},
|
|
131
|
+
onSave: ({ columnField }) => {
|
|
132
|
+
kanban.columnField = columnField;
|
|
133
|
+
kanban.arrangement = void 0;
|
|
134
|
+
}
|
|
135
|
+
}), /* @__PURE__ */ React2.createElement(ViewEditor, {
|
|
136
|
+
registry: space.db.schemaRegistry,
|
|
137
|
+
schema,
|
|
138
|
+
view: kanban.cardView.target,
|
|
139
|
+
onDelete: handleDelete
|
|
140
|
+
}));
|
|
141
|
+
};
|
|
142
|
+
var KanbanViewEditor_default = KanbanViewEditor;
|
|
24
143
|
|
|
25
144
|
// packages/plugins/experimental/plugin-kanban/src/translations.ts
|
|
145
|
+
import { KanbanType } from "@dxos/react-ui-kanban";
|
|
26
146
|
var translations_default = [
|
|
27
147
|
{
|
|
28
148
|
"en-US": {
|
|
149
|
+
[KanbanType.typename]: {
|
|
150
|
+
"typename label": "Kanban"
|
|
151
|
+
},
|
|
29
152
|
[KANBAN_PLUGIN]: {
|
|
30
153
|
"plugin name": "Kanban",
|
|
31
154
|
"kanban title label": "Title",
|
|
@@ -35,133 +158,119 @@ var translations_default = [
|
|
|
35
158
|
"item title label": "Item title",
|
|
36
159
|
"item title placeholder": "New item",
|
|
37
160
|
"add column label": "Add column",
|
|
38
|
-
"add item label": "Add
|
|
161
|
+
"add item label": "Add card",
|
|
39
162
|
"delete column label": "Delete column",
|
|
40
|
-
"delete item label": "Delete
|
|
41
|
-
"create kanban label": "Create kanban"
|
|
163
|
+
"delete item label": "Delete card",
|
|
164
|
+
"create kanban label": "Create kanban",
|
|
165
|
+
"card field deleted label": "Card field deleted"
|
|
42
166
|
}
|
|
43
167
|
}
|
|
44
168
|
}
|
|
45
169
|
];
|
|
46
170
|
|
|
47
171
|
// packages/plugins/experimental/plugin-kanban/src/KanbanPlugin.tsx
|
|
172
|
+
var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-kanban/src/KanbanPlugin.tsx";
|
|
48
173
|
var KanbanPlugin = () => {
|
|
49
174
|
return {
|
|
50
175
|
meta: meta_default,
|
|
51
176
|
provides: {
|
|
52
177
|
metadata: {
|
|
53
178
|
records: {
|
|
54
|
-
[
|
|
55
|
-
createObject: KanbanAction.
|
|
179
|
+
[KanbanType2.typename]: {
|
|
180
|
+
createObject: (props) => createIntent2(KanbanAction.Create, props),
|
|
56
181
|
placeholder: [
|
|
57
182
|
"kanban title placeholder",
|
|
58
183
|
{
|
|
59
184
|
ns: KANBAN_PLUGIN
|
|
60
185
|
}
|
|
61
186
|
],
|
|
62
|
-
icon: "ph--kanban--regular"
|
|
63
|
-
// TODO(wittjosiah): Move out of metadata.
|
|
64
|
-
loadReferences: (kanban) => loadObjectReferences(kanban, (kanban2) => kanban2.columns)
|
|
65
|
-
},
|
|
66
|
-
[KanbanColumnType.typename]: {
|
|
67
|
-
// TODO(wittjosiah): Move out of metadata.
|
|
68
|
-
loadReferences: (column) => loadObjectReferences(column, (column2) => column2.items)
|
|
69
|
-
},
|
|
70
|
-
[KanbanItemType.typename]: {
|
|
71
|
-
// TODO(wittjosiah): Move out of metadata.
|
|
72
|
-
loadReferences: (item) => []
|
|
187
|
+
icon: "ph--kanban--regular"
|
|
73
188
|
}
|
|
74
189
|
}
|
|
75
190
|
},
|
|
76
191
|
echo: {
|
|
77
192
|
schema: [
|
|
78
|
-
|
|
79
|
-
],
|
|
80
|
-
system: [
|
|
81
|
-
KanbanColumnType,
|
|
82
|
-
KanbanItemType
|
|
193
|
+
KanbanType2
|
|
83
194
|
]
|
|
84
195
|
},
|
|
85
|
-
translations:
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
const dispatch = resolvePlugin(plugins, parseIntentPlugin)?.provides.intent.dispatch;
|
|
90
|
-
if (!client || !dispatch) {
|
|
91
|
-
return [];
|
|
92
|
-
}
|
|
93
|
-
return createExtension({
|
|
94
|
-
id: KanbanAction.CREATE,
|
|
95
|
-
filter: (node) => isActionGroup(node) && node.id.startsWith(SpaceAction.ADD_OBJECT),
|
|
96
|
-
actions: ({ node }) => {
|
|
97
|
-
const id = node.id.split("/").at(-1);
|
|
98
|
-
const [spaceId, objectId] = id?.split(":") ?? [];
|
|
99
|
-
const space = client.spaces.get().find((space2) => space2.id === spaceId);
|
|
100
|
-
const object = objectId && space?.db.getObjectById(objectId);
|
|
101
|
-
const target = objectId ? object : space;
|
|
102
|
-
if (!target) {
|
|
103
|
-
return;
|
|
104
|
-
}
|
|
105
|
-
return [
|
|
106
|
-
{
|
|
107
|
-
id: `${KANBAN_PLUGIN}/create/${node.id}`,
|
|
108
|
-
data: async () => {
|
|
109
|
-
await dispatch([
|
|
110
|
-
{
|
|
111
|
-
plugin: KANBAN_PLUGIN,
|
|
112
|
-
action: KanbanAction.CREATE
|
|
113
|
-
},
|
|
114
|
-
{
|
|
115
|
-
action: SpaceAction.ADD_OBJECT,
|
|
116
|
-
data: {
|
|
117
|
-
target
|
|
118
|
-
}
|
|
119
|
-
},
|
|
120
|
-
{
|
|
121
|
-
action: NavigationAction.OPEN
|
|
122
|
-
}
|
|
123
|
-
]);
|
|
124
|
-
},
|
|
125
|
-
properties: {
|
|
126
|
-
label: [
|
|
127
|
-
"create kanban label",
|
|
128
|
-
{
|
|
129
|
-
ns: KANBAN_PLUGIN
|
|
130
|
-
}
|
|
131
|
-
],
|
|
132
|
-
icon: "ph--kanban--regular",
|
|
133
|
-
testId: "kanbanPlugin.createObject"
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
];
|
|
137
|
-
}
|
|
138
|
-
});
|
|
139
|
-
}
|
|
140
|
-
},
|
|
196
|
+
translations: [
|
|
197
|
+
...translations_default,
|
|
198
|
+
...kanbanTranslations
|
|
199
|
+
],
|
|
141
200
|
surface: {
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
201
|
+
definitions: () => [
|
|
202
|
+
createSurface({
|
|
203
|
+
id: `${KANBAN_PLUGIN}/kanban`,
|
|
204
|
+
role: [
|
|
205
|
+
"article",
|
|
206
|
+
"section"
|
|
207
|
+
],
|
|
208
|
+
filter: (data) => isKanban(data.subject),
|
|
209
|
+
component: ({ data, role }) => /* @__PURE__ */ React3.createElement(KanbanContainer, {
|
|
210
|
+
kanban: data.subject,
|
|
211
|
+
role
|
|
212
|
+
})
|
|
213
|
+
}),
|
|
214
|
+
createSurface({
|
|
215
|
+
id: `${KANBAN_PLUGIN}/settings`,
|
|
216
|
+
role: "complementary--settings",
|
|
217
|
+
filter: (data) => isKanban(data.subject),
|
|
218
|
+
component: ({ data }) => /* @__PURE__ */ React3.createElement(KanbanViewEditor_default, {
|
|
219
|
+
kanban: data.subject
|
|
220
|
+
})
|
|
221
|
+
})
|
|
222
|
+
]
|
|
152
223
|
},
|
|
153
224
|
intent: {
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
225
|
+
resolvers: () => [
|
|
226
|
+
createResolver(KanbanAction.Create, async ({ space }) => ({
|
|
227
|
+
data: {
|
|
228
|
+
object: await createKanban(space)
|
|
229
|
+
}
|
|
230
|
+
})),
|
|
231
|
+
createResolver(KanbanAction.DeleteCardField, ({ kanban, fieldId, deletionData }, undo) => {
|
|
232
|
+
invariant2(kanban.cardView, void 0, {
|
|
233
|
+
F: __dxlog_file2,
|
|
234
|
+
L: 58,
|
|
235
|
+
S: void 0,
|
|
236
|
+
A: [
|
|
237
|
+
"kanban.cardView",
|
|
238
|
+
""
|
|
239
|
+
]
|
|
240
|
+
});
|
|
241
|
+
const schema = kanban.cardView.target && getSpace3(kanban)?.db.schemaRegistry.getSchema(kanban.cardView.target.query.type);
|
|
242
|
+
invariant2(schema, void 0, {
|
|
243
|
+
F: __dxlog_file2,
|
|
244
|
+
L: 63,
|
|
245
|
+
S: void 0,
|
|
246
|
+
A: [
|
|
247
|
+
"schema",
|
|
248
|
+
""
|
|
249
|
+
]
|
|
250
|
+
});
|
|
251
|
+
const projection = new ViewProjection(schema, kanban.cardView.target);
|
|
252
|
+
if (!undo) {
|
|
253
|
+
const { deleted, index } = projection.deleteFieldProjection(fieldId);
|
|
157
254
|
return {
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
255
|
+
undoable: {
|
|
256
|
+
message: translations_default[0]["en-US"][KANBAN_PLUGIN]["card field deleted label"],
|
|
257
|
+
data: {
|
|
258
|
+
deletionData: {
|
|
259
|
+
...deleted,
|
|
260
|
+
index
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
}
|
|
161
264
|
};
|
|
265
|
+
} else if (undo && deletionData) {
|
|
266
|
+
const { field, props, index } = deletionData;
|
|
267
|
+
projection.setFieldProjection({
|
|
268
|
+
field,
|
|
269
|
+
props
|
|
270
|
+
}, index);
|
|
162
271
|
}
|
|
163
|
-
}
|
|
164
|
-
|
|
272
|
+
})
|
|
273
|
+
]
|
|
165
274
|
}
|
|
166
275
|
}
|
|
167
276
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../src/KanbanPlugin.tsx", "../../../src/components/
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport {
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": ["React", "
|
|
3
|
+
"sources": ["../../../src/KanbanPlugin.tsx", "../../../src/components/KanbanContainer.tsx", "../../../src/components/KanbanViewEditor.tsx", "../../../src/translations.ts", "../../../src/index.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type PluginDefinition, createSurface, createIntent, createResolver } from '@dxos/app-framework';\nimport { invariant } from '@dxos/invariant';\nimport { getSpace, type Space } from '@dxos/react-client/echo';\nimport { KanbanType, translations as kanbanTranslations } from '@dxos/react-ui-kanban';\nimport { ViewProjection } from '@dxos/schema';\n\nimport { KanbanContainer } from './components';\nimport KanbanViewEditor from './components/KanbanViewEditor';\nimport meta, { KANBAN_PLUGIN } from './meta';\nimport translations from './translations';\nimport { isKanban, KanbanAction, type KanbanPluginProvides, createKanban } from './types';\n\nexport const KanbanPlugin = (): PluginDefinition<KanbanPluginProvides> => {\n return {\n meta,\n provides: {\n metadata: {\n records: {\n [KanbanType.typename]: {\n createObject: (props: { name?: string; space: Space }) => createIntent(KanbanAction.Create, props),\n placeholder: ['kanban title placeholder', { ns: KANBAN_PLUGIN }],\n icon: 'ph--kanban--regular',\n },\n },\n },\n echo: {\n schema: [KanbanType],\n },\n translations: [...translations, ...kanbanTranslations],\n surface: {\n definitions: () => [\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}/settings`,\n role: 'complementary--settings',\n filter: (data): data is { subject: KanbanType } => isKanban(data.subject),\n component: ({ data }) => <KanbanViewEditor kanban={data.subject} />,\n }),\n ],\n },\n intent: {\n resolvers: () => [\n createResolver(KanbanAction.Create, async ({ space }) => ({\n data: { object: await createKanban(space) },\n })),\n createResolver(KanbanAction.DeleteCardField, ({ kanban, fieldId, deletionData }, undo) => {\n invariant(kanban.cardView);\n\n const schema =\n kanban.cardView.target &&\n getSpace(kanban)?.db.schemaRegistry.getSchema(kanban.cardView.target.query.type);\n invariant(schema);\n const projection = new ViewProjection(schema, kanban.cardView.target!);\n\n if (!undo) {\n const { deleted, index } = projection.deleteFieldProjection(fieldId);\n return {\n undoable: {\n message: translations[0]['en-US'][KANBAN_PLUGIN]['card field deleted label'],\n data: { deletionData: { ...deleted, index } },\n },\n };\n } else if (undo && deletionData) {\n const { field, props, index } = deletionData;\n projection.setFieldProjection({ field, props }, index);\n }\n }),\n ],\n },\n },\n };\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useCallback, useEffect, useState } from 'react';\n\nimport { type EchoSchema } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { useGlobalFilteredObjects } from '@dxos/plugin-search';\nimport { Filter, useQuery, getSpace, create } from '@dxos/react-client/echo';\nimport { type KanbanType, useKanbanModel, Kanban } from '@dxos/react-ui-kanban';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nexport const KanbanContainer = ({ kanban }: { kanban: KanbanType; role: string }) => {\n const [cardSchema, setCardSchema] = useState<EchoSchema>();\n const space = getSpace(kanban);\n useEffect(() => {\n if (kanban.cardView && space) {\n setCardSchema(space.db.schemaRegistry.getSchema(kanban.cardView.target!.query.type));\n }\n }, [kanban.cardView, space]);\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 cardSchema,\n items: filteredObjects,\n });\n\n const handleAddColumn = useCallback((columnValue: string) => model?.addEmptyColumn(columnValue), [model]);\n\n const handleAddCard = useCallback(\n (columnValue: string) => {\n if (space && cardSchema) {\n space.db.add(\n create(cardSchema, {\n title: '',\n description: '',\n state: columnValue,\n }),\n );\n }\n },\n [space, cardSchema],\n );\n\n const handleRemoveCard = useCallback(\n (card: { id: string }) => {\n invariant(space);\n space.db.remove(card);\n },\n [space],\n );\n\n const handleRemoveEmptyColumn = useCallback(\n (columnValue: string) => {\n model?.removeColumnFromArrangement(columnValue);\n },\n [model],\n );\n\n return (\n <StackItem.Content toolbar={false}>\n {model ? (\n <Kanban\n model={model}\n onAddCard={handleAddCard}\n onAddColumn={handleAddColumn}\n onRemoveCard={handleRemoveCard}\n onRemoveEmptyColumn={handleRemoveEmptyColumn}\n />\n ) : (\n <span>Loading</span>\n )}\n </StackItem.Content>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useCallback, useEffect, useState } from 'react';\n\nimport { createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { getSpace } from '@dxos/react-client/echo';\nimport { ViewEditor, Form } from '@dxos/react-ui-form';\nimport { type KanbanType, KanbanPropsSchema } from '@dxos/react-ui-kanban';\n\nimport { KanbanAction } from '../types';\n\ntype KanbanViewEditorProps = { kanban: KanbanType };\n\nconst KanbanViewEditor = ({ kanban }: KanbanViewEditorProps) => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const space = getSpace(kanban);\n\n // TODO(ZaymonFC): The schema registry needs an API where we can query with initial value and\n // endure typename changes. We shouldn't need to manage a subscription at this layer.\n const [schema, setSchema] = useState(\n space && kanban?.cardView?.target?.query?.type\n ? space.db.schemaRegistry.getSchema(kanban.cardView.target.query.type)\n : undefined,\n );\n\n useEffect(() => {\n if (space && kanban?.cardView?.target?.query?.type) {\n const unsubscribe = space.db.schemaRegistry\n .query({ typename: kanban?.cardView?.target?.query?.type })\n .subscribe((query) => {\n const [schema] = query.results;\n if (schema) {\n setSchema(schema);\n }\n });\n\n return unsubscribe;\n }\n }, [space, kanban?.cardView?.target?.query?.type]);\n\n const handleDelete = useCallback(\n (fieldId: string) => dispatch?.(createIntent(KanbanAction.DeleteCardField, { kanban, fieldId })),\n [dispatch, kanban],\n );\n\n if (!space || !schema || !kanban.cardView?.target) {\n return null;\n }\n\n return (\n <>\n <Form\n schema={KanbanPropsSchema}\n values={{ columnField: kanban.columnField }}\n onSave={({ columnField }) => {\n kanban.columnField = columnField;\n kanban.arrangement = undefined;\n }}\n />\n <ViewEditor\n registry={space.db.schemaRegistry}\n schema={schema}\n view={kanban.cardView.target}\n onDelete={handleDelete}\n />\n </>\n );\n};\n\nexport default KanbanViewEditor;\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { KanbanType } from '@dxos/react-ui-kanban';\n\nimport { KANBAN_PLUGIN } from './meta';\n\nexport default [\n {\n 'en-US': {\n [KanbanType.typename]: {\n 'typename label': 'Kanban',\n },\n [KANBAN_PLUGIN]: {\n 'plugin name': 'Kanban',\n 'kanban title label': 'Title',\n 'kanban title placeholder': 'New kanban',\n 'column title label': 'Column title',\n 'column title placeholder': 'New column',\n 'item title label': 'Item title',\n 'item title placeholder': 'New item',\n 'add column label': 'Add column',\n 'add item label': 'Add card',\n 'delete column label': 'Delete column',\n 'delete item label': 'Delete card',\n 'create kanban label': 'Create kanban',\n 'card field deleted label': 'Card field deleted',\n },\n },\n },\n];\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { KanbanPlugin } from './KanbanPlugin';\n\nexport default KanbanPlugin;\n\nexport * from './KanbanPlugin';\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;AAIA,OAAOA,YAAW;AAElB,SAAgCC,eAAeC,gBAAAA,eAAcC,sBAAsB;AACnF,SAASC,aAAAA,kBAAiB;AAC1B,SAASC,YAAAA,iBAA4B;AACrC,SAASC,cAAAA,aAAYC,gBAAgBC,0BAA0B;AAC/D,SAASC,sBAAsB;;;ACN/B,OAAOC,SAASC,aAAaC,WAAWC,gBAAgB;AAGxD,SAASC,iBAAiB;AAC1B,SAASC,gCAAgC;AACzC,SAASC,QAAQC,UAAUC,UAAUC,cAAc;AACnD,SAA0BC,gBAAgBC,cAAc;AACxD,SAASC,iBAAiB;;AAEnB,IAAMC,kBAAkB,CAAC,EAAEC,OAAM,MAAwC;AAC9E,QAAM,CAACC,YAAYC,aAAAA,IAAiBb,SAAAA;AACpC,QAAMc,QAAQT,SAASM,MAAAA;AACvBZ,YAAU,MAAA;AACR,QAAIY,OAAOI,YAAYD,OAAO;AAC5BD,oBAAcC,MAAME,GAAGC,eAAeC,UAAUP,OAAOI,SAASI,OAAQC,MAAMC,IAAI,CAAA;IACpF;EACF,GAAG;IAACV,OAAOI;IAAUD;GAAM;AAE3B,QAAMQ,UAAUlB,SAASU,OAAOF,aAAaT,OAAOoB,OAAOX,UAAAA,IAAcT,OAAOqB,QAAO,CAAA;AACvF,QAAMC,kBAAkBvB,yBAAyBoB,OAAAA;AAEjD,QAAMI,QAAQnB,eAAe;IAC3BI;IACAC;IACAe,OAAOF;EACT,CAAA;AAEA,QAAMG,kBAAkB9B,YAAY,CAAC+B,gBAAwBH,OAAOI,eAAeD,WAAAA,GAAc;IAACH;GAAM;AAExG,QAAMK,gBAAgBjC,YACpB,CAAC+B,gBAAAA;AACC,QAAIf,SAASF,YAAY;AACvBE,YAAME,GAAGgB,IACP1B,OAAOM,YAAY;QACjBqB,OAAO;QACPC,aAAa;QACbC,OAAON;MACT,CAAA,CAAA;IAEJ;EACF,GACA;IAACf;IAAOF;GAAW;AAGrB,QAAMwB,mBAAmBtC,YACvB,CAACuC,SAAAA;AACCpC,cAAUa,OAAAA,QAAAA;;;;;;;;;AACVA,UAAME,GAAGsB,OAAOD,IAAAA;EAClB,GACA;IAACvB;GAAM;AAGT,QAAMyB,0BAA0BzC,YAC9B,CAAC+B,gBAAAA;AACCH,WAAOc,4BAA4BX,WAAAA;EACrC,GACA;IAACH;GAAM;AAGT,SACE,sBAAA,cAACjB,UAAUgC,SAAO;IAACC,SAAS;KACzBhB,QACC,sBAAA,cAAClB,QAAAA;IACCkB;IACAiB,WAAWZ;IACXa,aAAahB;IACbiB,cAAcT;IACdU,qBAAqBP;OAGvB,sBAAA,cAACQ,QAAAA,MAAK,SAAA,CAAA;AAId;;;AC1EA,OAAOC,UAASC,eAAAA,cAAaC,aAAAA,YAAWC,YAAAA,iBAAgB;AAExD,SAASC,cAAcC,2BAA2B;AAClD,SAASC,YAAAA,iBAAgB;AACzB,SAASC,YAAYC,YAAY;AACjC,SAA0BC,yBAAyB;AAMnD,IAAMC,mBAAmB,CAAC,EAAEC,OAAM,MAAyB;AACzD,QAAM,EAAEC,iBAAiBC,SAAQ,IAAKC,oBAAAA;AACtC,QAAMC,QAAQC,UAASL,MAAAA;AAIvB,QAAM,CAACM,QAAQC,SAAAA,IAAaC,UAC1BJ,SAASJ,QAAQS,UAAUC,QAAQC,OAAOC,OACtCR,MAAMS,GAAGC,eAAeC,UAAUf,OAAOS,SAASC,OAAOC,MAAMC,IAAI,IACnEI,MAAAA;AAGNC,EAAAA,WAAU,MAAA;AACR,QAAIb,SAASJ,QAAQS,UAAUC,QAAQC,OAAOC,MAAM;AAClD,YAAMM,cAAcd,MAAMS,GAAGC,eAC1BH,MAAM;QAAEQ,UAAUnB,QAAQS,UAAUC,QAAQC,OAAOC;MAAK,CAAA,EACxDQ,UAAU,CAACT,UAAAA;AACV,cAAM,CAACL,OAAAA,IAAUK,MAAMU;AACvB,YAAIf,SAAQ;AACVC,oBAAUD,OAAAA;QACZ;MACF,CAAA;AAEF,aAAOY;IACT;EACF,GAAG;IAACd;IAAOJ,QAAQS,UAAUC,QAAQC,OAAOC;GAAK;AAEjD,QAAMU,eAAeC,aACnB,CAACC,YAAoBtB,WAAWuB,aAAaC,aAAaC,iBAAiB;IAAE3B;IAAQwB;EAAQ,CAAA,CAAA,GAC7F;IAACtB;IAAUF;GAAO;AAGpB,MAAI,CAACI,SAAS,CAACE,UAAU,CAACN,OAAOS,UAAUC,QAAQ;AACjD,WAAO;EACT;AAEA,SACE,gBAAAkB,OAAA,cAAAA,OAAA,UAAA,MACE,gBAAAA,OAAA,cAACC,MAAAA;IACCvB,QAAQwB;IACRC,QAAQ;MAAEC,aAAahC,OAAOgC;IAAY;IAC1CC,QAAQ,CAAC,EAAED,YAAW,MAAE;AACtBhC,aAAOgC,cAAcA;AACrBhC,aAAOkC,cAAclB;IACvB;MAEF,gBAAAY,OAAA,cAACO,YAAAA;IACCC,UAAUhC,MAAMS,GAAGC;IACnBR;IACA+B,MAAMrC,OAAOS,SAASC;IACtB4B,UAAUhB;;AAIlB;AAEA,IAAA,2BAAevB;;;ACnEf,SAASwC,kBAAkB;AAI3B,IAAA,uBAAe;EACb;IACE,SAAS;MACP,CAACC,WAAWC,QAAQ,GAAG;QACrB,kBAAkB;MACpB;MACA,CAACC,aAAAA,GAAgB;QACf,eAAe;QACf,sBAAsB;QACtB,4BAA4B;QAC5B,sBAAsB;QACtB,4BAA4B;QAC5B,oBAAoB;QACpB,0BAA0B;QAC1B,oBAAoB;QACpB,kBAAkB;QAClB,uBAAuB;QACvB,qBAAqB;QACrB,uBAAuB;QACvB,4BAA4B;MAC9B;IACF;EACF;;;;;AHZK,IAAMC,eAAe,MAAA;AAC1B,SAAO;IACLC;IACAC,UAAU;MACRC,UAAU;QACRC,SAAS;UACP,CAACC,YAAWC,QAAQ,GAAG;YACrBC,cAAc,CAACC,UAA2CC,cAAaC,aAAaC,QAAQH,KAAAA;YAC5FI,aAAa;cAAC;cAA4B;gBAAEC,IAAIC;cAAc;;YAC9DC,MAAM;UACR;QACF;MACF;MACAC,MAAM;QACJC,QAAQ;UAACZ;;MACX;MACAa,cAAc;WAAIA;WAAiBC;;MACnCC,SAAS;QACPC,aAAa,MAAM;UACjBC,cAAc;YACZC,IAAI,GAAGT,aAAAA;YACPU,MAAM;cAAC;cAAW;;YAClBC,QAAQ,CAACC,SAA0CC,SAASD,KAAKE,OAAO;YACxEC,WAAW,CAAC,EAAEH,MAAMF,KAAI,MAAO,gBAAAM,OAAA,cAACC,iBAAAA;cAAgBC,QAAQN,KAAKE;cAASJ;;UACxE,CAAA;UACAF,cAAc;YACZC,IAAI,GAAGT,aAAAA;YACPU,MAAM;YACNC,QAAQ,CAACC,SAA0CC,SAASD,KAAKE,OAAO;YACxEC,WAAW,CAAC,EAAEH,KAAI,MAAO,gBAAAI,OAAA,cAACG,0BAAAA;cAAiBD,QAAQN,KAAKE;;UAC1D,CAAA;;MAEJ;MACAM,QAAQ;QACNC,WAAW,MAAM;UACfC,eAAe1B,aAAaC,QAAQ,OAAO,EAAE0B,MAAK,OAAQ;YACxDX,MAAM;cAAEY,QAAQ,MAAMC,aAAaF,KAAAA;YAAO;UAC5C,EAAA;UACAD,eAAe1B,aAAa8B,iBAAiB,CAAC,EAAER,QAAQS,SAASC,aAAY,GAAIC,SAAAA;AAC/EC,YAAAA,WAAUZ,OAAOa,UAAQ,QAAA;;;;;;;;;AAEzB,kBAAM5B,SACJe,OAAOa,SAASC,UAChBC,UAASf,MAAAA,GAASgB,GAAGC,eAAeC,UAAUlB,OAAOa,SAASC,OAAOK,MAAMC,IAAI;AACjFR,YAAAA,WAAU3B,QAAAA,QAAAA;;;;;;;;;AACV,kBAAMoC,aAAa,IAAIC,eAAerC,QAAQe,OAAOa,SAASC,MAAM;AAEpE,gBAAI,CAACH,MAAM;AACT,oBAAM,EAAEY,SAASC,MAAK,IAAKH,WAAWI,sBAAsBhB,OAAAA;AAC5D,qBAAO;gBACLiB,UAAU;kBACRC,SAASzC,qBAAa,CAAA,EAAG,OAAA,EAASJ,aAAAA,EAAe,0BAAA;kBACjDY,MAAM;oBAAEgB,cAAc;sBAAE,GAAGa;sBAASC;oBAAM;kBAAE;gBAC9C;cACF;YACF,WAAWb,QAAQD,cAAc;AAC/B,oBAAM,EAAEkB,OAAOpD,OAAOgD,MAAK,IAAKd;AAChCW,yBAAWQ,mBAAmB;gBAAED;gBAAOpD;cAAM,GAAGgD,KAAAA;YAClD;UACF,CAAA;;MAEJ;IACF;EACF;AACF;;;AI5EA,IAAA,cAAeM;",
|
|
6
|
+
"names": ["React", "createSurface", "createIntent", "createResolver", "invariant", "getSpace", "KanbanType", "translations", "kanbanTranslations", "ViewProjection", "React", "useCallback", "useEffect", "useState", "invariant", "useGlobalFilteredObjects", "Filter", "useQuery", "getSpace", "create", "useKanbanModel", "Kanban", "StackItem", "KanbanContainer", "kanban", "cardSchema", "setCardSchema", "space", "cardView", "db", "schemaRegistry", "getSchema", "target", "query", "type", "objects", "schema", "nothing", "filteredObjects", "model", "items", "handleAddColumn", "columnValue", "addEmptyColumn", "handleAddCard", "add", "title", "description", "state", "handleRemoveCard", "card", "remove", "handleRemoveEmptyColumn", "removeColumnFromArrangement", "Content", "toolbar", "onAddCard", "onAddColumn", "onRemoveCard", "onRemoveEmptyColumn", "span", "React", "useCallback", "useEffect", "useState", "createIntent", "useIntentDispatcher", "getSpace", "ViewEditor", "Form", "KanbanPropsSchema", "KanbanViewEditor", "kanban", "dispatchPromise", "dispatch", "useIntentDispatcher", "space", "getSpace", "schema", "setSchema", "useState", "cardView", "target", "query", "type", "db", "schemaRegistry", "getSchema", "undefined", "useEffect", "unsubscribe", "typename", "subscribe", "results", "handleDelete", "useCallback", "fieldId", "createIntent", "KanbanAction", "DeleteCardField", "React", "Form", "KanbanPropsSchema", "values", "columnField", "onSave", "arrangement", "ViewEditor", "registry", "view", "onDelete", "KanbanType", "KanbanType", "typename", "KANBAN_PLUGIN", "KanbanPlugin", "meta", "provides", "metadata", "records", "KanbanType", "typename", "createObject", "props", "createIntent", "KanbanAction", "Create", "placeholder", "ns", "KANBAN_PLUGIN", "icon", "echo", "schema", "translations", "kanbanTranslations", "surface", "definitions", "createSurface", "id", "role", "filter", "data", "isKanban", "subject", "component", "React", "KanbanContainer", "kanban", "KanbanViewEditor", "intent", "resolvers", "createResolver", "space", "object", "createKanban", "DeleteCardField", "fieldId", "deletionData", "undo", "invariant", "cardView", "target", "getSpace", "db", "schemaRegistry", "getSchema", "query", "type", "projection", "ViewProjection", "deleted", "index", "deleteFieldProjection", "undoable", "message", "field", "setFieldProjection", "KanbanPlugin"]
|
|
7
7
|
}
|