{"version":3,"file":"rich-text-editor.mjs","sources":["../../../../../../packages/components/rich-text-editor/src/rich-text-editor.ts"],"sourcesContent":["import type { ExtractPropTypes } from 'vue'\r\n\r\nimport { buildProps, definePropType, fileToBase64 } from '@ll-plus/utils'\r\nimport type {\r\n  IToolbarConfig,\r\n  IEditorConfig,\r\n  IDomEditor,\r\n  SlateElement\r\n} from '@wangeditor/editor'\r\nimport type RichTextEditor from './rich-text-editor.vue'\r\n\r\nexport const defaultToolbarConfig: IToolbarConfig = {} as IToolbarConfig\r\n\r\nexport const defaultEditorConfig: IEditorConfig = {\r\n  placeholder: '请输入内容...'\r\n} as IEditorConfig\r\n\r\nexport const FALLBACK_IMAGE =\r\n  'data:image/png;base64,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'\r\n\r\n//图片类型定义\r\nexport type ImageElement = SlateElement & {\r\n  src: string\r\n  alt: string\r\n  url: string\r\n  href: string\r\n}\r\nexport type InsertPicType = (url: string) => void\r\n\r\nexport type InsertVidType = (url: string, poster: string) => void\r\n\r\nexport type RichTextEditorMode = 'default' | 'simple'\r\n\r\nexport type RichTextEditorModeCustomUploadImage = (\r\n  file: File\r\n) => Promise<string>\r\n\r\nexport type RichTextEditorModeCustomUploadVideo = (\r\n  file: File\r\n) => Promise<string>\r\n\r\nexport const richTextEditorProps = buildProps({\r\n  value: {\r\n    type: String,\r\n    default: ''\r\n  },\r\n  mode: {\r\n    type: definePropType<RichTextEditorMode>(String),\r\n    default: 'default'\r\n  },\r\n  toolbarConfig: {\r\n    type: Object,\r\n    default: () => defaultToolbarConfig\r\n  },\r\n  editorConfig: {\r\n    type: Object,\r\n    default: () => defaultEditorConfig\r\n  },\r\n  onBeforeUploadImage: {\r\n    type: definePropType<(file: File) => boolean>(Function),\r\n    default: async () => {\r\n      return true\r\n    }\r\n  },\r\n  customUploadImage: {\r\n    type: definePropType<RichTextEditorModeCustomUploadImage>(Function),\r\n    default: async (file: File) => {\r\n      return await fileToBase64(file)\r\n    }\r\n  },\r\n  customUploadVideo: {\r\n    type: definePropType<RichTextEditorModeCustomUploadVideo>(Function),\r\n    default: null\r\n  },\r\n  uploadImageError: {\r\n    type: String,\r\n    default: '上传失败！'\r\n  },\r\n  loading: {\r\n    type: Boolean,\r\n    default: false\r\n  },\r\n  disabled: {\r\n    type: Boolean,\r\n    default: false\r\n  }\r\n} as const)\r\n\r\nexport const richTextEditorEmits = {\r\n  'update:value': (val: string) => !!val,\r\n  created: (editor: IDomEditor) => !!editor,\r\n  change: (editor: IDomEditor) => !!editor,\r\n  destroyed: (editor: IDomEditor) => !!editor,\r\n  focus: (editor: IDomEditor) => !!editor,\r\n  blur: (editor: IDomEditor) => !!editor,\r\n  alert: ([info, type]) => !![info, type],\r\n  paste: ([editor, callback]: [IDomEditor, (bool: boolean) => void]) =>\r\n    !![editor, callback]\r\n}\r\n//props\r\nexport type RichTextEditorProps = ExtractPropTypes<typeof richTextEditorProps>\r\n\r\n//emits\r\nexport type RichTextEditorEmits = typeof richTextEditorEmits\r\n\r\n// instance\r\nexport type RichTextEditorInstance = InstanceType<typeof RichTextEditor>\r\n"],"names":[],"mappings":";;;;;AAWO,MAAM,uBAAuC;AAE7C,MAAM,mBAAA,GAAqC;AAAA,EAChD,WAAA,EAAa;AACf;AAEO,MAAM,cAAA,GACX;AAuBK,MAAM,sBAAsB,UAAA,CAAW;AAAA,EAC5C,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,eAAmC,MAAM,CAAA;AAAA,IAC/C,OAAA,EAAS;AAAA,GACX;AAAA,EACA,aAAA,EAAe;AAAA,IACb,IAAA,EAAM,MAAA;AAAA,IACN,SAAS,MAAM;AAAA,GACjB;AAAA,EACA,YAAA,EAAc;AAAA,IACZ,IAAA,EAAM,MAAA;AAAA,IACN,SAAS,MAAM;AAAA,GACjB;AAAA,EACA,mBAAA,EAAqB;AAAA,IACnB,IAAA,EAAM,eAAwC,QAAQ,CAAA;AAAA,IACtD,SAAS,YAAY;AACnB,MAAA,OAAO,IAAA;AAAA,IACT;AAAA,GACF;AAAA,EACA,iBAAA,EAAmB;AAAA,IACjB,IAAA,EAAM,eAAoD,QAAQ,CAAA;AAAA,IAClE,OAAA,EAAS,OAAO,IAAA,KAAe;AAC7B,MAAA,OAAO,MAAM,aAAa,IAAI,CAAA;AAAA,IAChC;AAAA,GACF;AAAA,EACA,iBAAA,EAAmB;AAAA,IACjB,IAAA,EAAM,eAAoD,QAAQ,CAAA;AAAA,IAClE,OAAA,EAAS;AAAA,GACX;AAAA,EACA,gBAAA,EAAkB;AAAA,IAChB,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA,EACA,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,OAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,OAAA;AAAA,IACN,OAAA,EAAS;AAAA;AAEb,CAAU;AAEH,MAAM,mBAAA,GAAsB;AAAA,EACjC,cAAA,EAAgB,CAAC,GAAA,KAAgB,CAAC,CAAC,GAAA;AAAA,EACnC,OAAA,EAAS,CAAC,MAAA,KAAuB,CAAC,CAAC,MAAA;AAAA,EACnC,MAAA,EAAQ,CAAC,MAAA,KAAuB,CAAC,CAAC,MAAA;AAAA,EAClC,SAAA,EAAW,CAAC,MAAA,KAAuB,CAAC,CAAC,MAAA;AAAA,EACrC,KAAA,EAAO,CAAC,MAAA,KAAuB,CAAC,CAAC,MAAA;AAAA,EACjC,IAAA,EAAM,CAAC,MAAA,KAAuB,CAAC,CAAC,MAAA;AAAA,EAChC,KAAA,EAAO,CAAC,CAAC,IAAA,EAAM,IAAI,MAAM,CAAC,CAAC,CAAC,IAAA,EAAM,IAAI,CAAA;AAAA,EACtC,KAAA,EAAO,CAAC,CAAC,MAAA,EAAQ,QAAQ,MACvB,CAAC,CAAC,CAAC,MAAA,EAAQ,QAAQ;AACvB;;;;"}