{"version":3,"file":"index.js","sources":["../../../../src/packages/core/debug/context-debug.controller.ts","../../../../src/packages/core/debug/debug-modal/debug-modal.token.ts","../../../../src/packages/core/debug/debug.element.ts"],"sourcesContent":["import { contextData, UMB_DEBUG_CONTEXT_EVENT_TYPE } from '@umbraco-cms/backoffice/context-api';\r\nimport type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';\r\nimport { UmbControllerBase } from '@umbraco-cms/backoffice/class-api';\r\n\r\n// Temp controller to get the code away from the app.element.ts\r\nexport class UmbContextDebugController extends UmbControllerBase {\r\n\tconstructor(host: UmbControllerHost) {\r\n\t\tsuper(host);\r\n\t}\r\n\r\n\toverride hostConnected(): void {\r\n\t\tsuper.hostConnected();\r\n\t\t// Maybe this could be part of the context-api? When we create a new root, we could attach the debugger to it?\r\n\t\t// Listen for the debug event from the component\r\n\t\tthis.getHostElement().addEventListener(\r\n\t\t\tUMB_DEBUG_CONTEXT_EVENT_TYPE,\r\n\t\t\tthis.#onContextDebug as unknown as EventListener,\r\n\t\t);\r\n\t}\r\n\r\n\t#onContextDebug = (event: any) => {\r\n\t\t// Once we got to the outter most component \r\n\t\t// we can send the event containing all the contexts\r\n\t\t// we have collected whilst coming up through the DOM\r\n\t\t// and pass it back down to the callback in\r\n\t\t// the component that originally fired the event\r\n\t\tif (event.callback) {\r\n\t\t\tevent.callback(event.instances);\r\n\t\t}\r\n\r\n\t\t// Massage the data into a simplier format\r\n\t\t// Why? Can't send contexts data directly - browser seems to not serialize it and says its null\r\n\t\t// But a simple object works fine for browser extension to consume\r\n\t\tconst data = {\r\n\t\t\tcontexts: contextData(event.instances),\r\n\t\t};\r\n\r\n\t\t// Emit this new event for the browser extension to listen for\r\n\t\tthis.getHostElement().dispatchEvent(new CustomEvent('umb:debug-contexts:data', { detail: data, bubbles: true }));\r\n\t};\r\n\r\n\toverride hostDisconnected(): void {\r\n\t\tsuper.hostDisconnected();\r\n\t\tthis.getHostElement().removeEventListener(\r\n\t\t\tUMB_DEBUG_CONTEXT_EVENT_TYPE,\r\n\t\t\tthis.#onContextDebug as unknown as EventListener,\r\n\t\t);\r\n\t}\r\n}\r\n","import { UmbModalToken } from '../../modal/token/modal-token.js';\r\nimport type { TemplateResult } from '@umbraco-cms/backoffice/external/lit';\r\n\r\nexport interface UmbContextDebuggerModalData {\r\n\tcontent: TemplateResult | string;\r\n}\r\n\r\nexport const UMB_CONTEXT_DEBUGGER_MODAL = new UmbModalToken('Umb.Modal.ContextDebugger', {\r\n\tmodal: {\r\n\t\ttype: 'sidebar',\r\n\t\tsize: 'small',\r\n\t},\r\n});\r\n","import { UMB_CONTEXT_DEBUGGER_MODAL } from './debug-modal/index.js';\r\nimport { css, customElement, html, map, nothing, property, state, when } from '@umbraco-cms/backoffice/external/lit';\r\nimport { contextData, UmbContextDebugRequest } from '@umbraco-cms/backoffice/context-api';\r\nimport { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';\r\nimport { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal';\r\nimport type { UmbDebugContextItemData } from '@umbraco-cms/backoffice/context-api';\r\nimport type { UmbModalManagerContext } from '@umbraco-cms/backoffice/modal';\r\n\r\n@customElement('umb-debug')\r\nexport class UmbDebugElement extends UmbLitElement {\r\n\t@property({ type: Boolean })\r\n\tvisible = false;\r\n\r\n\t@property({ type: Boolean })\r\n\tdialog = false;\r\n\r\n\t@state()\r\n\tprivate _contexts = new Map();\r\n\r\n\t@state()\r\n\tprivate _debugPaneOpen = false;\r\n\r\n\tprivate _modalContext?: UmbModalManagerContext;\r\n\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => {\r\n\t\t\tthis._modalContext = instance;\r\n\t\t});\r\n\t}\r\n\r\n\t#update() {\r\n\t\tthis.dispatchEvent(\r\n\t\t\tnew UmbContextDebugRequest((contexts: Map) => {\r\n\t\t\t\t// The Contexts are collected\r\n\t\t\t\t// When travelling up through the DOM from this element\r\n\t\t\t\t// to the root of which then uses the callback prop\r\n\t\t\t\t// of this event that has been raised to assign the contexts\r\n\t\t\t\t// back to this property of the WebComponent\r\n\t\t\t\tthis._contexts = contexts;\r\n\t\t\t}),\r\n\t\t);\r\n\t}\r\n\r\n\t#toggleDebugPane() {\r\n\t\tthis._debugPaneOpen = !this._debugPaneOpen;\r\n\t\tif (this._debugPaneOpen) {\r\n\t\t\tthis.#update();\r\n\t\t}\r\n\t}\r\n\r\n\t#openDialog() {\r\n\t\tthis.#update();\r\n\r\n\t\tthis._modalContext?.open(this, UMB_CONTEXT_DEBUGGER_MODAL, {\r\n\t\t\tdata: {\r\n\t\t\t\tcontent: this.#renderContextAliases(),\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\toverride render() {\r\n\t\tif (!this.visible) return nothing;\r\n\t\treturn this.dialog ? this.#renderDialog() : this.#renderPanel();\r\n\t}\r\n\r\n\t#renderDialog() {\r\n\t\treturn html`\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\tDebug\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t`;\r\n\t}\r\n\r\n\t#renderPanel() {\r\n\t\treturn html`\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\tDebug\r\n\t\t\t\t\r\n\t\t\t\t${when(this._debugPaneOpen, () => this.#renderContextAliases())}\r\n\t\t\t
\r\n\t\t`;\r\n\t}\r\n\r\n\t#renderContextAliases() {\r\n\t\tconst data = contextData(this._contexts);\r\n\t\treturn html`
\r\n\t\t\t${map(data, (context) => {\r\n\t\t\t\treturn html`\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t${context.alias}\r\n\t\t\t\t\t\t${this.#renderInstance(context.data)}\r\n\t\t\t\t\t
\r\n\t\t\t\t`;\r\n\t\t\t})}\r\n\t\t
`;\r\n\t}\r\n\r\n\t#renderInstance(instance: UmbDebugContextItemData) {\r\n\t\tswitch (instance.type) {\r\n\t\t\tcase 'function': {\r\n\t\t\t\treturn html`

Callable Function

`;\r\n\t\t\t}\r\n\r\n\t\t\tcase 'object': {\r\n\t\t\t\treturn html`\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\tMethods\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t${map(instance.methods, (methodName) => html`
  • ${methodName}
  • `)}\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\tProperties\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t${map(instance.properties, (property) => {\r\n\t\t\t\t\t\t\t\tswitch (property.type) {\r\n\t\t\t\t\t\t\t\t\tcase 'string':\r\n\t\t\t\t\t\t\t\t\tcase 'number':\r\n\t\t\t\t\t\t\t\t\tcase 'boolean':\r\n\t\t\t\t\t\t\t\t\tcase 'object':\r\n\t\t\t\t\t\t\t\t\t\treturn html`
  • ${property.key} (${property.type}) = ${property.value}
  • `;\r\n\r\n\t\t\t\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\t\t\t\treturn html`
  • ${property.key} (${property.type})
  • `;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t`;\r\n\t\t\t}\r\n\r\n\t\t\tcase 'primitive': {\r\n\t\t\t\treturn html`

Context is a primitive with value: ${instance.value}

`;\r\n\t\t\t}\r\n\r\n\t\t\tdefault: {\r\n\t\t\t\treturn html`

Unknown type: ${instance.type}

`;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tstatic override styles = [\r\n\t\tcss`\r\n\t\t\t:host {\r\n\t\t\t\tfloat: right;\r\n\t\t\t\tfont-family: monospace;\r\n\t\t\t\tposition: relative;\r\n\t\t\t\tz-index: 10000;\r\n\t\t\t}\r\n\r\n\t\t\t#container {\r\n\t\t\t\tdisplay: flex;\r\n\t\t\t\tflex-direction: column;\r\n\t\t\t\talign-items: flex-end;\r\n\t\t\t}\r\n\r\n\t\t\tuui-badge {\r\n\t\t\t\tcursor: pointer;\r\n\t\t\t\tgap: 0.5rem;\r\n\t\t\t}\r\n\r\n\t\t\tuui-icon {\r\n\t\t\t\tfont-size: 15px;\r\n\t\t\t}\r\n\r\n\t\t\t.events {\r\n\t\t\t\tbackground-color: var(--uui-color-danger);\r\n\t\t\t\tcolor: var(--uui-color-selected-contrast);\r\n\t\t\t\tpadding: 1rem;\r\n\t\t\t}\r\n\r\n\t\t\tsummary {\r\n\t\t\t\tcursor: pointer;\r\n\t\t\t}\r\n\r\n\t\t\tdetails > details {\r\n\t\t\t\tmargin-left: 1rem;\r\n\t\t\t}\r\n\r\n\t\t\tul {\r\n\t\t\t\tmargin-top: 0;\r\n\t\t\t}\r\n\t\t`,\r\n\t];\r\n}\r\n\r\ndeclare global {\r\n\tinterface HTMLElementTagNameMap {\r\n\t\t'umb-debug': UmbDebugElement;\r\n\t}\r\n}\r\n"],"names":["UmbContextDebugController","UmbControllerBase","host","UMB_DEBUG_CONTEXT_EVENT_TYPE","#onContextDebug","event","data","contextData","UMB_CONTEXT_DEBUGGER_MODAL","UmbModalToken","_UmbDebugElement_instances","update_fn","toggleDebugPane_fn","openDialog_fn","renderDialog_fn","renderPanel_fn","renderContextAliases_fn","renderInstance_fn","UmbDebugElement","UmbLitElement","__privateAdd","UMB_MODAL_MANAGER_CONTEXT","instance","__privateMethod","nothing","UmbContextDebugRequest","contexts","html","when","map","context","methodName","property","css","__decorateClass","state","customElement"],"mappings":"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"}