@simai-studio/view 1.0.0 → 1.2.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 (86) hide show
  1. package/README.md +5 -5
  2. package/dist/package-receipt.json +356 -114
  3. package/dist/set.json +35 -2
  4. package/dist/smart/rule.js +94 -0
  5. package/dist/smart/rule.js.gz +0 -0
  6. package/dist/smart/view/component.json +10 -2
  7. package/dist/smart/view/component.json.gz +0 -0
  8. package/dist/smart/view/js/view.js +23 -6
  9. package/dist/smart/view/js/view.js.gz +0 -0
  10. package/dist/smart/view/js/view.min.js +1 -1
  11. package/dist/smart/view/js/view.min.js.gz +0 -0
  12. package/dist/smart/view/smart.manifest.json +10 -3
  13. package/dist/smart/view/smart.manifest.json.gz +0 -0
  14. package/dist/smart/view/static/default/open-record.html +12 -17
  15. package/dist/smart/view/static/default/open-record.html.gz +0 -0
  16. package/dist/smart/view/static/default/reference.html +12 -17
  17. package/dist/smart/view/static/default/reference.html.gz +0 -0
  18. package/dist/smart/view-flow/component.json +612 -0
  19. package/dist/smart/view-flow/component.json.gz +0 -0
  20. package/dist/smart/view-flow/css/view-flow.css +203 -0
  21. package/dist/smart/view-flow/css/view-flow.css.gz +0 -0
  22. package/dist/smart/view-flow/css/view-flow.min.css +2 -0
  23. package/dist/smart/view-flow/css/view-flow.min.css.gz +0 -0
  24. package/dist/smart/view-flow/examples.json +452 -0
  25. package/dist/smart/view-flow/examples.json.gz +0 -0
  26. package/dist/smart/view-flow/js/view-flow.js +5858 -0
  27. package/dist/smart/view-flow/js/view-flow.js.gz +0 -0
  28. package/dist/smart/view-flow/js/view-flow.min.js +638 -0
  29. package/dist/smart/view-flow/js/view-flow.min.js.gz +0 -0
  30. package/dist/smart/view-flow/lang/en.json +24 -0
  31. package/dist/smart/view-flow/lang/en.json.gz +0 -0
  32. package/dist/smart/view-flow/lang/ru.json +24 -0
  33. package/dist/smart/view-flow/lang/ru.json.gz +0 -0
  34. package/dist/smart/view-flow/probe.json +149 -0
  35. package/dist/smart/view-flow/probe.json.gz +0 -0
  36. package/dist/smart/view-flow/smart.manifest.json +478 -0
  37. package/dist/smart/view-flow/smart.manifest.json.gz +0 -0
  38. package/dist/smart/view-flow/static/default/answered.html +57 -0
  39. package/dist/smart/view-flow/static/default/answered.html.gz +0 -0
  40. package/dist/smart/view-flow/static/default/ask.html +146 -0
  41. package/dist/smart/view-flow/static/default/ask.html.gz +0 -0
  42. package/dist/smart/view-flow/static/default/expired.html +16 -0
  43. package/dist/smart/view-flow/static/default/expired.html.gz +0 -0
  44. package/dist/smart/view-flow/static/default/groups.html +44 -0
  45. package/dist/smart/view-flow/static/default/groups.html.gz +0 -0
  46. package/dist/smart/view-flow/static/default/reference.html +72 -0
  47. package/dist/smart/view-flow/static/default/reference.html.gz +0 -0
  48. package/dist/smart/view-flow/static/default/untitled.html +41 -0
  49. package/dist/smart/view-flow/static/default/untitled.html.gz +0 -0
  50. package/dist/smart/view-flow/static/sheets.json +443 -0
  51. package/dist/smart/view-flow/static/sheets.json.gz +0 -0
  52. package/dist/smart/view-flow/template/default.css +180 -0
  53. package/dist/smart/view-flow/template/default.css.gz +0 -0
  54. package/dist/smart/view-flow/template/default.js +136 -0
  55. package/dist/smart/view-flow/template/default.js.gz +0 -0
  56. package/dist/smart/view-properties/component.json +10 -2
  57. package/dist/smart/view-properties/component.json.gz +0 -0
  58. package/dist/smart/view-properties/css/view-properties.css +24 -19
  59. package/dist/smart/view-properties/css/view-properties.css.gz +0 -0
  60. package/dist/smart/view-properties/css/view-properties.min.css +1 -1
  61. package/dist/smart/view-properties/css/view-properties.min.css.gz +0 -0
  62. package/dist/smart/view-properties/js/view-properties.js +358 -185
  63. package/dist/smart/view-properties/js/view-properties.js.gz +0 -0
  64. package/dist/smart/view-properties/js/view-properties.min.js +94 -121
  65. package/dist/smart/view-properties/js/view-properties.min.js.gz +0 -0
  66. package/dist/smart/view-properties/lang/en.json +0 -7
  67. package/dist/smart/view-properties/lang/en.json.gz +0 -0
  68. package/dist/smart/view-properties/lang/ru.json +0 -7
  69. package/dist/smart/view-properties/lang/ru.json.gz +0 -0
  70. package/dist/smart/view-properties/smart.manifest.json +16 -9
  71. package/dist/smart/view-properties/smart.manifest.json.gz +0 -0
  72. package/dist/smart/view-properties/template/default.css +22 -19
  73. package/dist/smart/view-properties/template/default.css.gz +0 -0
  74. package/dist/smart/view-properties/template/default.js +1 -79
  75. package/dist/smart/view-properties/template/default.js.gz +0 -0
  76. package/dist/smart/view-table/component.json +10 -2
  77. package/dist/smart/view-table/component.json.gz +0 -0
  78. package/dist/smart/view-table/js/view-table.js +377 -88
  79. package/dist/smart/view-table/js/view-table.js.gz +0 -0
  80. package/dist/smart/view-table/js/view-table.min.js +58 -56
  81. package/dist/smart/view-table/js/view-table.min.js.gz +0 -0
  82. package/dist/smart/view-table/smart.manifest.json +11 -4
  83. package/dist/smart/view-table/smart.manifest.json.gz +0 -0
  84. package/dist/smart/view-table/template/default.js +1 -1
  85. package/dist/smart/view-table/template/default.js.gz +0 -0
  86. package/package.json +1 -1
@@ -69,6 +69,184 @@ function normalizeBadgeContract({
69
69
 
70
70
  /***/ },
71
71
 
72
+ /***/ "e577837dd70a"
73
+ (module, __webpack_exports__, __webpack_require__) {
74
+
75
+ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
76
+ __webpack_require__.r(__webpack_exports__);
77
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
78
+ /* harmony export */ calendarDayOffset: () => (/* binding */ calendarDayOffset),
79
+ /* harmony export */ formatDate: () => (/* binding */ formatDate),
80
+ /* harmony export */ msUntilNextDay: () => (/* binding */ msUntilNextDay),
81
+ /* harmony export */ toDate: () => (/* reexport safe */ _format_intl_js__WEBPACK_IMPORTED_MODULE_0__.toDate)
82
+ /* harmony export */ });
83
+ /* harmony import */ var _format_intl_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("15b4e93ff6ed");
84
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_format_intl_js__WEBPACK_IMPORTED_MODULE_0__]);
85
+ var __webpack_async_dependencies_result__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
86
+ _format_intl_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_async_dependencies_result__[0];
87
+ // Dates in the page's language: formatDate, the calendar day offset and the
88
+ // next midnight, with no top-level side effects (format-intl.js). The same
89
+ // functions as core/js/format.js and SF.format; relative days and times are
90
+ // format-relative.js, so a bundle that writes a date does not carry them.
91
+
92
+
93
+ const DAY_MS = 86400000;
94
+
95
+ function hasDateStyle(style) {
96
+ return style === 'short' || style === 'medium' || style === 'long' || style === 'full';
97
+ }
98
+ /**
99
+ * A date, a time or both in the locale.
100
+ *
101
+ * formatDate(at) 3 нояб. 2026 г. / Nov 3, 2026
102
+ * formatDate(at, {date: 'short'}) 03.11.2026 / 11/3/26
103
+ * formatDate(at, {date: 'long'}) 3 ноября 2026 г. / November 3, 2026
104
+ * formatDate(at, {time: 'short'}) 3 нояб. 2026 г., 14:05
105
+ * formatDate(at, {date: null, time: 'short'}) 14:05 / 2:05 PM
106
+ *
107
+ * `date` and `time` are Intl styles (short, medium, long, full); `intl` gives
108
+ * Intl.DateTimeFormat options outright, for a form the styles do not name (a
109
+ * chart's tick, «14:05» with two-digit hours). Anything that is not a date is
110
+ * `gap`, '' by default.
111
+ */
112
+
113
+
114
+ function formatDate(value, {
115
+ date = 'medium',
116
+ time = null,
117
+ intl = null,
118
+ gap = '',
119
+ ...where
120
+ } = {}) {
121
+ const moment = (0,_format_intl_js__WEBPACK_IMPORTED_MODULE_0__.toDate)(value);
122
+ if (!moment) return gap;
123
+ let options = intl;
124
+
125
+ if (!options) {
126
+ options = {};
127
+ if (hasDateStyle(date)) options.dateStyle = date;
128
+ if (hasDateStyle(time)) options.timeStyle = time;
129
+ if (!options.dateStyle && !options.timeStyle) options.dateStyle = 'medium';
130
+ }
131
+
132
+ return (0,_format_intl_js__WEBPACK_IMPORTED_MODULE_0__.intlFormatter)('DateTimeFormat', (0,_format_intl_js__WEBPACK_IMPORTED_MODULE_0__.formatLocale)(where), options).format(moment);
133
+ }
134
+ /**
135
+ * Calendar days from `now` to the value in the reader's time zone: 0 today,
136
+ * -1 yesterday, 1 tomorrow; NaN when the value is no date. Counted on
137
+ * calendar dates, not 24-hour spans, so 23:59 yesterday is -1 at 00:01 and a
138
+ * day of a clock change is still one day.
139
+ */
140
+
141
+ function calendarDayOffset(value, {
142
+ now = new Date()
143
+ } = {}) {
144
+ const moment = (0,_format_intl_js__WEBPACK_IMPORTED_MODULE_0__.toDate)(value);
145
+ const today = (0,_format_intl_js__WEBPACK_IMPORTED_MODULE_0__.toDate)(now);
146
+ if (!moment || !today) return Number.NaN;
147
+ const day = Date.UTC(moment.getFullYear(), moment.getMonth(), moment.getDate());
148
+ const base = Date.UTC(today.getFullYear(), today.getMonth(), today.getDate());
149
+ return Math.round((day - base) / DAY_MS);
150
+ }
151
+ /**
152
+ * Milliseconds from `now` to the reader's next midnight, when every relative
153
+ * day on the screen moves by one. A component that shows them sets a timer
154
+ * for this long (plus a second's margin, so it wakes in the new day) and
155
+ * draws them again; «сегодня» said yesterday is wrong by morning.
156
+ */
157
+
158
+ function msUntilNextDay(now = new Date()) {
159
+ const today = (0,_format_intl_js__WEBPACK_IMPORTED_MODULE_0__.toDate)(now) ?? new Date();
160
+ const next = new Date(today.getFullYear(), today.getMonth(), today.getDate() + 1);
161
+ return next.getTime() - today.getTime();
162
+ }
163
+ __webpack_async_result__();
164
+ } catch(e) { __webpack_async_result__(e); } });
165
+
166
+ /***/ },
167
+
168
+ /***/ "15b4e93ff6ed"
169
+ (module, __webpack_exports__, __webpack_require__) {
170
+
171
+ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
172
+ __webpack_require__.r(__webpack_exports__);
173
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
174
+ /* harmony export */ formatLocale: () => (/* binding */ formatLocale),
175
+ /* harmony export */ intlFormatter: () => (/* binding */ intlFormatter),
176
+ /* harmony export */ toDate: () => (/* binding */ toDate)
177
+ /* harmony export */ });
178
+ /* harmony import */ var _page_language_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("43090d1c8307");
179
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_page_language_js__WEBPACK_IMPORTED_MODULE_0__]);
180
+ var __webpack_async_dependencies_result__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
181
+ _page_language_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_async_dependencies_result__[0];
182
+ /* harmony import */ var _page_language_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_page_language_js__WEBPACK_IMPORTED_MODULE_0__);
183
+ // The part every format module shares (core/js/format.js says what the
184
+ // helpers are): the locale a call formats in, a Date from what a host gives,
185
+ // and the Intl formatters, kept on a global every copy of these modules shares
186
+ // (bundles each carry their own module copy; page-language.js says why).
187
+ //
188
+ // No top-level side effects, here or in format-number.js, format-date.js,
189
+ // format-relative.js and format-file-size.js (ui-chart, 2026-11-05): a bundle
190
+ // that imports one function carries that function and what it calls, nothing
191
+ // else. The global is made on the first format, not on load, and SF.format is
192
+ // published by core's entry (index.js, publishFormat in format.js).
193
+
194
+ /** The locale a call formats in: the one it names, else its node's page language. */
195
+
196
+ function formatLocale({
197
+ locale,
198
+ node
199
+ } = {}) {
200
+ return String(locale || '').trim() || (0,_page_language_js__WEBPACK_IMPORTED_MODULE_0__.pageLocale)(node);
201
+ }
202
+ /** A Date from a Date, a time in milliseconds or a date string; null when it is none. */
203
+
204
+ function toDate(value) {
205
+ if (value === null || value === undefined || value === '') return null;
206
+ const date = value instanceof Date ? new Date(value.getTime()) : new Date(typeof value === 'string' && /^\d+$/u.test(value) ? Number(value) : value);
207
+ return Number.isNaN(date.getTime()) ? null : date;
208
+ } // The formatters every copy shares, made on the first call.
209
+
210
+ function formatterCache() {
211
+ const root = typeof globalThis !== 'undefined' ? globalThis : {};
212
+ if (!root.__sfFormat) root.__sfFormat = {
213
+ formatters: new Map()
214
+ };
215
+ return root.__sfFormat.formatters;
216
+ } // One formatter per kind, locale and options. An unknown locale falls back to
217
+ // the browser's, and options the platform refuses (an unknown unit or
218
+ // currency) to a plain number, so a typo in a page never throws at a reader.
219
+
220
+
221
+ function intlFormatter(kind, locale, options) {
222
+ const key = `${kind}|${locale}|${JSON.stringify(options)}`;
223
+ const cache = formatterCache();
224
+ if (cache.has(key)) return cache.get(key);
225
+ const Make = Intl[kind];
226
+ let made;
227
+
228
+ try {
229
+ made = new Make(locale || undefined, options);
230
+ } catch {
231
+ try {
232
+ made = new Make(undefined, options);
233
+ } catch {
234
+ made = new Make(locale || undefined, kind === 'NumberFormat' ? {
235
+ maximumFractionDigits: 2
236
+ } : {});
237
+ }
238
+ } // A page that formats in many locales does not grow the cache for ever.
239
+
240
+
241
+ if (cache.size >= 256) cache.delete(cache.keys().next().value);
242
+ cache.set(key, made);
243
+ return made;
244
+ }
245
+ __webpack_async_result__();
246
+ } catch(e) { __webpack_async_result__(e); } });
247
+
248
+ /***/ },
249
+
72
250
  /***/ "51250bf01ab0"
73
251
  (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
74
252
 
@@ -2090,6 +2268,7 @@ function renderChoiceEdit(field, value, host) {
2090
2268
  name=${fieldName(field)}
2091
2269
  ?required=${Boolean(field.required)}
2092
2270
  value=${value ?? ''}
2271
+ placeholder=${field.placeholder || lit__WEBPACK_IMPORTED_MODULE_0__.nothing}
2093
2272
  aria-label=${field.label || field.key || ''}
2094
2273
  .options=${editOptions(field, value, false)}
2095
2274
  @change=${event => host.setFieldValue(field, event.detail?.value ?? null)}
@@ -2143,6 +2322,7 @@ function renderChoicesEdit(field, value, host) {
2143
2322
  search="false"
2144
2323
  name=${fieldName(field)}
2145
2324
  ?required=${Boolean(field.required)}
2325
+ placeholder=${field.placeholder || lit__WEBPACK_IMPORTED_MODULE_0__.nothing}
2146
2326
  aria-label=${field.label || field.key || ''}
2147
2327
  .options=${editOptions(field, value, true)}
2148
2328
  @change=${event => {
@@ -3498,21 +3678,25 @@ __webpack_require__.r(__webpack_exports__);
3498
3678
  /* harmony import */ var _js_templates_default__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("9d9caaf4f796");
3499
3679
  /* harmony import */ var _helpers_option_badge_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("b30ec5bc0edb");
3500
3680
  /* harmony import */ var _field_renderers_index_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("e5483002f3ea");
3501
- /* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("2a080a730149");
3502
- /* harmony import */ var lit_directives_ref_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("8137feb490e0");
3503
- /* harmony import */ var _core_js_page_language__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__("43090d1c8307");
3504
- /* harmony import */ var _helpers_dom__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__("926043d18700");
3505
- /* harmony import */ var _helpers_loaderDragState__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__("870b5dfddc25");
3506
- /* harmony import */ var _core_js_position_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__("116963e5e31b");
3507
- /* harmony import */ var _core_js_preferences_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__("51250bf01ab0");
3508
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_core_js_smart_base__WEBPACK_IMPORTED_MODULE_0__, _core_js_element_manifest__WEBPACK_IMPORTED_MODULE_1__, _js_templates_default__WEBPACK_IMPORTED_MODULE_7__, _field_renderers_index_js__WEBPACK_IMPORTED_MODULE_9__, lit__WEBPACK_IMPORTED_MODULE_10__, lit_directives_ref_js__WEBPACK_IMPORTED_MODULE_11__, _core_js_page_language__WEBPACK_IMPORTED_MODULE_12__, _core_js_position_js__WEBPACK_IMPORTED_MODULE_15__]);
3509
- ([_core_js_smart_base__WEBPACK_IMPORTED_MODULE_0__, _core_js_element_manifest__WEBPACK_IMPORTED_MODULE_1__, _js_templates_default__WEBPACK_IMPORTED_MODULE_7__, _field_renderers_index_js__WEBPACK_IMPORTED_MODULE_9__, lit__WEBPACK_IMPORTED_MODULE_10__, lit_directives_ref_js__WEBPACK_IMPORTED_MODULE_11__, _core_js_page_language__WEBPACK_IMPORTED_MODULE_12__, _core_js_position_js__WEBPACK_IMPORTED_MODULE_15__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
3681
+ /* harmony import */ var _field_renderers_html_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("01ae054f01b4");
3682
+ /* harmony import */ var _js_format_value_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("2f31b00ad99a");
3683
+ /* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__("2a080a730149");
3684
+ /* harmony import */ var lit_directives_ref_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__("8137feb490e0");
3685
+ /* harmony import */ var _core_js_page_language__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__("43090d1c8307");
3686
+ /* harmony import */ var _helpers_dom__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__("926043d18700");
3687
+ /* harmony import */ var _helpers_loaderDragState__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__("870b5dfddc25");
3688
+ /* harmony import */ var _core_js_position_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__("116963e5e31b");
3689
+ /* harmony import */ var _core_js_preferences_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__("51250bf01ab0");
3690
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_core_js_smart_base__WEBPACK_IMPORTED_MODULE_0__, _core_js_element_manifest__WEBPACK_IMPORTED_MODULE_1__, _js_templates_default__WEBPACK_IMPORTED_MODULE_7__, _field_renderers_index_js__WEBPACK_IMPORTED_MODULE_9__, _js_format_value_js__WEBPACK_IMPORTED_MODULE_11__, lit__WEBPACK_IMPORTED_MODULE_12__, lit_directives_ref_js__WEBPACK_IMPORTED_MODULE_13__, _core_js_page_language__WEBPACK_IMPORTED_MODULE_14__, _core_js_position_js__WEBPACK_IMPORTED_MODULE_17__]);
3691
+ ([_core_js_smart_base__WEBPACK_IMPORTED_MODULE_0__, _core_js_element_manifest__WEBPACK_IMPORTED_MODULE_1__, _js_templates_default__WEBPACK_IMPORTED_MODULE_7__, _field_renderers_index_js__WEBPACK_IMPORTED_MODULE_9__, _js_format_value_js__WEBPACK_IMPORTED_MODULE_11__, lit__WEBPACK_IMPORTED_MODULE_12__, lit_directives_ref_js__WEBPACK_IMPORTED_MODULE_13__, _core_js_page_language__WEBPACK_IMPORTED_MODULE_14__, _core_js_position_js__WEBPACK_IMPORTED_MODULE_17__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
3510
3692
  /* harmony import */ var _core_js_smart_base__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_core_js_smart_base__WEBPACK_IMPORTED_MODULE_0__);
3511
3693
  /* harmony import */ var _core_js_element_manifest__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_core_js_element_manifest__WEBPACK_IMPORTED_MODULE_1__);
3512
- /* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(lit__WEBPACK_IMPORTED_MODULE_10__);
3513
- /* harmony import */ var lit_directives_ref_js__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(lit_directives_ref_js__WEBPACK_IMPORTED_MODULE_11__);
3514
- /* harmony import */ var _core_js_page_language__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_core_js_page_language__WEBPACK_IMPORTED_MODULE_12__);
3515
- /* harmony import */ var _core_js_position_js__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(_core_js_position_js__WEBPACK_IMPORTED_MODULE_15__);
3694
+ /* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(lit__WEBPACK_IMPORTED_MODULE_12__);
3695
+ /* harmony import */ var lit_directives_ref_js__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(lit_directives_ref_js__WEBPACK_IMPORTED_MODULE_13__);
3696
+ /* harmony import */ var _core_js_page_language__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(_core_js_page_language__WEBPACK_IMPORTED_MODULE_14__);
3697
+ /* harmony import */ var _core_js_position_js__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_core_js_position_js__WEBPACK_IMPORTED_MODULE_17__);
3698
+
3699
+
3516
3700
 
3517
3701
 
3518
3702
 
@@ -3541,7 +3725,7 @@ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_cor
3541
3725
  // SF.Preferences, the Framework's one store of view preferences (core
3542
3726
  // publishes it; this bundle's copy is the fallback).
3543
3727
 
3544
- const preferences = () => globalThis.SF?.Preferences || _core_js_preferences_js__WEBPACK_IMPORTED_MODULE_16__["default"];
3728
+ const preferences = () => globalThis.SF?.Preferences || _core_js_preferences_js__WEBPACK_IMPORTED_MODULE_18__["default"];
3545
3729
 
3546
3730
  const tablePreferenceKey = key => `sf-table/${String(key).replace(/[^\w.:-]+/gu, "-")}`; // What a cell may draw as markup rather than as an element of its own.
3547
3731
 
@@ -3578,7 +3762,7 @@ const TABLE_TEXT = {
3578
3762
  };
3579
3763
  const SYSTEM_COLUMN_KEYS = new Set(["select", "settings", "actions"]);
3580
3764
 
3581
- const positioning = () => globalThis.SF?.Position || (_core_js_position_js__WEBPACK_IMPORTED_MODULE_15___default()); // Published Composition ports (simai.composition.port-manifest.v1, sf-view-table@1.0.0).
3765
+ const positioning = () => globalThis.SF?.Position || (_core_js_position_js__WEBPACK_IMPORTED_MODULE_17___default()); // Published Composition ports (simai.composition.port-manifest.v1, sf-view-table@1.0.0).
3582
3766
 
3583
3767
 
3584
3768
  const SF_TABLE_PORTS = Object.freeze({
@@ -4521,10 +4705,10 @@ class SfTable extends TableElement {
4521
4705
  }
4522
4706
 
4523
4707
  renderBulkActions() {
4524
- if (!this.state.bulkActions?.length) return lit__WEBPACK_IMPORTED_MODULE_10__.nothing;
4708
+ if (!this.state.bulkActions?.length) return lit__WEBPACK_IMPORTED_MODULE_12__.nothing;
4525
4709
  const selected = this.getSelectedRecordIds();
4526
- return (0,lit__WEBPACK_IMPORTED_MODULE_10__.html)`<div class="flex flex-wrap gap-1/3">
4527
- ${this.state.bulkActions.map(action => (0,lit__WEBPACK_IMPORTED_MODULE_10__.html)`<sf-button
4710
+ return (0,lit__WEBPACK_IMPORTED_MODULE_12__.html)`<div class="flex flex-wrap gap-1/3">
4711
+ ${this.state.bulkActions.map(action => (0,lit__WEBPACK_IMPORTED_MODULE_12__.html)`<sf-button
4528
4712
  text=${action.name} ?disabled=${selected.length === 0}
4529
4713
  @click=${() => {
4530
4714
  const ids = this.getSelectedRecordIds();
@@ -4661,7 +4845,7 @@ class SfTable extends TableElement {
4661
4845
  if (action) this.requestToolbarAction(action.id);
4662
4846
  };
4663
4847
 
4664
- return (0,lit__WEBPACK_IMPORTED_MODULE_10__.html)`
4848
+ return (0,lit__WEBPACK_IMPORTED_MODULE_12__.html)`
4665
4849
  <sf-menu-context
4666
4850
  size=${this.size === "1/2" ? "1/2" : "1"}
4667
4851
  :key=${x + y}
@@ -4720,7 +4904,7 @@ class SfTable extends TableElement {
4720
4904
 
4721
4905
  const sortable = this.getColumns().filter(column => column?.sortable && !column.system && !["select", "settings", "actions"].includes(column.key));
4722
4906
  const items = [option(this.text('sortNone'), null, null), ...sortable.flatMap(column => [option(`${column.label ?? column.key}, ${this.text('sortAscending')}`, column.key, 'asc'), option(`${column.label ?? column.key}, ${this.text('sortDescending')}`, column.key, 'desc')])];
4723
- return (0,lit__WEBPACK_IMPORTED_MODULE_10__.html)`
4907
+ return (0,lit__WEBPACK_IMPORTED_MODULE_12__.html)`
4724
4908
  <sf-menu-context
4725
4909
  size=${this.size === "1/2" ? "1/2" : "1"}
4726
4910
  :key=${x + y}
@@ -4757,7 +4941,7 @@ class SfTable extends TableElement {
4757
4941
  if (item) this.requestCreateIntent(item.id);
4758
4942
  };
4759
4943
 
4760
- return (0,lit__WEBPACK_IMPORTED_MODULE_10__.html)`
4944
+ return (0,lit__WEBPACK_IMPORTED_MODULE_12__.html)`
4761
4945
  <sf-menu-context
4762
4946
  size=${this.size === "1/2" ? "1/2" : "1"}
4763
4947
  :key=${x + y}
@@ -5340,7 +5524,7 @@ class SfTable extends TableElement {
5340
5524
  if (typeof value !== "string" && typeof value !== "number" && typeof value !== "boolean") return null;
5341
5525
 
5342
5526
  if (LONG_TEXT_CELL_TYPES.has(column.propertyType ?? column.property_type ?? column.type) && typeof value !== "boolean") {
5343
- const text = String(value);
5527
+ const text = this.cellText(column, value);
5344
5528
  return {
5345
5529
  kind: "text",
5346
5530
  className: "sf-table-cell-clip",
@@ -6747,6 +6931,19 @@ class SfTable extends TableElement {
6747
6931
  columnTakesFloor(column) {
6748
6932
  if (!column?.key || SYSTEM_COLUMN_KEYS.has(column.key)) return false;
6749
6933
  return !(column.colWidth ?? column.width ?? column.size ?? column.min_width ?? column.minWidth);
6934
+ } // The settings column carries two things: the gear in its head, which
6935
+ // opens the column settings (settings-menu), and the ≡ in each row, which
6936
+ // opens the row's menu of actions. With neither -- no column settings, no
6937
+ // row actions to list, no rows to put in order -- it is an empty column
6938
+ // of buttons that open nothing, and it is not drawn (Larena, the sites
6939
+ // list, 2026-11-05: a «≡» column beside every row of a list without
6940
+ // actions).
6941
+
6942
+
6943
+ settingsColumnHasUse(props = this.getPropsContext()) {
6944
+ if (props.settingsMenu !== false) return true;
6945
+ if (props.rowReorder === true) return true;
6946
+ return (this.ACTIONS_SETTINGS_ROW ?? []).length > 0;
6750
6947
  }
6751
6948
 
6752
6949
  getSystemColumns() {
@@ -6757,7 +6954,7 @@ class SfTable extends TableElement {
6757
6954
  columns.push(this.getSelectColumn());
6758
6955
  }
6759
6956
 
6760
- if (props.settings) {
6957
+ if (props.settings && this.settingsColumnHasUse(props)) {
6761
6958
  columns.push(this.TABLE_SETTINGS_COLUMN);
6762
6959
  }
6763
6960
 
@@ -6877,7 +7074,7 @@ class SfTable extends TableElement {
6877
7074
  position
6878
7075
  } = data;
6879
7076
  const template = this.getSelectedFilterTemplate();
6880
- return (0,lit__WEBPACK_IMPORTED_MODULE_10__.html)`
7077
+ return (0,lit__WEBPACK_IMPORTED_MODULE_12__.html)`
6881
7078
  <sf-menu-context
6882
7079
  size=${this.size === "1/2" ? "1/2" : "1"}
6883
7080
  :key=${x + y + this._renderToken}
@@ -6897,7 +7094,7 @@ class SfTable extends TableElement {
6897
7094
  <div class="flex flex-col flex-1 gap-2" slot="content">
6898
7095
  <div class="sf-table-context-top"><span class="sf-text-2 bold">Сохранение шаблона</span></div>
6899
7096
  <div class="sf-table-context-main">
6900
- <form ${(0,lit_directives_ref_js__WEBPACK_IMPORTED_MODULE_11__.ref)(this.refs.templateForm)} id="save_template" class="flex flex-col gap-1/2">
7097
+ <form ${(0,lit_directives_ref_js__WEBPACK_IMPORTED_MODULE_13__.ref)(this.refs.templateForm)} id="save_template" class="flex flex-col gap-1/2">
6901
7098
  <sf-input
6902
7099
  size=${this.size}
6903
7100
  appearance="filled"
@@ -7010,7 +7207,7 @@ class SfTable extends TableElement {
7010
7207
  }
7011
7208
  }
7012
7209
 
7013
- return (0,lit__WEBPACK_IMPORTED_MODULE_10__.html)`
7210
+ return (0,lit__WEBPACK_IMPORTED_MODULE_12__.html)`
7014
7211
  <sf-menu-context
7015
7212
  size=${this.size === "1/2" ? "1/2" : "1"}
7016
7213
  :key=${x + y}
@@ -7442,14 +7639,14 @@ class SfTable extends TableElement {
7442
7639
  return this.getColumnItems().filter(col => inGroup(col) && (!pin || col.system || this.matchesColumnQuery(col.label, query))).map(col => {
7443
7640
  const itemRef = this.getItemRef(`${refPrefix}:${col.key}`) || false;
7444
7641
  const isChecked = typeof checked === "function" ? Boolean(checked(col)) : Boolean(checked);
7445
- const box = (0,lit__WEBPACK_IMPORTED_MODULE_10__.html)`
7642
+ const box = (0,lit__WEBPACK_IMPORTED_MODULE_12__.html)`
7446
7643
  <sf-checkbox
7447
7644
  size=${this.size}
7448
7645
  label=${col.label}
7449
7646
  position="end"
7450
7647
  root-class="content-main-between"
7451
7648
  ?checked=${isChecked}
7452
- ${(0,lit_directives_ref_js__WEBPACK_IMPORTED_MODULE_11__.ref)(itemRef)}
7649
+ ${(0,lit_directives_ref_js__WEBPACK_IMPORTED_MODULE_13__.ref)(itemRef)}
7453
7650
  @change=${event => onChange?.(col, event)}
7454
7651
  ></sf-checkbox>
7455
7652
  `;
@@ -7462,12 +7659,12 @@ class SfTable extends TableElement {
7462
7659
 
7463
7660
 
7464
7661
  const pinned = this.isColumnPinned(col);
7465
- return (0,lit__WEBPACK_IMPORTED_MODULE_10__.html)`
7662
+ return (0,lit__WEBPACK_IMPORTED_MODULE_12__.html)`
7466
7663
  <div class="sf-table-column-option flex items-cross-center gap-1/3"
7467
7664
  data-column-key=${col.key}
7468
7665
  data-sf-sortable-item=${col.key}
7469
7666
  data-pinned=${pinned ? "1" : "0"}>
7470
- ${handle ? (0,lit__WEBPACK_IMPORTED_MODULE_10__.html)`<sf-button-icon
7667
+ ${handle ? (0,lit__WEBPACK_IMPORTED_MODULE_12__.html)`<sf-button-icon
7471
7668
  size="1/2"
7472
7669
  appearance="link"
7473
7670
  scheme="on-surface"
@@ -7476,7 +7673,7 @@ class SfTable extends TableElement {
7476
7673
  data-sf-sortable-handle
7477
7674
  root-class="sf-table-column-move cursor-grab"
7478
7675
  aria-label=${`${this.text("columnMoveLabel", "column-move-label")}: ${col.label || col.key}`}
7479
- ></sf-button-icon>` : lit__WEBPACK_IMPORTED_MODULE_10__.nothing}
7676
+ ></sf-button-icon>` : lit__WEBPACK_IMPORTED_MODULE_12__.nothing}
7480
7677
  <span class="flex-1 min-w-0">${box}</span>
7481
7678
  <!-- A pinned column's pin is filled and a loose one's is
7482
7679
  outlined, the way a pinned filter template already
@@ -7572,14 +7769,14 @@ class SfTable extends TableElement {
7572
7769
  label,
7573
7770
  onIntent
7574
7771
  }) {
7575
- const list = (group, rows) => rows.length ? (0,lit__WEBPACK_IMPORTED_MODULE_10__.html)`<sf-sortable
7772
+ const list = (group, rows) => rows.length ? (0,lit__WEBPACK_IMPORTED_MODULE_12__.html)`<sf-sortable
7576
7773
  group=${`${name}-${group}`}
7577
7774
  data-group=${group}
7578
7775
  label=${label}
7579
7776
  class="flex flex-col gap-1/3"
7580
- @sf-sortable-intent=${onIntent}>${rows}</sf-sortable>` : lit__WEBPACK_IMPORTED_MODULE_10__.nothing;
7777
+ @sf-sortable-intent=${onIntent}>${rows}</sf-sortable>` : lit__WEBPACK_IMPORTED_MODULE_12__.nothing;
7581
7778
 
7582
- return (0,lit__WEBPACK_IMPORTED_MODULE_10__.html)`${list('pinned', pinnedRows)}${list('loose', looseRows)}`;
7779
+ return (0,lit__WEBPACK_IMPORTED_MODULE_12__.html)`${list('pinned', pinnedRows)}${list('loose', looseRows)}`;
7583
7780
  }
7584
7781
 
7585
7782
  getTableColsData(group = '') {
@@ -7908,7 +8105,31 @@ class SfTable extends TableElement {
7908
8105
  // «2026-09-25T07:12:00+03:00» in a row, and a consumer had no way to
7909
8106
  // change the second. The set still refuses to guess a format; this only
7910
8107
  // lets the host say one (admin polygon, 2026-10-10).
7911
- return (0,_field_renderers_index_js__WEBPACK_IMPORTED_MODULE_9__.renderCellField)(column, value, this.cellHost ?? null);
8108
+ const host = this.cellHost ?? null;
8109
+ const type = column.propertyType ?? column.property_type ?? column.type; // Several files are one value each, as several choices are tags: the
8110
+ // renderer set reads a file and not a list of them, so a column of
8111
+ // documents drew nothing at all (the Fields page, 2026-11-05). Each is
8112
+ // its name with its kind's icon, and what does not fit folds into «+N».
8113
+
8114
+ if (type === "file" && Array.isArray(value)) {
8115
+ const files = value.map(file => (0,_field_renderers_index_js__WEBPACK_IMPORTED_MODULE_9__.renderCellField)(column, file, host)).filter(item => item !== null && item !== undefined);
8116
+ return files.length ? files : null;
8117
+ }
8118
+
8119
+ const rendered = (0,_field_renderers_index_js__WEBPACK_IMPORTED_MODULE_9__.renderCellField)(column, value, host);
8120
+ if (rendered !== null && rendered !== undefined) return rendered; // A date the host did not format reads in the page's language rather
8121
+ // than as stored (format-date); the host's formatFieldValue still wins.
8122
+
8123
+ if (_js_format_value_js__WEBPACK_IMPORTED_MODULE_11__.DATE_TYPES.has(type)) return (0,_js_format_value_js__WEBPACK_IMPORTED_MODULE_11__.formatDateValue)(type, value, this) || null;
8124
+ return null;
8125
+ } // The text a long-text cell shows on its one line: formatted text is its
8126
+ // text, not its markup -- «<p>Этапы: <strong>дизайн</strong>…» stood in
8127
+ // the row as written (the Fields page, 2026-11-05).
8128
+
8129
+
8130
+ cellText(column = {}, value) {
8131
+ const type = column.propertyType ?? column.property_type ?? column.type;
8132
+ return type === "html" ? (0,_field_renderers_html_js__WEBPACK_IMPORTED_MODULE_10__.htmlText)(value) : String(value);
7912
8133
  } // The filter controls were the Framework's only type-aware rendering, and
7913
8134
  // Larena's request asks for one renderer set shared by the record view and
7914
8135
  // the table's cells. Keeping these here as well would have made two maps
@@ -7939,20 +8160,20 @@ class SfTable extends TableElement {
7939
8160
  const value = option.value ?? option.id ?? option.key ?? option.label ?? option.title;
7940
8161
  const label = option.label || option.title || String(value || '');
7941
8162
  const badge = field.filter?.optionRenderer === 'badge' ? (0,_helpers_option_badge_js__WEBPACK_IMPORTED_MODULE_8__.optionBadgeProps)(option) : null;
7942
- return (0,lit__WEBPACK_IMPORTED_MODULE_10__.html)`
8163
+ return (0,lit__WEBPACK_IMPORTED_MODULE_12__.html)`
7943
8164
  <div
7944
- ${(0,lit_directives_ref_js__WEBPACK_IMPORTED_MODULE_11__.ref)(this.getItemRef(option.label))}
8165
+ ${(0,lit_directives_ref_js__WEBPACK_IMPORTED_MODULE_13__.ref)(this.getItemRef(option.label))}
7945
8166
  class="flex items-cross-center gap-1/2 content-main-between">
7946
8167
  <div class="flex items-cross-center gap-1/2 min-w-0">
7947
- ${badge ? (0,lit__WEBPACK_IMPORTED_MODULE_10__.html)`
8168
+ ${badge ? (0,lit__WEBPACK_IMPORTED_MODULE_12__.html)`
7948
8169
  <sf-badge
7949
8170
  appearance="tonal"
7950
8171
  scheme=${badge.scheme}
7951
- root-style=${badge.rootStyle || lit__WEBPACK_IMPORTED_MODULE_10__.nothing}
7952
- icon=${option.icon || lit__WEBPACK_IMPORTED_MODULE_10__.nothing}
8172
+ root-style=${badge.rootStyle || lit__WEBPACK_IMPORTED_MODULE_12__.nothing}
8173
+ icon=${option.icon || lit__WEBPACK_IMPORTED_MODULE_12__.nothing}
7953
8174
  text=${label}
7954
8175
  ></sf-badge>
7955
- ` : (0,lit__WEBPACK_IMPORTED_MODULE_10__.html)`
8176
+ ` : (0,lit__WEBPACK_IMPORTED_MODULE_12__.html)`
7956
8177
  ${this.renderFilterOptionVisual(field, option)}
7957
8178
  <span class="sf-text-1 truncate">${label}</span>
7958
8179
  `}
@@ -7984,7 +8205,7 @@ class SfTable extends TableElement {
7984
8205
  renderFilterOptionVisual(field = {}, option = {}) {
7985
8206
  // A colour from the field's palette is shown as its swatch.
7986
8207
  if (field.filter?.optionRenderer === 'swatch' && option.color) {
7987
- return (0,lit__WEBPACK_IMPORTED_MODULE_10__.html)`<span class="sf-table-filter-swatch" aria-hidden="true" style=${`background-color: ${option.color}`}></span>`;
8208
+ return (0,lit__WEBPACK_IMPORTED_MODULE_12__.html)`<span class="sf-table-filter-swatch" aria-hidden="true" style=${`background-color: ${option.color}`}></span>`;
7988
8209
  }
7989
8210
 
7990
8211
  if (field.filter?.optionRenderer !== 'avatar-checkbox') {
@@ -7992,7 +8213,7 @@ class SfTable extends TableElement {
7992
8213
  }
7993
8214
 
7994
8215
  if (option.imageUrl) {
7995
- return (0,lit__WEBPACK_IMPORTED_MODULE_10__.html)`
8216
+ return (0,lit__WEBPACK_IMPORTED_MODULE_12__.html)`
7996
8217
  <sf-avatar
7997
8218
  size=${this.size}
7998
8219
  image-url="${option.imageUrl}"
@@ -8001,7 +8222,7 @@ class SfTable extends TableElement {
8001
8222
  `;
8002
8223
  }
8003
8224
 
8004
- return (0,lit__WEBPACK_IMPORTED_MODULE_10__.html)`
8225
+ return (0,lit__WEBPACK_IMPORTED_MODULE_12__.html)`
8005
8226
  <sf-avatar
8006
8227
  size=${this.size}
8007
8228
  heading="${option.avatarText || option.title || option.label || ''}"
@@ -8072,9 +8293,9 @@ class SfTable extends TableElement {
8072
8293
  };
8073
8294
  component = this.renderSmartElement(data.type, data.props);
8074
8295
  } else {
8075
- component = (0,lit__WEBPACK_IMPORTED_MODULE_10__.html)`
8296
+ component = (0,lit__WEBPACK_IMPORTED_MODULE_12__.html)`
8076
8297
  <div class="flex items-cross-center gap-1/4 flex-1">
8077
- <sf-input size=${this.size} ${(0,lit_directives_ref_js__WEBPACK_IMPORTED_MODULE_11__.ref)(this.refs.renameInput)} root-class="flex-1"
8298
+ <sf-input size=${this.size} ${(0,lit_directives_ref_js__WEBPACK_IMPORTED_MODULE_13__.ref)(this.refs.renameInput)} root-class="flex-1"
8078
8299
  default-value="${col.label}"></sf-input>
8079
8300
  <div class="flex items-cross-center flex-none">
8080
8301
  <sf-button-icon size=${this.size} segment="start" appearance="outline" scheme="on-surface" @click="${() => {
@@ -8100,16 +8321,16 @@ class SfTable extends TableElement {
8100
8321
  </div>`;
8101
8322
  }
8102
8323
 
8103
- return (0,lit__WEBPACK_IMPORTED_MODULE_10__.html)`
8324
+ return (0,lit__WEBPACK_IMPORTED_MODULE_12__.html)`
8104
8325
  <div
8105
8326
  :key=${col.key}
8106
- ${(0,lit_directives_ref_js__WEBPACK_IMPORTED_MODULE_11__.ref)(this.getItemRef(col.label))}
8327
+ ${(0,lit_directives_ref_js__WEBPACK_IMPORTED_MODULE_13__.ref)(this.getItemRef(col.label))}
8107
8328
  class="sf-settings-context-menu-item flex items-cross-center flex-1 gap-1/3 ${col.deleted ? 'opacity-3' : ''}"
8108
8329
  data-filter-template-key="${col.key}"
8109
8330
  data-sf-sortable-item=${col.key}
8110
8331
  data-pinned="${col.pinned ? "1" : "0"}"
8111
8332
  >
8112
- ${!isActiveEdit ? (0,lit__WEBPACK_IMPORTED_MODULE_10__.html)`
8333
+ ${!isActiveEdit ? (0,lit__WEBPACK_IMPORTED_MODULE_12__.html)`
8113
8334
  <sf-button-icon size=${this.size}
8114
8335
  id="${this.getInstanceId()}--template-move--${col.key}"
8115
8336
  appearance="link"
@@ -8119,9 +8340,9 @@ class SfTable extends TableElement {
8119
8340
  aria-label=${`${this.text("templateMoveLabel")}: ${col.label}`}
8120
8341
  icon="drag_indicator"
8121
8342
  root-class="cursor-move"
8122
- ></sf-button-icon>` : lit__WEBPACK_IMPORTED_MODULE_10__.nothing}
8343
+ ></sf-button-icon>` : lit__WEBPACK_IMPORTED_MODULE_12__.nothing}
8123
8344
  ${component}
8124
- ${!isActiveEdit ? (0,lit__WEBPACK_IMPORTED_MODULE_10__.html)`
8345
+ ${!isActiveEdit ? (0,lit__WEBPACK_IMPORTED_MODULE_12__.html)`
8125
8346
  <div class="flex items-cross-center m-inline-start-auto gap-1/3">
8126
8347
  <sf-button-icon
8127
8348
  appearance="link"
@@ -8152,14 +8373,14 @@ class SfTable extends TableElement {
8152
8373
  });
8153
8374
  }}
8154
8375
  ></sf-button-icon>
8155
- </div>` : lit__WEBPACK_IMPORTED_MODULE_10__.nothing}
8376
+ </div>` : lit__WEBPACK_IMPORTED_MODULE_12__.nothing}
8156
8377
  </div>`;
8157
8378
  });
8158
8379
  const menuColumnCount = columnCount ?? columnsCount ?? this.contextMenuColumns ?? 1;
8159
8380
  const colsData = this.getFilterTagColsData();
8160
8381
  const columnGroups = this.splitItemsByColumns(colsData, menuColumnCount);
8161
8382
  let contextItems = `${this.text('templatesTabText')}|${this.text('fieldsTabText')}`;
8162
- return (0,lit__WEBPACK_IMPORTED_MODULE_10__.html)`
8383
+ return (0,lit__WEBPACK_IMPORTED_MODULE_12__.html)`
8163
8384
  <sf-menu-context
8164
8385
  size=${this.size === "1/2" ? "1/2" : "1"}
8165
8386
  :key=${x + y + this._renderToken}
@@ -8195,7 +8416,7 @@ class SfTable extends TableElement {
8195
8416
  bottom, and the window keeps its width -- it grew under
8196
8417
  the pointer when «Применить (2)» got longer. -->
8197
8418
  <div class="sf-table-context-body flex flex-col flex-1" slot="content">
8198
- ${this._filterTab !== 'fields' ? (0,lit__WEBPACK_IMPORTED_MODULE_10__.html)`
8419
+ ${this._filterTab !== 'fields' ? (0,lit__WEBPACK_IMPORTED_MODULE_12__.html)`
8199
8420
  <div
8200
8421
  class="sf-context-menu-columns flex flex-col gap-1/4 overflow-auto flex-1"
8201
8422
  data-filter-template-list
@@ -8205,9 +8426,9 @@ class SfTable extends TableElement {
8205
8426
  label: this.text('templatesTabText'),
8206
8427
  onIntent: event => this.onFilterTemplateIntent(event)
8207
8428
  })}
8208
- </div>` : (0,lit__WEBPACK_IMPORTED_MODULE_10__.html)`
8429
+ </div>` : (0,lit__WEBPACK_IMPORTED_MODULE_12__.html)`
8209
8430
  <div class="sf-context-menu-columns flex flex-1 gap-1 overflow-auto">
8210
- ${columnGroups.map(group => (0,lit__WEBPACK_IMPORTED_MODULE_10__.html)`
8431
+ ${columnGroups.map(group => (0,lit__WEBPACK_IMPORTED_MODULE_12__.html)`
8211
8432
  <div class="flex flex-col gap-1 flex-1">
8212
8433
  ${group}
8213
8434
  </div>
@@ -8288,7 +8509,7 @@ class SfTable extends TableElement {
8288
8509
  control: this.getCurrentFilterTags()?.[fieldKey]?.control || 'text'
8289
8510
  }
8290
8511
  };
8291
- return (0,lit__WEBPACK_IMPORTED_MODULE_10__.html)`
8512
+ return (0,lit__WEBPACK_IMPORTED_MODULE_12__.html)`
8292
8513
  <sf-menu-context
8293
8514
  size=${this.size === "1/2" ? "1/2" : "1"}
8294
8515
  :key=${x + y + this._renderToken}
@@ -8407,7 +8628,7 @@ class SfTable extends TableElement {
8407
8628
  // bulk actions in the band under the table, so a third place to find
8408
8629
  // them taught nobody anything.
8409
8630
 
8410
- return (0,lit__WEBPACK_IMPORTED_MODULE_10__.html)`
8631
+ return (0,lit__WEBPACK_IMPORTED_MODULE_12__.html)`
8411
8632
  <sf-menu-context
8412
8633
  size=${this.size === "1/2" ? "1/2" : "1"}
8413
8634
  :key=${x + y + this._renderToken}
@@ -8443,7 +8664,7 @@ class SfTable extends TableElement {
8443
8664
  stays while the rows scroll, and its width is its own.
8444
8665
  Esc, a click outside and the gear again close it too. -->
8445
8666
  <div class="sf-table-context-body flex flex-col flex-1" slot="content">
8446
- ${this._settingsTab === 'view' ? this.renderTableViewSettings() : (0,lit__WEBPACK_IMPORTED_MODULE_10__.html)`
8667
+ ${this._settingsTab === 'view' ? this.renderTableViewSettings() : (0,lit__WEBPACK_IMPORTED_MODULE_12__.html)`
8447
8668
  <!-- The search: a site can have hundreds of fields, and
8448
8669
  scrolling for one is not an answer. -->
8449
8670
  <label class="sf-table-column-search flex flex-col">
@@ -8464,7 +8685,7 @@ class SfTable extends TableElement {
8464
8685
  name: 'table-columns',
8465
8686
  label: this.text('settingsColumnLabel'),
8466
8687
  onIntent: event => this.onColumnSettingsIntent(event)
8467
- }) : (0,lit__WEBPACK_IMPORTED_MODULE_10__.html)`<div class="sf-table-column-empty p-1 color-on-surface-variant">
8688
+ }) : (0,lit__WEBPACK_IMPORTED_MODULE_12__.html)`<div class="sf-table-column-empty p-1 color-on-surface-variant">
8468
8689
  ${this.text("columnSearchEmptyText", "column-search-empty-text")}
8469
8690
  </div>`}
8470
8691
  </div>
@@ -8491,7 +8712,7 @@ class SfTable extends TableElement {
8491
8712
  const size = this.size === "1/2" ? "1/2" : "1";
8492
8713
  const everywhere = this._viewEverywhere === true;
8493
8714
 
8494
- const row = (label, control) => (0,lit__WEBPACK_IMPORTED_MODULE_10__.html)`<div class="sf-table-settings-row">${control}<span>${label}</span></div>`;
8715
+ const row = (label, control) => (0,lit__WEBPACK_IMPORTED_MODULE_12__.html)`<div class="sf-table-settings-row">${control}<span>${label}</span></div>`;
8495
8716
 
8496
8717
  const density = ["compact", "normal", "spacious"];
8497
8718
  const label = {
@@ -8500,7 +8721,7 @@ class SfTable extends TableElement {
8500
8721
  spacious: "viewDensitySpacious"
8501
8722
  };
8502
8723
 
8503
- const check = (field, text) => (0,lit__WEBPACK_IMPORTED_MODULE_10__.html)`<label class="sf-table-settings-row" data-view-option=${field}>
8724
+ const check = (field, text) => (0,lit__WEBPACK_IMPORTED_MODULE_12__.html)`<label class="sf-table-settings-row" data-view-option=${field}>
8504
8725
  <sf-checkbox size=${size} ?checked=${view[field] === true}
8505
8726
  @change=${event => this.setTableView({
8506
8727
  [field]: Boolean(event.target?.checked ?? event.detail?.checked)
@@ -8509,11 +8730,11 @@ class SfTable extends TableElement {
8509
8730
  })}></sf-checkbox>
8510
8731
  <span>${this.text(text)}</span></label>`;
8511
8732
 
8512
- return (0,lit__WEBPACK_IMPORTED_MODULE_10__.html)`
8733
+ return (0,lit__WEBPACK_IMPORTED_MODULE_12__.html)`
8513
8734
  <div class="sf-table-view-settings flex flex-col flex-1 gap-1/3" data-table-view-settings>
8514
8735
  <div class="sf-table-settings-heading">${this.text('viewDensity')}</div>
8515
8736
  <div role="radiogroup" aria-label=${this.text('viewDensity')} class="flex flex-col">
8516
- ${density.map(value => (0,lit__WEBPACK_IMPORTED_MODULE_10__.html)`<label class="sf-table-settings-row" data-view-density=${value}>
8737
+ ${density.map(value => (0,lit__WEBPACK_IMPORTED_MODULE_12__.html)`<label class="sf-table-settings-row" data-view-density=${value}>
8517
8738
  <sf-radio size=${size} name=${`${this.getInstanceId()}-density`} value=${value} ?checked=${view.density === value}
8518
8739
  @change=${() => this.setTableView({
8519
8740
  density: value
@@ -8525,13 +8746,13 @@ class SfTable extends TableElement {
8525
8746
  ${check("stripes", "viewStripes")}
8526
8747
  ${check("lines", "viewLines")}
8527
8748
  ${check("singleLine", "viewSingleLine")}
8528
- ${this.getAttribute("vertical-scroll") === "page" ? check("stickyHead", "viewStickyHead") : lit__WEBPACK_IMPORTED_MODULE_10__.nothing}
8529
- ${this.viewPreferenceKey ? (0,lit__WEBPACK_IMPORTED_MODULE_10__.html)`<div class="sf-table-settings-separator" role="separator"></div>
8530
- ${row(this.text('viewEverywhere'), (0,lit__WEBPACK_IMPORTED_MODULE_10__.html)`<sf-checkbox size=${size} data-view-everywhere ?checked=${everywhere}
8749
+ ${this.getAttribute("vertical-scroll") === "page" ? check("stickyHead", "viewStickyHead") : lit__WEBPACK_IMPORTED_MODULE_12__.nothing}
8750
+ ${this.viewPreferenceKey ? (0,lit__WEBPACK_IMPORTED_MODULE_12__.html)`<div class="sf-table-settings-separator" role="separator"></div>
8751
+ ${row(this.text('viewEverywhere'), (0,lit__WEBPACK_IMPORTED_MODULE_12__.html)`<sf-checkbox size=${size} data-view-everywhere ?checked=${everywhere}
8531
8752
  @change=${event => {
8532
8753
  this._viewEverywhere = Boolean(event.target?.checked ?? event.detail?.checked);
8533
8754
  this.requestComponentUpdate('view-everywhere');
8534
- }}></sf-checkbox>`)}` : lit__WEBPACK_IMPORTED_MODULE_10__.nothing}
8755
+ }}></sf-checkbox>`)}` : lit__WEBPACK_IMPORTED_MODULE_12__.nothing}
8535
8756
  </div>`;
8536
8757
  }
8537
8758
 
@@ -8580,7 +8801,7 @@ class SfTable extends TableElement {
8580
8801
  const temp = this.getFilterTemplateByKey(template.key, this.tempSettings?.filter || null);
8581
8802
  let isDeleted = (temp || template).deleted;
8582
8803
  const isDefaultTemplate = (temp || template).default === true;
8583
- return (0,lit__WEBPACK_IMPORTED_MODULE_10__.html)`
8804
+ return (0,lit__WEBPACK_IMPORTED_MODULE_12__.html)`
8584
8805
  <sf-menu-context
8585
8806
  size=${this.size === "1/2" ? "1/2" : "1"}
8586
8807
  :key=${`${template.key || ''}-${x}-${y}`}
@@ -8648,7 +8869,7 @@ class SfTable extends TableElement {
8648
8869
  return this.renderTemplateActionsContextSubmenu(data);
8649
8870
 
8650
8871
  default:
8651
- return lit__WEBPACK_IMPORTED_MODULE_10__.nothing;
8872
+ return lit__WEBPACK_IMPORTED_MODULE_12__.nothing;
8652
8873
  }
8653
8874
  }
8654
8875
 
@@ -8661,26 +8882,26 @@ class SfTable extends TableElement {
8661
8882
  }
8662
8883
 
8663
8884
  if (!data?.open) {
8664
- (0,lit__WEBPACK_IMPORTED_MODULE_10__.render)(null, this.getPortalContainer());
8885
+ (0,lit__WEBPACK_IMPORTED_MODULE_12__.render)(null, this.getPortalContainer());
8665
8886
  this.hidePortal();
8666
- return lit__WEBPACK_IMPORTED_MODULE_10__.nothing;
8887
+ return lit__WEBPACK_IMPORTED_MODULE_12__.nothing;
8667
8888
  }
8668
8889
 
8669
- (0,lit__WEBPACK_IMPORTED_MODULE_10__.render)((0,lit__WEBPACK_IMPORTED_MODULE_10__.html)`
8890
+ (0,lit__WEBPACK_IMPORTED_MODULE_12__.render)((0,lit__WEBPACK_IMPORTED_MODULE_12__.html)`
8670
8891
  <div
8671
8892
  class="sf-table-context-layer"
8672
- data-sf-sheet=${this.isList && ["filter-settings", "tag-settings"].includes(data.menu) ? "" : lit__WEBPACK_IMPORTED_MODULE_10__.nothing}
8673
- ${(0,lit_directives_ref_js__WEBPACK_IMPORTED_MODULE_11__.ref)(this.refs.contextMenu)}
8893
+ data-sf-sheet=${this.isList && ["filter-settings", "tag-settings"].includes(data.menu) ? "" : lit__WEBPACK_IMPORTED_MODULE_12__.nothing}
8894
+ ${(0,lit_directives_ref_js__WEBPACK_IMPORTED_MODULE_13__.ref)(this.refs.contextMenu)}
8674
8895
  @click=${event => this.handleContextLayerClick(event)}
8675
8896
  >
8676
8897
  ${this.renderMainContextMenu(data)}
8677
- ${data.submenu?.open ? this.renderContextSubmenu(data.submenu) : lit__WEBPACK_IMPORTED_MODULE_10__.nothing}
8678
- ${this.isList && ["filter-settings", "tag-settings"].includes(data.menu) ? (0,lit__WEBPACK_IMPORTED_MODULE_10__.html)`
8898
+ ${data.submenu?.open ? this.renderContextSubmenu(data.submenu) : lit__WEBPACK_IMPORTED_MODULE_12__.nothing}
8899
+ ${this.isList && ["filter-settings", "tag-settings"].includes(data.menu) ? (0,lit__WEBPACK_IMPORTED_MODULE_12__.html)`
8679
8900
  <div class="sf-table-sheet-close">
8680
8901
  <sf-button-icon size=${this.size} appearance="link" scheme="on-surface"
8681
8902
  icon="close" aria-label=${this.text('closeText')}
8682
8903
  @click=${() => this.closeContextMenu()}></sf-button-icon>
8683
- </div>` : lit__WEBPACK_IMPORTED_MODULE_10__.nothing}
8904
+ </div>` : lit__WEBPACK_IMPORTED_MODULE_12__.nothing}
8684
8905
  </div>
8685
8906
  `, this.getPortalContainer());
8686
8907
  this.showPortal();
@@ -8691,7 +8912,7 @@ class SfTable extends TableElement {
8691
8912
 
8692
8913
  this.redrawWhenComponentsUpgrade(this.getPortalContainer());
8693
8914
  });
8694
- return lit__WEBPACK_IMPORTED_MODULE_10__.nothing;
8915
+ return lit__WEBPACK_IMPORTED_MODULE_12__.nothing;
8695
8916
  }
8696
8917
 
8697
8918
  getActionItems() {
@@ -8935,7 +9156,7 @@ class SfTable extends TableElement {
8935
9156
  start: () => {
8936
9157
  state.dragging = true;
8937
9158
  this._columnResizeState = state;
8938
- (0,_helpers_loaderDragState__WEBPACK_IMPORTED_MODULE_14__.setLoaderDragState)(true);
9159
+ (0,_helpers_loaderDragState__WEBPACK_IMPORTED_MODULE_16__.setLoaderDragState)(true);
8939
9160
  document.documentElement.classList.add('sf-table-column-resizing');
8940
9161
  },
8941
9162
  apply: width => {
@@ -8955,7 +9176,7 @@ class SfTable extends TableElement {
8955
9176
  },
8956
9177
  end: () => {
8957
9178
  document.documentElement.classList.remove('sf-table-column-resizing');
8958
- (0,_helpers_loaderDragState__WEBPACK_IMPORTED_MODULE_14__.setLoaderDragState)(false);
9179
+ (0,_helpers_loaderDragState__WEBPACK_IMPORTED_MODULE_16__.setLoaderDragState)(false);
8959
9180
  this.suppressNextHeaderClick(); // The drag is over before the line goes: hidden while the
8960
9181
  // state still said «resizing», it stayed on the edge.
8961
9182
 
@@ -9970,7 +10191,7 @@ class SfTable extends TableElement {
9970
10191
  let parent = null;
9971
10192
 
9972
10193
  if (opts.parent) {
9973
- parent = (0,_helpers_dom__WEBPACK_IMPORTED_MODULE_13__.getParent)(event.target);
10194
+ parent = (0,_helpers_dom__WEBPACK_IMPORTED_MODULE_15__.getParent)(event.target);
9974
10195
  pos = parent.getBoundingClientRect();
9975
10196
  anchor = parent;
9976
10197
  }
@@ -10836,7 +11057,7 @@ class SfTable extends TableElement {
10836
11057
  }
10837
11058
  });
10838
11059
  this.stopContextMenuPositions();
10839
- (0,lit__WEBPACK_IMPORTED_MODULE_10__.render)(null, this.getPortalContainer());
11060
+ (0,lit__WEBPACK_IMPORTED_MODULE_12__.render)(null, this.getPortalContainer());
10840
11061
  this.hidePortal();
10841
11062
 
10842
11063
  if (this.refs.contextMenu) {
@@ -11063,7 +11284,7 @@ class SfTable extends TableElement {
11063
11284
  this.contextTarget = null;
11064
11285
 
11065
11286
  if (this._portalContainer) {
11066
- (0,lit__WEBPACK_IMPORTED_MODULE_10__.render)(null, this._portalContainer);
11287
+ (0,lit__WEBPACK_IMPORTED_MODULE_12__.render)(null, this._portalContainer);
11067
11288
 
11068
11289
  this._portalContainer.remove();
11069
11290
 
@@ -11086,7 +11307,7 @@ class SfTable extends TableElement {
11086
11307
 
11087
11308
 
11088
11309
  text(key, attribute) {
11089
- return attribute && this.getAttribute(attribute) || (0,_core_js_page_language__WEBPACK_IMPORTED_MODULE_12__.pageText)(TABLE_TEXT, key, this);
11310
+ return attribute && this.getAttribute(attribute) || (0,_core_js_page_language__WEBPACK_IMPORTED_MODULE_14__.pageText)(TABLE_TEXT, key, this);
11090
11311
  }
11091
11312
 
11092
11313
  templateContext() {
@@ -11122,7 +11343,7 @@ class SfTable extends TableElement {
11122
11343
  return;
11123
11344
  }
11124
11345
 
11125
- const parentSpace = (0,_helpers_dom__WEBPACK_IMPORTED_MODULE_13__.setParentSpace)(this.refs.items);
11346
+ const parentSpace = (0,_helpers_dom__WEBPACK_IMPORTED_MODULE_15__.setParentSpace)(this.refs.items);
11126
11347
 
11127
11348
  if (!parentSpace) {
11128
11349
  return;
@@ -11275,6 +11496,74 @@ __webpack_async_result__();
11275
11496
 
11276
11497
  /***/ },
11277
11498
 
11499
+ /***/ "2f31b00ad99a"
11500
+ (module, __webpack_exports__, __webpack_require__) {
11501
+
11502
+ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
11503
+ __webpack_require__.r(__webpack_exports__);
11504
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
11505
+ /* harmony export */ DATE_TYPES: () => (/* binding */ DATE_TYPES),
11506
+ /* harmony export */ formatDateValue: () => (/* binding */ formatDateValue)
11507
+ /* harmony export */ });
11508
+ /* harmony import */ var _core_js_format_date_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("e577837dd70a");
11509
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_core_js_format_date_js__WEBPACK_IMPORTED_MODULE_0__]);
11510
+ var __webpack_async_dependencies_result__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
11511
+ _core_js_format_date_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_async_dependencies_result__[0];
11512
+ // A date, a date and time or a time of day in the page's language, through
11513
+ // the SIMAI Framework's format-date module, for a value the host did not
11514
+ // format (formatFieldValue). The host's own text still wins; without one, a
11515
+ // date read «2026-11-02» where a person expects «2 нояб. 2026 г.».
11516
+ //
11517
+ // The forms are read as a host stores them: a day «YYYY-MM-DD» is that day on
11518
+ // the reader's calendar (not UTC midnight, which is the day before west of
11519
+ // Greenwich); a date and time with a zone is that moment in the reader's zone
11520
+ // and one without a zone is the wall clock as written; a time «hh:mm[:ss]» is
11521
+ // a time of day. Anything else is left for the caller to print as it came.
11522
+
11523
+ const DAY = /^(\d{4})-(\d{2})-(\d{2})$/u;
11524
+ const TIME = /^(\d{2}):(\d{2})(?::(\d{2})(?:\.\d+)?)?$/u;
11525
+ const DATE_TIME = /^(\d{4})-(\d{2})-(\d{2})[T ](\d{2}):(\d{2})(?::(\d{2})(?:\.\d+)?)?(Z|[+-]\d{2}:?\d{2})?$/u;
11526
+ const DATE_TYPES = new Set(['date', 'datetime', 'time']);
11527
+
11528
+ function readMoment(type, text) {
11529
+ const day = DAY.exec(text);
11530
+ if (day) return new Date(Number(day[1]), Number(day[2]) - 1, Number(day[3]));
11531
+ const time = TIME.exec(text);
11532
+ if (time) return type === 'time' ? new Date(2000, 0, 1, Number(time[1]), Number(time[2]), Number(time[3] ?? 0)) : null;
11533
+ const stamp = DATE_TIME.exec(text);
11534
+ if (!stamp) return null;
11535
+
11536
+ if (stamp[7]) {
11537
+ const moment = new Date(text.replace(' ', 'T'));
11538
+ return Number.isNaN(moment.getTime()) ? null : moment;
11539
+ }
11540
+
11541
+ return new Date(Number(stamp[1]), Number(stamp[2]) - 1, Number(stamp[3]), Number(stamp[4]), Number(stamp[5]), Number(stamp[6] ?? 0));
11542
+ } // The text for a value of a date type, or '' when it is not one this reads.
11543
+
11544
+
11545
+ function formatDateValue(type, value, node) {
11546
+ if (!DATE_TYPES.has(type) || typeof value !== 'string' || !value.trim()) return '';
11547
+ const text = value.trim();
11548
+ const moment = readMoment(type, text);
11549
+ if (!moment) return '';
11550
+ const hasTime = type !== 'date' && !DAY.test(text);
11551
+ if (type === 'time') return (0,_core_js_format_date_js__WEBPACK_IMPORTED_MODULE_0__.formatDate)(moment, {
11552
+ date: null,
11553
+ time: 'short',
11554
+ node
11555
+ });
11556
+ return (0,_core_js_format_date_js__WEBPACK_IMPORTED_MODULE_0__.formatDate)(moment, {
11557
+ date: 'medium',
11558
+ time: hasTime ? 'short' : null,
11559
+ node
11560
+ });
11561
+ }
11562
+ __webpack_async_result__();
11563
+ } catch(e) { __webpack_async_result__(e); } });
11564
+
11565
+ /***/ },
11566
+
11278
11567
  /***/ "17828be41e75"
11279
11568
  (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
11280
11569
 
@@ -12472,7 +12761,7 @@ function renderTableTemplate(context) {
12472
12761
 
12473
12762
 
12474
12763
  if (LONG_TEXT_TYPES.has(column.propertyType ?? column.property_type ?? column.type) && (typeof value === "string" || typeof value === "number")) {
12475
- const text = String(value);
12764
+ const text = context.component?.cellText?.(column, value) ?? String(value);
12476
12765
  return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html)`<span class="sf-table-cell-clip" title=${text}>${text}</span>`;
12477
12766
  } // The renderer set is asked before the shapes below, because a typed
12478
12767
  // cell's value is often an object -- a user or a related record arrives
@@ -13686,7 +13975,7 @@ module.exports = /*#__PURE__*/JSON.parse('{"$comment":"Dated aliases of sf-view-
13686
13975
  /***/ "c1f17ed5a348"
13687
13976
  (module) {
13688
13977
 
13689
- module.exports = /*#__PURE__*/JSON.parse('{"id":"smart.view-table","tag":"sf-view-table","version":"1.14.0","kind":"leaf","settings":{"selectable":{"type":"boolean","default":true},"settings":{"type":"boolean","default":true},"actions":{"type":"boolean","default":true},"row-actions":{"type":"boolean","default":true},"creatable":{"type":"boolean","default":true},"filter-templates":{"type":"boolean","default":true},"settings-menu":{"type":"boolean","default":true},"pagin":{"type":"boolean","default":false},"filter-text":{"type":"string","default-from":"runtime.filter-text"},"clear-text":{"type":"string","default-from":"runtime.clear-text"},"search-placeholder":{"type":"string","default-from":"runtime.search-placeholder"},"create-text":{"type":"string","default-from":"runtime.create-text"},"pagination-total":{"type":"number","default":10,"integer":true,"min":0},"pagination-page-size":{"type":"number","default":10,"integer":true,"min":1,"max":100},"page-sizes":{"type":"string","default":"10,20,30,40"},"context-menu-columns":{"type":"number","default":1,"integer":true,"min":1,"max":4},"remember-widths":{"type":"boolean","default":false},"table-settings-key":{"type":"string","default":""},"data-state":{"type":"enum","values":["auto","loading","ready","populated","empty","error"],"default":"auto","x-alias":{"populated":"ready"}},"loading-text":{"type":"string","default-from":"runtime.loading-text"},"empty-text":{"type":"string","default-from":"runtime.empty-text"},"empty-description":{"type":"string"},"error-text":{"type":"string","default-from":"runtime.error-text"},"retry-text":{"type":"string","default-from":"runtime.retry-text"},"toolbar":{"type":"boolean","default":true},"pin-column-label":{"type":"string","default-from":"runtime.pin-column-label"},"unpin-column-label":{"type":"string","default-from":"runtime.unpin-column-label"},"column-move-label":{"type":"string","default-from":"runtime.column-move-label"},"column-search-placeholder":{"type":"string","default-from":"runtime.column-search-placeholder"},"column-search-empty-text":{"type":"string","default-from":"runtime.column-search-empty-text"},"vertical-scroll":{"type":"enum","values":["self","page"],"default":"self"},"filter-apply-text":{"type":"string","default-from":"runtime.filter-apply-text"},"layout":{"type":"enum","values":["auto","table","list"],"default":"table"},"list-below":{"type":"number","default":600},"list-fields":{"type":"number","default":3},"size":{"type":"enum","values":["1/2","1"],"default":"1"},"preferences-key":{"type":"string","default":""},"row-actions-visible":{"type":"enum","values":["hover","always"],"default":"hover"},"drag-rows":{"type":"boolean","default":false},"row-reorder":{"type":"boolean","default":false},"inline-edit":{"type":"boolean","default":false},"active-filter-fields":{"type":"list","entries":{"key":"id"}},"bulk-actions":{"type":"list"},"columns":{"type":"list","of":{"key":"string","label":"string"}},"create-items":{"type":"list"},"filter-fields":{"type":"list"},"rows":{"type":"list","entries":{"key":"id","changes":"revision"},"of":{"id":"id","revision":{"type":"string","optional":true}}},"table-data":{"type":"object"},"table-settings":{"type":"object"},"templates":{"type":"list"},"toolbar-actions":{"type":"list"},"sort":{"type":"list","of":{"key":"string","direction":{"type":"enum","values":["asc","desc"]}},"controlled":true},"current":{"type":"string","default":""}},"values":{"selected":{"type":"id","optional":true},"selection":{"type":"list","default":[]}},"events":{"select":{"carries":{"ids":"list"}},"apply":{"carries":{"action":"string","scope":{"type":"enum","values":["entry","selection","filter"]},"ids":"list","revisions":{"type":"object","optional":true}}},"save":{"carries":{"kind":{"type":"enum","values":["columns"]},"reason":"string","column-settings":{"type":"object"},"table-settings-key":{"type":"string"}}},"column-settings-reset":{"carries":{"target":{"type":"enum","values":["personal"]},"table-settings-key":{"type":"string","nullable":true}},"own-verb":true},"create":{"carries":{"item":{"type":"string","nullable":true,"optional":true}}},"filter-change":{"carries":{"template-key":{"type":"string"},"template-label":{"type":"string"},"values":{"type":"object"},"tags":{"type":"object"}},"own-verb":true},"query":{"carries":{"reason":"string","context":"object","sequence":{"type":"number","integer":true}}},"refresh":{"carries":{}},"search-change":{"carries":{"search":"string"},"own-verb":true},"sort-change":{"carries":{"key":{"type":"string","schema":{"minLength":1}},"direction":{"type":"enum","values":["asc","desc",null],"nullable":true}},"own-verb":true},"template-delete":{"carries":{"key":{"type":"string","schema":{"minLength":1}}},"own-verb":true},"template-save":{"carries":{},"own-verb":true},"template-select":{"carries":{"key":{"type":"string","schema":{"minLength":1}}},"own-verb":true},"toolbar-action":{"carries":{"action":"string","href":{"type":"string","nullable":true,"optional":true}},"cancelable":true,"own-verb":true},"reference-open":{"carries":{"field":"string","value":"object","href":"string"},"cancelable":true,"own-verb":true},"expand":{"carries":{"id":"id","expanded":{"type":"boolean","optional":true}}},"load-more":{"carries":{"direction":{"type":"enum","values":["after"]},"parent":{"type":"id","nullable":true},"cursor":{"type":"string","nullable":true}}},"rows-drag":{"carries":{"ids":{"type":"list","schema":{"items":{"type":"string"},"minItems":1}},"source":{"type":"string","nullable":true}},"own-verb":true},"move":{"carries":{"ids":"list","before":{"type":"id","nullable":true},"order":"list"}},"cell-set":{"carries":{"id":"object","key":"string","value":"object","revision":"object"},"own-verb":true},"view-change":{"carries":{"view":"object","everywhere":"boolean"},"own-verb":true},"window":{"carries":{"first":{"type":"number","integer":true},"last":{"type":"number","integer":true}},"own-verb":true}},"actions":{"add-rows":{"with":{"rows":"list"}},"apply-query-result":{"with":{"sequence":{"type":"number","integer":true,"schema":{"minimum":1}},"rows":"list"}},"clear-selection":{},"request-action-intent":{"with":{"action-id":{"type":"string","schema":{"minLength":1}},"record-ids":{"type":"list","schema":{"items":{"type":["string","integer"],"minLength":1},"minItems":1}}},"emits":"apply"},"request-create-intent":{"with":{"item-id":{"type":"string","optional":true,"nullable":true}},"emits":"create"},"request-retry":{"emits":"refresh"},"set-sort":{"with":{"key":{"type":"string","nullable":true},"direction":{"type":"enum","values":["asc","desc"],"nullable":true}}},"toggle-tree-row":{"with":{"row":"object"},"emits":"expand"},"request-tree-more":{"with":{"row":"object"},"emits":"load-more"},"focus-row":{"with":{"id":"id"}}},"port":{"id":"simai.dataview-port","version":"1.0.0","contract":"src/core/contracts/ports/simai.dataview-port/1.0.0/port.json"},"presentation":{"skeleton":{"late":["rows"]}},"host-states":{"data-sf-view-stripes":"boolean","data-sf-page-scroll":"boolean"},"css-variables":{"--sf-table-row-block-size-1/2":{"type":"length","state":"default"},"--sf-table-row-block-size-1":{"type":"length","state":"default"},"--sf-table-row-2-lines-block-size-1/2":{"type":"length","state":"default"},"--sf-table-row-2-lines-block-size-1":{"type":"length","state":"default"},"--sf-table-head-block-size-1/2":{"type":"length","state":"default"},"--sf-table-head-block-size-1":{"type":"length","state":"default"},"--sf-table-toolbar-block-size-1/2":{"type":"length","state":"default"},"--sf-table-toolbar-block-size-1":{"type":"length","state":"default"},"--sf-table-toolbar-gap":{"type":"length","state":"default"},"--sf-table-head--background-color":{"type":"color","state":"default"},"--sf-table-row--background-color":{"type":"color","state":"default"},"--sf-table--cell-spacing":{"type":"length","state":"default"},"--sf-table-cell--line-clamp":{"type":"number","state":"default"},"--sf-table-context-menu--z-index":{"type":"number","state":"open"},"--sf-table-context-menu--max-width":{"type":"length","state":"open"}}}');
13978
+ module.exports = /*#__PURE__*/JSON.parse('{"id":"smart.view-table","tag":"sf-view-table","version":"1.15.0","kind":"leaf","settings":{"selectable":{"type":"boolean","default":true},"settings":{"type":"boolean","default":true},"actions":{"type":"boolean","default":true},"row-actions":{"type":"boolean","default":true},"creatable":{"type":"boolean","default":true},"filter-templates":{"type":"boolean","default":true},"settings-menu":{"type":"boolean","default":true},"pagin":{"type":"boolean","default":false},"filter-text":{"type":"string","default-from":"runtime.filter-text"},"clear-text":{"type":"string","default-from":"runtime.clear-text"},"search-placeholder":{"type":"string","default-from":"runtime.search-placeholder"},"create-text":{"type":"string","default-from":"runtime.create-text"},"pagination-total":{"type":"number","default":10,"integer":true,"min":0},"pagination-page-size":{"type":"number","default":10,"integer":true,"min":1,"max":100},"page-sizes":{"type":"string","default":"10,20,30,40"},"context-menu-columns":{"type":"number","default":1,"integer":true,"min":1,"max":4},"remember-widths":{"type":"boolean","default":false},"table-settings-key":{"type":"string","default":""},"data-state":{"type":"enum","values":["auto","loading","ready","populated","empty","error"],"default":"auto","x-alias":{"populated":"ready"}},"loading-text":{"type":"string","default-from":"runtime.loading-text"},"empty-text":{"type":"string","default-from":"runtime.empty-text"},"empty-description":{"type":"string"},"error-text":{"type":"string","default-from":"runtime.error-text"},"retry-text":{"type":"string","default-from":"runtime.retry-text"},"toolbar":{"type":"boolean","default":true},"pin-column-label":{"type":"string","default-from":"runtime.pin-column-label"},"unpin-column-label":{"type":"string","default-from":"runtime.unpin-column-label"},"column-move-label":{"type":"string","default-from":"runtime.column-move-label"},"column-search-placeholder":{"type":"string","default-from":"runtime.column-search-placeholder"},"column-search-empty-text":{"type":"string","default-from":"runtime.column-search-empty-text"},"vertical-scroll":{"type":"enum","values":["self","page"],"default":"self"},"filter-apply-text":{"type":"string","default-from":"runtime.filter-apply-text"},"layout":{"type":"enum","values":["auto","table","list"],"default":"table"},"list-below":{"type":"number","default":600},"list-fields":{"type":"number","default":3},"size":{"type":"enum","values":["1/2","1"],"default":"1"},"preferences-key":{"type":"string","default":""},"row-actions-visible":{"type":"enum","values":["hover","always"],"default":"hover"},"drag-rows":{"type":"boolean","default":false},"row-reorder":{"type":"boolean","default":false},"inline-edit":{"type":"boolean","default":false},"active-filter-fields":{"type":"list","entries":{"key":"id"}},"bulk-actions":{"type":"list"},"columns":{"type":"list","of":{"key":"string","label":"string"}},"create-items":{"type":"list"},"filter-fields":{"type":"list"},"rows":{"type":"list","entries":{"key":"id","changes":"revision"},"of":{"id":"id","revision":{"type":"string","optional":true}}},"table-data":{"type":"object"},"table-settings":{"type":"object"},"templates":{"type":"list"},"toolbar-actions":{"type":"list"},"sort":{"type":"list","of":{"key":"string","direction":{"type":"enum","values":["asc","desc"]}},"controlled":true},"current":{"type":"string","default":""}},"values":{"selected":{"type":"id","optional":true},"selection":{"type":"list","default":[]}},"events":{"select":{"carries":{"ids":"list"}},"apply":{"carries":{"action":"string","scope":{"type":"enum","values":["entry","selection","filter"]},"ids":"list","revisions":{"type":"object","optional":true}}},"save":{"carries":{"kind":{"type":"enum","values":["columns"]},"reason":"string","column-settings":{"type":"object"},"table-settings-key":{"type":"string"}}},"column-settings-reset":{"carries":{"target":{"type":"enum","values":["personal"]},"table-settings-key":{"type":"string","nullable":true}},"own-verb":true},"create":{"carries":{"item":{"type":"string","nullable":true,"optional":true}}},"filter-change":{"carries":{"template-key":{"type":"string"},"template-label":{"type":"string"},"values":{"type":"object"},"tags":{"type":"object"}},"own-verb":true},"query":{"carries":{"reason":"string","context":"object","sequence":{"type":"number","integer":true}}},"refresh":{"carries":{}},"search-change":{"carries":{"search":"string"},"own-verb":true},"sort-change":{"carries":{"key":{"type":"string","schema":{"minLength":1}},"direction":{"type":"enum","values":["asc","desc",null],"nullable":true}},"own-verb":true},"template-delete":{"carries":{"key":{"type":"string","schema":{"minLength":1}}},"own-verb":true},"template-save":{"carries":{},"own-verb":true},"template-select":{"carries":{"key":{"type":"string","schema":{"minLength":1}}},"own-verb":true},"toolbar-action":{"carries":{"action":"string","href":{"type":"string","nullable":true,"optional":true}},"cancelable":true,"own-verb":true},"reference-open":{"carries":{"field":"string","value":"object","href":"string"},"cancelable":true,"own-verb":true},"expand":{"carries":{"id":"id","expanded":{"type":"boolean","optional":true}}},"load-more":{"carries":{"direction":{"type":"enum","values":["after"]},"parent":{"type":"id","nullable":true},"cursor":{"type":"string","nullable":true}}},"rows-drag":{"carries":{"ids":{"type":"list","schema":{"items":{"type":"string"},"minItems":1}},"source":{"type":"string","nullable":true}},"own-verb":true},"move":{"carries":{"ids":"list","before":{"type":"id","nullable":true},"order":"list"}},"cell-set":{"carries":{"id":"object","key":"string","value":"object","revision":"object"},"own-verb":true},"view-change":{"carries":{"view":"object","everywhere":"boolean"},"own-verb":true},"window":{"carries":{"first":{"type":"number","integer":true},"last":{"type":"number","integer":true}},"own-verb":true}},"actions":{"add-rows":{"with":{"rows":"list"}},"apply-query-result":{"with":{"sequence":{"type":"number","integer":true,"schema":{"minimum":1}},"rows":"list"}},"clear-selection":{},"request-action-intent":{"with":{"action-id":{"type":"string","schema":{"minLength":1}},"record-ids":{"type":"list","schema":{"items":{"type":["string","integer"],"minLength":1},"minItems":1}}},"emits":"apply"},"request-create-intent":{"with":{"item-id":{"type":"string","optional":true,"nullable":true}},"emits":"create"},"request-retry":{"emits":"refresh"},"set-sort":{"with":{"key":{"type":"string","nullable":true},"direction":{"type":"enum","values":["asc","desc"],"nullable":true}}},"toggle-tree-row":{"with":{"row":"object"},"emits":"expand"},"request-tree-more":{"with":{"row":"object"},"emits":"load-more"},"focus-row":{"with":{"id":"id"}}},"port":{"id":"simai.dataview-port","version":"1.0.0","contract":"src/core/contracts/ports/simai.dataview-port/1.0.0/port.json"},"presentation":{"skeleton":{"late":["rows"]}},"host-states":{"data-sf-view-stripes":"boolean","data-sf-page-scroll":"boolean"},"css-variables":{"--sf-table-row-block-size-1/2":{"type":"length","state":"default"},"--sf-table-row-block-size-1":{"type":"length","state":"default"},"--sf-table-row-2-lines-block-size-1/2":{"type":"length","state":"default"},"--sf-table-row-2-lines-block-size-1":{"type":"length","state":"default"},"--sf-table-head-block-size-1/2":{"type":"length","state":"default"},"--sf-table-head-block-size-1":{"type":"length","state":"default"},"--sf-table-toolbar-block-size-1/2":{"type":"length","state":"default"},"--sf-table-toolbar-block-size-1":{"type":"length","state":"default"},"--sf-table-toolbar-gap":{"type":"length","state":"default"},"--sf-table-head--background-color":{"type":"color","state":"default"},"--sf-table-row--background-color":{"type":"color","state":"default"},"--sf-table--cell-spacing":{"type":"length","state":"default"},"--sf-table-cell--line-clamp":{"type":"number","state":"default"},"--sf-table-context-menu--z-index":{"type":"number","state":"open"},"--sf-table-context-menu--max-width":{"type":"length","state":"open"}}}');
13690
13979
 
13691
13980
  /***/ },
13692
13981