@humandialog/forms.svelte 0.5.12 → 0.5.14

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.
@@ -3,6 +3,7 @@ export declare class rCombo_item {
3
3
  Name: string | undefined;
4
4
  Avatar: string | undefined;
5
5
  Color: string | undefined;
6
+ Icon: any | undefined;
6
7
  }
7
8
  export declare class rCombo_definition {
8
9
  source: rCombo_item[];
@@ -13,5 +14,6 @@ export declare class rCombo_definition {
13
14
  element_key: string | undefined;
14
15
  element_name: string | undefined;
15
16
  element_avatar: string | undefined;
17
+ element_icon: string | undefined;
16
18
  }
17
19
  export declare const cached_sources: Map<string, Promise<object>>;
@@ -4,11 +4,13 @@ export let key = void 0;
4
4
  export let name = void 0;
5
5
  export let avatar = void 0;
6
6
  export let color = void 0;
7
+ export let icon = void 0;
7
8
  let definition = getContext("rCombo-definition");
8
9
  let item = new rCombo_item();
9
10
  item.Name = name;
10
11
  item.Key = key;
11
12
  item.Avatar = avatar;
12
13
  item.Color = color;
14
+ item.Icon = icon;
13
15
  definition.source.push(item);
14
16
  </script>
@@ -5,6 +5,7 @@ declare const __propDef: {
5
5
  name?: string | undefined;
6
6
  avatar?: string | undefined;
7
7
  color?: string | undefined;
8
+ icon?: any | undefined;
8
9
  };
9
10
  events: {
10
11
  [evt: string]: CustomEvent<any>;
@@ -3,6 +3,7 @@ export class rCombo_item {
3
3
  Name;
4
4
  Avatar; //url to avatar
5
5
  Color;
6
+ Icon = undefined;
6
7
  }
7
8
  export class rCombo_definition {
8
9
  source = [];
@@ -13,5 +14,6 @@ export class rCombo_definition {
13
14
  element_key;
14
15
  element_name;
15
16
  element_avatar;
17
+ element_icon;
16
18
  }
17
19
  export const cached_sources = new Map();
@@ -6,6 +6,7 @@ export let onCollect = void 0;
6
6
  export let key = "";
7
7
  export let name = "";
8
8
  export let avatar = "";
9
+ export let icon = "";
9
10
  let definition = getContext("rCombo-definition");
10
11
  definition.collection_expr = association;
11
12
  definition.collection_path = path;
@@ -14,4 +15,5 @@ definition.onCollect = onCollect;
14
15
  definition.element_key = key;
15
16
  definition.element_name = name;
16
17
  definition.element_avatar = avatar;
18
+ definition.element_icon = icon;
17
19
  </script>
@@ -8,6 +8,7 @@ declare const __propDef: {
8
8
  key?: string | undefined;
9
9
  name?: string | undefined;
10
10
  avatar?: string | undefined;
11
+ icon?: string | undefined;
11
12
  };
12
13
  events: {
13
14
  [evt: string]: CustomEvent<any>;
@@ -84,6 +84,14 @@ function setup(...args) {
84
84
  item = self ?? $contextItemsStore[ctx];
85
85
  if (!typename)
86
86
  typename = $contextTypesStore[ctx];
87
+ if (!typename) {
88
+ if (item.$type)
89
+ typename = item.$type;
90
+ else if (item.$ref) {
91
+ let s2 = item.$ref.split("/");
92
+ typename = s2[1];
93
+ }
94
+ }
87
95
  if (!label)
88
96
  label = a;
89
97
  tick_request_internal = tick_request_internal + 1;
@@ -493,6 +501,8 @@ function source_fetched(source) {
493
501
  if (icon) {
494
502
  if (definition.element_avatar)
495
503
  el.Avatar = e[definition.element_avatar];
504
+ else if (definition.element_icon)
505
+ el.Icon = e[definition.element_icon];
496
506
  else
497
507
  el.Avatar = e.$icon;
498
508
  }
@@ -541,6 +551,10 @@ function on_focus_out(e) {
541
551
  {#if icon && sel_item}
542
552
  {#if sel_item.Color}
543
553
  <Icon size={5} circle={true} color={sel_item.Color}/>
554
+ {:else if sel_item.Icon}
555
+ <Icon size={4} component={sel_item.Icon}/>
556
+ {:else if sel_item.Icon == null}
557
+ <div class="w-4 h-4"></div>
544
558
  {:else}
545
559
  <Icon size={5} circle={true} symbol={sel_item.Avatar} label={sel_item.Name}/>
546
560
  {/if}
@@ -591,6 +605,10 @@ function on_focus_out(e) {
591
605
  <Icon size={5} circle={true} color={item.Color}/>
592
606
  {:else if item.Avatar}
593
607
  <Icon size={5} circle={true} symbol={item.Avatar}/>
608
+ {:else if item.Icon}
609
+ <Icon size={4} component={item.Icon}/>
610
+ {:else if item.Icon == null}
611
+ <div class="w-4 h-4"></div>
594
612
  {:else if item.Name}
595
613
  <Icon size={5} circle={true} label={item.Name}/>
596
614
  {:else}
@@ -18,7 +18,7 @@ let toolboxY;
18
18
  export function showAsToolbox(rect) {
19
19
  isToolbox = true;
20
20
  visible = true;
21
- const margin = 15;
21
+ const margin = 0;
22
22
  const windowWidth = window.innerWidth - 2 * margin;
23
23
  toolboxX = margin;
24
24
  toolboxY = rect.bottom + margin;
@@ -1,5 +1,5 @@
1
1
  <script>import { Selection_helper } from "./internal/Selection_helper";
2
- import { afterUpdate, getContext, onDestroy, onMount } from "svelte";
2
+ import { beforeUpdate, afterUpdate, getContext, onDestroy, onMount } from "svelte";
3
3
  import { Selection_range, Selection_edge } from "./internal/Selection_range";
4
4
  import { data_tick_store, contextItemsStore, contextTypesStore } from "../../stores.js";
5
5
  import { informModification, pushChanges } from "../../updates.js";
@@ -85,8 +85,6 @@ function setup_source() {
85
85
  if (!value)
86
86
  value = "<p>\u200B</p>";
87
87
  has_changed_value = false;
88
- if (stored_selection)
89
- set_selection(stored_selection);
90
88
  }
91
89
  onMount(() => {
92
90
  if (!editable_div)
@@ -114,6 +112,19 @@ onDestroy(() => {
114
112
  if (is_command_palette_visible)
115
113
  hide_command_palette();
116
114
  });
115
+ let storedSelection = null;
116
+ beforeUpdate(() => {
117
+ if (editable_div && document.activeElement == editable_div)
118
+ storedSelection = Selection_helper.get_selection(editable_div);
119
+ else
120
+ storedSelection = null;
121
+ });
122
+ afterUpdate(() => {
123
+ if (storedSelection) {
124
+ const range = Selection_helper.create_range(editable_div, storedSelection.begin.absolute_index, storedSelection.end.absolute_index);
125
+ set_selection(range);
126
+ }
127
+ });
117
128
  function content_changed(checkZeroWitdhSpaces) {
118
129
  if (document.activeElement != editable_div)
119
130
  return;
@@ -755,7 +766,7 @@ function set_tag_and_class_for_paragraph(node, tag, css_class) {
755
766
  function do_format(tag, css_class) {
756
767
  const elem = editable_div;
757
768
  const editableElem = editable_div;
758
- let stored_selection2 = Selection_helper.get_selection(elem);
769
+ let stored_selection = Selection_helper.get_selection(elem);
759
770
  let sel = window.getSelection();
760
771
  let should_restore_selection = false;
761
772
  if (sel.isCollapsed || sel.focusNode === sel.anchorNode) {
@@ -784,7 +795,7 @@ function do_format(tag, css_class) {
784
795
  } while (node);
785
796
  }
786
797
  if (should_restore_selection) {
787
- const range = Selection_helper.create_range(editableElem, stored_selection2.begin.absolute_index, stored_selection2.end.absolute_index);
798
+ const range = Selection_helper.create_range(editableElem, stored_selection.begin.absolute_index, stored_selection.end.absolute_index);
788
799
  set_selection(range);
789
800
  }
790
801
  }
@@ -941,10 +952,7 @@ function navigate_command_palette(key) {
941
952
  else if (key == "ArrowUp")
942
953
  palette.navigate_up();
943
954
  }
944
- let stored_selection = void 0;
945
955
  function on_selection_changed() {
946
- let active_range = Selection_helper.get_selection(editable_div);
947
- stored_selection = window.getSelection()?.getRangeAt(0);
948
956
  }
949
957
  let intervalId = 0;
950
958
  function on_focus() {
@@ -952,7 +960,7 @@ function on_focus() {
952
960
  function on_blur() {
953
961
  let active_range = Selection_helper.get_selection(editable_div);
954
962
  console.log("rich.edit: on_blur", active_range?.begin?.absolute_index);
955
- stored_selection = void 0;
963
+ storedSelection = null;
956
964
  if (onBlur) {
957
965
  onBlur();
958
966
  onBlur = void 0;
@@ -989,7 +997,10 @@ let commands = [
989
997
  // { caption: 'Heading 1', description: 'Big section heading', tags: 'h1', icon: FaHead, icon_size: 6, on_choice: () => { do_format('h2', '') } } ,
990
998
  // { caption: 'Heading 2', description: 'Medium section heading', tags: 'h2', icon: FaHead, icon_size: 5, on_choice: () => { do_format('h3', '') } } ,
991
999
  // { caption: 'Heading 3', description: 'Small section heading', tags: 'h3', icon: FaHead, icon_size: 4, on_choice: () => { do_format('h4', '') } } ,
992
- { caption: "Heading", description: "Description heading", tags: "h2", icon: FaHead, icon_size: 6, on_choice: () => {
1000
+ { caption: "Heading 1", description: "Description heading", tags: "h1", icon: FaHead, icon_size: 6, on_choice: () => {
1001
+ do_format("h1", "");
1002
+ } },
1003
+ { caption: "Heading 2", description: "Description heading", tags: "h2", icon: FaHead, icon_size: 6, on_choice: () => {
993
1004
  do_format("h2", "");
994
1005
  } },
995
1006
  // { caption: 'Heading 2', description: 'Medium description heading', tags: 'h3', icon: FaHead, icon_size: 5, on_choice: () => { do_format('h3', '') } } ,
@@ -4,7 +4,7 @@ export const KanbanCardBottom = 3;
4
4
  export class rKanban_column {
5
5
  id;
6
6
  title = '';
7
- width = 'w-[240px]';
7
+ width = '';
8
8
  state = '';
9
9
  finishing = false;
10
10
  operations = undefined;
@@ -1,6 +1,6 @@
1
- <script>import { getContext, afterUpdate, tick } from "svelte";
1
+ <script>import { getContext, afterUpdate, tick, onMount } from "svelte";
2
2
  import { data_tick_store, contextItemsStore, contextTypesStore } from "../../../stores";
3
- import { getActive, activateItem, editable, isActive, isSelected, selectable, startEditing } from "../../../utils.js";
3
+ import { getActive, activateItem, editable, isActive, isSelected, selectable, startEditing, isDeviceSmallerThan } from "../../../utils.js";
4
4
  import Card from "./kanban.card.svelte";
5
5
  import { KanbanColumnTop, KanbanColumnBottom } from "../Kanban";
6
6
  import Inserter from "./kanban.inserter.svelte";
@@ -38,7 +38,6 @@ export function setBorder(what_to_do) {
38
38
  let definition = getContext("rKanban-definition");
39
39
  let columnDef = definition.columns[currentColumnIdx];
40
40
  let column_items = void 0;
41
- let width_class = columnDef.width ? `w-11/12 sm:${columnDef.width}` : "w-11/12 sm:w-[240px]";
42
41
  $:
43
42
  setup_data();
44
43
  $:
@@ -165,6 +164,25 @@ export function activate(e) {
165
164
  }
166
165
  );
167
166
  }
167
+ onMount(() => {
168
+ window.addEventListener("resize", onResizeWindow);
169
+ return () => {
170
+ window.removeEventListener("resize", onResizeWindow);
171
+ };
172
+ });
173
+ let styleWidth = getWidthStyle();
174
+ function onResizeWindow() {
175
+ styleWidth = getWidthStyle();
176
+ }
177
+ function getWidthStyle() {
178
+ const assumed_space = 800;
179
+ const default_column_width = Math.floor(assumed_space / definition.columns.length);
180
+ const column_width = columnDef.width ? columnDef.width : default_column_width;
181
+ if (window.innerWidth >= 640)
182
+ return `width: ${column_width}px; min-width: 180px; max-width: ${column_width}px;`;
183
+ else
184
+ return "width: 92%;";
185
+ }
168
186
  </script>
169
187
 
170
188
  <!-- svelte-ignore a11y-click-events-have-key-events -->
@@ -172,11 +190,11 @@ export function activate(e) {
172
190
  <section class=" snap-center
173
191
  sm:snap-align-none
174
192
  flex-none sm:flex-1
175
- sm:min-w-[180px] sm:max-w-[240px]
176
193
  sm:min-h-[calc(100vh-8rem)]
177
194
  min-h-[calc(100vh-5rem)]
178
195
  rounded-md border border-transparent
179
- {width_class} {selected_class} {focused_class}"
196
+ {selected_class} {focused_class}"
197
+ style={styleWidth}
180
198
  use:selectable={columnDef}
181
199
  on:click={activate}>
182
200
  <header class:cursor-pointer={!is_row_active && columnDef.operations} bind:this={headerElement}>
@@ -237,4 +255,5 @@ export function activate(e) {
237
255
  {/if}
238
256
 
239
257
  </ul>
240
- </section>
258
+ </section>
259
+
@@ -1,7 +1,7 @@
1
1
  <script>import { getContext } from "svelte";
2
2
  import { rKanban_column } from "./Kanban";
3
3
  export let title = "";
4
- export let width = "w-[240px]";
4
+ export let width = "";
5
5
  export let state = "";
6
6
  export let finishing = false;
7
7
  export let operations = void 0;
package/index.d.ts CHANGED
@@ -52,7 +52,7 @@ export { default as KanbanTagsProperty } from './components/kanban/kanban.tags.s
52
52
  export { default as KanbanCallbacks } from './components/kanban/kanban.callbacks.svelte';
53
53
  export { KanbanColumnTop, KanbanColumnBottom } from './components/kanban/Kanban';
54
54
  export { selectItem, activateItem, clearActiveItem, isActive, isSelected, getActive, editable, startEditing, saveCurrentEditable, selectable, handleSelect, isDeviceSmallerThan } from './utils';
55
- export { mainViewReloader, reloadMainView } from './stores.js';
55
+ export { mainContentPageReloader, reloadMainContentPage } from './stores.js';
56
56
  export { data_tick_store, // tmp
57
57
  hasSelectedItem, hasDataItem, setNavigatorTitle } from "./stores";
58
58
  export { contextToolbarOperations, pageToolbarOperations, contextItemsStore, contextTypesStore } from './stores';
package/index.js CHANGED
@@ -58,7 +58,7 @@ export { default as KanbanTagsProperty } from './components/kanban/kanban.tags.s
58
58
  export { default as KanbanCallbacks } from './components/kanban/kanban.callbacks.svelte';
59
59
  export { KanbanColumnTop, KanbanColumnBottom } from './components/kanban/Kanban';
60
60
  export { selectItem, activateItem, clearActiveItem, isActive, isSelected, getActive, editable, startEditing, saveCurrentEditable, selectable, handleSelect, isDeviceSmallerThan } from './utils';
61
- export { mainViewReloader, reloadMainView } from './stores.js';
61
+ export { mainContentPageReloader, reloadMainContentPage } from './stores.js';
62
62
  export { data_tick_store, // tmp
63
63
  hasSelectedItem, hasDataItem, setNavigatorTitle } from "./stores";
64
64
  export { contextToolbarOperations, pageToolbarOperations, contextItemsStore, contextTypesStore } from './stores'; // tmp
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@humandialog/forms.svelte",
3
- "version": "0.5.12",
3
+ "version": "0.5.14",
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.5.1",
29
+ "@humandialog/auth.svelte": "^1.5.3",
30
30
  "flowbite-svelte": "^0.29.13",
31
31
  "svelte-icons": "^2.1.0",
32
32
  "svelte-spa-router": "^3.3.0"
package/stores.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export function setNavigatorTitle(key: any, title: any): void;
2
2
  export function hasSelectedItem(): boolean;
3
3
  export function hasDataItem(): boolean;
4
- export function reloadMainView(): void;
4
+ export function reloadMainContentPage(): void;
5
5
  export function set_dark_mode_default(value: any): void;
6
6
  export function set_default_tools_visible(value: any): void;
7
7
  export function restore_defults(): void;
@@ -28,7 +28,7 @@ export const contextToolbarOperations: import("svelte/store").Writable<never[]>;
28
28
  export const pageToolbarOperations: import("svelte/store").Writable<never[]>;
29
29
  export const page_title: import("svelte/store").Writable<string>;
30
30
  export const nav_titles: import("svelte/store").Writable<{}>;
31
- export const mainViewReloader: import("svelte/store").Writable<number>;
31
+ export const mainContentPageReloader: import("svelte/store").Writable<number>;
32
32
  export const dark_mode_store: import("svelte/store").Writable<any>;
33
33
  export const main_sidebar_visible_store: import("svelte/store").Writable<any>;
34
34
  export let previously_visible_sidebar: string;
package/stores.js CHANGED
@@ -10,7 +10,7 @@ export const contextToolbarOperations = writable([]);
10
10
  export const pageToolbarOperations = writable([]);
11
11
  export const page_title = writable('');
12
12
  export const nav_titles = writable({});
13
- export const mainViewReloader = writable(1);
13
+ export const mainContentPageReloader = writable(1);
14
14
 
15
15
  export function setNavigatorTitle(key, title)
16
16
  {
@@ -31,11 +31,11 @@ export function hasDataItem()
31
31
  return itm !== null && itm !== undefined;
32
32
  }
33
33
 
34
- export function reloadMainView()
34
+ export function reloadMainContentPage()
35
35
  {
36
- let val = get(mainViewReloader);
36
+ let val = get(mainContentPageReloader);
37
37
  val += 1;
38
- mainViewReloader.set(val);
38
+ mainContentPageReloader.set(val);
39
39
  }
40
40
 
41
41