{"version":3,"file":"tangential-media-types.mjs","sources":["../../../../projects/tangential/media-types/src/lib/base-media-type.ts","../../../../projects/tangential/media-types/src/lib/stamped-media-type.ts","../../../../projects/tangential/media-types/src/public-api.ts","../../../../projects/tangential/media-types/src/tangential-media-types.ts"],"sourcesContent":["import {generatePushID, Jsonified, JsonUtil} from '@tangential/core'\n\nexport interface BaseMediaTypeJson {\n  $key?: string\n}\n\nconst Model: BaseMediaTypeJson = {\n  $key: undefined\n}\n\nexport class BaseMediaType implements Jsonified<BaseMediaType, BaseMediaTypeJson>, BaseMediaTypeJson {\n  static $model: BaseMediaTypeJson = Model\n  $key?: string\n\n  constructor(config: any, key?: string) {\n    JsonUtil.applyJsonToInstance(this, config)\n    this.$key = key || config.$key || generatePushID()\n  }\n\n  getModel():BaseMediaTypeJson {\n    // this.constructor dereferences to the subclass, so we're looking at a static field on the subclass.\n    // This can easily break if a subclass doesn't follow the static $model pattern... but that's the entire point\n    // of the *Type pattern subclassing from this BaseMediaType class, soooo.\n    const hack: { '$model': BaseMediaTypeJson } = (this.constructor as unknown) as ({ '$model': BaseMediaTypeJson })\n    return hack['$model']\n  }\n\n  toJson(withHiddenFields?: boolean): BaseMediaTypeJson {\n    return JsonUtil.instanceToJson(this, withHiddenFields)\n  }\n\n\n}\n","import {Jsonified, ObjectUtil} from '@tangential/core'\nimport {BaseMediaType, BaseMediaTypeJson} from './base-media-type'\n\n\nexport interface StampedMediaTypeJson extends BaseMediaTypeJson {\n  createdMils?: number\n  editedMils?: number\n}\n\nconst Model: StampedMediaTypeJson = {\n  createdMils: undefined,\n  editedMils:  undefined\n}\n\nexport class StampedMediaType extends BaseMediaType implements Jsonified<StampedMediaType, StampedMediaTypeJson>, StampedMediaTypeJson {\n  static override $model: StampedMediaTypeJson = ObjectUtil.assignDeep({}, BaseMediaType.$model, Model)\n  createdMils?: number\n  editedMils?: number\n\n\n  constructor(config: any, key?: string) {\n    super(config, key)\n    this.createdMils = config.createdMils || Date.now()\n    this.editedMils = config.editedMils || this.createdMils\n  }\n\n\n}\n","/*\n * Public API Surface of media-types\n */\nexport * from './lib/base-media-type'\nexport * from './lib/stamped-media-type'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Model"],"mappings":";;AAMA,MAAMA,OAAK,GAAsB;AAC/B,IAAA,IAAI,EAAE,SAAS;CAChB,CAAA;MAEY,aAAa,CAAA;IAIxB,WAAY,CAAA,MAAW,EAAE,GAAY,EAAA;AACnC,QAAA,QAAQ,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAC1C,IAAI,CAAC,IAAI,GAAG,GAAG,IAAI,MAAM,CAAC,IAAI,IAAI,cAAc,EAAE,CAAA;KACnD;IAED,QAAQ,GAAA;;;;AAIN,QAAA,MAAM,IAAI,GAAqC,IAAI,CAAC,WAA4D,CAAA;AAChH,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAA;KACtB;AAED,IAAA,MAAM,CAAC,gBAA0B,EAAA;QAC/B,OAAO,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAA;KACvD;;AAlBM,aAAM,CAAA,MAAA,GAAsBA,OAAK;;ACF1C,MAAM,KAAK,GAAyB;AAClC,IAAA,WAAW,EAAE,SAAS;AACtB,IAAA,UAAU,EAAG,SAAS;CACvB,CAAA;AAEK,MAAO,gBAAiB,SAAQ,aAAa,CAAA;IAMjD,WAAY,CAAA,MAAW,EAAE,GAAY,EAAA;AACnC,QAAA,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QAClB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC,GAAG,EAAE,CAAA;QACnD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,CAAA;KACxD;;AATe,gBAAA,CAAA,MAAM,GAAyB,UAAU,CAAC,UAAU,CAAC,EAAE,EAAE,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC;;ACfvG;;AAEG;;ACFH;;AAEG;;;;"}