@ckeditor/ckeditor5-bookmark 0.0.1 → 44.0.0-alpha.1
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +4 -0
- package/LICENSE.md +4 -5
- package/README.md +31 -3
- package/build/bookmark.js +5 -0
- package/build/translations/af.js +1 -0
- package/build/translations/ar.js +1 -0
- package/build/translations/ast.js +1 -0
- package/build/translations/az.js +1 -0
- package/build/translations/bg.js +1 -0
- package/build/translations/bn.js +1 -0
- package/build/translations/bs.js +1 -0
- package/build/translations/ca.js +1 -0
- package/build/translations/cs.js +1 -0
- package/build/translations/da.js +1 -0
- package/build/translations/de-ch.js +1 -0
- package/build/translations/de.js +1 -0
- package/build/translations/el.js +1 -0
- package/build/translations/en-au.js +1 -0
- package/build/translations/en-gb.js +1 -0
- package/build/translations/eo.js +1 -0
- package/build/translations/es-co.js +1 -0
- package/build/translations/es.js +1 -0
- package/build/translations/et.js +1 -0
- package/build/translations/eu.js +1 -0
- package/build/translations/fa.js +1 -0
- package/build/translations/fi.js +1 -0
- package/build/translations/fr.js +1 -0
- package/build/translations/gl.js +1 -0
- package/build/translations/gu.js +1 -0
- package/build/translations/he.js +1 -0
- package/build/translations/hi.js +1 -0
- package/build/translations/hr.js +1 -0
- package/build/translations/hu.js +1 -0
- package/build/translations/hy.js +1 -0
- package/build/translations/id.js +1 -0
- package/build/translations/it.js +1 -0
- package/build/translations/ja.js +1 -0
- package/build/translations/jv.js +1 -0
- package/build/translations/kk.js +1 -0
- package/build/translations/km.js +1 -0
- package/build/translations/kn.js +1 -0
- package/build/translations/ko.js +1 -0
- package/build/translations/ku.js +1 -0
- package/build/translations/lt.js +1 -0
- package/build/translations/lv.js +1 -0
- package/build/translations/ms.js +1 -0
- package/build/translations/nb.js +1 -0
- package/build/translations/ne.js +1 -0
- package/build/translations/nl.js +1 -0
- package/build/translations/no.js +1 -0
- package/build/translations/oc.js +1 -0
- package/build/translations/pl.js +1 -0
- package/build/translations/pt-br.js +1 -0
- package/build/translations/pt.js +1 -0
- package/build/translations/ro.js +1 -0
- package/build/translations/ru.js +1 -0
- package/build/translations/si.js +1 -0
- package/build/translations/sk.js +1 -0
- package/build/translations/sl.js +1 -0
- package/build/translations/sq.js +1 -0
- package/build/translations/sr-latn.js +1 -0
- package/build/translations/sr.js +1 -0
- package/build/translations/sv.js +1 -0
- package/build/translations/th.js +1 -0
- package/build/translations/ti.js +1 -0
- package/build/translations/tk.js +1 -0
- package/build/translations/tr.js +1 -0
- package/build/translations/tt.js +1 -0
- package/build/translations/ug.js +1 -0
- package/build/translations/uk.js +1 -0
- package/build/translations/ur.js +1 -0
- package/build/translations/uz.js +1 -0
- package/build/translations/vi.js +1 -0
- package/build/translations/zh-cn.js +1 -0
- package/build/translations/zh.js +1 -0
- package/ckeditor5-metadata.json +24 -0
- package/dist/augmentation.d.ts +28 -0
- package/dist/bookmark.d.ts +34 -0
- package/dist/bookmarkconfig.d.ts +52 -0
- package/dist/bookmarkediting.d.ts +55 -0
- package/dist/bookmarkui.d.ts +170 -0
- package/dist/index-content.css +4 -0
- package/dist/index-editor.css +150 -0
- package/dist/index.css +195 -0
- package/dist/index.css.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.js +1320 -0
- package/dist/index.js.map +1 -0
- package/dist/insertbookmarkcommand.d.ts +42 -0
- package/dist/translations/af.d.ts +8 -0
- package/dist/translations/af.js +5 -0
- package/dist/translations/af.umd.js +11 -0
- package/dist/translations/ar.d.ts +8 -0
- package/dist/translations/ar.js +5 -0
- package/dist/translations/ar.umd.js +11 -0
- package/dist/translations/ast.d.ts +8 -0
- package/dist/translations/ast.js +5 -0
- package/dist/translations/ast.umd.js +11 -0
- package/dist/translations/az.d.ts +8 -0
- package/dist/translations/az.js +5 -0
- package/dist/translations/az.umd.js +11 -0
- package/dist/translations/bg.d.ts +8 -0
- package/dist/translations/bg.js +5 -0
- package/dist/translations/bg.umd.js +11 -0
- package/dist/translations/bn.d.ts +8 -0
- package/dist/translations/bn.js +5 -0
- package/dist/translations/bn.umd.js +11 -0
- package/dist/translations/bs.d.ts +8 -0
- package/dist/translations/bs.js +5 -0
- package/dist/translations/bs.umd.js +11 -0
- package/dist/translations/ca.d.ts +8 -0
- package/dist/translations/ca.js +5 -0
- package/dist/translations/ca.umd.js +11 -0
- package/dist/translations/cs.d.ts +8 -0
- package/dist/translations/cs.js +5 -0
- package/dist/translations/cs.umd.js +11 -0
- package/dist/translations/da.d.ts +8 -0
- package/dist/translations/da.js +5 -0
- package/dist/translations/da.umd.js +11 -0
- package/dist/translations/de-ch.d.ts +8 -0
- package/dist/translations/de-ch.js +5 -0
- package/dist/translations/de-ch.umd.js +11 -0
- package/dist/translations/de.d.ts +8 -0
- package/dist/translations/de.js +5 -0
- package/dist/translations/de.umd.js +11 -0
- package/dist/translations/el.d.ts +8 -0
- package/dist/translations/el.js +5 -0
- package/dist/translations/el.umd.js +11 -0
- package/dist/translations/en-au.d.ts +8 -0
- package/dist/translations/en-au.js +5 -0
- package/dist/translations/en-au.umd.js +11 -0
- package/dist/translations/en-gb.d.ts +8 -0
- package/dist/translations/en-gb.js +5 -0
- package/dist/translations/en-gb.umd.js +11 -0
- package/dist/translations/en.d.ts +8 -0
- package/dist/translations/en.js +5 -0
- package/dist/translations/en.umd.js +11 -0
- package/dist/translations/eo.d.ts +8 -0
- package/dist/translations/eo.js +5 -0
- package/dist/translations/eo.umd.js +11 -0
- package/dist/translations/es-co.d.ts +8 -0
- package/dist/translations/es-co.js +5 -0
- package/dist/translations/es-co.umd.js +11 -0
- package/dist/translations/es.d.ts +8 -0
- package/dist/translations/es.js +5 -0
- package/dist/translations/es.umd.js +11 -0
- package/dist/translations/et.d.ts +8 -0
- package/dist/translations/et.js +5 -0
- package/dist/translations/et.umd.js +11 -0
- package/dist/translations/eu.d.ts +8 -0
- package/dist/translations/eu.js +5 -0
- package/dist/translations/eu.umd.js +11 -0
- package/dist/translations/fa.d.ts +8 -0
- package/dist/translations/fa.js +5 -0
- package/dist/translations/fa.umd.js +11 -0
- package/dist/translations/fi.d.ts +8 -0
- package/dist/translations/fi.js +5 -0
- package/dist/translations/fi.umd.js +11 -0
- package/dist/translations/fr.d.ts +8 -0
- package/dist/translations/fr.js +5 -0
- package/dist/translations/fr.umd.js +11 -0
- package/dist/translations/gl.d.ts +8 -0
- package/dist/translations/gl.js +5 -0
- package/dist/translations/gl.umd.js +11 -0
- package/dist/translations/gu.d.ts +8 -0
- package/dist/translations/gu.js +5 -0
- package/dist/translations/gu.umd.js +11 -0
- package/dist/translations/he.d.ts +8 -0
- package/dist/translations/he.js +5 -0
- package/dist/translations/he.umd.js +11 -0
- package/dist/translations/hi.d.ts +8 -0
- package/dist/translations/hi.js +5 -0
- package/dist/translations/hi.umd.js +11 -0
- package/dist/translations/hr.d.ts +8 -0
- package/dist/translations/hr.js +5 -0
- package/dist/translations/hr.umd.js +11 -0
- package/dist/translations/hu.d.ts +8 -0
- package/dist/translations/hu.js +5 -0
- package/dist/translations/hu.umd.js +11 -0
- package/dist/translations/hy.d.ts +8 -0
- package/dist/translations/hy.js +5 -0
- package/dist/translations/hy.umd.js +11 -0
- package/dist/translations/id.d.ts +8 -0
- package/dist/translations/id.js +5 -0
- package/dist/translations/id.umd.js +11 -0
- package/dist/translations/it.d.ts +8 -0
- package/dist/translations/it.js +5 -0
- package/dist/translations/it.umd.js +11 -0
- package/dist/translations/ja.d.ts +8 -0
- package/dist/translations/ja.js +5 -0
- package/dist/translations/ja.umd.js +11 -0
- package/dist/translations/jv.d.ts +8 -0
- package/dist/translations/jv.js +5 -0
- package/dist/translations/jv.umd.js +11 -0
- package/dist/translations/kk.d.ts +8 -0
- package/dist/translations/kk.js +5 -0
- package/dist/translations/kk.umd.js +11 -0
- package/dist/translations/km.d.ts +8 -0
- package/dist/translations/km.js +5 -0
- package/dist/translations/km.umd.js +11 -0
- package/dist/translations/kn.d.ts +8 -0
- package/dist/translations/kn.js +5 -0
- package/dist/translations/kn.umd.js +11 -0
- package/dist/translations/ko.d.ts +8 -0
- package/dist/translations/ko.js +5 -0
- package/dist/translations/ko.umd.js +11 -0
- package/dist/translations/ku.d.ts +8 -0
- package/dist/translations/ku.js +5 -0
- package/dist/translations/ku.umd.js +11 -0
- package/dist/translations/lt.d.ts +8 -0
- package/dist/translations/lt.js +5 -0
- package/dist/translations/lt.umd.js +11 -0
- package/dist/translations/lv.d.ts +8 -0
- package/dist/translations/lv.js +5 -0
- package/dist/translations/lv.umd.js +11 -0
- package/dist/translations/ms.d.ts +8 -0
- package/dist/translations/ms.js +5 -0
- package/dist/translations/ms.umd.js +11 -0
- package/dist/translations/nb.d.ts +8 -0
- package/dist/translations/nb.js +5 -0
- package/dist/translations/nb.umd.js +11 -0
- package/dist/translations/ne.d.ts +8 -0
- package/dist/translations/ne.js +5 -0
- package/dist/translations/ne.umd.js +11 -0
- package/dist/translations/nl.d.ts +8 -0
- package/dist/translations/nl.js +5 -0
- package/dist/translations/nl.umd.js +11 -0
- package/dist/translations/no.d.ts +8 -0
- package/dist/translations/no.js +5 -0
- package/dist/translations/no.umd.js +11 -0
- package/dist/translations/oc.d.ts +8 -0
- package/dist/translations/oc.js +5 -0
- package/dist/translations/oc.umd.js +11 -0
- package/dist/translations/pl.d.ts +8 -0
- package/dist/translations/pl.js +5 -0
- package/dist/translations/pl.umd.js +11 -0
- package/dist/translations/pt-br.d.ts +8 -0
- package/dist/translations/pt-br.js +5 -0
- package/dist/translations/pt-br.umd.js +11 -0
- package/dist/translations/pt.d.ts +8 -0
- package/dist/translations/pt.js +5 -0
- package/dist/translations/pt.umd.js +11 -0
- package/dist/translations/ro.d.ts +8 -0
- package/dist/translations/ro.js +5 -0
- package/dist/translations/ro.umd.js +11 -0
- package/dist/translations/ru.d.ts +8 -0
- package/dist/translations/ru.js +5 -0
- package/dist/translations/ru.umd.js +11 -0
- package/dist/translations/si.d.ts +8 -0
- package/dist/translations/si.js +5 -0
- package/dist/translations/si.umd.js +11 -0
- package/dist/translations/sk.d.ts +8 -0
- package/dist/translations/sk.js +5 -0
- package/dist/translations/sk.umd.js +11 -0
- package/dist/translations/sl.d.ts +8 -0
- package/dist/translations/sl.js +5 -0
- package/dist/translations/sl.umd.js +11 -0
- package/dist/translations/sq.d.ts +8 -0
- package/dist/translations/sq.js +5 -0
- package/dist/translations/sq.umd.js +11 -0
- package/dist/translations/sr-latn.d.ts +8 -0
- package/dist/translations/sr-latn.js +5 -0
- package/dist/translations/sr-latn.umd.js +11 -0
- package/dist/translations/sr.d.ts +8 -0
- package/dist/translations/sr.js +5 -0
- package/dist/translations/sr.umd.js +11 -0
- package/dist/translations/sv.d.ts +8 -0
- package/dist/translations/sv.js +5 -0
- package/dist/translations/sv.umd.js +11 -0
- package/dist/translations/th.d.ts +8 -0
- package/dist/translations/th.js +5 -0
- package/dist/translations/th.umd.js +11 -0
- package/dist/translations/ti.d.ts +8 -0
- package/dist/translations/ti.js +5 -0
- package/dist/translations/ti.umd.js +11 -0
- package/dist/translations/tk.d.ts +8 -0
- package/dist/translations/tk.js +5 -0
- package/dist/translations/tk.umd.js +11 -0
- package/dist/translations/tr.d.ts +8 -0
- package/dist/translations/tr.js +5 -0
- package/dist/translations/tr.umd.js +11 -0
- package/dist/translations/tt.d.ts +8 -0
- package/dist/translations/tt.js +5 -0
- package/dist/translations/tt.umd.js +11 -0
- package/dist/translations/ug.d.ts +8 -0
- package/dist/translations/ug.js +5 -0
- package/dist/translations/ug.umd.js +11 -0
- package/dist/translations/uk.d.ts +8 -0
- package/dist/translations/uk.js +5 -0
- package/dist/translations/uk.umd.js +11 -0
- package/dist/translations/ur.d.ts +8 -0
- package/dist/translations/ur.js +5 -0
- package/dist/translations/ur.umd.js +11 -0
- package/dist/translations/uz.d.ts +8 -0
- package/dist/translations/uz.js +5 -0
- package/dist/translations/uz.umd.js +11 -0
- package/dist/translations/vi.d.ts +8 -0
- package/dist/translations/vi.js +5 -0
- package/dist/translations/vi.umd.js +11 -0
- package/dist/translations/zh-cn.d.ts +8 -0
- package/dist/translations/zh-cn.js +5 -0
- package/dist/translations/zh-cn.umd.js +11 -0
- package/dist/translations/zh.d.ts +8 -0
- package/dist/translations/zh.js +5 -0
- package/dist/translations/zh.umd.js +11 -0
- package/dist/ui/bookmarkactionsview.d.ts +106 -0
- package/dist/ui/bookmarkformview.d.ts +122 -0
- package/dist/updatebookmarkcommand.d.ts +46 -0
- package/dist/utils.d.ts +15 -0
- package/lang/contexts.json +13 -0
- package/lang/translations/af.po +56 -0
- package/lang/translations/ar.po +56 -0
- package/lang/translations/ast.po +56 -0
- package/lang/translations/az.po +56 -0
- package/lang/translations/bg.po +56 -0
- package/lang/translations/bn.po +56 -0
- package/lang/translations/bs.po +56 -0
- package/lang/translations/ca.po +56 -0
- package/lang/translations/cs.po +56 -0
- package/lang/translations/da.po +56 -0
- package/lang/translations/de-ch.po +56 -0
- package/lang/translations/de.po +56 -0
- package/lang/translations/el.po +56 -0
- package/lang/translations/en-au.po +56 -0
- package/lang/translations/en-gb.po +56 -0
- package/lang/translations/en.po +56 -0
- package/lang/translations/eo.po +56 -0
- package/lang/translations/es-co.po +56 -0
- package/lang/translations/es.po +56 -0
- package/lang/translations/et.po +56 -0
- package/lang/translations/eu.po +56 -0
- package/lang/translations/fa.po +56 -0
- package/lang/translations/fi.po +56 -0
- package/lang/translations/fr.po +56 -0
- package/lang/translations/gl.po +56 -0
- package/lang/translations/gu.po +56 -0
- package/lang/translations/he.po +56 -0
- package/lang/translations/hi.po +56 -0
- package/lang/translations/hr.po +56 -0
- package/lang/translations/hu.po +56 -0
- package/lang/translations/hy.po +56 -0
- package/lang/translations/id.po +56 -0
- package/lang/translations/it.po +56 -0
- package/lang/translations/ja.po +56 -0
- package/lang/translations/jv.po +56 -0
- package/lang/translations/kk.po +56 -0
- package/lang/translations/km.po +56 -0
- package/lang/translations/kn.po +56 -0
- package/lang/translations/ko.po +56 -0
- package/lang/translations/ku.po +56 -0
- package/lang/translations/lt.po +56 -0
- package/lang/translations/lv.po +56 -0
- package/lang/translations/ms.po +56 -0
- package/lang/translations/nb.po +56 -0
- package/lang/translations/ne.po +56 -0
- package/lang/translations/nl.po +56 -0
- package/lang/translations/no.po +56 -0
- package/lang/translations/oc.po +56 -0
- package/lang/translations/pl.po +56 -0
- package/lang/translations/pt-br.po +56 -0
- package/lang/translations/pt.po +56 -0
- package/lang/translations/ro.po +56 -0
- package/lang/translations/ru.po +56 -0
- package/lang/translations/si.po +56 -0
- package/lang/translations/sk.po +56 -0
- package/lang/translations/sl.po +56 -0
- package/lang/translations/sq.po +56 -0
- package/lang/translations/sr-latn.po +56 -0
- package/lang/translations/sr.po +56 -0
- package/lang/translations/sv.po +56 -0
- package/lang/translations/th.po +56 -0
- package/lang/translations/ti.po +56 -0
- package/lang/translations/tk.po +56 -0
- package/lang/translations/tr.po +56 -0
- package/lang/translations/tt.po +56 -0
- package/lang/translations/ug.po +56 -0
- package/lang/translations/uk.po +56 -0
- package/lang/translations/ur.po +56 -0
- package/lang/translations/uz.po +56 -0
- package/lang/translations/vi.po +56 -0
- package/lang/translations/zh-cn.po +56 -0
- package/lang/translations/zh.po +56 -0
- package/package.json +32 -3
- package/src/augmentation.d.ts +24 -0
- package/src/augmentation.js +5 -0
- package/src/bookmark.d.ts +30 -0
- package/src/bookmark.js +36 -0
- package/src/bookmarkconfig.d.ts +48 -0
- package/src/bookmarkconfig.js +5 -0
- package/src/bookmarkediting.d.ts +51 -0
- package/src/bookmarkediting.js +211 -0
- package/src/bookmarkui.d.ts +166 -0
- package/src/bookmarkui.js +582 -0
- package/src/index.d.ts +14 -0
- package/src/index.js +13 -0
- package/src/insertbookmarkcommand.d.ts +38 -0
- package/src/insertbookmarkcommand.js +113 -0
- package/src/ui/bookmarkactionsview.d.ts +102 -0
- package/src/ui/bookmarkactionsview.js +154 -0
- package/src/ui/bookmarkformview.d.ts +118 -0
- package/src/ui/bookmarkformview.js +203 -0
- package/src/updatebookmarkcommand.d.ts +42 -0
- package/src/updatebookmarkcommand.js +75 -0
- package/src/utils.d.ts +11 -0
- package/src/utils.js +19 -0
- package/theme/bookmark.css +50 -0
- package/theme/bookmarkactions.css +44 -0
- package/theme/bookmarkform.css +42 -0
@@ -0,0 +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","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","bookmarkInline","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\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 ` `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: icons.bookmarkInline,\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 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: icons.bookmark\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\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 ` `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: icons.bookmarkInline,\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 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: icons.bookmark\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"]}
|