@maketribe/ms-app 3.2.7 → 3.2.8

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 (135) hide show
  1. package/dist/cjs/components/basic/data-table-select/data-table-select.js +2 -2
  2. package/dist/cjs/components/basic/data-table-select/data-table-select.js.map +1 -1
  3. package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/ImageEditPanel.js +4 -4
  4. package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/ImageEditPanel.js.map +1 -1
  5. package/dist/cjs/components/basic/icon-select/icon-select.js +25 -9
  6. package/dist/cjs/components/basic/icon-select/icon-select.js.map +1 -1
  7. package/dist/cjs/components/basic/svg-icon/svg-icon.js +4 -4
  8. package/dist/cjs/components/basic/svg-icon/svg-icon.js.map +1 -1
  9. package/dist/cjs/components/basic/upload-file/ui/upload-image/upload-image-options.js +12 -0
  10. package/dist/cjs/components/basic/upload-file/ui/upload-image/upload-image-options.js.map +1 -1
  11. package/dist/cjs/components/basic/upload-file/ui/upload-image/upload-image.js +34 -6
  12. package/dist/cjs/components/basic/upload-file/ui/upload-image/upload-image.js.map +1 -1
  13. package/dist/cjs/components/business/resource-list/ResourceManager.js +2 -1
  14. package/dist/cjs/components/business/resource-list/ResourceManager.js.map +1 -1
  15. package/dist/cjs/components/data-model/data-filter-form/data-filter-form.js +2 -6
  16. package/dist/cjs/components/data-model/data-filter-form/data-filter-form.js.map +1 -1
  17. package/dist/cjs/components/data-model/data-form/data-form-item/data-form-item.js +1 -1
  18. package/dist/cjs/components/data-model/data-form/data-form-item/data-form-item.js.map +1 -1
  19. package/dist/cjs/components/data-model/data-table/components/header-components/table-filter/table-filter.js +62 -2
  20. package/dist/cjs/components/data-model/data-table/components/header-components/table-filter/table-filter.js.map +1 -1
  21. package/dist/cjs/components/data-model/data-table/views/tree-view/tree-view.js +2 -2
  22. package/dist/cjs/components/data-model/data-table/views/tree-view/tree-view.js.map +1 -1
  23. package/dist/cjs/message-impl/DialogerImpl.js +4 -2
  24. package/dist/cjs/message-impl/DialogerImpl.js.map +1 -1
  25. package/dist/cjs/modules/cms/components/part-tree/index.vue.js +5 -5
  26. package/dist/cjs/modules/cms/composables/part-extensions.js.map +1 -1
  27. package/dist/cjs/modules/cms/pages/cms-ad/index.vue2.js +4 -4
  28. package/dist/cjs/modules/cms/pages/cms-contents/article-edit-add-page.vue2.js +60 -47
  29. package/dist/cjs/modules/cms/pages/cms-contents/article-edit-add-page.vue2.js.map +1 -1
  30. package/dist/cjs/modules/cms/pages/cms-contents/components/article-atlas.vue.js +4 -4
  31. package/dist/cjs/modules/cms/pages/cms-contents/index.vue2.js +71 -49
  32. package/dist/cjs/modules/cms/pages/cms-contents/index.vue2.js.map +1 -1
  33. package/dist/cjs/modules/cms/pages/cms-resource/index.vue2.js +30 -0
  34. package/dist/cjs/modules/cms/pages/cms-resource/index.vue2.js.map +1 -1
  35. package/dist/cjs/modules/ms/components/material-list/components/file-view/file-view.js +3 -3
  36. package/dist/cjs/modules/ms/components/material-list/components/file-view/file-view.js.map +1 -1
  37. package/dist/cjs/modules/ms/components/material-list/components/video-view/video-view.js +6 -6
  38. package/dist/cjs/modules/ms/components/material-list/components/video-view/video-view.js.map +1 -1
  39. package/dist/cjs/modules/ms/components/material-list/material-group.js +5 -5
  40. package/dist/cjs/modules/ms/components/material-list/material-group.js.map +1 -1
  41. package/dist/cjs/modules/ms/dataviews/ms-config/MsConfigTable.js +0 -1
  42. package/dist/cjs/modules/ms/dataviews/ms-config/MsConfigTable.js.map +1 -1
  43. package/dist/cjs/modules/ms/dataviews/ms-deny-ip-access-list/MsDenyIPAccessListTable.js +0 -1
  44. package/dist/cjs/modules/ms/dataviews/ms-deny-ip-access-list/MsDenyIPAccessListTable.js.map +1 -1
  45. package/dist/cjs/modules/ms/dataviews/ms-ip-white-list/MsIPWhitelistTable.js +0 -1
  46. package/dist/cjs/modules/ms/dataviews/ms-ip-white-list/MsIPWhitelistTable.js.map +1 -1
  47. package/dist/cjs/modules/ms/dataviews/ms-member/MsMemberTable.js +3 -4
  48. package/dist/cjs/modules/ms/dataviews/ms-member/MsMemberTable.js.map +1 -1
  49. package/dist/cjs/modules/ms/dataviews/ms-menu/MsMenuForm.js +10 -10
  50. package/dist/cjs/modules/ms/dataviews/ms-menu/MsMenuForm.js.map +1 -1
  51. package/dist/cjs/modules/ms/dataviews/ms-menu/MsMenuTable.js +0 -1
  52. package/dist/cjs/modules/ms/dataviews/ms-menu/MsMenuTable.js.map +1 -1
  53. package/dist/cjs/modules/ms/dataviews/ms-menu/ms-route/MsRouteTable.js +4 -1
  54. package/dist/cjs/modules/ms/dataviews/ms-menu/ms-route/MsRouteTable.js.map +1 -1
  55. package/dist/cjs/modules/ms/dataviews/ms-role/MsRoleTable.js +0 -1
  56. package/dist/cjs/modules/ms/dataviews/ms-role/MsRoleTable.js.map +1 -1
  57. package/dist/cjs/modules/ms/index.js +5 -0
  58. package/dist/cjs/modules/ms/index.js.map +1 -1
  59. package/dist/cjs/modules/ms/pages/icons/index.vue.js +4 -0
  60. package/dist/cjs/modules/ms/pages/icons/index.vue.js.map +1 -0
  61. package/dist/cjs/modules/ms/pages/icons/index.vue2.js +139 -0
  62. package/dist/cjs/modules/ms/pages/icons/index.vue2.js.map +1 -0
  63. package/dist/cjs/modules/ms/pages/ms-role/components/aside.vue.js +3 -3
  64. package/dist/esm/components/basic/icon-select/icon-select.js +26 -10
  65. package/dist/esm/components/basic/icon-select/icon-select.js.map +1 -1
  66. package/dist/esm/components/basic/svg-icon/svg-icon.js +3 -3
  67. package/dist/esm/components/basic/svg-icon/svg-icon.js.map +1 -1
  68. package/dist/esm/components/basic/upload-file/ui/upload-image/upload-image-options.js +12 -0
  69. package/dist/esm/components/basic/upload-file/ui/upload-image/upload-image-options.js.map +1 -1
  70. package/dist/esm/components/basic/upload-file/ui/upload-image/upload-image.js +34 -6
  71. package/dist/esm/components/basic/upload-file/ui/upload-image/upload-image.js.map +1 -1
  72. package/dist/esm/components/business/resource-list/ResourceManager.js +2 -1
  73. package/dist/esm/components/business/resource-list/ResourceManager.js.map +1 -1
  74. package/dist/esm/components/data-model/data-filter-form/data-filter-form.js +1 -5
  75. package/dist/esm/components/data-model/data-filter-form/data-filter-form.js.map +1 -1
  76. package/dist/esm/components/data-model/data-form/data-form-item/data-form-item.js +2 -2
  77. package/dist/esm/components/data-model/data-form/data-form-item/data-form-item.js.map +1 -1
  78. package/dist/esm/components/data-model/data-table/components/header-components/table-filter/table-filter.js +64 -4
  79. package/dist/esm/components/data-model/data-table/components/header-components/table-filter/table-filter.js.map +1 -1
  80. package/dist/esm/message-impl/DialogerImpl.js +4 -2
  81. package/dist/esm/message-impl/DialogerImpl.js.map +1 -1
  82. package/dist/esm/modules/cms/composables/part-extensions.js.map +1 -1
  83. package/dist/esm/modules/cms/pages/cms-contents/article-edit-add-page.vue2.js +60 -47
  84. package/dist/esm/modules/cms/pages/cms-contents/article-edit-add-page.vue2.js.map +1 -1
  85. package/dist/esm/modules/cms/pages/cms-contents/index.vue2.js +72 -50
  86. package/dist/esm/modules/cms/pages/cms-contents/index.vue2.js.map +1 -1
  87. package/dist/esm/modules/cms/pages/cms-resource/index.vue2.js +30 -0
  88. package/dist/esm/modules/cms/pages/cms-resource/index.vue2.js.map +1 -1
  89. package/dist/esm/modules/ms/dataviews/ms-config/MsConfigTable.js +1 -2
  90. package/dist/esm/modules/ms/dataviews/ms-config/MsConfigTable.js.map +1 -1
  91. package/dist/esm/modules/ms/dataviews/ms-deny-ip-access-list/MsDenyIPAccessListTable.js +1 -2
  92. package/dist/esm/modules/ms/dataviews/ms-deny-ip-access-list/MsDenyIPAccessListTable.js.map +1 -1
  93. package/dist/esm/modules/ms/dataviews/ms-ip-white-list/MsIPWhitelistTable.js +1 -2
  94. package/dist/esm/modules/ms/dataviews/ms-ip-white-list/MsIPWhitelistTable.js.map +1 -1
  95. package/dist/esm/modules/ms/dataviews/ms-member/MsMemberTable.js +4 -5
  96. package/dist/esm/modules/ms/dataviews/ms-member/MsMemberTable.js.map +1 -1
  97. package/dist/esm/modules/ms/dataviews/ms-menu/MsMenuForm.js +10 -10
  98. package/dist/esm/modules/ms/dataviews/ms-menu/MsMenuForm.js.map +1 -1
  99. package/dist/esm/modules/ms/dataviews/ms-menu/MsMenuTable.js +1 -2
  100. package/dist/esm/modules/ms/dataviews/ms-menu/MsMenuTable.js.map +1 -1
  101. package/dist/esm/modules/ms/dataviews/ms-menu/ms-route/MsRouteTable.js +4 -1
  102. package/dist/esm/modules/ms/dataviews/ms-menu/ms-route/MsRouteTable.js.map +1 -1
  103. package/dist/esm/modules/ms/dataviews/ms-role/MsRoleTable.js +1 -2
  104. package/dist/esm/modules/ms/dataviews/ms-role/MsRoleTable.js.map +1 -1
  105. package/dist/esm/modules/ms/index.js +5 -0
  106. package/dist/esm/modules/ms/index.js.map +1 -1
  107. package/dist/esm/modules/ms/pages/icons/index.vue.js +5 -0
  108. package/dist/esm/modules/ms/pages/icons/index.vue.js.map +1 -0
  109. package/dist/esm/modules/ms/pages/icons/index.vue2.js +123 -0
  110. package/dist/esm/modules/ms/pages/icons/index.vue2.js.map +1 -0
  111. package/dist/style/components/form/form-detail.css +1 -1
  112. package/dist/style/components/form/form-icon-select.css +1 -1
  113. package/dist/style/components/form/index.css +1 -1
  114. package/dist/style/components/index.css +1 -1
  115. package/dist/style/components/table/index.css +1 -1
  116. package/dist/style/components/table/table-filter.css +1 -0
  117. package/dist/style/components/table-view.css +1 -1
  118. package/dist/style/index.css +1 -1
  119. package/dist/style/modules/ms/index.css +1 -1
  120. package/dist/style/modules/ms/pages/icon.css +1 -0
  121. package/dist/style/modules/ms/pages/index.css +1 -1
  122. package/dist/style/src/components/form/form-detail.scss +1 -1
  123. package/dist/style/src/components/form/form-icon-select.scss +21 -8
  124. package/dist/style/src/components/table/index.scss +2 -1
  125. package/dist/style/src/components/table/table-filter.scss +8 -0
  126. package/dist/style/src/components/table-view.scss +44 -43
  127. package/dist/style/src/modules/ms/pages/icon.scss +50 -0
  128. package/dist/style/src/modules/ms/pages/index.scss +2 -1
  129. package/dist/types/components/basic/upload-file/ui/upload-image/index.d.ts +9 -0
  130. package/dist/types/components/basic/upload-file/ui/upload-image/upload-image-options.d.ts +3 -0
  131. package/dist/types/components/basic/upload-file/ui/upload-image/upload-image.d.ts +9 -0
  132. package/dist/types/components/business/resource-list/ResourceManager.d.ts +1 -0
  133. package/dist/types/modules/cms/composables/part-extensions.d.ts +1 -1
  134. package/dist/types/modules/ms/pages/icons/index.vue.d.ts +2 -0
  135. package/package.json +3 -3
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  const vue = require("vue");
3
3
  const elementPlus = require("element-plus");
4
- const icons = require("@element-plus/icons-vue");
4
+ const elIcons = require("@element-plus/icons-vue");
5
5
  const dataTableSelectOptions = require("./data-table-select-options.js");
6
6
  const index = require("../../abstract/abstract-select/index.js");
7
7
  const dm = require("@maketribe/dm");
@@ -62,7 +62,7 @@ const DataTableSelect = /* @__PURE__ */ vue.defineComponent({
62
62
  return vue.createVNode(elementPlus.ElSelect, {
63
63
  "disabled": props.disabled,
64
64
  "multiple": props.multiple,
65
- "suffixIcon": icons.Grid,
65
+ "suffixIcon": elIcons.Grid,
66
66
  "popperClass": "mk-data-table-select__popper",
67
67
  "clearable": true,
68
68
  "modelValue": props.multiple ? options : options[0] ?? null
@@ -1 +1 @@
1
- {"version":3,"file":"data-table-select.js","sources":["../../../../../src/components/basic/data-table-select/data-table-select.tsx"],"sourcesContent":["import { computed, defineComponent, ref, Ref, unref, watch } from \"vue\";\r\nimport { ElSelect } from \"element-plus\";\r\nimport { Grid } from \"@element-plus/icons-vue\";\r\nimport {\r\n dataTableSelectEmits,\r\n dataTableSelectProps,\r\n} from \"./data-table-select-options\";\r\nimport { MKAbstractSelect } from \"../../abstract\";\r\nimport { DataTable, Dialoger, TableSelectCacheColumn } from \"@maketribe/dm\";\r\n\r\nexport default defineComponent({\r\n name: \"MKDataTableSelect\",\r\n inheritAttrs: false,\r\n props: dataTableSelectProps,\r\n emits: dataTableSelectEmits,\r\n setup(props, { emit }) {\r\n const abstractSelectInstance: Ref<typeof MKAbstractSelect | null> =\r\n ref(null);\r\n\r\n const dataTable = computed(() => props.dataTable);\r\n\r\n const modelValue = computed({\r\n get: () => props.modelValue,\r\n set: (v) => emit(\"update:model-value\", v),\r\n });\r\n\r\n watch(\r\n computed(\r\n () => [unref(dataTable), props.multiple] as [DataTable, boolean]\r\n ),\r\n ([dataTable, multiple]) => {\r\n dataTable.setSelectionColumn(new TableSelectCacheColumn({ multiple }));\r\n },\r\n { immediate: true }\r\n );\r\n\r\n const handleMousedown = async () => {\r\n const _dataTable = unref(dataTable);\r\n\r\n const _selections = unref(abstractSelectInstance)?.selections;\r\n\r\n const selections = props.multiple\r\n ? _selections ?? []\r\n : _selections\r\n ? [_selections]\r\n : [];\r\n\r\n _dataTable.setSelection(selections);\r\n\r\n const result = await Dialoger.dataTableSelectDialog(unref(dataTable)!);\r\n if (result.isConfirm) {\r\n unref(abstractSelectInstance)?.setSelections(\r\n props.multiple ? result.selections : result.selections[0]\r\n );\r\n }\r\n };\r\n\r\n return () => {\r\n return (\r\n <div class=\"mk-data-table-select\" onMousedown={handleMousedown}>\r\n <MKAbstractSelect\r\n modelValue={unref(modelValue)}\r\n onUpdate:model-value={(v: any) => {\r\n modelValue.value = v;\r\n }}\r\n ref={(el) => (abstractSelectInstance.value = el as any)}\r\n dataTable={props.dataTable}\r\n objectValue={props.objectValue}\r\n multiple={props.multiple}\r\n labelFieldName={props.labelFieldName}\r\n primaryFieldName={props.primaryFieldName}\r\n formatOptions={props.formatOptions}\r\n v-slots={{\r\n default: ({ selectRecords, formatOptions }: any) => {\r\n const options = selectRecords.map(formatOptions);\r\n\r\n return (\r\n <ElSelect\r\n disabled={props.disabled}\r\n multiple={props.multiple}\r\n suffixIcon={Grid}\r\n popperClass=\"mk-data-table-select__popper\"\r\n clearable\r\n modelValue={props.multiple ? options : options[0] ?? null}\r\n />\r\n );\r\n },\r\n }}\r\n />\r\n </div>\r\n );\r\n };\r\n },\r\n});\r\n"],"names":["defineComponent","name","inheritAttrs","props","dataTableSelectProps","emits","dataTableSelectEmits","setup","emit","abstractSelectInstance","ref","dataTable","computed","modelValue","get","set","v","watch","unref","multiple","setSelectionColumn","TableSelectCacheColumn","immediate","handleMousedown","_dataTable","_selections","selections","setSelection","result","Dialoger","dataTableSelectDialog","isConfirm","setSelections","_createVNode","MKAbstractSelect","value","el","objectValue","labelFieldName","primaryFieldName","formatOptions","default","selectRecords","options","map","ElSelect","disabled","Grid"],"mappings":";;;;;;;AAUA,MAAeA,sDAAgB;AAAA,EAC7BC,MAAM;AAAA,EACNC,cAAc;AAAA,EACdC,OAAOC,uBAAoB;AAAA,EAC3BC,OAAOC,uBAAoB;AAAA,EAC3BC,MAAMJ,OAAO;AAAA,IAAEK;AAAAA,EAAK,GAAG;AACrB,UAAMC,yBACJC,QAAI,IAAI;AAEV,UAAMC,YAAYC,IAAQ,SAAC,MAAMT,MAAMQ,SAAS;AAEhD,UAAME,aAAaD,IAAAA,SAAS;AAAA,MAC1BE,KAAKA,MAAMX,MAAMU;AAAAA,MACjBE,KAAMC,OAAMR,KAAK,sBAAsBQ,CAAC;AAAA,IAC1C,CAAC;AAEDC,QAAAA,MACEL,IAAQ,SACN,MAAM,CAACM,IAAAA,MAAMP,SAAS,GAAGR,MAAMgB,QAAQ,CACzC,GACA,CAAC,CAACR,YAAWQ,QAAQ,MAAM;AACzBR,MAAAA,WAAUS,mBAAmB,IAAIC,0BAAuB;AAAA,QAAEF;AAAAA,MAAU,CAAA,CAAC;AAAA,IACvE,GACA;AAAA,MAAEG,WAAW;AAAA,IAAK,CACpB;AAEA,UAAMC,kBAAkB,YAAY;;AAClC,YAAMC,aAAaN,UAAMP,SAAS;AAElC,YAAMc,eAAcP,SAAAA,MAAMT,sBAAsB,MAA5BS,mBAA+BQ;AAEnD,YAAMA,aAAavB,MAAMgB,WACrBM,eAAe,CAAE,IACjBA,cACA,CAACA,WAAW,IACZ;AAEJD,iBAAWG,aAAaD,UAAU;AAElC,YAAME,SAAS,MAAMC,GAAQ,SAACC,sBAAsBZ,IAAK,MAACP,SAAS,CAAE;AACrE,UAAIiB,OAAOG,WAAW;AACpBb,kBAAAA,MAAMT,sBAAsB,MAA5BS,mBAA+Bc,cAC7B7B,MAAMgB,WAAWS,OAAOF,aAAaE,OAAOF,WAAW,CAAC;AAAA,MAE5D;AAAA;AAGF,WAAO,MAAM;AACX,aAAAO,IAAAA,YAAA,OAAA;AAAA,QAAA,SAAA;AAAA,QAAA,eACiDV;AAAAA,SAAeU,CAAAA,IAAA,YAAAC,wBAAA;AAAA,QAAA,cAE9ChB,IAAK,MAACL,UAAU;AAAA,QAAC,wBACNG,OAAW;AAChCH,qBAAWsB,QAAQnB;AAAAA,QACpB;AAAA,QAAA,OACKoB,QAAQ3B,uBAAuB0B,QAAQC;AAAAA,QAAU,aAC5CjC,MAAMQ;AAAAA,QAAS,eACbR,MAAMkC;AAAAA,QAAW,YACpBlC,MAAMgB;AAAAA,QAAQ,kBACRhB,MAAMmC;AAAAA,QAAc,oBAClBnC,MAAMoC;AAAAA,QAAgB,iBACzBpC,MAAMqC;AAAAA,SACZ;AAAA,QACPC,SAASA,CAAC;AAAA,UAAEC;AAAAA,UAAeF;AAAAA,QAAmB,MAAM;AAClD,gBAAMG,UAAUD,cAAcE,IAAIJ,aAAa;AAE/C,iBAAAP,IAAAA,YAAAY,YAAAA,UAAA;AAAA,YAAA,YAEc1C,MAAM2C;AAAAA,YAAQ,YACd3C,MAAMgB;AAAAA,YAAQ,cACZ4B,MAAI;AAAA,YAAA,eAAA;AAAA,YAAA,aAAA;AAAA,YAAA,cAGJ5C,MAAMgB,WAAWwB,UAAUA,QAAQ,CAAC,KAAK;AAAA,UAAI,GAAA,IAAA;AAAA,QAG/D;AAAA,MACD,CAAA,CAAA,CAAA;AAAA;EAKX;AACF,CAAC;;"}
1
+ {"version":3,"file":"data-table-select.js","sources":["../../../../../src/components/basic/data-table-select/data-table-select.tsx"],"sourcesContent":["import { computed, defineComponent, ref, Ref, unref, watch } from \"vue\";\r\nimport { ElSelect } from \"element-plus\";\r\nimport { Grid } from \"@element-plus/icons-vue\";\r\nimport {\r\n dataTableSelectEmits,\r\n dataTableSelectProps,\r\n} from \"./data-table-select-options\";\r\nimport { MKAbstractSelect } from \"../../abstract\";\r\nimport { DataTable, Dialoger, TableSelectCacheColumn } from \"@maketribe/dm\";\r\n\r\nexport default defineComponent({\r\n name: \"MKDataTableSelect\",\r\n inheritAttrs: false,\r\n props: dataTableSelectProps,\r\n emits: dataTableSelectEmits,\r\n setup(props, { emit }) {\r\n const abstractSelectInstance: Ref<typeof MKAbstractSelect | null> =\r\n ref(null);\r\n\r\n const dataTable = computed(() => props.dataTable);\r\n\r\n const modelValue = computed({\r\n get: () => props.modelValue,\r\n set: (v) => emit(\"update:model-value\", v),\r\n });\r\n\r\n watch(\r\n computed(\r\n () => [unref(dataTable), props.multiple] as [DataTable, boolean]\r\n ),\r\n ([dataTable, multiple]) => {\r\n dataTable.setSelectionColumn(new TableSelectCacheColumn({ multiple }));\r\n },\r\n { immediate: true }\r\n );\r\n\r\n const handleMousedown = async () => {\r\n const _dataTable = unref(dataTable);\r\n\r\n const _selections = unref(abstractSelectInstance)?.selections;\r\n\r\n const selections = props.multiple\r\n ? _selections ?? []\r\n : _selections\r\n ? [_selections]\r\n : [];\r\n\r\n _dataTable.setSelection(selections);\r\n\r\n const result = await Dialoger.dataTableSelectDialog(unref(dataTable)!);\r\n if (result.isConfirm) {\r\n unref(abstractSelectInstance)?.setSelections(\r\n props.multiple ? result.selections : result.selections[0]\r\n );\r\n }\r\n };\r\n\r\n return () => {\r\n return (\r\n <div class=\"mk-data-table-select\" onMousedown={handleMousedown}>\r\n <MKAbstractSelect\r\n modelValue={unref(modelValue)}\r\n onUpdate:model-value={(v: any) => {\r\n modelValue.value = v;\r\n }}\r\n ref={(el) => (abstractSelectInstance.value = el as any)}\r\n dataTable={props.dataTable}\r\n objectValue={props.objectValue}\r\n multiple={props.multiple}\r\n labelFieldName={props.labelFieldName}\r\n primaryFieldName={props.primaryFieldName}\r\n formatOptions={props.formatOptions}\r\n v-slots={{\r\n default: ({ selectRecords, formatOptions }: any) => {\r\n const options = selectRecords.map(formatOptions);\r\n\r\n return (\r\n <ElSelect\r\n disabled={props.disabled}\r\n multiple={props.multiple}\r\n suffixIcon={Grid}\r\n popperClass=\"mk-data-table-select__popper\"\r\n clearable\r\n modelValue={props.multiple ? options : options[0] ?? null}\r\n />\r\n );\r\n },\r\n }}\r\n />\r\n </div>\r\n );\r\n };\r\n },\r\n});\r\n"],"names":["defineComponent","name","inheritAttrs","props","dataTableSelectProps","emits","dataTableSelectEmits","setup","emit","abstractSelectInstance","ref","dataTable","computed","modelValue","get","set","v","watch","unref","multiple","setSelectionColumn","TableSelectCacheColumn","immediate","handleMousedown","_dataTable","_selections","selections","setSelection","result","Dialoger","dataTableSelectDialog","isConfirm","setSelections","_createVNode","MKAbstractSelect","value","el","objectValue","labelFieldName","primaryFieldName","formatOptions","default","selectRecords","options","map","ElSelect","disabled","Grid"],"mappings":";;;;;;;AAUA,MAAeA,sDAAgB;AAAA,EAC7BC,MAAM;AAAA,EACNC,cAAc;AAAA,EACdC,OAAOC,uBAAoB;AAAA,EAC3BC,OAAOC,uBAAoB;AAAA,EAC3BC,MAAMJ,OAAO;AAAA,IAAEK;AAAAA,EAAK,GAAG;AACrB,UAAMC,yBACJC,QAAI,IAAI;AAEV,UAAMC,YAAYC,IAAQ,SAAC,MAAMT,MAAMQ,SAAS;AAEhD,UAAME,aAAaD,IAAAA,SAAS;AAAA,MAC1BE,KAAKA,MAAMX,MAAMU;AAAAA,MACjBE,KAAMC,OAAMR,KAAK,sBAAsBQ,CAAC;AAAA,IAC1C,CAAC;AAEDC,QAAAA,MACEL,IAAQ,SACN,MAAM,CAACM,IAAAA,MAAMP,SAAS,GAAGR,MAAMgB,QAAQ,CACzC,GACA,CAAC,CAACR,YAAWQ,QAAQ,MAAM;AACzBR,MAAAA,WAAUS,mBAAmB,IAAIC,0BAAuB;AAAA,QAAEF;AAAAA,MAAU,CAAA,CAAC;AAAA,IACvE,GACA;AAAA,MAAEG,WAAW;AAAA,IAAK,CACpB;AAEA,UAAMC,kBAAkB,YAAY;;AAClC,YAAMC,aAAaN,UAAMP,SAAS;AAElC,YAAMc,eAAcP,SAAAA,MAAMT,sBAAsB,MAA5BS,mBAA+BQ;AAEnD,YAAMA,aAAavB,MAAMgB,WACrBM,eAAe,CAAE,IACjBA,cACA,CAACA,WAAW,IACZ;AAEJD,iBAAWG,aAAaD,UAAU;AAElC,YAAME,SAAS,MAAMC,GAAQ,SAACC,sBAAsBZ,IAAK,MAACP,SAAS,CAAE;AACrE,UAAIiB,OAAOG,WAAW;AACpBb,kBAAAA,MAAMT,sBAAsB,MAA5BS,mBAA+Bc,cAC7B7B,MAAMgB,WAAWS,OAAOF,aAAaE,OAAOF,WAAW,CAAC;AAAA,MAE5D;AAAA;AAGF,WAAO,MAAM;AACX,aAAAO,IAAAA,YAAA,OAAA;AAAA,QAAA,SAAA;AAAA,QAAA,eACiDV;AAAAA,SAAeU,CAAAA,IAAA,YAAAC,wBAAA;AAAA,QAAA,cAE9ChB,IAAK,MAACL,UAAU;AAAA,QAAC,wBACNG,OAAW;AAChCH,qBAAWsB,QAAQnB;AAAAA,QACpB;AAAA,QAAA,OACKoB,QAAQ3B,uBAAuB0B,QAAQC;AAAAA,QAAU,aAC5CjC,MAAMQ;AAAAA,QAAS,eACbR,MAAMkC;AAAAA,QAAW,YACpBlC,MAAMgB;AAAAA,QAAQ,kBACRhB,MAAMmC;AAAAA,QAAc,oBAClBnC,MAAMoC;AAAAA,QAAgB,iBACzBpC,MAAMqC;AAAAA,SACZ;AAAA,QACPC,SAASA,CAAC;AAAA,UAAEC;AAAAA,UAAeF;AAAAA,QAAmB,MAAM;AAClD,gBAAMG,UAAUD,cAAcE,IAAIJ,aAAa;AAE/C,iBAAAP,IAAAA,YAAAY,YAAAA,UAAA;AAAA,YAAA,YAEc1C,MAAM2C;AAAAA,YAAQ,YACd3C,MAAMgB;AAAAA,YAAQ,cACZ4B,QAAI;AAAA,YAAA,eAAA;AAAA,YAAA,aAAA;AAAA,YAAA,cAGJ5C,MAAMgB,WAAWwB,UAAUA,QAAQ,CAAC,KAAK;AAAA,UAAI,GAAA,IAAA;AAAA,QAG/D;AAAA,MACD,CAAA,CAAA,CAAA;AAAA;EAKX;AACF,CAAC;;"}
@@ -3,7 +3,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const vue = require("vue");
4
4
  const dm = require("@maketribe/dm");
5
5
  const elementPlus = require("element-plus");
6
- const icons = require("@element-plus/icons-vue");
6
+ const elIcons = require("@element-plus/icons-vue");
7
7
  const MsMaterialTable = require("../../../../../modules/ms/dataviews/ms-material/MsMaterialTable.js");
8
8
  const index = require("../../../../../modules/ms/components/material-list/index.js");
9
9
  const utils = require("@maketribe/utils");
@@ -100,7 +100,7 @@ const ImageEditPanelComponent = /* @__PURE__ */ vue.defineComponent({
100
100
  return vue.createVNode("div", {
101
101
  "style": "font-size: 50px; display: flex; align-content: center; justify-content: center; align-items: center; height: 100%;"
102
102
  }, [vue.createVNode(elementPlus.ElIcon, null, {
103
- default: () => [vue.createVNode(icons.Picture, null, null)]
103
+ default: () => [vue.createVNode(elIcons.Picture, null, null)]
104
104
  })]);
105
105
  }
106
106
  });
@@ -111,7 +111,7 @@ const ImageEditPanelComponent = /* @__PURE__ */ vue.defineComponent({
111
111
  "label": "本地选择"
112
112
  }, {
113
113
  default: () => [vue.createVNode(elementPlus.ElButton, {
114
- "icon": icons.UploadFilled,
114
+ "icon": elIcons.UploadFilled,
115
115
  "type": "primary",
116
116
  "style": "width: 100%",
117
117
  "onClick": selectImage
@@ -132,7 +132,7 @@ const ImageEditPanelComponent = /* @__PURE__ */ vue.defineComponent({
132
132
  default: () => [vue.createVNode(elementPlus.ElInput, {
133
133
  "modelValue": attrs.src,
134
134
  "onUpdate:modelValue": ($event) => attrs.src = $event,
135
- "prefix-icon": icons.Share,
135
+ "prefix-icon": elIcons.Share,
136
136
  "style": "width: 100%",
137
137
  "placeholder": "请输入链接地址"
138
138
  }, null), ImageView]
@@ -1 +1 @@
1
- {"version":3,"file":"ImageEditPanel.js","sources":["../../../../../../../src/components/basic/doc-editor/plugins/ImagePlugin/ImageEditPanel.tsx"],"sourcesContent":["\r\nimport { Fragment,h,onMounted, onUnmounted,ref,reactive,defineComponent, computed } from 'vue'\r\nimport { Dialoger } from '@maketribe/dm'\r\nimport { \r\n ElButton,ElTabs,ElTabPane,ElInput,ElImage,ElIcon,\r\n ElForm,ElFormItem,ElRow,ElCol\r\n} from \"element-plus\";\r\nimport { Crop,Share,UploadFilled,Picture } from \"@element-plus/icons-vue\";\r\nimport { MsMaterial, MsMaterialTable } from \"../../../../../modules/ms/dataviews/ms-material\";\r\nimport { MKMaterialList } from \"../../../../../modules/ms/components/material-list\";\r\nimport { MKImageCropperContent } from \"../../../image-cropper\"\r\nimport { fileSelect } from \"@maketribe/utils\"\r\nimport { ImageCropper } from \"../../../image-cropper\"\r\n\r\n// 选择状态\r\nconst selectState = ref(\"select\");\r\n\r\n/**\r\n * 图片编辑面板\r\n */\r\nconst ImageEditPanelComponent = defineComponent({\r\n name: 'ImageEditPanelComponent',\r\n props: ['attrs'],\r\n setup(props,{ expose }){\r\n\r\n const attrs = reactive(props.attrs)\r\n const materialTable = reactive(new MsMaterialTable()) as MsMaterialTable;\r\n const margin = computed<any>({\r\n set(v){\r\n attrs.margin = `${v.t} ${v.r} ${v.b} ${v.l}`\r\n },\r\n get(){\r\n var vals = attrs.margin.split(/[\\s]+/g);\r\n if(vals.length == 1){\r\n return {t:vals[0],r:vals[0],b:vals[0],l:vals[0]}\r\n }\r\n else if(vals.length == 2){\r\n return {t:vals[0],r:vals[1],b:vals[0],l:vals[1]}\r\n }\r\n else if(vals.length == 3){\r\n return {t:vals[0],r:vals[1],b:vals[2],l:vals[1]}\r\n }\r\n else if(vals.length <= 0){\r\n vals = [\"\",\"\",\"\",\"\"];\r\n }\r\n return {t:vals[0],r:vals[1],b:vals[2],l:vals[3]}\r\n }\r\n })\r\n\r\n // 选择素材\r\n materialTable.selectionChangeEvent.on(()=>{\r\n let id = materialTable.getSelection()[0];\r\n if(id){\r\n attrs.src = materialTable.getList().find(item=>item.id == id)?.path;\r\n }\r\n else{\r\n attrs.src = \"\";\r\n }\r\n })\r\n\r\n //\r\n const selectImage = async ()=>{\r\n\r\n const file = await fileSelect({ accept:\"image/*\"});\r\n \r\n if (file) {\r\n\r\n const fileRender = new FileReader();\r\n fileRender.onload = async (data:any)=>{\r\n attrs.src = data.target.result;\r\n \r\n }\r\n fileRender.readAsDataURL(file)\r\n }\r\n }\r\n\r\n // 导出可用的方法\r\n expose({ \r\n getResult:()=>{ return {...attrs} } ,\r\n setSrc:(src:string)=>{ attrs.src = src }\r\n });\r\n\r\n return ()=>{\r\n\r\n // 图片预览\r\n const ImageView = <ElImage style=\"background: #dedede;width: 100%; height: 480px;margin-top:10px\" src={attrs.src} fit=\"contain\" v-slots={{\r\n error:()=>{\r\n return <div style=\"\r\n font-size: 50px;\r\n display: flex;\r\n align-content: center;\r\n justify-content: center;\r\n align-items: center;\r\n height: 100%;\r\n \">\r\n <ElIcon><Picture /></ElIcon>\r\n </div>\r\n }\r\n }}>\r\n </ElImage>\r\n \r\n // 面板内容\r\n let panel = <ElTabs style=\"min-height: 520px\">\r\n <ElTabPane label=\"本地选择\">\r\n <ElButton icon={UploadFilled} type=\"primary\" style=\"width: 100%\" onClick={selectImage}>\r\n 选择本地文件\r\n </ElButton>\r\n {ImageView}\r\n </ElTabPane>\r\n <ElTabPane label=\"素材库选择\">\r\n <MKMaterialList class=\"mk-material-select__list\" selectable materialTable={materialTable} />\r\n </ElTabPane>\r\n <ElTabPane label=\"网络图片\">\r\n <ElInput v-model={attrs.src} prefix-icon={Share} style=\"width: 100%\" placeholder=\"请输入链接地址\">\r\n </ElInput>\r\n {ImageView}\r\n </ElTabPane>\r\n </ElTabs>\r\n\r\n if(selectState.value == \"attrs\"){\r\n panel = <ElRow gutter={20}>\r\n <ElCol span={14}>\r\n {ImageView}\r\n </ElCol>\r\n <ElCol span={10}>\r\n <ElForm label-position=\"top\" model={attrs}>\r\n <ElFormItem label=\"图片描述\">\r\n <ElInput v-model={attrs.alt} type=\"textarea\" {...{ rows:3 }} style=\"width: 100%\" placeholder=\"请输入\">\r\n </ElInput>\r\n </ElFormItem>\r\n <ElFormItem label=\"图片显示宽度\">\r\n <ElInput v-model={attrs.width} style=\"width: 100%\" placeholder=\"请输入宽度(可支持%)\">\r\n </ElInput>\r\n </ElFormItem>\r\n <ElFormItem label=\"图片显示高度\">\r\n <ElInput v-model={attrs.height} style=\"width: 100%\" placeholder=\"请输入宽度(可支持%)\">\r\n </ElInput>\r\n </ElFormItem>\r\n <ElFormItem label=\"图片最大显示宽度\">\r\n <ElInput v-model={attrs.maxWidth} style=\"width: 100%\" placeholder=\"请输入宽度(可支持%)\">\r\n </ElInput>\r\n </ElFormItem>\r\n <ElFormItem label=\"图片最大显示高度\">\r\n <ElInput v-model={attrs.maxHeight} style=\"width: 100%\" placeholder=\"请输入宽度(可支持%)\">\r\n </ElInput>\r\n </ElFormItem>\r\n <ElFormItem label=\"图片显示外边距\">\r\n <div style=\"display: flex;flex-wrap: nowrap;gap: 10px;justify-content: space-around;\">\r\n <div>\r\n 上:\r\n <ElInput v-model={margin.value.t} placeholder=\"\">\r\n </ElInput>\r\n </div>\r\n <div>\r\n 右:\r\n <ElInput v-model={margin.value.r} placeholder=\"\">\r\n </ElInput>\r\n </div>\r\n \r\n <div>\r\n 下:\r\n <ElInput v-model={margin.value.b} placeholder=\"\">\r\n </ElInput>\r\n </div>\r\n \r\n <div>\r\n 左:\r\n <ElInput v-model={margin.value.l} placeholder=\"\">\r\n </ElInput>\r\n </div>\r\n </div>\r\n </ElFormItem>\r\n </ElForm>\r\n </ElCol>\r\n </ElRow>\r\n }\r\n\r\n return panel;\r\n }\r\n }\r\n})\r\n\r\n/**\r\n * \r\n * @param attrs 显示图片编辑面板\r\n * @returns \r\n */\r\nexport const ShowImageEditPanel = async (attrs:any) => {\r\n return new Promise((resolve,reject) => {\r\n\r\n // 初始化\r\n selectState.value = attrs.src ? \"attrs\":\"select\";\r\n\r\n const imageEditPanelRef = ref<any>(null);\r\n const editResult = computed<any>(()=>imageEditPanelRef.value?.getResult())\r\n\r\n // 去裁切\r\n const toCropImageHandle = async ()=>{\r\n \r\n if(editResult.value.src){\r\n var result = await ImageCropper({ src: editResult.value.src});\r\n if(result.data){\r\n imageEditPanelRef.value?.setSrc(result.data);\r\n }\r\n }\r\n \r\n }\r\n\r\n // 取消编辑\r\n const handleCancelClick = () => {\r\n dialogInstance.destroy();\r\n reject();\r\n };\r\n\r\n // 确认编辑\r\n const handleConfirmClick = () => {\r\n dialogInstance.destroy();\r\n resolve({...editResult.value});\r\n };\r\n\r\n const dialogInstance = Dialoger.customRender({\r\n title: \"素材选择\",\r\n class: \"mk-material-select\",\r\n width: \"70%\",\r\n onClose: () => {\r\n dialogInstance.destroy();\r\n },\r\n body: () => {\r\n return h(ImageEditPanelComponent,{attrs,ref:r=>imageEditPanelRef.value = r});\r\n },\r\n footer: () => {\r\n\r\n // 下一步按钮\r\n let nextBtns = [\r\n <ElButton type=\"primary\" onClick={()=>selectState.value = 'attrs'}>\r\n 下一步\r\n </ElButton>\r\n ]\r\n\r\n if(selectState.value == \"attrs\"){\r\n nextBtns = [\r\n <ElButton type=\"primary\" onClick={()=>selectState.value='select'}>\r\n 重新选图\r\n </ElButton>,\r\n <ElButton type=\"primary\" onClick={toCropImageHandle}>\r\n 裁切图\r\n </ElButton>,\r\n <ElButton type=\"primary\" onClick={handleConfirmClick}>\r\n 确定\r\n </ElButton>\r\n ];\r\n }\r\n\r\n return (\r\n <Fragment>\r\n <ElButton onClick={handleCancelClick}>取消</ElButton>\r\n {...nextBtns}\r\n </Fragment>\r\n );\r\n },\r\n });\r\n });\r\n}\r\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","selectState","ref","ImageEditPanelComponent","defineComponent","name","props","setup","expose","attrs","reactive","materialTable","MsMaterialTable","margin","computed","set","v","t","r","b","l","get","vals","split","length","selectionChangeEvent","on","id","getSelection","src","getList","find","item","path","selectImage","file","fileSelect","accept","fileRender","FileReader","onload","data","target","result","readAsDataURL","getResult","setSrc","ImageView","_createVNode","ElImage","error","ElIcon","default","Picture","panel","ElTabs","ElTabPane","ElButton","UploadFilled","_createTextVNode","MKMaterialList","ElInput","$event","Share","value","ElRow","ElCol","ElForm","ElFormItem","_mergeProps","alt","rows","width","height","maxWidth","maxHeight","ShowImageEditPanel","Promise","resolve","reject","imageEditPanelRef","editResult","toCropImageHandle","ImageCropper","handleCancelClick","dialogInstance","destroy","handleConfirmClick","Dialoger","customRender","title","class","onClose","body","h","footer","nextBtns","onClick","_Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"ImageEditPanel.js","sources":["../../../../../../../src/components/basic/doc-editor/plugins/ImagePlugin/ImageEditPanel.tsx"],"sourcesContent":["\r\nimport { Fragment,h,onMounted, onUnmounted,ref,reactive,defineComponent, computed } from 'vue'\r\nimport { Dialoger } from '@maketribe/dm'\r\nimport { \r\n ElButton,ElTabs,ElTabPane,ElInput,ElImage,ElIcon,\r\n ElForm,ElFormItem,ElRow,ElCol\r\n} from \"element-plus\";\r\nimport { Crop,Share,UploadFilled,Picture } from \"@element-plus/icons-vue\";\r\nimport { MsMaterial, MsMaterialTable } from \"../../../../../modules/ms/dataviews/ms-material\";\r\nimport { MKMaterialList } from \"../../../../../modules/ms/components/material-list\";\r\nimport { MKImageCropperContent } from \"../../../image-cropper\"\r\nimport { fileSelect } from \"@maketribe/utils\"\r\nimport { ImageCropper } from \"../../../image-cropper\"\r\n\r\n// 选择状态\r\nconst selectState = ref(\"select\");\r\n\r\n/**\r\n * 图片编辑面板\r\n */\r\nconst ImageEditPanelComponent = defineComponent({\r\n name: 'ImageEditPanelComponent',\r\n props: ['attrs'],\r\n setup(props,{ expose }){\r\n\r\n const attrs = reactive(props.attrs)\r\n const materialTable = reactive(new MsMaterialTable()) as MsMaterialTable;\r\n const margin = computed<any>({\r\n set(v){\r\n attrs.margin = `${v.t} ${v.r} ${v.b} ${v.l}`\r\n },\r\n get(){\r\n var vals = attrs.margin.split(/[\\s]+/g);\r\n if(vals.length == 1){\r\n return {t:vals[0],r:vals[0],b:vals[0],l:vals[0]}\r\n }\r\n else if(vals.length == 2){\r\n return {t:vals[0],r:vals[1],b:vals[0],l:vals[1]}\r\n }\r\n else if(vals.length == 3){\r\n return {t:vals[0],r:vals[1],b:vals[2],l:vals[1]}\r\n }\r\n else if(vals.length <= 0){\r\n vals = [\"\",\"\",\"\",\"\"];\r\n }\r\n return {t:vals[0],r:vals[1],b:vals[2],l:vals[3]}\r\n }\r\n })\r\n\r\n // 选择素材\r\n materialTable.selectionChangeEvent.on(()=>{\r\n let id = materialTable.getSelection()[0];\r\n if(id){\r\n attrs.src = materialTable.getList().find(item=>item.id == id)?.path;\r\n }\r\n else{\r\n attrs.src = \"\";\r\n }\r\n })\r\n\r\n //\r\n const selectImage = async ()=>{\r\n\r\n const file = await fileSelect({ accept:\"image/*\"});\r\n \r\n if (file) {\r\n\r\n const fileRender = new FileReader();\r\n fileRender.onload = async (data:any)=>{\r\n attrs.src = data.target.result;\r\n \r\n }\r\n fileRender.readAsDataURL(file)\r\n }\r\n }\r\n\r\n // 导出可用的方法\r\n expose({ \r\n getResult:()=>{ return {...attrs} } ,\r\n setSrc:(src:string)=>{ attrs.src = src }\r\n });\r\n\r\n return ()=>{\r\n\r\n // 图片预览\r\n const ImageView = <ElImage style=\"background: #dedede;width: 100%; height: 480px;margin-top:10px\" src={attrs.src} fit=\"contain\" v-slots={{\r\n error:()=>{\r\n return <div style=\"\r\n font-size: 50px;\r\n display: flex;\r\n align-content: center;\r\n justify-content: center;\r\n align-items: center;\r\n height: 100%;\r\n \">\r\n <ElIcon><Picture /></ElIcon>\r\n </div>\r\n }\r\n }}>\r\n </ElImage>\r\n \r\n // 面板内容\r\n let panel = <ElTabs style=\"min-height: 520px\">\r\n <ElTabPane label=\"本地选择\">\r\n <ElButton icon={UploadFilled} type=\"primary\" style=\"width: 100%\" onClick={selectImage}>\r\n 选择本地文件\r\n </ElButton>\r\n {ImageView}\r\n </ElTabPane>\r\n <ElTabPane label=\"素材库选择\">\r\n <MKMaterialList class=\"mk-material-select__list\" selectable materialTable={materialTable} />\r\n </ElTabPane>\r\n <ElTabPane label=\"网络图片\">\r\n <ElInput v-model={attrs.src} prefix-icon={Share} style=\"width: 100%\" placeholder=\"请输入链接地址\">\r\n </ElInput>\r\n {ImageView}\r\n </ElTabPane>\r\n </ElTabs>\r\n\r\n if(selectState.value == \"attrs\"){\r\n panel = <ElRow gutter={20}>\r\n <ElCol span={14}>\r\n {ImageView}\r\n </ElCol>\r\n <ElCol span={10}>\r\n <ElForm label-position=\"top\" model={attrs}>\r\n <ElFormItem label=\"图片描述\">\r\n <ElInput v-model={attrs.alt} type=\"textarea\" {...{ rows:3 }} style=\"width: 100%\" placeholder=\"请输入\">\r\n </ElInput>\r\n </ElFormItem>\r\n <ElFormItem label=\"图片显示宽度\">\r\n <ElInput v-model={attrs.width} style=\"width: 100%\" placeholder=\"请输入宽度(可支持%)\">\r\n </ElInput>\r\n </ElFormItem>\r\n <ElFormItem label=\"图片显示高度\">\r\n <ElInput v-model={attrs.height} style=\"width: 100%\" placeholder=\"请输入宽度(可支持%)\">\r\n </ElInput>\r\n </ElFormItem>\r\n <ElFormItem label=\"图片最大显示宽度\">\r\n <ElInput v-model={attrs.maxWidth} style=\"width: 100%\" placeholder=\"请输入宽度(可支持%)\">\r\n </ElInput>\r\n </ElFormItem>\r\n <ElFormItem label=\"图片最大显示高度\">\r\n <ElInput v-model={attrs.maxHeight} style=\"width: 100%\" placeholder=\"请输入宽度(可支持%)\">\r\n </ElInput>\r\n </ElFormItem>\r\n <ElFormItem label=\"图片显示外边距\">\r\n <div style=\"display: flex;flex-wrap: nowrap;gap: 10px;justify-content: space-around;\">\r\n <div>\r\n 上:\r\n <ElInput v-model={margin.value.t} placeholder=\"\">\r\n </ElInput>\r\n </div>\r\n <div>\r\n 右:\r\n <ElInput v-model={margin.value.r} placeholder=\"\">\r\n </ElInput>\r\n </div>\r\n \r\n <div>\r\n 下:\r\n <ElInput v-model={margin.value.b} placeholder=\"\">\r\n </ElInput>\r\n </div>\r\n \r\n <div>\r\n 左:\r\n <ElInput v-model={margin.value.l} placeholder=\"\">\r\n </ElInput>\r\n </div>\r\n </div>\r\n </ElFormItem>\r\n </ElForm>\r\n </ElCol>\r\n </ElRow>\r\n }\r\n\r\n return panel;\r\n }\r\n }\r\n})\r\n\r\n/**\r\n * \r\n * @param attrs 显示图片编辑面板\r\n * @returns \r\n */\r\nexport const ShowImageEditPanel = async (attrs:any) => {\r\n return new Promise((resolve,reject) => {\r\n\r\n // 初始化\r\n selectState.value = attrs.src ? \"attrs\":\"select\";\r\n\r\n const imageEditPanelRef = ref<any>(null);\r\n const editResult = computed<any>(()=>imageEditPanelRef.value?.getResult())\r\n\r\n // 去裁切\r\n const toCropImageHandle = async ()=>{\r\n \r\n if(editResult.value.src){\r\n var result = await ImageCropper({ src: editResult.value.src});\r\n if(result.data){\r\n imageEditPanelRef.value?.setSrc(result.data);\r\n }\r\n }\r\n \r\n }\r\n\r\n // 取消编辑\r\n const handleCancelClick = () => {\r\n dialogInstance.destroy();\r\n reject();\r\n };\r\n\r\n // 确认编辑\r\n const handleConfirmClick = () => {\r\n dialogInstance.destroy();\r\n resolve({...editResult.value});\r\n };\r\n\r\n const dialogInstance = Dialoger.customRender({\r\n title: \"素材选择\",\r\n class: \"mk-material-select\",\r\n width: \"70%\",\r\n onClose: () => {\r\n dialogInstance.destroy();\r\n },\r\n body: () => {\r\n return h(ImageEditPanelComponent,{attrs,ref:r=>imageEditPanelRef.value = r});\r\n },\r\n footer: () => {\r\n\r\n // 下一步按钮\r\n let nextBtns = [\r\n <ElButton type=\"primary\" onClick={()=>selectState.value = 'attrs'}>\r\n 下一步\r\n </ElButton>\r\n ]\r\n\r\n if(selectState.value == \"attrs\"){\r\n nextBtns = [\r\n <ElButton type=\"primary\" onClick={()=>selectState.value='select'}>\r\n 重新选图\r\n </ElButton>,\r\n <ElButton type=\"primary\" onClick={toCropImageHandle}>\r\n 裁切图\r\n </ElButton>,\r\n <ElButton type=\"primary\" onClick={handleConfirmClick}>\r\n 确定\r\n </ElButton>\r\n ];\r\n }\r\n\r\n return (\r\n <Fragment>\r\n <ElButton onClick={handleCancelClick}>取消</ElButton>\r\n {...nextBtns}\r\n </Fragment>\r\n );\r\n },\r\n });\r\n });\r\n}\r\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","selectState","ref","ImageEditPanelComponent","defineComponent","name","props","setup","expose","attrs","reactive","materialTable","MsMaterialTable","margin","computed","set","v","t","r","b","l","get","vals","split","length","selectionChangeEvent","on","id","getSelection","src","getList","find","item","path","selectImage","file","fileSelect","accept","fileRender","FileReader","onload","data","target","result","readAsDataURL","getResult","setSrc","ImageView","_createVNode","ElImage","error","ElIcon","default","Picture","panel","ElTabs","ElTabPane","ElButton","UploadFilled","_createTextVNode","MKMaterialList","ElInput","$event","Share","value","ElRow","ElCol","ElForm","ElFormItem","_mergeProps","alt","rows","width","height","maxWidth","maxHeight","ShowImageEditPanel","Promise","resolve","reject","imageEditPanelRef","editResult","toCropImageHandle","ImageCropper","handleCancelClick","dialogInstance","destroy","handleConfirmClick","Dialoger","customRender","title","class","onClose","body","h","footer","nextBtns","onClick","_Fragment"],"mappings":";;;;;;;;;;;AAcA,SAAAA,QAAAC,GAAA;AAAA,SAAA,OAAAA,MAAA,cAAAC,OAAAC,UAAAC,SAAAC,KAAAJ,CAAA,MAAAK,qBAAAA,CAAAA,IAAA,QAAAL,CAAA;AAAA;AACA,MAAMM,cAAcC,IAAAA,IAAI,QAAQ;AAKhC,MAAMC,0BAA0BC,oBAAAA,gBAAgB;AAAA,EAC9CC,MAAM;AAAA,EACNC,OAAO,CAAC,OAAO;AAAA,EACfC,MAAMD,OAAM;AAAA,IAAEE;AAAAA,EAAO,GAAE;AAErB,UAAMC,QAAQC,IAAAA,SAASJ,MAAMG,KAAK;AAClC,UAAME,gBAAgBD,IAAAA,SAAS,IAAIE,gBAAAA,gBAAiB,CAAA;AACpD,UAAMC,SAASC,IAAAA,SAAc;AAAA,MAC3BC,IAAIC,GAAE;AACJP,cAAMI,SAAS,GAAGG,EAAEC,CAAC,IAAID,EAAEE,CAAC,IAAIF,EAAEG,CAAC,IAAIH,EAAEI,CAAC;AAAA,MAC3C;AAAA,MACDC,MAAK;AACH,YAAIC,OAAOb,MAAMI,OAAOU,MAAM,QAAQ;AACtC,YAAGD,KAAKE,UAAU,GAAE;AAClB,iBAAO;AAAA,YAACP,GAAEK,KAAK,CAAC;AAAA,YAAEJ,GAAEI,KAAK,CAAC;AAAA,YAAEH,GAAEG,KAAK,CAAC;AAAA,YAAEF,GAAEE,KAAK,CAAC;AAAA;QAChD,WACQA,KAAKE,UAAU,GAAE;AACvB,iBAAO;AAAA,YAACP,GAAEK,KAAK,CAAC;AAAA,YAAEJ,GAAEI,KAAK,CAAC;AAAA,YAAEH,GAAEG,KAAK,CAAC;AAAA,YAAEF,GAAEE,KAAK,CAAC;AAAA;QAChD,WACQA,KAAKE,UAAU,GAAE;AACvB,iBAAO;AAAA,YAACP,GAAEK,KAAK,CAAC;AAAA,YAAEJ,GAAEI,KAAK,CAAC;AAAA,YAAEH,GAAEG,KAAK,CAAC;AAAA,YAAEF,GAAEE,KAAK,CAAC;AAAA;QAChD,WACQA,KAAKE,UAAU,GAAE;AACvBF,iBAAO,CAAC,IAAG,IAAG,IAAG,EAAE;AAAA,QACrB;AACA,eAAO;AAAA,UAACL,GAAEK,KAAK,CAAC;AAAA,UAAEJ,GAAEI,KAAK,CAAC;AAAA,UAAEH,GAAEG,KAAK,CAAC;AAAA,UAAEF,GAAEE,KAAK,CAAC;AAAA;MAChD;AAAA,IACF,CAAC;AAGDX,kBAAcc,qBAAqBC,GAAG,MAAI;;AACxC,UAAIC,KAAKhB,cAAciB,aAAc,EAAC,CAAC;AACvC,UAAGD,IAAG;AACJlB,cAAMoB,OAAMlB,mBAAcmB,UAAUC,KAAKC,UAAMA,KAAKL,MAAMA,EAAE,MAAhDhB,mBAAmDsB;AAAAA,MACjE,OACI;AACFxB,cAAMoB,MAAM;AAAA,MACd;AAAA,IACF,CAAC;AAGD,UAAMK,cAAc,YAAU;AAE5B,YAAMC,OAAO,MAAMC,iBAAW;AAAA,QAAEC,QAAO;AAAA,MAAS,CAAC;AAEjD,UAAIF,MAAM;AAER,cAAMG,aAAa,IAAIC;AACvBD,mBAAWE,SAAS,OAAOC,SAAW;AACpChC,gBAAMoB,MAAMY,KAAKC,OAAOC;AAAAA;AAG1BL,mBAAWM,cAAcT,IAAI;AAAA,MAC/B;AAAA;AAIF3B,WAAO;AAAA,MACLqC,WAAUA,MAAI;AAAE,eAAO;AAAA,UAAC,GAAGpC;AAAAA;MAAQ;AAAA,MACnCqC,QAAQjB,SAAa;AAAGpB,cAAMoB,MAAMA;AAAAA,MAAI;AAAA,IAC1C,CAAC;AAED,WAAO,MAAI;AAGT,YAAMkB,YAASC,IAAA,YAAAC,qBAAA;AAAA,QAAA,SAAA;AAAA,QAAA,OAAwFxC,MAAMoB;AAAAA,QAAG,OAAA;AAAA,SAAyB;AAAA,QACvIqB,OAAMA,MAAI;AACR,iBAAAF,IAAAA,YAAA,OAAA;AAAA,YAAA,SAAA;AAAA,aAAAA,CAAAA,IAAAA,YAAAG,YAAA,QAAA,MAAA;AAAA,YAAAC,SAAAA,MAAAJ,CAAAA,IAAA,YAAAK,QAAA,SAAA,MAAA,IAAA,CAAA;AAAA,UAAA,CAAA,CAAA,CAAA;AAAA,QAUF;AAAA,MACF,CAAC;AAID,UAAIC,QAAKN,IAAA,YAAAO,oBAAA;AAAA,QAAA,SAAA;AAAA,MAAA,GAAA;AAAA,QAAAH,SAAAA,MAAAJ,CAAAA,IAAA,YAAAQ,uBAAA;AAAA,UAAA,SAAA;AAAA,QAAA,GAAA;AAAA,UAAAJ,SAAAA,MAAAJ,CAAAA,IAAA,YAAAS,sBAAA;AAAA,YAAA,QAEWC,QAAY;AAAA,YAAA,QAAA;AAAA,YAAA,SAAA;AAAA,YAAA,WAA8CxB;AAAAA,UAAW,GAAA;AAAA,YAAAkB,SAAAA,MAAA,CAAAO,oBAAA,QAAA,CAAA;AAAA,UAAA,CAAA,GAGpFZ,SAAS;AAAA,SAAAC,GAAAA,IAAA,YAAAQ,uBAAA;AAAA,UAAA,SAAA;AAAA,QAAA,GAAA;AAAA,UAAAJ,SAAAA,MAAAJ,CAAAA,IAAA,YAAAY,sBAAA;AAAA,YAAA,SAAA;AAAA,YAAA,cAAA;AAAA,YAAA,iBAGiEjD;AAAAA,UAAa,GAAA,IAAA,CAAA;AAAA,SAAAqC,GAAAA,IAAA,YAAAQ,uBAAA;AAAA,UAAA,SAAA;AAAA,QAAA,GAAA;AAAA,UAAAJ,SAAAA,MAAAJ,CAAAA,IAAA,YAAAa,qBAAA;AAAA,YAAA,cAGtEpD,MAAMoB;AAAAA,YAAG,uBAAAiC,YAATrD,MAAMoB,MAAGiC;AAAAA,YAAA,eAAeC,QAAK;AAAA,YAAA,SAAA;AAAA,YAAA,eAAA;AAAA,UAAA,GAAA,IAAA,GAE9ChB,SAAS;AAAA,QAAA,CAAA,CAAA;AAAA,OAEL;AAET,UAAG9C,YAAY+D,SAAS,SAAQ;AAC9BV,gBAAKN,IAAA,YAAAiB,mBAAA;AAAA,UAAA,UAAkB;AAAA,QAAE,GAAA;AAAA,UAAAb,SAAAA,MAAAJ,CAAAA,IAAA,YAAAkB,mBAAA;AAAA,YAAA,QACV;AAAA,UAAE,GAAAxE,QACZqD,SAAS,IAATA,YAAS;AAAA,YAAAK,SAAAA,MAAA,CAATL,SAAS;AAAA,WAAAC,GAAAA,IAAA,YAAAkB,mBAAA;AAAA,YAAA,QAEC;AAAA,UAAE,GAAA;AAAA,YAAAd,SAAAA,MAAAJ,CAAAA,IAAA,YAAAmB,oBAAA;AAAA,cAAA,kBAAA;AAAA,cAAA,SACuB1D;AAAAA,YAAK,GAAA;AAAA,cAAA2C,SAAAA,MAAAJ,CAAAA,IAAA,YAAAoB,wBAAA;AAAA,gBAAA,SAAA;AAAA,cAAA,GAAA;AAAA,gBAAAhB,SAAAA,MAAA,CAAAJ,gBAAAa,YAAAA,SAAAQ,IAAAA,WAAA;AAAA,kBAAA,cAEnB5D,MAAM6D;AAAAA,kBAAG,uBAAAR,YAATrD,MAAM6D,MAAGR;AAAAA,kBAAA,QAAA;AAAA,gBAAA,GAAA;AAAA,kBAAwBS,MAAK;AAAA,gBAAC,GAAA;AAAA,kBAAA,SAAA;AAAA,kBAAA,eAAA;AAAA,gBAAA,CAAA,GAAA,IAAA,CAAA;AAAA,eAAAvB,GAAAA,IAAA,YAAAoB,wBAAA;AAAA,gBAAA,SAAA;AAAA,cAAA,GAAA;AAAA,gBAAAhB,SAAAA,MAAAJ,CAAAA,IAAA,YAAAa,qBAAA;AAAA,kBAAA,cAIvCpD,MAAM+D;AAAAA,kBAAK,uBAAAV,YAAXrD,MAAM+D,QAAKV;AAAAA,kBAAA,SAAA;AAAA,kBAAA,eAAA;AAAA,gBAAA,GAAA,IAAA,CAAA;AAAA,eAAAd,GAAAA,IAAA,YAAAoB,wBAAA;AAAA,gBAAA,SAAA;AAAA,cAAA,GAAA;AAAA,gBAAAhB,SAAAA,MAAAJ,CAAAA,IAAA,YAAAa,qBAAA;AAAA,kBAAA,cAIXpD,MAAMgE;AAAAA,kBAAM,uBAAAX,YAAZrD,MAAMgE,SAAMX;AAAAA,kBAAA,SAAA;AAAA,kBAAA,eAAA;AAAA,gBAAA,GAAA,IAAA,CAAA;AAAA,eAAAd,GAAAA,IAAA,YAAAoB,wBAAA;AAAA,gBAAA,SAAA;AAAA,cAAA,GAAA;AAAA,gBAAAhB,SAAAA,MAAAJ,CAAAA,IAAA,YAAAa,qBAAA;AAAA,kBAAA,cAIZpD,MAAMiE;AAAAA,kBAAQ,uBAAAZ,YAAdrD,MAAMiE,WAAQZ;AAAAA,kBAAA,SAAA;AAAA,kBAAA,eAAA;AAAA,gBAAA,GAAA,IAAA,CAAA;AAAA,eAAAd,GAAAA,IAAA,YAAAoB,wBAAA;AAAA,gBAAA,SAAA;AAAA,cAAA,GAAA;AAAA,gBAAAhB,SAAAA,MAAAJ,CAAAA,IAAA,YAAAa,qBAAA;AAAA,kBAAA,cAIdpD,MAAMkE;AAAAA,kBAAS,uBAAAb,YAAfrD,MAAMkE,YAASb;AAAAA,kBAAA,SAAA;AAAA,kBAAA,eAAA;AAAA,gBAAA,GAAA,IAAA,CAAA;AAAA,eAAAd,GAAAA,IAAA,YAAAoB,wBAAA;AAAA,gBAAA,SAAA;AAAA,cAAA,GAAA;AAAA,gBAAAhB,SAAAA,MAAA,CAAAJ,IAAA,YAAA,OAAA;AAAA,kBAAA,SAAA;AAAA,gBAAA,GAAA,CAAAA,IAAAA,YAAAW,OAAAA,MAAAA,CAAAA,IAAAA,gBAAAX,IAAAA,GAAAA,IAAA,YAAAa,qBAAA;AAAA,kBAAA,cAOXhD,OAAOmD,MAAM/C;AAAAA,kBAAC,uBAAA6C,YAAdjD,OAAOmD,MAAM/C,IAAC6C;AAAAA,kBAAA,eAAA;AAAA,gBAAA,GAAA,IAAA,CAAA,CAAA,GAAAd,IAAAA,YAAAW,OAAAA,MAAAA,CAAAA,oBAAAX,IAAAA,GAAAA,IAAAA,YAAAa,YAAAA,SAAA;AAAA,kBAAA,cAKdhD,OAAOmD,MAAM9C;AAAAA,kBAAC,uBAAA4C,YAAdjD,OAAOmD,MAAM9C,IAAC4C;AAAAA,kBAAA,eAAA;AAAA,gBAAA,GAAA,IAAA,CAAA,CAAA,GAAAd,IAAAA,YAAAW,OAAAA,MAAAA,CAAAA,oBAAAX,IAAAA,GAAAA,IAAAA,YAAAa,YAAAA,SAAA;AAAA,kBAAA,cAMdhD,OAAOmD,MAAM7C;AAAAA,kBAAC,uBAAA2C,YAAdjD,OAAOmD,MAAM7C,IAAC2C;AAAAA,kBAAA,eAAA;AAAA,gBAAA,GAAA,IAAA,CAAA,CAAA,GAAAd,IAAAA,YAAAW,OAAAA,MAAAA,CAAAA,oBAAAX,IAAAA,GAAAA,IAAAA,YAAAa,YAAAA,SAAA;AAAA,kBAAA,cAMdhD,OAAOmD,MAAM5C;AAAAA,kBAAC,uBAAA0C,YAAdjD,OAAOmD,MAAM5C,IAAC0C;AAAAA,kBAAA,eAAA;AAAA,gBAAA,GAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,cAAA,CAAA,CAAA;AAAA,YAAA,CAAA,CAAA;AAAA,UAAA,CAAA,CAAA;AAAA,SAOpC;AAAA,MACV;AAEA,aAAOR;AAAAA;EAEX;AACF,CAAC;AAOYsB,MAAAA,qBAAqB,OAAQnE,UAAc;AACtD,SAAO,IAAIoE,QAAQ,CAACC,SAAQC,WAAW;AAGrC9E,gBAAY+D,QAAQvD,MAAMoB,MAAM,UAAQ;AAExC,UAAMmD,oBAAoB9E,QAAS,IAAI;AACvC,UAAM+E,aAAanE,IAAAA,SAAc,MAAA;;AAAIkE,qCAAkBhB,UAAlBgB,mBAAyBnC;AAAAA,KAAW;AAGzE,UAAMqC,oBAAoB,YAAU;;AAElC,UAAGD,WAAWjB,MAAMnC,KAAI;AACtB,YAAIc,SAAS,MAAMwC,6BAAa;AAAA,UAAEtD,KAAKoD,WAAWjB,MAAMnC;AAAAA,QAAG,CAAC;AAC5D,YAAGc,OAAOF,MAAK;AACbuC,kCAAkBhB,UAAlBgB,mBAAyBlC,OAAOH,OAAOF;AAAAA,QACzC;AAAA,MACF;AAAA;AAKF,UAAM2C,oBAAoBA,MAAM;AAC9BC,qBAAeC,QAAO;AACtBP;;AAIF,UAAMQ,qBAAqBA,MAAM;AAC/BF,qBAAeC,QAAO;AACtBR,cAAQ;AAAA,QAAC,GAAGG,WAAWjB;AAAAA,MAAK,CAAC;AAAA;AAG/B,UAAMqB,iBAAiBG,GAAQ,SAACC,aAAa;AAAA,MAC3CC,OAAO;AAAA,MACPC,OAAO;AAAA,MACPnB,OAAO;AAAA,MACPoB,SAASA,MAAM;AACbP,uBAAeC,QAAO;AAAA,MACvB;AAAA,MACDO,MAAMA,MAAM;AACV,eAAOC,IAAAA,EAAE3F,yBAAwB;AAAA,UAACM;AAAAA,UAAMP,KAAIgB,OAAG8D,kBAAkBhB,QAAQ9C;AAAAA,QAAC,CAAC;AAAA,MAC5E;AAAA,MACD6E,QAAQA,MAAM;AAGZ,YAAIC,WAAW,CAAAhD,IAAA,YAAAS,sBAAA;AAAA,UAAA,QAAA;AAAA,UAAA,WACqBwC,MAAIhG,YAAY+D,QAAQ;AAAA,QAAO,GAAA;AAAA,UAAAZ,SAAAA,MAAA,CAAAO,oBAAA,KAAA,CAAA;AAAA,QAGlE,CAAA,CAAA;AAED,YAAG1D,YAAY+D,SAAS,SAAQ;AAC9BgC,qBAAW,CAAAhD,IAAA,YAAAS,sBAAA;AAAA,YAAA,QAAA;AAAA,YAAA,WACyBwC,MAAIhG,YAAY+D,QAAM;AAAA,UAAQ,GAAA;AAAA,YAAAZ,SAAAA,MAAA,CAAAO,oBAAA,MAAA,CAAA;AAAA,WAAAX,GAAAA,IAAA,YAAAS,sBAAA;AAAA,YAAA,QAAA;AAAA,YAAA,WAG9ByB;AAAAA,UAAiB,GAAA;AAAA,YAAA9B,SAAAA,MAAA,CAAAO,oBAAA,KAAA,CAAA;AAAA,WAAAX,GAAAA,IAAA,YAAAS,sBAAA;AAAA,YAAA,QAAA;AAAA,YAAA,WAGjB8B;AAAAA,UAAkB,GAAA;AAAA,YAAAnC,SAAAA,MAAA,CAAAO,oBAAA,IAAA,CAAA;AAAA,UAGrD,CAAA,CAAA;AAAA,QACH;AAEA,eAAAX,IAAA,YAAAkD,IAAA,UAAAlD,MAAAA,CAAAA,IAAAA,YAAAS,YAAAA,UAAA;AAAA,UAAA,WAEuB2B;AAAAA,QAAiB,GAAA;AAAA,UAAAhC,SAAAA,MAAA,CAAAO,oBAAA,IAAA,CAAA;AAAA,QAAA,CAAA,GAAA,GAChCqC,QAAQ,CAAA;AAAA,MAGlB;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACH;;"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  const vue = require("vue");
3
- const icons = require("@element-plus/icons-vue");
3
+ const elIcons = require("@element-plus/icons-vue");
4
4
  const index = require("../svg-icon/index.js");
5
5
  const iconSelectOptions = require("./icon-select-options.js");
6
6
  const elementPlus = require("element-plus");
@@ -20,7 +20,7 @@ function _interopNamespaceDefault(e) {
20
20
  n.default = e;
21
21
  return Object.freeze(n);
22
22
  }
23
- const icons__namespace = /* @__PURE__ */ _interopNamespaceDefault(icons);
23
+ const elIcons__namespace = /* @__PURE__ */ _interopNamespaceDefault(elIcons);
24
24
  function _isSlot(s) {
25
25
  return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !vue.isVNode(s);
26
26
  }
@@ -31,18 +31,26 @@ const FormIconSelect = /* @__PURE__ */ vue.defineComponent({
31
31
  setup(props, {
32
32
  emit
33
33
  }) {
34
- const icons2 = vue.ref([]);
34
+ const icons = vue.ref([]);
35
+ const search = vue.ref("");
36
+ const filteredIcons = vue.computed(() => {
37
+ const _search = vue.unref(search).toLowerCase().trim();
38
+ return vue.unref(icons).filter((icon) => icon.toLowerCase().includes(_search));
39
+ });
35
40
  const modelValue = vue.computed({
36
41
  get: () => props.modelValue,
37
42
  set: (v) => {
38
43
  emit("update:model-value", v);
39
44
  }
40
45
  });
41
- vue.computed(() => props.disabled);
46
+ const disabled = vue.computed(() => props.disabled);
42
47
  const {
43
48
  formItem: elFormItem
44
49
  } = elementPlus.useFormItem();
45
50
  const handleClick = (icon) => {
51
+ if (vue.unref(disabled)) {
52
+ return;
53
+ }
46
54
  modelValue.value = icon;
47
55
  };
48
56
  vue.onMounted(() => {
@@ -52,7 +60,7 @@ const FormIconSelect = /* @__PURE__ */ vue.defineComponent({
52
60
  const symbols = svg.querySelectorAll("symbol");
53
61
  iconList = iconList.concat(Array.from(symbols).map((symbol) => symbol.id.replace(/^icon-/, "")));
54
62
  }
55
- icons2.value = Array.from(/* @__PURE__ */ new Set([...Object.keys(icons__namespace), ...iconList]));
63
+ icons.value = Array.from(/* @__PURE__ */ new Set([...Object.keys(elIcons__namespace), ...iconList]));
56
64
  });
57
65
  vue.watch(modelValue, () => {
58
66
  var _a;
@@ -62,20 +70,28 @@ const FormIconSelect = /* @__PURE__ */ vue.defineComponent({
62
70
  });
63
71
  return () => {
64
72
  const _value = vue.unref(modelValue);
65
- const children = vue.unref(icons2).map((icon) => vue.createVNode("span", {
73
+ const children = vue.unref(filteredIcons).map((icon) => vue.createVNode("span", {
66
74
  "key": icon,
67
- "class": ["mk-form-icon-select__icon-item", icon === _value ? "is-active" : ""],
75
+ "class": ["mk-icon-select__icon-item", icon === _value ? "is-active" : ""],
68
76
  "onClick": () => handleClick(icon)
69
77
  }, [vue.createVNode(index.MKSvgIcon, {
70
78
  "iconClass": icon
71
79
  }, null)]));
72
80
  return vue.createVNode("div", {
73
- "class": "mk-form-icon-select"
81
+ "class": "mk-icon-select"
82
+ }, [vue.createVNode(elementPlus.ElInput, {
83
+ "modelValue": vue.unref(search),
84
+ "onUpdate:modelValue": (v) => search.value = v,
85
+ "placeholder": "搜索图标",
86
+ "validateEvent": false,
87
+ "suffixIcon": elIcons__namespace.Search
88
+ }, null), vue.createVNode("div", {
89
+ "class": ["mk-icon-select__wrapper", vue.unref(disabled) ? "is-disabled" : ""]
74
90
  }, [vue.createVNode(elementPlus.ElScrollbar, {
75
91
  "height": "100%"
76
92
  }, _isSlot(children) ? children : {
77
93
  default: () => [children]
78
- })]);
94
+ })])]);
79
95
  };
80
96
  }
81
97
  });
@@ -1 +1 @@
1
- {"version":3,"file":"icon-select.js","sources":["../../../../../src/components/basic/icon-select/icon-select.tsx"],"sourcesContent":["import {\r\n Ref,\r\n computed,\r\n defineComponent,\r\n onMounted,\r\n ref,\r\n unref,\r\n watch,\r\n} from \"vue\";\r\nimport * as elIcons from \"@element-plus/icons-vue\";\r\nimport SvgIcon from \"../svg-icon\";\r\nimport { iconSelectProps, iconSelectEmits } from \"./icon-select-options\";\r\nimport { ElScrollbar, useFormItem as elUseFormItem } from \"element-plus\";\r\n\r\nexport default defineComponent({\r\n name: \"MKFormIconSelect\",\r\n props: iconSelectProps,\r\n emits: iconSelectEmits,\r\n setup(props, { emit }) {\r\n const icons: Ref<string[]> = ref([]);\r\n\r\n const modelValue = computed({\r\n get: () => props.modelValue,\r\n set: (v) => {\r\n emit(\"update:model-value\", v);\r\n },\r\n });\r\n\r\n const disabled = computed(() => props.disabled);\r\n\r\n const { formItem: elFormItem } = elUseFormItem();\r\n\r\n const handleClick = (icon: string) => {\r\n modelValue.value = icon;\r\n };\r\n\r\n onMounted(() => {\r\n const svgList: NodeListOf<SVGElement> = document.querySelectorAll(\r\n 'body > svg[aria-hidden=\"true\"]'\r\n );\r\n\r\n let iconList: string[] = [];\r\n\r\n for (const svg of Array.from(svgList)) {\r\n const symbols = svg.querySelectorAll(\"symbol\");\r\n\r\n iconList = iconList.concat(\r\n Array.from(symbols).map((symbol) => symbol.id.replace(/^icon-/, \"\"))\r\n );\r\n }\r\n\r\n icons.value = Array.from(new Set([...Object.keys(elIcons), ...iconList]));\r\n });\r\n\r\n watch(\r\n modelValue,\r\n () => {\r\n elFormItem?.validate?.(\"change\");\r\n },\r\n { flush: \"post\" }\r\n );\r\n\r\n return () => {\r\n const _value = unref(modelValue);\r\n\r\n const children = unref(icons).map((icon) => (\r\n <span\r\n key={icon}\r\n class={[\r\n \"mk-form-icon-select__icon-item\",\r\n icon === _value ? \"is-active\" : \"\",\r\n ]}\r\n onClick={() => handleClick(icon)}\r\n >\r\n <SvgIcon iconClass={icon} />\r\n </span>\r\n ));\r\n\r\n return (\r\n <div class=\"mk-form-icon-select\">\r\n <ElScrollbar height=\"100%\">{children}</ElScrollbar>\r\n </div>\r\n );\r\n };\r\n },\r\n});\r\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","defineComponent","name","props","iconSelectProps","emits","iconSelectEmits","setup","emit","icons","ref","modelValue","computed","get","set","v","disabled","formItem","elFormItem","elUseFormItem","handleClick","icon","value","onMounted","svgList","document","querySelectorAll","iconList","svg","Array","from","symbols","concat","map","symbol","id","replace","Set","keys","elIcons","watch","validate","flush","_value","unref","children","_createVNode","onClick","SvgIcon","ElScrollbar","default"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAYyE,SAAAA,QAAAC,GAAA;AAAA,SAAA,OAAAA,MAAA,cAAAC,OAAAC,UAAAC,SAAAC,KAAAJ,CAAA,MAAAK,qBAAAA,CAAAA,IAAA,QAAAL,CAAA;AAAA;AAEzE,MAAeM,qDAAgB;AAAA,EAC7BC,MAAM;AAAA,EACNC,OAAOC,kBAAe;AAAA,EACtBC,OAAOC,kBAAe;AAAA,EACtBC,MAAMJ,OAAO;AAAA,IAAEK;AAAAA,EAAK,GAAG;AACrB,UAAMC,SAAuBC,QAAI,CAAA,CAAE;AAEnC,UAAMC,aAAaC,IAAAA,SAAS;AAAA,MAC1BC,KAAKA,MAAMV,MAAMQ;AAAAA,MACjBG,KAAMC,OAAM;AACVP,aAAK,sBAAsBO,CAAC;AAAA,MAC9B;AAAA,IACF,CAAC;AAEgBH,iBAAS,MAAMT,MAAMa,QAAQ;AAE9C,UAAM;AAAA,MAAEC,UAAUC;AAAAA,IAAY,IAAGC,YAAa,YAAA;AAE9C,UAAMC,cAAeC,UAAiB;AACpCV,iBAAWW,QAAQD;AAAAA;AAGrBE,QAAAA,UAAU,MAAM;AACd,YAAMC,UAAkCC,SAASC,iBAC/C,gCACF;AAEA,UAAIC,WAAqB,CAAA;AAEzB,iBAAWC,OAAOC,MAAMC,KAAKN,OAAO,GAAG;AACrC,cAAMO,UAAUH,IAAIF,iBAAiB,QAAQ;AAE7CC,mBAAWA,SAASK,OAClBH,MAAMC,KAAKC,OAAO,EAAEE,IAAKC,YAAWA,OAAOC,GAAGC,QAAQ,UAAU,EAAE,CAAC,CACrE;AAAA,MACF;AAEA3B,MAAAA,OAAMa,QAAQO,MAAMC,KAAK,oBAAIO,IAAI,CAAC,GAAGzC,OAAO0C,KAAKC,gBAAO,GAAG,GAAGZ,QAAQ,CAAC,CAAC;AAAA,IAC1E,CAAC;AAEDa,QAAK,MACH7B,YACA,MAAM;;AACJO,qDAAYuB,aAAZvB,oCAAuB;AAAA,IACzB,GACA;AAAA,MAAEwB,OAAO;AAAA,IAAO,CAClB;AAEA,WAAO,MAAM;AACX,YAAMC,SAASC,UAAMjC,UAAU;AAE/B,YAAMkC,WAAWD,IAAAA,MAAMnC,MAAK,EAAEwB,IAAKZ,UAAIyB,IAAA,YAAA,QAAA;AAAA,QAAA,OAE9BzB;AAAAA,QAAI,SACF,CACL,kCACAA,SAASsB,SAAS,cAAc,EAAE;AAAA,QACnC,WACQI,MAAM3B,YAAYC,IAAI;AAAA,SAACyB,CAAAA,IAAA,YAAAE,iBAAA;AAAA,QAAA,aAEZ3B;AAAAA,MAAI,GAAA,IAAA,CAAA,CAAA,CAE3B;AAED,aAAAyB,IAAAA,YAAA,OAAA;AAAA,QAAA,SAAA;AAAA,SAAAA,CAAAA,IAAA,YAAAG,yBAAA;AAAA,QAAA,UAAA;AAAA,MAAA,GAAAvD,QAEgCmD,QAAQ,IAARA,WAAQ;AAAA,QAAAK,SAAAA,MAAA,CAARL,QAAQ;AAAA,MAAA,CAAA,CAAA,CAAA;AAAA;EAI5C;AACF,CAAC;;"}
1
+ {"version":3,"file":"icon-select.js","sources":["../../../../../src/components/basic/icon-select/icon-select.tsx"],"sourcesContent":["import {\r\n Ref,\r\n computed,\r\n defineComponent,\r\n onMounted,\r\n ref,\r\n unref,\r\n watch,\r\n} from \"vue\";\r\nimport * as elIcons from \"@element-plus/icons-vue\";\r\nimport SvgIcon from \"../svg-icon\";\r\nimport { iconSelectProps, iconSelectEmits } from \"./icon-select-options\";\r\nimport {\r\n ElInput,\r\n ElScrollbar,\r\n useFormItem as elUseFormItem,\r\n} from \"element-plus\";\r\n\r\nexport default defineComponent({\r\n name: \"MKFormIconSelect\",\r\n props: iconSelectProps,\r\n emits: iconSelectEmits,\r\n setup(props, { emit }) {\r\n const icons: Ref<string[]> = ref([]);\r\n\r\n const search = ref(\"\");\r\n\r\n const filteredIcons = computed(() => {\r\n const _search = unref(search).toLowerCase().trim();\r\n\r\n return unref(icons).filter((icon) =>\r\n icon.toLowerCase().includes(_search)\r\n );\r\n });\r\n\r\n const modelValue = computed({\r\n get: () => props.modelValue,\r\n set: (v) => {\r\n emit(\"update:model-value\", v);\r\n },\r\n });\r\n\r\n const disabled = computed(() => props.disabled);\r\n\r\n const { formItem: elFormItem } = elUseFormItem();\r\n\r\n const handleClick = (icon: string) => {\r\n if (unref(disabled)) {\r\n return;\r\n }\r\n\r\n modelValue.value = icon;\r\n };\r\n\r\n onMounted(() => {\r\n const svgList: NodeListOf<SVGElement> = document.querySelectorAll(\r\n 'body > svg[aria-hidden=\"true\"]'\r\n );\r\n\r\n let iconList: string[] = [];\r\n\r\n for (const svg of Array.from(svgList)) {\r\n const symbols = svg.querySelectorAll(\"symbol\");\r\n\r\n iconList = iconList.concat(\r\n Array.from(symbols).map((symbol) => symbol.id.replace(/^icon-/, \"\"))\r\n );\r\n }\r\n\r\n icons.value = Array.from(new Set([...Object.keys(elIcons), ...iconList]));\r\n });\r\n\r\n watch(\r\n modelValue,\r\n () => {\r\n elFormItem?.validate?.(\"change\");\r\n },\r\n { flush: \"post\" }\r\n );\r\n\r\n return () => {\r\n const _value = unref(modelValue);\r\n\r\n const children = unref(filteredIcons).map((icon) => (\r\n <span\r\n key={icon}\r\n class={[\r\n \"mk-icon-select__icon-item\",\r\n icon === _value ? \"is-active\" : \"\",\r\n ]}\r\n onClick={() => handleClick(icon)}\r\n >\r\n <SvgIcon iconClass={icon} />\r\n </span>\r\n ));\r\n\r\n return (\r\n <div class=\"mk-icon-select\">\r\n <ElInput\r\n modelValue={unref(search)}\r\n onUpdate:modelValue={(v) => (search.value = v)}\r\n placeholder=\"搜索图标\"\r\n validateEvent={false}\r\n suffixIcon={elIcons.Search}\r\n />\r\n\r\n <div\r\n class={[\r\n \"mk-icon-select__wrapper\",\r\n unref(disabled) ? \"is-disabled\" : \"\",\r\n ]}\r\n >\r\n <ElScrollbar height=\"100%\">{children}</ElScrollbar>\r\n </div>\r\n </div>\r\n );\r\n };\r\n },\r\n});\r\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","defineComponent","name","props","iconSelectProps","emits","iconSelectEmits","setup","emit","icons","ref","search","filteredIcons","computed","_search","unref","toLowerCase","trim","filter","icon","includes","modelValue","get","set","v","disabled","formItem","elFormItem","elUseFormItem","handleClick","value","onMounted","svgList","document","querySelectorAll","iconList","svg","Array","from","symbols","concat","map","symbol","id","replace","Set","keys","elIcons","watch","validate","flush","_value","children","_createVNode","onClick","SvgIcon","ElInput","Search","ElScrollbar","default"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  const vue = require("vue");
3
- const icons = require("@element-plus/icons-vue");
3
+ const elIcons = require("@element-plus/icons-vue");
4
4
  const svgIconOptions = require("./svg-icon-options.js");
5
5
  const elementPlus = require("element-plus");
6
6
  function _interopNamespaceDefault(e) {
@@ -19,7 +19,7 @@ function _interopNamespaceDefault(e) {
19
19
  n.default = e;
20
20
  return Object.freeze(n);
21
21
  }
22
- const icons__namespace = /* @__PURE__ */ _interopNamespaceDefault(icons);
22
+ const elIcons__namespace = /* @__PURE__ */ _interopNamespaceDefault(elIcons);
23
23
  const SvgIcon = /* @__PURE__ */ vue.defineComponent({
24
24
  name: "MKSvgIcon",
25
25
  props: svgIconOptions.svgIconProps,
@@ -27,7 +27,7 @@ const SvgIcon = /* @__PURE__ */ vue.defineComponent({
27
27
  setup(props, {
28
28
  emit
29
29
  }) {
30
- const iconNames = Object.keys(icons__namespace);
30
+ const iconNames = Object.keys(elIcons__namespace);
31
31
  const iconName = vue.computed(() => `#icon-${props.iconClass}`);
32
32
  const iconClass = vue.computed(() => props.className ? `mk-svg-icon ${props.className}` : "mk-svg-icon");
33
33
  const isElIcon = vue.computed(() => props.iconClass ? vue.unref(iconNames).includes(props.iconClass) : false);
@@ -36,7 +36,7 @@ const SvgIcon = /* @__PURE__ */ vue.defineComponent({
36
36
  };
37
37
  return () => {
38
38
  if (vue.unref(isElIcon)) {
39
- const Icon = icons__namespace[props.iconClass];
39
+ const Icon = elIcons__namespace[props.iconClass];
40
40
  return vue.createVNode("i", {
41
41
  "class": vue.unref(iconClass),
42
42
  "onClick": handleClick
@@ -1 +1 @@
1
- {"version":3,"file":"svg-icon.js","sources":["../../../../../src/components/basic/svg-icon/svg-icon.tsx"],"sourcesContent":["import { computed, defineComponent, unref } from \"vue\";\r\nimport * as icons from \"@element-plus/icons-vue\";\r\nimport { svgIconEmits, svgIconProps } from \"./svg-icon-options\";\r\nimport { ElIcon } from \"element-plus\";\r\n\r\nexport default defineComponent({\r\n name: \"MKSvgIcon\",\r\n props: svgIconProps,\r\n emits: svgIconEmits,\r\n setup(props, { emit }) {\r\n const iconNames = Object.keys(icons);\r\n\r\n const iconName = computed(() => `#icon-${props.iconClass}`);\r\n const iconClass = computed(() =>\r\n props.className ? `mk-svg-icon ${props.className}` : \"mk-svg-icon\"\r\n );\r\n\r\n const isElIcon = computed(() =>\r\n props.iconClass ? unref(iconNames).includes(props.iconClass) : false\r\n );\r\n\r\n const handleClick = (e: MouseEvent) => {\r\n emit(\"click\", e);\r\n };\r\n\r\n return () => {\r\n if (unref(isElIcon)) {\r\n const Icon = icons[props.iconClass as keyof typeof icons];\r\n\r\n return (\r\n <i class={unref(iconClass)} onClick={handleClick}>\r\n <ElIcon>\r\n <Icon />\r\n </ElIcon>\r\n </i>\r\n );\r\n }\r\n\r\n return (\r\n <i class={unref(iconClass)} onClick={handleClick}>\r\n <ElIcon>\r\n <svg>\r\n <use xlinkHref={unref(iconName)} />\r\n </svg>\r\n </ElIcon>\r\n </i>\r\n );\r\n };\r\n },\r\n});\r\n"],"names":["defineComponent","name","props","svgIconProps","emits","svgIconEmits","setup","emit","iconNames","Object","keys","icons","iconName","computed","iconClass","className","isElIcon","unref","includes","handleClick","e","Icon","_createVNode","ElIcon","default"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAKA,MAAeA,8CAAgB;AAAA,EAC7BC,MAAM;AAAA,EACNC,OAAOC,eAAY;AAAA,EACnBC,OAAOC,eAAY;AAAA,EACnBC,MAAMJ,OAAO;AAAA,IAAEK;AAAAA,EAAK,GAAG;AACrB,UAAMC,YAAYC,OAAOC,KAAKC,gBAAK;AAEnC,UAAMC,WAAWC,IAAAA,SAAS,MAAM,SAASX,MAAMY,SAAS,EAAE;AAC1D,UAAMA,YAAYD,IAAAA,SAAS,MACzBX,MAAMa,YAAY,eAAeb,MAAMa,SAAS,KAAK,aACvD;AAEA,UAAMC,WAAWH,IAAQ,SAAC,MACxBX,MAAMY,YAAYG,IAAK,MAACT,SAAS,EAAEU,SAAShB,MAAMY,SAAS,IAAI,KACjE;AAEA,UAAMK,cAAeC,OAAkB;AACrCb,WAAK,SAASa,CAAC;AAAA;AAGjB,WAAO,MAAM;AACX,UAAIH,IAAAA,MAAMD,QAAQ,GAAG;AACnB,cAAMK,OAAOV,iBAAMT,MAAMY,SAAS;AAElC,eAAAQ,IAAAA,YAAA,KAAA;AAAA,UAAA,SACYL,IAAK,MAACH,SAAS;AAAA,UAAC,WAAWK;AAAAA,WAAWG,CAAAA,IAAAA,YAAAC,YAAA,QAAA,MAAA;AAAA,UAAAC,SAAAA,MAAAF,CAAAA,IAAA,YAAAD,MAAA,MAAA,IAAA,CAAA;AAAA,QAAA,CAAA,CAAA,CAAA;AAAA,MAMpD;AAEA,aAAAC,IAAAA,YAAA,KAAA;AAAA,QAAA,SACYL,IAAK,MAACH,SAAS;AAAA,QAAC,WAAWK;AAAAA,SAAWG,CAAAA,IAAAA,YAAAC,YAAA,QAAA,MAAA;AAAA,QAAAC,SAAAA,MAAAF,CAAAA,8BAAAA,IAAA,YAAA,OAAA;AAAA,UAAA,cAG1BL,IAAK,MAACL,QAAQ;AAAA,QAAC,GAAA,IAAA,CAAA,CAAA,CAAA;AAAA,MAAA,CAAA,CAAA,CAAA;AAAA;EAM3C;AACF,CAAC;;"}
1
+ {"version":3,"file":"svg-icon.js","sources":["../../../../../src/components/basic/svg-icon/svg-icon.tsx"],"sourcesContent":["import { computed, defineComponent, unref } from \"vue\";\r\nimport * as icons from \"@element-plus/icons-vue\";\r\nimport { svgIconEmits, svgIconProps } from \"./svg-icon-options\";\r\nimport { ElIcon } from \"element-plus\";\r\n\r\nexport default defineComponent({\r\n name: \"MKSvgIcon\",\r\n props: svgIconProps,\r\n emits: svgIconEmits,\r\n setup(props, { emit }) {\r\n const iconNames = Object.keys(icons);\r\n\r\n const iconName = computed(() => `#icon-${props.iconClass}`);\r\n const iconClass = computed(() =>\r\n props.className ? `mk-svg-icon ${props.className}` : \"mk-svg-icon\"\r\n );\r\n\r\n const isElIcon = computed(() =>\r\n props.iconClass ? unref(iconNames).includes(props.iconClass) : false\r\n );\r\n\r\n const handleClick = (e: MouseEvent) => {\r\n emit(\"click\", e);\r\n };\r\n\r\n return () => {\r\n if (unref(isElIcon)) {\r\n const Icon = icons[props.iconClass as keyof typeof icons];\r\n\r\n return (\r\n <i class={unref(iconClass)} onClick={handleClick}>\r\n <ElIcon>\r\n <Icon />\r\n </ElIcon>\r\n </i>\r\n );\r\n }\r\n\r\n return (\r\n <i class={unref(iconClass)} onClick={handleClick}>\r\n <ElIcon>\r\n <svg>\r\n <use xlinkHref={unref(iconName)} />\r\n </svg>\r\n </ElIcon>\r\n </i>\r\n );\r\n };\r\n },\r\n});\r\n"],"names":["defineComponent","name","props","svgIconProps","emits","svgIconEmits","setup","emit","iconNames","Object","keys","icons","iconName","computed","iconClass","className","isElIcon","unref","includes","handleClick","e","Icon","_createVNode","ElIcon","default"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAKA,MAAeA,8CAAgB;AAAA,EAC7BC,MAAM;AAAA,EACNC,OAAOC,eAAY;AAAA,EACnBC,OAAOC,eAAY;AAAA,EACnBC,MAAMJ,OAAO;AAAA,IAAEK;AAAAA,EAAK,GAAG;AACrB,UAAMC,YAAYC,OAAOC,KAAKC,kBAAK;AAEnC,UAAMC,WAAWC,IAAAA,SAAS,MAAM,SAASX,MAAMY,SAAS,EAAE;AAC1D,UAAMA,YAAYD,IAAAA,SAAS,MACzBX,MAAMa,YAAY,eAAeb,MAAMa,SAAS,KAAK,aACvD;AAEA,UAAMC,WAAWH,IAAQ,SAAC,MACxBX,MAAMY,YAAYG,IAAK,MAACT,SAAS,EAAEU,SAAShB,MAAMY,SAAS,IAAI,KACjE;AAEA,UAAMK,cAAeC,OAAkB;AACrCb,WAAK,SAASa,CAAC;AAAA;AAGjB,WAAO,MAAM;AACX,UAAIH,IAAAA,MAAMD,QAAQ,GAAG;AACnB,cAAMK,OAAOV,mBAAMT,MAAMY,SAAS;AAElC,eAAAQ,IAAAA,YAAA,KAAA;AAAA,UAAA,SACYL,IAAK,MAACH,SAAS;AAAA,UAAC,WAAWK;AAAAA,WAAWG,CAAAA,IAAAA,YAAAC,YAAA,QAAA,MAAA;AAAA,UAAAC,SAAAA,MAAAF,CAAAA,IAAA,YAAAD,MAAA,MAAA,IAAA,CAAA;AAAA,QAAA,CAAA,CAAA,CAAA;AAAA,MAMpD;AAEA,aAAAC,IAAAA,YAAA,KAAA;AAAA,QAAA,SACYL,IAAK,MAACH,SAAS;AAAA,QAAC,WAAWK;AAAAA,SAAWG,CAAAA,IAAAA,YAAAC,YAAA,QAAA,MAAA;AAAA,QAAAC,SAAAA,MAAAF,CAAAA,8BAAAA,IAAA,YAAA,OAAA;AAAA,UAAA,cAG1BL,IAAK,MAACL,QAAQ;AAAA,QAAC,GAAA,IAAA,CAAA,CAAA,CAAA;AAAA,MAAA,CAAA,CAAA,CAAA;AAAA;EAM3C;AACF,CAAC;;"}
@@ -16,6 +16,18 @@ const uploadImageProps = utils.buildProps({
16
16
  multiple: {
17
17
  type: Boolean,
18
18
  default: false
19
+ },
20
+ width: {
21
+ type: String,
22
+ default: "180px"
23
+ },
24
+ height: {
25
+ type: String,
26
+ default: "180px"
27
+ },
28
+ icon: {
29
+ type: String,
30
+ default: "Picture"
19
31
  }
20
32
  });
21
33
  const uploadImageEmits = {
@@ -1 +1 @@
1
- {"version":3,"file":"upload-image-options.js","sources":["../../../../../../../src/components/basic/upload-file/ui/upload-image/upload-image-options.ts"],"sourcesContent":["import { ExtractPropTypes } from \"vue\";\r\nimport { buildProps } from \"@maketribe/utils\";\r\nimport { WebFileUploadContext, UploadContext } from \"../../context\";\r\n\r\nexport const uploadImageProps = buildProps({\r\n uploadContext: {\r\n type: UploadContext,\r\n default: () => new WebFileUploadContext(),\r\n },\r\n modelValue: {\r\n type: [String, Array<String>],\r\n },\r\n multiple: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n} as const);\r\n\r\nexport type UploadImageProps = ExtractPropTypes<typeof uploadImageProps>;\r\n\r\nexport const uploadImageEmits = {\r\n \"update:modelValue\": (path: string | string[]) => true,\r\n};\r\n\r\nexport type UploadImageEmits = typeof uploadImageEmits;\r\n"],"names":["buildProps","UploadContext","WebFileUploadContext"],"mappings":";;;;;;;AAIO,MAAM,mBAAmBA,MAAAA,WAAW;AAAA,EACzC,eAAe;AAAA,IACb,MAAMC,cAAA;AAAA,IACN,SAAS,MAAM,IAAIC,0CAAqB;AAAA,EAC1C;AAAA,EACA,YAAY;AAAA,IACV,MAAM,CAAC,QAAQ,KAAa;AAAA,EAC9B;AAAA,EACA,UAAU;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,EACX;AACF,CAAU;AAIH,MAAM,mBAAmB;AAAA,EAC9B,qBAAqB,CAAC,SAA4B;AACpD;;;"}
1
+ {"version":3,"file":"upload-image-options.js","sources":["../../../../../../../src/components/basic/upload-file/ui/upload-image/upload-image-options.ts"],"sourcesContent":["import { ExtractPropTypes } from \"vue\";\r\nimport { buildProps } from \"@maketribe/utils\";\r\nimport { WebFileUploadContext, UploadContext } from \"../../context\";\r\n\r\nexport const uploadImageProps = buildProps({\r\n uploadContext: {\r\n type: UploadContext,\r\n default: () => new WebFileUploadContext(),\r\n },\r\n modelValue: {\r\n type: [String, Array<String>],\r\n },\r\n multiple: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n width: {\r\n type: String,\r\n default: \"180px\",\r\n },\r\n height: {\r\n type: String,\r\n default: \"180px\",\r\n },\r\n icon: {\r\n type: String,\r\n default: \"Picture\",\r\n }\r\n} as const);\r\n\r\nexport type UploadImageProps = ExtractPropTypes<typeof uploadImageProps>;\r\n\r\nexport const uploadImageEmits = {\r\n \"update:modelValue\": (path: string | string[]) => true,\r\n};\r\n\r\nexport type UploadImageEmits = typeof uploadImageEmits;\r\n"],"names":["buildProps","UploadContext","WebFileUploadContext"],"mappings":";;;;;;;AAIO,MAAM,mBAAmBA,MAAAA,WAAW;AAAA,EACzC,eAAe;AAAA,IACb,MAAMC,cAAA;AAAA,IACN,SAAS,MAAM,IAAIC,0CAAqB;AAAA,EAC1C;AAAA,EACA,YAAY;AAAA,IACV,MAAM,CAAC,QAAQ,KAAa;AAAA,EAC9B;AAAA,EACA,UAAU;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,EACX;AAAA,EACA,OAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,EACX;AAAA,EACA,QAAQ;AAAA,IACN,MAAM;AAAA,IACN,SAAS;AAAA,EACX;AAAA,EACA,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,SAAS;AAAA,EACX;AACF,CAAU;AAIH,MAAM,mBAAmB;AAAA,EAC9B,qBAAqB,CAAC,SAA4B;AACpD;;;"}
@@ -19,6 +19,18 @@ const MKUploadImageItem = /* @__PURE__ */ vue.defineComponent({
19
19
  uploadContext: {
20
20
  type: UploadContext.UploadContext,
21
21
  required: true
22
+ },
23
+ width: {
24
+ type: String,
25
+ default: "180px"
26
+ },
27
+ height: {
28
+ type: String,
29
+ default: "180px"
30
+ },
31
+ icon: {
32
+ type: String,
33
+ default: "Plus"
22
34
  }
23
35
  },
24
36
  emits: ["update:modelValue", "view", "delete"],
@@ -79,11 +91,15 @@ const MKUploadImageItem = /* @__PURE__ */ vue.defineComponent({
79
91
  })])]);
80
92
  } else {
81
93
  content = vue.createVNode(index.MKSvgIcon, {
82
- "iconClass": "Plus"
94
+ "iconClass": props.icon
83
95
  }, null);
84
96
  }
85
97
  return vue.createVNode("div", {
86
- "class": "mk-upload-image-item"
98
+ "class": "mk-upload-image-item",
99
+ "style": {
100
+ width: props.width,
101
+ height: props.height
102
+ }
87
103
  }, [vue.createVNode(uploadFile.MKUploadFile, {
88
104
  "modelValue": props.modelValue,
89
105
  "onUpdate:modelValue": handleUpdateModelValue,
@@ -152,7 +168,10 @@ const UploadImage = /* @__PURE__ */ vue.defineComponent({
152
168
  "onDelete": handleDelete,
153
169
  "modelValue": vue.unref(modelValue),
154
170
  "onUpdate:modelValue": (value) => modelValue.value = value,
155
- "uploadContext": props.uploadContext
171
+ "uploadContext": props.uploadContext,
172
+ "width": props.width,
173
+ "height": props.height,
174
+ "icon": props.icon
156
175
  }, null);
157
176
  } else {
158
177
  let images = null;
@@ -161,12 +180,18 @@ const UploadImage = /* @__PURE__ */ vue.defineComponent({
161
180
  "onView": handleShowImageViewer,
162
181
  "onDelete": handleDelete,
163
182
  "modelValue": src,
164
- "uploadContext": props.uploadContext
183
+ "uploadContext": props.uploadContext,
184
+ "width": props.width,
185
+ "height": props.height,
186
+ "icon": props.icon
165
187
  }, null));
166
188
  }
167
189
  content = vue.createVNode(vue.Fragment, null, [images, vue.createVNode(MKUploadImageItem, {
168
190
  "onUpdate:modelValue": handleAppendImage,
169
- "uploadContext": props.uploadContext
191
+ "uploadContext": props.uploadContext,
192
+ "width": props.width,
193
+ "height": props.height,
194
+ "icon": props.icon
170
195
  }, null)]);
171
196
  }
172
197
  const imageViewer = vue.unref(isShowImageViewer) ? vue.createVNode(elementPlus.ElImageViewer, {
@@ -174,7 +199,10 @@ const UploadImage = /* @__PURE__ */ vue.defineComponent({
174
199
  "urlList": [vue.unref(currentImageSrc)]
175
200
  }, null) : null;
176
201
  return vue.createVNode("div", {
177
- "class": "mk-upload-image"
202
+ "class": "mk-upload-image",
203
+ "style": {
204
+ width: _multiple ? "" : props.width
205
+ }
178
206
  }, [content, imageViewer]);
179
207
  };
180
208
  }
@@ -1 +1 @@
1
- {"version":3,"file":"upload-image.js","sources":["../../../../../../../src/components/basic/upload-file/ui/upload-image/upload-image.tsx"],"sourcesContent":["import {\r\n Fragment,\r\n Ref,\r\n VNode,\r\n computed,\r\n defineComponent,\r\n ref,\r\n unref,\r\n watch,\r\n} from \"vue\";\r\nimport { ElImage, ElTooltip, ElImageViewer } from \"element-plus\";\r\nimport { MKSvgIcon } from \"../../../svg-icon\";\r\nimport { MKUploadFile } from \"../../upload-file\";\r\nimport { uploadImageEmits, uploadImageProps } from \"./upload-image-options\";\r\nimport { UploadContext } from \"../../context\";\r\n\r\nconst MKUploadImageItem = defineComponent({\r\n name: \"MKUploadImageItem\",\r\n props: {\r\n modelValue: {\r\n type: String,\r\n default: \"\",\r\n },\r\n uploadContext: {\r\n type: UploadContext,\r\n required: true,\r\n },\r\n },\r\n emits: [\"update:modelValue\", \"view\", \"delete\"],\r\n setup(props, { emit }) {\r\n const uploadFileInstance: Ref<InstanceType<typeof MKUploadFile> | null> =\r\n ref(null);\r\n\r\n const imageInstance: Ref<InstanceType<typeof ElImage> | null> = ref(null);\r\n\r\n const modelValue = computed({\r\n get: () => props.modelValue as string,\r\n set: (v: string) => {\r\n emit(\"update:modelValue\", v);\r\n },\r\n });\r\n\r\n const handleUpdateModelValue = (v: string) => {\r\n modelValue.value = v;\r\n };\r\n\r\n const handleClick = (event: MouseEvent) => {\r\n event.stopPropagation();\r\n\r\n if (unref(modelValue)) {\r\n return;\r\n }\r\n\r\n unref(uploadFileInstance)?.handleUpload();\r\n };\r\n\r\n const handleView = (event: MouseEvent) => {\r\n event.stopPropagation();\r\n\r\n emit(\"view\", unref(modelValue));\r\n };\r\n\r\n const handleDelete = (event: MouseEvent) => {\r\n event.stopPropagation();\r\n\r\n // modelValue.value = \"\";\r\n emit(\"delete\", unref(modelValue));\r\n };\r\n\r\n return () => {\r\n let content;\r\n\r\n if (unref(modelValue)) {\r\n content = (\r\n <Fragment>\r\n <ElImage\r\n ref={\r\n ((el: InstanceType<typeof ElImage>) =>\r\n (imageInstance.value = el)) as any\r\n }\r\n src={unref(modelValue)}\r\n class=\"mk-upload-image-item__image\"\r\n fit=\"cover\"\r\n />\r\n\r\n <div class=\"mk-upload-image-item__mask\">\r\n <ElTooltip content=\"查看\">\r\n <MKSvgIcon iconClass=\"View\" onClick={handleView} />\r\n </ElTooltip>\r\n <ElTooltip content=\"删除\">\r\n <MKSvgIcon iconClass=\"Delete\" onClick={handleDelete} />\r\n </ElTooltip>\r\n </div>\r\n </Fragment>\r\n );\r\n } else {\r\n content = <MKSvgIcon iconClass=\"Plus\" />;\r\n }\r\n\r\n return (\r\n <div class=\"mk-upload-image-item\">\r\n <MKUploadFile\r\n modelValue={props.modelValue}\r\n onUpdate:modelValue={handleUpdateModelValue}\r\n uploadContext={props.uploadContext}\r\n ref={\r\n ((el: InstanceType<typeof MKUploadFile>) =>\r\n (uploadFileInstance.value = el)) as any\r\n }\r\n >\r\n <div class=\"mk-upload-image-item__wrapper\" onClick={handleClick}>\r\n {content}\r\n </div>\r\n </MKUploadFile>\r\n </div>\r\n );\r\n };\r\n },\r\n});\r\n\r\nexport default defineComponent({\r\n name: \"MKUploadImage\",\r\n props: uploadImageProps,\r\n emits: uploadImageEmits,\r\n setup(props, { emit }) {\r\n const modelValue = computed({\r\n get: () => props.modelValue as string[] | string,\r\n set: (v: string[] | string) => emit(\"update:modelValue\", v),\r\n });\r\n\r\n const currentImageSrc: Ref<string> = ref(\"\");\r\n\r\n const multiple = computed(() => props.multiple);\r\n\r\n const isShowImageViewer: Ref<boolean> = ref(false);\r\n\r\n watch(\r\n computed(() => [unref(modelValue), unref(multiple)]),\r\n ([value, multiple]) => {\r\n if (multiple && !Array.isArray(value)) {\r\n modelValue.value = [];\r\n }\r\n },\r\n { immediate: true }\r\n );\r\n\r\n const handleDelete = (src: string) => {\r\n if (!unref(multiple)) {\r\n modelValue.value = \"\";\r\n return;\r\n }\r\n\r\n const index = unref(modelValue).indexOf(src);\r\n\r\n if (index === -1) {\r\n return;\r\n }\r\n\r\n (modelValue.value as string[]).splice(index, 1);\r\n };\r\n\r\n const handleShowImageViewer = (src: string) => {\r\n isShowImageViewer.value = true;\r\n currentImageSrc.value = src;\r\n };\r\n\r\n const handleCloseImageViewer = () => {\r\n isShowImageViewer.value = false;\r\n };\r\n\r\n const handleAppendImage = (src: string) => {\r\n const _value = unref(modelValue);\r\n\r\n if (Array.isArray(_value)) {\r\n _value.push(src);\r\n }\r\n };\r\n\r\n return () => {\r\n const _multiple = unref(multiple);\r\n\r\n let content;\r\n\r\n if (!_multiple) {\r\n content = (\r\n <MKUploadImageItem\r\n onView={handleShowImageViewer}\r\n onDelete={handleDelete}\r\n modelValue={unref(modelValue) as string}\r\n onUpdate:modelValue={(value) => (modelValue.value = value)}\r\n uploadContext={props.uploadContext}\r\n />\r\n );\r\n } else {\r\n let images: VNode[] | null = null;\r\n\r\n if (Array.isArray(unref(modelValue))) {\r\n images = (unref(modelValue) as string[]).map((src) => (\r\n <MKUploadImageItem\r\n onView={handleShowImageViewer}\r\n onDelete={handleDelete}\r\n modelValue={src}\r\n uploadContext={props.uploadContext}\r\n />\r\n ));\r\n }\r\n\r\n content = (\r\n <Fragment>\r\n {images}\r\n <MKUploadImageItem\r\n onUpdate:modelValue={handleAppendImage}\r\n uploadContext={props.uploadContext}\r\n />\r\n </Fragment>\r\n );\r\n }\r\n\r\n const imageViewer = unref(isShowImageViewer) ? (\r\n <ElImageViewer\r\n onClose={handleCloseImageViewer}\r\n urlList={[unref(currentImageSrc)]}\r\n />\r\n ) : null;\r\n\r\n return (\r\n <div class=\"mk-upload-image\">\r\n {content}\r\n {imageViewer}\r\n </div>\r\n );\r\n };\r\n },\r\n});\r\n"],"names":["MKUploadImageItem","defineComponent","name","props","modelValue","type","String","default","uploadContext","UploadContext","required","emits","setup","emit","uploadFileInstance","ref","imageInstance","computed","get","set","v","handleUpdateModelValue","value","handleClick","event","stopPropagation","unref","handleUpload","handleView","handleDelete","content","_createVNode","_Fragment","ElImage","el","ElTooltip","MKSvgIcon","MKUploadFile","uploadImageProps","uploadImageEmits","currentImageSrc","multiple","isShowImageViewer","watch","Array","isArray","immediate","src","index","indexOf","splice","handleShowImageViewer","handleCloseImageViewer","handleAppendImage","_value","push","_multiple","images","map","imageViewer","ElImageViewer"],"mappings":"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"}
1
+ {"version":3,"file":"upload-image.js","sources":["../../../../../../../src/components/basic/upload-file/ui/upload-image/upload-image.tsx"],"sourcesContent":["import {\r\n Fragment,\r\n Ref,\r\n VNode,\r\n computed,\r\n defineComponent,\r\n ref,\r\n unref,\r\n watch,\r\n} from \"vue\";\r\nimport { ElImage, ElTooltip, ElImageViewer } from \"element-plus\";\r\nimport { MKSvgIcon } from \"../../../svg-icon\";\r\nimport { MKUploadFile } from \"../../upload-file\";\r\nimport { uploadImageEmits, uploadImageProps } from \"./upload-image-options\";\r\nimport { UploadContext } from \"../../context\";\r\n\r\nconst MKUploadImageItem = defineComponent({\r\n name: \"MKUploadImageItem\",\r\n props: {\r\n modelValue: {\r\n type: String,\r\n default: \"\",\r\n },\r\n uploadContext: {\r\n type: UploadContext,\r\n required: true,\r\n },\r\n width: {\r\n type: String,\r\n default: \"180px\",\r\n },\r\n height: {\r\n type: String,\r\n default: \"180px\",\r\n },\r\n icon: {\r\n type: String,\r\n default: \"Plus\",\r\n }\r\n },\r\n emits: [\"update:modelValue\", \"view\", \"delete\"],\r\n setup(props, { emit }) {\r\n const uploadFileInstance: Ref<InstanceType<typeof MKUploadFile> | null> =\r\n ref(null);\r\n\r\n const imageInstance: Ref<InstanceType<typeof ElImage> | null> = ref(null);\r\n\r\n const modelValue = computed({\r\n get: () => props.modelValue as string,\r\n set: (v: string) => {\r\n emit(\"update:modelValue\", v);\r\n },\r\n });\r\n\r\n const handleUpdateModelValue = (v: string) => {\r\n modelValue.value = v;\r\n };\r\n\r\n const handleClick = (event: MouseEvent) => {\r\n event.stopPropagation();\r\n\r\n if (unref(modelValue)) {\r\n return;\r\n }\r\n\r\n unref(uploadFileInstance)?.handleUpload();\r\n };\r\n\r\n const handleView = (event: MouseEvent) => {\r\n event.stopPropagation();\r\n\r\n emit(\"view\", unref(modelValue));\r\n };\r\n\r\n const handleDelete = (event: MouseEvent) => {\r\n event.stopPropagation();\r\n\r\n // modelValue.value = \"\";\r\n emit(\"delete\", unref(modelValue));\r\n };\r\n\r\n return () => {\r\n let content;\r\n\r\n if (unref(modelValue)) {\r\n content = (\r\n <Fragment>\r\n <ElImage\r\n ref={\r\n ((el: InstanceType<typeof ElImage>) =>\r\n (imageInstance.value = el)) as any\r\n }\r\n src={unref(modelValue)}\r\n class=\"mk-upload-image-item__image\"\r\n fit=\"cover\"\r\n />\r\n\r\n <div class=\"mk-upload-image-item__mask\">\r\n <ElTooltip content=\"查看\">\r\n <MKSvgIcon iconClass=\"View\" onClick={handleView} />\r\n </ElTooltip>\r\n <ElTooltip content=\"删除\">\r\n <MKSvgIcon iconClass=\"Delete\" onClick={handleDelete} />\r\n </ElTooltip>\r\n </div>\r\n </Fragment>\r\n );\r\n } else {\r\n content = <MKSvgIcon iconClass={props.icon} />;\r\n }\r\n\r\n return (\r\n <div class=\"mk-upload-image-item\" style={{width:props.width,height:props.height}}>\r\n <MKUploadFile\r\n modelValue={props.modelValue}\r\n onUpdate:modelValue={handleUpdateModelValue}\r\n uploadContext={props.uploadContext}\r\n ref={\r\n ((el: InstanceType<typeof MKUploadFile>) =>\r\n (uploadFileInstance.value = el)) as any\r\n }\r\n >\r\n <div class=\"mk-upload-image-item__wrapper\" onClick={handleClick}>\r\n {content}\r\n </div>\r\n </MKUploadFile>\r\n </div>\r\n );\r\n };\r\n },\r\n});\r\n\r\nexport default defineComponent({\r\n name: \"MKUploadImage\",\r\n props: uploadImageProps,\r\n emits: uploadImageEmits,\r\n setup(props, { emit }) {\r\n const modelValue = computed({\r\n get: () => props.modelValue as string[] | string,\r\n set: (v: string[] | string) => emit(\"update:modelValue\", v),\r\n });\r\n\r\n const currentImageSrc: Ref<string> = ref(\"\");\r\n\r\n const multiple = computed(() => props.multiple);\r\n\r\n const isShowImageViewer: Ref<boolean> = ref(false);\r\n\r\n watch(\r\n computed(() => [unref(modelValue), unref(multiple)]),\r\n ([value, multiple]) => {\r\n if (multiple && !Array.isArray(value)) {\r\n modelValue.value = [];\r\n }\r\n },\r\n { immediate: true }\r\n );\r\n\r\n const handleDelete = (src: string) => {\r\n if (!unref(multiple)) {\r\n modelValue.value = \"\";\r\n return;\r\n }\r\n\r\n const index = unref(modelValue).indexOf(src);\r\n\r\n if (index === -1) {\r\n return;\r\n }\r\n\r\n (modelValue.value as string[]).splice(index, 1);\r\n };\r\n\r\n const handleShowImageViewer = (src: string) => {\r\n isShowImageViewer.value = true;\r\n currentImageSrc.value = src;\r\n };\r\n\r\n const handleCloseImageViewer = () => {\r\n isShowImageViewer.value = false;\r\n };\r\n\r\n const handleAppendImage = (src: string) => {\r\n const _value = unref(modelValue);\r\n\r\n if (Array.isArray(_value)) {\r\n _value.push(src);\r\n }\r\n };\r\n\r\n return () => {\r\n const _multiple = unref(multiple);\r\n\r\n let content;\r\n\r\n if (!_multiple) {\r\n content = (\r\n <MKUploadImageItem\r\n onView={handleShowImageViewer}\r\n onDelete={handleDelete}\r\n modelValue={unref(modelValue) as string}\r\n onUpdate:modelValue={(value) => (modelValue.value = value)}\r\n uploadContext={props.uploadContext}\r\n width={props.width}\r\n height={props.height}\r\n icon={props.icon}\r\n />\r\n );\r\n } else {\r\n let images: VNode[] | null = null;\r\n\r\n if (Array.isArray(unref(modelValue))) {\r\n images = (unref(modelValue) as string[]).map((src) => (\r\n <MKUploadImageItem\r\n onView={handleShowImageViewer}\r\n onDelete={handleDelete}\r\n modelValue={src}\r\n uploadContext={props.uploadContext}\r\n width={props.width}\r\n height={props.height}\r\n icon={props.icon}\r\n />\r\n ));\r\n }\r\n\r\n content = (\r\n <Fragment>\r\n {images}\r\n <MKUploadImageItem\r\n onUpdate:modelValue={handleAppendImage}\r\n uploadContext={props.uploadContext}\r\n width={props.width}\r\n height={props.height}\r\n icon={props.icon}\r\n />\r\n </Fragment>\r\n );\r\n }\r\n\r\n const imageViewer = unref(isShowImageViewer) ? (\r\n <ElImageViewer\r\n onClose={handleCloseImageViewer}\r\n urlList={[unref(currentImageSrc)]}\r\n />\r\n ) : null;\r\n\r\n return (\r\n <div class=\"mk-upload-image\" style={{width:_multiple?\"\":props.width}}>\r\n {content}\r\n {imageViewer}\r\n </div>\r\n );\r\n };\r\n },\r\n});\r\n"],"names":["MKUploadImageItem","defineComponent","name","props","modelValue","type","String","default","uploadContext","UploadContext","required","width","height","icon","emits","setup","emit","uploadFileInstance","ref","imageInstance","computed","get","set","v","handleUpdateModelValue","value","handleClick","event","stopPropagation","unref","handleUpload","handleView","handleDelete","content","_createVNode","_Fragment","ElImage","el","ElTooltip","MKSvgIcon","MKUploadFile","uploadImageProps","uploadImageEmits","currentImageSrc","multiple","isShowImageViewer","watch","Array","isArray","immediate","src","index","indexOf","splice","handleShowImageViewer","handleCloseImageViewer","handleAppendImage","_value","push","_multiple","images","map","imageViewer","ElImageViewer"],"mappings":"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"}
@@ -86,9 +86,10 @@ class ResourceManager extends utils.Disposable {
86
86
  const httpRequest = MSAppClient.MSAppClient.instance.httpRequest;
87
87
  try {
88
88
  this.loadingManager.startLoading();
89
+ const directoryPath = this.directories.length ? `/${this.directories.join("/")}` : "";
89
90
  return await httpRequest.post(
90
91
  `${this.baseURL}/resource/get-exist-path-list`,
91
- { pathList }
92
+ { pathList, directoryPath }
92
93
  );
93
94
  } catch (e) {
94
95
  console.error(e);
@@ -1 +1 @@
1
- {"version":3,"file":"ResourceManager.js","sources":["../../../../../src/components/business/resource-list/ResourceManager.ts"],"sourcesContent":["import { Disposable } from \"@maketribe/utils\";\r\nimport { MSAppClient } from \"../../../core\";\r\nimport { Dialoger, LoadingManager, Messager } from \"@maketribe/dm\";\r\nimport { R } from \"@maketribe/request\";\r\n\r\nexport type ResourceInfo = {\r\n name: string;\r\n path: string;\r\n isDirectory: boolean;\r\n extension: string;\r\n isSelected: boolean;\r\n};\r\n\r\nexport type ResourceManagerOptions = {\r\n extensions?: string[];\r\n baseURL: string;\r\n};\r\n\r\nexport class ResourceManager extends Disposable {\r\n directories: string[];\r\n\r\n resourceInfoList: ResourceInfo[];\r\n\r\n loadingManager: LoadingManager;\r\n\r\n isShowEditDialog: boolean = false;\r\n\r\n currentEditText: string = \"\";\r\n\r\n filterExtensions: string[] = [];\r\n\r\n baseURL: string = \"\";\r\n\r\n get selectResourceList() {\r\n return this.resourceInfoList.filter((item) => item.isSelected);\r\n }\r\n\r\n get loading() {\r\n return this.loadingManager.loading;\r\n }\r\n\r\n constructor(options: ResourceManagerOptions) {\r\n super();\r\n\r\n this.directories = [];\r\n\r\n this.resourceInfoList = [];\r\n\r\n this.loadingManager = new LoadingManager();\r\n\r\n this.filterExtensions = options.extensions ?? [];\r\n this.baseURL = options.baseURL;\r\n }\r\n\r\n async loadResourceInfoList(\r\n toPath: string = this.directories.length\r\n ? `/${this.directories.join(\"/\")}`\r\n : \"\"\r\n ) {\r\n const httpRequest = MSAppClient.instance!.httpRequest;\r\n\r\n try {\r\n this.loadingManager.startLoading();\r\n\r\n const response = await httpRequest.post<R<ResourceInfo[]>>(\r\n `${this.baseURL}/resource/resource-list`,\r\n {\r\n directoryPath: toPath,\r\n extensions: this.filterExtensions,\r\n }\r\n );\r\n\r\n if (response.data.code !== 200) {\r\n Messager.error({ message: response.data.msg });\r\n this.resourceInfoList = [];\r\n return;\r\n }\r\n\r\n this.resourceInfoList = response.data.data.map((item) => ({\r\n ...item,\r\n isSelected: false,\r\n }));\r\n\r\n var directorySegments = toPath.startsWith(\"/\")\r\n ? toPath.slice(1).split(\"/\")\r\n : toPath.split(\"/\");\r\n\r\n this.directories = directorySegments.filter(Boolean);\r\n } catch (e) {\r\n console.error(e);\r\n\r\n Messager.error({ message: \"网络异常\" });\r\n } finally {\r\n this.loadingManager.completeLoading();\r\n }\r\n }\r\n\r\n async deleteSelectResourceList() {\r\n const httpRequest = MSAppClient.instance!.httpRequest;\r\n\r\n try {\r\n this.loadingManager.startLoading();\r\n\r\n const response = await httpRequest.post(\r\n `${this.baseURL}/resource/delete-resource-list`,\r\n { paths: this.selectResourceList.map((item) => item.path) }\r\n );\r\n\r\n if (response.data.code !== 200) {\r\n Messager.error({ message: response.data.msg });\r\n this.loadResourceInfoList();\r\n return;\r\n }\r\n\r\n await this.loadResourceInfoList();\r\n } catch (e) {\r\n console.error(e);\r\n\r\n Messager.error({ message: \"网络异常\" });\r\n } finally {\r\n this.loadingManager.completeLoading();\r\n }\r\n }\r\n\r\n async getExistPathList(pathList: string[]) {\r\n const httpRequest = MSAppClient.instance!.httpRequest;\r\n\r\n try {\r\n this.loadingManager.startLoading();\r\n\r\n return await httpRequest.post(\r\n `${this.baseURL}/resource/get-exist-path-list`,\r\n { pathList }\r\n );\r\n } catch (e) {\r\n console.error(e);\r\n\r\n Messager.error({ message: \"网络异常\" });\r\n\r\n throw e;\r\n } finally {\r\n this.loadingManager.completeLoading();\r\n }\r\n }\r\n\r\n async uploadResourceList(files: File[]) {\r\n const httpRequest = MSAppClient.instance!.httpRequest;\r\n\r\n try {\r\n this.loadingManager.startLoading();\r\n\r\n var directory = this.directories.length\r\n ? `/${this.directories.join(\"/\")}`\r\n : \"\";\r\n\r\n var formData = new FormData();\r\n for (var i = 0; i < files.length; i++) {\r\n formData.append(files[i].name, files[i]);\r\n }\r\n formData.append(\"directory\", directory);\r\n\r\n const response = await httpRequest.post(\r\n `${this.baseURL}/resource/update-resource-list`,\r\n formData\r\n );\r\n\r\n if (response.data.code !== 200) {\r\n Messager.error({ message: response.data.msg });\r\n this.loadResourceInfoList();\r\n return;\r\n }\r\n\r\n await this.loadResourceInfoList();\r\n } catch (e) {\r\n console.error(e);\r\n\r\n Messager.error({ message: \"网络异常\" });\r\n } finally {\r\n this.loadingManager.completeLoading();\r\n }\r\n }\r\n\r\n async downloadSelectResource() {\r\n const httpRequest = MSAppClient.instance!.httpRequest;\r\n\r\n const response = await httpRequest.post(\r\n `${this.baseURL}/resource/get-download-resource-url`,\r\n { filePath: this.selectResourceList[0].path }\r\n );\r\n\r\n if (response.data.code !== 200) {\r\n Messager.error({ message: response.data.msg });\r\n return;\r\n }\r\n\r\n var aElement = document.createElement(\"a\");\r\n aElement.href = response.data.data;\r\n aElement.target = \"_blank\";\r\n\r\n aElement.click();\r\n }\r\n\r\n async editSelectFile() {\r\n const httpRequest = MSAppClient.instance!.httpRequest;\r\n\r\n try {\r\n this.loadingManager.startLoading();\r\n\r\n var resourceInfo = this.selectResourceList[0];\r\n\r\n const response = await httpRequest.post(\r\n `${this.baseURL}/resource/get-text`,\r\n {\r\n path: resourceInfo.path,\r\n }\r\n );\r\n\r\n this.isShowEditDialog = true;\r\n this.currentEditText = response.data.data;\r\n } finally {\r\n this.loadingManager.completeLoading();\r\n }\r\n }\r\n\r\n async saveEditFile() {\r\n const httpRequest = MSAppClient.instance!.httpRequest;\r\n\r\n try {\r\n this.loadingManager.startLoading();\r\n\r\n var resourceInfo = this.selectResourceList[0];\r\n\r\n const response = await httpRequest.post(\r\n `${this.baseURL}/resource/set-text`,\r\n {\r\n path: resourceInfo.path,\r\n content: this.currentEditText,\r\n }\r\n );\r\n\r\n if (response.data.code !== 200) {\r\n Messager.error({ message: response.data.msg });\r\n return;\r\n }\r\n\r\n this.isShowEditDialog = false;\r\n this.currentEditText = \"\";\r\n } finally {\r\n this.loadingManager.completeLoading();\r\n }\r\n }\r\n\r\n clearAllSelect() {\r\n for (var resourceInfo of this.selectResourceList) {\r\n resourceInfo.isSelected = false;\r\n }\r\n }\r\n\r\n handleSelectClick(event: MouseEvent, item: ResourceInfo) {\r\n if (!event.ctrlKey) {\r\n this.clearAllSelect();\r\n\r\n item.isSelected = true;\r\n return;\r\n }\r\n\r\n item.isSelected = !item.isSelected;\r\n }\r\n\r\n \r\n}\r\n"],"names":["Disposable","LoadingManager","MSAppClient","Messager"],"mappings":"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"}
1
+ {"version":3,"file":"ResourceManager.js","sources":["../../../../../src/components/business/resource-list/ResourceManager.ts"],"sourcesContent":["import { Disposable } from \"@maketribe/utils\";\r\nimport { MSAppClient } from \"../../../core\";\r\nimport { Dialoger, LoadingManager, Messager } from \"@maketribe/dm\";\r\nimport { R } from \"@maketribe/request\";\r\n\r\nexport type ResourceInfo = {\r\n name: string;\r\n path: string;\r\n isDirectory: boolean;\r\n extension: string;\r\n isSelected: boolean;\r\n};\r\n\r\nexport type ResourceManagerOptions = {\r\n extensions?: string[];\r\n baseURL: string;\r\n};\r\n\r\nexport class ResourceManager extends Disposable {\r\n directories: string[];\r\n\r\n resourceInfoList: ResourceInfo[];\r\n\r\n loadingManager: LoadingManager;\r\n\r\n isShowEditDialog: boolean = false;\r\n\r\n currentEditText: string = \"\";\r\n\r\n filterExtensions: string[] = [];\r\n\r\n baseURL: string = \"\";\r\n\r\n get selectResourceList() {\r\n return this.resourceInfoList.filter((item) => item.isSelected);\r\n }\r\n\r\n get loading() {\r\n return this.loadingManager.loading;\r\n }\r\n\r\n constructor(options: ResourceManagerOptions) {\r\n super();\r\n\r\n this.directories = [];\r\n\r\n this.resourceInfoList = [];\r\n\r\n this.loadingManager = new LoadingManager();\r\n\r\n this.filterExtensions = options.extensions ?? [];\r\n this.baseURL = options.baseURL;\r\n }\r\n\r\n async loadResourceInfoList(\r\n toPath: string = this.directories.length\r\n ? `/${this.directories.join(\"/\")}`\r\n : \"\"\r\n ) {\r\n const httpRequest = MSAppClient.instance!.httpRequest;\r\n\r\n try {\r\n this.loadingManager.startLoading();\r\n\r\n const response = await httpRequest.post<R<ResourceInfo[]>>(\r\n `${this.baseURL}/resource/resource-list`,\r\n {\r\n directoryPath: toPath,\r\n extensions: this.filterExtensions,\r\n }\r\n );\r\n\r\n if (response.data.code !== 200) {\r\n Messager.error({ message: response.data.msg });\r\n this.resourceInfoList = [];\r\n return;\r\n }\r\n\r\n this.resourceInfoList = response.data.data.map((item) => ({\r\n ...item,\r\n isSelected: false,\r\n }));\r\n\r\n var directorySegments = toPath.startsWith(\"/\")\r\n ? toPath.slice(1).split(\"/\")\r\n : toPath.split(\"/\");\r\n\r\n this.directories = directorySegments.filter(Boolean);\r\n } catch (e) {\r\n console.error(e);\r\n\r\n Messager.error({ message: \"网络异常\" });\r\n } finally {\r\n this.loadingManager.completeLoading();\r\n }\r\n }\r\n\r\n async deleteSelectResourceList() {\r\n const httpRequest = MSAppClient.instance!.httpRequest;\r\n\r\n try {\r\n this.loadingManager.startLoading();\r\n\r\n const response = await httpRequest.post(\r\n `${this.baseURL}/resource/delete-resource-list`,\r\n { paths: this.selectResourceList.map((item) => item.path) }\r\n );\r\n\r\n if (response.data.code !== 200) {\r\n Messager.error({ message: response.data.msg });\r\n this.loadResourceInfoList();\r\n return;\r\n }\r\n\r\n await this.loadResourceInfoList();\r\n } catch (e) {\r\n console.error(e);\r\n\r\n Messager.error({ message: \"网络异常\" });\r\n } finally {\r\n this.loadingManager.completeLoading();\r\n }\r\n }\r\n\r\n async getExistPathList(pathList: string[]) {\r\n const httpRequest = MSAppClient.instance!.httpRequest;\r\n\r\n try {\r\n this.loadingManager.startLoading();\r\n\r\n const directoryPath = this.directories.length\r\n ? `/${this.directories.join(\"/\")}`\r\n : \"\";\r\n\r\n return await httpRequest.post(\r\n `${this.baseURL}/resource/get-exist-path-list`,\r\n { pathList, directoryPath }\r\n );\r\n } catch (e) {\r\n console.error(e);\r\n\r\n Messager.error({ message: \"网络异常\" });\r\n\r\n throw e;\r\n } finally {\r\n this.loadingManager.completeLoading();\r\n }\r\n }\r\n\r\n async uploadResourceList(files: File[]) {\r\n const httpRequest = MSAppClient.instance!.httpRequest;\r\n\r\n try {\r\n this.loadingManager.startLoading();\r\n\r\n var directory = this.directories.length\r\n ? `/${this.directories.join(\"/\")}`\r\n : \"\";\r\n\r\n var formData = new FormData();\r\n for (var i = 0; i < files.length; i++) {\r\n formData.append(files[i].name, files[i]);\r\n }\r\n formData.append(\"directory\", directory);\r\n\r\n const response = await httpRequest.post(\r\n `${this.baseURL}/resource/update-resource-list`,\r\n formData\r\n );\r\n\r\n if (response.data.code !== 200) {\r\n Messager.error({ message: response.data.msg });\r\n this.loadResourceInfoList();\r\n return;\r\n }\r\n\r\n await this.loadResourceInfoList();\r\n } catch (e) {\r\n console.error(e);\r\n\r\n Messager.error({ message: \"网络异常\" });\r\n } finally {\r\n this.loadingManager.completeLoading();\r\n }\r\n }\r\n\r\n async downloadSelectResource() {\r\n const httpRequest = MSAppClient.instance!.httpRequest;\r\n\r\n const response = await httpRequest.post(\r\n `${this.baseURL}/resource/get-download-resource-url`,\r\n { filePath: this.selectResourceList[0].path }\r\n );\r\n\r\n if (response.data.code !== 200) {\r\n Messager.error({ message: response.data.msg });\r\n return;\r\n }\r\n\r\n var aElement = document.createElement(\"a\");\r\n aElement.href = response.data.data;\r\n aElement.target = \"_blank\";\r\n\r\n aElement.click();\r\n }\r\n\r\n async editSelectFile() {\r\n const httpRequest = MSAppClient.instance!.httpRequest;\r\n\r\n try {\r\n this.loadingManager.startLoading();\r\n\r\n var resourceInfo = this.selectResourceList[0];\r\n\r\n const response = await httpRequest.post(\r\n `${this.baseURL}/resource/get-text`,\r\n {\r\n path: resourceInfo.path,\r\n }\r\n );\r\n\r\n this.isShowEditDialog = true;\r\n this.currentEditText = response.data.data;\r\n } finally {\r\n this.loadingManager.completeLoading();\r\n }\r\n }\r\n\r\n async saveEditFile() {\r\n const httpRequest = MSAppClient.instance!.httpRequest;\r\n\r\n try {\r\n this.loadingManager.startLoading();\r\n\r\n var resourceInfo = this.selectResourceList[0];\r\n\r\n const response = await httpRequest.post(\r\n `${this.baseURL}/resource/set-text`,\r\n {\r\n path: resourceInfo.path,\r\n content: this.currentEditText,\r\n }\r\n );\r\n\r\n if (response.data.code !== 200) {\r\n Messager.error({ message: response.data.msg });\r\n return;\r\n }\r\n\r\n this.isShowEditDialog = false;\r\n this.currentEditText = \"\";\r\n } finally {\r\n this.loadingManager.completeLoading();\r\n }\r\n }\r\n\r\n clearAllSelect() {\r\n for (var resourceInfo of this.selectResourceList) {\r\n resourceInfo.isSelected = false;\r\n }\r\n }\r\n\r\n handleSelectClick(event: MouseEvent, item: ResourceInfo) {\r\n if (!event.ctrlKey) {\r\n this.clearAllSelect();\r\n\r\n item.isSelected = true;\r\n return;\r\n }\r\n\r\n item.isSelected = !item.isSelected;\r\n }\r\n}\r\n"],"names":["Disposable","LoadingManager","MSAppClient","Messager"],"mappings":"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"}