@humandialog/forms.svelte 0.4.44 → 0.5.1

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 (116) hide show
  1. package/components/Fab.svelte +60 -48
  2. package/components/Floating_container.svelte +5 -4
  3. package/components/Floating_container.svelte.d.ts +2 -2
  4. package/components/Grid.menu.svelte +13 -9
  5. package/components/Grid.menu.svelte.d.ts +2 -2
  6. package/components/button.svelte +4 -4
  7. package/components/checkbox.svelte +12 -10
  8. package/components/checkbox.svelte.d.ts +1 -0
  9. package/components/combo/combo.d.ts +1 -1
  10. package/components/combo/combo.js +1 -1
  11. package/components/combo/combo.source.svelte +2 -2
  12. package/components/combo/combo.source.svelte.d.ts +1 -1
  13. package/components/combo/combo.svelte +94 -62
  14. package/components/combo/combo.svelte.d.ts +7 -4
  15. package/components/contextmenu.svelte +20 -19
  16. package/components/contextmenu.svelte.d.ts +5 -5
  17. package/components/date.svelte +165 -25
  18. package/components/date.svelte.d.ts +3 -2
  19. package/components/delayed.spinner.svelte +2 -2
  20. package/components/document/internal/palette.row.svelte +3 -3
  21. package/components/document/internal/palette.svelte +2 -2
  22. package/components/document/internal/palette.svelte.d.ts +1 -1
  23. package/components/document/rich.edit.svelte +307 -35
  24. package/components/document/rich.edit.svelte.d.ts +9 -0
  25. package/components/edit.field.svelte +17 -15
  26. package/components/edit.field.svelte.d.ts +2 -1
  27. package/components/file.loader.svelte +6 -6
  28. package/components/file.loader.svelte.d.ts +10 -10
  29. package/components/icon.svelte +2 -2
  30. package/components/icon.svelte.d.ts +3 -3
  31. package/components/input.text.svelte +3 -3
  32. package/components/inputbox.ltop.svelte +19 -17
  33. package/components/inputbox.ltop.svelte.d.ts +4 -2
  34. package/components/kanban/Kanban.d.ts +23 -0
  35. package/components/kanban/Kanban.js +23 -0
  36. package/components/kanban/internal/kanban.card.svelte +158 -0
  37. package/components/kanban/internal/kanban.card.svelte.d.ts +35 -0
  38. package/components/kanban/internal/kanban.column.svelte +181 -0
  39. package/components/kanban/internal/kanban.column.svelte.d.ts +51 -0
  40. package/components/kanban/internal/kanban.inserter.svelte +24 -0
  41. package/components/kanban/internal/kanban.inserter.svelte.d.ts +18 -0
  42. package/components/kanban/internal/kanban.move.menu.svelte +146 -0
  43. package/components/kanban/internal/kanban.move.menu.svelte.d.ts +19 -0
  44. package/components/kanban/kanban.callbacks.svelte +15 -0
  45. package/components/kanban/kanban.callbacks.svelte.d.ts +21 -0
  46. package/components/kanban/kanban.column.svelte +20 -0
  47. package/components/kanban/kanban.column.svelte.d.ts +21 -0
  48. package/components/kanban/kanban.summary.svelte +5 -0
  49. package/components/kanban/kanban.summary.svelte.d.ts +16 -0
  50. package/components/kanban/kanban.svelte +156 -0
  51. package/components/kanban/kanban.svelte.d.ts +43 -0
  52. package/components/kanban/kanban.title.svelte +8 -0
  53. package/components/kanban/kanban.title.svelte.d.ts +17 -0
  54. package/components/list/List.d.ts +4 -2
  55. package/components/list/List.js +4 -2
  56. package/components/list/internal/list.element.props.svelte +134 -0
  57. package/components/list/internal/list.element.props.svelte.d.ts +21 -0
  58. package/components/list/internal/list.element.summary.svelte +40 -0
  59. package/components/list/internal/list.element.summary.svelte.d.ts +24 -0
  60. package/components/list/internal/list.element.svelte +100 -173
  61. package/components/list/internal/list.element.svelte.d.ts +4 -4
  62. package/components/list/internal/list.inserter.svelte +9 -6
  63. package/components/list/internal/list.inserter.svelte.d.ts +1 -1
  64. package/components/list/list.combo.svelte +2 -2
  65. package/components/list/list.combo.svelte.d.ts +1 -1
  66. package/components/list/list.date.svelte +3 -3
  67. package/components/list/list.date.svelte.d.ts +1 -1
  68. package/components/list/list.inserter.svelte +1 -1
  69. package/components/list/list.summary.svelte +2 -2
  70. package/components/list/list.summary.svelte.d.ts +1 -1
  71. package/components/list/list.svelte +175 -37
  72. package/components/list/list.svelte.d.ts +27 -10
  73. package/components/list/list.title.svelte +6 -2
  74. package/components/list/list.title.svelte.d.ts +3 -1
  75. package/components/menu.d.ts +4 -4
  76. package/components/menu.js +15 -13
  77. package/components/radio.svelte +12 -10
  78. package/components/radio.svelte.d.ts +1 -0
  79. package/components/sidebar/sidebar.group.svelte +1 -13
  80. package/components/sidebar/sidebar.group.svelte.d.ts +0 -4
  81. package/components/sidebar/sidebar.item.svelte +13 -13
  82. package/components/sidebar/sidebar.list.svelte +68 -0
  83. package/components/sidebar/sidebar.list.svelte.d.ts +33 -0
  84. package/components/sidebar/sidebar.svelte +1 -1
  85. package/components/simple.table.svelte +15 -15
  86. package/components/simple.table.svelte.d.ts +2 -2
  87. package/components/table/_template.table.svelte +17 -17
  88. package/components/table/_template.table.svelte.d.ts +2 -2
  89. package/components/table/table.svelte +31 -31
  90. package/components/table/table.svelte.d.ts +8 -8
  91. package/components/textarea.ltop.svelte +4 -4
  92. package/components/tile.title.svelte +6 -6
  93. package/desk.svelte +13 -13
  94. package/form.box.svelte +2 -2
  95. package/horizontal.toolbar.svelte +25 -16
  96. package/horizontal.toolbar.svelte.d.ts +2 -2
  97. package/index.d.ts +14 -5
  98. package/index.js +14 -5
  99. package/modal.svelte +17 -17
  100. package/modal.svelte.d.ts +4 -4
  101. package/operations.svelte +42 -27
  102. package/package.json +14 -1
  103. package/page.svelte +115 -124
  104. package/page.svelte.d.ts +4 -4
  105. package/stores.d.ts +9 -7
  106. package/stores.js +17 -9
  107. package/tenant.members.svelte +44 -44
  108. package/tenant.members.svelte.d.ts +10 -10
  109. package/tile.svelte +3 -3
  110. package/tiles.vertical.row.svelte +1 -1
  111. package/updates.d.ts +3 -3
  112. package/updates.js +35 -3
  113. package/utils.d.ts +22 -13
  114. package/utils.js +201 -51
  115. package/vertical.toolbar.svelte +22 -13
  116. package/vertical.toolbar.svelte.d.ts +2 -2
package/updates.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export function inform_modification(itm: any, field_name: any, type_name: any): void;
2
- export function inform_item(itm: any, type_name: any): void;
3
- export function push_changes(): void;
1
+ export function informModification(itm: any, field_name: any, type_name?: undefined): boolean;
2
+ export function informItem(itm: any, type_name?: undefined): boolean;
3
+ export function pushChanges(): void;
package/updates.js CHANGED
@@ -3,8 +3,23 @@ import {reef} from '@humandialog/auth.svelte/dist/index'
3
3
 
4
4
 
5
5
  const modified_item_store = writable(null);
6
- export function inform_modification(itm, field_name, type_name)
6
+ export function informModification(itm, field_name, type_name=undefined)
7
7
  {
8
+ if(type_name == undefined)
9
+ {
10
+ if(itm.$type)
11
+ type_name = itm.$type;
12
+ else if(itm.oclType)
13
+ type_name = itm.oclType;
14
+ else if(itm.$ref)
15
+ {
16
+ let segments = itm.$ref.split('/')
17
+ type_name = segments[1];
18
+ }
19
+ else
20
+ return false;
21
+ }
22
+
8
23
  let item_entry = {
9
24
  Id: [type_name] + itm.Id,
10
25
  type_name: type_name,
@@ -16,10 +31,26 @@ export function inform_modification(itm, field_name, type_name)
16
31
  };
17
32
 
18
33
  modified_item_store.set(item_entry);
34
+ return true;
19
35
  };
20
36
 
21
- export function inform_item(itm, type_name)
37
+ export function informItem(itm, type_name=undefined)
22
38
  {
39
+ if(type_name == undefined)
40
+ {
41
+ if(itm.$type)
42
+ type_name = itm.$type;
43
+ else if(itm.oclType)
44
+ type_name = itm.oclType;
45
+ else if(itm.$ref)
46
+ {
47
+ let segments = itm.$ref.split('/')
48
+ type_name = segments[1];
49
+ }
50
+ else
51
+ return false;
52
+ }
53
+
23
54
  let item_entry = {
24
55
  Id: [type_name] + itm.Id,
25
56
  type_name: type_name,
@@ -28,11 +59,12 @@ export function inform_item(itm, type_name)
28
59
  };
29
60
 
30
61
  modified_item_store.set(item_entry);
62
+ return true;
31
63
  };
32
64
 
33
65
  const update_request_ticket = writable(0);
34
66
  let last_update_ticket = 0;
35
- export function push_changes()
67
+ export function pushChanges()
36
68
  {
37
69
  update_request_ticket.update(n => n + 1);
38
70
  }
package/utils.d.ts CHANGED
@@ -1,20 +1,29 @@
1
- export function is_device_smaller_than(br: any): boolean;
2
- export function select_item(itm: any): void;
3
- export function activate_item(context_level: any, itm: any, operations?: null): void;
4
- export function clear_active_item(context_level: any): void;
5
- export function is_selected(itm: any): boolean;
6
- export function is_active(context_level: any, itm: any): boolean;
7
- export function get_active(context_level: any): any;
8
- export function editable(node: any, action: any): {
1
+ export function isDeviceSmallerThan(br: any): boolean;
2
+ export function selectItem(itm: any): void;
3
+ export function activateItem(context_level: any, itm: any, operations?: null): void;
4
+ export function clearActiveItem(context_level: any): void;
5
+ export function isSelected(itm: any): boolean;
6
+ export function isActive(context_level: any, itm: any): boolean;
7
+ export function getActive(context_level: any): any;
8
+ export function editable(node: any, params: any): {
9
9
  destroy(): void;
10
- };
11
- export function start_editing(element: any, finish_callback: any): void;
10
+ } | undefined;
11
+ export function startEditing(element: any, finish_callback: any): void;
12
12
  export function selectable(node: any, itm: any): {
13
13
  destroy(): void;
14
14
  };
15
- export function handle_select(e: any): void;
16
- export function parse_width_directive(c: any): string;
17
- export function should_be_comapact(): boolean;
15
+ export function handleSelect(e: any): void;
16
+ export function parseWidthDirective(c: any): string;
17
+ export function shouldBeComapact(): boolean;
18
+ export function insertAt(array: any, index: any, element: any): any;
19
+ export function insertAfter(array: any, after: any, element: any): any;
20
+ export function getPrev(array: any, element: any): any;
21
+ export function getNext(array: any, element: any): any;
22
+ export function getFirst(array: any): any;
23
+ export function getLast(array: any): any;
24
+ export function removeAt(array: any, index: any): any;
25
+ export function remove(array: any, element: any): any;
26
+ export function swapElements(array: any, e1: any, e2: any): any;
18
27
  export namespace icons {
19
28
  const symbols: null;
20
29
  }
package/utils.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { getContext, tick } from "svelte";
2
2
  import {get} from 'svelte/store'
3
- import { context_items_store, context_toolbar_operations, data_tick_store } from "./stores";
3
+ import { contextItemsStore, contextToolbarOperations, data_tick_store } from "./stores";
4
4
 
5
5
  export let icons = {symbols :null}
6
6
 
@@ -11,7 +11,7 @@ export const SCREEN_SIZES = {
11
11
  xl: 1280, //px @media (min-width: 1280px) { ... }
12
12
  }
13
13
 
14
- export function is_device_smaller_than(br)
14
+ export function isDeviceSmallerThan(br)
15
15
  {
16
16
  return window.innerWidth < SCREEN_SIZES[br]
17
17
  }
@@ -20,12 +20,12 @@ export function is_device_smaller_than(br)
20
20
  // just_changed_context: false
21
21
  //}
22
22
 
23
- export function select_item(itm)
23
+ export function selectItem(itm)
24
24
  {
25
- let data_context = get(context_items_store);
25
+ let data_context = get(contextItemsStore);
26
26
  data_context['sel'] = itm;
27
27
  data_context.focused = 'sel';
28
- context_items_store.set( {...data_context} )
28
+ contextItemsStore.set( {...data_context} )
29
29
 
30
30
  let ticket = get(data_tick_store)
31
31
  ticket++;
@@ -35,13 +35,13 @@ export function select_item(itm)
35
35
 
36
36
  }
37
37
 
38
- export function activate_item(context_level, itm, operations=null)
38
+ export function activateItem(context_level, itm, operations=null)
39
39
  {
40
- let data_context = get(context_items_store);
40
+ let data_context = get(contextItemsStore);
41
41
  data_context['sel'] = itm; //null;
42
42
  data_context[context_level] = itm;
43
43
  data_context.focused = context_level;
44
- context_items_store.set( {...data_context} )
44
+ contextItemsStore.set( {...data_context} )
45
45
 
46
46
  let ticket = get(data_tick_store)
47
47
  ticket++;
@@ -50,15 +50,15 @@ export function activate_item(context_level, itm, operations=null)
50
50
  //chnages.just_changed_context = true;
51
51
 
52
52
  if(operations && Array.isArray(operations))
53
- context_toolbar_operations.set( [...operations] )
53
+ contextToolbarOperations.set( [...operations] )
54
54
  }
55
55
 
56
- export function clear_active_item(context_level)
56
+ export function clearActiveItem(context_level)
57
57
  {
58
- let data_context = get(context_items_store);
58
+ let data_context = get(contextItemsStore);
59
59
  data_context[context_level] = null;
60
60
  data_context.focused = context_level;
61
- context_items_store.set( {...data_context} )
61
+ contextItemsStore.set( {...data_context} )
62
62
 
63
63
  let ticket = get(data_tick_store)
64
64
  ticket++;
@@ -66,12 +66,12 @@ export function clear_active_item(context_level)
66
66
 
67
67
  //chnages.just_changed_context = true;
68
68
 
69
- context_toolbar_operations.set( [] )
69
+ contextToolbarOperations.set( [] )
70
70
  }
71
71
 
72
- export function is_selected(itm)
72
+ export function isSelected(itm)
73
73
  {
74
- let data_context = get(context_items_store);
74
+ let data_context = get(contextItemsStore);
75
75
  if(!!data_context && !!data_context['sel'] && data_context['sel'] == itm)
76
76
  return true;
77
77
  else
@@ -79,70 +79,112 @@ export function is_selected(itm)
79
79
  }
80
80
 
81
81
 
82
- export function is_active(context_level, itm)
82
+ export function isActive(context_level, itm)
83
83
  {
84
- let data_context = get(context_items_store);
84
+ let data_context = get(contextItemsStore);
85
85
  if(data_context != undefined && data_context[context_level] != undefined && data_context[context_level] == itm)
86
86
  return true;
87
87
  else
88
88
  return false;
89
89
  }
90
90
 
91
- export function get_active(context_level)
91
+ export function getActive(context_level)
92
92
  {
93
- let data_context = get(context_items_store);
93
+ let data_context = get(contextItemsStore);
94
94
  if(data_context != undefined)
95
95
  return data_context[context_level]
96
96
  else
97
97
  return null;
98
98
  }
99
99
 
100
- export function editable(node, action)
100
+ export function editable(node, params)
101
101
  {
102
+ let action;
103
+ let active = false;
104
+ let onRemove = undefined;
105
+ if(params instanceof Object)
106
+ {
107
+ action = params.action ?? params;
108
+ active = params.active ?? false;
109
+ onRemove = params.remove ?? undefined
110
+ }
111
+ else
112
+ action = params;
113
+
114
+ let observer = null;
115
+ let has_changed = false;
116
+
102
117
  const org_text = node.textContent;
103
118
  const blur_listener = async (e) =>
104
119
  {
105
120
  let cancel = !node.textContent
121
+ if(observer)
122
+ observer.disconnect();
123
+
106
124
  await finish_editing(cancel, false);
107
125
  }
108
126
 
109
127
  const key_listener = async (e) =>
110
128
  {
129
+ //e.ctrlKey
111
130
  switch(e.key)
112
131
  {
113
132
  case 'Esc':
114
133
  case 'Escape':
115
- await finish_editing(true, false);
116
- e.stopPropagation();
117
- e.preventDefault();
134
+ if(!active)
135
+ {
136
+ e.stopPropagation();
137
+ e.preventDefault();
138
+
139
+ await finish_editing(true, false);
140
+ }
118
141
  break;
119
142
 
120
143
  case 'Enter':
121
- await finish_editing(false, true);
122
144
  e.stopPropagation();
123
145
  e.preventDefault();
146
+
147
+ await finish_editing(false, true);
124
148
  break;
125
- }
149
+
150
+ case 'Backspace':
151
+ if(onRemove && node.textContent.length == 0)
152
+ {
153
+ e.stopPropagation();
154
+ e.preventDefault();
155
+ //await finish_editing(false, false);
156
+ onRemove();
157
+ }
158
+ break;
159
+ }
126
160
  }
127
161
 
128
162
  const finish_editing = async (cancel, incremental) =>
129
163
  {
130
- node.removeEventListener("blur", blur_listener);
131
- node.removeEventListener("keydown", key_listener);
132
- node.contentEditable = "false"
133
-
134
- let sel = window.getSelection();
135
- sel.removeAllRanges();
164
+ if(!active)
165
+ {
166
+ node.removeEventListener("blur", blur_listener);
167
+ node.removeEventListener("keydown", key_listener);
168
+ node.contentEditable = "false"
169
+
170
+ let sel = window.getSelection();
171
+ sel.removeAllRanges();
172
+ }
136
173
 
137
- //console.log('cell_content', node.textContent)
138
-
139
174
  if(cancel)
140
175
  {
141
176
  node.innerHTML = org_text;
142
177
  }
143
178
  else if(action)
144
179
  {
145
- await action(node.textContent)
180
+ if(active)
181
+ {
182
+ if(has_changed)
183
+ await action(node.textContent)
184
+ }
185
+ else
186
+ await action(node.textContent)
187
+
146
188
  }
147
189
 
148
190
  const finish_event = new CustomEvent("finish", {
@@ -154,7 +196,9 @@ export function editable(node, action)
154
196
  });
155
197
 
156
198
  node.dispatchEvent(finish_event);
157
- node.removeEventListener("finish", (e) => {});
199
+
200
+ if(!active)
201
+ node.removeEventListener("finish", (e) => {});
158
202
  }
159
203
 
160
204
  const edit_listener = async (e) =>
@@ -162,7 +206,7 @@ export function editable(node, action)
162
206
  node.contentEditable = "true"
163
207
  node.addEventListener("blur", blur_listener);
164
208
  node.addEventListener("keydown", key_listener);
165
-
209
+
166
210
  node.focus();
167
211
 
168
212
  await tick();
@@ -172,6 +216,8 @@ export function editable(node, action)
172
216
  let end_container = range.endContainer;
173
217
  range.setStart(end_container, end_offset)
174
218
  range.setEnd(end_container, end_offset)
219
+ //range.setStart(node, 0)
220
+ //range.setEnd(node, 0)
175
221
  // console.log('range rect: ', range.getBoundingClientRect())
176
222
  let sel = window.getSelection();
177
223
  sel.removeAllRanges();
@@ -179,18 +225,42 @@ export function editable(node, action)
179
225
 
180
226
  }
181
227
 
182
- node.addEventListener("edit", edit_listener);
228
+ const focus_listener = async (e) =>
229
+ {
230
+ node.addEventListener("blur", blur_listener);
231
+ node.addEventListener("keydown", key_listener);
232
+ has_changed = false;
233
+
234
+ observer = new MutationObserver(() => { has_changed = true; });
235
+ observer.observe( node, {
236
+ childList: true,
237
+ attributes: true,
238
+ characterData: true,
239
+ subtree: true } );
240
+ }
241
+
183
242
  node.classList.add("editable")
184
243
  node.classList.add("focus:outline-none")
185
- return {
186
- destroy() {
187
- node.removeEventListener("edit", edit_listener)
188
- node.classList.remove("editable")
189
- node.contentEditable = "false"
190
- }};
244
+
245
+ if(active)
246
+ {
247
+ node.contentEditable = "true"
248
+ node.addEventListener('focus', focus_listener);
249
+ }
250
+ else
251
+ {
252
+ node.addEventListener("edit", edit_listener);
253
+
254
+ return {
255
+ destroy() {
256
+ node.removeEventListener("edit", edit_listener)
257
+ node.classList.remove("editable")
258
+ node.contentEditable = "false"
259
+ }};
260
+ }
191
261
  }
192
262
 
193
- export function start_editing(element, finish_callback)
263
+ export function startEditing(element, finish_callback)
194
264
  {
195
265
  let editable_node = null;
196
266
 
@@ -222,7 +292,7 @@ export function selectable(node, itm)
222
292
  {
223
293
  const select_listener = (e) =>
224
294
  {
225
- select_item(itm);
295
+ selectItem(itm);
226
296
  }
227
297
 
228
298
  node.setAttribute("selectable", "true")
@@ -241,12 +311,12 @@ export function selectable(node, itm)
241
311
  }};
242
312
  }
243
313
 
244
- export function handle_select(e)
314
+ export function handleSelect(e)
245
315
  {
246
316
  let node = e.target;
247
317
  if(!node)
248
318
  {
249
- select_item(null);
319
+ selectItem(null);
250
320
  return;
251
321
  }
252
322
 
@@ -266,12 +336,12 @@ export function handle_select(e)
266
336
  if(selection_node)
267
337
  selection_node.dispatchEvent(new Event("select"))
268
338
  else
269
- select_item(null);
339
+ selectItem(null);
270
340
  }
271
341
 
272
342
 
273
343
 
274
- export function parse_width_directive(c)
344
+ export function parseWidthDirective(c)
275
345
  {
276
346
  let cs = '';
277
347
  switch (c)
@@ -313,8 +383,88 @@ export function parse_width_directive(c)
313
383
  return cs;
314
384
  }
315
385
 
316
- export function should_be_comapact()
386
+ export function shouldBeComapact()
317
387
  {
318
388
  let is_in_table = getContext('rTable-definition');
319
389
  return !!is_in_table;
320
- }
390
+ }
391
+
392
+
393
+
394
+ export function insertAt(array, index, element)
395
+ {
396
+ array.splice(index, 0, element);
397
+ return array;
398
+ }
399
+
400
+ export function insertAfter(array, after, element)
401
+ {
402
+ let after_idx = array.findIndex((t) => t == after);
403
+
404
+ if(after_idx == array.length - 1)
405
+ {
406
+ array.push(element)
407
+ return array;
408
+ }
409
+ else
410
+ {
411
+ return insertAt(array, after_idx+1, element)
412
+ }
413
+ }
414
+
415
+ export function getPrev(array, element)
416
+ {
417
+ let idx = array.findIndex((t) => t == element);
418
+ if(idx < 1)
419
+ return null;
420
+ else
421
+ return array[idx-1];
422
+ }
423
+
424
+ export function getNext(array, element)
425
+ {
426
+ let idx = array.findIndex((t) => t == element);
427
+ if(idx >= array.length-1)
428
+ return null;
429
+ else
430
+ return array[idx+1];
431
+ }
432
+
433
+ export function getFirst(array)
434
+ {
435
+ if(array.length > 0)
436
+ return array[0];
437
+ else
438
+ return null;
439
+ }
440
+
441
+ export function getLast(array)
442
+ {
443
+ if(array.length > 0)
444
+ return array[array.length-1];
445
+ else
446
+ return null;
447
+ }
448
+
449
+ export function removeAt(array, index)
450
+ {
451
+ array.splice(index, 1)
452
+ return array;
453
+ }
454
+
455
+ export function remove(array, element)
456
+ {
457
+ let idx = array.findIndex((t) => t == element);
458
+ return array.removeAt(idx);
459
+ }
460
+
461
+ export function swapElements(array, e1, e2)
462
+ {
463
+ let idx1 = array.findIndex((t) => t == e1);
464
+ let idx2 = array.findIndex((t) => t == e2);
465
+
466
+ array[idx1] = e2;
467
+ array[idx2] = e1;
468
+
469
+ return array;
470
+ }
@@ -7,7 +7,7 @@
7
7
  import GoPrimitiveDot from 'svelte-icons/go/GoPrimitiveDot.svelte'
8
8
  import FaSignInAlt from 'svelte-icons/fa/FaSignInAlt.svelte'
9
9
  import FaSignOutAlt from 'svelte-icons/fa/FaSignOutAlt.svelte'
10
- import {show_menu} from './components/menu'
10
+ import {showMenu} from './components/menu'
11
11
  //import Menu from './components/contextmenu.svelte'
12
12
 
13
13
  import {dark_mode_store,
@@ -22,7 +22,7 @@
22
22
  import {session, signin_href, signout_href} from '@humandialog/auth.svelte'
23
23
  import { push } from 'svelte-spa-router';
24
24
 
25
- export let app_config;
25
+ export let appConfig;
26
26
  export let mobile=false;
27
27
 
28
28
 
@@ -36,8 +36,8 @@
36
36
  let sign_out_href = '';
37
37
 
38
38
  $:{
39
- config = app_config.mainToolbar;
40
- has_selection_details = app_config.selectionDetails;
39
+ config = appConfig.mainToolbar;
40
+ has_selection_details = appConfig.selectionDetails;
41
41
  is_logged_in = $session.is_active;
42
42
  show_sign_in_out_icons = config.signin ? true : false;
43
43
  sign_in_href = $signin_href;
@@ -45,9 +45,9 @@
45
45
 
46
46
  tabs = new Array();
47
47
 
48
- Object.keys(app_config.sidebar).forEach( (key) =>
48
+ Object.keys(appConfig.sidebar).forEach( (key) =>
49
49
  {
50
- const ctab = app_config.sidebar[key];
50
+ const ctab = appConfig.sidebar[key];
51
51
  const can_show = (ctab.authorized && is_logged_in) || (!ctab.authorized)
52
52
  if(can_show)
53
53
  tabs.push({key: key, icon: ctab.icon});
@@ -161,18 +161,18 @@
161
161
  }
162
162
 
163
163
  let pt = new DOMPoint(rect.right, rect.top)
164
- show_menu(pt, options);
164
+ showMenu(pt, options);
165
165
  }
166
166
 
167
167
  </script>
168
168
 
169
169
 
170
- <div class="px-0 w-10">
170
+ <div class="no-print px-0 w-10">
171
171
  {#each tabs as tab}
172
- {@const is_selected = $main_sidebar_visible_store == tab.key}
172
+ {@const isSelected = $main_sidebar_visible_store == tab.key}
173
173
  <button
174
- class="h-16 px-0 flex justify-center items-center w-full text-slate-300 hover:text-slate-100"
175
- class:bg-orange-500={is_selected}
174
+ class="h-16 px-0 flex justify-center items-center w-full text-stone-300 hover:text-stone-100"
175
+ class:bg-orange-500={isSelected}
176
176
  on:click={()=> (on_tab_clicked(tab.key))}>
177
177
 
178
178
  <Icon size={6} component={tab.icon}/>
@@ -182,10 +182,10 @@
182
182
 
183
183
  {#if !mobile}
184
184
 
185
- <div class="mt-auto h-auto items-center w-full">
185
+ <div class="no-print mt-auto h-auto items-center w-full">
186
186
 
187
187
  <button
188
- class="h-16 px-0 flex justify-center items-center w-full text-slate-300 hover:text-slate-100"
188
+ class="h-16 px-0 flex justify-center items-center w-full text-stone-300 hover:text-stone-100"
189
189
  on:click={show_options}>
190
190
 
191
191
  <Icon size={4} component={FaCog} />
@@ -196,3 +196,12 @@
196
196
 
197
197
 
198
198
  <!--Menu bind:this={menu}/-->
199
+
200
+ <style>
201
+ @media print
202
+ {
203
+ .no-print, .no-print *{
204
+ display: none !important;
205
+ }
206
+ }
207
+ </style>
@@ -2,7 +2,7 @@
2
2
  /** @typedef {typeof __propDef.events} VerticalEvents */
3
3
  /** @typedef {typeof __propDef.slots} VerticalSlots */
4
4
  export default class Vertical extends SvelteComponentTyped<{
5
- app_config: any;
5
+ appConfig: any;
6
6
  mobile?: boolean | undefined;
7
7
  }, {
8
8
  [evt: string]: CustomEvent<any>;
@@ -14,7 +14,7 @@ export type VerticalSlots = typeof __propDef.slots;
14
14
  import { SvelteComponentTyped } from "svelte";
15
15
  declare const __propDef: {
16
16
  props: {
17
- app_config: any;
17
+ appConfig: any;
18
18
  mobile?: boolean | undefined;
19
19
  };
20
20
  events: {