{"version":3,"file":"function-call.mjs","sources":["../../../../../../../packages/components/image-preview/src/function-call.tsx"],"sourcesContent":["import {\n  type ComponentInstance,\n  extend,\n  inBrowser,\n  mountComponent,\n} from '@xzx-design/utils'\nimport { usePopupState } from '@xzx-design/hooks'\nimport XzxImagePreview from './image-preview'\nimport type { ImagePreviewOptions } from './types'\n\nlet instance: ComponentInstance\n\nconst defaultConfig: ImagePreviewOptions = {\n  loop: true,\n  images: [],\n  maxZoom: 3,\n  minZoom: 1 / 3,\n  onScale: undefined,\n  onClose: undefined,\n  onChange: undefined,\n  vertical: false,\n  teleport: 'body',\n  className: '',\n  showIndex: true,\n  closeable: false,\n  closeIcon: 'clear',\n  transition: undefined,\n  beforeClose: undefined,\n  doubleScale: true,\n  overlayStyle: undefined,\n  overlayClass: undefined,\n  startPosition: 0,\n  swipeDuration: 300,\n  showIndicators: false,\n  closeOnPopstate: true,\n  closeOnClickOverlay: true,\n  closeIconPosition: 'top-right',\n}\n\nfunction initInstance() {\n  ;({ instance } = mountComponent({\n    setup() {\n      const { state, toggle } = usePopupState()\n      const onClosed = () => {\n        ;(state as any).images = []\n      }\n\n      return () => (\n        <XzxImagePreview\n          {...state}\n          onClosed={onClosed}\n          onUpdate:show={toggle}\n        />\n      )\n    },\n  }))\n}\n\n/**\n * Display a full-screen image preview component\n */\nexport const showImagePreview = (\n  options: string[] | ImagePreviewOptions,\n  startPosition = 0\n) => {\n  /* istanbul ignore if */\n  if (!inBrowser) {\n    return\n  }\n\n  if (!instance) {\n    initInstance()\n  }\n\n  options = Array.isArray(options)\n    ? { images: options, startPosition }\n    : options\n\n  instance.open(extend({}, defaultConfig, options))\n\n  return instance\n}\n"],"names":["instance","defaultConfig","loop","images","maxZoom","minZoom","onScale","undefined","onClose","onChange","vertical","teleport","className","showIndex","closeable","closeIcon","transition","beforeClose","doubleScale","overlayStyle","overlayClass","startPosition","swipeDuration","showIndicators","closeOnPopstate","closeOnClickOverlay","closeIconPosition","initInstance","mountComponent","setup","state","toggle","usePopupState","onClosed","_createVNode","XzxImagePreview","_mergeProps","showImagePreview","options","inBrowser","Array","isArray","open","extend"],"mappings":";;;;;;;;AAUA,IAAIA,QAAAA,CAAAA;AAEJ,MAAMC,aAAqC,GAAA;AAAA,EACzCC,IAAM,EAAA,IAAA;AAAA,EACNC,QAAQ,EAAE;AAAA,EACVC,OAAS,EAAA,CAAA;AAAA,EACTC,SAAS,CAAI,GAAA,CAAA;AAAA,EACbC,OAASC,EAAAA,KAAAA,CAAAA;AAAAA,EACTC,OAASD,EAAAA,KAAAA,CAAAA;AAAAA,EACTE,QAAUF,EAAAA,KAAAA,CAAAA;AAAAA,EACVG,QAAU,EAAA,KAAA;AAAA,EACVC,QAAU,EAAA,MAAA;AAAA,EACVC,SAAW,EAAA,EAAA;AAAA,EACXC,SAAW,EAAA,IAAA;AAAA,EACXC,SAAW,EAAA,KAAA;AAAA,EACXC,SAAW,EAAA,OAAA;AAAA,EACXC,UAAYT,EAAAA,KAAAA,CAAAA;AAAAA,EACZU,WAAaV,EAAAA,KAAAA,CAAAA;AAAAA,EACbW,WAAa,EAAA,IAAA;AAAA,EACbC,YAAcZ,EAAAA,KAAAA,CAAAA;AAAAA,EACda,YAAcb,EAAAA,KAAAA,CAAAA;AAAAA,EACdc,aAAe,EAAA,CAAA;AAAA,EACfC,aAAe,EAAA,GAAA;AAAA,EACfC,cAAgB,EAAA,KAAA;AAAA,EAChBC,eAAiB,EAAA,IAAA;AAAA,EACjBC,mBAAqB,EAAA,IAAA;AAAA,EACrBC,iBAAmB,EAAA,WAAA;AACrB,CAAA,CAAA;AAEA,SAASC,YAAe,GAAA;AACtB,EAAA,CAAA;AAAC,EAAC,CAAA;AAAA,IAAE3B,QAAAA;AAAAA,MAAa4B,cAAe,CAAA;AAAA,IAC9BC,KAAQ,GAAA;AACN,MAAM,MAAA;AAAA,QAAEC,KAAAA;AAAAA,QAAOC,MAAAA;AAAAA,UAAWC,aAAc,EAAA,CAAA;AACxC,MAAA,MAAMC,WAAWA,MAAM;AACrB,QAAA,CAAA;AAAEH,QAAAA,KAAAA,CAAc3B,SAAS,EAAE,CAAA;AAAA,OAC7B,CAAA;AAEA,MAAA,OAAO,MAAA+B,WAAAA,CAAAC,aAAAC,EAAAA,UAAAA,CAECN,KAAK,EAAA;AAAA,QAAA,UACCG,EAAAA,QAAAA;AAAAA,QAAQ,eACHF,EAAAA,MAAAA;AAAAA,OAElB,GAAA,IAAA,CAAA,CAAA;AAAA,KACH;AAAA,GACD,CAAA,EAAA;AACH,CAAA;AAKO,MAAMM,gBAAmBA,GAAAA,CAC9BC,OACAjB,EAAAA,aAAAA,GAAgB,CACb,KAAA;AAEH,EAAA,IAAI,CAACkB,SAAW,EAAA;AACd,IAAA,OAAA;AAAA,GACF;AAEA,EAAA,IAAI,CAACvC,QAAU,EAAA;AACb2B,IAAa,YAAA,EAAA,CAAA;AAAA,GACf;AAEAW,EAAUE,OAAAA,GAAAA,KAAAA,CAAMC,OAAQH,CAAAA,OAAO,CAC3B,GAAA;AAAA,IAAEnC,MAAQmC,EAAAA,OAAAA;AAAAA,IAASjB,aAAAA;AAAAA,GACnBiB,GAAAA,OAAAA,CAAAA;AAEJtC,EAAAA,QAAAA,CAAS0C,KAAKC,MAAO,CAAA,EAAI1C,EAAAA,aAAAA,EAAeqC,OAAO,CAAC,CAAA,CAAA;AAEhD,EAAOtC,OAAAA,QAAAA,CAAAA;AACT;;;;"}