/* COPYRIGHT Esri - https://js.arcgis.com/5.1.0/LICENSE.txt */
import{__decorate as t}from"tslib";import e from"../../core/Accessor.js";import{createObservableProxy as r}from"../../core/proxy.js";import s from"../../core/ReactiveMap.js";import{property as i,subclass as o}from"../../core/accessorSupport/decorators.js";import{valuesAreEquivalent as a}from"../support/forms/formUtils.js";let u=class extends e{constructor(t){super(t),this._stashedAttributes=new s,this.userChangesHaveMadeInvalid=!1,this.original=t.source.clone();const e=t.source.attributes??{},i=r({...e});this.attributes=i;const o=t.source.cloneShallow();o.attributes=i,this.plainGraphic=o}get geometry(){return this.plainGraphic.geometry}set geometry(t){this.plainGraphic.geometry=t}get layer(){return this.source.sourceLayer??this.source.layer}attributeHasChanged(t){return!a(this.attributes[t],this.original.attributes?.[t])}getAttribute(t){return this.attributes[t]??null}getObjectId(){return this.plainGraphic.getObjectId()}getGlobalId(){return this.plainGraphic.getGlobalId()}getStashedAttribute(t){return this._stashedAttributes.get(t)}setAttribute(t,e){this.attributes[t]=e}stashAttribute(t,e){this._stashedAttributes.set(t,e)}clearStashedAttributes(){this._stashedAttributes.clear()}};t([i()],u.prototype,"attributes",void 0),t([i()],u.prototype,"geometry",null),t([i()],u.prototype,"plainGraphic",void 0),t([i()],u.prototype,"layer",null),t([i()],u.prototype,"original",void 0),t([i({constructOnly:!0})],u.prototype,"source",void 0),t([i()],u.prototype,"userChangesHaveMadeInvalid",void 0),u=t([o("esri.widgets.BatchAttributeForm.ReactiveGraphic")],u);export{u as ReactiveGraphic};
