{"version":3,"file":"js/981.c5d943c2.js","mappings":"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","sources":["webpack://app/./src/components/pages/BoardView.vue","webpack://app/./src/components/pages/BoardGridView.vue","webpack://app/./src/boards/calendar/components/CalendarCardItem.vue?fbf0","webpack://app/./src/boards/calendar/components/CalendarCardItem.vue","webpack://app/./src/boards/calendar/components/CalendarCardItem.vue?e834","webpack://app/./src/boards/calendar/components/tooltips/CalendarCardsTooltip.vue?f8a4","webpack://app/./src/boards/calendar/components/tooltips/CalendarCardsTooltip.vue","webpack://app/./src/boards/calendar/components/tooltips/CalendarCardsTooltip.vue?f172","webpack://app/./src/boards/calendar/components/CalendarDayItem.vue?ce02","webpack://app/./src/boards/calendar/components/CalendarDayItem.vue","webpack://app/./src/boards/calendar/components/CalendarDayItem.vue?1d89","webpack://app/./src/boards/calendar/components/CalendarWeekItem.vue?15ca","webpack://app/./src/boards/calendar/components/CalendarWeekItem.vue","webpack://app/./src/boards/calendar/components/CalendarWeekItem.vue?20e4","webpack://app/./src/boards/calendar/components/CalendarViewHeader.vue?12a8","webpack://app/./src/boards/calendar/components/CalendarViewHeader.vue","webpack://app/./src/boards/calendar/components/CalendarViewHeader.vue?fe54","webpack://app/./src/boards/calendar/components/CalendarView.vue?83b8","webpack://app/./src/boards/calendar/components/CalendarView.vue","webpack://app/./src/boards/calendar/components/CalendarView.vue?afb9","webpack://app/./src/components/pages/BoardGridView.vue?f335","webpack://app/./src/components/pages/BoardView.vue?0299","webpack://app/./src/components/editor/tableOfContents/TableOfContent.vue","webpack://app/./src/components/editor/tableOfContents/TableOfContentItems.vue","webpack://app/./src/components/editor/tableOfContents/TableOfContentItems.vue?b864","webpack://app/./src/components/editor/tableOfContents/TableOfContent.vue?3e78","webpack://app/./src/components/editor/plugins/phantomSuggester/pluginKey.ts","webpack://app/./src/components/editor/composables/useGenerateEditorClass.ts","webpack://app/./src/components/elements/SidebarHeaderButton.vue","webpack://app/./src/components/elements/SidebarHeaderButton.vue?402b","webpack://app/../extension-callouts/src/index.ts","webpack://app/./src/components/editor/mixins/showLinkPopup.js","webpack://app/./src/components/elements/SettingsButtonHomeHeader.vue","webpack://app/./src/components/elements/SettingsButtonHomeHeader.vue?118f","webpack://app/./src/components/editor/plugins/fileReadUpload.ts","webpack://app/./src/components/editor/toolbar/sections/QuickCardButton.vue?913b","webpack://app/./src/components/editor/toolbar/sections/QuickCardButton.vue","webpack://app/./src/components/editor/toolbar/sections/QuickCardButton.vue?0b84","webpack://app/./src/components/elements/CommentPageButton.vue","webpack://app/./src/components/elements/CommentPageButton.vue?4b9a","webpack://app/./src/components/editor/helpers/uploadFile.ts","webpack://app/./src/boards/calendar/components/CalendarHeaderOptions.vue?8624","webpack://app/./src/boards/calendar/components/CalendarHeaderOptions.vue","webpack://app/./src/boards/calendar/components/CalendarHeaderOptions.vue?0ef2","webpack://app/./src/components/editor/toolbar/selection.ts","webpack://app/./src/components/editor/BlockHoverMenu.vue","webpack://app/./src/components/editor/DragHandle.vue","webpack://app/./src/components/editor/DragHandle.vue?34f0","webpack://app/./src/components/editor/CopyHeadingLinkButton.vue","webpack://app/./src/components/editor/CopyHeadingLinkButton.vue?ca01","webpack://app/./src/components/editor/BlockHoverMenu.vue?6358","webpack://app/./src/components/editor/nodeViews/InternalLinkNode.vue","webpack://app/./src/components/editor/nodeViews/InternalLink.vue","webpack://app/./src/components/editor/nodeViews/InternalLink.vue?8e09","webpack://app/./src/components/editor/nodeViews/InternalLinkNode.vue?7714","webpack://app/./src/components/editor/nodeViews/MediaResize.vue","webpack://app/./src/components/editor/nodeViews/MediaResize.vue?e967","webpack://app/./src/components/editor/nodeViews/MentionNode.vue","webpack://app/./src/components/editor/nodeViews/UserMention.vue","webpack://app/./src/components/editor/nodeViews/UserMention.vue?2c09","webpack://app/./src/components/editor/nodeViews/MentionNode.vue?3e80","webpack://app/./src/components/editor/nodeViews/StImagePlaceholder.vue","webpack://app/./src/components/editor/nodeViews/StImagePlaceholder.vue?c11f","webpack://app/./src/components/editor/popups/LinkTooltip.vue","webpack://app/./src/components/editor/popups/LinkTooltip.vue?79b5","webpack://app/../extension-comment/src/index.ts","webpack://app/../extension-image/src/index.ts","webpack://app/../extension-image-placeholder/src/index.ts","webpack://app/../extension-internal-link/src/index.ts","webpack://app/../extension-mention/src/index.ts","webpack://app/./src/components/editor/plugins/PrecommentHighlight/preCommentHighlightDecoration.ts","webpack://app/./src/components/editor/plugins/PrecommentHighlight/precommentHighlightPlugin.ts","webpack://app/./src/components/editor/plugins/PrecommentHighlight/index.ts","webpack://app/../extension-task-item/src/index.ts","webpack://app/./src/components/editor/helpers/InternalLinkRenderExtend.ts","webpack://app/./src/components/editor/customExtensions/ImageUploadExtension.ts","webpack://app/./src/components/editor/customExtensions/Resizing.ts","webpack://app/./src/components/editor/customExtensions/mouseOver.js","webpack://app/./src/components/editor/helpers/generateImageObject.js","webpack://app/./src/components/editor/plugins/LinkPasteHandler.ts","webpack://app/./src/components/editor/helpers/replaceHandlePastePlugin.ts","webpack://app/./src/components/editor/plugins/clickHandler.ts","webpack://app/./src/components/editor/helpers/replaceLinkClickPlugin.ts","webpack://app/./src/components/editor/helpers/mergeCellsDisabled.ts","webpack://app/./src/components/editor/plugins/InternalLinkAutolink.ts","webpack://app/./src/components/editor/plugins/doubleClick.ts","webpack://app/./src/components/editor/plugins/eventHandler.ts","webpack://app/./src/components/editor/services/lib/util.ts","webpack://app/./src/components/editor/services/lib/userMentionSuggestion.js","webpack://app/./src/components/editor/helpers/collaborationCursor.ts","webpack://app/./src/components/editor/plugins/phantomSuggester/PhantomSuggester.vue?ff17","webpack://app/./src/components/editor/plugins/phantomSuggester/PhantomSuggester.vue","webpack://app/./src/components/editor/plugins/phantomSuggester/PhantomSuggester.vue?2feb","webpack://app/./src/components/editor/services/lib/commandSuggestion/index.ts","webpack://app/./src/components/editor/services/lib/emojiSuggestion.js","webpack://app/./src/components/editor/plugins/phantomSuggester/util.ts","webpack://app/./src/components/editor/plugins/phantomSuggester/tryOpenSuggester.js","webpack://app/./src/components/editor/plugins/phantomSuggester/index.ts","webpack://app/../extension-table/src/tableView.ts","webpack://app/../extension-table/src/table.ts","webpack://app/../extension-table/src/stColorToHex.ts","webpack://app/../extension-table/src/tableCell.ts","webpack://app/../extension-table/src/tableHeader.ts","webpack://app/../extension-table/src/tableRow.ts","webpack://app/../extension-table/src/index.ts","webpack://app/./src/components/editor/customExtensions/tableOfContents.ts","webpack://app/./src/components/editor/plugins/characterCount.ts","webpack://app/./src/components/editor/plugins/customEnter.ts","webpack://app/./src/components/editor/plugins/inlineMedia/specificMedia/SpecificMedia.vue?c0f2","webpack://app/./src/components/editor/plugins/inlineMedia/specificMedia/SpecificMedia.vue","webpack://app/./src/components/editor/plugins/inlineMedia/specificMedia/SpecificMedia.vue?bee9","webpack://app/./src/components/editor/plugins/inlineMedia/GenericMedia.vue?3e3a","webpack://app/./src/components/editor/plugins/inlineMedia/GenericMedia.vue","webpack://app/./src/components/editor/plugins/inlineMedia/GenericMedia.vue?67c8","webpack://app/./src/components/editor/plugins/inlineMedia/GenericMediaPlaceholder.vue?9241","webpack://app/./src/components/editor/plugins/inlineMedia/GenericMediaPlaceholder.vue","webpack://app/./src/components/editor/plugins/inlineMedia/GenericMediaPlaceholder.vue?13d3","webpack://app/./src/components/editor/plugins/inlineMedia/index.ts","webpack://app/./src/components/editor/plugins/filterFiles.ts","webpack://app/./src/components/editor/plugins/customShortcuts.ts","webpack://app/../extension-board-embed/src/index.ts","webpack://app/./src/components/editor/nodeViews/BoardEmbed.vue?d239","webpack://app/./src/components/editor/nodeViews/BoardEmbed.vue","webpack://app/./src/components/editor/nodeViews/BoardEmbed.vue?f786","webpack://app/./src/components/editor/plugins/ContentMenu/contentMenuPlugin.ts","webpack://app/./src/components/editor/plugins/ContentMenu/index.ts","webpack://app/./src/components/editor/nodeViews/Callout.vue?0f83","webpack://app/./src/components/editor/nodeViews/Callout.vue","webpack://app/./src/components/editor/nodeViews/Callout.vue?12ba","webpack://app/./src/components/editor/customCommnads/exitBlockAbove.ts","webpack://app/./src/components/editor/services/EditorService.ts","webpack://app/./src/components/editor/popups/PopUpEditLink.vue","webpack://app/./src/components/editor/popups/PopUpEditLink.vue?a79c","webpack://app/./src/components/editor/toolbar/SectionItem.vue?848f","webpack://app/./src/components/editor/toolbar/SectionItem.vue","webpack://app/./src/components/editor/toolbar/SectionItem.vue?5acb","webpack://app/./src/components/editor/toolbar/MenuSection.vue?44f2","webpack://app/./src/components/editor/toolbar/MenuSection.vue","webpack://app/./src/components/editor/toolbar/MenuSection.vue?96df","webpack://app/./src/components/elements/PublicPageButton.vue","webpack://app/./src/components/elements/PublicPageButton.vue?77f7","webpack://app/./src/components/editor/toolbar/Toolbar.vue","webpack://app/./src/components/editor/toolbar/Toolbar.vue?80bd","webpack://app/./src/components/editor/popups/AiPopup.vue","webpack://app/./src/components/editor/popups/AiPopup.vue?b3c7","webpack://app/./src/components/editor/services/lib/commandSuggestion/commands.ts","webpack://app/./src/components/editor/Editor.vue","webpack://app/./src/components/editor/plugins/StBubbleMenu.ts","webpack://app/./src/components/editor/StBubbleMenu.ts","webpack://app/./src/components/editor/composables/useAwareness.ts","webpack://app/./src/components/editor/helpers/getYSyncKey.ts","webpack://app/./src/components/editor/toolbar/Menu.vue?a568","webpack://app/./src/components/editor/toolbar/Menu.vue","webpack://app/./src/components/editor/toolbar/Menu.vue?f331","webpack://app/./src/components/editor/toolbar/sections/ColorButton.vue?a003","webpack://app/./src/components/editor/toolbar/sections/ColorButton.vue","webpack://app/./src/components/editor/toolbar/sections/ColorButton.vue?c19c","webpack://app/./src/components/editor/toolbar/sections/ColorSelector.vue?386f","webpack://app/./src/components/editor/toolbar/sections/ColorSelector.vue","webpack://app/./src/components/editor/toolbar/sections/ColorSelector.vue?baac","webpack://app/./src/components/editor/toolbar/table.ts","webpack://app/./src/components/editor/plugins/table/util.ts","webpack://app/./src/components/editor/toolbar/sections/DropdownMenuSection.vue?196f","webpack://app/./src/components/editor/toolbar/sections/DropdownMenuSection.vue","webpack://app/./src/components/editor/toolbar/sections/DropdownMenuSection.vue?daec","webpack://app/./src/components/editor/Editor.vue?4e9e","webpack://app/../extension-inline-media/src/media-types.ts","webpack://app/../extension-inline-media/src/placeholder-status.ts","webpack://app/../extension-inline-media/src/index.ts"],"sourcesContent":["\n\n\n\n","\n \n \n \n \n !draggingIsOn\"\n content-class=\"card-quick-preview\"\n placement=\"top-start\"\n :trigger=\"'manual'\"\n :role=\"'poper'\"\n :offset=\"[88, 20]\"\n content-tag=\"div\"\n :get-reference-client-rect=\"() => position\"\n tag=\"div\"\n >\n \n \n \n\n\n\n\n\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, normalizeStyle as _normalizeStyle, resolveDirective as _resolveDirective, createElementVNode as _createElementVNode, withDirectives as _withDirectives, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"card-item-title\" }\n\nimport { computed } from 'vue';\nimport { useStore } from 'vuex';\nimport secondsToMilliseconds from 'date-fns/secondsToMilliseconds';\nimport useCustomIcon from '@/utilities/composables/useCustomIcon';\nimport useOpenCard from '@/utilities/composables/useOpenCard';\nimport useTranslate from '@/utilities/composables/useTranslate';\nimport { getCardStatus } from '@/utilities/defaultCardStatuses';\nimport { ResourceType } from '@/types/resources';\nimport cardStatusType from '@/types/cardStatusType';\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'CalendarCardItem',\n props: {\n card: {\n type: Object,\n required: true,\n },\n // weekId - timestamp of the week\n weekId: {\n type: Number,\n required: true,\n },\n index: {\n type: Number,\n required: true,\n },\n maxCardsVisible: {\n type: Number,\n required: true,\n },\n inTooltip: {\n type: Boolean,\n default: false,\n },\n},\n emits: ['open-card'],\n setup(__props, { emit: __emit }) {\n\nconst store = useStore();\nconst { iconPath, getCustomIconStyle } = useCustomIcon();\nconst { openCard } = useOpenCard();\nconst { translate } = useTranslate();\n\nconst props = __props;\n\nconst emit = __emit;\n\nconst card = computed(() => props.card.calendarTask);\nconst croppedEdges = computed(() => props.card.croppedEdges);\nconst style = computed(() => props.card.style);\n\nconst cardStartDate = computed(() => secondsToMilliseconds(card.value.start_date));\nconst cardEndDate = computed(() => secondsToMilliseconds(card.value.due_date));\n\nconst areCardDatesSet = computed(() => !!(cardStartDate.value && cardEndDate.value));\n\nconst isRightEdgeCropped = computed(() => {\n return croppedEdges.value.has('right');\n});\n\nconst isLeftEdgeCropped = computed(() => {\n return croppedEdges.value.has('left');\n});\n\nconst isDueDateBeforeStartDate = computed(() => {\n return cardEndDate.value < cardStartDate.value && areCardDatesSet.value;\n});\n\nconst cardStyle = computed(() => ({\n ...style.value,\n}));\n\nconst statusIcon = computed(() => {\n const isEpic = card.value.type === ResourceType.Epic;\n return (\n getCardStatus(card.value.status, isEpic)?.icon ||\n getCardStatus(cardStatusType.Backlog, isEpic).icon\n );\n});\n\nconst lists = computed(() => store.getters.lists);\n\nconst statusColor = computed(() => {\n return (\n lists.value[card.value.list_id]?.color ||\n card.value.list_color ||\n getCardStatus(card.value.status)?.color ||\n getCardStatus(cardStatusType.Backlog).color\n );\n});\n\nconst cardStatusStyle = computed(() => ({\n ...getCustomIconStyle(iconPath(statusIcon.value)),\n backgroundColor: statusColor.value,\n}));\n\nconst cardList = computed(() => {\n return store.getters.lists[card.value.list_id] || {};\n});\n\nconst statusTooltipText = computed(() => card.value.list_title || cardList.value.title || '');\n\nconst handleCardClick = () => {\n emit('open-card');\n openCard(card.value);\n};\n\nreturn (_ctx: any,_cache: any) => {\n const _directive_tooltip = _resolveDirective(\"tooltip\")!\n\n return _withDirectives((_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"calendar-card-item\", {\n 'left-edge-cropped': isLeftEdgeCropped.value,\n 'right-edge-cropped': isRightEdgeCropped.value,\n 'due-before-start': isDueDateBeforeStartDate.value,\n }]),\n style: _normalizeStyle(cardStyle.value),\n onClick: handleCardClick\n }, [\n _withDirectives(_createElementVNode(\"em\", {\n class: \"custom-icons calendar-card-status\",\n style: _normalizeStyle(cardStatusStyle.value)\n }, null, 4), [\n [_directive_tooltip, {\n content: statusTooltipText.value,\n placement: 'top-start',\n onShow: () => !!statusTooltipText.value && !_ctx.isMobile,\n }]\n ]),\n _cache[0] || (_cache[0] = _createTextVNode()),\n _createElementVNode(\"div\", _hoisted_1, _toDisplayString(card.value.title), 1)\n ], 6)), [\n [_directive_tooltip, {\n content: _unref(translate)('endDateIsBeforeStartDate'),\n placement: 'top',\n onShow: () => isDueDateBeforeStartDate.value && !_ctx.isMobile,\n }]\n ])\n}\n}\n\n})","\n\n\n\n\n","import script from \"./CalendarCardItem.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarCardItem.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarCardItem.vue?vue&type=style&index=0&id=688dec41&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"calendar-cards-tooltip\" }\n\nimport CalendarCardItem from '../CalendarCardItem.vue';\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'CalendarCardsTooltip',\n props: {\n cardList: {\n type: Array,\n required: true,\n },\n weekId: {\n type: Number,\n required: true,\n },\n maxCardsVisible: {\n type: Number,\n required: true,\n },\n},\n emits: ['close-tippy'],\n setup(__props, { emit: __emit }) {\n\n\n\nconst emit = __emit;\n\nconst openCard = () => {\n emit('close-tippy');\n};\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(__props.cardList, (card, index) => {\n return (_openBlock(), _createBlock(CalendarCardItem, {\n key: index,\n card: card,\n \"week-id\": __props.weekId,\n index: index,\n \"max-cards-visible\": __props.maxCardsVisible,\n \"in-tooltip\": true,\n onOpenCard: openCard\n }, null, 8, [\"card\", \"week-id\", \"index\", \"max-cards-visible\"]))\n }), 128))\n ]))\n}\n}\n\n})","\n\n\n\n\n","import script from \"./CalendarCardsTooltip.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarCardsTooltip.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarCardsTooltip.vue?vue&type=style&index=0&id=040b5f78&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createElementBlock as _createElementBlock, unref as _unref } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"calendar-day-item-footer\"\n}\nconst _hoisted_2 = { class: \"calendar-day-footer-label\" }\nconst _hoisted_3 = { class: \"item-date-wrap\" }\nconst _hoisted_4 = { class: \"item-day\" }\n\nimport { computed, ref } from 'vue';\nimport format from 'date-fns/format';\nimport isFirstDayOfMonth from 'date-fns/isFirstDayOfMonth';\nimport getDate from 'date-fns/getDate';\nimport isWeekend from 'date-fns/isWeekend';\nimport startOfMonth from 'date-fns/startOfMonth';\nimport getWeekOfMonth from 'date-fns/getWeekOfMonth';\nimport endOfDay from 'date-fns/endOfDay';\nimport getTime from 'date-fns/getTime';\nimport millisecondsToSeconds from 'date-fns/millisecondsToSeconds';\nimport QuickCardButton from '@/components/editor/toolbar/sections/QuickCardButton.vue';\nimport { browserStorageSetItem, browserStorageGetItem } from '@/utilities/browser-storage.util';\nimport { getQuickCardCreationDraftKey } from '@/utilities/localDrafts';\nimport useCustomIcon from '@/utilities/composables/useCustomIcon';\nimport useTranslate from '@/utilities/composables/useTranslate';\nimport CalendarCardsTooltip from './tooltips/CalendarCardsTooltip.vue';\nimport useBoardEmbed from '@/boards/composables/useBoardEmbed';\nimport useCurrentRole from '@/utilities/composables/useCurrentRole';\nimport { useStore } from 'vuex';\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'CalendarDayItem',\n props: {\n dayIndex: {\n type: Number,\n required: true,\n },\n dateTimestamp: {\n type: Number,\n required: true,\n },\n dayHumanized: {\n type: String,\n required: true,\n },\n isToday: {\n type: Boolean,\n default: false,\n },\n isCurrentMonth: {\n type: Boolean,\n default: false,\n },\n isPast: {\n type: Boolean,\n default: false,\n },\n isFuture: {\n type: Boolean,\n default: false,\n },\n dayIsWeekend: {\n type: Boolean,\n default: false,\n },\n maxCardsVisible: {\n type: Number,\n required: true,\n },\n showMoreCardsCount: {\n type: Number,\n default: 0,\n },\n moreCards: {\n type: Array,\n default: () => [],\n },\n weekId: {\n type: Number,\n required: true,\n },\n},\n setup(__props) {\n\nconst props = __props;\n\nconst store = useStore();\n\nconst { iconPath, getCustomIconStyle } = useCustomIcon();\nconst { translate } = useTranslate();\nconst { inEpicBoard } = useBoardEmbed();\nconst { isGuestReader } = useCurrentRole();\n\nconst displayShowMorePopup = ref(false);\nconst documentBody = ref(document.body);\nconst showMoreButton = ref(null);\nconst isHovered = ref(false);\n\nconst itemBackgroundStyle = computed(() => {\n return {\n gridArea: `1 / ${props.dayIndex + 1} / span ${props.maxCardsVisible + 3} / span 1`,\n };\n});\n\nconst itemHeaderStyle = computed(() => {\n return {\n gridArea: `1 / ${props.dayIndex + 1} / span 1 / span 1`,\n };\n});\n\nconst footerIconStyle = computed(() => {\n return getCustomIconStyle(iconPath('chevron-down'));\n});\n\nconst monthLabel = computed(() => {\n return format(props.dateTimestamp, 'LLL', { weekStartsOn: 1 });\n});\n\nconst showWeekend = computed(() => store.getters.getShowWeekends);\n\n// show month label for first day of the month\n// or if weekend is disabled, show month label for the first day of the first week of the month\nconst showMonthLabel = computed(() => {\n const { dateTimestamp, dayIndex } = props;\n return (\n isFirstDayOfMonth(dateTimestamp) ||\n (!showWeekend.value &&\n dayIndex === 0 &&\n isWeekend(startOfMonth(dateTimestamp)) &&\n getWeekOfMonth(dateTimestamp, { weekStartsOn: 1 }) === 2)\n );\n});\n\n// isLongMonth is boolean, true if the index is 0 and it is first week of the month\n// const isLongMonth = computed(() => {\n// return false;\n// });\n\nconst monthClass = computed(() => {\n return 'item-short-month';\n});\n\nconst calendarDayItemClass = computed(() => {\n return {\n today: props.isToday,\n 'hover-active': isHovered.value,\n };\n});\n\nconst dayLabel = computed(() => {\n return getDate(props.dateTimestamp);\n});\n\nconst quickCard = computed(() => store.getters.getQuickCard);\n\nconst getDatesForQuickCard = () => {\n const start_date = millisecondsToSeconds(props.dateTimestamp);\n const due_date = millisecondsToSeconds(getTime(endOfDay(props.dateTimestamp)));\n return { start_date, due_date };\n};\n\nconst currentTeamId = computed(() => store.getters.getTeamID);\n\nconst moreCardsButtonLabel = computed(() => {\n return displayShowMorePopup.value ? translate('hideAllCards') : translate('showAllCards');\n});\n\nconst handleQuickCardButtonClick = () => {\n const quickCardDraftKey = getQuickCardCreationDraftKey(currentTeamId.value);\n const existingQuickCard = browserStorageGetItem(quickCardDraftKey);\n const newQuickCardObject = existingQuickCard\n ? { ...existingQuickCard, ...getDatesForQuickCard() }\n : { ...quickCard.value, ...getDatesForQuickCard() };\n\n if (!existingQuickCard) {\n store.dispatch('setQuickCardObject', { quickCardObject: newQuickCardObject });\n } else {\n browserStorageSetItem(quickCardDraftKey, newQuickCardObject);\n }\n\n store.dispatch('setQuickCard', true);\n};\n\nconst handleMouseOver = () => {\n if (isHovered.value) return;\n isHovered.value = true;\n};\n\nconst handleMouseLeave = () => {\n if (!isHovered.value) return;\n isHovered.value = false;\n};\n\nconst getShowMorePopupStyle = () => {\n if (!showMoreButton.value) return;\n\n const width = `${showMoreButton.value?.$el.clientWidth}px`;\n return {\n maxWidth: width,\n width,\n };\n};\n\nconst onDropdownStateChange = (state: any) => {\n displayShowMorePopup.value = state.isVisible;\n};\n\nreturn (_ctx: any,_cache: any) => {\n const _component_v_popover = _resolveComponent(\"v-popover\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"calendar-day-item\", calendarDayItemClass.value]),\n onMouseover: handleMouseOver,\n onMouseleave: handleMouseLeave\n }, [\n _createElementVNode(\"div\", {\n class: \"calendar-day-item-background\",\n style: _normalizeStyle(itemBackgroundStyle.value)\n }, [\n (__props.showMoreCardsCount)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_v_popover, {\n ref_key: \"showMoreButton\",\n ref: showMoreButton,\n interactive: \"\",\n tag: \"div\",\n \"content-tag\": \"div\",\n trigger: 'click',\n role: 'poper',\n placement: 'bottom-start',\n \"append-to\": () => documentBody.value,\n class: _normalizeClass([\"calendar-day-item-footer-button\", { 'show-more-active': displayShowMorePopup.value }]),\n onState: onDropdownStateChange\n }, {\n content: _withCtx(({ state, hide }) => [\n (state.isVisible)\n ? (_openBlock(), _createBlock(CalendarCardsTooltip, {\n key: 0,\n \"card-list\": __props.moreCards,\n \"max-cards-visible\": __props.maxCardsVisible,\n \"week-id\": __props.weekId,\n style: _normalizeStyle(getShowMorePopupStyle()),\n onCloseTippy: hide\n }, null, 8, [\"card-list\", \"max-cards-visible\", \"week-id\", \"style\", \"onCloseTippy\"]))\n : _createCommentVNode(\"\", true)\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"span\", _hoisted_2, _toDisplayString(moreCardsButtonLabel.value), 1),\n _cache[0] || (_cache[0] = _createTextVNode()),\n _createElementVNode(\"em\", {\n class: _normalizeClass([\"custom-icons calendar-day-footer-icon\", { 'rotate-180': displayShowMorePopup.value }]),\n style: _normalizeStyle(footerIconStyle.value)\n }, null, 6),\n _cache[1] || (_cache[1] = _createTextVNode())\n ]),\n _: 1\n }, 8, [\"append-to\", \"class\"])\n ]))\n : _createCommentVNode(\"\", true)\n ], 4),\n _cache[4] || (_cache[4] = _createTextVNode()),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"calendar-day-item-header usn\", { 'item-past': __props.isPast }]),\n style: _normalizeStyle(itemHeaderStyle.value)\n }, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, _toDisplayString(dayLabel.value), 1),\n _cache[2] || (_cache[2] = _createTextVNode()),\n (showMonthLabel.value)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: _normalizeClass(monthClass.value)\n }, _toDisplayString(monthLabel.value), 3))\n : _createCommentVNode(\"\", true)\n ]),\n _cache[3] || (_cache[3] = _createTextVNode()),\n (isHovered.value && !_unref(inEpicBoard) && !_unref(isGuestReader))\n ? (_openBlock(), _createBlock(QuickCardButton, {\n key: 0,\n effect: handleQuickCardButtonClick\n }))\n : _createCommentVNode(\"\", true)\n ], 6)\n ], 34))\n}\n}\n\n})","\n\n\n\n\n","import script from \"./CalendarDayItem.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarDayItem.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarDayItem.vue?vue&type=style&index=0&id=913d2f7a&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, createTextVNode as _createTextVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle } from \"vue\"\n\nimport { getCurrentInstance, computed } from 'vue';\nimport CalendarDayItem from './CalendarDayItem.vue';\nimport CalendarCardItem from './CalendarCardItem.vue';\nimport endOfDay from 'date-fns/endOfDay';\nimport isWeekend from 'date-fns/isWeekend';\nimport addDays from 'date-fns/addDays';\nimport startOfWeek from 'date-fns/startOfWeek';\nimport eachDayOfInterval from 'date-fns/eachDayOfInterval';\nimport startOfDay from 'date-fns/startOfDay';\nimport getTime from 'date-fns/getTime';\nimport isToday from 'date-fns/isToday';\nimport isPast from 'date-fns/isPast';\nimport isFuture from 'date-fns/isFuture';\nimport isThisMonth from 'date-fns/isThisMonth';\nimport format from 'date-fns/format';\nimport getDay from 'date-fns/getDay';\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'CalendarWeekItem',\n props: {\n // timestamp of the week\n id: {\n type: Number,\n required: true,\n },\n weekItem: {\n type: Object,\n required: true,\n },\n height: {\n type: Number,\n required: true,\n },\n maxCardsVisible: {\n type: Number,\n required: true,\n },\n},\n setup(__props) {\n\nconst props = __props;\n\nconst _this = getCurrentInstance()!.proxy as any;\n\nconst sortByColumn = (a: any, b: any) => {\n return b.layout.column.span - a.layout.column.span;\n};\n\nconst isOverlapping = (\n layout: { row: { start: number; span: number }; column: { start: number; span: number } },\n cardList: any\n) => {\n return cardList.some(\n (card: any) =>\n card.layout.row.start < layout.row.start + layout.row.span &&\n card.layout.row.start + card.layout.row.span > layout.row.start &&\n card.layout.column.start < layout.column.start + layout.column.span &&\n card.layout.column.start + card.layout.column.span > layout.column.start\n );\n};\n\nconst shiftCardDown = (layout: any, cardList: any) => {\n let newLayout = layout;\n while (isOverlapping(newLayout, cardList)) {\n newLayout = {\n ...newLayout,\n row: {\n ...newLayout.row,\n start: newLayout.row.start + 1,\n },\n };\n }\n return newLayout;\n};\n\nconst applyGridStyle = (resource: any) => {\n return {\n ...resource,\n style: {\n gridColumn: `${resource.layout.column.start} / span ${resource.layout.column.span}`,\n gridRow: `${resource.layout.row.start} / span ${resource.layout.row.span}`,\n },\n };\n};\n\nconst showWeekend = computed(() => _this.$store.getters.getShowWeekends);\nconst numberOfDays = computed(() => (showWeekend.value ? 7 : 5));\n\nconst getWeekDay = (day: number) => {\n // 0 based 0 sunday, it should be 1 based 7 sunday\n return day === 0 ? numberOfDays.value : day;\n};\n\nconst dayItems = computed(() => {\n const start = startOfWeek(props.id, { weekStartsOn: 1 });\n const end = endOfDay(addDays(props.id, numberOfDays.value - 1));\n\n return eachDayOfInterval({ start, end }).map((day: Date) => {\n const startOfCurrentDay = startOfDay(day);\n const startOfCurrentDayTimestamp = getTime(startOfCurrentDay);\n const isTodayDate = isToday(day);\n const isPastDate = isTodayDate ? false : isPast(startOfCurrentDay);\n const isFutureDate = isTodayDate ? false : isFuture(startOfCurrentDay);\n const weekDay = getDay(day);\n const weekDayConverted = getWeekDay(weekDay);\n\n return {\n dayTimestamp: startOfCurrentDayTimestamp,\n day: format(day, 'd', { weekStartsOn: 1 }),\n isToday: isTodayDate,\n isCurrentMonth: isThisMonth(day),\n isPast: isPastDate,\n isFuture: isFutureDate,\n isWeekend: isWeekend(day),\n showMoreCardsCount:\n processedWeekCards.value.showMoreCountByColumnStart[weekDayConverted]?.length ?? 0,\n moreCards: processedWeekCards.value.showMoreCountByColumnStart[weekDayConverted] ?? [],\n };\n });\n});\n\nconst weekCards = computed(() => {\n return props.weekItem.weekCards;\n});\n\nconst sortedWeekCards = computed(() => {\n const sortedCards = [...weekCards.value].sort(sortByColumn);\n return sortedCards.reduce(\n (acc: any, card: any) => [\n ...acc,\n {\n ...card,\n layout: shiftCardDown(card.layout, acc),\n },\n ],\n []\n );\n});\n\n// Aggregate column spans and counts\nconst aggregateColumnSpans = (card: any, initial: any) => {\n return Array.from(\n { length: card.layout.column.span },\n (_, i) => card.layout.column.start + i\n ).reduce(\n (acc, column) => ({\n ...acc,\n [column]: [...(acc[column] ?? []), card],\n }),\n initial\n );\n};\n\nconst processedWeekCards = computed(() => {\n return sortedWeekCards.value.reduce(\n (acc: any, card: any) => {\n if (card.layout.row.start - 1 > props.maxCardsVisible) {\n return {\n ...acc,\n showMoreCountByColumnStart: aggregateColumnSpans(card, acc.showMoreCountByColumnStart),\n };\n }\n return {\n ...acc,\n cards: [...acc.cards, card],\n };\n },\n { cards: [], showMoreCountByColumnStart: {} }\n );\n});\n\nconst cardItems = computed(() => {\n return processedWeekCards.value.cards.map((card: any) => {\n return {\n ...card,\n ...applyGridStyle(card),\n };\n });\n});\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"calendar-week-item-wrap\", { 'grid-cols-7': showWeekend.value }]),\n style: _normalizeStyle({ height: `${__props.height}px` })\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(dayItems.value, (day, index) => {\n return (_openBlock(), _createBlock(CalendarDayItem, {\n key: day.dayTimestamp,\n \"day-index\": index,\n \"date-timestamp\": day.dayTimestamp,\n \"day-humanized\": day.day,\n \"is-today\": day.isToday,\n \"is-current-month\": day.isCurrentMonth,\n \"is-past\": day.isPast,\n \"is-future\": day.isFuture,\n \"day-is-weekend\": day.isWeekend,\n \"max-cards-visible\": __props.maxCardsVisible,\n \"show-more-cards-count\": day.showMoreCardsCount,\n \"more-cards\": day.moreCards,\n \"week-id\": __props.id\n }, null, 8, [\"day-index\", \"date-timestamp\", \"day-humanized\", \"is-today\", \"is-current-month\", \"is-past\", \"is-future\", \"day-is-weekend\", \"max-cards-visible\", \"show-more-cards-count\", \"more-cards\", \"week-id\"]))\n }), 128)),\n _cache[0] || (_cache[0] = _createTextVNode()),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(cardItems.value, (card, index) => {\n return (_openBlock(), _createBlock(CalendarCardItem, {\n key: index,\n card: card,\n \"week-id\": __props.id,\n index: index,\n \"max-cards-visible\": __props.maxCardsVisible\n }, null, 8, [\"card\", \"week-id\", \"index\", \"max-cards-visible\"]))\n }), 128))\n ], 6))\n}\n}\n\n})","\n\n\n\n\n","import script from \"./CalendarWeekItem.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarWeekItem.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarWeekItem.vue?vue&type=style&index=0&id=7a72cab4&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass } from \"vue\"\n\nconst _hoisted_1 = { class: \"header-item-day\" }\n\nimport { getCurrentInstance, computed } from 'vue';\nimport getDay from 'date-fns/getDay';\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'CalendarViewHeader',\n props: {\n shortFormat: {\n type: Boolean,\n required: false,\n default: false,\n },\n},\n setup(__props) {\n\nconst props = __props;\nconst _this = getCurrentInstance()!.proxy as any;\n\nconst currentDate = Date.now();\n\nconst currentDayOfWeek = getDay(currentDate);\n\nconst showWeekend = computed(() => _this.$store.getters.getShowWeekends);\n\nconst daysArray = computed(() => {\n return (\n props.shortFormat ? _this.translate('daysAbbreviationLong') : _this.translate('weekDays')\n ).split(',');\n});\n\nconst daysLabels = computed(() => {\n return showWeekend.value ? daysArray.value : daysArray.value.slice(0, 5);\n});\n\n// currentDayOfWeek is 0 based (sunday is 0, monday is 1, etc.)\nconst currentDayIndex = computed(() => {\n return currentDayOfWeek === 0 ? 6 : currentDayOfWeek - 1;\n});\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"calendar-view-header usn\", { 'grid-cols-7': showWeekend.value }])\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(daysLabels.value, (day, index) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: index,\n class: _normalizeClass([{ 'active-header-item': currentDayIndex.value === index }, \"calendar-view-header-item\"])\n }, [\n _createElementVNode(\"div\", _hoisted_1, _toDisplayString(day), 1)\n ], 2))\n }), 128))\n ], 2))\n}\n}\n\n})","\n\n\n\n\n","import script from \"./CalendarViewHeader.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarViewHeader.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarViewHeader.vue?vue&type=style&index=0&id=105cb30b&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock, unref as _unref, withCtx as _withCtx, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"calendar-view-content\" }\n\nimport { ref, computed, getCurrentInstance, onMounted, onUnmounted } from 'vue';\nimport { RecycleScroller } from 'vue-virtual-scroller';\nimport startOfWeek from 'date-fns/startOfWeek';\nimport addDays from 'date-fns/addDays';\nimport getTime from 'date-fns/getTime';\nimport startOfDay from 'date-fns/startOfDay';\nimport eachWeekOfInterval from 'date-fns/eachWeekOfInterval';\nimport eachDayOfInterval from 'date-fns/eachDayOfInterval';\nimport subMonths from 'date-fns/subMonths';\nimport startOfMonth from 'date-fns/startOfMonth';\nimport addMonths from 'date-fns/addMonths';\nimport endOfDay from 'date-fns/endOfDay';\nimport secondsToMilliseconds from 'date-fns/secondsToMilliseconds';\nimport isBefore from 'date-fns/isBefore';\nimport styleVariables from '@/assets/scss/variables.module.scss';\nimport { convertStyleToNumber } from '@/utilities/rootStyles';\nimport EventBus from '@/utilities/eventBus';\nimport CalendarWeekItem from './CalendarWeekItem.vue';\nimport CalendarViewHeader from './CalendarViewHeader.vue';\nimport useBoardEmbed from '@/boards/composables/useBoardEmbed';\n\n// @ts-nocheck\nimport boardListMixin from '@/mixins/boardListMixin';\nimport boardViewMixin from '@/mixins/boardViewMixin';\n\nconst __default__ = {\n name: 'CalendarView',\n mixins: [boardListMixin, boardViewMixin],\n computed: {\n visible() {\n return null;\n },\n embed() {\n return this._setupProxy.embed.value;\n },\n embeddedBoardAttributes() {\n return this._setupProxy.embeddedBoardAttributes.value;\n },\n inEpicBoard() {\n return this._setupProxy.inEpicBoard.value;\n },\n _setupProxy() {\n return this._?.exposed ?? {};\n },\n board(): any {\n if (this._setupProxy.embed.value) {\n return (\n this.$store.getters.getFlatBoards[\n this._setupProxy.embeddedBoardAttributes?.value.boardId\n ] || {}\n );\n }\n return this.$store.getters.currentBoard;\n },\n boardCardsWithDates(): any {\n return this.listCards.reduce((acc: any, cardId: string) => {\n const card = this._setupProxy?.stateCards.value[cardId];\n const cardStartDate = secondsToMilliseconds(card.start_date);\n const cardDueDate = secondsToMilliseconds(card.due_date);\n if (cardStartDate || cardDueDate) {\n acc.push(card);\n }\n return acc;\n }, []);\n },\n weeksWithCards(): any {\n return this.boardCardsWithDates.reduce((acc: any, card: any) => {\n const cardDateRanges = this._setupProxy?.generateDateRanges(card.id);\n\n cardDateRanges.forEach((dateRange: any, index: number) => {\n const { weekStartDate, columnLayout, croppedEdges } = dateRange;\n const expandableEdges = this._setupProxy?.createEdgesSet(\n index === 0,\n index === cardDateRanges.length - 1\n );\n const layout = {\n column: columnLayout,\n // default row layout - start from 2nd row because 1st row is for day header\n row: {\n start: 2,\n span: 1,\n },\n };\n const cardWithLayout = {\n calendarTask: card,\n expandableEdges,\n croppedEdges,\n layout,\n style: {},\n };\n const key = getTime(startOfWeek(weekStartDate, { weekStartsOn: 1 }));\n acc[key] = [...(acc[key] ?? []), cardWithLayout];\n });\n\n return acc;\n }, {});\n },\n items(): any {\n const startEdge: Date = this._setupProxy.startEdgeDate.value;\n const endEdge: Date = this._setupProxy.endEdgeDate.value;\n\n return eachWeekOfInterval({ start: startEdge, end: endEdge }, { weekStartsOn: 1 }).reduce(\n (acc: any, week: Date) => {\n const weekTime: number = getTime(week);\n const lastDayOfCurrentWeek = endOfDay(\n addDays(week, this._setupProxy?.numberOfDays.value - 1)\n );\n acc.push({\n id: weekTime,\n weekCards: this.weeksWithCards[weekTime] || [],\n lastDayOfCurrentWeek,\n });\n return acc;\n },\n []\n );\n },\n lastDayOfCurrentWeekFromIndex(): any {\n const weeks: any = this.items;\n return weeks[this._setupProxy?.currentItemIndex.value]?.lastDayOfCurrentWeek;\n },\n },\n watch: {\n lastDayOfCurrentWeekFromIndex(newVal: any) {\n if (this._setupProxy.loadingItems.value) return;\n EventBus.$emit('calendar:currentMonthChanged', newVal);\n },\n items(newVal: any) {\n if (\n newVal.length &&\n this._setupProxy.calendarFullyLoaded.value &&\n this._setupProxy.loadingItems.value &&\n this._setupProxy.loadingBefore.value\n ) {\n this._setupProxy.restoreScroll();\n }\n },\n },\n};\n\n\nexport default /*@__PURE__*/_defineComponent({\n ...__default__,\n setup(__props, { expose: __expose }) {\n\n// @ts-nocheck\nconst { embeddedBoardAttributes, embed, inEpicBoard } = useBoardEmbed();\n\nconst _this = getCurrentInstance()!.proxy as any;\n\nconst defaultLoadedMonths: number = 24;\nconst defaultLoadMoreMonths: number = 12;\n// default const for trashhold of loading more items (that will trigger when user scroll to the start or end of the list + trashhold)\nconst defaultLoadMoreTrashhold: number = 50;\nconst currentDate = Date.now();\n\nconst { calendarCardRowGap, calendarDayHeaderHeight, calendarCardHeight } = styleVariables;\nconst cardRowGap = convertStyleToNumber(calendarCardRowGap);\nconst dayHeaderHeight = convertStyleToNumber(calendarDayHeaderHeight);\nconst cardHeight = convertStyleToNumber(calendarCardHeight);\n\n// Changing buffer will change the number of items that are rendered in the list (visible + buffer)\n// Changing this can cause jumping behaviour while scrolling and loading items (prepend)\nconst buffer = ref(1000);\nconst containerHeight = ref(0);\nconst calendarViewContainer = ref(null);\nconst startEdgeDate = ref(subMonths(currentDate, defaultLoadedMonths));\nconst endEdgeDate = ref(addMonths(currentDate, defaultLoadedMonths));\n\nconst currentItemIndex = ref(0);\nconst calendarFullyLoaded = ref(false);\nconst loadingItems = ref(false);\nconst loadingBefore = ref(false);\n\n// Computed\nconst showWeekend = computed(() => _this.$store.getters.getShowWeekends);\n\nconst maxCardsVisible = computed(() => {\n const weekHeight = weekItemHeight.value;\n const maxCards = Math.floor(\n (weekHeight + cardRowGap - dayHeaderHeight) / (cardHeight + cardRowGap)\n );\n return Math.max(0, maxCards - 1);\n});\n\nconst weekItemHeight = computed(() => {\n const height = Math.floor(containerHeight.value / 6);\n return Math.max(height, 150);\n});\n\nconst numberOfDays = computed(() => (showWeekend.value ? 7 : 5));\n\nconst stateCards = computed(() => _this.$store.getters.getCards);\n\nconst boardId = computed(() =>\n embed ? embeddedBoardAttributes.value.boardId : _this.$store.getters.currentBoardId\n);\nconst boardCards = computed(() => {\n return _this.$store.getters.getBoardsCardsIdsByBoardId(boardId.value);\n});\n\nconst createEdgesSet = (left: boolean, right: boolean) => {\n const edges = new Set();\n if (left) edges.add('left');\n if (right) edges.add('right');\n return edges;\n};\n\nconst getColumnLayoutAndCroppedEdges = (\n range: { start: number | Date; end: number | Date },\n cardDateRange: { start_date: Date; due_date: Date }\n) => {\n const daysOfInterval = eachDayOfInterval(range);\n\n return daysOfInterval.reduce(\n (acc: any, date: Date, index: number, datesArray: Date[]) => {\n // Initialize column layout and cropped edges if the start is undefined and date is within range\n const dateStartTime = getTime(startOfDay(date));\n const dateEndTime = getTime(endOfDay(date));\n const cardStartTime = getTime(cardDateRange.start_date);\n const cardEndTime = getTime(cardDateRange.due_date);\n\n if (\n acc.columnLayout.start === undefined &&\n dateStartTime >= cardStartTime &&\n dateStartTime <= cardEndTime\n ) {\n return {\n columnLayout: {\n start: index + 1,\n span: 1,\n },\n croppedEdges: new Set(\n createEdgesSet(\n index === 0 && dateStartTime > cardStartTime,\n index === datesArray.length - 1 && dateEndTime < cardEndTime\n )\n ),\n };\n }\n // Update column layout if already started and date is within range\n else if (acc.columnLayout.start !== undefined && dateEndTime <= cardEndTime) {\n return {\n ...acc,\n columnLayout: {\n ...acc.columnLayout,\n span: (acc.columnLayout.span ?? 0) + 1,\n },\n croppedEdges:\n index === datesArray.length - 1 && dateEndTime < cardEndTime\n ? new Set([...acc.croppedEdges, 'right'])\n : acc.croppedEdges,\n };\n }\n return acc;\n },\n {\n columnLayout: {\n start: undefined,\n span: undefined,\n },\n croppedEdges: new Set(),\n }\n );\n};\n\nconst generateDateRanges = (cardId: string) => {\n const card = stateCards.value[cardId];\n if (!card) return [];\n\n const cardStartDate = secondsToMilliseconds(card.start_date);\n const cardDueDate = secondsToMilliseconds(card.due_date);\n\n if (!cardStartDate && !cardDueDate) return [];\n\n const start = cardStartDate ? startOfDay(cardStartDate) : startOfDay(cardDueDate);\n const end =\n cardDueDate && cardDueDate >= getTime(start) ? endOfDay(cardDueDate) : endOfDay(cardStartDate);\n\n // refactor to use reduce instead of map and filter\n const weeks = eachWeekOfInterval({ start, end }, { weekStartsOn: 1 })\n .map((week) => {\n const lastDayOfCurrentWeek = endOfDay(addDays(week, numberOfDays.value - 1));\n if (isBefore(lastDayOfCurrentWeek, start)) return false;\n\n const { columnLayout, croppedEdges } = getColumnLayoutAndCroppedEdges(\n { start: week, end: lastDayOfCurrentWeek },\n { start_date: start, due_date: end }\n );\n\n if (columnLayout.start === undefined) return false;\n return {\n weekStartDate: getTime(week),\n columnLayout,\n croppedEdges: croppedEdges,\n };\n })\n .filter(Boolean);\n\n return weeks;\n};\n\n// Methods\nconst setCalendarContainerHeight = (updateItems = true, recursiveLimitCount = 0) => {\n // 20 is the limit of recursive calls to avoid infinite loop\n if (!calendarViewContainer.value || recursiveLimitCount > 20) return;\n if (!calendarViewContainer.value.clientHeight) {\n requestAnimationFrame(() => {\n setCalendarContainerHeight(updateItems, recursiveLimitCount + 1);\n });\n return;\n }\n containerHeight.value = calendarViewContainer.value.clientHeight;\n buffer.value = containerHeight.value;\n if (updateItems) {\n updateVisibleItems();\n }\n};\n\nconst onVisible = () => {\n scrollToStart();\n};\n\nconst getFirstWeekOfMonth = (date = new Date()) => {\n const firstWeekOfMonth = startOfWeek(startOfMonth(date), { weekStartsOn: 1 });\n return getTime(firstWeekOfMonth);\n};\n\nconst getWeekItemIndex = (weekId: number) => {\n const weeks = _this.items;\n return weeks.findIndex((week: any) => week.id === weekId);\n};\n\nconst getScrollPosition = (index: number) => {\n const weekHeight = weekItemHeight.value;\n return weekHeight * index;\n};\n\nconst getItemIndex = (id: number = getFirstWeekOfMonth()) => {\n return getWeekItemIndex(id);\n};\n\nconst getItemIndexFromPosition = (position: number) => {\n const weekHeight = weekItemHeight.value;\n return Math.floor(position / weekHeight);\n};\n\nconst setCurrentItemIndex = (index: number) => {\n currentItemIndex.value = index;\n};\n\nconst handleLoadMoreItems = (index: number) => {\n if (index <= defaultLoadMoreTrashhold) {\n // prepend items\n loadingItems.value = true;\n loadingBefore.value = true;\n prepareScroll();\n startEdgeDate.value = subMonths(startEdgeDate.value, defaultLoadMoreMonths);\n } else if (index >= _this.items.length - defaultLoadMoreTrashhold) {\n // append items\n loadingItems.value = true;\n endEdgeDate.value = addMonths(endEdgeDate.value, defaultLoadMoreMonths);\n }\n};\n\nconst handleScrollerUpdate = () => {\n if (!calendarFullyLoaded.value) return;\n const { calendarViewScroller } = _this.$refs;\n if (!calendarViewScroller) return;\n const { $_lastUpdateScrollPosition: position } = calendarViewScroller;\n const viewportOffset: number = Math.floor(containerHeight.value * 0.25) + position;\n const index = getItemIndexFromPosition(viewportOffset);\n setCurrentItemIndex(index);\n if (loadingItems.value) {\n loadingItems.value = false;\n return;\n }\n handleLoadMoreItems(index);\n};\n\nconst scrollToStart = () => {\n const { calendarViewScroller } = _this.$refs;\n if (!calendarViewScroller) return;\n requestAnimationFrame(() => {\n calendarViewScroller.scrollToPosition(getScrollPosition(getItemIndex()));\n calendarFullyLoaded.value = true;\n });\n};\n\nconst handleChangeMonth = (value: number) => {\n const { calendarViewScroller } = _this.$refs;\n if (!calendarViewScroller || !_this.items.length) return;\n const monthUpdated = addMonths(_this.lastDayOfCurrentWeekFromIndex, value);\n const index = getItemIndex(getFirstWeekOfMonth(monthUpdated));\n requestAnimationFrame(() => {\n calendarViewScroller.scrollToPosition(getScrollPosition(index));\n });\n};\n\nEventBus.$on('calendar:moveToStart', scrollToStart);\nEventBus.$on('calendar:changeMonth', handleChangeMonth);\n\nconst updateVisibleItems = () => {\n const { calendarViewScroller } = _this.$refs;\n if (!calendarViewScroller) return;\n requestAnimationFrame(() => {\n calendarViewScroller.updateVisibleItems(false);\n });\n};\n\nconst previousScrollHeightMinusTop = ref(0);\n\nconst prepareScroll = () => {\n const { calendarViewScroller } = _this.$refs;\n if (!calendarViewScroller) return;\n const element = calendarViewScroller.$el as HTMLElement;\n previousScrollHeightMinusTop.value = element.scrollHeight - element.scrollTop;\n};\n\nconst restoreScroll = () => {\n if (!loadingBefore.value) return;\n requestAnimationFrame(() => {\n loadingBefore.value = false;\n const { calendarViewScroller } = _this.$refs;\n if (!calendarViewScroller) return;\n const element = calendarViewScroller.$el as HTMLElement;\n element.scrollTop = element.scrollHeight - previousScrollHeightMinusTop.value;\n });\n};\n\n// onMounted\nconst handleUnmounted = () => {\n EventBus.$off('calendar:moveToStart', scrollToStart);\n EventBus.$off('calendar:changeMonth', handleChangeMonth);\n};\n\nonMounted(() => {\n setCalendarContainerHeight(false);\n});\n\nonUnmounted(handleUnmounted);\n\n__expose({\n embed,\n embeddedBoardAttributes,\n stateCards,\n generateDateRanges,\n createEdgesSet,\n startEdgeDate,\n endEdgeDate,\n numberOfDays,\n currentItemIndex,\n loadingItems,\n calendarFullyLoaded,\n loadingBefore,\n restoreScroll,\n inEpicBoard,\n boardCards,\n});\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"calendar-view\", { 'show-weekend': showWeekend.value }]),\n style: _normalizeStyle({\n '--calendar-card-row-count': `${maxCardsVisible.value}`,\n })\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createVNode(CalendarViewHeader),\n _cache[0] || (_cache[0] = _createTextVNode()),\n _createElementVNode(\"div\", {\n ref_key: \"calendarViewContainer\",\n ref: calendarViewContainer,\n class: \"calendar-view-container\"\n }, [\n _createVNode(_unref(RecycleScroller), {\n ref: \"calendarViewScroller\",\n class: \"calendar-view-scroller\",\n \"item-class\": \"list-card-item-wrap\",\n \"key-field\": \"id\",\n items: _ctx.items,\n \"item-size\": weekItemHeight.value,\n buffer: buffer.value,\n \"emit-update\": true,\n onVisible: onVisible,\n onUpdate: handleScrollerUpdate\n }, {\n default: _withCtx(({ item }) => [\n (_openBlock(), _createBlock(CalendarWeekItem, {\n id: item.id,\n key: item.id,\n \"week-item\": item,\n height: weekItemHeight.value,\n \"max-cards-visible\": maxCardsVisible.value\n }, null, 8, [\"id\", \"week-item\", \"height\", \"max-cards-visible\"]))\n ]),\n _: 1\n }, 8, [\"items\", \"item-size\", \"buffer\"])\n ], 512)\n ])\n ], 6))\n}\n}\n\n})","\n\n\n\n\n\n","import script from \"./CalendarView.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarView.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarView.vue?vue&type=style&index=0&id=7b97a1a9&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { render } from \"./BoardGridView.vue?vue&type=template&id=2090073a\"\nimport script from \"./BoardGridView.vue?vue&type=script&lang=js\"\nexport * from \"./BoardGridView.vue?vue&type=script&lang=js\"\n\nimport \"./BoardGridView.vue?vue&type=style&index=0&id=2090073a&lang=scss\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./BoardView.vue?vue&type=template&id=5ea9f2c4\"\nimport script from \"./BoardView.vue?vue&type=script&lang=js\"\nexport * from \"./BoardView.vue?vue&type=script&lang=js\"\n\nimport \"./BoardView.vue?vue&type=style&index=0&id=5ea9f2c4&lang=scss\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n\n\n","\n\n\n\n\n","import { render } from \"./TableOfContentItems.vue?vue&type=template&id=0e3df60e\"\nimport script from \"./TableOfContentItems.vue?vue&type=script&lang=js\"\nexport * from \"./TableOfContentItems.vue?vue&type=script&lang=js\"\n\nimport \"./TableOfContentItems.vue?vue&type=style&index=0&id=0e3df60e&lang=scss\"\n\nimport exportComponent from \"../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./TableOfContent.vue?vue&type=template&id=6d5e1cc4\"\nimport script from \"./TableOfContent.vue?vue&type=script&lang=js\"\nexport * from \"./TableOfContent.vue?vue&type=script&lang=js\"\n\nimport \"./TableOfContent.vue?vue&type=style&index=0&id=6d5e1cc4&lang=scss\"\n\nimport exportComponent from \"../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { PluginKey } from '@tiptap/pm/state';\n\nconst PhantomSuggesterKey = {\n mention: new PluginKey('phantomMention'),\n emoji: new PluginKey('phantomEmoji'),\n command: new PluginKey('phantomCommand'),\n};\n\nexport default PhantomSuggesterKey;\n","import { getCurrentInstance } from 'vue';\n\nexport default function useGenerateEditorClass() {\n const _this = getCurrentInstance()?.proxy as any;\n if (!_this) return;\n\n const generateEditorClass = () => {\n return Object.entries(_this.editorClasses)\n .reduce((acc: string[], [className, condition]) => {\n if (condition) {\n acc.push(className);\n }\n return acc;\n }, [])\n .join(' ');\n };\n\n return {\n generateEditorClass,\n };\n}\n","\n\n\n","import { render } from \"./SidebarHeaderButton.vue?vue&type=template&id=1a398c9d\"\nimport script from \"./SidebarHeaderButton.vue?vue&type=script&lang=js\"\nexport * from \"./SidebarHeaderButton.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { mergeAttributes, Node } from '@tiptap/core';\n\nexport enum CalloutTypes {\n Info = 'info',\n Success = 'success',\n Warning = 'warning',\n Error = 'error',\n}\n\ndeclare module '@tiptap/core' {\n interface Commands {\n callout: {\n callout: (options: { type: CalloutTypes }) => ReturnType;\n };\n }\n}\n\nconst Callout = Node.create({\n name: 'callout',\n group: 'block',\n content: 'inline*',\n selectable: false,\n addOptions(): { type: CalloutTypes } {\n return {\n type: CalloutTypes.Info,\n };\n },\n parseHTML() {\n return [\n {\n tag: 'callout',\n },\n ];\n },\n\n addAttributes() {\n return {\n type: {\n default: CalloutTypes.Info,\n parseHTML: (element) => {\n const type = element.getAttribute('data-type');\n\n if (!type) {\n return CalloutTypes.Info;\n }\n\n return type as CalloutTypes;\n },\n renderHTML: (attributes) => {\n return {\n 'data-type': attributes.type,\n };\n },\n },\n // this attribute is not rendering or saving to html but is used to show the dropdown on create\n showDropdownOnCreate: {\n default: false,\n },\n };\n },\n\n renderHTML({ HTMLAttributes }) {\n return ['callout', mergeAttributes(HTMLAttributes), 0];\n },\n\n addCommands() {\n return {\n callout:\n (options) =>\n ({ commands }) => {\n return commands.insertContent({\n type: this.name,\n attrs: {\n ...options,\n showDropdownOnCreate: true,\n },\n });\n },\n };\n },\n\n addKeyboardShortcuts() {\n return {\n // remove callout when at start of document or code block is empty\n Backspace: () => {\n const { empty, $anchor } = this.editor.state.selection;\n const isAtStart = $anchor.pos === 1;\n\n if (!empty || $anchor.parent.type.name !== this.name) {\n return false;\n }\n\n if (isAtStart || !$anchor.parent.textContent.length) {\n return this.editor.commands.clearNodes();\n }\n\n return false;\n },\n };\n },\n});\n\nexport default Callout;\n","import { VueRenderer } from '@tiptap/vue-3';\nimport PopUpEditLink from '../popups/PopUpEditLink';\nimport tippy from 'tippy.js';\n\nexport default {\n data() {\n return {\n component: null,\n popup: null,\n };\n },\n\n methods: {\n showPopup(props) {\n this.component = new VueRenderer(PopUpEditLink, {\n props: { ...props, popup: {}, component: {} },\n editor: props.editor,\n });\n\n const rects = document.body.getBoundingClientRect();\n // use tippy to attach component on body element\n this.popup = tippy('body', {\n getReferenceClientRect: () => ({\n ...rects,\n }),\n appendTo: () => document.body,\n content: this.component.ref.$el,\n showOnCreate: true,\n interactive: true,\n placement: 'top-start',\n trigger: 'manual',\n maxWidth: 'none',\n animation: 'none',\n role: 'poper',\n });\n\n // update props with popup and component instance\n this.component.updateProps({ ...props, popup: this.popup, component: this.component });\n },\n },\n};\n","\n\n\n\n\n","import { render } from \"./SettingsButtonHomeHeader.vue?vue&type=template&id=652bf46c\"\nimport script from \"./SettingsButtonHomeHeader.vue?vue&type=script&lang=js\"\nexport * from \"./SettingsButtonHomeHeader.vue?vue&type=script&lang=js\"\n\nimport \"./SettingsButtonHomeHeader.vue?vue&type=style&index=0&id=652bf46c&lang=scss\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { Node, Slice, Fragment } from '@tiptap/pm/model';\nimport { Plugin, Transaction } from '@tiptap/pm/state';\nimport { EditorView } from '@tiptap/pm/view';\nimport type { ImageUploaderPluginOptions } from '../customExtensions/ImageUploadExtension';\nimport constants from '@/utilities/constants';\nimport { mediaType, InlineMediaNode } from '@superthread-com/extension-inline-media/src/index';\nimport { Editor } from '@tiptap/core';\nimport { isInTable, selectionCell } from '@tiptap/pm/tables';\n\nconst fileCache: { [key: string]: File | string } = {};\n\n// 8px on both sides\nconst tableCellPadding = 16;\n\nexport function imageUploader(options: ImageUploaderPluginOptions) {\n const plugin = new ImageUploaderPlugin(options);\n const dummy = {};\n\n return new Plugin({\n props: {\n handleDOMEvents: {\n keydown(view) {\n return !plugin?.setView(view);\n },\n\n drop(view, event: DragEvent) {\n if (checkIfDropElementToIsTableCell(event)) {\n plugin.dropIntoTableCell = true;\n plugin.tableCellWidth = (event.target as HTMLElement)?.offsetWidth - tableCellPadding;\n }\n return !plugin?.setView(view);\n },\n\n focus(view) {\n return !plugin?.setView(view);\n },\n },\n\n handlePaste(view, event, slice) {\n return plugin?.setView(view).handlePaste(event, slice) || false;\n },\n\n handleDrop(view, event) {\n return plugin?.setView(view).handleDrop(event) || false;\n },\n\n transformPastedHTML(html) {\n if (plugin?.pastedFileFromClipboard) {\n // !IMPORTANT: clear the pastedFileFromClipboard flag\n plugin.pastedFileFromClipboard = false;\n return '';\n }\n const replacedHtml = html.replaceAll('\"', \"'\");\n const parser = new DOMParser();\n const parsedHtml = parser.parseFromString(replacedHtml, 'text/html');\n\n const imgs = Array.from(parsedHtml.getElementsByTagName('img'));\n for (const img of imgs) {\n img.remove();\n }\n\n const body = parsedHtml?.body?.innerHTML;\n return typeof body === 'string' ? body : html;\n },\n\n transformPasted(slice, view) {\n return plugin?.setView(view).transformPasted(slice) || slice;\n },\n },\n\n state: {\n init() {\n return dummy;\n },\n\n apply(tr, _value, _oldState, newState) {\n const filesOrUrls = tr.getMeta('uploadImages');\n\n if (filesOrUrls) {\n const arr: Array =\n typeof filesOrUrls === 'string' || filesOrUrls instanceof File\n ? [filesOrUrls]\n : Array.from(filesOrUrls); /// Probably a FileList or an array of files/urls\n\n // give some time for editor, otherwise history plugin forgets history\n setTimeout(() => {\n arr.forEach((item, i) => plugin?.beforeUpload(item, newState.selection.from + i));\n tr.setMeta('uploadImages', undefined);\n }, 10);\n }\n\n return dummy;\n },\n },\n });\n}\n\nexport class ImageUploaderPlugin {\n public view!: EditorView;\n\n public pastedFileFromClipboard: boolean = false;\n public dropIntoTableCell: boolean = false;\n public tableCellWidth: number | null = null;\n\n constructor(public config: ImageUploaderPluginOptions) {}\n\n private hasCordinatesAndFiles(coordinates: { pos: number } | null, filesLength: number) {\n return coordinates && coordinates.pos > -1 && filesLength;\n }\n\n private getImageHeight(image: HTMLImageElement, width: number) {\n return width !== image.width ? calculateHeight(image.width, image.height, width) : image.height;\n }\n\n private isFragmentPlaceholder(fragment: Fragment) {\n return (\n fragment &&\n // @ts-ignore\n fragment?.content[0]?.type.name === constants.stImagePlaceholder &&\n // @ts-ignore\n fragment?.content[0]?.type.name === InlineMediaNode.GenericPlaceholder\n );\n }\n\n public handleDrop(event: DragEvent) {\n if (!event.dataTransfer?.files.length) return;\n\n const coordinates = this.view.posAtCoords({\n left: event.clientX,\n top: event.clientY,\n });\n const files = Array.from(event.dataTransfer.files);\n if (!this.hasCordinatesAndFiles(coordinates, files.length)) return;\n if (this.config.preventInsertFiles) {\n event.preventDefault();\n this.config.emitter.$emit('preventInsertFiles', this.config.editorId);\n return false;\n }\n\n Promise.any(\n files.map(async (element, index) => {\n const image = this.config.acceptMimes.includes(element.type);\n if (image) {\n this.pastedFileFromClipboard = true;\n const file: File | null = element;\n\n const imgSrc = await readImage(file);\n\n const img = new Image();\n\n img.onload = () => {\n const width = checkWidth(this.config.editor.id, img.width);\n const height = this.getImageHeight(img, width);\n\n this.beforeUpload(imgSrc as any, (coordinates?.pos ?? 0) + index, file?.name, {\n width,\n height,\n });\n };\n\n img.src = imgSrc as any;\n } else {\n const file = element;\n if (!file) return;\n\n this.beforeUploadFile(file, (coordinates?.pos ?? 0) + index, file?.name);\n }\n })\n ).catch((e) => {\n console.warn(e);\n });\n\n return true;\n }\n\n public handlePaste(event: ClipboardEvent, slice: Slice) {\n const { content: fragment } = slice;\n\n if (this.isFragmentPlaceholder(fragment)) {\n return false;\n }\n\n const items = Array.from(event.clipboardData?.items || []);\n if (!items.length) return true;\n if (this.config.preventInsertFiles) {\n this.config.emitter.$emit('preventInsertFiles', this.config.editorId);\n return false;\n }\n Promise.any(\n items.map(async (element) => {\n const image = this.config.acceptMimes.includes(element.type);\n if (image) {\n this.pastedFileFromClipboard = true;\n const file: File | null = element.getAsFile();\n\n const imgSrc = await readImage(file);\n\n const img = new Image();\n\n img.onload = () => {\n const width = checkWidth(this.config.editor.id, img.width);\n const height = this.getImageHeight(img, width);\n\n this.beforeUpload(imgSrc as any, this.view.state.selection.from, file?.name, {\n width,\n height,\n });\n };\n\n img.src = imgSrc as any;\n } else {\n const file = element.getAsFile();\n if (!file) return;\n\n this.beforeUploadFile(file, this.view.state.selection.from, file?.name);\n }\n })\n ).catch((e) => {\n console.warn(e);\n });\n }\n\n public transformPasted(slice: Slice) {\n const imageNodes: Array<{ url: string; id: string }> = [];\n const children: Node[] = [];\n slice.content.forEach((child) => {\n let newChild = child;\n\n /// if the node itself is image\n if (child.type.name === constants.stImagePlaceholder) {\n imageNodes.push({\n id: newChild.attrs.uploadId,\n url: child.attrs.imgsrc || child.attrs['data-src'],\n });\n }\n\n if (child.type.name === constants.stImage) {\n // check if is in table cell\n // this will check if current seleciton is in table cell or if drop was in table cell\n const tableCell = this.dropIntoTableCell\n ? this.tableCellWidth\n : checkIfInsertingIntoTableCell(this.config.editor);\n let imageSmallerThanTableCell = false;\n if (tableCell && tableCell >= child.attrs.width) {\n imageSmallerThanTableCell = true;\n }\n if (tableCell) {\n const height = calculateHeight(child.attrs.width, child.attrs.height, tableCell);\n const width = imageSmallerThanTableCell ? child.attrs.width : tableCell;\n newChild = child.type.create({\n ...child.attrs,\n style: `width: ${width}px`,\n width,\n height: imageSmallerThanTableCell ? child.attrs.height : height,\n });\n }\n }\n children.push(newChild);\n });\n\n imageNodes.forEach(({ url, id }) => {\n this.uploadImageForId(url, id, 'slika');\n });\n\n // reset the dropIntoTableCell flags\n this.tableCellWidth = null;\n this.dropIntoTableCell = false;\n\n return new Slice(Fragment.fromArray(children), slice.openStart, slice.openEnd);\n }\n\n /**\n * This method is to be used with generic media files.\n * Images are handled separately by `beforeUpload`.\n */\n public beforeUploadFile(file: File, at: number, fileName = '') {\n const tr = this.view.state.tr;\n if (!tr.selection.empty) {\n tr.deleteSelection();\n }\n\n if (at < 0) {\n at = this.view.state.selection.from;\n }\n\n const node = this.view.state.schema.nodes[InlineMediaNode.GenericPlaceholder].create({\n uploadId: this.config.id(),\n fileName: fileName,\n fileType: file.type,\n mediaType: mediaType(file.type),\n uploadProgress: 0,\n });\n\n // preventUpdate meta will prevent editor to emit update message - no need to update doc with base64 image\n tr.replaceWith(at, at, node).setMeta('preventUpdate', true);\n this.view.dispatch(tr);\n\n /// upload image for above node\n this.uploadFileForId(file, node.attrs.uploadId, fileName);\n }\n\n /**\n * This method is to be used with generic media files.\n * Images are handled separately by `uploadImageForId`.\n */\n public async uploadFileForId(file: File, id: string, fileName: string) {\n const fileObject = file ? await this.requestUpload(file, `editor-${id}`) : null;\n\n const placeholderNodes = this.getNodePositions(InlineMediaNode.GenericPlaceholder, id);\n if (!placeholderNodes.length) {\n return;\n }\n\n const tr = this.view.state.tr.setMeta('addToHistory', false).setMeta('imageInsert', true);\n\n if (fileObject) {\n this.replaceNodesAtPositions(tr, placeholderNodes, (node) => {\n return this.view.state.schema.nodes[InlineMediaNode.Generic].create({\n ...node.attrs,\n url: (fileObject as any)?.url || '',\n fileName: fileName,\n fileType: file.type,\n mediaType: mediaType(file.type),\n });\n });\n } else {\n this.deleteNodesAtPositions(tr, placeholderNodes);\n this.config.emitter?.$emit('fileInsertError', {\n editorId: this.config.editorId,\n uploadId: id,\n });\n }\n\n this.view.dispatch(tr);\n fileCache[id] = '';\n }\n\n public async beforeUpload(\n fileOrUrl: File | string,\n at: number,\n fileName: string = '',\n { width, height }: { width: number; height: number } = {\n width: 0,\n height: 0,\n }\n ) {\n const tr = this.view.state.tr;\n if (!tr.selection.empty) {\n tr.deleteSelection();\n }\n\n if (at < 0) {\n at = this.view.state.selection.from;\n }\n\n let tempImage;\n if (!width || !height) {\n tempImage = new Image();\n tempImage.src = fileOrUrl as string;\n }\n\n /// insert image view node - uploading state.\n const node = await this.newUploadingImageNode({\n src: fileOrUrl,\n width: width || tempImage?.width,\n height: height || tempImage?.height,\n });\n // preventUpdate meta will prevent editor to emit update message - no need to update doc with base64 image\n tr.replaceWith(at, at, node).setMeta('preventUpdate', true);\n this.view.dispatch(tr);\n\n /// upload image for above node\n this.uploadImageForId(fileOrUrl, node.attrs.uploadId, fileName);\n }\n\n public async newUploadingImageNode(attrs?: any): Promise {\n const uploadId = this.config.id();\n fileCache[uploadId] = attrs.src || attrs['data-src'];\n\n const { width, height } = readImageAndCheckDimensions(attrs, this.config.editor);\n return this.view.state.schema.nodes[constants.stImagePlaceholder].create({\n ...attrs,\n imgsrc: '',\n uploadId,\n width,\n height,\n });\n }\n\n /**\n * @param nodeName The node that is being searched\n * @param uploadId The upload id of the placeholder - it is assigned\n * when the upload is initiated and the placeholder is created.\n * @returns\n */\n getNodePositions(nodeName: string, uploadId: string) {\n const positions: Array<{ node: Node; pos: number }> = [];\n this.view.state.doc.descendants((node, pos) => {\n if (node.type.name === nodeName && node.attrs.uploadId === uploadId) {\n positions.push({ node, pos });\n }\n });\n\n return positions;\n }\n\n /**\n * This replaces the given nodes. Dispatching the transaction is still required.\n * @param tr\n * @param nodes\n * @param replacement\n */\n replaceNodesAtPositions(\n tr: Transaction,\n nodes: { node: Node; pos: number }[],\n replacement: Node | ((node: Node) => Node)\n ) {\n nodes.forEach(({ node, pos }) => {\n const newNode = typeof replacement === 'function' ? replacement(node) : replacement;\n tr.replaceWith(pos, pos + 1, newNode);\n });\n }\n\n /**\n * This deletes the given nodes. Dispatching the transaction is still required.\n * @param tr\n * @param nodes\n */\n deleteNodesAtPositions(tr: Transaction, nodes: { node?: Node; pos: number }[]) {\n nodes.forEach(({ pos }) => {\n tr.delete(pos, pos + 1);\n });\n }\n\n async requestUpload(file: File, id: string) {\n try {\n return await this.config.upload(\n this.config.editor.id,\n file,\n this.config.resourceType,\n this.config.parentResourceType,\n this.config.parentResourceId,\n id\n );\n } catch (err: any) {\n if (err.message === 'pageCreated') {\n try {\n return await this.config.upload(\n this.config.editor.id,\n file || '',\n this.config.resourceType,\n this.config.parentResourceType,\n this.config.parentResourceId,\n id\n );\n } catch {\n return null;\n }\n }\n return null;\n }\n }\n\n public async uploadImageForId(fileOrUrl: File | string, id: string, fileName: string) {\n let file: string | File | null = fileOrUrl;\n if (typeof file === 'string') {\n file = await webImg2File(file, fileName);\n }\n\n const fileObject = file ? await this.requestUpload(file, `editor-${id}`) : null;\n\n const imageNodes = this.getNodePositions(constants.stImagePlaceholder, id);\n if (!imageNodes.length) {\n return;\n }\n\n /// disallow user from undoing back to 'uploading' state.\n const tr = this.view.state.tr.setMeta('addToHistory', false).setMeta('imageInsert', true);\n const name = getFileName(fileName);\n\n if (fileObject) {\n this.replaceNodesAtPositions(tr, imageNodes, (node) => {\n return this.view.state.schema.nodes[constants.stImage].create({\n ...node.attrs,\n width: node.attrs?.width,\n imgsrc: (fileObject as any)?.url || '',\n 'blur-hash': (fileObject as any)?.blurhash,\n style: `width: ${node.attrs?.width}px`,\n alt: name,\n });\n });\n } else {\n this.deleteNodesAtPositions(tr, imageNodes);\n this.config.emitter?.$emit('fileInsertError', this.config.editorId);\n }\n\n this.view.dispatch(tr);\n fileCache[id] = '';\n }\n\n public setView(view: EditorView): this {\n this.view = view;\n return this;\n }\n}\n\nconst webImg2File = (imgUrl: string, fileName: string): Promise => {\n function imgToBase64(url: string): Promise {\n if (url.startsWith('data:image/')) {\n // If it's already a base64 encoded image, no need to convert\n return Promise.resolve(url);\n }\n let canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n const img = new Image();\n\n img.crossOrigin = 'Anonymous';\n img.setAttribute('referrerpolicy', 'no-referrer');\n img.src = url;\n return new Promise((resolve, reject) => {\n img.onload = function () {\n canvas.height = img.height;\n canvas.width = img.width;\n ctx?.drawImage(img, 0, 0);\n const dataURL = canvas.toDataURL('image/png');\n resolve(dataURL);\n // @ts-ignore\n canvas = null;\n };\n img.onerror = reject;\n });\n }\n\n const base64toFile = (base: string, filename: string): File => {\n const arr = base.split(',');\n // @ts-ignore\n const mime = arr[0].match(/:(.*?);/)[1];\n const bstr = atob(arr[1]);\n let n = bstr.length;\n const u8arr = new Uint8Array(n);\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n);\n }\n return new File([u8arr], `${filename}`, { type: mime });\n };\n\n return imgToBase64(imgUrl)\n .then((base) => {\n return base64toFile(base, fileName);\n })\n .catch(() => {\n return null;\n });\n};\n\nconst readImage = (image: any) => {\n return new Promise((resolve) => {\n const reader = new FileReader();\n reader.onload = (e) => {\n resolve(e.target?.result);\n };\n reader.readAsDataURL(image);\n });\n};\n\nconst getFileName = (name: string) => {\n const nameArr = name.split('.');\n nameArr.splice(nameArr.length - 1, 1);\n return nameArr.join('');\n};\n\nexport const checkWidth = (editorId: any, imageWidth: number): number => {\n const p = document.querySelector(`#${editorId} p`);\n if (p) {\n const { width } = p.getBoundingClientRect();\n return imageWidth > width ? width : imageWidth;\n }\n return imageWidth;\n};\n\nexport const calculateHeight = (width: number, height: number, preferredWidth: number) => {\n const ratio = height / width;\n return Math.round(ratio * preferredWidth);\n};\n\nexport const getFileCache = (key: string) => {\n return fileCache[key];\n};\n\nconst checkIfInsertingIntoTableCell = (editor: Editor) => {\n if (!isInTable(editor.view.state)) return null;\n\n const selectionCellNode = selectionCell(editor.view.state);\n if (selectionCellNode?.pos >= 0) {\n // get dom element of the cell\n const nodeDom = editor.view.nodeDOM(selectionCellNode.pos) as HTMLElement;\n return nodeDom?.offsetWidth - tableCellPadding || null;\n }\n};\n\n// this method loads image, reads width and height and checks if they if to editor\nexport const readImageAndCheckDimensions = (attrs: any, editor: Editor): any => {\n const tableCellWidth = checkIfInsertingIntoTableCell(editor);\n const imageIsSmallerThanTableCell = tableCellWidth && tableCellWidth >= attrs.width;\n\n const width = checkWidth(\n (editor as any).id,\n imageIsSmallerThanTableCell ? attrs.width : (tableCellWidth ?? attrs.width)\n );\n\n const height =\n width !== attrs.width ? calculateHeight(attrs.width, attrs.height, width) : attrs.height;\n\n return { src: attrs.src, width, height };\n};\n\nconst checkIfDropElementToIsTableCell = (event: DragEvent) => {\n return (\n ['TD', 'TH'].includes((event.target as HTMLElement).nodeName) ||\n ((event.target as HTMLElement)?.parentNode &&\n ['TD', 'TH'].includes((event.target as HTMLElement)?.parentNode?.nodeName ?? ''))\n );\n};\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nimport useCustomIcon from '@/utilities/composables/useCustomIcon';\nimport useTranslate from '@/utilities/composables/useTranslate';\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'QuickCardButton',\n props: {\n effect: {}\n },\n setup(__props: any) {\n\nconst props = __props;\n\nconst { iconPath, getCustomIconStyle } = useCustomIcon();\n\nconst { translate } = useTranslate();\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"button\", {\n class: \"add-card-toolbar-icon pt flex items-center justify-center\",\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (props.effect && props.effect(...args)))\n }, [\n _createElementVNode(\"em\", {\n class: \"custom-icons page-toolbar mr-1 group-hover:bg-icon-hover\",\n style: _normalizeStyle(_unref(getCustomIconStyle)(_unref(iconPath)('plus2')))\n }, null, 4),\n _createTextVNode(\" \" + _toDisplayString(_unref(translate)('card')), 1)\n ]))\n}\n}\n\n})","\n\n\n\n\n","import script from \"./QuickCardButton.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./QuickCardButton.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./QuickCardButton.vue?vue&type=style&index=0&id=b10d6e42&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-b10d6e42\"]])\n\nexport default __exports__","\n\n\n\n","import { render } from \"./CommentPageButton.vue?vue&type=template&id=4346405a\"\nimport script from \"./CommentPageButton.vue?vue&type=script&lang=js\"\nexport * from \"./CommentPageButton.vue?vue&type=script&lang=js\"\n\nimport \"./CommentPageButton.vue?vue&type=style&index=0&id=4346405a&lang=scss\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { store } from '@/store';\nimport { ResourceType } from '@/types/resources';\nimport { createNewPageAndUpdateRoute } from '@/utilities/createNewPageAndUpdateRoute';\n\nexport const uploadFn = async (\n editorId: string,\n file: File,\n resourceType: string,\n parentResourceType: string,\n parentResourceId: string,\n id?: string,\n isModal: boolean = true\n) => {\n const resourceId = store.getters.editor(editorId).resourceId;\n const formData = new FormData();\n const currentRoute = store.getters.getCurrentRoute;\n\n // to upload an image you need page_id, so we first need to create page and then upload an image\n if (\n resourceType === ResourceType.Page &&\n resourceId === 'newpage' &&\n currentRoute.name === 'newpage'\n ) {\n const currentPage = store.getters.getPage;\n await createNewPageAndUpdateRoute(currentPage).then((page: any) => {\n return Promise.reject({\n message: 'pageCreated',\n resourceId: page.id,\n });\n });\n }\n\n const resourceProperty =\n resourceType === ResourceType.Comment ? `${parentResourceType}_id` : `${resourceType}_id`;\n\n formData.append('files', file, file.name);\n // @ts-ignore\n formData.append('attachment', false);\n if (resourceId !== 'quick') {\n formData.append(\n resourceProperty,\n resourceType === ResourceType.Comment ? parentResourceId : resourceId\n );\n }\n\n return store\n .dispatch('uploadFiles', { payload: formData, id, localId: id })\n .then(({ data }: any) => {\n const route = store.getters.getRoutes.files;\n const teamId = store.getters.getTeamID;\n const dataFile = data?.files?.[0] ?? { id: '', name: '', blurhash: '' };\n const url = `${route}/v1/${teamId}/files/${dataFile.id}`;\n const { id: fileId } = dataFile;\n if (resourceId === 'quick') {\n switch (resourceType) {\n case ResourceType.Card:\n store.dispatch('addQuickCardFileToUpdate', { file: fileId, isModal });\n break;\n case ResourceType.Page:\n store.dispatch('addQuickPageFileToUpdate', fileId);\n break;\n default:\n break;\n }\n }\n return { ...dataFile, remoteFileUrl: dataFile.url, url };\n })\n .catch((err: any) => {\n throw err;\n });\n};\n","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, createVNode as _createVNode, unref as _unref } from \"vue\"\n\nconst _hoisted_1 = { class: \"calendar-header-options\" }\nconst _hoisted_2 = { class: \"header-month-wrap\" }\nconst _hoisted_3 = { class: \"header-label-wrap\" }\nconst _hoisted_4 = { class: \"header-month-label\" }\nconst _hoisted_5 = {\n key: 0,\n class: \"header-year-label\"\n}\nconst _hoisted_6 = { class: \"header-month-chevrons\" }\n\nimport ButtonCustom from '@/components/elements/ButtonCustom.vue';\nimport EventBus from '@/utilities/eventBus';\nimport useTranslate from '@/utilities/composables/useTranslate';\nimport { ref, onUnmounted, computed } from 'vue';\nimport format from 'date-fns/format';\nimport isSameYear from 'date-fns/isSameYear';\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'CalendarHeaderOptions',\n setup(__props) {\n\nconst { translate } = useTranslate();\n\nconst currentDate = ref(new Date());\nconst currentMonthLabel = ref(format(currentDate.value, 'LLLL', { weekStartsOn: 1 }));\nconst currentYearLabel = ref(format(currentDate.value, 'yyyy', { weekStartsOn: 1 }));\n\nconst isDifferentYear = computed(() => !isSameYear(currentDate.value, Date.now()));\n\nconst moveToStart = () => {\n EventBus.$emit('calendar:moveToStart');\n};\n\nconst handleChangeMonth = (value: number) => {\n EventBus.$emit('calendar:changeMonth', value);\n};\n\nconst setCurrentMonthLabel = (date: Date) => {\n currentDate.value = date;\n currentMonthLabel.value = format(date, 'LLLL', { weekStartsOn: 1 });\n currentYearLabel.value = format(date, 'yyyy', { weekStartsOn: 1 });\n};\nEventBus.$on('calendar:currentMonthChanged', setCurrentMonthLabel);\n\nconst handleOnUnmounted = () => {\n EventBus.$off('calendar:currentMonthChanged', setCurrentMonthLabel);\n};\n\nonUnmounted(handleOnUnmounted);\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, _toDisplayString(currentMonthLabel.value), 1),\n _cache[2] || (_cache[2] = _createTextVNode()),\n (isDifferentYear.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, _toDisplayString(currentYearLabel.value), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _cache[4] || (_cache[4] = _createTextVNode()),\n _createElementVNode(\"div\", _hoisted_6, [\n _createVNode(ButtonCustom, {\n \"custom-icon-name\": \"chevron-up\",\n \"custom-icon-color\": \"\",\n \"custom-icon-size\": \"16px\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (handleChangeMonth(-1)))\n }),\n _cache[3] || (_cache[3] = _createTextVNode()),\n _createVNode(ButtonCustom, {\n \"custom-icon-name\": \"chevron-down\",\n \"custom-icon-color\": \"\",\n \"custom-icon-size\": \"16px\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (handleChangeMonth(1)))\n })\n ])\n ]),\n _cache[5] || (_cache[5] = _createTextVNode()),\n _createVNode(ButtonCustom, {\n class: \"header-today-button\",\n text: _unref(translate)('today'),\n onClick: moveToStart\n }, null, 8, [\"text\"])\n ]))\n}\n}\n\n})","\n\n\n\n\n","import script from \"./CalendarHeaderOptions.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarHeaderOptions.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarHeaderOptions.vue?vue&type=style&index=0&id=46918c8c&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import {\n showPopup,\n showAiPopup,\n} from '@/components/editor/services/lib/commandSuggestion/commands';\nimport { MenuItem, MenuItemFn } from './menu-item';\nimport { isInTable } from '@tiptap/pm/tables';\nimport { nanoid } from 'nanoid';\nimport EventBus from '@/utilities/eventBus';\nimport QuickCardButton from '@/components/editor/toolbar/sections/QuickCardButton.vue';\nimport { ComponentPublicInstance } from 'vue';\nimport { DOMSerializer } from '@tiptap/pm/model';\n\nexport const listCommands: MenuItemFn = ({ editor, translate }) => [\n {\n icon: 'check-square',\n effect: () => (editor.chain().focus() as any).toggleTaskList().run(),\n tooltip: translate('menu.check-list'),\n active: () => editor.activeButtonStates.taskList,\n },\n {\n icon: 'list',\n effect: () => (editor.chain().focus() as any).toggleBulletList().run(),\n tooltip: translate('menu.bullet-list'),\n active: () => editor.activeButtonStates.bulletList,\n },\n {\n icon: 'numbered-list',\n effect: () => (editor.chain().focus() as any).toggleOrderedList().run(),\n tooltip: translate('menu.ordered-list'),\n active: () => editor.activeButtonStates.orderedList,\n },\n {\n icon: 'minus',\n effect: () => (editor.chain().focus() as any).setHorizontalRule().run(),\n tooltip: translate('menu.horizontal-rule'),\n disabled: () => editor.disabledButtonStates.isInTable,\n },\n];\n\nexport const headingCommands: MenuItemFn = ({ editor, translate }) => [\n {\n icon: 'H1',\n effect: () => (editor.chain().focus() as any).toggleHeading({ level: 1 }).run(),\n active: () => editor.activeButtonStates.h1,\n tooltip: translate('menu.heading', { level: '1' }),\n },\n {\n icon: 'H2',\n effect: () => (editor.chain().focus() as any).toggleHeading({ level: 2 }).run(),\n active: () => editor.activeButtonStates.h2,\n tooltip: translate('menu.heading', { level: '2' }),\n },\n {\n icon: 'H3',\n effect: () => (editor.chain().focus() as any).toggleHeading({ level: 3 }).run(),\n active: () => editor.activeButtonStates.h3,\n tooltip: translate('menu.heading', { level: '3' }),\n },\n];\n\nexport const textStyleCommands: MenuItemFn = ({ editor, translate }) => [\n {\n icon: 'bold-st',\n effect: () => (editor.chain().focus() as any).toggleBold().run(),\n active: () => editor.activeButtonStates.bold,\n tooltip: translate('menu.bold'),\n tooltipMeta: { icon: { ctrl: true, key: 'B' } },\n },\n {\n icon: 'italic-st',\n effect: () => (editor.chain().focus() as any).toggleItalic().run(),\n active: () => editor.activeButtonStates.italic,\n tooltip: translate('menu.italic'),\n tooltipMeta: { icon: { ctrl: true, key: 'I' } },\n },\n {\n icon: 'strikethrough',\n effect: () => (editor.chain().focus() as any).toggleStrike().run(),\n active: () => editor.activeButtonStates.strike,\n tooltip: translate('menu.strikethrough'),\n tooltipMeta: { icon: { modifiers: ['ctrl', 'shift'], key: 'X' } },\n },\n {\n icon: 'underline-st',\n effect: () => (editor.chain().focus() as any).toggleUnderline().run(),\n active: () => editor.activeButtonStates.underline,\n tooltip: translate('menu.underline'),\n tooltipMeta: { icon: { ctrl: true, key: 'U' } },\n },\n];\n\n// used to add align dropdown button inside of bubble menu\nexport const alignCommand: MenuItemFn = ({ editor }) => ({\n icon: () => {\n const { activeButtonStates } = editor;\n\n if (activeButtonStates.textAlignCenter) return 'align-center';\n if (activeButtonStates.textAlignRight) return 'align-right';\n if (activeButtonStates.textAlignJustified) return 'align-justify-st';\n return 'align-left';\n },\n effect: () => {},\n active: () => false,\n disabled: () => {\n // disable align button if lists are active\n if (\n editor.activeButtonStates.orderedList ||\n editor.activeButtonStates.bulletList ||\n editor.activeButtonStates.taskList\n ) {\n return true;\n }\n // enable align button if heading or paragraph is active\n return !(editor.activeButtonStates.heading || editor.activeButtonStates.paragraph);\n },\n});\n\n// actuall align commands\nexport const alignCommands: MenuItemFn = ({ editor, translate }) => [\n {\n icon: 'align-left',\n effect: () => (editor.chain().focus() as any).setTextAlign('left').run(),\n active: () => editor.activeButtonStates.textAlignLeft,\n tooltip: translate('menu.align-left'),\n tooltipMeta: { icon: { modifiers: ['ctrl', 'shift'], key: 'L' } },\n },\n {\n icon: 'align-center',\n effect: () => {\n (editor.chain().focus() as any).setTextAlign('center').run();\n },\n active: () => editor.activeButtonStates.textAlignCenter,\n tooltip: translate('menu.align-center'),\n tooltipMeta: { icon: { modifiers: ['ctrl', 'shift'], key: 'E' } },\n },\n {\n icon: 'align-justify-st',\n effect: () => {\n (editor.chain().focus() as any).setTextAlign('justify').run();\n },\n active: () => editor.activeButtonStates.textAlignJustified,\n tooltip: translate('menu.align-justify'),\n tooltipMeta: { icon: { modifiers: ['ctrl', 'shift'], key: 'J' } },\n },\n {\n icon: 'align-right',\n effect: () => (editor.chain().focus() as any).setTextAlign('right').run(),\n active: () => editor.activeButtonStates.textAlignRight,\n tooltip: translate('menu.align-right'),\n tooltipMeta: { icon: { modifiers: ['ctrl', 'shift'], key: 'R' } },\n },\n];\n\nexport const bubbleMediaCommands: MenuItemFn = ({ editor, translate }) => [\n {\n icon: 'link-st',\n effect: () => {\n if (editor.isActive('link')) {\n editor.chain().focus().unsetLink().run();\n return;\n }\n const { state } = editor;\n const { selection } = state;\n\n const { from, to } = selection;\n const text = state.doc.textBetween(from, to, ' ');\n showPopup({\n editorId: editor.id,\n editor,\n insertLink: true,\n selectedText: text,\n from: editor.state.selection.from,\n to: editor.state.selection.to,\n });\n },\n active: () => editor.activeButtonStates.link,\n tooltip: translate('menu.link'),\n },\n];\n\nexport const mediaCommands: MenuItemFn = ({ editor, translate, store }) => [\n ...(bubbleMediaCommands({ editor, translate, store }) as MenuItem[]),\n {\n icon: 'image-st',\n effect: () => {\n store.dispatch('setPageUploadPopup', {\n id: 'page-insert-image',\n title: translate('quickPage.title.attachImageFrom'),\n editorId: (editor as any).id,\n });\n },\n },\n {\n icon: 'youtube',\n effect: () => {\n const { state } = editor;\n const { selection } = state;\n\n const { from, to } = selection;\n showPopup({\n editorId: editor.id,\n youtubeVideoPopup: true,\n from,\n to,\n });\n },\n disabled: () => isInTable(editor.state),\n },\n];\n\nexport const blockElementsCommands: MenuItemFn = ({ editor, translate }) => [\n {\n icon: 'blocquote',\n effect: () => {\n editor.chain().focus().toggleBlockquote().run();\n },\n tooltip: translate('menu.blockquote'),\n active: () => editor.activeButtonStates.blockquote,\n disabled: () => editor.disabledButtonStates.isInTable,\n },\n {\n icon: 'code-st',\n effect: () => {\n editor.chain().focus().toggleCode().run();\n },\n tooltip: translate('menu.code'),\n active: () => editor.activeButtonStates.code,\n disabled: () => editor.disabledButtonStates.isInTable,\n },\n];\n\nexport const inlineCommentCommands: MenuItemFn = ({ editor, translate, store }) => [\n {\n icon: 'add-comment',\n effect: () => {\n const highlightSelectionId = nanoid(6);\n editor.commands.setPreCommentHighlight({\n highlight: highlightSelectionId,\n preCommentRange: editor.state.selection,\n });\n const highlightedNodes = document.querySelectorAll(\n `[data-highlighted=\"${highlightSelectionId}\"]`\n );\n if (!highlightedNodes.length) return;\n const lastNode = highlightedNodes[highlightedNodes.length - 1];\n const rect = lastNode?.getBoundingClientRect();\n\n store.dispatch('setActiveComment', '');\n\n EventBus.$emit('displayInlineCommentInput', {\n rect,\n text: lastNode?.innerHTML,\n editorId: editor.id,\n });\n },\n tooltip: translate('menu.add-comment'),\n label: translate('comment'),\n },\n];\n\nexport const cardFromSelectionCommands: MenuItemFn = ({ editor, translate, store }) => [\n {\n icon: 'plus',\n text: translate('card'),\n effect: () => {\n const { view, state } = editor;\n const { from, to } = view.state.selection;\n const text = state.doc.textBetween(from, to, ' ');\n\n editor.commands.setTextSelection(from);\n editor.commands.setTextSelection({ from, to });\n\n // Note: A $nextTick was used here originally.\n\n store.dispatch('setQuickCardTitle', { title: text });\n store.dispatch('setEditorForCardLink', editor.id);\n store.dispatch('setQuickCard', true);\n },\n tooltip: translate('menu.quick-card'),\n customButton: QuickCardButton as ComponentPublicInstance,\n },\n];\n\nexport const undoRedoCommands: MenuItemFn = ({ editor, translate }) => [\n {\n icon: 'undo',\n effect: () => editor.chain().focus().undo().run(),\n disabled: () => {\n if (Object.keys(editor).length > 0) {\n return editor.disabledButtonStates.undo;\n }\n return false;\n },\n tooltip: translate('menu.undo'),\n tooltipMeta: { icon: { ctrl: true, key: 'Z' } },\n },\n {\n icon: 'redo',\n effect: () => editor.chain().focus().redo().run(),\n disabled: () => {\n if (Object.keys(editor).length > 0) {\n return editor.disabledButtonStates.redo;\n }\n return false;\n },\n tooltip: translate('menu.redo'),\n tooltipMeta: { icon: { ctrl: true, key: 'Y' } },\n },\n];\n\nexport const showAiPopupCommand: MenuItemFn = ({ editor, translate, appendTo }) => [\n {\n icon: 'zap',\n effect: () => {\n const serializer = DOMSerializer.fromSchema(editor.view.state.schema);\n const selectedHtml = serializer.serializeFragment(\n editor.view.state.selection.content().content\n );\n\n // Create a temporary div element to obtain the outerHTML\n const tempDiv = document.createElement('div');\n tempDiv.appendChild(selectedHtml);\n\n const lastChild = tempDiv.lastChild;\n // Remove the last child if it is a blank node\n if (lastChild?.nodeType === 1 && lastChild?.textContent === '') {\n lastChild?.remove();\n }\n\n // Get the HTML string\n const selectedHtmlString = tempDiv.innerHTML;\n\n showAiPopup({\n editor,\n editorId: editor.id,\n originalText: selectedHtmlString,\n appendTo,\n });\n },\n label: translate('assistant'),\n tooltip: `AI ${translate('assistant')}`,\n },\n];\n\nexport const selectionCommands = [];\n","\n\n\n","\n\n\n","import { render } from \"./DragHandle.vue?vue&type=template&id=76e450bf\"\nimport script from \"./DragHandle.vue?vue&type=script&lang=js\"\nexport * from \"./DragHandle.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./CopyHeadingLinkButton.vue?vue&type=template&id=f8a3513e\"\nimport script from \"./CopyHeadingLinkButton.vue?vue&type=script&lang=js\"\nexport * from \"./CopyHeadingLinkButton.vue?vue&type=script&lang=js\"\n\nimport \"./CopyHeadingLinkButton.vue?vue&type=style&index=0&id=f8a3513e&lang=scss\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./BlockHoverMenu.vue?vue&type=template&id=97d6c5de\"\nimport script from \"./BlockHoverMenu.vue?vue&type=script&lang=js\"\nexport * from \"./BlockHoverMenu.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n\n\n","\n\n\n\n","import { render } from \"./InternalLink.vue?vue&type=template&id=f22e1f1a\"\nimport script from \"./InternalLink.vue?vue&type=script&lang=js\"\nexport * from \"./InternalLink.vue?vue&type=script&lang=js\"\n\nimport \"./InternalLink.vue?vue&type=style&index=0&id=f22e1f1a&lang=scss\"\n\nimport exportComponent from \"../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./InternalLinkNode.vue?vue&type=template&id=55a23974\"\nimport script from \"./InternalLinkNode.vue?vue&type=script&lang=js\"\nexport * from \"./InternalLinkNode.vue?vue&type=script&lang=js\"\n\nimport \"./InternalLinkNode.vue?vue&type=style&index=0&id=55a23974&lang=scss\"\n\nimport exportComponent from \"../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./MediaResize.vue?vue&type=template&id=4cbf0941\"\nimport script from \"./MediaResize.vue?vue&type=script&lang=js\"\nexport * from \"./MediaResize.vue?vue&type=script&lang=js\"\n\nimport \"./MediaResize.vue?vue&type=style&index=0&id=4cbf0941&lang=scss\"\n\nimport exportComponent from \"../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","\n\n\n\n","import { render } from \"./UserMention.vue?vue&type=template&id=42f98cf7\"\nimport script from \"./UserMention.vue?vue&type=script&lang=js\"\nexport * from \"./UserMention.vue?vue&type=script&lang=js\"\n\nimport \"./UserMention.vue?vue&type=style&index=0&id=42f98cf7&lang=scss\"\n\nimport exportComponent from \"../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./MentionNode.vue?vue&type=template&id=228bd8af\"\nimport script from \"./MentionNode.vue?vue&type=script&lang=js\"\nexport * from \"./MentionNode.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./StImagePlaceholder.vue?vue&type=template&id=45d0664b\"\nimport script from \"./StImagePlaceholder.vue?vue&type=script&lang=js\"\nexport * from \"./StImagePlaceholder.vue?vue&type=script&lang=js\"\n\nimport \"./StImagePlaceholder.vue?vue&type=style&index=0&id=45d0664b&lang=scss\"\n\nimport exportComponent from \"../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./LinkTooltip.vue?vue&type=template&id=5dc472ff\"\nimport script from \"./LinkTooltip.vue?vue&type=script&lang=js\"\nexport * from \"./LinkTooltip.vue?vue&type=script&lang=js\"\n\nimport \"./LinkTooltip.vue?vue&type=style&index=0&id=5dc472ff&lang=scss\"\n\nimport exportComponent from \"../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { Mark, mergeAttributes } from '@tiptap/core';\nimport { Plugin, PluginKey, TextSelection } from '@tiptap/pm/state';\nimport { Node, Slice, Fragment } from '@tiptap/pm/model';\nimport { relativePositionToAbsolutePosition, ySyncPluginKey } from 'y-prosemirror';\n\nexport interface CommentOptions {\n HTMLAttributes?: Record;\n emitter?: any;\n getTextNodeFromPoint?: any;\n}\n\nconst commentMarkName = 'comment';\n\nconst createCommentMark = (comment: string, schema: any, resolved: string = '') => {\n return schema.marks.comment.create({\n ...(comment && { comment }),\n ...(resolved && { resolved }),\n });\n};\n\nconst markTypeIsComment = (mark: any = {}) => {\n return mark?.type?.name === commentMarkName;\n};\n\nconst getMarksWithoutComment = (node: any) => {\n return node.marks.filter((mark: any) => !markTypeIsComment(mark));\n};\n\nconst findAllCommentMarks = (doc: any) => {\n const commentMarks: any = [];\n // find all comment marks in document\n doc.descendants((node: Node, pos: number) => {\n const marks = getCommentMarks(node);\n if (marks.length) {\n commentMarks.push(\n ...marks.map((mark: any) => ({ ...mark, from: pos, to: pos + node.nodeSize }))\n );\n }\n });\n return commentMarks;\n};\n\nconst getCommentMarks = (node: any = {}) => {\n return node?.marks?.filter?.(markTypeIsComment);\n};\n\nconst getCommentMark = (node: any = {}) => {\n return node?.marks?.find?.(markTypeIsComment);\n};\n\nconst createNodeWithoutCommentChildren = (node: any = {}) => {\n return (\n node.type?.create?.(\n node.attrs,\n node.content.content.map(removeMarks),\n getMarksWithoutComment(node)\n ) ?? node\n );\n};\n\n// recursively remove all comment marks from the pasted content\nconst removeMarks = (node: any): Fragment => {\n if (node.isText) {\n const marksWithoutComment = getMarksWithoutComment(node);\n return node.mark(marksWithoutComment);\n } else if (node.isBlock) {\n return createNodeWithoutCommentChildren(node);\n } else if (node instanceof Fragment) {\n return Fragment.fromArray(\n // @ts-ignore\n node.content.map(removeMarks)\n );\n } else {\n return createNodeWithoutCommentChildren(node);\n }\n};\n\n// Check if the content contains any comment marks\nconst hasCommentMarkInFragment = (fragment: Fragment): boolean => {\n let found = false;\n fragment.forEach((node: Node) => {\n if (found) return;\n if (node.marks.some(markTypeIsComment)) {\n found = true;\n } else if (node.content) {\n found = hasCommentMarkInFragment(node.content);\n }\n });\n return found;\n};\n\nconst updateComment = (commentId: string, isResolve: boolean) => {\n return ({ state, tr }: { state: any; tr: any }): boolean => {\n const { schema } = state;\n\n // Find all comment marks in the document.\n const commentMarks: any = findAllCommentMarks(state.doc);\n\n // if there are no comment marks in document return false\n if (!commentMarks.length) return false;\n\n commentMarks.forEach((mark: any) => {\n const { comment, resolved } = mark.attrs;\n\n // Split the comment and resolved string into arrays.\n const commentIds = comment?.split?.(' ') ?? [];\n const resolvedCommentIds = resolved?.split?.(' ') ?? [];\n\n // Find the array that we want to update.\n const sourceIds = isResolve ? commentIds : resolvedCommentIds;\n const targetIds = isResolve ? resolvedCommentIds : commentIds;\n\n if (sourceIds.includes(commentId)) {\n // Remove the commentId from the source array.\n const newSourceIds = sourceIds.filter((id: string) => id !== commentId).join(' ');\n\n // Add the commentId to the target array.\n targetIds.unshift(commentId);\n const newTargetIds = targetIds.join(' ');\n\n const commentIds = isResolve ? newSourceIds : newTargetIds;\n const resolvedIds = isResolve ? newTargetIds : newSourceIds;\n\n // Create the new comment mark.\n const newCommentMark = createCommentMark(commentIds, schema, resolvedIds);\n\n // Add the new comment mark to the transaction.\n tr.addMark(mark.from, mark.to, newCommentMark);\n }\n });\n return true;\n };\n};\n\nexport {\n createCommentMark,\n markTypeIsComment,\n getMarksWithoutComment,\n getCommentMarks,\n getCommentMark,\n createNodeWithoutCommentChildren,\n removeMarks,\n hasCommentMarkInFragment,\n};\n\ndeclare module '@tiptap/core' {\n interface Commands {\n comment: {\n /**\n * Set a comment mark\n */\n setComment: (comment: string) => ReturnType;\n /**\n * Unset a comment mark\n */\n removeComment: (commentId: string) => ReturnType;\n /**\n * Resolve a comment mark\n */\n resolveComment: (commentId: string) => ReturnType;\n /**\n * Unresolve a comment mark\n */\n unresolveComment: (commentId: string) => ReturnType;\n };\n }\n}\n\nexport default Mark.create({\n name: commentMarkName,\n\n addOptions() {\n return {\n HTMLAttributes: {},\n };\n },\n\n inclusive: false,\n\n addAttributes() {\n return {\n comment: {\n default: null,\n parseHTML: (el) => (el as HTMLSpanElement).getAttribute('data-comment-ids'),\n renderHTML: (attrs) => ({ 'data-comment-ids': attrs.comment }),\n },\n resolved: {\n default: null,\n parseHTML: (el) => (el as HTMLSpanElement).getAttribute('data-resolved-ids'),\n renderHTML: (attrs) => ({ 'data-resolved-ids': attrs.resolved }),\n },\n };\n },\n\n addStorage() {\n return {\n activeCommentId: null,\n cut: false,\n inlineCommentActive: false,\n };\n },\n\n parseHTML() {\n return [\n {\n tag: 'span[data-comment-ids]',\n getAttrs: (el) =>\n !!(el as HTMLSpanElement).getAttribute('data-comment-ids')?.trim() && null,\n },\n {\n tag: 'span[data-resolved-ids]',\n getAttrs: (el) =>\n !!(el as HTMLSpanElement).getAttribute('data-resolved-ids')?.trim() && null,\n },\n ];\n },\n\n renderHTML({ HTMLAttributes }) {\n return ['span', mergeAttributes(this.options.HTMLAttributes ?? {}, HTMLAttributes), 0];\n },\n\n addCommands() {\n return {\n setComment:\n (comment: string) =>\n ({ state, commands, tr }) => {\n const { selection, schema } = state;\n let { from, to } = selection;\n if (from === to) {\n const { yjsFrom, yjsTo } = (state as any).preCommentHighlight$;\n const YState = ySyncPluginKey.getState(state);\n from =\n relativePositionToAbsolutePosition(\n YState.doc,\n YState.type,\n yjsFrom,\n YState.binding.mapping\n ) ?? 0;\n to =\n relativePositionToAbsolutePosition(\n YState.doc,\n YState.type,\n yjsTo,\n YState.binding.mapping\n ) ?? 0;\n tr.setSelection(new TextSelection(state.doc.resolve(from), state.doc.resolve(to)));\n }\n // check if there is a comment mark in range\n const rangeHasComments = state.doc.rangeHasMark(from, to, schema.marks.comment);\n if (rangeHasComments) {\n // get all comment nodes in range\n const nodesInRange: {\n comments: string;\n resolved: string;\n nodeStart: number;\n nodeEnd: number;\n }[] = [];\n\n state.doc.nodesBetween(from, to, (nodeInRange, pos) => {\n const commentMark = getCommentMark(nodeInRange);\n nodesInRange.push({\n comments: commentMark?.attrs?.comment ?? null,\n resolved: commentMark?.attrs?.resolved ?? null,\n nodeStart: pos,\n nodeEnd: pos + nodeInRange.nodeSize,\n });\n });\n\n // for each of the nodes in range add a new comment mark with existing comment value\n nodesInRange.forEach(\n (\n {\n nodeStart,\n nodeEnd,\n comments,\n resolved,\n }: { nodeStart: number; nodeEnd: number; comments: string; resolved: string },\n index: number\n ) => {\n const combinedComments = [comment, comments].filter(Boolean).join(' ');\n const singleCommentMark = createCommentMark(comment, schema, resolved);\n const combinedCommentsMark = createCommentMark(combinedComments, schema, resolved);\n const nodeStartWithinSelection = from <= nodeStart;\n\n // for first comment check if there is space from beginining of selection to node\n if (index === 0) {\n if (nodeStartWithinSelection) {\n tr.addMark(from, nodeStart, singleCommentMark);\n } else {\n const endPos = nodeEnd <= to ? nodeEnd : to;\n tr.addMark(from, endPos, combinedCommentsMark);\n }\n } else {\n // check if there is a space between node start and previous node end\n const { nodeEnd: previousNodeEnd } = nodesInRange[index - 1];\n if (nodeStart - previousNodeEnd > 1) {\n // add single comment mark for empty space between two comment nodes\n tr.addMark(previousNodeEnd, nodeStart, singleCommentMark);\n }\n }\n // check if node ends before selection ends\n const startPos = nodeStartWithinSelection ? nodeStart : from;\n const endPos = nodeEnd <= to ? nodeEnd : to;\n tr.addMark(startPos, endPos, combinedCommentsMark);\n\n // for last comment check if there is space from node end to selection end\n if (index === nodesInRange.length - 1 && nodeEnd < to) {\n tr.addMark(nodeEnd, to, singleCommentMark);\n }\n }\n );\n return true;\n }\n // when there are no comments in range\n return commands.setMark(commentMarkName, { comment });\n },\n removeComment:\n (commentId: string) =>\n ({ state, tr }: { state: any; tr: any }): boolean => {\n const { schema } = state;\n const commentMark = schema.marks.comment;\n\n // find all comment marks in document\n const commentMarks: any = findAllCommentMarks(state.doc);\n\n // if there are no comment marks in document return false\n if (!commentMarks.length) return false;\n const updateCommmentMark = (commentIds: [], resolved: any, mark: any) => {\n const newCommentIds = commentIds.filter((id: string) => id !== commentId).join(' ');\n if (!newCommentIds && !resolved) {\n // if there are no commentIds left remove the comment mark\n tr.removeMark(mark.from, mark.to, commentMark);\n return;\n }\n // otherwise create a new comment mark with the remaining commentIds\n const newCommentMark = createCommentMark(newCommentIds, schema, resolved);\n tr.addMark(mark.from, mark.to, newCommentMark);\n };\n\n const updateResolvedCommentMark = (resolvedIds: [], comment: any, mark: any) => {\n const newResolvedIds = resolvedIds.filter((id: string) => id !== commentId).join(' ');\n if (!newResolvedIds && !comment) {\n // if there are no resolvedIds left remove the comment mark\n tr.removeMark(mark.from, mark.to, commentMark);\n return;\n }\n // otherwise create a new comment mark with the remaining resolvedIds\n const newCommentMark = createCommentMark(comment, schema, newResolvedIds);\n tr.addMark(mark.from, mark.to, newCommentMark);\n };\n\n // for each comment mark check if it contains the commentId\n commentMarks.forEach((mark: any) => {\n const { comment, resolved } = mark.attrs;\n const commentIds = comment?.split(' ');\n const resolvedIds = resolved?.split(' ');\n if (commentIds?.includes(commentId)) {\n // if commentId is found remove it from comment mark\n updateCommmentMark(commentIds, resolved, mark);\n } else if (resolvedIds?.includes(commentId)) {\n // if commentId is not found check if it is in the resolvedIds\n updateResolvedCommentMark(resolvedIds, comment, mark);\n }\n });\n return true;\n },\n resolveComment: (commentId: string) => updateComment(commentId, true),\n unresolveComment: (commentId: string) => updateComment(commentId, false),\n };\n },\n\n addProseMirrorPlugins() {\n return [\n new Plugin({\n key: new PluginKey(commentMarkName),\n props: {\n handleClickOn: (view, pos, node, nodePos, event) => {\n if (this.storage.inlineCommentActive) {\n return true;\n }\n\n const nodeAtPosition = view.state.doc.nodeAt(pos);\n const commentMark = getCommentMark(nodeAtPosition);\n\n if (commentMark) {\n const commentIds = commentMark?.attrs?.comment ?? [];\n const [commentId = ''] = commentIds?.split?.(' ') ?? [];\n if (!commentId) return false;\n let element = view.nodeDOM(nodePos);\n\n const { node: domAtPos } = view.domAtPos(pos);\n\n if (element?.nodeName !== 'SPAN') {\n if (domAtPos.nodeName === '#text') {\n element = domAtPos.parentElement;\n } else {\n const textNode = this.options.getTextNodeFromPoint?.(\n event.clientX,\n event.clientY\n );\n element = textNode?.parentElement;\n }\n }\n\n if (this.storage.activeCommentId === commentId) {\n this.storage.activeCommentId = null;\n return false;\n }\n this.storage.activeCommentId = commentId;\n const editor = this.editor as any;\n\n this.options.emitter?.$emit?.('inline-comment-click', {\n node: element,\n commentId,\n editorId: editor.id,\n });\n return true;\n }\n return false;\n },\n\n handleDOMEvents: {\n cut: () => {\n this.storage.cut = true;\n },\n },\n\n transformPasted: (slice) => {\n const { content } = slice;\n const internalDrag = this.editor.storage.MouseOver.dragging;\n\n if (this.storage.cut) {\n this.storage.cut = false;\n return slice;\n }\n if (internalDrag) {\n this.editor.storage.MouseOver.dragging = false;\n return slice;\n }\n\n const hasCommentMark = hasCommentMarkInFragment(slice.content);\n\n if (!hasCommentMark) {\n return slice;\n }\n\n // Remove all marks from the pasted content\n const transformedContent: any = removeMarks(content);\n\n // Create a new slice with the transformed content\n return new Slice(transformedContent, slice.openStart, slice.openEnd);\n },\n },\n }),\n ];\n },\n});\n","import { mergeAttributes, Node, nodeInputRule } from '@tiptap/core';\nimport { Selection, NodeSelection } from '@tiptap/pm/state';\n\ndeclare module '@tiptap/core' {\n interface Commands {\n stImage: {\n /**\n * Add an image\n */\n setImage: (options: {\n src: string;\n alt?: string;\n title?: string;\n width: number;\n height: number;\n }) => ReturnType;\n\n setAllEditorImages: () => void;\n\n displayFullScreenImage: (id: string) => void;\n };\n }\n}\n\nexport const inputRegex = /(?:^|\\s)(!\\[(.+|:?)]\\((\\S+)(?:(?:\\s+)[\"'](\\S+)[\"'])?\\))$/;\n\nexport interface StImageOptions {\n plugins?: any[];\n unsplashBaseUrl: string;\n displayImageFullScreen?: any;\n getFileIdFromUrl?: any;\n unsplashObjectByImgSrc?: any;\n objectByImgSrc?: any;\n findChildren?: Function;\n inline?: boolean;\n allowBase64?: boolean;\n HTMLAttributes?: Record;\n tagName: string;\n}\n\nexport default Node.create({\n name: 'st-image',\n\n addOptions() {\n return {\n inline: false,\n allowBase64: false,\n HTMLAttributes: {},\n unsplashBaseUrl: '',\n tagName: 'st-image',\n };\n },\n\n inline() {\n return this.options.inline;\n },\n\n group() {\n return `stImageGroup ${this.options.inline ? 'inline' : 'block'}`;\n },\n\n draggable: true,\n\n addStorage() {\n return {\n images: [],\n };\n },\n\n addAttributes() {\n return {\n imgsrc: {\n default: null,\n },\n 'data-id': {\n default: null,\n },\n 'blur-hash': {\n default: null,\n },\n height: {\n default: 0,\n parseHTML: (el) => {\n return parseInt(el.getAttribute('height') ?? '', 10) || 0;\n },\n },\n width: {\n default: 0,\n parseHTML: (el) => {\n return parseInt(el.getAttribute('width') ?? '', 10) || 0;\n },\n },\n style: {\n default: '',\n parseHTML: (element) => {\n return `width: ${element.getAttribute('width') ?? 0}px`;\n },\n },\n alt: {\n default: null,\n },\n };\n },\n\n parseHTML() {\n return [\n {\n tag: this.options.allowBase64 ? 'img[src]' : 'st-image[imgsrc]:not([imgsrc^=\"data:\"])',\n },\n ];\n },\n\n renderHTML({ HTMLAttributes }) {\n return [\n this.options.tagName,\n mergeAttributes(this.options.HTMLAttributes || {}, HTMLAttributes),\n ];\n },\n\n addCommands() {\n return {\n setImage:\n (options) =>\n ({ commands }) => {\n return commands.insertContent({\n type: this.name,\n attrs: {\n ...options,\n style: `width: ${options?.width}px`,\n },\n });\n },\n\n setAllEditorImages: () => () => {\n this.storage.images = [];\n const { state } = this.editor;\n const { doc } = state;\n const nodesWithoutId = this.options.findChildren?.(doc, (node: any) => {\n return node.type.name === this.name || node.attrs.fileType?.includes?.('pdf');\n });\n\n nodesWithoutId.forEach(({ node, pos }: { node: any; pos: number }) => {\n const { imgsrc, alt } = node.attrs;\n if (node.attrs.fileType?.includes?.('pdf')) {\n const id = node.attrs.url?.split('/').pop();\n // pdf handler\n this.storage.images.push({\n id,\n ...node.attrs,\n type: node.attrs.fileType,\n name: node.attrs.fileName,\n pos,\n });\n } else if (imgsrc.includes(this.options.unsplashBaseUrl)) {\n const unsplashImg = this.options.unsplashObjectByImgSrc?.(imgsrc, alt);\n this.storage.images.push({\n ...unsplashImg,\n pos,\n });\n } else {\n const id = imgsrc.split('/').pop();\n const imageObject = { ...(this.options.objectByImgSrc?.(id, imgsrc, alt) || {}), pos };\n this.storage.images.push(imageObject);\n }\n });\n },\n\n displayFullScreenImage: (id) => () => {\n this.editor.commands.setAllEditorImages();\n if (this.editor.storage?.MouseOver?.dragHandleBlockId) {\n // @ts-ignore\n this.editor.commands.hideDragHandle();\n }\n\n let resourceId = '';\n // @ts-ignore\n if (this.editor.resourceType === 'card') {\n // @ts-ignore\n resourceId = this.editor.resourceId;\n // @ts-ignore\n } else if (this.editor.parentResourceType === 'card') {\n // @ts-ignore\n resourceId = this.editor.parentResourceId;\n }\n\n this.options.displayImageFullScreen?.(\n this.editor.storage['st-image'].images,\n id,\n resourceId\n );\n },\n };\n },\n\n addKeyboardShortcuts() {\n return {\n Space: ({ editor }) => {\n const { state } = editor.view;\n const { selection } = state;\n const near = Selection.near(selection.$from) as NodeSelection;\n if (near instanceof NodeSelection) {\n const { node } = near;\n if (node.type.name === this.name) {\n const id = this.options.getFileIdFromUrl?.(node.attrs.imgsrc);\n this.editor.commands.displayFullScreenImage(id);\n return true;\n }\n }\n return false;\n },\n };\n },\n\n addInputRules() {\n return [\n nodeInputRule({\n find: inputRegex,\n type: this.type,\n getAttributes: (match) => {\n const [, , alt, src, title, width, height] = match;\n\n return { src, alt, title, width, height };\n },\n }),\n ];\n },\n\n addProseMirrorPlugins() {\n if (!this.options.plugins) {\n return [];\n }\n return [...this.options.plugins.map((plugin: any) => plugin({ editor: this.editor }))];\n },\n});\n","import { Node, nodeInputRule, mergeAttributes } from '@tiptap/core';\n\nexport interface StPlaceholderOptions {\n inline?: boolean;\n HTMLAttributes?: Record;\n getRandId?: Function;\n stImageDefaultWidth?: number;\n stImageDefaultHeight?: number;\n corsProxyBaseUrl?: string;\n}\n\nexport const inputRegex = /(?:^|\\s)(!\\[(.+|:?)]\\((\\S+)(?:(?:\\s+)[\"'](\\S+)[\"'])?\\))$/;\n\nexport default Node.create({\n name: 'st-image-placeholder',\n draggable: false,\n\n addAttributes() {\n return {\n imgsrc: {\n default: '',\n },\n uploadId: {\n default: '',\n },\n width: {\n default: undefined,\n },\n height: {\n default: undefined,\n },\n };\n },\n addOptions() {\n return {\n inline: false,\n HTMLAttributes: {},\n };\n },\n\n inline() {\n return this.options.inline;\n },\n\n group() {\n return `stImageGroup ${this.options.inline ? 'inline' : 'block'}`;\n },\n\n parseHTML() {\n return [\n { tag: 'st-image-placeholder' },\n {\n tag: 'img[src]',\n getAttrs: (el: string | HTMLElement) => {\n // @ts-ignore\n let { width, height } = el;\n if ((width || height) === 0) {\n width = this.options.stImageDefaultWidth;\n height = this.options.stImageDefaultHeight;\n }\n const url = el instanceof HTMLElement ? el.getAttribute('src') : '';\n const src = url?.startsWith?.('data:')\n ? url\n : `${this.options.corsProxyBaseUrl}${encodeURIComponent(url ?? '')}`;\n return {\n imgsrc: src,\n uploadId: this.options.getRandId?.(),\n width,\n height,\n };\n },\n },\n ];\n },\n\n renderHTML({ HTMLAttributes }) {\n return ['div', mergeAttributes(this.options.HTMLAttributes ?? {}, HTMLAttributes)];\n },\n\n addInputRules() {\n return [\n nodeInputRule({\n find: inputRegex,\n type: this.type,\n getAttributes: (match) => {\n const [, , uploadId] = match;\n\n return { uploadId };\n },\n }),\n ];\n },\n});\n","import { mergeAttributes, Node, nodePasteRule } from '@tiptap/core';\nimport { Node as ProseMirrorNode } from '@tiptap/pm/model';\n\nexport interface InternalLinkOptions {\n renderLabel: (props: { node: ProseMirrorNode }) => string;\n linkOnPaste: boolean;\n internalLinkRegEx: RegExp;\n plugins?: any[];\n generateResourceData: Function;\n}\n\ndeclare module '@tiptap/core' {\n interface Commands {\n addInternalLink: {\n /**\n * Add an image\n */\n addInternalLink: (options: { 'data-url': string; name?: string }) => ReturnType;\n };\n }\n}\n\nconst getAttribute = (\n attr: string,\n el: HTMLElement,\n firstChildFallback = false\n): string | null | undefined => {\n const elementsAttr = el.getAttribute(attr);\n if (firstChildFallback) return elementsAttr ?? el.firstElementChild?.getAttribute(attr);\n return elementsAttr ?? null;\n};\n\nexport default Node.create({\n name: 'internal-link',\n\n group: 'inline',\n inline: true,\n selectable: true,\n atom: true,\n\n addOptions() {\n return {\n ...this.parent?.(),\n renderLabel() {\n return '';\n },\n linkOnPaste: true,\n };\n },\n\n addAttributes() {\n return {\n 'data-url': {\n default: null,\n parseHTML: (element) => getAttribute('data-url', element, true),\n },\n\n name: {\n default: null,\n parseHTML: (element) => getAttribute('name', element, true),\n },\n\n 'data-icon-src': {\n default: null,\n parseHTML: (element) => getAttribute('data-icon-src', element, true),\n },\n\n 'data-icon-type': {\n default: null,\n parseHTML: (element) => getAttribute('data-icon-type', element),\n },\n\n 'data-icon-color': {\n default: null,\n parseHTML: (element) => getAttribute('data-icon-color', element),\n },\n\n 'data-additional-icon-src': {\n default: null,\n parseHTML: (element) => getAttribute('data-additional-icon-src', element),\n },\n\n 'data-additional-icon-type': {\n default: null,\n parseHTML: (element) => getAttribute('data-additional-icon-type', element),\n },\n\n 'data-additional-icon-color': {\n default: null,\n parseHTML: (element) => getAttribute('data-additional-icon-color', element),\n },\n\n // this attribute is used to indicate that the link need to get its data immediately\n 'data-get-resource': {\n default: null,\n parseHTML(element) {\n const getResource = element.getAttribute('data-get-resource');\n return !!getResource || null;\n },\n },\n };\n },\n\n parseHTML() {\n return [\n {\n tag: 'a[data-type=\"internal-link\"]',\n priority: 60,\n },\n {\n tag: 'span.internal-link',\n },\n {\n tag: 'internal-link',\n },\n ];\n },\n\n addCommands() {\n return {\n addInternalLink:\n (props: any) =>\n ({ commands }) => {\n return commands.insertContent({\n type: this.name,\n attrs: {\n ...props,\n },\n });\n },\n };\n },\n\n renderHTML({ node, HTMLAttributes }) {\n return [\n 'internal-link',\n mergeAttributes({ 'data-type': this.name }, HTMLAttributes),\n this.options.renderLabel({\n node,\n }),\n ];\n },\n\n addPasteRules() {\n return [\n nodePasteRule({\n find: this.options.internalLinkRegEx,\n type: this.type,\n getAttributes: (match) => {\n let [url] = match;\n const secureProtocol = 'https://';\n // check if url contains protocol\n url = !url.startsWith(secureProtocol) ? `${secureProtocol}${url}` : url;\n const { name }: any = this.options.generateResourceData(url);\n return {\n 'data-url': url,\n name,\n 'data-get-resource': true,\n };\n },\n }),\n ];\n },\n\n addProseMirrorPlugins() {\n if (!this.options.plugins) {\n return [];\n }\n return [...this.options.plugins.map((plugin: any) => plugin({ type: this.type }))];\n },\n});\n","import { mergeAttributes } from '@tiptap/core';\nimport { Mention, MentionOptions } from '@tiptap/extension-mention';\n\ndeclare module '@tiptap/core' {\n interface Commands {\n userMention: {\n setMentionDropdownActive: (value: boolean) => ReturnType;\n };\n }\n}\n\nexport default Mention.extend({\n selectable: true,\n\n addOptions(): any {\n const parentOptions = this.parent?.() ?? ({} as MentionOptions);\n const { suggestion } = parentOptions;\n if (suggestion) {\n suggestion.command = ({ editor, range, props }: { editor: any; range: any; props: any }) => {\n // increase range.to by one when the next node is of type \"text\"\n // and starts with a space character\n const nodeAfter = editor.view.state.selection.$to.nodeAfter;\n const overrideSpace = nodeAfter?.text?.startsWith(' ');\n\n if (overrideSpace) {\n range.to += 1;\n }\n editor\n .chain()\n .focus()\n .insertContentAt(range, [\n {\n type: props.nodeName,\n attrs: props,\n },\n {\n type: 'text',\n text: ' ',\n },\n ])\n .run();\n\n window.getSelection()?.collapseToEnd();\n };\n }\n return {\n ...parentOptions,\n ...suggestion,\n };\n },\n\n addStorage() {\n return {\n mentionDropdownActive: false,\n };\n },\n\n parseHTML() {\n return [\n {\n tag: 'span.user-mention',\n },\n {\n tag: 'user-mention',\n },\n ];\n },\n\n renderHTML({ HTMLAttributes }) {\n return [\n 'user-mention',\n mergeAttributes({ 'data-type': this.name }, this.options.HTMLAttributes, HTMLAttributes),\n ];\n },\n\n addAttributes() {\n return {\n userId: {\n default: null,\n parseHTML: (element) => {\n const userId =\n element.getAttribute('user-id') ?? element.firstElementChild?.getAttribute('user-id');\n return userId;\n },\n renderHTML: (attributes) => {\n if (!attributes.userId) {\n return {};\n }\n\n return {\n 'user-id': attributes.userId,\n };\n },\n },\n mentionTime: {\n default: null,\n parseHTML: (element) => {\n const mentionTime =\n element.getAttribute('mention-time') ??\n element.firstElementChild?.getAttribute('mention-time');\n return mentionTime;\n },\n renderHTML: (attributes) => {\n if (!attributes.mentionTime) {\n return {};\n }\n\n return {\n 'mention-time': attributes.mentionTime,\n };\n },\n },\n userValue: {\n default: null,\n parseHTML: (element) => {\n const userValue =\n element.getAttribute('user-value') ??\n element.firstElementChild?.getAttribute('user-value');\n return userValue;\n },\n renderHTML: (attributes) => {\n if (!attributes.userValue) {\n return {};\n }\n\n return {\n 'user-value': attributes.userValue,\n };\n },\n },\n denotationChar: {\n default: null,\n parseHTML: (element) => {\n const denotationChar =\n element.getAttribute('denotation-char') ??\n element.firstElementChild?.getAttribute('denotation-char');\n return denotationChar;\n },\n renderHTML: (attributes) => {\n if (!attributes.denotationChar) {\n return { 'denotation-char': '@' };\n }\n\n return {\n 'denotation-char': attributes.denotationChar,\n };\n },\n },\n };\n },\n\n addCommands() {\n return {\n setMentionDropdownActive: (value: boolean) => () => {\n this.storage.mentionDropdownActive = value;\n return true;\n },\n };\n },\n\n addProseMirrorPlugins() {\n return [];\n },\n});\n","import { Decoration, DecorationSet } from '@tiptap/pm/view';\nimport { EditorState } from '@tiptap/pm/state';\nimport { ySyncPluginKey, relativePositionToAbsolutePosition } from 'y-prosemirror';\n\ntype DecorationBuilderProps = {\n state: EditorState;\n from: number;\n to: number;\n id: string;\n};\n\nexport const createPreCommentHighlightDecoration = ({\n state,\n from,\n to,\n id,\n}: DecorationBuilderProps) => {\n const YState = ySyncPluginKey.getState(state);\n\n let resolvedFrom: Record | number | null;\n let resolvedTo: Record | number | null;\n\n if (typeof from === 'number' || typeof to === 'number') {\n resolvedFrom = from;\n resolvedTo = to;\n } else {\n resolvedFrom =\n relativePositionToAbsolutePosition(YState.doc, YState.type, from, YState.binding.mapping) ??\n -1;\n resolvedTo =\n relativePositionToAbsolutePosition(YState.doc, YState.type, to, YState.binding.mapping) ?? -1;\n }\n\n const decoration = Decoration.inline(\n Number(resolvedFrom),\n Number(resolvedTo),\n {\n nodeName: 'span',\n class: 'pre-comment-highlight',\n 'data-highlighted': id,\n },\n {\n inclusiveStart: false,\n inclusiveEnd: false,\n }\n );\n\n decoration.spec['data-highlighted'] = id;\n\n const decorationSet = DecorationSet.create(state.doc, [decoration]);\n\n return decorationSet || DecorationSet.empty;\n};\n","import { Plugin, PluginKey } from '@tiptap/pm/state';\nimport { DecorationSet } from '@tiptap/pm/view';\nimport { ySyncPluginKey, absolutePositionToRelativePosition } from 'y-prosemirror';\nimport { recreateTransform } from '@fellow/prosemirror-recreate-transform';\nimport { createPreCommentHighlightDecoration } from './preCommentHighlightDecoration';\n\nconst key = new PluginKey('preCommentHighlight');\n\nexport default new Plugin({\n key,\n state: {\n init() {\n return {\n decoration: DecorationSet.empty,\n yjsFrom: null,\n yjsTo: null,\n };\n },\n\n apply(tr, stateValue, _oldState, newState) {\n const meta = tr.getMeta('preCommentHighlight');\n const [decoration] = stateValue.decoration.find();\n const { preCommentRange, highlight } = tr.getMeta('preCommentHighlight') || {};\n const YState = ySyncPluginKey.getState(newState);\n const collabEnabled = !!YState;\n\n switch (meta?.action) {\n case 'add':\n if (collabEnabled) {\n const fromPos = absolutePositionToRelativePosition(\n preCommentRange.from,\n YState.type,\n YState.binding.mapping\n );\n const toPos = absolutePositionToRelativePosition(\n preCommentRange.to,\n YState.type,\n YState.binding.mapping\n );\n return {\n ...stateValue,\n decoration: createPreCommentHighlightDecoration({\n state: newState,\n from: fromPos,\n to: toPos,\n id: highlight || decoration?.spec['data-highlighted'],\n }),\n yjsFrom: fromPos,\n yjsTo: toPos,\n };\n }\n return {\n ...stateValue,\n decoration: createPreCommentHighlightDecoration({\n state: newState,\n from: preCommentRange.from,\n to: preCommentRange.to,\n id: highlight || decoration?.spec['data-highlighted'],\n }),\n yjsFrom: null,\n yjsTo: null,\n };\n case 'remove':\n return {\n decoration: DecorationSet.empty,\n yjsFrom: null,\n yjsTo: null,\n };\n default:\n if (decoration && decoration.from !== 0 && decoration.to !== 0) {\n if (!collabEnabled) {\n return {\n ...stateValue,\n decoration: stateValue.decoration.map(tr.mapping, tr.doc),\n };\n }\n const mapping = recreateTransform(tr.before, tr.doc, {\n complexSteps: false,\n wordDiffs: false,\n simplifyDiff: true,\n }).mapping;\n\n return {\n ...stateValue,\n decoration: stateValue.decoration.map(mapping, tr.doc),\n };\n }\n return {\n decoration: DecorationSet.empty,\n yjsFrom: null,\n yjsTo: null,\n };\n }\n },\n },\n props: {\n decorations(state) {\n return this.getState(state)?.decoration;\n },\n },\n});\n","import { Extension } from '@tiptap/core';\nimport precommentHighlightPlugin from './precommentHighlightPlugin';\n\ndeclare module '@tiptap/core' {\n interface Commands {\n highlight: {\n /**\n * Set a highlight mark\n */\n setPreCommentHighlight: (attributes?: any) => ReturnType;\n /**\n * Unset a highlight mark\n */\n removePreCommentHighlightSelection: () => ReturnType;\n };\n }\n}\n\nconst PreCommentHighlight = Extension.create({\n name: 'precommenthighlight',\n\n addProseMirrorPlugins() {\n return [precommentHighlightPlugin];\n },\n\n addCommands() {\n return {\n setPreCommentHighlight:\n (attributes) =>\n ({ tr, dispatch }) => {\n tr = tr.setMeta('preCommentHighlight', { ...attributes, action: 'add' });\n\n if (dispatch) {\n dispatch(tr);\n }\n return true;\n },\n removePreCommentHighlightSelection:\n () =>\n ({ tr, dispatch }) => {\n tr = tr.setMeta('preCommentHighlight', {\n action: 'remove',\n });\n\n if (dispatch) {\n dispatch(tr);\n }\n return true;\n },\n };\n },\n});\n\nexport default PreCommentHighlight;\n","import TaskItem from '@tiptap/extension-task-item';\n\nfunction setCheckboxChecked(checkbox: HTMLInputElement) {\n checkbox.setAttribute('checked', 'checked');\n}\n\nfunction setCheckboxUnchecked(checkbox: HTMLInputElement) {\n checkbox.removeAttribute('checked');\n}\n\nfunction handleCheckboxChange(\n checkbox: HTMLInputElement | null,\n node: any,\n editor: any,\n getPos: any,\n onReadOnlyChecked: any\n) {\n // if the editor isn't editable and we don't have a handler for\n // readonly checks we have to undo the latest change\n if (!editor.isEditable && !onReadOnlyChecked && checkbox) {\n checkbox.checked = !checkbox.checked;\n return;\n }\n\n const { checked } = checkbox ?? {};\n\n if (editor.isEditable && typeof getPos === 'function') {\n editor\n .chain()\n .focus(undefined, { scrollIntoView: false })\n .command(({ tr }: { tr: any }) => {\n const position = getPos();\n const currentNode = tr.doc.nodeAt(position);\n tr.setNodeMarkup(position, undefined, { ...currentNode?.attrs, checked });\n return true;\n })\n .run();\n }\n\n if (!editor.isEditable && onReadOnlyChecked) {\n if (!onReadOnlyChecked(node, checked) && checkbox) {\n checkbox.checked = !checkbox.checked;\n }\n }\n}\n\nexport default TaskItem.extend({\n addKeyboardShortcuts() {\n const shortcuts = {\n Enter: () => {\n if (this.editor.storage.mention.mentionDropdownActive) {\n return false;\n }\n return this.editor.commands.splitListItem(this.name);\n },\n 'Shift-Tab': () => this.editor.commands.liftListItem(this.name),\n Backspace: ({ editor }: { editor: any }) => {\n if (editor.isActive('taskItem')) {\n const { selection } = editor.state;\n const { $from } = selection;\n const { parentOffset } = $from;\n\n // if the cursor is at the beginning of the task item, we want to lift the item\n if (parentOffset === 0) {\n return (\n this.editor.commands.joinBackward() ||\n this.editor.commands.liftListItem(this.name) ||\n true\n );\n }\n }\n return false;\n },\n };\n\n if (!this.options.nested) {\n return shortcuts;\n }\n\n return {\n ...shortcuts,\n Tab: ({ editor }) => {\n if (editor.storage.mention.mentionDropdownActive) {\n return false;\n }\n if (editor.isActive('taskItem')) {\n return this.editor.commands.sinkListItem(this.name) || true;\n }\n return this.editor.commands.sinkListItem(this.name);\n },\n };\n },\n addNodeView() {\n // this method is fully copied from the original TaskItem extension except for the line 33, additional tab index attribute\n return ({ node, HTMLAttributes, getPos, editor }) => {\n const listItem = document.createElement('li');\n const checkboxWrapper = document.createElement('label');\n const checkboxStyler = document.createElement('span');\n const checkbox = document.createElement('input');\n const content = document.createElement('div');\n\n checkboxWrapper.contentEditable = 'false';\n checkbox.type = 'checkbox';\n // only additional attributes\n checkbox.tabIndex = -1;\n checkbox.addEventListener('change', (event) => {\n return handleCheckboxChange(\n event.target as HTMLInputElement,\n node,\n editor,\n getPos,\n this.options.onReadOnlyChecked\n );\n });\n\n Object.entries(this.options.HTMLAttributes).forEach(([key, value]) => {\n listItem.setAttribute(key, value);\n });\n\n listItem.dataset.checked = node.attrs.checked;\n if (node.attrs.checked) {\n checkbox.setAttribute('checked', 'checked');\n }\n\n checkboxWrapper.append(checkbox, checkboxStyler);\n listItem.append(checkboxWrapper, content);\n\n Object.entries(HTMLAttributes).forEach(([key, value]) => {\n listItem.setAttribute(key, value);\n });\n\n return {\n dom: listItem,\n contentDOM: content,\n update: (updatedNode) => {\n if (updatedNode.type !== this.type) {\n return false;\n }\n\n listItem.dataset.checked = updatedNode.attrs.checked;\n if (updatedNode.attrs.checked) {\n setCheckboxChecked(checkbox);\n } else {\n setCheckboxUnchecked(checkbox);\n }\n\n return true;\n },\n };\n };\n },\n});\n","import { mergeAttributes } from '@tiptap/core';\nimport { DOMOutputSpec } from '@tiptap/pm/model';\n\nexport default {\n renderText({ node }: { node: any }): string {\n return `${node.attrs.name} (${node.attrs['data-url']})`;\n },\n renderHTML({ node, HTMLAttributes }: { node: any; HTMLAttributes: any }): DOMOutputSpec {\n return [\n 'a',\n mergeAttributes({ 'data-type': 'internal-link' }, HTMLAttributes, {\n href: node.attrs['data-url'],\n }),\n node.attrs.name,\n ];\n },\n};\n","import { Extension } from '@tiptap/core';\n\nexport interface ImageUploaderPluginOptions {\n acceptMimes: string[];\n\n upload(\n editorId: string,\n file: File | string,\n resourceType: string,\n parentResourceType: string,\n parentResourceId: string,\n id?: string\n ): Promise;\n\n id(): string;\n\n ignoreDomains: string[];\n\n editorId: string;\n editor: any;\n resourceId: string;\n resourceType: string;\n parentResourceType: string;\n parentResourceId: string;\n emitter?: any;\n preventInsertFiles?: boolean;\n}\n\nexport interface ImageUploaderOptions {\n getRandId: () => string;\n imageUploader: any;\n getFileCache: any;\n}\n\ndeclare module '@tiptap/core' {\n interface Commands {\n imageUploadExtension: {\n /** Add an image */\n uploadImage: (options: { file: File }) => ReturnType;\n };\n }\n}\n\nexport const ImageUploadExtension = ({\n getRandId,\n getFileCache,\n imageUploader,\n}: ImageUploaderOptions) =>\n Extension.create({\n name: 'imageUploadExtension',\n\n addOptions() {\n return {\n id: () => getRandId(),\n acceptMimes: [\n 'image/jpeg',\n 'image/gif',\n 'image/png',\n 'image/jpg',\n 'image/avif',\n 'image/webp',\n 'image/svg+xml',\n ],\n upload: () => Promise.reject(new Error('【ImageUploadExtension】upload')),\n ignoreDomains: [],\n editorId: '',\n resourceId: '',\n resourceType: '',\n parentResourceType: '',\n parentResourceId: '',\n editor: {} as any,\n };\n },\n\n addCommands() {\n return {\n uploadImage:\n (options) =>\n ({ tr }) => {\n tr.setMeta('uploadImages', options.file);\n return true;\n },\n getFileCache: (key: string) => () => {\n return getFileCache(key);\n },\n };\n },\n\n addProseMirrorPlugins() {\n const options = {\n ...this.options,\n resourceId: this.options.resourceId,\n resourceType: this.options.resourceType,\n editor: this.editor as any,\n };\n return [imageUploader(options)];\n },\n });\n","import { Extension } from '@tiptap/core';\n\nexport default Extension.create({\n name: 'resizing',\n addStorage() {\n return {\n isResizing: false,\n };\n },\n});\n","import { Extension } from '@tiptap/core';\nimport { Plugin, PluginKey } from '@tiptap/pm/state';\nimport { VueRenderer } from '@tiptap/vue-3';\nimport tippy, { followCursor } from 'tippy.js';\n\nlet tippyRef = null;\nlet lastHoverElementId = null;\nlet hoverComponent = null;\nlet throttleTimeout = null;\n\nlet linkComponent = null;\nlet linkTippy = null;\n\nexport function resetLinkVariables() {\n linkComponent = null;\n linkTippy = null;\n}\n\nexport const linkHover = (element, editor, linkTooltipComponent) => {\n if (linkComponent || linkTippy) return;\n\n const text = element.innerText;\n const url = element.getAttribute('href');\n const from = editor.view.posAtDOM(element);\n const to = from + text?.length;\n\n // create LinkTooltip component instance\n linkComponent = new VueRenderer(linkTooltipComponent, {\n props: {\n url,\n text,\n range: {\n from,\n to,\n },\n editorId: editor.id,\n },\n editor,\n });\n\n // use tippy to attach component on body element\n linkTippy = tippy(element, {\n appendTo: document.body,\n content: linkComponent.ref.$el,\n showOnCreate: true,\n interactive: true,\n trigger: 'mouseenter',\n maxWidth: 'none',\n animation: 'none',\n role: 'poper',\n onHide() {\n setTimeout(() => {\n editor.commands.hideLinkTooltip();\n }, 0);\n },\n followCursor: 'horizontal',\n plugins: [followCursor],\n });\n};\n\nexport const getEditorMidlePoint = (editor) => {\n const rootElement = editor.view.dom;\n const rootBoundingRects = rootElement.getBoundingClientRect();\n\n return rootBoundingRects.left + rootBoundingRects.width / 2;\n};\n\nexport const blockPosAtCoords = (coords, view) => {\n const pos = view.posAtCoords(coords);\n let node = view.domAtPos(pos.pos);\n\n node = node.node;\n while (node && node.parentNode) {\n if (node.parentNode?.classList?.contains('ProseMirror')) {\n break;\n }\n node = node.parentNode;\n }\n\n if (node && node.nodeType === 1) {\n const desc = view.docView.nearestDesc(node, true);\n if (!(!desc || desc === view.docView)) {\n return desc.posBefore;\n }\n }\n return null;\n};\n\nexport const getBlockElementFromCords = (x, y, getTextNodeFromPoint) => {\n let node = getTextNodeFromPoint(x, y);\n if (!node) {\n node = document.elementFromPoint(x, y);\n }\n\n // check if node is inside shadow dom (web component)\n if (node?.getRootNode?.() instanceof ShadowRoot) {\n node = node.getRootNode().host;\n }\n\n while (node && node.parentNode) {\n if (node.parentNode?.classList?.contains('ProseMirror')) {\n break;\n }\n node = node.parentNode;\n }\n\n if (node && node.nodeType === 1) {\n // check if target node is resizable node view\n if (\n node.getAttribute('data-node-view-wrapper') !== null &&\n node.className.includes('resizable-wrapper')\n ) {\n // get block node from resizable node view\n return node.querySelector('[data-block-id]');\n }\n return node;\n }\n return null;\n};\n\nexport const hover = (element, editor, blockHoverMenuComponent, draggable) => {\n if (!element) return false;\n const blockId = element.getAttribute('data-block-id');\n if (!blockId || !draggable) return false;\n if (blockId === lastHoverElementId) return false;\n\n lastHoverElementId = blockId;\n hoverComponent?.ref?.$destroy?.();\n\n hoverComponent = new VueRenderer(blockHoverMenuComponent, {\n props: {\n element,\n editorId: editor.id,\n draggable,\n },\n editor,\n });\n\n const lineHeight = parseInt(getComputedStyle(element).lineHeight);\n const placement = !lineHeight || element.clientHeight > lineHeight ? 'left-start' : 'left';\n\n if (!tippyRef?.state?.isDestroyed) {\n // destroy tippy instance only if it is not already destroyed\n tippyRef?.destroy?.();\n }\n editor.commands.setDragHandleBlockId({ blockId });\n tippyRef = tippy(element, {\n appendTo: editor.view.dom.parentNode,\n popperOptions: {\n boundary: editor.view.dom,\n },\n content: hoverComponent.ref.$el,\n aria: {\n expanded: false,\n },\n showOnCreate: true,\n interactive: true,\n placement,\n role: 'poper',\n maxWidth: 'none',\n animation: 'none',\n hideOnClick: false,\n triggerTarget: editor.view.dom,\n zIndex: 5,\n onHide: () => {\n if (editor.storage.MouseOver.dragHandleBlockId) {\n editor.commands.setDragHandleBlockId({ blockId: '' });\n }\n },\n });\n return true;\n};\n\nexport const isLinkElementValid = (linkElement) => {\n if (linkElement.nodeName === 'A') {\n if (linkElement.getAttribute('data-internal-link')) return false;\n return !linkElement.hasAttribute('disable-hover-menu');\n }\n return false;\n};\n\nexport const findLinkElement = (element) => {\n let linkElement = element;\n while (linkElement && linkElement?.getAttribute?.('data-block-id') === null) {\n if (isLinkElementValid(linkElement)) {\n return linkElement;\n }\n linkElement = linkElement.parentNode;\n }\n return null;\n};\n\nexport const handleMouseOver = (\n event,\n editor,\n linkTooltipComponent,\n blockHoverMenuComponent,\n getTextNodeFromPoint,\n draggable\n) => {\n const { from, to } = editor.view.state.selection;\n if (!(from !== to && editor.isFocused)) {\n const element = document.elementFromPoint(event.x, event.y);\n\n const linkElement = findLinkElement(element);\n\n if (linkElement) {\n linkHover(linkElement, editor, linkTooltipComponent);\n return true;\n }\n }\n\n const xMiddlePoint = getEditorMidlePoint(editor);\n const blockElement = getBlockElementFromCords(xMiddlePoint, event.y, getTextNodeFromPoint);\n return hover(blockElement, editor, blockHoverMenuComponent, draggable);\n};\n\nexport const MouseOver = ({\n linkTooltipComponent,\n blockHoverMenuComponent,\n getTextNodeFromPoint,\n draggable,\n}) =>\n Extension.create({\n name: 'MouseOver',\n\n addStorage() {\n return {\n dragHandleBlockId: '',\n dragging: false,\n };\n },\n\n onDestroy() {\n clearTimeout(throttleTimeout);\n if (tippyRef) tippyRef.destroy?.();\n this.editor.commands.hideLinkTooltip();\n },\n\n addCommands() {\n return {\n setDragHandleBlockId: (attributes) => () => {\n this.storage.dragHandleBlockId = attributes.blockId;\n },\n\n hideDragHandle: () => () => {\n if (throttleTimeout) {\n clearTimeout(throttleTimeout);\n }\n lastHoverElementId = null;\n this.storage.dragHandleBlockId = '';\n tippyRef?.destroy?.();\n hoverComponent?.ref?.$destroy?.();\n },\n\n hideLinkTooltip: () => () => {\n if (linkComponent) linkComponent?.destroy();\n if (linkTippy) linkTippy?.destroy?.();\n resetLinkVariables();\n },\n\n hideBlockMenu: () => () => {\n if (this.editor.storage.MouseOver.dragHandleBlockId) {\n this.editor.commands.hideDragHandle();\n this.editor.commands.setDragHandleBlockId({ blockId: '' });\n }\n },\n };\n },\n\n addProseMirrorPlugins() {\n return [\n new Plugin({\n key: new PluginKey('hover'),\n props: {\n handleDOMEvents: {\n mousemove: (view, event) => {\n // do nothing if the editor is not editable\n if (!this.editor.view.editable) return false;\n\n if (throttleTimeout) {\n clearTimeout(throttleTimeout);\n }\n // when resizing block, do not show hover menu\n if (this.editor.storage.resizing.isResizing) return false;\n\n throttleTimeout = setTimeout(\n () =>\n handleMouseOver(\n event,\n this.editor,\n linkTooltipComponent,\n blockHoverMenuComponent,\n getTextNodeFromPoint,\n draggable\n ),\n 10\n );\n return true;\n },\n },\n },\n }),\n ];\n },\n });\n","import { store } from '@/store';\n\nconst unsplashObjectByImgSrc = (url, name = '') => {\n const unsplashId = url ? url.substring(url.indexOf('.com/') + 5, url.lastIndexOf('?')) : '';\n const img = {\n id: `unsplash-${unsplashId}`,\n name: name,\n team_id: store.getters.getTeamID,\n time_created: Math.floor(Date.now() / 1000),\n type: 'image/jpg',\n url,\n user_id: store.getters.getUser.id,\n };\n return img;\n};\n\nconst objectByImgSrc = (id, url, name = '') => {\n return {\n id,\n name,\n team_id: store.getters.getTeamID,\n time_created: Math.floor(Date.now() / 1000),\n type: 'image/jpg',\n url,\n user_id: store.getters.getUser.id,\n };\n};\n\nexport { unsplashObjectByImgSrc, objectByImgSrc };\n","import { Editor } from '@tiptap/core';\nimport { MarkType } from '@tiptap/pm/model';\nimport { Plugin, PluginKey } from '@tiptap/pm/state';\nimport { find } from 'linkifyjs';\nimport { isInternalLink } from '@/utilities/internalLink';\n\ntype PasteHandlerOptions = {\n editor: Editor;\n type: MarkType;\n linkOnPaste?: boolean;\n};\n\nexport function pasteHandler(options: PasteHandlerOptions): Plugin {\n return new Plugin({\n key: new PluginKey('handlePasteLink'),\n props: {\n handlePaste: (view, event, slice) => {\n const { state } = view;\n const { selection } = state;\n\n // Do not proceed if in code block.\n if (state.doc.resolve(selection.from).parent.type.spec.code) {\n return false;\n }\n\n let textContent = '';\n\n slice.content.forEach((node) => {\n textContent += node.textContent;\n });\n\n let isAlreadyLink = false;\n\n slice.content.descendants((node) => {\n if (node.marks.some((mark) => mark.type.name === options.type.name)) {\n isAlreadyLink = true;\n }\n });\n\n if (isAlreadyLink) {\n return;\n }\n\n const link = find(textContent).find((item) => item.isLink && item.value === textContent);\n\n if (isInternalLink(link?.value)) {\n return false;\n }\n\n if (!selection.empty && options.linkOnPaste) {\n const pastedLink = link?.href ?? null;\n\n if (pastedLink) {\n options.editor.commands.setMark(options.type, { href: pastedLink });\n\n return true;\n }\n }\n\n const firstChildIsText = slice.content.firstChild?.type.name === 'text';\n const firstChildContainsLinkMark = slice.content.firstChild?.marks.some(\n (mark) => mark.type.name === options.type.name\n );\n\n if ((firstChildIsText && firstChildContainsLinkMark) || !options.linkOnPaste) {\n return false;\n }\n\n if (link && selection.empty) {\n options.editor.commands.insertContent(`${link.href}`);\n\n return true;\n }\n\n const { tr } = state;\n let deleteOnly = false;\n\n if (!selection.empty) {\n deleteOnly = true;\n\n tr.delete(selection.from, selection.to);\n }\n\n let currentPos = selection.from;\n let fragmentLinks = [];\n\n slice.content.forEach((node) => {\n fragmentLinks = find(node.textContent);\n\n tr.insert(currentPos - 1, node);\n\n if (fragmentLinks.length > 0) {\n deleteOnly = false;\n\n fragmentLinks.forEach((fragmentLink) => {\n const linkStart = currentPos + fragmentLink.start;\n const linkEnd = currentPos + fragmentLink.end;\n const hasMark = tr.doc.rangeHasMark(linkStart, linkEnd, options.type);\n\n if (!hasMark) {\n tr.addMark(linkStart, linkEnd, options.type.create({ href: fragmentLink.href }));\n }\n });\n }\n currentPos += node.nodeSize;\n });\n\n const hasFragmentLinks = fragmentLinks.length > 0;\n\n if (tr.docChanged && !deleteOnly && hasFragmentLinks) {\n options.editor.view.dispatch(tr);\n\n return true;\n }\n\n return false;\n },\n },\n });\n}\n","import { pasteHandler } from '../plugins/LinkPasteHandler';\n\nexport const replaceHandlePastePlugin = (\n parentPlugins: any[],\n editor: any,\n type: any,\n linkOnPaste: boolean\n) => {\n const index = parentPlugins.findIndex((plugin) => {\n // @ts-ignore\n const key = plugin.spec.key.key || '';\n return key.startsWith('handlePasteLink');\n });\n\n if (index) {\n parentPlugins.splice(index, 1);\n }\n\n const plugins = [];\n plugins.push(...parentPlugins);\n\n if (linkOnPaste) {\n plugins.push(\n pasteHandler({\n editor,\n type,\n linkOnPaste,\n })\n );\n }\n\n return plugins;\n};\n","import { getAttributes } from '@tiptap/core';\nimport { MarkType } from '@tiptap/pm/model';\nimport { Plugin, PluginKey } from '@tiptap/pm/state';\nimport { isInternalLink } from '@/utilities/internalLink';\n\ntype ClickHandlerOptions = {\n type: MarkType;\n emitter: any;\n editor: any;\n};\n\nexport function clickHandler(options: ClickHandlerOptions): Plugin {\n return new Plugin({\n key: new PluginKey('handleClickLink'),\n props: {\n handleClick: (view, pos, event: MouseEvent) => {\n if (event.button !== 0) return false;\n\n const link = findLinkElement(event.target as HTMLElement);\n if (!link || link.nodeName.toLowerCase() !== 'a') return false;\n\n const attrs = getAttributes(view.state, options.type.name);\n const href = link?.href ?? attrs.href;\n const target = link?.getAttribute('target') ?? attrs.target;\n\n if (shouldHandleInternalLink(href)) {\n options.emitter.$emit('scrollToAnchor', { editorId: options.editor.id, url: href });\n return false;\n }\n\n if (href) {\n if (view.editable) {\n window.open(href, target);\n }\n return true;\n }\n\n return false;\n },\n },\n });\n}\n\nexport function findLinkElement(element: HTMLElement): HTMLLinkElement | null {\n if (element.nodeName.toLowerCase() === 'a') {\n return element as HTMLLinkElement;\n }\n\n let currentElement = element.parentElement;\n while (\n currentElement?.parentElement &&\n currentElement?.getAttribute?.('data-block-id') === null\n ) {\n if (currentElement?.nodeName.toLowerCase() === 'a') {\n return currentElement as HTMLLinkElement;\n }\n currentElement = currentElement?.parentElement || null;\n }\n\n return element as HTMLLinkElement;\n}\n\nexport function shouldHandleInternalLink(href: string): boolean {\n if (!isInternalLink(href)) return false;\n\n const urlFromHref = new URL(href);\n return urlFromHref.pathname === window.location.pathname;\n}\n","import { clickHandler } from '../plugins/clickHandler';\n\nexport const replaceLinkClickPlugin = (\n emitter: any,\n plugins: any[],\n editor: any,\n type: any,\n openOnClick: boolean\n) => {\n const index = plugins.findIndex((plugin) => {\n // @ts-ignore\n const key = plugin.spec.key.key || '';\n return key.startsWith('handleClickLink');\n });\n\n if (index) {\n plugins.splice(index, 1);\n }\n\n const newPlugins = [];\n newPlugins.push(...plugins);\n\n if (openOnClick) {\n newPlugins.push(\n clickHandler({\n type,\n emitter,\n editor,\n })\n );\n }\n\n return newPlugins;\n};\n","import { EditorState } from '@tiptap/pm/state';\nimport { cellAround, selectedRect } from '@tiptap/pm/tables';\n\nexport const mergeCellsDisabled = (state: EditorState) => {\n const cellPos = cellAround(state.selection.$from);\n if (!cellPos) return true;\n const rect = selectedRect(state);\n if (!rect) return true;\n return !(Math.abs(rect.top - rect.bottom) > 1 || Math.abs(rect.left - rect.right) > 1);\n};\n","import {\n combineTransactionSteps,\n findChildrenInRange,\n getChangedRanges,\n NodeWithPos,\n} from '@tiptap/core';\nimport { NodeType } from '@tiptap/pm/model';\nimport { Plugin, PluginKey } from '@tiptap/pm/state';\nimport { find } from 'linkifyjs';\nimport { isInternalLink, getInternalLinkProps } from '@/utilities/internalLink';\n\ntype AutolinkOptions = {\n type: NodeType;\n validate?: (url: string) => boolean;\n};\n\nexport function autolink(options: AutolinkOptions): Plugin {\n return new Plugin({\n key: new PluginKey('autolink'),\n appendTransaction: (transactions, oldState, newState) => {\n const docChanges =\n transactions.some((transaction) => transaction.docChanged) &&\n !oldState.doc.eq(newState.doc);\n const preventAutolink = transactions.some((transaction) =>\n transaction.getMeta('preventAutolink')\n );\n\n if (!docChanges || preventAutolink) {\n return;\n }\n\n const { tr } = newState;\n const transform = combineTransactionSteps(oldState.doc, [...transactions]);\n const changes = getChangedRanges(transform);\n\n changes.forEach(({ newRange }) => {\n // now let’s see if we can add new links\n const nodesInChangedRanges = findChildrenInRange(\n newState.doc,\n newRange,\n (node) => node.isTextblock\n );\n\n let textBlock: NodeWithPos | undefined;\n let textBeforeWhitespace: string | undefined;\n\n if (nodesInChangedRanges.length > 1) {\n // Grab the first node within the changed ranges (ex. the first of two paragraphs when hitting enter)\n textBlock = nodesInChangedRanges[0];\n textBeforeWhitespace = newState.doc.textBetween(\n textBlock.pos,\n textBlock.pos + textBlock.node.nodeSize,\n undefined,\n ' '\n );\n } else if (\n nodesInChangedRanges.length &&\n // We want to make sure to include the block seperator argument to treat hard breaks like spaces\n newState.doc.textBetween(newRange.from, newRange.to, ' ', ' ').endsWith(' ')\n ) {\n textBlock = nodesInChangedRanges[0];\n textBeforeWhitespace = newState.doc.textBetween(\n textBlock.pos,\n newRange.to,\n undefined,\n ' '\n );\n }\n\n if (textBlock && textBeforeWhitespace) {\n const wordsBeforeWhitespace = textBeforeWhitespace.split(' ').filter((s) => s !== '');\n\n if (wordsBeforeWhitespace.length <= 0) {\n return false;\n }\n\n const lastWordBeforeSpace = wordsBeforeWhitespace[wordsBeforeWhitespace.length - 1];\n const lastWordAndBlockOffset =\n textBlock.pos + textBeforeWhitespace.lastIndexOf(lastWordBeforeSpace);\n\n if (!lastWordBeforeSpace) {\n return false;\n }\n\n find(lastWordBeforeSpace)\n .filter((link) => link.isLink)\n .filter((link) => {\n if (options.validate) {\n return options.validate(link.value);\n }\n return true;\n })\n // calculate link position\n .map((link) => ({\n ...link,\n from: lastWordAndBlockOffset + link.start + 1,\n to: lastWordAndBlockOffset + link.end + 1,\n }))\n // add internal link if all validation passed\n .forEach((link) => {\n const isInternalLinkValid = isInternalLink(link.value);\n if (!isInternalLinkValid) return tr;\n const url = link.value.startsWith('https://') ? link.value : `https://${link.value}`;\n const { name }: any = getInternalLinkProps(link.value);\n const internalLinkNode = newState.schema.nodes['internal-link'].create({\n 'data-url': url,\n name,\n });\n\n tr.delete(link.from, link.to);\n tr.replaceSelectionWith(internalLinkNode, false);\n });\n }\n });\n\n if (!tr.steps.length) {\n return;\n }\n return tr;\n },\n });\n}\n","import { Editor } from '@tiptap/core';\nimport { Plugin, PluginKey } from '@tiptap/pm/state';\nimport constants from '@/utilities/constants';\nimport getFileIdFromUrl from '@/utilities/getFileIdFromUrl';\n\ntype DoubleClickOptions = {\n editor: Editor;\n};\n\nexport function doubleClick(options: DoubleClickOptions): Plugin {\n return new Plugin({\n key: new PluginKey('doubleClick'),\n props: {\n handleDoubleClickOn: (view, pos, node, nodePos, event) => {\n if (node.type.name === constants.stImage) {\n const id = getFileIdFromUrl(node.attrs.imgsrc);\n options.editor.commands.displayFullScreenImage(id);\n event.preventDefault();\n event.stopPropagation();\n }\n },\n },\n });\n}\n","import { Extension } from '@tiptap/core';\nimport { Plugin, PluginKey } from '@tiptap/pm/state';\nimport { Fragment } from '@tiptap/pm/model';\n\ndeclare module '@tiptap/core' {\n interface Commands {\n eventHandlerCommands: {\n indent: () => ReturnType;\n };\n }\n}\n\nfunction arrowUpInFirstRow(view: any) {\n const { top } = view.dom.getBoundingClientRect();\n const { pos } = view.state.selection.$from;\n const { top: cursorTop } = view.coordsAtPos(pos);\n const { node } = view.domAtPos(pos);\n // if node is a text node, get the parent\n const domAtPos = node.nodeName === '#text' ? node.parentElement : node;\n let currentElement = domAtPos;\n let topOffset = 2;\n\n // traverse up the dom tree until we reach the editor\n do {\n const { borderTop, marginTop, paddingTop } = window.getComputedStyle(currentElement);\n const margin = parseInt(marginTop, 10);\n const padding = parseInt(paddingTop, 10);\n const border = parseInt(borderTop, 10);\n topOffset += margin + padding + border;\n currentElement = currentElement.parentElement;\n } while (currentElement && currentElement !== view.dom);\n\n const cursorTopOffsetted = Math.floor(cursorTop) - topOffset;\n return cursorTopOffsetted <= top;\n}\n\nfunction arrowUpHandler(view: any, event: any, editor: any, emitter: any) {\n const { $from, $to } = view.state.selection;\n if ($from.parentOffset !== $to.parentOffset || $from.pos !== $to.pos) return;\n if (editor.storage.mention.mentionDropdownActive) return false;\n if (arrowUpInFirstRow(view)) {\n emitter.$emit('arrow-up-in-first-row', {\n // @ts-ignore\n editorId: editor.id,\n rect: view.coordsAtPos(view.state.selection.$from.pos),\n });\n return true;\n }\n}\n\nfunction arrowLeftHandler(view: any, event: any, editor: any, emitter: any) {\n const { $from } = view.state.selection;\n // Arrow left at the beginning of the document\n if ($from.parentOffset === 0 && $from.index(0) === 0) {\n // The cursor is at the beginning of the current node\n emitter.$emit('arrow-left-at-doc-start', {\n // @ts-ignore\n editorId: editor.id,\n });\n return true;\n }\n}\n\nfunction backspaceHandler(view: any, event: any, editor: any) {\n const { $from, empty, $anchor, $to } = view.state.selection;\n const node = $anchor.node();\n const range = $from.blockRange($to);\n const allMarks: any = new Set();\n const combinedKey = event.ctrlKey || event.metaKey || event.altKey;\n\n const extractMarks = (marks: any = []) => {\n marks.forEach((mark: any) => allMarks.add(mark));\n };\n\n const isTextNodeWithSingleCharLeft = (node: any) => {\n return node?.isText && node?.textContent?.length === 1;\n };\n\n const isNodeWithSurroundingTextNodes = (node: any) => {\n return node?.childCount === 3 && isTextNodeWithSingleCharLeft(node?.content?.content[1]);\n };\n\n const isNodeWithSingleCharLeft = (node: any) => {\n return (\n combinedKey ||\n isTextNodeWithSingleCharLeft(node) ||\n isNodeWithSurroundingTextNodes(node) ||\n (node?.childCount >= 1 && isTextNodeWithSingleCharLeft(node?.lastChild))\n );\n };\n\n if (empty && (isNodeWithSingleCharLeft(node) || isNodeWithSingleCharLeft($from.nodeBefore))) {\n if (range) {\n view.state.doc.nodesBetween($from.pos, $to.pos, (node: any) => {\n if (node.isText) {\n extractMarks(node.marks);\n } else if (node.childCount === 1 && node.firstChild?.isText) {\n extractMarks(node.firstChild.marks);\n } else if (node.content instanceof Fragment) {\n const fragment = node.content;\n // @ts-ignore\n fragment.content?.forEach((node) => {\n if (node.isText) {\n extractMarks(node.marks);\n }\n });\n }\n });\n }\n if (allMarks.size > 0) {\n allMarks.forEach((mark: any) => {\n editor.commands.toggleMark(mark.type.name);\n });\n window.requestAnimationFrame(() => {\n view.state.storedMarks = null;\n });\n }\n }\n}\n\nexport interface EventHandlerOptions {\n emitter: any;\n handleArrowLeft: boolean;\n}\n\nexport const EventHandler = (options: EventHandlerOptions) => {\n return Extension.create({\n name: 'eventHandler',\n\n addCommands() {\n return {\n indent:\n () =>\n ({ commands }) => {\n return commands.insertContent('\\t');\n },\n };\n },\n\n addKeyboardShortcuts() {\n return {\n Tab: () => {\n // prevent indenting when mention is active\n // @ts-ignore\n if (this.editor.view.state.mention$?.active) return false;\n if (\n this.editor.isActive('bulletList') ||\n this.editor.isActive('orderedList') ||\n this.editor.isActive('taskList')\n )\n return false;\n return this.editor.commands.indent();\n },\n };\n },\n\n addProseMirrorPlugins() {\n return [\n new Plugin({\n key: new PluginKey('eventHandler'),\n props: {\n handleKeyDown: (view, event) => {\n // Arrow up in first row\n if (event.key === 'ArrowUp') {\n return arrowUpHandler(view, event, this.editor, options.emitter);\n }\n // Arrow left\n if (event.key === 'ArrowLeft') {\n if (!options.handleArrowLeft) return false;\n return arrowLeftHandler(view, event, this.editor, options.emitter);\n }\n\n if (event.key === 'Backspace') {\n backspaceHandler(view, event, this.editor);\n return false;\n }\n // tab\n if (event.key === 'Tab') {\n event.preventDefault();\n }\n },\n },\n }),\n ];\n },\n });\n};\n","import { type Tippy } from 'tippy.js';\n\nexport const getRectOrDestroy =\n (maybeGetRect: () => DOMRect | null, popups: () => ReturnType) => (): DOMRect => {\n const rect = maybeGetRect?.();\n if (!rect) {\n popups()?.forEach((popup) => popup?.destroy?.());\n return { left: 0, top: 0, bottom: 0, right: 0 } as DOMRect;\n }\n return rect;\n };\n","import { reactive } from 'vue';\nimport { VueRenderer } from '@tiptap/vue-3';\nimport { store } from '@/store';\nimport MentionList from '@/components/widgets/MentionList';\nimport tippy from 'tippy.js';\nimport getMemberLabel from '@/utilities/getMemberLabel';\nimport {\n getDefaultCards,\n getDefaultEpics,\n getDefaultPages,\n getDefaultBoards,\n getDefaultProjects,\n} from '@/utilities/getDefaultResources';\nimport { getRectOrDestroy } from './util';\nimport setMaxHeight from '@/utilities/setMaxHeight';\n\nconst filteredMembers = (query) => {\n const members = [...Object.values(store.getters.getTeamMembers)].map((m) => {\n return {\n ...m,\n description: `${m.display_name ?? ''}${m.first_name ?? ''}${m.last_name ?? ''}${\n m.email ?? ''\n }`,\n value: getMemberLabel(m),\n };\n });\n const filtered = members.filter((m) => m.description.toLowerCase().includes(query.toLowerCase()));\n return filtered;\n};\n\nconst matches = reactive({\n cards: [],\n boards: [],\n projects: [],\n pages: [],\n members: [],\n epics: [],\n query: '',\n});\n\nexport default {\n items: ({ query }) => {\n if (query && query !== matches.query) {\n store\n .dispatch('fetchSearchResults', {\n query,\n advanceOptions: { grouped: true, completed: true, cancelled: true },\n })\n .then(({ data }) => {\n matches.cards.splice(0, matches.cards.length, ...(data.cards ?? []));\n matches.epics.splice(0, matches.epics.length, ...(data.epics ?? []));\n matches.boards.splice(0, matches.boards.length, ...(data.boards ?? []));\n matches.projects.splice(0, matches.projects.length, ...(data.projects ?? []));\n matches.pages.splice(0, matches.pages.length, ...(data.pages ?? []));\n })\n .catch(() => {\n // error\n });\n matches.members.splice(0, matches.members.length, ...filteredMembers(query));\n } else if (query === '') {\n matches.cards.splice(0, matches.cards.length, ...getDefaultCards());\n matches.epics.splice(0, matches.epics.length, ...getDefaultEpics());\n matches.boards.splice(0, matches.boards.length, ...getDefaultBoards());\n matches.projects.splice(0, matches.projects.length, ...getDefaultProjects());\n matches.pages.splice(0, matches.pages.length, ...getDefaultPages());\n matches.members.splice(0, matches.members.length, ...filteredMembers('').splice(0, 2));\n }\n\n if (query !== matches.query) {\n matches.query = query;\n }\n\n return matches;\n },\n\n render: () => {\n let component, popup;\n\n return {\n onStart: (props) => {\n component = new VueRenderer(MentionList, {\n props,\n editor: props.editor,\n });\n\n if (!props.clientRect) {\n return;\n }\n\n popup = tippy('body', {\n getReferenceClientRect: getRectOrDestroy(props.clientRect, () => popup),\n appendTo: () => document.body,\n content: component.ref.$el,\n showOnCreate: true,\n interactive: true,\n trigger: 'manual',\n placement: 'bottom-start',\n onShow: setMaxHeight,\n maxWidth: '100%',\n role: 'poper',\n });\n },\n\n onUpdate(props) {\n component.updateProps(props);\n\n if (!props.clientRect) {\n return;\n }\n\n popup[0].setProps({\n getReferenceClientRect: getRectOrDestroy(props.clientRect, () => popup),\n });\n },\n\n onKeyDown(props) {\n if (props.event.key === 'Escape') {\n popup[0].hide();\n\n return true;\n }\n\n return component.ref?.onKeyDown(props);\n },\n\n onExit() {\n popup?.[0]?.destroy?.();\n component?.destroy?.();\n },\n };\n },\n};\n","export const renderCollaborationCursors = (user: Record): HTMLElement => {\n const color = user.color || '#7D7D7D';\n const cursor = document.createElement('span');\n cursor.classList.add('ProseMirror-yjs-cursor');\n cursor.style.borderColor = color;\n cursor.style.borderLeft = `1px solid ${color}`;\n cursor.style.borderRight = `1px solid ${color}`;\n const userSpan = document.createElement('span');\n userSpan.classList.add('ProseMirror-yjs-cursor-user');\n /**\n * The default behaviour is to create the cursor with\n * the name tag (flag) visible.\n * Unless explicitly set as 'down', display it.\n */\n if (user?.flag !== 'down') {\n userSpan.classList.add('ProseMirror-yjs-cursor-up');\n }\n userSpan.style.backgroundColor = color;\n userSpan.style.color = 'whitesmoke';\n userSpan.setAttribute('spellcheck', 'false');\n userSpan.contentEditable = 'false';\n userSpan.id = `yjs-cursor-${user.yjsId}`;\n userSpan.style.whiteSpace = 'nowrap';\n userSpan.setAttribute('data-username', user.name);\n cursor.insertBefore(userSpan, null);\n return cursor;\n};\n","import { defineComponent as _defineComponent } from 'vue'\nimport { withModifiers as _withModifiers, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nimport { ref, onMounted, getCurrentInstance, onBeforeUnmount } from 'vue';\nimport type { EditorView } from '@tiptap/pm/view';\nimport type { Transaction } from '@tiptap/pm/state';\nimport { TextSelection, PluginKey } from '@tiptap/pm/state';\nimport { onClickOutside } from '@vueuse/core';\n\ndeclare global {\n interface Window {\n StVueApp: any;\n }\n}\n\ntype AbortSuggestionProps = {\n prefix?: string;\n destroy?: boolean;\n appendTransaction?: (tr: Transaction, pos: number) => void;\n};\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'PhantomSuggester',\n props: {\n storeDispatch: {},\n view: {},\n getPos: { type: Function },\n query: {},\n pluginKey: {},\n prefix: {}\n },\n setup(__props: any) {\n\nconst props = __props;\n\nconst inputRef = ref(null);\n\nconst _this = getCurrentInstance();\nlet lastOffset = 0;\n\nconst abortSuggestionDefaults: AbortSuggestionProps = {\n prefix: '@',\n destroy: false,\n appendTransaction: () => {},\n};\n\nfunction abortSuggestion({ prefix, destroy, appendTransaction } = abortSuggestionDefaults) {\n const pos = props.getPos?.();\n if (inputRef.value && pos) {\n const tr = props.view.state.tr;\n\n if (!destroy) {\n const text = `${prefix}${inputRef.value.innerText}`;\n tr.insertText(text, pos);\n }\n\n tr.setMeta(props.pluginKey, {\n type: 'remove',\n });\n\n appendTransaction?.(tr, pos);\n\n props.view.dispatch(tr);\n\n props.view.focus();\n\n destroyComponent();\n }\n}\n\nonClickOutside(inputRef, (e: MouseEvent) => {\n /**\n * If anything besides the menu mention was clicked, abort.\n */\n if (!(e.target as Element).closest('.mention-items')) {\n abortSuggestion({ prefix: props.prefix });\n return;\n }\n\n /**\n * If the mention item was clicked, destroy component.\n */\n if ((e.target as Element).closest('.search-results__group-item-content')) {\n destroyComponent();\n return;\n }\n\n /**\n * If the mention menu was clicked, retain focus.\n */\n\n /**\n * If the query is empty, just focus the input.\n */\n if (props.query === '') {\n inputRef?.value?.focus();\n return;\n }\n\n /**\n * If the query is not empty, focus the input and move the cursor to the end.\n * NOTE: To keep the cursor position in safari, we need to work with ranges.\n * Incidentally, this works for other browsers as well.\n */\n const sel = window.getSelection();\n const range = document.createRange();\n if (inputRef?.value?.childNodes?.[0]) {\n range.setStart(inputRef?.value.childNodes[0], lastOffset);\n range.collapse(true);\n sel?.removeAllRanges();\n sel?.addRange(range);\n inputRef?.value?.focus();\n }\n});\n\nonMounted(() => {\n window.addEventListener('popstate', handlePopstate);\n props.storeDispatch('setSuggesterShown', true);\n inputRef?.value?.focus();\n\n if (inputRef?.value) {\n inputRef.value.textContent = props.query;\n const range = document.createRange();\n\n // Select the end of the contentEditable element\n range.selectNodeContents(inputRef.value);\n range.collapse(false);\n\n const selection = window.getSelection();\n if (selection) {\n selection.removeAllRanges();\n selection.addRange(range);\n }\n }\n\n const tr = props.view.state.tr;\n\n tr.setMeta(props.pluginKey, {\n active: true,\n });\n\n props.view.dispatch(tr);\n\n // add context menu listener\n document.addEventListener('contextmenu', onContextMenu);\n});\n\nonBeforeUnmount(() => {\n document.removeEventListener('contextmenu', onContextMenu);\n props.storeDispatch('setSuggesterShown', false);\n});\n\nfunction onContextMenu(e: MouseEvent) {\n if (e.button === 2) {\n // Right-click detected\n abortSuggestion({ prefix: props.prefix });\n }\n}\n\nfunction destroyComponent() {\n if (_this) {\n _this.appContext.app.unmount();\n }\n window.removeEventListener('popstate', handlePopstate);\n}\n\nfunction handleInput() {\n const content = inputRef.value?.textContent;\n\n if (content?.match(/ |^ $/)) {\n return abortSuggestion({ prefix: props.prefix });\n }\n\n const tr = props.view.state.tr;\n\n tr.setMeta(props.pluginKey, {\n type: 'update',\n query: inputRef.value?.textContent,\n });\n\n props.view.dispatch(tr);\n}\n\nfunction handleKeydown(e: KeyboardEvent) {\n const selection = window.getSelection();\n requestAnimationFrame(() => {\n lastOffset = window.getSelection()?.anchorOffset || 0;\n });\n\n if (\n e.key === 'Backspace' &&\n selection?.anchorNode?.parentNode === inputRef.value &&\n selection?.anchorOffset === 0\n ) {\n abortSuggestion({\n prefix: '',\n appendTransaction: (tr, pos) => {\n tr.setSelection(TextSelection.create(tr.doc, pos));\n },\n });\n\n /**\n *? This is necessary, in order to prevent the Backspace\n *? deleting one character before the mention.\n */\n e.preventDefault();\n }\n\n if (e.key === 'Backspace' && inputRef.value?.textContent === '') {\n abortSuggestion({\n prefix: '',\n });\n\n /**\n *? This is necessary, in order to prevent the Backspace\n *? deleting one character before the mention.\n */\n e.preventDefault();\n }\n\n if (['ArrowLeft', 'ArrowRight'].includes(e.key)) {\n const queryLength = inputRef?.value?.textContent?.length || 0;\n\n if (\n selection?.anchorNode?.parentNode === inputRef.value ||\n selection?.anchorNode?.parentElement?.closest('typeahead')\n ) {\n let offset = 0;\n let edgeDetected = false;\n\n if (e.key === 'ArrowRight') {\n if (selection?.anchorOffset === queryLength) {\n /**\n * We add 1 to account for the prefix length.\n * We do not need prevent default here, since the arrow right behavior is\n * desirable.\n */\n offset = queryLength + props.prefix.length;\n e.preventDefault();\n edgeDetected = true;\n } else if (e.ctrlKey || e.altKey) {\n if (inputRef.value?.textContent?.slice(selection?.anchorOffset).match(/^\\s*\\w+$/g)) {\n offset = queryLength + props.prefix.length;\n e.preventDefault();\n edgeDetected = true;\n }\n }\n } else if (e.key === 'ArrowLeft') {\n if (selection?.anchorOffset === 0) {\n /**\n * Prevent default is required here, since we're setting the position\n * right at the start of the decoration, which (if accounting for\n * a one-character prefix) is correct.\n */\n offset = props.prefix.length - 1;\n e.preventDefault();\n edgeDetected = true;\n } else if (e.ctrlKey || e.altKey) {\n /**\n * Ctrl + Arrow Left is used to jump. The bottom regex\n * matches words like \"this\" and \"this \". Ctrl + Arrow Left\n * in these instances would make the cursor land outside.\n */\n if (inputRef.value?.textContent?.slice(0, selection?.anchorOffset).match(/^\\w+\\s*$/g)) {\n e.preventDefault();\n edgeDetected = true;\n }\n } else if (e.metaKey) {\n abortSuggestion({\n prefix: props.prefix,\n appendTransaction: (tr, pos) => {\n tr.setSelection(TextSelection.create(tr.doc, pos));\n },\n });\n }\n }\n\n if (edgeDetected) {\n abortSuggestion({\n prefix: props.prefix,\n appendTransaction: (tr, pos) => {\n tr.setSelection(TextSelection.create(tr.doc, pos + offset));\n },\n });\n }\n }\n }\n\n if (['ArrowDown', 'ArrowUp', 'Tab', 'Enter'].includes(e.key)) {\n e.preventDefault();\n if (['Enter', 'Tab'].includes(e.key)) {\n // destroy component when item is selected with enter or tab\n destroyComponent();\n }\n return;\n }\n\n if (e.key === 'Delete') {\n const queryLength = inputRef?.value?.textContent?.length || 0;\n\n if (selection?.anchorOffset === queryLength) {\n abortSuggestion({\n prefix: props.prefix,\n });\n }\n }\n\n if (e.key === 'Escape') {\n abortSuggestion({\n prefix: props.prefix,\n });\n }\n\n if (e.ctrlKey || e.metaKey) {\n if (e.key === 'z') {\n e.preventDefault();\n abortSuggestion({\n destroy: true,\n });\n }\n\n if (e.key === 'a') {\n abortSuggestion({\n prefix: props.prefix,\n });\n }\n }\n\n e.stopPropagation();\n}\n\nfunction handlePaste(e: ClipboardEvent) {\n e.stopImmediatePropagation();\n e.stopPropagation();\n e.preventDefault();\n\n const text = e.clipboardData?.getData('text');\n\n if (inputRef.value && text) {\n const sel = window.getSelection();\n\n if (sel && sel.rangeCount > 0) {\n const range = sel.getRangeAt(0);\n range.deleteContents();\n const textNode = document.createTextNode(text);\n range.insertNode(textNode);\n\n // Move the cursor to the end of the inserted content\n range.setStartAfter(textNode);\n range.collapse(true);\n\n sel.removeAllRanges();\n sel.addRange(range);\n }\n\n // Trigger the change event to Vue's reactivity system\n inputRef.value.dispatchEvent(new Event('input', { bubbles: true }));\n }\n}\n\nfunction handlePopstate() {\n abortSuggestion({ prefix: props.prefix });\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"mark\", {\n ref_key: \"inputRef\",\n ref: inputRef,\n contenteditable: \"true\",\n autocorrect: \"off\",\n autocapitalize: \"none\",\n autocomplete: \"off\",\n class: \"text-blue-600 transparent-input\",\n onKeydownCapture: handleKeydown,\n onKeyup: _cache[0] || (_cache[0] = _withModifiers(() => {}, [\"stop\"])),\n onPasteCapture: handlePaste,\n onInput: handleInput\n }, null, 544))\n}\n}\n\n})","\n\n\n\n\n","import script from \"./PhantomSuggester.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./PhantomSuggester.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./PhantomSuggester.vue?vue&type=style&index=0&id=3b3ec76e&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { VueRenderer } from '@tiptap/vue-3';\nimport tippy, { Instance } from 'tippy.js';\nimport { SlashCommand, commands, groupCommandsByType } from './commands';\nimport SlashCommandSearchList from '@/components/widgets/SlashCommandSearchList.vue';\nimport Fuse from 'fuse.js';\nimport { ResourceType } from '@/types/resources';\nimport { store } from '@/store';\nimport { getRectOrDestroy } from '../util';\nimport setMaxHeight from '@/utilities/setMaxHeight';\n\nexport default {\n fuse: new Fuse([] as SlashCommand[], { keys: ['searchName'] }),\n items: function ({ query, resourceType }: { query: string; resourceType: ResourceType }) {\n return {\n /**\n * Apply the same function as in the component, to ensure the same order of results.\n */\n result: groupCommandsByType(\n query ? this.fuse.search(query).map((r) => r.item) : commands,\n resourceType,\n store\n ).flatMap((g) => g.results),\n query,\n };\n },\n render() {\n let component: VueRenderer;\n let popup: Instance[];\n\n return {\n onStart: (props: any) => {\n component = new VueRenderer(SlashCommandSearchList as any, {\n props,\n editor: props.editor,\n });\n\n if (!props.clientRect) {\n return;\n }\n\n popup = tippy('body', {\n getReferenceClientRect: getRectOrDestroy(props.clientRect, () => popup),\n appendTo: () => document.body,\n content: component.el || undefined,\n showOnCreate: true,\n interactive: true,\n trigger: 'manual',\n placement: 'bottom-start',\n role: 'poper',\n onShow: setMaxHeight,\n maxWidth: '100%',\n });\n\n this.fuse = new Fuse(\n commands.filter((c) => c.resource.includes(props.resourceType)),\n {\n keys: ['searchName', 'category', 'keywords'],\n }\n );\n },\n\n onUpdate(props: any) {\n component.updateProps(props);\n\n if (!props.clientRect) {\n return;\n }\n\n popup[0].setProps({\n getReferenceClientRect: getRectOrDestroy(props.clientRect, () => popup),\n });\n },\n\n onKeyDown(props: any) {\n if (props.event.key === 'Escape') {\n popup[0].hide();\n\n return true;\n }\n\n return component.ref?.onKeyDown?.(props);\n },\n\n onExit() {\n popup?.[0]?.destroy?.();\n component?.destroy?.();\n },\n };\n },\n};\n","import { VueRenderer } from '@tiptap/vue-3';\nimport { EmojiIndex } from 'emoji-mart-vue-fast/src';\nimport data from 'emoji-mart-vue-fast/data/all.json';\nimport EmojiSearchList from '@/components/widgets/emojis/EmojiSearchList.vue';\nimport tippy from 'tippy.js';\nimport { getRectOrDestroy } from './util';\n\nexport default {\n emojis: new EmojiIndex(data),\n items: function ({ query }) {\n if (!query || typeof query !== 'string') {\n return {\n result: [\n this.emojis.emoji('+1'),\n this.emojis.emoji('smile'),\n this.emojis.emoji('rocket'),\n this.emojis.emoji('fire'),\n this.emojis.emoji('sparkles'),\n ],\n query: '',\n };\n }\n\n return {\n result: this.emojis.search(query, 20),\n query,\n };\n },\n render: () => {\n let component, popup;\n\n return {\n onStart: (props) => {\n component = new VueRenderer(EmojiSearchList, {\n props,\n editor: props.editor,\n });\n\n if (!props.clientRect) {\n return;\n }\n popup = tippy('body', {\n getReferenceClientRect: getRectOrDestroy(props.clientRect, () => popup),\n appendTo: () => document.body,\n content: component.element,\n showOnCreate: true,\n interactive: true,\n trigger: 'manual',\n placement: 'bottom-start',\n maxWidth: '100%',\n role: 'poper',\n });\n },\n\n onUpdate(props) {\n component.updateProps(props);\n\n if (!props.clientRect) {\n return;\n }\n\n popup[0].setProps({\n getReferenceClientRect: getRectOrDestroy(props.clientRect, () => popup),\n });\n },\n\n onKeyDown(props) {\n if (props.event.key === 'Escape') {\n popup[0].hide();\n\n return true;\n }\n\n return component.ref?.onKeyDown(props);\n },\n\n onExit() {\n popup?.[0]?.destroy?.();\n component?.destroy?.();\n },\n };\n },\n};\n","import { EditorView } from '@tiptap/pm/view';\nimport { ResolvedPos } from '@tiptap/pm/model';\nimport { EditorState } from '@tiptap/pm/state';\n\nexport const getPrecedingChar = (view: EditorView) => {\n const { from } = view.state.selection;\n if (from > 0) {\n return view.state.doc.textBetween(from - 1, from);\n }\n return '';\n};\n\nexport type IsInProps = (\n | {\n node: string;\n }\n | {\n nodeList: string[];\n }\n) &\n (\n | {\n pos: ResolvedPos;\n }\n | {\n state: EditorState;\n }\n );\n\n/**\n * Checks if current resolved position is inside a certain node\n * or list of nodes.\n * @param props\n * @returns\n */\nexport const isIn = (props: IsInProps) => {\n const parentDenyList = 'node' in props ? [props.node] : props.nodeList;\n const pos = 'pos' in props ? props.pos : props.state.selection.$head;\n\n for (let d = pos.depth; d > 0; d--) {\n if (parentDenyList.includes(pos.node(d).type.name)) {\n return true;\n }\n }\n return false;\n};\n","import { TextSelection } from '@tiptap/pm/state';\nimport { getPrecedingChar, isIn } from './util'; // your existing helpers, etc.\n\nfunction tryOpenSuggester(params) {\n const {\n view,\n from,\n to,\n typedChar, // e.g. '@', ':', or '/'\n prefix, // e.g. '@' (same as typedChar, but helpful if you do multiple triggers)\n pluginKey,\n parentDenylist,\n allowedPreceding,\n } = params;\n\n // 1) Check if typedChar matches prefix\n if (typedChar !== prefix) {\n return false; // does not match our trigger\n }\n\n // 2) Check if current parent is allowed\n if (Array.isArray(parentDenylist) && parentDenylist.length > 0) {\n const $from = view.state.doc.resolve(from);\n if (isIn({ pos: $from, nodeList: parentDenylist })) {\n // e.g. user typed @ in codeBlock\n return false;\n }\n }\n\n // 3) Check the preceding character(s)\n const precedingChar = getPrecedingChar(view);\n // If you need multiple chars, you could expand your `getPrecedingChar`\n // or match with a bigger chunk. But let's assume one char is enough:\n if (precedingChar !== '' && !precedingChar.match(allowedPreceding ?? /[\\s()[\\]\"':‘’“”]+/)) {\n return false; // preceding char is not valid whitespace or punctuation\n }\n\n // 4) If everything checks out, dispatch a transaction to open the suggester\n const tr = view.state.tr;\n\n tr.setMeta(pluginKey, {\n type: 'add',\n pos: from,\n });\n\n if (from !== to) {\n /**\n * ... and the entire document is to be replaced ...\n */\n if (from === 1 && to === view.state.doc.content.size - 1) {\n /**\n * ... insert a space, this will be after the mention.\n * NOTE: This is caused by YJS.\n */\n tr.replaceSelectionWith(view.state.schema.text(' '));\n tr.setSelection(TextSelection.near(tr.doc.resolve(from - 1), -1));\n\n /**\n * ... and only a part of the document is to be replaced ...\n */\n } else {\n tr.deleteSelection();\n }\n }\n\n view.dispatch(tr);\n return true;\n}\n\nexport default tryOpenSuggester;\n","import { createApp, h } from 'vue';\nimport { Extension } from '@tiptap/core';\nimport { Plugin, EditorState, PluginKey } from '@tiptap/pm/state';\nimport { Decoration, DecorationSet } from '@tiptap/pm/view';\nimport {\n ySyncPluginKey,\n absolutePositionToRelativePosition,\n relativePositionToAbsolutePosition,\n} from 'y-prosemirror';\nimport { recreateTransform } from '@fellow/prosemirror-recreate-transform';\nimport PhantomSuggesterComponent from './PhantomSuggester.vue';\nimport PhantomSuggesterKey from './pluginKey';\nimport userMentionSuggestion from '../../services/lib/userMentionSuggestion';\nimport commandSuggestion from '../../services/lib/commandSuggestion';\nimport emojiSuggestion from '../../services/lib/emojiSuggestion.js';\nimport { ResourceType } from '@/types/resources';\nimport EditorService from '@/components/editor/services/EditorService';\nimport isSafari from '@/utilities/isSafari';\nimport isFirefox from '@/utilities/isFirefox';\nimport tryOpenSuggester from './tryOpenSuggester';\n\ntype PhantomTrPayload =\n | {\n type: 'add';\n pos: number;\n }\n | {\n type: 'remove';\n }\n | {\n type: 'update';\n query: string;\n };\n\ntype PhantomState = {\n decoration: DecorationSet;\n pos: number | null;\n yjsPos: Record | null;\n query: string;\n};\n\ntype Renderer = ReturnType<(typeof userMentionSuggestion)['render']>;\n\ntype DecorationBuilderProps = {\n state: EditorState;\n prefix: string;\n position?: Record | number;\n query?: string;\n key: string | PluginKey;\n editor: EditorService;\n};\n\nexport const createPhantomDecoration = ({\n state,\n prefix,\n position,\n query,\n key,\n editor,\n}: DecorationBuilderProps) => {\n const YState = ySyncPluginKey.getState(state);\n\n if (typeof position === 'undefined') return DecorationSet.empty;\n\n let resolvedPos: Record | number | null;\n\n if (typeof position === 'number') {\n /**\n * If the position is absolute, do not perform any mapping.\n */\n resolvedPos = position;\n } else {\n /**\n * Otherwise, convert to absolute.\n */\n resolvedPos = relativePositionToAbsolutePosition(\n YState.doc,\n YState.type,\n position,\n YState.binding.mapping\n );\n }\n\n if (resolvedPos === null || Number.isNaN(position)) return DecorationSet.empty;\n\n /**\n * It has to be at least 1, otherwise it\n * will get inserted before the paragraph.\n */\n resolvedPos = Math.max(1, Number(resolvedPos));\n\n const decoration = Decoration.widget(\n resolvedPos,\n (view, getPos) => {\n const container = document.createElement('typeahead');\n const widget = document.createElement('typeahead');\n const widget2 = document.createElement('typeahead');\n widget.textContent = prefix;\n widget.id = 'typeahead';\n widget.classList.add('text-blue-600');\n\n widget.addEventListener('keydown', (e) => e.stopPropagation(), true);\n\n /**\n *? This setTimeout is used for delaying the mounting step.\n *? Vue requires a real DOM element to be mounted onto.\n *? At this stage, the element is just a node which is not\n *? part of the DOM.\n *? Queueing this onto the event loop allows the browser to\n *? return this function and insert the element into the DOM,\n *? effectively allowing Vue to mount onto a real element.\n *?\n *? The timeout amount is not important, but setting it to\n *? 0ms might be a bit buggy on some browsers.\n */\n setTimeout(() => {\n const vNode = createApp({\n render: () =>\n h(PhantomSuggesterComponent, {\n view,\n getPos,\n query: query ?? '',\n pluginKey: key,\n prefix,\n storeDispatch: editor.storeDispatch,\n }),\n });\n\n // @ts-ignore\n vNode.appContext = window.StVueApp?._context;\n vNode.mount(widget2);\n }, 5);\n\n container.appendChild(widget);\n container.appendChild(widget2);\n\n return container;\n },\n { side: -1, ignoreSelection: true }\n );\n\n return DecorationSet.create(state.doc, [decoration]);\n};\n\nexport type PhantomPluginProps = {\n editor: EditorService;\n renderer: Renderer;\n prefix: string;\n key: PluginKey;\n suggestion: any;\n /**\n * The keys are required in order to check for conflicting behaviour.\n * In case conflicts between suggesters need to be handled, these\n * identifiers allow individual suggester inspection.\n */\n suggesterKeys: PluginKey[];\n resourceType: ResourceType;\n /**\n * Define what preceding characters are permitted for starting a\n * suggester.\n * @default /[\\s()\\[\\]\"':‘’“”]+/\n */\n allowedPreceding?: RegExp;\n /**\n * Node names that cannot be parents of suggesters. For example,\n * to deny suggesters in codeBlocks, set this to: `['codeBlock']`.\n */\n parentDenylist?: string[];\n};\n\nconst PhantomPlugin = ({\n editor,\n renderer,\n prefix,\n key,\n suggestion,\n suggesterKeys,\n resourceType,\n allowedPreceding,\n parentDenylist,\n}: PhantomPluginProps) =>\n /**\n * TODO: Optimize to not run (at all if possible) when other\n * suggesters are active. This can be checked by some state variables.\n *\n * This will remove the need of checking for other suggesters when performing\n * tasks such as adding the placeholder override. It should also improve\n * performance, since every suggester is ran on every transaction.\n */\n new Plugin({\n key,\n state: {\n init() {\n return {\n decoration: DecorationSet.empty,\n pos: null,\n yjsPos: null,\n query: '',\n };\n },\n apply(tr, stateValue, oldState, newState) {\n const action: PhantomTrPayload | null = tr.getMeta(key);\n\n const YState = ySyncPluginKey.getState(newState);\n\n const collabEnabled = !!YState;\n\n /**\n * Props are exposed as a function in order to take\n * advantage of their lazy behavior.\n * @param newQuery - Optional, in cases where the stateValue\n * is obsolete/hasn't been updated yet.\n */\n const props = (newQuery?: string) => ({\n editor,\n items: suggestion.items({ query: newQuery ?? stateValue.query, resourceType }),\n command: (commandProps: any) => {\n const content =\n typeof commandProps === 'string'\n ? commandProps\n : [\n {\n type: commandProps.nodeName,\n attrs: commandProps,\n },\n {\n type: 'text',\n text: ' ',\n },\n ];\n editor\n .chain()\n .insertContent(content)\n .setMeta(key as unknown as string, { type: 'remove' })\n .focus()\n .run();\n },\n clientRect: () => {\n const rect = document.querySelector('typeahead')?.getBoundingClientRect();\n /**\n * If rect is null, that means that the decoration was unsuccessfully rendered.\n * To avoid hidden key captures, we remove the suggester altogether.\n */\n if (!rect) {\n editor\n .chain()\n .setMeta(key as unknown as string, { type: 'remove' })\n .run();\n return null;\n }\n return rect;\n },\n resourceType,\n });\n\n switch (action?.type) {\n // Suggester addition\n case 'add':\n editor.view.dom.classList.add('force-placeholder-off');\n renderer.onStart(props());\n if (collabEnabled) {\n const pos = absolutePositionToRelativePosition(\n action.pos,\n YState.type,\n YState.binding.mapping\n );\n return {\n ...stateValue,\n decoration: createPhantomDecoration({\n state: newState,\n position: pos,\n prefix,\n key,\n editor,\n }),\n yjsPos: pos,\n };\n }\n return {\n ...stateValue,\n decoration: createPhantomDecoration({\n state: newState,\n position: action.pos,\n prefix,\n key,\n editor,\n }),\n pos: action.pos,\n };\n // Suggester removal\n case 'remove':\n editor.view.dom.classList.remove('force-placeholder-off');\n renderer.onExit();\n return {\n decoration: DecorationSet.empty,\n pos: null,\n yjsPos: null,\n query: '',\n };\n case 'update':\n editor.view.dom.classList.add('force-placeholder-off');\n renderer.onUpdate(props(action.query));\n return {\n ...stateValue,\n query: action.query,\n };\n // All other transactions\n default: {\n /**\n * The extracted numerical value\n * representing the location of the decoration.\n *\n *! This is out of sync. Any match between this\n *! and the real position is situational, and should not\n *! be relied upon.\n */\n const decorationPos = stateValue.decoration.find()[0]?.from;\n\n const posValid = collabEnabled ? stateValue.yjsPos : stateValue.pos !== null;\n\n /**\n * If there is no decoration present on the screen,\n * or the relative position is unavailable, clear\n * the state, effectively removing the decoration.\n */\n if (!posValid || typeof decorationPos !== 'number') {\n /**\n * If other suggesters are active, do not remove the placeholder\n * override class.\n */\n let otherSuggesterActive = false;\n\n for (const suggesterKey of suggesterKeys) {\n if (suggesterKey.getState(editor.state).decoration !== DecorationSet.empty) {\n otherSuggesterActive = true;\n break;\n }\n }\n\n if (!otherSuggesterActive) {\n editor.view.dom.classList.remove('force-placeholder-off');\n }\n\n return {\n decoration: DecorationSet.empty,\n pos: null,\n yjsPos: null,\n query: '',\n };\n }\n\n if (!collabEnabled) {\n editor.view.dom.classList.add('force-placeholder-off');\n return {\n ...stateValue,\n decoration: stateValue.decoration.map(tr.mapping, tr.doc),\n };\n }\n\n /**\n * If the change originated from the local client,\n * it means that the decoration can be mapped.\n *\n * This saves a re-render.\n *\n *? Normally this plugin should have the user focused\n *? on the suggesting field. Still, this is a good\n *? optimization to have.\n */\n if (!YState.isChangeOrigin) {\n editor.view.dom.classList.add('force-placeholder-off');\n return {\n ...stateValue,\n decoration: stateValue.decoration.map(tr.mapping, tr.doc),\n };\n }\n\n /**\n * This is the absolute position, according to YJS.\n *\n *! This is the valid, fresh position of where the\n *! decoration should be.\n */\n const absPos = relativePositionToAbsolutePosition(\n YState.doc,\n YState.type,\n stateValue.yjsPos,\n YState.binding.mapping\n );\n\n /**\n * If mapping failed, or the position became unavailable,\n * clear the state.\n */\n if (!absPos) {\n editor.view.dom.classList.remove('force-placeholder-off');\n return {\n decoration: DecorationSet.empty,\n pos: null,\n yjsPos: null,\n query: '',\n };\n }\n\n /**\n * In cases where a YJS change occured, but the\n * numerical position has not changed, we do not need\n * to remap the decoration.\n *\n */\n if (decorationPos === absPos) {\n editor.view.dom.classList.add('force-placeholder-off');\n return { ...stateValue };\n }\n\n /**\n * If the numerical position did, in fact,\n * change, the YJS has removed the decoration.\n *\n * As a solution, we recreate the steps and\n * map the decoration.\n *\n *? The \"old\" stateValue.yjsPos position is still\n *? valid, as it is being stored as a relative\n *? YJS position.\n */\n editor.view.dom.classList.add('force-placeholder-off');\n renderer.onUpdate(props());\n\n const mapping = recreateTransform(tr.before, tr.doc, {\n complexSteps: true,\n wordDiffs: false,\n simplifyDiff: true,\n }).mapping;\n\n return {\n ...stateValue,\n decoration: stateValue.decoration.map(mapping, tr.doc),\n };\n }\n }\n },\n },\n props: {\n decorations(state) {\n return key.getState(state).decoration || DecorationSet.empty;\n },\n handleTextInput(view, from, to, text) {\n const wasHandled = tryOpenSuggester({\n view,\n from,\n to,\n typedChar: text,\n prefix,\n pluginKey: key,\n parentDenylist,\n allowedPreceding,\n });\n return wasHandled;\n },\n /**\n * All keyboard events should be captured within\n * the rendered Vue component. On mobile, however (more specifically\n * Chrome with GBoard), some composite keyboard events cannot be captured\n * and stopped, thus \"leaking\" into ProseMirror.\n *\n * This is where they are handled. While the code is not specifically set\n * up to only run on mobile, these situations are observed to only\n * occur in that environment.\n */\n handleKeyDown(view, event) {\n const YState = ySyncPluginKey.getState(view.state);\n\n const collabEnabled = !!YState;\n\n const posValid = collabEnabled\n ? key.getState(view.state).yjsPos\n : key.getState(view.state).pos !== null;\n\n /**\n * If the suggester is active...\n */\n if (posValid) {\n /**\n * ... and one of these keypresses escaped the suggester...\n */\n if (['Backspace', 'Enter', 'Space'].includes(event.code)) {\n /**\n * ... dispatch a removal transaction.\n */\n const { tr } = view.state;\n tr.setMeta(key, {\n type: 'remove',\n });\n view.dispatch(tr);\n return true;\n }\n } else if (event.key === prefix && (isSafari() || isFirefox())) {\n const { from, to } = view.state.selection;\n const wasHandled = tryOpenSuggester({\n view,\n from,\n to,\n typedChar: event.key,\n prefix,\n pluginKey: key,\n parentDenylist,\n allowedPreceding,\n });\n\n if (wasHandled) {\n return true;\n }\n }\n return false;\n },\n },\n });\n\nconst TipTapPhantomPlugin = Extension.create({\n addOptions(): { resourceType?: ResourceType } {\n return { resourceType: undefined };\n },\n addProseMirrorPlugins() {\n const renderer = userMentionSuggestion.render?.();\n const emojiRenderer = emojiSuggestion.render?.();\n const commandRenderer = commandSuggestion.render?.();\n const allKeys = Object.values(PhantomSuggesterKey);\n const { resourceType } = this.options;\n return [\n PhantomPlugin({\n editor: this.editor as any,\n renderer,\n prefix: '@',\n key: PhantomSuggesterKey.mention,\n suggestion: userMentionSuggestion,\n suggesterKeys: allKeys,\n resourceType,\n parentDenylist: ['codeBlock'],\n }),\n PhantomPlugin({\n editor: this.editor as any,\n renderer: emojiRenderer,\n prefix: ':',\n key: PhantomSuggesterKey.emoji,\n suggestion: emojiSuggestion,\n suggesterKeys: allKeys,\n resourceType,\n allowedPreceding: /[\\s([\\]\"':‘’“”]+/,\n }),\n PhantomPlugin({\n editor: this.editor as any,\n renderer: commandRenderer,\n prefix: '/',\n key: PhantomSuggesterKey.command,\n suggestion: commandSuggestion,\n suggesterKeys: allKeys,\n resourceType,\n parentDenylist: ['codeBlock'],\n }),\n ];\n },\n});\n\nexport { TipTapPhantomPlugin as PhantomPlugin, PhantomPlugin as PmPhantomPlugin };\n","// @ts-nocheck\nimport { Node as ProseMirrorNode } from '@tiptap/pm/model';\nimport { NodeView, EditorView } from '@tiptap/pm/view';\n\nexport function updateColumns(\n node: ProseMirrorNode,\n colgroup: Element,\n table: Element,\n cellMinWidth: number,\n editor?: any,\n overrideCol?: number,\n overrideValue?: any\n) {\n let totalWidth = 0;\n let fixedWidth = true;\n let nextDOM = colgroup.firstChild;\n const row = node.firstChild;\n\n for (let i = 0, col = 0; i < row.childCount; i += 1) {\n const { colspan, colwidth } = row.child(i).attrs;\n\n for (let j = 0; j < colspan; j += 1, col += 1) {\n const hasWidth = overrideCol === col ? overrideValue : colwidth?.[j];\n const cssWidth = hasWidth ? `${hasWidth}px` : '';\n\n totalWidth += hasWidth || cellMinWidth;\n\n if (!hasWidth) {\n fixedWidth = false;\n }\n\n if (!nextDOM) {\n colgroup.appendChild(document.createElement('col')).style.width = cssWidth;\n } else {\n if (nextDOM.style.width !== cssWidth) {\n nextDOM.style.width = cssWidth;\n }\n\n nextDOM = nextDOM.nextSibling;\n }\n }\n }\n\n while (nextDOM) {\n const after = nextDOM.nextSibling;\n\n nextDOM.parentNode.removeChild(nextDOM);\n nextDOM = after;\n }\n\n if (totalWidth !== table.style.width) {\n editor?.eventBus?.$emit?.('table-resized', {\n totalWidth,\n });\n }\n\n if (fixedWidth) {\n table.style.width = `${totalWidth}px`;\n table.style.minWidth = '';\n } else {\n table.style.width = '';\n table.style.minWidth = `${totalWidth}px`;\n }\n}\n\nexport class TableView implements NodeView {\n node: ProseMirrorNode;\n\n view: EditorView;\n\n cellMinWidth: number;\n\n dom: Element;\n\n table: Element;\n\n colgroup: Element;\n\n contentDOM: Element;\n\n constructor(node: ProseMirrorNode, cellMinWidth: number, view: EditorView) {\n this.node = node;\n this.view = view;\n this.cellMinWidth = cellMinWidth;\n this.dom = document.createElement('div');\n this.dom.className = 'tableWrapper';\n this.dom.setAttribute('data-block-id', node.attrs['block-id']);\n this.dom.setAttribute('data-content-width', node.attrs['contentWidth']);\n this.table = this.dom.appendChild(document.createElement('table'));\n this.colgroup = this.table.appendChild(document.createElement('colgroup'));\n updateColumns(node, this.colgroup, this.table, cellMinWidth, this.view.dom.editor);\n this.contentDOM = this.table.appendChild(document.createElement('tbody'));\n\n if (node.attrs['contentWidth'] === 'full' && this.view.dom?.editor?.resourceType === 'card') {\n this.view.dom.setAttribute('data-table-full', 'true');\n }\n }\n\n update(node: ProseMirrorNode) {\n if (node.type !== this.node.type) {\n return false;\n }\n\n this.node = node;\n updateColumns(node, this.colgroup, this.table, this.cellMinWidth, this.view.dom.editor);\n\n const contentWidth = node.attrs?.contentWidth;\n\n if (contentWidth) {\n this.dom.setAttribute('data-content-width', contentWidth);\n }\n\n return true;\n }\n\n ignoreMutation(mutation: MutationRecord | { type: 'selection'; target: Element }) {\n return (\n mutation.type === 'attributes' &&\n (mutation.target === this.table || this.colgroup.contains(mutation.target))\n );\n }\n}\n","import Table from '@tiptap/extension-table';\nimport { TableView } from './tableView';\nimport { columnResizing, isInTable, tableEditing } from '@tiptap/pm/tables';\nimport { CommandProps, Editor } from '@tiptap/core';\nimport { NodeSelection } from '@tiptap/pm/state';\n\nconst getTableNode = (editor: Editor) => {\n const { selection } = editor.state;\n\n let tableNode = null;\n\n if (selection instanceof NodeSelection && selection.node.type.name === 'table') {\n tableNode = selection.$head.node();\n } else {\n const $head = selection.$head;\n for (let d = $head.depth; d > 0; d--) {\n if ($head.node(d).type.name === 'table') {\n tableNode = $head.node(d);\n break;\n }\n }\n }\n\n return tableNode;\n};\n\nconst hasFullWidthTable = (editor: Editor) => {\n let hasFullWidth = false;\n editor.state.doc.descendants((node) => {\n if (node.type.name === 'table' && node.attrs['contentWidth'] === 'full') {\n hasFullWidth = true;\n return false;\n }\n });\n return hasFullWidth;\n};\n\nexport default Table.extend({\n addOptions() {\n return {\n ...this.parent?.(),\n resizable: true,\n allowTableNodeSelection: true,\n View: TableView as any,\n pageSize: false,\n };\n },\n addAttributes() {\n return {\n ...this.parent?.(),\n contentWidth: {\n default: 'page',\n },\n };\n },\n // Making this a custom node just so that typescript works with it\n // breaks the baked-in table functionality (since the node name changes).\n // Normally, there should be some getter we could modify.\n // @ts-ignore\n addCommands() {\n return {\n ...this.parent?.(),\n toggleTableContentWidth:\n () =>\n ({ editor, state, dispatch, commands }: CommandProps) => {\n if (!isInTable(state)) return false;\n if (dispatch) {\n const tableNode = getTableNode(editor);\n if (!tableNode) return false;\n const currentWidth = tableNode.attrs?.contentWidth;\n const newWidth = currentWidth === 'page' ? 'full' : 'page';\n commands.updateAttributes('table', {\n contentWidth: newWidth,\n });\n\n if ((editor as any).resourceType === 'card') {\n requestAnimationFrame(() => {\n if (newWidth === 'full') {\n editor.view.dom.setAttribute('data-table-full', 'true');\n } else if (!hasFullWidthTable(editor)) {\n editor.view.dom.removeAttribute('data-table-full');\n }\n });\n }\n }\n return true;\n },\n };\n },\n\n addKeyboardShortcuts() {\n return {\n Tab: () => {\n if (this.editor.commands.sinkListItem('listItem')) {\n return true;\n }\n\n if (this.editor.commands.goToNextCell()) {\n return true;\n }\n\n if (!this.editor.can().addRowAfter()) {\n return false;\n }\n\n return this.editor.chain().addRowAfter().goToNextCell().run();\n },\n 'Shift-Tab': () => {\n if (this.editor.commands.liftListItem('listItem')) {\n return true;\n }\n return this.editor.commands.goToPreviousCell();\n },\n };\n },\n\n /**\n * Reference: https://github.com/ueberdosis/tiptap/issues/4044\n */\n addProseMirrorPlugins() {\n const isResizable = this.options.resizable;\n return [\n ...(isResizable\n ? [\n columnResizing({\n handleWidth: this.editor.isEditable ? this.options.handleWidth : 0,\n cellMinWidth: this.options.cellMinWidth,\n // @ts-ignore (incorrect type)\n View: this.options.View,\n // TODO: PR for @types/prosemirror-tables\n // @ts-ignore (incorrect type)\n lastColumnResizable: this.options.lastColumnResizable,\n }),\n ]\n : []),\n tableEditing({\n allowTableNodeSelection: this.options.allowTableNodeSelection,\n }),\n ];\n },\n});\n","const stColorToHex = {\n primary: {\n light: '#e5f3ff',\n dark: '#293056',\n },\n error: {\n light: '#fee4e2',\n dark: '#7a271a',\n },\n warning: {\n light: '#fef0c7',\n dark: '#7a2e0e',\n },\n success: {\n light: '#d1fadf',\n dark: '#054f31',\n },\n bluelight: {\n light: '#e0f2fe',\n dark: '#0b4a6f',\n },\n indigo: {\n light: '#e0eaff',\n dark: '#2d3282',\n },\n purple: {\n light: '#ebe9fe',\n dark: '#3e1c96',\n },\n pink: {\n light: '#fce7f6',\n dark: '#851651',\n },\n orange: {\n light: '#ffead5',\n dark: '#7e2410',\n },\n gray: {\n light: '#e4e7ec',\n dark: '#344054',\n },\n} as const;\n\nexport default stColorToHex;\n","import TableCell, { TableCellOptions } from '@tiptap/extension-table-cell';\nimport { ResourceType } from './types';\nimport { mergeAttributes } from '@tiptap/core';\nimport stColorToHex from './stColorToHex';\n\nconst contentExpr = {\n page: '(paragraph | bulletList | orderedList | taskList | heading | stImageGroup)+',\n comment: '(paragraph | bulletList | orderedList | taskList)+',\n card: '(paragraph | bulletList | orderedList | taskList | heading | stImageGroup)+',\n board: '(paragraph)+',\n note: '(paragraph | bulletList | orderedList | taskList | heading | stImageGroup)+',\n};\n\nexport default TableCell.extend({\n addOptions() {\n return {\n ...this.parent?.(),\n resourceType: undefined,\n };\n },\n addAttributes() {\n return {\n ...this.parent?.(),\n backgroundColor: {\n default: null,\n renderHTML: (attributes) => {\n /**\n * If there is a set custom Superthread colour (which is dark-mode friendly also),\n * ignore the backgroundColor attribute.\n */\n if (!attributes.backgroundColor || attributes.stTableColor) {\n return {};\n }\n\n return {\n style: `background-color: ${attributes.backgroundColor};`,\n };\n },\n parseHTML: (element) => {\n return element.style.backgroundColor?.replace?.(/['\"]+/g, '') ?? null;\n },\n },\n stTableColor: {\n default: null,\n renderHTML: (attributes) => {\n if (!attributes.stTableColor) {\n return {};\n }\n\n const backgroundColor =\n stColorToHex[attributes.stTableColor as keyof typeof stColorToHex]?.light;\n\n const attrs: Record = {\n 'data-st-table-color': attributes.stTableColor,\n };\n\n if (backgroundColor) {\n attrs.style = `background-color: ${backgroundColor};`;\n }\n\n return attrs;\n },\n parseHTML: (element) => {\n return element.getAttribute('data-st-table-color');\n },\n },\n };\n },\n content() {\n if (!this.options.resourceType) {\n return '(paragraph)+';\n } else {\n return contentExpr[this.options.resourceType];\n }\n },\n renderHTML({ HTMLAttributes }) {\n return ['td', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];\n },\n});\n","import TableHeader, { TableHeaderOptions } from '@tiptap/extension-table-header';\nimport { ResourceType } from './types';\n\nconst contentExpr = {\n page: '(paragraph | bulletList | orderedList | taskList | heading | stImageGroup)+',\n comment: '(paragraph | bulletList | orderedList | taskList)+',\n card: '(paragraph | bulletList | orderedList | taskList | heading | stImageGroup)+',\n board: '(paragraph)+',\n note: '(paragraph | bulletList | orderedList | taskList | heading | stImageGroup)+',\n};\n\nexport default TableHeader.extend({\n addOptions() {\n return {\n ...this.parent?.(),\n resourceType: undefined,\n };\n },\n content() {\n if (!this.options.resourceType) {\n return '(paragraph)+';\n } else {\n return contentExpr[this.options.resourceType];\n }\n },\n});\n","import TableRow from '@tiptap/extension-table-row';\n\nexport default TableRow;\n","import table from './table';\nimport tableCell from './tableCell';\nimport tableHeader from './tableHeader';\nimport tableRow from './tableRow';\nimport { ResourceType } from './types';\n\nconst unconfiguredPlugins = [table, tableRow, tableHeader, tableCell];\n\n/**\n * Call this function to retreive an array of configured table plugins.\n * @param resourceType\n * @returns\n */\nfunction TablePlugins(resourceType: ResourceType) {\n return unconfiguredPlugins.map((p) => p.configure({ resourceType } as any));\n}\n\nexport { unconfiguredPlugins as unconfiguredTablePlugins };\n\nexport default TablePlugins;\n","import { Extension, Editor } from '@tiptap/core';\nimport { nanoid } from 'nanoid';\nimport { Plugin as StatePlugin, PluginKey as StatePluginKey, Transaction } from '@tiptap/pm/state';\nimport { Node } from '@tiptap/pm/model';\n\nexport const ATTRIBUTE_NAME = 'data-toc-id';\n\nlet updateTimeout: any = null;\nexport type GetIdFunction = (arg0?: any) => string;\n\nexport type TableOfContentPluginOptions = {\n getId: GetIdFunction;\n headingType?: string;\n};\n\nexport interface TocItem {\n id: string;\n isActive?: boolean;\n isScrolledOver?: boolean;\n [key: string]: any; // For any additional properties\n}\n\nexport interface Storage {\n content: any[];\n headlines: any[];\n scrollHandler: () => void;\n scrollPosition: number;\n parent: HTMLElement | null;\n}\n\nexport interface Heading {\n node: any;\n pos: number;\n}\n\nexport const createStorage = (): Storage => ({\n content: [],\n headlines: [],\n scrollHandler: () => null,\n scrollPosition: 0,\n parent: null,\n});\n\nexport const processHeadingNodes = (\n doc: any,\n headingType: string,\n getId: GetIdFunction,\n tr: Transaction\n) => {\n let modified = false;\n const existingIds: string[] = [];\n doc.descendants((node: Node, pos: number) => {\n if (node.type.name === headingType) {\n const tocId = node.attrs[ATTRIBUTE_NAME];\n if (tocId == null || existingIds.includes(tocId)) {\n const newId = getId ? getId(node.textContent) : nanoid(8);\n tr.setNodeMarkup(pos, undefined, { ...node.attrs, [ATTRIBUTE_NAME]: newId, id: newId });\n modified = true;\n }\n existingIds.push(tocId);\n }\n });\n return modified;\n};\n\nexport const createTableOfContentPlugin = ({\n getId,\n headingType = 'heading',\n}: TableOfContentPluginOptions) =>\n new StatePlugin({\n key: new StatePluginKey('tableOfContent'),\n appendTransaction(transactions, oldState, newState) {\n const tr = newState.tr;\n let modified = false;\n if (transactions.some((transaction) => transaction.docChanged)) {\n const existingIds: string[] = [];\n newState.doc.descendants((node: Node, pos: number) => {\n if (node.type.name === (headingType || 'heading')) {\n const tocId = node.attrs[ATTRIBUTE_NAME];\n if (tocId == null || existingIds.includes(tocId)) {\n const newId = getId?.(node.textContent) ?? nanoid(8);\n tr.setNodeMarkup(pos, undefined, {\n ...node.attrs,\n [ATTRIBUTE_NAME]: newId,\n id: newId,\n });\n modified = true;\n }\n existingIds.push(tocId);\n }\n });\n }\n\n return modified ? tr : null;\n },\n });\n\nexport interface MapTableOfContentParams {\n editor: Editor;\n headingType?: string;\n storage: Storage;\n onUpdate?: (tocItems: TocItem[], isEmpty: boolean) => void;\n}\n\nexport const mapTocItems = (\n tocItems: TocItem[],\n { editor, headingType = 'heading', storage, onUpdate }: MapTableOfContentParams\n) => {\n const headings: Heading[] = [];\n const scrolledOverIds: string[] = [];\n let activeId: string | null = null;\n\n editor.state.doc.descendants((node, pos) => {\n if (node.type.name === headingType) {\n headings.push({ node, pos });\n }\n });\n\n headings.forEach(({ node, pos }) => {\n let domNode: HTMLElement | null = null;\n if ((editor.view as any)?.docView) {\n domNode = editor.view.domAtPos(pos + 1).node as HTMLElement;\n }\n if (domNode && storage.scrollPosition >= domNode?.offsetTop) {\n activeId = node.attrs[ATTRIBUTE_NAME];\n scrolledOverIds.push(node.attrs[ATTRIBUTE_NAME]);\n }\n });\n\n tocItems = tocItems.map((item) => ({\n ...item,\n isActive: item.id === activeId,\n isScrolledOver: scrolledOverIds.includes(item.id),\n }));\n\n if (onUpdate) {\n const isEmpty = storage.content.length === 0;\n onUpdate(tocItems, isEmpty);\n }\n\n return tocItems;\n};\n\nexport interface UpdateTocParams {\n editor: Editor;\n onUpdate?: (tocItems: any[], isEmpty: boolean) => void;\n headingType?: string;\n storage: Storage;\n linearIndexes?: boolean;\n}\n\nconst updateTableOfContents = ({\n editor,\n onUpdate,\n headingType = 'heading',\n storage,\n linearIndexes,\n}: UpdateTocParams) => {\n const headings: Heading[] = [];\n let tocItems: TocItem[] = [];\n const domNodes: HTMLElement[] = [];\n\n // Collect all headings in the document\n editor.state.doc.descendants((node, pos) => {\n if (node.type.name === headingType) {\n headings.push({ node, pos });\n }\n });\n\n // Process each heading\n headings.forEach((heading, index) => {\n let domNode: HTMLElement | null = null;\n if ((editor.view as any)?.docView) {\n domNode = editor.view.domAtPos(heading.pos + 1).node as HTMLElement;\n }\n let isScrolledOver = false;\n if (domNode) {\n isScrolledOver = storage.scrollPosition >= domNode.offsetTop;\n domNodes.push(domNode);\n }\n\n const { level: originalLevel, textContent } = heading.node.attrs;\n const id = heading.node.attrs[ATTRIBUTE_NAME] ?? heading.node.attrs.id;\n let level = 1;\n let itemIndex = 1;\n\n if (!headings[index - 1]) {\n tocItems.push({\n itemIndex,\n id,\n originalLevel,\n level,\n textContent,\n pos: heading.pos,\n editor,\n isActive: false,\n isScrolledOver,\n node: heading.node,\n dom: domNode,\n });\n return;\n }\n\n const lastItem = tocItems.at(-1);\n const previousItemWithSameOrHigherLevel = [...tocItems]\n .reverse()\n .find((item) => item.originalLevel <= originalLevel);\n const previousLevel = previousItemWithSameOrHigherLevel?.level || 1;\n\n if (originalLevel > (lastItem?.originalLevel || 1)) {\n level = (lastItem?.level || 1) + 1;\n } else if (originalLevel < (lastItem?.originalLevel || 1)) {\n level = previousLevel;\n } else {\n level = lastItem?.level || 1;\n }\n\n if (linearIndexes) {\n itemIndex = (lastItem?.itemIndex || 1) + 1;\n } else {\n const itemsWithSameOrHigherLevel = tocItems.filter((item) => item.level <= level);\n itemIndex = (itemsWithSameOrHigherLevel.at(-1)?.itemIndex || 1) + 1;\n }\n\n tocItems.push({\n itemIndex,\n id,\n originalLevel,\n level,\n textContent,\n pos: heading.pos,\n editor,\n isActive: false,\n isScrolledOver,\n node: heading.node,\n dom: domNode,\n });\n });\n\n tocItems = mapTocItems(tocItems, { editor, onUpdate, headingType, storage });\n\n if (onUpdate) {\n const isEmpty = storage.content.length === 0;\n onUpdate(tocItems, isEmpty);\n }\n\n storage.headlines = domNodes;\n storage.content = tocItems;\n editor.state.tr.setMeta('toc', tocItems);\n editor.view.dispatch(editor.state.tr);\n};\n\nconst TableOfContent = Extension.create({\n name: 'tableOfContent',\n\n addStorage: createStorage,\n\n addGlobalAttributes() {\n return [\n {\n types: [this.options.headingType || 'heading'],\n attributes: {\n id: {\n default: null,\n renderHTML: (el) => ({ id: el.id }),\n parseHTML: (el) => el.id ?? null,\n },\n [ATTRIBUTE_NAME]: {\n default: null,\n renderHTML: (el) => ({ [ATTRIBUTE_NAME]: el[ATTRIBUTE_NAME] }),\n parseHTML: (el) => el.dataset.tocId ?? null,\n },\n },\n },\n ];\n },\n\n addOptions() {\n return {\n onUpdate: () => {},\n getId: () => nanoid(8),\n linearIndexes: !1,\n headingType: 'heading',\n scrollParentClass: '.__panel',\n updateDelay: 100,\n };\n },\n onUpdate() {\n clearTimeout(updateTimeout);\n updateTimeout = setTimeout(() => {\n updateTableOfContents({\n editor: this.editor,\n storage: this.storage,\n onUpdate: this.options.onUpdate?.bind(this),\n linearIndexes: this.options.linearIndexes,\n headingType: this.options.headingType,\n });\n }, this.options.updateDelay);\n },\n onDestroy() {\n // Remove the scroll event listener\n if (this.storage.parent) {\n this.storage.parent?.removeEventListener?.('scroll', this.storage.scrollHandler);\n }\n },\n onCreate() {\n const { tr } = this.editor.state;\n const existingIds: string[] = [];\n\n // Collect all headings in the document and assign unique IDs\n this.editor.state.doc.descendants((node, pos) => {\n if (node.type.name === this.options.headingType) {\n const tocId = node.attrs[ATTRIBUTE_NAME];\n if (tocId == null || existingIds.includes(tocId)) {\n const newId = this.options.getId ? this.options.getId(node.textContent) : nanoid(8);\n tr.setNodeMarkup(pos, undefined, { ...node.attrs, [ATTRIBUTE_NAME]: newId, id: newId });\n }\n existingIds.push(tocId);\n }\n });\n\n // Dispatch the transaction\n this.editor.view.dispatch(tr);\n\n // Update the table of contents\n updateTableOfContents({\n editor: this.editor,\n storage: this.storage,\n onUpdate: this.options.onUpdate?.(),\n linearIndexes: this.options.linearIndexes,\n headingType: this.options.headingType,\n });\n // Set up the scroll handler\n this.storage.scrollHandler = () => {\n let scrollPosition;\n const scrollParent = this.storage.parent;\n\n if (scrollParent instanceof HTMLElement) {\n scrollPosition = scrollParent.scrollTop;\n }\n\n this.storage.scrollPosition = scrollPosition ?? 0;\n\n this.storage.content = mapTocItems(this.storage.content, {\n editor: this.editor,\n headingType: this.options.headingType,\n storage: this.storage,\n onUpdate: this.options.onUpdate?.bind(this),\n });\n };\n\n if (!this.storage.parent) {\n this.storage.parent = this.editor.view.dom?.closest(this.options.scrollParentClass);\n this.storage.parent?.addEventListener?.('scroll', this.storage.scrollHandler);\n }\n },\n addProseMirrorPlugins() {\n return [\n createTableOfContentPlugin({\n getId: this.options.getId,\n headingType: this.options.headingType,\n }),\n ];\n },\n});\n\nexport {\n TableOfContent,\n createTableOfContentPlugin as TableOfContentPlugin,\n TableOfContent as default,\n};\n","/**\n * Copied & modified from https://github.com/ueberdosis/tiptap/blob/main/packages/extension-character-count/src/character-count.ts\n */\nimport { Extension } from '@tiptap/core';\nimport { Node as ProseMirrorNode } from '@tiptap/pm/model';\nimport { Plugin, PluginKey } from '@tiptap/pm/state';\n\nexport interface CharacterCountOptions {\n /**\n * The maximum number of characters that should be allowed. Defaults to `0`.\n */\n limit: number | null | undefined;\n /**\n * The mode by which the size is calculated. Defaults to 'textSize'.\n */\n mode: 'textSize' | 'nodeSize';\n /**\n * Callback, useful for performing display actions when the user attempts\n * to surpass the defined limit.\n */\n onLimitReached: () => void;\n}\n\nexport interface CharacterCountStorage {\n /**\n * Get the number of characters for the current document.\n */\n characters: (options?: { node?: ProseMirrorNode; mode?: 'textSize' | 'nodeSize' }) => number;\n\n /**\n * Get the number of words for the current document.\n */\n words: (options?: { node?: ProseMirrorNode }) => number;\n}\n\nexport const CharacterCount = Extension.create({\n name: 'characterCount',\n\n addOptions() {\n return {\n limit: null,\n mode: 'textSize',\n onLimitReached: () => {},\n };\n },\n\n addStorage() {\n return {\n characters: () => 0,\n words: () => 0,\n };\n },\n\n onBeforeCreate() {\n this.storage.characters = (options) => {\n const node = options?.node || this.editor.state.doc;\n const mode = options?.mode || this.options.mode;\n\n if (mode === 'textSize') {\n const text = node.textBetween(0, node.content.size, undefined, ' ');\n\n return text.length;\n }\n\n return node.nodeSize;\n };\n\n this.storage.words = (options) => {\n const node = options?.node || this.editor.state.doc;\n const text = node.textBetween(0, node.content.size, ' ', ' ');\n const words = text.split(' ').filter((word) => word !== '');\n\n return words.length;\n };\n },\n\n addProseMirrorPlugins() {\n return [\n new Plugin({\n key: new PluginKey('characterCount'),\n filterTransaction: (transaction, state) => {\n const limit = this.options.limit;\n\n // Nothing has changed or no limit is defined. Ignore it.\n if (!transaction.docChanged || limit === 0 || limit === null || limit === undefined) {\n return true;\n }\n\n const oldSize = this.storage.characters({ node: state.doc });\n const newSize = this.storage.characters({ node: transaction.doc });\n\n // Everything is in the limit. Good.\n if (newSize <= limit) {\n return true;\n }\n\n // The limit has already been exceeded but will be reduced.\n if (oldSize > limit && newSize > limit && newSize <= oldSize) {\n return true;\n }\n\n // The limit has already been exceeded and will be increased further.\n if (oldSize > limit && newSize > limit && newSize > oldSize) {\n this.options.onLimitReached();\n return false;\n }\n\n const isPaste = transaction.getMeta('paste');\n\n // Block all exceeding transactions that were not pasted.\n if (!isPaste) {\n this.options.onLimitReached();\n return false;\n }\n\n // For pasted content, we try to remove the exceeding content.\n const pos = transaction.selection.$head.pos;\n const over = newSize - limit;\n const from = pos - over;\n const to = pos;\n\n // It’s probably a bad idea to mutate transactions within `filterTransaction`\n // but for now this is working fine.\n transaction.deleteRange(from, to);\n\n // In some situations, the limit will continue to be exceeded after trimming.\n // This happens e.g. when truncating within a complex node (e.g. table)\n // and ProseMirror has to close this node again.\n // If this is the case, we prevent the transaction completely.\n const updatedSize = this.storage.characters({ node: transaction.doc });\n\n if (updatedSize > limit) {\n this.options.onLimitReached();\n return false;\n }\n\n return true;\n },\n }),\n ];\n },\n});\n","import { Extension } from '@tiptap/core';\n\ndeclare module '@tiptap/core' {\n interface Commands {\n customTable: {\n clearMarks: () => ReturnType;\n };\n }\n}\n\n/**\n * This extension manually clears all marks\n * before inserting a new paragraph.\n */\nconst CustomEnter = Extension.create({\n name: 'customEnter',\n addCommands() {\n return {\n clearMarks:\n () =>\n ({ tr }) => {\n tr.setStoredMarks([]);\n return true;\n },\n };\n },\n addKeyboardShortcuts() {\n return {\n Enter: ({ editor }) => {\n editor.commands.clearMarks();\n /**\n * Here we're returning false because we want to fall back\n * to the default enter behaviour, but not before clearing marks.\n */\n return false;\n },\n };\n },\n});\n\nexport default CustomEnter;\n","import { defineComponent as _defineComponent } from 'vue'\nimport { resolveDynamicComponent as _resolveDynamicComponent, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nimport { computed, defineAsyncComponent } from 'vue';\nimport { InlineMediaType } from '@superthread-com/extension-inline-media/src/index';\nimport type EditorService from '@/services/EditorService';\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'SpecificMedia',\n props: {\n type: {},\n editor: {}\n },\n setup(__props: any) {\n\nconst props = __props;\n\nconst comp = computed(() => {\n if (props.type === InlineMediaType.Video) {\n return defineAsyncComponent(() => import(/* webpackChunkName: \"genericMedia\" */ './Video.vue'));\n } else {\n return defineAsyncComponent(() => import(/* webpackChunkName: \"genericMedia\" */ './File.vue'));\n }\n});\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(_resolveDynamicComponent(comp.value), {\n editor: props.editor\n }, null, 8, [\"editor\"]))\n}\n}\n\n})","\n\n\n\n\n","import script from \"./SpecificMedia.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./SpecificMedia.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./SpecificMedia.vue?vue&type=style&index=0&id=9c091100&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, normalizeClass as _normalizeClass, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nimport { NodeViewWrapper } from '@tiptap/vue-3';\nimport type { Node as ProseMirrorNode } from '@tiptap/pm/model';\nimport { computed, provide } from 'vue';\nimport SpecificMedia from './specificMedia/SpecificMedia.vue';\nimport { Editor } from '@tiptap/core';\nimport { InlineMediaType } from '@superthread-com/extension-inline-media/src/index';\n\n/**\n * The correct type definition would be:\n * const props = defineProps();\n *\n * However, that is not supported in Vue 2, so the type must be\n * specified like this.\n */\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'GenericMedia',\n props: {\n node: {},\n deleteNode: { type: Function },\n editor: {},\n updateAttributes: {}\n },\n setup(__props: any) {\n\nconst props = __props;\n\nprovide(\n 'node',\n computed(() => props.node)\n);\nprovide('deleteNode', props.deleteNode);\nprovide('editor', props.editor);\nprovide('updateAttributes', props.updateAttributes);\n\nfunction mt(mediaType: InlineMediaType) {\n return props.node.attrs.mediaType === mediaType;\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(_unref(NodeViewWrapper), {\n class: _normalizeClass([\"generic-file-wrapper\", {\n '!w-full': mt(_unref(InlineMediaType).Video),\n 'w-[260px]': props?.node?.attrs?.mediaType === _unref(InlineMediaType).File,\n }]),\n \"data-block-id\": props?.node?.attrs?.['block-id']\n }, {\n default: _withCtx(() => [\n _createVNode(SpecificMedia, {\n type: props.node.attrs.mediaType,\n editor: props.editor\n }, null, 8, [\"type\", \"editor\"])\n ]),\n _: 1\n }, 8, [\"class\", \"data-block-id\"]))\n}\n}\n\n})","\n\n\n\n\n","import script from \"./GenericMedia.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./GenericMedia.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./GenericMedia.vue?vue&type=style&index=0&id=34a16512&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, normalizeClass as _normalizeClass, withCtx as _withCtx, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"media-thumbnail flex justify-center items-center min-w-[4rem] w-16 h-16\"\n}\nconst _hoisted_2 = {\n key: 1,\n class: \"w-full flex items-center justify-center h-full gap-3\"\n}\nconst _hoisted_3 = { class: \"flex justify-centerflex justify-center items-center w-16 h-16 min-w-[4rem]\" }\nconst _hoisted_4 = {\n key: 2,\n class: \"flex flex-col justify-between overflow-hidden text-ellipsis select-none w-full selection:bg-transparent\"\n}\nconst _hoisted_5 = { class: \"text-sm font-medium text-ellipsis text-emphasised-text overflow-hidden whitespace-nowrap select-none\" }\nconst _hoisted_6 = { class: \"text-sm text-deEmphasised-text text-ellipsis overflow-hidden whitespace-nowrap select-none\" }\n\nimport { NodeViewWrapper } from '@tiptap/vue-3';\nimport {\n InlineMediaType,\n PlaceholderStatus,\n} from '@superthread-com/extension-inline-media/src/index';\nimport type { Node } from '@tiptap/pm/model';\nimport useTranslate from '@/utilities/composables/useTranslate';\nimport { computed, watch } from 'vue';\nimport CircularProgress from '@/components/elements/CircularProgress';\nimport { useTimeoutFn } from '@vueuse/core';\nimport { useStore } from 'vuex';\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'GenericMediaPlaceholder',\n props: {\n node: {},\n updateAttributes: {},\n deleteNode: {}\n },\n setup(__props: any) {\n\n/**\n * NOTE: This component relies heavily on watchers since not every information\n * is available before rendering. Information such as wether we own the upload\n * or not are only computed later, so we assume the initial state is incorrect,\n * thus any logic in onMounted is assumed to be unreliable.\n */\nconst { translate } = useTranslate();\n\nconst props = __props;\n\nconst store = useStore();\n\n/**\n * Local progress. It only changes values if the current\n * client owns the upload.\n */\nconst progress = computed(\n () =>\n store.state.editors.uploading.find((u: any) => u.id === props.node.attrs.uploadId)?.progress ??\n 0\n);\n\n/**\n * Indicates wether we're the ones currently uploading this file.\n */\nconst owner = computed(\n () => !!store.state.editors.uploading.find((u: any) => u.id === props.node.attrs.uploadId)\n);\n\nwatch(progress, (newValue) => {\n props.updateAttributes({\n uploadProgress: newValue,\n });\n});\n\n/**\n * This timer is immediately started, since we cannot tell\n * from the start wether we own the upload or not - the\n * store which we rely upon updates later.\n */\nconst { start: startCheck, stop: stopCheck } = useTimeoutFn(() => {\n if (!owner.value) {\n props.updateAttributes({\n status: PlaceholderStatus.CheckActive,\n });\n }\n}, 3000);\n\n/**\n * This timer does not start immediately, since this is a function that\n * transtitions the state from CHECK_ACTIVE to INACTIVE.\n * The initial state is ACTIVE.\n */\nconst { start: startInactivation, stop: stopInactivation } = useTimeoutFn(\n () => {\n props.updateAttributes({\n status: PlaceholderStatus.Inactive,\n });\n },\n 3000,\n { immediate: false }\n);\n\n/**\n * The collaborative progress. This does not require for\n * the client to be an owner to see the value.\n */\nconst syncedProgress = computed(() => props.node.attrs.progress);\n\nwatch(syncedProgress, () => {\n /**\n * If the progress changes, it is a clear sign of activity.\n * Update the attribute to ACTIVE, if it is in the CHECK_ACTIVE state.\n */\n if (props.node.attrs.status === PlaceholderStatus.CheckActive) {\n props.updateAttributes({\n status: PlaceholderStatus.Active,\n });\n }\n});\n\nconst syncedStatus = computed(() => props.node.attrs.status);\n\nwatch(syncedStatus, (newStatus) => {\n switch (newStatus) {\n /**\n * The new status is ACTIVE\n * Stop the pending inactivation.\n * Reset the check timer.\n */\n case PlaceholderStatus.Active:\n stopInactivation();\n stopCheck();\n startCheck();\n break;\n /**\n * The new status is CHECK_ACTIVE\n */\n case PlaceholderStatus.CheckActive:\n if (owner.value) {\n /**\n * If we own the upload:\n * Reset to ACTIVE.\n */\n props.updateAttributes({\n status: PlaceholderStatus.Active,\n });\n } else {\n /**\n * If we do not own the upload:\n * Stop the pending check.\n * Start the inactivation timer.\n */\n stopCheck();\n startInactivation();\n }\n break;\n /**\n * The new status is INACTIVE\n * Stop all timers.\n * Remove the node.\n */\n case PlaceholderStatus.Inactive:\n stopCheck();\n stopInactivation();\n props.deleteNode();\n if (owner.value) {\n store.dispatch('removeEditorUpload', props.node.attrs);\n }\n break;\n }\n});\n\n/**\n * Function used for shortening the media type check, so\n * that the component is more readable.\n */\nfunction mt(mediaType: InlineMediaType) {\n return props.node?.attrs?.mediaType === mediaType;\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(_unref(NodeViewWrapper), {\n class: _normalizeClass([\"generic-file-wrapper\", {\n '!w-full': mt(_unref(InlineMediaType).Video),\n }])\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"generic-media-file-placeholder gap-2\", {\n 'h-[24.609rem] w-full max-w-full justify-center !p-0': mt(_unref(InlineMediaType).Video),\n 'box-border w-[260px] max-w-[260px] min-h-[80px] gap-2.5': mt(_unref(InlineMediaType).File),\n }])\n }, [\n (mt(_unref(InlineMediaType).File))\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_1, [\n _createVNode(_unref(CircularProgress), {\n \"transition-duration\": 300,\n radius: 16,\n \"stroke-width\": 4,\n value: props.node.attrs.uploadProgress ?? 0,\n class: \"card-attachment-load-spiner\"\n }, null, 8, [\"value\"])\n ]))\n : _createCommentVNode(\"\", true),\n _cache[1] || (_cache[1] = _createTextVNode()),\n (mt(_unref(InlineMediaType).Video))\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_2, [\n _createElementVNode(\"span\", _hoisted_3, [\n _createVNode(_unref(CircularProgress), {\n \"transition-duration\": 300,\n radius: 16,\n \"stroke-width\": 4,\n value: props.node.attrs.uploadProgress ?? 0,\n class: \"card-attachment-load-spiner\"\n }, null, 8, [\"value\"])\n ]),\n _createTextVNode(\" \" + _toDisplayString(props.node.attrs.uploadProgress ?? 0) + \"% \" + _toDisplayString(_unref(translate)('uploaded').toLowerCase()), 1)\n ]))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, _toDisplayString(_ctx.node.attrs.fileName), 1),\n _cache[0] || (_cache[0] = _createTextVNode()),\n _createElementVNode(\"span\", _hoisted_6, _toDisplayString(props.node.attrs.uploadProgress ?? 0) + \"% \" + _toDisplayString(_unref(translate)('uploaded').toLowerCase()), 1)\n ]))\n ], 2)\n ]),\n _: 1\n }, 8, [\"class\"]))\n}\n}\n\n})","\n\n\n\n\n","import script from \"./GenericMediaPlaceholder.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./GenericMediaPlaceholder.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./GenericMediaPlaceholder.vue?vue&type=style&index=0&id=6ed9954e&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-6ed9954e\"]])\n\nexport default __exports__","import { VueNodeViewRenderer } from '@tiptap/vue-3';\nimport GenericMediaComponent from './GenericMedia.vue';\nimport GenericMediaPlaceholderComponent from './GenericMediaPlaceholder.vue';\nimport {\n InlineMediaType,\n GenericMediaNode as BaseGenericMediaNode,\n GenericMediaPlaceholder as BaseGenericMediaPlaceholder,\n} from '@superthread-com/extension-inline-media/src/index';\n\nexport const GenericMediaNode = BaseGenericMediaNode.extend({\n addNodeView() {\n return VueNodeViewRenderer(GenericMediaComponent as any);\n },\n});\n\nexport const GenericMediaPlacholder = BaseGenericMediaPlaceholder.extend({\n addNodeView() {\n return VueNodeViewRenderer(GenericMediaPlaceholderComponent as any);\n },\n});\n\nexport { InlineMediaType };\n","import { Extension } from '@tiptap/core';\nimport { Plugin, PluginKey } from '@tiptap/pm/state';\nimport { Node, Slice, Fragment } from '@tiptap/pm/model';\nimport constants from '@/utilities/constants';\nimport { InlineMediaNode } from '@superthread-com/extension-inline-media/src/index';\n\nconst ignoredNodes = [constants.stImage, InlineMediaNode.Generic];\nconst filterNodes = (fragment: Fragment) => {\n const nodes: Node[] = [];\n fragment.forEach((child) => {\n if (!ignoredNodes.includes(child.type.name)) {\n nodes.push(child);\n }\n });\n return Fragment.fromArray(nodes);\n};\nconst FilterFiles = Extension.create({\n name: 'filterFiles',\n\n addProseMirrorPlugins() {\n return [\n new Plugin({\n key: new PluginKey('filterFiles'),\n props: {\n transformPasted(slice) {\n return new Slice(filterNodes(slice.content), slice.openStart, slice.openEnd);\n },\n },\n }),\n ];\n },\n});\n\nexport default FilterFiles;\n","import { Extension } from '@tiptap/core';\nimport { checkIsApple } from '@/utilities/isApple';\n\n/**\n * This extension is used to add custom keyboard shortcuts.\n */\nconst customShortcuts = Extension.create({\n name: 'customShortcuts',\n\n addKeyboardShortcuts() {\n const shortcuts: Record boolean> = {};\n\n if (checkIsApple()) {\n shortcuts['Mod-Shift-x'] = () => this.editor.commands.toggleStrike();\n } else {\n shortcuts['Ctrl-Shift-x'] = () => this.editor.commands.toggleStrike();\n }\n\n return shortcuts;\n },\n});\n\nexport default customShortcuts;\n","import { mergeAttributes, Node } from '@tiptap/core';\nimport { BoardLayout } from '@superthread-com/api';\n\ndeclare module '@tiptap/core' {\n interface Commands {\n embedBoard: {\n /**\n * Embed a board\n */\n embedBoard: (options: { boardId: string }) => ReturnType;\n };\n }\n}\n\nexport interface EmbedBoardOptions {\n plugins?: any[];\n HTMLAttributes?: Record;\n tagName: string;\n}\n\nexport default Node.create({\n name: 'embedBoard',\n\n addOptions() {\n return {\n HTMLAttributes: {},\n tagName: 'board-embed',\n };\n },\n\n group() {\n return 'block';\n },\n\n draggable: true,\n\n addStorage() {\n return {};\n },\n\n addAttributes() {\n return {\n 'board-id': {\n isRequired: true,\n // make sure that the board id is always a string\n parseHTML: (element) => element.getAttribute('board-id'),\n },\n layout: {\n default: BoardLayout.Board,\n },\n 'full-width': {\n default: true,\n },\n 'read-only': {\n default: false,\n },\n };\n },\n\n parseHTML() {\n return [\n {\n tag: 'board-embed[board-id]',\n },\n ];\n },\n\n renderHTML({ HTMLAttributes }) {\n return [\n this.options.tagName,\n mergeAttributes(this.options.HTMLAttributes || {}, HTMLAttributes),\n ];\n },\n\n addCommands() {\n return {\n embedBoard:\n (options) =>\n ({ commands }) => {\n return commands.insertContent({\n type: this.name,\n attrs: {\n ...options,\n },\n });\n },\n };\n },\n});\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, mergeProps as _mergeProps, createTextVNode as _createTextVNode, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, withCtx as _withCtx } from \"vue\"\n\nconst _hoisted_1 = { class: \"relative\" }\n\nimport { NodeViewWrapper } from '@tiptap/vue-3';\nimport { computed, onMounted, provide, ref, nextTick } from 'vue';\nimport { useStore } from 'vuex';\nimport BoardView from '../../pages/BoardView.vue';\nimport HeaderCustom from '../../widgets/HeaderCustom.vue';\nimport { ResourceType } from '@/types/resources';\nimport { Node } from '@tiptap/pm/model';\nimport EventBus from '@/utilities/eventBus';\nimport ItemNotFound from '@/components/widgets/ItemNotFound';\nimport constants from '@/utilities/constants';\n\n\nconst __default__ = {\n name: 'BoardEmbed',\n};\n\nexport default /*@__PURE__*/_defineComponent({\n ...__default__,\n props: {\n node: {},\n updateAttributes: {},\n deleteNode: {},\n getPos: {},\n editor: {}\n },\n setup(__props: any) {\n\nconst props = __props;\n\nconst store = useStore();\nconst flatBoards = computed(() => store.getters.getFlatBoards);\n\nconst currentBoard = computed(() => flatBoards.value[props.node.attrs['board-id']] || {});\nconst localBoardLayout = ref(currentBoard.value?.layout);\nconst localGroupBy = ref('status');\nconst localSortBy = ref('manual');\nconst hideEmptyGroups = ref(false);\n\nconst currentLayout = computed(() => {\n return localBoardLayout.value || currentBoard.value?.layout;\n});\n\nonMounted(() => {\n // Update layout if it's updated on the board itself\n if ((currentBoard as any).value.layout !== props.node.attrs.layout && props.editor.id) {\n nextTick(() => {\n props?.updateAttributes?.({ layout: (currentBoard as any).value.layout });\n });\n }\n});\n\nconst updateAttribute = (attr: any) => {\n const [key] = Object.keys(attr);\n switch (key) {\n case 'layout':\n localBoardLayout.value = attr[key];\n return;\n case 'group-by':\n localGroupBy.value = attr[key];\n return;\n case 'sort-by':\n localSortBy.value = attr[key];\n return;\n case 'hide-empty-groups':\n hideEmptyGroups.value = attr[key];\n return;\n case 'full-width':\n // used to force small screen view for table of content\n EventBus.$emit('updateFullWidth', {\n editorId: props.editor.id,\n value: attr[key],\n boardId: props.node.attrs['board-id'],\n });\n }\n props.updateAttributes(attr);\n};\n\nprovide(\n 'embeddedBoardAttributes',\n computed(() => ({\n boardId: props.node.attrs['board-id'],\n layout: currentLayout.value,\n fullWidth: props.node.attrs['full-width'],\n readOnly: props.node.attrs['read-only'],\n groupBy: localGroupBy.value,\n sortBy: localSortBy.value,\n getPos: props.getPos,\n editor: props.editor,\n hideEmptyGroups: hideEmptyGroups.value,\n deleteNode: props.deleteNode,\n }))\n);\nprovide('embed', true);\n\nconst showItemNotFound = computed(() => {\n const boardId = props.node.attrs['board-id'];\n return flatBoards.value[`${boardId}_notFound`];\n});\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(_unref(NodeViewWrapper), {\n class: _normalizeClass([\"embedded-board show-selection ignore-editor-line-height max-w-full border border-solid border-important-border rounded-lg my-2\", { 'w-full': _ctx.node.attrs[_unref(constants).fullWidth] }])\n }, {\n default: _withCtx(() => [\n _createVNode(HeaderCustom, {\n class: \"rounded-t-lg\",\n \"resource-id\": _ctx.node.attrs['board-id'],\n \"current-layout\": _ctx.node.attrs.layout,\n \"resource-type\": _unref(ResourceType).Board,\n onUpdateAttribute: updateAttribute\n }, null, 8, [\"resource-id\", \"current-layout\", \"resource-type\"]),\n _cache[1] || (_cache[1] = _createTextVNode()),\n _createElementVNode(\"div\", _hoisted_1, [\n (showItemNotFound.value)\n ? (_openBlock(), _createBlock(_unref(ItemNotFound), {\n key: 0,\n class: \"border rounded-lg\"\n }))\n : _createCommentVNode(\"\", true),\n _cache[0] || (_cache[0] = _createTextVNode()),\n _createVNode(BoardView, _mergeProps(_ctx.node.attrs, {\n class: \"rounded-lg\",\n \"editor-id\": _ctx.editor.id,\n \"board-id\": _ctx.node.attrs['board-id'],\n \"cards-layout\": currentLayout.value\n }), null, 16, [\"editor-id\", \"board-id\", \"cards-layout\"])\n ])\n ]),\n _: 1\n }, 8, [\"class\"]))\n}\n}\n\n})","\n\n\n\n\n\n\n","import script from \"./BoardEmbed.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./BoardEmbed.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./BoardEmbed.vue?vue&type=style&index=0&id=0724dd44&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { createVNode, render } from 'vue';\nimport { EditorState, Plugin, PluginKey } from '@tiptap/pm/state';\nimport { Decoration, DecorationSet } from '@tiptap/pm/view';\nimport ApplyTemplate from '@/components/widgets/ApplyTemplate.vue';\nimport { Editor } from '@tiptap/core';\nimport { ResourceType } from '@/types/resources';\n\nconst key = new PluginKey('contentMenu');\n\ntype DecorationBuilderProp = {\n state: EditorState;\n resourceType: ResourceType;\n editor: any;\n};\n\nlet vnode: any = null;\nlet preventDecorationCreation = false;\n\nexport const createContentMenuDecoration = ({\n state,\n resourceType,\n editor,\n}: DecorationBuilderProp) => {\n if (preventDecorationCreation) return DecorationSet.empty;\n const decoration = Decoration.widget(state.selection.from, () => {\n const container = document?.createElement('div');\n const menuElement = document?.createElement('div');\n if (!editor.resourceType) return container;\n menuElement.id = 'content-menu';\n container.id = 'content-menu-container';\n container.style.position = 'absolute';\n container.style.top = '50px';\n vnode = createVNode(ApplyTemplate, {\n resourceType,\n enableTooltip: false,\n pageViewTemplate: true,\n key: editor.id,\n });\n\n if (!editor.appContext) return container;\n vnode.appContext = editor.appContext;\n render(vnode, menuElement);\n container?.appendChild(menuElement);\n document?.body?.appendChild(container);\n\n return container;\n });\n\n const decorationSet = DecorationSet.create(state.doc, [decoration]);\n\n return decorationSet || DecorationSet.empty;\n};\nexport type contentMenuPluginProps = {\n editor: Editor;\n resourceType: ResourceType;\n};\nconst contentMenuPlugin = ({ editor, resourceType }: contentMenuPluginProps) => {\n return new Plugin({\n key,\n state: {\n init() {\n return {\n decoration: DecorationSet.empty,\n };\n },\n apply(tr, stateValue, oldState, newState) {\n const meta = tr.getMeta('contentMenu');\n switch (meta?.type) {\n case 'remove':\n preventDecorationCreation = true;\n return { ...stateValue, decoration: DecorationSet.empty, componentInstance: null };\n case 'preventDecorationCreation':\n preventDecorationCreation = meta.value;\n break;\n default:\n break;\n }\n let emptyEditor = false;\n const { firstChild, childCount } = newState.doc;\n if (firstChild) {\n const { type, content } = firstChild;\n emptyEditor = childCount === 1 && type.name === 'paragraph' && content.size === 0;\n }\n if (!emptyEditor) {\n return { ...stateValue, decoration: DecorationSet.empty };\n }\n preventDecorationCreation = false;\n const [decoration] = stateValue.decoration.find();\n // if decoration is already present, don't remove it and don't create a new one\n if (decoration) {\n return { ...stateValue };\n }\n\n const newDecoration = createContentMenuDecoration({\n state: newState,\n resourceType,\n editor,\n });\n return { ...stateValue, decoration: newDecoration, componentInstance: vnode?.component };\n },\n },\n\n view(editorView) {\n const pluginKey = this?.key;\n return {\n destroy() {\n const currentState = pluginKey?.getState(editorView.state);\n\n if (currentState?.query) {\n currentState.query.viewDestroy();\n }\n },\n };\n },\n props: {\n decorations(state) {\n return this.getState(state)?.decoration;\n },\n },\n });\n};\n\nexport default contentMenuPlugin;\n","import { Extension } from '@tiptap/core';\nimport contentMenuPlugin from './contentMenuPlugin';\n\nconst ContentMenu = Extension.create({\n name: 'contentmenu',\n\n addProseMirrorPlugins() {\n const { resourceType } = this.options;\n return [contentMenuPlugin({ editor: this.editor, resourceType })];\n },\n});\n\nexport default ContentMenu;\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"flex w-full\" }\nconst _hoisted_2 = [\"data-placeholder\", \"contenteditable\"]\n\nimport { NodeViewWrapper, NodeViewContent } from '@tiptap/vue-3';\nimport { ref, onMounted, nextTick, computed } from 'vue';\nimport type { Node as ProseMirrorNode } from '@tiptap/pm/model';\nimport { Editor } from '@tiptap/core';\nimport { CalloutTypes } from '@superthread-com/extension-callouts/src/index';\nimport useCustomIcon from '@/utilities/composables/useCustomIcon';\nimport useTranslate from '@/utilities/composables/useTranslate';\nimport FilterDropdown from '@/components/widgets/filters/FilterDropdown.vue';\n\n/**\n * The correct type definition would be:\n * const props = defineProps();\n *\n * However, that is not supported in Vue 2, so the type must be\n * specified like this.\n */\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'Callout',\n props: {\n node: {},\n deleteNode: { type: Function },\n editor: {},\n updateAttributes: { type: Function }\n },\n setup(__props: any) {\n\nconst { iconPath, getCustomIconStyle } = useCustomIcon();\nconst props = __props;\nconst { translate } = useTranslate();\nconst calloutIcons = ref({\n info: 'info',\n success: 'check-square',\n warning: 'alert-triangle',\n error: 'x-octagon',\n} as Record);\n\nconst calloutTranslationKeys = {\n info: 'information',\n success: 'success',\n warning: 'warning',\n error: 'error',\n} as Record;\n\nconst showDropdown = ref(false);\nconst body = ref(window.document.body);\nconst filterPopup = ref();\n\nconst mentionActive = computed(() => props.editor.extensionStorage.mention.mentionDropdownActive);\n\nonMounted(() => {\n nextTick(() => {\n if (props.editor.isEditable) {\n showDropdown.value = true;\n }\n });\n});\n\nconst dropdownItems = (Object.keys(CalloutTypes) as Array).map(\n (key: keyof typeof CalloutTypes) => {\n const id = CalloutTypes[key];\n return {\n id: id,\n customIcon: true,\n lighter: true,\n icon: calloutIcons.value[id],\n label: translate(calloutTranslationKeys[id]),\n };\n }\n);\n\nconst handleOnShow = () => {\n if (!props.editor.isEditable) return false;\n nextTick(() => {\n filterPopup?.value?.searchInput?.focus();\n });\n return true;\n};\n\nconst handleClick = (item: any, hide: Function) => {\n hide?.();\n props.updateAttributes({ type: item.id });\n props.editor.commands.focus();\n};\n\nconst handleEsc = (hide: Function) => {\n hide?.();\n props.editor.commands.focus();\n};\n\nconst handleOnHide = () => {\n props.updateAttributes({ showDropdownOnCreate: false });\n};\n\nreturn (_ctx: any,_cache: any) => {\n const _component_v_popover = _resolveComponent(\"v-popover\")!\n\n return (_openBlock(), _createBlock(_unref(NodeViewWrapper), {\n class: _normalizeClass([\"callout\", props.node.attrs.type]),\n \"data-block-id\": props?.node?.attrs?.['block-id']\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createVNode(_component_v_popover, {\n interactive: \"\",\n tag: \"div\",\n \"content-tag\": \"div\",\n placement: \"bottom-start\",\n trigger: \"click\",\n role: 'poper',\n \"show-on-create\": props.node.attrs.showDropdownOnCreate,\n \"append-to\": body.value,\n \"on-show\": handleOnShow,\n \"on-hide\": handleOnHide\n }, {\n default: _withCtx(({ state }) => [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"callout-icon-wrap\", {\n 'bg-attention-icon': state.isVisible && props.editor.isEditable,\n }])\n }, [\n _createElementVNode(\"em\", {\n style: _normalizeStyle(_unref(getCustomIconStyle)(_unref(iconPath)(calloutIcons.value[props.node.attrs.type] || 'info'))),\n class: \"callout-icon custom-icons\",\n contenteditable: \"false\"\n }, null, 4)\n ], 2)\n ]),\n content: _withCtx(({ state, hide }) => [\n (state.isVisible)\n ? (_openBlock(), _createBlock(FilterDropdown, {\n key: 0,\n ref_key: \"filterPopup\",\n ref: filterPopup,\n \"search-results\": _unref(dropdownItems),\n \"selected-item-check\": \n _unref(dropdownItems).findIndex((item) => item.id === props.node.attrs.type)\n ,\n \"on-item-right-side-click\": (item) => handleClick(item, hide),\n \"on-item-click\": (item) => handleClick(item, hide),\n \"hide-filter-popup\": () => {},\n placeholder: '',\n \"show-search-input\": false,\n onEsc: ($event: any) => (handleEsc(hide))\n }, null, 8, [\"search-results\", \"selected-item-check\", \"on-item-right-side-click\", \"on-item-click\", \"onEsc\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"show-on-create\", \"append-to\"]),\n _cache[1] || (_cache[1] = _createTextVNode()),\n _createElementVNode(\"span\", {\n class: _normalizeClass([\"callout-content\", {\n 'suggestion-active': mentionActive.value,\n }]),\n \"data-placeholder\": _unref(translate)('typeSomething'),\n contenteditable: props.editor.isEditable\n }, [\n _createVNode(_unref(NodeViewContent))\n ], 10, _hoisted_2)\n ])\n ]),\n _: 1\n }, 8, [\"class\", \"data-block-id\"]))\n}\n}\n\n})","\n\n\n\n\n","import script from \"./Callout.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Callout.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Callout.vue?vue&type=style&index=0&id=0ed9779c&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { Selection } from '@tiptap/pm/state';\nimport { Editor } from '@tiptap/core';\n\nfunction defaultBlockAt(match: any) {\n for (let i = 0; i < match.edgeCount; i++) {\n const { type } = match.edge(i);\n if (type.isTextblock && !type.hasRequiredAttrs()) return type;\n }\n return null;\n}\n\nexport default function exitBlockAbove(editor: Editor, nodeName: string) {\n const { state } = editor;\n const { selection } = state;\n const { dispatch } = editor.view;\n const { $anchor, $head } = selection;\n const isAtStart = $anchor.pos === 1;\n if ($anchor.parent.type.name !== nodeName || !isAtStart) {\n return false;\n }\n\n if (!$head.parent.type.spec.code || !$head.sameParent($anchor)) return false;\n const above = $head.node(-1),\n before = $head.index(-1),\n type = defaultBlockAt(above.contentMatchAt(before));\n if (!type || !above.canReplaceWith(before, before, type)) return false;\n if (dispatch) {\n const pos = $head.before(),\n tr = state.tr.replaceWith(pos, pos, type.createAndFill());\n tr.setSelection(Selection.near(tr.doc.resolve(pos), -1));\n dispatch(tr.scrollIntoView());\n }\n return true;\n}\n\nexport { defaultBlockAt, exitBlockAbove };\n","import BlockHoverMenu from '@/components/editor/BlockHoverMenu';\nimport InternalLinkNode from '@/components/editor/nodeViews/InternalLinkNode';\nimport MediaResize from '@/components/editor/nodeViews/MediaResize';\nimport MentionNode from '@/components/editor/nodeViews/MentionNode';\nimport StImagePlaceholderNodeView from '@/components/editor/nodeViews/StImagePlaceholder';\nimport LinkTooltip from '@/components/editor/popups/LinkTooltip';\nimport constants from '@/utilities/constants';\nimport useDisplayImageFullScreen from '@/utilities/composables/useDisplayImageFullScreen';\nimport EventBus from '@/utilities/eventBus';\nimport getFileIdFromUrl from '@/utilities/getFileIdFromUrl';\nimport getTextNodeFromPoint from '@/utilities/getTextNodeFromPoint';\nimport { isNotInternalLink, getInternalLinkProps } from '@/utilities/internalLink';\nimport Comment from '@superthread-com/extension-comment/src/index';\nimport StImage from '@superthread-com/extension-image/src/index';\nimport StImagePlaceholder from '@superthread-com/extension-image-placeholder/src/index';\nimport InternalLink from '@superthread-com/extension-internal-link/src/index';\nimport CustomUserMention from '@superthread-com/extension-mention/src/index';\nimport { HorizontalRuleOptions } from '@tiptap/extension-horizontal-rule';\nimport PreCommentHighlight from '@/components/editor/plugins/PrecommentHighlight';\nimport TaskItem from '@superthread-com/extension-task-item/src/index';\nimport { ListItem } from '@tiptap/extension-list-item';\nimport Youtube from '@tiptap/extension-youtube';\nimport UniqueId from '@tiptap-pro/extension-unique-id';\nimport { Editor, EditorOptions, VueNodeViewRenderer, findChildren } from '@tiptap/vue-3';\nimport InternalLinkRenderExtend from '../helpers/InternalLinkRenderExtend';\nimport Code from '@tiptap/extension-code';\nimport { Collaboration, isChangeOrigin } from '@tiptap/extension-collaboration';\nimport CollaborationCursor from '@tiptap/extension-collaboration-cursor';\nimport Link from '@tiptap/extension-link';\nimport Placeholder from '@tiptap/extension-placeholder';\nimport TaskList from '@tiptap/extension-task-list';\nimport Typography from '@tiptap/extension-typography';\nimport Underline from '@tiptap/extension-underline';\nimport StarterKit from '@tiptap/starter-kit';\nimport { nanoid } from 'nanoid';\nimport type { Awareness } from 'y-protocols/awareness';\nimport { Doc } from 'yjs';\nimport { ImageUploadExtension } from '../customExtensions/ImageUploadExtension';\nimport Resizing from '../customExtensions/Resizing';\nimport { MouseOver } from '../customExtensions/mouseOver';\nimport { objectByImgSrc, unsplashObjectByImgSrc } from '../helpers/generateImageObject';\nimport { replaceHandlePastePlugin } from '../helpers/replaceHandlePastePlugin';\nimport { replaceLinkClickPlugin } from '../helpers/replaceLinkClickPlugin';\nimport { mergeCellsDisabled } from '../helpers/mergeCellsDisabled';\nimport { uploadFn } from '../helpers/uploadFile';\nimport { autolink } from '../plugins/InternalLinkAutolink';\nimport { doubleClick } from '../plugins/doubleClick';\nimport { EventHandler } from '../plugins/eventHandler';\nimport { getFileCache, imageUploader } from '../plugins/fileReadUpload';\nimport userMentionSuggestion from './lib/userMentionSuggestion';\nimport { renderCollaborationCursors } from '../helpers/collaborationCursor';\nimport { PhantomPlugin } from '../plugins/phantomSuggester';\nimport TablePlugins from '@superthread-com/extension-table/src/index';\nimport '@superthread-com/extension-table/src/style.scss';\nimport '@superthread-com/extension-inline-media/src/style.scss';\nimport { TableOfContent } from '../customExtensions/tableOfContents';\nimport { CharacterCount } from '@/components/editor/plugins/characterCount';\nimport CustomEnter from '../plugins/customEnter';\nimport { InlineMediaNode } from '@superthread-com/extension-inline-media/src/index';\nimport { GenericMediaNode, GenericMediaPlacholder } from '../plugins/inlineMedia';\nimport FilterFiles from '../plugins/filterFiles';\nimport { ResourceType } from '@/types/resources';\nimport customShortcuts from '../plugins/customShortcuts';\nimport TextAlign from '@tiptap/extension-text-align';\nimport EmbedBoard from '@superthread-com/extension-board-embed/src/index';\nimport BoardEmbed from '@/components/editor/nodeViews/BoardEmbed.vue';\nimport ContentMenu from '@/components/editor/plugins/ContentMenu';\nimport Callouts from '@superthread-com/extension-callouts/src';\nimport Callout from '@/components/editor/nodeViews/Callout.vue';\nimport CodeBlockLowlight from '@tiptap/extension-code-block-lowlight';\nimport { createLowlight, common } from 'lowlight';\nimport exitBlockAbove from '@/components/editor/customCommnads/exitBlockAbove';\nimport { reactive, Component } from 'vue';\nimport { isInTable } from '@tiptap/pm/tables';\nimport '@/utilities/setParagraphWhiteSpace';\n\nexport interface User {\n name: string;\n color: string;\n yjsId: number;\n}\n\nexport interface CollaborationOptions {\n document: Doc;\n awareness: Awareness;\n user: User;\n}\n\nexport interface EditorServiceOptions {\n resourceId: string;\n resourceType: ResourceType;\n parentResourceType: string;\n parentResourceId: string;\n placeholder?: string;\n commenting?: boolean;\n draggable?: boolean;\n heading?: boolean;\n allowImages: boolean;\n allowImagesUpload: boolean;\n lists: boolean;\n handleArrowLeft: boolean;\n horizontalRule?: Partial | false;\n blockElements?: boolean;\n collaboration?: CollaborationOptions;\n focusedStatePlaceholder: string;\n tableOfContent: boolean;\n editorDomRef: HTMLElement;\n preventInsertFiles: boolean;\n characterLimit?: number;\n highlight?: boolean;\n textAlignment?: boolean;\n enableContentMenu?: boolean;\n enableBoardEmbed?: boolean;\n storeDispatch: any;\n}\n\nconst ydocFragmentField = 'prosemirror';\n\nclass AwarenessProvider {\n constructor(private awareness: Awareness) {}\n\n getAwareness() {\n return this.awareness;\n }\n}\n\nexport default class EditorService extends Editor {\n id: string;\n resourceId: string;\n resourceType: string;\n parentResourceType: string;\n parentResourceId: string;\n activeButtonStates: any;\n disabledButtonStates: any;\n storeDispatch: any;\n eventBus: { $emit: (event: string, payload: any) => void };\n\n constructor(id: string, props?: EditorServiceOptions, options?: Partial) {\n const resourceId = props ? props.resourceId : '';\n const resourceType = props ? props.resourceType : '';\n const parentResourceType = props ? props.parentResourceType : '';\n const parentResourceId = props ? props.parentResourceId : '';\n const storeDispatch = props?.storeDispatch;\n const { displayImageFullScreen } = useDisplayImageFullScreen(storeDispatch);\n\n super({\n ...options,\n extensions: [\n ...(options?.extensions ? options.extensions : []),\n ...(props?.commenting\n ? [Comment.configure({ emitter: EventBus, getTextNodeFromPoint })]\n : []),\n ...(props?.highlight ? [PreCommentHighlight.extend({})] : []),\n CustomUserMention.extend({\n addNodeView() {\n return VueNodeViewRenderer(MentionNode);\n },\n }).configure({\n suggestion: userMentionSuggestion as any,\n }),\n EventHandler({\n emitter: EventBus,\n handleArrowLeft: props?.handleArrowLeft ?? false,\n }),\n Code.extend({\n excludes: '',\n exitable: true,\n }),\n ...(props?.allowImagesUpload\n ? [\n ImageUploadExtension({\n getRandId: () => nanoid(10),\n imageUploader,\n getFileCache,\n }).configure({\n editorId: id,\n resourceType: resourceType,\n parentResourceType: parentResourceType,\n parentResourceId: parentResourceId,\n upload: uploadFn,\n emitter: EventBus,\n preventInsertFiles: props?.preventInsertFiles,\n }),\n ]\n : []),\n InternalLink.extend({\n addNodeView() {\n return VueNodeViewRenderer(InternalLinkNode);\n },\n ...InternalLinkRenderExtend,\n }).configure({\n linkOnPaste: true,\n internalLinkRegEx: constants.internalLinkRegEx,\n plugins: [autolink],\n generateResourceData: getInternalLinkProps,\n }),\n Link.extend({\n addProseMirrorPlugins() {\n // get parent plugins and replace linkPaste plugin with custom one\n const parentPlugins = this.parent?.() ?? [];\n let plugins = replaceHandlePastePlugin(parentPlugins, this.editor, this.type, true);\n plugins = replaceLinkClickPlugin(EventBus, plugins, this.editor, this.type, true);\n return plugins;\n },\n inclusive: false,\n }).configure({\n autolink: true,\n linkOnPaste: true,\n validate: isNotInternalLink,\n }),\n MouseOver({\n linkTooltipComponent: LinkTooltip,\n blockHoverMenuComponent: BlockHoverMenu,\n getTextNodeFromPoint,\n draggable: props?.draggable,\n }),\n Placeholder.configure({\n placeholder: ({ editor }) => {\n if (editor.isFocused && props?.focusedStatePlaceholder) {\n return props.focusedStatePlaceholder;\n }\n return props ? (props.placeholder ?? '') : '';\n },\n emptyNodeClass: 'is-empty',\n emptyEditorClass: constants.emptyEditorClass,\n showOnlyWhenEditable: false,\n }),\n Resizing,\n StarterKit.configure({\n ...(!props?.heading && { heading: false }),\n dropcursor: {\n width: 4,\n color: '#498cf7',\n class: 'st-drop-cursor-block',\n },\n code: false,\n codeBlock: false,\n ...(props?.collaboration && { history: false }),\n horizontalRule: props?.horizontalRule,\n listItem: false,\n ...(!props?.lists && {\n bulletList: false,\n orderedList: false,\n }),\n ...(!props?.blockElements && {\n blockquote: false,\n codeBlock: false,\n }),\n }),\n ...(props?.lists\n ? [\n ListItem.extend({\n addKeyboardShortcuts() {\n return {\n Enter: () => {\n if (this.editor.storage.mention.mentionDropdownActive) {\n return false;\n }\n return this.editor.commands.splitListItem(this.name);\n },\n Tab: () => {\n if (this.editor.storage.mention.mentionDropdownActive) {\n return false;\n }\n return this.editor.commands.sinkListItem(this.name);\n },\n 'Shift-Tab': () => this.editor.commands.liftListItem(this.name),\n };\n },\n }),\n TaskList,\n TaskItem.configure({\n nested: true,\n }),\n ]\n : []),\n ...(props?.allowImages\n ? [\n StImage.extend({\n addNodeView() {\n return VueNodeViewRenderer(MediaResize as Component);\n },\n }).configure({\n plugins: [doubleClick],\n unsplashBaseUrl: constants.UNSPLASH_BASE_URL,\n displayImageFullScreen,\n getFileIdFromUrl,\n unsplashObjectByImgSrc,\n objectByImgSrc,\n findChildren,\n }),\n StImagePlaceholder.extend({\n addNodeView: () => VueNodeViewRenderer(StImagePlaceholderNodeView),\n }).configure({\n getRandId: () => nanoid(6),\n stImageDefaultHeight: constants.stImageDefaultHeight,\n stImageDefaultWidth: constants.stImageDefaultWidth,\n corsProxyBaseUrl: constants.corsProxyBaseUrl,\n }),\n ]\n : []),\n Typography,\n Underline,\n ...(props?.draggable\n ? [\n UniqueId.configure({\n attributeName: constants.blockAttributeName,\n types: [\n 'heading',\n 'st-image',\n 'paragraph',\n 'bulletList',\n 'orderedList',\n 'taskList',\n 'codeBlock',\n 'blockquote',\n 'youtube',\n 'horizontalRule',\n 'table',\n InlineMediaNode.Generic,\n 'callout',\n ],\n generateID: () => nanoid(6),\n filterTransaction: props.collaboration\n ? (transaction) => !isChangeOrigin(transaction)\n : undefined,\n }),\n ]\n : []),\n Youtube.extend({\n addNodeView: () => VueNodeViewRenderer(MediaResize as Component),\n addAttributes() {\n return {\n ...this.parent?.(),\n loading: {\n default: 'lazy',\n },\n };\n },\n addOptions() {\n return {\n ...this.parent?.(),\n tagName: 'iframe',\n };\n },\n }),\n ...(props?.collaboration\n ? [\n Collaboration.configure({\n document: props?.collaboration?.document,\n fragment: props?.collaboration?.document.getXmlFragment(ydocFragmentField),\n }),\n CollaborationCursor.configure({\n provider: new AwarenessProvider(props?.collaboration?.awareness),\n user: props?.collaboration?.user,\n render: renderCollaborationCursors,\n }),\n ]\n : []),\n PhantomPlugin.configure({\n resourceType,\n }),\n ...TablePlugins(resourceType as any),\n ...(props?.tableOfContent ? [TableOfContent.configure({})] : []),\n CustomEnter,\n GenericMediaNode,\n GenericMediaPlacholder,\n ...(props?.preventInsertFiles ? [FilterFiles] : []),\n ...(props?.characterLimit\n ? [\n CharacterCount.configure({\n limit: props.characterLimit,\n onLimitReached() {\n EventBus.$emit('editorCharacterLimitReached', id);\n },\n }),\n ]\n : []),\n customShortcuts,\n ...(props?.textAlignment\n ? [\n TextAlign.configure({\n types: ['paragraph', 'heading'],\n alignments: ['left', 'center', 'right', 'justify'],\n defaultAlignment: 'left',\n }),\n ]\n : []),\n ...(props?.enableBoardEmbed\n ? [\n EmbedBoard.extend({\n addNodeView: () => VueNodeViewRenderer(BoardEmbed as any),\n }),\n ]\n : []),\n ...(props?.enableContentMenu ? [ContentMenu.configure({ resourceType })] : []),\n Callouts.extend({\n addNodeView: () => VueNodeViewRenderer(Callout as any),\n }),\n CodeBlockLowlight.extend({\n addKeyboardShortcuts() {\n return {\n ...this.parent?.(),\n ArrowUp: ({ editor }) => exitBlockAbove(editor, this.name),\n };\n },\n }).configure({\n lowlight: createLowlight(common),\n defaultLanguage: 'plaintext',\n }),\n ],\n });\n\n this.id = id;\n this.resourceId = resourceId;\n this.resourceType = resourceType;\n this.parentResourceType = parentResourceType;\n this.parentResourceId = parentResourceId;\n this.storeDispatch = storeDispatch;\n this.eventBus = EventBus;\n this.activeButtonStates = reactive>({\n heading: false,\n h1: false,\n h2: false,\n h3: false,\n h4: false,\n h5: false,\n bold: false,\n italic: false,\n underline: false,\n strike: false,\n textAlignLeft: false,\n textAlignCenter: false,\n textAlignRight: false,\n textAlignJustified: false,\n link: false,\n blockquote: false,\n code: false,\n taskList: false,\n bulletList: false,\n orderedList: false,\n paragraph: false,\n });\n\n this.disabledButtonStates = reactive>({\n undo: true,\n redo: true,\n isInTable: false,\n mergeCells: false,\n });\n\n const ACTIVE_STATES_UPDATE_DELAY = 100;\n let updateTimeout: any = null;\n\n const onEditorUpdated = ({ editor }: { editor: any }) => {\n if (updateTimeout) {\n clearTimeout(updateTimeout);\n }\n updateTimeout = setTimeout(() => this.updateButtonStates(editor), ACTIVE_STATES_UPDATE_DELAY);\n };\n\n this.on('update', onEditorUpdated);\n this.on('selectionUpdate', onEditorUpdated);\n }\n\n updateButtonStates(editor: Editor) {\n this.activeButtonStates.heading = editor.isActive('heading');\n this.activeButtonStates.h1 = editor.isActive('heading', { level: 1 });\n this.activeButtonStates.h2 = editor.isActive('heading', { level: 2 });\n this.activeButtonStates.h3 = editor.isActive('heading', { level: 3 });\n this.activeButtonStates.h4 = editor.isActive('heading', { level: 4 });\n\n this.activeButtonStates.bold = editor.isActive('bold');\n this.activeButtonStates.italic = editor.isActive('italic');\n this.activeButtonStates.underline = editor.isActive('underline');\n this.activeButtonStates.strike = editor.isActive('strike');\n\n this.activeButtonStates.paragraph = editor.isActive('paragraph');\n\n this.activeButtonStates.textAlignLeft = editor.isActive({ textAlign: 'left' });\n this.activeButtonStates.textAlignCenter = editor.isActive({ textAlign: 'center' });\n this.activeButtonStates.textAlignRight = editor.isActive({ textAlign: 'right' });\n this.activeButtonStates.textAlignJustified = editor.isActive({ textAlign: 'justify' });\n\n this.activeButtonStates.link = editor.isActive('link');\n this.activeButtonStates.blockquote = editor.isActive('blockquote');\n this.activeButtonStates.code = editor.isActive('code');\n\n this.activeButtonStates.taskList = editor.isActive('taskList');\n this.activeButtonStates.bulletList = editor.isActive('bulletList');\n this.activeButtonStates.orderedList = editor.isActive('orderedList');\n\n // disabled button states\n this.disabledButtonStates.undo = !editor.can().chain().focus().undo().run();\n this.disabledButtonStates.redo = !editor.can().chain().focus().redo().run();\n\n // table button states\n this.disabledButtonStates.isInTable = isInTable(editor.state);\n this.disabledButtonStates.mergeCells = mergeCellsDisabled(editor.state);\n }\n\n updateEditorId(id: string) {\n this.id = id;\n\n // update editor id on the root dom node\n const root = this.view.dom;\n root.setAttribute('id', id);\n }\n\n updateEditorResourceId(resourceId: string) {\n this.resourceId = resourceId;\n }\n\n public updateEditorContentClass(className: string) {\n this.view.dom.className = `ProseMirror ${className}`;\n }\n\n public addEditorContentClass(className: string) {\n this.view.dom.classList.add(className);\n }\n\n public removeEditorContentClass(className: string) {\n this.view.dom.classList.remove(className);\n }\n}\n","\n\n\n\n\n","import { render } from \"./PopUpEditLink.vue?vue&type=template&id=405feb8d\"\nimport script from \"./PopUpEditLink.vue?vue&type=script&lang=js\"\nexport * from \"./PopUpEditLink.vue?vue&type=script&lang=js\"\n\nimport \"./PopUpEditLink.vue?vue&type=style&index=0&id=405feb8d&lang=scss\"\n\nimport exportComponent from \"../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderSlot as _renderSlot, unref as _unref, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createElementVNode as _createElementVNode, createBlock as _createBlock, resolveComponent as _resolveComponent, withCtx as _withCtx } from \"vue\"\n\nconst _hoisted_1 = {\n ref: \"menuButton\",\n class: \"toolbar-menu-item\"\n}\n\nimport useCustomIcon from '@/utilities/composables/useCustomIcon';\nimport TooltipTemplate from '@/components/elements/TooltipTemplate.vue';\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'SectionItem',\n props: {\n effect: {},\n icon: {},\n tooltip: {},\n meta: {},\n parentProps: {},\n disabled: { type: Boolean },\n active: { type: Boolean },\n label: {}\n },\n setup(__props: any) {\n\nconst props = __props;\n\nconst { iconPath, getCustomIconStyle } = useCustomIcon();\n\nreturn (_ctx: any,_cache: any) => {\n const _component_v_popover = _resolveComponent(\"v-popover\")!\n\n return (_openBlock(), _createBlock(_component_v_popover, {\n placement: \"top\",\n \"content-tag\": \"div\",\n class: \"flex\",\n tag: \"div\",\n \"on-show\": () => !!props.tooltip && !_ctx.isMobile\n }, {\n content: _withCtx(({ state }) => [\n (state.isVisible)\n ? (_openBlock(), _createBlock(TooltipTemplate, {\n key: 0,\n \"tooltip-text\": props.tooltip,\n \"tooltip-meta\": props.meta\n }, null, 8, [\"tooltip-text\", \"tooltip-meta\"]))\n : _createCommentVNode(\"\", true)\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _renderSlot(_ctx.$slots, \"default\", {}, () => [\n _createElementVNode(\"button\", {\n class: _normalizeClass([\"min-w-6\", {\n 'disabled-toolbar-option': props.disabled,\n 'is-active': props.active,\n }]),\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (props.effect && props.effect(...args)))\n }, [\n (props.icon)\n ? (_openBlock(), _createElementBlock(\"em\", {\n key: 0,\n class: _normalizeClass([\"custom-icons page-toolbar group-hover:bg-icon-hover\", { 'ml-1': props.label }]),\n style: _normalizeStyle(_unref(getCustomIconStyle)(_unref(iconPath)(props.icon)))\n }, null, 6))\n : _createCommentVNode(\"\", true),\n _cache[1] || (_cache[1] = _createTextVNode()),\n (props.label)\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 1,\n class: _normalizeClass([\"text-text-default ml-1 text-sm\", { 'mr-1': props.label }])\n }, _toDisplayString(props.label), 3))\n : _createCommentVNode(\"\", true)\n ], 2)\n ])\n ], 512),\n _cache[2] || (_cache[2] = _createTextVNode())\n ]),\n _: 3\n }, 8, [\"on-show\"]))\n}\n}\n\n})","\n\n\n\n\n","import script from \"./SectionItem.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./SectionItem.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./SectionItem.vue?vue&type=style&index=0&id=6e0b3db8&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-6e0b3db8\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveDynamicComponent as _resolveDynamicComponent, mergeProps as _mergeProps, createBlock as _createBlock, withCtx as _withCtx } from \"vue\"\n\nconst _hoisted_1 = { class: \"tb-button-group !border-l-0\" }\n\nimport { Editor } from '@tiptap/core';\nimport SectionItem from '@/components/editor/toolbar/SectionItem.vue';\nimport useTranslate from '@/utilities/composables/useTranslate';\nimport type { MenuItemFn, MenuItem, MenuItemOptions } from '@/components/editor/toolbar/menu-item';\nimport { computed, getCurrentInstance, provide, readonly, ref } from 'vue';\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'MenuSection',\n props: {\n editor: {},\n commands: { type: Function },\n options: {}\n },\n setup(__props: any) {\n\nconst props = __props;\n\nconst { translate } = useTranslate();\n\nconst _this = getCurrentInstance();\n\n/**\n * When this value is set to anything other than null,\n * these commands will populate the menu.\n */\nconst commandOverrides = ref(null);\n\n/**\n * Calling this changes the individual menu section contents.\n * Useful for creating \"sub-menus\" within the same toolbar.\n * @param com The menu item function, which returns the\n * required collection.\n */\nfunction overrideCommands(com: MenuItemFn) {\n commandOverrides.value = com;\n}\n\n/**\n * Revert the menu section to its initial state, which\n * is using the props given to the MenuSection.\n */\nfunction revertCommandOverrides() {\n commandOverrides.value = null;\n}\n\nprovide('sectionCommandOverride', {\n commandOverrides: readonly(commandOverrides),\n overrideCommands,\n revertCommandOverrides,\n});\n\nconst commandSource = computed(() => commandOverrides.value ?? props.commands);\n\nconst commands = computed(() =>\n commandSource\n .value({\n editor: props.editor,\n translate,\n store: _this?.proxy.$store!,\n appendTo: props?.options?.aiPopupAppendTo,\n })\n .filter((command: MenuItem) => {\n if (!command.hidden) return true;\n return command.hidden();\n })\n);\n\nprovide('editor', props.editor);\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(commands.value, ({\n effect,\n icon,\n tooltip,\n tooltipMeta,\n disabled,\n active,\n customProps,\n customButton,\n label,\n key,\n }) => {\n return (_openBlock(), _createBlock(SectionItem, _mergeProps({ ref_for: true }, customProps, {\n key: key ?? icon,\n effect: effect,\n icon: icon,\n tooltip: tooltip,\n meta: tooltipMeta,\n label: label,\n active: !!active?.(),\n disabled: !!disabled?.()\n }), {\n default: _withCtx(() => [\n (_openBlock(), _createBlock(_resolveDynamicComponent(customButton), _mergeProps({ ref_for: true }, {\n icon,\n effect,\n active: !!active?.(),\n disabled: !!disabled?.(),\n editor: _ctx.editor,\n ...customProps,\n }), null, 16))\n ]),\n _: 2\n }, 1040, [\"effect\", \"icon\", \"tooltip\", \"meta\", \"label\", \"active\", \"disabled\"]))\n }), 128))\n ]))\n}\n}\n\n})","\n\n\n\n","import script from \"./MenuSection.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./MenuSection.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./PublicPageButton.vue?vue&type=template&id=1fb8320d\"\nimport script from \"./PublicPageButton.vue?vue&type=script&lang=js\"\nexport * from \"./PublicPageButton.vue?vue&type=script&lang=js\"\n\nimport \"./PublicPageButton.vue?vue&type=style&index=0&id=1fb8320d&lang=scss\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import script from \"./Toolbar.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./Toolbar.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n\n","import { render } from \"./AiPopup.vue?vue&type=template&id=79c8a428\"\nimport script from \"./AiPopup.vue?vue&type=script&lang=js\"\nexport * from \"./AiPopup.vue?vue&type=script&lang=js\"\n\nimport \"./AiPopup.vue?vue&type=style&index=0&id=79c8a428&lang=scss\"\n\nimport exportComponent from \"../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import type { Content } from '@tiptap/core';\nimport EditorService from '../../EditorService';\nimport Fuse from 'fuse.js';\nimport { Store } from 'vuex';\nimport { translate } from '@/utilities';\nimport PhantomSuggesterKey from '../../../plugins/phantomSuggester/pluginKey';\nimport PopUpEditLink from '../../../popups/PopUpEditLink.vue';\nimport AiPopup from '../../../popups/AiPopup.vue';\nimport { VueRenderer } from '@tiptap/vue-3';\nimport tippy from 'tippy.js';\nimport { ResourceType } from '@/types/resources';\nimport { isInTable } from '@tiptap/pm/tables';\nimport { nanoid } from 'nanoid';\nimport { CalloutTypes } from '@superthread-com/extension-callouts/src';\n\ntype PhantomSuggesterCommand = (commandProps: Content | string) => void;\n\n/**\n * TODO: The resource types should be more consistent. This\n * is only a patch because some older components described\n * comments like this.\n */\nconst ResourceVariants = {\n Comment: [ResourceType.Comment, 'Card comment', 'Page comment'] as unknown as ResourceType[],\n};\n\nexport interface SlashCommand {\n run: (editor: EditorService, command: PhantomSuggesterCommand, store: Store) => void;\n searchName: string;\n displayName?: string;\n icon: string;\n category: string;\n /**\n * Specifies which kinds of editors support\n * this command. (i.e. comment, page).\n * This is an allowlist.\n */\n resource: ResourceType[];\n /**\n * An optional filtering function. Despite the resources\n * being the same, sometimes another filtering criterion\n * is required.\n *\n * *Example:* quick cards are still card\n * resources, but they must not include the quick card command.\n * @param store The application store\n * @returns `false` when the option should be absent from the list\n */\n filter?: (store: Store) => boolean;\n}\n\ntype SearchResultCategory = {\n title: string;\n results: T[];\n previousIndex: number;\n type: string;\n};\n\n/**\n * Some comands will not interact with the editor directly.\n * Hence, stopping the mention should be done manually.\n * This both removes the mention text and closes the search\n * menu.\n * @param editor The editor instance.\n */\nfunction stopSuggester(editor: EditorService) {\n const { tr } = editor.state;\n tr.setMeta(PhantomSuggesterKey.command, {\n type: 'remove',\n });\n editor.view.dispatch(tr);\n}\n\n/**\n * Some commands should not be displayed in tables. This is a helper\n * function that's to be used within the *filter* method of each command.\n * Since tables are not a separate resource, they are not filterable by\n * that criterion.\n * @param store The application store\n * @returns\n */\nfunction selectionIsInTable(store: Store): boolean {\n const currentEditor = store.state.editors.editors?.[store.state.editors.currentEditorId];\n if (!currentEditor) return true;\n if (isInTable(currentEditor.view.state)) {\n return true;\n }\n return false;\n}\n\nexport function showPopup(props: any) {\n const rendererComponent = new VueRenderer(PopUpEditLink as any, {\n // @ts-ignore\n parent: (window as any).StVueApp,\n props: { ...props, popup: {}, component: {} },\n editor: props.editor,\n });\n const rects = document.body.getBoundingClientRect();\n // use tippy to attach component on body element\n const popup = tippy('body', {\n getReferenceClientRect: () => ({\n ...rects,\n }),\n appendTo: () => document.body,\n content: rendererComponent.element || undefined,\n showOnCreate: true,\n interactive: true,\n placement: 'top-start',\n trigger: 'manual',\n maxWidth: 'none',\n animation: 'none',\n role: 'poper',\n });\n // update props with popup and component instance\n rendererComponent.updateProps({ ...props, popup, component: rendererComponent.component });\n}\n\nexport const generateAndShowPopup = (props: any, highlightSelectionId: any) => {\n const { selection } = props.editor.state;\n const { from, to } = selection;\n // change selection just to hide bubble menu if it is visible\n // shouldShowBubbleMenu is called on selection change\n props.editor.commands.setTextSelection({\n from,\n });\n // return old selection\n props.editor.commands.setTextSelection({\n from,\n to,\n });\n const component = new VueRenderer(AiPopup as any, {\n props: {\n ...props,\n popup: {},\n component: {},\n highlightSelectionId,\n },\n editor: props.editor,\n });\n const highlightedNodes = document.querySelectorAll(\n `[data-highlighted=\"${highlightSelectionId}\"]`\n );\n if (!highlightedNodes.length) return;\n\n const lastElement = highlightedNodes[highlightedNodes.length - 1];\n const rects = lastElement.getBoundingClientRect();\n\n // use tippy to attach component on body element\n const popup = tippy('body', {\n getReferenceClientRect: () => rects,\n appendTo: () => (props?.appendTo === 'body' ? document.body : props.editor.view.dom.parentNode),\n content: component.ref.$el,\n showOnCreate: true,\n interactive: true,\n placement: 'bottom',\n trigger: 'manual',\n maxWidth: 'none',\n animation: 'none',\n role: 'poper',\n onShow: (instance) => {\n instance.popper.classList.add('w-full', 'outline-none', 'ai-popup-tippy');\n requestAnimationFrame(() => {\n props.editor.commands.setTextSelection({ from, to });\n });\n },\n });\n\n // update props with popup and component instance\n component.updateProps({ ...props, popup: popup[0], component });\n};\n\nexport function showAiPopup(props: any) {\n const highlightSelectionId = nanoid(6);\n const { selection } = props.editor.state;\n props.editor.commands.setPreCommentHighlight({\n highlight: highlightSelectionId,\n preCommentRange: selection,\n });\n\n requestAnimationFrame(() => {\n generateAndShowPopup(props, highlightSelectionId);\n });\n}\nconst mediaPageFilter = (store: Store) => {\n if (store.getters.currentEditor?.resourceId === ResourceType.PageTemplate) return false;\n return !store.getters.getQuickPage;\n};\n\nexport const mediaPageRun = (\n editor: EditorService,\n command: PhantomSuggesterCommand,\n store: Store\n) => {\n store.dispatch('setPageUploadPopup', {\n id: 'page-insert-image',\n title: translate('quickPage.title.attachImageFrom'),\n editorId: editor?.id,\n });\n stopSuggester(editor);\n};\n\nconst mediaCardFilter = (store: Store) => {\n const resourceId = store.getters.currentEditor?.resourceId;\n if (resourceId === ResourceType.CardTemplate || resourceId === ResourceType.QuickChildCard)\n return false;\n return (\n !store.getters.getQuickPage || (store.getters.getQuickPage && store.getters.getQuickCardIsOn)\n );\n};\n\nexport const mediaCardRun = (\n editor: EditorService,\n command: PhantomSuggesterCommand,\n store: Store\n) => {\n store.dispatch('setCardDescriptionAttachmentUploadPopup', {\n id: 'card-description-image',\n title: translate('quickPage.title.attachImageFrom'),\n editorId: editor?.id,\n resourceId: store.getters.currentEditor?.resourceId,\n });\n stopSuggester(editor);\n};\n\nexport const mediaCommentRun = (\n editor: EditorService,\n command: PhantomSuggesterCommand,\n store: Store\n) => {\n if (editor.parentResourceType === ResourceType.Card) {\n store.dispatch('setCardCommentAttachmentUploadPopup', {\n id: 'card-new-comment',\n editorId: editor.id,\n resourceId: store.getters.currentEditor?.parentResourceId,\n });\n }\n if (editor.parentResourceType === ResourceType.Page) {\n store.dispatch('setPageUploadPopup', {\n id: 'comment-insert-image',\n title: translate('quickPage.title.attachImageFrom'),\n editorId: editor.id,\n });\n }\n stopSuggester(editor);\n};\n\nconst baseMediaPage = {\n category: 'Media',\n resource: [ResourceType.Page, ResourceType.Note],\n keywords: translate('slash.keyword.media'),\n filter: mediaPageFilter,\n run: mediaPageRun,\n};\n\nconst baseMediaCard = {\n category: 'Media',\n resource: [ResourceType.Card],\n keywords: translate('slash.keyword.media'),\n filter: mediaCardFilter,\n run: mediaCardRun,\n};\n\nconst baseMediaComment = {\n category: 'Media',\n resource: [...ResourceVariants.Comment],\n keywords: translate('slash.keyword.media'),\n run: mediaCommentRun,\n};\n\nexport const mediaCommands: SlashCommand[] = [\n {\n ...baseMediaComment,\n searchName: translate('slash.search.attach'),\n displayName: translate('slash.display.attach'),\n icon: 'paperclip',\n },\n // Attach command\n {\n ...baseMediaPage,\n searchName: translate('slash.search.attach'),\n displayName: translate('slash.display.attach'),\n icon: 'paperclip',\n },\n /**\n * This is the same command as above, but with a different resource type.\n */\n {\n ...baseMediaCard,\n searchName: translate('slash.search.attach'),\n displayName: translate('slash.display.attach'),\n icon: 'paperclip',\n },\n // Image command\n {\n ...baseMediaPage,\n searchName: translate('slash.search.image'),\n displayName: translate('slash.display.image'),\n icon: 'image-st',\n },\n /**\n * This is the same command as above, but with a different resource type.\n */\n {\n ...baseMediaCard,\n searchName: translate('slash.search.image'),\n displayName: translate('slash.display.image'),\n icon: 'image-st',\n },\n {\n searchName: translate('slash.search.youtube'),\n category: 'Media',\n displayName: translate('slash.display.youtube'),\n icon: 'youtube',\n resource: [\n ResourceType.Page,\n ResourceType.Note,\n ResourceType.Card,\n ...ResourceVariants.Comment,\n ],\n filter: (store) => {\n return !selectionIsInTable(store);\n },\n run: (editor) => {\n showPopup({\n editorId: editor?.id,\n editor,\n youtubeVideoPopup: true,\n from: editor.state.selection.from,\n to: editor.state.selection.to,\n });\n stopSuggester(editor);\n },\n },\n];\n\nexport const basicCommands: SlashCommand[] = [\n {\n searchName: translate('slash.search.checklist'),\n category: 'Basic',\n displayName: translate('slash.display.checklist'),\n icon: 'check-square',\n resource: [\n ResourceType.Page,\n ResourceType.Note,\n ResourceType.Card,\n ...ResourceVariants.Comment,\n ],\n run: (editor) => {\n editor\n .chain()\n .focus()\n .toggleTaskList()\n .setMeta(PhantomSuggesterKey.command as any, { type: 'remove' })\n .run();\n },\n },\n {\n searchName: translate('slash.search.table'),\n category: 'Basic',\n displayName: `${translate('slash.display.table')} (Beta)`,\n icon: 'table',\n resource: [ResourceType.Page, ResourceType.Note, ResourceType.Card],\n filter: (store) => {\n if (selectionIsInTable(store)) return false;\n return true;\n },\n run: (editor) => {\n editor\n .chain()\n .focus()\n .insertTable({ rows: 3, cols: 3, withHeaderRow: true })\n .setMeta(PhantomSuggesterKey.command as any, { type: 'remove' })\n .run();\n },\n },\n {\n searchName: translate('slash.search.h1'),\n category: 'Basic',\n displayName: translate('slash.display.h1'),\n icon: 'H1',\n resource: [ResourceType.Page, ResourceType.Note, ResourceType.Card],\n run: (editor) => {\n editor\n .chain()\n .focus()\n .setHeading({ level: 1 })\n .setMeta(PhantomSuggesterKey.command as any, { type: 'remove' })\n .run();\n },\n },\n {\n searchName: translate('slash.search.h2'),\n category: 'Basic',\n displayName: translate('slash.display.h2'),\n icon: 'H2',\n resource: [ResourceType.Page, ResourceType.Note, ResourceType.Card],\n run: (editor) => {\n editor\n .chain()\n .focus()\n .setHeading({ level: 2 })\n .setMeta(PhantomSuggesterKey.command as any, { type: 'remove' })\n .run();\n },\n },\n {\n searchName: translate('slash.search.h3'),\n category: 'Basic',\n displayName: translate('slash.display.h3'),\n icon: 'H3',\n resource: [ResourceType.Page, ResourceType.Note, ResourceType.Card],\n run: (editor) => {\n editor\n .chain()\n .focus()\n .setHeading({ level: 3 })\n .setMeta(PhantomSuggesterKey.command as any, { type: 'remove' })\n .run();\n },\n },\n {\n searchName: translate('slash.search.blockquote'),\n category: 'Basic',\n displayName: translate('slash.display.blockquote'),\n icon: 'blocquote',\n resource: [\n ResourceType.Page,\n ResourceType.Note,\n ResourceType.Card,\n ...ResourceVariants.Comment,\n ],\n filter: (store) => {\n return !selectionIsInTable(store);\n },\n run: (editor) => {\n editor\n .chain()\n .focus()\n .toggleBlockquote()\n .setMeta(PhantomSuggesterKey.command as any, { type: 'remove' })\n .run();\n },\n },\n {\n searchName: translate('slash.search.bulleted'),\n category: 'Basic',\n displayName: translate('slash.display.bulleted'),\n icon: 'list',\n resource: [\n ResourceType.Page,\n ResourceType.Note,\n ResourceType.Card,\n ...ResourceVariants.Comment,\n ],\n run: (editor) => {\n editor\n .chain()\n .focus()\n .toggleBulletList()\n .setMeta(PhantomSuggesterKey.command as any, { type: 'remove' })\n .run();\n },\n },\n {\n searchName: translate('slash.search.numbered'),\n category: 'Basic',\n displayName: translate('slash.display.numbered'),\n icon: 'numbered-list',\n resource: [\n ResourceType.Page,\n ResourceType.Note,\n ResourceType.Card,\n ...ResourceVariants.Comment,\n ],\n run: (editor) => {\n editor\n .chain()\n .focus()\n .toggleOrderedList()\n .setMeta(PhantomSuggesterKey.command as any, { type: 'remove' })\n .run();\n },\n },\n {\n searchName: translate('slash.search.hr'),\n category: 'Basic',\n displayName: translate('slash.display.hr'),\n icon: 'minus',\n resource: [\n ResourceType.Page,\n ResourceType.Note,\n ResourceType.Card,\n ...ResourceVariants.Comment,\n ],\n filter: (store) => {\n return !selectionIsInTable(store);\n },\n run: (editor) => {\n editor\n .chain()\n .focus()\n .setHorizontalRule()\n .setMeta(PhantomSuggesterKey.command as any, { type: 'remove' })\n .run();\n },\n },\n {\n searchName: translate('slash.search.codeBlock'),\n category: 'Basic',\n displayName: translate('slash.display.codeBlock'),\n icon: 'code-block',\n resource: [\n ResourceType.Page,\n ResourceType.Note,\n ResourceType.Card,\n ...ResourceVariants.Comment,\n ],\n filter: (store) => {\n return !selectionIsInTable(store);\n },\n run: (editor) => {\n editor\n .chain()\n .focus()\n .toggleCodeBlock()\n .setMeta(PhantomSuggesterKey.command as any, { type: 'remove' })\n .run();\n },\n },\n];\n\nexport const inlineCommands: SlashCommand[] = [\n {\n searchName: translate('slash.search.card'),\n category: 'Inline',\n displayName: translate('slash.display.card'),\n icon: 'new-card-icon',\n resource: [\n ResourceType.Page,\n ResourceType.Note,\n ResourceType.Card,\n ...ResourceVariants.Comment,\n ],\n filter: (store) => {\n return (\n !store.getters.getQuickCardIsOn &&\n !store.getters.getQuickPage &&\n !store.getters.getChildCardCreation\n );\n },\n run: (editor, _, store) => {\n const { view } = editor;\n const { from, to } = view.state.selection;\n\n editor.commands.setTextSelection(from);\n editor.commands.setTextSelection({ from, to });\n\n store.dispatch('setEditorForCardLink', editor?.id);\n store.dispatch('setQuickCard', true);\n\n stopSuggester(editor);\n },\n },\n {\n searchName: translate('slash.search.mention'),\n category: 'Inline',\n displayName: translate('slash.display.mention'),\n icon: 'at-sign',\n resource: [\n ResourceType.Page,\n ResourceType.Note,\n ResourceType.Card,\n ...ResourceVariants.Comment,\n ],\n run: (editor) => {\n editor\n .chain()\n .setMeta(PhantomSuggesterKey.command as any, { type: 'remove' })\n .setMeta(PhantomSuggesterKey.mention as any, {\n type: 'add',\n pos: editor.state.selection.anchor,\n })\n .run();\n },\n },\n\n {\n searchName: translate('slash.search.callout'),\n category: 'Basic',\n displayName: translate('slash.display.callout'),\n icon: 'info',\n resource: [\n ResourceType.Page,\n ResourceType.Note,\n ResourceType.Card,\n ...ResourceVariants.Comment,\n ],\n run: (editor) => {\n editor\n .chain()\n .focus()\n .callout({ type: CalloutTypes.Info })\n .setMeta(PhantomSuggesterKey.command as any, { type: 'remove' })\n .run();\n },\n },\n];\n\nexport const embedCommands: SlashCommand[] = [\n {\n searchName: translate('slash.search.board'),\n category: 'Embed',\n displayName: translate('slash.display.board'),\n icon: 'board',\n resource: [ResourceType.Page],\n filter: (store) => {\n if (store.getters.currentEditor?.resourceId === ResourceType.PageTemplate) return false;\n return !store.getters.getQuickPage;\n },\n run: (editor, _, store) => {\n const myProjects = store.getters.getProjects.map((project: any) => project.id);\n const boards =\n Object.values(store.getters.getFlatBoards).filter(\n (board: any) => myProjects.includes(board.project_id) && !board.orginalId\n ) || [];\n store.dispatch('setSearchResults', { count: boards.length, cursor: '', boards });\n store.dispatch('setBoardEmbedPopup', {\n editorId: editor?.id,\n });\n stopSuggester(editor);\n },\n },\n];\n\nexport const commands: SlashCommand[] = [\n ...mediaCommands,\n ...basicCommands,\n ...inlineCommands,\n ...embedCommands,\n];\n\nexport function groupCommandsByType(\n commands: SlashCommand[],\n resourceType: ResourceType,\n store?: Store\n) {\n if (commands.length === 0) return [];\n\n const byResource = commands.filter((c) => c.resource.includes(resourceType));\n\n const filtered = store ? byResource.filter((c) => c.filter?.(store) ?? true) : byResource;\n\n const grouped = filtered.reduce[]>((result, command) => {\n const category = result.find((r) => r.title === command.category);\n\n if (!category) {\n result.push({\n title: command.category,\n results: [command],\n previousIndex: 0,\n type: 'command',\n });\n } else {\n category.results.push(command);\n }\n return result;\n }, []);\n\n for (let i = 1; i < grouped.length; i++) {\n grouped[i].previousIndex = grouped[i - 1].previousIndex + grouped[i - 1].results.length;\n }\n\n return grouped;\n}\n\nexport const list = new Fuse(commands, {\n includeScore: false,\n keys: ['searchName'],\n});\n","\n\n\n\n\n","import {\n BubbleMenuPluginProps,\n BubbleMenuView,\n BubbleMenuViewProps,\n} from '@tiptap/extension-bubble-menu';\nimport { EditorView } from '@tiptap/pm/view';\nimport { EditorState, Plugin, PluginKey } from '@tiptap/pm/state';\n\nexport class StBubbleMenuView extends BubbleMenuView {\n public mouseDown: boolean = false;\n public shown: boolean = false;\n\n constructor(props: BubbleMenuViewProps) {\n super(props);\n document.addEventListener('mouseup', this.onMouseUp);\n this.view.dom.addEventListener('mousedown', this.onMousedownHandler);\n }\n\n onMouseUp = () => {\n if (!this.mouseDown) return;\n this.mouseDown = false;\n requestAnimationFrame(() => {\n this.update(this.editor.view);\n });\n };\n\n onMousedownHandler = () => {\n this.mouseDown = true;\n if (this.shown) {\n this.hide();\n }\n };\n\n update(view: EditorView, oldState?: EditorState) {\n // on mousedown flag just return to prevent the menu from showing\n // we will fire the update manually after the mouseup event\n if (this.mouseDown) return;\n super.update(view, oldState);\n }\n\n show(): void {\n super.show();\n this.shown = true;\n }\n\n hide(): void {\n super.hide();\n this.shown = false;\n }\n\n destroy() {\n document.removeEventListener('mouseup', this.onMouseUp);\n this.view.dom.removeEventListener('mousedown', this.onMousedownHandler);\n super.destroy();\n }\n}\n\nexport const StBubbleMenuPlugin = (options: BubbleMenuPluginProps) => {\n return new Plugin({\n key:\n typeof options.pluginKey === 'string' ? new PluginKey(options.pluginKey) : options.pluginKey,\n view: (view) => new StBubbleMenuView({ view, ...options }),\n });\n};\n","import { StBubbleMenuPlugin } from './plugins/StBubbleMenu';\n\nimport { defineComponent, h, onBeforeUnmount, onMounted, ref, watch, nextTick } from 'vue';\n\nexport const StBubbleMenu = defineComponent({\n name: 'StBubbleMenu',\n\n props: {\n pluginKey: {\n type: [String, Object],\n default: 'StBubbleMenu',\n },\n\n editor: {\n type: Object,\n required: true,\n },\n\n updateDelay: {\n type: Number,\n default: undefined,\n },\n\n tippyOptions: {\n type: Object,\n default: () => ({}),\n },\n\n shouldShow: {\n type: Function,\n default: null,\n },\n },\n\n setup(props, { slots }) {\n const root = ref(null);\n\n onMounted(() => {\n const { updateDelay, editor, pluginKey, shouldShow, tippyOptions } = props;\n\n editor.registerPlugin(\n StBubbleMenuPlugin({\n updateDelay,\n editor: editor as any,\n element: root.value as HTMLElement,\n pluginKey: pluginKey as string,\n shouldShow: shouldShow as any,\n tippyOptions,\n })\n );\n });\n\n onBeforeUnmount(() => {\n const { pluginKey, editor } = props;\n\n editor.unregisterPlugin(pluginKey);\n });\n\n watch(\n () => props.editor,\n (editor) => {\n if (!editor) {\n return;\n }\n\n nextTick(() => {\n editor.registerPlugin(\n StBubbleMenuPlugin({\n updateDelay: props.updateDelay,\n editor: editor as any,\n element: root.value as HTMLElement,\n pluginKey: props.pluginKey as string,\n shouldShow: props.shouldShow as any,\n tippyOptions: props.tippyOptions,\n })\n );\n });\n },\n { immediate: true, deep: true }\n );\n\n return () => h('div', { ref: root }, slots.default?.());\n },\n});\n","import { WebsocketProvider } from '@superthread-com/y-websocket';\nimport { Ref, onUnmounted, ref, unref } from 'vue';\nimport { Awareness } from 'y-protocols/awareness';\nimport { Doc } from 'yjs';\nimport { MaybeRef, maybeUnref, refValueIsDefined } from '../../../utilities/maybeRef';\nimport { fromEvent, map, filter, Subscription, bufferTime, merge, tap } from 'rxjs';\nimport { Editor } from '@tiptap/vue-3';\n\n/**\n * Sets the class of the flag to the 'up' variant,\n * which makes it visible. Provide the yjs client id\n * in order to reveal the respective user's flag.\n * @param yjsId\n * @param flagVisibility\n */\nconst setCursorFlag = (yjsId: number, flagVisibility: 'up' | 'down', userName: string) => {\n const cursor = document.getElementById(`yjs-cursor-${yjsId}`);\n if (cursor) {\n if (cursor.dataset.username !== userName) {\n cursor.setAttribute('data-username', userName);\n }\n if (flagVisibility === 'up') {\n cursor.classList.add('ProseMirror-yjs-cursor-up');\n } else {\n cursor.classList.remove('ProseMirror-yjs-cursor-up');\n }\n }\n};\n\n/**\n * Updates the local state of the flag visbility.\n * @param awareness\n * @param flagVisibility\n */\nconst updateAwareness = (awareness: Ref, flagVisibility: 'up' | 'down') => {\n awareness.value?.setLocalStateField?.('flag', flagVisibility);\n /**\n * This redundancy is required in order to provide\n * the flag status as part of the user data.\n *\n * The user state field won't be used for updates\n * (since it can receive more frequent updates than\n * needed, hence making it difficult to distinguish\n * which update should be considered for flag changes).\n *\n * The user state field is used, however, by the cursor\n * builder, which draws the actual DOM elements.\n */\n awareness.value?.setLocalStateField?.('user', {\n ...(awareness.value?.getLocalState()?.user || {}),\n flag: flagVisibility,\n });\n};\n\nconst attachFlagUpdateSubscription = (awareness: Ref) => {\n /**\n * Take all update events.\n */\n return fromEvent(awareness.value, 'update')\n .pipe(\n /**\n * Map to object of updated ids and awareness object.\n * Awareness object may not be always defined (when local changes occur).\n */\n map((updatePayload: any) => ({\n updated: [...updatePayload[0].updated],\n awareness: updatePayload[1]?.awareness,\n })),\n /**\n * Only select events where awareness is defined.\n */\n filter((ev) => typeof ev.awareness === 'object')\n )\n .subscribe(({ updated, awareness }) => {\n /**\n * For each updated id check the flag state.\n * Updates transmitted through this event do not\n * provide any PATCH or DIFF, nor the full state.\n *\n * So, it must be inspected from the locally stored\n * and synced awareness object.\n */\n updated.forEach((id) => {\n const awarenessState = awareness?.states?.get?.(id);\n if (awarenessState) {\n setCursorFlag(id, awarenessState?.flag ?? 'down', awarenessState?.user?.name ?? '');\n }\n });\n });\n};\n\nconst attachFlagInputSubscription = (\n awareness: Ref,\n editor: Editor,\n timeout: number\n) => {\n /**\n * Takeall input and click events from the editor DOM.\n */\n return merge(fromEvent(editor.view.dom, 'input'), fromEvent(editor.view.dom, 'click'))\n .pipe(\n /**\n * If such an event occurs, immediately\n * raise the flag. This doesn't consume the event,\n * but instead passes it further.\n */\n tap(() => updateAwareness(awareness, 'up')),\n /**\n * Buffer the event. Each `timeout` miliseconds,\n * an event is emitted with all the events\n * that occured over the time period.\n */\n bufferTime(timeout)\n )\n .subscribe((event) => {\n /**\n * If over a `timeout` miliseconds time period\n * no events have been recorded, hide the flag.\n *\n * Otherwise, reveal it.\n */\n if (event?.length > 0) {\n updateAwareness(awareness, 'up');\n } else {\n updateAwareness(awareness, 'down');\n }\n });\n};\n\nexport default function useAwareness(wsProviderRef?: MaybeRef) {\n const provider: Ref = maybeUnref(wsProviderRef);\n\n const awareness = ref();\n\n const updatesSubscription = ref();\n const inputSubscription = ref();\n const providerListenerHandler = ref();\n\n /**\n * Creates a new instance for awareness.\n */\n function init(ydoc: Doc) {\n awareness.value = new Awareness(ydoc);\n }\n\n function destroyProviderListener() {\n if (providerListenerHandler.value) {\n provider?.value?.off?.('status', providerListenerHandler.value);\n providerListenerHandler.value = null;\n }\n }\n\n function enableFlagUpdates(wsProvider?: WebsocketProvider) {\n if (wsProvider) {\n destroyProviderListener();\n provider.value = wsProvider;\n }\n\n if (provider.value === null) {\n throw new Error('Awareness requires a valid provider.');\n }\n\n destroyProviderListener();\n\n providerListenerHandler.value = (event: any) => {\n if (event.status === 'connected' && refValueIsDefined(awareness)) {\n updatesSubscription.value?.unsubscribe?.();\n\n updatesSubscription.value = attachFlagUpdateSubscription(awareness);\n }\n };\n\n provider.value.on('status', providerListenerHandler.value);\n }\n\n function enableFlagInput(editorRef: MaybeRef, timeout = 1500) {\n const editor = unref(editorRef);\n\n inputSubscription.value?.unsubscribe?.();\n\n inputSubscription.value = attachFlagInputSubscription(awareness, editor, timeout);\n }\n\n function destroy() {\n updatesSubscription.value?.unsubscribe?.();\n inputSubscription.value?.unsubscribe?.();\n destroyProviderListener();\n unref(awareness)?.destroy();\n }\n\n onUnmounted(() => {\n destroy();\n });\n\n return {\n awareness,\n init,\n enableFlagUpdates,\n enableFlagInput,\n destroy,\n };\n}\n","import { ySyncPluginKey } from 'y-prosemirror';\nimport { Transaction } from 'yjs';\n\nexport default function getYSyncKey(transaction: Transaction): boolean {\n const $index = (ySyncPluginKey as any).key.indexOf('$');\n const ysyncKey = (ySyncPluginKey as any).key.substring(0, $index + 1);\n return Object.keys(transaction.meta ?? {}).some((key) => key.startsWith(ysyncKey));\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock } from \"vue\"\n\nimport { computed, provide, readonly, ref } from 'vue';\nimport { MenuItemFn } from './menu-item';\nimport MenuSection from './MenuSection.vue';\nimport { Editor } from '@tiptap/core';\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'Menu',\n props: {\n commandSets: {},\n editor: {}\n },\n setup(__props: any) {\n\nconst props = __props;\n\n/**\n * When this value is set to anything other than null,\n * these command sets will populate the menu.\n */\nconst commandOverrides = ref(null);\n\n/**\n * Calling this changes the menu contents.\n * Useful for creating \"sub-menus\" within the same toolbar.\n * @param com The menu item function array.\n */\nfunction overrideCommands(com: MenuItemFn[]) {\n commandOverrides.value = com;\n}\n\n/**\n * Revert the menu to its initial state, which\n * is using the props given to the MenuSection.\n */\nfunction revertCommandOverrides() {\n commandOverrides.value = null;\n}\n\nconst commandSource = computed(() => commandOverrides.value ?? props.commandSets);\n\nprovide('menuCommandOverride', {\n commandOverrides: readonly(commandOverrides),\n overrideCommands,\n revertCommandOverrides,\n});\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(commandSource.value, (commandSet, index) => {\n return (_openBlock(), _createBlock(MenuSection, {\n key: index,\n editor: _ctx.editor,\n commands: commandSet\n }, null, 8, [\"editor\", \"commands\"]))\n }), 128))\n ]))\n}\n}\n\n})","\n\n\n","import script from \"./Menu.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Menu.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"rounded-full border border-solid color-button-border\" }\nconst _hoisted_2 = [\"data-st-table-color\"]\n\nimport useCustomIcon from '@/utilities/composables/useCustomIcon';\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'ColorButton',\n props: {\n effect: { type: Function },\n color: {}\n },\n setup(__props: any) {\n\nconst props = __props;\n\nconst { iconPath, getCustomIconStyle } = useCustomIcon();\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"button\", {\n class: \"add-card-toolbar-icon pt flex items-center justify-center\",\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.effect && _ctx.effect(...args)))\n }, [\n _createElementVNode(\"span\", _hoisted_1, [\n _createElementVNode(\"em\", {\n class: \"custom-icons page-toolbar group-hover:bg-icon-hover\",\n style: _normalizeStyle({ ..._unref(getCustomIconStyle)(_unref(iconPath)('circle-full')) }),\n \"data-st-table-color\": props.color\n }, null, 12, _hoisted_2)\n ])\n ]))\n}\n}\n\n})","\n\n\n\n\n","import script from \"./ColorButton.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ColorButton.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./ColorButton.vue?vue&type=style&index=0&id=58eff3fa&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-58eff3fa\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nimport useCustomIcon from '@/utilities/composables/useCustomIcon';\nimport { inject } from 'vue';\nimport ColorButton from './ColorButton.vue';\nimport { MenuItemFn } from '../menu-item';\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'ColorSelector',\n props: {\n effect: { type: Function }\n },\n setup(__props: any) {\n\n\n\ninject('editor');\n\nconst { overrideCommands, revertCommandOverrides } = inject<{\n overrideCommands: (com: MenuItemFn[]) => void;\n revertCommandOverrides: () => void;\n}>('menuCommandOverride')!;\n\nconst { iconPath, getCustomIconStyle } = useCustomIcon();\n\nfunction makeColor(color: string, props: Parameters[0]) {\n (makeColor as any).index = (makeColor as any).index ?? 0;\n return {\n icon: 'circle',\n key: (makeColor as any).index++,\n effect() {\n (props.editor.chain().focus() as any).setCellAttribute('stTableColor', color).run();\n revertCommandOverrides();\n },\n customProps: {\n color,\n },\n customButton: ColorButton as any,\n };\n}\n\nfunction toggleSwatches() {\n overrideCommands([\n ({ editor, translate, store }) => [\n {\n icon: 'arrow-left',\n effect: () => {\n revertCommandOverrides();\n },\n },\n makeColor('primary', { editor, translate, store }),\n makeColor('error', { editor, translate, store }),\n makeColor('warning', { editor, translate, store }),\n makeColor('success', { editor, translate, store }),\n makeColor('bluelight', { editor, translate, store }),\n makeColor('indigo', { editor, translate, store }),\n makeColor('purple', { editor, translate, store }),\n makeColor('pink', { editor, translate, store }),\n makeColor('orange', { editor, translate, store }),\n makeColor('gray', { editor, translate, store }),\n {\n icon: 'x',\n tooltip: translate('menu.clear-table-cell-color'),\n effect: () => {\n (editor.chain().focus() as any)\n .setCellAttribute('stTableColor', null)\n .setCellAttribute('backgroundColor', null)\n .run();\n revertCommandOverrides();\n },\n },\n ],\n ]);\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"button\", {\n class: \"add-card-toolbar-icon px-1 flex items-center justify-center\",\n onClick: toggleSwatches\n }, [\n _createElementVNode(\"em\", {\n class: \"custom-icons page-toolbar group-hover:bg-icon-hover\",\n style: _normalizeStyle(_unref(getCustomIconStyle)(_unref(iconPath)('color')))\n }, null, 4)\n ]))\n}\n}\n\n})","\n\n\n\n\n","import script from \"./ColorSelector.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ColorSelector.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./ColorSelector.vue?vue&type=style&index=0&id=6816f334&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { MenuItemFn } from './menu-item';\nimport ColorSelector from '@/components/editor/toolbar/sections/ColorSelector.vue';\n\nexport const columnCommands: MenuItemFn = ({ editor, translate }) => [\n {\n icon: 'add-column-before',\n effect: () => (editor.chain().focus() as any).addColumnBefore().run(),\n tooltip: translate('menu.add-column-before'),\n },\n {\n icon: 'add-column-after',\n effect: () => (editor.chain().focus() as any).addColumnAfter().run(),\n tooltip: translate('menu.add-column-after'),\n },\n];\n\nexport const rowCommands: MenuItemFn = ({ editor, translate }) => [\n {\n icon: 'add-row-before',\n effect: () => (editor.chain().focus() as any).addRowBefore().run(),\n tooltip: translate('menu.add-row-before'),\n },\n {\n icon: 'add-row-after',\n effect: () => (editor.chain().focus() as any).addRowAfter().run(),\n tooltip: translate('menu.add-row-after'),\n },\n];\n\nexport const mergeCommands: MenuItemFn = ({ editor, translate }) => [\n {\n icon: 'merge-cells',\n effect: () => (editor.chain().focus() as any).mergeOrSplit().run(),\n tooltip: translate('menu.merge-cells'),\n disabled: () => editor.disabledButtonStates.mergeCells,\n },\n {\n icon: 'header-row-2',\n effect: () => (editor.chain().focus() as any).toggleHeaderCell().run(),\n tooltip: translate('menu.toggle-header-row'),\n },\n {\n icon: 'color',\n effect: () => {},\n tooltip: translate('menu.table-cell-color'),\n customButton: ColorSelector as any,\n },\n];\n\nexport const deleteCommands: MenuItemFn = ({ editor, translate }) => [\n {\n icon: 'delete-column',\n effect: () => (editor.chain().focus() as any).deleteColumn().run(),\n tooltip: translate('menu.delete-column'),\n },\n {\n icon: 'delete-row',\n effect: () => (editor.chain().focus() as any).deleteRow().run(),\n tooltip: translate('menu.delete-row'),\n },\n {\n icon: 'trash',\n effect: () => (editor.chain().focus() as any).deleteTable().run(),\n tooltip: translate('menu.delete-table'),\n },\n];\n\nexport const controlCommands: MenuItemFn = ({ editor, translate }) => [\n {\n icon: 'expand-horizontal',\n effect: () => (editor.chain().focus() as any).toggleTableContentWidth().run(),\n tooltip: translate('menu.toggle-expand-to-page-size'),\n },\n];\n\nexport const tableCommands = [\n columnCommands,\n rowCommands,\n mergeCommands,\n deleteCommands,\n controlCommands,\n];\n","import { cellAround, selectedRect } from '@tiptap/pm/tables';\nimport { EditorState } from '@tiptap/pm/state';\nimport styleVariables from '@/assets/scss/variables.module.scss';\nimport { ResourceType } from '@/types/resources';\n\nexport function isFirstRowSelected(state: EditorState) {\n const cellPos = cellAround(state.selection.$from);\n\n if (!cellPos) return false;\n\n const rect = selectedRect(state);\n\n return rect.top == 0;\n}\n\nconst headerHeight = parseInt(styleVariables.columnHeaderHeight, 10);\n\nexport const FLOATING_MENU_HEIGHT = 40;\nexport const ARBITRARY_MENU_OFFSET = 20;\n\nexport function getVisiblePortionOfElement(target: Element) {\n const rect = target.getBoundingClientRect();\n const windowHeight = window.innerHeight || document.documentElement.clientHeight;\n const windowWidth = window.innerWidth || document.documentElement.clientWidth;\n\n const zeroHeight = headerHeight + FLOATING_MENU_HEIGHT + ARBITRARY_MENU_OFFSET;\n\n if (rect.bottom < zeroHeight) {\n return rect;\n }\n\n // Calculate the visible portion of the target element\n const top = Math.max(rect.top, zeroHeight);\n const left = Math.max(rect.left, 0);\n const right = Math.min(rect.right, windowWidth);\n const bottom = Math.min(rect.bottom, windowHeight);\n\n return {\n top,\n left,\n right,\n bottom,\n width: right - left,\n height: bottom - top,\n };\n}\n\nexport type ContentExpressions = {\n [K in keyof typeof ResourceType as `${(typeof ResourceType)[K]}`]: string;\n};\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, withModifiers as _withModifiers, normalizeClass as _normalizeClass, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n ref: \"dropdownContent\",\n class: \"flex items-center justify-center p-0.5 rounded-[4px] border border-solid border-important-border shadow-md bg-important-bg\"\n}\n\nimport { Editor } from '@tiptap/core';\nimport { ref, getCurrentInstance, computed } from 'vue';\nimport type { MenuItemFn } from '@/components/editor/toolbar/menu-item';\nimport useCustomIcon from '@/utilities/composables/useCustomIcon';\nimport MenuSection from '@/components/editor/toolbar/MenuSection.vue';\nimport useTranslate from '@/utilities/composables/useTranslate';\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'DropdownMenuSection',\n props: {\n command: { type: Function },\n dropdownCommands: { type: Function },\n editor: {}\n },\n setup(__props: any) {\n\nconst props = __props;\n\nconst { iconPath, getCustomIconStyle } = useCustomIcon();\nconst { translate } = useTranslate();\nconst _this = getCurrentInstance();\n\nconst dropdownParent = ref();\nconst dropdownButton = ref();\n\nconst handleKeyDown = (event: KeyboardEvent) => {\n isTextAlignShortcut(event);\n};\n\nconst preventAndStop = (event: Event) => {\n event.preventDefault();\n event.stopPropagation();\n};\n\nconst isTextAlignShortcut = (event: KeyboardEvent) => {\n const key = event.key;\n const textAlignMap: { [key: string]: string } = {\n r: 'right',\n l: 'left',\n c: 'center',\n };\n\n // Check if Ctrl or Command and Shift keys are pressed\n if (!(event.ctrlKey || event.metaKey) || !event.shiftKey || !textAlignMap[key]) {\n return;\n }\n\n preventAndStop(event);\n props.editor.chain().focus().setTextAlign(textAlignMap[key]).run();\n};\n\nconst command = computed(() =>\n props.command({\n editor: props.editor,\n translate,\n store: (_this?.proxy as any).$store!,\n })\n);\n\nconst icon = computed(() => iconPath(command.value.icon()));\n\nreturn (_ctx: any,_cache: any) => {\n const _component_v_popover = _resolveComponent(\"v-popover\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n ref_key: \"dropdownParent\",\n ref: dropdownParent,\n class: \"flex tb-button-group !border-l-0 dropdown-menu-section\"\n }, [\n _createVNode(_component_v_popover, {\n interactive: \"\",\n tag: \"div\",\n \"content-tag\": \"div\",\n placement: \"bottom-start\",\n class: \"p-0\",\n trigger: 'click',\n role: 'poper'\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"button\", {\n ref_key: \"dropdownButton\",\n ref: dropdownButton,\n class: _normalizeClass({ 'disabled-toolbar-option': command.value?.disabled() }),\n onKeydown: _withModifiers(handleKeyDown, [\"stop\",\"prevent\"])\n }, [\n _createElementVNode(\"em\", {\n class: \"custom-icons\",\n style: _normalizeStyle(_unref(getCustomIconStyle)(icon.value))\n }, null, 4)\n ], 34)\n ]),\n content: _withCtx(({ state }) => [\n (state.isVisible)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(MenuSection, {\n editor: props.editor,\n commands: props.dropdownCommands\n }, null, 8, [\"editor\", \"commands\"])\n ], 512))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n })\n ], 512))\n}\n}\n\n})","\n\n\n","import script from \"./DropdownMenuSection.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./DropdownMenuSection.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { render } from \"./Editor.vue?vue&type=template&id=03a0ef02\"\nimport script from \"./Editor.vue?vue&type=script&lang=js\"\nexport * from \"./Editor.vue?vue&type=script&lang=js\"\n\nimport \"./Editor.vue?vue&type=style&index=0&id=03a0ef02&lang=scss\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","export enum InlineMediaType {\n /**\n * Generic type. Will just display an icon, with no\n * preview.\n */\n File = 'file',\n /**\n * For videos. Will display a media player.\n */\n Video = 'video',\n}\n\nconst fileTypeToMediaType: Record = {\n 'video/mp4': InlineMediaType.Video,\n 'video/webm': InlineMediaType.Video,\n 'video/quicktime': InlineMediaType.Video,\n};\n\n/**\n *\n * @param fileType The file type that was retrieved from reading the file.\n * @returns The respective InlineMediaType, which is\n */\nexport function mediaType(fileType: string) {\n return fileTypeToMediaType[fileType] ?? InlineMediaType.File;\n}\n","export enum PlaceholderStatus {\n Active = 'ACTIVE',\n CheckActive = 'CHECK_ACTIVE',\n Inactive = 'INACTIVE',\n}\n","import { Node, mergeAttributes } from '@tiptap/core';\nimport { InlineMediaType } from './media-types';\nexport { mediaType } from './media-types';\nimport { PlaceholderStatus } from './placeholder-status';\n\nexport enum InlineMediaNode {\n Generic = 'imGenericMedia',\n GenericPlaceholder = 'imGenericMediaPlaceholder',\n}\n\ndeclare module '@tiptap/core' {\n interface Commands {\n [InlineMediaNode.Generic]: {\n setGenericMedia: (options: {\n fileName: string;\n url: string;\n fileType: string;\n mediaType: string;\n }) => ReturnType;\n };\n }\n}\n\nexport const GenericMediaNode = Node.create({\n name: InlineMediaNode.Generic,\n group: 'block',\n selectable: false,\n atom: true,\n\n addAttributes() {\n return {\n fileName: {\n default: 'Loading...',\n parseHTML: (element) => {\n return element.getAttribute('fileName') ?? element.getAttribute('filename');\n },\n },\n url: {\n default: '',\n },\n fileType: {\n default: null,\n parseHTML: (element) => {\n return element.getAttribute('fileType') ?? element.getAttribute('filetype');\n },\n },\n mediaType: {\n default: InlineMediaType.File,\n parseHTML: (element) => {\n return element.getAttribute('mediaType') ?? element.getAttribute('mediatype');\n },\n },\n };\n },\n\n parseHTML() {\n return [\n {\n tag: 'generic-media',\n },\n ];\n },\n\n renderHTML({ HTMLAttributes }) {\n /**\n * If the necessary attributes are not available, fall back to the old\n * structure, which won't throw.\n */\n if (\n !(\n typeof HTMLAttributes.url === 'string' &&\n typeof HTMLAttributes.fileName === 'string' &&\n typeof HTMLAttributes.mediaType === 'string'\n )\n ) {\n return ['generic-media', mergeAttributes(HTMLAttributes)];\n }\n\n switch (HTMLAttributes.mediaType) {\n case InlineMediaType.Video:\n return [\n 'generic-media',\n mergeAttributes(HTMLAttributes),\n [\n 'div',\n { class: 'generic-video-file-wrapper' },\n ['video', { controls: '' }, ['source', { src: HTMLAttributes.url }]],\n ],\n ];\n case InlineMediaType.File:\n return [\n 'generic-media',\n mergeAttributes(HTMLAttributes),\n [\n 'span',\n { class: 'generic-media-file-wrapper' },\n ['span', { class: 'media-thumbnail' }, ['span', { class: 'custom-icons' }]],\n [\n 'span',\n { class: 'generic-file-content' },\n ['div', { class: 'filename' }, HTMLAttributes.fileName],\n [\n 'a',\n { class: 'filelink', target: '_blank', rel: 'noopener', href: HTMLAttributes.url },\n 'Click to download',\n ],\n ],\n ],\n ];\n default:\n return ['generic-media', mergeAttributes(HTMLAttributes)];\n }\n },\n\n addCommands() {\n return {\n setGenericMedia:\n (options) =>\n ({ commands }) => {\n return commands.insertContent({\n type: this.name,\n attrs: {\n ...options,\n mediaType: options.mediaType ?? InlineMediaType.File,\n },\n });\n },\n };\n },\n});\n\nexport const GenericMediaPlaceholder = Node.create({\n name: InlineMediaNode.GenericPlaceholder,\n group: 'block',\n selectable: true,\n atom: true,\n addAttributes() {\n return {\n uploadId: {\n default: 'none',\n },\n fileName: {\n default: 'Loading...',\n },\n fileType: {\n default: undefined,\n },\n mediaType: {\n default: InlineMediaType.File,\n },\n uploadProgress: {\n default: 0,\n },\n status: {\n default: PlaceholderStatus.Active,\n },\n };\n },\n\n parseHTML() {\n return [\n {\n tag: 'generic-media-placeholder',\n },\n ];\n },\n\n renderHTML({ HTMLAttributes }) {\n return ['generic-media-placeholder', mergeAttributes(HTMLAttributes)];\n },\n});\n\nexport { InlineMediaType, PlaceholderStatus };\n"],"names":["class","_createElementBlock","_hoisted_1","$setup","inEpicBoard","_createCommentVNode","_createBlock","_component_PreviewSpace","key","_ctx","$store","getters","displayProjectPreviewBoards","_createTextVNode","$options","boardArchived","_component_ArchivedBar","type","onRestore","unarchiveBoard","socketDeletedProject","_component_DeletedProjectBanner","currentProjectTitle","_createVNode","_component_BoardGridView","_normalizeClass","currentCardsLayout","layout","onClick","_cache","boardClickHandler","arguments","onMousemove","mouseMoveHandler","onMousewheel","_createElementVNode","isMobile","hidden","boardPills","length","_$setup$embeddedBoard","embeddedBoardAttributes","disableFilter","_component_FilterPills","currentBoardId","_component_SaveAsNewViewButton","isCardsLayoutTimeline","isCardsLayoutCalendar","_component_BoardGridViewContent","noResourceEpic","_component_NoResource","_createSlots","header","_withCtx","_hoisted_2","_toDisplayString","isEpic","translate","body","_hoisted_3","_component_InEpicBoardNoResourceBody","_","undefined","name","fn","_hoisted_4","_component_TimelineView","_component_CalendarView","_component_v_popover","ref","on-show","draggingIsOn","placement","trigger","role","offset","get-reference-client-rect","position","tag","content","_ref","state","isVisible","_component_BoardListCard","$data","cardId","index","_defineComponent","__name","props","card","Object","required","weekId","Number","maxCardsVisible","inTooltip","Boolean","default","emits","setup","__props","emit","__emit","store","useStore","iconPath","getCustomIconStyle","useCustomIcon","openCard","useOpenCard","useTranslate","computed","calendarTask","croppedEdges","style","cardStartDate","secondsToMilliseconds","value","start_date","cardEndDate","due_date","areCardDatesSet","isRightEdgeCropped","has","isLeftEdgeCropped","isDueDateBeforeStartDate","cardStyle","statusIcon","_getCardStatus","ResourceType","Epic","getCardStatus","status","icon","cardStatusType","Backlog","lists","statusColor","_lists$value$card$val","_getCardStatus2","list_id","color","list_color","cardStatusStyle","backgroundColor","cardList","statusTooltipText","list_title","title","handleCardClick","_directive_tooltip","_resolveDirective","_withDirectives","_openBlock","_normalizeStyle","onShow","_unref","__exports__","Array","_Fragment","_renderList","CalendarCardItem","onOpenCard","dayIndex","dateTimestamp","dayHumanized","String","isToday","isCurrentMonth","isPast","isFuture","dayIsWeekend","showMoreCardsCount","moreCards","useBoardEmbed","isGuestReader","useCurrentRole","displayShowMorePopup","documentBody","document","showMoreButton","isHovered","itemBackgroundStyle","gridArea","itemHeaderStyle","footerIconStyle","monthLabel","format","weekStartsOn","showWeekend","getShowWeekends","showMonthLabel","isFirstDayOfMonth","isWeekend","startOfMonth","getWeekOfMonth","monthClass","calendarDayItemClass","today","dayLabel","getDate","quickCard","getQuickCard","getDatesForQuickCard","millisecondsToSeconds","getTime","endOfDay","currentTeamId","getTeamID","moreCardsButtonLabel","handleQuickCardButtonClick","quickCardDraftKey","getQuickCardCreationDraftKey","existingQuickCard","browserStorageGetItem","newQuickCardObject","browserStorageSetItem","dispatch","quickCardObject","handleMouseOver","handleMouseLeave","getShowMorePopupStyle","_showMoreButton$value","width","$el","clientWidth","maxWidth","onDropdownStateChange","_resolveComponent","onMouseover","onMouseleave","ref_key","interactive","append-to","onState","hide","CalendarCardsTooltip","onCloseTippy","QuickCardButton","effect","id","weekItem","height","_this","getCurrentInstance","proxy","sortByColumn","a","b","column","span","isOverlapping","some","row","start","shiftCardDown","newLayout","applyGridStyle","resource","gridColumn","gridRow","numberOfDays","getWeekDay","day","dayItems","startOfWeek","end","addDays","eachDayOfInterval","map","_processedWeekCards$v","startOfCurrentDay","startOfDay","startOfCurrentDayTimestamp","isTodayDate","isPastDate","isFutureDate","weekDay","getDay","weekDayConverted","dayTimestamp","isThisMonth","processedWeekCards","showMoreCountByColumnStart","weekCards","sortedWeekCards","sortedCards","sort","reduce","acc","aggregateColumnSpans","initial","from","i","cards","cardItems","CalendarDayItem","shortFormat","currentDate","Date","now","currentDayOfWeek","daysArray","split","daysLabels","slice","currentDayIndex","__default__","mixins","boardListMixin","boardViewMixin","visible","embed","this","_setupProxy","_this$_","exposed","board","_this$_setupProxy$emb","getFlatBoards","boardId","currentBoard","boardCardsWithDates","listCards","_this$_setupProxy","stateCards","cardDueDate","push","weeksWithCards","_this$_setupProxy2","cardDateRanges","generateDateRanges","forEach","dateRange","_this$_setupProxy3","weekStartDate","columnLayout","expandableEdges","createEdgesSet","cardWithLayout","items","startEdge","startEdgeDate","endEdge","endEdgeDate","eachWeekOfInterval","week","_this$_setupProxy4","weekTime","lastDayOfCurrentWeek","lastDayOfCurrentWeekFromIndex","_weeks$this$_setupPro","_this$_setupProxy5","weeks","currentItemIndex","watch","newVal","loadingItems","EventBus","$emit","calendarFullyLoaded","loadingBefore","restoreScroll","expose","__expose","defaultLoadedMonths","defaultLoadMoreMonths","defaultLoadMoreTrashhold","calendarCardRowGap","calendarDayHeaderHeight","calendarCardHeight","styleVariables","cardRowGap","convertStyleToNumber","dayHeaderHeight","cardHeight","buffer","containerHeight","calendarViewContainer","subMonths","addMonths","weekHeight","weekItemHeight","maxCards","Math","floor","max","getCards","boardCards","getBoardsCardsIdsByBoardId","left","right","edges","Set","add","getColumnLayoutAndCroppedEdges","range","cardDateRange","daysOfInterval","date","datesArray","dateStartTime","dateEndTime","cardStartTime","cardEndTime","isBefore","filter","setCalendarContainerHeight","updateItems","recursiveLimitCount","clientHeight","updateVisibleItems","requestAnimationFrame","onVisible","scrollToStart","getFirstWeekOfMonth","firstWeekOfMonth","getWeekItemIndex","findIndex","getScrollPosition","getItemIndex","getItemIndexFromPosition","setCurrentItemIndex","handleLoadMoreItems","prepareScroll","handleScrollerUpdate","calendarViewScroller","$refs","$_lastUpdateScrollPosition","viewportOffset","scrollToPosition","handleChangeMonth","monthUpdated","$on","previousScrollHeightMinusTop","element","scrollHeight","scrollTop","handleUnmounted","$off","onMounted","onUnmounted","CalendarViewHeader","RecycleScroller","onUpdate","_ref2","item","CalendarWeekItem","components","FilterPills","BoardListCard","SaveAsNewViewButton","TimelineView","BoardGridViewContent","CalendarView","NoResource","InEpicBoardNoResourceBody","draggableMixin","reportingMixin","boardItemListMixin","inject","epicId","data","previewPopoverKey","listenersAdded","boardsPills","cardsLayout","BoardLayout","Timeline","Calendar","isCardsLayoutList","List","isAnyCardDisplayed","getIsAnyCardDisplayed","showAttachmentPreview","getPreviewAttachmentIndex","mouseSuspended","boardViewMouseSuspended","boardHasCards","keys","getCardsByEpicId","$constants","epicsBoardId","cardPreviewShown","oldVal","getLastNDays","fetchReportData","_this$$refs$cardQuick","_this$$refs$cardQuick2","cardQuickPreviewPopover","call","activated","addPopoverKeyEvents","mounted","setCardId","beforeUnmount","closeAddCardIfOpen","removePopoverKeyEvents","deactivated","methods","getListDraftCardCreateView","window","addEventListener","popoverKeyOn","popoverKeyOff","removeEventListener","e","tagName","isContentEditable","activeElement","toLowerCase","$route","shiftKey","code","preventDefault","stopPropagation","repeat","DOMRect","setPosition","BoardGridView","ArchivedBar","PreviewSpace","DeletedProjectBanner","socketWatcher","headerMixin","windowMeta","usePageWindowMeta","timelineLayoutFeatureAvailable","useTimelineLayoutFeature","boardIdWatcher","head","isPage","metaBoardTitle","currentProjectTitlte","isProjectDeleted","_this$getTrashProject","getTrashProjects","project","currentBoardProjectId","socketDeletedProjects","includes","displayInfoSidebar","boardCreator","getMemberById","user_id_posted","getProject","project_id","archived","_this$currentBoard","get","set","teamSlug","getTeamSlug","teamID","tryToSubscribe","previousProjectId","boardProjectExpanded","getProjectExpanded","previousBoards","getProjectBoards","previousSprints","values","getSpaceSprints","sprint","$socket","updateSubscriptions","setItemNotFound","$nextTick","onPageLoad","oldValue","handler","newValue","checkCardsLayout","created","unmounted","getItemNotFound","then","propertyName","projectId","subscribeToResource","isSprintBoard","resourceType","subscribe","$watch","val","boardLayouts","localBoardLayoutKey","currentBoardLayout","isTimelineWithoutFeature","browserStorageGetAndSetItem","render","smallScreenView","expanded","tableOfContentHeight","toggleTableOfContents","tableOfContentsLabel","toggleIcon","_component_TableOfContentItems","$props","editorId","editorProp","onScrollTo","handleScrollTo","arrow","tocItemsMaxHeight","$event","_component_vue_scroll","ops","originalLevel","highestLevel","isActive","highlightLevel","href","_withModifiers","onItemClick","dom","innerText","editor","getHighestLevel","beforeMount","storage","tableOfContent","aminateLocationItem","animate","duration","eassing","highestLevelItem","min","current","currentLevel","TableOfContentItems","tableOfContentMaxHeightOffset","ro","isPublicPageApp","ResizeObserver","handleEditorResize","observe","view","checkIfShouldForceSmallScreenView","handleUpdateFullWidth","disconnect","hideFn","toc","tocRect","getBoundingClientRect","editorRect","firstElementChild","forceSmallScreenView","shouldForceSmallScreenView","doc","descendants","node","attrs","PhantomSuggesterKey","mention","PluginKey","emoji","command","useGenerateEditorClass","_getCurrentInstance","generateEditorClass","entries","editorClasses","className","condition","join","onTouchstart","handleClick","mouseOverHandler","pageNotFound","customIconMixin","reportInfoData","getReportInfoData","fetchReportInfoData","routeNames","CalloutTypes","Callout","Node","create","group","selectable","addOptions","Info","parseHTML","addAttributes","getAttribute","renderHTML","attributes","showDropdownOnCreate","HTMLAttributes","mergeAttributes","addCommands","callout","options","commands","insertContent","addKeyboardShortcuts","Backspace","empty","$anchor","selection","isAtStart","pos","parent","textContent","clearNodes","component","popup","showPopup","VueRenderer","PopUpEditLink","rects","tippy","getReferenceClientRect","appendTo","showOnCreate","animation","updateProps","disabled","isNewBoard","fileCache","tableCellPadding","imageUploader","plugin","ImageUploaderPlugin","dummy","Plugin","handleDOMEvents","keydown","setView","drop","event","_event$target","checkIfDropElementToIsTableCell","dropIntoTableCell","tableCellWidth","target","offsetWidth","focus","handlePaste","handleDrop","transformPastedHTML","html","_parsedHtml$body","pastedFileFromClipboard","replacedHtml","replaceAll","parser","DOMParser","parsedHtml","parseFromString","imgs","getElementsByTagName","img","remove","innerHTML","transformPasted","init","apply","tr","_value","_oldState","newState","filesOrUrls","getMeta","arr","File","setTimeout","beforeUpload","setMeta","constructor","config","hasCordinatesAndFiles","coordinates","filesLength","getImageHeight","image","calculateHeight","isFragmentPlaceholder","fragment","_fragment$content$","_fragment$content$2","constants","stImagePlaceholder","InlineMediaNode","GenericPlaceholder","_event$dataTransfer","dataTransfer","files","posAtCoords","clientX","top","clientY","preventInsertFiles","emitter","Promise","any","async","acceptMimes","file","imgSrc","readImage","Image","onload","checkWidth","src","beforeUploadFile","catch","console","warn","_event$clipboardData","clipboardData","getAsFile","imageNodes","children","child","newChild","uploadId","url","imgsrc","stImage","tableCell","checkIfInsertingIntoTableCell","imageSmallerThanTableCell","uploadImageForId","Slice","Fragment","fromArray","openStart","openEnd","at","fileName","deleteSelection","schema","nodes","fileType","mediaType","uploadProgress","replaceWith","uploadFileForId","fileObject","requestUpload","placeholderNodes","getNodePositions","_this$config$emitter","replaceNodesAtPositions","Generic","deleteNodesAtPositions","fileOrUrl","_tempImage","_tempImage2","tempImage","newUploadingImageNode","readImageAndCheckDimensions","nodeName","positions","replacement","newNode","_ref3","delete","upload","parentResourceType","parentResourceId","err","message","webImg2File","getFileName","_this$config$emitter2","_node$attrs","_node$attrs2","blurhash","alt","imgUrl","imgToBase64","startsWith","resolve","canvas","createElement","ctx","getContext","crossOrigin","setAttribute","reject","drawImage","dataURL","toDataURL","onerror","base64toFile","base","filename","mime","match","bstr","atob","n","u8arr","Uint8Array","charCodeAt","reader","FileReader","_e$target","result","readAsDataURL","nameArr","splice","imageWidth","p","querySelector","preferredWidth","ratio","round","getFileCache","isInTable","selectionCellNode","selectionCell","nodeDom","nodeDOM","imageIsSmallerThanTableCell","_event$target2","_event$target3","parentNode","commentsActive","_Transition","mode","displayCount","pageCommentsCount","customIconsMixin","hideDropdownsMixin","getCommentsAreActive","parseInt","getPage","total_comments","uploadFn","isModal","resourceId","formData","FormData","currentRoute","getCurrentRoute","Page","currentPage","createNewPageAndUpdateRoute","page","resourceProperty","Comment","append","payload","localId","_data$files","route","getRoutes","teamId","dataFile","fileId","Card","remoteFileUrl","_hoisted_5","_hoisted_6","currentMonthLabel","currentYearLabel","isDifferentYear","isSameYear","moveToStart","setCurrentMonthLabel","handleOnUnmounted","ButtonCustom","text","listCommands","chain","toggleTaskList","run","tooltip","active","activeButtonStates","taskList","toggleBulletList","bulletList","toggleOrderedList","orderedList","setHorizontalRule","disabledButtonStates","headingCommands","toggleHeading","level","h1","h2","h3","textStyleCommands","toggleBold","bold","tooltipMeta","ctrl","toggleItalic","italic","toggleStrike","strike","modifiers","toggleUnderline","underline","alignCommand","_ref4","textAlignCenter","textAlignRight","textAlignJustified","heading","paragraph","alignCommands","_ref5","setTextAlign","textAlignLeft","bubbleMediaCommands","_ref6","unsetLink","to","textBetween","insertLink","selectedText","link","blockElementsCommands","_ref8","toggleBlockquote","blockquote","toggleCode","inlineCommentCommands","_ref9","highlightSelectionId","nanoid","setPreCommentHighlight","highlight","preCommentRange","highlightedNodes","querySelectorAll","lastNode","rect","label","cardFromSelectionCommands","_ref10","setTextSelection","customButton","undoRedoCommands","_ref11","undo","redo","showAiPopupCommand","_ref12","serializer","DOMSerializer","fromSchema","selectedHtml","serializeFragment","tempDiv","appendChild","lastChild","nodeType","selectedHtmlString","showAiPopup","originalText","isHeading","_component_CopyHeadingLinkButton","headingId","draggable","_component_DragHandle","onDragstart","onDragStart","blockPositionFromCoords","block","docView","desc","nearestDesc","posBefore","HTMLElement","timeout","clearTimeout","removeCommentInputAndHiglight","removePreCommentHighlightSelection","_this$editor","hideBlockMenu","precommenthighlight","highlightedId","setSelection","NodeSelection","ghost","shadowRoot","clearData","setData","outerHTML","setDragImage","effectAllowed","dragging","move","MouseOver","absolutePosition","dimensions","copy","linkId","location","origin","path","navigator","clipboard","writeText","notification","headings","DragHandle","CopyHeadingLinkButton","isDraggable","blockId","checkElement","_component_NodeViewWrapper","_component_InternalLinkComponent","_mergeProps","getId","selected","onUpdateAttrs","updateAttrs","openLink","dragStartHandler","newUrl","onMousedown","anchorMousedown","_component_ResourceIcon","resourceIcon","dataIconSrc","dataIconColor","dataIconType","transform","epicType","additionalIcon","dataAdditionalIconSrc","dataAdditionalIconColor","dataAdditionalIconType","dataUrl","isNotFound","ResourceIcon","cardStatuses","getCardStatusIcon","dataGetResource","sprintStateIcon","useSprintStateIcon","linkName","getResourceTimeout","oldResourceData","isAnyCardDisplayedInDockedLayout","getIsAnyCardDisplayedInLayout","docked","deletedResourceProjectId","_this$this$resourceTy","Project","Space","userTeams","getUser","teams","team","find","t","sub_domain","subdomain","projects","getTeamProjects","resourceData","isNewPageBoard","newPageBoard","internalLinkRoutePath","tabName","isSameTeamSlug","resourceName","favouritesOpened","getFavouritesOpened","getPageById","getTeamProjectById","getCurrentRouteFullPath","fullPath","notFoundUrl","domain","workspace","user","deletedResource","getResourceData","updateLinkAttributes","updateUrl","getDashedTitle","hostname","protocol","hash","search","URL","getEpic","getCard","getBoard","getSprint","handleUserWorkLink","updateAttributes","cardStatus","listId","sprint_id","getSprintListKey","getListAndUpdateIconSrcAndColor","sprintId","$isBoardFullyLoaded","setBoardIcon","getCardsLayoutForBoard","epic","_epic$icon","_epic$icon2","_epic$icon3","updateAdditionalIconAttributes","epicDefaultIcon","setPageIcon","_this$page$icon","_this$page$icon2","_this$page$icon3","setCurrentProjectAndBoardId","fetchBoardSetCurrentProjectId","fetchCardAndBoard","getIsCardDisplayed","board_id","button","checkForCardCommentLink","_internalLinkHref$sea","_internalLinkHref$sea2","internalLinkHref","commentId","searchParams","parentCommentId","history","pushState","$router","$capitalizeFirstLetter","projectSlug","setProject","Board","Sprint","SprintCard","pathname","resolvedRoute","query","userNavigated","_url$searchParams","_url$searchParams2","replaceState","newAtrributes","newData","JSON","stringify","getList","list","isSprint","listColor","behavior","Note","otherUserFirstName","first_name","display_name","userFirstName","NodeViewWrapper","InternalLinkComponent","nodeViewProps","getInternalLinkProps","newAttributes","_component_node_view_wrapper","as","isNodeWithinSelection","onMouseenter","onMouseEnter","onMouseLeave","mouseDownHandler","handlesVisible","optionsDropdown","mouseover","_component_ListDropdown","imageOptionItems","_index","_event","handleImageOptionsDropdownItemsClick","onCloseEscape","editable","handleDelete","extension","_component_NodeViewContent","blockAttributeName","isResizing","_component_StImage","NodeViewContent","ListDropdown","StImage","copyImage","useCopyImage","isChromium","useIsBrowser","lastMovement","aspectRatio","dragStartX","increasing","movementDelta","throttleTimeout","dropdownTop","dropdownRight","withinSelectinTimeout","customIconName","meta","shortcutKeyCode","separator","calculateImagesSize","_this$$refs","checkIsInTable","checkYoutubeUrl","contentNode","dataset","addEventListeners","on","isWithinSelection","removeEventListeners","getPos","$from","$to","_event$relatedTarget","_event$relatedTarget2","relatedTarget","matches","onMouseLeaveWrap","setResizing","resizing","handle","dragHandleBlockId","hideDragHandle","activeHandle","onMouseUp","onMouseMoveThrottled","classList","onMouseMove","isLeftHandle","delta","roundToWhole","num","abs","heightDelta","newWidth","newHeight","stImageMinWidth","checkParentWidth","_this$$refs$imageNode","showImageInFullScreen","downloadFile","imgElement","imageNode","imgNode","nodeSrc","deleteNode","getFileIdFromUrl","displayFullScreenImage","_node$type","_editor$extensionMana","youtubeExtension","extensionManager","extensions","Youtube","_this$$refs2","wrapper","parentWidth","userId","_component_MentionComponent","_normalizeProps","isMe","denotationChar","userLabel","getHoverMember","userValue","mentionTime","isGuestRole","userOb","getMemberLabel","currentUserId","getUserId","MentionComponent","wrapperStyle","isSafari","setHeightTimeout","base64","stImageDefaultWidth","background","borderRadius","setHeight","stImageDefaultHeight","copyLink","editLink","showLinkPopup","tooltipLinkStyle","hideLinkTooltip","commentMarkName","createCommentMark","comment","resolved","marks","markTypeIsComment","_mark$type","mark","getMarksWithoutComment","findAllCommentMarks","commentMarks","getCommentMarks","nodeSize","_node$marks","_node$marks$filter","getCommentMark","_node$marks2","_node$marks2$find","createNodeWithoutCommentChildren","_node$type$create","removeMarks","isText","marksWithoutComment","isBlock","hasCommentMarkInFragment","found","updateComment","isResolve","_comment$split","_resolved$split","commentIds","resolvedCommentIds","sourceIds","targetIds","newSourceIds","unshift","newTargetIds","resolvedIds","newCommentMark","addMark","Mark","inclusive","el","addStorage","activeCommentId","cut","inlineCommentActive","getAttrs","_el$getAttribute","trim","_el$getAttribute2","setComment","yjsFrom","yjsTo","preCommentHighlight$","YState","ySyncPluginKey","getState","relativePositionToAbsolutePosition","binding","mapping","TextSelection","rangeHasComments","rangeHasMark","nodesInRange","nodesBetween","nodeInRange","_commentMark$attrs","_commentMark$attrs2","commentMark","comments","nodeStart","nodeEnd","combinedComments","singleCommentMark","combinedCommentsMark","nodeStartWithinSelection","endPos","previousNodeEnd","startPos","setMark","removeComment","updateCommmentMark","newCommentIds","removeMark","updateResolvedCommentMark","newResolvedIds","resolveComment","unresolveComment","addProseMirrorPlugins","handleClickOn","nodePos","nodeAtPosition","nodeAt","_commentMark$attrs3","_commentIds$split","_element","_this$options$emitter","_this$options$emitter2","domAtPos","parentElement","_this$options$getText","_this$options","textNode","getTextNodeFromPoint","internalDrag","hasCommentMark","transformedContent","inputRegex","inline","allowBase64","unsplashBaseUrl","images","setImage","setAllEditorImages","_this$options$findChi","nodesWithoutId","findChildren","_node$attrs$fileType","_node$attrs$fileType$","_node$attrs$fileType2","_node$attrs$fileType3","_node$attrs$url","pop","_this$options$unsplas","_this$options2","unsplashImg","unsplashObjectByImgSrc","_this$options$objectB","_this$options3","imageObject","objectByImgSrc","_this$editor$storage","_this$options$display","_this$options4","displayImageFullScreen","near","Selection","_this$options$getFile","_this$options5","addInputRules","nodeInputRule","getAttributes","plugins","_url$startsWith","_this$options$getRand","corsProxyBaseUrl","encodeURIComponent","getRandId","attr","_el$firstElementChild","firstChildFallback","elementsAttr","atom","_this$parent","renderLabel","linkOnPaste","getResource","priority","addInternalLink","addPasteRules","nodePasteRule","internalLinkRegEx","secureProtocol","generateResourceData","Mention","extend","parentOptions","suggestion","_nodeAfter$text","_window$getSelection","nodeAfter","overrideSpace","insertContentAt","getSelection","collapseToEnd","mentionDropdownActive","_element$firstElement","_element$firstElement2","_element$firstElement3","_element$firstElement4","setMentionDropdownActive","createPreCommentHighlightDecoration","resolvedFrom","resolvedTo","decoration","Decoration","inclusiveStart","inclusiveEnd","spec","decorationSet","DecorationSet","stateValue","collabEnabled","action","fromPos","absolutePositionToRelativePosition","toPos","recreateTransform","before","complexSteps","wordDiffs","simplifyDiff","decorations","_this$getState","PreCommentHighlight","Extension","precommentHighlightPlugin","setCheckboxChecked","checkbox","setCheckboxUnchecked","removeAttribute","handleCheckboxChange","onReadOnlyChecked","isEditable","checked","scrollIntoView","currentNode","setNodeMarkup","TaskItem","shortcuts","Enter","splitListItem","Shift-Tab","liftListItem","parentOffset","joinBackward","nested","Tab","sinkListItem","addNodeView","listItem","checkboxWrapper","checkboxStyler","contentEditable","tabIndex","contentDOM","update","updatedNode","renderText","ImageUploadExtension","Error","ignoreDomains","uploadImage","tippyRef","lastHoverElementId","hoverComponent","linkComponent","linkTippy","resetLinkVariables","linkHover","linkTooltipComponent","posAtDOM","onHide","followCursor","getEditorMidlePoint","rootElement","rootBoundingRects","getBlockElementFromCords","x","y","_node","_node$getRootNode","elementFromPoint","getRootNode","ShadowRoot","host","_node$parentNode2","contains","hover","blockHoverMenuComponent","_hoverComponent","_hoverComponent$$dest","_tippyRef","$destroy","lineHeight","getComputedStyle","_tippyRef2","_tippyRef2$destroy","isDestroyed","destroy","setDragHandleBlockId","popperOptions","boundary","aria","hideOnClick","triggerTarget","zIndex","isLinkElementValid","linkElement","hasAttribute","findLinkElement","_linkElement","_linkElement$getAttri","isFocused","xMiddlePoint","blockElement","onDestroy","_tippyRef$destroy","_tippyRef3","_tippyRef4","_tippyRef4$destroy","_hoverComponent2","_hoverComponent2$$des","_linkComponent","_linkTippy","_linkTippy$destroy","mousemove","unsplashId","substring","indexOf","lastIndexOf","team_id","time_created","user_id","pasteHandler","_slice$content$firstC","_slice$content$firstC2","isAlreadyLink","isLink","isInternalLink","pastedLink","firstChildIsText","firstChild","firstChildContainsLinkMark","deleteOnly","currentPos","fragmentLinks","insert","fragmentLink","linkStart","linkEnd","hasMark","hasFragmentLinks","docChanged","replaceHandlePastePlugin","parentPlugins","clickHandler","shouldHandleInternalLink","open","currentElement","_currentElement","_currentElement2","_currentElement2$getA","_currentElement3","_currentElement4","urlFromHref","replaceLinkClickPlugin","openOnClick","newPlugins","mergeCellsDisabled","cellPos","cellAround","selectedRect","bottom","autolink","appendTransaction","transactions","oldState","docChanges","transaction","eq","preventAutolink","combineTransactionSteps","changes","getChangedRanges","newRange","nodesInChangedRanges","findChildrenInRange","isTextblock","textBlock","textBeforeWhitespace","endsWith","wordsBeforeWhitespace","s","lastWordBeforeSpace","lastWordAndBlockOffset","validate","isInternalLinkValid","internalLinkNode","replaceSelectionWith","steps","doubleClick","handleDoubleClickOn","arrowUpInFirstRow","cursorTop","coordsAtPos","topOffset","borderTop","marginTop","paddingTop","margin","padding","border","cursorTopOffsetted","arrowUpHandler","arrowLeftHandler","backspaceHandler","blockRange","allMarks","combinedKey","ctrlKey","metaKey","altKey","extractMarks","isTextNodeWithSingleCharLeft","_node$textContent","isNodeWithSurroundingTextNodes","_node$content","childCount","isNodeWithSingleCharLeft","nodeBefore","_node$firstChild","_fragment$content","size","toggleMark","storedMarks","EventHandler","indent","_this$editor$view$sta","mention$","handleKeyDown","handleArrowLeft","getRectOrDestroy","maybeGetRect","popups","_popups","_popup$destroy","filteredMembers","members","getTeamMembers","m","description","last_name","email","filtered","reactive","boards","pages","epics","advanceOptions","grouped","completed","cancelled","getDefaultCards","getDefaultEpics","getDefaultBoards","getDefaultProjects","getDefaultPages","onStart","MentionList","clientRect","setMaxHeight","setProps","onKeyDown","_component$ref","onExit","_popup","_component","_component$destroy","renderCollaborationCursors","cursor","borderColor","borderLeft","borderRight","userSpan","flag","yjsId","whiteSpace","insertBefore","storeDispatch","Function","pluginKey","prefix","inputRef","lastOffset","abortSuggestionDefaults","abortSuggestion","_props$getPos","insertText","destroyComponent","onContextMenu","appContext","app","unmount","handlePopstate","handleInput","_inputRef$value5","_inputRef$value6","handleKeydown","_selection$anchorNode","_inputRef$value7","anchorOffset","anchorNode","_inputRef$value8","_selection$anchorNode2","_selection$anchorNode3","queryLength","closest","edgeDetected","_inputRef$value9","_inputRef$value10","_inputRef$value11","_e$clipboardData","stopImmediatePropagation","getData","sel","rangeCount","getRangeAt","deleteContents","createTextNode","insertNode","setStartAfter","collapse","removeAllRanges","addRange","dispatchEvent","Event","bubbles","onClickOutside","_inputRef$value2","_inputRef$value","createRange","_inputRef$value3","childNodes","setStart","_inputRef$value4","selectNodeContents","onBeforeUnmount","contenteditable","autocorrect","autocapitalize","autocomplete","onKeydownCapture","onKeyup","onPasteCapture","onInput","fuse","Fuse","groupCommandsByType","r","flatMap","g","results","SlashCommandSearchList","c","_component$ref$onKeyD","emojis","EmojiIndex","EmojiSearchList","getPrecedingChar","isIn","parentDenyList","nodeList","$head","d","depth","tryOpenSuggester","params","typedChar","parentDenylist","allowedPreceding","isArray","precedingChar","createPhantomDecoration","resolvedPos","isNaN","widget","container","widget2","_window$StVueApp","vNode","createApp","h","PhantomSuggesterComponent","StVueApp","_context","mount","side","ignoreSelection","PhantomPlugin","renderer","suggesterKeys","yjsPos","newQuery","commandProps","_document$querySelect","_stateValue$decoratio","decorationPos","posValid","otherSuggesterActive","suggesterKey","isChangeOrigin","absPos","handleTextInput","wasHandled","isFirefox","TipTapPhantomPlugin","_userMentionSuggestio","_emojiSuggestion$rend","_commandSuggestion$re","userMentionSuggestion","emojiRenderer","emojiSuggestion","commandRenderer","commandSuggestion","allKeys","updateColumns","colgroup","table","cellMinWidth","overrideCol","overrideValue","totalWidth","fixedWidth","nextDOM","col","colspan","colwidth","j","hasWidth","cssWidth","nextSibling","after","removeChild","_editor$eventBus","_editor$eventBus$$emi","eventBus","minWidth","TableView","_this$view$dom","contentWidth","ignoreMutation","mutation","getTableNode","tableNode","hasFullWidthTable","hasFullWidth","Table","resizable","allowTableNodeSelection","View","pageSize","_this$parent2","_this$parent3","toggleTableContentWidth","_tableNode$attrs","currentWidth","goToNextCell","can","addRowAfter","goToPreviousCell","isResizable","columnResizing","handleWidth","lastColumnResizable","tableEditing","stColorToHex","primary","light","dark","error","warning","success","bluelight","indigo","purple","pink","orange","gray","contentExpr","note","TableCell","stTableColor","_element$style$backgr","_element$style$backgr2","replace","_stColorToHex$attribu","TableHeader","TableRow","unconfiguredPlugins","tableRow","tableHeader","TablePlugins","configure","ATTRIBUTE_NAME","updateTimeout","createStorage","headlines","scrollHandler","scrollPosition","createTableOfContentPlugin","headingType","StatePlugin","StatePluginKey","modified","existingIds","tocId","newId","mapTocItems","tocItems","scrolledOverIds","activeId","_editor$view","_domNode","domNode","offsetTop","isScrolledOver","isEmpty","updateTableOfContents","linearIndexes","domNodes","_editor$view2","itemIndex","lastItem","previousItemWithSameOrHigherLevel","reverse","previousLevel","_itemsWithSameOrHighe","itemsWithSameOrHigherLevel","TableOfContent","addGlobalAttributes","types","scrollParentClass","updateDelay","_this$options$onUpdat","bind","_this$storage$parent","_this$storage$parent$","onCreate","_this$options$onUpdat2","_this$editor$view$dom","_this$storage$parent2","_this$storage$parent3","_this$options$onUpdat3","scrollParent","CharacterCount","limit","onLimitReached","characters","words","onBeforeCreate","word","filterTransaction","oldSize","newSize","isPaste","over","deleteRange","updatedSize","CustomEnter","clearMarks","setStoredMarks","comp","InlineMediaType","Video","defineAsyncComponent","_resolveDynamicComponent","mt","provide","_props$node","_props$node2","SpecificMedia","progress","_store$state$editors$","editors","uploading","u","owner","startCheck","stop","stopCheck","useTimeoutFn","PlaceholderStatus","CheckActive","startInactivation","stopInactivation","Inactive","immediate","syncedProgress","Active","syncedStatus","newStatus","CircularProgress","radius","GenericMediaNode","BaseGenericMediaNode","VueNodeViewRenderer","GenericMediaComponent","GenericMediaPlacholder","BaseGenericMediaPlaceholder","GenericMediaPlaceholderComponent","ignoredNodes","filterNodes","FilterFiles","customShortcuts","checkIsApple","isRequired","embedBoard","_currentBoard$value","flatBoards","localBoardLayout","localGroupBy","localSortBy","hideEmptyGroups","currentLayout","_currentBoard$value2","nextTick","_props$updateAttribut","updateAttribute","fullWidth","readOnly","groupBy","sortBy","showItemNotFound","HeaderCustom","onUpdateAttribute","ItemNotFound","BoardView","vnode","preventDecorationCreation","createContentMenuDecoration","_document","_document2","_document3","menuElement","createVNode","ApplyTemplate","enableTooltip","pageViewTemplate","contentMenuPlugin","_vnode","componentInstance","emptyEditor","newDecoration","editorView","currentState","viewDestroy","ContentMenu","calloutIcons","info","calloutTranslationKeys","showDropdown","filterPopup","mentionActive","extensionStorage","dropdownItems","customIcon","lighter","handleOnShow","_filterPopup$value","searchInput","handleEsc","handleOnHide","FilterDropdown","hide-filter-popup","placeholder","onEsc","defaultBlockAt","edgeCount","edge","hasRequiredAttrs","exitBlockAbove","sameParent","above","contentMatchAt","canReplaceWith","createAndFill","ydocFragmentField","AwarenessProvider","awareness","getAwareness","EditorService","Editor","_props$collaboration","_props$collaboration2","_props$collaboration3","_props$collaboration4","useDisplayImageFullScreen","super","commenting","CustomUserMention","MentionNode","Code","excludes","exitable","allowImagesUpload","InternalLink","InternalLinkNode","InternalLinkRenderExtend","Link","isNotInternalLink","LinkTooltip","BlockHoverMenu","Placeholder","focusedStatePlaceholder","emptyNodeClass","emptyEditorClass","showOnlyWhenEditable","Resizing","StarterKit","dropcursor","codeBlock","collaboration","horizontalRule","blockElements","ListItem","TaskList","allowImages","MediaResize","UNSPLASH_BASE_URL","StImagePlaceholder","StImagePlaceholderNodeView","Typography","Underline","UniqueId","attributeName","generateID","loading","Collaboration","getXmlFragment","CollaborationCursor","provider","characterLimit","textAlignment","TextAlign","alignments","defaultAlignment","enableBoardEmbed","EmbedBoard","BoardEmbed","enableContentMenu","Callouts","CodeBlockLowlight","_this$parent4","ArrowUp","lowlight","createLowlight","common","defaultLanguage","h4","h5","mergeCells","ACTIVE_STATES_UPDATE_DELAY","onEditorUpdated","updateButtonStates","textAlign","updateEditorId","root","updateEditorResourceId","updateEditorContentClass","addEditorContentClass","removeEditorContentClass","hidePopup","onBlur","onKeydown","_withKeys","_component_PopupHeader","youtubeVideoPopup","onClose","_component_StInput","currentText","onEnterKey","enterHandlerFocusNext","linkUrl","saveEditedLink","_component_ButtonCustom","buttonLabel","StInput","PopupHeader","linkRegex","requried","editLinkInput","insertLinkText","insertLinkUrl","isEmptyInput","isSelectedText","focusLinkText","focusLinkUrl","linkText","focusInput","_this$editor$commands","addYoutubeEmbed","unsetMark","checkUrl","extendMarkRange","setLink","linkMatch","urlRegularExpression","mailMatch","mailRegularExpression","phoneMatch","phoneRegularExpresion","anchorMatch","anchorRegularExpression","locationHost","modifyMail","modifyLink","modifyPhone","linkRule","test","addHttpsPrefix","mailRule","addMailPrefix","phoneRule","addTelPrefix","setYoutubeVideo","parentProps","TooltipTemplate","_renderSlot","$slots","commandOverrides","overrideCommands","com","revertCommandOverrides","readonly","commandSource","_props$options","aiPopupAppendTo","customProps","SectionItem","ref_for","openPublicPageInNewTab","_this$page$public_set","_this$page$public_set2","dashedPageTitle","publicUrl","public_settings","hideTimeout","onlineStatus","getOnline","onDropdownHide","onDropdownShow","listDropdownItems","handleItemClick","aiGeneratedText","dropdownButtonLablel","chevronIcon","_component_EditorDisplay","copyGeneratedText","usn","insertBelow","replaceGeneratedText","handleClickOutside","REPHRASE_TONES","languages","labelKey","EditorDisplay","convertStreamResponse","useStreamResponseReader","dropdown","nextLevel","commandType","displayEditor","editorDisplay","firstLevel","rightSideIcon","tone","lang","_this$dropdown","isShown","handleEscapeClose","commandIndex","tooltipContent","selectedIndex","handleDropdownEscape","removeHighlight","handleClose","_this$dropdown2","unsetAllMarks","contentHtml","getHTML","contentPlain","getText","clipboardItem","ClipboardItem","Blob","write","_this$$refs$tooltipCo","_this$$refs$tooltipCo2","AiTask","instance","response","generatedFilteredText","scrollToBottom","aiPopupScroll","scrollTo","ResourceVariants","stopSuggester","selectionIsInTable","currentEditor","currentEditorId","rendererComponent","generateAndShowPopup","AiPopup","lastElement","popper","mediaPageFilter","_store$getters$curren","PageTemplate","getQuickPage","mediaPageRun","mediaCardFilter","_store$getters$curren2","CardTemplate","QuickChildCard","getQuickCardIsOn","mediaCardRun","_store$getters$curren3","mediaCommentRun","_store$getters$curren4","baseMediaPage","category","keywords","baseMediaCard","baseMediaComment","mediaCommands","searchName","displayName","basicCommands","insertTable","rows","cols","withHeaderRow","setHeading","toggleCodeBlock","inlineCommands","getChildCardCreation","anchor","embedCommands","_store$getters$curren5","myProjects","getProjects","orginalId","count","byResource","_c$filter","previousIndex","includeScore","currentTableOfContent","editorReady","hideTableOfContents","_component_TableOfContent","_component_StBubbleMenu","tabelMenuTippyOptions","shouldShowTableMenu","_component_StMenu","tableCommands","bubbleMenuTippyOptions","shouldShowBubbleMenu","_component_MenuSection","order","bubbleOrder","headingSection","textStyleSection","enableTextAlignment","_component_DropdownMenuSection","alignTextSection","mediaSection","listsSection","blockElementsSection","commentsAllowed","addCommentButton","createCardFromSelection","enableAi","aiAssistantEnabled","aiAssistantAppendTo","aiSection","_component_editor_content","spellcheck","spellCheck","typing","collaborationCursor","showSessionAvarats","customSessionAvatarsPosition","sessionAvatarsPosition","users","_component_UserAvatar","member","StBubbleMenuView","BubbleMenuView","mouseDown","shown","onMousedownHandler","show","StBubbleMenuPlugin","StBubbleMenu","defineComponent","tippyOptions","shouldShow","slots","registerPlugin","unregisterPlugin","deep","_slots$default","setCursorFlag","flagVisibility","userName","getElementById","username","updateAwareness","_awareness$value","_awareness$value$setL","_awareness$value2","_awareness$value2$set","_awareness$value3","setLocalStateField","getLocalState","attachFlagUpdateSubscription","fromEvent","pipe","updatePayload","_updatePayload$","updated","ev","_awareness$states","_awareness$states$get","awarenessState","states","_awarenessState$user","attachFlagInputSubscription","merge","tap","bufferTime","useAwareness","wsProviderRef","maybeUnref","updatesSubscription","inputSubscription","providerListenerHandler","ydoc","Awareness","destroyProviderListener","_provider$value","_provider$value$off","off","enableFlagUpdates","wsProvider","_updatesSubscription$","_updatesSubscription$2","refValueIsDefined","unsubscribe","enableFlagInput","editorRef","_inputSubscription$va","_inputSubscription$va2","unref","_updatesSubscription$3","_updatesSubscription$4","_inputSubscription$va3","_inputSubscription$va4","getYSyncKey","$index","ysyncKey","commandSets","commandSet","MenuSection","makeColor","setCellAttribute","ColorButton","toggleSwatches","columnCommands","addColumnBefore","addColumnAfter","rowCommands","addRowBefore","mergeCommands","mergeOrSplit","toggleHeaderCell","ColorSelector","deleteCommands","deleteColumn","deleteRow","deleteTable","controlCommands","isFirstRowSelected","headerHeight","columnHeaderHeight","FLOATING_MENU_HEIGHT","ARBITRARY_MENU_OFFSET","getVisiblePortionOfElement","windowHeight","innerHeight","documentElement","windowWidth","innerWidth","zeroHeight","dropdownCommands","dropdownParent","dropdownButton","isTextAlignShortcut","preventAndStop","textAlignMap","l","_command$value","EditorContent","UserAvatar","StMenu","DropdownMenuSection","inputPlaceHolder","watchContent","bottomGutter","autofocus","bubbleMenuParent","submitOnEnter","collaborationEnabled","forceFocus","highlightAllowed","enablePlaceholder","arrowLeftAtDocStart","initAwareness","destroyAwareness","editing","providerWS","resourceWatch","contentWatcher","stEditor","posToDOMRect","difference","_this$editor$view$nod","tablePos","fullWidthInCard","_tableNode","originalShouldShow","localProviderSynced","emitHtml","typingTimeout","editorDisplayOffTimeout","bottomGutterClass","defaultPlaceholder","focusedPlaceholderText","inputPlaceHolderText","_this$team","generateEditorId","getTeam","synced","collaborationOptions","_ydoc","clientID","localProviderSyncedAndEditorReady","getUserFeatureEnabled","featureFlagIds","aiAssistant","preventInsertFilesUiNotificationLabel","setEditable","token","intLocalProvider","initCollaboration","reconnectCollaboration","destroyEditor","setEditor","storeOriginalShouldShowBubbleMenu","setContentWatcher","removePageComment","onCharacterLimitReached","scrollToAchor","onPreventInsertFiles","onFileInsertError","resetEditor","getCollaborationOptions","_ydoc2","userHashColor","_this$editorId$includ","_this$editorId","providerLocal","IndexeddbPersistence","WebsocketProvider","editorSocket","connect","disableBc","_this$collaboration","roomname","destroyCollaboration","_ydoc3","_this$providerWS","_this$providerLocal","_this$editor2","_this$editor2$destroy","Doc","editorDomRef","editorProps","checkAndSetTyping","Paragraph","parseOptions","preserveWhitespace","_transaction$meta","_transaction$meta2","addToHistory","imageInsert","hiddenMemberLabel","replaceAwarenessUserLabel","_this$awareness","_this$awareness$get","memberNotFound","_this$awareness2","added","onFocus","focusEditor","removeHiglihtSelection","addInlineComment","_ref7","commentToDeleteId","activeComment","_document$createEleme","BubbleMenuViewInstance","_this$originalShouldS","hasFocus","_this$editor$commands2","_this$editor$commands3","clearEditor","clearContent","selectAll","blurInput","blur","setContent","setLastSelection","_this$editor3","uiNotificationStatuses","fileTypeToMediaType","controls","rel","setGenericMedia","GenericMediaPlaceholder"],"sourceRoot":""}