/*
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"],(function(e,t){"use strict";let r=function(){function e(){this._key="",this._keyDirty=!1,this._parameterBits=this._parameterBits?this._parameterBits.map((()=>0)):[],this._parameterNames||(this._parameterNames=[])}return e.prototype.snapshot=function(){const e=this._parameterNames,t={key:this.key};for(const r of e)t[r]=this[r];return t},t._createClass(e,[{key:"key",get:function(){return this._keyDirty&&(this._keyDirty=!1,this._key=String.fromCharCode.apply(String,this._parameterBits)),this._key}}]),e}();function a(e={}){return(t,r)=>{var a;if(t._parameterNames=null!=(a=t._parameterNames)?a:[],t._parameterNames.push(r),null!=e.constValue)Object.defineProperty(t,r,{get:()=>e.constValue});else{var s;const a=t._parameterNames.length-1,i=e.count||2,n=Math.ceil(Math.log2(i)),o=null!=(s=t._parameterBits)?s:[0];let u=0;for(;o[u]+n>16;)u++,u>=o.length&&o.push(0);t._parameterBits=o;const h=o[u],p=(1<<n)-1<<h;o[u]+=n,Object.defineProperty(t,r,{get(){return this[a]},set(e){if(this[a]!==e&&(this[a]=e,this._keyDirty=!0,this._parameterBits[u]=this._parameterBits[u]&~p|+e<<h&p,"number"!=typeof e&&"boolean"!=typeof e))throw"Configuration value for "+r+" must be boolean or number, got "+typeof e}})}}}e.ShaderTechniqueConfiguration=r,e.parameter=a,Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
