// All material copyright Esri, All Rights Reserved, unless otherwise specified. // See https://js.arcgis.com/4.30/esri/copyright.txt for details. //>>built define("../chunks/tslib.es6 ../core/reactiveUtils ../core/screenUtils ../core/accessorSupport/decorators/property ../core/has ../core/Logger ../core/RandomLCG ../core/accessorSupport/decorators/subclass ../intl/number ../properties/defaultUnit ./Widget ./ScaleBar/css ./ScaleBar/ScaleBarViewModel ./support/globalCss ./support/widgetUtils ./support/decorators/messageBundle ./support/jsxFactory".split(" "),function(f,r,t,h,e,B,C,u,v,w,x,b,y,p,D,z,d){function q(a,c){return v.formatNumber(a,{style:"unit", unit:c,unitDisplay:"short"})}e=class extends x{constructor(a,c){super(a,c);this.messages=null;this.style="line";this.viewModel=new y}initialize(){this.addHandles(r.watch(()=>{const {view:a}=this;return[a?.stationary,a?.center,a?.scale,a?.zoom]},([a])=>{a&&this.scheduleRender()}))}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 unit(){return this._defaultUnit}set unit(a){this._overrideIfSome("unit", a)}get view(){return this.viewModel.view}set view(a){this.viewModel.view=a}render(){var a="disabled"===this.viewModel.state;const c={[p.globalCss.disabled]:a};let l,m;if(!a){const {unit:g,style:A}=this;var k="metric"===g||"dual"===g;a="dual"===g?"line":A;if("imperial"===g||"dual"===g){const n=this.viewModel.getScaleBarProperties(100,"imperial");n&&(m="ruler"===a?this._renderRuler(n):this._renderLine(n,"bottom"))}k&&(k=this.viewModel.getScaleBarProperties(100,"metric"))&&(l="ruler"===a?this._renderRuler(k): this._renderLine(k,"top"))}return d.tsx("div",{afterCreate:this._handleRootCreateOrUpdate,afterUpdate:this._handleRootCreateOrUpdate,bind:this,class:this.classes(b.css.base,p.globalCss.widget,c)},l,m)}_renderRuler(a){const {length:c,unit:l,value:m}=a;a=Math.round(c);const k=q(m,l);return d.tsx("div",{class:this.classes(b.css.barContainer,b.css.rulerBarContainer),key:b.css.rulerBarContainer},d.tsx("div",{class:b.css.ruler,styles:{width:`${a}px`}},d.tsx("div",{class:b.css.rulerBlock}),d.tsx("div",{class:b.css.rulerBlock}), d.tsx("div",{class:b.css.rulerBlock}),d.tsx("div",{class:b.css.rulerBlock})),d.tsx("div",{class:this.classes(b.css.labelContainer,b.css.rulerLabelContainer)},d.tsx("div",{class:b.css.label},"0"),d.tsx("div",{class:b.css.label},k)))}_renderLine(a,c){const {length:l,unit:m,value:k}=a;a=Math.round(l);var g=q(k,m);g=d.tsx("div",{class:this.classes(b.css.labelContainer,b.css.lineLabelContainer,{[b.css.topLabelContainer]:"top"===c,[b.css.bottomLabelContainer]:"bottom"===c}),key:b.css.labelContainer},d.tsx("div", {class:b.css.label},g));c=d.tsx("div",{class:this.classes(b.css.line,{[b.css.topLine]:"top"===c,[b.css.bottomLine]:"bottom"===c}),key:b.css.line,styles:{width:`${a}px`}});return d.tsx("div",{class:this.classes(b.css.barContainer,b.css.lineBarContainer),key:b.css.lineBarContainer},[c,g])}_handleRootCreateOrUpdate(a){if(this.viewModel){var {scaleComputedFrom:c}=this.viewModel;a=a.getBoundingClientRect();a=t.createScreenPoint(a.left+window.pageXOffset,a.top+window.pageYOffset);if(a.x!==c.x||a.y!==c.y)this.viewModel.scaleComputedFrom= a}}};f.__decorate([h.property(w.defaultUnitPropertyMetadata)],e.prototype,"_defaultUnit",void 0);f.__decorate([h.property()],e.prototype,"icon",null);f.__decorate([h.property()],e.prototype,"label",null);f.__decorate([h.property(),z.messageBundle("esri/widgets/ScaleBar/t9n/ScaleBar")],e.prototype,"messages",void 0);f.__decorate([h.property({type:["ruler","line"]})],e.prototype,"style",void 0);f.__decorate([h.property({type:["metric","imperial","dual"]})],e.prototype,"unit",null);f.__decorate([h.property()], e.prototype,"view",null);f.__decorate([h.property()],e.prototype,"viewModel",void 0);return e=f.__decorate([u.subclass("esri.widgets.ScaleBar")],e)});