@ibiz-template/mob-vue3-components 0.7.41-alpha.17 → 0.7.41-alpha.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/ibiz-markdown-editor-CpFrKPxk.js +2 -0
  2. package/dist/ibiz-markdown-editor-CpFrKPxk.js.map +1 -0
  3. package/dist/{index-CLxzVzNz.js → index-DO9R8HNp.js} +13 -13
  4. package/dist/index-DO9R8HNp.js.map +1 -0
  5. package/dist/index.min.css +3 -3
  6. package/dist/index.system.min.js +1 -1
  7. package/dist/{quill-CG16aqds.js → quill-DKjojHxx.js} +2 -2
  8. package/dist/{quill-CG16aqds.js.map → quill-DKjojHxx.js.map} +1 -1
  9. package/dist/quill-editor-B4FDYSA7.js +2 -0
  10. package/dist/quill-editor-B4FDYSA7.js.map +1 -0
  11. package/dist/{quill-editor-preview-YXGzGLmQ.js → quill-editor-preview-6GV-nd2y.js} +2 -2
  12. package/dist/{quill-editor-preview-YXGzGLmQ.js.map → quill-editor-preview-6GV-nd2y.js.map} +1 -1
  13. package/es/editor/cascader/ibiz-cascader/ibiz-cascader.mjs +3 -0
  14. package/es/editor/check-box/ibiz-checkbox/ibiz-checkbox.mjs +8 -2
  15. package/es/editor/date-range/date-range-editor.controller.mjs +4 -1
  16. package/es/editor/date-range/ibiz-date-range-picker/ibiz-date-range-picker.mjs +12 -0
  17. package/es/editor/html/html-editor.controller.mjs +52 -1
  18. package/es/editor/html/quill-editor/quill-editor.mjs +10 -1
  19. package/es/editor/index.mjs +13 -3
  20. package/es/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.mjs +10 -1
  21. package/es/editor/slider/ibiz-slider/ibiz-slider.mjs +25 -0
  22. package/es/editor/upload/ibiz-image-select/ibiz-image-select.mjs +5 -2
  23. package/es/editor/upload/ibiz-image-upload/ibiz-image-upload.mjs +5 -2
  24. package/es/editor/upload/upload-editor.controller.mjs +29 -1
  25. package/es/editor/upload/use/use-van-upload.mjs +8 -1
  26. package/es/platform/ios-platform-provider.mjs +11 -0
  27. package/es/platform/wechat-official-platform-provider.mjs +11 -0
  28. package/lib/editor/cascader/ibiz-cascader/ibiz-cascader.cjs +3 -0
  29. package/lib/editor/check-box/ibiz-checkbox/ibiz-checkbox.cjs +8 -2
  30. package/lib/editor/date-range/date-range-editor.controller.cjs +4 -1
  31. package/lib/editor/date-range/ibiz-date-range-picker/ibiz-date-range-picker.cjs +12 -0
  32. package/lib/editor/html/html-editor.controller.cjs +52 -1
  33. package/lib/editor/html/quill-editor/quill-editor.cjs +10 -1
  34. package/lib/editor/index.cjs +14 -4
  35. package/lib/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.cjs +10 -1
  36. package/lib/editor/slider/ibiz-slider/ibiz-slider.cjs +25 -0
  37. package/lib/editor/upload/ibiz-image-select/ibiz-image-select.cjs +5 -2
  38. package/lib/editor/upload/ibiz-image-upload/ibiz-image-upload.cjs +5 -2
  39. package/lib/editor/upload/upload-editor.controller.cjs +29 -1
  40. package/lib/editor/upload/use/use-van-upload.cjs +8 -1
  41. package/lib/platform/ios-platform-provider.cjs +11 -0
  42. package/lib/platform/wechat-official-platform-provider.cjs +11 -0
  43. package/package.json +5 -5
  44. package/dist/ibiz-markdown-editor-B7D3K0dJ.js +0 -2
  45. package/dist/ibiz-markdown-editor-B7D3K0dJ.js.map +0 -1
  46. package/dist/index-CLxzVzNz.js.map +0 -1
  47. package/dist/quill-editor-C7zYyQrk.js +0 -2
  48. package/dist/quill-editor-C7zYyQrk.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ System.register(["vue","@ibiz-template/vue3-util","qx-util","cherry-markdown","@ibiz-template/core"],function($){"use strict";var C,s,u,r,c,k,I,f,U,M,P,N,m,w,O,z;return{setters:[function(n){C=n.defineComponent,s=n.createVNode,u=n.resolveComponent,r=n.ref,c=n.watch,k=n.onMounted,I=n.onUnmounted,f=n.nextTick},function(n){U=n.getEditorEmits,M=n.getMarkDownProps,P=n.useNamespace,N=n.useUIStore},function(n){m=n.createUUID},function(n){w=n.default},function(n){O=n.getAppCookie,z=n.CoreConst}],execute:function(){const n=$("default",C({name:"IBizMarkDown",props:M(),emits:U(),setup(i,{emit:J}){const V=P("markdown"),y=i.controller,l=r(""),a=r(null),p=r(null),x=m(),b=m(),A=r({[`${ibiz.env.tokenHeader}Authorization`]:`${ibiz.env.tokenPrefix}Bearer ${O(z.TOKEN)}`}),D=r(""),E=r(""),{UIStore:S}=N(),d=r(S.theme),_=r("editOnly"),g=r(""),j=r({});c(()=>i.data,e=>{if(e){const t={...y.editorParams};t.uploadparams&&(t.uploadParams=JSON.parse(t.uploadparams)),t.exportparams&&(t.exportParams=JSON.parse(t.exportparams));const o=ibiz.util.file.calcFileUpDownUrl(y.context,y.params,e,t);D.value=o.uploadUrl,E.value=o.downloadUrl}},{immediate:!0,deep:!0});const q=async(e,t)=>{const o=await ibiz.util.file.fileUpload(D.value,e,A.value),h=E.value.replace("%fileId%",o.fileid);t(h)},F=()=>{var e;return(e=a.value)==null?void 0:e.getHtml()},v=()=>{var e;return(e=a.value)==null?void 0:e.getMarkdown()},B=e=>{var t,o;(t=a.value)==null||t.setMarkdown(e,!1),(o=p.value)==null||o.setMarkdown(e,!1)},K=e=>{var t;(t=p.value)==null||t.setMarkdown(e,!0)};c(()=>i.value,(e,t)=>{e!==t&&(e?l.value=e:l.value="")},{immediate:!0}),c(l,(e,t)=>{const o=v();e!==t&&o!==e&&B(e)});const W=e=>{K(v()),J("change",v())},L=(e,t)=>({[e]:t}),T={value:l.value,theme:d.value,fileUpload:q,emoji:{useUnicode:!0},header:{anchorStyle:"autonumber"},editor:{height:"100%",defaultModel:_.value,codemirror:{autofocus:!1}},toolbars:{theme:d.value,toolbar:["switchModel","bold","italic","strikethrough","header",{insert:["image","audio","video","link","hr","br","code","formula","toc","table","pdf","word"]},"settings"]}},Q=()=>{const e={id:x,...T,callback:{afterChange:W,beforeImageMounted:L},value:l.value};f(()=>{a.value=new w(e)})},R=()=>{const e={id:b,...T,editor:{defaultModel:"previewOnly"}};f(()=>{p.value=new w(e)})};k(()=>{R()}),c(()=>S.theme,e=>{var t;d.value=e,(t=a.value)==null||t.setTheme(d.value)}),I(()=>{a.value=null,p.value=null});const G=r(!1),X=e=>{const t={type:"",url:""};return e.nodeName==="A"?(t.type="A",t.url=e.hash):e.parentNode&&e.parentNode.nodeName==="A"?(t.type="A",t.url=e.parentNode.hash):e.nodeName==="IMG"&&(t.type="IMG",t.url=e.src),t};return{ns:V,currentVal:l,id:x,previewId:b,editor:a,headers:A,theme:d,defaultModel:_,cssVars:j,getCherryHtml:F,getCherryContent:v,setCherryContent:B,openPicker:async e=>{const{target:t}=e;if(t){const o=X(t);if(o.type==="A"&&o.url.startsWith("#")){e.preventDefault(),e.stopPropagation();const h=o.url.slice(1);if(h){if(document.getElementById(b)){const H=document.getElementById(h);H&&H.scrollIntoView({behavior:"smooth"})}return}}if(o.type==="IMG"&&o.url){g.value=o.url;return}}i.disabled||i.readonly||(G.value=!0,a.value||Q())},isOpen:G,previewImage:g,handlePreviewClose:()=>{g.value=""}}},render(){return s("div",{class:[this.ns.b(),this.disabled?this.ns.m("disabled"):"",this.readonly?this.ns.m("readonly"):""]},[s(u("van-field"),{readonly:!0,disabled:this.disabled,onClick:this.openPicker},{input:s("div",{id:this.previewId,style:this.cssVars,class:this.ns.b("cherry")},null)}),s(u("van-popup"),{class:this.ns.b("image-popup"),show:!!this.previewImage,"close-on-popstate":!0,onClose:this.handlePreviewClose},{default:()=>[s(u("iBizPreviewImage"),{url:this.previewImage},null)]}),s(u("van-dialog"),{show:this.isOpen,"onUpdate:show":i=>this.isOpen=i,className:this.ns.b("dialog"),"close-on-popstate":!0},{default:()=>s("div",{id:this.id,style:this.cssVars,class:[this.ns.b("cherry"),this.ns.is("hidden",!this.isOpen)]},null)})])}}))}}});
2
+ //# sourceMappingURL=ibiz-markdown-editor-CpFrKPxk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ibiz-markdown-editor-CpFrKPxk.js","sources":["../src/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.tsx"],"sourcesContent":["import {\n defineComponent,\n nextTick,\n onMounted,\n onUnmounted,\n Ref,\n ref,\n watch,\n} from 'vue';\nimport {\n getMarkDownProps,\n getEditorEmits,\n useUIStore,\n useNamespace,\n} from '@ibiz-template/vue3-util';\nimport { createUUID } from 'qx-util';\nimport Cherry from 'cherry-markdown';\nimport { CoreConst, getAppCookie } from '@ibiz-template/core';\nimport { MarkDownEditorController } from '../markdown-editor.controller';\nimport './ibiz-markdown-editor.scss';\n\n/**\n * 移动端Markdown编辑框\n * @primary\n * @description 基于cherry-markdown深度定制可扩展的Markdown编辑器,用于Markdown文档编辑。支持编辑器类型包含:`移动端Markdown编辑框`\n * @editorparams {name:uploadparams,parameterType:string,description:上传参数,图片或文件上传时,用于计算上传路径}\n * @editorparams {name:exportparams,parameterType:string,description:下载参数,图片或文件下载时,用于计算下载路径}\n * @editorparams {name:osscat,parameterType:string,description:用于计算上传和下载路径的OSS参数}\n * @editorparams {name:readonly,parameterType:boolean,defaultvalue:false,description:设置编辑器是否为只读态}\n * @ignoreprops autoFocus | overflowMode\n * @ignoreemits blur | focus | infoTextChange | enter\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst IBizMarkDown: any = defineComponent({\n name: 'IBizMarkDown',\n props: getMarkDownProps<MarkDownEditorController>(),\n emits: getEditorEmits(),\n setup(props, { emit }) {\n const ns = useNamespace('markdown');\n\n const c = props.controller!;\n\n const currentVal = ref<string>('');\n\n const editor = ref<Cherry | null>(null);\n const editorPreview = ref<Cherry | null>(null);\n\n const id = createUUID();\n const previewId = createUUID();\n\n // 请求头\n const headers: Ref<IData> = ref({\n [`${ibiz.env.tokenHeader}Authorization`]: `${\n ibiz.env.tokenPrefix\n }Bearer ${getAppCookie(CoreConst.TOKEN)}`,\n });\n\n // 上传文件路径\n const uploadUrl: Ref<string> = ref('');\n\n // 下载文件路径\n const downloadUrl: Ref<string> = ref('');\n\n // 编辑器主题\n const { UIStore } = useUIStore();\n const theme = ref(UIStore.theme);\n\n // 编辑器模式\n const defaultModel = ref('editOnly');\n\n // 预览态预览图片地址\n const previewImage: Ref<string> = ref('');\n\n // 样式变量\n const cssVars = ref({});\n\n // data响应式变更基础路径\n watch(\n () => props.data,\n newVal => {\n if (newVal) {\n const editorParams = { ...c.editorParams };\n if (editorParams.uploadparams) {\n editorParams.uploadParams = JSON.parse(editorParams.uploadparams);\n }\n if (editorParams.exportparams) {\n editorParams.exportParams = JSON.parse(editorParams.exportparams);\n }\n const urls = ibiz.util.file.calcFileUpDownUrl(\n c.context,\n c.params,\n newVal,\n editorParams,\n );\n uploadUrl.value = urls.uploadUrl;\n downloadUrl.value = urls.downloadUrl;\n }\n },\n { immediate: true, deep: true },\n );\n\n // // 自定义图片上传\n const fileUpload = async (file: Blob, callback: (_url: string) => void) => {\n const data = await ibiz.util.file.fileUpload(\n uploadUrl.value,\n file,\n headers.value,\n );\n const url = downloadUrl.value.replace('%fileId%', data.fileid);\n callback(url);\n };\n\n // 获取渲染后html内容\n const getCherryHtml = () => {\n const result = editor.value?.getHtml();\n return result;\n };\n\n // 获取markdown内容\n const getCherryContent = () => {\n const result = editor.value?.getMarkdown();\n return result;\n };\n\n // 设置markdown内容\n const setCherryContent = (val: string) => {\n editor.value?.setMarkdown(val, false);\n editorPreview.value?.setMarkdown(val, false);\n };\n const setCherryContent2 = (val: string) => {\n editorPreview.value?.setMarkdown(val, true);\n };\n watch(\n () => props.value,\n (newVal, oldVal) => {\n if (newVal !== oldVal) {\n if (!newVal) {\n currentVal.value = '';\n } else {\n currentVal.value = newVal;\n }\n }\n },\n { immediate: true },\n );\n\n watch(currentVal, (newVal, oldVal) => {\n const content = getCherryContent();\n if (newVal !== oldVal && content !== newVal) {\n setCherryContent(newVal);\n }\n });\n\n // 变更事件回调\n const afterChange = (_e: IData) => {\n setCherryContent2(getCherryContent()!);\n emit('change', getCherryContent());\n };\n\n // 图片加载回调\n const beforeImageMounted = (e: string, src: string) => {\n return { [e]: src };\n };\n\n const editorOpts = {\n value: currentVal.value,\n theme: theme.value,\n fileUpload,\n emoji: {\n useUnicode: true,\n },\n header: {\n anchorStyle: 'autonumber',\n },\n editor: {\n // 编辑器的高度,默认100%,如果挂载点存在内联设置的height则以内联样式为主\n height: '100%',\n // defaultModel 编辑器初始化后的默认模式,一共有三种模式:1、双栏编辑预览模式;2、纯编辑模式;3、预览模式\n // edit&preview: 双栏编辑预览模式\n // editOnly: 纯编辑模式(没有预览,可通过toolbar切换成双栏或预览模式)\n // previewOnly: 预览模式(没有编辑框,toolbar只显示“返回编辑”按钮,可通过toolbar切换成编辑模式)\n defaultModel: defaultModel.value,\n codemirror: {\n // 是否自动focus 默认为true\n autofocus: false,\n },\n },\n toolbars: {\n theme: theme.value,\n toolbar: [\n 'switchModel',\n 'bold',\n 'italic',\n 'strikethrough',\n 'header',\n // 'list',\n {\n insert: [\n 'image',\n 'audio',\n 'video',\n 'link',\n 'hr',\n 'br',\n 'code',\n 'formula',\n 'toc',\n 'table',\n 'pdf',\n 'word',\n ],\n },\n 'settings',\n ],\n },\n };\n\n // 默认编辑态\n const editorInit = () => {\n const cherryOptions = {\n id,\n ...editorOpts,\n callback: {\n afterChange,\n beforeImageMounted,\n },\n value: currentVal.value,\n };\n nextTick(() => {\n editor.value = new Cherry(cherryOptions as IData);\n });\n };\n\n // 初始界面预览态\n const editorPreviewInit = () => {\n const cherryOptions = {\n id: previewId,\n ...editorOpts,\n editor: { defaultModel: 'previewOnly' },\n };\n nextTick(() => {\n editorPreview.value = new Cherry(cherryOptions as IData);\n });\n };\n\n onMounted(() => {\n editorPreviewInit();\n });\n\n watch(\n () => UIStore.theme,\n newVal => {\n theme.value = newVal;\n editor.value?.setTheme(theme.value);\n },\n );\n\n onUnmounted(() => {\n editor.value = null;\n editorPreview.value = null;\n });\n const isOpen = ref(false);\n\n // 计算触发元素类型\n const calcTargetType = (\n target: HTMLElement,\n ): {\n type: string;\n url: string;\n } => {\n const result = {\n type: '',\n url: '',\n };\n if (target.nodeName === 'A') {\n result.type = 'A';\n result.url = (target as HTMLAnchorElement).hash;\n } else if (target.parentNode && target.parentNode.nodeName === 'A') {\n result.type = 'A';\n result.url = (target.parentNode as HTMLAnchorElement).hash;\n } else if (target.nodeName === 'IMG') {\n result.type = 'IMG';\n result.url = (target as HTMLImageElement).src;\n }\n return result;\n };\n\n const openPicker = async (event: TouchEvent) => {\n // 如果点击项是a标签,并且有href,值为#开头,且后续值为页面内的元素的id,就走页面滚动导航\n // 如果是图片,则进行放大预览\n // 其他情况,就走打开编辑界面\n const { target } = event;\n if (target) {\n const result = calcTargetType(target as HTMLElement);\n if (result.type === 'A' && result.url.startsWith('#')) {\n // 点击a标签,本页面内滑动,阻止其他变化\n event.preventDefault();\n event.stopPropagation();\n const targetid = result.url.slice(1);\n if (targetid) {\n const preview = document.getElementById(previewId);\n if (preview) {\n const anchor = document.getElementById(targetid);\n if (anchor) {\n anchor.scrollIntoView({ behavior: 'smooth' });\n }\n }\n return;\n }\n }\n if (result.type === 'IMG' && result.url) {\n // 点击图片,展开预览\n previewImage.value = result.url;\n return;\n }\n }\n if (props.disabled || props.readonly) {\n return;\n }\n // 其他情况打开编辑态\n isOpen.value = true;\n if (!editor.value) {\n editorInit();\n }\n };\n\n // 关闭图片预览时清除预览图片地址\n const handlePreviewClose = () => {\n previewImage.value = '';\n };\n\n return {\n ns,\n currentVal,\n id,\n previewId,\n editor,\n headers,\n theme,\n defaultModel,\n cssVars,\n getCherryHtml,\n getCherryContent,\n setCherryContent,\n openPicker,\n isOpen,\n previewImage,\n handlePreviewClose,\n };\n },\n render() {\n return (\n <div\n class={[\n this.ns.b(),\n this.disabled ? this.ns.m('disabled') : '',\n this.readonly ? this.ns.m('readonly') : '',\n ]}\n >\n <van-field readonly disabled={this.disabled} onClick={this.openPicker}>\n {{\n input: (\n <div\n id={this.previewId}\n style={this.cssVars}\n class={this.ns.b('cherry')}\n ></div>\n ),\n }}\n </van-field>\n\n <van-popup\n class={this.ns.b('image-popup')}\n show={!!this.previewImage}\n close-on-popstate={true}\n onClose={this.handlePreviewClose}\n >\n <iBizPreviewImage url={this.previewImage}></iBizPreviewImage>\n </van-popup>\n <van-dialog\n v-model:show={this.isOpen}\n className={this.ns.b('dialog')}\n close-on-popstate={true}\n >\n {{\n default: () => {\n return (\n <div\n id={this.id}\n style={this.cssVars}\n class={[\n this.ns.b('cherry'),\n this.ns.is('hidden', !this.isOpen),\n ]}\n ></div>\n );\n },\n }}\n </van-dialog>\n </div>\n );\n },\n});\n\nexport default IBizMarkDown;\n"],"names":["IBizMarkDown","exports","defineComponent","getMarkDownProps","getEditorEmits","props","emit","ns","useNamespace","c","currentVal","ref","editor","editorPreview","previewId","createUUID","emits","getAppCookie","CoreConst","setup","downloadUrl","UIStore","useUIStore","id","newVal","headers","ibiz","env","editorParams","uploadUrl","urls","defaultModel","url","data","callback","previewImage","getCherryHtml","cssVars","watch","_a","uploadParams","JSON","_b","exportparams","val","exportParams","setCherryContent2","file","calcFileUpDownUrl","oldVal","immediate","content","getCherryContent","setCherryContent","beforeImageMounted","src","setMarkdown","theme","fileUpload","afterChange","emoji","cherryOptions","useUnicode","editorOpts","header","anchorStyle","height","nextTick","Cherry","value","codemirror","autofocus","toolbars","onMounted","editorPreviewInit","editorInit","onUnmounted","isOpen","result","target","event","calcTargetType","targetid","anchor","hash","nodeName","behavior","_createVNode","type","disabled","_resolveComponent","handlePreviewClose","$event"],"mappings":"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"}