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 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 p}from"../core/urlUtils.js";import{property as d}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={base:"esri-print",headerTitle:"esri-print__header-title",inputText:"esri-print__input-text",layoutTabList:"esri-print__layout-tab-list",layoutTab:"esri-print__layout-tab",layoutSection:"esri-print__layout-section",mapOnlySection:"esri-print__map-only-section",scaleInput:"esri-print__scale-input",templateList:"esri-print__template-list",templateListScroller:"esri-print__template-list-scroller",templateListFooter:"esri-print__template-list-footer",loader:"esri-print__loader",advancedOptionsButton:"esri-print__advanced-options-button",advancedOptionsButtonContainer:"esri-print__advanced-options-button-container",advancedOptionsButtonTitle:"esri-print__advanced-options-button-title",advancedOptionsButtonIconOpened:"esri-print__advanced-options-button-icon--opened",advancedOptionsButtonIconClosed:"esri-print__advanced-options-button-icon--closed",advancedOptionsButtonIconClosed_RTL:"esri-print__advanced-options-button-icon--closed-rtl",refreshButton:"esri-print__refresh-button",swapButton:"esri-print__swap-button",linkButton:"esri-print__link-button",printButton:"esri-print__export-button",templateButton:"esri-print__template-button",formSectionContainer:"esri-print__form-section-container",advancedOptionsSection:"esri-print__advanced-options-section",advancedOptionsContainer:"esri-print__advanced-options-container",authorInfoContainer:"esri-print__author-info-container",copyrightInfoContainer:"esri-print__copyright-info-container",exportedFilesContainer:"esri-print__export-panel-container",exportedFilesTitle:"esri-print__export-title",exportedFile:"esri-print__exported-file",exportedFileLink:"esri-widget__anchor esri-print__exported-file-link",exportedFileLinkTitle:"esri-print__exported-file-link-title",heightContainer:"esri-print__height-container",legendInfoContainer:"esri-print__legend-info-container",printWidgetContainer:"esri-print__container",panelContainer:"esri-print__panel-container",scaleInfoContainer:"esri-print__scale-info-container",scaleInputContainer:"esri-print__scale-input-container",sizeContainer:"esri-print__size-container",widthContainer:"esri-print__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:"esri-print__panel--error",exportedFileError:"esri-print__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"},k="User sets an invalid layout, resetting it to the default valid one...",I="User sets an invalid format, resetting it to the default valid one...";function S(e){const t=8.3333,i=11.4583;return{width:Math.round(e*t),height:Math.round(e*i)}}function M(e){return!isNaN(e)&&e>0}function F(e){return e?.toUpperCase()===x}let E=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=L.widgetIcon,this.templateOptions=new b,this.viewModel=new _,this.handleTemplateListCreation=e=>e.focus(),this.handleTemplateChildBlur=e=>{const t=e.relatedTarget?.closest(`.${L.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(`.${L.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||F(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(k),this.templateOptions.layout=e.layout.defaultValue),n||(t&&s.getLogger(this.declaredClass).warn(I),this.templateOptions.format=e.format.defaultValue),F(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(I)),this.scheduleRender()}}),l),o((()=>this.templateOptions?.layout),(e=>{const{viewModel:{templatesInfo:t}}=this;if(t&&e){this._layoutTabSelected=!F(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(k));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:p,scale:d,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:L.formSectionContainer},w("label",null,_.fileFormatTitle,w("select",{class:L.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:L.formSectionContainer},w("label",null,_.layoutTitle,w("select",{class:L.select,onchange:this._updateFromOption,"data-target-property":"layout",bind:this},O))),k=w("div",{class:L.formSectionContainer},w("label",null,_.dpi,w("input",{type:"number",class:this.classes(L.inputText,L.input),"data-input-name":"dpi",onchange:this._handleDPIChange,value:`${a}`,min:"1",tabIndex:0,bind:this}))),I=w("div",{class:this.classes(L.scaleInfoContainer,L.formSectionContainer)},w("label",null,w("input",{"data-option-name":"scaleEnabled",checked:p,type:"checkbox",tabIndex:0,onchange:this._toggleInputValue,bind:this}),_.scale),w("div",{class:L.scaleInputContainer},w("input",{"aria-label":_.scaleLabel,"aria-valuenow":`${d}`,role:"spinbutton",type:"number",class:this.classes(L.inputText,L.input,L.scaleInput),tabIndex:0,"data-input-name":"scale",onchange:this._updateInputValue,disabled:!p,value:`${d}`,bind:this}),w("button",{type:"button","aria-label":_.reset,class:this.classes(L.widgetButton,L.refreshButton,L.iconRefresh),tabIndex:0,onclick:this._resetToCurrentScale,bind:this}))),S=this._advancedOptionsVisibleForLayout?w("div",{"aria-labelledby":`${this.id}__advancedOptionsForLayout`,class:L.advancedOptionsContainer},I,w("div",{class:this.classes(L.authorInfoContainer,L.formSectionContainer)},w("label",null,_.author,w("input",{type:"text",value:t,class:this.classes(L.inputText,L.input),tabIndex:0,"data-input-name":"author",onchange:this._updateInputValue,bind:this}))),w("div",{class:this.classes(L.copyrightInfoContainer,L.formSectionContainer)},w("label",null,_.copyright,w("input",{type:"text",class:this.classes(L.inputText,L.input),tabIndex:0,value:i,"data-input-name":"copyright",onchange:this._updateInputValue,bind:this}))),k,w("div",{class:this.classes(L.legendInfoContainer,L.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(L.legendInfoContainer,L.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,M=this._advancedOptionsVisibleForMapOnly?w("div",{"aria-labelledby":`${this.id}__advancedOptionsForMapOnly`,class:L.advancedOptionsContainer},I,k,w("div",{class:L.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,F=this._layoutTabSelected?w("section",{key:"esri-print__layoutContent",id:`${this.id}__layoutContent`,"aria-labelledby":`${this.id}__layoutTab`,class:L.layoutSection,role:"tabpanel","aria-selected":this._layoutTabSelected.toString()},w("div",{class:L.panelContainer},h,x,this._layoutTabSelected?f:null),w("div",{class:this.classes(L.panelContainer,L.advancedOptionsSection)},w("button",{"aria-label":_.advancedOptions,"aria-expanded":this._advancedOptionsVisibleForLayout?"true":"false",class:L.advancedOptionsButton,onclick:this._showAdvancedOptions,bind:this,type:"button"},w("div",{class:L.advancedOptionsButtonContainer},w("span",{"aria-hidden":"true",class:this.classes(L.iconRightTriangleArrow,L.advancedOptionsButtonIconClosed)}),w("span",{"aria-hidden":"true",class:this.classes(L.iconLeftTriangleArrow,L.advancedOptionsButtonIconClosed_RTL)}),w("span",{"aria-hidden":"true",class:this.classes(L.iconDownArrow,L.advancedOptionsButtonIconOpened)}),w("span",{class:L.advancedOptionsButtonTitle},_.advancedOptions))),S)):w("section",{key:"esri-print__mapOnlyContent",id:`${this.id}__mapOnlyContent`,"aria-selected":(!this._layoutTabSelected).toString(),"aria-labelledby":`${this.id}__mapOnlyTab`,class:L.mapOnlySection,role:"tabpanel"},w("div",{class:L.panelContainer},h,this._layoutTabSelected?null:f,w("div",{class:this.classes(L.sizeContainer,L.formSectionContainer)},w("div",{class:L.widthContainer},w("label",null,_.width,w("input",{type:"number",class:this.classes(L.inputText,L.input),"data-input-name":"width",onchange:this._updateInputValue,value:`${c}`,tabIndex:0,bind:this}))),w("div",{class:L.heightContainer},w("label",null,_.height,w("input",{type:"number",class:this.classes(L.inputText,L.input),"data-input-name":"height",onchange:this._updateInputValue,value:`${s}`,tabIndex:0,bind:this}))),w("button",{type:"button","aria-label":_.swap,class:this.classes(L.widgetButton,L.swapButton,L.iconSwap),onclick:this._switchInput,tabIndex:0,bind:this})),w("div",{class:this.classes(L.panelContainer,L.advancedOptionsSection)},w("button",{"aria-label":_.advancedOptions,"aria-expanded":this._advancedOptionsVisibleForMapOnly?"true":"false",type:"button",class:L.advancedOptionsButton,onclick:this._showAdvancedOptions,bind:this},w("div",{class:L.advancedOptionsButtonContainer},w("span",{"aria-hidden":"true",class:this.classes(L.iconRightTriangleArrow,L.advancedOptionsButtonIconClosed)}),w("span",{"aria-hidden":"true",class:this.classes(L.iconLeftTriangleArrow,L.advancedOptionsButtonIconClosed_RTL)}),w("span",{"aria-hidden":"true",class:this.classes(L.iconDownArrow,L.advancedOptionsButtonIconOpened)}),w("span",{class:L.advancedOptionsButtonTitle},_.advancedOptions))),M))),E=this.exportedLinks.toArray(),A=this._renderExportedLink(E),P={[L.buttonDisabled]:u||!o&&!n},V=null!=this.get("view")&&"2d"!==this.get("view.type"),B=w("div",{class:L.panelError},V?_.sceneViewError:_.serviceError),D=w("div",null,w("ul",{class:L.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:L.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:L.layoutTab,role:"tab",tabIndex:0,"aria-selected":`${!this._layoutTabSelected}`},_.mapOnlyTab)),F,w("button",{"aria-label":_.exportDescription,type:"button",class:this.classes(L.printButton,L.button,P),disabled:u,tabIndex:0,onclick:this._handlePrintMap,bind:this},_.export),m&&b.defaultTemplates.length>0?this.renderTemplateSectionTrigger():null,w("div",{class:L.exportedFilesContainer,afterUpdate:this._scrollExportIntoView,bind:this},w(g,{class:L.exportedFilesTitle,level:this.headingLevel},_.exportText),E.length>0?null:w("div",null,w("div",null,_.exportHint)),A)),N=w("div",{class:L.printWidgetContainer},w("header",{class:L.headerTitle},_.export),this.error||V||!this.view?B:D),$="initializing"===this.get("viewModel.state")?this._renderLoader():N;return w("div",{afterCreate:this._handleRootAfterCreate,bind:this,class:this.classes(L.base,L.widget,L.panel)},$)}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(L.button,L.buttonTertiary,L.templateButton),onclick:this.handleSelectTemplateClick,title:e.selectTemplateDescription,type:"button"},e.selectTemplate)}renderCustomTextElementSection(){const{templateOptions:{customTextElements:e}}=this;return e?w("div",{class:L.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(L.inputText,L.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(L.templateList,L.widget,L.panel),id:s},w(g,{class:L.menuHeader,level:this.headingLevel},e.selectTemplate),w("div",{class:L.templateListScroller},w("ul",{afterCreate:this.handleTemplateListCreation,"aria-activedescendant":`${this.id}__template-item--${this._focusedTemplateIndex}`,"aria-label":n,class:L.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(L.menuItem,{[L.menuItemFocus]:n}),"data-template":t,id:`${this.id}__template-item--${i}`,key:s,title:a},F(s)?e.mapOnlyTab:s)})))),w("div",{class:L.templateListFooter},w("button",{type:"button",class:this.classes(L.button,L.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:L.formSectionContainer,key:s},w("label",null,i,w("input",{type:"text",tabIndex:0,placeholder:a,class:this.classes(L.inputText,L.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={[L.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(!M(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}=S(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,d="ready"===s,c={[L.anchorDisabled]:l||o};let u=a||null;u&&(u=r(u));const h=p(a,location.href),m={[L.iconSpinner]:l,[L.rotate]:l,[L.iconDownload]:h&&d,[L.iconLaunchLink]:!h&&d,[L.iconError]:o,[L.exportedFileError]:o},_={[L.exportedFileError]:o};let b;b=l?t.pending:d?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:L.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(L.exportedFileLink,c),onclick:this._handleLinkClick},w("span",{class:this.classes(m)}),w("span",{class:this.classes(L.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([d()],E.prototype,"allowedFormats",null),e([d()],E.prototype,"allowedLayouts",null),e([d()],E.prototype,"error",null),e([d({type:O})],E.prototype,"exportedLinks",void 0),e([d()],E.prototype,"extraParameters",null),e([d()],E.prototype,"headingLevel",void 0),e([d()],E.prototype,"iconClass",void 0),e([d()],E.prototype,"includeDefaultTemplates",null),e([d()],E.prototype,"label",null),e([d(),T("esri/widgets/Print/t9n/Print")],E.prototype,"messages",void 0),e([d(),T("esri/t9n/common")],E.prototype,"messagesCommon",void 0),e([d()],E.prototype,"portal",null),e([d()],E.prototype,"printServiceUrl",null),e([d()],E.prototype,"templateCustomTextElements",null),e([d({type:b})],E.prototype,"templateOptions",void 0),e([d()],E.prototype,"view",null),e([d({type:_})],E.prototype,"viewModel",void 0),E=e([c("esri.widgets.Print")],E);const A=E;export{A as default};
|