@doegis/core
Version:
DOE GIS API
3 lines (1 loc) • 5.7 kB
JavaScript
import{_ as e}from"../chunks/tslib.es6.js";import{property as t}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import{subclass as o}from"../core/accessorSupport/decorators/subclass.js";import n 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 l}from"./support/decorators/accessibleHandler.js";const p="esri-expand",c={base:`${p} esri-widget`,modeAuto:`${p}--auto`,modeDrawer:`${p}--drawer`,modeFloating:`${p}--floating`,container:`${p}__container`,containerExpanded:`${p}__container--expanded`,panel:`${p}__panel`,button:"esri-widget--button",text:"esri-icon-font-fallback-text",icon:"esri-collapse__icon",iconExpanded:`${p}__icon--expanded`,iconNumber:`${p}__icon-number`,iconNumberExpanded:`${p}__icon-number--expanded`,expandIcon:"esri-icon-expand",collapseIcon:"esri-icon-collapse",content:`${p}__content`,contentExpanded:`${p}__content--expanded`,expandMask:`${p}__mask`,expandMaskExpanded:`${p}__mask--expanded`};let u=class extends n{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:o,expanded:n}=this;if(!n||!t||e.target===o||"Escape"!==e.key)return;("function"==typeof t?t(e):t)&&(this.expanded=!1,o?.focus())}}get contentId(){return`${this.id}_controls_content`}get expandTitle(){const{expanded:e,messagesCommon:t,collapseTooltip:o,expandTooltip:n}=this;return e?o||t.collapse:n||t.expand}get autoCollapse(){return this.viewModel.autoCollapse}set autoCollapse(e){this.viewModel.autoCollapse=e}get collapseIconClass(){return c.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:c.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={[c.modeAuto]:"auto"===e,[c.modeDrawer]:"drawer"===e,[c.modeFloating]:"floating"===e};return d("div",{class:this.classes(c.base,t),onkeydown:this._handleKeyDown},this.renderMask(),this.renderContainer())}renderContainer(){const{expanded:e}=this,t={[c.containerExpanded]:e};return d("div",{class:this.classes(c.container,t)},this.renderPanel(),this.renderContent())}renderMask(){const{expanded:e}=this,t={[c.expandMaskExpanded]:e};return d("div",{bind:this,onclick:this._toggle,class:this.classes(c.expandMask,t)})}renderBadgeNumber(){const{expanded:e,iconNumber:t}=this;return t&&!e?d("span",{key:"expand__icon-number",class:c.iconNumber},t):null}renderPanelNumber(){const{iconNumber:e,expanded:t}=this;return e&&t?d("span",{key:"expand__expand-icon-number",class:this.classes(c.iconNumber,c.iconNumberExpanded)},e):null}renderIcon(){const{collapseIconClass:e,expandIconClass:t,expanded:o}=this,n={[c.iconExpanded]:o,[e]:o,[t]:!o};return e===t&&(n[e]=!0),d("span",{"aria-hidden":"true",class:this.classes(c.icon,n)})}renderTitle(){return d("span",{class:c.text},this.expandTitle)}renderExpandButton(){const{expanded:e,expandTitle:t,contentId:o}=this;return d("div",{afterCreate:this._storeToggleButtonEl,"aria-controls":o,"aria-expanded":e?"true":"false",bind:this,class:c.button,onclick:this._toggle,onkeydown:this._toggle,role:"button",tabindex:"0",title:t},this.renderBadgeNumber(),this.renderIcon(),this.renderTitle())}renderPanel(){return d("div",{class:c.panel},this.renderExpandButton(),this.renderPanelNumber())}renderContent(){const{expanded:e,contentId:t,content:o}=this,n={[c.contentExpanded]:e},s={id:t,role:"region",class:this.classes(c.content,n)};return"string"==typeof o?d("div",{key:"content__string",innerHTML:o,...s}):r(o)?d("div",{key:"content__widget",...s},o.render()):o instanceof HTMLElement?d("div",{key:"content__html-element",bind:o,afterCreate:this._attachToNode,...s}):a(o)?d("div",{key:"content__node",bind:o.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})],u.prototype,"contentId",null),e([t({readOnly:!0})],u.prototype,"expandTitle",null),e([t()],u.prototype,"autoCollapse",null),e([t()],u.prototype,"closeOnEsc",void 0),e([t()],u.prototype,"collapseIconClass",null),e([t()],u.prototype,"collapseTooltip",void 0),e([t()],u.prototype,"content",void 0),e([t()],u.prototype,"expanded",null),e([t()],u.prototype,"expandIconClass",null),e([t()],u.prototype,"expandTooltip",void 0),e([t()],u.prototype,"group",null),e([t()],u.prototype,"iconNumber",void 0),e([t()],u.prototype,"label",null),e([t(),i("esri/widgets/Expand/t9n/Expand")],u.prototype,"messages",void 0),e([t(),i("esri/t9n/common")],u.prototype,"messagesCommon",void 0),e([t()],u.prototype,"mode",void 0),e([t()],u.prototype,"view",null),e([t({type:s})],u.prototype,"viewModel",void 0),e([l()],u.prototype,"_toggle",null),u=e([o("esri.widgets.DOEExpand")],u);const h=u;export{h as default};