{"version":3,"file":"create.action-BJxdKw6w.js","sources":["../../../src/packages/core/entity-action/common/create/create.action.ts"],"sourcesContent":["import { UmbEntityActionBase } from '../../entity-action-base.js';\r\nimport type { UmbEntityActionArgs } from '../../types.js';\r\nimport type { MetaEntityActionCreateKind } from './types.js';\r\nimport { UMB_ENTITY_CREATE_OPTION_ACTION_LIST_MODAL } from './modal/constants.js';\r\nimport { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal';\r\nimport type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';\r\nimport { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry';\r\nimport {\r\n\ttype UmbExtensionManifestInitializer,\r\n\tcreateExtensionApi,\r\n\tUmbExtensionsManifestInitializer,\r\n\ttype PermittedControllerType,\r\n} from '@umbraco-cms/backoffice/extension-api';\r\nimport type {\r\n\tManifestEntityCreateOptionAction,\r\n\tUmbEntityCreateOptionAction,\r\n} from '@umbraco-cms/backoffice/entity-create-option-action';\r\n\r\nexport class UmbCreateEntityAction extends UmbEntityActionBase {\r\n\t#hasSingleOption = true;\r\n\t#optionsInit?: Promise;\r\n\t#singleOptionApi?: UmbEntityCreateOptionAction;\r\n\r\n\tconstructor(host: UmbControllerHost, args: UmbEntityActionArgs) {\r\n\t\tsuper(host, args);\r\n\r\n\t\t/* This is wrapped in a promise to confirm whether only one option exists and to ensure \r\n\t\tthat the API for this option has been created. We both need to wait for any options to \r\n\t\tbe returned from the registry and for the API to be created. This is a custom promise implementation, \r\n\t\tbecause using .asPromise() on the initializer does not wait for the async API creation in the callback.*/\r\n\t\tthis.#optionsInit = new Promise((resolve) => {\r\n\t\t\tnew UmbExtensionsManifestInitializer(\r\n\t\t\t\tthis,\r\n\t\t\t\tumbExtensionsRegistry,\r\n\t\t\t\t'entityCreateOptionAction',\r\n\t\t\t\t(ext) => ext.forEntityTypes.includes(this.args.entityType),\r\n\t\t\t\tasync (actionOptions) => {\r\n\t\t\t\t\tthis.#hasSingleOption = actionOptions.length === 1;\r\n\t\t\t\t\tif (this.#hasSingleOption) {\r\n\t\t\t\t\t\tawait this.#createSingleOptionApi(actionOptions);\r\n\t\t\t\t\t\tresolve();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tresolve();\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t'umbEntityActionsObserver',\r\n\t\t\t);\r\n\t\t});\r\n\t}\r\n\r\n\toverride async getHref() {\r\n\t\tawait this.#optionsInit;\r\n\t\tconst href = await this.#singleOptionApi?.getHref();\r\n\t\treturn this.#hasSingleOption && href ? href : undefined;\r\n\t}\r\n\r\n\toverride async execute() {\r\n\t\tawait this.#optionsInit;\r\n\t\tif (this.#hasSingleOption) {\r\n\t\t\tawait this.#singleOptionApi?.execute();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT);\r\n\t\tconst modalContext = modalManager.open(this, UMB_ENTITY_CREATE_OPTION_ACTION_LIST_MODAL, {\r\n\t\t\tdata: {\r\n\t\t\t\tunique: this.args.unique,\r\n\t\t\t\tentityType: this.args.entityType,\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tawait modalContext.onSubmit();\r\n\t}\r\n\r\n\tasync #createSingleOptionApi(\r\n\t\tcreateOptions: Array>>,\r\n\t) {\r\n\t\tconst manifest = createOptions[0].manifest;\r\n\t\tif (!manifest) throw new Error('No first action manifest found');\r\n\r\n\t\tconst api = await createExtensionApi(this, manifest, [\r\n\t\t\t{ unique: this.args.unique, entityType: this.args.entityType, meta: manifest.meta },\r\n\t\t]);\r\n\r\n\t\tif (!api) throw new Error(`Could not create api for ${manifest.alias}`);\r\n\r\n\t\tthis.#singleOptionApi = api;\r\n\t}\r\n}\r\n\r\nexport { UmbCreateEntityAction as api };\r\n"],"names":["UmbCreateEntityAction","UmbEntityActionBase","#hasSingleOption","#optionsInit","#singleOptionApi","host","args","resolve","UmbExtensionsManifestInitializer","umbExtensionsRegistry","ext","actionOptions","#createSingleOptionApi","href","UMB_MODAL_MANAGER_CONTEXT","UMB_ENTITY_CREATE_OPTION_ACTION_LIST_MODAL","createOptions","manifest","api","createExtensionApi"],"mappings":";;;;;AAkBO,MAAMA,UAA8BC,EAAgD;AAAA,EAC1FC,KAAmB;AAAA,EACnBC;AAAA,EACAC;AAAA,EAEA,YAAYC,GAAyBC,GAAuD;AAC3F,UAAMD,GAAMC,CAAI,GAMhB,KAAKH,KAAe,IAAI,QAAQ,CAACI,MAAY;AACxC,UAAAC;AAAA,QACH;AAAA,QACAC;AAAA,QACA;AAAA,QACA,CAACC,MAAQA,EAAI,eAAe,SAAS,KAAK,KAAK,UAAU;AAAA,QACzD,OAAOC,MAAkB;AACnB,eAAAT,KAAmBS,EAAc,WAAW,GAC7C,KAAKT,MACF,MAAA,KAAKU,GAAuBD,CAAa,GACvCJ,EAAA;AAAA,QAIV;AAAA,QACA;AAAA,MACD;AAAA,IAAA,CACA;AAAA,EAAA;AAAA,EAGF,MAAe,UAAU;AACxB,UAAM,KAAKJ;AACX,UAAMU,IAAO,MAAM,KAAKT,IAAkB,QAAQ;AAC3C,WAAA,KAAKF,MAAoBW,IAAOA,IAAO;AAAA,EAAA;AAAA,EAG/C,MAAe,UAAU;AAExB,QADA,MAAM,KAAKV,IACP,KAAKD,IAAkB;AACpB,YAAA,KAAKE,IAAkB,QAAQ;AACrC;AAAA,IAAA;AAWD,WARqB,MAAM,KAAK,WAAWU,CAAyB,GAClC,KAAK,MAAMC,GAA4C;AAAA,MACxF,MAAM;AAAA,QACL,QAAQ,KAAK,KAAK;AAAA,QAClB,YAAY,KAAK,KAAK;AAAA,MAAA;AAAA,IACvB,CACA,EAEkB,SAAS;AAAA,EAAA;AAAA,EAG7B,MAAMH,GACLI,GACC;AACK,UAAAC,IAAWD,EAAc,CAAC,EAAE;AAClC,QAAI,CAACC,EAAgB,OAAA,IAAI,MAAM,gCAAgC;AAE/D,UAAMC,IAAM,MAAMC,EAAmB,MAAMF,GAAU;AAAA,MACpD,EAAE,QAAQ,KAAK,KAAK,QAAQ,YAAY,KAAK,KAAK,YAAY,MAAMA,EAAS,KAAK;AAAA,IAAA,CAClF;AAEG,QAAA,CAACC,EAAW,OAAA,IAAI,MAAM,4BAA4BD,EAAS,KAAK,EAAE;AAEtE,SAAKb,KAAmBc;AAAA,EAAA;AAE1B;"}