@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.
Files changed (57) hide show
  1. package/README.md +4 -4
  2. 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
  3. 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
  4. 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
  5. package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/a-reader-is-offered-nothing-to-change.json +23 -0
  6. 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
  7. package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/a-stale-confirmation-is-asked-again.json +39 -0
  8. package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/conditions-arrive-declared.json +82 -0
  9. package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/create-applied-answers-with-the-id.json +24 -0
  10. package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/create-field-errors-are-refused.json +22 -0
  11. package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/field-presentation-keys-are-declared.json +12 -0
  12. package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/group-save-applied-is-one-revision.json +16 -0
  13. 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
  14. package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/group-save-field-errors-are-refused.json +16 -0
  15. package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/group-save-may-ask-for-a-confirmation.json +38 -0
  16. package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/group-save-stale-revision-is-a-conflict.json +16 -0
  17. package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/load-applied-carries-the-object.json +12 -0
  18. package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/load-for-create-is-an-empty-object.json +24 -0
  19. package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/load-late-answer-is-dropped.json +15 -0
  20. package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/load-refused-is-explained.json +12 -0
  21. package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/load-unavailable-is-honest.json +12 -0
  22. package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/lookup-arrives-with-its-label.json +70 -0
  23. package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/opening-a-reference-is-the-hosts-decision.json +12 -0
  24. 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
  25. package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/options-carry-the-source-and-a-limit.json +33 -0
  26. package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/options-page-carries-a-cursor.json +15 -0
  27. package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/options-refused-is-explained.json +14 -0
  28. package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/options-search-by-source-reaches-the-host.json +30 -0
  29. package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/options-search-reaches-the-host.json +14 -0
  30. package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/options-without-the-capability.json +14 -0
  31. package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/rare-fields-arrive-declared.json +12 -0
  32. package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/removing-a-file-is-a-save.json +13 -0
  33. package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/save-applied-is-one-revision.json +26 -0
  34. package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/save-may-ask-for-a-confirmation.json +36 -0
  35. package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/save-stale-revision-is-a-conflict.json +23 -0
  36. package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/the-address-is-the-hosts.json +12 -0
  37. package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/upload-answers-with-the-stored-file.json +14 -0
  38. package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/upload-refused-is-explained.json +14 -0
  39. 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
  40. package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/view-create-shared-may-be-refused.json +27 -0
  41. 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
  42. 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
  43. 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
  44. package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/view-profile-refused-is-explained.json +25 -0
  45. package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/view-profile-unavailable-without-the-capability.json +23 -0
  46. package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/view-rename-changes-the-label-only.json +26 -0
  47. package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/view-reset-answers-with-what-now-resolves.json +30 -0
  48. 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
  49. package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/view-save-is-one-layer-one-revision.json +35 -0
  50. 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
  51. package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/view-save-rejects-entries-by-kind.json +36 -0
  52. package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/cases/view-settings-without-the-capability.json +30 -0
  53. package/distr/core/contracts/ports/simai.property-view-port/1.14.0/kit/manifest.json +66 -0
  54. package/distr/core/contracts/ports/simai.property-view-port/1.14.0/port.json +2484 -0
  55. package/distr/smart/field-renderers/js/field-renderers.min.js +128 -87
  56. package/package-manifest.json +57 -4
  57. package/package.json +4 -4
@@ -2,7 +2,7 @@
2
2
  <sf-input
3
3
  size=${u(t)}
4
4
  appearance="filled"
5
- placeholder="${ve(t,"containsText")}"
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="${ve(t,"operator")}"
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?ve(t,"rangeFrom"):t.getFilterOperatorLabel(l)}"
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="${ve(t,"rangeTo")}"
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="${ve(t,"operator")}"
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="${ve(t,"operator")}"
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="${ve(t,"searchInList")}"
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?ve(t,"loadingOptions"):""}
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=${ve(t,"optionsError")}
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="${ve(t,"loadMore")}"
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:ve(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 y={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,file:h,color:$};function v(e={},t){const r=e.filter?.control||e.propertyType||e.type||e.dataType||"text";return(y[r]||y.text)(e,t)}const b="1/2",S="tonal",w=[[/^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 x(e){const t=String(e||"").toLowerCase(),r=w.find(([e])=>e.test(t));return r?r[1]:"attach_file"}function k(e,t){const r=Ae(t);return r?a.html`
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=Ae(t),n=e.inheritedValue??"";return r||n?a.html`
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=Ae(t),l=e.inheritedValue??"";return a.html`
159
+ `:a.nothing}function T(e,t,r){const n=qe(t),l=e.inheritedValue??"";return a.html`
160
160
  <sf-color
161
- size=${L}
161
+ size=${N}
162
162
  appearance="bordered"
163
- name=${K(e)}
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?X(e)?z(t):{component:{type:"reference-link",props:{line:b,label:String(t.label),icon:x(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:x(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:G,date:j,datetime:j,boolean:E,choices:_,file:A,color:k,include:re,choice:P,integer:B,number:B,user:M,record:R,relation:R};function V(e,t){return{yes:e.trueText??e.labels?.true??ve(t,"yes"),no:e.falseText??e.labels?.false??ve(t,"no")}}function E(e,t,r){if("boolean"!=typeof t)return null;const a=V(e,r);return t?a.yes:a.no}function P(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 j(e,t,r){const a=r?.formatFieldValue?.(e,t);return"string"==typeof a&&""!==a?a:null}function B(e,t,r){const a=e.variant||e.filter?.variant,n=Number(Ae(t));return"scale"===a&&Number.isFinite(n)?n<0||n>100?null:{component:{type:"progress-scale",props:{line:b,value:String(n)}}}:j(e,t,r)}function C(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?C(t):String(t.label)]:null}function R(e,t){return t&&"object"==typeof t&&t.label?C(t):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 L="1";const N={record:be,relation:be,user:be,string:ae,text:ne,integer:le,number:le,date:se,datetime:de,boolean:ce,choice:fe,choices:he,file:we,color:T,include:te};function K(e){return`sf_field_${e.key||"value"}`}function U(e,t,r){return a.html`
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=${L}
175
- name=${K(e)}
176
- value=${Ae(t)??""}
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 D(e){return"password"===String(e.variant??"")}function H(e){return e&&"object"==typeof e&&!Array.isArray(e)?!0===e.set:"string"==typeof e&&""!==e}function Y(e,t){return ve(e,H(t)?"passwordSet":"passwordUnset")}function Z(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 J(e,t,r){const n=H(t),l=e.placeholder||(n?ve(r,"passwordKeep"):""),i=t=>{const a=t.target?.value??"";r.setFieldValue(e,""===a?void 0:a)};return a.html`
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=${L}
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=${K(e)}
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=${L}
200
+ size=${N}
201
201
  appearance="link"
202
202
  scheme="on-surface"
203
203
  icon="visibility"
204
204
  aria-pressed="false"
205
- aria-label=${ve(r,"showPassword")}
206
- @click=${Z}
205
+ aria-label=${be(r,"showPassword")}
206
+ @click=${J}
207
207
  ></sf-icon-button>
208
208
  </span>
209
- `}function G(e,t,r){return D(e)?Y(r,t):null}function Q(e,t,r){return D(e)?a.html`<span class="sf-field-view">${Y(r,t)}</span>`:_e(e,t,r)}const W=new Set(["image","image-card","image-list"]);function X(e){return W.has(String(e.variant??""))}function ee(e,t){const r=Ae(t);return r?a.html`
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 te(e,t,r){return a.html`
211
+ `:a.nothing}function re(e,t,r){return a.html`
212
212
  <sf-textarea
213
- size=${L}
213
+ size=${N}
214
214
  appearance="bordered"
215
215
  class="sf-field-include-edit"
216
- name=${K(e)}
217
- value=${Ae(t)??""}
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 re(e,t){const r=Ae(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 ae(e,t,r){return"phone"===String(e.variant??"")?U(e,t,r):D(e)?J(e,t,r):(t=Ae(t),a.html`
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=${L}
228
+ size=${N}
229
229
  appearance="bordered"
230
- name=${K(e)}
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 ne(e,t,r){return t=Ae(t),a.html`
238
+ `)}function le(e,t,r){return t=qe(t),a.html`
239
239
  <sf-textarea
240
- size=${L}
240
+ size=${N}
241
241
  appearance="bordered"
242
- name=${K(e)}
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 le(e,t,r){const n="number"===(e.propertyType||e.type);return t=Ae(t),a.html`
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=${L}
252
+ size=${N}
253
253
  appearance="bordered"
254
- name=${K(e)}
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 ie=/^(\d{4}-\d{2}-\d{2})[T ](\d{2}:\d{2}(?::\d{2})?(?:\.\d+)?)(Z|[+-]\d{2}:?\d{2})?$/;function oe(e){const t="string"==typeof e?e.trim().match(ie):null;return t?{date:t[1],suffix:`T${t[2]}${t[3]||""}`}:{date:e,suffix:""}}function se(e,t,r){t=Ae(t);const{date:n,suffix:l}=oe(t);return a.html`
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=${L}
265
- name=${K(e)}
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 ue=0;function de(e,t,r){const n=(0,o.AC)(t),l=String(e.label||e.key||""),i=K(e),s="sf-field-datetime-message-"+ ++ue,u=e=>ve(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?ve(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`
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=${L}
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=${L}
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=${ve(r,"dateTimePlaceholder")}
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"===L?"1/3":"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 ce(e,t,r){if(!(!0!==e.required))return a.html`
303
+ `}function pe(e,t,r){if(!(!0!==e.required))return a.html`
304
304
  <sf-switch
305
- size=${L}
306
- name=${K(e)}
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=${L}
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 pe(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 fe(e,t,r){return t=Ae(t),a.html`
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=${L}
321
+ size=${N}
322
322
  appearance="outlined"
323
323
  mode="select"
324
324
  search="false"
325
- name=${K(e)}
325
+ name=${U(e)}
326
326
  ?required=${Boolean(e.required)}
327
327
  value=${t??""}
328
328
  aria-label=${e.label||e.key||""}
329
- .options=${pe(e,t,!1)}
329
+ .options=${fe(e,t,!1)}
330
330
  @change=${t=>r.setFieldValue(e,t.detail?.value??null)}
331
331
  ></sf-dropdown>
332
- `}const me=13;function ge(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`
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=${L}
336
- name=${K(e)} value=${String(t.value)}
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 he(e,t,r){const n=e.options||e.filter?.options||e.constraints?.options||[],l=String(e.variant??"");return"checklist"===l||"select"!==l&&n.length>=me?ge(e,t,r):a.html`
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=${L}
343
+ size=${N}
344
344
  appearance="outlined"
345
345
  mode="select"
346
346
  multiple
347
347
  search="false"
348
- name=${K(e)}
348
+ name=${U(e)}
349
349
  ?required=${Boolean(e.required)}
350
350
  aria-label=${e.label||e.key||""}
351
- .options=${pe(e,t,!0)}
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 $e={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",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:"Выберите запись",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 ve(e,t){return e?.getFieldText?.(t)??(0,l.pageText)($e,t,e??null,ye)}function be(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`
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=${L}
357
+ size=${N}
358
358
  appearance="outlined"
359
359
  mode="select"
360
360
  search="true"
361
- name=${K(e)}
361
+ name=${U(e)}
362
362
  ?required=${Boolean(e.required)}
363
363
  value=${i?String(i.value):""}
364
- placeholder=${e.placeholder||ve(r,"pickRecord")}
365
- search-placeholder=${e.searchPlaceholder||ve(r,"searchRecords")}
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?ve(r,"recordsError"):"":ve(r,"loadingRecords")}
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=${ve(r,"retry")}
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=${ve(r,"loadMore")}
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 Se(e){return Array.isArray(e)?e.filter(e=>e&&"object"==typeof e):e&&"object"==typeof e?[e]:[]}function we(e,t,r){const n=Se(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`
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=${x(t.mime??t.mimeType)}
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=${`${ve(r,"removeFile")} ${t.label??t.name??""}`.trim()}
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=${L}
409
- name=${K(e)}
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 xe=e=>"1/2"===e?.size?"1/2":"1";function ke(e={},t,r,a={}){const n=e.propertyType||e.type||e.dataType;if(!0===e.readonly&&Me[n])return Re(e,t,r,a);const l=N[n];if(!l||!r?.setFieldValue)return null;const i=L;L=xe(a);try{return l(e,t,r)}finally{L=i}}let Fe="1";function Te(e){return Boolean(e)&&"object"==typeof e&&!Array.isArray(e)&&"string"==typeof e.text}function Ae(e){return Te(e)?e.value:e}function ze(e,t,r){const a=r?.formatFieldValue?.(e,t);if("string"==typeof a)return a;if(Te(t))return t.text;const n=Ae(t);return null==n?"":String(n)}function _e(e,t,r){const n=ze(e,t,r);return n?a.html`<span class="sf-field-view">${n}</span>`:a.nothing}function qe(e,t,r){if(null==t||""===t)return a.nothing;const n=e.variant||e.filter?.variant,l=Number(Ae(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=ze(e,t,r);return a.html`<span class="sf-field-view">${e.unit?`${i} ${e.unit}`:i}</span>`}function Oe(e,t,r){const n=ze(e,t,r);return n?a.html`<span class="sf-field-view">${n}</span>`:a.nothing}function Ve(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 Ee(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`
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=${Fe}
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 Pe(e,t){if(!Array.isArray(t)||!t.length)return a.nothing;const r=e.options||e.filter?.options||e.constraints?.options;return a.html`
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=${Fe} 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>`)}
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 je(e,t){return t&&"object"==typeof t&&t.label?a.html`
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=${Fe} text=${t.avatarText||""}></sf-avatar>
439
- ${t.href?a.html`<sf-reference-link appearance="plain" icon="" line=${Fe}
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 Be(e,t){return t&&"object"==typeof t&&t.label?a.html`
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=${Fe}
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 Ce(e,t){const r=Se(t);if(!r.length)return a.nothing;const n=X(e),l="image-card"===String(e.variant??"");return a.html`
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=${x(e.mime??e.mimeType)}
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 Me={string:Q,text:_e,integer:qe,number:qe,date:Oe,datetime:Oe,boolean:Ve,choice:Ee,choices:Pe,user:je,record:Be,relation:Be,file:Ce,color:F,include:ee};function Re(e={},t,r,a={}){const n=e.propertyType||e.type||e.dataType,l=Me[n];if(!l)return null;const i=Fe;Fe=xe(a);try{return l(e,t,r)}finally{Fe=i}}"undefined"!=typeof window&&(window.SF=window.SF||{},window.SF.fieldRenderers={...window.SF.fieldRenderers||{},renderCellField:I,renderEditField:ke,renderFilterField:v,renderViewField:Re,FILTER_RENDERERS:y,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:Me,edit:N,cell:O,filter:y}))};var t})},globalThis.document?.dispatchEvent?.(new CustomEvent("sf-field-renderers-ready"))),t()}catch(Ie){t(Ie)}})},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:"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")})();
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")})();