@humandialog/forms.svelte 0.5.4 → 0.5.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/components/Fab.svelte +5 -3
  2. package/components/combo/combo.svelte +1 -1
  3. package/components/document/rich.edit.svelte +30 -7
  4. package/components/document/rich.edit.svelte.d.ts +2 -2
  5. package/components/kanban/Kanban.d.ts +24 -4
  6. package/components/kanban/Kanban.js +60 -4
  7. package/components/kanban/internal/kanban.card.svelte +148 -70
  8. package/components/kanban/internal/kanban.card.svelte.d.ts +2 -5
  9. package/components/kanban/internal/kanban.column.svelte +116 -72
  10. package/components/kanban/internal/kanban.column.svelte.d.ts +9 -9
  11. package/components/kanban/internal/kanban.inserter.svelte +1 -1
  12. package/components/kanban/internal/kanban.move.menu.svelte +11 -8
  13. package/components/kanban/internal/kanban.move.menu.svelte.d.ts +3 -0
  14. package/components/kanban/internal/kanban.props.svelte +140 -0
  15. package/components/kanban/internal/kanban.props.svelte.d.ts +19 -0
  16. package/components/kanban/kanban.callbacks.svelte +2 -8
  17. package/components/kanban/kanban.callbacks.svelte.d.ts +1 -4
  18. package/components/kanban/kanban.column.svelte +8 -8
  19. package/components/kanban/kanban.column.svelte.d.ts +4 -4
  20. package/components/kanban/kanban.combo.svelte +36 -0
  21. package/components/kanban/kanban.combo.svelte.d.ts +24 -0
  22. package/components/kanban/kanban.date.svelte +30 -0
  23. package/components/kanban/kanban.date.svelte.d.ts +21 -0
  24. package/components/kanban/kanban.source.svelte +25 -0
  25. package/components/kanban/kanban.source.svelte.d.ts +23 -0
  26. package/components/kanban/kanban.static.svelte +28 -0
  27. package/components/kanban/kanban.static.svelte.d.ts +20 -0
  28. package/components/kanban/kanban.summary.svelte +4 -0
  29. package/components/kanban/kanban.summary.svelte.d.ts +2 -0
  30. package/components/kanban/kanban.svelte +390 -55
  31. package/components/kanban/kanban.svelte.d.ts +32 -12
  32. package/components/kanban/kanban.tags.svelte +34 -0
  33. package/components/kanban/kanban.tags.svelte.d.ts +23 -0
  34. package/components/kanban/kanban.title.svelte +2 -0
  35. package/components/kanban/kanban.title.svelte.d.ts +1 -0
  36. package/components/list/List.d.ts +8 -1
  37. package/components/list/List.js +9 -0
  38. package/components/list/internal/list.element.summary.svelte +21 -7
  39. package/components/list/internal/list.element.summary.svelte.d.ts +1 -0
  40. package/components/list/internal/list.element.svelte +16 -11
  41. package/components/list/list.svelte +1 -1
  42. package/components/sidebar/sidebar.group.svelte +41 -3
  43. package/components/sidebar/sidebar.group.svelte.d.ts +6 -0
  44. package/components/tag.svelte +40 -0
  45. package/components/tag.svelte.d.ts +19 -0
  46. package/components/tags.svelte +203 -0
  47. package/components/tags.svelte.d.ts +31 -0
  48. package/horizontal.toolbar.svelte +23 -4
  49. package/horizontal.toolbar.svelte.d.ts +2 -0
  50. package/index.d.ts +9 -2
  51. package/index.js +9 -2
  52. package/operations.svelte +52 -23
  53. package/package.json +9 -1
  54. package/page.svelte +3 -3
  55. package/page.svelte.d.ts +2 -2
  56. package/tenant.members.svelte +1 -1
  57. package/updates.d.ts +1 -0
  58. package/updates.js +16 -0
  59. package/utils.js +11 -1
  60. package/vertical.toolbar.svelte +31 -6
  61. package/vertical.toolbar.svelte.d.ts +2 -0
@@ -1,94 +1,428 @@
1
- <script>import { setContext, getContext, afterUpdate } from "svelte";
2
- import { rKanban_definition } from "./Kanban";
3
- import { parseWidthDirective, clearActiveItem } from "../../utils";
4
- import { data_tick_store, contextItemsStore, contextTypesStore } from "../../stores";
1
+ <script>import { setContext, getContext, afterUpdate, tick } from "svelte";
2
+ import { KanbanColumnBottom, KanbanColumnTop, rKanban_definition } from "./Kanban";
3
+ import { parseWidthDirective, clearActiveItem, getPrev, getNext, remove, insertAt, insertAfter, swapElements, getActive } from "../../utils";
4
+ import { contextItemsStore, contextTypesStore, data_tick_store } from "../../stores";
5
5
  import Column from "./internal/kanban.column.svelte";
6
+ import { informModification, pushChanges } from "../../updates";
6
7
  export let title = "";
7
- export let self = void 0;
8
- export let context = "";
9
- export let typename = "";
10
8
  export let c = "";
11
- export let key = "";
9
+ export const CLEAR_SELECTION = 0;
10
+ export const KEEP_SELECTION = -1;
11
+ export const SELECT_PREVIOUS = -2;
12
+ export const SELECT_NEXT = -3;
13
+ export const KEEP_OR_SELECT_NEXT = -4;
12
14
  let user_class = $$props.class ?? "";
13
15
  let definition = new rKanban_definition();
14
16
  setContext("rKanban-definition", definition);
15
17
  setContext("rIs-table-component", true);
16
- let item = null;
17
- let ctx = context ? context : getContext("ctx");
18
18
  let cs = c ? parseWidthDirective(c) : "w-full min-w-full";
19
19
  clearActiveItem("props");
20
- let last_tick = -1;
21
20
  $:
22
- setup($data_tick_store, $contextItemsStore);
21
+ setup();
23
22
  function setup(...args) {
24
- last_tick = $data_tick_store;
25
- if (self && ctx)
26
- $contextItemsStore[ctx] = self;
27
- if (!typename)
28
- typename = $contextTypesStore[ctx];
29
23
  }
30
- export function refresh() {
31
- setup();
24
+ let renderToken = 0;
25
+ export async function rerender(selectColumnIdx = -1, selectCardId = -1) {
26
+ definition.clear();
27
+ renderToken += 1;
28
+ await tick();
29
+ if (selectColumnIdx >= 0) {
30
+ if (selectCardId >= 0) {
31
+ columns[selectColumnIdx].activateByItemId(selectCardId);
32
+ } else {
33
+ columns[selectColumnIdx].activate();
34
+ }
35
+ }
32
36
  }
33
- export function updateSelf(_self) {
34
- self = _self;
35
- setup();
37
+ export async function reload(data, selectElement = KEEP_SELECTION) {
38
+ let currentSelectedItem = getActive("props");
39
+ let selectElementId = 0;
40
+ let altSelectElementId = 0;
41
+ let selectedColumnIdx = -1;
42
+ const oa = definition.orderAttrib;
43
+ const sa = definition.stateAttrib;
44
+ let allItems = definition.getItems();
45
+ switch (selectElement) {
46
+ case CLEAR_SELECTION:
47
+ selectElementId = 0;
48
+ break;
49
+ case KEEP_SELECTION:
50
+ selectElementId = currentSelectedItem.Id ?? 0;
51
+ selectedColumnIdx = definition.columns.findIndex((c2) => c2.state == currentSelectedItem[sa]);
52
+ break;
53
+ case SELECT_PREVIOUS:
54
+ if (currentSelectedItem) {
55
+ const currentItemState = currentSelectedItem[sa];
56
+ selectedColumnIdx = definition.columns.findIndex((c2) => c2.state == currentItemState);
57
+ const columnItems = allItems.filter((e) => e[sa] == currentItemState);
58
+ const columnSelected = columnItems.find((e) => e.Id == currentSelectedItem.Id);
59
+ const prevSelected = getPrev(columnItems, columnSelected);
60
+ if (prevSelected)
61
+ selectElementId = prevSelected.Id;
62
+ }
63
+ break;
64
+ case SELECT_NEXT:
65
+ if (currentSelectedItem) {
66
+ const currentItemState = currentSelectedItem[sa];
67
+ selectedColumnIdx = definition.columns.findIndex((c2) => c2.state == currentItemState);
68
+ const columnItems = allItems.filter((e) => e[sa] == currentItemState);
69
+ const columnSelected = columnItems.find((e) => e.Id == currentSelectedItem.Id);
70
+ const nextSelected = getNext(columnItems, columnSelected);
71
+ if (nextSelected)
72
+ selectElementId = nextSelected.Id;
73
+ }
74
+ break;
75
+ case KEEP_OR_SELECT_NEXT:
76
+ {
77
+ selectElementId = currentSelectedItem.Id ?? 0;
78
+ if (currentSelectedItem) {
79
+ const currentItemState = currentSelectedItem[sa];
80
+ selectedColumnIdx = definition.columns.findIndex((c2) => c2.state == currentItemState);
81
+ const columnItems = allItems.filter((e) => e[sa] == currentItemState);
82
+ const columnSelected = columnItems.find((e) => e.Id == currentSelectedItem.Id);
83
+ const nextSelected = getNext(columnItems, columnSelected);
84
+ if (nextSelected)
85
+ altSelectElementId = nextSelected.Id;
86
+ }
87
+ }
88
+ break;
89
+ default:
90
+ if (typeof selectElement === "object" && !Array.isArray(selectElement) && selectElement !== null)
91
+ selectElementId = selectElement.Id;
92
+ else
93
+ selectElementId = selectElement;
94
+ }
95
+ if (Array.isArray(data))
96
+ definition.objects = data;
97
+ else
98
+ definition.self = data;
99
+ definition.items = null;
100
+ columns.forEach((c2) => c2.reload());
101
+ await tick();
102
+ allItems = definition.getItems();
103
+ if (selectElementId > 0) {
104
+ if (selectedColumnIdx < 0) {
105
+ let selectedElement = allItems.find((e) => e.Id == selectElementId);
106
+ if (selectedElement) {
107
+ selectedColumnIdx = getColumnIdx(selectedElement);
108
+ columns[selectedColumnIdx].activateByItemId(selectElementId);
109
+ }
110
+ } else {
111
+ const columnState = definition.columns[selectedColumnIdx].state;
112
+ const columnItems = allItems.filter((e) => e[sa] == columnState);
113
+ let selectedElement = allItems.find((e) => e.Id == selectElementId);
114
+ if (selectedElement == void 0) {
115
+ if (altSelectElementId > 0) {
116
+ selectedElement = columnItems.find((e) => e.Id == altSelectElementId);
117
+ if (selectedElement)
118
+ columns[selectedColumnIdx].activateByItemId(altSelectElementId);
119
+ }
120
+ } else
121
+ columns[selectedColumnIdx].activateByItemId(selectElementId);
122
+ }
123
+ }
36
124
  }
37
- export function getColumnIdx(item2) {
38
- for (let idx = 0; idx < columns.length; idx++) {
39
- let card = columns[idx].findCardByItem(item2);
125
+ export function getColumnIdx(item) {
126
+ return definition.columns.findIndex((c2) => c2.state == item[definition.stateAttrib]);
127
+ }
128
+ export function edit(item, field) {
129
+ const columnIdx = getColumnIdx(item);
130
+ if (columnIdx >= 0) {
131
+ const column = columns[columnIdx];
132
+ const card = column.findCardByItem(item);
40
133
  if (card)
41
- return idx;
134
+ card.editProperty(field);
42
135
  }
43
- return -1;
44
136
  }
45
137
  let columns = [];
46
138
  afterUpdate(() => {
47
139
  for (let i = 1; i < columns.length; i++) {
48
140
  let left_column = columns[i - 1];
49
141
  let right_column = columns[i];
50
- const left_column_height = left_column.getHeight();
51
- const right_column_height = right_column.getHeight();
142
+ const left_column_height = left_column?.getHeight();
143
+ const right_column_height = right_column?.getHeight();
52
144
  if (left_column_height > right_column_height) {
53
- left_column.setBorder(left_column.SET_RIGHT);
54
- right_column.setBorder(right_column.CLEAR_LEFT);
145
+ left_column?.setBorder(left_column.SET_RIGHT);
146
+ right_column?.setBorder(right_column.CLEAR_LEFT);
55
147
  } else {
56
- left_column.setBorder(left_column.CLEAR_RIGHT);
57
- right_column.setBorder(right_column.SET_LEFT);
148
+ left_column?.setBorder(left_column.CLEAR_RIGHT);
149
+ right_column?.setBorder(right_column.SET_LEFT);
58
150
  }
59
151
  }
60
152
  });
61
- export function showMoveOperationsForItem(item2) {
62
- columns.forEach((c2) => {
63
- const card = c2.findCardByItem(item2);
64
- if (card)
65
- card.showMoveOperations();
66
- });
153
+ export function moveUp(item) {
154
+ const columnIdx = getColumnIdx(item);
155
+ let allItems = definition.getItems();
156
+ const oa = definition.orderAttrib;
157
+ const sa = definition.stateAttrib;
158
+ const column = columns[columnIdx];
159
+ const columnState = definition.columns[columnIdx].state;
160
+ let prev = allItems.findLast((e) => e[sa] == columnState && e[oa] < item[oa]);
161
+ if (!prev)
162
+ return;
163
+ swapElements(allItems, item, prev);
164
+ [item[oa], prev[oa]] = [prev[oa], item[oa]];
165
+ informModification(item, oa);
166
+ informModification(prev, oa);
167
+ pushChanges();
168
+ column.reload();
67
169
  }
68
- export function scrollViewToCard(item2) {
69
- columns.forEach((c2) => {
70
- const card = c2.findCardByItem(item2);
71
- if (card)
72
- card._scrollViewToCard();
170
+ export function moveDown(item) {
171
+ const columnIdx = getColumnIdx(item);
172
+ let allItems = definition.getItems();
173
+ const oa = definition.orderAttrib;
174
+ const sa = definition.stateAttrib;
175
+ const column = columns[columnIdx];
176
+ const columnState = definition.columns[columnIdx].state;
177
+ let next = allItems.find((e) => e[sa] == columnState && e[oa] > item[oa]);
178
+ if (!next)
179
+ return;
180
+ swapElements(allItems, item, next);
181
+ [item[oa], next[oa]] = [next[oa], item[oa]];
182
+ informModification(item, oa);
183
+ informModification(next, oa);
184
+ pushChanges();
185
+ column.reload();
186
+ }
187
+ const ORDER_STEP = 64;
188
+ const MIN_ORDER = 0;
189
+ function reorderElements(items, from = null) {
190
+ const oa = definition.orderAttrib;
191
+ let fromIdx;
192
+ let fromOrder;
193
+ if (from) {
194
+ fromOrder = from[oa];
195
+ fromIdx = items.findIndex((e) => e == from);
196
+ } else {
197
+ fromOrder = MIN_ORDER;
198
+ fromIdx = 0;
199
+ }
200
+ let order = fromOrder;
201
+ for (let i = fromIdx; i < items.length; i++) {
202
+ let el = items[i];
203
+ el[oa] = order;
204
+ informModification(el, oa);
205
+ order += ORDER_STEP;
206
+ }
207
+ pushChanges();
208
+ }
209
+ export function replace(item, toColumnIdx, afterElement) {
210
+ const fromColumnIdx = getColumnIdx(item);
211
+ let allItems = definition.getItems();
212
+ const oa = definition.orderAttrib;
213
+ const sa = definition.stateAttrib;
214
+ const toColumnState = definition.columns[toColumnIdx].state;
215
+ const toListTop = allItems.find((e) => e[sa] == toColumnState);
216
+ const toListBottom = allItems.findLast((e) => e[sa] == toColumnState);
217
+ const fromColumn = columns[fromColumnIdx];
218
+ const toColumn = columns[toColumnIdx];
219
+ switch (afterElement) {
220
+ case KanbanColumnTop:
221
+ if (!toListTop || toListTop[oa] > item[oa]) {
222
+ item[sa] = toColumnState;
223
+ informModification(item, sa);
224
+ } else {
225
+ const prevItem = getPrev(allItems, toListTop);
226
+ if (!prevItem) {
227
+ item[sa] = toColumnState;
228
+ item[oa] = toListTop[oa] - ORDER_STEP;
229
+ informModification(item, sa);
230
+ informModification(item, oa);
231
+ remove(allItems, item);
232
+ insertAt(allItems, 0, item);
233
+ } else {
234
+ let prevOrder = prevItem[oa];
235
+ let nextOrder = toListTop[oa];
236
+ let orderSpace = nextOrder - prevOrder;
237
+ if (orderSpace < 2) {
238
+ reorderElements(allItems, prevItem);
239
+ prevOrder = prevItem[oa];
240
+ nextOrder = toListTop[oa];
241
+ orderSpace = nextOrder - prevOrder;
242
+ }
243
+ item[sa] = toColumnState;
244
+ item[oa] = prevOrder + Math.floor(orderSpace / 2);
245
+ informModification(item, sa);
246
+ informModification(item, oa);
247
+ remove(allItems, item);
248
+ insertAfter(allItems, prevItem, item);
249
+ }
250
+ }
251
+ pushChanges();
252
+ fromColumn.reload();
253
+ toColumn.reload();
254
+ return;
255
+ case KanbanColumnBottom:
256
+ default:
257
+ if (!toListBottom || item[oa] > toListBottom[oa]) {
258
+ item[sa] = toColumnState;
259
+ informModification(item, sa);
260
+ } else {
261
+ const nextItem = getNext(allItems, toListBottom);
262
+ if (!nextItem) {
263
+ item[sa] = toColumnState;
264
+ item[oa] = toListBottom[oa] + ORDER_STEP;
265
+ informModification(item, sa);
266
+ informModification(item, oa);
267
+ remove(allItems, item);
268
+ insertAfter(allItems, toListBottom, item);
269
+ } else {
270
+ let nextOrder = nextItem[oa];
271
+ let prevOrder = toListBottom[oa];
272
+ let orderSpace = nextOrder - prevOrder;
273
+ if (orderSpace < 2) {
274
+ reorderElements(allItems, toListBottom);
275
+ prevOrder = toListBottom[oa];
276
+ nextOrder = nextItem[oa];
277
+ orderSpace = nextOrder - prevOrder;
278
+ }
279
+ item[sa] = toColumnState;
280
+ item[oa] = prevOrder + Math.floor(orderSpace / 2);
281
+ informModification(item, sa);
282
+ informModification(item, oa);
283
+ remove(allItems, item);
284
+ insertAfter(allItems, toListBottom, item);
285
+ }
286
+ }
287
+ pushChanges();
288
+ fromColumn.reload();
289
+ toColumn.reload();
290
+ return;
291
+ }
292
+ }
293
+ async function onInsert(columnIdx, title2, afterId) {
294
+ const columnState = definition.columns[columnIdx].state;
295
+ const oa = definition.orderAttrib;
296
+ const sa = definition.stateAttrib;
297
+ const allItems = definition.getItems();
298
+ const columnTop = allItems.find((e) => e[sa] == columnState);
299
+ const columnBottom = allItems.findLast((e) => e[sa] == columnState);
300
+ let newElement = {
301
+ [definition.titleAttrib]: title2,
302
+ [sa]: columnState
303
+ };
304
+ if (afterId == KanbanColumnTop) {
305
+ if (!columnTop) {
306
+ let maxOrder = 0;
307
+ if (allItems.length > 0) {
308
+ const lastItem = allItems[allItems.length - 1];
309
+ maxOrder = lastItem[oa];
310
+ }
311
+ newElement[oa] = maxOrder + ORDER_STEP;
312
+ } else {
313
+ const prevItem = getPrev(allItems, columnTop);
314
+ if (prevItem) {
315
+ let prevOrder = prevItem[oa];
316
+ let nextOrder = columnTop[oa];
317
+ let orderSpace = nextOrder - prevOrder;
318
+ if (orderSpace < 2) {
319
+ reorderElements(allItems, prevItem);
320
+ prevOrder = prevItem[oa];
321
+ nextOrder = columnTop[oa];
322
+ orderSpace = nextOrder - prevOrder;
323
+ }
324
+ const newOrder = prevOrder + Math.floor(orderSpace / 2);
325
+ newElement[oa] = newOrder;
326
+ } else {
327
+ newElement[oa] = columnTop[oa] - ORDER_STEP;
328
+ }
329
+ }
330
+ } else if (afterId == KanbanColumnBottom) {
331
+ if (!columnBottom) {
332
+ let maxOrder = 0;
333
+ if (allItems.length > 0) {
334
+ const lastItem = allItems[allItems.length - 1];
335
+ maxOrder = lastItem[oa];
336
+ }
337
+ newElement[oa] = maxOrder + ORDER_STEP;
338
+ } else {
339
+ const nextItem = getNext(allItems, columnBottom);
340
+ if (nextItem) {
341
+ let nextOrder = nextItem[oa];
342
+ let prevOrder = columnBottom[oa];
343
+ let orderSpace = nextOrder - prevOrder;
344
+ if (orderSpace < 2) {
345
+ reorderElements(allItems, columnBottom);
346
+ nextOrder = nextItem[oa];
347
+ prevOrder = columnBottom[oa];
348
+ orderSpace = nextOrder - prevOrder;
349
+ }
350
+ const newOrder = prevOrder + Math.floor(orderSpace / 2);
351
+ newElement[oa] = newOrder;
352
+ } else {
353
+ newElement[oa] = columnBottom[oa] + ORDER_STEP;
354
+ }
355
+ }
356
+ } else {
357
+ const prevItem = allItems.find((e) => e.Id == afterId);
358
+ if (!prevItem) {
359
+ let maxOrder = 0;
360
+ if (allItems.length > 0) {
361
+ const lastItem = allItems[allItems.length - 1];
362
+ maxOrder = lastItem[oa];
363
+ }
364
+ newElement[oa] = maxOrder + ORDER_STEP;
365
+ } else {
366
+ const nextItem = getNext(allItems, prevItem);
367
+ if (nextItem) {
368
+ let nextOrder = nextItem[oa];
369
+ let prevOrder = prevItem[oa];
370
+ let orderSpace = nextOrder - prevOrder;
371
+ if (orderSpace < 2) {
372
+ reorderElements(allItems, prevItem);
373
+ nextOrder = nextItem[oa];
374
+ prevOrder = prevItem[oa];
375
+ orderSpace = nextOrder - prevOrder;
376
+ }
377
+ const newOrder = prevOrder + Math.floor(orderSpace / 2);
378
+ newElement[oa] = newOrder;
379
+ } else {
380
+ newElement[oa] = prevItem[oa] + ORDER_STEP;
381
+ }
382
+ }
383
+ }
384
+ if (definition.onAdd)
385
+ await definition.onAdd(newElement);
386
+ }
387
+ export function activateColumn(columnIdx) {
388
+ columns[columnIdx].activate();
389
+ }
390
+ export function editColumnName(columnIdx, onFinish = void 0) {
391
+ columns[columnIdx].editName(onFinish);
392
+ }
393
+ export function moveCardsTo(items, toColumnIdx) {
394
+ items.forEach(
395
+ (item) => replace(item, toColumnIdx, KanbanColumnBottom)
396
+ );
397
+ }
398
+ export function setCardsState(items, state) {
399
+ const sa = definition.stateAttrib;
400
+ items.forEach((item) => {
401
+ item[sa] = state;
402
+ informModification(item, sa);
73
403
  });
404
+ pushChanges();
405
+ }
406
+ export function add(item) {
407
+ const fromColumnIdx = getColumnIdx(item);
408
+ columns[fromColumnIdx].add(item);
74
409
  }
75
410
  </script>
76
411
 
412
+ {#key renderToken}
77
413
  <slot/> <!-- Launch definition settings -->
78
414
 
415
+ {#if title}
416
+ <p class="hidden sm:block mt-3 ml-3 pb-5 text-lg text-left">{title}</p>
417
+ <!--hr class="hidden sm:block w-full"-->
418
+ {/if}
79
419
 
80
- <section class="h-full mt-5 flex flex-row no-wrap sm:justify-center overflow-x-auto {user_class}">
420
+ <section class="h-full mt-5 flex flex-row no-wrap sm:justify-center
421
+ overflow-x-auto snap-x snap-mandatory sm:snap-none
422
+ {user_class}">
81
423
  {#each definition.columns as column, idx (column.id)}
82
- <Column title={column.title}
83
- width={column.width}
84
- self={column.self}
85
- a={column.a}
86
- objects={column.objects}
87
- context={column.context}
88
- key={key}
89
- currentColumnIdx={idx}
90
- {showMoveOperationsForItem}
91
- {scrollViewToCard}
424
+ <Column currentColumnIdx={idx}
425
+ {onInsert}
92
426
  bind:this={columns[idx]}>
93
427
 
94
428
 
@@ -107,6 +441,7 @@ export function scrollViewToCard(item2) {
107
441
  </Column>
108
442
  {/each}
109
443
  </section>
444
+ {/key}
110
445
 
111
446
  <style>
112
447
  .grid-1
@@ -3,16 +3,24 @@ declare const __propDef: {
3
3
  props: {
4
4
  [x: string]: any;
5
5
  title?: string | undefined;
6
- self?: object | undefined;
7
- context?: string | undefined;
8
- typename?: string | undefined;
9
6
  c?: string | undefined;
10
- key?: string | undefined;
11
- refresh?: (() => void) | undefined;
12
- updateSelf?: ((_self: object) => void) | undefined;
7
+ CLEAR_SELECTION?: 0 | undefined;
8
+ KEEP_SELECTION?: -1 | undefined;
9
+ SELECT_PREVIOUS?: -2 | undefined;
10
+ SELECT_NEXT?: -3 | undefined;
11
+ KEEP_OR_SELECT_NEXT?: -4 | undefined;
12
+ rerender?: ((selectColumnIdx?: number, selectCardId?: number) => Promise<void>) | undefined;
13
+ reload?: ((data: object | object[], selectElement?: number) => Promise<void>) | undefined;
13
14
  getColumnIdx?: ((item: any) => number) | undefined;
14
- showMoveOperationsForItem?: ((item: any) => void) | undefined;
15
- scrollViewToCard?: ((item: any) => void) | undefined;
15
+ edit?: ((item: object, field: string) => void) | undefined;
16
+ moveUp?: ((item: object) => void) | undefined;
17
+ moveDown?: ((item: object) => void) | undefined;
18
+ replace?: ((item: any, toColumnIdx: any, afterElement: any) => void) | undefined;
19
+ activateColumn?: ((columnIdx: number) => void) | undefined;
20
+ editColumnName?: ((columnIdx: number, onFinish?: Function | undefined) => void) | undefined;
21
+ moveCardsTo?: ((items: object[], toColumnIdx: number) => void) | undefined;
22
+ setCardsState?: ((items: object[], state: number) => void) | undefined;
23
+ add?: ((item: object) => void) | undefined;
16
24
  };
17
25
  events: {
18
26
  [evt: string]: CustomEvent<any>;
@@ -34,10 +42,22 @@ export type KanbanProps = typeof __propDef.props;
34
42
  export type KanbanEvents = typeof __propDef.events;
35
43
  export type KanbanSlots = typeof __propDef.slots;
36
44
  export default class Kanban extends SvelteComponentTyped<KanbanProps, KanbanEvents, KanbanSlots> {
37
- get refresh(): () => void;
38
- get updateSelf(): (_self: object) => void;
45
+ get CLEAR_SELECTION(): 0;
46
+ get KEEP_SELECTION(): -1;
47
+ get SELECT_PREVIOUS(): -2;
48
+ get SELECT_NEXT(): -3;
49
+ get KEEP_OR_SELECT_NEXT(): -4;
50
+ get rerender(): (selectColumnIdx?: number, selectCardId?: number) => Promise<void>;
51
+ get reload(): (data: object | object[], selectElement?: number) => Promise<void>;
39
52
  get getColumnIdx(): (item: any) => number;
40
- get showMoveOperationsForItem(): (item: any) => void;
41
- get scrollViewToCard(): (item: any) => void;
53
+ get edit(): (item: object, field: string) => void;
54
+ get moveUp(): (item: object) => void;
55
+ get moveDown(): (item: object) => void;
56
+ get replace(): (item: any, toColumnIdx: any, afterElement: any) => void;
57
+ get activateColumn(): (columnIdx: number) => void;
58
+ get editColumnName(): (columnIdx: number, onFinish?: Function | undefined) => void;
59
+ get moveCardsTo(): (items: object[], toColumnIdx: number) => void;
60
+ get setCardsState(): (items: object[], state: number) => void;
61
+ get add(): (item: object) => void;
42
62
  }
43
63
  export {};
@@ -0,0 +1,34 @@
1
+ <script>import { getContext } from "svelte";
2
+ import { KanbanCardTop, KanbanCardMiddle, KanbanCardBottom } from "./Kanban";
3
+ import { rList_property_tags } from "../list/List";
4
+ export let name = "";
5
+ export let a = "";
6
+ export let allTags = "";
7
+ export let onCreate = void 0;
8
+ export let onSelect = void 0;
9
+ export let top = false;
10
+ export let middle = true;
11
+ export let bottom = false;
12
+ let definition = getContext("rKanban-definition");
13
+ let tagsProperty = new rList_property_tags();
14
+ if (!a && name) {
15
+ tagsProperty.a = name;
16
+ tagsProperty.name = name;
17
+ } else if (!name && a) {
18
+ tagsProperty.a = a;
19
+ tagsProperty.name = a;
20
+ } else {
21
+ tagsProperty.a = a;
22
+ tagsProperty.name = name;
23
+ }
24
+ tagsProperty.onSelect = onSelect;
25
+ tagsProperty.onCreate = onCreate;
26
+ tagsProperty.allTags = allTags;
27
+ if (top)
28
+ tagsProperty.position = KanbanCardTop;
29
+ else if (bottom)
30
+ tagsProperty.position = KanbanCardBottom;
31
+ else
32
+ tagsProperty.position = KanbanCardMiddle;
33
+ definition.properties.push(tagsProperty);
34
+ </script>
@@ -0,0 +1,23 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ name?: string | undefined;
5
+ a?: string | undefined;
6
+ allTags?: string | undefined;
7
+ onCreate?: Function | undefined;
8
+ onSelect?: Function | undefined;
9
+ top?: boolean | undefined;
10
+ middle?: boolean | undefined;
11
+ bottom?: boolean | undefined;
12
+ };
13
+ events: {
14
+ [evt: string]: CustomEvent<any>;
15
+ };
16
+ slots: {};
17
+ };
18
+ export type KanbanProps = typeof __propDef.props;
19
+ export type KanbanEvents = typeof __propDef.events;
20
+ export type KanbanSlots = typeof __propDef.slots;
21
+ export default class Kanban extends SvelteComponentTyped<KanbanProps, KanbanEvents, KanbanSlots> {
22
+ }
23
+ export {};
@@ -1,8 +1,10 @@
1
1
  <script>import { getContext } from "svelte";
2
2
  export let a;
3
3
  export let onChange = void 0;
4
+ export let readOnly = false;
4
5
  let definition = getContext("rKanban-definition");
5
6
  definition.titleAttrib = a;
6
7
  definition.titleOnChange = onChange;
8
+ definition.titleReadOnly = readOnly;
7
9
  </script>
8
10
 
@@ -3,6 +3,7 @@ declare const __propDef: {
3
3
  props: {
4
4
  a: string;
5
5
  onChange?: Function | undefined;
6
+ readOnly?: boolean | undefined;
6
7
  };
7
8
  events: {
8
9
  [evt: string]: CustomEvent<any>;
@@ -4,7 +4,8 @@ export declare enum rList_property_type {
4
4
  Text = 1,
5
5
  Date = 2,
6
6
  Combo = 3,
7
- Static = 4
7
+ Static = 4,
8
+ Tags = 5
8
9
  }
9
10
  export declare class rList_property {
10
11
  constructor(type: rList_property_type);
@@ -12,12 +13,18 @@ export declare class rList_property {
12
13
  name: string;
13
14
  a: string;
14
15
  onSelect: Function | undefined;
16
+ position: number | string | undefined;
15
17
  }
16
18
  export declare class rList_property_combo extends rList_property {
17
19
  constructor();
18
20
  association: boolean;
19
21
  combo_definition: rCombo_definition;
20
22
  }
23
+ export declare class rList_property_tags extends rList_property {
24
+ constructor();
25
+ onCreate: Function | undefined;
26
+ allTags: string;
27
+ }
21
28
  export declare class rList_definition {
22
29
  title: string;
23
30
  title_editable: boolean;
@@ -6,6 +6,7 @@ export var rList_property_type;
6
6
  rList_property_type[rList_property_type["Date"] = 2] = "Date";
7
7
  rList_property_type[rList_property_type["Combo"] = 3] = "Combo";
8
8
  rList_property_type[rList_property_type["Static"] = 4] = "Static";
9
+ rList_property_type[rList_property_type["Tags"] = 5] = "Tags";
9
10
  })(rList_property_type || (rList_property_type = {}));
10
11
  export class rList_property {
11
12
  constructor(type) {
@@ -15,6 +16,7 @@ export class rList_property {
15
16
  name = '';
16
17
  a = '';
17
18
  onSelect = undefined;
19
+ position = undefined;
18
20
  }
19
21
  export class rList_property_combo extends rList_property {
20
22
  constructor() {
@@ -24,6 +26,13 @@ export class rList_property_combo extends rList_property {
24
26
  association = false;
25
27
  combo_definition;
26
28
  }
29
+ export class rList_property_tags extends rList_property {
30
+ constructor() {
31
+ super(rList_property_type.Tags);
32
+ }
33
+ onCreate = undefined;
34
+ allTags = '';
35
+ }
27
36
  export class rList_definition {
28
37
  title = '';
29
38
  title_editable = false;