@ckeditor/ckeditor5-bookmark 0.0.0-nightly-20241026.0 → 0.0.0-nightly-20241028.0

Sign up to get free protection for your applications and to get access to all the features.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["index.js","../src/ui/bookmarkformview.ts","../src/ui/bookmarkactionsview.ts","../src/utils.ts","../src/insertbookmarkcommand.ts","../src/updatebookmarkcommand.ts","../src/bookmarkediting.ts","../src/bookmarkui.ts","../src/bookmark.ts"],"names":["BookmarkFormView","View","focusTracker","FocusTracker","keystrokes","KeystrokeHandler","_focusables","ViewCollection","constructor","locale","validators","t","_validators","idInputView","_createIdInput","buttonView","_createButton","type","children","_createViewChildren","_focusCycler","FocusCycler","focusables","keystrokeHandler","actions","focusPrevious","focusNext","classList","setTemplate","tag","attributes","class","tabindex","render","submitHandler","view","childViews","forEach","v","add","element","listenTo","destroy","focusFirst","resetFormStatus","validator","errorText","createCollection","FormHeaderView","label","_createFormContentView","labeledInput","LabeledFieldView","createLabeledInputText","infoText","className","button","ButtonView","set","withText","extendTemplate","id","fieldView","value","trim","BookmarkActionsView","bookmarkPreviewView","_createBookmarkPreviewView","removeButtonView","icons","remove","editButtonView","pencil","undefined","icon","eventName","additionalLabel","tooltip","delegate","to","labelView","unbind","bind","ariaLabelledBy","getFirstToken","LabelView","tokenList","split","isBookmarkIdValid","test","InsertBookmarkCommand","Command","model","editor","selection","document","position","_getPositionToInsertBookmark","isEnabled","execute","options","bookmarkId","logWarning","change","writer","isBookmarkAllowed","schema","checkChild","newPosition","bookmarkElement","createElement","Object","fromEntries","getAttributes","insertObject","setSelection","firstRange","getFirstRange","startPosition","start","previousPosition","item","is","createPositionAt","UpdateBookmarkCommand","selectedBookmark","getSelectedBookmark","getAttribute","setAttribute","getSelectedElement","bookmarkIcon","bookmarkInline","BookmarkEditing","Plugin","_bookmarkElements","Map","pluginName","isOfficialPlugin","_defineSchema","_defineConverters","commands","_trackBookmarkElements","getElementForBookmarkId","register","inheritAllFrom","allowAttributes","disallowAttributes","conversion","data","htmlProcessor","domConverter","registerInlineObjectMatcher","upcastMatcher","editing","for","elementToElement","name","modelElement","emptyElement","createEmptyElement","containerElement","createContainerElement","_createBookmarkUIElement","labelCreator","toWidget","dispatcher","on","dataViewModelAnchorInsertion","createUIElement","domDocument","domElement","toDomElement","IconView","content","isColorInherited","appendChild","root","rootName","delete","expectEmpty","isAnchorElement","isEmpty","hasIdAttribute","hasAttribute","hasNameAttribute","hasHrefAttribute","evt","conversionApi","viewItem","match","consumable","enableNonEmptyAnchorConversion","isEnabledNonEmptyAnchorConversion","modelWriter","anchorId","anchorName","bookmark","safeInsert","modelCursor","consume","updateConversionResult","modelRange","convertChildren","createRange","end","config","get","VISUAL_SELECTION_MARKER_NAME","BookmarkUI","actionsView","formView","requires","ContextualBalloon","addObserver","ClickObserver","_balloon","plugins","_createToolbarBookmarkButton","_enableBalloonActivators","markerToHighlight","classes","markerToElement","markerRange","isCollapsed","markerElement","addClass","_createActionsView","_createFormView","_enableUserBalloonInteractions","updateBookmarkCommand","deleteCommand","_addFormView","_hideUI","cancel","insertBookmarkCommand","CssTransitionDisablerMixin","getFormValidators","toMany","areEnabled","some","isValid","_getSelectedBookmarkElement","_closeFormView","ui","update","componentFactory","MenuBarMenuListItemButtonView","ButtonClass","insertCommand","updateCommand","_showUI","viewDocument","_areActionsVisible","isFocused","focus","priority","_isUIVisible","clickOutsideHandler","emitter","activator","_isUIInPanel","contextElements","callback","_updateFormButtonLabel","isBookmarkSelected","_createViews","_areActionsInPanel","_getBalloonPositionData","_isFormInPanel","disableCssTransitions","visibleView","select","enableCssTransitions","_removeFormView","reset","_hideFakeVisualSelection","forceVisible","_showFakeVisualSelection","_addActionsView","showStack","_startUpdatingUI","stopListening","prevSelectedBookmark","prevSelectionParent","getSelectionParent","selectionParent","updatePosition","getAncestors","reverse","find","node","hasView","target","markers","has","markerViewElements","Array","from","mapper","markerNameToElements","newRange","createPositionBefore","createPositionAfter","length","viewRangeToDom","viewElement","toViewElement","mapViewToDom","range","updateMarker","isAtEnd","getLastMatchingPosition","isContent","boundaries","addMarker","usingOperation","affectsData","removeMarker","bookmarkEditing","form","selectedElement","existingBookmarkForId","Bookmark","Widget"],"mappings":"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","file":"index.js.map","sourcesContent":["import { icons, Command, Plugin } from '@ckeditor/ckeditor5-core/dist/index.js';\nimport { toWidget, Widget } from '@ckeditor/ckeditor5-widget/dist/index.js';\nimport { View, ViewCollection, FocusCycler, submitHandler, FormHeaderView, LabeledFieldView, createLabeledInputText, ButtonView, LabelView, IconView, ContextualBalloon, CssTransitionDisablerMixin, MenuBarMenuListItemButtonView, clickOutsideHandler } from '@ckeditor/ckeditor5-ui/dist/index.js';\nimport { ClickObserver } from '@ckeditor/ckeditor5-engine/dist/index.js';\nimport { FocusTracker, KeystrokeHandler, logWarning } from '@ckeditor/ckeditor5-utils/dist/index.js';\n\n/**\n * The bookmark form view controller class.\n *\n * See {@link module:bookmark/ui/bookmarkformview~BookmarkFormView}.\n */ class BookmarkFormView extends View {\n /**\n\t * Tracks information about DOM focus in the form.\n\t */ focusTracker = new FocusTracker();\n /**\n\t * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n\t */ keystrokes = new KeystrokeHandler();\n /**\n\t * The ID input view.\n\t */ idInputView;\n /**\n\t * The Submit button view.\n\t */ buttonView;\n /**\n\t * A collection of form child views in the form.\n\t */ children;\n /**\n\t * An array of form validators used by {@link #isValid}.\n\t */ _validators;\n /**\n\t * A collection of views that can be focused in the form.\n\t */ _focusables = new ViewCollection();\n /**\n\t * Helps cycling over {@link #_focusables} in the form.\n\t */ _focusCycler;\n /**\n\t * Creates an instance of the {@link module:bookmark/ui/bookmarkformview~BookmarkFormView} class.\n\t *\n\t * Also see {@link #render}.\n\t *\n\t * @param locale The localization services instance.\n\t * @param validators Form validators used by {@link #isValid}.\n\t */ constructor(locale, validators){\n super(locale);\n const t = locale.t;\n this._validators = validators;\n this.idInputView = this._createIdInput();\n this.buttonView = this._createButton(t('Insert'), 'ck-button-action ck-button-bold');\n this.buttonView.type = 'submit';\n this.children = this._createViewChildren();\n this._focusCycler = new FocusCycler({\n focusables: this._focusables,\n focusTracker: this.focusTracker,\n keystrokeHandler: this.keystrokes,\n actions: {\n // Navigate form fields backwards using the Shift + Tab keystroke.\n focusPrevious: 'shift + tab',\n // Navigate form fields forwards using the Tab key.\n focusNext: 'tab'\n }\n });\n const classList = [\n 'ck',\n 'ck-bookmark-view'\n ];\n this.setTemplate({\n tag: 'form',\n attributes: {\n class: classList,\n // https://github.com/ckeditor/ckeditor5-link/issues/90\n tabindex: '-1'\n },\n children: this.children\n });\n }\n /**\n\t * @inheritDoc\n\t */ render() {\n super.render();\n submitHandler({\n view: this\n });\n const childViews = [\n this.idInputView,\n this.buttonView\n ];\n childViews.forEach((v)=>{\n // Register the view as focusable.\n this._focusables.add(v);\n // Register the view in the focus tracker.\n this.focusTracker.add(v.element);\n });\n // Start listening for the keystrokes coming from #element.\n this.keystrokes.listenTo(this.element);\n }\n /**\n\t * @inheritDoc\n\t */ destroy() {\n super.destroy();\n this.focusTracker.destroy();\n this.keystrokes.destroy();\n }\n /**\n\t * Focuses the fist {@link #_focusables} in the form.\n\t */ focus() {\n this._focusCycler.focusFirst();\n }\n /**\n\t * Validates the form and returns `false` when some fields are invalid.\n\t */ isValid() {\n this.resetFormStatus();\n for (const validator of this._validators){\n const errorText = validator(this);\n // One error per field is enough.\n if (errorText) {\n // Apply updated error.\n this.idInputView.errorText = errorText;\n return false;\n }\n }\n return true;\n }\n /**\n\t * Cleans up the supplementary error and information text of the {@link #idInputView}\n\t * bringing them back to the state when the form has been displayed for the first time.\n\t *\n\t * See {@link #isValid}.\n\t */ resetFormStatus() {\n this.idInputView.errorText = null;\n }\n /**\n\t * Creates header and form view.\n\t */ _createViewChildren() {\n const children = this.createCollection();\n const t = this.t;\n children.add(new FormHeaderView(this.locale, {\n label: t('Bookmark')\n }));\n children.add(this._createFormContentView());\n return children;\n }\n /**\n\t * Creates form content view with input and button.\n\t */ _createFormContentView() {\n const view = new View(this.locale);\n const children = this.createCollection();\n const classList = [\n 'ck',\n 'ck-bookmark-form',\n 'ck-responsive-form'\n ];\n children.add(this.idInputView);\n children.add(this.buttonView);\n view.setTemplate({\n tag: 'div',\n attributes: {\n class: classList\n },\n children\n });\n return view;\n }\n /**\n\t * Creates a labeled input view.\n\t *\n\t * @returns Labeled field view instance.\n\t */ _createIdInput() {\n const t = this.locale.t;\n const labeledInput = new LabeledFieldView(this.locale, createLabeledInputText);\n labeledInput.label = t('Bookmark name');\n labeledInput.infoText = t('Enter the bookmark name without spaces.');\n return labeledInput;\n }\n /**\n\t * Creates a button view.\n\t *\n\t * @param label The button label.\n\t * @param className The additional button CSS class name.\n\t * @returns The button view instance.\n\t */ _createButton(label, className) {\n const button = new ButtonView(this.locale);\n button.set({\n label,\n withText: true\n });\n button.extendTemplate({\n attributes: {\n class: className\n }\n });\n return button;\n }\n /**\n\t * The native DOM `value` of the {@link #idInputView} element.\n\t *\n\t * **Note**: Do not confuse it with the {@link module:ui/inputtext/inputtextview~InputTextView#value}\n\t * which works one way only and may not represent the actual state of the component in the DOM.\n\t */ get id() {\n const { element } = this.idInputView.fieldView;\n if (!element) {\n return null;\n }\n return element.value.trim();\n }\n}\n\n/**\n * The bookmark actions view class. This view displays the bookmark preview, allows\n * removing or editing the bookmark.\n */ class BookmarkActionsView extends View {\n /**\n\t * Tracks information about DOM focus in the actions.\n\t */ focusTracker = new FocusTracker();\n /**\n\t * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n\t */ keystrokes = new KeystrokeHandler();\n /**\n\t * The bookmark preview view.\n\t */ bookmarkPreviewView;\n /**\n\t * The remove button view.\n\t */ removeButtonView;\n /**\n\t * The edit bookmark button view.\n\t */ editButtonView;\n /**\n\t * A collection of views that can be focused in the view.\n\t */ _focusables = new ViewCollection();\n /**\n\t * Helps cycling over {@link #_focusables} in the view.\n\t */ _focusCycler;\n /**\n\t * @inheritDoc\n\t */ constructor(locale){\n super(locale);\n const t = locale.t;\n this.bookmarkPreviewView = this._createBookmarkPreviewView();\n this.removeButtonView = this._createButton(t('Remove bookmark'), icons.remove, 'remove', this.bookmarkPreviewView);\n this.editButtonView = this._createButton(t('Edit bookmark'), icons.pencil, 'edit', this.bookmarkPreviewView);\n this.set('id', undefined);\n this._focusCycler = new FocusCycler({\n focusables: this._focusables,\n focusTracker: this.focusTracker,\n keystrokeHandler: this.keystrokes,\n actions: {\n // Navigate fields backwards using the Shift + Tab keystroke.\n focusPrevious: 'shift + tab',\n // Navigate fields forwards using the Tab key.\n focusNext: 'tab'\n }\n });\n this.setTemplate({\n tag: 'div',\n attributes: {\n class: [\n 'ck',\n 'ck-bookmark-actions',\n 'ck-responsive-form'\n ],\n // https://github.com/ckeditor/ckeditor5-link/issues/90\n tabindex: '-1'\n },\n children: [\n this.bookmarkPreviewView,\n this.editButtonView,\n this.removeButtonView\n ]\n });\n }\n /**\n\t * @inheritDoc\n\t */ render() {\n super.render();\n const childViews = [\n this.editButtonView,\n this.removeButtonView\n ];\n childViews.forEach((v)=>{\n // Register the view as focusable.\n this._focusables.add(v);\n // Register the view in the focus tracker.\n this.focusTracker.add(v.element);\n });\n // Start listening for the keystrokes coming from #element.\n this.keystrokes.listenTo(this.element);\n }\n /**\n\t * @inheritDoc\n\t */ destroy() {\n super.destroy();\n this.focusTracker.destroy();\n this.keystrokes.destroy();\n }\n /**\n\t * Focuses the fist {@link #_focusables} in the actions.\n\t */ focus() {\n this._focusCycler.focusFirst();\n }\n /**\n\t * Creates a button view.\n\t *\n\t * @param label The button label.\n\t * @param icon The button icon.\n\t * @param eventName An event name that the `ButtonView#execute` event will be delegated to.\n\t * @param additionalLabel An additional label outside the button.\n\t * @returns The button view instance.\n\t */ _createButton(label, icon, eventName, additionalLabel) {\n const button = new ButtonView(this.locale);\n button.set({\n label,\n icon,\n tooltip: true\n });\n button.delegate('execute').to(this, eventName);\n // Since button label `id` is bound to the `ariaLabelledBy` property\n // we need to modify this binding to include only the first ID token\n // as this button will be labeled by multiple labels.\n button.labelView.unbind('id');\n button.labelView.bind('id').to(button, 'ariaLabelledBy', (ariaLabelledBy)=>{\n return getFirstToken(ariaLabelledBy);\n });\n button.ariaLabelledBy = `${button.ariaLabelledBy} ${additionalLabel.id}`;\n return button;\n }\n /**\n\t * Creates a bookmark name preview label.\n\t *\n\t * @returns The label view instance.\n\t */ _createBookmarkPreviewView() {\n const label = new LabelView(this.locale);\n label.extendTemplate({\n attributes: {\n class: [\n 'ck',\n 'ck-bookmark-actions__preview'\n ]\n }\n });\n // Bind label text with the bookmark ID.\n label.bind('text').to(this, 'id');\n return label;\n }\n}\n/**\n * Returns the first token from space separated token list.\n */ function getFirstToken(tokenList) {\n return tokenList.split(' ')[0];\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */ /**\n * @module bookmark/utils\n */ /**\n * Returns `true` if the bookmark id is valid; otherwise, returns `false`.\n */ function isBookmarkIdValid(id) {\n if (!id || typeof id !== 'string') {\n return false;\n }\n if (/\\s/.test(id)) {\n return false;\n }\n return true;\n}\n\n/**\n * The insert bookmark command.\n *\n * The command is registered by {@link module:bookmark/bookmarkediting~BookmarkEditing} as `'insertBookmark'`.\n *\n * To insert a bookmark element at place where is the current collapsed selection or where is the beginning of document selection,\n * execute the command passing the bookmark id as a parameter:\n *\n * ```ts\n * editor.execute( 'insertBookmark', { bookmarkId: 'foo_bar' } );\n * ```\n */ class InsertBookmarkCommand extends Command {\n /**\n\t * @inheritDoc\n\t */ refresh() {\n const model = this.editor.model;\n const selection = model.document.selection;\n const position = this._getPositionToInsertBookmark(selection);\n this.isEnabled = !!position;\n }\n /**\n\t * Executes the command.\n\t *\n\t * @fires execute\n\t * @param options Command options.\n\t * @param options.bookmarkId The value of the `bookmarkId` attribute.\n\t */ execute(options) {\n if (!options) {\n return;\n }\n const { bookmarkId } = options;\n if (!isBookmarkIdValid(bookmarkId)) {\n /**\n\t\t\t * Insert bookmark command can be executed only with a valid name.\n\t\t\t *\n\t\t\t * A valid bookmark name must be a non-empty string and must not contain any spaces.\n\t\t\t *\n\t\t\t * @error insert-bookmark-command-executed-with-invalid-name\n\t\t\t */ logWarning('insert-bookmark-command-executed-with-invalid-name');\n return;\n }\n const editor = this.editor;\n const model = editor.model;\n const selection = model.document.selection;\n model.change((writer)=>{\n let position = this._getPositionToInsertBookmark(selection);\n const isBookmarkAllowed = model.schema.checkChild(position, 'bookmark');\n // If the position does not allow for `bookmark` but allows for a `paragraph`\n // then insert a `paragraph` then we will insert a `bookmark` inside.\n if (!isBookmarkAllowed) {\n const newPosition = editor.execute('insertParagraph', {\n position\n });\n if (!newPosition) {\n return;\n }\n position = newPosition;\n }\n const bookmarkElement = writer.createElement('bookmark', {\n ...Object.fromEntries(selection.getAttributes()),\n bookmarkId\n });\n model.insertObject(bookmarkElement, position, null, {\n setSelection: 'on'\n });\n });\n }\n /**\n\t * Returns the position where the bookmark can be inserted. And if it is not possible to insert a bookmark,\n\t * check if it is possible to insert a paragraph.\n\t */ _getPositionToInsertBookmark(selection) {\n const model = this.editor.model;\n const schema = model.schema;\n const firstRange = selection.getFirstRange();\n const startPosition = firstRange.start;\n // Return position if it is allowed to insert bookmark or if it is allowed to insert paragraph.\n if (isBookmarkAllowed(startPosition, schema)) {\n return startPosition;\n }\n for (const { previousPosition, item } of firstRange){\n // When the table cell is selected (from the outside) we look for the first paragraph-like element inside.\n if (item.is('element') && schema.checkChild(item, '$text') && isBookmarkAllowed(item, schema)) {\n return model.createPositionAt(item, 0);\n }\n if (isBookmarkAllowed(previousPosition, schema)) {\n return previousPosition;\n }\n }\n return null;\n }\n}\n/**\n * Verify if the given position allows for bookmark insertion. Verify if auto-paragraphing could help.\n */ function isBookmarkAllowed(position, schema) {\n if (schema.checkChild(position, 'bookmark')) {\n return true;\n }\n if (!schema.checkChild(position, 'paragraph')) {\n return false;\n }\n return schema.checkChild('paragraph', 'bookmark');\n}\n\n/**\n * The update bookmark command.\n *\n * The command is registered by {@link module:bookmark/bookmarkediting~BookmarkEditing} as `'updateBookmark'`.\n *\n * To update the `bookmarkId` of current selected bookmark element, execute the command passing the bookmark id as a parameter:\n *\n * ```ts\n * editor.execute( 'updateBookmark', { bookmarkId: 'newId' } );\n * ```\n */ class UpdateBookmarkCommand extends Command {\n /**\n\t * @inheritDoc\n\t */ refresh() {\n const model = this.editor.model;\n const selection = model.document.selection;\n const selectedBookmark = getSelectedBookmark(selection);\n this.isEnabled = !!selectedBookmark;\n this.value = selectedBookmark ? selectedBookmark.getAttribute('bookmarkId') : undefined;\n }\n /**\n\t * Executes the command.\n\t *\n\t * @fires execute\n\t * @param options Command options.\n\t * @param options.bookmarkId The new value of the `bookmarkId` attribute to set.\n\t */ execute(options) {\n if (!options) {\n return;\n }\n const { bookmarkId } = options;\n if (!isBookmarkIdValid(bookmarkId)) {\n /**\n\t\t\t * Update bookmark command can be executed only with a valid name.\n\t\t\t *\n\t\t\t * A valid bookmark name must be a non-empty string and must not contain any spaces.\n\t\t\t *\n\t\t\t * @error update-bookmark-command-executed-with-invalid-name\n\t\t\t */ logWarning('update-bookmark-command-executed-with-invalid-name');\n return;\n }\n const model = this.editor.model;\n const selection = model.document.selection;\n const selectedBookmark = getSelectedBookmark(selection);\n if (selectedBookmark) {\n model.change((writer)=>{\n writer.setAttribute('bookmarkId', bookmarkId, selectedBookmark);\n });\n }\n }\n}\n/**\n * Returns the selected `bookmark` element in the model, if any.\n */ function getSelectedBookmark(selection) {\n const element = selection.getSelectedElement();\n if (!!element && element.is('element', 'bookmark')) {\n return element;\n }\n return null;\n}\n\nconst bookmarkIcon$1 = icons.bookmarkInline;\n/**\n * The bookmark editing plugin.\n */ class BookmarkEditing extends Plugin {\n /**\n\t * A collection of bookmarks elements in the document.\n\t */ _bookmarkElements = new Map();\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'BookmarkEditing';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const { editor } = this;\n this._defineSchema();\n this._defineConverters();\n editor.commands.add('insertBookmark', new InsertBookmarkCommand(editor));\n editor.commands.add('updateBookmark', new UpdateBookmarkCommand(editor));\n this.listenTo(editor.model.document, 'change:data', ()=>{\n this._trackBookmarkElements();\n });\n }\n /**\n\t * Returns the model element for the given bookmark ID if it exists.\n\t */ getElementForBookmarkId(bookmarkId) {\n for (const [element, id] of this._bookmarkElements){\n if (id == bookmarkId) {\n return element;\n }\n }\n return null;\n }\n /**\n\t * Defines the schema for the bookmark feature.\n\t */ _defineSchema() {\n const schema = this.editor.model.schema;\n schema.register('bookmark', {\n inheritAllFrom: '$inlineObject',\n allowAttributes: 'bookmarkId',\n disallowAttributes: [\n 'linkHref',\n 'htmlA'\n ]\n });\n }\n /**\n\t * Defines the converters for the bookmark feature.\n\t */ _defineConverters() {\n const { editor } = this;\n const { conversion, t } = editor;\n editor.data.htmlProcessor.domConverter.registerInlineObjectMatcher((element)=>upcastMatcher(element));\n // Register an inline object matcher so that bookmarks <a>s are correctly recognized as inline elements in editing pipeline.\n // This prevents converting spaces around bookmarks to `&nbsp;`s.\n editor.editing.view.domConverter.registerInlineObjectMatcher((element)=>upcastMatcher(element, false));\n conversion.for('dataDowncast').elementToElement({\n model: {\n name: 'bookmark',\n attributes: [\n 'bookmarkId'\n ]\n },\n view: (modelElement, { writer })=>{\n const emptyElement = writer.createEmptyElement('a', {\n 'id': modelElement.getAttribute('bookmarkId')\n });\n // `getFillerOffset` is not needed to set here, because `emptyElement` has already covered it.\n return emptyElement;\n }\n });\n conversion.for('editingDowncast').elementToElement({\n model: {\n name: 'bookmark',\n attributes: [\n 'bookmarkId'\n ]\n },\n view: (modelElement, { writer })=>{\n const id = modelElement.getAttribute('bookmarkId');\n const containerElement = writer.createContainerElement('a', {\n id,\n class: 'ck-bookmark'\n }, [\n this._createBookmarkUIElement(writer)\n ]);\n this._bookmarkElements.set(modelElement, id);\n // `getFillerOffset` is not needed to set here, because `toWidget` has already covered it.\n const labelCreator = ()=>`${id} ${t('bookmark widget')}`;\n return toWidget(containerElement, writer, {\n label: labelCreator\n });\n }\n });\n conversion.for('upcast').add((dispatcher)=>dispatcher.on('element:a', dataViewModelAnchorInsertion(editor)));\n }\n /**\n\t * Creates a UI element for the `bookmark` representation in editing view.\n\t */ _createBookmarkUIElement(writer) {\n return writer.createUIElement('span', {\n class: 'ck-bookmark__icon'\n }, function(domDocument) {\n const domElement = this.toDomElement(domDocument);\n const icon = new IconView();\n icon.set({\n content: bookmarkIcon$1,\n isColorInherited: false\n });\n icon.render();\n domElement.appendChild(icon.element);\n return domElement;\n });\n }\n /**\n\t * Tracking the added or removed bookmark elements.\n\t */ _trackBookmarkElements() {\n this._bookmarkElements.forEach((id, element)=>{\n if (element.root.rootName === '$graveyard') {\n this._bookmarkElements.delete(element);\n }\n });\n }\n}\n/**\n * A helper function to match an `anchor` element which must contain `id` or `name` attribute but without `href` attribute,\n * also when `expectEmpty` is set to `true` but the element is not empty matcher should not match any element.\n *\n * @param element The element to be checked.\n * @param expectEmpty Default set to `true`, when set to `false` matcher expects that `anchor` is not empty;\n * in editing pipeline it's not empty because it contains the `UIElement`.\n */ function upcastMatcher(element, expectEmpty = true) {\n const isAnchorElement = element.name === 'a';\n if (!isAnchorElement) {\n return null;\n }\n if (expectEmpty && !element.isEmpty) {\n return null;\n }\n const hasIdAttribute = element.hasAttribute('id');\n const hasNameAttribute = element.hasAttribute('name');\n const hasHrefAttribute = element.hasAttribute('href');\n if (hasIdAttribute && !hasHrefAttribute) {\n return {\n name: true,\n attributes: [\n 'id'\n ]\n };\n }\n if (hasNameAttribute && !hasHrefAttribute) {\n return {\n name: true,\n attributes: [\n 'name'\n ]\n };\n }\n return null;\n}\n/**\n * A view-to-model converter that handles converting pointed or wrapped anchors with `id` and/or `name` attributes.\n *\n * @returns Returns a conversion callback.\n */ function dataViewModelAnchorInsertion(editor) {\n return (evt, data, conversionApi)=>{\n const viewItem = data.viewItem;\n const match = upcastMatcher(viewItem, false);\n if (!match || !conversionApi.consumable.test(viewItem, match)) {\n return;\n }\n const enableNonEmptyAnchorConversion = isEnabledNonEmptyAnchorConversion(editor);\n if (!enableNonEmptyAnchorConversion && !viewItem.isEmpty) {\n return;\n }\n const modelWriter = conversionApi.writer;\n const anchorId = viewItem.getAttribute('id');\n const anchorName = viewItem.getAttribute('name');\n const bookmarkId = anchorId || anchorName;\n const bookmark = modelWriter.createElement('bookmark', {\n bookmarkId\n });\n if (!conversionApi.safeInsert(bookmark, data.modelCursor)) {\n return;\n }\n conversionApi.consumable.consume(viewItem, match);\n if (anchorId === anchorName) {\n conversionApi.consumable.consume(viewItem, {\n attributes: [\n 'name'\n ]\n });\n }\n conversionApi.updateConversionResult(bookmark, data);\n // Convert children uses the result of `bookmark` insertion to convert the `anchor` content\n // after the bookmark element (not inside it).\n const { modelCursor, modelRange } = conversionApi.convertChildren(viewItem, data.modelCursor);\n data.modelCursor = modelCursor;\n data.modelRange = modelWriter.createRange(data.modelRange.start, modelRange.end);\n };\n}\n/**\n * Normalize the bookmark configuration option `enableNonEmptyAnchorConversion`.\n */ function isEnabledNonEmptyAnchorConversion(editor) {\n const enableNonEmptyAnchorConversion = editor.config.get('bookmark.enableNonEmptyAnchorConversion');\n // When not defined, option `enableNonEmptyAnchorConversion` by default is set to `true`.\n return enableNonEmptyAnchorConversion !== undefined ? enableNonEmptyAnchorConversion : true;\n}\n\nconst bookmarkIcon = icons.bookmark;\nconst VISUAL_SELECTION_MARKER_NAME = 'bookmark-ui';\n/**\n * The UI plugin of the bookmark feature.\n *\n * It registers the `'bookmark'` UI button in the editor's {@link module:ui/componentfactory~ComponentFactory component factory}\n * which inserts the `bookmark` element upon selection.\n */ class BookmarkUI extends Plugin {\n /**\n\t * The actions view displayed inside of the balloon.\n\t */ actionsView = null;\n /**\n\t * The form view displayed inside the balloon.\n\t */ formView = null;\n /**\n\t * The contextual balloon plugin instance.\n\t */ _balloon;\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n BookmarkEditing,\n ContextualBalloon\n ];\n }\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'BookmarkUI';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const editor = this.editor;\n editor.editing.view.addObserver(ClickObserver);\n this._balloon = editor.plugins.get(ContextualBalloon);\n // Create toolbar buttons.\n this._createToolbarBookmarkButton();\n this._enableBalloonActivators();\n // Renders a fake visual selection marker on an expanded selection.\n editor.conversion.for('editingDowncast').markerToHighlight({\n model: VISUAL_SELECTION_MARKER_NAME,\n view: {\n classes: [\n 'ck-fake-bookmark-selection'\n ]\n }\n });\n // Renders a fake visual selection marker on a collapsed selection.\n editor.conversion.for('editingDowncast').markerToElement({\n model: VISUAL_SELECTION_MARKER_NAME,\n view: (data, { writer })=>{\n if (!data.markerRange.isCollapsed) {\n return null;\n }\n const markerElement = writer.createUIElement('span');\n writer.addClass([\n 'ck-fake-bookmark-selection',\n 'ck-fake-bookmark-selection_collapsed'\n ], markerElement);\n return markerElement;\n }\n });\n }\n /**\n\t * @inheritDoc\n\t */ destroy() {\n super.destroy();\n // Destroy created UI components as they are not automatically destroyed (see ckeditor5#1341).\n if (this.formView) {\n this.formView.destroy();\n }\n if (this.actionsView) {\n this.actionsView.destroy();\n }\n }\n /**\n\t * Creates views.\n\t */ _createViews() {\n this.actionsView = this._createActionsView();\n this.formView = this._createFormView();\n // Attach lifecycle actions to the the balloon.\n this._enableUserBalloonInteractions();\n }\n /**\n\t * Creates the {@link module:bookmark/ui/bookmarkactionsview~BookmarkActionsView} instance.\n\t */ _createActionsView() {\n const editor = this.editor;\n const actionsView = new BookmarkActionsView(editor.locale);\n const updateBookmarkCommand = editor.commands.get('updateBookmark');\n const deleteCommand = editor.commands.get('delete');\n actionsView.bind('id').to(updateBookmarkCommand, 'value');\n actionsView.editButtonView.bind('isEnabled').to(updateBookmarkCommand);\n actionsView.removeButtonView.bind('isEnabled').to(deleteCommand);\n // Display edit form view after clicking on the \"Edit\" button.\n this.listenTo(actionsView, 'edit', ()=>{\n this._addFormView();\n });\n // Execute remove command after clicking on the \"Remove\" button.\n this.listenTo(actionsView, 'remove', ()=>{\n this._hideUI();\n editor.execute('delete');\n });\n // Close the panel on esc key press when the **actions have focus**.\n actionsView.keystrokes.set('Esc', (data, cancel)=>{\n this._hideUI();\n cancel();\n });\n return actionsView;\n }\n /**\n\t * Creates the {@link module:bookmark/ui/bookmarkformview~BookmarkFormView} instance.\n\t */ _createFormView() {\n const editor = this.editor;\n const locale = editor.locale;\n const insertBookmarkCommand = editor.commands.get('insertBookmark');\n const updateBookmarkCommand = editor.commands.get('updateBookmark');\n const commands = [\n insertBookmarkCommand,\n updateBookmarkCommand\n ];\n const formView = new (CssTransitionDisablerMixin(BookmarkFormView))(locale, getFormValidators(editor));\n formView.idInputView.fieldView.bind('value').to(updateBookmarkCommand, 'value');\n // Form elements should be read-only when corresponding commands are disabled.\n formView.idInputView.bind('isEnabled').toMany(commands, 'isEnabled', (...areEnabled)=>areEnabled.some((isEnabled)=>isEnabled));\n // Disable the \"save\" button if the command is disabled.\n formView.buttonView.bind('isEnabled').toMany(commands, 'isEnabled', (...areEnabled)=>areEnabled.some((isEnabled)=>isEnabled));\n // Execute link command after clicking the \"Save\" button.\n this.listenTo(formView, 'submit', ()=>{\n if (formView.isValid()) {\n const value = formView.id;\n if (this._getSelectedBookmarkElement()) {\n editor.execute('updateBookmark', {\n bookmarkId: value\n });\n } else {\n editor.execute('insertBookmark', {\n bookmarkId: value\n });\n }\n this._closeFormView();\n }\n });\n // Update balloon position when form error changes.\n this.listenTo(formView.idInputView, 'change:errorText', ()=>{\n editor.ui.update();\n });\n // Close the panel on esc key press when the **form has focus**.\n formView.keystrokes.set('Esc', (data, cancel)=>{\n this._closeFormView();\n cancel();\n });\n return formView;\n }\n /**\n\t * Creates a toolbar Bookmark button. Clicking this button will show\n\t * a {@link #_balloon} attached to the selection.\n\t */ _createToolbarBookmarkButton() {\n const editor = this.editor;\n editor.ui.componentFactory.add('bookmark', ()=>{\n const buttonView = this._createButton(ButtonView);\n buttonView.set({\n tooltip: true\n });\n return buttonView;\n });\n editor.ui.componentFactory.add('menuBar:bookmark', ()=>{\n return this._createButton(MenuBarMenuListItemButtonView);\n });\n }\n /**\n\t * Creates a button for `bookmark` command to use either in toolbar or in menu bar.\n\t */ _createButton(ButtonClass) {\n const editor = this.editor;\n const locale = editor.locale;\n const view = new ButtonClass(locale);\n const insertCommand = editor.commands.get('insertBookmark');\n const updateCommand = editor.commands.get('updateBookmark');\n const t = locale.t;\n view.set({\n label: t('Bookmark'),\n icon: bookmarkIcon\n });\n // Execute the command.\n this.listenTo(view, 'execute', ()=>this._showUI(true));\n view.bind('isEnabled').toMany([\n insertCommand,\n updateCommand\n ], 'isEnabled', (...areEnabled)=>areEnabled.some((isEnabled)=>isEnabled));\n view.bind('isOn').to(updateCommand, 'value', (value)=>!!value);\n return view;\n }\n /**\n\t * Attaches actions that control whether the balloon panel containing the\n\t * {@link #formView} should be displayed.\n\t */ _enableBalloonActivators() {\n const editor = this.editor;\n const viewDocument = editor.editing.view.document;\n // Handle click on view document and show panel when selection is placed inside the bookmark element.\n // Keep panel open until selection will be inside the same bookmark element.\n this.listenTo(viewDocument, 'click', ()=>{\n const bookmark = this._getSelectedBookmarkElement();\n if (bookmark) {\n // Then show panel but keep focus inside editor editable.\n this._showUI();\n }\n });\n }\n /**\n\t * Attaches actions that control whether the balloon panel containing the\n\t * {@link #formView} is visible or not.\n\t */ _enableUserBalloonInteractions() {\n // Focus the form if the balloon is visible and the Tab key has been pressed.\n this.editor.keystrokes.set('Tab', (data, cancel)=>{\n if (this._areActionsVisible && !this.actionsView.focusTracker.isFocused) {\n this.actionsView.focus();\n cancel();\n }\n }, {\n // Use the high priority because the bookmark UI navigation is more important\n // than other feature's actions, e.g. list indentation.\n priority: 'high'\n });\n // Close the panel on the Esc key press when the editable has focus and the balloon is visible.\n this.editor.keystrokes.set('Esc', (data, cancel)=>{\n if (this._isUIVisible) {\n this._hideUI();\n cancel();\n }\n });\n // Close on click outside of balloon panel element.\n clickOutsideHandler({\n emitter: this.formView,\n activator: ()=>this._isUIInPanel,\n contextElements: ()=>[\n this._balloon.view.element\n ],\n callback: ()=>this._hideUI()\n });\n }\n /**\n\t * Updates the button label. If bookmark is selected label is set to 'Update' otherwise\n\t * it is 'Insert'.\n\t */ _updateFormButtonLabel(isBookmarkSelected) {\n const t = this.editor.locale.t;\n this.formView.buttonView.label = isBookmarkSelected ? t('Update') : t('Insert');\n }\n /**\n\t * Adds the {@link #actionsView} to the {@link #_balloon}.\n\t *\n\t * @internal\n\t */ _addActionsView() {\n if (!this.actionsView) {\n this._createViews();\n }\n if (this._areActionsInPanel) {\n return;\n }\n this._balloon.add({\n view: this.actionsView,\n position: this._getBalloonPositionData()\n });\n }\n /**\n\t * Adds the {@link #formView} to the {@link #_balloon}.\n\t */ _addFormView() {\n if (!this.formView) {\n this._createViews();\n }\n if (this._isFormInPanel) {\n return;\n }\n const editor = this.editor;\n const updateBookmarkCommand = editor.commands.get('updateBookmark');\n this.formView.disableCssTransitions();\n this.formView.resetFormStatus();\n this._balloon.add({\n view: this.formView,\n position: this._getBalloonPositionData()\n });\n this.formView.idInputView.fieldView.value = updateBookmarkCommand.value || '';\n // Select input when form view is currently visible.\n if (this._balloon.visibleView === this.formView) {\n this.formView.idInputView.fieldView.select();\n }\n this.formView.enableCssTransitions();\n }\n /**\n\t * Closes the form view. Decides whether the balloon should be hidden completely.\n\t */ _closeFormView() {\n const updateBookmarkCommand = this.editor.commands.get('updateBookmark');\n if (updateBookmarkCommand.value !== undefined) {\n this._removeFormView();\n } else {\n this._hideUI();\n }\n }\n /**\n\t * Removes the {@link #formView} from the {@link #_balloon}.\n\t */ _removeFormView() {\n if (this._isFormInPanel) {\n // Blur the input element before removing it from DOM to prevent issues in some browsers.\n // See https://github.com/ckeditor/ckeditor5/issues/1501.\n this.formView.buttonView.focus();\n // Reset the ID field to update the state of the submit button.\n this.formView.idInputView.fieldView.reset();\n this._balloon.remove(this.formView);\n // Because the form has an input which has focus, the focus must be brought back\n // to the editor. Otherwise, it would be lost.\n this.editor.editing.view.focus();\n this._hideFakeVisualSelection();\n }\n }\n /**\n\t * Shows the correct UI type. It is either {@link #formView} or {@link #actionsView}.\n\t */ _showUI(forceVisible = false) {\n if (!this.formView) {\n this._createViews();\n }\n // When there's no bookmark under the selection, go straight to the editing UI.\n if (!this._getSelectedBookmarkElement()) {\n // Show visual selection on a text without a bookmark when the contextual balloon is displayed.\n this._showFakeVisualSelection();\n this._addActionsView();\n // Be sure panel with bookmark is visible.\n if (forceVisible) {\n this._balloon.showStack('main');\n }\n this._addFormView();\n } else {\n // Go to the editing UI if actions are already visible.\n if (this._areActionsVisible) {\n this._addFormView();\n } else {\n this._addActionsView();\n }\n // Be sure panel with bookmark is visible.\n if (forceVisible) {\n this._balloon.showStack('main');\n }\n }\n // Begin responding to ui#update once the UI is added.\n this._startUpdatingUI();\n }\n /**\n\t * Removes the {@link #formView} from the {@link #_balloon}.\n\t *\n\t * See {@link #_addFormView}, {@link #_addActionsView}.\n\t */ _hideUI() {\n if (!this._isUIInPanel) {\n return;\n }\n const editor = this.editor;\n this.stopListening(editor.ui, 'update');\n this.stopListening(this._balloon, 'change:visibleView');\n // Make sure the focus always gets back to the editable _before_ removing the focused form view.\n // Doing otherwise causes issues in some browsers. See https://github.com/ckeditor/ckeditor5-link/issues/193.\n editor.editing.view.focus();\n // Remove form first because it's on top of the stack.\n this._removeFormView();\n // Then remove the actions view because it's beneath the form.\n this._balloon.remove(this.actionsView);\n this._hideFakeVisualSelection();\n }\n /**\n\t * Makes the UI react to the {@link module:ui/editorui/editorui~EditorUI#event:update} event to\n\t * reposition itself when the editor UI should be refreshed.\n\t *\n\t * See: {@link #_hideUI} to learn when the UI stops reacting to the `update` event.\n\t */ _startUpdatingUI() {\n const editor = this.editor;\n const viewDocument = editor.editing.view.document;\n let prevSelectedBookmark = this._getSelectedBookmarkElement();\n let prevSelectionParent = getSelectionParent();\n this._updateFormButtonLabel(!!prevSelectedBookmark);\n const update = ()=>{\n const selectedBookmark = this._getSelectedBookmarkElement();\n const selectionParent = getSelectionParent();\n // Hide the panel if:\n //\n // * the selection went out of the EXISTING bookmark element. E.g. user moved the caret out\n // of the bookmark,\n // * the selection went to a different parent when creating a NEW bookmark. E.g. someone\n // else modified the document.\n // * the selection has expanded (e.g. displaying bookmark actions then pressing SHIFT+Right arrow).\n //\n if (prevSelectedBookmark && !selectedBookmark || !prevSelectedBookmark && selectionParent !== prevSelectionParent) {\n this._hideUI();\n } else if (this._isUIVisible) {\n // If still in a bookmark element, simply update the position of the balloon.\n // If there was no bookmark (e.g. inserting one), the balloon must be moved\n // to the new position in the editing view (a new native DOM range).\n this._balloon.updatePosition(this._getBalloonPositionData());\n }\n this._updateFormButtonLabel(!!prevSelectedBookmark);\n prevSelectedBookmark = selectedBookmark;\n prevSelectionParent = selectionParent;\n };\n function getSelectionParent() {\n return viewDocument.selection.focus.getAncestors().reverse().find((node)=>node.is('element'));\n }\n this.listenTo(editor.ui, 'update', update);\n this.listenTo(this._balloon, 'change:visibleView', update);\n }\n /**\n\t * Returns `true` when {@link #formView} is in the {@link #_balloon}.\n\t */ get _isFormInPanel() {\n return !!this.formView && this._balloon.hasView(this.formView);\n }\n /**\n\t * Returns `true` when {@link #actionsView} is in the {@link #_balloon}.\n\t */ get _areActionsInPanel() {\n return !!this.actionsView && this._balloon.hasView(this.actionsView);\n }\n /**\n\t * Returns `true` when {@link #actionsView} is in the {@link #_balloon} and it is\n\t * currently visible.\n\t */ get _areActionsVisible() {\n return !!this.actionsView && this._balloon.visibleView === this.actionsView;\n }\n /**\n\t * Returns `true` when {@link #actionsView} or {@link #formView} is in the {@link #_balloon}.\n\t */ get _isUIInPanel() {\n return this._isFormInPanel || this._areActionsInPanel;\n }\n /**\n\t * Returns `true` when {@link #actionsView} or {@link #formView} is in the {@link #_balloon} and it is\n\t * currently visible.\n\t */ get _isUIVisible() {\n const visibleView = this._balloon.visibleView;\n return !!this.formView && visibleView == this.formView || this._areActionsVisible;\n }\n /**\n\t * Returns positioning options for the {@link #_balloon}. They control the way the balloon is attached\n\t * to the target element or selection.\n\t */ _getBalloonPositionData() {\n const view = this.editor.editing.view;\n const model = this.editor.model;\n let target;\n const bookmarkElement = this._getSelectedBookmarkElement();\n if (model.markers.has(VISUAL_SELECTION_MARKER_NAME)) {\n // There are cases when we highlight selection using a marker (#7705, #4721).\n const markerViewElements = Array.from(this.editor.editing.mapper.markerNameToElements(VISUAL_SELECTION_MARKER_NAME));\n const newRange = view.createRange(view.createPositionBefore(markerViewElements[0]), view.createPositionAfter(markerViewElements[markerViewElements.length - 1]));\n target = view.domConverter.viewRangeToDom(newRange);\n } else if (bookmarkElement) {\n target = ()=>{\n const mapper = this.editor.editing.mapper;\n const domConverter = view.domConverter;\n const viewElement = mapper.toViewElement(bookmarkElement);\n return domConverter.mapViewToDom(viewElement);\n };\n }\n return target && {\n target\n };\n }\n /**\n\t * Returns the bookmark {@link module:engine/view/attributeelement~AttributeElement} under\n\t * the {@link module:engine/view/document~Document editing view's} selection or `null`\n\t * if there is none.\n\t */ _getSelectedBookmarkElement() {\n const selection = this.editor.model.document.selection;\n const element = selection.getSelectedElement();\n if (element && element.is('element', 'bookmark')) {\n return element;\n }\n return null;\n }\n /**\n\t * Displays a fake visual selection when the contextual balloon is displayed.\n\t *\n\t * This adds a 'bookmark-ui' marker into the document that is rendered as a highlight on selected text fragment.\n\t */ _showFakeVisualSelection() {\n const model = this.editor.model;\n model.change((writer)=>{\n const range = model.document.selection.getFirstRange();\n if (model.markers.has(VISUAL_SELECTION_MARKER_NAME)) {\n writer.updateMarker(VISUAL_SELECTION_MARKER_NAME, {\n range\n });\n } else {\n if (range.start.isAtEnd) {\n const startPosition = range.start.getLastMatchingPosition(({ item })=>!model.schema.isContent(item), {\n boundaries: range\n });\n writer.addMarker(VISUAL_SELECTION_MARKER_NAME, {\n usingOperation: false,\n affectsData: false,\n range: writer.createRange(startPosition, range.end)\n });\n } else {\n writer.addMarker(VISUAL_SELECTION_MARKER_NAME, {\n usingOperation: false,\n affectsData: false,\n range\n });\n }\n }\n });\n }\n /**\n\t * Hides the fake visual selection created in {@link #_showFakeVisualSelection}.\n\t */ _hideFakeVisualSelection() {\n const model = this.editor.model;\n if (model.markers.has(VISUAL_SELECTION_MARKER_NAME)) {\n model.change((writer)=>{\n writer.removeMarker(VISUAL_SELECTION_MARKER_NAME);\n });\n }\n }\n}\n/**\n * Returns bookmark form validation callbacks.\n */ function getFormValidators(editor) {\n const { t } = editor;\n const bookmarkEditing = editor.plugins.get(BookmarkEditing);\n return [\n (form)=>{\n if (!form.id) {\n return t('Bookmark must not be empty.');\n }\n },\n (form)=>{\n if (form.id && /\\s/.test(form.id)) {\n return t('Bookmark name cannot contain space characters.');\n }\n },\n (form)=>{\n const selectedElement = editor.model.document.selection.getSelectedElement();\n const existingBookmarkForId = bookmarkEditing.getElementForBookmarkId(form.id);\n // Accept change of bookmark ID if no real change is happening (edit -> submit, without changes).\n if (selectedElement === existingBookmarkForId) {\n return;\n }\n if (existingBookmarkForId) {\n return t('Bookmark name already exists.');\n }\n }\n ];\n}\n\n/**\n * The bookmark feature.\n *\n * For a detailed overview, check the {@glink features/bookmarks Bookmarks} feature guide.\n */ class Bookmark extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'Bookmark';\n }\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n BookmarkEditing,\n BookmarkUI,\n Widget\n ];\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n}\n\nexport { Bookmark, BookmarkEditing, BookmarkUI, InsertBookmarkCommand, UpdateBookmarkCommand };\n//# sourceMappingURL=index.js.map\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module bookmark/ui/bookmarkformview\n */\n\nimport {\n\tButtonView,\n\tFocusCycler,\n\tLabeledFieldView,\n\tView,\n\tViewCollection,\n\tcreateLabeledInputText,\n\tsubmitHandler,\n\ttype InputTextView,\n\ttype FocusableView,\n\tFormHeaderView\n} from 'ckeditor5/src/ui.js';\nimport {\n\tFocusTracker,\n\tKeystrokeHandler,\n\ttype Locale\n} from 'ckeditor5/src/utils.js';\n\n// See: #8833.\n// eslint-disable-next-line ckeditor5-rules/ckeditor-imports\nimport '@ckeditor/ckeditor5-ui/theme/components/responsive-form/responsiveform.css';\nimport '../../theme/bookmarkform.css';\n\n/**\n * The bookmark form view controller class.\n *\n * See {@link module:bookmark/ui/bookmarkformview~BookmarkFormView}.\n */\nexport default class BookmarkFormView extends View {\n\t/**\n\t * Tracks information about DOM focus in the form.\n\t */\n\tpublic readonly focusTracker = new FocusTracker();\n\n\t/**\n\t * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n\t */\n\tpublic readonly keystrokes = new KeystrokeHandler();\n\n\t/**\n\t * The ID input view.\n\t */\n\tpublic idInputView: LabeledFieldView<InputTextView>;\n\n\t/**\n\t * The Submit button view.\n\t */\n\tpublic buttonView: ButtonView;\n\n\t/**\n\t * A collection of form child views in the form.\n\t */\n\tpublic readonly children: ViewCollection;\n\n\t/**\n\t * An array of form validators used by {@link #isValid}.\n\t */\n\tprivate readonly _validators: Array<BookmarkFormValidatorCallback>;\n\n\t/**\n\t * A collection of views that can be focused in the form.\n\t */\n\tprivate readonly _focusables = new ViewCollection<FocusableView>();\n\n\t/**\n\t * Helps cycling over {@link #_focusables} in the form.\n\t */\n\tprivate readonly _focusCycler: FocusCycler;\n\n\t/**\n\t * Creates an instance of the {@link module:bookmark/ui/bookmarkformview~BookmarkFormView} class.\n\t *\n\t * Also see {@link #render}.\n\t *\n\t * @param locale The localization services instance.\n\t * @param validators Form validators used by {@link #isValid}.\n\t */\n\tconstructor( locale: Locale, validators: Array<BookmarkFormValidatorCallback> ) {\n\t\tsuper( locale );\n\n\t\tconst t = locale.t;\n\n\t\tthis._validators = validators;\n\n\t\tthis.idInputView = this._createIdInput();\n\n\t\tthis.buttonView = this._createButton( t( 'Insert' ), 'ck-button-action ck-button-bold' );\n\t\tthis.buttonView.type = 'submit';\n\n\t\tthis.children = this._createViewChildren();\n\n\t\tthis._focusCycler = new FocusCycler( {\n\t\t\tfocusables: this._focusables,\n\t\t\tfocusTracker: this.focusTracker,\n\t\t\tkeystrokeHandler: this.keystrokes,\n\t\t\tactions: {\n\t\t\t\t// Navigate form fields backwards using the Shift + Tab keystroke.\n\t\t\t\tfocusPrevious: 'shift + tab',\n\n\t\t\t\t// Navigate form fields forwards using the Tab key.\n\t\t\t\tfocusNext: 'tab'\n\t\t\t}\n\t\t} );\n\n\t\tconst classList = [ 'ck', 'ck-bookmark-view' ];\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'form',\n\n\t\t\tattributes: {\n\t\t\t\tclass: classList,\n\n\t\t\t\t// https://github.com/ckeditor/ckeditor5-link/issues/90\n\t\t\t\ttabindex: '-1'\n\t\t\t},\n\n\t\t\tchildren: this.children\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override render(): void {\n\t\tsuper.render();\n\n\t\tsubmitHandler( {\n\t\t\tview: this\n\t\t} );\n\n\t\tconst childViews = [\n\t\t\tthis.idInputView,\n\t\t\tthis.buttonView\n\t\t];\n\n\t\tchildViews.forEach( v => {\n\t\t\t// Register the view as focusable.\n\t\t\tthis._focusables.add( v );\n\n\t\t\t// Register the view in the focus tracker.\n\t\t\tthis.focusTracker.add( v.element! );\n\t\t} );\n\n\t\t// Start listening for the keystrokes coming from #element.\n\t\tthis.keystrokes.listenTo( this.element! );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tsuper.destroy();\n\n\t\tthis.focusTracker.destroy();\n\t\tthis.keystrokes.destroy();\n\t}\n\n\t/**\n\t * Focuses the fist {@link #_focusables} in the form.\n\t */\n\tpublic focus(): void {\n\t\tthis._focusCycler.focusFirst();\n\t}\n\n\t/**\n\t * Validates the form and returns `false` when some fields are invalid.\n\t */\n\tpublic isValid(): boolean {\n\t\tthis.resetFormStatus();\n\n\t\tfor ( const validator of this._validators ) {\n\t\t\tconst errorText = validator( this );\n\n\t\t\t// One error per field is enough.\n\t\t\tif ( errorText ) {\n\t\t\t\t// Apply updated error.\n\t\t\t\tthis.idInputView.errorText = errorText;\n\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Cleans up the supplementary error and information text of the {@link #idInputView}\n\t * bringing them back to the state when the form has been displayed for the first time.\n\t *\n\t * See {@link #isValid}.\n\t */\n\tpublic resetFormStatus(): void {\n\t\tthis.idInputView.errorText = null;\n\t}\n\n\t/**\n\t * Creates header and form view.\n\t */\n\tprivate _createViewChildren() {\n\t\tconst children = this.createCollection();\n\t\tconst t = this.t!;\n\n\t\tchildren.add( new FormHeaderView( this.locale, { label: t( 'Bookmark' ) } ) );\n\t\tchildren.add( this._createFormContentView() );\n\n\t\treturn children;\n\t}\n\n\t/**\n\t * Creates form content view with input and button.\n\t */\n\tprivate _createFormContentView() {\n\t\tconst view = new View( this.locale );\n\n\t\tconst children = this.createCollection();\n\t\tconst classList = [ 'ck', 'ck-bookmark-form', 'ck-responsive-form' ];\n\n\t\tchildren.add( this.idInputView );\n\t\tchildren.add( this.buttonView );\n\n\t\tview.setTemplate( {\n\t\t\ttag: 'div',\n\n\t\t\tattributes: {\n\t\t\t\tclass: classList\n\t\t\t},\n\n\t\t\tchildren\n\t\t} );\n\n\t\treturn view;\n\t}\n\n\t/**\n\t * Creates a labeled input view.\n\t *\n\t * @returns Labeled field view instance.\n\t */\n\tprivate _createIdInput(): LabeledFieldView<InputTextView> {\n\t\tconst t = this.locale!.t;\n\t\tconst labeledInput = new LabeledFieldView( this.locale, createLabeledInputText );\n\n\t\tlabeledInput.label = t( 'Bookmark name' );\n\t\tlabeledInput.infoText = t( 'Enter the bookmark name without spaces.' );\n\n\t\treturn labeledInput;\n\t}\n\n\t/**\n\t * Creates a button view.\n\t *\n\t * @param label The button label.\n\t * @param className The additional button CSS class name.\n\t * @returns The button view instance.\n\t */\n\tprivate _createButton( label: string, className: string ): ButtonView {\n\t\tconst button = new ButtonView( this.locale );\n\n\t\tbutton.set( {\n\t\t\tlabel,\n\t\t\twithText: true\n\t\t} );\n\n\t\tbutton.extendTemplate( {\n\t\t\tattributes: {\n\t\t\t\tclass: className\n\t\t\t}\n\t\t} );\n\n\t\treturn button;\n\t}\n\n\t/**\n\t * The native DOM `value` of the {@link #idInputView} element.\n\t *\n\t * **Note**: Do not confuse it with the {@link module:ui/inputtext/inputtextview~InputTextView#value}\n\t * which works one way only and may not represent the actual state of the component in the DOM.\n\t */\n\tpublic get id(): string | null {\n\t\tconst { element } = this.idInputView.fieldView;\n\n\t\tif ( !element ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn element.value.trim();\n\t}\n}\n\n/**\n * Callback used by {@link ~BookmarkFormView} to check if passed form value is valid.\n *\n * If `undefined` is returned, it is assumed that the form value is correct and there is no error.\n * If string is returned, it is assumed that the form value is incorrect and the returned string is displayed in the error label\n */\nexport type BookmarkFormValidatorCallback = ( form: BookmarkFormView ) => string | undefined;\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module bookmark/ui/bookmarkactionsview\n */\n\nimport {\n\tLabelView,\n\tButtonView,\n\tView,\n\tViewCollection,\n\tFocusCycler,\n\ttype FocusableView\n} from 'ckeditor5/src/ui.js';\n\nimport {\n\tFocusTracker,\n\tKeystrokeHandler,\n\ttype LocaleTranslate,\n\ttype Locale\n} from 'ckeditor5/src/utils.js';\n\nimport { icons } from 'ckeditor5/src/core.js';\n\n// eslint-disable-next-line ckeditor5-rules/ckeditor-imports\nimport '@ckeditor/ckeditor5-ui/theme/components/responsive-form/responsiveform.css';\nimport '../../theme/bookmarkactions.css';\n\n/**\n * The bookmark actions view class. This view displays the bookmark preview, allows\n * removing or editing the bookmark.\n */\nexport default class BookmarkActionsView extends View {\n\t/**\n\t * Tracks information about DOM focus in the actions.\n\t */\n\tpublic readonly focusTracker = new FocusTracker();\n\n\t/**\n\t * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n\t */\n\tpublic readonly keystrokes = new KeystrokeHandler();\n\n\t/**\n\t * The bookmark preview view.\n\t */\n\tpublic bookmarkPreviewView: LabelView;\n\n\t/**\n\t * The remove button view.\n\t */\n\tpublic removeButtonView: ButtonView;\n\n\t/**\n\t * The edit bookmark button view.\n\t */\n\tpublic editButtonView: ButtonView;\n\n\t/**\n\t * The id preview view.\n\t *\n\t * @observable\n\t */\n\tdeclare public id: string | undefined;\n\n\t/**\n\t * A collection of views that can be focused in the view.\n\t */\n\tprivate readonly _focusables = new ViewCollection<FocusableView>();\n\n\t/**\n\t * Helps cycling over {@link #_focusables} in the view.\n\t */\n\tprivate readonly _focusCycler: FocusCycler;\n\n\tdeclare public t: LocaleTranslate;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( locale: Locale ) {\n\t\tsuper( locale );\n\n\t\tconst t = locale.t;\n\n\t\tthis.bookmarkPreviewView = this._createBookmarkPreviewView();\n\t\tthis.removeButtonView = this._createButton( t( 'Remove bookmark' ), icons.remove, 'remove', this.bookmarkPreviewView );\n\t\tthis.editButtonView = this._createButton( t( 'Edit bookmark' ), icons.pencil, 'edit', this.bookmarkPreviewView );\n\n\t\tthis.set( 'id', undefined );\n\n\t\tthis._focusCycler = new FocusCycler( {\n\t\t\tfocusables: this._focusables,\n\t\t\tfocusTracker: this.focusTracker,\n\t\t\tkeystrokeHandler: this.keystrokes,\n\t\t\tactions: {\n\t\t\t\t// Navigate fields backwards using the Shift + Tab keystroke.\n\t\t\t\tfocusPrevious: 'shift + tab',\n\n\t\t\t\t// Navigate fields forwards using the Tab key.\n\t\t\t\tfocusNext: 'tab'\n\t\t\t}\n\t\t} );\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-bookmark-actions',\n\t\t\t\t\t'ck-responsive-form'\n\t\t\t\t],\n\n\t\t\t\t// https://github.com/ckeditor/ckeditor5-link/issues/90\n\t\t\t\ttabindex: '-1'\n\t\t\t},\n\n\t\t\tchildren: [\n\t\t\t\tthis.bookmarkPreviewView,\n\t\t\t\tthis.editButtonView,\n\t\t\t\tthis.removeButtonView\n\t\t\t]\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override render(): void {\n\t\tsuper.render();\n\n\t\tconst childViews = [\n\t\t\tthis.editButtonView,\n\t\t\tthis.removeButtonView\n\t\t];\n\n\t\tchildViews.forEach( v => {\n\t\t\t// Register the view as focusable.\n\t\t\tthis._focusables.add( v );\n\n\t\t\t// Register the view in the focus tracker.\n\t\t\tthis.focusTracker.add( v.element! );\n\t\t} );\n\n\t\t// Start listening for the keystrokes coming from #element.\n\t\tthis.keystrokes.listenTo( this.element! );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tsuper.destroy();\n\n\t\tthis.focusTracker.destroy();\n\t\tthis.keystrokes.destroy();\n\t}\n\n\t/**\n\t * Focuses the fist {@link #_focusables} in the actions.\n\t */\n\tpublic focus(): void {\n\t\tthis._focusCycler.focusFirst();\n\t}\n\n\t/**\n\t * Creates a button view.\n\t *\n\t * @param label The button label.\n\t * @param icon The button icon.\n\t * @param eventName An event name that the `ButtonView#execute` event will be delegated to.\n\t * @param additionalLabel An additional label outside the button.\n\t * @returns The button view instance.\n\t */\n\tprivate _createButton( label: string, icon: string, eventName: string, additionalLabel: LabelView ): ButtonView {\n\t\tconst button = new ButtonView( this.locale );\n\n\t\tbutton.set( {\n\t\t\tlabel,\n\t\t\ticon,\n\t\t\ttooltip: true\n\t\t} );\n\n\t\tbutton.delegate( 'execute' ).to( this, eventName );\n\n\t\t// Since button label `id` is bound to the `ariaLabelledBy` property\n\t\t// we need to modify this binding to include only the first ID token\n\t\t// as this button will be labeled by multiple labels.\n\t\tbutton.labelView.unbind( 'id' );\n\n\t\tbutton.labelView.bind( 'id' ).to( button, 'ariaLabelledBy', ariaLabelledBy => {\n\t\t\treturn getFirstToken( ariaLabelledBy! );\n\t\t} );\n\n\t\tbutton.ariaLabelledBy = `${ button.ariaLabelledBy } ${ additionalLabel.id }`;\n\n\t\treturn button;\n\t}\n\n\t/**\n\t * Creates a bookmark name preview label.\n\t *\n\t * @returns The label view instance.\n\t */\n\tprivate _createBookmarkPreviewView(): LabelView {\n\t\tconst label = new LabelView( this.locale );\n\n\t\tlabel.extendTemplate( {\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-bookmark-actions__preview'\n\t\t\t\t]\n\t\t\t}\n\t\t} );\n\n\t\t// Bind label text with the bookmark ID.\n\t\tlabel.bind( 'text' ).to( this, 'id' );\n\n\t\treturn label;\n\t}\n}\n\n/**\n * Fired when the {@link ~BookmarkActionsView#editButtonView} is clicked.\n *\n * @eventName ~BookmarkActionsView#edit\n */\nexport type EditEvent = {\n\tname: 'edit';\n\targs: [];\n};\n\n/**\n * Fired when the {@link ~BookmarkActionsView#removeButtonView} is clicked.\n *\n * @eventName ~BookmarkActionsView#remove\n */\nexport type RemoveEvent = {\n\tname: 'remove';\n\targs: [];\n};\n\n/**\n * Returns the first token from space separated token list.\n */\nfunction getFirstToken( tokenList: string ): string {\n\treturn tokenList.split( ' ' )[ 0 ];\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module bookmark/utils\n */\n\n/**\n * Returns `true` if the bookmark id is valid; otherwise, returns `false`.\n */\nexport function isBookmarkIdValid( id: string ): boolean {\n\tif ( !id || typeof id !== 'string' ) {\n\t\treturn false;\n\t}\n\n\tif ( /\\s/.test( id ) ) {\n\t\treturn false;\n\t}\n\n\treturn true;\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module bookmark/insertbookmarkcommand\n */\n\nimport type {\n\tDocumentSelection,\n\tSelection,\n\tPosition,\n\tSchema,\n\tSchemaContextDefinition\n} from 'ckeditor5/src/engine.js';\nimport { logWarning } from 'ckeditor5/src/utils.js';\nimport { Command } from 'ckeditor5/src/core.js';\n\nimport { isBookmarkIdValid } from './utils.js';\n\n/**\n * The insert bookmark command.\n *\n * The command is registered by {@link module:bookmark/bookmarkediting~BookmarkEditing} as `'insertBookmark'`.\n *\n * To insert a bookmark element at place where is the current collapsed selection or where is the beginning of document selection,\n * execute the command passing the bookmark id as a parameter:\n *\n * ```ts\n * editor.execute( 'insertBookmark', { bookmarkId: 'foo_bar' } );\n * ```\n */\nexport default class InsertBookmarkCommand extends Command {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override refresh(): void {\n\t\tconst model = this.editor.model;\n\t\tconst selection = model.document.selection;\n\t\tconst position = this._getPositionToInsertBookmark( selection );\n\n\t\tthis.isEnabled = !!position;\n\t}\n\n\t/**\n\t * Executes the command.\n\t *\n\t * @fires execute\n\t * @param options Command options.\n\t * @param options.bookmarkId The value of the `bookmarkId` attribute.\n\t */\n\tpublic override execute( options: { bookmarkId: string } ): void {\n\t\tif ( !options ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { bookmarkId } = options;\n\n\t\tif ( !isBookmarkIdValid( bookmarkId ) ) {\n\t\t\t/**\n\t\t\t * Insert bookmark command can be executed only with a valid name.\n\t\t\t *\n\t\t\t * A valid bookmark name must be a non-empty string and must not contain any spaces.\n\t\t\t *\n\t\t\t * @error insert-bookmark-command-executed-with-invalid-name\n\t\t\t */\n\t\t\tlogWarning( 'insert-bookmark-command-executed-with-invalid-name' );\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst editor = this.editor;\n\t\tconst model = editor.model;\n\t\tconst selection = model.document.selection;\n\n\t\tmodel.change( writer => {\n\t\t\tlet position = this._getPositionToInsertBookmark( selection )!;\n\n\t\t\tconst isBookmarkAllowed = model.schema.checkChild( position, 'bookmark' );\n\n\t\t\t// If the position does not allow for `bookmark` but allows for a `paragraph`\n\t\t\t// then insert a `paragraph` then we will insert a `bookmark` inside.\n\t\t\tif ( !isBookmarkAllowed ) {\n\t\t\t\tconst newPosition = editor.execute( 'insertParagraph', { position } ) as Position | null;\n\n\t\t\t\tif ( !newPosition ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tposition = newPosition;\n\t\t\t}\n\n\t\t\tconst bookmarkElement = writer.createElement( 'bookmark', {\n\t\t\t\t...Object.fromEntries( selection.getAttributes() ),\n\t\t\t\tbookmarkId\n\t\t\t} );\n\n\t\t\tmodel.insertObject( bookmarkElement, position, null, { setSelection: 'on' } );\n\t\t} );\n\t}\n\n\t/**\n\t * Returns the position where the bookmark can be inserted. And if it is not possible to insert a bookmark,\n\t * check if it is possible to insert a paragraph.\n\t */\n\tprivate _getPositionToInsertBookmark( selection: Selection | DocumentSelection ): Position | null {\n\t\tconst model = this.editor.model;\n\t\tconst schema = model.schema;\n\n\t\tconst firstRange = selection.getFirstRange()!;\n\t\tconst startPosition = firstRange.start;\n\n\t\t// Return position if it is allowed to insert bookmark or if it is allowed to insert paragraph.\n\t\tif ( isBookmarkAllowed( startPosition, schema ) ) {\n\t\t\treturn startPosition;\n\t\t}\n\n\t\tfor ( const { previousPosition, item } of firstRange ) {\n\t\t\t// When the table cell is selected (from the outside) we look for the first paragraph-like element inside.\n\t\t\tif (\n\t\t\t\titem.is( 'element' ) &&\n\t\t\t\tschema.checkChild( item, '$text' ) &&\n\t\t\t\tisBookmarkAllowed( item, schema )\n\t\t\t) {\n\t\t\t\treturn model.createPositionAt( item, 0 );\n\t\t\t}\n\n\t\t\tif ( isBookmarkAllowed( previousPosition, schema ) ) {\n\t\t\t\treturn previousPosition;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n}\n\n/**\n * Verify if the given position allows for bookmark insertion. Verify if auto-paragraphing could help.\n */\nfunction isBookmarkAllowed( position: SchemaContextDefinition, schema: Schema ): boolean {\n\tif ( schema.checkChild( position, 'bookmark' ) ) {\n\t\treturn true;\n\t}\n\n\tif ( !schema.checkChild( position, 'paragraph' ) ) {\n\t\treturn false;\n\t}\n\n\treturn schema.checkChild( 'paragraph', 'bookmark' );\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module bookmark/updatebookmarkcommand\n */\n\nimport { Command } from 'ckeditor5/src/core.js';\nimport type { Selection, DocumentSelection } from 'ckeditor5/src/engine.js';\nimport { logWarning } from 'ckeditor5/src/utils.js';\n\nimport { isBookmarkIdValid } from './utils.js';\n\n/**\n * The update bookmark command.\n *\n * The command is registered by {@link module:bookmark/bookmarkediting~BookmarkEditing} as `'updateBookmark'`.\n *\n * To update the `bookmarkId` of current selected bookmark element, execute the command passing the bookmark id as a parameter:\n *\n * ```ts\n * editor.execute( 'updateBookmark', { bookmarkId: 'newId' } );\n * ```\n */\nexport default class UpdateBookmarkCommand extends Command {\n\t/**\n\t * The value of the `'bookmarkId'` attribute.\n\t *\n\t * @observable\n\t * @readonly\n\t */\n\tdeclare public value: string | undefined;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override refresh(): void {\n\t\tconst model = this.editor.model;\n\t\tconst selection = model.document.selection;\n\t\tconst selectedBookmark = getSelectedBookmark( selection );\n\n\t\tthis.isEnabled = !!selectedBookmark;\n\t\tthis.value = selectedBookmark ? selectedBookmark.getAttribute( 'bookmarkId' ) as string : undefined;\n\t}\n\n\t/**\n\t * Executes the command.\n\t *\n\t * @fires execute\n\t * @param options Command options.\n\t * @param options.bookmarkId The new value of the `bookmarkId` attribute to set.\n\t */\n\tpublic override execute( options: { bookmarkId: string } ): void {\n\t\tif ( !options ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { bookmarkId } = options;\n\n\t\tif ( !isBookmarkIdValid( bookmarkId ) ) {\n\t\t\t/**\n\t\t\t * Update bookmark command can be executed only with a valid name.\n\t\t\t *\n\t\t\t * A valid bookmark name must be a non-empty string and must not contain any spaces.\n\t\t\t *\n\t\t\t * @error update-bookmark-command-executed-with-invalid-name\n\t\t\t */\n\t\t\tlogWarning( 'update-bookmark-command-executed-with-invalid-name' );\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst model = this.editor.model;\n\t\tconst selection = model.document.selection;\n\t\tconst selectedBookmark = getSelectedBookmark( selection );\n\n\t\tif ( selectedBookmark ) {\n\t\t\tmodel.change( writer => {\n\t\t\t\twriter.setAttribute( 'bookmarkId', bookmarkId, selectedBookmark );\n\t\t\t} );\n\t\t}\n\t}\n}\n\n/**\n * Returns the selected `bookmark` element in the model, if any.\n */\nfunction getSelectedBookmark( selection: Selection | DocumentSelection ) {\n\tconst element = selection.getSelectedElement();\n\n\tif ( !!element && element.is( 'element', 'bookmark' ) ) {\n\t\treturn element;\n\t}\n\n\treturn null;\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module bookmark/bookmarkediting\n */\n\nimport { type Editor, Plugin, icons } from 'ckeditor5/src/core.js';\nimport { toWidget } from 'ckeditor5/src/widget.js';\nimport { IconView } from 'ckeditor5/src/ui.js';\nimport type { EventInfo } from 'ckeditor5/src/utils.js';\n\nimport type {\n\tViewUIElement,\n\tDowncastWriter,\n\tViewElement,\n\tElement,\n\tDocumentChangeEvent,\n\tUpcastElementEvent,\n\tUpcastConversionData,\n\tUpcastConversionApi\n} from 'ckeditor5/src/engine.js';\n\nimport InsertBookmarkCommand from './insertbookmarkcommand.js';\nimport UpdateBookmarkCommand from './updatebookmarkcommand.js';\n\nimport '../theme/bookmark.css';\n\nconst bookmarkIcon = icons.bookmarkInline;\n\n/**\n * The bookmark editing plugin.\n */\nexport default class BookmarkEditing extends Plugin {\n\t/**\n\t * A collection of bookmarks elements in the document.\n\t */\n\tprivate _bookmarkElements = new Map<Element, string>();\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'BookmarkEditing' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst { editor } = this;\n\n\t\tthis._defineSchema();\n\t\tthis._defineConverters();\n\n\t\teditor.commands.add( 'insertBookmark', new InsertBookmarkCommand( editor ) );\n\t\teditor.commands.add( 'updateBookmark', new UpdateBookmarkCommand( editor ) );\n\n\t\tthis.listenTo<DocumentChangeEvent>( editor.model.document, 'change:data', () => {\n\t\t\tthis._trackBookmarkElements();\n\t\t} );\n\t}\n\n\t/**\n\t * Returns the model element for the given bookmark ID if it exists.\n\t */\n\tpublic getElementForBookmarkId( bookmarkId: string ): Element | null {\n\t\tfor ( const [ element, id ] of this._bookmarkElements ) {\n\t\t\tif ( id == bookmarkId ) {\n\t\t\t\treturn element;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t/**\n\t * Defines the schema for the bookmark feature.\n\t */\n\tprivate _defineSchema() {\n\t\tconst schema = this.editor.model.schema;\n\n\t\tschema.register( 'bookmark', {\n\t\t\tinheritAllFrom: '$inlineObject',\n\t\t\tallowAttributes: 'bookmarkId',\n\t\t\tdisallowAttributes: [ 'linkHref', 'htmlA' ]\n\t\t} );\n\t}\n\n\t/**\n\t * Defines the converters for the bookmark feature.\n\t */\n\tprivate _defineConverters() {\n\t\tconst { editor } = this;\n\t\tconst { conversion, t } = editor;\n\n\t\teditor.data.htmlProcessor.domConverter.registerInlineObjectMatcher( element => upcastMatcher( element ) );\n\n\t\t// Register an inline object matcher so that bookmarks <a>s are correctly recognized as inline elements in editing pipeline.\n\t\t// This prevents converting spaces around bookmarks to `&nbsp;`s.\n\t\teditor.editing.view.domConverter.registerInlineObjectMatcher( element => upcastMatcher( element, false ) );\n\n\t\tconversion.for( 'dataDowncast' ).elementToElement( {\n\t\t\tmodel: {\n\t\t\t\tname: 'bookmark',\n\t\t\t\tattributes: [ 'bookmarkId' ]\n\t\t\t},\n\t\t\tview: ( modelElement, { writer } ) => {\n\t\t\t\tconst emptyElement = writer.createEmptyElement( 'a', {\n\t\t\t\t\t'id': modelElement.getAttribute( 'bookmarkId' )\n\t\t\t\t} );\n\n\t\t\t\t// `getFillerOffset` is not needed to set here, because `emptyElement` has already covered it.\n\n\t\t\t\treturn emptyElement;\n\t\t\t}\n\t\t} );\n\n\t\tconversion.for( 'editingDowncast' ).elementToElement( {\n\t\t\tmodel: {\n\t\t\t\tname: 'bookmark',\n\t\t\t\tattributes: [ 'bookmarkId' ]\n\t\t\t},\n\t\t\tview: ( modelElement, { writer } ) => {\n\t\t\t\tconst id = modelElement.getAttribute( 'bookmarkId' ) as string;\n\t\t\t\tconst containerElement = writer.createContainerElement( 'a', {\n\t\t\t\t\tid,\n\t\t\t\t\tclass: 'ck-bookmark'\n\t\t\t\t}, [ this._createBookmarkUIElement( writer ) ] );\n\n\t\t\t\tthis._bookmarkElements.set( modelElement, id );\n\n\t\t\t\t// `getFillerOffset` is not needed to set here, because `toWidget` has already covered it.\n\n\t\t\t\tconst labelCreator = () => `${ id } ${ t( 'bookmark widget' ) }`;\n\n\t\t\t\treturn toWidget( containerElement, writer, { label: labelCreator } );\n\t\t\t}\n\t\t} );\n\n\t\tconversion.for( 'upcast' ).add(\n\t\t\tdispatcher => dispatcher.on<UpcastElementEvent>( 'element:a', dataViewModelAnchorInsertion( editor ) )\n\t\t);\n\t}\n\n\t/**\n\t * Creates a UI element for the `bookmark` representation in editing view.\n\t */\n\tprivate _createBookmarkUIElement( writer: DowncastWriter ): ViewUIElement {\n\t\treturn writer.createUIElement( 'span', { class: 'ck-bookmark__icon' }, function( domDocument ) {\n\t\t\tconst domElement = this.toDomElement( domDocument );\n\n\t\t\tconst icon = new IconView();\n\n\t\t\ticon.set( {\n\t\t\t\tcontent: bookmarkIcon,\n\t\t\t\tisColorInherited: false\n\t\t\t} );\n\n\t\t\ticon.render();\n\n\t\t\tdomElement.appendChild( icon.element! );\n\n\t\t\treturn domElement;\n\t\t} );\n\t}\n\n\t/**\n\t * Tracking the added or removed bookmark elements.\n\t */\n\tprivate _trackBookmarkElements(): void {\n\t\tthis._bookmarkElements.forEach( ( id, element ) => {\n\t\t\tif ( element.root.rootName === '$graveyard' ) {\n\t\t\t\tthis._bookmarkElements.delete( element );\n\t\t\t}\n\t\t} );\n\t}\n}\n\n/**\n * A helper function to match an `anchor` element which must contain `id` or `name` attribute but without `href` attribute,\n * also when `expectEmpty` is set to `true` but the element is not empty matcher should not match any element.\n *\n * @param element The element to be checked.\n * @param expectEmpty Default set to `true`, when set to `false` matcher expects that `anchor` is not empty;\n * in editing pipeline it's not empty because it contains the `UIElement`.\n */\nfunction upcastMatcher( element: ViewElement, expectEmpty: boolean = true ) {\n\tconst isAnchorElement = element.name === 'a';\n\n\tif ( !isAnchorElement ) {\n\t\treturn null;\n\t}\n\n\tif ( expectEmpty && !element.isEmpty ) {\n\t\treturn null;\n\t}\n\n\tconst hasIdAttribute = element.hasAttribute( 'id' );\n\tconst hasNameAttribute = element.hasAttribute( 'name' );\n\tconst hasHrefAttribute = element.hasAttribute( 'href' );\n\n\tif ( hasIdAttribute && !hasHrefAttribute ) {\n\t\treturn { name: true, attributes: [ 'id' ] };\n\t}\n\n\tif ( hasNameAttribute && !hasHrefAttribute ) {\n\t\treturn { name: true, attributes: [ 'name' ] };\n\t}\n\n\treturn null;\n}\n\n/**\n * A view-to-model converter that handles converting pointed or wrapped anchors with `id` and/or `name` attributes.\n *\n * @returns Returns a conversion callback.\n */\nfunction dataViewModelAnchorInsertion( editor: Editor ) {\n\treturn (\n\t\tevt: EventInfo,\n\t\tdata: UpcastConversionData<ViewElement>,\n\t\tconversionApi: UpcastConversionApi\n\t) => {\n\t\tconst viewItem = data.viewItem;\n\t\tconst match = upcastMatcher( viewItem, false );\n\n\t\tif ( !match || !conversionApi.consumable.test( viewItem, match ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst enableNonEmptyAnchorConversion = isEnabledNonEmptyAnchorConversion( editor );\n\n\t\tif ( !enableNonEmptyAnchorConversion && !viewItem.isEmpty ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst modelWriter = conversionApi.writer;\n\t\tconst anchorId = viewItem.getAttribute( 'id' );\n\t\tconst anchorName = viewItem.getAttribute( 'name' );\n\t\tconst bookmarkId = anchorId || anchorName;\n\t\tconst bookmark = modelWriter.createElement( 'bookmark', { bookmarkId } );\n\n\t\tif ( !conversionApi.safeInsert( bookmark, data.modelCursor ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconversionApi.consumable.consume( viewItem, match );\n\n\t\tif ( anchorId === anchorName ) {\n\t\t\tconversionApi.consumable.consume( viewItem, { attributes: [ 'name' ] } );\n\t\t}\n\n\t\tconversionApi.updateConversionResult( bookmark, data );\n\n\t\t// Convert children uses the result of `bookmark` insertion to convert the `anchor` content\n\t\t// after the bookmark element (not inside it).\n\t\tconst { modelCursor, modelRange } = conversionApi.convertChildren( viewItem, data.modelCursor );\n\n\t\tdata.modelCursor = modelCursor;\n\t\tdata.modelRange = modelWriter.createRange( data.modelRange!.start, modelRange!.end );\n\t};\n}\n\n/**\n * Normalize the bookmark configuration option `enableNonEmptyAnchorConversion`.\n */\nfunction isEnabledNonEmptyAnchorConversion( editor: Editor ): boolean {\n\tconst enableNonEmptyAnchorConversion = editor.config.get( 'bookmark.enableNonEmptyAnchorConversion' );\n\n\t// When not defined, option `enableNonEmptyAnchorConversion` by default is set to `true`.\n\treturn enableNonEmptyAnchorConversion !== undefined ? enableNonEmptyAnchorConversion : true;\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module bookmark/bookmarkui\n */\n\nimport { Plugin, type Editor, icons } from 'ckeditor5/src/core.js';\nimport {\n\tButtonView,\n\tContextualBalloon,\n\tCssTransitionDisablerMixin,\n\tMenuBarMenuListItemButtonView,\n\tclickOutsideHandler,\n\ttype ViewWithCssTransitionDisabler\n} from 'ckeditor5/src/ui.js';\n\nimport {\n\tClickObserver,\n\ttype ViewDocumentClickEvent,\n\ttype Element,\n\ttype ViewElement\n} from 'ckeditor5/src/engine.js';\n\nimport type { PositionOptions } from 'ckeditor5/src/utils.js';\nimport type { DeleteCommand } from 'ckeditor5/src/typing.js';\n\nimport BookmarkFormView, { type BookmarkFormValidatorCallback } from './ui/bookmarkformview.js';\nimport BookmarkActionsView from './ui/bookmarkactionsview.js';\nimport type UpdateBookmarkCommand from './updatebookmarkcommand.js';\nimport type InsertBookmarkCommand from './insertbookmarkcommand.js';\n\nimport BookmarkEditing from './bookmarkediting.js';\n\nconst bookmarkIcon = icons.bookmark;\n\nconst VISUAL_SELECTION_MARKER_NAME = 'bookmark-ui';\n\n/**\n * The UI plugin of the bookmark feature.\n *\n * It registers the `'bookmark'` UI button in the editor's {@link module:ui/componentfactory~ComponentFactory component factory}\n * which inserts the `bookmark` element upon selection.\n */\nexport default class BookmarkUI extends Plugin {\n\t/**\n\t * The actions view displayed inside of the balloon.\n\t */\n\tpublic actionsView: BookmarkActionsView | null = null;\n\n\t/**\n\t * The form view displayed inside the balloon.\n\t */\n\tpublic formView: BookmarkFormView & ViewWithCssTransitionDisabler | null = null;\n\n\t/**\n\t * The contextual balloon plugin instance.\n\t */\n\tprivate _balloon!: ContextualBalloon;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ BookmarkEditing, ContextualBalloon ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'BookmarkUI' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\n\t\teditor.editing.view.addObserver( ClickObserver );\n\n\t\tthis._balloon = editor.plugins.get( ContextualBalloon );\n\n\t\t// Create toolbar buttons.\n\t\tthis._createToolbarBookmarkButton();\n\t\tthis._enableBalloonActivators();\n\n\t\t// Renders a fake visual selection marker on an expanded selection.\n\t\teditor.conversion.for( 'editingDowncast' ).markerToHighlight( {\n\t\t\tmodel: VISUAL_SELECTION_MARKER_NAME,\n\t\t\tview: {\n\t\t\t\tclasses: [ 'ck-fake-bookmark-selection' ]\n\t\t\t}\n\t\t} );\n\n\t\t// Renders a fake visual selection marker on a collapsed selection.\n\t\teditor.conversion.for( 'editingDowncast' ).markerToElement( {\n\t\t\tmodel: VISUAL_SELECTION_MARKER_NAME,\n\t\t\tview: ( data, { writer } ) => {\n\t\t\t\tif ( !data.markerRange.isCollapsed ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tconst markerElement = writer.createUIElement( 'span' );\n\n\t\t\t\twriter.addClass(\n\t\t\t\t\t[ 'ck-fake-bookmark-selection', 'ck-fake-bookmark-selection_collapsed' ],\n\t\t\t\t\tmarkerElement\n\t\t\t\t);\n\n\t\t\t\treturn markerElement;\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tsuper.destroy();\n\n\t\t// Destroy created UI components as they are not automatically destroyed (see ckeditor5#1341).\n\t\tif ( this.formView ) {\n\t\t\tthis.formView.destroy();\n\t\t}\n\n\t\tif ( this.actionsView ) {\n\t\t\tthis.actionsView.destroy();\n\t\t}\n\t}\n\n\t/**\n\t * Creates views.\n\t */\n\tprivate _createViews() {\n\t\tthis.actionsView = this._createActionsView();\n\t\tthis.formView = this._createFormView();\n\n\t\t// Attach lifecycle actions to the the balloon.\n\t\tthis._enableUserBalloonInteractions();\n\t}\n\n\t/**\n\t * Creates the {@link module:bookmark/ui/bookmarkactionsview~BookmarkActionsView} instance.\n\t */\n\tprivate _createActionsView(): BookmarkActionsView {\n\t\tconst editor = this.editor;\n\t\tconst actionsView = new BookmarkActionsView( editor.locale );\n\t\tconst updateBookmarkCommand: UpdateBookmarkCommand = editor.commands.get( 'updateBookmark' )!;\n\t\tconst deleteCommand: DeleteCommand = editor.commands.get( 'delete' )!;\n\n\t\tactionsView.bind( 'id' ).to( updateBookmarkCommand, 'value' );\n\t\tactionsView.editButtonView.bind( 'isEnabled' ).to( updateBookmarkCommand );\n\t\tactionsView.removeButtonView.bind( 'isEnabled' ).to( deleteCommand );\n\n\t\t// Display edit form view after clicking on the \"Edit\" button.\n\t\tthis.listenTo( actionsView, 'edit', () => {\n\t\t\tthis._addFormView();\n\t\t} );\n\n\t\t// Execute remove command after clicking on the \"Remove\" button.\n\t\tthis.listenTo( actionsView, 'remove', () => {\n\t\t\tthis._hideUI();\n\t\t\teditor.execute( 'delete' );\n\t\t} );\n\n\t\t// Close the panel on esc key press when the **actions have focus**.\n\t\tactionsView.keystrokes.set( 'Esc', ( data, cancel ) => {\n\t\t\tthis._hideUI();\n\t\t\tcancel();\n\t\t} );\n\n\t\treturn actionsView;\n\t}\n\n\t/**\n\t * Creates the {@link module:bookmark/ui/bookmarkformview~BookmarkFormView} instance.\n\t */\n\tprivate _createFormView(): BookmarkFormView & ViewWithCssTransitionDisabler {\n\t\tconst editor = this.editor;\n\t\tconst locale = editor.locale;\n\t\tconst insertBookmarkCommand: InsertBookmarkCommand = editor.commands.get( 'insertBookmark' )!;\n\t\tconst updateBookmarkCommand: UpdateBookmarkCommand = editor.commands.get( 'updateBookmark' )!;\n\t\tconst commands = [ insertBookmarkCommand, updateBookmarkCommand ];\n\n\t\tconst formView = new ( CssTransitionDisablerMixin( BookmarkFormView ) )( locale, getFormValidators( editor ) );\n\n\t\tformView.idInputView.fieldView.bind( 'value' ).to( updateBookmarkCommand, 'value' );\n\n\t\t// Form elements should be read-only when corresponding commands are disabled.\n\t\tformView.idInputView.bind( 'isEnabled' ).toMany(\n\t\t\tcommands,\n\t\t\t'isEnabled',\n\t\t\t( ...areEnabled ) => areEnabled.some( isEnabled => isEnabled )\n\t\t);\n\n\t\t// Disable the \"save\" button if the command is disabled.\n\t\tformView.buttonView.bind( 'isEnabled' ).toMany(\n\t\t\tcommands,\n\t\t\t'isEnabled',\n\t\t\t( ...areEnabled ) => areEnabled.some( isEnabled => isEnabled )\n\t\t);\n\n\t\t// Execute link command after clicking the \"Save\" button.\n\t\tthis.listenTo( formView, 'submit', () => {\n\t\t\tif ( formView.isValid() ) {\n\t\t\t\tconst value = formView.id!;\n\n\t\t\t\tif ( this._getSelectedBookmarkElement() ) {\n\t\t\t\t\teditor.execute( 'updateBookmark', { bookmarkId: value } );\n\t\t\t\t} else {\n\t\t\t\t\teditor.execute( 'insertBookmark', { bookmarkId: value } );\n\t\t\t\t}\n\n\t\t\t\tthis._closeFormView();\n\t\t\t}\n\t\t} );\n\n\t\t// Update balloon position when form error changes.\n\t\tthis.listenTo( formView.idInputView, 'change:errorText', () => {\n\t\t\teditor.ui.update();\n\t\t} );\n\n\t\t// Close the panel on esc key press when the **form has focus**.\n\t\tformView.keystrokes.set( 'Esc', ( data, cancel ) => {\n\t\t\tthis._closeFormView();\n\t\t\tcancel();\n\t\t} );\n\n\t\treturn formView;\n\t}\n\n\t/**\n\t * Creates a toolbar Bookmark button. Clicking this button will show\n\t * a {@link #_balloon} attached to the selection.\n\t */\n\tprivate _createToolbarBookmarkButton() {\n\t\tconst editor = this.editor;\n\n\t\teditor.ui.componentFactory.add( 'bookmark', () => {\n\t\t\tconst buttonView = this._createButton( ButtonView );\n\n\t\t\tbuttonView.set( {\n\t\t\t\ttooltip: true\n\t\t\t} );\n\n\t\t\treturn buttonView;\n\t\t} );\n\n\t\teditor.ui.componentFactory.add( 'menuBar:bookmark', () => {\n\t\t\treturn this._createButton( MenuBarMenuListItemButtonView );\n\t\t} );\n\t}\n\n\t/**\n\t * Creates a button for `bookmark` command to use either in toolbar or in menu bar.\n\t */\n\tprivate _createButton<T extends typeof ButtonView>( ButtonClass: T ): InstanceType<T> {\n\t\tconst editor = this.editor;\n\t\tconst locale = editor.locale;\n\t\tconst view = new ButtonClass( locale ) as InstanceType<T>;\n\t\tconst insertCommand: InsertBookmarkCommand = editor.commands.get( 'insertBookmark' )!;\n\t\tconst updateCommand: UpdateBookmarkCommand = editor.commands.get( 'updateBookmark' )!;\n\t\tconst t = locale.t;\n\n\t\tview.set( {\n\t\t\tlabel: t( 'Bookmark' ),\n\t\t\ticon: bookmarkIcon\n\t\t} );\n\n\t\t// Execute the command.\n\t\tthis.listenTo( view, 'execute', () => this._showUI( true ) );\n\n\t\tview.bind( 'isEnabled' ).toMany(\n\t\t\t[ insertCommand, updateCommand ],\n\t\t\t'isEnabled',\n\t\t\t( ...areEnabled ) => areEnabled.some( isEnabled => isEnabled )\n\t\t);\n\n\t\tview.bind( 'isOn' ).to( updateCommand, 'value', value => !!value );\n\n\t\treturn view;\n\t}\n\n\t/**\n\t * Attaches actions that control whether the balloon panel containing the\n\t * {@link #formView} should be displayed.\n\t */\n\tprivate _enableBalloonActivators(): void {\n\t\tconst editor = this.editor;\n\t\tconst viewDocument = editor.editing.view.document;\n\n\t\t// Handle click on view document and show panel when selection is placed inside the bookmark element.\n\t\t// Keep panel open until selection will be inside the same bookmark element.\n\t\tthis.listenTo<ViewDocumentClickEvent>( viewDocument, 'click', () => {\n\t\t\tconst bookmark = this._getSelectedBookmarkElement();\n\n\t\t\tif ( bookmark ) {\n\t\t\t\t// Then show panel but keep focus inside editor editable.\n\t\t\t\tthis._showUI();\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Attaches actions that control whether the balloon panel containing the\n\t * {@link #formView} is visible or not.\n\t */\n\tprivate _enableUserBalloonInteractions(): void {\n\t\t// Focus the form if the balloon is visible and the Tab key has been pressed.\n\t\tthis.editor.keystrokes.set( 'Tab', ( data, cancel ) => {\n\t\t\tif ( this._areActionsVisible && !this.actionsView!.focusTracker.isFocused ) {\n\t\t\t\tthis.actionsView!.focus();\n\t\t\t\tcancel();\n\t\t\t}\n\t\t}, {\n\t\t\t// Use the high priority because the bookmark UI navigation is more important\n\t\t\t// than other feature's actions, e.g. list indentation.\n\t\t\tpriority: 'high'\n\t\t} );\n\n\t\t// Close the panel on the Esc key press when the editable has focus and the balloon is visible.\n\t\tthis.editor.keystrokes.set( 'Esc', ( data, cancel ) => {\n\t\t\tif ( this._isUIVisible ) {\n\t\t\t\tthis._hideUI();\n\t\t\t\tcancel();\n\t\t\t}\n\t\t} );\n\n\t\t// Close on click outside of balloon panel element.\n\t\tclickOutsideHandler( {\n\t\t\temitter: this.formView!,\n\t\t\tactivator: () => this._isUIInPanel,\n\t\t\tcontextElements: () => [ this._balloon.view.element! ],\n\t\t\tcallback: () => this._hideUI()\n\t\t} );\n\t}\n\n\t/**\n\t * Updates the button label. If bookmark is selected label is set to 'Update' otherwise\n\t * it is 'Insert'.\n\t */\n\tprivate _updateFormButtonLabel( isBookmarkSelected: boolean ) {\n\t\tconst t = this.editor.locale.t;\n\n\t\tthis.formView!.buttonView.label = isBookmarkSelected ? t( 'Update' ) : t( 'Insert' );\n\t}\n\n\t/**\n\t * Adds the {@link #actionsView} to the {@link #_balloon}.\n\t *\n\t * @internal\n\t */\n\tpublic _addActionsView(): void {\n\t\tif ( !this.actionsView ) {\n\t\t\tthis._createViews();\n\t\t}\n\n\t\tif ( this._areActionsInPanel ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._balloon.add( {\n\t\t\tview: this.actionsView!,\n\t\t\tposition: this._getBalloonPositionData()\n\t\t} );\n\t}\n\n\t/**\n\t * Adds the {@link #formView} to the {@link #_balloon}.\n\t */\n\tprivate _addFormView(): void {\n\t\tif ( !this.formView ) {\n\t\t\tthis._createViews();\n\t\t}\n\n\t\tif ( this._isFormInPanel ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst editor = this.editor;\n\t\tconst updateBookmarkCommand: UpdateBookmarkCommand = editor.commands.get( 'updateBookmark' )!;\n\n\t\tthis.formView!.disableCssTransitions();\n\t\tthis.formView!.resetFormStatus();\n\n\t\tthis._balloon.add( {\n\t\t\tview: this.formView!,\n\t\t\tposition: this._getBalloonPositionData()\n\t\t} );\n\n\t\tthis.formView!.idInputView.fieldView.value = updateBookmarkCommand.value || '';\n\n\t\t// Select input when form view is currently visible.\n\t\tif ( this._balloon.visibleView === this.formView ) {\n\t\t\tthis.formView!.idInputView.fieldView.select();\n\t\t}\n\n\t\tthis.formView!.enableCssTransitions();\n\t}\n\n\t/**\n\t * Closes the form view. Decides whether the balloon should be hidden completely.\n\t */\n\tprivate _closeFormView(): void {\n\t\tconst updateBookmarkCommand: UpdateBookmarkCommand = this.editor.commands.get( 'updateBookmark' )!;\n\n\t\tif ( updateBookmarkCommand.value !== undefined ) {\n\t\t\tthis._removeFormView();\n\t\t} else {\n\t\t\tthis._hideUI();\n\t\t}\n\t}\n\n\t/**\n\t * Removes the {@link #formView} from the {@link #_balloon}.\n\t */\n\tprivate _removeFormView(): void {\n\t\tif ( this._isFormInPanel ) {\n\t\t\t// Blur the input element before removing it from DOM to prevent issues in some browsers.\n\t\t\t// See https://github.com/ckeditor/ckeditor5/issues/1501.\n\t\t\tthis.formView!.buttonView.focus();\n\n\t\t\t// Reset the ID field to update the state of the submit button.\n\t\t\tthis.formView!.idInputView.fieldView.reset();\n\n\t\t\tthis._balloon.remove( this.formView! );\n\n\t\t\t// Because the form has an input which has focus, the focus must be brought back\n\t\t\t// to the editor. Otherwise, it would be lost.\n\t\t\tthis.editor.editing.view.focus();\n\n\t\t\tthis._hideFakeVisualSelection();\n\t\t}\n\t}\n\n\t/**\n\t * Shows the correct UI type. It is either {@link #formView} or {@link #actionsView}.\n\t */\n\tprivate _showUI( forceVisible: boolean = false ): void {\n\t\tif ( !this.formView ) {\n\t\t\tthis._createViews();\n\t\t}\n\n\t\t// When there's no bookmark under the selection, go straight to the editing UI.\n\t\tif ( !this._getSelectedBookmarkElement() ) {\n\t\t\t// Show visual selection on a text without a bookmark when the contextual balloon is displayed.\n\t\t\tthis._showFakeVisualSelection();\n\n\t\t\tthis._addActionsView();\n\n\t\t\t// Be sure panel with bookmark is visible.\n\t\t\tif ( forceVisible ) {\n\t\t\t\tthis._balloon.showStack( 'main' );\n\t\t\t}\n\n\t\t\tthis._addFormView();\n\t\t}\n\t\t// If there's a bookmark under the selection...\n\t\telse {\n\t\t\t// Go to the editing UI if actions are already visible.\n\t\t\tif ( this._areActionsVisible ) {\n\t\t\t\tthis._addFormView();\n\t\t\t}\n\t\t\t// Otherwise display just the actions UI.\n\t\t\telse {\n\t\t\t\tthis._addActionsView();\n\t\t\t}\n\n\t\t\t// Be sure panel with bookmark is visible.\n\t\t\tif ( forceVisible ) {\n\t\t\t\tthis._balloon.showStack( 'main' );\n\t\t\t}\n\t\t}\n\n\t\t// Begin responding to ui#update once the UI is added.\n\t\tthis._startUpdatingUI();\n\t}\n\n\t/**\n\t * Removes the {@link #formView} from the {@link #_balloon}.\n\t *\n\t * See {@link #_addFormView}, {@link #_addActionsView}.\n\t */\n\tprivate _hideUI(): void {\n\t\tif ( !this._isUIInPanel ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst editor = this.editor;\n\n\t\tthis.stopListening( editor.ui, 'update' );\n\t\tthis.stopListening( this._balloon, 'change:visibleView' );\n\n\t\t// Make sure the focus always gets back to the editable _before_ removing the focused form view.\n\t\t// Doing otherwise causes issues in some browsers. See https://github.com/ckeditor/ckeditor5-link/issues/193.\n\t\teditor.editing.view.focus();\n\n\t\t// Remove form first because it's on top of the stack.\n\t\tthis._removeFormView();\n\n\t\t// Then remove the actions view because it's beneath the form.\n\t\tthis._balloon.remove( this.actionsView! );\n\n\t\tthis._hideFakeVisualSelection();\n\t}\n\n\t/**\n\t * Makes the UI react to the {@link module:ui/editorui/editorui~EditorUI#event:update} event to\n\t * reposition itself when the editor UI should be refreshed.\n\t *\n\t * See: {@link #_hideUI} to learn when the UI stops reacting to the `update` event.\n\t */\n\tprivate _startUpdatingUI(): void {\n\t\tconst editor = this.editor;\n\t\tconst viewDocument = editor.editing.view.document;\n\n\t\tlet prevSelectedBookmark = this._getSelectedBookmarkElement();\n\t\tlet prevSelectionParent = getSelectionParent();\n\n\t\tthis._updateFormButtonLabel( !!prevSelectedBookmark );\n\n\t\tconst update = () => {\n\t\t\tconst selectedBookmark = this._getSelectedBookmarkElement();\n\t\t\tconst selectionParent = getSelectionParent();\n\n\t\t\t// Hide the panel if:\n\t\t\t//\n\t\t\t// * the selection went out of the EXISTING bookmark element. E.g. user moved the caret out\n\t\t\t// of the bookmark,\n\t\t\t// * the selection went to a different parent when creating a NEW bookmark. E.g. someone\n\t\t\t// else modified the document.\n\t\t\t// * the selection has expanded (e.g. displaying bookmark actions then pressing SHIFT+Right arrow).\n\t\t\t//\n\t\t\tif (\n\t\t\t\t( prevSelectedBookmark && !selectedBookmark ) ||\n\t\t\t\t( !prevSelectedBookmark && selectionParent !== prevSelectionParent )\n\t\t\t) {\n\t\t\t\tthis._hideUI();\n\t\t\t}\n\t\t\t// Update the position of the panel when:\n\t\t\t// * bookmark panel is in the visible stack\n\t\t\t// * the selection remains on the original bookmark element,\n\t\t\t// * there was no bookmark element in the first place, i.e. creating a new bookmark\n\t\t\telse if ( this._isUIVisible ) {\n\t\t\t\t// If still in a bookmark element, simply update the position of the balloon.\n\t\t\t\t// If there was no bookmark (e.g. inserting one), the balloon must be moved\n\t\t\t\t// to the new position in the editing view (a new native DOM range).\n\t\t\t\tthis._balloon.updatePosition( this._getBalloonPositionData() );\n\t\t\t}\n\n\t\t\tthis._updateFormButtonLabel( !!prevSelectedBookmark );\n\n\t\t\tprevSelectedBookmark = selectedBookmark;\n\t\t\tprevSelectionParent = selectionParent;\n\t\t};\n\n\t\tfunction getSelectionParent() {\n\t\t\treturn viewDocument.selection.focus!.getAncestors()\n\t\t\t\t.reverse()\n\t\t\t\t.find( ( node ): node is ViewElement => node.is( 'element' ) );\n\t\t}\n\n\t\tthis.listenTo( editor.ui, 'update', update );\n\t\tthis.listenTo( this._balloon, 'change:visibleView', update );\n\t}\n\n\t/**\n\t * Returns `true` when {@link #formView} is in the {@link #_balloon}.\n\t */\n\tprivate get _isFormInPanel(): boolean {\n\t\treturn !!this.formView && this._balloon.hasView( this.formView );\n\t}\n\n\t/**\n\t * Returns `true` when {@link #actionsView} is in the {@link #_balloon}.\n\t */\n\tprivate get _areActionsInPanel(): boolean {\n\t\treturn !!this.actionsView && this._balloon.hasView( this.actionsView );\n\t}\n\n\t/**\n\t * Returns `true` when {@link #actionsView} is in the {@link #_balloon} and it is\n\t * currently visible.\n\t */\n\tprivate get _areActionsVisible(): boolean {\n\t\treturn !!this.actionsView && this._balloon.visibleView === this.actionsView;\n\t}\n\n\t/**\n\t * Returns `true` when {@link #actionsView} or {@link #formView} is in the {@link #_balloon}.\n\t */\n\tprivate get _isUIInPanel(): boolean {\n\t\treturn this._isFormInPanel || this._areActionsInPanel;\n\t}\n\n\t/**\n\t * Returns `true` when {@link #actionsView} or {@link #formView} is in the {@link #_balloon} and it is\n\t * currently visible.\n\t */\n\tprivate get _isUIVisible(): boolean {\n\t\tconst visibleView = this._balloon.visibleView;\n\n\t\treturn !!this.formView && visibleView == this.formView || this._areActionsVisible;\n\t}\n\n\t/**\n\t * Returns positioning options for the {@link #_balloon}. They control the way the balloon is attached\n\t * to the target element or selection.\n\t */\n\tprivate _getBalloonPositionData(): Partial<PositionOptions> | undefined {\n\t\tconst view = this.editor.editing.view;\n\t\tconst model = this.editor.model;\n\t\tlet target: PositionOptions[ 'target' ] | undefined;\n\n\t\tconst bookmarkElement = this._getSelectedBookmarkElement();\n\n\t\tif ( model.markers.has( VISUAL_SELECTION_MARKER_NAME ) ) {\n\t\t\t// There are cases when we highlight selection using a marker (#7705, #4721).\n\t\t\tconst markerViewElements = Array.from( this.editor.editing.mapper.markerNameToElements( VISUAL_SELECTION_MARKER_NAME )! );\n\t\t\tconst newRange = view.createRange(\n\t\t\t\tview.createPositionBefore( markerViewElements[ 0 ] ),\n\t\t\t\tview.createPositionAfter( markerViewElements[ markerViewElements.length - 1 ] )\n\t\t\t);\n\n\t\t\ttarget = view.domConverter.viewRangeToDom( newRange );\n\t\t}\n\t\telse if ( bookmarkElement ) {\n\t\t\ttarget = () => {\n\t\t\t\tconst mapper = this.editor.editing.mapper;\n\t\t\t\tconst domConverter = view.domConverter;\n\t\t\t\tconst viewElement = mapper.toViewElement( bookmarkElement )!;\n\n\t\t\t\treturn domConverter.mapViewToDom( viewElement )!;\n\t\t\t};\n\t\t}\n\n\t\treturn target && { target };\n\t}\n\n\t/**\n\t * Returns the bookmark {@link module:engine/view/attributeelement~AttributeElement} under\n\t * the {@link module:engine/view/document~Document editing view's} selection or `null`\n\t * if there is none.\n\t */\n\tprivate _getSelectedBookmarkElement(): Element | null {\n\t\tconst selection = this.editor.model.document.selection;\n\t\tconst element = selection.getSelectedElement();\n\n\t\tif ( element && element.is( 'element', 'bookmark' ) ) {\n\t\t\treturn element;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t/**\n\t * Displays a fake visual selection when the contextual balloon is displayed.\n\t *\n\t * This adds a 'bookmark-ui' marker into the document that is rendered as a highlight on selected text fragment.\n\t */\n\tprivate _showFakeVisualSelection(): void {\n\t\tconst model = this.editor.model;\n\n\t\tmodel.change( writer => {\n\t\t\tconst range = model.document.selection.getFirstRange()!;\n\n\t\t\tif ( model.markers.has( VISUAL_SELECTION_MARKER_NAME ) ) {\n\t\t\t\twriter.updateMarker( VISUAL_SELECTION_MARKER_NAME, { range } );\n\t\t\t} else {\n\t\t\t\tif ( range.start.isAtEnd ) {\n\t\t\t\t\tconst startPosition = range.start.getLastMatchingPosition(\n\t\t\t\t\t\t( { item } ) => !model.schema.isContent( item ),\n\t\t\t\t\t\t{ boundaries: range }\n\t\t\t\t\t);\n\n\t\t\t\t\twriter.addMarker( VISUAL_SELECTION_MARKER_NAME, {\n\t\t\t\t\t\tusingOperation: false,\n\t\t\t\t\t\taffectsData: false,\n\t\t\t\t\t\trange: writer.createRange( startPosition, range.end )\n\t\t\t\t\t} );\n\t\t\t\t} else {\n\t\t\t\t\twriter.addMarker( VISUAL_SELECTION_MARKER_NAME, {\n\t\t\t\t\t\tusingOperation: false,\n\t\t\t\t\t\taffectsData: false,\n\t\t\t\t\t\trange\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Hides the fake visual selection created in {@link #_showFakeVisualSelection}.\n\t */\n\tprivate _hideFakeVisualSelection(): void {\n\t\tconst model = this.editor.model;\n\n\t\tif ( model.markers.has( VISUAL_SELECTION_MARKER_NAME ) ) {\n\t\t\tmodel.change( writer => {\n\t\t\t\twriter.removeMarker( VISUAL_SELECTION_MARKER_NAME );\n\t\t\t} );\n\t\t}\n\t}\n}\n\n/**\n * Returns bookmark form validation callbacks.\n */\nfunction getFormValidators( editor: Editor ): Array<BookmarkFormValidatorCallback> {\n\tconst { t } = editor;\n\tconst bookmarkEditing = editor.plugins.get( BookmarkEditing );\n\n\treturn [\n\t\tform => {\n\t\t\tif ( !form.id ) {\n\t\t\t\treturn t( 'Bookmark must not be empty.' );\n\t\t\t}\n\t\t},\n\t\tform => {\n\t\t\tif ( form.id && /\\s/.test( form.id ) ) {\n\t\t\t\treturn t( 'Bookmark name cannot contain space characters.' );\n\t\t\t}\n\t\t},\n\t\tform => {\n\t\t\tconst selectedElement = editor.model.document.selection.getSelectedElement();\n\t\t\tconst existingBookmarkForId = bookmarkEditing.getElementForBookmarkId( form.id! );\n\n\t\t\t// Accept change of bookmark ID if no real change is happening (edit -> submit, without changes).\n\t\t\tif ( selectedElement === existingBookmarkForId ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( existingBookmarkForId ) {\n\t\t\t\treturn t( 'Bookmark name already exists.' );\n\t\t\t}\n\t\t}\n\t];\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module bookmark/bookmark\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport { Widget } from 'ckeditor5/src/widget.js';\nimport BookmarkUI from './bookmarkui.js';\nimport BookmarkEditing from './bookmarkediting.js';\n\n/**\n * The bookmark feature.\n *\n * For a detailed overview, check the {@glink features/bookmarks Bookmarks} feature guide.\n */\nexport default class Bookmark extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'Bookmark' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ BookmarkEditing, BookmarkUI, Widget ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n}\n"]}
1
+ {"version":3,"sources":["index.js","../src/ui/bookmarkformview.ts","../src/ui/bookmarkactionsview.ts","../src/utils.ts","../src/insertbookmarkcommand.ts","../src/updatebookmarkcommand.ts","../src/bookmarkediting.ts","../src/bookmarkui.ts","../src/bookmark.ts"],"names":["BookmarkFormView","View","focusTracker","FocusTracker","keystrokes","KeystrokeHandler","_focusables","ViewCollection","constructor","locale","validators","t","_validators","idInputView","_createIdInput","buttonView","_createButton","type","children","_createViewChildren","_focusCycler","FocusCycler","focusables","keystrokeHandler","actions","focusPrevious","focusNext","classList","setTemplate","tag","attributes","class","tabindex","render","submitHandler","view","childViews","forEach","v","add","element","listenTo","destroy","focusFirst","resetFormStatus","validator","errorText","createCollection","FormHeaderView","label","_createFormContentView","labeledInput","LabeledFieldView","createLabeledInputText","infoText","className","button","ButtonView","set","withText","extendTemplate","id","fieldView","value","trim","BookmarkActionsView","bookmarkPreviewView","_createBookmarkPreviewView","removeButtonView","icons","remove","editButtonView","pencil","undefined","icon","eventName","additionalLabel","tooltip","delegate","to","labelView","unbind","bind","ariaLabelledBy","getFirstToken","LabelView","tokenList","split","isBookmarkIdValid","test","InsertBookmarkCommand","Command","model","editor","selection","document","position","_getPositionToInsertBookmark","isEnabled","execute","options","bookmarkId","logWarning","change","writer","isBookmarkAllowed","schema","checkChild","newPosition","bookmarkElement","createElement","Object","fromEntries","getAttributes","insertObject","setSelection","firstRange","getFirstRange","startPosition","start","previousPosition","item","is","createPositionAt","UpdateBookmarkCommand","selectedBookmark","getSelectedBookmark","getAttribute","setAttribute","getSelectedElement","bookmarkIcon","bookmarkInline","BookmarkEditing","Plugin","_bookmarkElements","Map","pluginName","isOfficialPlugin","_defineSchema","_defineConverters","commands","_trackBookmarkElements","getElementForBookmarkId","register","inheritAllFrom","allowAttributes","disallowAttributes","conversion","data","htmlProcessor","domConverter","registerInlineObjectMatcher","upcastMatcher","editing","for","elementToElement","name","modelElement","emptyElement","createEmptyElement","containerElement","createContainerElement","_createBookmarkUIElement","labelCreator","toWidget","dispatcher","on","dataViewModelAnchorInsertion","createUIElement","domDocument","domElement","toDomElement","IconView","content","isColorInherited","appendChild","root","rootName","delete","expectEmpty","isAnchorElement","isEmpty","hasIdAttribute","hasAttribute","hasNameAttribute","hasHrefAttribute","evt","conversionApi","viewItem","match","consumable","enableNonEmptyAnchorConversion","isEnabledNonEmptyAnchorConversion","modelWriter","anchorId","anchorName","bookmark","safeInsert","modelCursor","consume","updateConversionResult","modelRange","convertChildren","createRange","end","config","get","VISUAL_SELECTION_MARKER_NAME","BookmarkUI","actionsView","formView","requires","ContextualBalloon","addObserver","ClickObserver","_balloon","plugins","_createToolbarBookmarkButton","_enableBalloonActivators","markerToHighlight","classes","markerToElement","markerRange","isCollapsed","markerElement","addClass","_createActionsView","_createFormView","_enableUserBalloonInteractions","updateBookmarkCommand","deleteCommand","_addFormView","_hideUI","cancel","insertBookmarkCommand","CssTransitionDisablerMixin","getFormValidators","toMany","areEnabled","some","isValid","_getSelectedBookmarkElement","_closeFormView","ui","update","componentFactory","MenuBarMenuListItemButtonView","ButtonClass","insertCommand","updateCommand","_showUI","viewDocument","_areActionsVisible","isFocused","focus","priority","_isUIVisible","clickOutsideHandler","emitter","activator","_isUIInPanel","contextElements","callback","_updateFormButtonLabel","isBookmarkSelected","_createViews","_areActionsInPanel","_getBalloonPositionData","_isFormInPanel","disableCssTransitions","visibleView","select","enableCssTransitions","_removeFormView","reset","_hideFakeVisualSelection","forceVisible","_showFakeVisualSelection","_addActionsView","showStack","_startUpdatingUI","stopListening","prevSelectedBookmark","prevSelectionParent","getSelectionParent","selectionParent","updatePosition","getAncestors","reverse","find","node","hasView","target","markers","has","markerViewElements","Array","from","mapper","markerNameToElements","newRange","createPositionBefore","createPositionAfter","length","viewRangeToDom","viewElement","toViewElement","mapViewToDom","range","updateMarker","isAtEnd","getLastMatchingPosition","isContent","boundaries","addMarker","usingOperation","affectsData","removeMarker","bookmarkEditing","form","selectedElement","existingBookmarkForId","Bookmark","Widget"],"mappings":"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","file":"index.js.map","sourcesContent":["import { icons, Command, Plugin } from '@ckeditor/ckeditor5-core/dist/index.js';\nimport { toWidget, Widget } from '@ckeditor/ckeditor5-widget/dist/index.js';\nimport { View, ViewCollection, FocusCycler, submitHandler, FormHeaderView, LabeledFieldView, createLabeledInputText, ButtonView, LabelView, IconView, ContextualBalloon, CssTransitionDisablerMixin, MenuBarMenuListItemButtonView, clickOutsideHandler } from '@ckeditor/ckeditor5-ui/dist/index.js';\nimport { ClickObserver } from '@ckeditor/ckeditor5-engine/dist/index.js';\nimport { FocusTracker, KeystrokeHandler, logWarning } from '@ckeditor/ckeditor5-utils/dist/index.js';\n\n/**\n * The bookmark form view controller class.\n *\n * See {@link module:bookmark/ui/bookmarkformview~BookmarkFormView}.\n */ class BookmarkFormView extends View {\n /**\n\t * Tracks information about DOM focus in the form.\n\t */ focusTracker = new FocusTracker();\n /**\n\t * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n\t */ keystrokes = new KeystrokeHandler();\n /**\n\t * The ID input view.\n\t */ idInputView;\n /**\n\t * The Submit button view.\n\t */ buttonView;\n /**\n\t * A collection of form child views in the form.\n\t */ children;\n /**\n\t * An array of form validators used by {@link #isValid}.\n\t */ _validators;\n /**\n\t * A collection of views that can be focused in the form.\n\t */ _focusables = new ViewCollection();\n /**\n\t * Helps cycling over {@link #_focusables} in the form.\n\t */ _focusCycler;\n /**\n\t * Creates an instance of the {@link module:bookmark/ui/bookmarkformview~BookmarkFormView} class.\n\t *\n\t * Also see {@link #render}.\n\t *\n\t * @param locale The localization services instance.\n\t * @param validators Form validators used by {@link #isValid}.\n\t */ constructor(locale, validators){\n super(locale);\n const t = locale.t;\n this._validators = validators;\n this.idInputView = this._createIdInput();\n this.buttonView = this._createButton(t('Insert'), 'ck-button-action ck-button-bold');\n this.buttonView.type = 'submit';\n this.children = this._createViewChildren();\n this._focusCycler = new FocusCycler({\n focusables: this._focusables,\n focusTracker: this.focusTracker,\n keystrokeHandler: this.keystrokes,\n actions: {\n // Navigate form fields backwards using the Shift + Tab keystroke.\n focusPrevious: 'shift + tab',\n // Navigate form fields forwards using the Tab key.\n focusNext: 'tab'\n }\n });\n const classList = [\n 'ck',\n 'ck-bookmark-view'\n ];\n this.setTemplate({\n tag: 'form',\n attributes: {\n class: classList,\n // https://github.com/ckeditor/ckeditor5-link/issues/90\n tabindex: '-1'\n },\n children: this.children\n });\n }\n /**\n\t * @inheritDoc\n\t */ render() {\n super.render();\n submitHandler({\n view: this\n });\n const childViews = [\n this.idInputView,\n this.buttonView\n ];\n childViews.forEach((v)=>{\n // Register the view as focusable.\n this._focusables.add(v);\n // Register the view in the focus tracker.\n this.focusTracker.add(v.element);\n });\n // Start listening for the keystrokes coming from #element.\n this.keystrokes.listenTo(this.element);\n }\n /**\n\t * @inheritDoc\n\t */ destroy() {\n super.destroy();\n this.focusTracker.destroy();\n this.keystrokes.destroy();\n }\n /**\n\t * Focuses the fist {@link #_focusables} in the form.\n\t */ focus() {\n this._focusCycler.focusFirst();\n }\n /**\n\t * Validates the form and returns `false` when some fields are invalid.\n\t */ isValid() {\n this.resetFormStatus();\n for (const validator of this._validators){\n const errorText = validator(this);\n // One error per field is enough.\n if (errorText) {\n // Apply updated error.\n this.idInputView.errorText = errorText;\n return false;\n }\n }\n return true;\n }\n /**\n\t * Cleans up the supplementary error and information text of the {@link #idInputView}\n\t * bringing them back to the state when the form has been displayed for the first time.\n\t *\n\t * See {@link #isValid}.\n\t */ resetFormStatus() {\n this.idInputView.errorText = null;\n }\n /**\n\t * Creates header and form view.\n\t */ _createViewChildren() {\n const children = this.createCollection();\n const t = this.t;\n children.add(new FormHeaderView(this.locale, {\n label: t('Bookmark')\n }));\n children.add(this._createFormContentView());\n return children;\n }\n /**\n\t * Creates form content view with input and button.\n\t */ _createFormContentView() {\n const view = new View(this.locale);\n const children = this.createCollection();\n const classList = [\n 'ck',\n 'ck-bookmark-form',\n 'ck-responsive-form'\n ];\n children.add(this.idInputView);\n children.add(this.buttonView);\n view.setTemplate({\n tag: 'div',\n attributes: {\n class: classList\n },\n children\n });\n return view;\n }\n /**\n\t * Creates a labeled input view.\n\t *\n\t * @returns Labeled field view instance.\n\t */ _createIdInput() {\n const t = this.locale.t;\n const labeledInput = new LabeledFieldView(this.locale, createLabeledInputText);\n labeledInput.label = t('Bookmark name');\n labeledInput.infoText = t('Enter the bookmark name without spaces.');\n return labeledInput;\n }\n /**\n\t * Creates a button view.\n\t *\n\t * @param label The button label.\n\t * @param className The additional button CSS class name.\n\t * @returns The button view instance.\n\t */ _createButton(label, className) {\n const button = new ButtonView(this.locale);\n button.set({\n label,\n withText: true\n });\n button.extendTemplate({\n attributes: {\n class: className\n }\n });\n return button;\n }\n /**\n\t * The native DOM `value` of the {@link #idInputView} element.\n\t *\n\t * **Note**: Do not confuse it with the {@link module:ui/inputtext/inputtextview~InputTextView#value}\n\t * which works one way only and may not represent the actual state of the component in the DOM.\n\t */ get id() {\n const { element } = this.idInputView.fieldView;\n if (!element) {\n return null;\n }\n return element.value.trim();\n }\n}\n\n/**\n * The bookmark actions view class. This view displays the bookmark preview, allows\n * removing or editing the bookmark.\n */ class BookmarkActionsView extends View {\n /**\n\t * Tracks information about DOM focus in the actions.\n\t */ focusTracker = new FocusTracker();\n /**\n\t * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n\t */ keystrokes = new KeystrokeHandler();\n /**\n\t * The bookmark preview view.\n\t */ bookmarkPreviewView;\n /**\n\t * The remove button view.\n\t */ removeButtonView;\n /**\n\t * The edit bookmark button view.\n\t */ editButtonView;\n /**\n\t * A collection of views that can be focused in the view.\n\t */ _focusables = new ViewCollection();\n /**\n\t * Helps cycling over {@link #_focusables} in the view.\n\t */ _focusCycler;\n /**\n\t * @inheritDoc\n\t */ constructor(locale){\n super(locale);\n const t = locale.t;\n this.bookmarkPreviewView = this._createBookmarkPreviewView();\n this.removeButtonView = this._createButton(t('Remove bookmark'), icons.remove, 'remove', this.bookmarkPreviewView);\n this.editButtonView = this._createButton(t('Edit bookmark'), icons.pencil, 'edit', this.bookmarkPreviewView);\n this.set('id', undefined);\n this._focusCycler = new FocusCycler({\n focusables: this._focusables,\n focusTracker: this.focusTracker,\n keystrokeHandler: this.keystrokes,\n actions: {\n // Navigate fields backwards using the Shift + Tab keystroke.\n focusPrevious: 'shift + tab',\n // Navigate fields forwards using the Tab key.\n focusNext: 'tab'\n }\n });\n this.setTemplate({\n tag: 'div',\n attributes: {\n class: [\n 'ck',\n 'ck-bookmark-actions',\n 'ck-responsive-form'\n ],\n // https://github.com/ckeditor/ckeditor5-link/issues/90\n tabindex: '-1'\n },\n children: [\n this.bookmarkPreviewView,\n this.editButtonView,\n this.removeButtonView\n ]\n });\n }\n /**\n\t * @inheritDoc\n\t */ render() {\n super.render();\n const childViews = [\n this.editButtonView,\n this.removeButtonView\n ];\n childViews.forEach((v)=>{\n // Register the view as focusable.\n this._focusables.add(v);\n // Register the view in the focus tracker.\n this.focusTracker.add(v.element);\n });\n // Start listening for the keystrokes coming from #element.\n this.keystrokes.listenTo(this.element);\n }\n /**\n\t * @inheritDoc\n\t */ destroy() {\n super.destroy();\n this.focusTracker.destroy();\n this.keystrokes.destroy();\n }\n /**\n\t * Focuses the fist {@link #_focusables} in the actions.\n\t */ focus() {\n this._focusCycler.focusFirst();\n }\n /**\n\t * Creates a button view.\n\t *\n\t * @param label The button label.\n\t * @param icon The button icon.\n\t * @param eventName An event name that the `ButtonView#execute` event will be delegated to.\n\t * @param additionalLabel An additional label outside the button.\n\t * @returns The button view instance.\n\t */ _createButton(label, icon, eventName, additionalLabel) {\n const button = new ButtonView(this.locale);\n button.set({\n label,\n icon,\n tooltip: true\n });\n button.delegate('execute').to(this, eventName);\n // Since button label `id` is bound to the `ariaLabelledBy` property\n // we need to modify this binding to include only the first ID token\n // as this button will be labeled by multiple labels.\n button.labelView.unbind('id');\n button.labelView.bind('id').to(button, 'ariaLabelledBy', (ariaLabelledBy)=>{\n return getFirstToken(ariaLabelledBy);\n });\n button.ariaLabelledBy = `${button.ariaLabelledBy} ${additionalLabel.id}`;\n return button;\n }\n /**\n\t * Creates a bookmark name preview label.\n\t *\n\t * @returns The label view instance.\n\t */ _createBookmarkPreviewView() {\n const label = new LabelView(this.locale);\n label.extendTemplate({\n attributes: {\n class: [\n 'ck',\n 'ck-bookmark-actions__preview'\n ]\n }\n });\n // Bind label text with the bookmark ID.\n label.bind('text').to(this, 'id');\n return label;\n }\n}\n/**\n * Returns the first token from space separated token list.\n */ function getFirstToken(tokenList) {\n return tokenList.split(' ')[0];\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */ /**\n * @module bookmark/utils\n */ /**\n * Returns `true` if the bookmark id is valid; otherwise, returns `false`.\n */ function isBookmarkIdValid(id) {\n if (!id || typeof id !== 'string') {\n return false;\n }\n if (/\\s/.test(id)) {\n return false;\n }\n return true;\n}\n\n/**\n * The insert bookmark command.\n *\n * The command is registered by {@link module:bookmark/bookmarkediting~BookmarkEditing} as `'insertBookmark'`.\n *\n * To insert a bookmark element at place where is the current collapsed selection or where is the beginning of document selection,\n * execute the command passing the bookmark id as a parameter:\n *\n * ```ts\n * editor.execute( 'insertBookmark', { bookmarkId: 'foo_bar' } );\n * ```\n */ class InsertBookmarkCommand extends Command {\n /**\n\t * @inheritDoc\n\t */ refresh() {\n const model = this.editor.model;\n const selection = model.document.selection;\n const position = this._getPositionToInsertBookmark(selection);\n this.isEnabled = !!position;\n }\n /**\n\t * Executes the command.\n\t *\n\t * @fires execute\n\t * @param options Command options.\n\t * @param options.bookmarkId The value of the `bookmarkId` attribute.\n\t */ execute(options) {\n if (!options) {\n return;\n }\n const { bookmarkId } = options;\n if (!isBookmarkIdValid(bookmarkId)) {\n /**\n\t\t\t * Insert bookmark command can be executed only with a valid name.\n\t\t\t *\n\t\t\t * A valid bookmark name must be a non-empty string and must not contain any spaces.\n\t\t\t *\n\t\t\t * @error insert-bookmark-command-executed-with-invalid-name\n\t\t\t */ logWarning('insert-bookmark-command-executed-with-invalid-name');\n return;\n }\n const editor = this.editor;\n const model = editor.model;\n const selection = model.document.selection;\n model.change((writer)=>{\n let position = this._getPositionToInsertBookmark(selection);\n const isBookmarkAllowed = model.schema.checkChild(position, 'bookmark');\n // If the position does not allow for `bookmark` but allows for a `paragraph`\n // then insert a `paragraph` then we will insert a `bookmark` inside.\n if (!isBookmarkAllowed) {\n const newPosition = editor.execute('insertParagraph', {\n position\n });\n if (!newPosition) {\n return;\n }\n position = newPosition;\n }\n const bookmarkElement = writer.createElement('bookmark', {\n ...Object.fromEntries(selection.getAttributes()),\n bookmarkId\n });\n model.insertObject(bookmarkElement, position, null, {\n setSelection: 'on'\n });\n });\n }\n /**\n\t * Returns the position where the bookmark can be inserted. And if it is not possible to insert a bookmark,\n\t * check if it is possible to insert a paragraph.\n\t */ _getPositionToInsertBookmark(selection) {\n const model = this.editor.model;\n const schema = model.schema;\n const firstRange = selection.getFirstRange();\n const startPosition = firstRange.start;\n // Return position if it is allowed to insert bookmark or if it is allowed to insert paragraph.\n if (isBookmarkAllowed(startPosition, schema)) {\n return startPosition;\n }\n for (const { previousPosition, item } of firstRange){\n // When the table cell is selected (from the outside) we look for the first paragraph-like element inside.\n if (item.is('element') && schema.checkChild(item, '$text') && isBookmarkAllowed(item, schema)) {\n return model.createPositionAt(item, 0);\n }\n if (isBookmarkAllowed(previousPosition, schema)) {\n return previousPosition;\n }\n }\n return null;\n }\n}\n/**\n * Verify if the given position allows for bookmark insertion. Verify if auto-paragraphing could help.\n */ function isBookmarkAllowed(position, schema) {\n if (schema.checkChild(position, 'bookmark')) {\n return true;\n }\n if (!schema.checkChild(position, 'paragraph')) {\n return false;\n }\n return schema.checkChild('paragraph', 'bookmark');\n}\n\n/**\n * The update bookmark command.\n *\n * The command is registered by {@link module:bookmark/bookmarkediting~BookmarkEditing} as `'updateBookmark'`.\n *\n * To update the `bookmarkId` of current selected bookmark element, execute the command passing the bookmark id as a parameter:\n *\n * ```ts\n * editor.execute( 'updateBookmark', { bookmarkId: 'newId' } );\n * ```\n */ class UpdateBookmarkCommand extends Command {\n /**\n\t * @inheritDoc\n\t */ refresh() {\n const model = this.editor.model;\n const selection = model.document.selection;\n const selectedBookmark = getSelectedBookmark(selection);\n this.isEnabled = !!selectedBookmark;\n this.value = selectedBookmark ? selectedBookmark.getAttribute('bookmarkId') : undefined;\n }\n /**\n\t * Executes the command.\n\t *\n\t * @fires execute\n\t * @param options Command options.\n\t * @param options.bookmarkId The new value of the `bookmarkId` attribute to set.\n\t */ execute(options) {\n if (!options) {\n return;\n }\n const { bookmarkId } = options;\n if (!isBookmarkIdValid(bookmarkId)) {\n /**\n\t\t\t * Update bookmark command can be executed only with a valid name.\n\t\t\t *\n\t\t\t * A valid bookmark name must be a non-empty string and must not contain any spaces.\n\t\t\t *\n\t\t\t * @error update-bookmark-command-executed-with-invalid-name\n\t\t\t */ logWarning('update-bookmark-command-executed-with-invalid-name');\n return;\n }\n const model = this.editor.model;\n const selection = model.document.selection;\n const selectedBookmark = getSelectedBookmark(selection);\n if (selectedBookmark) {\n model.change((writer)=>{\n writer.setAttribute('bookmarkId', bookmarkId, selectedBookmark);\n });\n }\n }\n}\n/**\n * Returns the selected `bookmark` element in the model, if any.\n */ function getSelectedBookmark(selection) {\n const element = selection.getSelectedElement();\n if (!!element && element.is('element', 'bookmark')) {\n return element;\n }\n return null;\n}\n\nconst bookmarkIcon$1 = icons.bookmarkInline;\n/**\n * The bookmark editing plugin.\n */ class BookmarkEditing extends Plugin {\n /**\n\t * A collection of bookmarks elements in the document.\n\t */ _bookmarkElements = new Map();\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'BookmarkEditing';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const { editor } = this;\n this._defineSchema();\n this._defineConverters();\n editor.commands.add('insertBookmark', new InsertBookmarkCommand(editor));\n editor.commands.add('updateBookmark', new UpdateBookmarkCommand(editor));\n this.listenTo(editor.model.document, 'change:data', ()=>{\n this._trackBookmarkElements();\n });\n }\n /**\n\t * Returns the model element for the given bookmark ID if it exists.\n\t */ getElementForBookmarkId(bookmarkId) {\n for (const [element, id] of this._bookmarkElements){\n if (id == bookmarkId) {\n return element;\n }\n }\n return null;\n }\n /**\n\t * Defines the schema for the bookmark feature.\n\t */ _defineSchema() {\n const schema = this.editor.model.schema;\n schema.register('bookmark', {\n inheritAllFrom: '$inlineObject',\n allowAttributes: 'bookmarkId',\n disallowAttributes: [\n 'linkHref',\n 'htmlA'\n ]\n });\n }\n /**\n\t * Defines the converters for the bookmark feature.\n\t */ _defineConverters() {\n const { editor } = this;\n const { conversion, t } = editor;\n editor.data.htmlProcessor.domConverter.registerInlineObjectMatcher((element)=>upcastMatcher(element));\n // Register an inline object matcher so that bookmarks <a>s are correctly recognized as inline elements in editing pipeline.\n // This prevents converting spaces around bookmarks to `&nbsp;`s.\n editor.editing.view.domConverter.registerInlineObjectMatcher((element)=>upcastMatcher(element, false));\n conversion.for('dataDowncast').elementToElement({\n model: {\n name: 'bookmark',\n attributes: [\n 'bookmarkId'\n ]\n },\n view: (modelElement, { writer })=>{\n const emptyElement = writer.createEmptyElement('a', {\n 'id': modelElement.getAttribute('bookmarkId')\n });\n // `getFillerOffset` is not needed to set here, because `emptyElement` has already covered it.\n return emptyElement;\n }\n });\n conversion.for('editingDowncast').elementToElement({\n model: {\n name: 'bookmark',\n attributes: [\n 'bookmarkId'\n ]\n },\n view: (modelElement, { writer })=>{\n const id = modelElement.getAttribute('bookmarkId');\n const containerElement = writer.createContainerElement('a', {\n id,\n class: 'ck-bookmark'\n }, [\n this._createBookmarkUIElement(writer)\n ]);\n this._bookmarkElements.set(modelElement, id);\n // `getFillerOffset` is not needed to set here, because `toWidget` has already covered it.\n const labelCreator = ()=>`${id} ${t('bookmark widget')}`;\n return toWidget(containerElement, writer, {\n label: labelCreator\n });\n }\n });\n conversion.for('upcast').add((dispatcher)=>dispatcher.on('element:a', dataViewModelAnchorInsertion(editor)));\n }\n /**\n\t * Creates a UI element for the `bookmark` representation in editing view.\n\t */ _createBookmarkUIElement(writer) {\n return writer.createUIElement('span', {\n class: 'ck-bookmark__icon'\n }, function(domDocument) {\n const domElement = this.toDomElement(domDocument);\n const icon = new IconView();\n icon.set({\n content: bookmarkIcon$1,\n isColorInherited: false\n });\n icon.render();\n domElement.appendChild(icon.element);\n return domElement;\n });\n }\n /**\n\t * Tracking the added or removed bookmark elements.\n\t */ _trackBookmarkElements() {\n this._bookmarkElements.forEach((id, element)=>{\n if (element.root.rootName === '$graveyard') {\n this._bookmarkElements.delete(element);\n }\n });\n }\n}\n/**\n * A helper function to match an `anchor` element which must contain `id` or `name` attribute but without `href` attribute,\n * also when `expectEmpty` is set to `true` but the element is not empty matcher should not match any element.\n *\n * @param element The element to be checked.\n * @param expectEmpty Default set to `true`, when set to `false` matcher expects that `anchor` is not empty;\n * in editing pipeline it's not empty because it contains the `UIElement`.\n */ function upcastMatcher(element, expectEmpty = true) {\n const isAnchorElement = element.name === 'a';\n if (!isAnchorElement) {\n return null;\n }\n if (expectEmpty && !element.isEmpty) {\n return null;\n }\n const hasIdAttribute = element.hasAttribute('id');\n const hasNameAttribute = element.hasAttribute('name');\n const hasHrefAttribute = element.hasAttribute('href');\n if (hasIdAttribute && !hasHrefAttribute) {\n return {\n name: true,\n attributes: [\n 'id'\n ]\n };\n }\n if (hasNameAttribute && !hasHrefAttribute) {\n return {\n name: true,\n attributes: [\n 'name'\n ]\n };\n }\n return null;\n}\n/**\n * A view-to-model converter that handles converting pointed or wrapped anchors with `id` and/or `name` attributes.\n *\n * @returns Returns a conversion callback.\n */ function dataViewModelAnchorInsertion(editor) {\n return (evt, data, conversionApi)=>{\n const viewItem = data.viewItem;\n const match = upcastMatcher(viewItem, false);\n if (!match || !conversionApi.consumable.test(viewItem, match)) {\n return;\n }\n const enableNonEmptyAnchorConversion = isEnabledNonEmptyAnchorConversion(editor);\n if (!enableNonEmptyAnchorConversion && !viewItem.isEmpty) {\n return;\n }\n const modelWriter = conversionApi.writer;\n const anchorId = viewItem.getAttribute('id');\n const anchorName = viewItem.getAttribute('name');\n const bookmarkId = anchorId || anchorName;\n const bookmark = modelWriter.createElement('bookmark', {\n bookmarkId\n });\n if (!conversionApi.safeInsert(bookmark, data.modelCursor)) {\n return;\n }\n conversionApi.consumable.consume(viewItem, match);\n if (anchorId === anchorName) {\n conversionApi.consumable.consume(viewItem, {\n attributes: [\n 'name'\n ]\n });\n }\n conversionApi.updateConversionResult(bookmark, data);\n // Convert children uses the result of `bookmark` insertion to convert the `anchor` content\n // after the bookmark element (not inside it).\n const { modelCursor, modelRange } = conversionApi.convertChildren(viewItem, data.modelCursor);\n data.modelCursor = modelCursor;\n data.modelRange = modelWriter.createRange(data.modelRange.start, modelRange.end);\n };\n}\n/**\n * Normalize the bookmark configuration option `enableNonEmptyAnchorConversion`.\n */ function isEnabledNonEmptyAnchorConversion(editor) {\n const enableNonEmptyAnchorConversion = editor.config.get('bookmark.enableNonEmptyAnchorConversion');\n // When not defined, option `enableNonEmptyAnchorConversion` by default is set to `true`.\n return enableNonEmptyAnchorConversion !== undefined ? enableNonEmptyAnchorConversion : true;\n}\n\nconst bookmarkIcon = icons.bookmark;\nconst VISUAL_SELECTION_MARKER_NAME = 'bookmark-ui';\n/**\n * The UI plugin of the bookmark feature.\n *\n * It registers the `'bookmark'` UI button in the editor's {@link module:ui/componentfactory~ComponentFactory component factory}\n * which inserts the `bookmark` element upon selection.\n */ class BookmarkUI extends Plugin {\n /**\n\t * The actions view displayed inside of the balloon.\n\t */ actionsView = null;\n /**\n\t * The form view displayed inside the balloon.\n\t */ formView = null;\n /**\n\t * The contextual balloon plugin instance.\n\t */ _balloon;\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n BookmarkEditing,\n ContextualBalloon\n ];\n }\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'BookmarkUI';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const editor = this.editor;\n editor.editing.view.addObserver(ClickObserver);\n this._balloon = editor.plugins.get(ContextualBalloon);\n // Create toolbar buttons.\n this._createToolbarBookmarkButton();\n this._enableBalloonActivators();\n // Renders a fake visual selection marker on an expanded selection.\n editor.conversion.for('editingDowncast').markerToHighlight({\n model: VISUAL_SELECTION_MARKER_NAME,\n view: {\n classes: [\n 'ck-fake-bookmark-selection'\n ]\n }\n });\n // Renders a fake visual selection marker on a collapsed selection.\n editor.conversion.for('editingDowncast').markerToElement({\n model: VISUAL_SELECTION_MARKER_NAME,\n view: (data, { writer })=>{\n if (!data.markerRange.isCollapsed) {\n return null;\n }\n const markerElement = writer.createUIElement('span');\n writer.addClass([\n 'ck-fake-bookmark-selection',\n 'ck-fake-bookmark-selection_collapsed'\n ], markerElement);\n return markerElement;\n }\n });\n }\n /**\n\t * @inheritDoc\n\t */ destroy() {\n super.destroy();\n // Destroy created UI components as they are not automatically destroyed (see ckeditor5#1341).\n if (this.formView) {\n this.formView.destroy();\n }\n if (this.actionsView) {\n this.actionsView.destroy();\n }\n }\n /**\n\t * Creates views.\n\t */ _createViews() {\n this.actionsView = this._createActionsView();\n this.formView = this._createFormView();\n // Attach lifecycle actions to the the balloon.\n this._enableUserBalloonInteractions();\n }\n /**\n\t * Creates the {@link module:bookmark/ui/bookmarkactionsview~BookmarkActionsView} instance.\n\t */ _createActionsView() {\n const editor = this.editor;\n const actionsView = new BookmarkActionsView(editor.locale);\n const updateBookmarkCommand = editor.commands.get('updateBookmark');\n const deleteCommand = editor.commands.get('delete');\n actionsView.bind('id').to(updateBookmarkCommand, 'value');\n actionsView.editButtonView.bind('isEnabled').to(updateBookmarkCommand);\n actionsView.removeButtonView.bind('isEnabled').to(deleteCommand);\n // Display edit form view after clicking on the \"Edit\" button.\n this.listenTo(actionsView, 'edit', ()=>{\n this._addFormView();\n });\n // Execute remove command after clicking on the \"Remove\" button.\n this.listenTo(actionsView, 'remove', ()=>{\n this._hideUI();\n editor.execute('delete');\n });\n // Close the panel on esc key press when the **actions have focus**.\n actionsView.keystrokes.set('Esc', (data, cancel)=>{\n this._hideUI();\n cancel();\n });\n return actionsView;\n }\n /**\n\t * Creates the {@link module:bookmark/ui/bookmarkformview~BookmarkFormView} instance.\n\t */ _createFormView() {\n const editor = this.editor;\n const locale = editor.locale;\n const insertBookmarkCommand = editor.commands.get('insertBookmark');\n const updateBookmarkCommand = editor.commands.get('updateBookmark');\n const commands = [\n insertBookmarkCommand,\n updateBookmarkCommand\n ];\n const formView = new (CssTransitionDisablerMixin(BookmarkFormView))(locale, getFormValidators(editor));\n formView.idInputView.fieldView.bind('value').to(updateBookmarkCommand, 'value');\n // Form elements should be read-only when corresponding commands are disabled.\n formView.idInputView.bind('isEnabled').toMany(commands, 'isEnabled', (...areEnabled)=>areEnabled.some((isEnabled)=>isEnabled));\n // Disable the \"save\" button if the command is disabled.\n formView.buttonView.bind('isEnabled').toMany(commands, 'isEnabled', (...areEnabled)=>areEnabled.some((isEnabled)=>isEnabled));\n // Execute link command after clicking the \"Save\" button.\n this.listenTo(formView, 'submit', ()=>{\n if (formView.isValid()) {\n const value = formView.id;\n if (this._getSelectedBookmarkElement()) {\n editor.execute('updateBookmark', {\n bookmarkId: value\n });\n } else {\n editor.execute('insertBookmark', {\n bookmarkId: value\n });\n }\n this._closeFormView();\n }\n });\n // Update balloon position when form error changes.\n this.listenTo(formView.idInputView, 'change:errorText', ()=>{\n editor.ui.update();\n });\n // Close the panel on esc key press when the **form has focus**.\n formView.keystrokes.set('Esc', (data, cancel)=>{\n this._closeFormView();\n cancel();\n });\n return formView;\n }\n /**\n\t * Creates a toolbar Bookmark button. Clicking this button will show\n\t * a {@link #_balloon} attached to the selection.\n\t */ _createToolbarBookmarkButton() {\n const editor = this.editor;\n editor.ui.componentFactory.add('bookmark', ()=>{\n const buttonView = this._createButton(ButtonView);\n buttonView.set({\n tooltip: true\n });\n return buttonView;\n });\n editor.ui.componentFactory.add('menuBar:bookmark', ()=>{\n return this._createButton(MenuBarMenuListItemButtonView);\n });\n }\n /**\n\t * Creates a button for `bookmark` command to use either in toolbar or in menu bar.\n\t */ _createButton(ButtonClass) {\n const editor = this.editor;\n const locale = editor.locale;\n const view = new ButtonClass(locale);\n const insertCommand = editor.commands.get('insertBookmark');\n const updateCommand = editor.commands.get('updateBookmark');\n const t = locale.t;\n view.set({\n label: t('Bookmark'),\n icon: bookmarkIcon\n });\n // Execute the command.\n this.listenTo(view, 'execute', ()=>this._showUI(true));\n view.bind('isEnabled').toMany([\n insertCommand,\n updateCommand\n ], 'isEnabled', (...areEnabled)=>areEnabled.some((isEnabled)=>isEnabled));\n view.bind('isOn').to(updateCommand, 'value', (value)=>!!value);\n return view;\n }\n /**\n\t * Attaches actions that control whether the balloon panel containing the\n\t * {@link #formView} should be displayed.\n\t */ _enableBalloonActivators() {\n const editor = this.editor;\n const viewDocument = editor.editing.view.document;\n // Handle click on view document and show panel when selection is placed inside the bookmark element.\n // Keep panel open until selection will be inside the same bookmark element.\n this.listenTo(viewDocument, 'click', ()=>{\n const bookmark = this._getSelectedBookmarkElement();\n if (bookmark) {\n // Then show panel but keep focus inside editor editable.\n this._showUI();\n }\n });\n }\n /**\n\t * Attaches actions that control whether the balloon panel containing the\n\t * {@link #formView} is visible or not.\n\t */ _enableUserBalloonInteractions() {\n // Focus the form if the balloon is visible and the Tab key has been pressed.\n this.editor.keystrokes.set('Tab', (data, cancel)=>{\n if (this._areActionsVisible && !this.actionsView.focusTracker.isFocused) {\n this.actionsView.focus();\n cancel();\n }\n }, {\n // Use the high priority because the bookmark UI navigation is more important\n // than other feature's actions, e.g. list indentation.\n priority: 'high'\n });\n // Close the panel on the Esc key press when the editable has focus and the balloon is visible.\n this.editor.keystrokes.set('Esc', (data, cancel)=>{\n if (this._isUIVisible) {\n this._hideUI();\n cancel();\n }\n });\n // Close on click outside of balloon panel element.\n clickOutsideHandler({\n emitter: this.formView,\n activator: ()=>this._isUIInPanel,\n contextElements: ()=>[\n this._balloon.view.element\n ],\n callback: ()=>this._hideUI()\n });\n }\n /**\n\t * Updates the button label. If bookmark is selected label is set to 'Update' otherwise\n\t * it is 'Insert'.\n\t */ _updateFormButtonLabel(isBookmarkSelected) {\n const t = this.editor.locale.t;\n this.formView.buttonView.label = isBookmarkSelected ? t('Update') : t('Insert');\n }\n /**\n\t * Adds the {@link #actionsView} to the {@link #_balloon}.\n\t *\n\t * @internal\n\t */ _addActionsView() {\n if (!this.actionsView) {\n this._createViews();\n }\n if (this._areActionsInPanel) {\n return;\n }\n this._balloon.add({\n view: this.actionsView,\n position: this._getBalloonPositionData()\n });\n }\n /**\n\t * Adds the {@link #formView} to the {@link #_balloon}.\n\t */ _addFormView() {\n if (!this.formView) {\n this._createViews();\n }\n if (this._isFormInPanel) {\n return;\n }\n const editor = this.editor;\n const updateBookmarkCommand = editor.commands.get('updateBookmark');\n this.formView.disableCssTransitions();\n this.formView.resetFormStatus();\n this._balloon.add({\n view: this.formView,\n position: this._getBalloonPositionData()\n });\n this.formView.idInputView.fieldView.value = updateBookmarkCommand.value || '';\n // Select input when form view is currently visible.\n if (this._balloon.visibleView === this.formView) {\n this.formView.idInputView.fieldView.select();\n }\n this.formView.enableCssTransitions();\n }\n /**\n\t * Closes the form view. Decides whether the balloon should be hidden completely.\n\t */ _closeFormView() {\n const updateBookmarkCommand = this.editor.commands.get('updateBookmark');\n if (updateBookmarkCommand.value !== undefined) {\n this._removeFormView();\n } else {\n this._hideUI();\n }\n }\n /**\n\t * Removes the {@link #formView} from the {@link #_balloon}.\n\t */ _removeFormView() {\n if (this._isFormInPanel) {\n // Blur the input element before removing it from DOM to prevent issues in some browsers.\n // See https://github.com/ckeditor/ckeditor5/issues/1501.\n this.formView.buttonView.focus();\n // Reset the ID field to update the state of the submit button.\n this.formView.idInputView.fieldView.reset();\n this._balloon.remove(this.formView);\n // Because the form has an input which has focus, the focus must be brought back\n // to the editor. Otherwise, it would be lost.\n this.editor.editing.view.focus();\n this._hideFakeVisualSelection();\n }\n }\n /**\n\t * Shows the correct UI type. It is either {@link #formView} or {@link #actionsView}.\n\t */ _showUI(forceVisible = false) {\n if (!this.formView) {\n this._createViews();\n }\n // When there's no bookmark under the selection, go straight to the editing UI.\n if (!this._getSelectedBookmarkElement()) {\n // Show visual selection on a text without a bookmark when the contextual balloon is displayed.\n this._showFakeVisualSelection();\n this._addActionsView();\n // Be sure panel with bookmark is visible.\n if (forceVisible) {\n this._balloon.showStack('main');\n }\n this._addFormView();\n } else {\n // Go to the editing UI if actions are already visible.\n if (this._areActionsVisible) {\n this._addFormView();\n } else {\n this._addActionsView();\n }\n // Be sure panel with bookmark is visible.\n if (forceVisible) {\n this._balloon.showStack('main');\n }\n }\n // Begin responding to ui#update once the UI is added.\n this._startUpdatingUI();\n }\n /**\n\t * Removes the {@link #formView} from the {@link #_balloon}.\n\t *\n\t * See {@link #_addFormView}, {@link #_addActionsView}.\n\t */ _hideUI() {\n if (!this._isUIInPanel) {\n return;\n }\n const editor = this.editor;\n this.stopListening(editor.ui, 'update');\n this.stopListening(this._balloon, 'change:visibleView');\n // Make sure the focus always gets back to the editable _before_ removing the focused form view.\n // Doing otherwise causes issues in some browsers. See https://github.com/ckeditor/ckeditor5-link/issues/193.\n editor.editing.view.focus();\n // Remove form first because it's on top of the stack.\n this._removeFormView();\n // Then remove the actions view because it's beneath the form.\n this._balloon.remove(this.actionsView);\n this._hideFakeVisualSelection();\n }\n /**\n\t * Makes the UI react to the {@link module:ui/editorui/editorui~EditorUI#event:update} event to\n\t * reposition itself when the editor UI should be refreshed.\n\t *\n\t * See: {@link #_hideUI} to learn when the UI stops reacting to the `update` event.\n\t */ _startUpdatingUI() {\n const editor = this.editor;\n const viewDocument = editor.editing.view.document;\n let prevSelectedBookmark = this._getSelectedBookmarkElement();\n let prevSelectionParent = getSelectionParent();\n this._updateFormButtonLabel(!!prevSelectedBookmark);\n const update = ()=>{\n const selectedBookmark = this._getSelectedBookmarkElement();\n const selectionParent = getSelectionParent();\n // Hide the panel if:\n //\n // * the selection went out of the EXISTING bookmark element. E.g. user moved the caret out\n // of the bookmark,\n // * the selection went to a different parent when creating a NEW bookmark. E.g. someone\n // else modified the document.\n // * the selection has expanded (e.g. displaying bookmark actions then pressing SHIFT+Right arrow).\n //\n if (prevSelectedBookmark && !selectedBookmark || !prevSelectedBookmark && selectionParent !== prevSelectionParent) {\n this._hideUI();\n } else if (this._isUIVisible) {\n // If still in a bookmark element, simply update the position of the balloon.\n // If there was no bookmark (e.g. inserting one), the balloon must be moved\n // to the new position in the editing view (a new native DOM range).\n this._balloon.updatePosition(this._getBalloonPositionData());\n }\n this._updateFormButtonLabel(!!prevSelectedBookmark);\n prevSelectedBookmark = selectedBookmark;\n prevSelectionParent = selectionParent;\n };\n function getSelectionParent() {\n return viewDocument.selection.focus.getAncestors().reverse().find((node)=>node.is('element'));\n }\n this.listenTo(editor.ui, 'update', update);\n this.listenTo(this._balloon, 'change:visibleView', update);\n }\n /**\n\t * Returns `true` when {@link #formView} is in the {@link #_balloon}.\n\t */ get _isFormInPanel() {\n return !!this.formView && this._balloon.hasView(this.formView);\n }\n /**\n\t * Returns `true` when {@link #actionsView} is in the {@link #_balloon}.\n\t */ get _areActionsInPanel() {\n return !!this.actionsView && this._balloon.hasView(this.actionsView);\n }\n /**\n\t * Returns `true` when {@link #actionsView} is in the {@link #_balloon} and it is\n\t * currently visible.\n\t */ get _areActionsVisible() {\n return !!this.actionsView && this._balloon.visibleView === this.actionsView;\n }\n /**\n\t * Returns `true` when {@link #actionsView} or {@link #formView} is in the {@link #_balloon}.\n\t */ get _isUIInPanel() {\n return this._isFormInPanel || this._areActionsInPanel;\n }\n /**\n\t * Returns `true` when {@link #actionsView} or {@link #formView} is in the {@link #_balloon} and it is\n\t * currently visible.\n\t */ get _isUIVisible() {\n const visibleView = this._balloon.visibleView;\n return !!this.formView && visibleView == this.formView || this._areActionsVisible;\n }\n /**\n\t * Returns positioning options for the {@link #_balloon}. They control the way the balloon is attached\n\t * to the target element or selection.\n\t */ _getBalloonPositionData() {\n const view = this.editor.editing.view;\n const model = this.editor.model;\n let target;\n const bookmarkElement = this._getSelectedBookmarkElement();\n if (model.markers.has(VISUAL_SELECTION_MARKER_NAME)) {\n // There are cases when we highlight selection using a marker (#7705, #4721).\n const markerViewElements = Array.from(this.editor.editing.mapper.markerNameToElements(VISUAL_SELECTION_MARKER_NAME));\n const newRange = view.createRange(view.createPositionBefore(markerViewElements[0]), view.createPositionAfter(markerViewElements[markerViewElements.length - 1]));\n target = view.domConverter.viewRangeToDom(newRange);\n } else if (bookmarkElement) {\n target = ()=>{\n const mapper = this.editor.editing.mapper;\n const domConverter = view.domConverter;\n const viewElement = mapper.toViewElement(bookmarkElement);\n return domConverter.mapViewToDom(viewElement);\n };\n }\n return target && {\n target\n };\n }\n /**\n\t * Returns the bookmark {@link module:engine/view/attributeelement~AttributeElement} under\n\t * the {@link module:engine/view/document~Document editing view's} selection or `null`\n\t * if there is none.\n\t */ _getSelectedBookmarkElement() {\n const selection = this.editor.model.document.selection;\n const element = selection.getSelectedElement();\n if (element && element.is('element', 'bookmark')) {\n return element;\n }\n return null;\n }\n /**\n\t * Displays a fake visual selection when the contextual balloon is displayed.\n\t *\n\t * This adds a 'bookmark-ui' marker into the document that is rendered as a highlight on selected text fragment.\n\t */ _showFakeVisualSelection() {\n const model = this.editor.model;\n model.change((writer)=>{\n const range = model.document.selection.getFirstRange();\n if (model.markers.has(VISUAL_SELECTION_MARKER_NAME)) {\n writer.updateMarker(VISUAL_SELECTION_MARKER_NAME, {\n range\n });\n } else {\n if (range.start.isAtEnd) {\n const startPosition = range.start.getLastMatchingPosition(({ item })=>!model.schema.isContent(item), {\n boundaries: range\n });\n writer.addMarker(VISUAL_SELECTION_MARKER_NAME, {\n usingOperation: false,\n affectsData: false,\n range: writer.createRange(startPosition, range.end)\n });\n } else {\n writer.addMarker(VISUAL_SELECTION_MARKER_NAME, {\n usingOperation: false,\n affectsData: false,\n range\n });\n }\n }\n });\n }\n /**\n\t * Hides the fake visual selection created in {@link #_showFakeVisualSelection}.\n\t */ _hideFakeVisualSelection() {\n const model = this.editor.model;\n if (model.markers.has(VISUAL_SELECTION_MARKER_NAME)) {\n model.change((writer)=>{\n writer.removeMarker(VISUAL_SELECTION_MARKER_NAME);\n });\n }\n }\n}\n/**\n * Returns bookmark form validation callbacks.\n */ function getFormValidators(editor) {\n const { t } = editor;\n const bookmarkEditing = editor.plugins.get(BookmarkEditing);\n return [\n (form)=>{\n if (!form.id) {\n return t('Bookmark must not be empty.');\n }\n },\n (form)=>{\n if (form.id && /\\s/.test(form.id)) {\n return t('Bookmark name cannot contain space characters.');\n }\n },\n (form)=>{\n const selectedElement = editor.model.document.selection.getSelectedElement();\n const existingBookmarkForId = bookmarkEditing.getElementForBookmarkId(form.id);\n // Accept change of bookmark ID if no real change is happening (edit -> submit, without changes).\n if (selectedElement === existingBookmarkForId) {\n return;\n }\n if (existingBookmarkForId) {\n return t('Bookmark name already exists.');\n }\n }\n ];\n}\n\n/**\n * The bookmark feature.\n *\n * For a detailed overview, check the {@glink features/bookmarks Bookmarks} feature guide.\n */ class Bookmark extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'Bookmark';\n }\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n BookmarkEditing,\n BookmarkUI,\n Widget\n ];\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n}\n\nexport { Bookmark, BookmarkEditing, BookmarkUI, InsertBookmarkCommand, UpdateBookmarkCommand };\n//# sourceMappingURL=index.js.map\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module bookmark/ui/bookmarkformview\n */\n\nimport {\n\tButtonView,\n\tFocusCycler,\n\tLabeledFieldView,\n\tView,\n\tViewCollection,\n\tcreateLabeledInputText,\n\tsubmitHandler,\n\ttype InputTextView,\n\ttype FocusableView,\n\tFormHeaderView\n} from 'ckeditor5/src/ui.js';\nimport {\n\tFocusTracker,\n\tKeystrokeHandler,\n\ttype Locale\n} from 'ckeditor5/src/utils.js';\n\n// See: #8833.\n// eslint-disable-next-line ckeditor5-rules/ckeditor-imports\nimport '@ckeditor/ckeditor5-ui/theme/components/responsive-form/responsiveform.css';\nimport '../../theme/bookmarkform.css';\n\n/**\n * The bookmark form view controller class.\n *\n * See {@link module:bookmark/ui/bookmarkformview~BookmarkFormView}.\n */\nexport default class BookmarkFormView extends View {\n\t/**\n\t * Tracks information about DOM focus in the form.\n\t */\n\tpublic readonly focusTracker = new FocusTracker();\n\n\t/**\n\t * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n\t */\n\tpublic readonly keystrokes = new KeystrokeHandler();\n\n\t/**\n\t * The ID input view.\n\t */\n\tpublic idInputView: LabeledFieldView<InputTextView>;\n\n\t/**\n\t * The Submit button view.\n\t */\n\tpublic buttonView: ButtonView;\n\n\t/**\n\t * A collection of form child views in the form.\n\t */\n\tpublic readonly children: ViewCollection;\n\n\t/**\n\t * An array of form validators used by {@link #isValid}.\n\t */\n\tprivate readonly _validators: Array<BookmarkFormValidatorCallback>;\n\n\t/**\n\t * A collection of views that can be focused in the form.\n\t */\n\tprivate readonly _focusables = new ViewCollection<FocusableView>();\n\n\t/**\n\t * Helps cycling over {@link #_focusables} in the form.\n\t */\n\tprivate readonly _focusCycler: FocusCycler;\n\n\t/**\n\t * Creates an instance of the {@link module:bookmark/ui/bookmarkformview~BookmarkFormView} class.\n\t *\n\t * Also see {@link #render}.\n\t *\n\t * @param locale The localization services instance.\n\t * @param validators Form validators used by {@link #isValid}.\n\t */\n\tconstructor( locale: Locale, validators: Array<BookmarkFormValidatorCallback> ) {\n\t\tsuper( locale );\n\n\t\tconst t = locale.t;\n\n\t\tthis._validators = validators;\n\n\t\tthis.idInputView = this._createIdInput();\n\n\t\tthis.buttonView = this._createButton( t( 'Insert' ), 'ck-button-action ck-button-bold' );\n\t\tthis.buttonView.type = 'submit';\n\n\t\tthis.children = this._createViewChildren();\n\n\t\tthis._focusCycler = new FocusCycler( {\n\t\t\tfocusables: this._focusables,\n\t\t\tfocusTracker: this.focusTracker,\n\t\t\tkeystrokeHandler: this.keystrokes,\n\t\t\tactions: {\n\t\t\t\t// Navigate form fields backwards using the Shift + Tab keystroke.\n\t\t\t\tfocusPrevious: 'shift + tab',\n\n\t\t\t\t// Navigate form fields forwards using the Tab key.\n\t\t\t\tfocusNext: 'tab'\n\t\t\t}\n\t\t} );\n\n\t\tconst classList = [ 'ck', 'ck-bookmark-view' ];\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'form',\n\n\t\t\tattributes: {\n\t\t\t\tclass: classList,\n\n\t\t\t\t// https://github.com/ckeditor/ckeditor5-link/issues/90\n\t\t\t\ttabindex: '-1'\n\t\t\t},\n\n\t\t\tchildren: this.children\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override render(): void {\n\t\tsuper.render();\n\n\t\tsubmitHandler( {\n\t\t\tview: this\n\t\t} );\n\n\t\tconst childViews = [\n\t\t\tthis.idInputView,\n\t\t\tthis.buttonView\n\t\t];\n\n\t\tchildViews.forEach( v => {\n\t\t\t// Register the view as focusable.\n\t\t\tthis._focusables.add( v );\n\n\t\t\t// Register the view in the focus tracker.\n\t\t\tthis.focusTracker.add( v.element! );\n\t\t} );\n\n\t\t// Start listening for the keystrokes coming from #element.\n\t\tthis.keystrokes.listenTo( this.element! );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tsuper.destroy();\n\n\t\tthis.focusTracker.destroy();\n\t\tthis.keystrokes.destroy();\n\t}\n\n\t/**\n\t * Focuses the fist {@link #_focusables} in the form.\n\t */\n\tpublic focus(): void {\n\t\tthis._focusCycler.focusFirst();\n\t}\n\n\t/**\n\t * Validates the form and returns `false` when some fields are invalid.\n\t */\n\tpublic isValid(): boolean {\n\t\tthis.resetFormStatus();\n\n\t\tfor ( const validator of this._validators ) {\n\t\t\tconst errorText = validator( this );\n\n\t\t\t// One error per field is enough.\n\t\t\tif ( errorText ) {\n\t\t\t\t// Apply updated error.\n\t\t\t\tthis.idInputView.errorText = errorText;\n\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Cleans up the supplementary error and information text of the {@link #idInputView}\n\t * bringing them back to the state when the form has been displayed for the first time.\n\t *\n\t * See {@link #isValid}.\n\t */\n\tpublic resetFormStatus(): void {\n\t\tthis.idInputView.errorText = null;\n\t}\n\n\t/**\n\t * Creates header and form view.\n\t */\n\tprivate _createViewChildren() {\n\t\tconst children = this.createCollection();\n\t\tconst t = this.t!;\n\n\t\tchildren.add( new FormHeaderView( this.locale, { label: t( 'Bookmark' ) } ) );\n\t\tchildren.add( this._createFormContentView() );\n\n\t\treturn children;\n\t}\n\n\t/**\n\t * Creates form content view with input and button.\n\t */\n\tprivate _createFormContentView() {\n\t\tconst view = new View( this.locale );\n\n\t\tconst children = this.createCollection();\n\t\tconst classList = [ 'ck', 'ck-bookmark-form', 'ck-responsive-form' ];\n\n\t\tchildren.add( this.idInputView );\n\t\tchildren.add( this.buttonView );\n\n\t\tview.setTemplate( {\n\t\t\ttag: 'div',\n\n\t\t\tattributes: {\n\t\t\t\tclass: classList\n\t\t\t},\n\n\t\t\tchildren\n\t\t} );\n\n\t\treturn view;\n\t}\n\n\t/**\n\t * Creates a labeled input view.\n\t *\n\t * @returns Labeled field view instance.\n\t */\n\tprivate _createIdInput(): LabeledFieldView<InputTextView> {\n\t\tconst t = this.locale!.t;\n\t\tconst labeledInput = new LabeledFieldView( this.locale, createLabeledInputText );\n\n\t\tlabeledInput.label = t( 'Bookmark name' );\n\t\tlabeledInput.infoText = t( 'Enter the bookmark name without spaces.' );\n\n\t\treturn labeledInput;\n\t}\n\n\t/**\n\t * Creates a button view.\n\t *\n\t * @param label The button label.\n\t * @param className The additional button CSS class name.\n\t * @returns The button view instance.\n\t */\n\tprivate _createButton( label: string, className: string ): ButtonView {\n\t\tconst button = new ButtonView( this.locale );\n\n\t\tbutton.set( {\n\t\t\tlabel,\n\t\t\twithText: true\n\t\t} );\n\n\t\tbutton.extendTemplate( {\n\t\t\tattributes: {\n\t\t\t\tclass: className\n\t\t\t}\n\t\t} );\n\n\t\treturn button;\n\t}\n\n\t/**\n\t * The native DOM `value` of the {@link #idInputView} element.\n\t *\n\t * **Note**: Do not confuse it with the {@link module:ui/inputtext/inputtextview~InputTextView#value}\n\t * which works one way only and may not represent the actual state of the component in the DOM.\n\t */\n\tpublic get id(): string | null {\n\t\tconst { element } = this.idInputView.fieldView;\n\n\t\tif ( !element ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn element.value.trim();\n\t}\n}\n\n/**\n * Callback used by {@link ~BookmarkFormView} to check if passed form value is valid.\n *\n * If `undefined` is returned, it is assumed that the form value is correct and there is no error.\n * If string is returned, it is assumed that the form value is incorrect and the returned string is displayed in the error label\n */\nexport type BookmarkFormValidatorCallback = ( form: BookmarkFormView ) => string | undefined;\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module bookmark/ui/bookmarkactionsview\n */\n\nimport {\n\tLabelView,\n\tButtonView,\n\tView,\n\tViewCollection,\n\tFocusCycler,\n\ttype FocusableView\n} from 'ckeditor5/src/ui.js';\n\nimport {\n\tFocusTracker,\n\tKeystrokeHandler,\n\ttype LocaleTranslate,\n\ttype Locale\n} from 'ckeditor5/src/utils.js';\n\nimport { icons } from 'ckeditor5/src/core.js';\n\n// eslint-disable-next-line ckeditor5-rules/ckeditor-imports\nimport '@ckeditor/ckeditor5-ui/theme/components/responsive-form/responsiveform.css';\nimport '../../theme/bookmarkactions.css';\n\n/**\n * The bookmark actions view class. This view displays the bookmark preview, allows\n * removing or editing the bookmark.\n */\nexport default class BookmarkActionsView extends View {\n\t/**\n\t * Tracks information about DOM focus in the actions.\n\t */\n\tpublic readonly focusTracker = new FocusTracker();\n\n\t/**\n\t * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n\t */\n\tpublic readonly keystrokes = new KeystrokeHandler();\n\n\t/**\n\t * The bookmark preview view.\n\t */\n\tpublic bookmarkPreviewView: LabelView;\n\n\t/**\n\t * The remove button view.\n\t */\n\tpublic removeButtonView: ButtonView;\n\n\t/**\n\t * The edit bookmark button view.\n\t */\n\tpublic editButtonView: ButtonView;\n\n\t/**\n\t * The id preview view.\n\t *\n\t * @observable\n\t */\n\tdeclare public id: string | undefined;\n\n\t/**\n\t * A collection of views that can be focused in the view.\n\t */\n\tprivate readonly _focusables = new ViewCollection<FocusableView>();\n\n\t/**\n\t * Helps cycling over {@link #_focusables} in the view.\n\t */\n\tprivate readonly _focusCycler: FocusCycler;\n\n\tdeclare public t: LocaleTranslate;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( locale: Locale ) {\n\t\tsuper( locale );\n\n\t\tconst t = locale.t;\n\n\t\tthis.bookmarkPreviewView = this._createBookmarkPreviewView();\n\t\tthis.removeButtonView = this._createButton( t( 'Remove bookmark' ), icons.remove, 'remove', this.bookmarkPreviewView );\n\t\tthis.editButtonView = this._createButton( t( 'Edit bookmark' ), icons.pencil, 'edit', this.bookmarkPreviewView );\n\n\t\tthis.set( 'id', undefined );\n\n\t\tthis._focusCycler = new FocusCycler( {\n\t\t\tfocusables: this._focusables,\n\t\t\tfocusTracker: this.focusTracker,\n\t\t\tkeystrokeHandler: this.keystrokes,\n\t\t\tactions: {\n\t\t\t\t// Navigate fields backwards using the Shift + Tab keystroke.\n\t\t\t\tfocusPrevious: 'shift + tab',\n\n\t\t\t\t// Navigate fields forwards using the Tab key.\n\t\t\t\tfocusNext: 'tab'\n\t\t\t}\n\t\t} );\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-bookmark-actions',\n\t\t\t\t\t'ck-responsive-form'\n\t\t\t\t],\n\n\t\t\t\t// https://github.com/ckeditor/ckeditor5-link/issues/90\n\t\t\t\ttabindex: '-1'\n\t\t\t},\n\n\t\t\tchildren: [\n\t\t\t\tthis.bookmarkPreviewView,\n\t\t\t\tthis.editButtonView,\n\t\t\t\tthis.removeButtonView\n\t\t\t]\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override render(): void {\n\t\tsuper.render();\n\n\t\tconst childViews = [\n\t\t\tthis.editButtonView,\n\t\t\tthis.removeButtonView\n\t\t];\n\n\t\tchildViews.forEach( v => {\n\t\t\t// Register the view as focusable.\n\t\t\tthis._focusables.add( v );\n\n\t\t\t// Register the view in the focus tracker.\n\t\t\tthis.focusTracker.add( v.element! );\n\t\t} );\n\n\t\t// Start listening for the keystrokes coming from #element.\n\t\tthis.keystrokes.listenTo( this.element! );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tsuper.destroy();\n\n\t\tthis.focusTracker.destroy();\n\t\tthis.keystrokes.destroy();\n\t}\n\n\t/**\n\t * Focuses the fist {@link #_focusables} in the actions.\n\t */\n\tpublic focus(): void {\n\t\tthis._focusCycler.focusFirst();\n\t}\n\n\t/**\n\t * Creates a button view.\n\t *\n\t * @param label The button label.\n\t * @param icon The button icon.\n\t * @param eventName An event name that the `ButtonView#execute` event will be delegated to.\n\t * @param additionalLabel An additional label outside the button.\n\t * @returns The button view instance.\n\t */\n\tprivate _createButton( label: string, icon: string, eventName: string, additionalLabel: LabelView ): ButtonView {\n\t\tconst button = new ButtonView( this.locale );\n\n\t\tbutton.set( {\n\t\t\tlabel,\n\t\t\ticon,\n\t\t\ttooltip: true\n\t\t} );\n\n\t\tbutton.delegate( 'execute' ).to( this, eventName );\n\n\t\t// Since button label `id` is bound to the `ariaLabelledBy` property\n\t\t// we need to modify this binding to include only the first ID token\n\t\t// as this button will be labeled by multiple labels.\n\t\tbutton.labelView.unbind( 'id' );\n\n\t\tbutton.labelView.bind( 'id' ).to( button, 'ariaLabelledBy', ariaLabelledBy => {\n\t\t\treturn getFirstToken( ariaLabelledBy! );\n\t\t} );\n\n\t\tbutton.ariaLabelledBy = `${ button.ariaLabelledBy } ${ additionalLabel.id }`;\n\n\t\treturn button;\n\t}\n\n\t/**\n\t * Creates a bookmark name preview label.\n\t *\n\t * @returns The label view instance.\n\t */\n\tprivate _createBookmarkPreviewView(): LabelView {\n\t\tconst label = new LabelView( this.locale );\n\n\t\tlabel.extendTemplate( {\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-bookmark-actions__preview'\n\t\t\t\t]\n\t\t\t}\n\t\t} );\n\n\t\t// Bind label text with the bookmark ID.\n\t\tlabel.bind( 'text' ).to( this, 'id' );\n\n\t\treturn label;\n\t}\n}\n\n/**\n * Fired when the {@link ~BookmarkActionsView#editButtonView} is clicked.\n *\n * @eventName ~BookmarkActionsView#edit\n */\nexport type EditEvent = {\n\tname: 'edit';\n\targs: [];\n};\n\n/**\n * Fired when the {@link ~BookmarkActionsView#removeButtonView} is clicked.\n *\n * @eventName ~BookmarkActionsView#remove\n */\nexport type RemoveEvent = {\n\tname: 'remove';\n\targs: [];\n};\n\n/**\n * Returns the first token from space separated token list.\n */\nfunction getFirstToken( tokenList: string ): string {\n\treturn tokenList.split( ' ' )[ 0 ];\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module bookmark/utils\n */\n\n/**\n * Returns `true` if the bookmark id is valid; otherwise, returns `false`.\n */\nexport function isBookmarkIdValid( id: string ): boolean {\n\tif ( !id || typeof id !== 'string' ) {\n\t\treturn false;\n\t}\n\n\tif ( /\\s/.test( id ) ) {\n\t\treturn false;\n\t}\n\n\treturn true;\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module bookmark/insertbookmarkcommand\n */\n\nimport type {\n\tDocumentSelection,\n\tSelection,\n\tPosition,\n\tSchema,\n\tSchemaContextDefinition\n} from 'ckeditor5/src/engine.js';\nimport { logWarning } from 'ckeditor5/src/utils.js';\nimport { Command } from 'ckeditor5/src/core.js';\n\nimport { isBookmarkIdValid } from './utils.js';\n\n/**\n * The insert bookmark command.\n *\n * The command is registered by {@link module:bookmark/bookmarkediting~BookmarkEditing} as `'insertBookmark'`.\n *\n * To insert a bookmark element at place where is the current collapsed selection or where is the beginning of document selection,\n * execute the command passing the bookmark id as a parameter:\n *\n * ```ts\n * editor.execute( 'insertBookmark', { bookmarkId: 'foo_bar' } );\n * ```\n */\nexport default class InsertBookmarkCommand extends Command {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override refresh(): void {\n\t\tconst model = this.editor.model;\n\t\tconst selection = model.document.selection;\n\t\tconst position = this._getPositionToInsertBookmark( selection );\n\n\t\tthis.isEnabled = !!position;\n\t}\n\n\t/**\n\t * Executes the command.\n\t *\n\t * @fires execute\n\t * @param options Command options.\n\t * @param options.bookmarkId The value of the `bookmarkId` attribute.\n\t */\n\tpublic override execute( options: { bookmarkId: string } ): void {\n\t\tif ( !options ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { bookmarkId } = options;\n\n\t\tif ( !isBookmarkIdValid( bookmarkId ) ) {\n\t\t\t/**\n\t\t\t * Insert bookmark command can be executed only with a valid name.\n\t\t\t *\n\t\t\t * A valid bookmark name must be a non-empty string and must not contain any spaces.\n\t\t\t *\n\t\t\t * @error insert-bookmark-command-executed-with-invalid-name\n\t\t\t */\n\t\t\tlogWarning( 'insert-bookmark-command-executed-with-invalid-name' );\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst editor = this.editor;\n\t\tconst model = editor.model;\n\t\tconst selection = model.document.selection;\n\n\t\tmodel.change( writer => {\n\t\t\tlet position = this._getPositionToInsertBookmark( selection )!;\n\n\t\t\tconst isBookmarkAllowed = model.schema.checkChild( position, 'bookmark' );\n\n\t\t\t// If the position does not allow for `bookmark` but allows for a `paragraph`\n\t\t\t// then insert a `paragraph` then we will insert a `bookmark` inside.\n\t\t\tif ( !isBookmarkAllowed ) {\n\t\t\t\tconst newPosition = editor.execute( 'insertParagraph', { position } ) as Position | null;\n\n\t\t\t\tif ( !newPosition ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tposition = newPosition;\n\t\t\t}\n\n\t\t\tconst bookmarkElement = writer.createElement( 'bookmark', {\n\t\t\t\t...Object.fromEntries( selection.getAttributes() ),\n\t\t\t\tbookmarkId\n\t\t\t} );\n\n\t\t\tmodel.insertObject( bookmarkElement, position, null, { setSelection: 'on' } );\n\t\t} );\n\t}\n\n\t/**\n\t * Returns the position where the bookmark can be inserted. And if it is not possible to insert a bookmark,\n\t * check if it is possible to insert a paragraph.\n\t */\n\tprivate _getPositionToInsertBookmark( selection: Selection | DocumentSelection ): Position | null {\n\t\tconst model = this.editor.model;\n\t\tconst schema = model.schema;\n\n\t\tconst firstRange = selection.getFirstRange()!;\n\t\tconst startPosition = firstRange.start;\n\n\t\t// Return position if it is allowed to insert bookmark or if it is allowed to insert paragraph.\n\t\tif ( isBookmarkAllowed( startPosition, schema ) ) {\n\t\t\treturn startPosition;\n\t\t}\n\n\t\tfor ( const { previousPosition, item } of firstRange ) {\n\t\t\t// When the table cell is selected (from the outside) we look for the first paragraph-like element inside.\n\t\t\tif (\n\t\t\t\titem.is( 'element' ) &&\n\t\t\t\tschema.checkChild( item, '$text' ) &&\n\t\t\t\tisBookmarkAllowed( item, schema )\n\t\t\t) {\n\t\t\t\treturn model.createPositionAt( item, 0 );\n\t\t\t}\n\n\t\t\tif ( isBookmarkAllowed( previousPosition, schema ) ) {\n\t\t\t\treturn previousPosition;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n}\n\n/**\n * Verify if the given position allows for bookmark insertion. Verify if auto-paragraphing could help.\n */\nfunction isBookmarkAllowed( position: SchemaContextDefinition, schema: Schema ): boolean {\n\tif ( schema.checkChild( position, 'bookmark' ) ) {\n\t\treturn true;\n\t}\n\n\tif ( !schema.checkChild( position, 'paragraph' ) ) {\n\t\treturn false;\n\t}\n\n\treturn schema.checkChild( 'paragraph', 'bookmark' );\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module bookmark/updatebookmarkcommand\n */\n\nimport { Command } from 'ckeditor5/src/core.js';\nimport type { Selection, DocumentSelection } from 'ckeditor5/src/engine.js';\nimport { logWarning } from 'ckeditor5/src/utils.js';\n\nimport { isBookmarkIdValid } from './utils.js';\n\n/**\n * The update bookmark command.\n *\n * The command is registered by {@link module:bookmark/bookmarkediting~BookmarkEditing} as `'updateBookmark'`.\n *\n * To update the `bookmarkId` of current selected bookmark element, execute the command passing the bookmark id as a parameter:\n *\n * ```ts\n * editor.execute( 'updateBookmark', { bookmarkId: 'newId' } );\n * ```\n */\nexport default class UpdateBookmarkCommand extends Command {\n\t/**\n\t * The value of the `'bookmarkId'` attribute.\n\t *\n\t * @observable\n\t * @readonly\n\t */\n\tdeclare public value: string | undefined;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override refresh(): void {\n\t\tconst model = this.editor.model;\n\t\tconst selection = model.document.selection;\n\t\tconst selectedBookmark = getSelectedBookmark( selection );\n\n\t\tthis.isEnabled = !!selectedBookmark;\n\t\tthis.value = selectedBookmark ? selectedBookmark.getAttribute( 'bookmarkId' ) as string : undefined;\n\t}\n\n\t/**\n\t * Executes the command.\n\t *\n\t * @fires execute\n\t * @param options Command options.\n\t * @param options.bookmarkId The new value of the `bookmarkId` attribute to set.\n\t */\n\tpublic override execute( options: { bookmarkId: string } ): void {\n\t\tif ( !options ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { bookmarkId } = options;\n\n\t\tif ( !isBookmarkIdValid( bookmarkId ) ) {\n\t\t\t/**\n\t\t\t * Update bookmark command can be executed only with a valid name.\n\t\t\t *\n\t\t\t * A valid bookmark name must be a non-empty string and must not contain any spaces.\n\t\t\t *\n\t\t\t * @error update-bookmark-command-executed-with-invalid-name\n\t\t\t */\n\t\t\tlogWarning( 'update-bookmark-command-executed-with-invalid-name' );\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst model = this.editor.model;\n\t\tconst selection = model.document.selection;\n\t\tconst selectedBookmark = getSelectedBookmark( selection );\n\n\t\tif ( selectedBookmark ) {\n\t\t\tmodel.change( writer => {\n\t\t\t\twriter.setAttribute( 'bookmarkId', bookmarkId, selectedBookmark );\n\t\t\t} );\n\t\t}\n\t}\n}\n\n/**\n * Returns the selected `bookmark` element in the model, if any.\n */\nfunction getSelectedBookmark( selection: Selection | DocumentSelection ) {\n\tconst element = selection.getSelectedElement();\n\n\tif ( !!element && element.is( 'element', 'bookmark' ) ) {\n\t\treturn element;\n\t}\n\n\treturn null;\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module bookmark/bookmarkediting\n */\n\nimport { type Editor, Plugin, icons } from 'ckeditor5/src/core.js';\nimport { toWidget } from 'ckeditor5/src/widget.js';\nimport { IconView } from 'ckeditor5/src/ui.js';\nimport type { EventInfo } from 'ckeditor5/src/utils.js';\n\nimport type {\n\tViewUIElement,\n\tDowncastWriter,\n\tViewElement,\n\tElement,\n\tDocumentChangeEvent,\n\tUpcastElementEvent,\n\tUpcastConversionData,\n\tUpcastConversionApi\n} from 'ckeditor5/src/engine.js';\n\nimport InsertBookmarkCommand from './insertbookmarkcommand.js';\nimport UpdateBookmarkCommand from './updatebookmarkcommand.js';\n\nimport '../theme/bookmark.css';\n\nconst bookmarkIcon = icons.bookmarkInline;\n\n/**\n * The bookmark editing plugin.\n */\nexport default class BookmarkEditing extends Plugin {\n\t/**\n\t * A collection of bookmarks elements in the document.\n\t */\n\tprivate _bookmarkElements = new Map<Element, string>();\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'BookmarkEditing' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst { editor } = this;\n\n\t\tthis._defineSchema();\n\t\tthis._defineConverters();\n\n\t\teditor.commands.add( 'insertBookmark', new InsertBookmarkCommand( editor ) );\n\t\teditor.commands.add( 'updateBookmark', new UpdateBookmarkCommand( editor ) );\n\n\t\tthis.listenTo<DocumentChangeEvent>( editor.model.document, 'change:data', () => {\n\t\t\tthis._trackBookmarkElements();\n\t\t} );\n\t}\n\n\t/**\n\t * Returns the model element for the given bookmark ID if it exists.\n\t */\n\tpublic getElementForBookmarkId( bookmarkId: string ): Element | null {\n\t\tfor ( const [ element, id ] of this._bookmarkElements ) {\n\t\t\tif ( id == bookmarkId ) {\n\t\t\t\treturn element;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t/**\n\t * Defines the schema for the bookmark feature.\n\t */\n\tprivate _defineSchema() {\n\t\tconst schema = this.editor.model.schema;\n\n\t\tschema.register( 'bookmark', {\n\t\t\tinheritAllFrom: '$inlineObject',\n\t\t\tallowAttributes: 'bookmarkId',\n\t\t\tdisallowAttributes: [ 'linkHref', 'htmlA' ]\n\t\t} );\n\t}\n\n\t/**\n\t * Defines the converters for the bookmark feature.\n\t */\n\tprivate _defineConverters() {\n\t\tconst { editor } = this;\n\t\tconst { conversion, t } = editor;\n\n\t\teditor.data.htmlProcessor.domConverter.registerInlineObjectMatcher( element => upcastMatcher( element ) );\n\n\t\t// Register an inline object matcher so that bookmarks <a>s are correctly recognized as inline elements in editing pipeline.\n\t\t// This prevents converting spaces around bookmarks to `&nbsp;`s.\n\t\teditor.editing.view.domConverter.registerInlineObjectMatcher( element => upcastMatcher( element, false ) );\n\n\t\tconversion.for( 'dataDowncast' ).elementToElement( {\n\t\t\tmodel: {\n\t\t\t\tname: 'bookmark',\n\t\t\t\tattributes: [ 'bookmarkId' ]\n\t\t\t},\n\t\t\tview: ( modelElement, { writer } ) => {\n\t\t\t\tconst emptyElement = writer.createEmptyElement( 'a', {\n\t\t\t\t\t'id': modelElement.getAttribute( 'bookmarkId' )\n\t\t\t\t} );\n\n\t\t\t\t// `getFillerOffset` is not needed to set here, because `emptyElement` has already covered it.\n\n\t\t\t\treturn emptyElement;\n\t\t\t}\n\t\t} );\n\n\t\tconversion.for( 'editingDowncast' ).elementToElement( {\n\t\t\tmodel: {\n\t\t\t\tname: 'bookmark',\n\t\t\t\tattributes: [ 'bookmarkId' ]\n\t\t\t},\n\t\t\tview: ( modelElement, { writer } ) => {\n\t\t\t\tconst id = modelElement.getAttribute( 'bookmarkId' ) as string;\n\t\t\t\tconst containerElement = writer.createContainerElement( 'a', {\n\t\t\t\t\tid,\n\t\t\t\t\tclass: 'ck-bookmark'\n\t\t\t\t}, [ this._createBookmarkUIElement( writer ) ] );\n\n\t\t\t\tthis._bookmarkElements.set( modelElement, id );\n\n\t\t\t\t// `getFillerOffset` is not needed to set here, because `toWidget` has already covered it.\n\n\t\t\t\tconst labelCreator = () => `${ id } ${ t( 'bookmark widget' ) }`;\n\n\t\t\t\treturn toWidget( containerElement, writer, { label: labelCreator } );\n\t\t\t}\n\t\t} );\n\n\t\tconversion.for( 'upcast' ).add(\n\t\t\tdispatcher => dispatcher.on<UpcastElementEvent>( 'element:a', dataViewModelAnchorInsertion( editor ) )\n\t\t);\n\t}\n\n\t/**\n\t * Creates a UI element for the `bookmark` representation in editing view.\n\t */\n\tprivate _createBookmarkUIElement( writer: DowncastWriter ): ViewUIElement {\n\t\treturn writer.createUIElement( 'span', { class: 'ck-bookmark__icon' }, function( domDocument ) {\n\t\t\tconst domElement = this.toDomElement( domDocument );\n\n\t\t\tconst icon = new IconView();\n\n\t\t\ticon.set( {\n\t\t\t\tcontent: bookmarkIcon,\n\t\t\t\tisColorInherited: false\n\t\t\t} );\n\n\t\t\ticon.render();\n\n\t\t\tdomElement.appendChild( icon.element! );\n\n\t\t\treturn domElement;\n\t\t} );\n\t}\n\n\t/**\n\t * Tracking the added or removed bookmark elements.\n\t */\n\tprivate _trackBookmarkElements(): void {\n\t\tthis._bookmarkElements.forEach( ( id, element ) => {\n\t\t\tif ( element.root.rootName === '$graveyard' ) {\n\t\t\t\tthis._bookmarkElements.delete( element );\n\t\t\t}\n\t\t} );\n\t}\n}\n\n/**\n * A helper function to match an `anchor` element which must contain `id` or `name` attribute but without `href` attribute,\n * also when `expectEmpty` is set to `true` but the element is not empty matcher should not match any element.\n *\n * @param element The element to be checked.\n * @param expectEmpty Default set to `true`, when set to `false` matcher expects that `anchor` is not empty;\n * in editing pipeline it's not empty because it contains the `UIElement`.\n */\nfunction upcastMatcher( element: ViewElement, expectEmpty: boolean = true ) {\n\tconst isAnchorElement = element.name === 'a';\n\n\tif ( !isAnchorElement ) {\n\t\treturn null;\n\t}\n\n\tif ( expectEmpty && !element.isEmpty ) {\n\t\treturn null;\n\t}\n\n\tconst hasIdAttribute = element.hasAttribute( 'id' );\n\tconst hasNameAttribute = element.hasAttribute( 'name' );\n\tconst hasHrefAttribute = element.hasAttribute( 'href' );\n\n\tif ( hasIdAttribute && !hasHrefAttribute ) {\n\t\treturn { name: true, attributes: [ 'id' ] };\n\t}\n\n\tif ( hasNameAttribute && !hasHrefAttribute ) {\n\t\treturn { name: true, attributes: [ 'name' ] };\n\t}\n\n\treturn null;\n}\n\n/**\n * A view-to-model converter that handles converting pointed or wrapped anchors with `id` and/or `name` attributes.\n *\n * @returns Returns a conversion callback.\n */\nfunction dataViewModelAnchorInsertion( editor: Editor ) {\n\treturn (\n\t\tevt: EventInfo,\n\t\tdata: UpcastConversionData<ViewElement>,\n\t\tconversionApi: UpcastConversionApi\n\t) => {\n\t\tconst viewItem = data.viewItem;\n\t\tconst match = upcastMatcher( viewItem, false );\n\n\t\tif ( !match || !conversionApi.consumable.test( viewItem, match ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst enableNonEmptyAnchorConversion = isEnabledNonEmptyAnchorConversion( editor );\n\n\t\tif ( !enableNonEmptyAnchorConversion && !viewItem.isEmpty ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst modelWriter = conversionApi.writer;\n\t\tconst anchorId = viewItem.getAttribute( 'id' );\n\t\tconst anchorName = viewItem.getAttribute( 'name' );\n\t\tconst bookmarkId = anchorId || anchorName;\n\t\tconst bookmark = modelWriter.createElement( 'bookmark', { bookmarkId } );\n\n\t\tif ( !conversionApi.safeInsert( bookmark, data.modelCursor ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconversionApi.consumable.consume( viewItem, match );\n\n\t\tif ( anchorId === anchorName ) {\n\t\t\tconversionApi.consumable.consume( viewItem, { attributes: [ 'name' ] } );\n\t\t}\n\n\t\tconversionApi.updateConversionResult( bookmark, data );\n\n\t\t// Convert children uses the result of `bookmark` insertion to convert the `anchor` content\n\t\t// after the bookmark element (not inside it).\n\t\tconst { modelCursor, modelRange } = conversionApi.convertChildren( viewItem, data.modelCursor );\n\n\t\tdata.modelCursor = modelCursor;\n\t\tdata.modelRange = modelWriter.createRange( data.modelRange!.start, modelRange!.end );\n\t};\n}\n\n/**\n * Normalize the bookmark configuration option `enableNonEmptyAnchorConversion`.\n */\nfunction isEnabledNonEmptyAnchorConversion( editor: Editor ): boolean {\n\tconst enableNonEmptyAnchorConversion = editor.config.get( 'bookmark.enableNonEmptyAnchorConversion' );\n\n\t// When not defined, option `enableNonEmptyAnchorConversion` by default is set to `true`.\n\treturn enableNonEmptyAnchorConversion !== undefined ? enableNonEmptyAnchorConversion : true;\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module bookmark/bookmarkui\n */\n\nimport { Plugin, type Editor, icons } from 'ckeditor5/src/core.js';\nimport {\n\tButtonView,\n\tContextualBalloon,\n\tCssTransitionDisablerMixin,\n\tMenuBarMenuListItemButtonView,\n\tclickOutsideHandler,\n\ttype ViewWithCssTransitionDisabler\n} from 'ckeditor5/src/ui.js';\n\nimport {\n\tClickObserver,\n\ttype ViewDocumentClickEvent,\n\ttype Element,\n\ttype ViewElement\n} from 'ckeditor5/src/engine.js';\n\nimport type { PositionOptions } from 'ckeditor5/src/utils.js';\nimport type { DeleteCommand } from 'ckeditor5/src/typing.js';\n\nimport BookmarkFormView, { type BookmarkFormValidatorCallback } from './ui/bookmarkformview.js';\nimport BookmarkActionsView from './ui/bookmarkactionsview.js';\nimport type UpdateBookmarkCommand from './updatebookmarkcommand.js';\nimport type InsertBookmarkCommand from './insertbookmarkcommand.js';\n\nimport BookmarkEditing from './bookmarkediting.js';\n\nconst bookmarkIcon = icons.bookmark;\n\nconst VISUAL_SELECTION_MARKER_NAME = 'bookmark-ui';\n\n/**\n * The UI plugin of the bookmark feature.\n *\n * It registers the `'bookmark'` UI button in the editor's {@link module:ui/componentfactory~ComponentFactory component factory}\n * which inserts the `bookmark` element upon selection.\n */\nexport default class BookmarkUI extends Plugin {\n\t/**\n\t * The actions view displayed inside of the balloon.\n\t */\n\tpublic actionsView: BookmarkActionsView | null = null;\n\n\t/**\n\t * The form view displayed inside the balloon.\n\t */\n\tpublic formView: BookmarkFormView & ViewWithCssTransitionDisabler | null = null;\n\n\t/**\n\t * The contextual balloon plugin instance.\n\t */\n\tprivate _balloon!: ContextualBalloon;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ BookmarkEditing, ContextualBalloon ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'BookmarkUI' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\n\t\teditor.editing.view.addObserver( ClickObserver );\n\n\t\tthis._balloon = editor.plugins.get( ContextualBalloon );\n\n\t\t// Create toolbar buttons.\n\t\tthis._createToolbarBookmarkButton();\n\t\tthis._enableBalloonActivators();\n\n\t\t// Renders a fake visual selection marker on an expanded selection.\n\t\teditor.conversion.for( 'editingDowncast' ).markerToHighlight( {\n\t\t\tmodel: VISUAL_SELECTION_MARKER_NAME,\n\t\t\tview: {\n\t\t\t\tclasses: [ 'ck-fake-bookmark-selection' ]\n\t\t\t}\n\t\t} );\n\n\t\t// Renders a fake visual selection marker on a collapsed selection.\n\t\teditor.conversion.for( 'editingDowncast' ).markerToElement( {\n\t\t\tmodel: VISUAL_SELECTION_MARKER_NAME,\n\t\t\tview: ( data, { writer } ) => {\n\t\t\t\tif ( !data.markerRange.isCollapsed ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tconst markerElement = writer.createUIElement( 'span' );\n\n\t\t\t\twriter.addClass(\n\t\t\t\t\t[ 'ck-fake-bookmark-selection', 'ck-fake-bookmark-selection_collapsed' ],\n\t\t\t\t\tmarkerElement\n\t\t\t\t);\n\n\t\t\t\treturn markerElement;\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tsuper.destroy();\n\n\t\t// Destroy created UI components as they are not automatically destroyed (see ckeditor5#1341).\n\t\tif ( this.formView ) {\n\t\t\tthis.formView.destroy();\n\t\t}\n\n\t\tif ( this.actionsView ) {\n\t\t\tthis.actionsView.destroy();\n\t\t}\n\t}\n\n\t/**\n\t * Creates views.\n\t */\n\tprivate _createViews() {\n\t\tthis.actionsView = this._createActionsView();\n\t\tthis.formView = this._createFormView();\n\n\t\t// Attach lifecycle actions to the the balloon.\n\t\tthis._enableUserBalloonInteractions();\n\t}\n\n\t/**\n\t * Creates the {@link module:bookmark/ui/bookmarkactionsview~BookmarkActionsView} instance.\n\t */\n\tprivate _createActionsView(): BookmarkActionsView {\n\t\tconst editor = this.editor;\n\t\tconst actionsView = new BookmarkActionsView( editor.locale );\n\t\tconst updateBookmarkCommand: UpdateBookmarkCommand = editor.commands.get( 'updateBookmark' )!;\n\t\tconst deleteCommand: DeleteCommand = editor.commands.get( 'delete' )!;\n\n\t\tactionsView.bind( 'id' ).to( updateBookmarkCommand, 'value' );\n\t\tactionsView.editButtonView.bind( 'isEnabled' ).to( updateBookmarkCommand );\n\t\tactionsView.removeButtonView.bind( 'isEnabled' ).to( deleteCommand );\n\n\t\t// Display edit form view after clicking on the \"Edit\" button.\n\t\tthis.listenTo( actionsView, 'edit', () => {\n\t\t\tthis._addFormView();\n\t\t} );\n\n\t\t// Execute remove command after clicking on the \"Remove\" button.\n\t\tthis.listenTo( actionsView, 'remove', () => {\n\t\t\tthis._hideUI();\n\t\t\teditor.execute( 'delete' );\n\t\t} );\n\n\t\t// Close the panel on esc key press when the **actions have focus**.\n\t\tactionsView.keystrokes.set( 'Esc', ( data, cancel ) => {\n\t\t\tthis._hideUI();\n\t\t\tcancel();\n\t\t} );\n\n\t\treturn actionsView;\n\t}\n\n\t/**\n\t * Creates the {@link module:bookmark/ui/bookmarkformview~BookmarkFormView} instance.\n\t */\n\tprivate _createFormView(): BookmarkFormView & ViewWithCssTransitionDisabler {\n\t\tconst editor = this.editor;\n\t\tconst locale = editor.locale;\n\t\tconst insertBookmarkCommand: InsertBookmarkCommand = editor.commands.get( 'insertBookmark' )!;\n\t\tconst updateBookmarkCommand: UpdateBookmarkCommand = editor.commands.get( 'updateBookmark' )!;\n\t\tconst commands = [ insertBookmarkCommand, updateBookmarkCommand ];\n\n\t\tconst formView = new ( CssTransitionDisablerMixin( BookmarkFormView ) )( locale, getFormValidators( editor ) );\n\n\t\tformView.idInputView.fieldView.bind( 'value' ).to( updateBookmarkCommand, 'value' );\n\n\t\t// Form elements should be read-only when corresponding commands are disabled.\n\t\tformView.idInputView.bind( 'isEnabled' ).toMany(\n\t\t\tcommands,\n\t\t\t'isEnabled',\n\t\t\t( ...areEnabled ) => areEnabled.some( isEnabled => isEnabled )\n\t\t);\n\n\t\t// Disable the \"save\" button if the command is disabled.\n\t\tformView.buttonView.bind( 'isEnabled' ).toMany(\n\t\t\tcommands,\n\t\t\t'isEnabled',\n\t\t\t( ...areEnabled ) => areEnabled.some( isEnabled => isEnabled )\n\t\t);\n\n\t\t// Execute link command after clicking the \"Save\" button.\n\t\tthis.listenTo( formView, 'submit', () => {\n\t\t\tif ( formView.isValid() ) {\n\t\t\t\tconst value = formView.id!;\n\n\t\t\t\tif ( this._getSelectedBookmarkElement() ) {\n\t\t\t\t\teditor.execute( 'updateBookmark', { bookmarkId: value } );\n\t\t\t\t} else {\n\t\t\t\t\teditor.execute( 'insertBookmark', { bookmarkId: value } );\n\t\t\t\t}\n\n\t\t\t\tthis._closeFormView();\n\t\t\t}\n\t\t} );\n\n\t\t// Update balloon position when form error changes.\n\t\tthis.listenTo( formView.idInputView, 'change:errorText', () => {\n\t\t\teditor.ui.update();\n\t\t} );\n\n\t\t// Close the panel on esc key press when the **form has focus**.\n\t\tformView.keystrokes.set( 'Esc', ( data, cancel ) => {\n\t\t\tthis._closeFormView();\n\t\t\tcancel();\n\t\t} );\n\n\t\treturn formView;\n\t}\n\n\t/**\n\t * Creates a toolbar Bookmark button. Clicking this button will show\n\t * a {@link #_balloon} attached to the selection.\n\t */\n\tprivate _createToolbarBookmarkButton() {\n\t\tconst editor = this.editor;\n\n\t\teditor.ui.componentFactory.add( 'bookmark', () => {\n\t\t\tconst buttonView = this._createButton( ButtonView );\n\n\t\t\tbuttonView.set( {\n\t\t\t\ttooltip: true\n\t\t\t} );\n\n\t\t\treturn buttonView;\n\t\t} );\n\n\t\teditor.ui.componentFactory.add( 'menuBar:bookmark', () => {\n\t\t\treturn this._createButton( MenuBarMenuListItemButtonView );\n\t\t} );\n\t}\n\n\t/**\n\t * Creates a button for `bookmark` command to use either in toolbar or in menu bar.\n\t */\n\tprivate _createButton<T extends typeof ButtonView>( ButtonClass: T ): InstanceType<T> {\n\t\tconst editor = this.editor;\n\t\tconst locale = editor.locale;\n\t\tconst view = new ButtonClass( locale ) as InstanceType<T>;\n\t\tconst insertCommand: InsertBookmarkCommand = editor.commands.get( 'insertBookmark' )!;\n\t\tconst updateCommand: UpdateBookmarkCommand = editor.commands.get( 'updateBookmark' )!;\n\t\tconst t = locale.t;\n\n\t\tview.set( {\n\t\t\tlabel: t( 'Bookmark' ),\n\t\t\ticon: bookmarkIcon\n\t\t} );\n\n\t\t// Execute the command.\n\t\tthis.listenTo( view, 'execute', () => this._showUI( true ) );\n\n\t\tview.bind( 'isEnabled' ).toMany(\n\t\t\t[ insertCommand, updateCommand ],\n\t\t\t'isEnabled',\n\t\t\t( ...areEnabled ) => areEnabled.some( isEnabled => isEnabled )\n\t\t);\n\n\t\tview.bind( 'isOn' ).to( updateCommand, 'value', value => !!value );\n\n\t\treturn view;\n\t}\n\n\t/**\n\t * Attaches actions that control whether the balloon panel containing the\n\t * {@link #formView} should be displayed.\n\t */\n\tprivate _enableBalloonActivators(): void {\n\t\tconst editor = this.editor;\n\t\tconst viewDocument = editor.editing.view.document;\n\n\t\t// Handle click on view document and show panel when selection is placed inside the bookmark element.\n\t\t// Keep panel open until selection will be inside the same bookmark element.\n\t\tthis.listenTo<ViewDocumentClickEvent>( viewDocument, 'click', () => {\n\t\t\tconst bookmark = this._getSelectedBookmarkElement();\n\n\t\t\tif ( bookmark ) {\n\t\t\t\t// Then show panel but keep focus inside editor editable.\n\t\t\t\tthis._showUI();\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Attaches actions that control whether the balloon panel containing the\n\t * {@link #formView} is visible or not.\n\t */\n\tprivate _enableUserBalloonInteractions(): void {\n\t\t// Focus the form if the balloon is visible and the Tab key has been pressed.\n\t\tthis.editor.keystrokes.set( 'Tab', ( data, cancel ) => {\n\t\t\tif ( this._areActionsVisible && !this.actionsView!.focusTracker.isFocused ) {\n\t\t\t\tthis.actionsView!.focus();\n\t\t\t\tcancel();\n\t\t\t}\n\t\t}, {\n\t\t\t// Use the high priority because the bookmark UI navigation is more important\n\t\t\t// than other feature's actions, e.g. list indentation.\n\t\t\tpriority: 'high'\n\t\t} );\n\n\t\t// Close the panel on the Esc key press when the editable has focus and the balloon is visible.\n\t\tthis.editor.keystrokes.set( 'Esc', ( data, cancel ) => {\n\t\t\tif ( this._isUIVisible ) {\n\t\t\t\tthis._hideUI();\n\t\t\t\tcancel();\n\t\t\t}\n\t\t} );\n\n\t\t// Close on click outside of balloon panel element.\n\t\tclickOutsideHandler( {\n\t\t\temitter: this.formView!,\n\t\t\tactivator: () => this._isUIInPanel,\n\t\t\tcontextElements: () => [ this._balloon.view.element! ],\n\t\t\tcallback: () => this._hideUI()\n\t\t} );\n\t}\n\n\t/**\n\t * Updates the button label. If bookmark is selected label is set to 'Update' otherwise\n\t * it is 'Insert'.\n\t */\n\tprivate _updateFormButtonLabel( isBookmarkSelected: boolean ) {\n\t\tconst t = this.editor.locale.t;\n\n\t\tthis.formView!.buttonView.label = isBookmarkSelected ? t( 'Update' ) : t( 'Insert' );\n\t}\n\n\t/**\n\t * Adds the {@link #actionsView} to the {@link #_balloon}.\n\t *\n\t * @internal\n\t */\n\tpublic _addActionsView(): void {\n\t\tif ( !this.actionsView ) {\n\t\t\tthis._createViews();\n\t\t}\n\n\t\tif ( this._areActionsInPanel ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._balloon.add( {\n\t\t\tview: this.actionsView!,\n\t\t\tposition: this._getBalloonPositionData()\n\t\t} );\n\t}\n\n\t/**\n\t * Adds the {@link #formView} to the {@link #_balloon}.\n\t */\n\tprivate _addFormView(): void {\n\t\tif ( !this.formView ) {\n\t\t\tthis._createViews();\n\t\t}\n\n\t\tif ( this._isFormInPanel ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst editor = this.editor;\n\t\tconst updateBookmarkCommand: UpdateBookmarkCommand = editor.commands.get( 'updateBookmark' )!;\n\n\t\tthis.formView!.disableCssTransitions();\n\t\tthis.formView!.resetFormStatus();\n\n\t\tthis._balloon.add( {\n\t\t\tview: this.formView!,\n\t\t\tposition: this._getBalloonPositionData()\n\t\t} );\n\n\t\tthis.formView!.idInputView.fieldView.value = updateBookmarkCommand.value || '';\n\n\t\t// Select input when form view is currently visible.\n\t\tif ( this._balloon.visibleView === this.formView ) {\n\t\t\tthis.formView!.idInputView.fieldView.select();\n\t\t}\n\n\t\tthis.formView!.enableCssTransitions();\n\t}\n\n\t/**\n\t * Closes the form view. Decides whether the balloon should be hidden completely.\n\t */\n\tprivate _closeFormView(): void {\n\t\tconst updateBookmarkCommand: UpdateBookmarkCommand = this.editor.commands.get( 'updateBookmark' )!;\n\n\t\tif ( updateBookmarkCommand.value !== undefined ) {\n\t\t\tthis._removeFormView();\n\t\t} else {\n\t\t\tthis._hideUI();\n\t\t}\n\t}\n\n\t/**\n\t * Removes the {@link #formView} from the {@link #_balloon}.\n\t */\n\tprivate _removeFormView(): void {\n\t\tif ( this._isFormInPanel ) {\n\t\t\t// Blur the input element before removing it from DOM to prevent issues in some browsers.\n\t\t\t// See https://github.com/ckeditor/ckeditor5/issues/1501.\n\t\t\tthis.formView!.buttonView.focus();\n\n\t\t\t// Reset the ID field to update the state of the submit button.\n\t\t\tthis.formView!.idInputView.fieldView.reset();\n\n\t\t\tthis._balloon.remove( this.formView! );\n\n\t\t\t// Because the form has an input which has focus, the focus must be brought back\n\t\t\t// to the editor. Otherwise, it would be lost.\n\t\t\tthis.editor.editing.view.focus();\n\n\t\t\tthis._hideFakeVisualSelection();\n\t\t}\n\t}\n\n\t/**\n\t * Shows the correct UI type. It is either {@link #formView} or {@link #actionsView}.\n\t */\n\tprivate _showUI( forceVisible: boolean = false ): void {\n\t\tif ( !this.formView ) {\n\t\t\tthis._createViews();\n\t\t}\n\n\t\t// When there's no bookmark under the selection, go straight to the editing UI.\n\t\tif ( !this._getSelectedBookmarkElement() ) {\n\t\t\t// Show visual selection on a text without a bookmark when the contextual balloon is displayed.\n\t\t\tthis._showFakeVisualSelection();\n\n\t\t\tthis._addActionsView();\n\n\t\t\t// Be sure panel with bookmark is visible.\n\t\t\tif ( forceVisible ) {\n\t\t\t\tthis._balloon.showStack( 'main' );\n\t\t\t}\n\n\t\t\tthis._addFormView();\n\t\t}\n\t\t// If there's a bookmark under the selection...\n\t\telse {\n\t\t\t// Go to the editing UI if actions are already visible.\n\t\t\tif ( this._areActionsVisible ) {\n\t\t\t\tthis._addFormView();\n\t\t\t}\n\t\t\t// Otherwise display just the actions UI.\n\t\t\telse {\n\t\t\t\tthis._addActionsView();\n\t\t\t}\n\n\t\t\t// Be sure panel with bookmark is visible.\n\t\t\tif ( forceVisible ) {\n\t\t\t\tthis._balloon.showStack( 'main' );\n\t\t\t}\n\t\t}\n\n\t\t// Begin responding to ui#update once the UI is added.\n\t\tthis._startUpdatingUI();\n\t}\n\n\t/**\n\t * Removes the {@link #formView} from the {@link #_balloon}.\n\t *\n\t * See {@link #_addFormView}, {@link #_addActionsView}.\n\t */\n\tprivate _hideUI(): void {\n\t\tif ( !this._isUIInPanel ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst editor = this.editor;\n\n\t\tthis.stopListening( editor.ui, 'update' );\n\t\tthis.stopListening( this._balloon, 'change:visibleView' );\n\n\t\t// Make sure the focus always gets back to the editable _before_ removing the focused form view.\n\t\t// Doing otherwise causes issues in some browsers. See https://github.com/ckeditor/ckeditor5-link/issues/193.\n\t\teditor.editing.view.focus();\n\n\t\t// Remove form first because it's on top of the stack.\n\t\tthis._removeFormView();\n\n\t\t// Then remove the actions view because it's beneath the form.\n\t\tthis._balloon.remove( this.actionsView! );\n\n\t\tthis._hideFakeVisualSelection();\n\t}\n\n\t/**\n\t * Makes the UI react to the {@link module:ui/editorui/editorui~EditorUI#event:update} event to\n\t * reposition itself when the editor UI should be refreshed.\n\t *\n\t * See: {@link #_hideUI} to learn when the UI stops reacting to the `update` event.\n\t */\n\tprivate _startUpdatingUI(): void {\n\t\tconst editor = this.editor;\n\t\tconst viewDocument = editor.editing.view.document;\n\n\t\tlet prevSelectedBookmark = this._getSelectedBookmarkElement();\n\t\tlet prevSelectionParent = getSelectionParent();\n\n\t\tthis._updateFormButtonLabel( !!prevSelectedBookmark );\n\n\t\tconst update = () => {\n\t\t\tconst selectedBookmark = this._getSelectedBookmarkElement();\n\t\t\tconst selectionParent = getSelectionParent();\n\n\t\t\t// Hide the panel if:\n\t\t\t//\n\t\t\t// * the selection went out of the EXISTING bookmark element. E.g. user moved the caret out\n\t\t\t// of the bookmark,\n\t\t\t// * the selection went to a different parent when creating a NEW bookmark. E.g. someone\n\t\t\t// else modified the document.\n\t\t\t// * the selection has expanded (e.g. displaying bookmark actions then pressing SHIFT+Right arrow).\n\t\t\t//\n\t\t\tif (\n\t\t\t\t( prevSelectedBookmark && !selectedBookmark ) ||\n\t\t\t\t( !prevSelectedBookmark && selectionParent !== prevSelectionParent )\n\t\t\t) {\n\t\t\t\tthis._hideUI();\n\t\t\t}\n\t\t\t// Update the position of the panel when:\n\t\t\t// * bookmark panel is in the visible stack\n\t\t\t// * the selection remains on the original bookmark element,\n\t\t\t// * there was no bookmark element in the first place, i.e. creating a new bookmark\n\t\t\telse if ( this._isUIVisible ) {\n\t\t\t\t// If still in a bookmark element, simply update the position of the balloon.\n\t\t\t\t// If there was no bookmark (e.g. inserting one), the balloon must be moved\n\t\t\t\t// to the new position in the editing view (a new native DOM range).\n\t\t\t\tthis._balloon.updatePosition( this._getBalloonPositionData() );\n\t\t\t}\n\n\t\t\tthis._updateFormButtonLabel( !!prevSelectedBookmark );\n\n\t\t\tprevSelectedBookmark = selectedBookmark;\n\t\t\tprevSelectionParent = selectionParent;\n\t\t};\n\n\t\tfunction getSelectionParent() {\n\t\t\treturn viewDocument.selection.focus!.getAncestors()\n\t\t\t\t.reverse()\n\t\t\t\t.find( ( node ): node is ViewElement => node.is( 'element' ) );\n\t\t}\n\n\t\tthis.listenTo( editor.ui, 'update', update );\n\t\tthis.listenTo( this._balloon, 'change:visibleView', update );\n\t}\n\n\t/**\n\t * Returns `true` when {@link #formView} is in the {@link #_balloon}.\n\t */\n\tprivate get _isFormInPanel(): boolean {\n\t\treturn !!this.formView && this._balloon.hasView( this.formView );\n\t}\n\n\t/**\n\t * Returns `true` when {@link #actionsView} is in the {@link #_balloon}.\n\t */\n\tprivate get _areActionsInPanel(): boolean {\n\t\treturn !!this.actionsView && this._balloon.hasView( this.actionsView );\n\t}\n\n\t/**\n\t * Returns `true` when {@link #actionsView} is in the {@link #_balloon} and it is\n\t * currently visible.\n\t */\n\tprivate get _areActionsVisible(): boolean {\n\t\treturn !!this.actionsView && this._balloon.visibleView === this.actionsView;\n\t}\n\n\t/**\n\t * Returns `true` when {@link #actionsView} or {@link #formView} is in the {@link #_balloon}.\n\t */\n\tprivate get _isUIInPanel(): boolean {\n\t\treturn this._isFormInPanel || this._areActionsInPanel;\n\t}\n\n\t/**\n\t * Returns `true` when {@link #actionsView} or {@link #formView} is in the {@link #_balloon} and it is\n\t * currently visible.\n\t */\n\tprivate get _isUIVisible(): boolean {\n\t\tconst visibleView = this._balloon.visibleView;\n\n\t\treturn !!this.formView && visibleView == this.formView || this._areActionsVisible;\n\t}\n\n\t/**\n\t * Returns positioning options for the {@link #_balloon}. They control the way the balloon is attached\n\t * to the target element or selection.\n\t */\n\tprivate _getBalloonPositionData(): Partial<PositionOptions> | undefined {\n\t\tconst view = this.editor.editing.view;\n\t\tconst model = this.editor.model;\n\t\tlet target: PositionOptions[ 'target' ] | undefined;\n\n\t\tconst bookmarkElement = this._getSelectedBookmarkElement();\n\n\t\tif ( model.markers.has( VISUAL_SELECTION_MARKER_NAME ) ) {\n\t\t\t// There are cases when we highlight selection using a marker (#7705, #4721).\n\t\t\tconst markerViewElements = Array.from( this.editor.editing.mapper.markerNameToElements( VISUAL_SELECTION_MARKER_NAME )! );\n\t\t\tconst newRange = view.createRange(\n\t\t\t\tview.createPositionBefore( markerViewElements[ 0 ] ),\n\t\t\t\tview.createPositionAfter( markerViewElements[ markerViewElements.length - 1 ] )\n\t\t\t);\n\n\t\t\ttarget = view.domConverter.viewRangeToDom( newRange );\n\t\t}\n\t\telse if ( bookmarkElement ) {\n\t\t\ttarget = () => {\n\t\t\t\tconst mapper = this.editor.editing.mapper;\n\t\t\t\tconst domConverter = view.domConverter;\n\t\t\t\tconst viewElement = mapper.toViewElement( bookmarkElement )!;\n\n\t\t\t\treturn domConverter.mapViewToDom( viewElement )!;\n\t\t\t};\n\t\t}\n\n\t\treturn target && { target };\n\t}\n\n\t/**\n\t * Returns the bookmark {@link module:engine/view/attributeelement~AttributeElement} under\n\t * the {@link module:engine/view/document~Document editing view's} selection or `null`\n\t * if there is none.\n\t */\n\tprivate _getSelectedBookmarkElement(): Element | null {\n\t\tconst selection = this.editor.model.document.selection;\n\t\tconst element = selection.getSelectedElement();\n\n\t\tif ( element && element.is( 'element', 'bookmark' ) ) {\n\t\t\treturn element;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t/**\n\t * Displays a fake visual selection when the contextual balloon is displayed.\n\t *\n\t * This adds a 'bookmark-ui' marker into the document that is rendered as a highlight on selected text fragment.\n\t */\n\tprivate _showFakeVisualSelection(): void {\n\t\tconst model = this.editor.model;\n\n\t\tmodel.change( writer => {\n\t\t\tconst range = model.document.selection.getFirstRange()!;\n\n\t\t\tif ( model.markers.has( VISUAL_SELECTION_MARKER_NAME ) ) {\n\t\t\t\twriter.updateMarker( VISUAL_SELECTION_MARKER_NAME, { range } );\n\t\t\t} else {\n\t\t\t\tif ( range.start.isAtEnd ) {\n\t\t\t\t\tconst startPosition = range.start.getLastMatchingPosition(\n\t\t\t\t\t\t( { item } ) => !model.schema.isContent( item ),\n\t\t\t\t\t\t{ boundaries: range }\n\t\t\t\t\t);\n\n\t\t\t\t\twriter.addMarker( VISUAL_SELECTION_MARKER_NAME, {\n\t\t\t\t\t\tusingOperation: false,\n\t\t\t\t\t\taffectsData: false,\n\t\t\t\t\t\trange: writer.createRange( startPosition, range.end )\n\t\t\t\t\t} );\n\t\t\t\t} else {\n\t\t\t\t\twriter.addMarker( VISUAL_SELECTION_MARKER_NAME, {\n\t\t\t\t\t\tusingOperation: false,\n\t\t\t\t\t\taffectsData: false,\n\t\t\t\t\t\trange\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Hides the fake visual selection created in {@link #_showFakeVisualSelection}.\n\t */\n\tprivate _hideFakeVisualSelection(): void {\n\t\tconst model = this.editor.model;\n\n\t\tif ( model.markers.has( VISUAL_SELECTION_MARKER_NAME ) ) {\n\t\t\tmodel.change( writer => {\n\t\t\t\twriter.removeMarker( VISUAL_SELECTION_MARKER_NAME );\n\t\t\t} );\n\t\t}\n\t}\n}\n\n/**\n * Returns bookmark form validation callbacks.\n */\nfunction getFormValidators( editor: Editor ): Array<BookmarkFormValidatorCallback> {\n\tconst { t } = editor;\n\tconst bookmarkEditing = editor.plugins.get( BookmarkEditing );\n\n\treturn [\n\t\tform => {\n\t\t\tif ( !form.id ) {\n\t\t\t\treturn t( 'Bookmark must not be empty.' );\n\t\t\t}\n\t\t},\n\t\tform => {\n\t\t\tif ( form.id && /\\s/.test( form.id ) ) {\n\t\t\t\treturn t( 'Bookmark name cannot contain space characters.' );\n\t\t\t}\n\t\t},\n\t\tform => {\n\t\t\tconst selectedElement = editor.model.document.selection.getSelectedElement();\n\t\t\tconst existingBookmarkForId = bookmarkEditing.getElementForBookmarkId( form.id! );\n\n\t\t\t// Accept change of bookmark ID if no real change is happening (edit -> submit, without changes).\n\t\t\tif ( selectedElement === existingBookmarkForId ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( existingBookmarkForId ) {\n\t\t\t\treturn t( 'Bookmark name already exists.' );\n\t\t\t}\n\t\t}\n\t];\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module bookmark/bookmark\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport { Widget } from 'ckeditor5/src/widget.js';\nimport BookmarkUI from './bookmarkui.js';\nimport BookmarkEditing from './bookmarkediting.js';\n\n/**\n * The bookmark feature.\n *\n * For a detailed overview, check the {@glink features/bookmarks Bookmarks} feature guide.\n */\nexport default class Bookmark extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'Bookmark' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ BookmarkEditing, BookmarkUI, Widget ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ckeditor/ckeditor5-bookmark",
3
- "version": "0.0.0-nightly-20241026.0",
3
+ "version": "0.0.0-nightly-20241028.0",
4
4
  "description": "Bookmark feature for CKEditor 5.",
5
5
  "keywords": [
6
6
  "ckeditor",
@@ -13,12 +13,12 @@
13
13
  "type": "module",
14
14
  "main": "src/index.js",
15
15
  "dependencies": {
16
- "ckeditor5": "0.0.0-nightly-20241026.0",
17
- "@ckeditor/ckeditor5-core": "0.0.0-nightly-20241026.0",
18
- "@ckeditor/ckeditor5-engine": "0.0.0-nightly-20241026.0",
19
- "@ckeditor/ckeditor5-widget": "0.0.0-nightly-20241026.0",
20
- "@ckeditor/ckeditor5-utils": "0.0.0-nightly-20241026.0",
21
- "@ckeditor/ckeditor5-ui": "0.0.0-nightly-20241026.0"
16
+ "ckeditor5": "0.0.0-nightly-20241028.0",
17
+ "@ckeditor/ckeditor5-core": "0.0.0-nightly-20241028.0",
18
+ "@ckeditor/ckeditor5-engine": "0.0.0-nightly-20241028.0",
19
+ "@ckeditor/ckeditor5-widget": "0.0.0-nightly-20241028.0",
20
+ "@ckeditor/ckeditor5-utils": "0.0.0-nightly-20241028.0",
21
+ "@ckeditor/ckeditor5-ui": "0.0.0-nightly-20241028.0"
22
22
  },
23
23
  "author": "CKSource (http://cksource.com/)",
24
24
  "license": "GPL-2.0-or-later",