UNPKG

@doegis/core

Version:

DOE GIS API

3 lines (1 loc) 25.3 kB
import{_ as e}from"../chunks/tslib.es6.js";import t from"../core/Collection.js";import{on as i,eventKey as a}from"../core/events.js";import{clone as n}from"../core/lang.js";import s from"../core/Logger.js";import{watch as o,initial as l}from"../core/reactiveUtils.js";import{addProxy as r,hasSameOrigin as d}from"../core/urlUtils.js";import{property as p}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import{subclass as c}from"../core/accessorSupport/decorators/subclass.js";import{getToken as u}from"../rest/utils.js";import h from"./Widget.js";import m from"./Print/FileLink.js";import _ from"./Print/PrintViewModel.js";import b from"./Print/TemplateOptions.js";import{Heading as g}from"./support/Heading.js";import v from"./support/Popover.js";import{isActivationKey as y,keepMenuItemWithinView as f}from"./support/widgetUtils.js";import{messageBundle as T}from"./support/decorators/messageBundle.js";import{tsx as w}from"./support/jsxFactory.js";const O=t.ofType(m),x="MAP_ONLY";var C;!function(e){e.layout="layoutTab",e.mapOnly="mapOnlyTab"}(C||(C={}));const L="esri-print",k=`${L}__advanced-options-button`,I={base:L,headerTitle:`${L}__header-title`,inputText:`${L}__input-text`,layoutTabList:`${L}__layout-tab-list`,layoutTab:`${L}__layout-tab`,layoutSection:`${L}__layout-section`,mapOnlySection:`${L}__map-only-section`,scaleInput:`${L}__scale-input`,templateList:`${L}__template-list`,templateListScroller:`${L}__template-list-scroller`,templateListFooter:`${L}__template-list-footer`,loader:`${L}__loader`,advancedOptionsButton:k,advancedOptionsButtonContainer:`${k}-container`,advancedOptionsButtonTitle:`${k}-title`,advancedOptionsButtonIconOpened:`${k}-icon--opened`,advancedOptionsButtonIconClosed:`${k}-icon--closed`,advancedOptionsButtonIconClosed_RTL:`${k}-icon--closed-rtl`,refreshButton:`${L}__refresh-button`,swapButton:`${L}__swap-button`,linkButton:`${L}__link-button`,printButton:`${L}__export-button`,templateButton:`${L}__template-button`,formSectionContainer:`${L}__form-section-container`,advancedOptionsSection:`${L}__advanced-options-section`,advancedOptionsContainer:`${L}__advanced-options-container`,authorInfoContainer:`${L}__author-info-container`,copyrightInfoContainer:`${L}__copyright-info-container`,exportedFilesContainer:`${L}__export-panel-container`,exportedFilesTitle:`${L}__export-title`,exportedFile:`${L}__exported-file`,exportedFileLink:"esri-widget__anchor esri-print__exported-file-link",exportedFileLinkTitle:`${L}__exported-file-link-title`,heightContainer:`${L}__height-container`,legendInfoContainer:`${L}__legend-info-container`,printWidgetContainer:`${L}__container`,panelContainer:`${L}__panel-container`,scaleInfoContainer:`${L}__scale-info-container`,scaleInputContainer:`${L}__scale-input-container`,sizeContainer:`${L}__size-container`,widthContainer:`${L}__width-container`,widget:"esri-widget",panel:"esri-widget--panel",widgetButton:"esri-widget--button",button:"esri-button",buttonSecondary:"esri-button--secondary",buttonTertiary:"esri-button--tertiary",select:"esri-select",input:"esri-input",disabled:"esri-disabled",anchorDisabled:"esri-widget__anchor--disabled",buttonDisabled:"esri-button--disabled",panelError:`${L}__panel--error`,exportedFileError:`${L}__exported-file--error`,hide:"esri-hidden",rotate:"esri-rotating",anchor:"esri-widget__anchor",menu:"esri-menu",menuList:"esri-menu__list",menuItem:"esri-menu__list-item",menuItemFocus:"esri-menu__list-item--focus",menuHeader:"esri-menu__header",iconCheckMark:"esri-icon-check-mark",iconDownload:"esri-icon-download",iconLaunchLink:"esri-icon-launch-link-external",iconError:"esri-icon-error",iconPrinter:"esri-icon-printer",iconRightTriangleArrow:"esri-icon-right-triangle-arrow",iconLeftTriangleArrow:"esri-icon-left-triangle-arrow",iconDownArrow:"esri-icon-down-arrow",iconRefresh:"esri-icon-refresh",iconSpinner:"esri-icon-loading-indicator",iconSwap:"esri-icon-swap",iconLinked:"esri-icon-link-horizontal",iconUnlinked:"esri-icon-unlocked-link-horizontal",widgetIcon:"esri-icon-printer"},S="User sets an invalid layout, resetting it to the default valid one...",$="User sets an invalid format, resetting it to the default valid one...";function M(e){const t=8.3333,i=11.4583;return{width:Math.round(e*t),height:Math.round(e*i)}}function F(e){return!isNaN(e)&&e>0}function E(e){return e?.toUpperCase()===x}let A=class extends h{constructor(e,t){super(e,t),this._activeTabFocusRequested=!1,this._advancedOptionsVisibleForLayout=!1,this._advancedOptionsVisibleForMapOnly=!1,this._awaitingServerResponse=!1,this._exportedFileNameMap={},this._focusedTemplateIndex=0,this._layoutTabSelected=!0,this._pendingExportScroll=!1,this._rootNode=null,this._selectTemplateNode=null,this._templateListPopover=new v({owner:this,placement:"top",offset:[0,-100],anchorElement:()=>this._selectTemplateNode,renderContentFunction:this.renderTemplateList}),this.exportedLinks=new O,this.headingLevel=3,this.iconClass=I.widgetIcon,this.templateOptions=new b,this.viewModel=new _,this.handleTemplateListCreation=e=>e.focus(),this.handleTemplateChildBlur=e=>{const t=e.relatedTarget?.closest(`.${I.templateList}`);t||this.handleCloseTemplateSelection()},this.handleCloseTemplateSelection=()=>{this._focusedTemplateIndex=0,this._templateListPopover.open=!1,this._selectTemplateNode.focus()},this.handleSelectTemplateClick=()=>{this._focusedTemplateIndex=0,this._templateListPopover.open=!0},this.handleTemplateListClick=e=>{const t=e.target;this.applyTemplate(t["data-template"])},this.handleTemplateListKeyDown=e=>{if(y(e.key))return this.applyTemplate(this.viewModel.defaultTemplates.getItemAt(this._focusedTemplateIndex)),void e.preventDefault();if("ArrowDown"===e.key||"ArrowUp"===e.key){const{defaultTemplates:t}=this.viewModel,i="ArrowDown"===e.key?1:-1,a=(this._focusedTemplateIndex+i)%t.length;this._focusedTemplateIndex=a<0?t.length-1:a;const n=e.currentTarget;f(n.querySelectorAll(`.${I.menuItem}`)[this._focusedTemplateIndex],n.parentElement),e.preventDefault()}"Escape"===e.key&&this.handleCloseTemplateSelection()},this._removeLink=e=>{const t=e.currentTarget["data-item"];t&&"error"===t.state&&this.exportedLinks.remove(t)},this._handleLinkClick=e=>{const t=e.currentTarget,{href:i}=t,a=u(this.viewModel.effectivePrintServiceUrl);if(!a)return;if(!e.isTrusted)return void e.stopPropagation();e.preventDefault();const n=new URL(i);n.searchParams.set("token",a),t.href=n.href,t.click(),t.href=i},this._focusOnTabChange=this._focusOnTabChange.bind(this)}initialize(){this.addHandles([o((()=>this.viewModel?.templatesInfo),(e=>{const{format:t,layout:i}=this.templateOptions;if(e){const a=i===e.layout.defaultValue||E(i)||e.layout.choiceList&&e.layout.choiceList.includes(i),n=t===e.format.defaultValue||e.format.choiceList&&e.format.choiceList.includes(t);a||(i&&s.getLogger(this.declaredClass).warn(S),this.templateOptions.layout=e.layout.defaultValue),n||(t&&s.getLogger(this.declaredClass).warn($),this.templateOptions.format=e.format.defaultValue),E(i)&&(this._layoutTabSelected=!1)}}),l),o((()=>this.templateOptions?.format),(e=>{const{viewModel:{templatesInfo:t}}=this;if(t&&e){let i=!1;t.format.choiceList&&t.format.choiceList.forEach((t=>{t.toUpperCase()===e.toUpperCase()&&(this.templateOptions.format=t,i=!0)})),i||(this.templateOptions.format=t.format.defaultValue,s.getLogger(this.declaredClass).warn($)),this.scheduleRender()}}),l),o((()=>this.templateOptions?.layout),(e=>{const{viewModel:{templatesInfo:t}}=this;if(t&&e){this._layoutTabSelected=!E(e);let i=!this._layoutTabSelected;i||t.layout.choiceList&&t.layout.choiceList.forEach((t=>{t.toUpperCase()===e.toUpperCase()&&(this.templateOptions.layout=t,i=!0)})),i||(this.templateOptions.layout=t.layout.defaultValue,s.getLogger(this.declaredClass).warn(S));const a=this.viewModel.effectiveTemplateCustomTextElements[this.templateOptions.layout];this.templateOptions.customTextElements=a?n(a):null,this.scheduleRender()}}),l),o((()=>this.templateOptions?.dpi),(e=>{e<=0?this.templateOptions.dpi=1:this.scheduleRender()}),l),o((()=>this.viewModel?.view?.scale),(e=>{const{scale:t,scaleEnabled:i}=this.templateOptions;i&&t||(this.templateOptions.scale=e)}),l)]);const{height:e,width:t}=this.templateOptions;this.templateOptions.width=t||800,this.templateOptions.height=e||1100;const i=setTimeout((()=>{this._awaitingServerResponse=!0,this.scheduleRender()}),500);this.viewModel.load().then((()=>clearTimeout(i)))}get allowedFormats(){return this.viewModel.allowedFormats}set allowedFormats(e){this.viewModel.allowedFormats=e}get allowedLayouts(){return this.viewModel.allowedLayouts}set allowedLayouts(e){this.viewModel.allowedLayouts=e}get error(){return this.viewModel.error}get extraParameters(){return this.viewModel.extraParameters}set extraParameters(e){this.viewModel.extraParameters=e}get includeDefaultTemplates(){return this.viewModel.includeDefaultTemplates}set includeDefaultTemplates(e){this.viewModel.includeDefaultTemplates=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get portal(){return this.viewModel.portal}set portal(e){this.viewModel.portal=e}get printServiceUrl(){return this.viewModel.printServiceUrl}set printServiceUrl(e){this.viewModel.printServiceUrl=e}get templateCustomTextElements(){return this.viewModel.templateCustomTextElements}set templateCustomTextElements(e){this.viewModel.templateCustomTextElements=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}render(){const{attributionEnabled:e,author:t,copyright:i,dpi:a,format:n,height:s,layout:o,legendEnabled:l,northArrowEnabled:r,scaleEnabled:d,scale:p,width:c}=this.templateOptions,u="ready"!==this.get("viewModel.state"),h=this.renderTitleOrFileNameSection(),{includeDefaultTemplates:m,messages:_,viewModel:b}=this,v=this.get("viewModel.templatesInfo.format.choiceList")||[],y=v.length>0?v.map((e=>w("option",{key:e,selected:e===n,value:e},e.toUpperCase()))):w("option",{key:"format-default-option"},_.formatDefaultOption),f=w("div",{class:I.formSectionContainer},w("label",null,_.fileFormatTitle,w("select",{class:I.select,onchange:this._updateFromOption,"data-target-property":"format",bind:this},y))),T=this.get("viewModel.templatesInfo.layout.choiceList")||[],O=T.length>0?T.map((e=>{const t=e===o,i=_[e]||e;return w("option",{key:e,selected:t,value:e},i)})):w("option",{key:"layout-default-option"},_.layoutDefaultOption),x=w("div",{class:I.formSectionContainer},w("label",null,_.layoutTitle,w("select",{class:I.select,onchange:this._updateFromOption,"data-target-property":"layout",bind:this},O))),L=w("div",{class:I.formSectionContainer},w("label",null,_.dpi,w("input",{type:"number",class:this.classes(I.inputText,I.input),"data-input-name":"dpi",onchange:this._handleDPIChange,value:`${a}`,min:"1",tabIndex:0,bind:this}))),k=w("div",{class:this.classes(I.scaleInfoContainer,I.formSectionContainer)},w("label",null,w("input",{"data-option-name":"scaleEnabled",checked:d,type:"checkbox",tabIndex:0,onchange:this._toggleInputValue,bind:this}),_.scale),w("div",{class:I.scaleInputContainer},w("input",{"aria-label":_.scaleLabel,"aria-valuenow":`${p}`,role:"spinbutton",type:"number",class:this.classes(I.inputText,I.input,I.scaleInput),tabIndex:0,"data-input-name":"scale",onchange:this._updateInputValue,disabled:!d,value:`${p}`,bind:this}),w("button",{type:"button","aria-label":_.reset,class:this.classes(I.widgetButton,I.refreshButton,I.iconRefresh),tabIndex:0,onclick:this._resetToCurrentScale,bind:this}))),S=this._advancedOptionsVisibleForLayout?w("div",{"aria-labelledby":`${this.id}__advancedOptionsForLayout`,class:I.advancedOptionsContainer},k,w("div",{class:this.classes(I.authorInfoContainer,I.formSectionContainer)},w("label",null,_.author,w("input",{type:"text",value:t,class:this.classes(I.inputText,I.input),tabIndex:0,"data-input-name":"author",onchange:this._updateInputValue,bind:this}))),w("div",{class:this.classes(I.copyrightInfoContainer,I.formSectionContainer)},w("label",null,_.copyright,w("input",{type:"text",class:this.classes(I.inputText,I.input),tabIndex:0,value:i,"data-input-name":"copyright",onchange:this._updateInputValue,bind:this}))),L,w("div",{class:this.classes(I.legendInfoContainer,I.formSectionContainer)},w("label",null,w("input",{type:"checkbox","data-option-name":"legendEnabled",tabIndex:0,checked:l,onchange:this._toggleInputValue,bind:this}),_.legend)),this.viewModel.templateToNorthArrowInfo[o]?w("div",{class:this.classes(I.legendInfoContainer,I.formSectionContainer),key:"north-arrow"},w("label",null,w("input",{type:"checkbox","data-option-name":"northArrowEnabled",tabIndex:0,checked:r,onchange:this._toggleInputValue,bind:this}),_.northArrow)):null,this.renderCustomTextElementSection()):null,$=this._advancedOptionsVisibleForMapOnly?w("div",{"aria-labelledby":`${this.id}__advancedOptionsForMapOnly`,class:I.advancedOptionsContainer},k,L,w("div",{class:I.formSectionContainer},w("label",null,w("input",{"data-option-name":"attributionEnabled",type:"checkbox",onchange:this._toggleInputValue,tabIndex:0,checked:e,bind:this}),_.attribution)),this.renderCustomTextElementSection()):null,M=this._layoutTabSelected?w("section",{key:"esri-print__layoutContent",id:`${this.id}__layoutContent`,"aria-labelledby":`${this.id}__layoutTab`,class:I.layoutSection,role:"tabpanel"},w("div",{class:I.panelContainer},h,x,this._layoutTabSelected?f:null),w("div",{class:this.classes(I.panelContainer,I.advancedOptionsSection)},w("button",{"aria-label":_.advancedOptions,"aria-expanded":this._advancedOptionsVisibleForLayout?"true":"false",class:I.advancedOptionsButton,onclick:this._showAdvancedOptions,bind:this,type:"button"},w("div",{class:I.advancedOptionsButtonContainer},w("span",{"aria-hidden":"true",class:this.classes(I.iconRightTriangleArrow,I.advancedOptionsButtonIconClosed)}),w("span",{"aria-hidden":"true",class:this.classes(I.iconLeftTriangleArrow,I.advancedOptionsButtonIconClosed_RTL)}),w("span",{"aria-hidden":"true",class:this.classes(I.iconDownArrow,I.advancedOptionsButtonIconOpened)}),w("span",{class:I.advancedOptionsButtonTitle},_.advancedOptions))),S)):w("section",{key:"esri-print__mapOnlyContent",id:`${this.id}__mapOnlyContent`,"aria-labelledby":`${this.id}__mapOnlyTab`,class:I.mapOnlySection,role:"tabpanel"},w("div",{class:I.panelContainer},h,this._layoutTabSelected?null:f,w("div",{class:this.classes(I.sizeContainer,I.formSectionContainer)},w("div",{class:I.widthContainer},w("label",null,_.width,w("input",{type:"number",class:this.classes(I.inputText,I.input),"data-input-name":"width",onchange:this._updateInputValue,value:`${c}`,tabIndex:0,bind:this}))),w("div",{class:I.heightContainer},w("label",null,_.height,w("input",{type:"number",class:this.classes(I.inputText,I.input),"data-input-name":"height",onchange:this._updateInputValue,value:`${s}`,tabIndex:0,bind:this}))),w("button",{type:"button","aria-label":_.swap,class:this.classes(I.widgetButton,I.swapButton,I.iconSwap),onclick:this._switchInput,tabIndex:0,bind:this})),w("div",{class:this.classes(I.panelContainer,I.advancedOptionsSection)},w("button",{"aria-label":_.advancedOptions,"aria-expanded":this._advancedOptionsVisibleForMapOnly?"true":"false",type:"button",class:I.advancedOptionsButton,onclick:this._showAdvancedOptions,bind:this},w("div",{class:I.advancedOptionsButtonContainer},w("span",{"aria-hidden":"true",class:this.classes(I.iconRightTriangleArrow,I.advancedOptionsButtonIconClosed)}),w("span",{"aria-hidden":"true",class:this.classes(I.iconLeftTriangleArrow,I.advancedOptionsButtonIconClosed_RTL)}),w("span",{"aria-hidden":"true",class:this.classes(I.iconDownArrow,I.advancedOptionsButtonIconOpened)}),w("span",{class:I.advancedOptionsButtonTitle},_.advancedOptions))),$))),F=this.exportedLinks.toArray(),E=this._renderExportedLink(F),A={[I.buttonDisabled]:u||!o&&!n},P=null!=this.get("view")&&"2d"!==this.get("view.type"),V=w("div",{class:I.panelError},P?_.sceneViewError:_.serviceError),B=w("div",null,w("ul",{class:I.layoutTabList,role:"tablist",onclick:this._toggleLayoutPanel,onkeydown:this._handleLayoutPanelKeyDown,bind:this},w("li",{afterCreate:this._focusOnTabChange,afterUpdate:this._focusOnTabChange,id:`${this.id}__layoutTab`,"data-tab-id":C.layout,class:I.layoutTab,role:"tab",tabIndex:0,"aria-selected":`${this._layoutTabSelected}`},_.layoutTab),w("li",{afterCreate:this._focusOnTabChange,afterUpdate:this._focusOnTabChange,id:`${this.id}__mapOnlyTab`,"data-tab-id":C.mapOnly,class:I.layoutTab,role:"tab",tabIndex:0,"aria-selected":`${!this._layoutTabSelected}`},_.mapOnlyTab)),M,w("button",{"aria-label":_.exportDescription,type:"button",class:this.classes(I.printButton,I.button,A),disabled:u,tabIndex:0,onclick:this._handlePrintMap,bind:this},_.export),m&&b.defaultTemplates.length>0?this.renderTemplateSectionTrigger():null,w("div",{class:I.exportedFilesContainer,afterUpdate:this._scrollExportIntoView,bind:this},w(g,{class:I.exportedFilesTitle,level:this.headingLevel},_.exportText),F.length>0?null:w("div",null,w("div",null,_.exportHint)),E)),D=w("div",{class:I.printWidgetContainer},w("header",{class:I.headerTitle},_.export),this.error||P||!this.view?V:B),N="initializing"===this.get("viewModel.state")?this._renderLoader():D;return w("div",{afterCreate:this._handleRootAfterCreate,bind:this,class:this.classes(I.base,I.widget,I.panel)},N)}renderTemplateSectionTrigger(){const{messages:e,_templateListPopover:t}=this,i=t.open;return w("button",{afterCreate:e=>this._selectTemplateNode=e,"aria-controls":i?`${this.id}__template-selection`:"","aria-label":e.selectTemplateDescription,"aria-pressed":i.toString(),class:this.classes(I.button,I.buttonTertiary,I.templateButton),onclick:this.handleSelectTemplateClick,title:e.selectTemplateDescription,type:"button"},e.selectTemplate)}renderCustomTextElementSection(){const{templateOptions:{customTextElements:e}}=this;return e?w("div",{class:I.formSectionContainer,key:"custom-text-elements"},e.map((e=>{const[t,i]=Object.entries(e)[0];return"date"===t?null:w("label",{key:t},t,w("input",{bind:this,class:this.classes(I.inputText,I.input),"data-input-custom":!0,"data-input-name":t,onchange:this._updateInputValue,type:"text",value:i}))}))):null}renderTemplateList(){const{messages:e,messagesCommon:t,viewModel:i}=this,{defaultTemplates:a}=i,n=e.selectTemplateDescription,s=`${this.id}__template-selection`;return w("div",{class:this.classes(I.templateList,I.widget,I.panel),id:s},w(g,{class:I.menuHeader,level:this.headingLevel},e.selectTemplate),w("div",{class:I.templateListScroller},w("ul",{afterCreate:this.handleTemplateListCreation,"aria-activedescendant":`${this.id}__template-item--${this._focusedTemplateIndex}`,"aria-label":n,class:I.menuList,key:"templates",onblur:this.handleTemplateChildBlur,onclick:this.handleTemplateListClick,onkeydown:this.handleTemplateListKeyDown,role:"listbox",tabIndex:0,title:n},a.toArray().map(((t,i)=>{const{description:a}=t,n=i===this._focusedTemplateIndex,s=t.label;return w("li",{"aria-label":a,class:this.classes(I.menuItem,{[I.menuItemFocus]:n}),"data-template":t,id:`${this.id}__template-item--${i}`,key:s,title:a},E(s)?e.mapOnlyTab:s)})))),w("div",{class:I.templateListFooter},w("button",{type:"button",class:this.classes(I.button,I.buttonSecondary),onblur:this.handleTemplateChildBlur,onclick:this.handleCloseTemplateSelection},t.done)))}applyTemplate(e){const{format:t,layout:i,layoutOptions:a}=e,{templateOptions:n}=this;this._templateListPopover.open=!1,this._toggleTab("map-only"===i?C.mapOnly:C.layout,!1),t&&(n.format=t),i&&(n.layout=i),this._focusedTemplateIndex=null,n.legendEnabled=a?.legend??n.legendEnabled,this.handleCloseTemplateSelection()}renderTitleOrFileNameSection(){const{templateOptions:e,messages:t}=this;let i,a,n,s;return this._layoutTabSelected?(i=t.title,a=t.titlePlaceHolder,n=e.title,s="title"):(i=t.fileName,a=t.fileNamePlaceHolder,n=e.fileName,s="fileName"),w("div",{class:I.formSectionContainer,key:s},w("label",null,i,w("input",{type:"text",tabIndex:0,placeholder:a,class:this.classes(I.inputText,I.input),value:n,"data-input-name":s,onchange:this._updateInputValue,bind:this})))}_handleRootAfterCreate(e){this._rootNode=e,this.addHandles(i(e,"scroll",(()=>{this._templateListPopover.open&&this.handleCloseTemplateSelection()})))}_focusOnTabChange(e){if(!this._activeTabFocusRequested)return;const t=e.getAttribute("data-tab-id");("layoutTab"===t&&this._layoutTabSelected||"mapOnlyTab"===t&&!this._layoutTabSelected)&&(e.focus(),this._activeTabFocusRequested=!1)}_renderLoader(){const e={[I.loader]:this._awaitingServerResponse};return w("div",{class:this.classes(e),key:"loader"})}_createFileLink(e,t){const i=t||this.messages.untitled,a=e.format.toLowerCase(),n=a.includes("png")?"png":a,s=i+n;return void 0!==this._exportedFileNameMap[s]?this._exportedFileNameMap[s]++:this._exportedFileNameMap[s]=0,new m({name:i,extension:n,count:this._exportedFileNameMap[s]})}_resetToCurrentScale(){this.templateOptions.scale=this.viewModel.view.scale}_updateCustomTextElementValue(e,t,i){e.find((e=>{const[i]=Object.entries(e)[0];return i===t}))[t]=i}_updateInputValue(e){const t=e.target,i=t.getAttribute("data-input-name"),a=!!t["data-input-custom"],{templateOptions:n}=this;if(a)return void this._updateCustomTextElementValue(n.customTextElements,i,t.value);let s;if("number"===t.type){if(!F(t.valueAsNumber)){const e=n[i];return void(t.value=`${e}`)}s=t.valueAsNumber}else s=t.value;n[i]=s}_handleDPIChange(e){this._updateInputValue(e);const t=e.currentTarget.valueAsNumber,{height:i,width:a}=M(t),{templateOptions:n}=this;n.height=i,n.width=a}_handlePrintMap(){this._pendingExportScroll=!0;const{templateOptions:e}=this,t=this.viewModel.toPrintTemplate(e),i=this._layoutTabSelected?t.layoutOptions.titleText:e.fileName,a=this._createFileLink(t,i);this.exportedLinks.add(a),this.emit("submit",{link:a}),this.viewModel.print(t).then((e=>{a.set({url:e&&e.url,state:"ready"})})).catch((e=>{a.set({error:e,state:"error"})})).then((()=>{this.emit("complete",{link:a}),this.scheduleRender()}))}_updateFromOption(e){const t=e.target,i=t.selectedOptions?t.selectedOptions.item(0).value:t.options[t.selectedIndex].value,a=t.getAttribute("data-target-property");this.templateOptions[a]=i}_switchInput(){[this.templateOptions.width,this.templateOptions.height]=[this.templateOptions.height,this.templateOptions.width]}_showAdvancedOptions(){this._layoutTabSelected?this._advancedOptionsVisibleForLayout=!this._advancedOptionsVisibleForLayout:this._advancedOptionsVisibleForMapOnly=!this._advancedOptionsVisibleForMapOnly}_scrollExportIntoView(){if(this._pendingExportScroll){this._pendingExportScroll=!1;const{_rootNode:e,_rootNode:{clientHeight:t,scrollHeight:i}}=this,a=i-t;a>0&&(e.scrollTop=a)}}_toggleInputValue(e){const t=e.target,i=t.getAttribute("data-option-name");this.templateOptions[i]=t.checked,"scaleEnabled"===i&&(this.templateOptions[i]||this._resetToCurrentScale())}_renderExportedLink(e){const t=this.messages;return e.map((e=>{const{error:i,url:a,formattedName:n,state:s}=e,o="error"===s,l="pending"===s,p="ready"===s,c={[I.anchorDisabled]:l||o};let u=a||null;u&&(u=r(u));const h=d(a,location.href),m={[I.iconSpinner]:l,[I.rotate]:l,[I.iconDownload]:h&&p,[I.iconLaunchLink]:!h&&p,[I.iconError]:o,[I.exportedFileError]:o},_={[I.exportedFileError]:o};let b;b=l?t.pending:p?t.ready:t.errorMessage;const g=o?"print-task:cim-symbol-unsupported"===i.name?t.exportWebMapCIMError:t.exportWebMapError:"";return w("div",{"aria-label":b,class:I.exportedFile,"data-item":e,key:n,onclick:this._removeLink,title:g},w("a",{"aria-label":`${n}. ${t.linkReady}`,download:n,href:u,rel:"noreferrer",tabIndex:0,target:"_blank",class:this.classes(I.exportedFileLink,c),onclick:this._handleLinkClick},w("span",{class:this.classes(m)}),w("span",{class:this.classes(I.exportedFileLinkTitle,_)},n)))}))}_toggleLayoutPanel(e){const t=e.target;this._toggleTab(t.getAttribute("data-tab-id"))}_toggleTab(e,t=!0){if(this._layoutTabSelected=e===C.layout,this._layoutTabSelected){const e=this.get("viewModel.templatesInfo.layout.choiceList");this.templateOptions.layout=e&&e[0]}else this.templateOptions.layout=x;t&&(this._activeTabFocusRequested=!0)}_handleLayoutPanelKeyDown(e){const t=a(e),i=e.target.getAttribute("data-tab-id");if(y(t))return this._toggleTab(i),e.preventDefault(),void e.stopPropagation();"ArrowLeft"!==t&&"ArrowRight"!==t||(this._toggleTab(i===C.layout?C.mapOnly:C.layout),e.preventDefault(),e.stopPropagation())}};e([p()],A.prototype,"allowedFormats",null),e([p()],A.prototype,"allowedLayouts",null),e([p()],A.prototype,"error",null),e([p({type:O})],A.prototype,"exportedLinks",void 0),e([p()],A.prototype,"extraParameters",null),e([p()],A.prototype,"headingLevel",void 0),e([p()],A.prototype,"iconClass",void 0),e([p()],A.prototype,"includeDefaultTemplates",null),e([p()],A.prototype,"label",null),e([p(),T("esri/widgets/Print/t9n/Print")],A.prototype,"messages",void 0),e([p(),T("esri/t9n/common")],A.prototype,"messagesCommon",void 0),e([p()],A.prototype,"portal",null),e([p()],A.prototype,"printServiceUrl",null),e([p()],A.prototype,"templateCustomTextElements",null),e([p({type:b})],A.prototype,"templateOptions",void 0),e([p()],A.prototype,"view",null),e([p({type:_})],A.prototype,"viewModel",void 0),A=e([c("esri.widgets.Print")],A);const P=A;export{P as default};