@simai-studio/ui 5.20261022.1409 → 5.20261022.1721
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/component/country-code/js/country-code.min.js +1 -1
- package/distr/component/dropdown/js/dropdown.min.js +1 -1
- package/distr/component/textarea/css/textarea.min.css +1 -1
- package/distr/component/textarea/js/textarea.min.js +1 -1
- package/distr/core/contracts/public-js-api.json +2 -1
- package/distr/core/js/core-loader.js +1 -1
- package/distr/core/js/core-loader.min.js +1 -1
- package/distr/core/js/template-utilities.generated.json +1 -0
- package/distr/smart/context-menu/js/context-menu.min.js +1 -1
- package/distr/smart/context-menu/smart.manifest.json +1 -1
- package/distr/smart/country-code/js/country-code.min.js +1 -1
- package/distr/smart/datepicker/js/datepicker.min.js +8 -8
- package/distr/smart/datepicker/smart.manifest.json +6 -6
- package/distr/smart/dropdown/js/dropdown.min.js +19 -19
- package/distr/smart/field-renderers/js/field-renderers.min.js +120 -88
- package/distr/smart/help-mark/js/help-mark.min.js +3 -3
- package/distr/smart/help-mark/smart.manifest.json +1 -1
- package/distr/smart/popover/js/popover.min.js +1 -1
- package/distr/smart/popover/smart.manifest.json +1 -1
- package/distr/smart/profile-picker/js/profile-picker.min.js +2 -2
- package/distr/smart/profile-picker/smart.manifest.json +1 -1
- package/distr/smart/textarea/js/textarea.min.js +26 -23
- package/distr/smart/textarea/smart.manifest.json +26 -5
- package/distr/smart/textarea/template/default.js +8 -1
- package/package-manifest.json +27 -27
- package/package.json +4 -4
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
(()=>{"use strict";var e={"6723cc45152d"(e,t,n){n.a(e,async(e,t)=>{try{var
|
|
1
|
+
(()=>{"use strict";var e={"421676f72963"(e,t,n){n.d(t,{Ec:()=>a,Hw:()=>l});const s="sfPopoverOpen",o=new WeakSet,i=Symbol.for("sf.openSurfaceLayers");function r(){const e=globalThis;return Array.isArray(e[i])||(e[i]=[]),e[i]}function a(e,t){if(!e)return;const n=Boolean(t);if(n===o.has(e))return;const i=r();if(n)o.add(e),i.push(e);else{o.delete(e);const t=i.lastIndexOf(e);t>=0&&i.splice(t,1)}!function(e){const t=globalThis.document?.documentElement;if(!t)return;const n=Math.max(0,Number(t.dataset[s]||0)+e);n?t.dataset[s]=String(n):delete t.dataset[s]}(n?1:-1)}function l(e){const t=r();for(let n=t.length-1;n>=0;n-=1){const s=t[n];if(!1!==s?.isConnected)return s===e}return!0}},"6723cc45152d"(e,t,n){n.a(e,async(e,t)=>{try{var s=n("fbe0570fcc69"),o=n("5c1dc214bb5e"),i=n("0d662e4d7d63"),r=n("421676f72963"),a=n("eaf281324a90"),l=e([s,o,i,a]);[s,o,i,a]=l.then?(await l)():l;var c=n.n(s),u=n.n(o);const h=()=>globalThis.SF?.Position||u(),p=["1/3","1/2","1"],d={auto:"block-end",bottom:"block-end",top:"block-start",start:"inline-start",end:"inline-end"},m={en:{label:"More information"},ru:{label:"Подробнее"}};let b=0;class f extends(c()){constructor(){super(),this._id="sf-help-mark-"+ ++b,this.isOpen=!1,this.announcement="",this._onOutside=e=>{this.isOpen&&!e.composedPath().includes(this)&&this.close({restoreFocus:!1})},this._onKey=e=>{this.isOpen&&"Escape"===e.key&&!e.defaultPrevented&&(0,r.Hw)(this)&&(e.preventDefault(),e.stopPropagation(),this.close())},this.addEventListener("focusout",e=>{this.isOpen&&this.interactive()&&(e.relatedTarget&&this.contains(e.relatedTarget)||this.close({restoreFocus:!1}))})}static get props(){return{templateName:{attribute:"template",default:"default"},text:{default:""},title:{default:""},label:{default:""},size:{default:"1/2"},placement:{default:"auto"},rootClass:{default:""}}}get text(){return this.getAttribute("text")||""}get title(){return this.getAttribute("title")||""}get label(){return this.getAttribute("label")||""}get size(){const e=this.getAttribute("size");return p.includes(e)?e:"1/2"}get placement(){const e=this.getAttribute("placement");return d[e]?e:"auto"}panel(){return this.querySelector(":scope .sf-help-mark-panel")}button(){return this.querySelector(":scope .sf-help-mark-button button")??this.querySelector(":scope .sf-help-mark-button")}interactive(){return Boolean(this.panel()?.querySelector('a[href], button, input, select, textarea, [tabindex]:not([tabindex="-1"])'))}toggle(){return this.isOpen?this.close():this.open()}async open(){if(this.isOpen)return;if(this.isOpen=!0,this.requestComponentUpdate("open"),await(this.whenRendered?.()),!this.isOpen)return;const e=this.panel(),t=this.button();e&&t&&("function"==typeof e.showPopover&&(e.setAttribute("popover","manual"),e.matches(":popover-open")||e.showPopover()),this._position=h().anchor(t,e,{side:d[this.placement],align:"center",flip:!0,shift:!0}),(0,r.Ec)(this,!0),document.addEventListener("pointerdown",this._onOutside,!0),document.addEventListener("keydown",this._onKey,!0),this.announcement="",this.requestComponentUpdate("announce-clear"),setTimeout(()=>{this.isOpen&&(this.announcement=[this.title,this.text||e.querySelector(".sf-help-mark-body")?.textContent?.trim()].filter(Boolean).join(". "),this.requestComponentUpdate("announce"))},50),this.dispatchEvent(new CustomEvent("sf-help-mark-open",{bubbles:!0,composed:!0})))}close({restoreFocus:e=!0}={}){if(!this.isOpen)return;this.isOpen=!1,this.announcement="",this._position?.stop(),this._position=null,(0,r.Ec)(this,!1),document.removeEventListener("pointerdown",this._onOutside,!0),document.removeEventListener("keydown",this._onKey,!0);const t=this.panel();t?.matches?.(":popover-open")&&t.hidePopover(),this.requestComponentUpdate("close"),e&&this.button()?.focus({preventScroll:!0}),this.dispatchEvent(new CustomEvent("sf-help-mark-close",{bubbles:!0,composed:!0}))}disconnectedCallback(){this.close({restoreFocus:!1}),super.disconnectedCallback?.()}templateContext(){return this.createTemplateContext({...this.getPropsContext(),component:this,id:this._id,size:this.size,name:this.label||(0,i.pageText)(m,"label",this,"sf-help-mark"),open:this.isOpen,announcement:this.announcement,body:this.hasSlotContent?.("content")?this.getSlotContent("content"):null,rootClass:this.getRootClass()})}template(){return(0,a.t)(this.templateContext())}}f.define("sf-help-mark"),t()}catch(e){t(e)}})},eaf281324a90(e,t,n){n.a(e,async(e,s)=>{try{n.d(t,{t:()=>a});var o=n("ddf1cdb42ecc"),i=e([o]),r=i.then?(await i)():i;o=r[0];function a(e){const t=`${e.id}-panel`;return o.html`
|
|
2
2
|
<span class=${["sf-help-mark",e.rootClass].filter(Boolean).join(" ")}>
|
|
3
3
|
<sf-icon-button class="sf-help-mark-button" size=${e.size} appearance="link" scheme="on-surface"
|
|
4
4
|
icon="help" aria-label=${e.name}
|
|
5
5
|
aria-expanded=${String(Boolean(e.open))} aria-controls=${t}
|
|
6
6
|
@click=${()=>e.component.toggle()}></sf-icon-button>
|
|
7
7
|
<div class="sf-help-mark-panel" id=${t} ?hidden=${!e.open}>
|
|
8
|
-
${e.title?
|
|
8
|
+
${e.title?o.html`<div class="sf-help-mark-title">${e.title}</div>`:o.nothing}
|
|
9
9
|
<div class="sf-help-mark-body">${e.body??e.text}</div>
|
|
10
10
|
</div>
|
|
11
11
|
<span class="sf-help-mark-live" role="status" aria-live="polite" aria-atomic="true">${e.announcement}</span>
|
|
12
12
|
</span>
|
|
13
|
-
`}
|
|
13
|
+
`}s()}catch(l){s(l)}})},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}))},"5c1dc214bb5e"(e){e.exports=globalThis.SF&&globalThis.SF.runtimeModule?globalThis.SF.runtimeModule("position"):new Promise(e=>globalThis.addEventListener("sf-runtime-ready",()=>e(globalThis.SF.runtimeModule("position")),{once:!0}))},fbe0570fcc69(e){e.exports=globalThis.SF&&globalThis.SF.runtimeModule?globalThis.SF.runtimeModule("smart-base"):new Promise(e=>globalThis.addEventListener("sf-runtime-ready",()=>e(globalThis.SF.runtimeModule("smart-base")),{once:!0}))}};const t={};function n(s){const o=t[s];if(void 0!==o)return o.exports;const i=t[s]={exports:{}};return e[s](i,i.exports,n),i.exports}(()=>{const e="function"==typeof Symbol,t=e?Symbol("webpack queues"):"__webpack_queues__",s=e?Symbol("webpack exports"):"__webpack_exports__",o=e?Symbol("webpack error"):"__webpack_error__",i=e=>{e?.d<1&&(e.d=1,e.forEach(e=>e.r--),e.forEach(e=>e.r--?e.r++:e()))};n.a=(e,n,r)=>{let a;r&&((a=[]).d=-1);const l=new Set,c=e.exports;let u,h,p;const d=new Promise((e,t)=>{p=t,h=e});d[s]=c,d[t]=e=>(a&&e(a),l.forEach(e),d.catch(e=>{})),e.exports=d;n(e=>{let n;u=(e=>e.map(e=>{if(null!==e&&"object"==typeof e){if(e[t])return e;if(e.then){const n=[];n.d=0,e.then(e=>{r[s]=e,i(n)},e=>{r[o]=e,i(n)});const r={};return r[t]=e=>e(n),r}}const n={};return n[t]=e=>{},n[s]=e,n}))(e);const r=()=>u.map(e=>{if(e[o])throw e[o];return e[s]}),c=new Promise(e=>{n=()=>e(r),n.r=0;const s=e=>e!==a&&!l.has(e)&&(l.add(e),e&&!e.d&&(n.r++,e.push(n)));u.map(e=>e[t](s))});return n.r?c:r()},e=>(e?p(d[o]=e):h(c),i(a))),a?.d<0&&(a.d=0)}})(),n.n=e=>{const t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{if(Array.isArray(t))for(var s=0;s<t.length;){var o=t[s++],i=t[s++];n.o(e,o)?0===i&&s++:0===i?Object.defineProperty(e,o,{enumerable:!0,value:t[s++]}):Object.defineProperty(e,o,{enumerable:!0,get:i})}else for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);n("6723cc45152d")})();
|
|
@@ -224,7 +224,7 @@
|
|
|
224
224
|
"source_artifacts": [
|
|
225
225
|
{
|
|
226
226
|
"path": "src/smart/help-mark/index.js",
|
|
227
|
-
"sha256": "
|
|
227
|
+
"sha256": "3ad3d817dc173556dd2493b01df2f4169140b8de00e1d101a25aadd1d6cad2ee"
|
|
228
228
|
},
|
|
229
229
|
{
|
|
230
230
|
"path": "src/smart/help-mark/js/templates/default.js",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{"use strict";var e={"421676f72963"(e,t,o){o.d(t,{Ec:()=>
|
|
1
|
+
(()=>{"use strict";var e={"421676f72963"(e,t,o){o.d(t,{Ec:()=>a,Hw:()=>l});const n="sfPopoverOpen",s=new WeakSet,r=Symbol.for("sf.openSurfaceLayers");function i(){const e=globalThis;return Array.isArray(e[r])||(e[r]=[]),e[r]}function a(e,t){if(!e)return;const o=Boolean(t);if(o===s.has(e))return;const r=i();if(o)s.add(e),r.push(e);else{s.delete(e);const t=r.lastIndexOf(e);t>=0&&r.splice(t,1)}!function(e){const t=globalThis.document?.documentElement;if(!t)return;const o=Math.max(0,Number(t.dataset[n]||0)+e);o?t.dataset[n]=String(o):delete t.dataset[n]}(o?1:-1)}function l(e){const t=i();for(let o=t.length-1;o>=0;o-=1){const n=t[o];if(!1!==n?.isConnected)return n===e}return!0}},e470697f4c03(e,t,o){o.a(e,async(e,t)=>{try{var n=o("fbe0570fcc69"),s=o("421676f72963"),r=o("18fc6da7e766"),i=e([n,r]);[n,r]=i.then?(await i)():i;var a=o.n(n);const l=["bottom-start","bottom-end","top-start","top-end","inline-start","inline-end"];class u extends(a()){static get props(){return{templateName:{attribute:"template",default:"default"},open:{type:Boolean,default:!1},placement:{default:"bottom-end",values:l},label:{default:""},surfaceRole:{attribute:"surface-role",default:"dialog",values:["dialog","menu","listbox","group"]},width:{default:""},dismissible:{type:Boolean,default:!0}}}constructor(){super(),this._onDocumentPointerDown=null,this._onDocumentKeyDown=null}static get observedAttributes(){return[...super.observedAttributes??[],"open"]}get open(){return this.getBooleanAttr("open",!1)}get placement(){return this.getEnumAttr("placement",l,"bottom-end")}get label(){return this.getAttribute("label")||""}get surfaceRole(){const e=["dialog","menu","listbox","group"];return this.hasAttribute("surface-role")?this.getEnumAttr("surface-role",e,"dialog"):e.includes(this._legacyRole)?this._legacyRole:"dialog"}get role(){return this.surfaceRole}_adoptLegacyRole(){this.hasAttribute("role")&&(this._legacyRole=String(this.getAttribute("role")||"").trim().toLowerCase(),this.removeAttribute("role"),globalThis.SF?.deprecations?.note?.({component:"sf-popover",kind:"attribute",attribute:"role",from:"role",to:"surface-role"}))}get width(){return this.getAttribute("width")||""}get dismissible(){return this.getBooleanAttr("dismissible",!0)}applyHostDisplayStyle(){const e="display: inline-flex; align-items: center; position: relative;";return this.getAttribute("style")===e||(this._syncingHostStyle=!0,this.setAttribute("style",e),this._syncingHostStyle=!1),this}captureSlotTemplates(){this._slotTemplatesCaptured=!0}onConnected(){this._adoptLegacyRole(),super.onConnected?.(),this._bindDismissal(),this.addEventListener("click",this._onTriggerClick)}_onTriggerClick=e=>{(e.composedPath?.()??[]).some(e=>"trigger"===e?.getAttribute?.("slot"))&&(e.preventDefault(),this.toggle())};onDisconnected(){this.removeEventListener("click",this._onTriggerClick),this._releaseDismissal(),super.onDisconnected?.()}attributeChangedCallback(e,t,o){super.attributeChangedCallback?.(e,t,o),t!==o&&"open"===e&&(this._bindDismissal(),this.emitComponentEvent(this.open?"popover-open":"popover-close",{open:this.open}),this.open||this.returnFocus())}toggle(e){const t="boolean"==typeof e?e:!this.open;return t===this.open?this.open:(t&&(this._opener=this.querySelector('[slot="trigger"]')??null),this.toggleAttribute("open",t),this.requestComponentUpdate("open"),t)}show(){return this.toggle(!0)}close(){return this.toggle(!1)}returnFocus(){const e=this._opener?.isConnected?this._opener:this.querySelector('[slot="trigger"]'),t=e?.matches?.("button, a[href], [tabindex]")?e:e?.querySelector?.("button, a[href], [tabindex]");t?.focus?.()}_bindDismissal(){this.open&&this.dismissible?this._onDocumentPointerDown||((0,s.Ec)(this,!0),this._onDocumentPointerDown=e=>{(e.composedPath?.()??[]).includes(this)||this.close()},this._onDocumentKeyDown=e=>{"Escape"===e.key&&!e.defaultPrevented&&(0,s.Hw)(this)&&(e.preventDefault(),e.stopPropagation(),this.close())},document.addEventListener("pointerdown",this._onDocumentPointerDown,!0),document.addEventListener("keydown",this._onDocumentKeyDown,!0)):this._releaseDismissal()}_releaseDismissal(){(0,s.Ec)(this,!1),this._onDocumentPointerDown&&document.removeEventListener("pointerdown",this._onDocumentPointerDown,!0),this._onDocumentKeyDown&&document.removeEventListener("keydown",this._onDocumentKeyDown,!0),this._onDocumentPointerDown=null,this._onDocumentKeyDown=null}resolveUpdateMode(){return"dom"}updateDom(){this.dataset.placement=this.placement,this.dataset.open=this.open?"true":"false",this._adoptLegacyRole();const e=this.querySelector('[slot="trigger"]'),t=e?.matches?.("button, a[href], [tabindex]")?e:e?.querySelector?.("button, a[href], [tabindex], sf-button, sf-icon-button");t&&(t.setAttribute("aria-expanded",this.open?"true":"false"),t.setAttribute("aria-haspopup","group"===this.surfaceRole?"true":this.surfaceRole));const o=this.querySelector('[slot="content"]');return!o||(o.setAttribute("role",this.surfaceRole),this.label?o.setAttribute("aria-label",this.label):o.removeAttribute("aria-label"),o.style.setProperty("--sf-popover--width",this.width||""),!0)}templateContext(){return this.createTemplateContext({...this.getPropsContext(),component:this})}template(){return(0,r.o)(this.templateContext())}}u.define("sf-popover");t()}catch(e){t(e)}})},"18fc6da7e766"(e,t,o){o.a(e,async(e,n)=>{try{o.d(t,{o:()=>a});var s=o("ddf1cdb42ecc"),r=e([s]),i=r.then?(await r)():r;s=i[0];function a(){return s.nothing}n()}catch(l){n(l)}})},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}))},fbe0570fcc69(e){e.exports=globalThis.SF&&globalThis.SF.runtimeModule?globalThis.SF.runtimeModule("smart-base"):new Promise(e=>globalThis.addEventListener("sf-runtime-ready",()=>e(globalThis.SF.runtimeModule("smart-base")),{once:!0}))}};const t={};function o(n){const s=t[n];if(void 0!==s)return s.exports;const r=t[n]={exports:{}};return e[n](r,r.exports,o),r.exports}(()=>{const e="function"==typeof Symbol,t=e?Symbol("webpack queues"):"__webpack_queues__",n=e?Symbol("webpack exports"):"__webpack_exports__",s=e?Symbol("webpack error"):"__webpack_error__",r=e=>{e?.d<1&&(e.d=1,e.forEach(e=>e.r--),e.forEach(e=>e.r--?e.r++:e()))};o.a=(e,o,i)=>{let a;i&&((a=[]).d=-1);const l=new Set,u=e.exports;let c,h,d;const p=new Promise((e,t)=>{d=t,h=e});p[n]=u,p[t]=e=>(a&&e(a),l.forEach(e),p.catch(e=>{})),e.exports=p;o(e=>{let o;c=(e=>e.map(e=>{if(null!==e&&"object"==typeof e){if(e[t])return e;if(e.then){const o=[];o.d=0,e.then(e=>{i[n]=e,r(o)},e=>{i[s]=e,r(o)});const i={};return i[t]=e=>e(o),i}}const o={};return o[t]=e=>{},o[n]=e,o}))(e);const i=()=>c.map(e=>{if(e[s])throw e[s];return e[n]}),u=new Promise(e=>{o=()=>e(i),o.r=0;const n=e=>e!==a&&!l.has(e)&&(l.add(e),e&&!e.d&&(o.r++,e.push(o)));c.map(e=>e[t](n))});return o.r?u:i()},e=>(e?d(p[s]=e):h(u),r(a))),a?.d<0&&(a.d=0)}})(),o.n=e=>{const t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{if(Array.isArray(t))for(var n=0;n<t.length;){var s=t[n++],r=t[n++];o.o(e,s)?0===r&&n++:0===r?Object.defineProperty(e,s,{enumerable:!0,value:t[n++]}):Object.defineProperty(e,s,{enumerable:!0,get:r})}else for(var s in t)o.o(t,s)&&!o.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);o("e470697f4c03")})();
|
|
@@ -306,7 +306,7 @@
|
|
|
306
306
|
"source_artifacts": [
|
|
307
307
|
{
|
|
308
308
|
"path": "src/smart/popover/index.js",
|
|
309
|
-
"sha256": "
|
|
309
|
+
"sha256": "7a5a5850e9bf5ba365faaca7c50d7b79154b0b09508f39fc34cafe39cdd22947"
|
|
310
310
|
},
|
|
311
311
|
{
|
|
312
312
|
"path": "src/smart/popover/rule.js",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(()=>{"use strict";var e={ad5bbe113041(e,t,s){s.a(e,async(e,t)=>{try{var r=s("fbe0570fcc69"),i=s("5c1dc214bb5e"),n=s("0d662e4d7d63"),o=s("
|
|
1
|
+
(()=>{"use strict";var e={"421676f72963"(e,t,s){s.d(t,{Ec:()=>a});const r="sfPopoverOpen",i=new WeakSet,n=Symbol.for("sf.openSurfaceLayers");function o(){const e=globalThis;return Array.isArray(e[n])||(e[n]=[]),e[n]}function a(e,t){if(!e)return;const s=Boolean(t);if(s===i.has(e))return;const n=o();if(s)i.add(e),n.push(e);else{i.delete(e);const t=n.lastIndexOf(e);t>=0&&n.splice(t,1)}!function(e){const t=globalThis.document?.documentElement;if(!t)return;const s=Math.max(0,Number(t.dataset[r]||0)+e);s?t.dataset[r]=String(s):delete t.dataset[r]}(s?1:-1)}},ad5bbe113041(e,t,s){s.a(e,async(e,t)=>{try{var r=s("fbe0570fcc69"),i=s("5c1dc214bb5e"),n=s("0d662e4d7d63"),o=s("421676f72963"),a=s("4a548d247667"),l=e([r,i,n,a]);[r,i,n,a]=l.then?(await l)():l;var c=s.n(r),p=s.n(i);const d=()=>globalThis.SF?.Position||p(),u={en:{label:"Profile",newProfile:"New profile…",name:"Profile name",personal:"Personal",shared:"For everyone",builtin:"standard",create:"Create",cancel:"Cancel",rename:"Rename",remove:"Delete",save:"Save",reset:"Reset to standard",removeQuestion:"Delete «{name}»?",removeShared:"It goes for everyone on the site.",copyOf:"A copy of «{name}».",seenByAll:"Seen by everyone on the site.",seenByYou:"Seen only by you.",locked:"You cannot change it",personalTaken:"You already have a personal profile",sharedDenied:"You cannot make shared profiles",nameEmpty:"Give the profile a name."},ru:{label:"Профиль",newProfile:"Новый профиль…",name:"Название профиля",personal:"Личный",shared:"Для всех",builtin:"стандартный",create:"Создать",cancel:"Отмена",rename:"Переименовать",remove:"Удалить",save:"Сохранить",reset:"Сбросить к стандартному",removeQuestion:"Удалить «{name}»?",removeShared:"Он исчезнет у всех на сайте.",copyOf:"Копия профиля «{name}».",seenByAll:"Виден всем на сайте.",seenByYou:"Виден только вам.",locked:"Нет прав на изменение",personalTaken:"Личный профиль уже есть",sharedDenied:"Нет прав на общие профили",nameEmpty:"Дайте профилю название."}};class f extends(c()){constructor(){super(),this._profiles=[],this._rights={},this.state={open:!1,mode:null,target:null,draft:{name:"",shared:!1}},this._onOutside=e=>{if(!this.state.open)return;const t=e.composedPath();t.includes(this)||t.includes(this.panel())||this.close({restoreFocus:!1})}}static get props(){return{templateName:{attribute:"template",default:"default"},label:{default:""},size:{default:"1/2"},current:{default:""},resettable:{type:Boolean,default:!1},message:{default:""},disabled:{type:Boolean,default:!1},rootClass:{default:""}}}get profiles(){return this._profiles}set profiles(e){this._profiles=Array.isArray(e)?e.filter(e=>e&&void 0!==e.id):[],this.state.mode&&"delete-confirm"!==this.state.mode&&(this.state={...this.state,mode:null,target:null}),"delete-confirm"!==this.state.mode||this._profiles.some(e=>String(e.id)===this.state.target)||(this.state={...this.state,mode:null,target:null}),this.requestComponentUpdate("profiles")}get rights(){return this._rights}set rights(e){this._rights=e&&"object"==typeof e?e:{},this.requestComponentUpdate("rights")}get label(){return this.getAttribute("label")||""}get size(){return"1"===this.getAttribute("size")?"1":"1/2"}get current(){return this.getAttribute("current")??String(this._profiles[0]?.id??"")}get resettable(){return this.getBooleanAttr("resettable",!1)}get message(){return this.getAttribute("message")||""}get disabled(){return this.getBooleanAttr("disabled",!1)}text(e){return(0,n.pageText)(u,e,this,"sf-profile-picker")}currentProfile(){return this._profiles.find(e=>String(e.id)===String(this.current))??this._profiles[0]??null}mayChange(e){return Boolean(e)&&!1!==e.editable&&!e.builtin}canCreate(){const e=this._rights.create??{};return Boolean(e.personal||e.shared)}panel(){return this.querySelector(":scope .sf-profile-picker-panel")}trigger(){return this.querySelector(":scope .sf-profile-picker-trigger")}async open(){if(this.disabled||this.state.open)return;this.state={...this.state,open:!0,mode:null,target:null},this.requestComponentUpdate("open"),await(this.whenRendered?.());const e=this.panel(),t=this.trigger();e&&t&&("function"==typeof e.showPopover&&(e.setAttribute("popover","manual"),e.matches(":popover-open")||e.showPopover()),e.style.minInlineSize=`${Math.round(t.getBoundingClientRect().width)}px`,this._position=d().anchor(t,e,{side:"block-end",align:"start",flip:!0,shift:!0,fitHeight:!0}),document.addEventListener("pointerdown",this._onOutside,!0),(0,o.Ec)(this,!0),(e.querySelector('.sf-profile-picker-row[aria-checked="true"]')??e.querySelector(".sf-profile-picker-row"))?.focus({preventScroll:!0}))}close({restoreFocus:e=!0}={}){if(!this.state.open)return;this.state={...this.state,open:!1,mode:null,target:null},this._position?.stop(),this._position=null,document.removeEventListener("pointerdown",this._onOutside,!0),(0,o.Ec)(this,!1);const t=this.panel();t?.matches?.(":popover-open")&&t.hidePopover(),this.requestComponentUpdate("close"),e&&this.trigger()?.focus({preventScroll:!0})}toggle(){return this.state.open?this.close():this.open()}disconnectedCallback(){this.close({restoreFocus:!1}),super.disconnectedCallback()}announce(e,t,{cancelable:s=!1}={}){return this.dispatchEvent(new CustomEvent(`sf-profile-${e}`,{bubbles:!0,composed:!0,cancelable:s,detail:t}))}setMode(e,t=null){const s=this.currentProfile(),r=this._rights.create??{},i="create"===e?{name:"",shared:!r.personal}:this.state.draft;return this.state={...this.state,mode:e,target:null===t?null:String(t),draft:i},this.setAttribute("message",""),this.requestComponentUpdate("mode"),this.whenRendered?.().then(()=>{const e=this.panel()?.querySelector(".sf-profile-picker-field");e?.focus(),e?.select?.()}),s}choose(e){String(e)!==String(this.current)&&this.announce("select",{id:String(e)}),this.close()}submitCreate(e,t){const s=String(e??"").trim();if(!s)return void this.setAttribute("message",this.text("nameEmpty"));const r=this._rights.create??{},i=!!(t&&r.shared||!r.personal)||Boolean(t);this.announce("create",{label:s,shared:i,from:String(this.currentProfile()?.id??"")})}submitRename(e,t){const s=String(t??"").trim();s?this.announce("rename",{id:String(e),label:s}):this.setAttribute("message",this.text("nameEmpty"))}submitDelete(e){this.announce("delete",{id:String(e)})}reset(){this.announce("reset",{id:String(this.currentProfile()?.id??"")}),this.close()}handleKeyDown(e){if("Escape"===e.key)return e.preventDefault(),e.stopPropagation(),void(this.state.mode?this.setMode(null):this.close());const t=[...this.panel()?.querySelectorAll(".sf-profile-picker-row[tabindex]")??[]],s=t.indexOf(e.target);if(s<0)return;const r=t[s];if("ArrowDown"===e.key||"ArrowUp"===e.key)e.preventDefault(),t[(s+("ArrowDown"===e.key?1:t.length-1))%t.length]?.focus();else if("Home"===e.key||"End"===e.key)e.preventDefault(),t["Home"===e.key?0:t.length-1]?.focus();else if("Enter"===e.key||" "===e.key)e.preventDefault(),r.click();else if("F2"===e.key&&r.dataset.id){const t=this._profiles.find(e=>String(e.id)===r.dataset.id);this.mayChange(t)&&(e.preventDefault(),this.setMode("rename",r.dataset.id))}else if("Delete"===e.key&&r.dataset.id){const t=this._profiles.find(e=>String(e.id)===r.dataset.id);this.mayChange(t)&&(e.preventDefault(),this.setMode("delete-confirm",r.dataset.id))}}templateContext(){return this.createTemplateContext({...this.getPropsContext(),component:this,heading:this.label||this.text("label"),size:this.size,profiles:this._profiles,current:this.current,currentProfile:this.currentProfile(),rights:this._rights,state:this.state,message:this.message,resettable:this.resettable,text:e=>this.text(e),rootClass:this.getRootClass()})}template(){return(0,a.A)(this.templateContext())}}f.define("sf-profile-picker"),globalThis.SF=globalThis.SF||{},t()}catch(e){t(e)}})},"4a548d247667"(e,t,s){s.a(e,async(e,r)=>{try{s.d(t,{A:()=>u});var i=s("ddf1cdb42ecc"),n=e([i]),o=n.then?(await n)():n;i=o[0];const a=(e,t="")=>i.html`<i class="sf-icon ${t}" aria-hidden="true">${e}</i>`,l=e=>e?.shared?"group":"person",c=(e,t)=>Object.entries(t).reduce((e,[t,s])=>e.replace(`{${t}}`,s),e);function p(e,t){const{component:s,state:r,text:n}=e,o=String(t.id),p=String(e.currentProfile?.id??"")===o,d=s.mayChange(t);if("rename"===r.mode&&r.target===o){let e=t.label??"";return i.html`<div class="sf-profile-picker-edit" data-id=${o}>
|
|
2
2
|
<input class="sf-profile-picker-field" .value=${e} aria-label=${n("name")}
|
|
3
3
|
@input=${t=>{e=t.target.value}}
|
|
4
4
|
@keydown=${e=>{"Enter"===e.key&&(e.preventDefault(),s.submitRename(o,e.target.value))}}>
|
|
@@ -68,4 +68,4 @@
|
|
|
68
68
|
`:i.nothing}
|
|
69
69
|
</div>
|
|
70
70
|
</div>
|
|
71
|
-
`}r()}catch(
|
|
71
|
+
`}r()}catch(f){r(f)}})},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}))},"5c1dc214bb5e"(e){e.exports=globalThis.SF&&globalThis.SF.runtimeModule?globalThis.SF.runtimeModule("position"):new Promise(e=>globalThis.addEventListener("sf-runtime-ready",()=>e(globalThis.SF.runtimeModule("position")),{once:!0}))},fbe0570fcc69(e){e.exports=globalThis.SF&&globalThis.SF.runtimeModule?globalThis.SF.runtimeModule("smart-base"):new Promise(e=>globalThis.addEventListener("sf-runtime-ready",()=>e(globalThis.SF.runtimeModule("smart-base")),{once:!0}))}};const t={};function s(r){const i=t[r];if(void 0!==i)return i.exports;const n=t[r]={exports:{}};return e[r](n,n.exports,s),n.exports}(()=>{const e="function"==typeof Symbol,t=e?Symbol("webpack queues"):"__webpack_queues__",r=e?Symbol("webpack exports"):"__webpack_exports__",i=e?Symbol("webpack error"):"__webpack_error__",n=e=>{e?.d<1&&(e.d=1,e.forEach(e=>e.r--),e.forEach(e=>e.r--?e.r++:e()))};s.a=(e,s,o)=>{let a;o&&((a=[]).d=-1);const l=new Set,c=e.exports;let p,d,u;const f=new Promise((e,t)=>{u=t,d=e});f[r]=c,f[t]=e=>(a&&e(a),l.forEach(e),f.catch(e=>{})),e.exports=f;s(e=>{let s;p=(e=>e.map(e=>{if(null!==e&&"object"==typeof e){if(e[t])return e;if(e.then){const s=[];s.d=0,e.then(e=>{o[r]=e,n(s)},e=>{o[i]=e,n(s)});const o={};return o[t]=e=>e(s),o}}const s={};return s[t]=e=>{},s[r]=e,s}))(e);const o=()=>p.map(e=>{if(e[i])throw e[i];return e[r]}),c=new Promise(e=>{s=()=>e(o),s.r=0;const r=e=>e!==a&&!l.has(e)&&(l.add(e),e&&!e.d&&(s.r++,e.push(s)));p.map(e=>e[t](r))});return s.r?c:o()},e=>(e?u(f[i]=e):d(c),n(a))),a?.d<0&&(a.d=0)}})(),s.n=e=>{const t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{if(Array.isArray(t))for(var r=0;r<t.length;){var i=t[r++],n=t[r++];s.o(e,i)?0===n&&r++:0===n?Object.defineProperty(e,i,{enumerable:!0,value:t[r++]}):Object.defineProperty(e,i,{enumerable:!0,get:n})}else for(var i in t)s.o(t,i)&&!s.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);s("ad5bbe113041")})();
|
|
@@ -290,7 +290,7 @@
|
|
|
290
290
|
"source_artifacts": [
|
|
291
291
|
{
|
|
292
292
|
"path": "src/smart/profile-picker/index.js",
|
|
293
|
-
"sha256": "
|
|
293
|
+
"sha256": "c44f2691733624432650222ca13492749eeddf79d22a846164f6f8729eb75475"
|
|
294
294
|
},
|
|
295
295
|
{
|
|
296
296
|
"path": "src/smart/profile-picker/js/templates/default.js",
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
(()=>{"use strict";var e={e138a730fd7c(e,t,r){r.d(t,{U:()=>o,h:()=>s});let a=0;const n=new WeakMap;function s(e,{prefix:t="sf-field",required:r=!1,invalid:s=!1,hint:o="",errorMessage:i=""}={}){const l=function(e,t){if(e&&n.has(e))return n.get(e);const r=(e?.id?String(e.id).trim():"")||`${t}-${++a}`,s={controlId:`${r}-control`,messageId:`${r}-message`};return!e||"object"!=typeof e&&"function"!=typeof e||n.set(e,s),s}(e,t),d=Boolean(s),u=d&&i?i:o;return{...l,required:Boolean(r),invalid:d,message:u,describedBy:u?l.messageId:"",errorMessageId:d&&i?l.messageId:""}}function o(e,t,{prefix:r="sf-field",required:a=!1,invalid:n=!1,messageNode:o=null,labelNode:i=null,errorMessage:l=""}={}){if(!e||!t)return null;const d=s(e,{prefix:r,required:a,invalid:n,hint:o?.textContent?.trim()||"",errorMessage:l});var u,c;return t.id||(t.id=d.controlId),"LABEL"!==e.tagName||e.hasAttribute("for")||e.setAttribute("for",t.id),!i?.textContent?.trim()||t.hasAttribute("aria-label")||t.hasAttribute("aria-labelledby")||(i.id||(i.id=`${t.id}-label`),t.setAttribute("aria-labelledby",i.id)),t.required=d.required,e.classList.toggle("error",d.invalid),t.classList.toggle("error",d.invalid),d.invalid?t.setAttribute("aria-invalid","true"):t.removeAttribute("aria-invalid"),o&&(o.id||(o.id=d.messageId),t.setAttribute("aria-describedby",(u=t.getAttribute("aria-describedby"),c=[o.id],[...new Set([...String(u||"").split(/\s+/).filter(Boolean),...c.filter(Boolean)])].join(" ")))),d.errorMessageId&&o?t.setAttribute("aria-errormessage",o.id):t.removeAttribute("aria-errormessage"),d}},"98e26702f55a"(e,t,r){function a(){const e=globalThis.SF=globalThis.SF||{};return e.__deprecationNotes instanceof Map||Object.defineProperty(e,"__deprecationNotes",{value:new Map,configurable:!0}),e.__deprecationNotes}function n({component:e="",kind:t="attribute",attribute:r="",from:n,to:s=null}={}){if(!n)return;const o=[e,t,r,n].join("|"),i=a(),l=i.get(o);if(l)l.count+=1;else if(i.set(o,{component:e,kind:t,attribute:r,from:n,to:s,count:1}),function(){const e=globalThis.document?.documentElement;return"warn"===e?.dataset?.sfDeprecations||!0===globalThis.SF?.deprecations?.warn}()){const a=e?`${e}: `:"",o="value"===t?`${r}="${n}"`:`${t} ${n}`;globalThis.console?.warn?.(`[SIMAI Framework] ${a}${o} is a legacy name${s?`; write ${s}`:""}. See contracts/changes/journal.json.`)}}if(r.d(t,{id:()=>l,vl:()=>d}),"undefined"!=typeof globalThis){globalThis.SF=globalThis.SF||{};const e=globalThis.SF.deprecations||{};e.list=function(){return[...a().values()].map(e=>({...e}))},e.clear=function(){a().clear()},e.note=n,globalThis.SF.deprecations=e}const s=Object.freeze(["1/2","1","2"]),o=Object.freeze({"1/3":"1/2",3:"2"}),i=new Set;function l(e,t="field",r="1"){const a=String(e??"").trim().toLowerCase();if(s.includes(a))return a;if(Object.hasOwn(o,a)){const e=o[a];n({component:t,kind:"value",attribute:"size",from:a,to:e});const r=`${t}:${a}`;return i.has(r)||"undefined"==typeof console||(i.add(r),console.warn(`[SIMAI Framework] ${t}: size ${a} is retired for form fields; rendering size ${e}.`)),e}return r}function d(e,t){if(e?.classList)for(const[r,a]of Object.entries(o)){const a=`${t}--size-${r}`;e.classList.contains(a)&&e.classList.replace(a,`${t}--size-${l(r,t)}`)}}},"01398f3e8009"(e,t,r){r.d(t,{sd:()=>_,aJ:()=>L,TO:()=>k});class a{lifecycleName(){return this.componentName??this.constructor.componentName}constructor(e){this.props=e,this.id=e?.id,this.params=e?.param,this.attrs=e?.attrs||{},this.template=null,window.dispatchEvent(new CustomEvent(`${this.lifecycleName()}:beforeRender`,{detail:this}))}getUtilityMap(){return this.constructor.utilityMap||null}extractUtilityClasses(e){if(!Array.isArray(e))return[];const t=new Set;return e.forEach(e=>{if("string"!=typeof e)return;const r=e.match(/\(([^)]+)\)/g);r&&r.forEach(e=>{e.slice(1,-1).split(/\s+/).filter(Boolean).forEach(e=>{e.startsWith(".")&&e.length>1&&t.add(e.slice(1))})})}),Array.from(t)}applyLayoutUtilities(e,t){if(!e||!t)return;const r=this.getUtilityMap();if(!r||!r[t])return;this.extractUtilityClasses(r[t]).forEach(t=>e.classList.add(t))}render(){return this.html=this.template,"function"==typeof this.init&&this.init(),this.html&&window.dispatchEvent(new CustomEvent(`${this.lifecycleName()}:render`,{detail:this})),this.html}destroy(){this.destroyInternal?.(),this.props=null,this.id=null,this.params=null,this.template=null,this.html&&(this.html.remove(),this.html=null),window.dispatchEvent(new CustomEvent(`${this.lifecycleName()}:destroy`,{detail:this}))}destroyInternal(){}}const n=function(e,t){if(e&&t)if("undefined"==typeof window||"function"!=typeof window.registerSfComponent){if("undefined"!=typeof window&&window.SF?.Loader?.registerComponent)window.SF.Loader.registerComponent(e,t);else if("undefined"!=typeof window){(window.SF_PENDING_COMPONENTS=window.SF_PENDING_COMPONENTS||[]).push([e,t])}}else window.registerSfComponent(e,t)},s=JSON.parse('{".sf-textarea":["display/flex (.flex)","flex-direction/column (.flex-col)","flex-wrap/nowrap (.flex-nowrap)","gap/var(--sf-space-1\\\\/4)","justify-content/flex-start (.justify-start)"],".sf-textarea .sf-textarea-label":["display/flex (.flex)","flex-direction/row (.flex-row)","flex-wrap/nowrap (.flex-nowrap)","gap/var(--sf-space-1\\\\/4)","justify-content/flex-start (.justify-start)","align-items/flex-start (.items-start)"],".sf-textarea textarea":[],".sf-textarea .sf-textarea-hint-text-wrap":["flex/1 (.flex-1)","display/flex (.flex)","flex-direction/row (.flex-row)","flex-wrap/nowrap (.flex-nowrap)","gap/var(--sf-b0)","justify-content/flex-start (.justify-start)","align-items/center (.items-center)"]}');var o=r("e138a730fd7c"),i=r("98e26702f55a");const l=new WeakMap,d=new WeakSet;let u=null;const c="label.sf-textarea",f="sfTextareaBound",p=new Set(["bordered","filled"]),m=new Set(["","none","text","tel","url","email","numeric","decimal","search"]),h=new Set(["soft","hard"]);function g(e){if(""===e||null==e)return null;const t=Number(e);return Number.isInteger(t)&&t>=0?t:null}function b(e,t=!1){return null==e||""===e?t:"boolean"==typeof e?e:["1","true","yes","on"].includes(String(e).toLowerCase())}function x(e){return e?.querySelector?.("textarea")||null}function w(e){return e?.querySelector?.(".sf-textarea-hint-text-wrap")||null}function y(e){const t=w(e);return{messageNode:t,errorMessage:"error"===t?.dataset.fieldMessage&&t.textContent?.trim()||""}}function v(e){if(!e||"string"!=typeof e)return null;const t=e.trim();if(!t)return null;try{const e=JSON.parse(t);return e&&"object"==typeof e?e:null}catch{return null}}async function S(e,t){const r=function(e,t){if(!b(t.dataset.mask??e.dataset.mask,!1))return null;const r=v(t.dataset.maskOptions),a=v(e.dataset.maskOptions);if(r)return r;if(a)return a;const n=t.dataset.maskPattern??e.dataset.maskPattern;return n?{mask:String(n)}:null}(e,t);if(!r)return;const a={};e.__sfTextareaMaskRequest=a;try{const n=await function(){const e=()=>window.SF?.Mask?.create?window.SF.Mask:null,t=e();return t?Promise.resolve(t):u||(u=new Promise(t=>{const r=[[window,"sf-mask-ready"],[window,"sf-loader-ready"],[window,"load"],[document,"DOMContentLoaded"]],a=()=>{const n=e();n&&(r.forEach(([e,t])=>e.removeEventListener(t,a)),u=null,t(n))};r.forEach(([e,t])=>e.addEventListener(t,a))}),u)}();if(e.__sfTextareaMaskRequest!==a)return;const s=await n.create(t,r);if(!s)return;if("1"!==e.dataset[f]||e.__sfTextareaMaskRequest!==a||x(e)!==t)return void n.destroy(s);e.__sfTextareaMask=s}catch(e){console.warn("SF.Textarea mask init failed",e)}}function _(e){if((0,i.vl)(e,"sf-textarea"),!e||"1"===e.dataset[f])return;const t=x(e);if(!t)return;const r=()=>{},a=()=>e.classList.add("sf-textarea--pointer-focus"),n=()=>e.classList.remove("sf-textarea--pointer-focus");t.addEventListener("input",r),t.addEventListener("pointerdown",a),t.addEventListener("blur",n),e.__sfTextareaNoopHandler=r,e.__sfTextareaPointerFocusHandler=a,e.__sfTextareaBlurHandler=n,e.dataset[f]="1";const s=y(e);(0,o.U)(e,t,{prefix:"sf-textarea",labelNode:e.querySelector(".sf-textarea-text"),required:t.required||Boolean(e.querySelector(".sf-textarea-required")),invalid:e.classList.contains("error")||t.classList.contains("error"),...s}),e.__sfTextareaReleaseReset=function(e,t){const r=e.ownerDocument;d.has(r)||(r.addEventListener("reset",e=>{const t=e.target;if("FORM"!==t?.tagName)return;const r=Array.from(t.elements);setTimeout(()=>{if(!e.defaultPrevented)for(const e of r)if(e.isConnected&&e.form===t)for(const t of l.get(e)||[])t()},0)},!0),d.add(r));let a=l.get(e);return a||l.set(e,a=new Set),a.add(t),()=>a.delete(t)}(t,()=>{e.__sfTextareaMask&&(e.__sfTextareaMask.value=t.value)}),S(e,t)}function k(e){if(!e||"1"!==e.dataset[f])return;delete e.__sfTextareaMaskRequest;const t=x(e);t&&e.__sfTextareaNoopHandler&&t.removeEventListener("input",e.__sfTextareaNoopHandler),t&&e.__sfTextareaPointerFocusHandler&&t.removeEventListener("pointerdown",e.__sfTextareaPointerFocusHandler),t&&e.__sfTextareaBlurHandler&&t.removeEventListener("blur",e.__sfTextareaBlurHandler),e.__sfTextareaMask&&window.SF?.Mask?.destroy?.(e.__sfTextareaMask),e.__sfTextareaReleaseReset?.(),delete e.__sfTextareaReleaseReset,delete e.__sfTextareaMask,delete e.__sfTextareaNoopHandler,delete e.__sfTextareaPointerFocusHandler,delete e.__sfTextareaBlurHandler,e.classList.remove("sf-textarea--pointer-focus"),delete e.dataset[f]}function $(e=document){e.querySelectorAll(c).forEach(_)}function L(e,t={}){const r=e instanceof HTMLElement?e.closest(c)||e:null;if(!r)return!1;const a=x(r);if(!a)return!1;if(Object.prototype.hasOwnProperty.call(t,"disabled")&&(a.disabled=b(t.disabled)),Object.prototype.hasOwnProperty.call(t,"error")){const e=b(t.error);r.classList.toggle("error",e),a.classList.toggle("error",e)}if(Object.prototype.hasOwnProperty.call(t,"invalid")){const e=b(t.invalid);r.classList.toggle("error",e),a.classList.toggle("error",e)}if(Object.prototype.hasOwnProperty.call(t,"errorMessage")){const e=String(t.errorMessage??""),n=e?function(e){const t=w(e);if(t)return t;const r=document.createElement("span");return r.classList.add("sf-textarea-hint-text-wrap"),e.append(r),r}(r):w(r);if(n){n.textContent=e;const t=r.classList.contains("error")||a.classList.contains("error");n.dataset.fieldMessage=e&&t?"error":"hint"}}return Object.prototype.hasOwnProperty.call(t,"value")&&(a.value=String(t.value??""),a.dispatchEvent(new Event("input",{bubbles:!0}))),(0,o.U)(r,a,{prefix:"sf-textarea",labelNode:r.querySelector(".sf-textarea-text"),required:a.required||Boolean(r.querySelector(".sf-textarea-required")),invalid:r.classList.contains("error")||a.classList.contains("error"),...y(r)}),!0}class T extends a{static componentName="Textarea";html=null;constructor(e){super(e);const{size:t="1",type:r="bordered",label:a="",required:n=!1,placeholder:s="",autocomplete:o="",inputMode:l="",minLength:d="",maxLength:u="",spellcheck:c=!0,wrap:f="soft",hint:x="",value:w="",name:y="",rows:v=3,disabled:S=!1,readonly:_=!1,error:k=!1,invalid:$=!1,errorMessage:L="",mask:T=!1,maskOptions:M,maskPattern:E}=this.params||{},A=this.attrs.class||this.attrs.className,N=(0,i.id)(t,"sf-textarea"),q=function(e,t,r){const a=String(e||r);return t.has(a)?a:r}(r,p,"bordered");this.template=document.createElement("label"),this.id&&(this.template.id=this.id),this.template.classList.add("sf-textarea",`sf-textarea--size-${N}`,`sf-textarea--${q}`),this.template.classList.toggle("error",b($||k,!1)),A&&this.template.classList.add(...`${A}`.split(" ").filter(Boolean));const O=document.createElement("span");O.classList.add("sf-textarea-label");const F=document.createElement("span");if(F.classList.add("sf-textarea-text"),F.textContent=String(a),O.append(F),b(n,!0)){const e=document.createElement("span");e.classList.add("sf-textarea-required"),e.textContent="*",O.append(e)}const C=document.createElement("textarea");C.placeholder=String(s??""),o&&(C.autocomplete=String(o)),C.inputMode=function(e){const t=String(e||"").toLowerCase();return m.has(t)?t:""}(l);const P=g(d),B=g(u);null!==P&&(C.minLength=P),null!==B&&(C.maxLength=B),C.spellcheck=b(c,!0),C.wrap=function(e){const t=String(e||"soft").toLowerCase();return h.has(t)?t:"soft"}(f),C.value=String(w??""),C.defaultValue=String(w??""),C.rows=Number(v)>0?Number(v):3,y&&(C.name=String(y)),C.disabled=b(S,!1),C.readOnly=b(_,!1),C.required=b(n,!0),C.classList.toggle("error",b($||k,!1)),C.dataset.mask=String(Boolean(T)),E&&(C.dataset.maskPattern=String(E)),M&&"object"==typeof M&&(C.dataset.maskOptions=JSON.stringify(M)),this.template.append(O,C);const j=b($||k,!1)&&L?L:x;if(j){const e=document.createElement("span");e.classList.add("sf-textarea-hint-text-wrap"),e.textContent=String(j),e.dataset.fieldMessage=b($||k,!1)&&L?"error":"hint",this.template.append(e)}this.applyLayoutUtilities(this.template,".sf-textarea"),this.applyLayoutUtilities(O,".sf-textarea .sf-textarea-label"),this.applyLayoutUtilities(C,".sf-textarea textarea")}init(){_(this.template)}destroyInternal(){k(this.template)}}T.utilityMap=s,n("Textarea",T),"undefined"!=typeof window&&(window.SF=window.SF||{},window.SF.Textarea=window.SF.Textarea||{},window.SF.Textarea.setState=L),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>$()):$();new MutationObserver(e=>{e.forEach(e=>{e.addedNodes.forEach(e=>{e instanceof Element&&(e.matches?.(c)&&_(e),$(e))})})}).observe(document.documentElement,{childList:!0,subtree:!0})},c6ddd1585553(e,t,r){r.a(e,async(e,t)=>{try{var a=r("01398f3e8009"),n=r("fbe0570fcc69"),s=r("98e26702f55a"),o=r("943b9fa4bc95"),i=e([n,o]);[n,o]=i.then?(await i)():i;var l=r.n(n);new Set(["bordered","filled"]);const d=new Set(["","none","text","tel","url","email","numeric","decimal","search"]),u=new Set(["soft","hard"]);function c(e,t,r){const a=String(e||r);return t.has(a)?a:r}class f extends(l()){static get props(){return{size:{default:"1"},appearance:{default:"bordered",values:["bordered","filled"],aliases:["type"]},label:{default:""},required:{type:Boolean,default:!1},placeholder:{default:""},autocomplete:{default:""},inputmode:{default:""},minlength:{type:Number,default:null},maxlength:{type:Number,default:null},spellcheck:{type:Boolean,default:!0},wrap:{default:"soft"},hint:{default:""},value:{default:""},name:{default:""},rows:{type:Number,default:3},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},error:{type:Boolean,default:!1},invalid:{type:Boolean,default:!1},errorMessage:{default:""},mask:{type:Boolean,default:!1},maskPattern:{default:""},maskOptions:{default:""}}}constructor(){super(),this._boundRoot=null}get size(){return(0,s.id)(this.getAttribute("size")||"1","sf-textarea")}get appearance(){return this.getProp("appearance")}get type(){return this.appearance}get label(){return this.getAttribute("label")||""}get required(){return this.getBooleanAttr("required",!1)}get placeholder(){return this.getAttribute("placeholder")||""}get autocomplete(){return this.getAttribute("autocomplete")||""}get inputmode(){return c(this.getAttribute("inputmode"),d,"")}get minlength(){const e=this.getNumberAttr("minlength",null);return Number.isInteger(e)&&e>=0?e:null}get maxlength(){const e=this.getNumberAttr("maxlength",null);return Number.isInteger(e)&&e>=0?e:null}get spellcheck(){return this.getBooleanAttr("spellcheck",!0)}get wrap(){return c(this.getAttribute("wrap"),u,"soft")}get hint(){return this.getAttribute("hint")||""}get value(){const e=this.querySelector(".sf-textarea textarea");return e?e.value:this.getAttribute("value")||""}set value(e){const t=String(e??"");null==e?this.removeAttribute("value"):this.setAttribute("value",t);const r=this.querySelector(".sf-textarea"),a=r?.querySelector("textarea");r?.__sfTextareaMask?r.__sfTextareaMask.value=t:a&&(a.value=t)}get name(){return this.getAttribute("name")||""}get rows(){const e=Math.trunc(this.getNumberAttr("rows",3));return e>0?e:3}get disabled(){return this.getBooleanAttr("disabled",!1)}get readonly(){return this.getBooleanAttr("readonly",!1)}get error(){return this.getBooleanAttr("error",!1)}get invalid(){return this.getBooleanAttr("invalid",!1)}get errorMessage(){return this.getAttribute("error-message")||""}get mask(){return this.getBooleanAttr("mask",!1)}get maskPattern(){return this.getAttribute("mask-pattern")||""}get maskOptions(){return this.getAttribute("mask-options")||""}templateContext(){const e=this.getPropsContext(),t=this.querySelector("textarea");return this.createTemplateContext({...e,value:this.hasAttribute("value")||!t?e.value:t.value,type:this.type,minlength:this.minlength,maxlength:this.maxlength})}onDisconnected(){this._boundRoot&&((0,a.TO)(this._boundRoot),this._boundRoot=null)}afterRender(){this._boundRoot&&((0,a.TO)(this._boundRoot),this._boundRoot=null),this._boundRoot=this.querySelector(".sf-textarea"),this._boundRoot&&(0,a.sd)(this._boundRoot)}template(){return(0,o.F)(this.templateContext())}get state(){const e=this.querySelector(".sf-textarea"),t=e?.querySelector?.("textarea")||null;return{value:t?.value||"",disabled:!!t?.disabled,invalid:"true"===t?.getAttribute("aria-invalid"),error:e?.classList?.contains("error")||t?.classList?.contains("error")||!1}}setState(e={}){const t=this.querySelector(".sf-textarea");return(0,a.aJ)(t,e)}}f.define("sf-textarea"),t()}catch(p){t(p)}})},"943b9fa4bc95"(e,t,r){r.a(e,async(e,a)=>{try{r.d(t,{F:()=>l});var n=r("ddf1cdb42ecc"),s=r("e138a730fd7c"),o=e([n]),i=o.then?(await o)():o;n=i[0];function l(e){const{size:t,appearance:r,type:a,label:o,required:i,placeholder:l,autocomplete:d,inputmode:u,minlength:c,maxlength:f,spellcheck:p,wrap:m,hint:h,value:g,name:b,rows:x,disabled:w,readonly:y,error:v,invalid:S,errorMessage:_,mask:k,maskPattern:$,maskOptions:L}=e,T=(0,s.h)(e.component,{prefix:"sf-textarea",required:i,invalid:S||v,hint:h,errorMessage:_}),M=e.component?.hasSlotContent?.("error")?e.component.getSlotContent("error"):_,E=e.component?.hasSlotContent?.("hint")?e.component.getSlotContent("hint"):h,A=T.invalid&&M?M:E,N=["sf-textarea",`sf-textarea--size-${t}`,`sf-textarea--${r??a}`,T.invalid?"error":"","flex","flex-col",e.rootClass].filter(Boolean),q=o?n.html`
|
|
1
|
+
(()=>{"use strict";var e={e138a730fd7c(e,t,r){r.d(t,{U:()=>o,h:()=>s});let a=0;const n=new WeakMap;function s(e,{prefix:t="sf-field",required:r=!1,invalid:s=!1,hint:o="",errorMessage:i=""}={}){const l=function(e,t){if(e&&n.has(e))return n.get(e);const r=(e?.id?String(e.id).trim():"")||`${t}-${++a}`,s={controlId:`${r}-control`,messageId:`${r}-message`};return!e||"object"!=typeof e&&"function"!=typeof e||n.set(e,s),s}(e,t),u=Boolean(s),d=u&&i?i:o;return{...l,required:Boolean(r),invalid:u,message:d,describedBy:d?l.messageId:"",errorMessageId:u&&i?l.messageId:""}}function o(e,t,{prefix:r="sf-field",required:a=!1,invalid:n=!1,messageNode:o=null,labelNode:i=null,errorMessage:l=""}={}){if(!e||!t)return null;const u=s(e,{prefix:r,required:a,invalid:n,hint:o?.textContent?.trim()||"",errorMessage:l});var d,c;return t.id||(t.id=u.controlId),"LABEL"!==e.tagName||e.hasAttribute("for")||e.setAttribute("for",t.id),!i?.textContent?.trim()||t.hasAttribute("aria-label")||t.hasAttribute("aria-labelledby")||(i.id||(i.id=`${t.id}-label`),t.setAttribute("aria-labelledby",i.id)),t.required=u.required,e.classList.toggle("error",u.invalid),t.classList.toggle("error",u.invalid),u.invalid?t.setAttribute("aria-invalid","true"):t.removeAttribute("aria-invalid"),o&&(o.id||(o.id=u.messageId),t.setAttribute("aria-describedby",(d=t.getAttribute("aria-describedby"),c=[o.id],[...new Set([...String(d||"").split(/\s+/).filter(Boolean),...c.filter(Boolean)])].join(" ")))),u.errorMessageId&&o?t.setAttribute("aria-errormessage",o.id):t.removeAttribute("aria-errormessage"),u}},"98e26702f55a"(e,t,r){function a(){const e=globalThis.SF=globalThis.SF||{};return e.__deprecationNotes instanceof Map||Object.defineProperty(e,"__deprecationNotes",{value:new Map,configurable:!0}),e.__deprecationNotes}function n({component:e="",kind:t="attribute",attribute:r="",from:n,to:s=null}={}){if(!n)return;const o=[e,t,r,n].join("|"),i=a(),l=i.get(o);if(l)l.count+=1;else if(i.set(o,{component:e,kind:t,attribute:r,from:n,to:s,count:1}),function(){const e=globalThis.document?.documentElement;return"warn"===e?.dataset?.sfDeprecations||!0===globalThis.SF?.deprecations?.warn}()){const a=e?`${e}: `:"",o="value"===t?`${r}="${n}"`:`${t} ${n}`;globalThis.console?.warn?.(`[SIMAI Framework] ${a}${o} is a legacy name${s?`; write ${s}`:""}. See contracts/changes/journal.json.`)}}if(r.d(t,{id:()=>l,vl:()=>u}),"undefined"!=typeof globalThis){globalThis.SF=globalThis.SF||{};const e=globalThis.SF.deprecations||{};e.list=function(){return[...a().values()].map(e=>({...e}))},e.clear=function(){a().clear()},e.note=n,globalThis.SF.deprecations=e}const s=Object.freeze(["1/2","1","2"]),o=Object.freeze({"1/3":"1/2",3:"2"}),i=new Set;function l(e,t="field",r="1"){const a=String(e??"").trim().toLowerCase();if(s.includes(a))return a;if(Object.hasOwn(o,a)){const e=o[a];n({component:t,kind:"value",attribute:"size",from:a,to:e});const r=`${t}:${a}`;return i.has(r)||"undefined"==typeof console||(i.add(r),console.warn(`[SIMAI Framework] ${t}: size ${a} is retired for form fields; rendering size ${e}.`)),e}return r}function u(e,t){if(e?.classList)for(const[r,a]of Object.entries(o)){const a=`${t}--size-${r}`;e.classList.contains(a)&&e.classList.replace(a,`${t}--size-${l(r,t)}`)}}},"01398f3e8009"(e,t,r){r.d(t,{sd:()=>$,aJ:()=>A,TO:()=>M});class a{lifecycleName(){return this.componentName??this.constructor.componentName}constructor(e){this.props=e,this.id=e?.id,this.params=e?.param,this.attrs=e?.attrs||{},this.template=null,window.dispatchEvent(new CustomEvent(`${this.lifecycleName()}:beforeRender`,{detail:this}))}getUtilityMap(){return this.constructor.utilityMap||null}extractUtilityClasses(e){if(!Array.isArray(e))return[];const t=new Set;return e.forEach(e=>{if("string"!=typeof e)return;const r=e.match(/\(([^)]+)\)/g);r&&r.forEach(e=>{e.slice(1,-1).split(/\s+/).filter(Boolean).forEach(e=>{e.startsWith(".")&&e.length>1&&t.add(e.slice(1))})})}),Array.from(t)}applyLayoutUtilities(e,t){if(!e||!t)return;const r=this.getUtilityMap();if(!r||!r[t])return;this.extractUtilityClasses(r[t]).forEach(t=>e.classList.add(t))}render(){return this.html=this.template,"function"==typeof this.init&&this.init(),this.html&&window.dispatchEvent(new CustomEvent(`${this.lifecycleName()}:render`,{detail:this})),this.html}destroy(){this.destroyInternal?.(),this.props=null,this.id=null,this.params=null,this.template=null,this.html&&(this.html.remove(),this.html=null),window.dispatchEvent(new CustomEvent(`${this.lifecycleName()}:destroy`,{detail:this}))}destroyInternal(){}}const n=function(e,t){if(e&&t)if("undefined"==typeof window||"function"!=typeof window.registerSfComponent){if("undefined"!=typeof window&&window.SF?.Loader?.registerComponent)window.SF.Loader.registerComponent(e,t);else if("undefined"!=typeof window){(window.SF_PENDING_COMPONENTS=window.SF_PENDING_COMPONENTS||[]).push([e,t])}}else window.registerSfComponent(e,t)},s=JSON.parse('{".sf-textarea":["display/flex (.flex)","flex-direction/column (.flex-col)","flex-wrap/nowrap (.flex-nowrap)","gap/var(--sf-space-1\\\\/4)","justify-content/flex-start (.justify-start)"],".sf-textarea .sf-textarea-label":["display/flex (.flex)","flex-direction/row (.flex-row)","flex-wrap/nowrap (.flex-nowrap)","gap/var(--sf-space-1\\\\/4)","justify-content/flex-start (.justify-start)","align-items/flex-start (.items-start)"],".sf-textarea textarea":[],".sf-textarea .sf-textarea-hint-text-wrap":["flex/1 (.flex-1)","display/flex (.flex)","flex-direction/row (.flex-row)","flex-wrap/nowrap (.flex-nowrap)","gap/var(--sf-b0)","justify-content/flex-start (.justify-start)","align-items/center (.items-center)"]}');var o=r("e138a730fd7c"),i=r("98e26702f55a");const l=new WeakMap,u=new WeakSet;let d=null;const c="label.sf-textarea",f="sfTextareaBound",m=new Set(["bordered","filled","flush"]),p=new Set(["","none","text","tel","url","email","numeric","decimal","search"]),h=new Set(["soft","hard"]);function g(e){if(""===e||null==e)return null;const t=Number(e);return Number.isInteger(t)&&t>=0?t:null}function x(e,t=!1){return null==e||""===e?t:"boolean"==typeof e?e:["1","true","yes","on"].includes(String(e).toLowerCase())}function b(e){return e?.querySelector?.("textarea")||null}function w(e){return e?.querySelector?.(".sf-textarea-hint-text-wrap")||null}function y(e){const t=w(e);return{messageNode:t,errorMessage:"error"===t?.dataset.fieldMessage&&t.textContent?.trim()||""}}function v(e){if(!e||"string"!=typeof e)return null;const t=e.trim();if(!t)return null;try{const e=JSON.parse(t);return e&&"object"==typeof e?e:null}catch{return null}}const S="sf-textarea--auto-grow";function _(e){if(""===e||null==e)return null;const t=Math.trunc(Number(e));return Number.isFinite(t)&&t>0?t:null}function k(e,t){var r,a;if(!(r=t.dataset.autoGrow??e.dataset.autoGrow,a=e.classList.contains(S),null==r?a:""===r||x(r,a)))return null;const n=_(t.dataset.minRows??e.dataset.minRows)??1,s=_(t.dataset.maxRows??e.dataset.maxRows);return{minRows:n,maxRows:null===s?null:Math.max(s,n)}}function L(e,t){const r=k(e,t);if(!r)return;const a=!e.classList.contains(S);e.classList.add(S),t.rows=r.minRows,t.style.setProperty("--sf-textarea--min-rows",String(r.minRows)),null===r.maxRows?t.style.removeProperty("--sf-textarea--max-rows"):t.style.setProperty("--sf-textarea--max-rows",String(r.maxRows));const n={addedClass:a,fallback:null};if(e.__sfTextareaAutoGrow=n,"undefined"!=typeof CSS&&!0===CSS.supports?.("field-sizing","content"))return;let s=!1,o=-1;const i=()=>{s||function(e,t){if(!t.isConnected||0===t.clientWidth)return;const r=e.style.minBlockSize;e.style.minBlockSize=`${e.getBoundingClientRect().height}px`;const{scrollTop:a}=t;t.style.blockSize="auto";const n=getComputedStyle(t),s=(parseFloat(n.borderTopWidth)||0)+(parseFloat(n.borderBottomWidth)||0);t.style.blockSize=`${t.scrollHeight+s}px`,t.scrollTop!==a&&(t.scrollTop=a),e.style.minBlockSize=r}(e,t)},l=e=>{e.isComposing||i()},u=()=>{s=!0},d=()=>{s=!1,i()};t.addEventListener("input",l),t.addEventListener("compositionstart",u),t.addEventListener("compositionend",d);const c=Object.getOwnPropertyDescriptor(HTMLTextAreaElement.prototype,"value");Object.defineProperty(t,"value",{configurable:!0,enumerable:!0,get(){return c.get.call(this)},set(e){c.set.call(this,e),i()}});const f="undefined"==typeof ResizeObserver?null:new ResizeObserver(e=>{const t=Math.round(e[e.length-1].contentRect.width);t!==o&&(o=t,i())});f?.observe(t),i(),n.fallback={grow:i,onInput:l,onCompositionStart:u,onCompositionEnd:d,observer:f}}async function T(e,t){const r=function(e,t){if(!x(t.dataset.mask??e.dataset.mask,!1))return null;const r=v(t.dataset.maskOptions),a=v(e.dataset.maskOptions);if(r)return r;if(a)return a;const n=t.dataset.maskPattern??e.dataset.maskPattern;return n?{mask:String(n)}:null}(e,t);if(!r)return;const a={};e.__sfTextareaMaskRequest=a;try{const n=await function(){const e=()=>window.SF?.Mask?.create?window.SF.Mask:null,t=e();return t?Promise.resolve(t):d||(d=new Promise(t=>{const r=[[window,"sf-mask-ready"],[window,"sf-loader-ready"],[window,"load"],[document,"DOMContentLoaded"]],a=()=>{const n=e();n&&(r.forEach(([e,t])=>e.removeEventListener(t,a)),d=null,t(n))};r.forEach(([e,t])=>e.addEventListener(t,a))}),d)}();if(e.__sfTextareaMaskRequest!==a)return;const s=await n.create(t,r);if(!s)return;if("1"!==e.dataset[f]||e.__sfTextareaMaskRequest!==a||b(e)!==t)return void n.destroy(s);e.__sfTextareaMask=s}catch(e){console.warn("SF.Textarea mask init failed",e)}}function $(e){if((0,i.vl)(e,"sf-textarea"),!e||"1"===e.dataset[f])return;const t=b(e);if(!t)return;const r=()=>{},a=()=>e.classList.add("sf-textarea--pointer-focus"),n=()=>e.classList.remove("sf-textarea--pointer-focus");t.addEventListener("input",r),t.addEventListener("pointerdown",a),t.addEventListener("blur",n),e.__sfTextareaNoopHandler=r,e.__sfTextareaPointerFocusHandler=a,e.__sfTextareaBlurHandler=n,e.dataset[f]="1";const s=y(e);(0,o.U)(e,t,{prefix:"sf-textarea",labelNode:e.querySelector(".sf-textarea-text"),required:t.required||Boolean(e.querySelector(".sf-textarea-required")),invalid:e.classList.contains("error")||t.classList.contains("error"),...s}),e.__sfTextareaReleaseReset=function(e,t){const r=e.ownerDocument;u.has(r)||(r.addEventListener("reset",e=>{const t=e.target;if("FORM"!==t?.tagName)return;const r=Array.from(t.elements);setTimeout(()=>{if(!e.defaultPrevented)for(const e of r)if(e.isConnected&&e.form===t)for(const t of l.get(e)||[])t()},0)},!0),u.add(r));let a=l.get(e);return a||l.set(e,a=new Set),a.add(t),()=>a.delete(t)}(t,()=>{e.__sfTextareaMask&&(e.__sfTextareaMask.value=t.value),e.__sfTextareaAutoGrow?.fallback?.grow()}),L(e,t),T(e,t)}function M(e){if(!e||"1"!==e.dataset[f])return;delete e.__sfTextareaMaskRequest;const t=b(e);t&&e.__sfTextareaNoopHandler&&t.removeEventListener("input",e.__sfTextareaNoopHandler),t&&e.__sfTextareaPointerFocusHandler&&t.removeEventListener("pointerdown",e.__sfTextareaPointerFocusHandler),t&&e.__sfTextareaBlurHandler&&t.removeEventListener("blur",e.__sfTextareaBlurHandler),function(e,t){const r=e.__sfTextareaAutoGrow;if(!r)return;if(delete e.__sfTextareaAutoGrow,r.addedClass&&e.classList.remove(S),!t)return;t.style.removeProperty("--sf-textarea--min-rows"),t.style.removeProperty("--sf-textarea--max-rows");const{fallback:a}=r;a&&(t.removeEventListener("input",a.onInput),t.removeEventListener("compositionstart",a.onCompositionStart),t.removeEventListener("compositionend",a.onCompositionEnd),a.observer?.disconnect(),delete t.value,t.style.removeProperty("block-size"))}(e,t),e.__sfTextareaMask&&window.SF?.Mask?.destroy?.(e.__sfTextareaMask),e.__sfTextareaReleaseReset?.(),delete e.__sfTextareaReleaseReset,delete e.__sfTextareaMask,delete e.__sfTextareaNoopHandler,delete e.__sfTextareaPointerFocusHandler,delete e.__sfTextareaBlurHandler,e.classList.remove("sf-textarea--pointer-focus"),delete e.dataset[f]}function E(e=document){e.querySelectorAll(c).forEach($)}function A(e,t={}){const r=e instanceof HTMLElement?e.closest(c)||e:null;if(!r)return!1;const a=b(r);if(!a)return!1;if(Object.prototype.hasOwnProperty.call(t,"disabled")&&(a.disabled=x(t.disabled)),Object.prototype.hasOwnProperty.call(t,"error")){const e=x(t.error);r.classList.toggle("error",e),a.classList.toggle("error",e)}if(Object.prototype.hasOwnProperty.call(t,"invalid")){const e=x(t.invalid);r.classList.toggle("error",e),a.classList.toggle("error",e)}if(Object.prototype.hasOwnProperty.call(t,"errorMessage")){const e=String(t.errorMessage??""),n=e?function(e){const t=w(e);if(t)return t;const r=document.createElement("span");return r.classList.add("sf-textarea-hint-text-wrap"),e.append(r),r}(r):w(r);if(n){n.textContent=e;const t=r.classList.contains("error")||a.classList.contains("error");n.dataset.fieldMessage=e&&t?"error":"hint"}}return Object.prototype.hasOwnProperty.call(t,"value")&&(a.value=String(t.value??""),a.dispatchEvent(new Event("input",{bubbles:!0}))),(0,o.U)(r,a,{prefix:"sf-textarea",labelNode:r.querySelector(".sf-textarea-text"),required:a.required||Boolean(r.querySelector(".sf-textarea-required")),invalid:r.classList.contains("error")||a.classList.contains("error"),...y(r)}),!0}class R extends a{static componentName="Textarea";html=null;constructor(e){super(e);const{size:t="1",type:r="bordered",label:a="",required:n=!1,placeholder:s="",autocomplete:o="",inputMode:l="",minLength:u="",maxLength:d="",spellcheck:c=!0,wrap:f="soft",hint:b="",value:w="",name:y="",rows:v=3,disabled:S=!1,readonly:k=!1,error:L=!1,invalid:T=!1,errorMessage:$="",mask:M=!1,maskOptions:E,maskPattern:A,autoGrow:R=!1,minRows:N,maxRows:O}=this.params||{},C=this.attrs.class||this.attrs.className,q=(0,i.id)(t,"sf-textarea"),P=function(e,t,r){const a=String(e||r);return t.has(a)?a:r}(r,m,"bordered");this.template=document.createElement("label"),this.id&&(this.template.id=this.id),this.template.classList.add("sf-textarea",`sf-textarea--size-${q}`,`sf-textarea--${P}`),this.template.classList.toggle("error",x(T||L,!1)),C&&this.template.classList.add(...`${C}`.split(" ").filter(Boolean));const F=document.createElement("span");F.classList.add("sf-textarea-label");const B=document.createElement("span");if(B.classList.add("sf-textarea-text"),B.textContent=String(a),F.append(B),x(n,!0)){const e=document.createElement("span");e.classList.add("sf-textarea-required"),e.textContent="*",F.append(e)}const j=document.createElement("textarea");j.placeholder=String(s??""),o&&(j.autocomplete=String(o)),j.inputMode=function(e){const t=String(e||"").toLowerCase();return p.has(t)?t:""}(l);const I=g(u),z=g(d);if(null!==I&&(j.minLength=I),null!==z&&(j.maxLength=z),j.spellcheck=x(c,!0),j.wrap=function(e){const t=String(e||"soft").toLowerCase();return h.has(t)?t:"soft"}(f),j.value=String(w??""),j.defaultValue=String(w??""),j.rows=Number(v)>0?Number(v):3,y&&(j.name=String(y)),j.disabled=x(S,!1),j.readOnly=x(k,!1),j.required=x(n,!0),j.classList.toggle("error",x(T||L,!1)),j.dataset.mask=String(Boolean(M)),A&&(j.dataset.maskPattern=String(A)),E&&"object"==typeof E&&(j.dataset.maskOptions=JSON.stringify(E)),x(R,!1)){j.dataset.autoGrow="true";const e=_(N),t=_(O);null!==e&&(j.dataset.minRows=String(e)),null!==t&&(j.dataset.maxRows=String(t))}this.template.append(F,j);const G=x(T||L,!1)&&$?$:b;if(G){const e=document.createElement("span");e.classList.add("sf-textarea-hint-text-wrap"),e.textContent=String(G),e.dataset.fieldMessage=x(T||L,!1)&&$?"error":"hint",this.template.append(e)}this.applyLayoutUtilities(this.template,".sf-textarea"),this.applyLayoutUtilities(F,".sf-textarea .sf-textarea-label"),this.applyLayoutUtilities(j,".sf-textarea textarea")}init(){$(this.template)}destroyInternal(){M(this.template)}}R.utilityMap=s,n("Textarea",R),"undefined"!=typeof window&&(window.SF=window.SF||{},window.SF.Textarea=window.SF.Textarea||{},window.SF.Textarea.setState=A),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>E()):E();new MutationObserver(e=>{e.forEach(e=>{e.addedNodes.forEach(e=>{e instanceof Element&&(e.matches?.(c)&&$(e),E(e))})})}).observe(document.documentElement,{childList:!0,subtree:!0})},c6ddd1585553(e,t,r){r.a(e,async(e,t)=>{try{var a=r("01398f3e8009"),n=r("fbe0570fcc69"),s=r("98e26702f55a"),o=r("943b9fa4bc95"),i=e([n,o]);[n,o]=i.then?(await i)():i;var l=r.n(n);new Set(["bordered","filled","flush"]);const u=new Set(["","none","text","tel","url","email","numeric","decimal","search"]),d=new Set(["soft","hard"]);function c(e,t,r){const a=String(e||r);return t.has(a)?a:r}class f extends(l()){static get props(){return{size:{default:"1"},appearance:{default:"bordered",values:["bordered","filled","flush"],aliases:["type"]},label:{default:""},required:{type:Boolean,default:!1},placeholder:{default:""},autocomplete:{default:""},inputmode:{default:""},minlength:{type:Number,default:null},maxlength:{type:Number,default:null},spellcheck:{type:Boolean,default:!0},wrap:{default:"soft"},hint:{default:""},value:{default:""},name:{default:""},rows:{type:Number,default:3},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},error:{type:Boolean,default:!1},invalid:{type:Boolean,default:!1},errorMessage:{default:""},mask:{type:Boolean,default:!1},maskPattern:{default:""},maskOptions:{default:""},autoGrow:{type:Boolean,default:!1},minRows:{type:Number,default:1},maxRows:{type:Number,default:null}}}constructor(){super(),this._boundRoot=null}get size(){return(0,s.id)(this.getAttribute("size")||"1","sf-textarea")}get appearance(){return this.getProp("appearance")}get type(){return this.appearance}get label(){return this.getAttribute("label")||""}get required(){return this.getBooleanAttr("required",!1)}get placeholder(){return this.getAttribute("placeholder")||""}get autocomplete(){return this.getAttribute("autocomplete")||""}get inputmode(){return c(this.getAttribute("inputmode"),u,"")}get minlength(){const e=this.getNumberAttr("minlength",null);return Number.isInteger(e)&&e>=0?e:null}get maxlength(){const e=this.getNumberAttr("maxlength",null);return Number.isInteger(e)&&e>=0?e:null}get spellcheck(){return this.getBooleanAttr("spellcheck",!0)}get wrap(){return c(this.getAttribute("wrap"),d,"soft")}get hint(){return this.getAttribute("hint")||""}get value(){const e=this.querySelector(".sf-textarea textarea");return e?e.value:this.getAttribute("value")||""}set value(e){const t=String(e??"");null==e?this.removeAttribute("value"):this.setAttribute("value",t);const r=this.querySelector(".sf-textarea"),a=r?.querySelector("textarea");r?.__sfTextareaMask?r.__sfTextareaMask.value=t:a&&(a.value=t)}get name(){return this.getAttribute("name")||""}get rows(){const e=Math.trunc(this.getNumberAttr("rows",3));return e>0?e:3}get autoGrow(){return this.getBooleanAttr("auto-grow",!1)}get minRows(){const e=Math.trunc(this.getNumberAttr("minRows",1));return e>0?e:1}get maxRows(){const e=Math.trunc(this.getNumberAttr("maxRows",null));return e>0?Math.max(e,this.minRows):null}get disabled(){return this.getBooleanAttr("disabled",!1)}get readonly(){return this.getBooleanAttr("readonly",!1)}get error(){return this.getBooleanAttr("error",!1)}get invalid(){return this.getBooleanAttr("invalid",!1)}get errorMessage(){return this.getAttribute("error-message")||""}get mask(){return this.getBooleanAttr("mask",!1)}get maskPattern(){return this.getAttribute("mask-pattern")||""}get maskOptions(){return this.getAttribute("mask-options")||""}templateContext(){const e=this.getPropsContext(),t=this.querySelector("textarea");return this.createTemplateContext({...e,value:this.hasAttribute("value")||!t?e.value:t.value,type:this.type,minlength:this.minlength,maxlength:this.maxlength,autoGrow:this.autoGrow,minRows:this.minRows,maxRows:this.maxRows})}onDisconnected(){this._boundRoot&&((0,a.TO)(this._boundRoot),this._boundRoot=null)}afterRender(){this._boundRoot&&((0,a.TO)(this._boundRoot),this._boundRoot=null),this._boundRoot=this.querySelector(".sf-textarea"),this._boundRoot&&(0,a.sd)(this._boundRoot)}template(){return(0,o.F)(this.templateContext())}get state(){const e=this.querySelector(".sf-textarea"),t=e?.querySelector?.("textarea")||null;return{value:t?.value||"",disabled:!!t?.disabled,invalid:"true"===t?.getAttribute("aria-invalid"),error:e?.classList?.contains("error")||t?.classList?.contains("error")||!1}}setState(e={}){const t=this.querySelector(".sf-textarea");return(0,a.aJ)(t,e)}}f.define("sf-textarea"),t()}catch(m){t(m)}})},"943b9fa4bc95"(e,t,r){r.a(e,async(e,a)=>{try{r.d(t,{F:()=>l});var n=r("ddf1cdb42ecc"),s=r("e138a730fd7c"),o=e([n]),i=o.then?(await o)():o;n=i[0];function l(e){const{size:t,appearance:r,type:a,label:o,required:i,placeholder:l,autocomplete:u,inputmode:d,minlength:c,maxlength:f,spellcheck:m,wrap:p,hint:h,value:g,name:x,rows:b,disabled:w,readonly:y,error:v,invalid:S,errorMessage:_,mask:k,maskPattern:L,maskOptions:T,autoGrow:$,minRows:M,maxRows:E}=e,A=(0,s.h)(e.component,{prefix:"sf-textarea",required:i,invalid:S||v,hint:h,errorMessage:_}),R=e.component?.hasSlotContent?.("error")?e.component.getSlotContent("error"):_,N=e.component?.hasSlotContent?.("hint")?e.component.getSlotContent("hint"):h,O=A.invalid&&R?R:N,C=["sf-textarea",`sf-textarea--size-${t}`,`sf-textarea--${r??a}`,A.invalid?"error":"",$?"sf-textarea--auto-grow":"","flex","flex-col",e.rootClass].filter(Boolean),q=o?n.html`
|
|
2
2
|
<span class="sf-textarea-text">${o}</span>
|
|
3
3
|
${i?n.html`<span class="sf-textarea-required">*</span>`:""}
|
|
4
4
|
`:"";return n.html`
|
|
5
5
|
<label
|
|
6
|
-
class=${
|
|
6
|
+
class=${C.join(" ")}
|
|
7
7
|
style=${e.rootStyle||n.nothing}
|
|
8
8
|
data-mask=${String(k)}
|
|
9
|
-
data-mask-pattern=${
|
|
10
|
-
data-mask-options=${
|
|
9
|
+
data-mask-pattern=${L||""}
|
|
10
|
+
data-mask-options=${T||""}
|
|
11
11
|
>
|
|
12
12
|
${q?n.html`
|
|
13
13
|
<span class="sf-textarea-label flex">
|
|
@@ -16,34 +16,37 @@
|
|
|
16
16
|
`:""}
|
|
17
17
|
|
|
18
18
|
<textarea
|
|
19
|
-
id=${
|
|
20
|
-
class=${"transition"+(
|
|
19
|
+
id=${A.controlId}
|
|
20
|
+
class=${"transition"+(A.invalid?" error":"")}
|
|
21
21
|
placeholder=${l}
|
|
22
|
-
autocomplete=${
|
|
23
|
-
inputmode=${
|
|
22
|
+
autocomplete=${u||n.nothing}
|
|
23
|
+
inputmode=${d||n.nothing}
|
|
24
24
|
minlength=${c??n.nothing}
|
|
25
25
|
maxlength=${f??n.nothing}
|
|
26
|
-
.spellcheck=${
|
|
27
|
-
wrap=${
|
|
26
|
+
.spellcheck=${m}
|
|
27
|
+
wrap=${p}
|
|
28
28
|
.value=${g}
|
|
29
29
|
.defaultValue=${g}
|
|
30
|
-
name=${
|
|
31
|
-
rows=${
|
|
30
|
+
name=${x||""}
|
|
31
|
+
rows=${$?M:b}
|
|
32
32
|
?disabled=${w}
|
|
33
33
|
?readonly=${y}
|
|
34
|
-
?required=${
|
|
35
|
-
aria-invalid=${
|
|
36
|
-
aria-describedby=${A
|
|
37
|
-
aria-errormessage=${
|
|
34
|
+
?required=${A.required}
|
|
35
|
+
aria-invalid=${A.invalid?"true":n.nothing}
|
|
36
|
+
aria-describedby=${O?A.messageId:n.nothing}
|
|
37
|
+
aria-errormessage=${A.invalid&&R?A.messageId:n.nothing}
|
|
38
38
|
data-mask=${String(k)}
|
|
39
|
-
data-mask-pattern=${
|
|
40
|
-
data-mask-options=${
|
|
39
|
+
data-mask-pattern=${L||""}
|
|
40
|
+
data-mask-options=${T||""}
|
|
41
|
+
data-auto-grow=${$?"true":n.nothing}
|
|
42
|
+
data-min-rows=${$?M:n.nothing}
|
|
43
|
+
data-max-rows=${$&&E?E:n.nothing}
|
|
41
44
|
></textarea>
|
|
42
45
|
|
|
43
|
-
${
|
|
44
|
-
id=${
|
|
46
|
+
${O?n.html`<span
|
|
47
|
+
id=${A.messageId}
|
|
45
48
|
class="sf-textarea-hint-text-wrap"
|
|
46
|
-
data-field-message=${
|
|
47
|
-
>${
|
|
49
|
+
data-field-message=${A.invalid&&R?"error":"hint"}
|
|
50
|
+
>${O}</span>`:""}
|
|
48
51
|
</label>
|
|
49
|
-
`}a()}catch(
|
|
52
|
+
`}a()}catch(u){a(u)}})},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}))},fbe0570fcc69(e){e.exports=globalThis.SF&&globalThis.SF.runtimeModule?globalThis.SF.runtimeModule("smart-base"):new Promise(e=>globalThis.addEventListener("sf-runtime-ready",()=>e(globalThis.SF.runtimeModule("smart-base")),{once:!0}))}};const t={};function r(a){const n=t[a];if(void 0!==n)return n.exports;const s=t[a]={exports:{}};return e[a](s,s.exports,r),s.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__",s=e=>{e?.d<1&&(e.d=1,e.forEach(e=>e.r--),e.forEach(e=>e.r--?e.r++:e()))};r.a=(e,r,o)=>{let i;o&&((i=[]).d=-1);const l=new Set,u=e.exports;let d,c,f;const m=new Promise((e,t)=>{f=t,c=e});m[a]=u,m[t]=e=>(i&&e(i),l.forEach(e),m.catch(e=>{})),e.exports=m;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=>{o[a]=e,s(r)},e=>{o[n]=e,s(r)});const o={};return o[t]=e=>e(r),o}}const r={};return r[t]=e=>{},r[a]=e,r}))(e);const o=()=>d.map(e=>{if(e[n])throw e[n];return e[a]}),u=new Promise(e=>{r=()=>e(o),r.r=0;const a=e=>e!==i&&!l.has(e)&&(l.add(e),e&&!e.d&&(r.r++,e.push(r)));d.map(e=>e[t](a))});return r.r?u:o()},e=>(e?f(m[n]=e):c(u),s(i))),i?.d<0&&(i.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++],s=t[a++];r.o(e,n)?0===s&&a++:0===s?Object.defineProperty(e,n,{enumerable:!0,value:t[a++]}):Object.defineProperty(e,n,{enumerable:!0,get:s})}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("c6ddd1585553")})();
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema_version": 2,
|
|
3
3
|
"id": "smart.textarea",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.3.0",
|
|
5
5
|
"title": "Textarea",
|
|
6
6
|
"summary": "A native multiline form control with Framework presentation, validation messaging and safe vertical resizing.",
|
|
7
7
|
"kind": "smart",
|
|
@@ -47,9 +47,10 @@
|
|
|
47
47
|
"default": "bordered",
|
|
48
48
|
"enum": [
|
|
49
49
|
"bordered",
|
|
50
|
-
"filled"
|
|
50
|
+
"filled",
|
|
51
|
+
"flush"
|
|
51
52
|
],
|
|
52
|
-
"description": "How the field looks: a bordered box or a
|
|
53
|
+
"description": "How the field looks: a bordered box, a filled one, or flush -- no box of its own, inside a composite control that draws the box and the focus."
|
|
53
54
|
},
|
|
54
55
|
"label": {
|
|
55
56
|
"type": "string",
|
|
@@ -118,6 +119,21 @@
|
|
|
118
119
|
"type": "number",
|
|
119
120
|
"default": 3
|
|
120
121
|
},
|
|
122
|
+
"auto-grow": {
|
|
123
|
+
"type": "boolean",
|
|
124
|
+
"default": false,
|
|
125
|
+
"description": "The field follows its text between min-rows and max-rows and scrolls inside past max-rows. CSS field-sizing where supported, a script fallback elsewhere; rows is then ignored."
|
|
126
|
+
},
|
|
127
|
+
"min-rows": {
|
|
128
|
+
"type": "number",
|
|
129
|
+
"default": 1,
|
|
130
|
+
"description": "With auto-grow: the fewest rows the field shows. One row is the height of an input of the same size."
|
|
131
|
+
},
|
|
132
|
+
"max-rows": {
|
|
133
|
+
"type": "number",
|
|
134
|
+
"default": null,
|
|
135
|
+
"description": "With auto-grow: the most rows before the field scrolls inside. Unset means no cap; a value below min-rows is min-rows."
|
|
136
|
+
},
|
|
121
137
|
"disabled": {
|
|
122
138
|
"type": "boolean",
|
|
123
139
|
"default": false
|
|
@@ -156,7 +172,8 @@
|
|
|
156
172
|
"description": "Legacy name for appearance, still honoured. See contracts/public-api-axes.json.",
|
|
157
173
|
"enum": [
|
|
158
174
|
"bordered",
|
|
159
|
-
"filled"
|
|
175
|
+
"filled",
|
|
176
|
+
"flush"
|
|
160
177
|
]
|
|
161
178
|
}
|
|
162
179
|
},
|
|
@@ -179,6 +196,9 @@
|
|
|
179
196
|
"resize_default": {
|
|
180
197
|
"const": "vertical"
|
|
181
198
|
},
|
|
199
|
+
"auto_grow": {
|
|
200
|
+
"const": "field_sizing_content_with_script_fallback"
|
|
201
|
+
},
|
|
182
202
|
"mask_owner": {
|
|
183
203
|
"const": "optional_sf_mask_adapter"
|
|
184
204
|
},
|
|
@@ -326,7 +346,7 @@
|
|
|
326
346
|
"source_artifacts": [
|
|
327
347
|
{
|
|
328
348
|
"path": "src/smart/textarea/index.js",
|
|
329
|
-
"sha256": "
|
|
349
|
+
"sha256": "aff702ba06b47bef148c3c528b84c632a5a6e248b0b4bebdd746d8300c8bb2cd"
|
|
330
350
|
}
|
|
331
351
|
],
|
|
332
352
|
"generated_runtime": [
|
|
@@ -343,6 +363,7 @@
|
|
|
343
363
|
"do_not": [
|
|
344
364
|
"Do not use Textarea for short single-line values, rich text or code editing",
|
|
345
365
|
"Do not enable horizontal resizing inside responsive layouts without an explicit layout decision",
|
|
366
|
+
"Do not put Enter-to-send into the textarea: in a form Enter is a newline; a chat composer handles it itself",
|
|
346
367
|
"Do not copy generated ui-smart code",
|
|
347
368
|
"Do not move host data or access decisions into the component"
|
|
348
369
|
],
|
|
@@ -27,6 +27,9 @@ export function renderTextareaTemplate(context) {
|
|
|
27
27
|
mask,
|
|
28
28
|
maskPattern,
|
|
29
29
|
maskOptions,
|
|
30
|
+
autoGrow,
|
|
31
|
+
minRows,
|
|
32
|
+
maxRows,
|
|
30
33
|
} = context;
|
|
31
34
|
const field = createFieldContract(context.component, {
|
|
32
35
|
prefix: 'sf-textarea',
|
|
@@ -50,6 +53,7 @@ export function renderTextareaTemplate(context) {
|
|
|
50
53
|
`sf-textarea--size-${size}`,
|
|
51
54
|
`sf-textarea--${appearance ?? type}`,
|
|
52
55
|
field.invalid ? 'error' : '',
|
|
56
|
+
autoGrow ? 'sf-textarea--auto-grow' : '',
|
|
53
57
|
'flex',
|
|
54
58
|
'flex-col',
|
|
55
59
|
context.rootClass,
|
|
@@ -92,7 +96,7 @@ export function renderTextareaTemplate(context) {
|
|
|
92
96
|
.value=${value}
|
|
93
97
|
.defaultValue=${value}
|
|
94
98
|
name=${name || ''}
|
|
95
|
-
rows=${rows}
|
|
99
|
+
rows=${autoGrow ? minRows : rows}
|
|
96
100
|
?disabled=${disabled}
|
|
97
101
|
?readonly=${readonly}
|
|
98
102
|
?required=${field.required}
|
|
@@ -102,6 +106,9 @@ export function renderTextareaTemplate(context) {
|
|
|
102
106
|
data-mask=${String(mask)}
|
|
103
107
|
data-mask-pattern=${maskPattern || ''}
|
|
104
108
|
data-mask-options=${maskOptions || ''}
|
|
109
|
+
data-auto-grow=${autoGrow ? 'true' : nothing}
|
|
110
|
+
data-min-rows=${autoGrow ? minRows : nothing}
|
|
111
|
+
data-max-rows=${autoGrow && maxRows ? maxRows : nothing}
|
|
105
112
|
></textarea>
|
|
106
113
|
|
|
107
114
|
${messageContent
|