@humandialog/forms.svelte 1.7.27 → 1.8.0

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 (258) hide show
  1. package/components/Fab.25.svelte +473 -0
  2. package/components/Fab.25.svelte.d.ts +18 -0
  3. package/components/Fab.svelte +51 -170
  4. package/components/Floating_container.25.svelte +178 -0
  5. package/components/Floating_container.25.svelte.d.ts +23 -0
  6. package/components/Floating_container.svelte +18 -6
  7. package/components/Grid.menu.svelte +15 -16
  8. package/components/Grid.menu.svelte.d.ts +2 -2
  9. package/components/breadcrumb.svelte +27 -27
  10. package/components/checkbox.svelte +1 -1
  11. package/components/combo/combo.svelte +60 -79
  12. package/components/combo/combo.svelte.d.ts +1 -0
  13. package/components/contextmenu-25.svelte +518 -0
  14. package/components/contextmenu-25.svelte.d.ts +26 -0
  15. package/components/contextmenu.svelte +179 -65
  16. package/components/contextmenu.svelte.d.ts +2 -2
  17. package/components/date.svelte +42 -21
  18. package/components/date.svelte.d.ts +1 -0
  19. package/components/delayed.spinner.svelte +2 -1
  20. package/components/document/editor.svelte +21 -31
  21. package/components/document/editor.svelte.d.ts +0 -2
  22. package/components/document/internal/palette.row.svelte +10 -8
  23. package/components/document/internal/palette.svelte +7 -8
  24. package/components/document/rich.edit.svelte +10 -10
  25. package/components/edit.field.svelte +1 -1
  26. package/components/input.text.svelte.d.ts +2 -2
  27. package/components/inputbox.ltop.svelte +1 -1
  28. package/components/inputbox.ltop.svelte.d.ts +12 -12
  29. package/components/kanban/internal/kanban.card.svelte +27 -47
  30. package/components/kanban/internal/kanban.column.svelte +44 -24
  31. package/components/kanban/internal/kanban.inserter.svelte +11 -14
  32. package/components/kanban/internal/kanban.move.menu.svelte +12 -12
  33. package/components/kanban/internal/kanban.props.svelte +24 -9
  34. package/components/kanban/kanban.svelte +24 -77
  35. package/components/kanban/kanban.svelte.d.ts +2 -0
  36. package/components/kanban copy.zip +0 -0
  37. package/components/list/List.d.ts +1 -0
  38. package/components/list/List.js +1 -0
  39. package/components/list/internal/list.element copy.svelte +530 -0
  40. package/components/list/internal/list.element copy.svelte.d.ts +35 -0
  41. package/components/list/internal/list.element.svelte +308 -268
  42. package/components/list/internal/list.element.svelte.d.ts +5 -7
  43. package/components/list/internal/list.inserter.svelte +38 -6
  44. package/components/list/internal/note.txt +5 -0
  45. package/components/list/list.svelte +32 -11
  46. package/components/list/list.svelte.d.ts +5 -3
  47. package/components/list/list.title.svelte +2 -0
  48. package/components/list/list.title.svelte.d.ts +1 -0
  49. package/components/menu.d.ts +1 -1
  50. package/components/menu.js +3 -3
  51. package/components/paginator.svelte +79 -9
  52. package/components/prose.editable.p.svelte.d.ts +2 -2
  53. package/components/prose.editable.span.svelte.d.ts +2 -2
  54. package/components/r.edit.svelte +9 -0
  55. package/components/r.edit.svelte.d.ts +23 -0
  56. package/components/r.editable.svelte +74 -0
  57. package/components/r.editable.svelte.d.ts +31 -0
  58. package/components/r.figcaption.svelte +5 -0
  59. package/components/r.figcaption.svelte.d.ts +27 -0
  60. package/components/r.figure.svelte +25 -0
  61. package/components/r.figure.svelte.d.ts +29 -0
  62. package/components/r.icon.svelte +229 -0
  63. package/components/r.icon.svelte.d.ts +33 -0
  64. package/components/radio.svelte +1 -1
  65. package/components/ricons/arrow-up.svelte +11 -0
  66. package/components/ricons/arrow-up.svelte.d.ts +27 -0
  67. package/components/ricons/barcode.svelte +14 -0
  68. package/components/ricons/barcode.svelte.d.ts +27 -0
  69. package/components/ricons/bold.svelte +10 -0
  70. package/components/ricons/bold.svelte.d.ts +27 -0
  71. package/components/ricons/calendar.svelte +13 -0
  72. package/components/ricons/calendar.svelte.d.ts +27 -0
  73. package/components/ricons/calendars.svelte +16 -0
  74. package/components/ricons/calendars.svelte.d.ts +27 -0
  75. package/components/ricons/cat.svelte +14 -0
  76. package/components/ricons/cat.svelte.d.ts +27 -0
  77. package/components/ricons/check-check.svelte +12 -0
  78. package/components/ricons/check-check.svelte.d.ts +27 -0
  79. package/components/ricons/check.svelte +18 -0
  80. package/components/ricons/check.svelte.d.ts +27 -0
  81. package/components/ricons/chess-rook.svelte +17 -0
  82. package/components/ricons/chess-rook.svelte.d.ts +27 -0
  83. package/components/ricons/chevron-down.svelte +11 -0
  84. package/components/ricons/chevron-down.svelte.d.ts +27 -0
  85. package/components/ricons/chevron-left.svelte +11 -0
  86. package/components/ricons/chevron-left.svelte.d.ts +27 -0
  87. package/components/ricons/chevron-right.svelte +11 -0
  88. package/components/ricons/chevron-right.svelte.d.ts +27 -0
  89. package/components/ricons/chevron-up.svelte +11 -0
  90. package/components/ricons/chevron-up.svelte.d.ts +27 -0
  91. package/components/ricons/chevrons-down.svelte +12 -0
  92. package/components/ricons/chevrons-down.svelte.d.ts +27 -0
  93. package/components/ricons/chevrons-left-right.svelte +12 -0
  94. package/components/ricons/chevrons-left-right.svelte.d.ts +27 -0
  95. package/components/ricons/chevrons-left.svelte +12 -0
  96. package/components/ricons/chevrons-left.svelte.d.ts +27 -0
  97. package/components/ricons/chevrons-right.svelte +12 -0
  98. package/components/ricons/chevrons-right.svelte.d.ts +27 -0
  99. package/components/ricons/chevrons-up-down.svelte +12 -0
  100. package/components/ricons/chevrons-up-down.svelte.d.ts +27 -0
  101. package/components/ricons/chevrons-up.svelte +12 -0
  102. package/components/ricons/chevrons-up.svelte.d.ts +27 -0
  103. package/components/ricons/circle-check.svelte +28 -0
  104. package/components/ricons/circle-check.svelte.d.ts +23 -0
  105. package/components/ricons/circle-dashed.svelte +19 -0
  106. package/components/ricons/circle-dashed.svelte.d.ts +27 -0
  107. package/components/ricons/circle-dot-dashed.svelte +20 -0
  108. package/components/ricons/circle-dot-dashed.svelte.d.ts +27 -0
  109. package/components/ricons/circle.svelte +30 -0
  110. package/components/ricons/circle.svelte.d.ts +23 -0
  111. package/components/ricons/clipboard-list.svelte +17 -0
  112. package/components/ricons/clipboard-list.svelte.d.ts +27 -0
  113. package/components/ricons/clipboard-minus.svelte +9 -0
  114. package/components/ricons/clipboard-minus.svelte.d.ts +23 -0
  115. package/components/ricons/clipboard-pen-line.svelte +18 -0
  116. package/components/ricons/clipboard-pen-line.svelte.d.ts +27 -0
  117. package/components/ricons/code-xml.svelte +12 -0
  118. package/components/ricons/code-xml.svelte.d.ts +27 -0
  119. package/components/ricons/download.svelte +13 -0
  120. package/components/ricons/download.svelte.d.ts +27 -0
  121. package/components/ricons/ellipsis-vertical.svelte +14 -0
  122. package/components/ricons/ellipsis-vertical.svelte.d.ts +27 -0
  123. package/components/ricons/file-archive.svelte +18 -0
  124. package/components/ricons/file-archive.svelte.d.ts +27 -0
  125. package/components/ricons/file-text.svelte +17 -0
  126. package/components/ricons/file-text.svelte.d.ts +27 -0
  127. package/components/ricons/folder.svelte +12 -0
  128. package/components/ricons/folder.svelte.d.ts +27 -0
  129. package/components/ricons/heading-1.svelte +13 -0
  130. package/components/ricons/heading-1.svelte.d.ts +27 -0
  131. package/components/ricons/heading-2.svelte +13 -0
  132. package/components/ricons/heading-2.svelte.d.ts +27 -0
  133. package/components/ricons/heading-3.svelte +14 -0
  134. package/components/ricons/heading-3.svelte.d.ts +27 -0
  135. package/components/ricons/heading-4.svelte +14 -0
  136. package/components/ricons/heading-4.svelte.d.ts +27 -0
  137. package/components/ricons/heading-5.svelte +14 -0
  138. package/components/ricons/heading-5.svelte.d.ts +27 -0
  139. package/components/ricons/image.svelte +12 -0
  140. package/components/ricons/image.svelte.d.ts +27 -0
  141. package/components/ricons/italic.svelte +12 -0
  142. package/components/ricons/italic.svelte.d.ts +27 -0
  143. package/components/ricons/languages.svelte +15 -0
  144. package/components/ricons/languages.svelte.d.ts +27 -0
  145. package/components/ricons/list-checks.svelte +15 -0
  146. package/components/ricons/list-checks.svelte.d.ts +27 -0
  147. package/components/ricons/list-minus.svelte +14 -0
  148. package/components/ricons/list-minus.svelte.d.ts +27 -0
  149. package/components/ricons/list-ordered.svelte +16 -0
  150. package/components/ricons/list-ordered.svelte.d.ts +27 -0
  151. package/components/ricons/list-plus.svelte +14 -0
  152. package/components/ricons/list-plus.svelte.d.ts +27 -0
  153. package/components/ricons/list.svelte +15 -0
  154. package/components/ricons/list.svelte.d.ts +27 -0
  155. package/components/ricons/loader-circle.svelte +19 -0
  156. package/components/ricons/loader-circle.svelte.d.ts +27 -0
  157. package/components/ricons/log-in.svelte +12 -0
  158. package/components/ricons/log-in.svelte.d.ts +27 -0
  159. package/components/ricons/log-out.svelte +12 -0
  160. package/components/ricons/log-out.svelte.d.ts +27 -0
  161. package/components/ricons/message-square.svelte +12 -0
  162. package/components/ricons/message-square.svelte.d.ts +27 -0
  163. package/components/ricons/messages-square.svelte +15 -0
  164. package/components/ricons/messages-square.svelte.d.ts +27 -0
  165. package/components/ricons/minus.svelte +10 -0
  166. package/components/ricons/minus.svelte.d.ts +27 -0
  167. package/components/ricons/notebook-tabs.svelte +19 -0
  168. package/components/ricons/notebook-tabs.svelte.d.ts +27 -0
  169. package/components/ricons/notebook.svelte +16 -0
  170. package/components/ricons/notebook.svelte.d.ts +27 -0
  171. package/components/ricons/package.svelte +22 -0
  172. package/components/ricons/package.svelte.d.ts +27 -0
  173. package/components/ricons/paperclip.svelte +12 -0
  174. package/components/ricons/paperclip.svelte.d.ts +27 -0
  175. package/components/ricons/pencil.svelte +12 -0
  176. package/components/ricons/pencil.svelte.d.ts +27 -0
  177. package/components/ricons/pilcrow.svelte +12 -0
  178. package/components/ricons/pilcrow.svelte.d.ts +27 -0
  179. package/components/ricons/save.svelte +12 -0
  180. package/components/ricons/save.svelte.d.ts +27 -0
  181. package/components/ricons/square-check-big.svelte +13 -0
  182. package/components/ricons/square-check-big.svelte.d.ts +27 -0
  183. package/components/ricons/square-pen.svelte +14 -0
  184. package/components/ricons/square-pen.svelte.d.ts +27 -0
  185. package/components/ricons/square.svelte +10 -0
  186. package/components/ricons/square.svelte.d.ts +27 -0
  187. package/components/ricons/strikethrough.svelte +13 -0
  188. package/components/ricons/strikethrough.svelte.d.ts +27 -0
  189. package/components/ricons/sun-moon.svelte +15 -0
  190. package/components/ricons/sun-moon.svelte.d.ts +27 -0
  191. package/components/ricons/table.svelte +13 -0
  192. package/components/ricons/table.svelte.d.ts +27 -0
  193. package/components/ricons/tag.svelte +12 -0
  194. package/components/ricons/tag.svelte.d.ts +27 -0
  195. package/components/ricons/text-quote.svelte +14 -0
  196. package/components/ricons/text-quote.svelte.d.ts +27 -0
  197. package/components/ricons/turtle.svelte +13 -0
  198. package/components/ricons/turtle.svelte.d.ts +27 -0
  199. package/components/ricons/underline.svelte +11 -0
  200. package/components/ricons/underline.svelte.d.ts +27 -0
  201. package/components/ricons/upload.svelte +13 -0
  202. package/components/ricons/upload.svelte.d.ts +27 -0
  203. package/components/ricons/user.svelte +12 -0
  204. package/components/ricons/user.svelte.d.ts +27 -0
  205. package/components/ricons/users.svelte +14 -0
  206. package/components/ricons/users.svelte.d.ts +27 -0
  207. package/components/ricons/x.svelte +11 -0
  208. package/components/ricons/x.svelte.d.ts +27 -0
  209. package/components/sidebar/sidebar.brand.svelte +14 -13
  210. package/components/sidebar/sidebar.brand.svelte.d.ts +2 -2
  211. package/components/sidebar/sidebar.group.svelte +52 -30
  212. package/components/sidebar/sidebar.item.svelte +35 -141
  213. package/components/sidebar/sidebar.item.svelte.d.ts +2 -5
  214. package/components/sidebar/sidebar.list.svelte +8 -8
  215. package/components/sidebar/sidebar.svelte +19 -2
  216. package/components/simple.table.svelte.d.ts +4 -4
  217. package/components/table/_template.table.svelte.d.ts +4 -4
  218. package/components/tags.svelte +10 -3
  219. package/components/tags.svelte.d.ts +1 -0
  220. package/components/textarea.ltop.svelte.d.ts +2 -2
  221. package/components/tile.title.svelte.d.ts +2 -2
  222. package/desk.svelte +122 -128
  223. package/dialog.svelte +17 -7
  224. package/form.box.svelte.d.ts +4 -4
  225. package/horizontal.nav.tabs.svelte +197 -23
  226. package/horizontal.nav.tabs.svelte.d.ts +2 -2
  227. package/horizontal.toolbar.svelte +25 -18
  228. package/horizontal.toolbar.svelte.d.ts +2 -2
  229. package/index.d.ts +10 -3
  230. package/index.js +10 -3
  231. package/operations.svelte +51 -22
  232. package/package.json +89 -1
  233. package/page.row.svelte.d.ts +2 -2
  234. package/page.svelte +17 -7
  235. package/page.svelte.d.ts +10 -10
  236. package/paper.header.svelte +4 -0
  237. package/paper.header.svelte.d.ts +27 -0
  238. package/paper.nav.svelte +8 -0
  239. package/paper.nav.svelte.d.ts +27 -0
  240. package/paper.svelte +22 -6
  241. package/paper.svelte.d.ts +2 -0
  242. package/paper.table.svelte +27 -0
  243. package/paper.table.svelte.d.ts +27 -0
  244. package/paper.top.margin.svelte +5 -0
  245. package/paper.top.margin.svelte.d.ts +27 -0
  246. package/stores.d.ts +1 -1
  247. package/tenant.create.svelte +93 -0
  248. package/tenant.create.svelte.d.ts +29 -0
  249. package/tenant.members.svelte +116 -93
  250. package/tile.svelte.d.ts +4 -4
  251. package/tiles.row.svelte.d.ts +2 -2
  252. package/tiles.vertical.row.svelte.d.ts +2 -2
  253. package/updates.d.ts +4 -0
  254. package/updates.js +56 -14
  255. package/utils.d.ts +16 -4
  256. package/utils.js +214 -99
  257. package/vertical.toolbar.svelte +62 -47
  258. package/vertical.toolbar.svelte.d.ts +2 -2
@@ -0,0 +1,530 @@
1
+ <script>import { tick, getContext } from "svelte";
2
+ import { contextItemsStore } from "../../../stores";
3
+ import {
4
+ isSelected,
5
+ selectable,
6
+ activateItem,
7
+ isActive,
8
+ editable,
9
+ startEditing,
10
+ addActiveItem,
11
+ removeActiveItem
12
+ } from "../../../utils";
13
+ import { showGridMenu, showMenu } from "../../menu";
14
+ import { pushChanges, informModification } from "../../../updates";
15
+ import Summary from "./list.element.summary.svelte";
16
+ import Properties from "./list.element.props.svelte";
17
+ import { isDeviceSmallerThan } from "../../../utils";
18
+ import Icon from "../../icon.svelte";
19
+ import ChessRook from "../../ricons/chess-rook.svelte";
20
+ import ClipboardMinus from "../../ricons/clipboard-minus.svelte";
21
+ import Ricon from "../../ricon.svelte";
22
+ import { get_ricon } from "../../ricons.js";
23
+ import Spinner from "../../delayed.spinner.svelte";
24
+ import { rList_definition, rList_property_type } from "../List";
25
+ import { push, link } from "svelte-spa-router";
26
+ import { FaExternalLinkAlt, FaRegCircle, FaRegCheckCircle } from "svelte-icons/fa/";
27
+ import Tags from "../../tags.svelte";
28
+ import { ext } from "../../../i18n";
29
+ export let item;
30
+ export let title = "";
31
+ export let summary = "";
32
+ export let typename = void 0;
33
+ export let toolbarOperations = void 0;
34
+ export let contextMenu = void 0;
35
+ export let multiselectOperations = (items) => [];
36
+ export let key = "";
37
+ export let selectionKey = "props";
38
+ export let multiselect = false;
39
+ let definition = getContext("rList-definition");
40
+ let placeholder = "";
41
+ let props_sm;
42
+ let props_md;
43
+ $:
44
+ is_row_active = calculate_active(item, $contextItemsStore);
45
+ $:
46
+ is_row_selected = selected(item, $contextItemsStore);
47
+ $:
48
+ selected_class = is_row_selected ? "!border-blue-300 dark:!border-blue-300/50" : "";
49
+ $:
50
+ focused_class = is_row_active ? "bg-stone-200 dark:bg-stone-700" : "";
51
+ $:
52
+ download = is_row_active && (definition.downloadable || (definition.downloadableFunc ? definition.downloadableFunc(item) : false));
53
+ $:
54
+ is_link_like = is_row_active && (!!definition.title_href || !!definition.title_href_func || download);
55
+ if (!typename) {
56
+ if (item.$type)
57
+ typename = item.$type;
58
+ else if (item.$ref) {
59
+ let s = item.$ref.split("/");
60
+ typename = s[1];
61
+ }
62
+ }
63
+ if (!title)
64
+ title = definition.title;
65
+ if (!summary)
66
+ summary = definition.summary;
67
+ let [name_w, props_w] = calc_horz_division();
68
+ function calc_horz_division() {
69
+ const props_no = definition.properties.length;
70
+ switch (props_no) {
71
+ case 0:
72
+ return ["w-full", ""];
73
+ case 1:
74
+ return ["w-2/3", "w-1/3"];
75
+ case 2:
76
+ return ["w-2/3", "w-1/3"];
77
+ case 3:
78
+ return ["w-1/2", "w-1/2"];
79
+ default:
80
+ return ["w-1/3", "w-2/3"];
81
+ }
82
+ }
83
+ function calculate_active(...args) {
84
+ const key2 = getItemKeyName(item);
85
+ const active = isActive(selectionKey, item, key2);
86
+ return active;
87
+ }
88
+ function selected(...args) {
89
+ return isSelected(item);
90
+ }
91
+ function getItemKey(item2) {
92
+ if (key)
93
+ return item2[key];
94
+ else if (item2.$ref)
95
+ return item2.$ref;
96
+ else if (item2.Id)
97
+ return item2.Id;
98
+ else
99
+ return 0;
100
+ }
101
+ function getItemKeyName(item2) {
102
+ if (key)
103
+ return key;
104
+ else {
105
+ const keys = Object.keys(item2);
106
+ if (keys.findIndex((e) => e == "$ref") >= 0)
107
+ return "$ref";
108
+ else if (keys.findIndex((e) => e == "Id") >= 0)
109
+ return "Id";
110
+ else
111
+ return "";
112
+ }
113
+ }
114
+ async function change_name(text) {
115
+ if (definition.on_title_changed) {
116
+ definition.on_title_changed(item, text, title);
117
+ } else {
118
+ item[title] = text;
119
+ informModification(item, title, typename);
120
+ pushChanges();
121
+ }
122
+ }
123
+ async function change_summary(text) {
124
+ if (definition.on_summary_changed) {
125
+ definition.on_summary_changed(item, text, summary);
126
+ } else {
127
+ item[summary] = text;
128
+ informModification(item, summary, typename);
129
+ pushChanges();
130
+ }
131
+ }
132
+ function edit(e) {
133
+ if (!is_row_active)
134
+ return;
135
+ startEditing(e.target);
136
+ }
137
+ export function activate() {
138
+ activate_row(null, item);
139
+ }
140
+ function on_active_row_clicked(e, part) {
141
+ if (!is_row_active)
142
+ return;
143
+ let click_on_empty_space = true;
144
+ let n = e.target;
145
+ while (n) {
146
+ let is_in_cell = n.getAttribute("role") == "gridcell";
147
+ if (is_in_cell) {
148
+ click_on_empty_space = false;
149
+ break;
150
+ }
151
+ n = n.parentElement;
152
+ }
153
+ let can_show_context_menu = click_on_empty_space;
154
+ can_show_context_menu = false;
155
+ if (can_show_context_menu && contextMenu) {
156
+ const pt = new DOMPoint(e.clientX, e.clientY);
157
+ let context_operations = contextMenu(item);
158
+ if (context_operations !== null) {
159
+ if (typeof context_operations === "object") {
160
+ if (Array.isArray(context_operations))
161
+ showMenu(pt, context_operations);
162
+ else if (context_operations.grid)
163
+ showGridMenu(pt, context_operations.grid);
164
+ }
165
+ }
166
+ } else if (click_on_empty_space) {
167
+ if (definition.title_href || definition.title_href_func) {
168
+ } else {
169
+ }
170
+ } else {
171
+ }
172
+ }
173
+ function followDefinedHRef() {
174
+ let link2 = getHRef();
175
+ if (link2)
176
+ push(link2);
177
+ }
178
+ function getHRef() {
179
+ if (definition.title_href)
180
+ return definition.title_href;
181
+ else if (definition.title_href_func)
182
+ return definition.title_href_func(item);
183
+ else
184
+ return "";
185
+ }
186
+ function activate_row(e, item2) {
187
+ const openable = !!definition.title_href || !!definition.title_href_func;
188
+ if (toolbarOperations) {
189
+ if (multiselect)
190
+ activateItem(selectionKey, item2, multiselectOperations);
191
+ else
192
+ activateItem(selectionKey, item2, toolbarOperations(item2));
193
+ if (e)
194
+ e.stopPropagation();
195
+ } else {
196
+ activateItem(selectionKey, item2, []);
197
+ if (e)
198
+ e.stopPropagation();
199
+ }
200
+ }
201
+ function on_contextmenu(e) {
202
+ if (!contextMenu)
203
+ return;
204
+ const pt = new DOMPoint(e.clientX, e.clientY);
205
+ let context_operations = contextMenu(item);
206
+ if (context_operations !== null) {
207
+ if (typeof context_operations === "object") {
208
+ if (Array.isArray(context_operations))
209
+ showMenu(pt, context_operations);
210
+ else if (context_operations.grid)
211
+ showGridMenu(pt, context_operations.grid);
212
+ }
213
+ }
214
+ e.preventDefault();
215
+ }
216
+ export function editProperty(field) {
217
+ if (field == title)
218
+ force_editing("Title");
219
+ else if (field == summary)
220
+ force_editing("Summary");
221
+ else {
222
+ if (isDeviceSmallerThan("sm"))
223
+ props_sm.editProperty(field);
224
+ else
225
+ props_md.editProperty(field);
226
+ }
227
+ }
228
+ async function force_editing(field) {
229
+ let element_id = `__hd_list_ctrl_${getItemKey(item)}_${field}`;
230
+ let element_node = document.getElementById(element_id);
231
+ if (!element_node) {
232
+ placeholder = field;
233
+ await tick();
234
+ element_node = document.getElementById(element_id);
235
+ if (!element_node)
236
+ return;
237
+ }
238
+ if (!element_node.classList.contains("editable")) {
239
+ return;
240
+ }
241
+ if (field == "Title") {
242
+ if (is_link_like) {
243
+ startEditing(element_node, () => {
244
+ placeholder = "";
245
+ });
246
+ } else {
247
+ element_node.focus();
248
+ setSelectionAtEnd(element_node);
249
+ }
250
+ } else {
251
+ element_node.focus();
252
+ setSelectionAtEnd(element_node);
253
+ }
254
+ }
255
+ function setSelectionAtEnd(element) {
256
+ const textNode = element.childNodes[0];
257
+ const text = textNode.textContent;
258
+ let range = document.createRange();
259
+ let end_offset = text.length;
260
+ let end_container = textNode;
261
+ range.setStart(end_container, end_offset);
262
+ range.setEnd(end_container, end_offset);
263
+ let sel = window.getSelection();
264
+ sel.removeAllRanges();
265
+ sel.addRange(range);
266
+ }
267
+ let rootElement;
268
+ export function scrollToView() {
269
+ rootElement.scrollIntoView(
270
+ {
271
+ behavior: "smooth",
272
+ block: "nearest",
273
+ inline: "nearest"
274
+ }
275
+ );
276
+ }
277
+ function onToggleMultiSelect(e) {
278
+ if (!is_row_active)
279
+ addActiveItem(selectionKey, item, multiselectOperations);
280
+ else
281
+ removeActiveItem(selectionKey, item, multiselectOperations);
282
+ if (e)
283
+ e.stopPropagation();
284
+ }
285
+ let isDownloading = false;
286
+ async function onDownloadFile(e) {
287
+ isDownloading = true;
288
+ e.preventDefault();
289
+ e.stopPropagation();
290
+ if (definition.onOpen)
291
+ await definition.onOpen(item);
292
+ isDownloading = false;
293
+ }
294
+ </script>
295
+
296
+ <!-- svelte-ignore a11y-click-events-have-key-events -->
297
+ {#if item}
298
+ {@const element_title = ext(item[title])}
299
+
300
+ <!--row 3------------------------------------------------------------------------------------------->
301
+ <figure class="pl-8">
302
+ <!-- comming soon - top info --
303
+ <figcaption>
304
+ <div class="grid gap-4 grid-cols-3 grid-rows-1">
305
+ <span>OCT-254</span>
306
+ <span class="text-center"></span>
307
+ <span class="text-right">15 listopad 25</span>
308
+ </div>
309
+ </figcaption>
310
+ -------------------------------->
311
+ <!--@el------------------------->
312
+ <h4 class="mt-1 -indent-8 ">
313
+ <a class="sm:hover:cursor-pointer underline"
314
+ href={getHRef()} use:link>
315
+
316
+
317
+ <div class="inline-block w-4 h-4 ml-0 mr-3 align-baseline
318
+ text-stone-700 dark:text-stone-400 ">
319
+ <!--Ricon icon={ClipboardMinus}/-->
320
+ <ChessRook />
321
+ </div>
322
+
323
+ {element_title}
324
+ </a>
325
+ </h4>
326
+ <!-- comming soon - middle info --
327
+ <figcaption>
328
+ <div class="grid gap-4 grid-cols-3 grid-rows-1">
329
+ <span>Andrzej</span>
330
+ <span class="text-center"></span>
331
+ <span class="text-right">Specyfikacje</span>
332
+ </div>
333
+ </figcaption>
334
+ -------------------------------->
335
+
336
+ {#if summary && (item[summary] || placeholder=='Summary')}
337
+ <figcaption>
338
+ {item[summary]}
339
+ </figcaption>
340
+ {/if}
341
+ </figure>
342
+
343
+ <!---@OLD---------------------------------------------------------------------------------------------------------------->
344
+ <section class="my-1 flex flex-row w-full text-stone-900 dark:text-stone-300 cursor-default rounded-md border border-transparent {selected_class} {focused_class} scroll-mt-[50px] sm:scroll-mt-[40px]"
345
+ role="menu"
346
+ tabindex="-1"
347
+ bind:this={rootElement}>
348
+
349
+ {#if multiselect}
350
+ {@const icon=is_row_active ? FaRegCheckCircle : FaRegCircle}
351
+ <Icon component={icon}
352
+ class="flex-none h-4 w-4 text-stone-500 dark:text-stone-400 cursor-pointer mt-1 ml-2 mr-3 "
353
+ on:click={onToggleMultiSelect}/>
354
+ {/if}
355
+
356
+ {#if isDownloading}
357
+ <Spinner class="mt-0.5 ml-2 mr-1" size={5} delay={0}/>
358
+ {:else}
359
+ <slot name="left" element={item}/>
360
+ {/if}
361
+
362
+ <i class="hidden sm:w-1/2 sm:w-2/3 sm:w-1/3"></i>
363
+
364
+ <div class="ml-3 w-full py-0"
365
+ use:selectable={item}
366
+ on:click={(e) => {activate_row(e, item)}}
367
+ role="row"
368
+ tabindex="0">
369
+ <div class="block sm:flex sm:flex-row" on:click={(e) => on_active_row_clicked(e, 'top')}>
370
+
371
+ {#if is_row_active}
372
+ {#key item[title]}
373
+ {#if is_link_like}
374
+ <p class=" text-base font-semibold
375
+
376
+ whitespace-nowrap overflow-clip w-full sm:flex-none sm:{name_w}"
377
+ id="__hd_list_ctrl_{getItemKey(item)}_Title"
378
+ use:editable={{
379
+ action: (text) => {change_name(text)},
380
+ active: false,
381
+ readonly: definition.title_readonly,
382
+ onSoftEnter: (text) => {change_name(text); editProperty('Summary')}
383
+ }}
384
+ >
385
+ {#if download}
386
+ <a class="sm:hover:cursor-pointer underline"
387
+ download
388
+ href={getHRef()}
389
+ on:click={onDownloadFile}>
390
+ {element_title}
391
+ </a>
392
+ {:else}
393
+ <a class="sm:hover:cursor-pointer underline"
394
+ href={getHRef()} use:link>
395
+ {element_title}
396
+ </a>
397
+ {/if}
398
+ </p>
399
+ {:else if definition.onOpen}
400
+ <p class=" text-base font-semibold
401
+
402
+ whitespace-nowrap overflow-clip w-full sm:flex-none sm:{name_w}"
403
+ id="__hd_list_ctrl_{getItemKey(item)}_Title"
404
+ use:editable={{
405
+ action: (text) => {change_name(text)},
406
+ active: true,
407
+ readonly: definition.title_readonly,
408
+ }}>
409
+ <span class="sm:hover:cursor-pointer underline"
410
+ on:click|stopPropagation={(e) => definition.onOpen(item)}>
411
+ {element_title}
412
+ </span>
413
+
414
+ <!--
415
+ {#if definition.onOpen}
416
+ <button class="ml-3 w-5 h-5 sm:w-3 sm:h-3"
417
+ on:click={(e) => definition.onOpen(item)}>
418
+ <FaExternalLinkAlt/>
419
+ </button>
420
+ {/if}
421
+ -->
422
+ </p>
423
+ {:else}
424
+ <p class=" text-base font-semibold
425
+ whitespace-nowrap overflow-clip w-full sm:flex-none sm:{name_w}"
426
+ id="__hd_list_ctrl_{getItemKey(item)}_Title"
427
+ use:editable={{
428
+ action: (text) => {change_name(text)},
429
+ active: true,
430
+ readonly: definition.title_readonly,
431
+ }}>
432
+ <span>
433
+ {element_title}
434
+ </span>
435
+ </p>
436
+ {/if}
437
+ {/key}
438
+ {:else}
439
+ <p class=" text-base font-semibold
440
+
441
+ whitespace-nowrap overflow-clip w-full sm:flex-none sm:{name_w}"
442
+ id="__hd_list_ctrl_{getItemKey(item)}_Title">
443
+ {element_title}
444
+ </p>
445
+ {/if}
446
+
447
+
448
+ <section class="hidden sm:block w-full sm:flex-none sm:{props_w}">
449
+ <Properties {definition} {item} {placeholder} bind:this={props_md}/>
450
+ </section>
451
+ </div>
452
+
453
+ <section class="block sm:hidden w-full">
454
+ <Properties {definition} {item} {placeholder} bind:this={props_sm}/>
455
+ </section>
456
+
457
+ {#if summary && (item[summary] || placeholder=='Summary')}
458
+ {@const summaryText = ext(item[summary])}
459
+ {@const element_id = `__hd_list_ctrl_${getItemKey(item)}_Summary`}
460
+ {#key summaryText }
461
+ {#if is_row_active}
462
+ <p id={element_id}
463
+ class=" text-sm
464
+ text-stone-600 dark:text-stone-400"
465
+ use:editable={{
466
+ action: (text) => {change_summary(text)},
467
+ readonly: definition.summary_readonly,
468
+ onFinish: (d) => {placeholder='';},
469
+ active: true
470
+ }}>
471
+ {summaryText}
472
+ </p>
473
+ {:else}
474
+ <p id={element_id}
475
+ class=" text-sm
476
+ text-stone-600 dark:text-stone-400"
477
+ on:click={(e) => on_active_row_clicked(e, 'bottom')}>
478
+ {summaryText}
479
+ </p>
480
+ {/if}
481
+ {/key}
482
+
483
+ {/if}
484
+
485
+ {#if definition.tags}
486
+ <Tags
487
+ class="mt-1 mb-1"
488
+ compact
489
+ inContext="props"
490
+ self={item}
491
+ a={definition.tags.a}
492
+ getGlobalTags={definition.tags.getAllTags}
493
+ s="sm"
494
+ onSelect={definition.tags.onSelect}
495
+ onUpdateAllTags={definition.tags.onUpdateAllTags}
496
+ canChangeColor={definition.tags.canChangeColor}
497
+ readOnly={definition.tags.readOnly}
498
+ />
499
+ {/if}
500
+
501
+ </div>
502
+ </section>
503
+ {/if}
504
+
505
+ <style>
506
+ .grid-1
507
+ {
508
+ display: grid;
509
+ grid-template-columns: 100%;
510
+ }
511
+
512
+ .grid-2
513
+ {
514
+ display: grid;
515
+ grid-template-columns: 50% 50%;
516
+ }
517
+
518
+ .grid-3
519
+ {
520
+ display: grid;
521
+ grid-template-columns: 33% 33% 33%;
522
+ }
523
+
524
+ .grid-4
525
+ {
526
+ display: grid;
527
+ grid-template-columns: 25% 25% 25% 25%;
528
+ }
529
+
530
+ </style>
@@ -0,0 +1,35 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ item: object;
5
+ title?: string | undefined;
6
+ summary?: string | undefined;
7
+ typename?: string | undefined;
8
+ toolbarOperations?: undefined;
9
+ contextMenu?: undefined;
10
+ multiselectOperations?: ((items: any) => never[]) | undefined;
11
+ key?: string | undefined;
12
+ selectionKey?: string | undefined;
13
+ multiselect?: boolean | undefined;
14
+ activate?: (() => void) | undefined;
15
+ editProperty?: ((field: string) => void) | undefined;
16
+ scrollToView?: (() => void) | undefined;
17
+ };
18
+ events: {
19
+ [evt: string]: CustomEvent<any>;
20
+ };
21
+ slots: {
22
+ left: {
23
+ element: object;
24
+ };
25
+ };
26
+ };
27
+ export type ListProps = typeof __propDef.props;
28
+ export type ListEvents = typeof __propDef.events;
29
+ export type ListSlots = typeof __propDef.slots;
30
+ export default class List extends SvelteComponentTyped<ListProps, ListEvents, ListSlots> {
31
+ get activate(): () => void;
32
+ get editProperty(): (field: string) => void;
33
+ get scrollToView(): () => void;
34
+ }
35
+ export {};