@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.
@@ -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 z-30 fixed"
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
- return isActive("props", item);
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[item_key]}_${field}`;
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[item_key]}_Title"
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[item_key]}_Title"
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[item_key]}_Title">
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[item_key]}_Summary`}
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 selectElementId = 0;
83
- let altSelectElementId = 0;
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 = currentSelectedItem?.Id ?? 0;
90
+ selectElementId = currentSelectedItemKey;
90
91
  break;
91
92
  case SELECT_PREVIOUS:
92
93
  if (currentSelectedItem) {
93
- const selectedItemIdx = items?.findIndex((e) => e == currentSelectedItem);
94
+ const selectedItemIdx = items?.findIndex((e) => getItemKey(e) == currentSelectedItemKey);
94
95
  if (selectedItemIdx != void 0 && selectedItemIdx > 0)
95
- selectElementId = items[selectedItemIdx - 1].Id ?? 0;
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 == currentSelectedItem);
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].Id ?? 0;
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 = currentSelectedItem.Id ?? 0;
109
- const selectedItemIdx = items?.findIndex((e) => e == currentSelectedItem);
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].Id ?? 0;
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.Id;
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 > 0) {
127
- let itemToActivate = items?.find((e) => e.Id == selectElementId);
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 > 0) {
131
- itemToActivate = items?.find((e) => e.Id == altSelectElementId);
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 (activeItem == item)
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-full">
435
+ <Configurable config={layout.mainContent} min_h_class="min-h-screen">
433
436
  <div slot='alt'></div>
434
437
  </Configurable>
435
438
  </div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@humandialog/forms.svelte",
3
- "version": "1.3.16",
3
+ "version": "1.3.17",
4
4
  "description": "Basic Svelte UI components for Object Reef applications",
5
5
  "devDependencies": {
6
6
  "@playwright/test": "^1.28.1",