@humandialog/forms.svelte 1.3.16 → 1.3.17
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/components/Floating_container.svelte +1 -1
- package/components/list/internal/list.element.svelte +27 -14
- package/components/list/internal/list.element.svelte.d.ts +1 -0
- package/components/list/list.svelte +17 -17
- package/components/sidebar/sidebar.item.svelte +17 -4
- package/desk.svelte +4 -1
- package/package.json +1 -1
|
@@ -150,7 +150,7 @@ function calculatePosition(x2, y2, around, visible2, fresh) {
|
|
|
150
150
|
</script>
|
|
151
151
|
|
|
152
152
|
<div id="__hd_svelte_floating_container"
|
|
153
|
-
class="p-2 bg-stone-100 dark:bg-stone-800 rounded-lg shadow
|
|
153
|
+
class="p-2 bg-stone-100 dark:bg-stone-800 rounded-lg shadow-md shadow-stone-500 dark:shadow-black z-30 fixed "
|
|
154
154
|
style={cssPosition}
|
|
155
155
|
bind:this={rootElement}>
|
|
156
156
|
<svelte:component this={toolbar} {...props} bind:this={internalElement} />
|
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
selectable,
|
|
6
6
|
activateItem,
|
|
7
7
|
isActive,
|
|
8
|
+
getActive,
|
|
8
9
|
editable,
|
|
9
10
|
startEditing
|
|
10
11
|
} from "../../../utils";
|
|
@@ -23,6 +24,7 @@ export let summary = "";
|
|
|
23
24
|
export let typename = void 0;
|
|
24
25
|
export let toolbarOperations = void 0;
|
|
25
26
|
export let contextMenu = void 0;
|
|
27
|
+
export let key = "";
|
|
26
28
|
let definition = getContext("rList-definition");
|
|
27
29
|
let placeholder = "";
|
|
28
30
|
let props_sm;
|
|
@@ -45,14 +47,6 @@ if (!typename) {
|
|
|
45
47
|
typename = s[1];
|
|
46
48
|
}
|
|
47
49
|
}
|
|
48
|
-
let item_key = "";
|
|
49
|
-
let keys = Object.keys(item);
|
|
50
|
-
if (keys.includes("$ref"))
|
|
51
|
-
item_key = "$ref";
|
|
52
|
-
else if (keys.includes("Id"))
|
|
53
|
-
item_key = "Id";
|
|
54
|
-
else if (keys.length > 0)
|
|
55
|
-
item_key = keys[0];
|
|
56
50
|
if (!title)
|
|
57
51
|
title = definition.title;
|
|
58
52
|
if (!summary)
|
|
@@ -74,11 +68,30 @@ function calc_horz_division() {
|
|
|
74
68
|
}
|
|
75
69
|
}
|
|
76
70
|
function calculate_active(...args) {
|
|
77
|
-
|
|
71
|
+
const activeItem = getActive("props");
|
|
72
|
+
if (!activeItem)
|
|
73
|
+
return false;
|
|
74
|
+
const activeKey = getItemKey(activeItem);
|
|
75
|
+
const itemKey = getItemKey(item);
|
|
76
|
+
if (activeKey == itemKey) {
|
|
77
|
+
console.log("active: ", itemKey);
|
|
78
|
+
return true;
|
|
79
|
+
} else
|
|
80
|
+
return false;
|
|
78
81
|
}
|
|
79
82
|
function selected(...args) {
|
|
80
83
|
return isSelected(item);
|
|
81
84
|
}
|
|
85
|
+
function getItemKey(item2) {
|
|
86
|
+
if (key)
|
|
87
|
+
return item2[key];
|
|
88
|
+
else if (item2.$ref)
|
|
89
|
+
return item2.$ref;
|
|
90
|
+
else if (item2.Id)
|
|
91
|
+
return item2.Id;
|
|
92
|
+
else
|
|
93
|
+
return 0;
|
|
94
|
+
}
|
|
82
95
|
async function change_name(text) {
|
|
83
96
|
if (definition.on_title_changed) {
|
|
84
97
|
definition.on_title_changed(item, text, title);
|
|
@@ -186,7 +199,7 @@ export function editProperty(field) {
|
|
|
186
199
|
}
|
|
187
200
|
}
|
|
188
201
|
async function force_editing(field) {
|
|
189
|
-
let element_id = `__hd_list_ctrl_${item
|
|
202
|
+
let element_id = `__hd_list_ctrl_${getItemKey(item)}_${field}`;
|
|
190
203
|
let element_node = document.getElementById(element_id);
|
|
191
204
|
if (!element_node) {
|
|
192
205
|
placeholder = field;
|
|
@@ -264,7 +277,7 @@ export function scrollToView() {
|
|
|
264
277
|
|
|
265
278
|
whitespace-nowrap overflow-clip w-full sm:flex-none sm:{name_w}
|
|
266
279
|
sm:hover:cursor-pointer underline"
|
|
267
|
-
id="__hd_list_ctrl_{item
|
|
280
|
+
id="__hd_list_ctrl_{getItemKey(item)}_Title"
|
|
268
281
|
on:click|stopPropagation={followDefinedHRef}
|
|
269
282
|
use:editable={{
|
|
270
283
|
action: (text) => {change_name(text)},
|
|
@@ -279,7 +292,7 @@ export function scrollToView() {
|
|
|
279
292
|
<p class=" text-base font-semibold
|
|
280
293
|
|
|
281
294
|
whitespace-nowrap overflow-clip w-full sm:flex-none sm:{name_w}"
|
|
282
|
-
id="__hd_list_ctrl_{item
|
|
295
|
+
id="__hd_list_ctrl_{getItemKey(item)}_Title"
|
|
283
296
|
use:editable={{
|
|
284
297
|
action: (text) => {change_name(text)},
|
|
285
298
|
active: true,
|
|
@@ -300,7 +313,7 @@ export function scrollToView() {
|
|
|
300
313
|
<p class=" text-base font-semibold
|
|
301
314
|
|
|
302
315
|
whitespace-nowrap overflow-clip w-full sm:flex-none sm:{name_w}"
|
|
303
|
-
id="__hd_list_ctrl_{item
|
|
316
|
+
id="__hd_list_ctrl_{getItemKey(item)}_Title">
|
|
304
317
|
{element_title}
|
|
305
318
|
</p>
|
|
306
319
|
{/if}
|
|
@@ -316,7 +329,7 @@ export function scrollToView() {
|
|
|
316
329
|
</section>
|
|
317
330
|
|
|
318
331
|
{#if summary && (item[summary] || placeholder=='Summary')}
|
|
319
|
-
{@const element_id = `__hd_list_ctrl_${item
|
|
332
|
+
{@const element_id = `__hd_list_ctrl_${getItemKey(item)}_Summary`}
|
|
320
333
|
{#key item[summary] }
|
|
321
334
|
{#if is_row_active}
|
|
322
335
|
<p id={element_id}
|
|
@@ -7,6 +7,7 @@ declare const __propDef: {
|
|
|
7
7
|
typename?: string | undefined;
|
|
8
8
|
toolbarOperations?: undefined;
|
|
9
9
|
contextMenu?: undefined;
|
|
10
|
+
key?: string | undefined;
|
|
10
11
|
activate?: (() => void) | undefined;
|
|
11
12
|
editProperty?: ((field: string) => void) | undefined;
|
|
12
13
|
scrollToView?: (() => void) | undefined;
|
|
@@ -79,42 +79,43 @@ export function rereder() {
|
|
|
79
79
|
}
|
|
80
80
|
export function reload(data, selectElement = KEEP_SELECTION) {
|
|
81
81
|
let currentSelectedItem = getActive("props");
|
|
82
|
-
let
|
|
83
|
-
let
|
|
82
|
+
let currentSelectedItemKey = currentSelectedItem ? getItemKey(currentSelectedItem) : null;
|
|
83
|
+
let selectElementId = null;
|
|
84
|
+
let altSelectElementId = null;
|
|
84
85
|
switch (selectElement) {
|
|
85
86
|
case CLEAR_SELECTION:
|
|
86
87
|
selectElementId = 0;
|
|
87
88
|
break;
|
|
88
89
|
case KEEP_SELECTION:
|
|
89
|
-
selectElementId =
|
|
90
|
+
selectElementId = currentSelectedItemKey;
|
|
90
91
|
break;
|
|
91
92
|
case SELECT_PREVIOUS:
|
|
92
93
|
if (currentSelectedItem) {
|
|
93
|
-
const selectedItemIdx = items?.findIndex((e) => e ==
|
|
94
|
+
const selectedItemIdx = items?.findIndex((e) => getItemKey(e) == currentSelectedItemKey);
|
|
94
95
|
if (selectedItemIdx != void 0 && selectedItemIdx > 0)
|
|
95
|
-
selectElementId = items[selectedItemIdx - 1]
|
|
96
|
+
selectElementId = getItemKey(items[selectedItemIdx - 1]) ?? null;
|
|
96
97
|
}
|
|
97
98
|
break;
|
|
98
99
|
case SELECT_NEXT:
|
|
99
100
|
if (currentSelectedItem) {
|
|
100
|
-
const selectedItemIdx = items?.findIndex((e) => e ==
|
|
101
|
+
const selectedItemIdx = items?.findIndex((e) => getItemKey(e) == currentSelectedItemKey);
|
|
101
102
|
if (selectedItemIdx != void 0 && selectedItemIdx >= 0 && selectedItemIdx < items.length - 1)
|
|
102
|
-
selectElementId = items[selectedItemIdx + 1]
|
|
103
|
+
selectElementId = getItemKey(items[selectedItemIdx + 1]) ?? null;
|
|
103
104
|
}
|
|
104
105
|
break;
|
|
105
106
|
case KEEP_OR_SELECT_NEXT:
|
|
106
107
|
{
|
|
107
108
|
if (currentSelectedItem) {
|
|
108
|
-
selectElementId =
|
|
109
|
-
const selectedItemIdx = items?.findIndex((e) => e ==
|
|
109
|
+
selectElementId = currentSelectedItemKey;
|
|
110
|
+
const selectedItemIdx = items?.findIndex((e) => getItemKey(e) == currentSelectedItemKey);
|
|
110
111
|
if (selectedItemIdx != void 0 && selectedItemIdx >= 0 && selectedItemIdx < items.length - 1)
|
|
111
|
-
altSelectElementId = items[selectedItemIdx + 1]
|
|
112
|
+
altSelectElementId = getItemKey(items[selectedItemIdx + 1]) ?? null;
|
|
112
113
|
}
|
|
113
114
|
}
|
|
114
115
|
break;
|
|
115
116
|
default:
|
|
116
117
|
if (typeof selectElement === "object" && !Array.isArray(selectElement) && selectElement !== null)
|
|
117
|
-
selectElementId = selectElement
|
|
118
|
+
selectElementId = getItemKey(selectElement);
|
|
118
119
|
else
|
|
119
120
|
selectElementId = selectElement;
|
|
120
121
|
}
|
|
@@ -123,19 +124,17 @@ export function reload(data, selectElement = KEEP_SELECTION) {
|
|
|
123
124
|
else
|
|
124
125
|
self = data;
|
|
125
126
|
rereder();
|
|
126
|
-
if (selectElementId
|
|
127
|
-
let itemToActivate = items?.find((e) => e
|
|
127
|
+
if (selectElementId != null) {
|
|
128
|
+
let itemToActivate = items?.find((e) => getItemKey(e) == selectElementId);
|
|
128
129
|
if (itemToActivate) {
|
|
129
130
|
activate_after_dom_update = itemToActivate;
|
|
130
|
-
} else if (altSelectElementId
|
|
131
|
-
itemToActivate = items?.find((e) => e
|
|
131
|
+
} else if (altSelectElementId != null) {
|
|
132
|
+
itemToActivate = items?.find((e) => getItemKey(e) == altSelectElementId);
|
|
132
133
|
if (itemToActivate) {
|
|
133
134
|
activate_after_dom_update = itemToActivate;
|
|
134
135
|
}
|
|
135
136
|
}
|
|
136
137
|
}
|
|
137
|
-
if (!activate_after_dom_update)
|
|
138
|
-
activateItem("props", null, []);
|
|
139
138
|
}
|
|
140
139
|
export async function moveUp(element) {
|
|
141
140
|
if (!orderAttrib)
|
|
@@ -295,6 +294,7 @@ async function insert(title2, summary, after) {
|
|
|
295
294
|
<List_element item={element}
|
|
296
295
|
{toolbarOperations}
|
|
297
296
|
{contextMenu}
|
|
297
|
+
{key}
|
|
298
298
|
bind:this={rows[i]}
|
|
299
299
|
>
|
|
300
300
|
|
|
@@ -11,7 +11,8 @@ import {
|
|
|
11
11
|
activateItem,
|
|
12
12
|
startEditing,
|
|
13
13
|
getActive,
|
|
14
|
-
isOnNavigationPage
|
|
14
|
+
isOnNavigationPage,
|
|
15
|
+
UI
|
|
15
16
|
} from "../../utils";
|
|
16
17
|
import { showMenu } from "../menu";
|
|
17
18
|
export let href;
|
|
@@ -71,7 +72,17 @@ function calculateIsRowActive(...args) {
|
|
|
71
72
|
if (!item)
|
|
72
73
|
return active;
|
|
73
74
|
const activeItem = getActive("props");
|
|
74
|
-
if (
|
|
75
|
+
if (item.$ref) {
|
|
76
|
+
if (activeItem) {
|
|
77
|
+
return item.$ref == activeItem.$ref;
|
|
78
|
+
} else
|
|
79
|
+
return false;
|
|
80
|
+
} else if (item.Id) {
|
|
81
|
+
if (activeItem) {
|
|
82
|
+
return item.Id == activeItem.Id;
|
|
83
|
+
} else
|
|
84
|
+
return false;
|
|
85
|
+
} else if (activeItem == item)
|
|
75
86
|
return true;
|
|
76
87
|
else
|
|
77
88
|
return false;
|
|
@@ -108,13 +119,15 @@ function on_link_clicked(e) {
|
|
|
108
119
|
e.preventDefault();
|
|
109
120
|
if (isOnPage) {
|
|
110
121
|
if (isRowActive) {
|
|
111
|
-
if (href2)
|
|
122
|
+
if (href2) {
|
|
112
123
|
push(href2);
|
|
124
|
+
}
|
|
113
125
|
}
|
|
114
126
|
} else {
|
|
115
127
|
auto_hide_sidebar();
|
|
116
|
-
if (href2)
|
|
128
|
+
if (href2) {
|
|
117
129
|
push(href2);
|
|
130
|
+
}
|
|
118
131
|
}
|
|
119
132
|
}
|
|
120
133
|
function on_contextmenu(e) {
|
package/desk.svelte
CHANGED
|
@@ -213,6 +213,8 @@
|
|
|
213
213
|
}
|
|
214
214
|
|
|
215
215
|
onMount( () => {
|
|
216
|
+
|
|
217
|
+
|
|
216
218
|
window.addEventListener('resize', on_resize)
|
|
217
219
|
|
|
218
220
|
const vp = window.visualViewport;
|
|
@@ -223,6 +225,7 @@
|
|
|
223
225
|
//document.addEventListener('focusout', onFocusOut)
|
|
224
226
|
|
|
225
227
|
return () => {
|
|
228
|
+
|
|
226
229
|
// document.removeEventListener('focusout', onFocusOut)
|
|
227
230
|
document.removeEventListener('selectionchange', onSelectionChanged)
|
|
228
231
|
vp?.removeEventListener('resize', onViewportResize)
|
|
@@ -429,7 +432,7 @@
|
|
|
429
432
|
z-0 overflow-x-hidden
|
|
430
433
|
{content_height} sm:overflow-y-auto"
|
|
431
434
|
>
|
|
432
|
-
<Configurable config={layout.mainContent} min_h_class="min-h-
|
|
435
|
+
<Configurable config={layout.mainContent} min_h_class="min-h-screen">
|
|
433
436
|
<div slot='alt'></div>
|
|
434
437
|
</Configurable>
|
|
435
438
|
</div>
|