| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- // All material copyright ESRI, All Rights Reserved, unless otherwise specified.
- // See https://js.arcgis.com/4.7/esri/copyright.txt for details.
- //>>built
- define("require exports ../core/tsSupport/declareExtendsHelper ../core/tsSupport/decorateHelper ../core/tsSupport/assignHelper dojo/dom-geometry dojo/i18n!./Popup/nls/Popup dojo/keys ../core/Handles ../core/lang ../core/Logger ../core/watchUtils ../core/accessorSupport/decorators ./Feature ./Spinner ./Widget ./Popup/PopupViewModel ../widgets/support/widgetUtils ./support/widget".split(" "),function(S,aa,T,d,z,N,m,p,U,H,V,k,g,W,X,Y,O,L,c){function w(c,b){return void 0===b?"esri-popup__"+c:"esri-popup__"+
- c+"-"+b}var Z=S.toUrl("./Popup/images/default-action.svg"),Q={buttonEnabled:!0,position:"auto",breakpoint:{width:544}},R=V.getLogger("esri.widgets.Popup");return function(P){function b(a){a=P.call(this)||this;a._blurContainer=!1;a._containerNode=null;a._mainContainerNode=null;a._featureMenuNode=null;a._focusContainer=!1;a._focusDockButton=!1;a._focusFeatureMenuButton=!1;a._focusFirstFeature=!1;a._handles=new U;a._displayActionTextLimit=2;a._pointerOffsetInPx=16;a._spinner=null;a.actions=null;a.alignment=
- "auto";a.autoCloseEnabled=null;a.content=null;a.collapsed=!1;a.collapseEnabled=!0;a.dockEnabled=!1;a.featureCount=null;a.features=null;a.featureNavigationEnabled=!0;a.highlightEnabled=null;a.location=null;a.featureWidgets=[];a.promises=null;a.selectedFeature=null;a.selectedFeatureIndex=null;a.selectedFeatureWidget=null;a.spinnerEnabled=!0;a.title=null;a.updateLocationEnabled=null;a.view=null;a.viewModel=new O;a.visible=null;return a}T(b,P);b.prototype.postInitialize=function(){var a=this;this._addSelectedFeatureIndexHandle();
- this.own(k.watch(this,"viewModel.screenLocation",function(){return a._positionContainer()}),k.watch(this,["viewModel.visible","dockEnabled"],function(){return a._toggleScreenLocationEnabled()}),k.watch(this,"viewModel.screenLocation",function(h,b){!!h!==!!b&&a.reposition()}),k.watch(this,"viewModel.features",function(h){return a._createFeatureWidgets(h)}),k.watch(this,"viewModel.view.padding viewModel.view.size viewModel.visible viewModel.waitingForResult viewModel.location alignment".split(" "),
- function(){return a.reposition()}),k.watch(this,"spinnerEnabled",function(h){return a._spinnerEnabledChange(h)}),k.watch(this,"viewModel.view.size",function(h,b){return a._updateDockEnabledForViewSize(h,b)}),k.watch(this,"viewModel.view",function(h,b){return a._viewChange(h,b)}),k.watch(this,"viewModel.view.ready",function(h,b){return a._viewReadyChange(h,b)}),k.watch(this,["viewModel.waitingForResult","viewModel.location"],function(){return a._displaySpinner()}),k.watch(this,["featureWidgets","viewModel.selectedFeatureIndex"],
- function(){return a._updateFeatureWidget()}),k.watch(this,"selectedFeatureWidget.viewModel.title",function(h){return a._setTitleFromFeatureWidget(h)}),k.watch(this,["selectedFeatureWidget.viewModel.content","selectedFeatureWidget.viewModel.waitingForContent"],function(){return a._setContentFromFeatureWidget()}),k.on(this,"viewModel","trigger-action",function(h){return a._zoomToAction(h)}))};b.prototype.destroy=function(){this._destroyFeatureWidgets();this._destroySpinner();this._handles&&this._handles.destroy();
- this._handles=null};Object.defineProperty(b.prototype,"currentAlignment",{get:function(){return this._getCurrentAlignment()},enumerable:!0,configurable:!0});Object.defineProperty(b.prototype,"currentDockPosition",{get:function(){return this._getCurrentDockPosition()},enumerable:!0,configurable:!0});Object.defineProperty(b.prototype,"dockOptions",{get:function(){return this._get("dockOptions")||Q},set:function(a){var h=z({},Q),b=this.get("viewModel.view.breakpoints"),c={};b&&(c.width=b.xsmall,c.height=
- b.xsmall);a=z({},h,a);h=z({},h.breakpoint,c);c=a.breakpoint;!0===c?a.breakpoint=h:"object"===typeof c&&(a.breakpoint=z({},h,c));this._set("dockOptions",a);this._setCurrentDockPosition();this.reposition()},enumerable:!0,configurable:!0});Object.defineProperty(b.prototype,"featureMenuOpen",{get:function(){return this.viewModel.visible?this._get("featureMenuOpen"):!1},set:function(a){this._set("featureMenuOpen",!!a)},enumerable:!0,configurable:!0});b.prototype.blur=function(){this.visible||R.warn("Popup cannot be blurred while visible is false");
- this._blurContainer=!0;this.scheduleRender()};b.prototype.clear=function(){};b.prototype.close=function(){this.visible=!1};b.prototype.focus=function(){this.visible||R.warn("Popup cannot be focused while visible is false");this._focusContainer=!0;this.scheduleRender()};b.prototype.next=function(){return null};b.prototype.open=function(a){this._handles.remove("selected-index");this.set({featureMenuOpen:a?!!a.featureMenuOpen:!1});this.viewModel.open(a);this._addSelectedFeatureIndexHandle()};b.prototype.previous=
- function(){return null};b.prototype.reposition=function(){this.renderNow();this._positionContainer();this._setCurrentAlignment()};b.prototype.triggerAction=function(a){return null};b.prototype.render=function(){var a=this.collapsed,h=this.collapseEnabled,b=this.dockEnabled,e=this.actions,y=this.featureMenuOpen,f=this.featureNavigationEnabled,d=this.featureWidgets,q=this.visible,g=this.viewModel,k=g.content,n=g.featureCount,p=g.pendingPromisesCount,C=g.selectedFeatureIndex,A=g.title,g=1<n&&f,f=1<n&&
- y,B=h&&!f&&a,a=e&&e.length,r=g&&this._getPageText(n,C),I=this._renderContent(),x=L.isRtl(),D=this.get("selectedFeatureWidget")?this.get("selectedFeatureWidget.viewModel.waitingForContent")||this.get("selectedFeatureWidget.viewModel.content"):I,E=b?m.undock:m.dock,n=this.currentAlignment,e=this.currentDockPosition,p=p?c.tsx("div",{key:w("loading-container"),role:"presentation",class:"esri-popup__loading-container","aria-label":m.loading,title:m.loading},c.tsx("span",{"aria-hidden":"true",class:c.join("esri-popup__icon",
- "esri-icon-loading-indicator","esri-rotating")})):null,J=(F={},F["esri-icon-layer-list"]=!f,F["esri-icon-close"]=f,F),F=c.tsx("span",{"aria-hidden":"true",class:"esri-popup__icon",classes:J}),J=(u={},u["esri-icon-right-triangle-arrow"]=x,u["esri-popup__pagination-previous-icon--rtl"]=x,u["esri-icon-left-triangle-arrow"]=!x,u["esri-popup__pagination-previous-icon"]=!x,u),u=c.tsx("span",{"aria-hidden":"true",class:"esri-popup__icon",classes:J}),J=c.tsx("div",{role:"button",tabIndex:0,bind:this,onclick:this._previous,
- onkeydown:this._previous,class:c.join("esri-popup__button","esri-popup__pagination-previous"),"aria-label":m.previous,title:m.previous},u),u=(v={},v["esri-icon-left-triangle-arrow"]=x,v["esri-popup__pagination-next-icon--rtl"]=x,v["esri-icon-right-triangle-arrow"]=!x,v["esri-popup__pagination-next-icon"]=!x,v),v=c.tsx("span",{"aria-hidden":"true",class:"esri-popup__icon",classes:u}),x=c.tsx("div",{role:"button",tabIndex:0,bind:this,onclick:this._next,onkeydown:this._next,class:c.join("esri-popup__button",
- "esri-popup__pagination-next"),"aria-label":m.next,title:m.next},v),u=L.cssTransition("enter","esri-popup--feature-updated"),v=this.id+"-feature-menu",y=c.tsx("div",{role:"button",tabIndex:0,bind:this,onclick:this._toggleFeatureMenu,onkeydown:this._toggleFeatureMenu,afterCreate:this._focusFeatureMenuButtonNode,afterUpdate:this._focusFeatureMenuButtonNode,class:c.join("esri-popup__button","esri-popup__feature-menu-button"),"aria-haspopup":"true","aria-controls":v,"aria-expanded":y,"aria-label":m.menu,
- title:m.menu},F),r=c.tsx("div",{class:"esri-popup__pagination-page-text"},r),y=g?c.tsx("div",{class:"esri-popup__navigation-buttons",enterAnimation:u},J,r,x,p||y):null,r=this._wouldDockTo(),r=(t={},t["esri-icon-minimize"]=b,t["esri-popup__icon--dock-icon"]=!b,t["esri-icon-dock-right"]=!b&&("top-right"===r||"bottom-right"===r),t["esri-icon-dock-left"]=!b&&("top-left"===r||"bottom-left"===r),t["esri-icon-maximize"]=!b&&"top-center"===r,t["esri-icon-dock-bottom"]=!b&&"bottom-center"===r,t),t=c.tsx("span",
- {"aria-hidden":"true",classes:r,class:"esri-popup__icon"}),t=this.get("dockOptions.buttonEnabled")?c.tsx("div",{role:"button","aria-label":E,title:E,tabIndex:0,bind:this,onclick:this._toggleDockEnabled,onkeydown:this._toggleDockEnabled,afterCreate:this._focusDockButtonNode,afterUpdate:this._focusDockButtonNode,class:c.join("esri-popup__button","esri-popup__button--dock")},t):null,h=h&&A&&(D||a||g),E=(G={},G["esri-popup__header-title--button"]=h,G),r=h?B?m.expand:m.collapse:"",G=this.id+"-popup-title",
- A=A?c.tsx("h2",{class:"esri-popup__header-title",key:A,enterAnimation:u,id:G,role:h?"button":"heading","aria-label":r,title:r,classes:E,bind:this,tabIndex:h?0:-1,onclick:this._toggleCollapsed,onkeydown:this._toggleCollapsed,innerHTML:A}):null,h=c.tsx("span",{"aria-hidden":"true",class:c.join("esri-popup__icon","esri-icon-close")}),h=c.tsx("div",{role:"button",tabIndex:0,bind:this,onclick:this._close,onkeydown:this._close,class:"esri-popup__button","aria-label":m.close,title:m.close},h),h=c.tsx("header",
- {class:"esri-popup__header"},A,c.tsx("div",{class:"esri-popup__header-buttons"},t,h)),t=this.id+"-popup-content",k=D&&!B?c.tsx("article",{key:k,enterAnimation:u,id:t,class:"esri-popup__content"},I):null,I=!B&&("bottom-left"===n||"bottom-center"===n||"bottom-right"===n||"top-left"===e||"top-center"===e||"top-right"===e),B=!B&&("top-left"===n||"top-center"===n||"top-right"===n||"bottom-left"===e||"bottom-center"===e||"bottom-right"===e),D=f?null:c.tsx("div",{key:w("actions"),class:"esri-popup__actions"},
- this._renderActions()),E=c.tsx("section",{key:w("navigation"),class:"esri-popup__navigation"},y),g=g||a?c.tsx("div",{key:w("feature-buttons"),class:"esri-popup__feature-buttons"},D,E):null,C=this._renderFeatureMenuNode(d,C,f,v),d=H.substitute({total:d.length},m.selectedFeatures),v=c.tsx("section",{key:w("menu"),class:"esri-popup__feature-menu"},c.tsx("h2",{class:"esri-popup__feature-menu-header"},d),c.tsx("nav",{class:"esri-popup__feature-menu-viewport",afterCreate:this._featureMenuViewportNodeUpdated,
- afterUpdate:this._featureMenuViewportNodeUpdated},C)),d=b?null:c.tsx("div",{key:w("pointer"),class:"esri-popup__pointer",role:"presentation"},c.tsx("div",{class:c.join("esri-popup__pointer-direction","esri-popup--shadow")})),C=this.get("selectedFeature.layer.title"),a=this.get("selectedFeature.layer.id"),D=(K={},K["esri-popup--shadow"]=b,K),b=(l={},l["esri-popup--aligned-top-center"]=q&&"top-center"===n,l["esri-popup--aligned-bottom-center"]=q&&"bottom-center"===n,l["esri-popup--aligned-top-left"]=
- q&&"top-left"===n,l["esri-popup--aligned-bottom-left"]=q&&"bottom-left"===n,l["esri-popup--aligned-top-right"]=q&&"top-right"===n,l["esri-popup--aligned-bottom-right"]="bottom-right"===n,l["esri-popup--is-docked"]=q&&b,l["esri-popup--shadow"]=q&&!b,l["esri-popup--is-docked-top-left"]=q&&"top-left"===e,l["esri-popup--is-docked-top-center"]=q&&"top-center"===e,l["esri-popup--is-docked-top-right"]=q&&"top-right"===e,l["esri-popup--is-docked-bottom-left"]=q&&"bottom-left"===e,l["esri-popup--is-docked-bottom-center"]=
- q&&"bottom-center"===e,l["esri-popup--is-docked-bottom-right"]=q&&"bottom-right"===e,l["esri-popup--feature-menu-open"]=q&&f,l),l=I?v:null,K=B?v:null,f=I?g:null,n=B?g:null,l=c.tsx("div",{class:c.join("esri-popup__main-container","esri-widget"),classes:D,tabIndex:-1,role:"dialog","aria-labelledby":A?G:"","aria-describedby":k?t:"",bind:this,onkeyup:this._handleMainKeyup,afterCreate:this._mainContainerNodeUpdated,afterUpdate:this._mainContainerNodeUpdated},f,l,h,k,n,K);return c.tsx("div",{key:w("base"),
- class:"esri-popup",role:"presentation",classes:b,"data-layer-title":C,"data-layer-id":a,bind:this,afterCreate:this._positionContainer,afterUpdate:this._positionContainer},q?[l,d]:null);var F,u,v,t,G,K,l};b.prototype._featureMenuOpenChanged=function(a){a?this._focusFirstFeature=!0:this._focusFeatureMenuButton=!0};b.prototype._setTitleFromFeatureWidget=function(a){this.selectedFeatureWidget&&(this.viewModel.title=a||"")};b.prototype._setContentFromFeatureWidget=function(){var a=this.selectedFeatureWidget;
- a&&(this.viewModel.content=a)};b.prototype._handleFeatureMenuKeyup=function(a){a.keyCode===p.ESCAPE&&(a.stopPropagation(),this.featureMenuOpen=!1)};b.prototype._handleFeatureMenuItemKeyup=function(a){var b=a.keyCode,c=this._featureMenuNode,e=this.get("features.length"),y=a.currentTarget["data-feature-index"];c&&(c=c.querySelectorAll("li"),b===p.UP_ARROW?(a.stopPropagation(),c[(y-1+e)%e].focus()):b===p.DOWN_ARROW?(a.stopPropagation(),c[(y+1+e)%e].focus()):b===p.HOME?(a.stopPropagation(),c[0].focus()):
- b===p.END&&(a.stopPropagation(),c[c.length-1].focus()))};b.prototype._handleMainKeyup=function(a){var b=a.keyCode;b===p.LEFT_ARROW&&(a.stopPropagation(),this.previous());b===p.RIGHT_ARROW&&(a.stopPropagation(),this.next())};b.prototype._zoomToAction=function(a){a.action&&"zoom-to"===a.action.id&&this.viewModel.zoomToLocation()};b.prototype._spinnerEnabledChange=function(a){this._destroySpinner();a&&(a=this.get("viewModel.view"),this._createSpinner(a))};b.prototype._displaySpinner=function(){var a=
- this._spinner;if(a){var b=this.viewModel,c=b.location;b.waitingForResult?a.show({location:c}):a.hide()}};b.prototype._getIconStyles=function(a){return{"background-image":a?"url("+a+")":""}};b.prototype._renderAction=function(a,b,M,e){var h=this,f=k.watch(a,["id","className","title","image","visible"],function(){return h.scheduleRender()});this._handles.add(f,e);f=this.get("selectedFeature.attributes");"zoom-to"===a.id&&(a.title=m.zoom,this._handles.add(k.init(this,"view.animation.state",function(b){a.className=
- "waiting-for-target"===b?c.join("esri-popup__icon","esri-icon-loading-indicator","esri-rotating"):c.join("esri-popup__icon","esri-icon-zoom-in-magnifying-glass")}),e));e=a.title;var d=a.className,g=a.image||d?a.image:Z;e=e&&f?H.substitute(f,e):e;d=d&&f?H.substitute(f,d):d;f=g&&f?H.substitute(f,g):g;g=d||"esri-popup__icon";d=(p={},p["esri-popup__action-image"]=!!f,p);p=(z={},z["esri-disabled"]=-1!==g.indexOf("esri-icon-loading-indicator"),z);M=M<=this._displayActionTextLimit?c.tsx("span",{key:w("action-text-"+
- b+"-"+a.uid),class:"esri-popup__action-text"},e):null;return a.visible?c.tsx("div",{key:w("action-"+b+"-"+a.uid),role:"button",tabIndex:0,title:e,"aria-label":e,classes:p,class:c.join("esri-popup__button","esri-popup__action"),bind:this,"data-action-index":b,onclick:this._triggerAction,onkeydown:this._triggerAction},c.tsx("span",{key:w("action-icon-"+b+"-"+a.uid+"-"+g),"aria-hidden":"true",class:g,classes:d,styles:this._getIconStyles(f)}),M):null;var p,z};b.prototype._renderActions=function(){var a=
- this;this._handles.remove("actions");var b=this.actions;if(b){var c=b.length;return b.toArray().map(function(b,h){return a._renderAction(b,h,c,"actions")})}};b.prototype._addSelectedFeatureIndexHandle=function(){var a=this,b=k.watch(this,"viewModel.selectedFeatureIndex",function(b,h){return a._selectedFeatureIndexUpdated(b,h)});this._handles.add(b,"selected-index")};b.prototype._selectedFeatureIndexUpdated=function(a,b){var h=this.featureMenuOpen;this.featureCount&&h&&a!==b&&-1!==a&&(this.featureMenuOpen=
- !1)};b.prototype._updateFeatureWidget=function(){var a=this.featureWidgets[this.viewModel.selectedFeatureIndex]||null;a&&!a.contentEnabled&&(a.contentEnabled=!0);this._set("selectedFeatureWidget",a)};b.prototype._destroyFeatureWidgets=function(){this.featureWidgets.forEach(function(a){return a.destroy()});this._set("featureWidgets",[])};b.prototype._createFeatureWidgets=function(a){var b=this.featureWidgets.slice(0),c=this.get("viewModel.view"),e=[];a.forEach(function(a,h){if(a){var f=null;b.some(function(h,
- c){h&&h.graphic===a&&(f=h,b.splice(c,1));return!!f});e[h]=f||new W({contentEnabled:!1,graphic:a,view:c})}});b.forEach(function(a){return a&&a.destroy()});this._set("featureWidgets",e)};b.prototype._isScreenLocationWithinView=function(a,b){return-1<a.x&&-1<a.y&&a.x<=b.width&&a.y<=b.height};b.prototype._isOutsideView=function(a){var b=a.popupHeight,c=a.popupWidth,e=a.screenLocation,d=a.side;a=a.view;if(isNaN(c)||isNaN(b)||!a||!e)return!1;var f=a.padding;return"right"===d&&e.x+c/2>a.width-f.right||"left"===
- d&&e.x-c/2<f.left||"top"===d&&e.y-b<f.top||"bottom"===d&&e.y+b>a.height-f.bottom?!0:!1};b.prototype._determineCurrentAlignment=function(){var a=this._pointerOffsetInPx,b=this._containerNode,c=this._mainContainerNode,e=this.viewModel,d=e.screenLocation,e=e.view;if(!d||!e||!b)return"top-center";if(!this._isScreenLocationWithinView(d,e))return this._get("currentAlignment")||"top-center";var f=c?window.getComputedStyle(c,null):null,c=f?parseInt(f.getPropertyValue("max-height").replace(/[^-\d\.]/g,""),
- 10):0,f=f?parseInt(f.getPropertyValue("height").replace(/[^-\d\.]/g,""),10):0,g=N.getContentBox(b),b=g.w+a,g=Math.max(g.h,c,f)+a,a=this._isOutsideView({popupHeight:g,popupWidth:b,screenLocation:d,side:"right",view:e}),c=this._isOutsideView({popupHeight:g,popupWidth:b,screenLocation:d,side:"left",view:e}),f=this._isOutsideView({popupHeight:g,popupWidth:b,screenLocation:d,side:"top",view:e}),d=this._isOutsideView({popupHeight:g,popupWidth:b,screenLocation:d,side:"bottom",view:e});return c?f?"bottom-right":
- "top-right":a?f?"bottom-left":"top-left":f?d?"top-center":"bottom-center":"top-center"};b.prototype._getCurrentAlignment=function(){var a=this.alignment;return this.dockEnabled?null:"auto"===a?this._determineCurrentAlignment():"function"===typeof a?a.call(this):a};b.prototype._setCurrentAlignment=function(){this._set("currentAlignment",this._getCurrentAlignment())};b.prototype._setCurrentDockPosition=function(){this._set("currentDockPosition",this._getCurrentDockPosition())};b.prototype._getDockPosition=
- function(){var a=this.get("dockOptions.position");return"auto"===a?this._determineCurrentDockPosition():"function"===typeof a?a.call(this):a};b.prototype._getCurrentDockPosition=function(){return this.dockEnabled?this._getDockPosition():null};b.prototype._wouldDockTo=function(){return this.dockEnabled?null:this._getDockPosition()};b.prototype._renderFeatureMenuItemNode=function(a,b,d,e){var h=b===d;e=(f={},f["esri-popup__feature-menu-item--selected"]=h,f);f=h?c.tsx("span",{key:w("feature-menu-selected-feature-"+
- d),title:m.selectedFeature,"aria-label":m.selectedFeature,class:"esri-icon-check-mark"}):null;a=c.tsx("span",{innerHTML:a.title||m.untitled});return c.tsx("li",{role:"menuitem",tabIndex:-1,key:w("feature-menu-feature-"+d),classes:e,class:"esri-popup__feature-menu-item",bind:this,"data-feature-index":b,onkeyup:this._handleFeatureMenuItemKeyup,onclick:this._selectFeature,onkeydown:this._selectFeature},c.tsx("span",{class:"esri-popup__feature-menu-title"},a,f));var f};b.prototype._renderFeatureMenuNode=
- function(a,b,d,e){var h=this;return 1<a.length?c.tsx("ol",{class:"esri-popup__feature-menu-list",id:e,bind:this,afterCreate:this._featureMenuNodeUpdated,afterUpdate:this._featureMenuNodeUpdated,onkeyup:this._handleFeatureMenuKeyup,role:"menu"},a.map(function(a,c){return h._renderFeatureMenuItemNode(a,c,b,d)})):null};b.prototype._determineCurrentDockPosition=function(){var a=this.get("viewModel.view"),b=L.isRtl()?"top-left":"top-right";if(!a)return b;var c=a.padding||{left:0,right:0,top:0,bottom:0},
- c=a.width-c.left-c.right;return(a=a.get("breakpoints"))&&c<=a.xsmall?"bottom-center":b};b.prototype._renderContent=function(){var a=this.get("viewModel.content");if("string"===typeof a)return c.tsx("div",{key:a,innerHTML:a});if(c.isWidget(a))return c.tsx("div",{key:a},a.render());if(a instanceof HTMLElement)return c.tsx("div",{key:a,bind:a,afterCreate:this._attachToNode});if(c.isWidgetBase(a))return c.tsx("div",{key:a,bind:a.domNode,afterCreate:this._attachToNode})};b.prototype._attachToNode=function(a){a.appendChild(this)};
- b.prototype._positionContainer=function(a){void 0===a&&(a=this._containerNode);a&&(this._containerNode=a);if(a){var b=this.viewModel.screenLocation,c=N.getContentBox(a);if(b=this._calculatePositionStyle(b,c))a.style.top=b.top,a.style.left=b.left,a.style.bottom=b.bottom,a.style.right=b.right}};b.prototype._calculateFullWidth=function(a){var b=this.currentAlignment,c=this._pointerOffsetInPx;return"top-left"===b||"bottom-left"===b||"top-right"===b||"bottom-right"===b?a+c:a};b.prototype._calculateAlignmentPosition=
- function(a,b,c,d){var h=this.currentAlignment,f=this._pointerOffsetInPx;d/=2;var g=c.height-b;c=c.width-a;var e=this.view.padding;if("bottom-center"===h)return{top:b+f-e.top,left:a-d-e.left};if("top-left"===h)return{bottom:g+f-e.bottom,right:c+f-e.right};if("bottom-left"===h)return{top:b+f-e.top,right:c+f-e.right};if("top-right"===h)return{bottom:g+f-e.bottom,left:a+f-e.left};if("bottom-right"===h)return{top:b+f-e.top,left:a+f-e.left};if("top-center"===h)return{bottom:g+f-e.bottom,left:a-d-e.left}};
- b.prototype._calculatePositionStyle=function(a,b){var c=this.view;if(c){if(this.dockEnabled)return{left:"",top:"",right:"",bottom:""};if(a&&b&&(b=this._calculateFullWidth(b.w),a=this._calculateAlignmentPosition(a.x,a.y,c,b)))return{top:void 0!==a.top?a.top+"px":"auto",left:void 0!==a.left?a.left+"px":"auto",bottom:void 0!==a.bottom?a.bottom+"px":"auto",right:void 0!==a.right?a.right+"px":"auto"}}};b.prototype._viewChange=function(a,b){a&&b&&(this.close(),this.clear())};b.prototype._viewReadyChange=
- function(a,b){a?(a=this.get("viewModel.view"),this._wireUpView(a)):b&&(this.close(),this.clear())};b.prototype._wireUpView=function(a){this._destroySpinner();a&&(this.spinnerEnabled&&this._createSpinner(a),this._setDockEnabledForViewSize(this.dockOptions))};b.prototype._dockingThresholdCrossed=function(a,b,c){var d=a[0];a=a[1];var h=b[0];b=b[1];var f=c.width;c=c.height;return d<=f&&h>f||d>f&&h<=f||a<=c&&b>c||a>c&&b<=c};b.prototype._updateDockEnabledForViewSize=function(a,b){if(a&&b){var c=this.get("viewModel.view.padding")||
- {left:0,right:0,top:0,bottom:0},d=c.left+c.right,h=c.top+c.bottom,c=[],f=[];c[0]=a[0]-d;c[1]=a[1]-h;f[0]=b[0]-d;f[1]=b[1]-h;a=this.dockOptions;this._dockingThresholdCrossed(c,f,a.breakpoint)&&this._setDockEnabledForViewSize(a);this._setCurrentDockPosition()}};b.prototype._focusDockButtonNode=function(a){this._focusDockButton&&(this._focusDockButton=!1,a.focus())};b.prototype._mainContainerNodeUpdated=function(a){this._mainContainerNode=a;this._focusContainer?(this._focusContainer=!1,a.focus()):this._blurContainer&&
- (this._blurContainer=!1,a.blur())};b.prototype._featureMenuNodeUpdated=function(a){(this._featureMenuNode=a)&&this._focusFirstFeature&&(this._focusFirstFeature=!1,a=a.querySelectorAll("li"),a.length&&a[0].focus())};b.prototype._focusFeatureMenuButtonNode=function(a){this._focusFeatureMenuButton&&(this._focusFeatureMenuButton=!1,a.focus())};b.prototype._featureMenuViewportNodeUpdated=function(a){a&&(a.scrollTop=0)};b.prototype._toggleScreenLocationEnabled=function(){var a=this.dockEnabled,b=this.viewModel;
- b&&(b.screenLocationEnabled=this.visible&&!a)};b.prototype._shouldDockAtCurrentViewSize=function(a){a=a.breakpoint;var b=this.get("viewModel.view.ui"),c=b.width,b=b.height;if(isNaN(c)||isNaN(b))return!1;c=a.hasOwnProperty("width")&&c<=a.width;a=a.hasOwnProperty("height")&&b<=a.height;return c||a};b.prototype._setDockEnabledForViewSize=function(a){a.breakpoint&&(this.dockEnabled=this._shouldDockAtCurrentViewSize(a))};b.prototype._getPageText=function(a,b){return H.substitute({index:b+1,total:a},m.pageText)};
- b.prototype._destroySpinner=function(){var a=this._spinner,b=this.view;a&&(b&&b.ui.remove(this._spinner,"popup-spinner"),a.destroy(),this._spinner=null)};b.prototype._createSpinner=function(a){a&&(this._spinner=new X({view:a}),a.ui.add(this._spinner,{key:"popup-spinner",position:"manual"}))};b.prototype._toggleCollapsed=function(){this.collapsed=!this.collapsed};b.prototype._close=function(){this.close();this.view&&this.view.focus()};b.prototype._toggleDockEnabled=function(){this.dockEnabled=!this.dockEnabled;
- this._focusDockButton=!0;this.scheduleRender()};b.prototype._toggleFeatureMenu=function(){var a=!this.featureMenuOpen;this._featureMenuOpenChanged(a);this.featureMenuOpen=a};b.prototype._triggerAction=function(a){this.viewModel.triggerAction(a.currentTarget["data-action-index"])};b.prototype._selectFeature=function(a){a=a.currentTarget["data-feature-index"];isNaN(a)||(this.viewModel.selectedFeatureIndex=a)};b.prototype._next=function(){this.next()};b.prototype._previous=function(){this.previous()};
- d([g.aliasOf("viewModel.actions"),c.renderable()],b.prototype,"actions",void 0);d([g.property()],b.prototype,"alignment",void 0);d([g.aliasOf("viewModel.autoCloseEnabled")],b.prototype,"autoCloseEnabled",void 0);d([g.aliasOf("viewModel.content"),c.renderable()],b.prototype,"content",void 0);d([g.property(),c.renderable()],b.prototype,"collapsed",void 0);d([g.property(),c.renderable()],b.prototype,"collapseEnabled",void 0);d([g.property({readOnly:!0,dependsOn:["dockEnabled","alignment"]}),c.renderable()],
- b.prototype,"currentAlignment",null);d([g.property({readOnly:!0,dependsOn:["viewModel.view.ready","dockEnabled","dockOptions"]}),c.renderable()],b.prototype,"currentDockPosition",null);d([g.property(),c.renderable()],b.prototype,"dockOptions",null);d([g.property(),c.renderable()],b.prototype,"dockEnabled",void 0);d([g.aliasOf("viewModel.featureCount"),c.renderable()],b.prototype,"featureCount",void 0);d([g.property({dependsOn:["viewModel.visible"]}),c.renderable()],b.prototype,"featureMenuOpen",null);
- d([g.aliasOf("viewModel.features"),c.renderable()],b.prototype,"features",void 0);d([g.property(),c.renderable()],b.prototype,"featureNavigationEnabled",void 0);d([g.aliasOf("viewModel.highlightEnabled")],b.prototype,"highlightEnabled",void 0);d([g.aliasOf("viewModel.location"),c.renderable()],b.prototype,"location",void 0);d([g.property({readOnly:!0}),c.renderable()],b.prototype,"featureWidgets",void 0);d([g.aliasOf("viewModel.promises")],b.prototype,"promises",void 0);d([g.aliasOf("viewModel.selectedFeature"),
- c.renderable()],b.prototype,"selectedFeature",void 0);d([g.aliasOf("viewModel.selectedFeatureIndex"),c.renderable()],b.prototype,"selectedFeatureIndex",void 0);d([g.property({readOnly:!0}),c.renderable()],b.prototype,"selectedFeatureWidget",void 0);d([g.property()],b.prototype,"spinnerEnabled",void 0);d([g.aliasOf("viewModel.title"),c.renderable()],b.prototype,"title",void 0);d([g.aliasOf("viewModel.updateLocationEnabled")],b.prototype,"updateLocationEnabled",void 0);d([g.aliasOf("viewModel.view")],
- b.prototype,"view",void 0);d([g.property({type:O}),c.renderable("viewModel.screenLocation viewModel.screenLocationEnabled viewModel.state viewModel.pendingPromisesCount viewModel.promiseCount viewModel.waitingForResult".split(" ")),c.vmEvent(["triggerAction","trigger-action"])],b.prototype,"viewModel",void 0);d([g.aliasOf("viewModel.visible"),c.renderable()],b.prototype,"visible",void 0);d([g.aliasOf("viewModel.clear")],b.prototype,"clear",null);d([g.aliasOf("viewModel.next")],b.prototype,"next",
- null);d([g.aliasOf("viewModel.previous")],b.prototype,"previous",null);d([g.aliasOf("viewModel.triggerAction")],b.prototype,"triggerAction",null);d([c.accessibleHandler()],b.prototype,"_toggleCollapsed",null);d([c.accessibleHandler()],b.prototype,"_close",null);d([c.accessibleHandler()],b.prototype,"_toggleDockEnabled",null);d([c.accessibleHandler()],b.prototype,"_toggleFeatureMenu",null);d([c.accessibleHandler()],b.prototype,"_triggerAction",null);d([c.accessibleHandler()],b.prototype,"_selectFeature",
- null);d([c.accessibleHandler()],b.prototype,"_next",null);d([c.accessibleHandler()],b.prototype,"_previous",null);return b=d([g.subclass("esri.widgets.Popup")],b)}(g.declared(Y))});
|