{"version":3,"file":"rockPage.js","sources":["../../../Framework/Templates/rockBlock.partial.ts","../../../Framework/Templates/rockPage.ts"],"sourcesContent":["// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\n\nimport { Guid } from \"@Obsidian/Types\";\nimport { PersonPreferenceCollection } from \"@Obsidian/Core/Core/personPreferences\";\nimport { doApiCall, provideHttp } from \"@Obsidian/Utility/http\";\nimport { Component, computed, defineComponent, nextTick, onErrorCaptured, onMounted, PropType, provide, ref, watch } from \"vue\";\nimport { useStore } from \"@Obsidian/PageState\";\nimport { RockDateTime } from \"@Obsidian/Utility/rockDateTime\";\nimport { HttpBodyData, HttpMethod, HttpResult, HttpUrlParams } from \"@Obsidian/Types/Utility/http\";\nimport { createInvokeBlockAction, provideBlockBrowserBus, provideBlockGuid, provideBlockTypeGuid, provideConfigurationValuesChanged, providePersonPreferences, provideReloadBlock, provideStaticContent } from \"@Obsidian/Utility/block\";\nimport { areEqual, emptyGuid, toGuidOrNull } from \"@Obsidian/Utility/guid\";\nimport { PanelAction } from \"@Obsidian/Types/Controls/panelAction\";\nimport { ObsidianBlockConfigBag } from \"@Obsidian/ViewModels/Cms/obsidianBlockConfigBag\";\nimport { IBlockPersonPreferencesProvider, IPersonPreferenceCollection } from \"@Obsidian/Types/Core/personPreferences\";\nimport { PersonPreferenceValueBag } from \"@Obsidian/ViewModels/Core/personPreferenceValueBag\";\nimport { BlockReloadMode } from \"@Obsidian/Enums/Cms/blockReloadMode\";\nimport { BrowserBus } from \"@Obsidian/Utility/browserBus\";\n\nconst store = useStore();\n\n// Can be removed once WebForms is no longer in use.\n// eslint-disable-next-line @typescript-eslint/naming-convention,@typescript-eslint/no-explicit-any\ndeclare const Sys: any;\n\n/**\n * Handles the logic to detect when the standard block settings modal has closed\n * via a Save click for the specified block.\n *\n * @param blockId The unique identifier of the block to be watched.\n * @param callback The callback to be invoked when the block settings have been saved.\n */\nfunction addBlockChangedEventListener(blockId: Guid, callback: (() => void)): void {\n function onTriggerClick(): void {\n const dataElement = document.querySelector(\"#rock-config-trigger-data\") as HTMLInputElement;\n if (dataElement.value.toLowerCase().startsWith(\"block_updated:\")) {\n const dataSegments = dataElement.value.toLowerCase().split(\":\");\n\n if (dataSegments.length >= 3 && areEqual(dataSegments[2], blockId)) {\n callback();\n }\n }\n }\n\n document.querySelector(\"#rock-config-trigger\")?.addEventListener(\"click\", onTriggerClick, true);\n\n // This code can be removed once WebForms is no longer in use.\n if (Sys) {\n Sys.Application.add_load(() => {\n document.querySelector(\"#rock-config-trigger\")?.addEventListener(\"click\", onTriggerClick, true);\n });\n }\n}\n\n/**\n * Update the custom actions in the configuration bar to match those provided.\n *\n * @param blockContainerElement The element that contains the block component.\n * @param actions The array of actions to put in the configuration bar.\n */\nfunction updateConfigurationBarActions(blockContainerElement: HTMLElement, actions: PanelAction[]): void {\n // Find the configuration bar. We don't want to use querySelector at the\n // blockContent level because that would include the block content which\n // might have matching class names and cause issues.\n const blockContent = blockContainerElement.closest(\".block-content\");\n const blockConfiguration = Array.from(blockContent?.children ?? [])\n .find(el => el.classList.contains(\"block-configuration\"));\n const configurationBar = blockConfiguration?.querySelector(\".block-configuration-bar\") as HTMLElement | undefined;\n\n if (!configurationBar) {\n return;\n }\n\n // Find the name element, which is what we will use as our insertion point.\n const nameElement = Array.from(configurationBar.children).find(el => el.tagName == \"SPAN\");\n if (!nameElement) {\n return;\n }\n\n // Find and remove any existing custom actions.\n Array.from(configurationBar.querySelectorAll(\"a\"))\n .filter(el => el.dataset[\"customAction\"] === \"true\")\n .forEach(el => el.remove());\n\n // Add new custom actions.\n actions.forEach(action => {\n const hyperlinkElement = document.createElement(\"a\");\n hyperlinkElement.href = \"#\";\n hyperlinkElement.title = action.title ?? \"\";\n hyperlinkElement.dataset[\"customAction\"] = \"true\";\n hyperlinkElement.addEventListener(\"click\", e => {\n e.preventDefault();\n if (action.handler) {\n action.handler(e);\n }\n });\n\n const iconElement = document.createElement(\"i\");\n iconElement.className = action.iconCssClass ?? \"fa fa-question\";\n\n hyperlinkElement.appendChild(iconElement);\n\n nameElement.after(hyperlinkElement);\n });\n}\n\n/**\n * Converts a HTML string to a collection of Node objects.\n *\n * @param content The HTML content to be converted.\n *\n * @returns A collection of Node objects that represent the HTML.\n */\nfunction convertHtmlToNodes(content: string | undefined | null): Node[] {\n if (typeof content !== \"string\") {\n return [];\n }\n\n const nodes: Node[] = [];\n const root = document.createElement(\"div\");\n root.innerHTML = content;\n\n while (root.firstChild !== null) {\n const node = root.firstChild;\n node.remove();\n nodes.push(node);\n }\n\n return nodes;\n}\n\nexport default defineComponent({\n name: \"RockBlock\",\n\n props: {\n config: {\n type: Object as PropType,\n required: true\n },\n blockComponent: {\n type: Object as PropType,\n default: null\n },\n startTimeMs: {\n type: Number as PropType,\n required: true\n },\n staticContent: {\n type: Array as PropType,\n required: false\n }\n },\n\n setup(props) {\n const error = ref(\"\");\n const finishTimeMs = ref(null);\n const blockContainerElement = ref(null);\n const configurationValues = ref(props.config.configurationValues);\n const configCustomActions = ref(props.config.customConfigurationActions);\n const staticContent = ref(props.staticContent ?? []);\n const customActionComponent = ref(null);\n const currentBlockComponent = ref(props.blockComponent);\n\n // #region Computed Values\n\n // The current config bar actions that should be included in the block's\n // administrative configuration bar.\n const configBarActions = computed((): PanelAction[] => {\n const customActions: PanelAction[] = [];\n\n if (configCustomActions.value) {\n for (const cca of configCustomActions.value) {\n if (cca.iconCssClass && cca.tooltip && cca.componentFileUrl) {\n customActions.push({\n type: \"default\",\n title: cca.tooltip,\n iconCssClass: cca.iconCssClass,\n handler: async () => {\n try {\n const module = await import(cca.componentFileUrl ?? \"\");\n customActionComponent.value = module?.default ?? module ?? null;\n }\n catch (e) {\n // Log the error, but continue setting up the app so the UI will show the user an error\n console.error(e);\n }\n }\n });\n }\n }\n }\n\n return customActions;\n });\n\n // #endregion\n\n // #region Functions\n\n const httpCall = async (method: HttpMethod, url: string, params: HttpUrlParams = undefined, data: HttpBodyData = undefined): Promise> => {\n return await doApiCall(method, url, params, data);\n };\n\n const get = async (url: string, params: HttpUrlParams = undefined): Promise> => {\n return await httpCall(\"GET\", url, params);\n };\n\n const post = async (url: string, params: HttpUrlParams = undefined, data: HttpBodyData = undefined): Promise> => {\n return await httpCall(\"POST\", url, params, data);\n };\n\n const invokeBlockAction = createInvokeBlockAction(post, store.state.pageGuid, toGuidOrNull(props.config.blockGuid) ?? emptyGuid, store.state.pageParameters, store.state.interactionGuid);\n\n /**\n * Reload the block by requesting the new initialization data and then\n * remove the block component and re-add it.\n */\n const reloadBlock = async (): Promise => {\n const result = await invokeBlockAction(\"RefreshObsidianBlockInitialization\");\n\n if (result.isSuccess && result.data) {\n currentBlockComponent.value = null;\n\n // Waiting for the next tick forces Vue to remove the component\n // so that we can re-add it causing a full initialization again.\n nextTick(() => {\n configurationValuesChanged.reset();\n configurationValues.value = result.data?.configurationValues;\n configCustomActions.value = result.data?.customConfigurationActions;\n staticContent.value = convertHtmlToNodes(result.data?.initialContent);\n currentBlockComponent.value = props.blockComponent;\n });\n }\n else {\n console.error(\"Failed to reload block:\", result.errorMessage || \"Unknown error\");\n }\n };\n\n /**\n * Gets the person preference provider for this block.\n *\n * @returns A block person preference provider.\n */\n function getPreferenceProvider(): IBlockPersonPreferencesProvider {\n let timeStampFromSessionData = 0;\n let valuesFromSessionData: PersonPreferenceValueBag[] = [];\n let values: PersonPreferenceValueBag[] = [];\n\n const sessionStorageKey = `${props.config.rootElementId}-preferences`;\n\n try {\n const sessionStorageDataRaw = sessionStorage.getItem(sessionStorageKey) ?? \"{}\";\n timeStampFromSessionData = (JSON.parse(sessionStorageDataRaw))?.timeStamp ?? 0;\n valuesFromSessionData = ((JSON.parse(sessionStorageDataRaw))?.values ?? []) as PersonPreferenceValueBag[];\n }\n catch { /* continue with the default values if parsing of sessionData fails */ }\n\n // Compare the preference in the props with the one in the Session Storage and choose the later of the two.\n // This was done to avoid displaying outdated preference when the individual navigates to the webpage using a back button for instance.\n if (props.config?.preferences?.timeStamp && timeStampFromSessionData <= props.config.preferences.timeStamp) {\n const preferenceDataToBeStored = {\n timeStamp: props.config.preferences?.timeStamp,\n values: props.config.preferences?.values ?? []\n };\n sessionStorage.setItem(sessionStorageKey, `${JSON.stringify(preferenceDataToBeStored)}`);\n values = props.config.preferences?.values ?? [];\n }\n else {\n values = valuesFromSessionData;\n }\n\n const entityTypeKey = props.config.preferences?.entityTypeKey ?? undefined;\n const entityKey = props.config.preferences?.entityKey ?? undefined;\n const anonymous = !store.state.isAnonymousVisitor && !store.state.currentPerson;\n\n const preferenceProvider: IBlockPersonPreferencesProvider = {\n blockPreferences: new PersonPreferenceCollection(entityTypeKey, entityKey, \"\", anonymous, values),\n async getGlobalPreferences(): Promise {\n try {\n const response = await get(\"/api/v2/Utilities/PersonPreferences\");\n\n if (!response.isSuccess || !response.data) {\n console.error(response.errorMessage || \"Unable to retrieve person preferences.\");\n return new PersonPreferenceCollection();\n }\n\n return new PersonPreferenceCollection(undefined, undefined, \"\", anonymous, response.data);\n }\n catch (error) {\n console.error(error);\n return new PersonPreferenceCollection();\n }\n },\n\n async getEntityPreferences(entityTypeKey, entityKey): Promise {\n try {\n const response = await get(`/api/v2/Utilities/PersonPreferences/${entityTypeKey}/${entityKey}`);\n\n if (!response.isSuccess || !response.data) {\n console.error(response.errorMessage || \"Unable to retrieve person preferences.\");\n return new PersonPreferenceCollection();\n }\n\n return new PersonPreferenceCollection(entityTypeKey, entityKey, \"\", anonymous, response.data);\n }\n catch (error) {\n console.error(error);\n return new PersonPreferenceCollection();\n }\n },\n };\n\n // Store the preference in the Session Storage when it changes after render.\n const onPreferenceSave = (prefereneces: PersonPreferenceValueBag[]): void => {\n const preferenceDataToBeStored = {\n timeStamp: new Date().getTime(),\n values: prefereneces\n };\n\n sessionStorage.setItem(sessionStorageKey, `${JSON.stringify(preferenceDataToBeStored)}`);\n };\n\n preferenceProvider.blockPreferences.on(\"preferenceSaved\", onPreferenceSave);\n\n return preferenceProvider;\n }\n\n // #endregion\n\n // #region Event Handlers\n\n /**\n * Event handler for when a close event is emitted by a custom action\n * component.\n */\n const onCustomActionClose = (): void => {\n customActionComponent.value = null;\n };\n\n // #endregion\n\n // Watch for changes in our config bar actions and make sure the UI\n // is also updated to match.\n watch(configBarActions, () => {\n if (blockContainerElement.value) {\n updateConfigurationBarActions(blockContainerElement.value, configBarActions.value);\n }\n });\n\n // Called when an error in a child component has been captured.\n onErrorCaptured(err => {\n const defaultMessage = \"An unknown error was caught from the block.\";\n\n if (err instanceof Error) {\n error.value = err.message || defaultMessage;\n }\n else if (err) {\n error.value = JSON.stringify(err) || defaultMessage;\n }\n else {\n error.value = defaultMessage;\n }\n });\n\n // Called when the component has mounted and is presented on the UI.\n onMounted(() => {\n finishTimeMs.value = RockDateTime.now().toMilliseconds();\n const componentName = props.blockComponent?.name || \"\";\n const nameParts = componentName.split(\".\");\n let subtitle = nameParts[0] || \"\";\n\n if (subtitle && subtitle.indexOf(\"(\") !== 0) {\n subtitle = `(${subtitle})`;\n }\n\n if (nameParts.length) {\n store.addPageDebugTiming({\n title: nameParts[1] || \"\",\n subtitle: subtitle,\n startTimeMs: props.startTimeMs,\n finishTimeMs: finishTimeMs.value\n });\n }\n\n\n // If we have any custom configuration actions then populate the\n // custom buttons in the configuration bar.\n if (blockContainerElement.value) {\n updateConfigurationBarActions(blockContainerElement.value, configBarActions.value);\n }\n });\n\n provideHttp({\n doApiCall,\n get,\n post\n });\n\n provide(\"blockActionUrl\", (actionName: string): string => {\n return `/api/v2/BlockActions/${store.state.pageGuid}/${props.config.blockGuid}/${actionName}`;\n });\n provide(\"invokeBlockAction\", invokeBlockAction);\n provide(\"configurationValues\", configurationValues);\n provideReloadBlock(reloadBlock);\n providePersonPreferences(getPreferenceProvider());\n const configurationValuesChanged = provideConfigurationValuesChanged();\n provideStaticContent(staticContent);\n\n provideBlockGuid(props.config.blockGuid);\n provideBlockTypeGuid(props.config.blockTypeGuid);\n provideBlockBrowserBus(new BrowserBus({\n block: props.config.blockGuid,\n blockType: props.config.blockTypeGuid\n }));\n\n // If we have a block guid, then add an event listener for configuration\n // changes to the block.\n if (props.config.blockGuid) {\n addBlockChangedEventListener(props.config.blockGuid, () => {\n if (props.config.reloadMode === BlockReloadMode.Page) {\n window.location.href = window.location.href.toString();\n }\n else if (props.config.reloadMode === BlockReloadMode.Block) {\n reloadBlock();\n }\n\n configurationValuesChanged.invoke();\n });\n }\n\n return {\n blockContainerElement,\n blockFileUrl: props.config.blockFileUrl,\n blockGuid: props.config.blockGuid ?? emptyGuid,\n currentBlockComponent,\n customActionComponent,\n onCustomActionClose,\n error\n };\n },\n\n // Note: We are using a custom alert so there is no dependency on the\n // Controls package.\n template: `\n
\n
\n Not Found\n Could not find block component: \"{{blockFileUrl}}\"\n
\n\n
\n Uncaught Error\n {{error}}\n
\n\n \n\n
\n \n
\n
`\n});\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { App, Component, createApp, defineComponent, Directive, h, markRaw, onMounted, provide, ref, VNode } from \"vue\";\nimport RockBlock from \"./rockBlock.partial\";\nimport { useStore } from \"@Obsidian/PageState\";\nimport \"@Obsidian/ValidationRules\";\nimport \"@Obsidian/FieldTypes/index\";\nimport { DebugTiming } from \"@Obsidian/ViewModels/Utility/debugTiming\";\nimport { ObsidianBlockConfigBag } from \"@Obsidian/ViewModels/Cms/obsidianBlockConfigBag\";\nimport { PageConfig } from \"@Obsidian/Utility/page\";\nimport { RockDateTime } from \"@Obsidian/Utility/rockDateTime\";\nimport { BasicSuspenseProvider, provideSuspense } from \"@Obsidian/Utility/suspense\";\nimport { alert } from \"@Obsidian/Utility/dialogs\";\nimport { HttpBodyData, HttpMethod, HttpResult, HttpUrlParams } from \"@Obsidian/Types/Utility/http\";\nimport { doApiCall, provideHttp } from \"@Obsidian/Utility/http\";\nimport { createInvokeBlockAction, provideBlockBrowserBus, provideBlockGuid, provideBlockTypeGuid } from \"@Obsidian/Utility/block\";\nimport { useBrowserBus } from \"@Obsidian/Utility/browserBus\";\n\ntype DebugTimingConfig = {\n elementId: string;\n debugTimingViewModels: DebugTiming[];\n};\n\nconst store = useStore();\n\n/**\n * This is a special use component that allows developers to include style\n * tags inside a string-literal component (i.e. not an SFC). It should only\n * be used temporarily until the styling team can move the styles into the\n * LESS and CSS files.\n */\nconst developerStyle = defineComponent({\n render(): VNode {\n return h(\"style\", {}, this.$slots.default ? this.$slots.default() : undefined);\n }\n});\n\n/**\n * This directive (v-content) behaves much like v-html except it also allows\n * pre-defined HTML nodes to be passed in. This can be used to show and hide\n * nodes without losing any 3rd party event listeners or other data that would\n * otherwise be lost when using an HTML string.\n */\nconst contentDirective: Directive = {\n mounted(el, binding) {\n el.innerHTML = \"\";\n if (Array.isArray(binding.value)) {\n for (const v of binding.value) {\n el.append(v);\n }\n }\n else if (typeof binding.value === \"string\") {\n el.innerHTML = binding.value;\n }\n else if (binding.value) {\n el.append(binding.value);\n }\n },\n updated(el, binding) {\n el.innerHTML = \"\";\n if (Array.isArray(binding.value)) {\n for (const v of binding.value) {\n el.append(v);\n }\n }\n else if (typeof binding.value === \"string\") {\n el.innerHTML = binding.value;\n }\n else if (binding.value) {\n el.append(binding.value);\n }\n }\n};\n\n\n/**\n* This should be called once per block on the page. The config contains configuration provided by the block's server side logic\n* counterpart. This adds the block to the page and allows it to begin initializing.\n* @param config\n* @param blockComponent\n*/\nexport async function initializeBlock(config: ObsidianBlockConfigBag): Promise {\n const blockPath = `${config.blockFileUrl}.js`;\n let blockComponent: Component | null = null;\n let errorMessage = \"\";\n\n if (!config || !config.blockFileUrl || !config.blockGuid || !config.rootElementId) {\n console.error(\"Invalid block configuration:\", config);\n throw \"Could not initialize Obsidian block because the configuration is invalid.\";\n }\n\n const rootElement = document.getElementById(config.rootElementId);\n\n if (!rootElement) {\n throw \"Could not initialize Obsidian block because the root element was not found.\";\n }\n\n try {\n const blockComponentModule = await import(blockPath);\n blockComponent = blockComponentModule ?\n (blockComponentModule.default || blockComponentModule) :\n null;\n }\n catch (e) {\n // Log the error, but continue setting up the app so the UI will show the user an error\n console.error(e);\n errorMessage = `${e}`;\n }\n\n const startTimeMs = RockDateTime.now().toMilliseconds();\n const name = `Root${config.blockFileUrl.replace(/\\//g, \".\")}`;\n const staticContent = ref([]);\n\n while (rootElement.firstChild !== null) {\n const node = rootElement.firstChild;\n node.remove();\n staticContent.value.push(node);\n }\n\n const app = createApp({\n name,\n components: {\n RockBlock\n },\n setup() {\n let isLoaded = false;\n\n // Create a suspense provider so we can monitor any asynchronous load\n // operations that should delay the display of the page.\n const suspense = new BasicSuspenseProvider(undefined);\n provideSuspense(suspense);\n\n /** Called to note on the body element that this block is loading. */\n const startLoading = (): void => {\n let pendingCount = parseInt(document.body.getAttribute(\"data-obsidian-pending-blocks\") ?? \"0\");\n pendingCount++;\n document.body.setAttribute(\"data-obsidian-pending-blocks\", pendingCount.toString());\n };\n\n /** Called to note when this block has finished loading. */\n const finishedLoading = (): void => {\n if (isLoaded) {\n return;\n }\n\n isLoaded = true;\n\n rootElement.classList.remove(\"obsidian-block-loading\");\n\n // Get the number of pending blocks. If this is the last one\n // then signal the page that all blocks are loaded and ready.\n let pendingCount = parseInt(document.body.getAttribute(\"data-obsidian-pending-blocks\") ?? \"0\");\n if (pendingCount > 0) {\n pendingCount--;\n document.body.setAttribute(\"data-obsidian-pending-blocks\", pendingCount.toString());\n if (pendingCount === 0) {\n document.body.classList.remove(\"obsidian-loading\");\n }\n }\n };\n\n // Start loading and wait for up to 5 seconds for the block to finish.\n startLoading();\n setTimeout(finishedLoading, 5000);\n\n // Called when all our child components have initialized.\n onMounted(() => {\n if (!suspense.hasPendingOperations()) {\n finishedLoading();\n }\n else {\n suspense.addFinishedHandler(() => {\n finishedLoading();\n });\n }\n });\n\n return {\n config: config,\n blockComponent: blockComponent ? markRaw(blockComponent) : null,\n startTimeMs,\n staticContent,\n errorMessage\n };\n },\n\n // Note: We are using a custom alert so there is not a dependency on\n // the Controls package.\n template: `\n
\n`\n });\n\n app.directive(\"content\", contentDirective);\n app.component(\"v-style\", developerStyle);\n app.mount(rootElement);\n\n return app;\n}\n\n/**\n* This is an internal method which would be changed in future. This was created for the Short Link Modal and would be made more generic in future.\n* @param url\n*/\nexport function showShortLink(url: string): void {\n\n // create an iframe\n // set width and height = 400\n // set postiion to abs\n // set the src attribute\n\n const rootElement = document.createElement(\"div\");\n const modalPopup = document.createElement(\"div\");\n const modalPopupContentPanel = document.createElement(\"div\");\n const iframe = document.createElement(\"iframe\");\n\n rootElement.className = \"modal-scrollable\";\n rootElement.id = \"shortlink-modal-popup\";\n rootElement.style.zIndex = \"1060\";\n rootElement.appendChild(modalPopup);\n\n modalPopup.id = \"shortlink-modal-popup\";\n modalPopup.className = \"modal container modal-content rock-modal rock-modal-frame modal-overflow in\";\n modalPopup.style.opacity = \"1\";\n modalPopup.style.display = \"block\";\n modalPopup.style.marginTop = \"0px\";\n modalPopup.style.position = \"absolute\";\n modalPopup.style.top = \"30px\";\n modalPopup.appendChild(modalPopupContentPanel);\n\n modalPopupContentPanel.className = \"iframe\";\n modalPopupContentPanel.id = \"shortlink-modal-popup_contentPanel\";\n modalPopupContentPanel.appendChild(iframe);\n\n document.body.appendChild(rootElement);\n\n const modalBackDroping = document.createElement(\"div\");\n modalBackDroping.id = \"shortlink-modal-popup_backDrop\";\n modalBackDroping.className = \"modal-backdrop in\";\n modalBackDroping.style.zIndex = \"1050\";\n document.body.appendChild(modalBackDroping);\n\n\n iframe.id = \"shortlink-modal-popup_iframe\";\n iframe.src = url;\n iframe.style.display = \"block\";\n iframe.style.width = \"100%\";\n iframe.style.borderRadius = \"6px\";\n iframe.scrolling = \"no\";\n iframe.style.overflowY = \"clip\";\n const iframeResizer = new ResizeObserver((event) => {\n const iframeBody = event[0].target;\n iframe.style.height = (iframeBody.scrollHeight?.toString() + \"px\") ?? \"25vh\";\n });\n iframe.onload = () => {\n if(!iframe?.contentWindow?.document?.documentElement) {\n return;\n }\n iframe.style.height = (iframe.contentWindow.document.body.scrollHeight?.toString() + \"px\") ?? \"25vh\";\n iframeResizer.observe(iframe.contentWindow.document.body);\n };\n}\n\n/**\n * Loads and shows a custom block action. This is a special purpose function\n * designed to be used only by the WebForms PageZoneBlocksEditor.ascx.cs control.\n * It will be removed once WebForms blocks are no longer supported.\n *\n * @param actionFileUrl The component file URL for the action handler.\n * @param pageGuid The unique identifier of the page.\n * @param blockGuid The unique identifier of the block.\n * @param blockTypeGuid The unique identifier of the block type.\n */\nexport async function showCustomBlockAction(actionFileUrl: string, pageGuid: string, blockGuid: string, blockTypeGuid: string): Promise {\n let actionComponent: Component | null = null;\n\n try {\n const actionComponentModule = await import(actionFileUrl);\n actionComponent = actionComponentModule ?\n (actionComponentModule.default || actionComponentModule) :\n null;\n }\n catch (e) {\n // Log the error, but continue setting up the app so the UI will show the user an error\n console.error(e);\n alert(\"There was an error trying to show these settings.\");\n return;\n }\n\n const name = `Action${actionFileUrl.replace(/\\//g, \".\")}`;\n\n const app = createApp({\n name,\n components: {\n },\n setup() {\n // Create a suspense provider so we can monitor any asynchronous load\n // operations that should delay the display of the page.\n const suspense = new BasicSuspenseProvider(undefined);\n provideSuspense(suspense);\n\n const httpCall = async (method: HttpMethod, url: string, params: HttpUrlParams = undefined, data: HttpBodyData = undefined): Promise> => {\n return await doApiCall(method, url, params, data);\n };\n\n const get = async (url: string, params: HttpUrlParams = undefined): Promise> => {\n return await httpCall(\"GET\", url, params);\n };\n\n const post = async (url: string, params: HttpUrlParams = undefined, data: HttpBodyData = undefined): Promise> => {\n return await httpCall(\"POST\", url, params, data);\n };\n\n const invokeBlockAction = createInvokeBlockAction(post, pageGuid, blockGuid, store.state.pageParameters, store.state.interactionGuid);\n\n provideHttp({\n doApiCall,\n get,\n post\n });\n provide(\"blockActionUrl\", (actionName: string): string => {\n return `/api/v2/BlockActions/${pageGuid}/${blockGuid}/${actionName}`;\n });\n provide(\"invokeBlockAction\", invokeBlockAction);\n provideBlockGuid(blockGuid);\n provideBlockTypeGuid(blockTypeGuid);\n provideBlockBrowserBus(useBrowserBus({ block: blockGuid, blockType: blockTypeGuid }));\n\n return {\n actionComponent,\n onCustomActionClose\n };\n },\n\n // Note: We are using a custom alert so there is not a dependency on\n // the Controls package.\n template: ``\n });\n\n function onCustomActionClose(): void {\n app.unmount();\n rootElement.remove();\n }\n\n const rootElement = document.createElement(\"div\");\n document.body.append(rootElement);\n\n app.component(\"v-style\", developerStyle);\n app.mount(rootElement);\n}\n\n/**\n * This should be called once per page with data from the server that pertains to the entire page. This includes things like\n * page parameters and context entities.\n *\n * @param {object} pageConfig\n */\nexport async function initializePage(pageConfig: PageConfig): Promise {\n await store.initialize(pageConfig);\n}\n\n/**\n * Shows the Obsidian debug timings\n * @param debugTimingConfig\n */\nexport async function initializePageTimings(config: DebugTimingConfig): Promise {\n const rootElement = document.getElementById(config.elementId);\n\n if (!rootElement) {\n console.error(\"Could not show Obsidian debug timings because the HTML element did not resolve.\");\n return;\n }\n\n const pageDebugTimings = (await import(\"@Obsidian/Controls/Internal/pageDebugTimings.obs\")).default;\n\n const app = createApp({\n name: \"PageDebugTimingsRoot\",\n components: {\n PageDebugTimings: pageDebugTimings\n },\n data() {\n return {\n viewModels: config.debugTimingViewModels\n };\n },\n template: ``\n });\n app.mount(rootElement);\n}\n\n/**\n* This is an internal type which would be changed in future. This was created for the Short Link Modal and would be made more generic in future.\n*/\nexport type ShortLinkEmitter = {\n closeModal: string\n};"],"names":["store","useStore","addBlockChangedEventListener","blockId","callback","_document$querySelect","onTriggerClick","dataElement","document","querySelector","value","toLowerCase","startsWith","dataSegments","split","length","areEqual","addEventListener","Sys","Application","add_load","_document$querySelect2","updateConfigurationBarActions","blockContainerElement","actions","_blockContent$childre","blockContent","closest","blockConfiguration","Array","from","children","find","el","classList","contains","configurationBar","nameElement","tagName","querySelectorAll","filter","dataset","forEach","remove","action","_action$title","_action$iconCssClass","hyperlinkElement","createElement","href","title","e","preventDefault","handler","iconElement","className","iconCssClass","appendChild","after","convertHtmlToNodes","content","nodes","root","innerHTML","firstChild","node","push","defineComponent","name","props","config","type","Object","required","blockComponent","default","startTimeMs","Number","staticContent","setup","_props$staticContent","_toGuidOrNull","_props$config$blockGu","error","ref","finishTimeMs","configurationValues","configCustomActions","customConfigurationActions","customActionComponent","currentBlockComponent","configBarActions","computed","customActions","_iterator","_createForOfIteratorHelper","_step","_loop","cca","tooltip","componentFileUrl","_handler","_asyncToGenerator","_cca$componentFileUrl","_ref","_module$default","module","console","apply","arguments","s","n","done","err","f","httpCall","_ref2","method","url","params","undefined","data","doApiCall","_x","_x2","get","_ref3","_x3","post","_ref4","_x4","invokeBlockAction","createInvokeBlockAction","state","pageGuid","toGuidOrNull","blockGuid","emptyGuid","pageParameters","interactionGuid","reloadBlock","_ref5","result","isSuccess","nextTick","_result$data","_result$data2","_result$data3","configurationValuesChanged","reset","initialContent","errorMessage","getPreferenceProvider","_props$config","_props$config$prefere","_props$config$prefere7","_props$config$prefere8","_props$config$prefere9","_props$config$prefere10","timeStampFromSessionData","valuesFromSessionData","values","sessionStorageKey","concat","rootElementId","_sessionStorage$getIt","_JSON$parse$timeStamp","_JSON$parse","_JSON$parse$values","_JSON$parse2","sessionStorageDataRaw","sessionStorage","getItem","JSON","parse","timeStamp","_unused","preferences","_props$config$prefere2","_props$config$prefere3","_props$config$prefere4","_props$config$prefere5","_props$config$prefere6","preferenceDataToBeStored","setItem","stringify","entityTypeKey","entityKey","anonymous","isAnonymousVisitor","currentPerson","preferenceProvider","blockPreferences","PersonPreferenceCollection","getGlobalPreferences","response","getEntityPreferences","onPreferenceSave","prefereneces","Date","getTime","on","onCustomActionClose","watch","onErrorCaptured","defaultMessage","Error","message","onMounted","_props$blockComponent","RockDateTime","now","toMilliseconds","componentName","nameParts","subtitle","indexOf","addPageDebugTiming","provideHttp","provide","actionName","provideReloadBlock","providePersonPreferences","provideConfigurationValuesChanged","provideStaticContent","provideBlockGuid","provideBlockTypeGuid","blockTypeGuid","provideBlockBrowserBus","BrowserBus","block","blockType","reloadMode","BlockReloadMode","Page","window","location","toString","Block","invoke","blockFileUrl","template","developerStyle","render","h","$slots","contentDirective","mounted","binding","isArray","v","append","updated","_iterator2","_step2","initializeBlock","_initializeBlock","blockPath","rootElement","getElementById","blockComponentModule","replace","app","createApp","components","RockBlock","isLoaded","suspense","BasicSuspenseProvider","provideSuspense","startLoading","_document$body$getAtt","pendingCount","parseInt","body","getAttribute","setAttribute","finishedLoading","_document$body$getAtt2","setTimeout","hasPendingOperations","addFinishedHandler","markRaw","directive","component","mount","showShortLink","modalPopup","modalPopupContentPanel","iframe","id","style","zIndex","opacity","display","marginTop","position","top","modalBackDroping","src","width","borderRadius","scrolling","overflowY","iframeResizer","ResizeObserver","event","_iframeBody$scrollHei","iframeBody","target","height","scrollHeight","onload","_iframe$contentWindow","_iframe$contentWindow2","_iframe$contentWindow3","contentWindow","documentElement","observe","showCustomBlockAction","_x5","_showCustomBlockAction","actionFileUrl","actionComponent","actionComponentModule","alert","_x8","_x9","_x10","_x11","useBrowserBus","unmount","initializePage","_x6","_initializePage","pageConfig","initialize","initializePageTimings","_x7","_initializePageTimings","elementId","pageDebugTimings","PageDebugTimings","viewModels","debugTimingViewModels"],"mappings":"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"}