12345 |
- /*
- All material copyright ESRI, All Rights Reserved, unless otherwise specified.
- See https://js.arcgis.com/4.25/esri/copyright.txt for details.
- */
- import{_ as e}from"../chunks/tslib.es6.js";import{property as t}from"../core/accessorSupport/decorators/property.js";import"../core/arrayUtils.js";import"../core/accessorSupport/ensureType.js";import{subclass as n}from"../core/accessorSupport/decorators/subclass.js";import o from"./Widget.js";import s from"./Expand/ExpandViewModel.js";import{isWidget as r,hasDomNode as a}from"./support/widget.js";import{tsx as d}from"./support/jsxFactory.js";import{messageBundle as i}from"./support/decorators/messageBundle.js";import{accessibleHandler as p}from"./support/decorators/accessibleHandler.js";const l={base:"esri-expand esri-widget",modeAuto:"esri-expand--auto",modeDrawer:"esri-expand--drawer",modeFloating:"esri-expand--floating",container:"esri-expand__container",containerExpanded:"esri-expand__container--expanded",panel:"esri-expand__panel",button:"esri-widget--button",text:"esri-icon-font-fallback-text",icon:"esri-collapse__icon",iconExpanded:"esri-expand__icon--expanded",iconNumber:"esri-expand__icon-number",iconNumberExpanded:"esri-expand__icon-number--expanded",expandIcon:"esri-icon-expand",collapseIcon:"esri-icon-collapse",content:"esri-expand__content",contentExpanded:"esri-expand__content--expanded",expandMask:"esri-expand__mask",expandMaskExpanded:"esri-expand__mask--expanded"};let c=class extends o{constructor(e,t){super(e,t),this.closeOnEsc=!0,this.collapseTooltip="",this.content="",this.expandTooltip="",this.iconNumber=0,this.messages=null,this.messagesCommon=null,this.mode="auto",this.viewModel=new s,this._handleKeyDown=e=>{const{closeOnEsc:t,_toggleButtonEl:n,expanded:o}=this;if(!o||!t||e.target===n||"Escape"!==e.key)return;("function"==typeof t?t(e):t)&&(this.expanded=!1,n?.focus())}}get contentId(){return`${this.id}_controls_content`}get expandTitle(){const{expanded:e,messagesCommon:t,collapseTooltip:n,expandTooltip:o}=this;return e?n||t.collapse:o||t.expand}get autoCollapse(){return this.viewModel.autoCollapse}set autoCollapse(e){this.viewModel.autoCollapse=e}get collapseIconClass(){return l.collapseIcon}set collapseIconClass(e){this._overrideIfSome("collapseIconClass",e)}get expanded(){return this.viewModel.expanded}set expanded(e){this.viewModel.expanded=e}get expandIconClass(){return r(this.content)?this.content.iconClass:l.expandIcon}set expandIconClass(e){this._overrideIfSome("expandIconClass",e)}get group(){return this.viewModel.group}set group(e){this.viewModel.group=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}expand(){this.viewModel.expanded=!0}collapse(){this.viewModel.expanded=!1}toggle(){this.viewModel.expanded=!this.viewModel.expanded}render(){const{mode:e}=this,t={[l.modeAuto]:"auto"===e,[l.modeDrawer]:"drawer"===e,[l.modeFloating]:"floating"===e};return d("div",{class:this.classes(l.base,t),onkeydown:this._handleKeyDown},this.renderMask(),this.renderContainer())}renderContainer(){const{expanded:e}=this,t={[l.containerExpanded]:e};return d("div",{class:this.classes(l.container,t)},this.renderPanel(),this.renderContent())}renderMask(){const{expanded:e}=this,t={[l.expandMaskExpanded]:e};return d("div",{bind:this,onclick:this._toggle,class:this.classes(l.expandMask,t)})}renderBadgeNumber(){const{expanded:e,iconNumber:t}=this;return t&&!e?d("span",{key:"expand__icon-number",class:l.iconNumber},t):null}renderPanelNumber(){const{iconNumber:e,expanded:t}=this;return e&&t?d("span",{key:"expand__expand-icon-number",class:this.classes(l.iconNumber,l.iconNumberExpanded)},e):null}renderIcon(){const{collapseIconClass:e,expandIconClass:t,expanded:n}=this,o={[l.iconExpanded]:n,[e]:n,[t]:!n};return e===t&&(o[e]=!0),d("span",{"aria-hidden":"true",class:this.classes(l.icon,o)})}renderTitle(){return d("span",{class:l.text},this.expandTitle)}renderExpandButton(){const{expanded:e,expandTitle:t,contentId:n}=this;return d("div",{afterCreate:this._storeToggleButtonEl,"aria-controls":n,"aria-expanded":e?"true":"false",bind:this,class:l.button,onclick:this._toggle,onkeydown:this._toggle,role:"button",tabindex:"0",title:t},this.renderBadgeNumber(),this.renderIcon(),this.renderTitle())}renderPanel(){return d("div",{class:l.panel},this.renderExpandButton(),this.renderPanelNumber())}renderContent(){const{expanded:e,contentId:t,content:n}=this,o={[l.contentExpanded]:e},s={id:t,role:"region",class:this.classes(l.content,o)};return"string"==typeof n?d("div",{key:"content__string",innerHTML:n,...s}):r(n)?d("div",{key:"content__widget",...s},n.render()):n instanceof HTMLElement?d("div",{key:"content__html-element",bind:n,afterCreate:this._attachToNode,...s}):a(n)?d("div",{key:"content__node",bind:n.domNode,afterCreate:this._attachToNode,...s}):null}_toggle(){this.toggle()}_attachToNode(e){const t=this;e.appendChild(t)}_storeToggleButtonEl(e){this._toggleButtonEl=e}};e([t({readOnly:!0})],c.prototype,"contentId",null),e([t({readOnly:!0})],c.prototype,"expandTitle",null),e([t()],c.prototype,"autoCollapse",null),e([t()],c.prototype,"closeOnEsc",void 0),e([t()],c.prototype,"collapseIconClass",null),e([t()],c.prototype,"collapseTooltip",void 0),e([t()],c.prototype,"content",void 0),e([t()],c.prototype,"expanded",null),e([t()],c.prototype,"expandIconClass",null),e([t()],c.prototype,"expandTooltip",void 0),e([t()],c.prototype,"group",null),e([t()],c.prototype,"iconNumber",void 0),e([t()],c.prototype,"label",null),e([t(),i("esri/widgets/Expand/t9n/Expand")],c.prototype,"messages",void 0),e([t(),i("esri/t9n/common")],c.prototype,"messagesCommon",void 0),e([t()],c.prototype,"mode",void 0),e([t()],c.prototype,"view",null),e([t({type:s})],c.prototype,"viewModel",void 0),e([p()],c.prototype,"_toggle",null),c=e([n("esri.widgets.Expand")],c);const u=c;export{u as default};
|