1/*! All material copyright ESRI, All Rights Reserved, unless otherwise specified. 2See https://github.com/Esri/calcite-design-system/blob/dev/LICENSE.md for details. 3v3.0.3 */ 4import{a as q}from"./SUCAF23Q.js";import{k as n}from"./DWSKOILM.js";import{a as j}from"./AS3OWJAM.js";import{c as I,e as M,h as W}from"./OEWDESOU.js";import{c as O,d as S,e as T}from"./7XDJ54GY.js";import{a as k,b as A}from"./6NJ2XB5D.js";import{d as H}from"./SYD5OQF5.js";import"./DFFLO6RQ.js";import{a as L}from"./MOOKY73S.js";import{a as C}from"./HHWADIGN.js";import{a as $,b as m}from"./SZONZQBZ.js";import{u as g}from"./SXYTJEOC.js";import{a as p,b as E}from"./H6E5FODU.js";import{a as w}from"./B4YIOD3M.js";import{B as y,J as z,c as f,e as u,f as l,u as v,v as d,w as b,x as i,z as r}from"./74XIV7EB.js";var a={assistiveText:"assistive-text",characterLimit:"character-limit",content:"content",container:"container",footer:"footer",characterOverLimit:"character--over-limit",readOnly:"readonly",textAreaInvalid:"text-area--invalid",footerSlotted:"footer--slotted",hide:"hide",footerEndSlotOnly:"footer--end-only",textArea:"text-area",textAreaOnly:"text-area--only"},V={validationMessage:"textAreaValidationMessage"},F={footerStart:"footer-start",footerEnd:"footer-end"},R=100,B=u`:host([disabled]){cursor:default;-webkit-user-select:none;user-select:none;opacity:var(--calcite-opacity-disabled)}:host([disabled]) *,:host([disabled]) ::slotted(*){pointer-events:none}:host{position:relative;display:inline-block;block-size:100%;inline-size:100%;--calcite-internal-text-area-border-color: var(--calcite-text-area-border-color, var(--calcite-color-border-input));--calcite-internal-text-area-footer-border-color: var( --calcite-text-area-footer-border-color, var(--calcite-internal-text-area-border-color) )}.text-area,.footer{font-size:var(--calcite-text-area-font-size, var(--calcite-font-size--1));background-color:var(--calcite-text-area-background-color, var(--calcite-color-foreground-1));padding-block:var(--calcite-spacing-sm);padding-inline:var(--calcite-spacing-md)}.text-area{position:relative;margin:0;box-sizing:border-box;display:block;inline-size:100%;font-family:var(--calcite-font-family);--calcite-internal-text-area-border-block-end-color: var(--calcite-internal-text-area-border-color);border:var(--calcite-border-width-sm) solid var(--calcite-internal-text-area-border-color);border-block-end-color:var(--calcite-internal-text-area-border-block-end-color);color:var(--calcite-text-area-text-color, var(--calcite-color-text-1));font-family:var(--calcite-sans-family);max-block-size:var(--calcite-text-area-max-height);min-block-size:var(--calcite-text-area-min-height);max-inline-size:var(--calcite-text-area-max-width);min-inline-size:var(--calcite-text-area-min-width, 12rem)}.text-area::placeholder{font-weight:var(--calcite-font-weight-normal)}@media screen and (max-width: 480px){.text-area{resize:none}}.text-area:focus{outline:2px solid var(--calcite-color-focus, var(--calcite-ui-focus-color, var(--calcite-color-brand)));outline-offset:calc(-2px*(1 - (2*clamp(0,var(--calcite-offset-invert-focus),1))))}.text-area.text-area--invalid{--calcite-internal-text-area-border-color: var(--calcite-color-status-danger)}.text-area.text-area--invalid:focus{outline:2px solid var(--calcite-color-status-danger);outline-offset:calc(-2px*(1 - (2*clamp(0,var(--calcite-offset-invert-focus),1))))}.text-area.footer--slotted{min-inline-size:18rem}.text-area:not(.text-area--only,.text-area--invalid){--calcite-internal-text-area-border-block-end-color: var( --calcite-text-area-divider-color, var(--calcite-color-border-3) )}.footer{box-sizing:border-box;display:flex;align-items:center;border:var(--calcite-border-width-sm) solid var(--calcite-internal-text-area-footer-border-color);border-block-start:var(--calcite-border-width-none);min-block-size:2.25rem}.character-limit{display:flex;align-items:center;justify-content:flex-end;white-space:nowrap;font-size:var(--calcite-text-area-font-size, var(--calcite-font-size--1));font-weight:var(--calcite-font-weight-regular);color:var(--calcite-text-area-character-limit-text-color, var(--calcite-color-text-2));padding-inline-start:var(--calcite-spacing-md)}
4.character--over-limit{font-weight:var(--calcite-font-weight-bold);color:var(--calcite-color-status-danger)}.readonly{background-color:var(--calcite-color-background);font-weight:var(--calcite-font-weight-medium)}.content,.hide{display:none}.container{display:flex;inline-size:100%;justify-content:space-between}.footer--end-only{justify-content:flex-end}.assistive-text{position:absolute;inline-size:1px;block-size:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.text-area.text-area--only{block-size:100%}:host([resize=none]) .text-area{resize:none}:host([resize=horizontal]) .text-area{resize:horizontal}:host([resize=vertical]) .text-area{resize:vertical}:host([scale=s]) .text-area,:host([scale=s]) .footer,:host([scale=s]) .character-limit{padding-inline-start:.5rem;font-size:var(--calcite-text-area-font-size, var(--calcite-font-size--2))}:host([scale=s]) .footer{min-block-size:1.75rem}:host([scale=s]) .text-area{padding-block:.25rem;padding-inline:.5rem}:host([scale=m]) .text-area{padding-block:.5rem;padding-inline:.75rem}:host([scale=m]) .footer{padding-block:.5rem;padding-inline:.75rem;min-block-size:2.25rem}:host([scale=l]) .text-area,:host([scale=l]) .footer{font-size:var(--calcite-text-area-font-size, var(--calcite-font-size-0));padding-block:var(--calcite-spacing-md);padding-inline:var(--calcite-spacing-lg)}:host([scale=l]) .footer{min-block-size:2.75rem}:host([scale=l]) .text-area,:host([scale=l]) .footer,:host([scale=l]) .character-limit{font-size:var(--calcite-text-area-font-size, var(--calcite-font-size-0));padding-inline-start:var(--calcite-spacing-lg)}:host([status=invalid]){--calcite-internal-text-area-border-color: var(--calcite-color-status-danger)}:host([status=invalid]) .text-area:focus{outline:2px solid var(--calcite-color-status-danger);outline-offset:calc(-2px*(1 - (2*clamp(0,var(--calcite-offset-invert-focus),1))))}:host([disabled]) .text-area,:host([disabled]) .footer{opacity:var(--calcite-opacity-half)}.validation-container{display:flex;flex-direction:column;align-items:flex-start;align-self:stretch}:host([scale=m]) .validation-container,:host([scale=l]) .validation-container{padding-block-start:.5rem}:host([scale=s]) .validation-container{padding-block-start:.25rem}::slotted(input[slot=hidden-form-input]){margin:0!important;opacity:0!important;outline:none!important;padding:0!important;position:absolute!important;inset:0!important;transform:none!important;-webkit-appearance:none!important;z-index:-1!important}:host([disabled]) ::slotted([calcite-hydrated][disabled]),:host([disabled]) [calcite-hydrated][disabled]{opacity:1}.interaction-container{display:contents}:host([hidden]){display:none}[hidden]{display:none}`,x=class extends b{constructor(){super(...arguments),this.attributeWatch=f(["autofocus","spellcheck"],this.handleGlobalAttributesChanged),this.footerEl=$(),this.guid=w(),this.resizeObserver=L("resize",async()=>{await p(this);let{textAreaHeight:e,textAreaWidth:t,elHeight:s,elWidth:c,footerHeight:h,footerWidth:o}=this.getHeightAndWidthOfElements();o>0&&o!==t&&(this.footerEl.value.style.width=`${t}px`),(c!==t||s!==e+(h||0))&&this.setHeightAndWidthToAuto()}),this.setHeightAndWidthToAuto=H(()=>{(this.resize==="vertical"||this.resize==="both")&&(this.el.style.height="auto"),(this.resize==="horizontal"||this.resize==="both")&&(this.el.style.width="auto")},R,{leading:!1}),this.disabled=!1,this.groupSeparator=!1,this.limitText=!1,this.messages=C({blocking:!0}),this.readOnly=!1,this.required=!1,this.resize="both",this.scale="m",this.status="idle",this.validity={valid:!1,badInput:!1,customError:!1,patternMismatch:!1,rangeOverflow:!1,rangeUnderflow:!1,stepMismatch:!1,tooLong:!1,tooShort:!1,typeMismatch:!1,valueMissing:!1},this.value="",this.wrap="soft",this.calciteTextAreaChange=d(),this.calciteTextAreaInput=d()}static{this.properties={endSlotHasElements:16,startSlotHasElements:16,columns:11,disabled:7,form:3,groupSeparator:7,label:1,limitText:7,maxLength:11,messageOverrides:0,minLength:11,name:3,numberingSystem:1,placeholder:1,readOnly:7,required:7,resize:3,rows:11,scale:3,status:3,validationIcon:[3,{converter:y}],validationMessage:1,validity:0,value:1,wrap:3}}static{this.styles=B}async selectText(){await p(this),this.textAreaEl.select()}async setFocus(){await E(this),this.textAreaEl.focus()}connectedCallback(){super.connectedCallback(),O(this),I(this)}async load(){}updated(){k(this),this.setTextAreaHeight()}loaded(){}disconnectedCallback(){super.disconnectedCallback(),S(this),M(this),this.resizeObserver?.disconnect()}handleGlobalAttributesChanged(){this.requestUpdate()}onLabelClick(){this.setFocus()}handleInput(e){this.value=e.target.value,this.calciteTextAreaInput.emit()}handleChange(){this.calciteTextAreaChange.emit()}contentSlotChangeHandler(){this.value||this.el.childNodes.forEac
4h(e=>{e.nodeName==="#text"&&(this.value=e.nodeValue.trim())})}getLocalizedCharacterLength(){let e=this.value?this.value.length.toString():"0",t=this.maxLength.toString();return this.numberingSystem==="latn"?{currentLength:e,maxLength:t}:(n.numberFormatOptions={locale:this.messages._lang,numberingSystem:this.numberingSystem,signDisplay:"never",useGrouping:this.groupSeparator},{currentLength:n.localize(e),maxLength:n.localize(t)})}syncHiddenFormInput(e){e.setCustomValidity(""),this.isCharacterLimitExceeded()&&e.setCustomValidity(this.replacePlaceholdersInMessages()),q("textarea",this,e)}setTextAreaEl(e){e&&(this.textAreaEl=e,this.resizeObserver?.observe(e))}setTextAreaHeight(){let{textAreaHeight:e,elHeight:t,footerHeight:s}=this.getHeightAndWidthOfElements();s>0&&e+s!=t&&(this.textAreaEl.style.height=`${t-s}px`)}getHeightAndWidthOfElements(){let{height:e,width:t}=this.textAreaEl.getBoundingClientRect(),{height:s,width:c}=this.el.getBoundingClientRect(),{height:h,width:o}=this.footerEl.value?this.footerEl.value.getBoundingClientRect():{height:0,width:0};return{textAreaHeight:e,textAreaWidth:t,elHeight:s,elWidth:c,footerHeight:h,footerWidth:o}}replacePlaceholdersInMessages(){return this.messages.tooLong.replace("{maxLength}",this.localizedCharacterLengthObj.maxLength).replace("{currentLength}",this.localizedCharacterLengthObj.currentLength)}isCharacterLimitExceeded(){return this.value?.length>this.maxLength}render(){let e=this.startSlotHasElements||this.endSlotHasElements||!!this.maxLength;return A({disabled:this.disabled,children:l`<textarea aria-describedby=${this.guid??r} aria-errormessage=${V.validationMessage} .ariaInvalid=${this.status==="invalid"||this.isCharacterLimitExceeded()} .ariaLabel=${T(this)} .autofocus=${this.el.autofocus} class=${i({[a.textArea]:!0,[a.readOnly]:this.readOnly,[a.textAreaInvalid]:this.isCharacterLimitExceeded(),[a.footerSlotted]:this.endSlotHasElements&&this.startSlotHasElements,[a.textAreaOnly]:!e})} .cols=${this.columns} .disabled=${this.disabled} maxlength=${(this.limitText?this.maxLength:void 0)??r} name=${this.name??r} @change=${this.handleChange} @input=${this.handleInput} placeholder=${this.placeholder??r} .readOnly=${this.readOnly} .required=${this.required} .rows=${this.rows} spellcheck=${this.el.spellcheck??r} .value=${v(this.value??"")} wrap=${this.wrap??r} ${m(this.setTextAreaEl)}></textarea><span class=${i({[a.content]:!0})}><slot @slotchange=${this.contentSlotChangeHandler}></slot></span><footer class=${i({[a.footer]:!0,[a.readOnly]:this.readOnly,[a.hide]:!e})} ${m(this.footerEl)}><div class=${i({[a.container]:!0,[a.footerEndSlotOnly]:!this.startSlotHasElements&&this.endSlotHasElements})}><slot name=${F.footerStart} @slotchange=${t=>this.startSlotHasElements=g(t)}></slot><slot name=${F.footerEnd} @slotchange=${t=>this.endSlotHasElements=g(t)}></slot></div>${this.renderCharacterLimit()}</footer>${W({component:this})}${this.isCharacterLimitExceeded()&&l`<span aria-live=polite class=${i(a.assistiveText)} id=${this.guid??r}>${this.replacePlaceholdersInMessages()}</span>`||""}${this.validationMessage&&this.status==="invalid"?j({icon:this.validationIcon,id:V.validationMessage,message:this.validationMessage,scale:this.scale,status:this.status}):null}`})}renderCharacterLimit(){return this.maxLength?(this.localizedCharacterLengthObj=this.getLocalizedCharacterLength(),l`<span class=${i(a.characterLimit)}><span class=${i({[a.characterOverLimit]:this.isCharacterLimitExceeded()})}>${this.localizedCharacterLengthObj.currentLength}</span>/${this.localizedCharacterLengthObj.maxLength}</span>`):null}};z("calcite-text-area",x);export{x as TextArea};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.