/*
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
*/
define(["exports","../../../chunks/_rollupPluginBabelHelpers","../../../chunks/tslib.es6","../../../core/Evented","../../../core/HandleOwner","../../../core/Identifiable","../../../core/Promise","../../../core/accessorSupport/decorators/property","../../../core/arrayUtils","../../../core/has","../../../core/accessorSupport/ensureType","../../../core/accessorSupport/decorators/subclass"],(function(e,t,r,i,o,n,s,l,u,p,a,c){"use strict";const d=(e,u)=>{let p=function(e){function r(t){var r;return(r=e.call(this,t)||this).sublayer=null,r.parent=null,r.view=null,r}t._inheritsLoose(r,e);var i=r.prototype;return i.initialize=function(){},i.canResume=function(){return!this.get("parent.suspended")&&this.get("view.ready")&&this.visible||!1},i.isUpdating=function(){return!1},t._createClass(r,[{key:"suspended",get:function(){return!this.canResume()}},{key:"updating",get:function(){return!this.suspended&&this.isUpdating()}},{key:"visible",get:function(){return!0===this.get("sublayer.visible")},set:function(e){void 0!==e?this._override("visible",e):this._clearOverride("visible")}},{key:"fullOpacity",get:function(){const e=e=>null!=e?e:1;return e(this.get("sublayer.opacity"))*e(this.get("parent.fullOpacity"))}}]),r}(s.EsriPromiseMixin(o.HandleOwnerMixin(n.IdentifiableMixin(i.EventedMixin(e)))));return r.__decorate([l.property()],p.prototype,"sublayer",void 0),r.__decorate([l.property()],p.prototype,"parent",void 0),r.__decorate([l.property({readOnly:!0})],p.prototype,"suspended",null),r.__decorate([l.property({type:Boolean,readOnly:!0})],p.prototype,"updating",null),r.__decorate([l.property()],p.prototype,"view",void 0),r.__decorate([l.property()],p.prototype,"visible",null),r.__decorate([l.property()],p.prototype,"fullOpacity",null),p=r.__decorate([c.subclass("esri.views.3d.layers.BuildingSublayerView3D")],p),p};e.BuildingSublayerView3DMixin=d,Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
