From 16996a7b9e3a4cb8a1fd39f890dc0575f77ab0d0 Mon Sep 17 00:00:00 2001 From: Jesper Date: Sun, 21 Sep 2025 22:15:46 +0200 Subject: [PATCH] Add entityUserPermission for enabling the context menu for specific usergroups/users so it is opt-in. --- .../Client/src/bundle.manifests.ts | 6 +- .../Client/src/entrypoints/entrypoint.ts | 84 ++++++++++++++----- .../Client/src/permissions/manifest.ts | 16 ++++ .../RightClicker/entrypoint-BvHGXj2R.js | 40 +++++++++ .../RightClicker/entrypoint-BvHGXj2R.js.map | 1 + .../RightClicker/entrypoint-DucgEe26.js | 20 ----- .../RightClicker/entrypoint-DucgEe26.js.map | 1 - .../App_Plugins/RightClicker/right-clicker.js | 23 ++++- .../RightClicker/right-clicker.js.map | 2 +- 9 files changed, 145 insertions(+), 48 deletions(-) create mode 100644 src/RightClicker/Client/src/permissions/manifest.ts create mode 100644 src/RightClicker/wwwroot/App_Plugins/RightClicker/entrypoint-BvHGXj2R.js create mode 100644 src/RightClicker/wwwroot/App_Plugins/RightClicker/entrypoint-BvHGXj2R.js.map delete mode 100644 src/RightClicker/wwwroot/App_Plugins/RightClicker/entrypoint-DucgEe26.js delete mode 100644 src/RightClicker/wwwroot/App_Plugins/RightClicker/entrypoint-DucgEe26.js.map diff --git a/src/RightClicker/Client/src/bundle.manifests.ts b/src/RightClicker/Client/src/bundle.manifests.ts index 54ea3df..e55cfbd 100644 --- a/src/RightClicker/Client/src/bundle.manifests.ts +++ b/src/RightClicker/Client/src/bundle.manifests.ts @@ -1,7 +1,9 @@ -import { manifests as entrypoints } from "./entrypoints/manifest.js"; +import { manifests as entrypoints } from "./entrypoints/manifest.ts"; +import { manifests as permissions } from "./permissions/manifest.ts"; // Job of the bundle is to collate all the manifests from different parts of the extension and load other manifests // We load this bundle from umbraco-package.json export const manifests: Array = [ - ...entrypoints + ...entrypoints, + ...permissions ]; diff --git a/src/RightClicker/Client/src/entrypoints/entrypoint.ts b/src/RightClicker/Client/src/entrypoints/entrypoint.ts index d6a1bd2..0732170 100644 --- a/src/RightClicker/Client/src/entrypoints/entrypoint.ts +++ b/src/RightClicker/Client/src/entrypoints/entrypoint.ts @@ -2,31 +2,75 @@ import type { UmbEntryPointOnInit, UmbEntryPointOnUnload, } from "@umbraco-cms/backoffice/extension-api"; +import { UMB_CURRENT_USER_CONTEXT } from "@umbraco-cms/backoffice/current-user"; + +let rightClickMenuEnabled = false; + +function rightClickMenuHandler(e: MouseEvent) { + const path = e.composedPath(); + const menuItem = path.find( + (el): el is Element => el instanceof Element && el.tagName === 'UUI-MENU-ITEM' + ); + if (menuItem) { + e.preventDefault(); + let el: Element | null | undefined = menuItem; + el = el.querySelector('umb-entity-actions-bundle'); + if (!el) return; + el = (el as HTMLElement).shadowRoot?.querySelector('uui-action-bar'); + if (!el) return; + el = el.querySelector('umb-entity-actions-dropdown'); + if (!el) return; + el = (el as HTMLElement).shadowRoot?.querySelector('umb-dropdown'); + if (!el) return; + el = (el as HTMLElement).shadowRoot?.querySelector('uui-button'); + if (!el) return; + (el as HTMLElement).click(); + } +} + +function enableRightClickMenu() { + if (!rightClickMenuEnabled) { + document.body.addEventListener('contextmenu', rightClickMenuHandler); + rightClickMenuEnabled = true; + } +} + +function disableRightClickMenu() { + if (rightClickMenuEnabled) { + document.body.removeEventListener('contextmenu', rightClickMenuHandler); + rightClickMenuEnabled = false; + } +} export const onInit: UmbEntryPointOnInit = (_host, _extensionRegistry) => { - document.body.addEventListener('contextmenu', function(e) { - const path = e.composedPath(); - const menuItem = path.find( - (el): el is Element => el instanceof Element && el.tagName === 'UUI-MENU-ITEM' - ); - if (menuItem) { - e.preventDefault(); - // Traverse from menuItem as before - let el: Element | null | undefined = menuItem; - el = el.querySelector('umb-entity-actions-bundle'); - if (!el) return; - el = (el as HTMLElement).shadowRoot?.querySelector('uui-action-bar'); - if (!el) return; - el = el.querySelector('umb-entity-actions-dropdown'); - if (!el) return; - el = (el as HTMLElement).shadowRoot?.querySelector('umb-dropdown'); - if (!el) return; - el = (el as HTMLElement).shadowRoot?.querySelector('uui-button'); - if (!el) return; - (el as HTMLElement).click(); + _host.consumeContext(UMB_CURRENT_USER_CONTEXT, (currentUserCtx) => { + let userPermissions: string[] | undefined; + let fallbackPermissions: string[] | undefined; + + function evaluatePermissions() { + const hasPermission = + (userPermissions?.includes('RightClicker') ?? false) || + (fallbackPermissions?.includes('RightClicker') ?? false); + + if (hasPermission) { + enableRightClickMenu(); + } else { + disableRightClickMenu(); + } } + + _host.observe(currentUserCtx?.permissions, (newPermissions) => { + userPermissions = newPermissions as string[] | undefined; + evaluatePermissions(); + }); + + _host.observe(currentUserCtx?.fallbackPermissions, (newFallbacks) => { + fallbackPermissions = newFallbacks; + evaluatePermissions(); + }); }); }; export const onUnload: UmbEntryPointOnUnload = (_host, _extensionRegistry) => { + disableRightClickMenu(); }; diff --git a/src/RightClicker/Client/src/permissions/manifest.ts b/src/RightClicker/Client/src/permissions/manifest.ts new file mode 100644 index 0000000..4cff358 --- /dev/null +++ b/src/RightClicker/Client/src/permissions/manifest.ts @@ -0,0 +1,16 @@ +import { UMB_DOCUMENT_ENTITY_TYPE } from "@umbraco-cms/backoffice/document"; + +export const manifests: Array = [ + { + type: "entityUserPermission", + alias: "RightClicker.Permission", + name: "RightClicker permission", + forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE], + meta: { + group: "RightClicker", + label: "Enable old style right clicking context menus", + description: "Gives the user access to right clicking to bring up the context menu in trees", + verbs: ["RightClicker"] + } + }, +]; diff --git a/src/RightClicker/wwwroot/App_Plugins/RightClicker/entrypoint-BvHGXj2R.js b/src/RightClicker/wwwroot/App_Plugins/RightClicker/entrypoint-BvHGXj2R.js new file mode 100644 index 0000000..86c78cc --- /dev/null +++ b/src/RightClicker/wwwroot/App_Plugins/RightClicker/entrypoint-BvHGXj2R.js @@ -0,0 +1,40 @@ +import { UMB_CURRENT_USER_CONTEXT as d } from "@umbraco-cms/backoffice/current-user"; +let a = !1; +function s(o) { + var i, t, l; + const n = o.composedPath().find( + (e) => e instanceof Element && e.tagName === "UUI-MENU-ITEM" + ); + if (n) { + o.preventDefault(); + let e = n; + if (e = e.querySelector("umb-entity-actions-bundle"), !e || (e = (i = e.shadowRoot) == null ? void 0 : i.querySelector("uui-action-bar"), !e) || (e = e.querySelector("umb-entity-actions-dropdown"), !e) || (e = (t = e.shadowRoot) == null ? void 0 : t.querySelector("umb-dropdown"), !e) || (e = (l = e.shadowRoot) == null ? void 0 : l.querySelector("uui-button"), !e)) return; + e.click(); + } +} +function f() { + a || (document.body.addEventListener("contextmenu", s), a = !0); +} +function c() { + a && (document.body.removeEventListener("contextmenu", s), a = !1); +} +const r = (o, u) => { + o.consumeContext(d, (n) => { + let i, t; + function l() { + ((i == null ? void 0 : i.includes("RightClicker")) ?? !1) || ((t == null ? void 0 : t.includes("RightClicker")) ?? !1) ? f() : c(); + } + o.observe(n == null ? void 0 : n.permissions, (e) => { + i = e, l(); + }), o.observe(n == null ? void 0 : n.fallbackPermissions, (e) => { + t = e, l(); + }); + }); +}, b = (o, u) => { + c(); +}; +export { + r as onInit, + b as onUnload +}; +//# sourceMappingURL=entrypoint-BvHGXj2R.js.map diff --git a/src/RightClicker/wwwroot/App_Plugins/RightClicker/entrypoint-BvHGXj2R.js.map b/src/RightClicker/wwwroot/App_Plugins/RightClicker/entrypoint-BvHGXj2R.js.map new file mode 100644 index 0000000..7d7831e --- /dev/null +++ b/src/RightClicker/wwwroot/App_Plugins/RightClicker/entrypoint-BvHGXj2R.js.map @@ -0,0 +1 @@ +{"version":3,"file":"entrypoint-BvHGXj2R.js","sources":["../../../Client/src/entrypoints/entrypoint.ts"],"sourcesContent":["import type {\r\n UmbEntryPointOnInit,\r\n UmbEntryPointOnUnload,\r\n} from \"@umbraco-cms/backoffice/extension-api\";\r\nimport { UMB_CURRENT_USER_CONTEXT } from \"@umbraco-cms/backoffice/current-user\";\r\n\r\nlet rightClickMenuEnabled = false;\r\n\r\nfunction rightClickMenuHandler(e: MouseEvent) {\r\n const path = e.composedPath();\r\n const menuItem = path.find(\r\n (el): el is Element => el instanceof Element && el.tagName === 'UUI-MENU-ITEM'\r\n );\r\n if (menuItem) {\r\n e.preventDefault();\r\n let el: Element | null | undefined = menuItem;\r\n el = el.querySelector('umb-entity-actions-bundle');\r\n if (!el) return;\r\n el = (el as HTMLElement).shadowRoot?.querySelector('uui-action-bar');\r\n if (!el) return;\r\n el = el.querySelector('umb-entity-actions-dropdown');\r\n if (!el) return;\r\n el = (el as HTMLElement).shadowRoot?.querySelector('umb-dropdown');\r\n if (!el) return;\r\n el = (el as HTMLElement).shadowRoot?.querySelector('uui-button');\r\n if (!el) return;\r\n (el as HTMLElement).click();\r\n }\r\n}\r\n\r\nfunction enableRightClickMenu() {\r\n if (!rightClickMenuEnabled) {\r\n document.body.addEventListener('contextmenu', rightClickMenuHandler);\r\n rightClickMenuEnabled = true;\r\n }\r\n}\r\n\r\nfunction disableRightClickMenu() {\r\n if (rightClickMenuEnabled) {\r\n document.body.removeEventListener('contextmenu', rightClickMenuHandler);\r\n rightClickMenuEnabled = false;\r\n }\r\n}\r\n\r\nexport const onInit: UmbEntryPointOnInit = (_host, _extensionRegistry) => {\r\n _host.consumeContext(UMB_CURRENT_USER_CONTEXT, (currentUserCtx) => {\r\n let userPermissions: string[] | undefined;\r\n let fallbackPermissions: string[] | undefined;\r\n\r\n function evaluatePermissions() {\r\n const hasPermission =\r\n (userPermissions?.includes('RightClicker') ?? false) ||\r\n (fallbackPermissions?.includes('RightClicker') ?? false);\r\n\r\n if (hasPermission) {\r\n enableRightClickMenu();\r\n } else {\r\n disableRightClickMenu();\r\n }\r\n }\r\n\r\n _host.observe(currentUserCtx?.permissions, (newPermissions) => {\r\n userPermissions = newPermissions as string[] | undefined;\r\n evaluatePermissions();\r\n });\r\n\r\n _host.observe(currentUserCtx?.fallbackPermissions, (newFallbacks) => {\r\n fallbackPermissions = newFallbacks;\r\n evaluatePermissions();\r\n });\r\n });\r\n};\r\n\r\nexport const onUnload: UmbEntryPointOnUnload = (_host, _extensionRegistry) => {\r\n disableRightClickMenu();\r\n};\r\n"],"names":["rightClickMenuEnabled","rightClickMenuHandler","e","menuItem","el","_a","_b","_c","enableRightClickMenu","disableRightClickMenu","onInit","_host","_extensionRegistry","UMB_CURRENT_USER_CONTEXT","currentUserCtx","userPermissions","fallbackPermissions","evaluatePermissions","newPermissions","newFallbacks","onUnload"],"mappings":";AAMA,IAAIA,IAAwB;AAE5B,SAASC,EAAsBC,GAAe;;AAE5C,QAAMC,IADOD,EAAE,aAAA,EACO;AAAA,IACpB,CAACE,MAAsBA,aAAc,WAAWA,EAAG,YAAY;AAAA,EAAA;AAEjE,MAAID,GAAU;AACZ,IAAAD,EAAE,eAAA;AACF,QAAIE,IAAiCD;AAUrC,QATAC,IAAKA,EAAG,cAAc,2BAA2B,GAC7C,CAACA,MACLA,KAAMC,IAAAD,EAAmB,eAAnB,gBAAAC,EAA+B,cAAc,mBAC/C,CAACD,OACLA,IAAKA,EAAG,cAAc,6BAA6B,GAC/C,CAACA,OACLA,KAAME,IAAAF,EAAmB,eAAnB,gBAAAE,EAA+B,cAAc,iBAC/C,CAACF,OACLA,KAAMG,IAAAH,EAAmB,eAAnB,gBAAAG,EAA+B,cAAc,eAC/C,CAACH,GAAI;AACR,IAAAA,EAAmB,MAAA;AAAA,EACtB;AACF;AAEA,SAASI,IAAuB;AAC9B,EAAKR,MACH,SAAS,KAAK,iBAAiB,eAAeC,CAAqB,GACnED,IAAwB;AAE5B;AAEA,SAASS,IAAwB;AAC/B,EAAIT,MACF,SAAS,KAAK,oBAAoB,eAAeC,CAAqB,GACtED,IAAwB;AAE5B;AAEO,MAAMU,IAA8B,CAACC,GAAOC,MAAuB;AACxE,EAAAD,EAAM,eAAeE,GAA0B,CAACC,MAAmB;AACjE,QAAIC,GACAC;AAEJ,aAASC,IAAsB;AAK7B,QAHGF,KAAA,gBAAAA,EAAiB,SAAS,oBAAmB,SAC7CC,KAAA,gBAAAA,EAAqB,SAAS,oBAAmB,MAGlDR,EAAA,IAEAC,EAAA;AAAA,IAEJ;AAEA,IAAAE,EAAM,QAAQG,KAAA,gBAAAA,EAAgB,aAAa,CAACI,MAAmB;AAC7D,MAAAH,IAAkBG,GAClBD,EAAA;AAAA,IACF,CAAC,GAEDN,EAAM,QAAQG,KAAA,gBAAAA,EAAgB,qBAAqB,CAACK,MAAiB;AACnE,MAAAH,IAAsBG,GACtBF,EAAA;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACH,GAEaG,IAAkC,CAACT,GAAOC,MAAuB;AAC5E,EAAAH,EAAA;AACF;"} \ No newline at end of file diff --git a/src/RightClicker/wwwroot/App_Plugins/RightClicker/entrypoint-DucgEe26.js b/src/RightClicker/wwwroot/App_Plugins/RightClicker/entrypoint-DucgEe26.js deleted file mode 100644 index 236340e..0000000 --- a/src/RightClicker/wwwroot/App_Plugins/RightClicker/entrypoint-DucgEe26.js +++ /dev/null @@ -1,20 +0,0 @@ -const a = (i, c) => { - document.body.addEventListener("contextmenu", function(e) { - var n, r, u; - const o = e.composedPath().find( - (t) => t instanceof Element && t.tagName === "UUI-MENU-ITEM" - ); - if (o) { - e.preventDefault(); - let t = o; - if (t = t.querySelector("umb-entity-actions-bundle"), !t || (t = (n = t.shadowRoot) == null ? void 0 : n.querySelector("uui-action-bar"), !t) || (t = t.querySelector("umb-entity-actions-dropdown"), !t) || (t = (r = t.shadowRoot) == null ? void 0 : r.querySelector("umb-dropdown"), !t) || (t = (u = t.shadowRoot) == null ? void 0 : u.querySelector("uui-button"), !t)) return; - t.click(); - } - }); -}, d = (i, c) => { -}; -export { - a as onInit, - d as onUnload -}; -//# sourceMappingURL=entrypoint-DucgEe26.js.map diff --git a/src/RightClicker/wwwroot/App_Plugins/RightClicker/entrypoint-DucgEe26.js.map b/src/RightClicker/wwwroot/App_Plugins/RightClicker/entrypoint-DucgEe26.js.map deleted file mode 100644 index 8dd01df..0000000 --- a/src/RightClicker/wwwroot/App_Plugins/RightClicker/entrypoint-DucgEe26.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"entrypoint-DucgEe26.js","sources":["../../../Client/src/entrypoints/entrypoint.ts"],"sourcesContent":["import type {\r\n UmbEntryPointOnInit,\r\n UmbEntryPointOnUnload,\r\n} from \"@umbraco-cms/backoffice/extension-api\";\r\n\r\nexport const onInit: UmbEntryPointOnInit = (_host, _extensionRegistry) => {\r\n document.body.addEventListener('contextmenu', function(e) {\r\n const path = e.composedPath();\r\n const menuItem = path.find(\r\n (el): el is Element => el instanceof Element && el.tagName === 'UUI-MENU-ITEM'\r\n );\r\n if (menuItem) {\r\n e.preventDefault();\r\n // Traverse from menuItem as before\r\n let el: Element | null | undefined = menuItem;\r\n el = el.querySelector('umb-entity-actions-bundle');\r\n if (!el) return;\r\n el = (el as HTMLElement).shadowRoot?.querySelector('uui-action-bar');\r\n if (!el) return;\r\n el = el.querySelector('umb-entity-actions-dropdown');\r\n if (!el) return;\r\n el = (el as HTMLElement).shadowRoot?.querySelector('umb-dropdown');\r\n if (!el) return;\r\n el = (el as HTMLElement).shadowRoot?.querySelector('uui-button');\r\n if (!el) return;\r\n (el as HTMLElement).click();\r\n }\r\n });\r\n};\r\n\r\nexport const onUnload: UmbEntryPointOnUnload = (_host, _extensionRegistry) => {\r\n};\r\n"],"names":["onInit","_host","_extensionRegistry","_a","_b","_c","menuItem","el","onUnload"],"mappings":"AAKO,MAAMA,IAA8B,CAACC,GAAOC,MAAuB;AACxE,WAAS,KAAK,iBAAiB,eAAe,SAAS,GAAG;AADrD,QAAAC,GAAAC,GAAAC;AAGH,UAAMC,IADO,EAAE,aAAA,EACO;AAAA,MACpB,CAACC,MAAsBA,aAAc,WAAWA,EAAG,YAAY;AAAA,IAAA;AAEjE,QAAID,GAAU;AACZ,QAAE,eAAA;AAEF,UAAIC,IAAiCD;AAUrC,UATAC,IAAKA,EAAG,cAAc,2BAA2B,GAC7C,CAACA,MACLA,KAAMJ,IAAAI,EAAmB,eAAnB,gBAAAJ,EAA+B,cAAc,mBAC/C,CAACI,OACLA,IAAKA,EAAG,cAAc,6BAA6B,GAC/C,CAACA,OACLA,KAAMH,IAAAG,EAAmB,eAAnB,gBAAAH,EAA+B,cAAc,iBAC/C,CAACG,OACLA,KAAMF,IAAAE,EAAmB,eAAnB,gBAAAF,EAA+B,cAAc,eAC/C,CAACE,GAAI;AACR,MAAAA,EAAmB,MAAA;AAAA,IACtB;AAAA,EACF,CAAC;AACH,GAEaC,IAAkC,CAACP,GAAOC,MAAuB;AAC9E;"} \ No newline at end of file diff --git a/src/RightClicker/wwwroot/App_Plugins/RightClicker/right-clicker.js b/src/RightClicker/wwwroot/App_Plugins/RightClicker/right-clicker.js index 52f38ac..c52bbea 100644 --- a/src/RightClicker/wwwroot/App_Plugins/RightClicker/right-clicker.js +++ b/src/RightClicker/wwwroot/App_Plugins/RightClicker/right-clicker.js @@ -1,14 +1,29 @@ +import { UMB_DOCUMENT_ENTITY_TYPE as i } from "@umbraco-cms/backoffice/document"; const t = [ { name: "Right Clicker Entrypoint", alias: "RightClicker.Entrypoint", type: "backofficeEntryPoint", - js: () => import("./entrypoint-DucgEe26.js") + js: () => import("./entrypoint-BvHGXj2R.js") } -], i = [ - ...t +], e = [ + { + type: "entityUserPermission", + alias: "RightClicker.Permission", + name: "RightClicker permission", + forEntityTypes: [i], + meta: { + group: "RightClicker", + label: "Enable old style right clicking context menus", + description: "Gives the user access to right clicking to bring up the context menu in trees", + verbs: ["RightClicker"] + } + } +], s = [ + ...t, + ...e ]; export { - i as manifests + s as manifests }; //# sourceMappingURL=right-clicker.js.map diff --git a/src/RightClicker/wwwroot/App_Plugins/RightClicker/right-clicker.js.map b/src/RightClicker/wwwroot/App_Plugins/RightClicker/right-clicker.js.map index 037a1b5..83e9ebe 100644 --- a/src/RightClicker/wwwroot/App_Plugins/RightClicker/right-clicker.js.map +++ b/src/RightClicker/wwwroot/App_Plugins/RightClicker/right-clicker.js.map @@ -1 +1 @@ -{"version":3,"file":"right-clicker.js","sources":["../../../Client/src/entrypoints/manifest.ts","../../../Client/src/bundle.manifests.ts"],"sourcesContent":["export const manifests: Array = [\r\n {\r\n name: \"Right Clicker Entrypoint\",\r\n alias: \"RightClicker.Entrypoint\",\r\n type: \"backofficeEntryPoint\",\r\n js: () => import(\"./entrypoint.js\"),\r\n },\r\n];\r\n","import { manifests as entrypoints } from \"./entrypoints/manifest.js\";\r\n\r\n// Job of the bundle is to collate all the manifests from different parts of the extension and load other manifests\r\n// We load this bundle from umbraco-package.json\r\nexport const manifests: Array = [\r\n ...entrypoints\r\n];\r\n"],"names":["manifests","entrypoints"],"mappings":"AAAO,MAAMA,IAAyC;AAAA,EACpD;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,IAAI,MAAM,OAAO,0BAAiB;AAAA,EAAA;AAEtC,GCHaA,IAAyC;AAAA,EACpD,GAAGC;AACL;"} \ No newline at end of file +{"version":3,"file":"right-clicker.js","sources":["../../../Client/src/entrypoints/manifest.ts","../../../Client/src/permissions/manifest.ts","../../../Client/src/bundle.manifests.ts"],"sourcesContent":["export const manifests: Array = [\r\n {\r\n name: \"Right Clicker Entrypoint\",\r\n alias: \"RightClicker.Entrypoint\",\r\n type: \"backofficeEntryPoint\",\r\n js: () => import(\"./entrypoint.js\"),\r\n },\r\n];\r\n","import { UMB_DOCUMENT_ENTITY_TYPE } from \"@umbraco-cms/backoffice/document\";\r\n\r\nexport const manifests: Array = [\r\n {\r\n type: \"entityUserPermission\",\r\n alias: \"RightClicker.Permission\",\r\n name: \"RightClicker permission\",\r\n forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE],\r\n meta: {\r\n group: \"RightClicker\",\r\n label: \"Enable old style right clicking context menus\",\r\n description: \"Gives the user access to right clicking to bring up the context menu in trees\",\r\n verbs: [\"RightClicker\"]\r\n }\r\n },\r\n];\r\n","import { manifests as entrypoints } from \"./entrypoints/manifest.ts\";\r\nimport { manifests as permissions } from \"./permissions/manifest.ts\";\r\n\r\n// Job of the bundle is to collate all the manifests from different parts of the extension and load other manifests\r\n// We load this bundle from umbraco-package.json\r\nexport const manifests: Array = [\r\n ...entrypoints,\r\n ...permissions\r\n];\r\n"],"names":["manifests","UMB_DOCUMENT_ENTITY_TYPE","entrypoints","permissions"],"mappings":";AAAO,MAAMA,IAAyC;AAAA,EACpD;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,IAAI,MAAM,OAAO,0BAAiB;AAAA,EAAA;AAEtC,GCLaA,IAAyC;AAAA,EACpD;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,gBAAgB,CAACC,CAAwB;AAAA,IACzC,MAAM;AAAA,MACJ,OAAO;AAAA,MACP,OAAO;AAAA,MACP,aAAa;AAAA,MACb,OAAO,CAAC,cAAc;AAAA,IAAA;AAAA,EACxB;AAEJ,GCVaD,IAAyC;AAAA,EACpD,GAAGE;AAAAA,EACH,GAAGC;AACL;"} \ No newline at end of file