/*
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
*/
define(["../../chunks/_rollupPluginBabelHelpers","../../chunks/tslib.es6","../../core/Clonable","../../core/JSONSupport","../../core/accessorSupport/decorators/property","../../core/arrayUtils","../../core/has","../../core/accessorSupport/ensureType","../../core/accessorSupport/decorators/reader","../../core/accessorSupport/decorators/subclass","../../core/accessorSupport/decorators/writer","./domains","./FeatureTemplate"],(function(e,o,r,t,s,a,n,p,c,i,l,u,d){"use strict";let y=function(o){function r(e){var r;return(r=o.call(this,e)||this).id=null,r.name=null,r.domains=null,r.templates=null,r}e._inheritsLoose(r,o);var t=r.prototype;return t.readDomains=function(e){const o={};for(const r of Object.keys(e))o[r]=u.fromJSON(e[r]);return o},t.writeDomains=function(e,o){const r={};for(const s of Object.keys(e)){var t;if(e[s])r[s]=null==(t=e[s])?void 0:t.toJSON()}o.domains=r},r}(r.ClonableMixin(t.JSONSupport));o.__decorate([s.property({json:{write:!0}})],y.prototype,"id",void 0),o.__decorate([s.property({json:{write:!0}})],y.prototype,"name",void 0),o.__decorate([s.property({json:{write:!0}})],y.prototype,"domains",void 0),o.__decorate([c.reader("domains")],y.prototype,"readDomains",null),o.__decorate([l.writer("domains")],y.prototype,"writeDomains",null),o.__decorate([s.property({type:[d],json:{write:!0}})],y.prototype,"templates",void 0),y=o.__decorate([i.subclass("esri.layers.support.FeatureType")],y);return y}));
