{"version":3,"file":"index.mjs","sources":["../../../../packages/service/search/index.ts"],"sourcesContent":["import { defineComponent, h, onBeforeMount } from \"vue\";\r\nimport { useMapRoot } from \"~/use/mapRoot\";\r\nimport { fixMapPropagation } from \"~/utils/fix\";\r\nimport { useMethods, useState } from \"./use\";\r\nimport { IconClose, IconRoute, IconSearch, SearchBox, SearchMapView, SearchPois, SearchSuggests } from \"./components\";\r\nimport { TdtRoute } from \"../route\";\r\nimport \"./styles/tdt-search.scss\";\r\nimport \"../../styles/tdt-icon.scss\";\r\n\r\nexport const TdtSearch = defineComponent({\r\n  name: \"TdtSearch\",\r\n  props: {\r\n    placeholder: { type: String, default: \"输入关键字搜索\" },\r\n    searchBtn: { type: Boolean, default: true },\r\n    routeBtn: { type: Boolean, default: true }\r\n  },\r\n  emits: {\r\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n    \"poi-click\": (poi: T.LocalSearchPoi) => true,\r\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n    \"suggest-click\": (suggest: T.LocalSearchSuggest) => true,\r\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n    \"search-complete\": (result: T.LocalSearchResult) => true\r\n  },\r\n  setup(props, { emit }) {\r\n    const state = useState();\r\n    const { onSearchComplete, onPoiClick, onSuggestClick, onSearch, onPageChange } = useMethods(state, emit);\r\n\r\n    onBeforeMount(async () => {\r\n      state.tdtMap = await useMapRoot();\r\n      state.localSearch = new T.LocalSearch(state.tdtMap, {\r\n        pageCapacity: 10,\r\n        onSearchComplete\r\n      });\r\n    });\r\n\r\n    return () =>\r\n      h(\r\n        \"div\",\r\n        {\r\n          class: \"tdt-search\",\r\n          // 解决地图的滚动冒泡和点击及双击冒泡\r\n          ...fixMapPropagation(state.tdtMap)\r\n        },\r\n        state.showRoute\r\n          ? [\r\n              h(TdtRoute),\r\n              h(\r\n                \"i\",\r\n                {\r\n                  class: \"tdt-search-route__close\",\r\n                  onClick: () => (state.showRoute = false)\r\n                },\r\n                [h(IconClose)]\r\n              )\r\n            ]\r\n          : [\r\n              h(\r\n                SearchBox,\r\n                {\r\n                  modelValue: state.keyword,\r\n                  placeholder: props.placeholder,\r\n                  \"onUpdate:modelValue\": (val: string) => {\r\n                    state.keyword = val;\r\n                    onSearch(4, val);\r\n                  },\r\n                  onSearch: (val: string) => onSearch(1, val)\r\n                },\r\n                [\r\n                  props.searchBtn &&\r\n                    h(\r\n                      \"button\",\r\n                      {\r\n                        class: \"tdt-search-box__btn\",\r\n                        onClick: () => onSearch(1)\r\n                      },\r\n                      [h(IconSearch)]\r\n                    ),\r\n                  props.routeBtn &&\r\n                    h(\r\n                      \"button\",\r\n                      {\r\n                        class: \"tdt-search-box__btn\",\r\n                        onClick: () => (state.showRoute = true)\r\n                      },\r\n                      [h(IconRoute)]\r\n                    )\r\n                ]\r\n              ),\r\n              h(SearchSuggests, {\r\n                suggests: state.suggests || [],\r\n                onSuggestClick: onSuggestClick\r\n              }),\r\n              h(SearchPois, {\r\n                pois: state.pois || [],\r\n                page: {\r\n                  current: state.current,\r\n                  size: 10,\r\n                  total: state.total\r\n                },\r\n                onPoiClick: onPoiClick,\r\n                \"onUpdate:page\": onPageChange\r\n              }),\r\n              h(SearchMapView, {\r\n                pois: state.pois || [],\r\n                target: state.target,\r\n                content: state.content,\r\n                onPoiClick: onPoiClick,\r\n                \"onUpdate:target\": (e: any) => (state.target = e)\r\n              })\r\n            ]\r\n      );\r\n  }\r\n});\r\n\r\nexport type TdtSearchInstance = InstanceType<typeof TdtSearch>;\r\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;"}