@humandialog/forms.svelte 1.7.28 → 1.8.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.
- package/components/Fab.25.svelte +473 -0
- package/components/Fab.25.svelte.d.ts +18 -0
- package/components/Fab.svelte +51 -170
- package/components/Floating_container.25.svelte +178 -0
- package/components/Floating_container.25.svelte.d.ts +23 -0
- package/components/Floating_container.svelte +18 -6
- package/components/Grid.menu.svelte +15 -16
- package/components/Grid.menu.svelte.d.ts +2 -2
- package/components/breadcrumb.svelte +27 -27
- package/components/checkbox.svelte +1 -1
- package/components/combo/combo.svelte +60 -79
- package/components/combo/combo.svelte.d.ts +1 -0
- package/components/contextmenu-25.svelte +518 -0
- package/components/contextmenu-25.svelte.d.ts +26 -0
- package/components/contextmenu.svelte +179 -65
- package/components/contextmenu.svelte.d.ts +2 -2
- package/components/date.svelte +42 -21
- package/components/date.svelte.d.ts +1 -0
- package/components/delayed.spinner.svelte +2 -1
- package/components/document/editor.svelte +21 -31
- package/components/document/editor.svelte.d.ts +0 -2
- package/components/document/internal/palette.row.svelte +10 -8
- package/components/document/internal/palette.svelte +7 -8
- package/components/document/rich.edit.svelte +10 -10
- package/components/edit.field.svelte +1 -1
- package/components/input.text.svelte.d.ts +2 -2
- package/components/inputbox.ltop.svelte +1 -1
- package/components/inputbox.ltop.svelte.d.ts +12 -12
- package/components/kanban/internal/kanban.card.svelte +27 -47
- package/components/kanban/internal/kanban.column.svelte +44 -24
- package/components/kanban/internal/kanban.inserter.svelte +11 -14
- package/components/kanban/internal/kanban.move.menu.svelte +12 -12
- package/components/kanban/internal/kanban.props.svelte +24 -9
- package/components/kanban/kanban.svelte +24 -77
- package/components/kanban/kanban.svelte.d.ts +2 -0
- package/components/kanban copy.zip +0 -0
- package/components/list/List.d.ts +1 -0
- package/components/list/List.js +1 -0
- package/components/list/internal/list.element copy.svelte +530 -0
- package/components/list/internal/list.element copy.svelte.d.ts +35 -0
- package/components/list/internal/list.element.svelte +311 -279
- package/components/list/internal/list.element.svelte.d.ts +5 -7
- package/components/list/internal/list.inserter.svelte +38 -6
- package/components/list/internal/note.txt +5 -0
- package/components/list/list.svelte +32 -11
- package/components/list/list.svelte.d.ts +5 -3
- package/components/list/list.title.svelte +2 -0
- package/components/list/list.title.svelte.d.ts +1 -0
- package/components/menu.d.ts +1 -1
- package/components/menu.js +3 -3
- package/components/paginator.svelte +79 -9
- package/components/prose.editable.p.svelte.d.ts +2 -2
- package/components/prose.editable.span.svelte.d.ts +2 -2
- package/components/r.edit.svelte +9 -0
- package/components/r.edit.svelte.d.ts +23 -0
- package/components/r.editable.svelte +75 -0
- package/components/r.editable.svelte.d.ts +31 -0
- package/components/r.figcaption.svelte +5 -0
- package/components/r.figcaption.svelte.d.ts +27 -0
- package/components/r.figure.svelte +25 -0
- package/components/r.figure.svelte.d.ts +29 -0
- package/components/r.icon.svelte +229 -0
- package/components/r.icon.svelte.d.ts +33 -0
- package/components/radio.svelte +1 -1
- package/components/ricons/arrow-up.svelte +11 -0
- package/components/ricons/arrow-up.svelte.d.ts +27 -0
- package/components/ricons/barcode.svelte +14 -0
- package/components/ricons/barcode.svelte.d.ts +27 -0
- package/components/ricons/bold.svelte +10 -0
- package/components/ricons/bold.svelte.d.ts +27 -0
- package/components/ricons/calendar.svelte +13 -0
- package/components/ricons/calendar.svelte.d.ts +27 -0
- package/components/ricons/calendars.svelte +16 -0
- package/components/ricons/calendars.svelte.d.ts +27 -0
- package/components/ricons/cat.svelte +14 -0
- package/components/ricons/cat.svelte.d.ts +27 -0
- package/components/ricons/check-check.svelte +12 -0
- package/components/ricons/check-check.svelte.d.ts +27 -0
- package/components/ricons/check.svelte +18 -0
- package/components/ricons/check.svelte.d.ts +27 -0
- package/components/ricons/chess-rook.svelte +17 -0
- package/components/ricons/chess-rook.svelte.d.ts +27 -0
- package/components/ricons/chevron-down.svelte +11 -0
- package/components/ricons/chevron-down.svelte.d.ts +27 -0
- package/components/ricons/chevron-left.svelte +11 -0
- package/components/ricons/chevron-left.svelte.d.ts +27 -0
- package/components/ricons/chevron-right.svelte +11 -0
- package/components/ricons/chevron-right.svelte.d.ts +27 -0
- package/components/ricons/chevron-up.svelte +11 -0
- package/components/ricons/chevron-up.svelte.d.ts +27 -0
- package/components/ricons/chevrons-down.svelte +12 -0
- package/components/ricons/chevrons-down.svelte.d.ts +27 -0
- package/components/ricons/chevrons-left-right.svelte +12 -0
- package/components/ricons/chevrons-left-right.svelte.d.ts +27 -0
- package/components/ricons/chevrons-left.svelte +12 -0
- package/components/ricons/chevrons-left.svelte.d.ts +27 -0
- package/components/ricons/chevrons-right.svelte +12 -0
- package/components/ricons/chevrons-right.svelte.d.ts +27 -0
- package/components/ricons/chevrons-up-down.svelte +12 -0
- package/components/ricons/chevrons-up-down.svelte.d.ts +27 -0
- package/components/ricons/chevrons-up.svelte +12 -0
- package/components/ricons/chevrons-up.svelte.d.ts +27 -0
- package/components/ricons/circle-check.svelte +28 -0
- package/components/ricons/circle-check.svelte.d.ts +23 -0
- package/components/ricons/circle-dashed.svelte +19 -0
- package/components/ricons/circle-dashed.svelte.d.ts +27 -0
- package/components/ricons/circle-dot-dashed.svelte +20 -0
- package/components/ricons/circle-dot-dashed.svelte.d.ts +27 -0
- package/components/ricons/circle.svelte +30 -0
- package/components/ricons/circle.svelte.d.ts +23 -0
- package/components/ricons/clipboard-list.svelte +17 -0
- package/components/ricons/clipboard-list.svelte.d.ts +27 -0
- package/components/ricons/clipboard-minus.svelte +9 -0
- package/components/ricons/clipboard-minus.svelte.d.ts +23 -0
- package/components/ricons/clipboard-pen-line.svelte +18 -0
- package/components/ricons/clipboard-pen-line.svelte.d.ts +27 -0
- package/components/ricons/code-xml.svelte +12 -0
- package/components/ricons/code-xml.svelte.d.ts +27 -0
- package/components/ricons/download.svelte +13 -0
- package/components/ricons/download.svelte.d.ts +27 -0
- package/components/ricons/ellipsis-vertical.svelte +14 -0
- package/components/ricons/ellipsis-vertical.svelte.d.ts +27 -0
- package/components/ricons/file-archive.svelte +18 -0
- package/components/ricons/file-archive.svelte.d.ts +27 -0
- package/components/ricons/file-text.svelte +17 -0
- package/components/ricons/file-text.svelte.d.ts +27 -0
- package/components/ricons/folder.svelte +12 -0
- package/components/ricons/folder.svelte.d.ts +27 -0
- package/components/ricons/heading-1.svelte +13 -0
- package/components/ricons/heading-1.svelte.d.ts +27 -0
- package/components/ricons/heading-2.svelte +13 -0
- package/components/ricons/heading-2.svelte.d.ts +27 -0
- package/components/ricons/heading-3.svelte +14 -0
- package/components/ricons/heading-3.svelte.d.ts +27 -0
- package/components/ricons/heading-4.svelte +14 -0
- package/components/ricons/heading-4.svelte.d.ts +27 -0
- package/components/ricons/heading-5.svelte +14 -0
- package/components/ricons/heading-5.svelte.d.ts +27 -0
- package/components/ricons/image.svelte +12 -0
- package/components/ricons/image.svelte.d.ts +27 -0
- package/components/ricons/italic.svelte +12 -0
- package/components/ricons/italic.svelte.d.ts +27 -0
- package/components/ricons/languages.svelte +15 -0
- package/components/ricons/languages.svelte.d.ts +27 -0
- package/components/ricons/list-checks.svelte +15 -0
- package/components/ricons/list-checks.svelte.d.ts +27 -0
- package/components/ricons/list-minus.svelte +14 -0
- package/components/ricons/list-minus.svelte.d.ts +27 -0
- package/components/ricons/list-ordered.svelte +16 -0
- package/components/ricons/list-ordered.svelte.d.ts +27 -0
- package/components/ricons/list-plus.svelte +14 -0
- package/components/ricons/list-plus.svelte.d.ts +27 -0
- package/components/ricons/list.svelte +15 -0
- package/components/ricons/list.svelte.d.ts +27 -0
- package/components/ricons/loader-circle.svelte +19 -0
- package/components/ricons/loader-circle.svelte.d.ts +27 -0
- package/components/ricons/log-in.svelte +12 -0
- package/components/ricons/log-in.svelte.d.ts +27 -0
- package/components/ricons/log-out.svelte +12 -0
- package/components/ricons/log-out.svelte.d.ts +27 -0
- package/components/ricons/message-square.svelte +12 -0
- package/components/ricons/message-square.svelte.d.ts +27 -0
- package/components/ricons/messages-square.svelte +15 -0
- package/components/ricons/messages-square.svelte.d.ts +27 -0
- package/components/ricons/minus.svelte +10 -0
- package/components/ricons/minus.svelte.d.ts +27 -0
- package/components/ricons/notebook-tabs.svelte +19 -0
- package/components/ricons/notebook-tabs.svelte.d.ts +27 -0
- package/components/ricons/notebook.svelte +16 -0
- package/components/ricons/notebook.svelte.d.ts +27 -0
- package/components/ricons/package.svelte +22 -0
- package/components/ricons/package.svelte.d.ts +27 -0
- package/components/ricons/paperclip.svelte +12 -0
- package/components/ricons/paperclip.svelte.d.ts +27 -0
- package/components/ricons/pencil.svelte +12 -0
- package/components/ricons/pencil.svelte.d.ts +27 -0
- package/components/ricons/pilcrow.svelte +12 -0
- package/components/ricons/pilcrow.svelte.d.ts +27 -0
- package/components/ricons/save.svelte +12 -0
- package/components/ricons/save.svelte.d.ts +27 -0
- package/components/ricons/square-check-big.svelte +13 -0
- package/components/ricons/square-check-big.svelte.d.ts +27 -0
- package/components/ricons/square-pen.svelte +14 -0
- package/components/ricons/square-pen.svelte.d.ts +27 -0
- package/components/ricons/square.svelte +10 -0
- package/components/ricons/square.svelte.d.ts +27 -0
- package/components/ricons/strikethrough.svelte +13 -0
- package/components/ricons/strikethrough.svelte.d.ts +27 -0
- package/components/ricons/sun-moon.svelte +15 -0
- package/components/ricons/sun-moon.svelte.d.ts +27 -0
- package/components/ricons/table.svelte +13 -0
- package/components/ricons/table.svelte.d.ts +27 -0
- package/components/ricons/tag.svelte +12 -0
- package/components/ricons/tag.svelte.d.ts +27 -0
- package/components/ricons/text-quote.svelte +14 -0
- package/components/ricons/text-quote.svelte.d.ts +27 -0
- package/components/ricons/turtle.svelte +13 -0
- package/components/ricons/turtle.svelte.d.ts +27 -0
- package/components/ricons/underline.svelte +11 -0
- package/components/ricons/underline.svelte.d.ts +27 -0
- package/components/ricons/upload.svelte +13 -0
- package/components/ricons/upload.svelte.d.ts +27 -0
- package/components/ricons/user.svelte +12 -0
- package/components/ricons/user.svelte.d.ts +27 -0
- package/components/ricons/users.svelte +14 -0
- package/components/ricons/users.svelte.d.ts +27 -0
- package/components/ricons/x.svelte +11 -0
- package/components/ricons/x.svelte.d.ts +27 -0
- package/components/sidebar/sidebar.brand.svelte +14 -13
- package/components/sidebar/sidebar.brand.svelte.d.ts +2 -2
- package/components/sidebar/sidebar.group.svelte +52 -30
- package/components/sidebar/sidebar.item.svelte +35 -141
- package/components/sidebar/sidebar.item.svelte.d.ts +2 -5
- package/components/sidebar/sidebar.list.svelte +8 -8
- package/components/sidebar/sidebar.svelte +19 -2
- package/components/simple.table.svelte.d.ts +4 -4
- package/components/table/_template.table.svelte.d.ts +4 -4
- package/components/tags.svelte +10 -3
- package/components/tags.svelte.d.ts +1 -0
- package/components/textarea.ltop.svelte.d.ts +2 -2
- package/components/tile.title.svelte.d.ts +2 -2
- package/desk.svelte +139 -144
- package/dialog.svelte +17 -7
- package/form.box.svelte.d.ts +4 -4
- package/horizontal.nav.tabs.svelte +197 -23
- package/horizontal.nav.tabs.svelte.d.ts +2 -2
- package/horizontal.toolbar.svelte +25 -18
- package/horizontal.toolbar.svelte.d.ts +2 -2
- package/index.d.ts +10 -3
- package/index.js +10 -3
- package/operations.svelte +51 -22
- package/package.json +89 -1
- package/page.row.svelte.d.ts +2 -2
- package/page.svelte +17 -7
- package/page.svelte.d.ts +10 -10
- package/paper.header.svelte +4 -0
- package/paper.header.svelte.d.ts +27 -0
- package/paper.nav.svelte +8 -0
- package/paper.nav.svelte.d.ts +27 -0
- package/paper.svelte +22 -6
- package/paper.svelte.d.ts +2 -0
- package/paper.table.svelte +27 -0
- package/paper.table.svelte.d.ts +27 -0
- package/paper.top.margin.svelte +5 -0
- package/paper.top.margin.svelte.d.ts +27 -0
- package/stores.d.ts +1 -1
- package/tenant.create.svelte +93 -0
- package/tenant.create.svelte.d.ts +29 -0
- package/tenant.members.svelte +116 -93
- package/tile.svelte.d.ts +4 -4
- package/tiles.row.svelte.d.ts +2 -2
- package/tiles.vertical.row.svelte.d.ts +2 -2
- package/updates.d.ts +4 -0
- package/updates.js +56 -14
- package/utils.d.ts +16 -4
- package/utils.js +214 -99
- package/vertical.toolbar.svelte +62 -47
- package/vertical.toolbar.svelte.d.ts +2 -2
package/utils.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { getContext, tick } from "svelte";
|
|
2
2
|
import {derived, get} from 'svelte/store'
|
|
3
|
-
import { contextItemsStore, contextToolbarOperations, pageToolbarOperations, data_tick_store, main_sidebar_visible_store, show_sidebar, hide_sidebar, previously_visible_sidebar, auto_hide_sidebar} from "./stores";
|
|
4
|
-
import {location, push, pop} from 'svelte-spa-router'
|
|
3
|
+
import { contextItemsStore, contextToolbarOperations, pageToolbarOperations, data_tick_store, main_sidebar_visible_store, show_sidebar, hide_sidebar, previously_visible_sidebar, auto_hide_sidebar, reloadWholeApp} from "./stores";
|
|
4
|
+
import {location, push, pop} from 'svelte-spa-router'
|
|
5
|
+
import {session, reef} from '@humandialog/auth.svelte'
|
|
6
|
+
import { i18n } from "./i18n";
|
|
5
7
|
|
|
6
8
|
export let icons = {symbols :null}
|
|
7
9
|
|
|
@@ -46,7 +48,7 @@ export function activateItem(context_level, itm, operations=null)
|
|
|
46
48
|
data_context.focused = context_level;
|
|
47
49
|
contextItemsStore.set( {...data_context} )
|
|
48
50
|
|
|
49
|
-
|
|
51
|
+
|
|
50
52
|
let ticket = get(data_tick_store)
|
|
51
53
|
ticket++;
|
|
52
54
|
data_tick_store.set(ticket)
|
|
@@ -54,7 +56,7 @@ export function activateItem(context_level, itm, operations=null)
|
|
|
54
56
|
//chnages.just_changed_context = true;
|
|
55
57
|
|
|
56
58
|
if(operations && context_level == 'props')
|
|
57
|
-
{
|
|
59
|
+
{
|
|
58
60
|
if(typeof operations === 'function')
|
|
59
61
|
{
|
|
60
62
|
const calculatedOps = operations([itm])
|
|
@@ -75,7 +77,7 @@ export function clearActiveItem(context_level, operations=undefined)
|
|
|
75
77
|
data_context.sel = null
|
|
76
78
|
contextItemsStore.set( {...data_context} )
|
|
77
79
|
|
|
78
|
-
|
|
80
|
+
|
|
79
81
|
let ticket = get(data_tick_store)
|
|
80
82
|
ticket++;
|
|
81
83
|
data_tick_store.set(ticket)
|
|
@@ -105,9 +107,9 @@ export function addActiveItem(context_level, itm, operations = null)
|
|
|
105
107
|
{
|
|
106
108
|
let data_context = get(contextItemsStore);
|
|
107
109
|
data_context['sel'] = itm; //null;
|
|
108
|
-
|
|
110
|
+
|
|
109
111
|
let multi = data_context[context_level]
|
|
110
|
-
|
|
112
|
+
|
|
111
113
|
if(multi && Array.isArray(multi))
|
|
112
114
|
multi = [...multi, itm]
|
|
113
115
|
else if(multi instanceof Object)
|
|
@@ -119,7 +121,7 @@ export function addActiveItem(context_level, itm, operations = null)
|
|
|
119
121
|
data_context.focused = context_level;
|
|
120
122
|
contextItemsStore.set( {...data_context} )
|
|
121
123
|
|
|
122
|
-
|
|
124
|
+
|
|
123
125
|
let ticket = get(data_tick_store)
|
|
124
126
|
ticket++;
|
|
125
127
|
data_tick_store.set(ticket)
|
|
@@ -127,7 +129,7 @@ export function addActiveItem(context_level, itm, operations = null)
|
|
|
127
129
|
//chnages.just_changed_context = true;
|
|
128
130
|
|
|
129
131
|
if(operations && context_level == 'props')
|
|
130
|
-
{
|
|
132
|
+
{
|
|
131
133
|
if(typeof operations === 'function')
|
|
132
134
|
{
|
|
133
135
|
const calculatedOps = operations(multi)
|
|
@@ -174,7 +176,7 @@ export function removeActiveItem(context_level, itm, operations = null)
|
|
|
174
176
|
else
|
|
175
177
|
{
|
|
176
178
|
if(operations)
|
|
177
|
-
{
|
|
179
|
+
{
|
|
178
180
|
if(typeof operations === 'function')
|
|
179
181
|
{
|
|
180
182
|
const calculatedOps = operations(multi)
|
|
@@ -237,7 +239,7 @@ export function getActive(context_level)
|
|
|
237
239
|
if(prop && Array.isArray(prop) && prop.length > 0)
|
|
238
240
|
return prop[prop.length-1]
|
|
239
241
|
else
|
|
240
|
-
return prop;
|
|
242
|
+
return prop;
|
|
241
243
|
}
|
|
242
244
|
else
|
|
243
245
|
return null;
|
|
@@ -254,7 +256,7 @@ export function getActiveItems(context_level)
|
|
|
254
256
|
else if(prop)
|
|
255
257
|
return [prop]
|
|
256
258
|
else
|
|
257
|
-
return []
|
|
259
|
+
return []
|
|
258
260
|
}
|
|
259
261
|
else
|
|
260
262
|
return [];
|
|
@@ -284,13 +286,13 @@ export function reloadPageToolbarOperations(operations)
|
|
|
284
286
|
|
|
285
287
|
export function refreshToolbarOperations()
|
|
286
288
|
{
|
|
287
|
-
|
|
289
|
+
|
|
288
290
|
let refreshed = false
|
|
289
291
|
|
|
290
292
|
const contextOperations = get(contextToolbarOperations)
|
|
291
293
|
if(contextOperations)
|
|
292
294
|
{
|
|
293
|
-
|
|
295
|
+
|
|
294
296
|
if(Array.isArray(contextOperations))
|
|
295
297
|
{
|
|
296
298
|
if(contextOperations.length > 0)
|
|
@@ -308,7 +310,7 @@ export function refreshToolbarOperations()
|
|
|
308
310
|
}
|
|
309
311
|
}
|
|
310
312
|
}
|
|
311
|
-
|
|
313
|
+
|
|
312
314
|
if(!refreshed)
|
|
313
315
|
{
|
|
314
316
|
const pageOperations = get(pageToolbarOperations);
|
|
@@ -378,10 +380,10 @@ export function editable(node, params)
|
|
|
378
380
|
await finish_editing({cancel: cancel});
|
|
379
381
|
}
|
|
380
382
|
|
|
381
|
-
const putNewLine = async (e) =>
|
|
383
|
+
const putNewLine = async (e) =>
|
|
382
384
|
{
|
|
383
385
|
const sel = window.getSelection()
|
|
384
|
-
|
|
386
|
+
|
|
385
387
|
let selNode = sel?.focusNode
|
|
386
388
|
let selOffset = sel?.focusOffset
|
|
387
389
|
let text = selNode?.textContent
|
|
@@ -389,7 +391,7 @@ export function editable(node, params)
|
|
|
389
391
|
const right = text?.substring(selOffset)
|
|
390
392
|
text = left + '\n' + right
|
|
391
393
|
node.textContent = text
|
|
392
|
-
|
|
394
|
+
|
|
393
395
|
await tick()
|
|
394
396
|
window.getSelection()?.setPosition(node.firstChild, selOffset+1)
|
|
395
397
|
}
|
|
@@ -451,7 +453,7 @@ export function editable(node, params)
|
|
|
451
453
|
node.removeEventListener("keydown", key_listener);
|
|
452
454
|
node.removeEventListener("save", save_listener);
|
|
453
455
|
node.contentEditable = "false"
|
|
454
|
-
|
|
456
|
+
|
|
455
457
|
let sel = window.getSelection();
|
|
456
458
|
sel.removeAllRanges();
|
|
457
459
|
}
|
|
@@ -473,16 +475,16 @@ export function editable(node, params)
|
|
|
473
475
|
has_changed = false;
|
|
474
476
|
await action(node.textContent)
|
|
475
477
|
}
|
|
476
|
-
|
|
478
|
+
|
|
477
479
|
}
|
|
478
480
|
else
|
|
479
481
|
await action(node.textContent)
|
|
480
482
|
}
|
|
481
483
|
|
|
482
484
|
const finish_event = new CustomEvent("finish", {
|
|
483
|
-
detail:
|
|
484
|
-
{
|
|
485
|
-
cancel: cancel,
|
|
485
|
+
detail:
|
|
486
|
+
{
|
|
487
|
+
cancel: cancel,
|
|
486
488
|
incremental: incremental,
|
|
487
489
|
softEnter: softEnter
|
|
488
490
|
}
|
|
@@ -505,18 +507,18 @@ export function editable(node, params)
|
|
|
505
507
|
node.contentEditable = "true"
|
|
506
508
|
node.addEventListener("blur", blur_listener);
|
|
507
509
|
node.addEventListener("keydown", key_listener);
|
|
508
|
-
|
|
510
|
+
|
|
509
511
|
currentEditable = node;
|
|
510
512
|
node.addEventListener("save", save_listener)
|
|
511
513
|
|
|
512
514
|
node.focus();
|
|
513
515
|
|
|
514
|
-
await tick();
|
|
516
|
+
/*await tick();
|
|
515
517
|
let range = document.createRange();
|
|
516
518
|
range.selectNodeContents(node);
|
|
517
519
|
let end_offset = range.endOffset;
|
|
518
520
|
let end_container = range.endContainer;
|
|
519
|
-
range.setStart(end_container,
|
|
521
|
+
range.setStart(end_container, 0)
|
|
520
522
|
range.setEnd(end_container, end_offset)
|
|
521
523
|
//range.setStart(node, 0)
|
|
522
524
|
//range.setEnd(node, 0)
|
|
@@ -524,7 +526,7 @@ export function editable(node, params)
|
|
|
524
526
|
let sel = window.getSelection();
|
|
525
527
|
sel.removeAllRanges();
|
|
526
528
|
sel.addRange(range);
|
|
527
|
-
|
|
529
|
+
*/
|
|
528
530
|
}
|
|
529
531
|
|
|
530
532
|
const focus_listener = async (e) =>
|
|
@@ -534,9 +536,9 @@ export function editable(node, params)
|
|
|
534
536
|
has_changed = false;
|
|
535
537
|
currentEditable = node;
|
|
536
538
|
node.addEventListener("save", save_listener)
|
|
537
|
-
|
|
538
|
-
observer = new MutationObserver(() => {
|
|
539
|
-
has_changed = true;
|
|
539
|
+
|
|
540
|
+
observer = new MutationObserver(() => {
|
|
541
|
+
has_changed = true;
|
|
540
542
|
if(onSingleChange)
|
|
541
543
|
onSingleChange(node.textContent)
|
|
542
544
|
});
|
|
@@ -564,7 +566,7 @@ export function editable(node, params)
|
|
|
564
566
|
else
|
|
565
567
|
{
|
|
566
568
|
node.addEventListener("edit", edit_listener);
|
|
567
|
-
|
|
569
|
+
|
|
568
570
|
return {
|
|
569
571
|
destroy() {
|
|
570
572
|
|
|
@@ -578,7 +580,7 @@ export function editable(node, params)
|
|
|
578
580
|
export function startEditing(element, finish_callback)
|
|
579
581
|
{
|
|
580
582
|
let editable_node = null;
|
|
581
|
-
|
|
583
|
+
|
|
582
584
|
if(element.classList.contains("editable"))
|
|
583
585
|
editable_node = element;
|
|
584
586
|
else
|
|
@@ -591,8 +593,11 @@ export function startEditing(element, finish_callback)
|
|
|
591
593
|
if(editable_node)
|
|
592
594
|
{
|
|
593
595
|
if(editable_node.contentEditable == "true")
|
|
596
|
+
{
|
|
597
|
+
editable_node.focus()
|
|
594
598
|
return;
|
|
595
|
-
|
|
599
|
+
}
|
|
600
|
+
|
|
596
601
|
if(finish_callback)
|
|
597
602
|
{
|
|
598
603
|
editable_node.addEventListener("finish", (e) => { finish_callback(e.detail) })
|
|
@@ -603,6 +608,29 @@ export function startEditing(element, finish_callback)
|
|
|
603
608
|
}
|
|
604
609
|
}
|
|
605
610
|
|
|
611
|
+
export function makeEditableIdFromFieldName(fieldName)
|
|
612
|
+
{
|
|
613
|
+
return `__or_editable_${fieldName}`
|
|
614
|
+
}
|
|
615
|
+
|
|
616
|
+
export function focusEditable(fieldName)
|
|
617
|
+
{
|
|
618
|
+
let editableId = ''
|
|
619
|
+
if(fieldName.startsWith('#'))
|
|
620
|
+
editableId = fieldName.substring(1)
|
|
621
|
+
else
|
|
622
|
+
editableId = makeEditableIdFromFieldName(fieldName)
|
|
623
|
+
|
|
624
|
+
const editableElement = document.getElementById(editableId)
|
|
625
|
+
if(editableElement)
|
|
626
|
+
{
|
|
627
|
+
startEditing(editableElement)
|
|
628
|
+
return true;
|
|
629
|
+
}
|
|
630
|
+
else
|
|
631
|
+
return false;
|
|
632
|
+
}
|
|
633
|
+
|
|
606
634
|
export function saveCurrentEditable()
|
|
607
635
|
{
|
|
608
636
|
if(currentEditable)
|
|
@@ -642,7 +670,7 @@ export function handleSelect(e)
|
|
|
642
670
|
}
|
|
643
671
|
|
|
644
672
|
let selection_node = null;
|
|
645
|
-
|
|
673
|
+
|
|
646
674
|
while(!!node)
|
|
647
675
|
{
|
|
648
676
|
if(node.hasAttribute("selectable"))
|
|
@@ -663,40 +691,40 @@ export function handleSelect(e)
|
|
|
663
691
|
|
|
664
692
|
|
|
665
693
|
export function parseWidthDirective(c)
|
|
666
|
-
{
|
|
694
|
+
{
|
|
667
695
|
let cs = '';
|
|
668
696
|
switch (c)
|
|
669
697
|
{
|
|
670
698
|
case '1':
|
|
671
|
-
cs = 'col-span-1'
|
|
699
|
+
cs = 'col-span-1'
|
|
672
700
|
break;
|
|
673
701
|
case '2':
|
|
674
|
-
cs = 'col-span-2'
|
|
702
|
+
cs = 'col-span-2'
|
|
675
703
|
break;
|
|
676
704
|
case '3':
|
|
677
|
-
cs = 'col-span-3'
|
|
705
|
+
cs = 'col-span-3'
|
|
678
706
|
break;
|
|
679
707
|
case '4':
|
|
680
|
-
cs = 'col-span-4'
|
|
708
|
+
cs = 'col-span-4'
|
|
681
709
|
break;
|
|
682
710
|
case '5':
|
|
683
|
-
cs = 'col-span-5'
|
|
711
|
+
cs = 'col-span-5'
|
|
684
712
|
break;
|
|
685
713
|
case '6':
|
|
686
|
-
cs = 'col-span-6'
|
|
714
|
+
cs = 'col-span-6'
|
|
687
715
|
break;
|
|
688
716
|
case '1-x3':
|
|
689
|
-
cs = 'col-span-1 xl:col-span-3'
|
|
717
|
+
cs = 'col-span-1 xl:col-span-3'
|
|
690
718
|
break;
|
|
691
719
|
case '2-x3':
|
|
692
|
-
cs = 'col-span-2 xl:col-span-3'
|
|
720
|
+
cs = 'col-span-2 xl:col-span-3'
|
|
693
721
|
break;
|
|
694
722
|
case '3-x9':
|
|
695
723
|
cs = 'col-span-3 xl:col-span-9'
|
|
696
|
-
break;
|
|
724
|
+
break;
|
|
697
725
|
case '4-x9':
|
|
698
726
|
cs = 'col-span-4 xl:col-span-9'
|
|
699
|
-
break;
|
|
727
|
+
break;
|
|
700
728
|
default:
|
|
701
729
|
break;
|
|
702
730
|
}
|
|
@@ -710,7 +738,7 @@ export function shouldBeComapact()
|
|
|
710
738
|
return !!is_in_table;
|
|
711
739
|
}
|
|
712
740
|
|
|
713
|
-
|
|
741
|
+
|
|
714
742
|
|
|
715
743
|
export function insertAt(array, index, element)
|
|
716
744
|
{
|
|
@@ -828,25 +856,25 @@ export async function resizeImage(file, maxWidth=1024, maxHeight=1024, contentTy
|
|
|
828
856
|
const [newWidth, newHeight] = calculateSize(img, maxWidth, maxHeight);
|
|
829
857
|
|
|
830
858
|
console.log('resizeImage', img.width, '=>', newWidth, img.height, '=>', newHeight, contentType, quality)
|
|
831
|
-
|
|
859
|
+
|
|
832
860
|
const canvas = document.createElement("canvas");
|
|
833
861
|
canvas.width = newWidth;
|
|
834
862
|
canvas.height = newHeight;
|
|
835
863
|
const ctx = canvas.getContext("2d");
|
|
836
864
|
ctx.drawImage(img, 0, 0, newWidth, newHeight);
|
|
837
|
-
|
|
865
|
+
|
|
838
866
|
canvas.toBlob((blob) => {
|
|
839
867
|
resolve(blob);
|
|
840
868
|
},
|
|
841
|
-
|
|
869
|
+
|
|
842
870
|
contentType,
|
|
843
871
|
quality)
|
|
844
|
-
|
|
872
|
+
|
|
845
873
|
}
|
|
846
874
|
|
|
847
875
|
img.src = URL.createObjectURL(file);
|
|
848
876
|
|
|
849
|
-
})
|
|
877
|
+
})
|
|
850
878
|
}
|
|
851
879
|
|
|
852
880
|
export function isOnScreenKeyboardVisible()
|
|
@@ -855,7 +883,7 @@ export function isOnScreenKeyboardVisible()
|
|
|
855
883
|
return false;
|
|
856
884
|
|
|
857
885
|
const sel = window.getSelection();
|
|
858
|
-
// if we have active selections then it's very possible we have onscreen keyboard visible, se we need to shrink window.innerHeight
|
|
886
|
+
// if we have active selections then it's very possible we have onscreen keyboard visible, se we need to shrink window.innerHeight
|
|
859
887
|
if(sel && sel.rangeCount>0 && sel.focusNode /*&& sel.focusNode.nodeType==sel.focusNode.TEXT_NODE*/) // TipTap fix: when cursor blinks at begining of line it's not TEXT_NODE. ProseMirror handles it as special case
|
|
860
888
|
{
|
|
861
889
|
const el = sel.focusNode.parentElement;
|
|
@@ -872,13 +900,13 @@ export const UI = {
|
|
|
872
900
|
navigator: null
|
|
873
901
|
}
|
|
874
902
|
|
|
875
|
-
export function dec2hex (dec)
|
|
903
|
+
export function dec2hex (dec)
|
|
876
904
|
{
|
|
877
905
|
return dec.toString(16).padStart(2, "0")
|
|
878
906
|
}
|
|
879
|
-
|
|
880
907
|
|
|
881
|
-
|
|
908
|
+
|
|
909
|
+
export function randomString(len)
|
|
882
910
|
{
|
|
883
911
|
var arr = new Uint8Array((len || 16) / 2)
|
|
884
912
|
window.crypto.getRandomValues(arr)
|
|
@@ -893,7 +921,7 @@ let lastNavPage = ''
|
|
|
893
921
|
export function isOnNavigationPage(navKind)
|
|
894
922
|
{
|
|
895
923
|
const loc = get(location)
|
|
896
|
-
|
|
924
|
+
|
|
897
925
|
if(!navKind)
|
|
898
926
|
{
|
|
899
927
|
if(loc.startsWith(NAVIGATION_PAGE_PATH))
|
|
@@ -908,7 +936,7 @@ export function isOnNavigationPage(navKind)
|
|
|
908
936
|
else
|
|
909
937
|
return false;
|
|
910
938
|
}
|
|
911
|
-
|
|
939
|
+
|
|
912
940
|
}
|
|
913
941
|
|
|
914
942
|
|
|
@@ -949,7 +977,9 @@ export const NAV_MODE_FULL_PAGE = 1
|
|
|
949
977
|
|
|
950
978
|
export function navGetMode()
|
|
951
979
|
{
|
|
952
|
-
|
|
980
|
+
//UI26: NAV_MODE_FULL_PAGE is obsolete experiment
|
|
981
|
+
//return isDeviceSmallerThan("sm") ? NAV_MODE_FULL_PAGE : NAV_MODE_SIDEBAR;
|
|
982
|
+
return NAV_MODE_SIDEBAR;
|
|
953
983
|
}
|
|
954
984
|
|
|
955
985
|
export function navIsVisible()
|
|
@@ -1068,25 +1098,25 @@ export function isValidEmail(e)
|
|
|
1068
1098
|
//let pattern = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
|
|
1069
1099
|
//return (e.match(pattern) != null);
|
|
1070
1100
|
|
|
1071
|
-
var at_idx = e.indexOf("@");
|
|
1072
|
-
var dot_idx = e.lastIndexOf(".");
|
|
1073
|
-
var space_idx = e.indexOf(" ");
|
|
1074
|
-
|
|
1075
|
-
if ((at_idx != -1) &&
|
|
1076
|
-
(at_idx != 0) &&
|
|
1077
|
-
(dot_idx != -1) &&
|
|
1078
|
-
(dot_idx != 0) &&
|
|
1079
|
-
(dot_idx > at_idx + 1) &&
|
|
1080
|
-
(e.length > dot_idx + 1) &&
|
|
1081
|
-
(space_idx == -1))
|
|
1082
|
-
{
|
|
1083
|
-
return true;
|
|
1084
|
-
}
|
|
1085
|
-
else
|
|
1086
|
-
{
|
|
1087
|
-
return false;
|
|
1088
|
-
}
|
|
1089
|
-
|
|
1101
|
+
var at_idx = e.indexOf("@");
|
|
1102
|
+
var dot_idx = e.lastIndexOf(".");
|
|
1103
|
+
var space_idx = e.indexOf(" ");
|
|
1104
|
+
|
|
1105
|
+
if ((at_idx != -1) &&
|
|
1106
|
+
(at_idx != 0) &&
|
|
1107
|
+
(dot_idx != -1) &&
|
|
1108
|
+
(dot_idx != 0) &&
|
|
1109
|
+
(dot_idx > at_idx + 1) &&
|
|
1110
|
+
(e.length > dot_idx + 1) &&
|
|
1111
|
+
(space_idx == -1))
|
|
1112
|
+
{
|
|
1113
|
+
return true;
|
|
1114
|
+
}
|
|
1115
|
+
else
|
|
1116
|
+
{
|
|
1117
|
+
return false;
|
|
1118
|
+
}
|
|
1119
|
+
|
|
1090
1120
|
}
|
|
1091
1121
|
|
|
1092
1122
|
export function setSelectionAtEnd(element)
|
|
@@ -1106,28 +1136,28 @@ export function setSelectionAtEnd(element)
|
|
|
1106
1136
|
|
|
1107
1137
|
export function localStorageSave(key, value)
|
|
1108
1138
|
{
|
|
1109
|
-
try
|
|
1139
|
+
try
|
|
1110
1140
|
{
|
|
1111
|
-
if (typeof localStorage === "undefined")
|
|
1141
|
+
if (typeof localStorage === "undefined")
|
|
1112
1142
|
return;
|
|
1113
1143
|
|
|
1114
1144
|
localStorage.setItem(key, value);
|
|
1115
|
-
}
|
|
1116
|
-
catch
|
|
1145
|
+
}
|
|
1146
|
+
catch
|
|
1117
1147
|
{
|
|
1118
|
-
|
|
1148
|
+
|
|
1119
1149
|
}
|
|
1120
1150
|
}
|
|
1121
1151
|
|
|
1122
1152
|
export function localStorageRead(key, fallback = '')
|
|
1123
1153
|
{
|
|
1124
|
-
try
|
|
1154
|
+
try
|
|
1125
1155
|
{
|
|
1126
|
-
if (typeof localStorage === "undefined")
|
|
1156
|
+
if (typeof localStorage === "undefined")
|
|
1127
1157
|
return fallback;
|
|
1128
1158
|
return localStorage.getItem(key) ?? fallback;
|
|
1129
|
-
}
|
|
1130
|
-
catch
|
|
1159
|
+
}
|
|
1160
|
+
catch
|
|
1131
1161
|
{
|
|
1132
1162
|
return fallback;
|
|
1133
1163
|
}
|
|
@@ -1135,13 +1165,13 @@ export function localStorageRead(key, fallback = '')
|
|
|
1135
1165
|
|
|
1136
1166
|
export function hasLocalStorage(key)
|
|
1137
1167
|
{
|
|
1138
|
-
try
|
|
1168
|
+
try
|
|
1139
1169
|
{
|
|
1140
|
-
if (typeof localStorage === "undefined")
|
|
1170
|
+
if (typeof localStorage === "undefined")
|
|
1141
1171
|
return false;
|
|
1142
1172
|
return localStorage.getItem(key) ? true : false;
|
|
1143
|
-
}
|
|
1144
|
-
catch
|
|
1173
|
+
}
|
|
1174
|
+
catch
|
|
1145
1175
|
{
|
|
1146
1176
|
return false;
|
|
1147
1177
|
}
|
|
@@ -1149,29 +1179,114 @@ export function hasLocalStorage(key)
|
|
|
1149
1179
|
|
|
1150
1180
|
export function sessionStorageSave(key, value)
|
|
1151
1181
|
{
|
|
1152
|
-
try
|
|
1182
|
+
try
|
|
1153
1183
|
{
|
|
1154
|
-
if (typeof sessionStorage === "undefined")
|
|
1184
|
+
if (typeof sessionStorage === "undefined")
|
|
1155
1185
|
return;
|
|
1156
1186
|
|
|
1157
1187
|
sessionStorage.setItem(key, value);
|
|
1158
|
-
}
|
|
1159
|
-
catch
|
|
1188
|
+
}
|
|
1189
|
+
catch
|
|
1160
1190
|
{
|
|
1161
|
-
|
|
1191
|
+
|
|
1162
1192
|
}
|
|
1163
1193
|
}
|
|
1164
1194
|
|
|
1165
1195
|
export function sessionStorageRead(key, fallback = '')
|
|
1166
1196
|
{
|
|
1167
|
-
try
|
|
1197
|
+
try
|
|
1168
1198
|
{
|
|
1169
|
-
if (typeof sessionStorage === "undefined")
|
|
1199
|
+
if (typeof sessionStorage === "undefined")
|
|
1170
1200
|
return fallback;
|
|
1171
1201
|
return sessionStorage.getItem(key) ?? fallback;
|
|
1172
|
-
}
|
|
1173
|
-
catch
|
|
1202
|
+
}
|
|
1203
|
+
catch
|
|
1174
1204
|
{
|
|
1175
1205
|
return fallback;
|
|
1176
1206
|
}
|
|
1207
|
+
}
|
|
1208
|
+
|
|
1209
|
+
export function getCurrentGroupName(session)
|
|
1210
|
+
{
|
|
1211
|
+
const gid = session.tid; // current tenant id
|
|
1212
|
+
const tInfo = session.tenants.find(t => t.id == gid)
|
|
1213
|
+
if(tInfo)
|
|
1214
|
+
return tInfo.name;
|
|
1215
|
+
else
|
|
1216
|
+
{
|
|
1217
|
+
return 'Current group' // todo: handle group when local auth
|
|
1218
|
+
}
|
|
1219
|
+
}
|
|
1220
|
+
|
|
1221
|
+
export async function getGroupsMenu(params)
|
|
1222
|
+
{
|
|
1223
|
+
const session = params.session
|
|
1224
|
+
const reditectTo = params.redirectAfterSwitch
|
|
1225
|
+
const afterGroupCreated = params.afterGroupCreated
|
|
1226
|
+
|
|
1227
|
+
let showGroupsSwitchMenu = false;
|
|
1228
|
+
let canAddNewGroup = false;
|
|
1229
|
+
|
|
1230
|
+
showGroupsSwitchMenu = session.tenants.length > 1
|
|
1231
|
+
if(session.configuration.tenant)
|
|
1232
|
+
{
|
|
1233
|
+
const instanceInfo = await reef.getAppInstanceInfo()
|
|
1234
|
+
if(instanceInfo?.is_public)
|
|
1235
|
+
{
|
|
1236
|
+
showGroupsSwitchMenu = true;
|
|
1237
|
+
canAddNewGroup = true;
|
|
1238
|
+
}
|
|
1239
|
+
}
|
|
1240
|
+
|
|
1241
|
+
if(!showGroupsSwitchMenu)
|
|
1242
|
+
return []
|
|
1243
|
+
|
|
1244
|
+
let options = []
|
|
1245
|
+
|
|
1246
|
+
session.tenants.forEach(tInfo =>
|
|
1247
|
+
options.push({
|
|
1248
|
+
caption: tInfo.name,
|
|
1249
|
+
disabledFunc: () => tInfo.id == session.tid,
|
|
1250
|
+
action: async (f) => {
|
|
1251
|
+
if(reditectTo)
|
|
1252
|
+
await push(reditectTo) // __APP_DEFAULT_PAGE__
|
|
1253
|
+
|
|
1254
|
+
setTimeout(() => {
|
|
1255
|
+
session.setCurrentTenantAPI(tInfo.url, tInfo.id)
|
|
1256
|
+
reloadWholeApp()
|
|
1257
|
+
}, 200)
|
|
1258
|
+
}
|
|
1259
|
+
})
|
|
1260
|
+
)
|
|
1261
|
+
|
|
1262
|
+
if(canAddNewGroup)
|
|
1263
|
+
{
|
|
1264
|
+
options.push({
|
|
1265
|
+
separator: true
|
|
1266
|
+
})
|
|
1267
|
+
options.push({
|
|
1268
|
+
caption: i18n({en:'Add group', es:'Añadir grupo', pl: 'Dodaj grupę'}),
|
|
1269
|
+
//icon: FaPlus,
|
|
1270
|
+
action: (f) => launchNewGroupWizzard(afterGroupCreated)
|
|
1271
|
+
})
|
|
1272
|
+
}
|
|
1273
|
+
|
|
1274
|
+
return options;
|
|
1275
|
+
}
|
|
1276
|
+
|
|
1277
|
+
import NewGroupDialog from './tenant.create.svelte'
|
|
1278
|
+
function launchNewGroupWizzard(afterGroupCreated=undefined)
|
|
1279
|
+
{
|
|
1280
|
+
let app_div = document.getElementById("__hd_svelte_layout_root")
|
|
1281
|
+
if(!app_div)
|
|
1282
|
+
app_div = document.getElementById("app")
|
|
1283
|
+
|
|
1284
|
+
let dialog = new NewGroupDialog({
|
|
1285
|
+
target: app_div,
|
|
1286
|
+
props: {
|
|
1287
|
+
afterGroupCreated: afterGroupCreated
|
|
1288
|
+
}
|
|
1289
|
+
});
|
|
1290
|
+
|
|
1291
|
+
dialog.show()
|
|
1177
1292
|
}
|