{"version":3,"file":"index.mjs","sources":["../../../../packages/service/search/index.ts"],"sourcesContent":["import { defineComponent, h, onBeforeMount } from \"vue\";\nimport { useMapRoot } from \"~/use/mapRoot\";\nimport { fixMapPropagation } from \"~/utils/fix\";\nimport { useMethods, useState } from \"./use\";\nimport { IconClose, IconRoute, IconSearch, SearchBox, SearchMapView, SearchPois, SearchSuggests } from \"./components\";\nimport { TdtRoute } from \"../route\";\nimport \"./styles/tdt-search.scss\";\nimport \"../../styles/tdt-icon.scss\";\n\nexport const TdtSearch = defineComponent({\n  name: \"TdtSearch\",\n  props: {\n    placeholder: { type: String, default: \"输入关键字搜索\" },\n    searchBtn: { type: Boolean, default: true },\n    routeBtn: { type: Boolean, default: true }\n  },\n  emits: {\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    \"poi-click\": (poi: T.LocalSearchPoi) => true,\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    \"suggest-click\": (suggest: T.LocalSearchSuggest) => true,\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    \"search-complete\": (result: T.LocalSearchResult) => true\n  },\n  setup(props, { emit }) {\n    const state = useState();\n    const { onSearchComplete, onPoiClick, onSuggestClick, onSearch, onPageChange } = useMethods(state, emit);\n\n    onBeforeMount(async () => {\n      state.tdtMap = await useMapRoot();\n      state.localSearch = new T.LocalSearch(state.tdtMap, {\n        pageCapacity: 10,\n        onSearchComplete\n      });\n    });\n\n    return () =>\n      h(\n        \"div\",\n        {\n          class: \"tdt-search\",\n          // 解决地图的滚动冒泡和点击及双击冒泡\n          ...fixMapPropagation(state.tdtMap)\n        },\n        state.showRoute\n          ? [\n              h(TdtRoute),\n              h(\n                \"i\",\n                {\n                  class: \"tdt-search-route__close\",\n                  onClick: () => (state.showRoute = false)\n                },\n                [h(IconClose)]\n              )\n            ]\n          : [\n              h(\n                SearchBox,\n                {\n                  modelValue: state.keyword,\n                  placeholder: props.placeholder,\n                  \"onUpdate:modelValue\": (val: string) => {\n                    state.keyword = val;\n                    onSearch(4, val);\n                  },\n                  onSearch: (val: string) => onSearch(1, val)\n                },\n                [\n                  props.searchBtn &&\n                    h(\n                      \"button\",\n                      {\n                        class: \"tdt-search-box__btn\",\n                        onClick: () => onSearch(1)\n                      },\n                      [h(IconSearch)]\n                    ),\n                  props.routeBtn &&\n                    h(\n                      \"button\",\n                      {\n                        class: \"tdt-search-box__btn\",\n                        onClick: () => (state.showRoute = true)\n                      },\n                      [h(IconRoute)]\n                    )\n                ]\n              ),\n              h(SearchSuggests, {\n                suggests: state.suggests || [],\n                onSuggestClick: onSuggestClick\n              }),\n              h(SearchPois, {\n                pois: state.pois || [],\n                page: {\n                  current: state.current,\n                  size: 10,\n                  total: state.total\n                },\n                onPoiClick: onPoiClick,\n                \"onUpdate:page\": onPageChange\n              }),\n              h(SearchMapView, {\n                pois: state.pois || [],\n                target: state.target,\n                content: state.content,\n                onPoiClick: onPoiClick,\n                \"onUpdate:target\": (e: any) => (state.target = e)\n              })\n            ]\n      );\n  }\n});\n\nexport type TdtSearchInstance = InstanceType<typeof TdtSearch>;\n"],"names":["TdtSearch","defineComponent","poi","suggest","result","props","emit","state","useState","onSearchComplete","onPoiClick","onSuggestClick","onSearch","onPageChange","useMethods","onBeforeMount","useMapRoot","h","fixMapPropagation","TdtRoute","IconClose","SearchBox","val","IconSearch","IconRoute","SearchSuggests","SearchPois","SearchMapView","e"],"mappings":";;;;;;;;;;;;;AASO,MAAMA,IAAYC,EAAgB;AAAA,EACvC,MAAM;AAAA,EACN,OAAO;AAAA,IACL,aAAa,EAAE,MAAM,QAAQ,SAAS,UAAU;AAAA,IAChD,WAAW,EAAE,MAAM,SAAS,SAAS,GAAK;AAAA,IAC1C,UAAU,EAAE,MAAM,SAAS,SAAS,GAAK;AAAA,EAC3C;AAAA,EACA,OAAO;AAAA;AAAA,IAEL,aAAa,CAACC,MAA0B;AAAA;AAAA,IAExC,iBAAiB,CAACC,MAAkC;AAAA;AAAA,IAEpD,mBAAmB,CAACC,MAAgC;AAAA,EACtD;AAAA,EACA,MAAMC,GAAO,EAAE,MAAAC,KAAQ;AACrB,UAAMC,IAAQC,EAAS,GACjB,EAAE,kBAAAC,GAAkB,YAAAC,GAAY,gBAAAC,GAAgB,UAAAC,GAAU,cAAAC,MAAiBC,EAAWP,GAAOD,CAAI;AAEvG,WAAAS,EAAc,YAAY;AAClB,MAAAR,EAAA,SAAS,MAAMS,EAAW,GAChCT,EAAM,cAAc,IAAI,EAAE,YAAYA,EAAM,QAAQ;AAAA,QAClD,cAAc;AAAA,QACd,kBAAAE;AAAA,MAAA,CACD;AAAA,IAAA,CACF,GAEM,MACLQ;AAAA,MACE;AAAA,MACA;AAAA,QACE,OAAO;AAAA;AAAA,QAEP,GAAGC,EAAkBX,EAAM,MAAM;AAAA,MACnC;AAAA,MACAA,EAAM,YACF;AAAA,QACEU,EAAEE,CAAQ;AAAA,QACVF;AAAA,UACE;AAAA,UACA;AAAA,YACE,OAAO;AAAA,YACP,SAAS,MAAOV,EAAM,YAAY;AAAA,UACpC;AAAA,UACA,CAACU,EAAEG,CAAS,CAAC;AAAA,QAAA;AAAA,MACf,IAEF;AAAA,QACEH;AAAA,UACEI;AAAA,UACA;AAAA,YACE,YAAYd,EAAM;AAAA,YAClB,aAAaF,EAAM;AAAA,YACnB,uBAAuB,CAACiB,MAAgB;AACtC,cAAAf,EAAM,UAAUe,GAChBV,EAAS,GAAGU,CAAG;AAAA,YACjB;AAAA,YACA,UAAU,CAACA,MAAgBV,EAAS,GAAGU,CAAG;AAAA,UAC5C;AAAA,UACA;AAAA,YACEjB,EAAM,aACJY;AAAA,cACE;AAAA,cACA;AAAA,gBACE,OAAO;AAAA,gBACP,SAAS,MAAML,EAAS,CAAC;AAAA,cAC3B;AAAA,cACA,CAACK,EAAEM,CAAU,CAAC;AAAA,YAChB;AAAA,YACFlB,EAAM,YACJY;AAAA,cACE;AAAA,cACA;AAAA,gBACE,OAAO;AAAA,gBACP,SAAS,MAAOV,EAAM,YAAY;AAAA,cACpC;AAAA,cACA,CAACU,EAAEO,CAAS,CAAC;AAAA,YAAA;AAAA,UACf;AAAA,QAEN;AAAA,QACAP,EAAEQ,GAAgB;AAAA,UAChB,UAAUlB,EAAM,YAAY,CAAC;AAAA,UAC7B,gBAAAI;AAAA,QAAA,CACD;AAAA,QACDM,EAAES,GAAY;AAAA,UACZ,MAAMnB,EAAM,QAAQ,CAAC;AAAA,UACrB,MAAM;AAAA,YACJ,SAASA,EAAM;AAAA,YACf,MAAM;AAAA,YACN,OAAOA,EAAM;AAAA,UACf;AAAA,UACA,YAAAG;AAAA,UACA,iBAAiBG;AAAA,QAAA,CAClB;AAAA,QACDI,EAAEU,GAAe;AAAA,UACf,MAAMpB,EAAM,QAAQ,CAAC;AAAA,UACrB,QAAQA,EAAM;AAAA,UACd,SAASA,EAAM;AAAA,UACf,YAAAG;AAAA,UACA,mBAAmB,CAACkB,MAAYrB,EAAM,SAASqB;AAAA,QAChD,CAAA;AAAA,MAAA;AAAA,IAET;AAAA,EAAA;AAEN,CAAC;"}