{"version":3,"file":"trash.action-CgWMHmL6.js","sources":["../../../src/packages/core/recycle-bin/entity-action/trash/trash.action.ts"],"sourcesContent":["import type { UmbRecycleBinRepository } from '../../recycle-bin-repository.interface.js';\r\nimport type { MetaEntityActionTrashKind } from './types.js';\r\nimport { UmbEntityTrashedEvent } from './trash.event.js';\r\nimport { createExtensionApiByAlias } from '@umbraco-cms/backoffice/extension-registry';\r\nimport { umbConfirmModal } from '@umbraco-cms/backoffice/modal';\r\nimport { UMB_ACTION_EVENT_CONTEXT } from '@umbraco-cms/backoffice/action';\r\nimport type { UmbItemRepository } from '@umbraco-cms/backoffice/repository';\r\nimport { UmbEntityActionBase, UmbRequestReloadStructureForEntityEvent } from '@umbraco-cms/backoffice/entity-action';\r\nimport { UmbLocalizationController } from '@umbraco-cms/backoffice/localization-api';\r\n\r\n/**\r\n * Entity action for trashing an item.\r\n * @class UmbTrashEntityAction\r\n * @augments {UmbEntityActionBase}\r\n */\r\nexport class UmbTrashEntityAction<\r\n\tMetaKindType extends MetaEntityActionTrashKind = MetaEntityActionTrashKind,\r\n> extends UmbEntityActionBase {\r\n\t#localize = new UmbLocalizationController(this);\r\n\r\n\t/**\r\n\t * Executes the action.\r\n\t * @memberof UmbTrashEntityAction\r\n\t */\r\n\toverride async execute() {\r\n\t\tif (!this.args.unique) throw new Error('Cannot trash an item without a unique identifier.');\r\n\r\n\t\tconst item = await this.#requestItem();\r\n\r\n\t\tawait this._confirmTrash(item);\r\n\r\n\t\tconst recycleBinRepository = await createExtensionApiByAlias(\r\n\t\t\tthis,\r\n\t\t\tthis.args.meta.recycleBinRepositoryAlias,\r\n\t\t);\r\n\r\n\t\tawait recycleBinRepository.requestTrash({ unique: this.args.unique });\r\n\r\n\t\tthis.#notify();\r\n\t}\r\n\r\n\tprotected async _confirmTrash(item: any) {\r\n\t\tconst headline = '#actions_trash';\r\n\t\tconst message = '#defaultdialogs_confirmTrash';\r\n\r\n\t\t// TODO: handle items with variants\r\n\t\tawait umbConfirmModal(this._host, {\r\n\t\t\theadline,\r\n\t\t\tcontent: this.#localize.string(message, item.name),\r\n\t\t\tcolor: 'danger',\r\n\t\t\tconfirmLabel: '#actions_trash',\r\n\t\t});\r\n\t}\r\n\r\n\tasync #requestItem() {\r\n\t\tif (!this.args.unique) throw new Error('Cannot trash an item without a unique identifier.');\r\n\r\n\t\tconst itemRepository = await createExtensionApiByAlias>(\r\n\t\t\tthis,\r\n\t\t\tthis.args.meta.itemRepositoryAlias,\r\n\t\t);\r\n\r\n\t\tconst { data } = await itemRepository.requestItems([this.args.unique]);\r\n\t\tconst item = data?.[0];\r\n\t\tif (!item) throw new Error('Item not found.');\r\n\t\treturn item;\r\n\t}\r\n\r\n\tasync #notify() {\r\n\t\tconst actionEventContext = await this.getContext(UMB_ACTION_EVENT_CONTEXT);\r\n\r\n\t\tconst event = new UmbRequestReloadStructureForEntityEvent({\r\n\t\t\tunique: this.args.unique,\r\n\t\t\tentityType: this.args.entityType,\r\n\t\t});\r\n\r\n\t\tactionEventContext.dispatchEvent(event);\r\n\r\n\t\tconst trashedEvent = new UmbEntityTrashedEvent({\r\n\t\t\tunique: this.args.unique,\r\n\t\t\tentityType: this.args.entityType,\r\n\t\t});\r\n\r\n\t\tactionEventContext.dispatchEvent(trashedEvent);\r\n\t}\r\n}\r\n\r\nexport { UmbTrashEntityAction as api };\r\n"],"names":["UmbTrashEntityAction","UmbEntityActionBase","#localize","UmbLocalizationController","item","#requestItem","createExtensionApiByAlias","#notify","umbConfirmModal","itemRepository","data","actionEventContext","UMB_ACTION_EVENT_CONTEXT","event","UmbRequestReloadStructureForEntityEvent","trashedEvent","UmbEntityTrashedEvent"],"mappings":";;;;;;AAeO,MAAMA,UAEHC,EAAkC;AAAA,EAC3CC,KAAY,IAAIC,EAA0B,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA,EAM9C,MAAe,UAAU;AACxB,QAAI,CAAC,KAAK,KAAK,OAAc,OAAA,IAAI,MAAM,mDAAmD;AAEpF,UAAAC,IAAO,MAAM,KAAKC,GAAa;AAE/B,UAAA,KAAK,cAAcD,CAAI,GAO7B,OAL6B,MAAME;AAAA,MAClC;AAAA,MACA,KAAK,KAAK,KAAK;AAAA,IAChB,GAE2B,aAAa,EAAE,QAAQ,KAAK,KAAK,QAAQ,GAEpE,KAAKC,GAAQ;AAAA,EAAA;AAAA,EAGd,MAAgB,cAAcH,GAAW;AAKlC,UAAAI,EAAgB,KAAK,OAAO;AAAA,MACjC,UALgB;AAAA,MAMhB,SAAS,KAAKN,GAAU,OALT,gCAKyBE,EAAK,IAAI;AAAA,MACjD,OAAO;AAAA,MACP,cAAc;AAAA,IAAA,CACd;AAAA,EAAA;AAAA,EAGF,MAAMC,KAAe;AACpB,QAAI,CAAC,KAAK,KAAK,OAAc,OAAA,IAAI,MAAM,mDAAmD;AAE1F,UAAMI,IAAiB,MAAMH;AAAA,MAC5B;AAAA,MACA,KAAK,KAAK,KAAK;AAAA,IAChB,GAEM,EAAE,MAAAI,EAAK,IAAI,MAAMD,EAAe,aAAa,CAAC,KAAK,KAAK,MAAM,CAAC,GAC/DL,IAAOM,IAAO,CAAC;AACrB,QAAI,CAACN,EAAY,OAAA,IAAI,MAAM,iBAAiB;AACrC,WAAAA;AAAA,EAAA;AAAA,EAGR,MAAMG,KAAU;AACf,UAAMI,IAAqB,MAAM,KAAK,WAAWC,CAAwB,GAEnEC,IAAQ,IAAIC,EAAwC;AAAA,MACzD,QAAQ,KAAK,KAAK;AAAA,MAClB,YAAY,KAAK,KAAK;AAAA,IAAA,CACtB;AAED,IAAAH,EAAmB,cAAcE,CAAK;AAEhC,UAAAE,IAAe,IAAIC,EAAsB;AAAA,MAC9C,QAAQ,KAAK,KAAK;AAAA,MAClB,YAAY,KAAK,KAAK;AAAA,IAAA,CACtB;AAED,IAAAL,EAAmB,cAAcI,CAAY;AAAA,EAAA;AAE/C;"}