You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
12 KiB
26 lines
12 KiB
// All material copyright Esri, All Rights Reserved, unless otherwise specified. |
|
// See https://js.arcgis.com/4.30/esri/copyright.txt for details. |
|
//>>built |
|
define("require ../chunks/tslib.es6 ../intl ../core/events ../core/maybe ../core/reactiveUtils ../core/accessorSupport/decorators/property ../core/accessorSupport/decorators/cast ../core/RandomLCG ../core/has ../core/accessorSupport/decorators/subclass ./Slider ./Widget ./ScaleRangeSlider/css ./ScaleRangeSlider/scalePreviewUtils ./ScaleRangeSlider/ScaleRanges ./ScaleRangeSlider/ScaleRangeSliderViewModel ../chunks/componentsUtils ./support/globalCss ./support/widgetUtils ./support/decorators/messageBundle ./support/jsxFactory ../intl/number ../intl/substitute".split(" "), |
|
function(p,g,e,x,A,t,h,B,O,P,C,D,E,m,y,u,F,G,z,H,I,k,J,K){const w={preview:!0,scaleMenus:{maxScaleMenu:!0,minScaleMenu:!0}},L={maximumFractionDigits:0};e=class extends E{constructor(a,b){super(a,b);this._minThumbNode=this._maxThumbNode=this._customInput=this._activeThumb=this._activeMenu=null;this._previewAutoCloseTimeoutId=void 0;this._previewPopover=null;this._slider=new D({thumbCreatedFunction:(c,f,d)=>{0===c?this._minThumbNode=d:1===c&&(this._maxThumbNode=d);this.addHandles([x.on(d,"mouseenter", |
|
()=>{this._activeThumb=c;this.scheduleRender()}),x.on(d,"mouseleave",()=>{this._previewAutoCloseTimeoutId||(this._activeThumb=null,this.scheduleRender())})])}});this.disabled=!1;this.messages=null;this.region="US";this.viewModel=new F;this.visibleElements=w;this._afterInputNumberCreate=c=>{"value"in c&&null!=c.value&&"setNumberValue"in c&&c.setNumberValue({committing:!1,value:c.value,origin:"direct"});this._customInput=c};this._handleCustomScaleInputChange=(c,f)=>{const {viewModel:{scaleRanges:d}}= |
|
this,l=Number.parseFloat(f.value);Number.isNaN(l)?f.value=c:this._setScale(d.clampScale(l))}}loadDependencies(){return G.loadCalciteComponents({button:()=>new Promise((a,b)=>p(["../chunks/calcite-button"],a,b)),dropdown:()=>new Promise((a,b)=>p(["../chunks/calcite-dropdown"],a,b)),"dropdown-group":()=>new Promise((a,b)=>p(["../chunks/calcite-dropdown-group"],a,b)),"dropdown-item":()=>new Promise((a,b)=>p(["../chunks/calcite-dropdown-item"],a,b)),icon:()=>new Promise((a,b)=>p(["../chunks/calcite-icon"], |
|
a,b)),"input-number":()=>new Promise((a,b)=>p(["../chunks/calcite-input-number"],a,b)),label:()=>new Promise((a,b)=>p(["../chunks/calcite-label"],a,b)),popover:()=>new Promise((a,b)=>p(["../chunks/calcite-popover"],a,b))})}initialize(){this.addHandles([t.watch(()=>this.viewModel,a=>this._slider.viewModel=a?.sliderViewModel??null,t.initial),t.watch(()=>this._interactive,a=>{this._slider.disabled=!a;a||this._setActiveMenu(null)},t.initial),this._slider.on("thumb-drag",({index:a})=>{this._activeThumb= |
|
a;clearTimeout(this._previewAutoCloseTimeoutId);this._previewAutoCloseTimeoutId=setTimeout(()=>{this._previewAutoCloseTimeoutId=void 0;this._activeThumb=null},250)}),t.when(()=>!0===this.view?.stationary,()=>this.scheduleRender())])}destroy(){this._slider=A.destroyMaybe(this._slider)}get _maxScaleMenuEnabled(){const {scaleMenus:a}=this.visibleElements;return!0===a||"boolean"!==typeof a&&a.maxScaleMenu}get _minScaleMenuEnabled(){const {scaleMenus:a}=this.visibleElements;return!0===a||"boolean"!==typeof a&& |
|
a.minScaleMenu}get _interactive(){return"disabled"!==this.viewModel?.state&&!this.disabled}get effectiveMaxScale(){return this.viewModel.effectiveMaxScale}get effectiveMinScale(){return this.viewModel.effectiveMinScale}get effectiveMaxScaleLimit(){return this.viewModel.effectiveMaxScaleLimit}get effectiveMinScaleLimit(){return this.viewModel.effectiveMinScaleLimit}get icon(){return"actual-size"}set icon(a){this._overrideIfSome("icon",a)}get label(){return this.messages?.widgetLabel??""}set label(a){this._overrideIfSome("label", |
|
a)}get layer(){return this.viewModel.layer}set layer(a){this.viewModel.layer=a}get maxScale(){return this.viewModel.maxScale}set maxScale(a){this.viewModel.maxScale=a}get maxScaleLimit(){return this.viewModel.maxScaleLimit}set maxScaleLimit(a){this.viewModel.maxScaleLimit=a}get mode(){return this.viewModel.mode}set mode(a){this.viewModel.mode=a}get minScale(){return this.viewModel.minScale}set minScale(a){this.viewModel.minScale=a}get minScaleLimit(){return this.viewModel.minScaleLimit}set minScaleLimit(a){this.viewModel.minScaleLimit= |
|
a}get view(){return this.viewModel.view}set view(a){this.viewModel.view=a}castVisibleElements(a){return{...w,...a,scaleMenus:"boolean"===typeof a?.scaleMenus?a.scaleMenus:{...w.scaleMenus,...a?.scaleMenus}}}formatScale(a){return`${"1:"}${J.formatNumber(a,L)}`}render(){const {_interactive:a,_slider:b,label:c,view:f,viewModel:{state:d}}=this,l=this._getLabel("min"),q=this._getLabel("max");var {segmentElements:n}=b;(n=n.at("min-scale-only"===this.mode?-1:-2))&&n.classList.add(m.css.segmentElementActive); |
|
return k.tsx("div",{"aria-label":c,class:this.classes(m.css.base,z.globalCss.widget,a?null:z.globalCss.disabled)},k.tsx("div",{class:m.css.scaleIndicatorWrapper,dir:"ltr"},"ready"===d&&f?this._renderCurrentScaleIndicator():null,b.render(),this._renderPreviewPopover()),k.tsx("div",{class:m.css.scaleMenuContainer},this._minScaleMenuEnabled&&l?this._renderScaleMenuToggle("min",l):null,k.tsx("div",{class:m.css.scaleMenuSeparator}),this._maxScaleMenuEnabled&&q?this._renderScaleMenuToggle("max",q):null))}_renderPreviewPopover(){const {_activeThumb:a}= |
|
this,b=null!=a&&this.visibleElements.preview;return k.tsx("calcite-popover",{afterCreate:H.storeNode,afterUpdate:()=>this._previewPopover?.reposition(),bind:this,"data-node-ref":"_previewPopover",label:this.messages.preview,offsetDistance:16,open:b,overlayPositioning:"fixed",placement:"top",referenceElement:b?0===a?this._minThumbNode:this._maxThumbNode:"",triggerDisabled:!0},this._renderScalePreview())}_renderScalePreview(){const {_activeThumb:a,_slider:b,region:c,viewModel:{scaleRanges:f}}=this; |
|
var d=0===a||"range"!==this.mode?b.values[0]:b.values[1];d=Object.keys(u.RecommendedScales).indexOf(f.findScaleRangeByIndex(d).id);d={backgroundImage:y.getScalePreviewSource(c),backgroundPosition:y.getScalePreviewSpriteBackgroundPosition(d)};return k.tsx("div",{class:m.css.scalePreview},k.tsx("div",{class:m.css.scalePreviewThumbnail,styles:d}))}_getLabel(a){const {_slider:b,messages:c,mode:f,viewModel:{scaleRanges:d}}=this,[l,q]=b.values,n=c.scaleRangeLabels[d.findScaleRangeByIndex("min"===a||"range"!== |
|
f?l:q).id];switch(f){case "range":return n;case "max-scale-only":return"min"===a?null:n;case "min-scale-only":return"min"===a?n:null}}_renderScaleMenuToggle(a,b){const {_activeMenu:c,_interactive:f}=this,d=c===a;return[k.tsx("calcite-dropdown",{closeOnSelectDisabled:!0,"data-type":a,open:d,overlayPositioning:"fixed",placement:"max"===a?"bottom-end":"bottom-start",scale:"s",onCalciteDropdownClose:({target:l})=>{this._activeMenu===a&&this._setActiveMenu(null);l.setFocus()},onCalciteDropdownOpen:()=> |
|
this._setActiveMenu(a)},k.tsx("calcite-button",{appearance:d?"outline":"transparent","aria-pressed":d.toString(),class:m.css.scaleMenuToggle,disabled:!f,iconEnd:"chevron-down",scale:"s",slot:"trigger"},b),d&&"max"===a?this._renderMaxScaleMenu():null,d&&"min"===a?this._renderMinScaleMenu():null)]}_renderMinScaleMenu(){const {effectiveMaxScale:a,effectiveMinScaleLimit:b,view:c,viewModel:{scaleRanges:f}}=this,d=c?c.scale:void 0;return this._renderScaleMenu({type:"min",min:b,max:f.findScaleRange(a).minScale, |
|
viewScale:d})}_renderMaxScaleMenu(){const {effectiveMinScale:a,effectiveMaxScaleLimit:b,view:c,viewModel:{scaleRanges:f}}=this,d=c?c.scale:void 0;return this._renderScaleMenu({type:"max",min:f.findScaleRange(a).maxScale,max:b,viewScale:d})}_renderScaleMenu({viewScale:a,min:b,max:c,type:f}){const {effectiveMaxScale:d,effectiveMinScale:l,messages:q}=this,n="max"===f?d:l,M=u.fromScaleRange({minScale:b,maxScale:c}),N=this.messages.featuredScaleLabels,v=u.RecommendedScales;b=Object.keys(v).filter(r=>M.contains(v[r])).map(r=> |
|
this._renderScaleMenuItem({scaleLabel:N[r],scaleValue:v[r],isSelected:n===v[r],valueVisible:"world"!==r}));return k.tsx("calcite-dropdown-group",{key:`${this.id}__scale-menu--${f}`},this._renderCustomScaleValue({currentScale:n}),null!=a?this._renderScaleMenuItem({scaleValue:a,scaleLabel:q.featuredScaleLabels.current,isSelected:n===a,valueVisible:!0}):null,b)}_renderCustomScaleValue({currentScale:a}){const {messages:b}=this,c=Math.round(a).toString();return k.tsx("calcite-dropdown-item",{afterCreate:f=> |
|
void f.setFocus(),key:"custom-scale",label:b.featuredScaleLabels.custom,onCalciteDropdownItemSelect:()=>void this._customInput?.setFocus()},k.tsx("calcite-label",{scale:"s"},k.tsx("span",null,b.featuredScaleLabels.custom),k.tsx("calcite-input-number",{afterCreate:this._afterInputNumberCreate,groupSeparator:!0,inputMode:"numeric",max:u.RecommendedScales.world,min:0,numberButtonType:"none",placeholder:b.customScaleInputTooltip,prefixText:"1:",scale:"s",step:1,value:c,onCalciteInputNumberChange:({target:f})=> |
|
this._handleCustomScaleInputChange(c,f)})))}_renderScaleMenuItem(a){const {scaleValue:b,scaleLabel:c,valueVisible:f,isSelected:d}=a;return k.tsx("calcite-dropdown-item",{key:c,label:c,selected:d,onCalciteDropdownItemSelect:this._setScale.bind(this,b)},c,f?k.tsx("div",{class:m.css.scaleMenuSubLabel},this.formatScale(b)):void 0)}_renderCurrentScaleIndicator(){const {_slider:a,messages:b,view:c,viewModel:{scaleRanges:f}}=this;var d=f.clampScale(c.scale),l=this.viewModel.mapScaleToSlider(d);d=l/a.max; |
|
l=b.scaleRangeLabels[f.findScaleRangeByIndex(l).id];l=K.substitute(b.currentScaleTooltip,{scaleLabel:l});return k.tsx("div",{class:m.css.scaleIndicatorContainer,key:"scale-indicator"},k.tsx("div",{"aria-label":l,class:m.css.scaleIndicator,styles:{left:`${100*d}%`},title:l},this.renderCurrentScaleIndicatorIcon()))}renderCurrentScaleIndicatorIcon(){return k.tsx("calcite-icon",{class:m.css.scaleIndicatorIcon,icon:"caret-up",scale:"s"})}_setScale(a){"max"===this._activeMenu?this.maxScale=Math.min(a,this.effectiveMinScale- |
|
1):this.minScale=Math.max(a,this.effectiveMaxScale+1);this._setActiveMenu(null)}_setActiveMenu(a){this._activeMenu=a}};g.__decorate([h.property()],e.prototype,"_activeMenu",void 0);g.__decorate([h.property()],e.prototype,"_activeThumb",void 0);g.__decorate([h.property()],e.prototype,"_customInput",void 0);g.__decorate([h.property()],e.prototype,"_maxScaleMenuEnabled",null);g.__decorate([h.property()],e.prototype,"_minScaleMenuEnabled",null);g.__decorate([h.property()],e.prototype,"_slider",void 0); |
|
g.__decorate([h.property({readOnly:!0})],e.prototype,"_interactive",null);g.__decorate([h.property()],e.prototype,"disabled",void 0);g.__decorate([h.property()],e.prototype,"effectiveMaxScale",null);g.__decorate([h.property()],e.prototype,"effectiveMinScale",null);g.__decorate([h.property()],e.prototype,"effectiveMaxScaleLimit",null);g.__decorate([h.property()],e.prototype,"effectiveMinScaleLimit",null);g.__decorate([h.property()],e.prototype,"icon",null);g.__decorate([h.property()],e.prototype,"label", |
|
null);g.__decorate([h.property()],e.prototype,"layer",null);g.__decorate([h.property()],e.prototype,"maxScale",null);g.__decorate([h.property()],e.prototype,"maxScaleLimit",null);g.__decorate([h.property(),I.messageBundle("esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider")],e.prototype,"messages",void 0);g.__decorate([h.property()],e.prototype,"mode",null);g.__decorate([h.property()],e.prototype,"minScale",null);g.__decorate([h.property()],e.prototype,"minScaleLimit",null);g.__decorate([h.property()], |
|
e.prototype,"region",void 0);g.__decorate([h.property()],e.prototype,"view",null);g.__decorate([h.property()],e.prototype,"viewModel",void 0);g.__decorate([h.property()],e.prototype,"visibleElements",void 0);g.__decorate([B.cast("visibleElements")],e.prototype,"castVisibleElements",null);return e=g.__decorate([C.subclass("esri.widgets.ScaleRangeSlider")],e)}); |