@simai-studio/ui 5.20261023.126 → 5.20261023.214
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/a-field-hidden-by-its-condition-is-not-saved.json +45 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/a-field-says-what-it-falls-back-to.json +12 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/a-field-taken-out-of-an-area-is-unplaced.json +40 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/a-reader-is-offered-nothing-to-change.json +23 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/a-related-group-is-a-list-not-fields.json +23 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/a-stale-confirmation-is-asked-again.json +39 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/conditions-arrive-declared.json +82 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/create-applied-answers-with-the-id.json +24 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/create-field-errors-are-refused.json +22 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/field-presentation-keys-are-declared.json +12 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/group-save-applied-is-one-revision.json +16 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/group-save-confirmed-with-the-digest-is-applied.json +35 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/group-save-field-errors-are-refused.json +16 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/group-save-may-ask-for-a-confirmation.json +38 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/group-save-stale-revision-is-a-conflict.json +16 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/load-applied-carries-the-object.json +12 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/load-for-create-is-an-empty-object.json +24 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/load-late-answer-is-dropped.json +15 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/load-refused-is-explained.json +12 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/load-unavailable-is-honest.json +12 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/lookup-arrives-with-its-label.json +70 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/opening-a-reference-is-the-hosts-decision.json +12 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/opening-the-record-as-a-page-is-offered-only-where-it-leads-somewhere.json +28 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/options-carry-the-source-and-a-limit.json +33 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/options-page-carries-a-cursor.json +15 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/options-refused-is-explained.json +14 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/options-search-by-source-reaches-the-host.json +30 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/options-search-reaches-the-host.json +14 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/options-without-the-capability.json +14 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/rare-fields-arrive-declared.json +12 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/removing-a-file-is-a-save.json +13 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/save-applied-is-one-revision.json +26 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/save-may-ask-for-a-confirmation.json +36 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/save-stale-revision-is-a-conflict.json +23 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/the-address-is-the-hosts.json +12 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/upload-answers-with-the-stored-file.json +14 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/upload-refused-is-explained.json +14 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/view-create-answers-with-the-record-through-the-new-view.json +32 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/view-create-shared-may-be-refused.json +27 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/view-delete-applied-answers-with-what-is-left.json +25 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/view-delete-the-last-shared-one-is-refused.json +25 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/view-profile-applied-carries-the-record-through-it.json +25 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/view-profile-refused-is-explained.json +25 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/view-profile-unavailable-without-the-capability.json +23 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/view-rename-changes-the-label-only.json +26 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/view-reset-answers-with-what-now-resolves.json +30 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/view-save-against-a-stale-revision-is-a-conflict.json +36 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/view-save-is-one-layer-one-revision.json +35 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/view-save-may-name-an-area-the-record-does-not-carry.json +49 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/view-save-rejects-entries-by-kind.json +36 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/view-settings-without-the-capability.json +30 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/manifest.json +66 -0
- package/distr/core/contracts/ports/simai.property-view-port/1.14.0/port.json +2484 -0
- package/distr/smart/field-renderers/js/field-renderers.min.js +128 -87
- package/package-manifest.json +57 -4
- package/package.json +4 -4
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<sf-input
|
|
3
3
|
size=${u(t)}
|
|
4
4
|
appearance="filled"
|
|
5
|
-
placeholder="${
|
|
5
|
+
placeholder="${be(t,"containsText")}"
|
|
6
6
|
value="${r.value||""}"
|
|
7
7
|
name="sf_filter_${e.key||"text"}"
|
|
8
8
|
@change=${a=>{t.patchTempFilterValue(e.key,{value:a.target?.value||"",operator:r.operator||e.filter?.defaultOperator||"contains"})}}
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
size=${u(t)}
|
|
26
26
|
appearance="outlined"
|
|
27
27
|
mode="select"
|
|
28
|
-
placeholder="${
|
|
28
|
+
placeholder="${be(t,"operator")}"
|
|
29
29
|
root-class="flex-1"
|
|
30
30
|
search="false"
|
|
31
31
|
@change=${r=>{const a=r.detail?.values?.[0]||r.detail?.value||l;t.patchTempFilterValue(e.key,{operator:a})}}
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
size=${u(t)}
|
|
49
49
|
appearance="bordered"
|
|
50
50
|
root-class="flex-1 min-w-0"
|
|
51
|
-
label="${i?
|
|
51
|
+
label="${i?be(t,"rangeFrom"):t.getFilterOperatorLabel(l)}"
|
|
52
52
|
value="${i?s[0]||"":o||""}"
|
|
53
53
|
name="sf_filter_${e.key||"number"}"
|
|
54
54
|
@change=${e=>{d(0,e.target?.value)}}
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
<sf-input
|
|
58
58
|
size=${u(t)}
|
|
59
59
|
appearance="bordered"
|
|
60
|
-
label="${
|
|
60
|
+
label="${be(t,"rangeTo")}"
|
|
61
61
|
root-class="flex-1 min-w-0"
|
|
62
62
|
value="${s[1]||""}"
|
|
63
63
|
name="sf_filter_${e.key||"number"}_second"
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
size=${u(t)}
|
|
69
69
|
appearance="outlined"
|
|
70
70
|
mode="select"
|
|
71
|
-
placeholder="${
|
|
71
|
+
placeholder="${be(t,"operator")}"
|
|
72
72
|
root-class="flex-1"
|
|
73
73
|
search="false"
|
|
74
74
|
@change=${r=>{const a=r.detail?.values?.[0]||r.detail?.value||l;t.patchTempFilterValue(e.key,{operator:a})}}
|
|
@@ -97,7 +97,7 @@
|
|
|
97
97
|
size=${u(t)}
|
|
98
98
|
appearance="outlined"
|
|
99
99
|
mode="select"
|
|
100
|
-
placeholder="${
|
|
100
|
+
placeholder="${be(t,"operator")}"
|
|
101
101
|
root-class="flex-1"
|
|
102
102
|
search="false"
|
|
103
103
|
@change=${r=>{const a=r.detail?.values?.[0]||r.detail?.value||l;t.patchTempFilterValue(e.key,{operator:a})}}
|
|
@@ -119,7 +119,7 @@
|
|
|
119
119
|
<sf-input
|
|
120
120
|
size=${u(t)}
|
|
121
121
|
appearance="filled"
|
|
122
|
-
placeholder="${
|
|
122
|
+
placeholder="${be(t,"searchInList")}"
|
|
123
123
|
value="${i}"
|
|
124
124
|
name="sf_filter_${e.key||"list"}_search"
|
|
125
125
|
@input=${r=>{t.patchTempFilterOptionSearch(e.key,r.target?.value||"")}}
|
|
@@ -135,19 +135,19 @@
|
|
|
135
135
|
<sf-empty-state layout="inline" size="1/2" kind=${i?"nothing-found":"no-data"}></sf-empty-state>`}
|
|
136
136
|
${r?a.html`
|
|
137
137
|
<div role="status" aria-live="polite" class="sf-text-1">
|
|
138
|
-
${"loading"===r.status?
|
|
138
|
+
${"loading"===r.status?be(t,"loadingOptions"):""}
|
|
139
139
|
</div>
|
|
140
|
-
${"error"===r.status?a.html`<sf-empty-state layout="inline" size="1/2" kind="error" text=${
|
|
140
|
+
${"error"===r.status?a.html`<sf-empty-state layout="inline" size="1/2" kind="error" text=${be(t,"optionsError")}
|
|
141
141
|
@sf-empty-state-action=${r=>{"retry"===r.detail?.id&&t.loadEndpointFilterPage(e,null,i)}}></sf-empty-state>`:""}
|
|
142
|
-
${r.nextCursor&&"error"!==r.status?a.html`<sf-button appearance="outline" size=${u(t)} text="${
|
|
142
|
+
${r.nextCursor&&"error"!==r.status?a.html`<sf-button appearance="outline" size=${u(t)} text="${be(t,"loadMore")}"
|
|
143
143
|
?disabled=${"loading"===r.status}
|
|
144
144
|
@click=${()=>t.loadEndpointFilterPage(e,r.nextCursor,i)}></sf-button>`:""}
|
|
145
145
|
`:""}
|
|
146
146
|
</div>
|
|
147
|
-
`}function g(e,t){return m(e,t)}function h(e,t){const r=e.filter?.options??["image","document","archive","other"].map(e=>({value:e,label:
|
|
147
|
+
`}function g(e,t){return m(e,t)}function h(e,t){const r=e.filter?.options??["image","document","archive","other"].map(e=>({value:e,label:be(t,`fileKind_${e}`)}));return m({...e,filter:{...e.filter||{},options:r,defaultOperator:e.filter?.defaultOperator??"in"}},t)}function $(e,t){const r=e.filter?.options??(Array.isArray(e.swatches)?e.swatches:[]).map(e=>"string"==typeof e?{value:e,label:e}:e).filter(e=>e?.value).map(e=>({value:e.value,label:e.label??e.value,color:e.value}));return r.length?m({...e,filter:{...e.filter||{},options:r,optionRenderer:e.filter?.optionRenderer??"swatch",defaultOperator:e.filter?.defaultOperator??"in"}},t):d(e,t)}const v={text:d,string:d,number:p,integer:p,date:f,datetime:f,range:c,"date-range":f,"multi-select":m,"single-select":m,choice:m,choices:m,boolean:m,user:m,"entity-multi-select":g,"entity-single-select":g,record:g,relation:g,lookup:g,file:h,color:$};function y(e={},t){const r=e.filter?.control||e.propertyType||e.type||e.dataType||"text";return(v[r]||v.text)(e,t)}const b="1/2",S="tonal",x=[[/^image\//u,"image"],[/^video\//u,"movie"],[/^audio\//u,"audiotrack"],[/^text\/(csv|tab-separated-values)$/u,"table"],[/^text\//u,"description"],[/pdf$/u,"picture_as_pdf"],[/(zip|compressed|tar|rar|7z)/u,"folder_zip"],[/(sheet|excel|spreadsheet)/u,"table"],[/(word|document)$/u,"description"],[/(presentation|powerpoint)/u,"slideshow"]];function w(e){const t=String(e||"").toLowerCase(),r=x.find(([e])=>e.test(t));return r?r[1]:"attach_file"}function k(e,t){const r=qe(t);return r?a.html`
|
|
148
148
|
<sf-color size="1/2" appearance="plain" value=${String(r)}
|
|
149
149
|
label=${e.label||e.key||""} disabled></sf-color>
|
|
150
|
-
`:a.nothing}function F(e,t){const r=
|
|
150
|
+
`:a.nothing}function F(e,t){const r=qe(t),n=e.inheritedValue??"";return r||n?a.html`
|
|
151
151
|
<sf-color
|
|
152
152
|
size="1"
|
|
153
153
|
appearance="plain"
|
|
@@ -156,11 +156,11 @@
|
|
|
156
156
|
label=${e.label||e.key||""}
|
|
157
157
|
disabled
|
|
158
158
|
></sf-color>
|
|
159
|
-
`:a.nothing}function T(e,t,r){const n=
|
|
159
|
+
`:a.nothing}function T(e,t,r){const n=qe(t),l=e.inheritedValue??"";return a.html`
|
|
160
160
|
<sf-color
|
|
161
|
-
size=${
|
|
161
|
+
size=${N}
|
|
162
162
|
appearance="bordered"
|
|
163
|
-
name=${
|
|
163
|
+
name=${U(e)}
|
|
164
164
|
value=${n?String(n):a.nothing}
|
|
165
165
|
inherited-value=${l?String(l):a.nothing}
|
|
166
166
|
swatches=${e.swatches?String(e.swatches):a.nothing}
|
|
@@ -169,11 +169,11 @@
|
|
|
169
169
|
label=${e.label||e.key||""}
|
|
170
170
|
@change=${t=>r.setFieldValue(e,t.detail?.value??"")}
|
|
171
171
|
></sf-color>
|
|
172
|
-
`}function A(e,t){return t&&"object"==typeof t&&t.label?
|
|
172
|
+
`}function A(e,t){return t&&"object"==typeof t&&t.label?ee(e)?z(t):{component:{type:"reference-link",props:{line:b,label:String(t.label),icon:w(t.mime),...t.href?{href:String(t.href)}:{}}}}:null}function z(e){const t=String(e.mime??e.mimeType??""),r=Boolean(e.href)&&/^image\//u.test(t);return{component:{type:"file-preview",props:{compact:!0,fileName:String(e.label),mimeType:t,icon:w(t),...e.href?{href:String(e.href)}:{},...r?{imageUrl:String(e.href),kind:"image"}:{kind:"icon"},actions:!1,downloadAction:!1,removeAction:!1}}}}function _(e,t){if(!Array.isArray(t)||!t.length)return null;if("badges"===String(e.variant??""))return q(e,t);const r=e.options||e.filter?.options||e.constraints?.options,a=e=>{const t=Array.isArray(r)?r.find(t=>String(t?.value)===String(e)):null;return String(t?.label??t?.text??e)};return t.map(e=>({component:{type:"tag",props:{line:b,kind:"default",text:a(e)}}}))}function q(e,t){const r=e.options||e.filter?.options||e.constraints?.options;return t.map(t=>{const a=t&&"object"==typeof t?t.value:t,l=Array.isArray(r)?r.find(e=>String(e?.value)===String(a)):null,i=l?(0,n.f)(l):null,o=t&&"object"==typeof t&&void 0!==t.text?String(t.text):String(l?.label??l?.text??a);return{component:{type:"badge",props:{line:b,text:o,appearance:e.badgeAppearance??S,...i?.scheme?{scheme:i.scheme}:{},...i?.rootStyle?{rootStyle:i.rootStyle}:{}}}}})}const O={string:Q,date:E,datetime:E,boolean:P,choices:_,file:A,color:k,include:ae,choice:j,integer:C,number:C,user:M,record:R,relation:R,lookup:L};function V(e,t){return{yes:e.trueText??e.labels?.true??be(t,"yes"),no:e.falseText??e.labels?.false??be(t,"no")}}function P(e,t,r){if("boolean"!=typeof t)return null;const a=V(e,r);return t?a.yes:a.no}function j(e,t){const r=e.options||e.filter?.options||e.constraints?.options;if(!Array.isArray(r))return null;const a=r.find(e=>String(e?.value)===String(t));if(!a)return null;const l=(0,n.f)(a);return{component:{type:"badge",props:{line:b,text:a.label??a.text??String(t),appearance:e.badgeAppearance??S,...l?.scheme?{scheme:l.scheme}:{},...l?.rootStyle?{rootStyle:l.rootStyle}:{}}}}}function E(e,t,r){const a=r?.formatFieldValue?.(e,t);return"string"==typeof a&&""!==a?a:null}function C(e,t,r){const a=e.variant||e.filter?.variant,n=Number(qe(t));return"scale"===a&&Number.isFinite(n)?n<0||n>100?null:{component:{type:"progress-scale",props:{line:b,value:String(n)}}}:E(e,t,r)}function B(e){return{component:{type:"reference-link",props:{line:b,appearance:"plain",icon:"",label:String(e.label),...e.href?{href:String(e.href)}:{}}}}}function M(e,t){return t&&"object"==typeof t&&t.label?[{component:{type:"avatar",props:{line:b,text:t.avatarText||""}}},t.href?B(t):String(t.label)]:null}function R(e,t){return t&&"object"==typeof t&&t.label?B(t):null}function L(e,t){const r=xe(e,t);return r.length?r.map(e=>e.label).join(", "):null}function I(e={},t,r){const a=e.propertyType||e.type||e.dataType,n=O[a];if(!n)return null;const l=n(e,t,r);return l??null}let N="1";const K={record:Se,relation:Se,user:Se,lookup:we,string:ne,text:le,integer:ie,number:ie,date:ue,datetime:ce,boolean:pe,choice:me,choices:$e,file:Fe,color:T,include:re};function U(e){return`sf_field_${e.key||"value"}`}function D(e,t,r){return a.html`
|
|
173
173
|
<sf-country-code
|
|
174
|
-
size=${
|
|
175
|
-
name=${
|
|
176
|
-
value=${
|
|
174
|
+
size=${N}
|
|
175
|
+
name=${U(e)}
|
|
176
|
+
value=${qe(t)??""}
|
|
177
177
|
aria-label=${e.label||e.key||""}
|
|
178
178
|
?required=${Boolean(e.required)}
|
|
179
179
|
?disabled=${!0===e.readonly}
|
|
@@ -181,15 +181,15 @@
|
|
|
181
181
|
show-code="true"
|
|
182
182
|
@change=${t=>r.setFieldValue(e,t.detail?.value??t.target?.value??"")}
|
|
183
183
|
></sf-country-code>
|
|
184
|
-
`}function
|
|
184
|
+
`}function H(e){return"password"===String(e.variant??"")}function Y(e){return e&&"object"==typeof e&&!Array.isArray(e)?!0===e.set:"string"==typeof e&&""!==e}function Z(e,t){return be(e,Y(t)?"passwordSet":"passwordUnset")}function J(e){const t=e.currentTarget,r=t?.closest?.(".sf-field-password")?.querySelector?.("sf-input");if(!r)return;const a="true"!==t.getAttribute("aria-pressed");r.setAttribute("input-type",a?"text":"password"),t.setAttribute("aria-pressed",a?"true":"false"),t.setAttribute("icon",a?"visibility_off":"visibility")}function G(e,t,r){const n=Y(t),l=e.placeholder||(n?be(r,"passwordKeep"):""),i=t=>{const a=t.target?.value??"";r.setFieldValue(e,""===a?void 0:a)};return a.html`
|
|
185
185
|
<span class="sf-field-password flex items-cross-center gap-1/3 min-w-0" spellcheck="false">
|
|
186
186
|
<sf-input
|
|
187
|
-
size=${
|
|
187
|
+
size=${N}
|
|
188
188
|
appearance="bordered"
|
|
189
189
|
root-class="flex-1 min-w-0"
|
|
190
190
|
input-type="password"
|
|
191
191
|
autocomplete="new-password"
|
|
192
|
-
name=${
|
|
192
|
+
name=${U(e)}
|
|
193
193
|
placeholder=${l||a.nothing}
|
|
194
194
|
?required=${Boolean(e.required)&&!n}
|
|
195
195
|
aria-label=${e.label||e.key||""}
|
|
@@ -197,24 +197,24 @@
|
|
|
197
197
|
@change=${i}
|
|
198
198
|
></sf-input>
|
|
199
199
|
<sf-icon-button
|
|
200
|
-
size=${
|
|
200
|
+
size=${N}
|
|
201
201
|
appearance="link"
|
|
202
202
|
scheme="on-surface"
|
|
203
203
|
icon="visibility"
|
|
204
204
|
aria-pressed="false"
|
|
205
|
-
aria-label=${
|
|
206
|
-
@click=${
|
|
205
|
+
aria-label=${be(r,"showPassword")}
|
|
206
|
+
@click=${J}
|
|
207
207
|
></sf-icon-button>
|
|
208
208
|
</span>
|
|
209
|
-
`}function
|
|
209
|
+
`}function Q(e,t,r){return H(e)?Z(r,t):null}function W(e,t,r){return H(e)?a.html`<span class="sf-field-view">${Z(r,t)}</span>`:Ve(e,t,r)}const X=new Set(["image","image-card","image-list"]);function ee(e){return X.has(String(e.variant??""))}function te(e,t){const r=qe(t);return r?a.html`
|
|
210
210
|
<pre class="sf-field-include" data-language=${e.language?String(e.language):a.nothing}><code>${String(r)}</code></pre>
|
|
211
|
-
`:a.nothing}function
|
|
211
|
+
`:a.nothing}function re(e,t,r){return a.html`
|
|
212
212
|
<sf-textarea
|
|
213
|
-
size=${
|
|
213
|
+
size=${N}
|
|
214
214
|
appearance="bordered"
|
|
215
215
|
class="sf-field-include-edit"
|
|
216
|
-
name=${
|
|
217
|
-
value=${
|
|
216
|
+
name=${U(e)}
|
|
217
|
+
value=${qe(t)??""}
|
|
218
218
|
rows="8"
|
|
219
219
|
spellcheck="false"
|
|
220
220
|
?required=${Boolean(e.required)}
|
|
@@ -223,11 +223,11 @@
|
|
|
223
223
|
@change=${t=>r.setFieldValue(e,t.target?.value??"")}
|
|
224
224
|
@input=${t=>r.setFieldValue(e,t.target?.value??"")}
|
|
225
225
|
></sf-textarea>
|
|
226
|
-
`}function
|
|
226
|
+
`}function ae(e,t){const r=qe(t);if(!r)return a.nothing;const n=String(r).split("\n")[0];return a.html`<code>${n.length>60?`${n.slice(0,60)}…`:n}</code>`}function ne(e,t,r){return"phone"===String(e.variant??"")?D(e,t,r):H(e)?G(e,t,r):(t=qe(t),a.html`
|
|
227
227
|
<sf-input
|
|
228
|
-
size=${
|
|
228
|
+
size=${N}
|
|
229
229
|
appearance="bordered"
|
|
230
|
-
name=${
|
|
230
|
+
name=${U(e)}
|
|
231
231
|
value=${t??""}
|
|
232
232
|
placeholder=${e.placeholder||a.nothing}
|
|
233
233
|
?required=${Boolean(e.required)}
|
|
@@ -235,11 +235,11 @@
|
|
|
235
235
|
@input=${t=>r.setFieldValue(e,t.target?.value??"")}
|
|
236
236
|
@change=${t=>r.setFieldValue(e,t.target?.value??"")}
|
|
237
237
|
></sf-input>
|
|
238
|
-
`)}function
|
|
238
|
+
`)}function le(e,t,r){return t=qe(t),a.html`
|
|
239
239
|
<sf-textarea
|
|
240
|
-
size=${
|
|
240
|
+
size=${N}
|
|
241
241
|
appearance="bordered"
|
|
242
|
-
name=${
|
|
242
|
+
name=${U(e)}
|
|
243
243
|
value=${t??""}
|
|
244
244
|
placeholder=${e.placeholder||a.nothing}
|
|
245
245
|
?required=${Boolean(e.required)}
|
|
@@ -247,11 +247,11 @@
|
|
|
247
247
|
@input=${t=>r.setFieldValue(e,t.target?.value??"")}
|
|
248
248
|
@change=${t=>r.setFieldValue(e,t.target?.value??"")}
|
|
249
249
|
></sf-textarea>
|
|
250
|
-
`}function
|
|
250
|
+
`}function ie(e,t,r){const n="number"===(e.propertyType||e.type);return t=qe(t),a.html`
|
|
251
251
|
<sf-input
|
|
252
|
-
size=${
|
|
252
|
+
size=${N}
|
|
253
253
|
appearance="bordered"
|
|
254
|
-
name=${
|
|
254
|
+
name=${U(e)}
|
|
255
255
|
value=${t??""}
|
|
256
256
|
inputmode=${n?"decimal":"numeric"}
|
|
257
257
|
?required=${Boolean(e.required)}
|
|
@@ -259,21 +259,21 @@
|
|
|
259
259
|
@input=${t=>{const a=t.target?.value??"";r.setFieldValue(e,""===a?null:Number(a))}}
|
|
260
260
|
@change=${t=>{const a=t.target?.value??"";r.setFieldValue(e,""===a?null:Number(a))}}
|
|
261
261
|
></sf-input>
|
|
262
|
-
`}const
|
|
262
|
+
`}const oe=/^(\d{4}-\d{2}-\d{2})[T ](\d{2}:\d{2}(?::\d{2})?(?:\.\d+)?)(Z|[+-]\d{2}:?\d{2})?$/;function se(e){const t="string"==typeof e?e.trim().match(oe):null;return t?{date:t[1],suffix:`T${t[2]}${t[3]||""}`}:{date:e,suffix:""}}function ue(e,t,r){t=qe(t);const{date:n,suffix:l}=se(t);return a.html`
|
|
263
263
|
<sf-datepicker
|
|
264
|
-
size=${
|
|
265
|
-
name=${
|
|
264
|
+
size=${N}
|
|
265
|
+
name=${U(e)}
|
|
266
266
|
value=${n??""}
|
|
267
267
|
aria-label=${e.label||e.key||""}
|
|
268
268
|
?required=${Boolean(e.required)}
|
|
269
269
|
@change=${t=>{const a=t.detail?.value??t.target?.value??null;r.setFieldValue(e,a&&l?`${a}${l}`:a)}}
|
|
270
270
|
></sf-datepicker>
|
|
271
|
-
`}let
|
|
271
|
+
`}let de=0;function ce(e,t,r){const n=(0,o.AC)(t),l=String(e.label||e.key||""),i=U(e),s="sf-field-datetime-message-"+ ++de,u=e=>be(r,e).replace("{label}",l),d=(t,a)=>{if("date"===a&&t.target!==t.currentTarget)return;const l=t.currentTarget?.closest?.(".sf-field-datetime");if(!l)return;const i=l.querySelector("sf-datepicker"),s=l.querySelector("sf-input.sf-field-datetime-time"),u=String("date"===a?t.detail?.value??i?.value??"":i?.value??""),d=String(s?.value??""),c=(0,o.cy)(n,{date:u,time:d}),p=c.error?be(r,`dateTime_${c.error}`):"",f=l.querySelector(".sf-field-datetime-message");f&&(f.textContent=p,f.hidden=!p),l.toggleAttribute("data-invalid",Boolean(p));const m="timeMissing"===c.error||"timeInvalid"===c.error;if(s?.toggleAttribute("invalid",m),i?.toggleAttribute("invalid","dateMissing"===c.error||"dateInvalid"===c.error),r.setFieldError?.(e,p||null),c.error)return void r.setFieldValue(e,void 0);const g=(0,o.d2)(d);s&&g&&g!==d&&(s.value=g);const h=null===c.value?n.known&&!n.date:c.value===n.raw;r.setFieldValue(e,h?void 0:c.value)};return a.html`
|
|
272
272
|
<div class="sf-field-datetime flex flex-col gap-1/4 min-w-0" role="group" aria-label=${l}
|
|
273
273
|
aria-describedby=${s} data-datetime=${e.key||"value"}>
|
|
274
274
|
<div class="flex flex-nowrap items-cross-center gap-1/3 min-w-0">
|
|
275
275
|
<sf-datepicker
|
|
276
|
-
size=${
|
|
276
|
+
size=${N}
|
|
277
277
|
name=${`${i}_date`}
|
|
278
278
|
.value=${n.date}
|
|
279
279
|
aria-label=${u("dateTimeDate")}
|
|
@@ -282,14 +282,14 @@
|
|
|
282
282
|
></sf-datepicker>
|
|
283
283
|
<sf-input
|
|
284
284
|
class="sf-field-datetime-time"
|
|
285
|
-
size=${
|
|
285
|
+
size=${N}
|
|
286
286
|
appearance="bordered"
|
|
287
287
|
root-style="flex: 0 0 6.5em; min-inline-size: 0"
|
|
288
288
|
name=${`${i}_time`}
|
|
289
289
|
value=${n.time}
|
|
290
290
|
inputmode="numeric"
|
|
291
291
|
autocomplete="off"
|
|
292
|
-
placeholder=${
|
|
292
|
+
placeholder=${be(r,"dateTimePlaceholder")}
|
|
293
293
|
mask
|
|
294
294
|
mask-pattern="00:00"
|
|
295
295
|
?required=${Boolean(e.required)}
|
|
@@ -297,72 +297,72 @@
|
|
|
297
297
|
@change=${e=>d(e,"time")}
|
|
298
298
|
></sf-input>
|
|
299
299
|
</div>
|
|
300
|
-
<span id=${s} class=${"sf-field-datetime-message color-error text-"+("1/2"===
|
|
300
|
+
<span id=${s} class=${"sf-field-datetime-message color-error text-"+("1/2"===N?"1/3":"1/2")}
|
|
301
301
|
aria-live="polite" hidden></span>
|
|
302
302
|
</div>
|
|
303
|
-
`}function
|
|
303
|
+
`}function pe(e,t,r){if(!(!0!==e.required))return a.html`
|
|
304
304
|
<sf-switch
|
|
305
|
-
size=${
|
|
306
|
-
name=${
|
|
305
|
+
size=${N}
|
|
306
|
+
name=${U(e)}
|
|
307
307
|
?checked=${!0===t}
|
|
308
308
|
aria-label=${e.label||e.key||""}
|
|
309
309
|
@change=${t=>r.setFieldValue(e,Boolean(t.target?.checked))}
|
|
310
310
|
></sf-switch>
|
|
311
311
|
`;const n=V(e,r),l=JSON.stringify([{value:"yes",label:n.yes},{value:"no",label:n.no}]);return a.html`
|
|
312
312
|
<sf-button-group
|
|
313
|
-
size=${
|
|
313
|
+
size=${N}
|
|
314
314
|
items=${l}
|
|
315
315
|
value=${!0===t?"yes":!1===t?"no":a.nothing}
|
|
316
316
|
aria-label=${e.label||e.key||""}
|
|
317
317
|
@change=${t=>{const a=t.detail?.value;r.setFieldValue(e,"yes"===a||"no"!==a&&null)}}
|
|
318
318
|
></sf-button-group>
|
|
319
|
-
`}function
|
|
319
|
+
`}function fe(e,t,r){const a=e.options||e.filter?.options||e.constraints?.options||[],n=r?new Set((Array.isArray(t)?t:[]).map(e=>String(e))):new Set([String(t??"")]);return a.map(e=>({type:"text",size:"1",text:e.label??e.text??String(e.value),value:String(e.value),selected:n.has(String(e.value))}))}function me(e,t,r){return t=qe(t),a.html`
|
|
320
320
|
<sf-dropdown
|
|
321
|
-
size=${
|
|
321
|
+
size=${N}
|
|
322
322
|
appearance="outlined"
|
|
323
323
|
mode="select"
|
|
324
324
|
search="false"
|
|
325
|
-
name=${
|
|
325
|
+
name=${U(e)}
|
|
326
326
|
?required=${Boolean(e.required)}
|
|
327
327
|
value=${t??""}
|
|
328
328
|
aria-label=${e.label||e.key||""}
|
|
329
|
-
.options=${
|
|
329
|
+
.options=${fe(e,t,!1)}
|
|
330
330
|
@change=${t=>r.setFieldValue(e,t.detail?.value??null)}
|
|
331
331
|
></sf-dropdown>
|
|
332
|
-
`}const
|
|
332
|
+
`}const ge=13;function he(e,t,r){const n=e.options||e.filter?.options||e.constraints?.options||[],l=new Set((Array.isArray(t)?t:[]).map(e=>String(e)));return a.html`
|
|
333
333
|
<div class="sf-field-checklist grid gap-1/3 w-full min-w-0" role="group" aria-label=${e.label||e.key||""}
|
|
334
334
|
style="grid-template-columns: repeat(auto-fill, minmax(min(100%, 14rem), 1fr))">
|
|
335
|
-
${n.map(t=>a.html`<sf-checkbox size=${
|
|
336
|
-
name=${
|
|
335
|
+
${n.map(t=>a.html`<sf-checkbox size=${N}
|
|
336
|
+
name=${U(e)} value=${String(t.value)}
|
|
337
337
|
label=${t.label??t.text??String(t.value)}
|
|
338
338
|
.checked=${l.has(String(t.value))}
|
|
339
339
|
@change=${a=>((t,a)=>{const i=n.filter(e=>String(e.value)===String(t.value)?a:l.has(String(e.value))).map(e=>e.value);r.setFieldValue(e,i)})(t,Boolean(a.target?.checked??a.detail?.checked))}></sf-checkbox>`)}
|
|
340
340
|
</div>
|
|
341
|
-
`}function
|
|
341
|
+
`}function $e(e,t,r){const n=e.options||e.filter?.options||e.constraints?.options||[],l=String(e.variant??"");return"checklist"===l||"select"!==l&&n.length>=ge?he(e,t,r):a.html`
|
|
342
342
|
<sf-dropdown
|
|
343
|
-
size=${
|
|
343
|
+
size=${N}
|
|
344
344
|
appearance="outlined"
|
|
345
345
|
mode="select"
|
|
346
346
|
multiple
|
|
347
347
|
search="false"
|
|
348
|
-
name=${
|
|
348
|
+
name=${U(e)}
|
|
349
349
|
?required=${Boolean(e.required)}
|
|
350
350
|
aria-label=${e.label||e.key||""}
|
|
351
|
-
.options=${
|
|
351
|
+
.options=${fe(e,t,!0)}
|
|
352
352
|
@change=${t=>{const a=t.detail?.values??t.detail?.value;r.setFieldValue(e,Array.isArray(a)?a:a?[a]:[])}}
|
|
353
353
|
></sf-dropdown>
|
|
354
|
-
`}const
|
|
354
|
+
`}const ve={en:{yes:"Yes",no:"No",searchInList:"Find in the list",containsText:"Contains…",fileKind_image:"Images",fileKind_document:"Documents",fileKind_archive:"Archives",fileKind_other:"Other files",operator:"Operator",rangeFrom:"From",rangeTo:"To",loadingOptions:"Loading the options",optionsError:"The options could not be loaded",pickRecord:"Choose a record",pickFromList:"Choose from the list",searchRecords:"Find a record",loadingRecords:"Loading records",recordsError:"The records could not be loaded",retry:"Try again",loadMore:"Load more",removeFile:"Remove",passwordSet:"Set",passwordUnset:"Not set",passwordKeep:"Set; type a new one to replace it",showPassword:"Show password",dateTimeDate:"{label}: date",dateTimeTime:"{label}: time",dateTimePlaceholder:"hh:mm",dateTime_dateMissing:"Enter the date",dateTime_dateInvalid:"The date is not a calendar date",dateTime_timeMissing:"Enter the time",dateTime_timeInvalid:"Enter the time as hh:mm, from 00:00 to 23:59"},ru:{yes:"Да",no:"Нет",searchInList:"Найти в списке",containsText:"Содержит…",fileKind_image:"Изображения",fileKind_document:"Документы",fileKind_archive:"Архивы",fileKind_other:"Прочие файлы",operator:"Оператор",rangeFrom:"От",rangeTo:"До",loadingOptions:"Загрузка вариантов",optionsError:"Не удалось загрузить варианты",pickRecord:"Выберите запись",pickFromList:"Выберите из списка",searchRecords:"Найти запись",loadingRecords:"Загрузка записей",recordsError:"Не удалось загрузить записи",retry:"Повторить",loadMore:"Загрузить ещё",removeFile:"Удалить",passwordSet:"Задан",passwordUnset:"Не задан",passwordKeep:"Задан; введите новый, чтобы заменить",showPassword:"Показать пароль",dateTimeDate:"{label}: дата",dateTimeTime:"{label}: время",dateTimePlaceholder:"чч:мм",dateTime_dateMissing:"Укажите дату",dateTime_dateInvalid:"Дата указана неверно",dateTime_timeMissing:"Укажите время",dateTime_timeInvalid:"Укажите время в виде чч:мм, от 00:00 до 23:59"}},ye="sf-field-renderers";function be(e,t){return e?.getFieldText?.(t)??(0,l.pageText)(ve,t,e??null,ye)}function Se(e,t,r){if(!r.loadFieldOptions||!r.getFieldOptionsPage)return null;const n=r.getFieldOptionsPage(e)||null;if("unsupported"===n?.status)return null;const l=r.getFieldOptionSearch?.(e)??"",i=t&&"object"==typeof t?t:null,o=Array.isArray(n?.items)?n.items:[],s=[...i&&!o.some(e=>String(e.value)===String(i.value))?[i]:[],...o].map(e=>({type:"text",size:"1",text:String(e.label??e.value),value:String(e.value),selected:Boolean(i&&String(i.value)===String(e.value))}));return a.html`
|
|
355
355
|
<div class="sf-field-picker flex flex-col gap-1/3" data-field-picker=${e.key||a.nothing}>
|
|
356
356
|
<sf-dropdown
|
|
357
|
-
size=${
|
|
357
|
+
size=${N}
|
|
358
358
|
appearance="outlined"
|
|
359
359
|
mode="select"
|
|
360
360
|
search="true"
|
|
361
|
-
name=${
|
|
361
|
+
name=${U(e)}
|
|
362
362
|
?required=${Boolean(e.required)}
|
|
363
363
|
value=${i?String(i.value):""}
|
|
364
|
-
placeholder=${e.placeholder||
|
|
365
|
-
search-placeholder=${e.searchPlaceholder||
|
|
364
|
+
placeholder=${e.placeholder||be(r,"pickRecord")}
|
|
365
|
+
search-placeholder=${e.searchPlaceholder||be(r,"searchRecords")}
|
|
366
366
|
aria-label=${e.label||e.key||""}
|
|
367
367
|
.options=${s}
|
|
368
368
|
@change=${t=>(t=>{if(!t)return void r.setFieldValue(e,null);const a=[i,...o].find(e=>e&&String(e.value)===String(t));r.setFieldValue(e,a?{value:a.value,label:a.label}:{value:t})})(t.detail?.value??null)}
|
|
@@ -371,15 +371,15 @@
|
|
|
371
371
|
${n?a.html`
|
|
372
372
|
<div class="sf-field-picker-state flex items-cross-center gap-1/3">
|
|
373
373
|
<div role="status" aria-live="polite" class="sf-text-1">
|
|
374
|
-
${"loading"!==n.status||n.quiet?"error"===n.status?
|
|
374
|
+
${"loading"!==n.status||n.quiet?"error"===n.status?be(r,"recordsError"):"":be(r,"loadingRecords")}
|
|
375
375
|
</div>
|
|
376
376
|
${"error"===n.status?a.html`
|
|
377
|
-
<sf-button appearance="outline" size="1" text=${
|
|
377
|
+
<sf-button appearance="outline" size="1" text=${be(r,"retry")}
|
|
378
378
|
@click=${()=>r.loadFieldOptions(e,{cursor:null,search:l})}
|
|
379
379
|
></sf-button>
|
|
380
380
|
`:a.nothing}
|
|
381
381
|
${n.nextCursor&&"error"!==n.status?a.html`
|
|
382
|
-
<sf-button appearance="outline" size="1" text=${
|
|
382
|
+
<sf-button appearance="outline" size="1" text=${be(r,"loadMore")}
|
|
383
383
|
?disabled=${"loading"===n.status}
|
|
384
384
|
@click=${()=>r.loadFieldOptions(e,{cursor:n.nextCursor,search:l})}
|
|
385
385
|
></sf-button>
|
|
@@ -387,26 +387,63 @@
|
|
|
387
387
|
</div>
|
|
388
388
|
`:a.nothing}
|
|
389
389
|
</div>
|
|
390
|
-
`}function
|
|
390
|
+
`}function xe(e,t){const r=Array.isArray(t)?t:[t],a=Array.isArray(e.options)?e.options:[];return r.filter(e=>null!=e&&""!==e).map(e=>{if("object"==typeof e)return{value:e.value,label:String(e.label??e.value??"")};const t=a.find(t=>String(t?.value)===String(e));return{value:e,label:String(t?.label??t?.text??e)}})}function we(e,t,r){const n=!0===e.multiple,l=Array.isArray(e.options)&&e.options.length>0;if(!(l||r.loadFieldOptions&&r.getFieldOptionsPage))return null;const i=l?null:r.getFieldOptionsPage(e)||null;if("unsupported"===i?.status)return null;const o=l?"":r.getFieldOptionSearch?.(e)??"",s=xe(e,t),u=(l?e.options:Array.isArray(i?.items)?i.items:[]).filter(e=>e&&"object"==typeof e).map(e=>({value:e.value,label:String(e.label??e.text??e.value)})),d=e=>s.some(t=>String(t.value)===String(e.value)),c=[...s.filter(e=>!u.some(t=>String(t.value)===String(e.value))),...u].map(e=>({type:"text",size:"1",text:e.label,value:String(e.value),selected:d(e)})),p=[...s,...u],f=e=>{const t=p.find(t=>String(t.value)===String(e));return t?{value:t.value,label:t.label}:{value:e,label:String(e)}};return a.html`
|
|
391
|
+
<div class="sf-field-picker flex flex-col gap-1/3" data-field-picker=${e.key||a.nothing}>
|
|
392
|
+
<sf-dropdown
|
|
393
|
+
size=${N}
|
|
394
|
+
appearance="outlined"
|
|
395
|
+
mode="select"
|
|
396
|
+
?multiple=${n}
|
|
397
|
+
search="true"
|
|
398
|
+
name=${U(e)}
|
|
399
|
+
?required=${Boolean(e.required)}
|
|
400
|
+
value=${n?a.nothing:s[0]?String(s[0].value):""}
|
|
401
|
+
placeholder=${e.placeholder||be(r,"pickFromList")}
|
|
402
|
+
search-placeholder=${e.searchPlaceholder||be(r,"searchInList")}
|
|
403
|
+
aria-label=${e.label||e.key||""}
|
|
404
|
+
.options=${c}
|
|
405
|
+
@change=${t=>{if(n){const a=t.detail?.values??t.detail?.value,n=(Array.isArray(a)?a:a?[a]:[]).filter(e=>""!==e);return void r.setFieldValue(e,n.map(f))}const a=t.detail?.value??null;r.setFieldValue(e,null===a||""===a?null:f(a))}}
|
|
406
|
+
@input=${l?a.nothing:t=>{const a=t.target?.value??"";r.setFieldOptionSearch?.(e,a),r.loadFieldOptions(e,{cursor:null,search:a})}}
|
|
407
|
+
></sf-dropdown>
|
|
408
|
+
${i?a.html`
|
|
409
|
+
<div class="sf-field-picker-state flex items-cross-center gap-1/3">
|
|
410
|
+
<div role="status" aria-live="polite" class="sf-text-1">
|
|
411
|
+
${"loading"!==i.status||i.quiet?"error"===i.status?be(r,"optionsError"):"":be(r,"loadingOptions")}
|
|
412
|
+
</div>
|
|
413
|
+
${"error"===i.status?a.html`
|
|
414
|
+
<sf-button appearance="outline" size="1" text=${be(r,"retry")}
|
|
415
|
+
@click=${()=>r.loadFieldOptions(e,{cursor:null,search:o})}
|
|
416
|
+
></sf-button>
|
|
417
|
+
`:a.nothing}
|
|
418
|
+
${i.nextCursor&&"error"!==i.status?a.html`
|
|
419
|
+
<sf-button appearance="outline" size="1" text=${be(r,"loadMore")}
|
|
420
|
+
?disabled=${"loading"===i.status}
|
|
421
|
+
@click=${()=>r.loadFieldOptions(e,{cursor:i.nextCursor,search:o})}
|
|
422
|
+
></sf-button>
|
|
423
|
+
`:a.nothing}
|
|
424
|
+
</div>
|
|
425
|
+
`:a.nothing}
|
|
426
|
+
</div>
|
|
427
|
+
`}function ke(e){return Array.isArray(e)?e.filter(e=>e&&"object"==typeof e):e&&"object"==typeof e?[e]:[]}function Fe(e,t,r){const n=ke(t),l=!0===e.multiple||Array.isArray(t),i=Boolean(r.startFieldUpload&&r.getFieldUploads),o=i?r.getFieldUploads(e):null,s=Array.isArray(o)?o:[];return a.html`
|
|
391
428
|
<div class="sf-field-file flex flex-col">
|
|
392
429
|
${n.map((t,i)=>a.html`
|
|
393
430
|
<sf-file-preview
|
|
394
431
|
file-name=${String(t.label??t.name??"File")}
|
|
395
432
|
file-size=${String(t.size??"")}
|
|
396
|
-
icon=${
|
|
433
|
+
icon=${w(t.mime??t.mimeType)}
|
|
397
434
|
mime-type=${String(t.mime??t.mimeType??"")}
|
|
398
435
|
href=${t.href?String(t.href):a.nothing}
|
|
399
436
|
download-action=${t.href?"true":"false"}
|
|
400
437
|
remove-action="true"
|
|
401
|
-
remove-label=${`${
|
|
438
|
+
remove-label=${`${be(r,"removeFile")} ${t.label??t.name??""}`.trim()}
|
|
402
439
|
@sf-file-preview:remove=${()=>(t=>{const a=n.filter((e,r)=>r!==t);r.setFieldValue(e,l?a:a[0]??null)})(i)}
|
|
403
440
|
></sf-file-preview>
|
|
404
441
|
`)}
|
|
405
442
|
|
|
406
443
|
${i?a.html`
|
|
407
444
|
<sf-file-upload
|
|
408
|
-
size=${
|
|
409
|
-
name=${
|
|
445
|
+
size=${N}
|
|
446
|
+
name=${U(e)}
|
|
410
447
|
accept=${String(e.accept??"")}
|
|
411
448
|
formats=${String(e.formats??"")}
|
|
412
449
|
link-text=${e.uploadText||a.nothing}
|
|
@@ -421,39 +458,43 @@
|
|
|
421
458
|
></sf-file-upload>
|
|
422
459
|
`:a.nothing}
|
|
423
460
|
</div>
|
|
424
|
-
`}const
|
|
461
|
+
`}const Te=e=>"1/2"===e?.size?"1/2":"1";function Ae(e={},t,r,a={}){const n=e.propertyType||e.type||e.dataType;if(!0===e.readonly&&Ne[n])return Ke(e,t,r,a);const l=K[n];if(!l||!r?.setFieldValue)return null;const i=N;N=Te(a);try{return l(e,t,r)}finally{N=i}}let ze="1";function _e(e){return Boolean(e)&&"object"==typeof e&&!Array.isArray(e)&&"string"==typeof e.text}function qe(e){return _e(e)?e.value:e}function Oe(e,t,r){const a=r?.formatFieldValue?.(e,t);if("string"==typeof a)return a;if(_e(t))return t.text;const n=qe(t);return null==n?"":String(n)}function Ve(e,t,r){const n=Oe(e,t,r);return n?a.html`<span class="sf-field-view">${n}</span>`:a.nothing}function Pe(e,t,r){if(null==t||""===t)return a.nothing;const n=e.variant||e.filter?.variant,l=Number(qe(t));if("scale"===n&&Number.isFinite(l)&&l>=0&&l<=100)return a.html`<sf-progress-scale size="1" value=${String(l)}></sf-progress-scale>`;const i=Oe(e,t,r);return a.html`<span class="sf-field-view">${e.unit?`${i} ${e.unit}`:i}</span>`}function je(e,t,r){const n=Oe(e,t,r);return n?a.html`<span class="sf-field-view">${n}</span>`:a.nothing}function Ee(e,t,r){if("boolean"!=typeof t)return a.nothing;const n=V(e,r);return a.html`<span class="sf-field-view">${t?n.yes:n.no}</span>`}function Ce(e,t){const r=e.options||e.filter?.options||e.constraints?.options,l=Array.isArray(r)?r.find(e=>String(e?.value)===String(t)):null;if(!l)return a.nothing;const i=(0,n.f)(l);return a.html`
|
|
425
462
|
<sf-badge
|
|
426
|
-
line=${
|
|
463
|
+
line=${ze}
|
|
427
464
|
appearance=${e.badgeAppearance??S}
|
|
428
465
|
scheme=${i.scheme}
|
|
429
466
|
style=${i.rootStyle||a.nothing}
|
|
430
467
|
text=${String(l.label??l.text??t)}
|
|
431
468
|
></sf-badge>
|
|
432
|
-
`}function
|
|
469
|
+
`}function Be(e,t){if(!Array.isArray(t)||!t.length)return a.nothing;const r=e.options||e.filter?.options||e.constraints?.options;return a.html`
|
|
433
470
|
<span class="sf-field-view flex flex-wrap items-cross-center gap-1/3 min-w-0">
|
|
434
|
-
${t.map(e=>a.html`<sf-tag root-class="flex-none" line=${
|
|
471
|
+
${t.map(e=>a.html`<sf-tag root-class="flex-none" line=${ze} kind="default" text=${(e=>{const t=Array.isArray(r)?r.find(t=>String(t?.value)===String(e)):null;return String(t?.label??t?.text??e)})(e)}></sf-tag>`)}
|
|
435
472
|
</span>
|
|
436
|
-
`}function
|
|
473
|
+
`}function Me(e,t){return t&&"object"==typeof t&&t.label?a.html`
|
|
437
474
|
<span class="sf-field-view flex items-cross-center gap-1/3">
|
|
438
|
-
<sf-avatar line=${
|
|
439
|
-
${t.href?a.html`<sf-reference-link appearance="plain" icon="" line=${
|
|
475
|
+
<sf-avatar line=${ze} text=${t.avatarText||""}></sf-avatar>
|
|
476
|
+
${t.href?a.html`<sf-reference-link appearance="plain" icon="" line=${ze}
|
|
440
477
|
label=${String(t.label)} href=${String(t.href)}></sf-reference-link>`:a.html`<span>${String(t.label)}</span>`}
|
|
441
478
|
</span>
|
|
442
|
-
`:a.nothing}function
|
|
479
|
+
`:a.nothing}function Re(e,t){return t&&"object"==typeof t&&t.label?a.html`
|
|
443
480
|
<sf-reference-link
|
|
444
481
|
appearance="plain"
|
|
445
482
|
icon=""
|
|
446
|
-
line=${
|
|
483
|
+
line=${ze}
|
|
447
484
|
label=${String(t.label)}
|
|
448
485
|
href=${t.href?String(t.href):a.nothing}
|
|
449
486
|
></sf-reference-link>
|
|
450
|
-
`:a.nothing}function
|
|
487
|
+
`:a.nothing}function Le(e,t){const r=xe(e,t);return r.length?1===r.length&&!0!==e.multiple?a.html`<span class="sf-field-view">${r[0].label}</span>`:a.html`
|
|
488
|
+
<span class="sf-field-view flex flex-wrap items-cross-center gap-1/3 min-w-0">
|
|
489
|
+
${r.map(e=>a.html`<sf-tag root-class="flex-none" line=${ze} kind="default" text=${e.label}></sf-tag>`)}
|
|
490
|
+
</span>
|
|
491
|
+
`:a.nothing}function Ie(e,t){const r=ke(t);if(!r.length)return a.nothing;const n=ee(e),l="image-card"===String(e.variant??"");return a.html`
|
|
451
492
|
<span class="sf-field-view flex ${l?"flex-row":"flex-col"} gap-1/3">
|
|
452
493
|
${r.map(e=>a.html`
|
|
453
494
|
<sf-file-preview
|
|
454
495
|
file-name=${String(e.label??e.name??"File")}
|
|
455
496
|
file-size=${String(e.size??"")}
|
|
456
|
-
icon=${
|
|
497
|
+
icon=${w(e.mime??e.mimeType)}
|
|
457
498
|
mime-type=${String(e.mime??e.mimeType??"")}
|
|
458
499
|
href=${e.href?String(e.href):a.nothing}
|
|
459
500
|
image-url=${n&&e.href?String(e.href):a.nothing}
|
|
@@ -463,4 +504,4 @@
|
|
|
463
504
|
></sf-file-preview>
|
|
464
505
|
`)}
|
|
465
506
|
</span>
|
|
466
|
-
`}const
|
|
507
|
+
`}const Ne={string:W,text:Ve,integer:Pe,number:Pe,date:je,datetime:je,boolean:Ee,choice:Ce,choices:Be,user:Me,record:Re,relation:Re,lookup:Le,file:Ie,color:F,include:te};function Ke(e={},t,r,a={}){const n=e.propertyType||e.type||e.dataType,l=Ne[n];if(!l)return null;const i=ze;ze=Te(a);try{return l(e,t,r)}finally{ze=i}}"undefined"!=typeof window&&(window.SF=window.SF||{},window.SF.fieldRenderers={...window.SF.fieldRenderers||{},renderCellField:I,renderEditField:Ae,renderFilterField:y,renderViewField:Ke,FILTER_RENDERERS:v,dateTime:{split:o.AC,compose:o.cy,normalizeTime:o.d2},registry:i.u.map(e=>{return{...e,modes:(t=e.type,(0,i.U)(t,{view:Ne,edit:K,cell:O,filter:v}))};var t})},globalThis.document?.dispatchEvent?.(new CustomEvent("sf-field-renderers-ready"))),t()}catch(Ue){t(Ue)}})},fc654eb7fab0(e,t,r){r.d(t,{U:()=>n});const a=Object.freeze([{type:"string",label:{ru:"Строка",en:"String"},variants:[{id:"phone",label:{ru:"Телефон",en:"Phone"}},{id:"password",label:{ru:"Пароль",en:"Password"},writeOnly:!0}],params:["placeholder","required","readonly"]},{type:"text",label:{ru:"Текст",en:"Text"},variants:[],params:["placeholder","required","readonly"]},{type:"integer",label:{ru:"Целое число",en:"Integer"},variants:[],params:["unit","required","readonly"]},{type:"number",label:{ru:"Число",en:"Number"},variants:[{id:"scale",label:{ru:"Шкала 0–100",en:"Scale 0–100"}}],params:["unit","required","readonly"]},{type:"date",label:{ru:"Дата",en:"Date"},variants:[],params:["required","readonly"]},{type:"datetime",label:{ru:"Дата и время",en:"Date and time"},variants:[],params:["required","readonly"]},{type:"boolean",label:{ru:"Да или нет",en:"Yes or no"},variants:[],params:["trueText","falseText","required","readonly"]},{type:"choice",label:{ru:"Одно из списка",en:"One of a list"},variants:[],params:["options","badgeAppearance","required","readonly"]},{type:"choices",label:{ru:"Несколько из списка",en:"Several of a list"},variants:[{id:"badges",label:{ru:"Значками",en:"As badges"}},{id:"checklist",label:{ru:"Флажками",en:"As a checklist"}},{id:"select",label:{ru:"Выпадающим списком",en:"As a dropdown"}}],params:["options","badgeAppearance","required","readonly"]},{type:"user",label:{ru:"Пользователь",en:"User"},variants:[],params:["placeholder","searchPlaceholder","required","readonly"]},{type:"record",label:{ru:"Запись",en:"Record"},variants:[],params:["placeholder","searchPlaceholder","required","readonly"]},{type:"relation",label:{ru:"Связь",en:"Relation"},variants:[],params:["placeholder","searchPlaceholder","required","readonly"]},{type:"lookup",label:{ru:"Из справочника",en:"From a reference list"},variants:[],params:["options","multiple","placeholder","searchPlaceholder","required","readonly"]},{type:"file",label:{ru:"Файл",en:"File"},variants:[{id:"image",label:{ru:"Изображение",en:"Image"}},{id:"image-card",label:{ru:"Изображение карточкой",en:"Image card"}},{id:"image-list",label:{ru:"Изображения списком",en:"Image list"}}],params:["accept","multiple","formats","uploadText","uploadSupportingText","uploadHint","readonly"]},{type:"color",label:{ru:"Цвет",en:"Colour"},variants:[],params:["swatches","required","readonly"]},{type:"include",label:{ru:"Код",en:"Code"},variants:[],params:["language","required","readonly"]}]);function n(e,t){return{view:Boolean(t.view?.[e]),edit:Boolean(t.edit?.[e]),cell:t.cell?.[e]?"own":"text",filter:t.filter?.[e]?"own":"text"}}r.d(t,["u",0,a])},"5961360f41f4"(e,t,r){r.d(t,{f:()=>o});const a=Object.freeze(["main","tonal","outline"]),n=Object.freeze(["neutral","primary","secondary","tertiary","info","success","warning","danger","on-surface"]),l=Object.freeze(["1/3","1/2","1"]);Object.freeze(n.flatMap(e=>a.filter(t=>!("on-surface"===e&&"tonal"===t)).flatMap(t=>l.map(r=>Object.freeze({type:t,scheme:e,size:r})))));const i=/^#(?:[0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i;function o(e={}){const t=e?.scheme??e?.color,r="string"==typeof t?t.trim():"",a=r.toLowerCase();return n.includes(a)?{scheme:a,rootStyle:""}:i.test(r)?{scheme:"neutral",rootStyle:`--sf-badge--background-color: color-mix(in srgb, ${r} 24%, transparent); --sf-badge--color: var(--sf-on-surface)`}:{scheme:"neutral",rootStyle:""}}},ddf1cdb42ecc(e){e.exports=globalThis.SF&&globalThis.SF.runtimeModule?globalThis.SF.runtimeModule("lit"):new Promise(e=>globalThis.addEventListener("sf-runtime-ready",()=>e(globalThis.SF.runtimeModule("lit")),{once:!0}))},"0d662e4d7d63"(e){e.exports=globalThis.SF&&globalThis.SF.runtimeModule?globalThis.SF.runtimeModule("page-language"):new Promise(e=>globalThis.addEventListener("sf-runtime-ready",()=>e(globalThis.SF.runtimeModule("page-language")),{once:!0}))}};const t={};function r(a){const n=t[a];if(void 0!==n)return n.exports;const l=t[a]={exports:{}};return e[a](l,l.exports,r),l.exports}(()=>{const e="function"==typeof Symbol,t=e?Symbol("webpack queues"):"__webpack_queues__",a=e?Symbol("webpack exports"):"__webpack_exports__",n=e?Symbol("webpack error"):"__webpack_error__",l=e=>{e?.d<1&&(e.d=1,e.forEach(e=>e.r--),e.forEach(e=>e.r--?e.r++:e()))};r.a=(e,r,i)=>{let o;i&&((o=[]).d=-1);const s=new Set,u=e.exports;let d,c,p;const f=new Promise((e,t)=>{p=t,c=e});f[a]=u,f[t]=e=>(o&&e(o),s.forEach(e),f.catch(e=>{})),e.exports=f;r(e=>{let r;d=(e=>e.map(e=>{if(null!==e&&"object"==typeof e){if(e[t])return e;if(e.then){const r=[];r.d=0,e.then(e=>{i[a]=e,l(r)},e=>{i[n]=e,l(r)});const i={};return i[t]=e=>e(r),i}}const r={};return r[t]=e=>{},r[a]=e,r}))(e);const i=()=>d.map(e=>{if(e[n])throw e[n];return e[a]}),u=new Promise(e=>{r=()=>e(i),r.r=0;const a=e=>e!==o&&!s.has(e)&&(s.add(e),e&&!e.d&&(r.r++,e.push(r)));d.map(e=>e[t](a))});return r.r?u:i()},e=>(e?p(f[n]=e):c(u),l(o))),o?.d<0&&(o.d=0)}})(),r.n=e=>{const t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{if(Array.isArray(t))for(var a=0;a<t.length;){var n=t[a++],l=t[a++];r.o(e,n)?0===l&&a++:0===l?Object.defineProperty(e,n,{enumerable:!0,value:t[a++]}):Object.defineProperty(e,n,{enumerable:!0,get:l})}else for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);r("e5483002f3ea")})();
|