@humandialog/forms.svelte 0.4.14 → 0.4.16
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/Grid.menu.svelte +2 -0
- package/components/button.svelte +5 -11
- package/components/combo/combo.d.ts +2 -0
- package/components/combo/combo.js +2 -0
- package/components/combo/combo.source.svelte +6 -2
- package/components/combo/combo.source.svelte.d.ts +3 -1
- package/components/combo/combo.svelte +122 -76
- package/components/combo/combo.svelte.d.ts +5 -0
- package/components/date.svelte +14 -5
- package/components/list/List.d.ts +28 -0
- package/components/list/List.js +34 -0
- package/components/list/internal/list.element.svelte +295 -0
- package/components/list/internal/list.element.svelte.d.ts +29 -0
- package/components/list/internal/list.inserter.svelte +20 -0
- package/components/list/internal/list.inserter.svelte.d.ts +18 -0
- package/components/list/list.combo.svelte +20 -0
- package/components/list/list.combo.svelte.d.ts +21 -0
- package/components/list/list.date.svelte +14 -0
- package/components/list/list.date.svelte.d.ts +18 -0
- package/components/list/list.inserter.svelte +6 -0
- package/components/list/list.inserter.svelte.d.ts +16 -0
- package/components/list/list.summary.svelte +7 -0
- package/components/list/list.summary.svelte.d.ts +17 -0
- package/components/list/list.svelte +148 -0
- package/components/list/list.svelte.d.ts +41 -0
- package/components/list/list.title.svelte +7 -0
- package/components/list/list.title.svelte.d.ts +17 -0
- package/components/sidebar/sidebar.item.svelte +27 -15
- package/components/sidebar/sidebar.item.svelte.d.ts +3 -0
- package/desk.svelte +16 -4
- package/index.d.ts +9 -2
- package/index.js +10 -2
- package/package.json +11 -2
- package/page.svelte +8 -2
- package/stores.js +4 -3
- package/updates.js +3 -7
- package/utils.d.ts +1 -0
- package/utils.js +46 -7
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { SvelteComponentTyped } from "svelte";
|
|
2
|
+
declare const __propDef: {
|
|
3
|
+
props: {
|
|
4
|
+
a: string;
|
|
5
|
+
editable?: boolean | undefined;
|
|
6
|
+
};
|
|
7
|
+
events: {
|
|
8
|
+
[evt: string]: CustomEvent<any>;
|
|
9
|
+
};
|
|
10
|
+
slots: {};
|
|
11
|
+
};
|
|
12
|
+
export type ListProps = typeof __propDef.props;
|
|
13
|
+
export type ListEvents = typeof __propDef.events;
|
|
14
|
+
export type ListSlots = typeof __propDef.slots;
|
|
15
|
+
export default class List extends SvelteComponentTyped<ListProps, ListEvents, ListSlots> {
|
|
16
|
+
}
|
|
17
|
+
export {};
|
|
@@ -3,7 +3,8 @@ import { context_items_store, auto_hide_sidebar } from "../../stores";
|
|
|
3
3
|
import {
|
|
4
4
|
selectable as _selectable,
|
|
5
5
|
is_selected,
|
|
6
|
-
editable as _editable
|
|
6
|
+
editable as _editable,
|
|
7
|
+
handle_select
|
|
7
8
|
} from "../../utils";
|
|
8
9
|
export let href;
|
|
9
10
|
export let icon = void 0;
|
|
@@ -27,27 +28,38 @@ function editable_if_needed(node, editable2) {
|
|
|
27
28
|
if (editable2)
|
|
28
29
|
_editable(node, editable2);
|
|
29
30
|
}
|
|
31
|
+
function on_link_clicked(e) {
|
|
32
|
+
auto_hide_sidebar();
|
|
33
|
+
if (selectable)
|
|
34
|
+
handle_select(e);
|
|
35
|
+
e.stopPropagation();
|
|
36
|
+
}
|
|
30
37
|
</script>
|
|
31
38
|
|
|
32
39
|
<li>
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
on:click
|
|
40
|
+
<!--svelte-ignore a11y-click-events-have-key-events -->
|
|
41
|
+
<div
|
|
42
|
+
on:click
|
|
36
43
|
on:contextmenu
|
|
37
|
-
|
|
44
|
+
on:keydown
|
|
45
|
+
on:keyup
|
|
46
|
+
class="p-2 text-base font-normal text-gray-900 rounded-lg dark:text-white hover:bg-gray-100 dark:hover:bg-gray-700 border-2 border-transparent {user_class}"
|
|
38
47
|
class:bg-gray-200={active}
|
|
39
48
|
class:dark:bg-gray-700={active}
|
|
40
49
|
use:selectable_if_needed={selectable}
|
|
41
|
-
class:selected={selected(selectable, context_data)}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
<
|
|
49
|
-
|
|
50
|
-
|
|
50
|
+
class:selected={selected(selectable, context_data)}>
|
|
51
|
+
<a href={href}
|
|
52
|
+
on:click={on_link_clicked}
|
|
53
|
+
class="inline-flex items-center group">
|
|
54
|
+
{#if icon}
|
|
55
|
+
<Icon size={5} component={icon}/>
|
|
56
|
+
{/if}
|
|
57
|
+
<span class="ml-3 group-hover:underline"
|
|
58
|
+
use:editable_if_needed={editable}>
|
|
59
|
+
<slot/>
|
|
60
|
+
</span>
|
|
61
|
+
</a>
|
|
62
|
+
</div>
|
|
51
63
|
</li>
|
|
52
64
|
|
|
53
65
|
|
package/desk.svelte
CHANGED
|
@@ -15,11 +15,24 @@
|
|
|
15
15
|
set_default_tools_visible,
|
|
16
16
|
set_dark_mode_default } from './stores.js'
|
|
17
17
|
|
|
18
|
-
import {
|
|
18
|
+
import { AuthorizedView} from '@humandialog/auth.svelte'
|
|
19
19
|
import { handle_select, is_device_smaller_than } from './utils'
|
|
20
|
+
import { onMount } from 'svelte';
|
|
20
21
|
|
|
21
22
|
export let layout;
|
|
22
23
|
|
|
24
|
+
onMount( () => {
|
|
25
|
+
window.addEventListener('resize', on_resize)
|
|
26
|
+
return () => {
|
|
27
|
+
window.removeEventListener('resize', on_resize)
|
|
28
|
+
}
|
|
29
|
+
})
|
|
30
|
+
|
|
31
|
+
function on_resize()
|
|
32
|
+
{
|
|
33
|
+
auto_hide_sidebar();
|
|
34
|
+
}
|
|
35
|
+
|
|
23
36
|
const sizes = {
|
|
24
37
|
bottom: 240,
|
|
25
38
|
toolbar: 40,
|
|
@@ -220,9 +233,8 @@
|
|
|
220
233
|
{lg_content_area_horizontal_dim}
|
|
221
234
|
z-0 overflow-x-hidden"
|
|
222
235
|
|
|
223
|
-
on:click={(
|
|
224
|
-
|
|
225
|
-
auto_hide_sidebar()}}>
|
|
236
|
+
on:click={(e) => auto_hide_sidebar() }
|
|
237
|
+
on:keydown={(e) => auto_hide_sidebar()}>
|
|
226
238
|
<Configurable config={layout.mainContent}>
|
|
227
239
|
<div slot='alt'></div>
|
|
228
240
|
</Configurable>
|
package/index.d.ts
CHANGED
|
@@ -28,6 +28,13 @@ export { default as Sidebar } from './components/sidebar/sidebar.svelte';
|
|
|
28
28
|
export { default as SidebarBrand } from './components/sidebar/sidebar.brand.svelte';
|
|
29
29
|
export { default as SidebarGroup } from './components/sidebar/sidebar.group.svelte';
|
|
30
30
|
export { default as SidebarItem } from './components/sidebar/sidebar.item.svelte';
|
|
31
|
-
export {
|
|
31
|
+
export { default as List } from './components/list/list.svelte';
|
|
32
|
+
export { default as ListTitle } from './components/list/list.title.svelte';
|
|
33
|
+
export { default as ListSummary } from './components/list/list.summary.svelte';
|
|
34
|
+
export { default as ListInserter } from './components/list/list.inserter.svelte';
|
|
35
|
+
export { default as ListDateProperty } from './components/list/list.date.svelte';
|
|
36
|
+
export { default as ListComboProperty } from './components/list/list.combo.svelte';
|
|
37
|
+
export { select_item, activate_item, clear_active_item, is_active, is_selected, get_active, editable, start_editing, selectable, handle_select } from './utils';
|
|
32
38
|
export { data_tick_store, has_selected_item, has_data_item } from "./stores";
|
|
33
|
-
export { context_toolbar_operations, page_toolbar_operations, context_items_store } from './stores';
|
|
39
|
+
export { context_toolbar_operations, page_toolbar_operations, context_items_store, context_types_store } from './stores';
|
|
40
|
+
export { inform_modification, inform_item, push_changes } from './updates';
|
package/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
// @ts-ignore
|
|
2
|
+
import { List } from "flowbite-svelte";
|
|
2
3
|
//export { default as Row } from "./page.row.svelte";
|
|
3
4
|
export { default as Page } from "./page.svelte";
|
|
4
5
|
export { default as Tile } from "./tile.svelte";
|
|
@@ -33,6 +34,13 @@ export { default as Sidebar } from './components/sidebar/sidebar.svelte';
|
|
|
33
34
|
export { default as SidebarBrand } from './components/sidebar/sidebar.brand.svelte';
|
|
34
35
|
export { default as SidebarGroup } from './components/sidebar/sidebar.group.svelte';
|
|
35
36
|
export { default as SidebarItem } from './components/sidebar/sidebar.item.svelte';
|
|
36
|
-
export {
|
|
37
|
+
export { default as List } from './components/list/list.svelte';
|
|
38
|
+
export { default as ListTitle } from './components/list/list.title.svelte';
|
|
39
|
+
export { default as ListSummary } from './components/list/list.summary.svelte';
|
|
40
|
+
export { default as ListInserter } from './components/list/list.inserter.svelte';
|
|
41
|
+
export { default as ListDateProperty } from './components/list/list.date.svelte';
|
|
42
|
+
export { default as ListComboProperty } from './components/list/list.combo.svelte';
|
|
43
|
+
export { select_item, activate_item, clear_active_item, is_active, is_selected, get_active, editable, start_editing, selectable, handle_select } from './utils';
|
|
37
44
|
export { data_tick_store, has_selected_item, has_data_item } from "./stores";
|
|
38
|
-
export { context_toolbar_operations, page_toolbar_operations, context_items_store } from './stores'; // tmp
|
|
45
|
+
export { context_toolbar_operations, page_toolbar_operations, context_items_store, context_types_store } from './stores'; // tmp
|
|
46
|
+
export { inform_modification, inform_item, push_changes } from './updates'; // tmp
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@humandialog/forms.svelte",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.16",
|
|
4
4
|
"description": "Basic Svelte UI components for Object Reef applications",
|
|
5
5
|
"devDependencies": {
|
|
6
6
|
"@playwright/test": "^1.28.1",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
},
|
|
27
27
|
"type": "module",
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@humandialog/auth.svelte": "^1.0
|
|
29
|
+
"@humandialog/auth.svelte": "^1.1.0",
|
|
30
30
|
"flowbite-svelte": "^0.29.13",
|
|
31
31
|
"svelte-icons": "^2.1.0",
|
|
32
32
|
"svelte-spa-router": "^3.3.0"
|
|
@@ -74,6 +74,15 @@
|
|
|
74
74
|
"./components/icon.svelte": "./components/icon.svelte",
|
|
75
75
|
"./components/input.text.svelte": "./components/input.text.svelte",
|
|
76
76
|
"./components/inputbox.ltop.svelte": "./components/inputbox.ltop.svelte",
|
|
77
|
+
"./components/list/internal/list.element.svelte": "./components/list/internal/list.element.svelte",
|
|
78
|
+
"./components/list/internal/list.inserter.svelte": "./components/list/internal/list.inserter.svelte",
|
|
79
|
+
"./components/list/list.combo.svelte": "./components/list/list.combo.svelte",
|
|
80
|
+
"./components/list/list.date.svelte": "./components/list/list.date.svelte",
|
|
81
|
+
"./components/list/list.inserter.svelte": "./components/list/list.inserter.svelte",
|
|
82
|
+
"./components/list/list.summary.svelte": "./components/list/list.summary.svelte",
|
|
83
|
+
"./components/list/list.svelte": "./components/list/list.svelte",
|
|
84
|
+
"./components/list/list.title.svelte": "./components/list/list.title.svelte",
|
|
85
|
+
"./components/list/List": "./components/list/List.js",
|
|
77
86
|
"./components/menu": "./components/menu.js",
|
|
78
87
|
"./components/radio.svelte": "./components/radio.svelte",
|
|
79
88
|
"./components/sidebar/sidebar.brand.svelte": "./components/sidebar/sidebar.brand.svelte",
|
package/page.svelte
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
context_toolbar_operations,
|
|
9
9
|
page_toolbar_operations } from './stores.js'
|
|
10
10
|
|
|
11
|
+
//import {chnages} from './utils.js'
|
|
11
12
|
|
|
12
13
|
export let context = "data"
|
|
13
14
|
export let self = null
|
|
@@ -67,6 +68,8 @@
|
|
|
67
68
|
let t = 0
|
|
68
69
|
$: {
|
|
69
70
|
t = $data_tick_store
|
|
71
|
+
//chnages.just_changed_context = false;
|
|
72
|
+
|
|
70
73
|
if (t > last_tick) {
|
|
71
74
|
last_tick = t
|
|
72
75
|
if (self != null)
|
|
@@ -92,9 +95,12 @@
|
|
|
92
95
|
|
|
93
96
|
function clear_selection(e)
|
|
94
97
|
{
|
|
98
|
+
//console.log('page click', chnages.just_changed_context)
|
|
95
99
|
if(!clears_context)
|
|
96
100
|
return;
|
|
97
101
|
|
|
102
|
+
|
|
103
|
+
|
|
98
104
|
let contexts = clears_context.split(' ');
|
|
99
105
|
contexts.forEach(c =>
|
|
100
106
|
{
|
|
@@ -102,8 +108,8 @@
|
|
|
102
108
|
$context_info_store[c] = '';
|
|
103
109
|
})
|
|
104
110
|
|
|
105
|
-
e.stopPropagation();
|
|
106
|
-
|
|
111
|
+
//e.stopPropagation();
|
|
112
|
+
|
|
107
113
|
$context_toolbar_operations = [];
|
|
108
114
|
$data_tick_store = $data_tick_store + 1;
|
|
109
115
|
}
|
package/stores.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
import {writable, get} from 'svelte/store';
|
|
3
|
+
import {SCREEN_SIZES} from './utils.js'
|
|
3
4
|
|
|
4
5
|
export const data_tick_store = writable(1);
|
|
5
6
|
export const context_items_store = writable({focused:'', data: null, sel: null})
|
|
@@ -93,12 +94,12 @@ export function toggle_sidebar(index)
|
|
|
93
94
|
|
|
94
95
|
export function auto_hide_sidebar()
|
|
95
96
|
{
|
|
96
|
-
//
|
|
97
|
+
//console.log("sw: " + window.innerWidth, SCREEN_SIZES.lg)
|
|
97
98
|
|
|
98
|
-
if(
|
|
99
|
+
if(window.innerWidth < SCREEN_SIZES.lg)
|
|
99
100
|
hide_sidebar()
|
|
100
101
|
}
|
|
101
|
-
|
|
102
|
+
|
|
102
103
|
export function hide_sidebar()
|
|
103
104
|
{
|
|
104
105
|
previously_visible_sidebar = get(main_sidebar_visible_store);
|
package/updates.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import {writable} from 'svelte/store';
|
|
2
|
-
import {
|
|
2
|
+
import {reef} from '@humandialog/auth.svelte/dist/index'
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
const modified_item_store = writable(null);
|
|
@@ -75,12 +75,8 @@ update_request_ticket.subscribe(async (v) => {
|
|
|
75
75
|
|
|
76
76
|
try
|
|
77
77
|
{
|
|
78
|
-
console.log('push: ', changes);
|
|
79
|
-
const res = await
|
|
80
|
-
{
|
|
81
|
-
method: "POST",
|
|
82
|
-
body: JSON.stringify({ Items: changes }),
|
|
83
|
-
});
|
|
78
|
+
//console.log('push: ', changes);
|
|
79
|
+
const res = await reef.post('/Push', { Items: changes });
|
|
84
80
|
|
|
85
81
|
if(res)
|
|
86
82
|
{
|
package/utils.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export function activate_item(context_level: any, itm: any, operations?: null):
|
|
|
4
4
|
export function clear_active_item(context_level: any): void;
|
|
5
5
|
export function is_selected(itm: any): boolean;
|
|
6
6
|
export function is_active(context_level: any, itm: any): boolean;
|
|
7
|
+
export function get_active(context_level: any): any;
|
|
7
8
|
export function editable(node: any, action: any): {
|
|
8
9
|
destroy(): void;
|
|
9
10
|
};
|
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 } from "./stores";
|
|
3
|
+
import { context_items_store, context_toolbar_operations, data_tick_store } from "./stores";
|
|
4
4
|
|
|
5
5
|
export let icons = {symbols :null}
|
|
6
6
|
|
|
@@ -16,12 +16,23 @@ export function is_device_smaller_than(br)
|
|
|
16
16
|
return window.innerWidth < SCREEN_SIZES[br]
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
+
//export const chnages = {
|
|
20
|
+
// just_changed_context: false
|
|
21
|
+
//}
|
|
22
|
+
|
|
19
23
|
export function select_item(itm)
|
|
20
24
|
{
|
|
21
25
|
let data_context = get(context_items_store);
|
|
22
26
|
data_context['sel'] = itm;
|
|
23
27
|
data_context.focused = 'sel';
|
|
24
28
|
context_items_store.set( {...data_context} )
|
|
29
|
+
|
|
30
|
+
let ticket = get(data_tick_store)
|
|
31
|
+
ticket++;
|
|
32
|
+
data_tick_store.set(ticket)
|
|
33
|
+
|
|
34
|
+
//chnages.just_changed_context = true;
|
|
35
|
+
|
|
25
36
|
}
|
|
26
37
|
|
|
27
38
|
export function activate_item(context_level, itm, operations=null)
|
|
@@ -32,6 +43,12 @@ export function activate_item(context_level, itm, operations=null)
|
|
|
32
43
|
data_context.focused = context_level;
|
|
33
44
|
context_items_store.set( {...data_context} )
|
|
34
45
|
|
|
46
|
+
let ticket = get(data_tick_store)
|
|
47
|
+
ticket++;
|
|
48
|
+
data_tick_store.set(ticket)
|
|
49
|
+
|
|
50
|
+
//chnages.just_changed_context = true;
|
|
51
|
+
|
|
35
52
|
if(operations && Array.isArray(operations))
|
|
36
53
|
context_toolbar_operations.set( [...operations] )
|
|
37
54
|
}
|
|
@@ -43,6 +60,12 @@ export function clear_active_item(context_level)
|
|
|
43
60
|
data_context.focused = context_level;
|
|
44
61
|
context_items_store.set( {...data_context} )
|
|
45
62
|
|
|
63
|
+
let ticket = get(data_tick_store)
|
|
64
|
+
ticket++;
|
|
65
|
+
data_tick_store.set(ticket)
|
|
66
|
+
|
|
67
|
+
//chnages.just_changed_context = true;
|
|
68
|
+
|
|
46
69
|
context_toolbar_operations.set( [] )
|
|
47
70
|
}
|
|
48
71
|
|
|
@@ -65,13 +88,21 @@ export function is_active(context_level, itm)
|
|
|
65
88
|
return false;
|
|
66
89
|
}
|
|
67
90
|
|
|
91
|
+
export function get_active(context_level)
|
|
92
|
+
{
|
|
93
|
+
let data_context = get(context_items_store);
|
|
94
|
+
if(data_context != undefined)
|
|
95
|
+
return data_context[context_level]
|
|
96
|
+
else
|
|
97
|
+
return null;
|
|
98
|
+
}
|
|
68
99
|
|
|
69
100
|
export function editable(node, action)
|
|
70
101
|
{
|
|
71
102
|
const org_text = node.textContent;
|
|
72
103
|
const blur_listener = async (e) =>
|
|
73
104
|
{
|
|
74
|
-
await finish_editing(
|
|
105
|
+
await finish_editing(false, false);
|
|
75
106
|
}
|
|
76
107
|
|
|
77
108
|
const key_listener = async (e) =>
|
|
@@ -80,20 +111,20 @@ export function editable(node, action)
|
|
|
80
111
|
{
|
|
81
112
|
case 'Esc':
|
|
82
113
|
case 'Escape':
|
|
83
|
-
await finish_editing(true);
|
|
114
|
+
await finish_editing(true, false);
|
|
84
115
|
e.stopPropagation();
|
|
85
116
|
e.preventDefault();
|
|
86
117
|
break;
|
|
87
118
|
|
|
88
119
|
case 'Enter':
|
|
89
|
-
await finish_editing(false);
|
|
120
|
+
await finish_editing(false, true);
|
|
90
121
|
e.stopPropagation();
|
|
91
122
|
e.preventDefault();
|
|
92
123
|
break;
|
|
93
124
|
}
|
|
94
125
|
}
|
|
95
126
|
|
|
96
|
-
const finish_editing = async (cancel) =>
|
|
127
|
+
const finish_editing = async (cancel, incremental) =>
|
|
97
128
|
{
|
|
98
129
|
node.removeEventListener("blur", blur_listener);
|
|
99
130
|
node.removeEventListener("keydown", key_listener);
|
|
@@ -111,7 +142,15 @@ export function editable(node, action)
|
|
|
111
142
|
await action(node.textContent)
|
|
112
143
|
}
|
|
113
144
|
|
|
114
|
-
|
|
145
|
+
const finish_event = new CustomEvent("finish", {
|
|
146
|
+
detail:
|
|
147
|
+
{
|
|
148
|
+
cancel: cancel,
|
|
149
|
+
incremental: incremental
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
|
|
153
|
+
node.dispatchEvent(finish_event);
|
|
115
154
|
node.removeEventListener("finish", (e) => {});
|
|
116
155
|
}
|
|
117
156
|
|
|
@@ -164,7 +203,7 @@ export function start_editing(element, finish_callback)
|
|
|
164
203
|
|
|
165
204
|
if(finish_callback)
|
|
166
205
|
{
|
|
167
|
-
editable_node.addEventListener("finish", (e) => {finish_callback()})
|
|
206
|
+
editable_node.addEventListener("finish", (e) => { finish_callback(e.detail) })
|
|
168
207
|
}
|
|
169
208
|
|
|
170
209
|
const edit_event = new Event("edit")
|