{"version":3,"file":"index.mjs","sources":["../../../../../packages/hooks/use-previewer/index.ts"],"sourcesContent":["import { h, ref, onBeforeUnmount } from 'vue'\nimport { omit } from 'lodash-es'\nimport { HlMessage } from 'hongluan-ui'\nimport { ModelessDialogManager } from 'hongluan-business-ui'\n\nexport interface PreviewItem {\n  [x: string]: any\n  id: string\n  name: string\n  url: string\n  sourceType: 1 | 2 // 1: img, 2: video,\n}\n\nfunction usePreviewer() {\n  const modelessIds = ref<string[]>([])\n\n  const showModelessDialogManager = (item: PreviewItem, initVideoWidth: string, limitNum?: number | null) => {\n    ModelessDialogManager.show({\n      id: item.id,\n      title: item.name,\n      useDock: false,\n      snapshot: false,\n      body: item.sourceType === 2\n        ? h('video',\n          {\n            class: 'videoBox',\n            src: `${item.url}`,\n            autoPlay: true,\n            controls: true,\n            muted: true,\n            style: {\n              width: initVideoWidth,\n            },\n          },\n        )\n        : h('img',\n          {\n            class: 'videoBox',\n            src: `${item.url}`,\n            style: {\n              width: initVideoWidth,\n            },\n          },\n        ),\n      resize: true,\n      onResize: (dlg: HTMLDivElement) => {\n        const videoNode = dlg.querySelector('.videoBox')\n        videoNode?.setAttribute('style', 'width:100%')\n      },\n      onClose: () => {\n        limitNum && modelessIds.value.splice(\n          modelessIds.value.findIndex(el => el === item.id),\n          1,\n        )\n      },\n      ...omit(item, ['id', 'name', 'url', 'sourceType']),\n    })\n  }\n  const openPreviewer = (item: PreviewItem, limitNum?: number | null, initVideoWidth = '500px') => {\n    if (limitNum) {\n      if (!modelessIds.value.includes(`${item.id}`)) {\n        if (modelessIds.value.length <= limitNum - 1) {\n          modelessIds.value.push(`${item.id}`)\n          showModelessDialogManager(item, initVideoWidth, limitNum)\n        } else {\n          HlMessage.warning({\n            message: `最多打开${limitNum}路视频!`,\n          })\n        }\n      } else {\n        HlMessage.warning({\n          message: '已打开!',\n        })\n      }\n    } else {\n      showModelessDialogManager(item, initVideoWidth, limitNum)\n    }\n  }\n\n  onBeforeUnmount(() => {\n    modelessIds.value = []\n    ModelessDialogManager.closeAll()\n  })\n\n  return {\n    openPreviewer,\n  }\n}\n\nexport { usePreviewer }\n"],"names":[],"mappings":"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"}