{"version":3,"file":"delete.action-DXp0Xn_o.js","sources":["../../../src/packages/core/entity-action/common/delete/delete.action.ts"],"sourcesContent":["import { UmbEntityActionBase } from '../../entity-action-base.js';\r\nimport { UmbRequestReloadStructureForEntityEvent } from '../../request-reload-structure-for-entity.event.js';\r\nimport type { MetaEntityActionDeleteKind } from './types.js';\r\nimport { createExtensionApiByAlias } from '@umbraco-cms/backoffice/extension-registry';\r\nimport { umbConfirmModal } from '@umbraco-cms/backoffice/modal';\r\nimport type { UmbDetailRepository, UmbItemRepository } from '@umbraco-cms/backoffice/repository';\r\nimport { UMB_ACTION_EVENT_CONTEXT } from '@umbraco-cms/backoffice/action';\r\nimport { UmbLocalizationController } from '@umbraco-cms/backoffice/localization-api';\r\n\r\nexport class UmbDeleteEntityAction<\r\n\tMetaKind extends MetaEntityActionDeleteKind = MetaEntityActionDeleteKind,\r\n> extends UmbEntityActionBase {\r\n\t// TODO: make base type for item and detail models\r\n\t#localize = new UmbLocalizationController(this);\r\n\r\n\toverride async execute() {\r\n\t\tif (!this.args.unique) throw new Error('Cannot delete an item without a unique identifier.');\r\n\r\n\t\tconst item = await this.#requestItem();\r\n\r\n\t\tawait this._confirmDelete(item);\r\n\r\n\t\tconst detailRepository = await createExtensionApiByAlias>(\r\n\t\t\tthis,\r\n\t\t\tthis.args.meta.detailRepositoryAlias,\r\n\t\t);\r\n\r\n\t\tawait detailRepository.delete(this.args.unique);\r\n\r\n\t\tawait this.#notify();\r\n\t}\r\n\r\n\tasync _confirmDelete(item: any) {\r\n\t\tconst headline = this.args.meta.confirm?.headline ?? '#actions_delete';\r\n\t\tconst message = this.args.meta.confirm?.message ?? '#defaultdialogs_confirmdelete';\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: '#general_delete',\r\n\t\t});\r\n\t}\r\n\r\n\tasync #requestItem() {\r\n\t\tif (!this.args.unique) throw new Error('Cannot delete 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\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\t}\r\n}\r\nexport default UmbDeleteEntityAction;\r\n"],"names":["UmbDeleteEntityAction","UmbEntityActionBase","#localize","UmbLocalizationController","item","#requestItem","createExtensionApiByAlias","#notify","headline","message","umbConfirmModal","itemRepository","data","actionEventContext","UMB_ACTION_EVENT_CONTEXT","event","UmbRequestReloadStructureForEntityEvent"],"mappings":";;;;;;AASO,MAAMA,UAEHC,EAA8B;AAAA;AAAA,EAEvCC,KAAY,IAAIC,EAA0B,IAAI;AAAA,EAE9C,MAAe,UAAU;AACxB,QAAI,CAAC,KAAK,KAAK,OAAc,OAAA,IAAI,MAAM,oDAAoD;AAErF,UAAAC,IAAO,MAAM,KAAKC,GAAa;AAE/B,UAAA,KAAK,eAAeD,CAAI,GAO9B,OALyB,MAAME;AAAA,MAC9B;AAAA,MACA,KAAK,KAAK,KAAK;AAAA,IAChB,GAEuB,OAAO,KAAK,KAAK,MAAM,GAE9C,MAAM,KAAKC,GAAQ;AAAA,EAAA;AAAA,EAGpB,MAAM,eAAeH,GAAW;AAC/B,UAAMI,IAAW,KAAK,KAAK,KAAK,SAAS,YAAY,mBAC/CC,IAAU,KAAK,KAAK,KAAK,SAAS,WAAW;AAG7C,UAAAC,EAAgB,KAAK,OAAO;AAAA,MACjC,UAAAF;AAAA,MACA,SAAS,KAAKN,GAAU,OAAOO,GAASL,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,oDAAoD;AAE3F,UAAMM,IAAiB,MAAML;AAAA,MAC5B;AAAA,MACA,KAAK,KAAK,KAAK;AAAA,IAChB,GAEM,EAAE,MAAAM,EAAK,IAAI,MAAMD,EAAe,aAAa,CAAC,KAAK,KAAK,MAAM,CAAC,GAC/DP,IAAOQ,IAAO,CAAC;AACrB,QAAI,CAACR,EAAY,OAAA,IAAI,MAAM,iBAAiB;AAErC,WAAAA;AAAA,EAAA;AAAA,EAGR,MAAMG,KAAU;AACf,UAAMM,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;AAAA,EAAA;AAExC;"}