{"version":3,"file":"suggestion.cjs","sources":["../../../../../components/rich_text_editor/extensions/mentions/suggestion.js"],"sourcesContent":["import { VueRenderer } from '@tiptap/vue-2';\nimport tippy from 'tippy.js';\n\nimport SuggestionList from '../suggestion/SuggestionList.vue';\nimport MentionSuggestion from './MentionSuggestion.vue';\nimport hideOnEsc from '../tippy_plugins/hide_on_esc';\n\nexport default {\n\n  // This function comes from the user and passed to the editor directly.\n  // This will also activate the mention plugin on the editor\n  // items: ({ query }) => { return [] },\n\n  allowSpaces: true,\n\n  render: () => {\n    let component;\n    let popup;\n    let popupIsOpen = false;\n\n    return {\n      onStart: props => {\n        component = new VueRenderer(SuggestionList, {\n          parent: this,\n          propsData: {\n            itemComponent: MentionSuggestion,\n            itemType: 'mention',\n            ...props,\n          },\n          editor: props.editor,\n        });\n\n        if (!props.clientRect) {\n          return;\n        }\n\n        popup = tippy('body', {\n          getReferenceClientRect: props.clientRect,\n          appendTo: () => document.body,\n          content: component.element,\n          showOnCreate: false,\n          onShow: () => { popupIsOpen = true; },\n          onHidden: () => { popupIsOpen = false; },\n          interactive: true,\n          trigger: 'manual',\n          placement: 'top-start',\n          zIndex: 650,\n          plugins: [hideOnEsc],\n        });\n\n        if (props.items.length > 0) {\n          popup?.[0].show();\n        }\n      },\n\n      onUpdate (props) {\n        component?.updateProps(props);\n\n        if (props.items.length > 0) {\n          popup?.[0].show();\n        } else {\n          popup?.[0].hide();\n        }\n\n        if (!props.clientRect) {\n          return;\n        }\n\n        popup?.[0].setProps({\n          getReferenceClientRect: props.clientRect,\n        });\n      },\n\n      onKeyDown (props) {\n        if (popupIsOpen) {\n          return component?.ref?.onKeyDown(props);\n        }\n      },\n\n      onExit () {\n        popup?.[0].destroy();\n        popup = null;\n        component?.destroy();\n        component = null;\n      },\n    };\n  },\n};\n"],"names":["VueRenderer","SuggestionList","this","MentionSuggestion","hideOnEsc"],"mappings":";;;;;;;AAOA,MAAe,oBAAA;AAAA;AAAA;AAAA;AAAA,EAMb,aAAa;AAAA,EAEb,QAAQ,MAAM;AACZ,QAAI;AACJ,QAAI;AACJ,QAAI,cAAc;AAElB,WAAO;AAAA,MACL,SAAS,WAAS;AAChB,oBAAY,IAAIA,KAAW,YAACC,wBAAgB;AAAA,UAC1C,QAAQC;AAAAA,UACR,WAAW;AAAA,YACT,eAAeC,kBAAiB;AAAA,YAChC,UAAU;AAAA,YACV,GAAG;AAAA,UACJ;AAAA,UACD,QAAQ,MAAM;AAAA,QACxB,CAAS;AAED,YAAI,CAAC,MAAM,YAAY;AACrB;AAAA,QACD;AAED,gBAAQ,MAAM,QAAQ;AAAA,UACpB,wBAAwB,MAAM;AAAA,UAC9B,UAAU,MAAM,SAAS;AAAA,UACzB,SAAS,UAAU;AAAA,UACnB,cAAc;AAAA,UACd,QAAQ,MAAM;AAAE,0BAAc;AAAA,UAAO;AAAA,UACrC,UAAU,MAAM;AAAE,0BAAc;AAAA,UAAQ;AAAA,UACxC,aAAa;AAAA,UACb,SAAS;AAAA,UACT,WAAW;AAAA,UACX,QAAQ;AAAA,UACR,SAAS,CAACC,YAAAA,OAAS;AAAA,QAC7B,CAAS;AAED,YAAI,MAAM,MAAM,SAAS,GAAG;AAC1B,yCAAQ,GAAG;AAAA,QACZ;AAAA,MACF;AAAA,MAED,SAAU,OAAO;AACf,+CAAW,YAAY;AAEvB,YAAI,MAAM,MAAM,SAAS,GAAG;AAC1B,yCAAQ,GAAG;AAAA,QACrB,OAAe;AACL,yCAAQ,GAAG;AAAA,QACZ;AAED,YAAI,CAAC,MAAM,YAAY;AACrB;AAAA,QACD;AAED,uCAAQ,GAAG,SAAS;AAAA,UAClB,wBAAwB,MAAM;AAAA,QACxC;AAAA,MACO;AAAA,MAED,UAAW,OAAO;;AAChB,YAAI,aAAa;AACf,kBAAO,4CAAW,QAAX,mBAAgB,UAAU;AAAA,QAClC;AAAA,MACF;AAAA,MAED,SAAU;AACR,uCAAQ,GAAG;AACX,gBAAQ;AACR,+CAAW;AACX,oBAAY;AAAA,MACb;AAAA,IACP;AAAA,EACG;AACH;;"}