{"version":3,"file":"index.js","sources":["../../../../src/packages/core/recycle-bin/recycle-bin-repository-base.ts","../../../../src/packages/core/recycle-bin/contexts/is-trashed/is-trashed.entity-context.ts"],"sourcesContent":["import type { UmbRecycleBinRepository } from './recycle-bin-repository.interface.js';\r\nimport type {\r\n\tUmbRecycleBinDataSource,\r\n\tUmbRecycleBinDataSourceConstructor,\r\n} from './recycle-bin-data-source.interface.js';\r\nimport type {\r\n\tUmbRecycleBinOriginalParentRequestArgs,\r\n\tUmbRecycleBinRestoreRequestArgs,\r\n\tUmbRecycleBinTrashRequestArgs,\r\n} from './types.js';\r\nimport type { UmbNotificationHandler } from '@umbraco-cms/backoffice/notification';\r\nimport { UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification';\r\nimport type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';\r\nimport { UmbRepositoryBase } from '@umbraco-cms/backoffice/repository';\r\n\r\n/**\r\n * Base class for recycle bin repositories.\r\n * @abstract\r\n * @class UmbRecycleBinRepositoryBase\r\n * @augments {UmbRepositoryBase}\r\n * @implements {UmbRecycleBinRepository}\r\n */\r\nexport abstract class UmbRecycleBinRepositoryBase extends UmbRepositoryBase implements UmbRecycleBinRepository {\r\n\t#recycleBinSource: UmbRecycleBinDataSource;\r\n\t#notificationContext?: typeof UMB_NOTIFICATION_CONTEXT.TYPE;\r\n\t#requestTrashSuccessNotification?: UmbNotificationHandler;\r\n\t#requestRestoreSuccessNotification?: UmbNotificationHandler;\r\n\r\n\t/**\r\n\t * Creates an instance of UmbRecycleBinRepositoryBase.\r\n\t * @param {UmbControllerHost} host - The controller host for this controller to be appended to\r\n\t * @param {UmbRecycleBinDataSourceConstructor} recycleBinSource\r\n\t * @memberof UmbRecycleBinRepositoryBase\r\n\t */\r\n\tconstructor(host: UmbControllerHost, recycleBinSource: UmbRecycleBinDataSourceConstructor) {\r\n\t\tsuper(host);\r\n\t\tthis.#recycleBinSource = new recycleBinSource(this);\r\n\r\n\t\tthis.consumeContext(UMB_NOTIFICATION_CONTEXT, (context) => {\r\n\t\t\tthis.#notificationContext = context;\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Requests to trash an item.\r\n\t * @param {UmbRecycleBinTrashRequestArgs} args\r\n\t * @returns {*}\r\n\t * @memberof UmbRecycleBinRepositoryBase\r\n\t */\r\n\tasync requestTrash(args: UmbRecycleBinTrashRequestArgs) {\r\n\t\tconst { error } = await this.#recycleBinSource.trash(args);\r\n\r\n\t\tif (!error) {\r\n\t\t\tthis.#requestTrashSuccessNotification?.close();\r\n\t\t\tconst notification = { data: { message: `Trashed` } };\r\n\t\t\tthis.#requestTrashSuccessNotification = this.#notificationContext?.peek('positive', notification);\r\n\t\t}\r\n\r\n\t\treturn { error };\r\n\t}\r\n\r\n\t/**\r\n\t * Requests to restore an item.\r\n\t * @param {UmbRecycleBinRestoreRequestArgs} args\r\n\t * @returns {*}\r\n\t * @memberof UmbRecycleBinRepositoryBase\r\n\t */\r\n\tasync requestRestore(args: UmbRecycleBinRestoreRequestArgs) {\r\n\t\tconst { error } = await this.#recycleBinSource.restore(args);\r\n\r\n\t\tif (!error) {\r\n\t\t\tthis.#requestRestoreSuccessNotification?.close();\r\n\t\t\tconst notification = { data: { message: `Restored` } };\r\n\t\t\tthis.#requestRestoreSuccessNotification = this.#notificationContext?.peek('positive', notification);\r\n\t\t}\r\n\r\n\t\treturn { error };\r\n\t}\r\n\r\n\t/**\r\n\t * Requests to empty the recycle bin.\r\n\t * @returns {*}\r\n\t * @memberof UmbRecycleBinRepositoryBase\r\n\t */\r\n\tasync requestEmpty() {\r\n\t\tconst { error } = await this.#recycleBinSource.empty();\r\n\r\n\t\tif (!error) {\r\n\t\t\tconst notification = { data: { message: `Recycle Bin Emptied` } };\r\n\t\t\tthis.#notificationContext?.peek('positive', notification);\r\n\t\t}\r\n\r\n\t\treturn this.#recycleBinSource.empty();\r\n\t}\r\n\r\n\t/**\r\n\t * Requests the original parent of an item.\r\n\t * @param {UmbRecycleBinOriginalParentRequestArgs} args\r\n\t * @returns {*}\r\n\t * @memberof UmbRecycleBinRepositoryBase\r\n\t */\r\n\tasync requestOriginalParent(args: UmbRecycleBinOriginalParentRequestArgs) {\r\n\t\treturn this.#recycleBinSource.getOriginalParent(args);\r\n\t}\r\n}\r\n","import { UMB_IS_TRASHED_ENTITY_CONTEXT } from './is-trashed.entity-context-token.js';\r\nimport type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';\r\nimport { UmbContextBase } from '@umbraco-cms/backoffice/class-api';\r\nimport { UmbBooleanState } from '@umbraco-cms/backoffice/observable-api';\r\n\r\n/**\r\n * A entity context for the isTrashed state.\r\n * @class UmbIsTrashedEntityContext\r\n * @augments {UmbContextBase}\r\n * @implements {UmbIsTrashedEntityContext}\r\n */\r\nexport class UmbIsTrashedEntityContext extends UmbContextBase {\r\n\t#isTrashed = new UmbBooleanState(false);\r\n\tisTrashed = this.#isTrashed.asObservable();\r\n\r\n\tconstructor(host: UmbControllerHost) {\r\n\t\tsuper(host, UMB_IS_TRASHED_ENTITY_CONTEXT);\r\n\t}\r\n\r\n\t/**\r\n\t * Gets the isTrashed state\r\n\t * @returns {*}\r\n\t * @memberof UmbIsTrashedContext\r\n\t */\r\n\tgetIsTrashed() {\r\n\t\treturn this.#isTrashed.getValue();\r\n\t}\r\n\r\n\t/**\r\n\t * Sets the isTrashed state\r\n\t * @param {boolean} isTrashed\r\n\t * @memberof UmbIsTrashedContext\r\n\t */\r\n\tsetIsTrashed(isTrashed: boolean) {\r\n\t\tthis.#isTrashed.setValue(isTrashed);\r\n\t}\r\n}\r\n"],"names":["UmbRecycleBinRepositoryBase","UmbRepositoryBase","#recycleBinSource","#notificationContext","#requestTrashSuccessNotification","#requestRestoreSuccessNotification","host","recycleBinSource","UMB_NOTIFICATION_CONTEXT","context","args","error","notification","UmbIsTrashedEntityContext","UmbContextBase","UMB_IS_TRASHED_ENTITY_CONTEXT","#isTrashed","UmbBooleanState","isTrashed"],"mappings":";;;;;;;;;;;;AAsBO,MAAeA,UAAoCC,EAAqD;AAAA,EAC9GC;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,YAAYC,GAAyBC,GAAsD;AAC1F,UAAMD,CAAI,GACL,KAAAJ,KAAoB,IAAIK,EAAiB,IAAI,GAE7C,KAAA,eAAeC,GAA0B,CAACC,MAAY;AAC1D,WAAKN,KAAuBM;AAAA,IAAA,CAC5B;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASF,MAAM,aAAaC,GAAqC;AACvD,UAAM,EAAE,OAAAC,EAAM,IAAI,MAAM,KAAKT,GAAkB,MAAMQ,CAAI;AAEzD,QAAI,CAACC,GAAO;AACX,WAAKP,IAAkC,MAAM;AAC7C,YAAMQ,IAAe,EAAE,MAAM,EAAE,SAAS,YAAY;AACpD,WAAKR,KAAmC,KAAKD,IAAsB,KAAK,YAAYS,CAAY;AAAA,IAAA;AAGjG,WAAO,EAAE,OAAAD,EAAM;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAShB,MAAM,eAAeD,GAAuC;AAC3D,UAAM,EAAE,OAAAC,EAAM,IAAI,MAAM,KAAKT,GAAkB,QAAQQ,CAAI;AAE3D,QAAI,CAACC,GAAO;AACX,WAAKN,IAAoC,MAAM;AAC/C,YAAMO,IAAe,EAAE,MAAM,EAAE,SAAS,aAAa;AACrD,WAAKP,KAAqC,KAAKF,IAAsB,KAAK,YAAYS,CAAY;AAAA,IAAA;AAGnG,WAAO,EAAE,OAAAD,EAAM;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQhB,MAAM,eAAe;AACpB,UAAM,EAAE,OAAAA,EAAM,IAAI,MAAM,KAAKT,GAAkB,MAAM;AAErD,QAAI,CAACS,GAAO;AACX,YAAMC,IAAe,EAAE,MAAM,EAAE,SAAS,wBAAwB;AAC3D,WAAAT,IAAsB,KAAK,YAAYS,CAAY;AAAA,IAAA;AAGlD,WAAA,KAAKV,GAAkB,MAAM;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASrC,MAAM,sBAAsBQ,GAA8C;AAClE,WAAA,KAAKR,GAAkB,kBAAkBQ,CAAI;AAAA,EAAA;AAEtD;AC7FO,MAAMG,UAAkCC,EAA0C;AAAA,EAIxF,YAAYR,GAAyB;AACpC,UAAMA,GAAMS,CAA6B,GAJ7B,KAAAC,KAAA,IAAIC,EAAgB,EAAK,GAC1B,KAAA,YAAA,KAAKD,GAAW,aAAa;AAAA,EAAA;AAAA,EADzCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,eAAe;AACP,WAAA,KAAKA,GAAW,SAAS;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQjC,aAAaE,GAAoB;AAC3B,SAAAF,GAAW,SAASE,CAAS;AAAA,EAAA;AAEpC;"}