@next-bricks/data-view 1.12.1 → 1.12.2
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.
- package/dist/bricks.json +15 -15
- package/dist/chunks/{114.3c9ded00.js → 114.19fb04c3.js} +2 -2
- package/dist/chunks/{114.3c9ded00.js.map → 114.19fb04c3.js.map} +1 -1
- package/dist/chunks/{1493.f58ac7e3.js → 1493.d9a3fd09.js} +2 -2
- package/dist/chunks/{1493.f58ac7e3.js.map → 1493.d9a3fd09.js.map} +1 -1
- package/dist/chunks/{3171.58807427.js → 3171.c0d5c9a1.js} +2 -2
- package/dist/chunks/{3171.58807427.js.map → 3171.c0d5c9a1.js.map} +1 -1
- package/dist/chunks/{3933.f2b54556.js → 3933.b3a62e03.js} +2 -2
- package/dist/chunks/{3933.f2b54556.js.map → 3933.b3a62e03.js.map} +1 -1
- package/dist/chunks/{7218.fd284b6b.js → 4837.7e3e2eea.js} +2 -2
- package/dist/chunks/{4837.f34e276b.js.map → 4837.7e3e2eea.js.map} +1 -1
- package/dist/chunks/{5552.87da9878.js → 5552.f046ba86.js} +2 -2
- package/dist/chunks/{5552.87da9878.js.map → 5552.f046ba86.js.map} +1 -1
- package/dist/chunks/{6314.a27d2069.js → 6314.6563d16e.js} +2 -2
- package/dist/chunks/{6314.a27d2069.js.map → 6314.6563d16e.js.map} +1 -1
- package/dist/chunks/{4837.f34e276b.js → 7218.2b5b7887.js} +2 -2
- package/dist/chunks/{7218.fd284b6b.js.map → 7218.2b5b7887.js.map} +1 -1
- package/dist/chunks/{7733.218dd478.js → 7733.c0366b9c.js} +2 -2
- package/dist/chunks/{7733.218dd478.js.map → 7733.c0366b9c.js.map} +1 -1
- package/dist/chunks/{8097.e14d0f64.js → 8097.f99bf9d0.js} +2 -2
- package/dist/chunks/{8097.e14d0f64.js.map → 8097.f99bf9d0.js.map} +1 -1
- package/dist/chunks/{8826.7aa371b5.js → 8826.63d2867f.js} +2 -2
- package/dist/chunks/{8826.7aa371b5.js.map → 8826.63d2867f.js.map} +1 -1
- package/dist/chunks/{9140.3c21ab5b.js → 9140.776942ea.js} +3 -3
- package/dist/chunks/9140.776942ea.js.map +1 -0
- package/dist/chunks/{app-wall-card-item.da5f2d4f.js → app-wall-card-item.438a2758.js} +3 -3
- package/dist/chunks/{app-wall-card-item.da5f2d4f.js.map → app-wall-card-item.438a2758.js.map} +1 -1
- package/dist/chunks/{app-wall-relation-line.7042a5be.js → app-wall-relation-line.94bc5eba.js} +3 -3
- package/dist/chunks/{app-wall-relation-line.7042a5be.js.map → app-wall-relation-line.94bc5eba.js.map} +1 -1
- package/dist/chunks/{app-wall-system-card.c8153e32.js → app-wall-system-card.29cd2836.js} +2 -2
- package/dist/chunks/{app-wall-system-card.c8153e32.js.map → app-wall-system-card.29cd2836.js.map} +1 -1
- package/dist/chunks/{app-wall.276c885a.js → app-wall.1d0801d4.js} +2 -2
- package/dist/chunks/{app-wall.276c885a.js.map → app-wall.1d0801d4.js.map} +1 -1
- package/dist/chunks/{basic-index-group.2e63b2b7.js → basic-index-group.ffbab2ee.js} +2 -2
- package/dist/chunks/{basic-index-group.2e63b2b7.js.map → basic-index-group.ffbab2ee.js.map} +1 -1
- package/dist/chunks/{battery-chart.3c0f114d.js → battery-chart.80355972.js} +2 -2
- package/dist/chunks/{battery-chart.3c0f114d.js.map → battery-chart.80355972.js.map} +1 -1
- package/dist/chunks/{brick-notification.937aab80.js → brick-notification.11d7411b.js} +2 -2
- package/dist/chunks/{brick-notification.937aab80.js.map → brick-notification.11d7411b.js.map} +1 -1
- package/dist/chunks/{bubbles-indicator.af0a0a56.js → bubbles-indicator.9df60d36.js} +2 -2
- package/dist/chunks/{bubbles-indicator.af0a0a56.js.map → bubbles-indicator.9df60d36.js.map} +1 -1
- package/dist/chunks/{cabinet-app-layer.dfafd4b1.js → cabinet-app-layer.05c66229.js} +3 -3
- package/dist/chunks/{cabinet-app-layer.dfafd4b1.js.map → cabinet-app-layer.05c66229.js.map} +1 -1
- package/dist/chunks/{cabinet-button.4eacd143.js → cabinet-button.ee9ea68d.js} +2 -2
- package/dist/chunks/{cabinet-button.4eacd143.js.map → cabinet-button.ee9ea68d.js.map} +1 -1
- package/dist/chunks/{cabinet-container.6de86813.js → cabinet-container.70ba99de.js} +3 -3
- package/dist/chunks/{cabinet-container.6de86813.js.map → cabinet-container.70ba99de.js.map} +1 -1
- package/dist/chunks/{cabinet-graph.b401d383.js → cabinet-graph.4cfa6429.js} +2 -2
- package/dist/chunks/{cabinet-graph.b401d383.js.map → cabinet-graph.4cfa6429.js.map} +1 -1
- package/dist/chunks/{cabinet-node.6cdcc2f4.js → cabinet-node.54685641.js} +3 -3
- package/dist/chunks/{cabinet-node.6cdcc2f4.js.map → cabinet-node.54685641.js.map} +1 -1
- package/dist/chunks/{cabinet-thumbnail.d2a5a22e.js → cabinet-thumbnail.ae05c311.js} +3 -3
- package/dist/chunks/{cabinet-thumbnail.d2a5a22e.js.map → cabinet-thumbnail.ae05c311.js.map} +1 -1
- package/dist/chunks/{china-map-chart.b86cfdc6.js → china-map-chart.7f0adf1a.js} +2 -2
- package/dist/chunks/{china-map-chart.b86cfdc6.js.map → china-map-chart.7f0adf1a.js.map} +1 -1
- package/dist/chunks/{china-map.faf20495.js → china-map.3e89e422.js} +2 -2
- package/dist/chunks/{china-map.faf20495.js.map → china-map.3e89e422.js.map} +1 -1
- package/dist/chunks/{complex-search.c53d6876.js → complex-search.92e0b5ca.js} +2 -2
- package/dist/chunks/{complex-search.c53d6876.js.map → complex-search.92e0b5ca.js.map} +1 -1
- package/dist/chunks/{crystal-ball-indicator.170ca1e4.js → crystal-ball-indicator.bb7f716b.js} +2 -2
- package/dist/chunks/{crystal-ball-indicator.170ca1e4.js.map → crystal-ball-indicator.bb7f716b.js.map} +1 -1
- package/dist/chunks/{data-display-flipper-fifth.3d575cb7.js → data-display-flipper-fifth.6cdcf8a4.js} +2 -2
- package/dist/chunks/{data-display-flipper-fifth.3d575cb7.js.map → data-display-flipper-fifth.6cdcf8a4.js.map} +1 -1
- package/dist/chunks/{data-display-flipper-sixth.9aa671ab.js → data-display-flipper-sixth.d3052c74.js} +2 -2
- package/dist/chunks/{data-display-flipper-sixth.9aa671ab.js.map → data-display-flipper-sixth.d3052c74.js.map} +1 -1
- package/dist/chunks/{data-display-flipper.b0b989af.js → data-display-flipper.df9e9e17.js} +2 -2
- package/dist/chunks/{data-display-flipper.b0b989af.js.map → data-display-flipper.df9e9e17.js.map} +1 -1
- package/dist/chunks/{dropdown-menu.8639ec11.js → dropdown-menu.7c2ad1f0.js} +3 -3
- package/dist/chunks/{dropdown-menu.8639ec11.js.map → dropdown-menu.7c2ad1f0.js.map} +1 -1
- package/dist/chunks/{gauge-chart.41091236.js → gauge-chart.cbbfe883.js} +2 -2
- package/dist/chunks/{gauge-chart.41091236.js.map → gauge-chart.cbbfe883.js.map} +1 -1
- package/dist/chunks/{gear-background.9bfb53bd.js → gear-background.5ab63f12.js} +2 -2
- package/dist/chunks/{gear-background.9bfb53bd.js.map → gear-background.5ab63f12.js.map} +1 -1
- package/dist/chunks/{globe-with-gear-indicator.c9e02dda.js → globe-with-gear-indicator.61e1e1e1.js} +2 -2
- package/dist/chunks/{globe-with-gear-indicator.c9e02dda.js.map → globe-with-gear-indicator.61e1e1e1.js.map} +1 -1
- package/dist/chunks/{globe-with-halo-indicator.efc88256.js → globe-with-halo-indicator.dbbb98b8.js} +2 -2
- package/dist/chunks/{globe-with-halo-indicator.efc88256.js.map → globe-with-halo-indicator.dbbb98b8.js.map} +1 -1
- package/dist/chunks/{globe-with-orbit-indicator.7283d892.js → globe-with-orbit-indicator.3539cb84.js} +2 -2
- package/dist/chunks/{globe-with-orbit-indicator.7283d892.js.map → globe-with-orbit-indicator.3539cb84.js.map} +1 -1
- package/dist/chunks/{graph-layout-grid.a55d8a02.js → graph-layout-grid.abb6c059.js} +2 -2
- package/dist/chunks/{graph-layout-grid.a55d8a02.js.map → graph-layout-grid.abb6c059.js.map} +1 -1
- package/dist/chunks/{graph-node.cf0b1cfa.js → graph-node.dce0737b.js} +2 -2
- package/dist/chunks/{graph-node.cf0b1cfa.js.map → graph-node.dce0737b.js.map} +1 -1
- package/dist/chunks/graph-text.1e489f3c.js +2 -0
- package/dist/chunks/{graph-text.35673faa.js.map → graph-text.1e489f3c.js.map} +1 -1
- package/dist/chunks/{grid-background.cc1e3afa.js → grid-background.ac91a79b.js} +2 -2
- package/dist/chunks/{grid-background.cc1e3afa.js.map → grid-background.ac91a79b.js.map} +1 -1
- package/dist/chunks/{hi-tech-button.dead37e9.js → hi-tech-button.174e33b5.js} +2 -2
- package/dist/chunks/{hi-tech-button.dead37e9.js.map → hi-tech-button.174e33b5.js.map} +1 -1
- package/dist/chunks/{indicator-card.f7458b02.js → indicator-card.365a80fa.js} +3 -3
- package/dist/chunks/{indicator-card.f7458b02.js.map → indicator-card.365a80fa.js.map} +1 -1
- package/dist/chunks/{lights-component-title.9cd0ac54.js → lights-component-title.b45aca52.js} +2 -2
- package/dist/chunks/{lights-component-title.9cd0ac54.js.map → lights-component-title.b45aca52.js.map} +1 -1
- package/dist/chunks/{loading-panel.7016fde7.js → loading-panel.c38af443.js} +2 -2
- package/dist/chunks/{loading-panel.7016fde7.js.map → loading-panel.c38af443.js.map} +1 -1
- package/dist/chunks/main.2bd22c14.js +2 -0
- package/dist/chunks/{main.dc2e2e0c.js.map → main.2bd22c14.js.map} +1 -1
- package/dist/chunks/{modern-style-component-title.7c84583d.js → modern-style-component-title.66152366.js} +2 -2
- package/dist/chunks/{modern-style-component-title.7c84583d.js.map → modern-style-component-title.66152366.js.map} +1 -1
- package/dist/chunks/{modern-style-page-title.9c0ea141.js → modern-style-page-title.f50dfbec.js} +2 -2
- package/dist/chunks/{modern-style-page-title.9c0ea141.js.map → modern-style-page-title.f50dfbec.js.map} +1 -1
- package/dist/chunks/modern-style-treemap.53d4bfc8.js +3 -0
- package/dist/chunks/{modern-style-treemap.3836ca2d.js.map → modern-style-treemap.53d4bfc8.js.map} +1 -1
- package/dist/chunks/{particle-animation.b1ee4077.js → particle-animation.ee49b237.js} +2 -2
- package/dist/chunks/{particle-animation.b1ee4077.js.map → particle-animation.ee49b237.js.map} +1 -1
- package/dist/chunks/{progress-bar-list.1bda79e5.js → progress-bar-list.7254b6b3.js} +2 -2
- package/dist/chunks/{progress-bar-list.1bda79e5.js.map → progress-bar-list.7254b6b3.js.map} +1 -1
- package/dist/chunks/{radar-chart.12f7c254.js → radar-chart.0e982983.js} +2 -2
- package/dist/chunks/{radar-chart.12f7c254.js.map → radar-chart.0e982983.js.map} +1 -1
- package/dist/chunks/{simple-card-item.527df7f3.js → simple-card-item.c36118a6.js} +3 -3
- package/dist/chunks/{simple-card-item.527df7f3.js.map → simple-card-item.c36118a6.js.map} +1 -1
- package/dist/chunks/{tabs-drawer.6f738d4a.js → tabs-drawer.2e83b00f.js} +3 -3
- package/dist/chunks/{tabs-drawer.6f738d4a.js.map → tabs-drawer.2e83b00f.js.map} +1 -1
- package/dist/chunks/{tabs-page-title.de666d04.js → tabs-page-title.19eaecee.js} +3 -3
- package/dist/chunks/{tabs-page-title.de666d04.js.map → tabs-page-title.19eaecee.js.map} +1 -1
- package/dist/chunks/{tech-mesh-base-view.bb1c3815.js → tech-mesh-base-view.2c686877.js} +2 -2
- package/dist/chunks/{tech-mesh-base-view.bb1c3815.js.map → tech-mesh-base-view.2c686877.js.map} +1 -1
- package/dist/chunks/{title-text.b5045fb6.js → title-text.fc52bc8a.js} +2 -2
- package/dist/chunks/{title-text.b5045fb6.js.map → title-text.fc52bc8a.js.map} +1 -1
- package/dist/chunks/{top-title-bar.a630cb07.js → top-title-bar.0e9025cd.js} +2 -2
- package/dist/chunks/{top-title-bar.a630cb07.js.map → top-title-bar.0e9025cd.js.map} +1 -1
- package/dist/examples.json +21 -21
- package/dist/index.727c7633.js +2 -0
- package/dist/index.727c7633.js.map +1 -0
- package/dist/manifest.json +201 -201
- package/dist/types.json +572 -572
- package/package.json +4 -4
- package/dist/chunks/9140.3c21ab5b.js.map +0 -1
- package/dist/chunks/graph-text.35673faa.js +0 -2
- package/dist/chunks/main.dc2e2e0c.js +0 -2
- package/dist/chunks/modern-style-treemap.3836ca2d.js +0 -3
- package/dist/index.bddd5f0f.js +0 -2
- package/dist/index.bddd5f0f.js.map +0 -1
- /package/dist/chunks/{9140.3c21ab5b.js.LICENSE.txt → 9140.776942ea.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{app-wall-card-item.da5f2d4f.js.LICENSE.txt → app-wall-card-item.438a2758.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{app-wall-relation-line.7042a5be.js.LICENSE.txt → app-wall-relation-line.94bc5eba.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{cabinet-app-layer.dfafd4b1.js.LICENSE.txt → cabinet-app-layer.05c66229.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{cabinet-container.6de86813.js.LICENSE.txt → cabinet-container.70ba99de.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{cabinet-node.6cdcc2f4.js.LICENSE.txt → cabinet-node.54685641.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{cabinet-thumbnail.d2a5a22e.js.LICENSE.txt → cabinet-thumbnail.ae05c311.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{dropdown-menu.8639ec11.js.LICENSE.txt → dropdown-menu.7c2ad1f0.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{indicator-card.f7458b02.js.LICENSE.txt → indicator-card.365a80fa.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{modern-style-treemap.3836ca2d.js.LICENSE.txt → modern-style-treemap.53d4bfc8.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{simple-card-item.527df7f3.js.LICENSE.txt → simple-card-item.c36118a6.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{tabs-drawer.6f738d4a.js.LICENSE.txt → tabs-drawer.2e83b00f.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{tabs-page-title.de666d04.js.LICENSE.txt → tabs-page-title.19eaecee.js.LICENSE.txt} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/china-map-chart.b86cfdc6.js","mappings":"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","sources":["webpack:///./src/china-map-chart/styles.shadow.css","webpack:///./src/shared/useContainerScale.ts","webpack:///./src/china-map-chart/index.tsx"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"./assets/label.svg\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([fill-container]){display:block;height:100%;position:relative;overflow:hidden}:host([hidden]){display:none}.text{position:absolute;z-index:6;height:22px;line-height:22px;font-size:12px;background:url(${___CSS_LOADER_URL_REPLACEMENT_0___}) no-repeat center left;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transform:translate(20px,-150%)!important;color:rgba(255,255,255,1);text-indent:10px}.iconImg{position:absolute;z-index:5;src:\"./assets/default.png\";-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.detailContent{position:absolute;opacity:0.8;z-index:20}:host(:not([fill-container])) .map{position:absolute;top:0;left:0;right:0;bottom:0}:host([fill-container]) .map{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.leftText{margin-left:-20px;transform:translate(-100%,-150%)!important}.topText{margin-top:-10px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","import { useEffect, useState } from \"react\";\nimport ResizeObserver from \"resize-observer-polyfill\";\n\n/**\n * 根据容器尺寸进行缩放\n */\nexport function useContainerScale({\n width: baseWidth,\n height: baseHeight,\n root,\n maxScale,\n disabled,\n}: {\n width: number;\n height: number;\n root: HTMLElement;\n /** 最大缩放比例,默认为 1 */\n maxScale?: number;\n disabled?: boolean;\n}): number | null {\n const [scale, setScale] = useState<number | null>(null);\n\n useEffect(() => {\n if (disabled) {\n setScale(null);\n return;\n }\n // 当容器宽高低于预设值时,图形会自动缩小\n const observer = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target === root) {\n const { width, height } = entry.contentRect;\n setScale(\n Math.min(maxScale ?? 1, width / baseWidth, height / baseHeight)\n );\n }\n }\n });\n observer.observe(root);\n return () => observer.disconnect();\n }, [baseHeight, baseWidth, disabled, maxScale, root]);\n\n return scale;\n}\n","import React, { useEffect, useRef, useState, CSSProperties } from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport {\n Scene,\n PolygonLayer,\n LineLayer,\n Marker,\n ImageLayer,\n type ILayer,\n type Point,\n} from \"@antv/l7\";\nimport { Map } from \"@antv/l7-maps\";\nimport { cloneDeep, isEmpty, isEqual, toNumber } from \"lodash\";\nimport defaultSvg from \"./assets/default.svg?url\";\nimport selectedSvg from \"./assets/selected.svg?url\";\nimport chinaPng from \"./assets/china.png\";\nimport texturePng from \"./assets/texture.png\";\nimport styleText from \"./styles.shadow.css\";\nimport { useContainerScale } from \"../shared/useContainerScale\";\n\nconst { defineElement, property, event } = createDecorators();\n\nconst BASE_WIDTH = 825;\nconst BASE_HEIGHT = 600;\n\ninterface FeatureCollection {\n type: \"FeatureCollection\";\n features: Feature[];\n}\n\ninterface Feature {\n type: \"Feature\";\n id?: string;\n properties: {\n name: string;\n center?: Point;\n province_adcode: number;\n province: string;\n };\n geometry: Polygon | MultiPolygon;\n}\n\ninterface Polygon {\n type: \"Polygon\";\n coordinates: Point[][];\n}\n\ninterface MultiPolygon {\n type: \"MultiPolygon\";\n coordinates: Point[][][];\n}\n\ninterface Area {\n name: string;\n level: \"country\" | \"province\" | \"city\" | \"district\";\n adcode: number;\n lng: number;\n lat: number;\n parent: number;\n}\n\n/**\n * 中国地图图表构件,可以显示省级指标数据\n *\n * @deprecated 已废弃,请使用 `data-view.china-map`\n */\nexport\n@defineElement(\"data-view.china-map-chart\", {\n styleTexts: [styleText],\n})\nclass ChinaMapChart extends ReactNextElement {\n /**\n * 省份名称,例如“广东”。如果设置,则只显示该省份的地图,否则显示全国地图\n */\n @property()\n accessor province: string | undefined;\n\n /**\n * 数据源\n */\n @property({ attribute: false })\n accessor dataSource: DataSource[] | undefined;\n\n /**\n * 描述内容样式\n */\n @property({ attribute: false })\n accessor detailContentStyle: CSSProperties | undefined;\n\n /**\n * 是否铺满容器\n *\n * 注意:该属性不同时兼容 detail 插槽\n */\n @property({ type: Boolean })\n accessor fillContainer: boolean | undefined;\n\n /**\n * 当提示可见性开始变化时触发\n * @detail 当前是否可见\n */\n @event({ type: \"detail.open.change\" })\n accessor #openChangeEvent!: EventEmitter<{\n open: boolean;\n data: Record<string, any>;\n }>;\n #handleOpenChange = (open: boolean, data: Record<string, any>): void => {\n this.#openChangeEvent.emit({ open, data });\n };\n\n render() {\n return (\n <ChinaMapChartComponent\n root={this}\n province={this.province}\n dataSource={this.dataSource}\n onDetailOpenChange={this.#handleOpenChange}\n detailContentStyle={this.detailContentStyle}\n fillContainer={this.fillContainer}\n />\n );\n }\n}\n\ninterface DataSource {\n /** 省级行政区域名,例如:四川、北京 */\n city: string;\n detailDisplayLocation: \"pageCenter\" | \"textBottom\";\n text: string;\n [x: string]: any;\n}\n\nexport interface ChinaMapChartProps {\n root: HTMLElement;\n province?: string;\n onDetailOpenChange: (open: boolean, data: Record<string, any>) => void;\n dataSource: DataSource[];\n detailContentStyle?: CSSProperties;\n fillContainer?: boolean;\n // Define props here.\n}\n\nexport function ChinaMapChartComponent(props: ChinaMapChartProps) {\n const {\n root,\n province,\n onDetailOpenChange,\n dataSource = [],\n detailContentStyle = {},\n fillContainer,\n } = props;\n const mapRef = useRef<HTMLDivElement>();\n const slotRef = useRef<HTMLSlotElement>();\n const [showData, setShowData] = useState<DataSource>();\n const showDataRef = useRef<DataSource>();\n const [textPosition, setTextPosition] = useState<{\n left: string;\n top: string;\n }>();\n\n const scale = useContainerScale({\n width: BASE_WIDTH,\n height: BASE_HEIGHT,\n root,\n maxScale: 10,\n disabled: !fillContainer,\n });\n\n const textClick = (e: MouseEvent, data: any) => {\n e.stopPropagation();\n if (isEqual(data, showDataRef.current)) {\n setShowData(null);\n return;\n }\n setShowData(data);\n setTextPosition({\n left: `${toNumber((e.target as any).style.left.replace(\"px\", \"\")) + 24}px`,\n top: `${toNumber((e.target as any).style.top.replace(\"px\", \"\")) + 28}px`,\n });\n };\n useEffect(() => {\n const scene = new Scene({\n id: mapRef.current,\n logoVisible: false,\n map: new Map({\n // center: [90.268, 40.3628],\n pitch: 35,\n zoom: 1,\n }),\n });\n scene.setMapStatus({ doubleClickZoom: false, zoomEnable: false });\n const defaultImg = new Image();\n defaultImg.src = defaultSvg;\n\n const selectedImg = new Image();\n selectedImg.src = selectedSvg;\n\n scene.addImage(\"default\", defaultImg);\n scene.addImage(\"selected\", selectedImg);\n if (!province) {\n scene.addImage(\"chinaBg\", chinaPng);\n } else {\n scene.addImage(\"texture\", texturePng);\n }\n\n scene.on(\"loaded\", async () => {\n let data: FeatureCollection;\n let southSeaData: FeatureCollection;\n let matchedProvince: Area | undefined;\n let AreaList: Area[] | undefined;\n if (province) {\n const [CitiesImport, AreaListImport] = await Promise.all([\n import(\"./cities.json\"),\n import(\"./area-list.json\"),\n ]);\n const Cities = CitiesImport.default as unknown as FeatureCollection;\n AreaList = AreaListImport.default as unknown as Area[];\n matchedProvince = AreaList.find(\n (a) => a.level === \"province\" && a.name.includes(province)\n );\n\n if (!matchedProvince) {\n throw new Error(`没有找到省份:\"${province}\"`);\n }\n\n data = {\n type: \"FeatureCollection\",\n features: (Cities as FeatureCollection).features.filter(\n (f) => f.properties.province_adcode === matchedProvince.adcode\n ),\n };\n } else {\n const ChinaImport = await import(\"./map.json\");\n const CHINA = ChinaImport.default as unknown as FeatureCollection;\n data = {\n type: \"FeatureCollection\",\n features: (CHINA as unknown as FeatureCollection).features.slice(\n 0,\n CHINA.features.length - 2\n ),\n };\n southSeaData = {\n ...CHINA,\n features: CHINA.features.slice(\n CHINA.features.length - 2,\n CHINA.features.length\n ),\n };\n }\n\n const seventhPolygonLayer = new PolygonLayer({\n autoFit: false,\n }).source(data);\n\n let labelDivideLng: number | undefined;\n // 根据坐标范围设置 3D 图层升起的高度\n let raisingHeightBase: number;\n if (province) {\n let top = Infinity;\n let left = Infinity;\n let bottom = -Infinity;\n let right = -Infinity;\n const points = data.features.flatMap(\n (f) =>\n f.geometry.coordinates.flat(\n f.geometry.type === \"MultiPolygon\" ? 2 : 1\n ) as Point[]\n );\n points.forEach(([lng, lat]) => {\n top = Math.min(top, lat);\n left = Math.min(left, lng);\n bottom = Math.max(bottom, lat);\n right = Math.max(right, lng);\n });\n const lngRange = right - left;\n const latRange = bottom - top;\n raisingHeightBase = Math.max(2000 * lngRange, 3000 * latRange);\n // 在经度范围的 3/4 处设置分界线,左边的文字向右排,右边的文字向左排\n labelDivideLng = left + (lngRange * 3) / 4;\n } else {\n raisingHeightBase = 100000;\n }\n\n seventhPolygonLayer\n .shape(\"extrude\")\n .color(\"rgba(84, 239, 241, 0.20)\")\n .style({\n heightfixed: true,\n pickLight: true,\n opacity: 1,\n raisingHeight: -13 * raisingHeightBase,\n });\n\n const sixthPolygonLayer = new PolygonLayer({\n autoFit: false,\n }).source(data);\n\n sixthPolygonLayer\n .shape(\"extrude\")\n .color(\"rgba(14, 11, 75, 0.58)\")\n .style({\n heightfixed: true,\n pickLight: true,\n opacity: 1,\n raisingHeight: -11 * raisingHeightBase,\n });\n\n const fifthPolygonLayer = new PolygonLayer({\n autoFit: false,\n }).source(data);\n\n fifthPolygonLayer\n .shape(\"extrude\")\n .color(\"rgba(190, 225, 226, 1)\")\n .style({\n heightfixed: true,\n pickLight: true,\n opacity: 1,\n raisingHeight: -9 * raisingHeightBase,\n });\n const fourthPolygonLayer = new PolygonLayer({\n autoFit: false,\n }).source(data);\n\n fourthPolygonLayer\n .shape(\"extrude\")\n .color(\"rgba(18, 26, 45, 1)\")\n .style({\n heightfixed: true,\n pickLight: true,\n opacity: 1,\n raisingHeight: -7 * raisingHeightBase,\n });\n\n const thirdPolygonLayer = new PolygonLayer({\n autoFit: false,\n }).source(data);\n\n thirdPolygonLayer\n .shape(\"extrude\")\n .color(\"#111D3C\")\n .style({\n heightfixed: true,\n pickLight: true,\n opacity: 1,\n raisingHeight: -5 * raisingHeightBase,\n });\n const secondPolygonLayer = new PolygonLayer({\n autoFit: false,\n }).source(data);\n\n secondPolygonLayer\n .shape(\"extrude\")\n .color(\"#121A2D\")\n .style({\n heightfixed: true,\n pickLight: true,\n opacity: 1,\n raisingHeight: -3 * raisingHeightBase,\n });\n\n const firstPolygonLayer = new PolygonLayer({\n autoFit: true,\n }).source(data);\n\n firstPolygonLayer.shape(\"fill\").color(\"rgba(8, 77, 255, 0.60)\");\n // .select({\n // color: \"rgba(177, 254, 254, 1)\",\n // });//编排上层缩放会影响到高亮功能,还不知道怎么解决,暂时不实现。\n\n let chinaImgLayer: ILayer | undefined;\n if (!province) {\n chinaImgLayer = new ImageLayer({\n autoFit: false,\n zIndex: 1,\n }).source(chinaPng, {\n parser: {\n type: \"image\",\n extent: [73.33, 17.9, 134.85, 53.73],\n },\n });\n\n chinaImgLayer.shape(\"img\").style({\n opacity: 1,\n });\n }\n\n const fourthLineLayer = new LineLayer()\n .source(data)\n .shape(\"line\")\n .color(\"rgba(43, 100, 255, 1)\")\n .size(1)\n .style({\n raisingHeight: -16 * raisingHeightBase,\n });\n\n const thirdLineLayer = new LineLayer()\n .source(data)\n .shape(\"line\")\n .color(\"rgba(84, 239, 241, 1)\")\n .size(1)\n .style({\n raisingHeight: -12 * raisingHeightBase,\n });\n\n const secondLineLayer = new LineLayer()\n .source(data)\n .shape(\"line\")\n .color(\"rgba(43, 100, 255, 1)\")\n .size(1)\n .style({\n raisingHeight: -6 * raisingHeightBase,\n });\n\n const firstLineLayer = new LineLayer({ zIndex: 2 })\n .source(data)\n .shape(\"line\")\n .color(\"#3DC6FF\")\n .size(1)\n .style({\n raisingHeight: 0,\n })\n .scale(\"density\", {\n type: \"quantile\",\n });\n\n // const hightLayer = new LineLayer({\n // zIndex: 10, // 设置显示层级\n // name: \"hightlight\",\n // })\n // .source({\n // type: \"FeatureCollection\",\n // features: [],\n // })\n // .shape(\"line\")\n // .size(2)\n // .color(\"rgba(177, 254, 254, 1)\")\n // .style({\n // opacity: 1,\n // });\n // const hightPolygonLayer = new PolygonLayer({zIndex: 10})\n // .source({\n // type: \"FeatureCollection\",\n // features: [],\n // })\n // .shape(\"fill\")\n // .color(\"rgba(177, 254, 254, 1)\")\n // .style({\n // heightfixed: true,\n // pickLight: true,\n // opacity: 1,\n // raisingHeight: 0,\n // }); //自定义选择高亮\n\n scene.addLayer(seventhPolygonLayer);\n // scene.addLayer(sixthPolygonLayer);\n // scene.addLayer(fifthPolygonLayer);\n // // scene.addLayer(fourthPolygonLayer);\n // scene.addLayer(thirdPolygonLayer);\n scene.addLayer(secondPolygonLayer);\n if (chinaImgLayer) {\n scene.addLayer(chinaImgLayer);\n }\n // scene.addLayer(hightLayer);\n // scene.addLayer(hightPolygonLayer);\n scene.addLayer(firstPolygonLayer);\n\n scene.addLayer(fourthLineLayer);\n scene.addLayer(thirdLineLayer);\n scene.addLayer(secondLineLayer);\n scene.addLayer(firstLineLayer);\n\n // firstPolygonLayer.on(\"click\", (e) => {\n // const { feature } = e;\n // hightPolygonLayer.setData({\n // type: \"FeatureCollection\",\n // features: [feature],\n // });\n // hightLayer.setData({\n // type: \"FeatureCollection\",\n // features: [feature],\n // });\n // });\n\n if (!province) {\n const southSeaPolygonLayer = new PolygonLayer({\n autoFit: false,\n }).source(southSeaData);\n\n southSeaPolygonLayer.shape(\"fill\").color(\"black\");\n\n const southSeaLineLayer = new LineLayer({ zIndex: 2 })\n .source(southSeaData)\n .shape(\"line\")\n .color(\"rgba(30, 144, 255, 1)\")\n .size(0.5)\n .style({\n raisingHeight: 0,\n })\n .scale(\"density\", {\n type: \"quantile\",\n });\n scene.addLayer(southSeaPolygonLayer);\n scene.addLayer(southSeaLineLayer);\n }\n\n dataSource.forEach((i) => {\n const el = document.createElement(\"div\");\n let classNameText = \"text\";\n el.textContent = i.text;\n let coord: Point;\n\n // 计算标签的排列方向,全国地图保持原有逻辑,省份地图根据经度所在比例自动适应排列方向\n if (!province) {\n const city = data.features.find((f) =>\n f.properties.name.includes(i.city)\n );\n if (!city) {\n return;\n }\n coord = city.properties.center;\n //先手动调整位置,缓解重叠的问题\n if (\n [\n \"410000\",\n \"820000\",\n \"140000\",\n \"110000\",\n \"420000\",\n \"430000\",\n \"450000\",\n \"500000\",\n \"520000\",\n \"530000\",\n \"510000\",\n \"610000\",\n \"640000\",\n \"150000\",\n \"630000\",\n \"540000\",\n \"340000\",\n ].includes(city.id)\n ) {\n classNameText = `${classNameText} leftText`;\n i.isLeftOffset = true;\n }\n if (\n [\n \"620000\",\n \"640000\",\n \"450000\",\n \"440000\",\n \"120000\",\n \"340000\",\n \"510000\",\n \"150000\",\n \"320000\",\n ].includes(city.id)\n ) {\n classNameText = `${classNameText} topText`;\n i.isTopOffset = true;\n }\n\n if (\n [\n \"530000\",\n \"520000\",\n \"430000\",\n \"360000\",\n \"330000\",\n \"610000\",\n \"370000\",\n \"130000\",\n ].includes(city.id)\n ) {\n coord[1] -= 1;\n }\n } else {\n const area = AreaList.find(\n (a) =>\n a.parent === matchedProvince.adcode && a.name.includes(i.city)\n );\n if (!area) {\n return;\n }\n coord = [area.lng, area.lat];\n if (area.lng > labelDivideLng) {\n classNameText = `${classNameText} leftText`;\n i.isLeftOffset = true;\n }\n }\n\n el.className = classNameText;\n\n el.onclick = (e) => {\n i.width = el.getBoundingClientRect().width;\n textClick(e, i);\n };\n\n const imgEl = document.createElement(\"img\");\n imgEl.src = defaultSvg;\n imgEl.className = \"iconImg\";\n\n const marker = new Marker({\n element: el,\n }).setLnglat({ lng: coord[0], lat: coord[1] });\n const imgMarker = new Marker({\n element: imgEl,\n }).setLnglat({ lng: coord[0], lat: coord[1] });\n scene.addMarker(marker);\n scene.addMarker(imgMarker);\n });\n\n setTimeout(() => {\n const bounds = scene.getBounds();\n // 进行适当平移和缩放,因为设置了倾角 pitch,地图默认没有铺满并居中\n scene.panTo([\n (bounds[0][0] + bounds[1][0]) / 2 + (province ? 0 : 1.6),\n (bounds[0][1] + bounds[1][1]) / 2 - (bounds[1][1] - bounds[0][1]) / 9,\n ]);\n if (province) {\n scene.setZoom(scene.getZoom() * 0.97);\n }\n\n // 省份贴图\n if (province) {\n const provinceImgLayer = new ImageLayer({\n autoFit: false,\n zIndex: 1,\n maskLayers: [firstPolygonLayer],\n }).source(texturePng, {\n parser: {\n type: \"image\",\n extent: [...bounds[0], ...bounds[1]],\n },\n });\n\n provinceImgLayer.shape(\"img\").style({\n opacity: 1,\n });\n scene.addLayer(provinceImgLayer);\n }\n });\n });\n\n return () => {\n scene.destroy();\n };\n }, []);\n\n useEffect(() => {\n const handleClick = (e: MouseEvent) => {\n if (slotRef.current && e.composedPath().includes(slotRef.current)) return;\n setShowData(null);\n };\n document?.addEventListener(\"click\", handleClick);\n return () => {\n document?.removeEventListener(\"click\", handleClick);\n };\n }, []);\n\n useEffect(() => {\n showDataRef.current = cloneDeep(showData);\n onDetailOpenChange(!isEmpty(showData), showData);\n }, [showData]);\n return (\n <div\n style={\n fillContainer\n ? {\n height: \"100%\",\n transform: `scale(${scale ?? 1})`,\n }\n : null\n }\n >\n <div\n id=\"map\"\n ref={mapRef}\n className=\"map\"\n style={\n fillContainer\n ? {\n width: BASE_WIDTH,\n height: BASE_HEIGHT,\n }\n : null\n }\n ></div>\n {showData && (\n <div\n className=\"detailContent\"\n onClick={(e) => {\n e.stopPropagation();\n }}\n style={{\n ...(showData.detailDisplayLocation === \"textBottom\"\n ? {\n left: textPosition.left,\n top: textPosition.top,\n transform: `translate(${showData.isLeftOffset ? -showData.width : 0}px, ${showData.isTopOffset ? -50 : -40}px)`,\n }\n : {\n transform: \"translate(-50%, 0%)\",\n top: \"50%\",\n left: \"50%\",\n }),\n ...detailContentStyle,\n }}\n >\n <slot name=\"detail\" ref={slotRef}></slot>\n </div>\n )}\n </div>\n );\n}\n"],"names":["___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_EXPORT___","___CSS_LOADER_URL_REPLACEMENT_0___","push","module","id","toString","useContainerScale","_ref","width","baseWidth","height","baseHeight","root","maxScale","disabled","scale","setScale","useState","useEffect","observer","ResizeObserver","entries","entry","target","contentRect","Math","min","observe","disconnect","defineElement","property","event","createDecorators","BASE_WIDTH","BASE_HEIGHT","_ChinaMapChart","_A","WeakMap","_B","_C","_D","_E","_ChinaMapChart_brand","WeakSet","_handleOpenChange","ChinaMapChart","ReactNextElement","constructor","arguments","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_init_province","_init_extra_province","_init_dataSource","_init_extra_dataSource","_init_detailContentStyle","_init_extra_detailContentStyle","_init_fillContainer","_init_extra_fillContainer","_init_openChangeEvent","_init_extra_openChangeEvent","open","data","_classPrivateGetter","this","_get_openChangeEvent","emit","province","_classPrivateFieldGet","v","_classPrivateFieldSet","dataSource","detailContentStyle","fillContainer","render","React","ChinaMapChartComponent","onDetailOpenChange","props","mapRef","useRef","slotRef","showData","setShowData","showDataRef","textPosition","setTextPosition","scene","Scene","current","logoVisible","map","Map","pitch","zoom","setMapStatus","doubleClickZoom","zoomEnable","defaultImg","Image","src","defaultSvg","selectedImg","selectedSvg","addImage","texturePng","chinaPng","on","async","southSeaData","matchedProvince","AreaList","CitiesImport","AreaListImport","Promise","all","Cities","default","find","a","level","name","includes","Error","type","features","filter","f","properties","province_adcode","adcode","CHINA","slice","length","seventhPolygonLayer","PolygonLayer","autoFit","source","labelDivideLng","raisingHeightBase","top","Infinity","left","bottom","right","flatMap","geometry","coordinates","flat","forEach","lng","lat","max","lngRange","latRange","shape","color","style","heightfixed","pickLight","opacity","raisingHeight","secondPolygonLayer","firstPolygonLayer","chinaImgLayer","ImageLayer","zIndex","parser","extent","fourthLineLayer","LineLayer","size","thirdLineLayer","secondLineLayer","firstLineLayer","addLayer","southSeaPolygonLayer","southSeaLineLayer","i","el","document","createElement","coord","classNameText","textContent","text","area","parent","city","isLeftOffset","center","isTopOffset","className","onclick","e","getBoundingClientRect","textClick","stopPropagation","isEqual","toNumber","replace","imgEl","marker","Marker","element","setLnglat","imgMarker","addMarker","setTimeout","bounds","getBounds","panTo","setZoom","getZoom","provinceImgLayer","maskLayers","destroy","_document","handleClick","composedPath","addEventListener","_document2","removeEventListener","cloneDeep","isEmpty","transform","ref","onClick","detailDisplayLocation","_ChinaMapChart2","_set_openChangeEvent","c","_initClass","_applyDecs","styleTexts","styleText","attribute","Boolean","o","_","has","_checkInRHS"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"chunks/china-map-chart.7f0adf1a.js","mappings":"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","sources":["webpack:///./src/china-map-chart/styles.shadow.css","webpack:///./src/shared/useContainerScale.ts","webpack:///./src/china-map-chart/index.tsx"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"./assets/label.svg\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([fill-container]){display:block;height:100%;position:relative;overflow:hidden}:host([hidden]){display:none}.text{position:absolute;z-index:6;height:22px;line-height:22px;font-size:12px;background:url(${___CSS_LOADER_URL_REPLACEMENT_0___}) no-repeat center left;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transform:translate(20px,-150%)!important;color:rgba(255,255,255,1);text-indent:10px}.iconImg{position:absolute;z-index:5;src:\"./assets/default.png\";-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.detailContent{position:absolute;opacity:0.8;z-index:20}:host(:not([fill-container])) .map{position:absolute;top:0;left:0;right:0;bottom:0}:host([fill-container]) .map{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.leftText{margin-left:-20px;transform:translate(-100%,-150%)!important}.topText{margin-top:-10px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","import { useEffect, useState } from \"react\";\nimport ResizeObserver from \"resize-observer-polyfill\";\n\n/**\n * 根据容器尺寸进行缩放\n */\nexport function useContainerScale({\n width: baseWidth,\n height: baseHeight,\n root,\n maxScale,\n disabled,\n}: {\n width: number;\n height: number;\n root: HTMLElement;\n /** 最大缩放比例,默认为 1 */\n maxScale?: number;\n disabled?: boolean;\n}): number | null {\n const [scale, setScale] = useState<number | null>(null);\n\n useEffect(() => {\n if (disabled) {\n setScale(null);\n return;\n }\n // 当容器宽高低于预设值时,图形会自动缩小\n const observer = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target === root) {\n const { width, height } = entry.contentRect;\n setScale(\n Math.min(maxScale ?? 1, width / baseWidth, height / baseHeight)\n );\n }\n }\n });\n observer.observe(root);\n return () => observer.disconnect();\n }, [baseHeight, baseWidth, disabled, maxScale, root]);\n\n return scale;\n}\n","import React, { useEffect, useRef, useState, CSSProperties } from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport {\n Scene,\n PolygonLayer,\n LineLayer,\n Marker,\n ImageLayer,\n type ILayer,\n type Point,\n} from \"@antv/l7\";\nimport { Map } from \"@antv/l7-maps\";\nimport { cloneDeep, isEmpty, isEqual, toNumber } from \"lodash\";\nimport defaultSvg from \"./assets/default.svg?url\";\nimport selectedSvg from \"./assets/selected.svg?url\";\nimport chinaPng from \"./assets/china.png\";\nimport texturePng from \"./assets/texture.png\";\nimport styleText from \"./styles.shadow.css\";\nimport { useContainerScale } from \"../shared/useContainerScale\";\n\nconst { defineElement, property, event } = createDecorators();\n\nconst BASE_WIDTH = 825;\nconst BASE_HEIGHT = 600;\n\ninterface FeatureCollection {\n type: \"FeatureCollection\";\n features: Feature[];\n}\n\ninterface Feature {\n type: \"Feature\";\n id?: string;\n properties: {\n name: string;\n center?: Point;\n province_adcode: number;\n province: string;\n };\n geometry: Polygon | MultiPolygon;\n}\n\ninterface Polygon {\n type: \"Polygon\";\n coordinates: Point[][];\n}\n\ninterface MultiPolygon {\n type: \"MultiPolygon\";\n coordinates: Point[][][];\n}\n\ninterface Area {\n name: string;\n level: \"country\" | \"province\" | \"city\" | \"district\";\n adcode: number;\n lng: number;\n lat: number;\n parent: number;\n}\n\n/**\n * 中国地图图表构件,可以显示省级指标数据\n *\n * @deprecated 已废弃,请使用 `data-view.china-map`\n */\nexport\n@defineElement(\"data-view.china-map-chart\", {\n styleTexts: [styleText],\n})\nclass ChinaMapChart extends ReactNextElement {\n /**\n * 省份名称,例如“广东”。如果设置,则只显示该省份的地图,否则显示全国地图\n */\n @property()\n accessor province: string | undefined;\n\n /**\n * 数据源\n */\n @property({ attribute: false })\n accessor dataSource: DataSource[] | undefined;\n\n /**\n * 描述内容样式\n */\n @property({ attribute: false })\n accessor detailContentStyle: CSSProperties | undefined;\n\n /**\n * 是否铺满容器\n *\n * 注意:该属性不同时兼容 detail 插槽\n */\n @property({ type: Boolean })\n accessor fillContainer: boolean | undefined;\n\n /**\n * 当提示可见性开始变化时触发\n * @detail 当前是否可见\n */\n @event({ type: \"detail.open.change\" })\n accessor #openChangeEvent!: EventEmitter<{\n open: boolean;\n data: Record<string, any>;\n }>;\n #handleOpenChange = (open: boolean, data: Record<string, any>): void => {\n this.#openChangeEvent.emit({ open, data });\n };\n\n render() {\n return (\n <ChinaMapChartComponent\n root={this}\n province={this.province}\n dataSource={this.dataSource}\n onDetailOpenChange={this.#handleOpenChange}\n detailContentStyle={this.detailContentStyle}\n fillContainer={this.fillContainer}\n />\n );\n }\n}\n\ninterface DataSource {\n /** 省级行政区域名,例如:四川、北京 */\n city: string;\n detailDisplayLocation: \"pageCenter\" | \"textBottom\";\n text: string;\n [x: string]: any;\n}\n\nexport interface ChinaMapChartProps {\n root: HTMLElement;\n province?: string;\n onDetailOpenChange: (open: boolean, data: Record<string, any>) => void;\n dataSource: DataSource[];\n detailContentStyle?: CSSProperties;\n fillContainer?: boolean;\n // Define props here.\n}\n\nexport function ChinaMapChartComponent(props: ChinaMapChartProps) {\n const {\n root,\n province,\n onDetailOpenChange,\n dataSource = [],\n detailContentStyle = {},\n fillContainer,\n } = props;\n const mapRef = useRef<HTMLDivElement>();\n const slotRef = useRef<HTMLSlotElement>();\n const [showData, setShowData] = useState<DataSource>();\n const showDataRef = useRef<DataSource>();\n const [textPosition, setTextPosition] = useState<{\n left: string;\n top: string;\n }>();\n\n const scale = useContainerScale({\n width: BASE_WIDTH,\n height: BASE_HEIGHT,\n root,\n maxScale: 10,\n disabled: !fillContainer,\n });\n\n const textClick = (e: MouseEvent, data: any) => {\n e.stopPropagation();\n if (isEqual(data, showDataRef.current)) {\n setShowData(null);\n return;\n }\n setShowData(data);\n setTextPosition({\n left: `${toNumber((e.target as any).style.left.replace(\"px\", \"\")) + 24}px`,\n top: `${toNumber((e.target as any).style.top.replace(\"px\", \"\")) + 28}px`,\n });\n };\n useEffect(() => {\n const scene = new Scene({\n id: mapRef.current,\n logoVisible: false,\n map: new Map({\n // center: [90.268, 40.3628],\n pitch: 35,\n zoom: 1,\n }),\n });\n scene.setMapStatus({ doubleClickZoom: false, zoomEnable: false });\n const defaultImg = new Image();\n defaultImg.src = defaultSvg;\n\n const selectedImg = new Image();\n selectedImg.src = selectedSvg;\n\n scene.addImage(\"default\", defaultImg);\n scene.addImage(\"selected\", selectedImg);\n if (!province) {\n scene.addImage(\"chinaBg\", chinaPng);\n } else {\n scene.addImage(\"texture\", texturePng);\n }\n\n scene.on(\"loaded\", async () => {\n let data: FeatureCollection;\n let southSeaData: FeatureCollection;\n let matchedProvince: Area | undefined;\n let AreaList: Area[] | undefined;\n if (province) {\n const [CitiesImport, AreaListImport] = await Promise.all([\n import(\"./cities.json\"),\n import(\"./area-list.json\"),\n ]);\n const Cities = CitiesImport.default as unknown as FeatureCollection;\n AreaList = AreaListImport.default as unknown as Area[];\n matchedProvince = AreaList.find(\n (a) => a.level === \"province\" && a.name.includes(province)\n );\n\n if (!matchedProvince) {\n throw new Error(`没有找到省份:\"${province}\"`);\n }\n\n data = {\n type: \"FeatureCollection\",\n features: (Cities as FeatureCollection).features.filter(\n (f) => f.properties.province_adcode === matchedProvince.adcode\n ),\n };\n } else {\n const ChinaImport = await import(\"./map.json\");\n const CHINA = ChinaImport.default as unknown as FeatureCollection;\n data = {\n type: \"FeatureCollection\",\n features: (CHINA as unknown as FeatureCollection).features.slice(\n 0,\n CHINA.features.length - 2\n ),\n };\n southSeaData = {\n ...CHINA,\n features: CHINA.features.slice(\n CHINA.features.length - 2,\n CHINA.features.length\n ),\n };\n }\n\n const seventhPolygonLayer = new PolygonLayer({\n autoFit: false,\n }).source(data);\n\n let labelDivideLng: number | undefined;\n // 根据坐标范围设置 3D 图层升起的高度\n let raisingHeightBase: number;\n if (province) {\n let top = Infinity;\n let left = Infinity;\n let bottom = -Infinity;\n let right = -Infinity;\n const points = data.features.flatMap(\n (f) =>\n f.geometry.coordinates.flat(\n f.geometry.type === \"MultiPolygon\" ? 2 : 1\n ) as Point[]\n );\n points.forEach(([lng, lat]) => {\n top = Math.min(top, lat);\n left = Math.min(left, lng);\n bottom = Math.max(bottom, lat);\n right = Math.max(right, lng);\n });\n const lngRange = right - left;\n const latRange = bottom - top;\n raisingHeightBase = Math.max(2000 * lngRange, 3000 * latRange);\n // 在经度范围的 3/4 处设置分界线,左边的文字向右排,右边的文字向左排\n labelDivideLng = left + (lngRange * 3) / 4;\n } else {\n raisingHeightBase = 100000;\n }\n\n seventhPolygonLayer\n .shape(\"extrude\")\n .color(\"rgba(84, 239, 241, 0.20)\")\n .style({\n heightfixed: true,\n pickLight: true,\n opacity: 1,\n raisingHeight: -13 * raisingHeightBase,\n });\n\n const sixthPolygonLayer = new PolygonLayer({\n autoFit: false,\n }).source(data);\n\n sixthPolygonLayer\n .shape(\"extrude\")\n .color(\"rgba(14, 11, 75, 0.58)\")\n .style({\n heightfixed: true,\n pickLight: true,\n opacity: 1,\n raisingHeight: -11 * raisingHeightBase,\n });\n\n const fifthPolygonLayer = new PolygonLayer({\n autoFit: false,\n }).source(data);\n\n fifthPolygonLayer\n .shape(\"extrude\")\n .color(\"rgba(190, 225, 226, 1)\")\n .style({\n heightfixed: true,\n pickLight: true,\n opacity: 1,\n raisingHeight: -9 * raisingHeightBase,\n });\n const fourthPolygonLayer = new PolygonLayer({\n autoFit: false,\n }).source(data);\n\n fourthPolygonLayer\n .shape(\"extrude\")\n .color(\"rgba(18, 26, 45, 1)\")\n .style({\n heightfixed: true,\n pickLight: true,\n opacity: 1,\n raisingHeight: -7 * raisingHeightBase,\n });\n\n const thirdPolygonLayer = new PolygonLayer({\n autoFit: false,\n }).source(data);\n\n thirdPolygonLayer\n .shape(\"extrude\")\n .color(\"#111D3C\")\n .style({\n heightfixed: true,\n pickLight: true,\n opacity: 1,\n raisingHeight: -5 * raisingHeightBase,\n });\n const secondPolygonLayer = new PolygonLayer({\n autoFit: false,\n }).source(data);\n\n secondPolygonLayer\n .shape(\"extrude\")\n .color(\"#121A2D\")\n .style({\n heightfixed: true,\n pickLight: true,\n opacity: 1,\n raisingHeight: -3 * raisingHeightBase,\n });\n\n const firstPolygonLayer = new PolygonLayer({\n autoFit: true,\n }).source(data);\n\n firstPolygonLayer.shape(\"fill\").color(\"rgba(8, 77, 255, 0.60)\");\n // .select({\n // color: \"rgba(177, 254, 254, 1)\",\n // });//编排上层缩放会影响到高亮功能,还不知道怎么解决,暂时不实现。\n\n let chinaImgLayer: ILayer | undefined;\n if (!province) {\n chinaImgLayer = new ImageLayer({\n autoFit: false,\n zIndex: 1,\n }).source(chinaPng, {\n parser: {\n type: \"image\",\n extent: [73.33, 17.9, 134.85, 53.73],\n },\n });\n\n chinaImgLayer.shape(\"img\").style({\n opacity: 1,\n });\n }\n\n const fourthLineLayer = new LineLayer()\n .source(data)\n .shape(\"line\")\n .color(\"rgba(43, 100, 255, 1)\")\n .size(1)\n .style({\n raisingHeight: -16 * raisingHeightBase,\n });\n\n const thirdLineLayer = new LineLayer()\n .source(data)\n .shape(\"line\")\n .color(\"rgba(84, 239, 241, 1)\")\n .size(1)\n .style({\n raisingHeight: -12 * raisingHeightBase,\n });\n\n const secondLineLayer = new LineLayer()\n .source(data)\n .shape(\"line\")\n .color(\"rgba(43, 100, 255, 1)\")\n .size(1)\n .style({\n raisingHeight: -6 * raisingHeightBase,\n });\n\n const firstLineLayer = new LineLayer({ zIndex: 2 })\n .source(data)\n .shape(\"line\")\n .color(\"#3DC6FF\")\n .size(1)\n .style({\n raisingHeight: 0,\n })\n .scale(\"density\", {\n type: \"quantile\",\n });\n\n // const hightLayer = new LineLayer({\n // zIndex: 10, // 设置显示层级\n // name: \"hightlight\",\n // })\n // .source({\n // type: \"FeatureCollection\",\n // features: [],\n // })\n // .shape(\"line\")\n // .size(2)\n // .color(\"rgba(177, 254, 254, 1)\")\n // .style({\n // opacity: 1,\n // });\n // const hightPolygonLayer = new PolygonLayer({zIndex: 10})\n // .source({\n // type: \"FeatureCollection\",\n // features: [],\n // })\n // .shape(\"fill\")\n // .color(\"rgba(177, 254, 254, 1)\")\n // .style({\n // heightfixed: true,\n // pickLight: true,\n // opacity: 1,\n // raisingHeight: 0,\n // }); //自定义选择高亮\n\n scene.addLayer(seventhPolygonLayer);\n // scene.addLayer(sixthPolygonLayer);\n // scene.addLayer(fifthPolygonLayer);\n // // scene.addLayer(fourthPolygonLayer);\n // scene.addLayer(thirdPolygonLayer);\n scene.addLayer(secondPolygonLayer);\n if (chinaImgLayer) {\n scene.addLayer(chinaImgLayer);\n }\n // scene.addLayer(hightLayer);\n // scene.addLayer(hightPolygonLayer);\n scene.addLayer(firstPolygonLayer);\n\n scene.addLayer(fourthLineLayer);\n scene.addLayer(thirdLineLayer);\n scene.addLayer(secondLineLayer);\n scene.addLayer(firstLineLayer);\n\n // firstPolygonLayer.on(\"click\", (e) => {\n // const { feature } = e;\n // hightPolygonLayer.setData({\n // type: \"FeatureCollection\",\n // features: [feature],\n // });\n // hightLayer.setData({\n // type: \"FeatureCollection\",\n // features: [feature],\n // });\n // });\n\n if (!province) {\n const southSeaPolygonLayer = new PolygonLayer({\n autoFit: false,\n }).source(southSeaData);\n\n southSeaPolygonLayer.shape(\"fill\").color(\"black\");\n\n const southSeaLineLayer = new LineLayer({ zIndex: 2 })\n .source(southSeaData)\n .shape(\"line\")\n .color(\"rgba(30, 144, 255, 1)\")\n .size(0.5)\n .style({\n raisingHeight: 0,\n })\n .scale(\"density\", {\n type: \"quantile\",\n });\n scene.addLayer(southSeaPolygonLayer);\n scene.addLayer(southSeaLineLayer);\n }\n\n dataSource.forEach((i) => {\n const el = document.createElement(\"div\");\n let classNameText = \"text\";\n el.textContent = i.text;\n let coord: Point;\n\n // 计算标签的排列方向,全国地图保持原有逻辑,省份地图根据经度所在比例自动适应排列方向\n if (!province) {\n const city = data.features.find((f) =>\n f.properties.name.includes(i.city)\n );\n if (!city) {\n return;\n }\n coord = city.properties.center;\n //先手动调整位置,缓解重叠的问题\n if (\n [\n \"410000\",\n \"820000\",\n \"140000\",\n \"110000\",\n \"420000\",\n \"430000\",\n \"450000\",\n \"500000\",\n \"520000\",\n \"530000\",\n \"510000\",\n \"610000\",\n \"640000\",\n \"150000\",\n \"630000\",\n \"540000\",\n \"340000\",\n ].includes(city.id)\n ) {\n classNameText = `${classNameText} leftText`;\n i.isLeftOffset = true;\n }\n if (\n [\n \"620000\",\n \"640000\",\n \"450000\",\n \"440000\",\n \"120000\",\n \"340000\",\n \"510000\",\n \"150000\",\n \"320000\",\n ].includes(city.id)\n ) {\n classNameText = `${classNameText} topText`;\n i.isTopOffset = true;\n }\n\n if (\n [\n \"530000\",\n \"520000\",\n \"430000\",\n \"360000\",\n \"330000\",\n \"610000\",\n \"370000\",\n \"130000\",\n ].includes(city.id)\n ) {\n coord[1] -= 1;\n }\n } else {\n const area = AreaList.find(\n (a) =>\n a.parent === matchedProvince.adcode && a.name.includes(i.city)\n );\n if (!area) {\n return;\n }\n coord = [area.lng, area.lat];\n if (area.lng > labelDivideLng) {\n classNameText = `${classNameText} leftText`;\n i.isLeftOffset = true;\n }\n }\n\n el.className = classNameText;\n\n el.onclick = (e) => {\n i.width = el.getBoundingClientRect().width;\n textClick(e, i);\n };\n\n const imgEl = document.createElement(\"img\");\n imgEl.src = defaultSvg;\n imgEl.className = \"iconImg\";\n\n const marker = new Marker({\n element: el,\n }).setLnglat({ lng: coord[0], lat: coord[1] });\n const imgMarker = new Marker({\n element: imgEl,\n }).setLnglat({ lng: coord[0], lat: coord[1] });\n scene.addMarker(marker);\n scene.addMarker(imgMarker);\n });\n\n setTimeout(() => {\n const bounds = scene.getBounds();\n // 进行适当平移和缩放,因为设置了倾角 pitch,地图默认没有铺满并居中\n scene.panTo([\n (bounds[0][0] + bounds[1][0]) / 2 + (province ? 0 : 1.6),\n (bounds[0][1] + bounds[1][1]) / 2 - (bounds[1][1] - bounds[0][1]) / 9,\n ]);\n if (province) {\n scene.setZoom(scene.getZoom() * 0.97);\n }\n\n // 省份贴图\n if (province) {\n const provinceImgLayer = new ImageLayer({\n autoFit: false,\n zIndex: 1,\n maskLayers: [firstPolygonLayer],\n }).source(texturePng, {\n parser: {\n type: \"image\",\n extent: [...bounds[0], ...bounds[1]],\n },\n });\n\n provinceImgLayer.shape(\"img\").style({\n opacity: 1,\n });\n scene.addLayer(provinceImgLayer);\n }\n });\n });\n\n return () => {\n scene.destroy();\n };\n }, []);\n\n useEffect(() => {\n const handleClick = (e: MouseEvent) => {\n if (slotRef.current && e.composedPath().includes(slotRef.current)) return;\n setShowData(null);\n };\n document?.addEventListener(\"click\", handleClick);\n return () => {\n document?.removeEventListener(\"click\", handleClick);\n };\n }, []);\n\n useEffect(() => {\n showDataRef.current = cloneDeep(showData);\n onDetailOpenChange(!isEmpty(showData), showData);\n }, [showData]);\n return (\n <div\n style={\n fillContainer\n ? {\n height: \"100%\",\n transform: `scale(${scale ?? 1})`,\n }\n : null\n }\n >\n <div\n id=\"map\"\n ref={mapRef}\n className=\"map\"\n style={\n fillContainer\n ? {\n width: BASE_WIDTH,\n height: BASE_HEIGHT,\n }\n : null\n }\n ></div>\n {showData && (\n <div\n className=\"detailContent\"\n onClick={(e) => {\n e.stopPropagation();\n }}\n style={{\n ...(showData.detailDisplayLocation === \"textBottom\"\n ? {\n left: textPosition.left,\n top: textPosition.top,\n transform: `translate(${showData.isLeftOffset ? -showData.width : 0}px, ${showData.isTopOffset ? -50 : -40}px)`,\n }\n : {\n transform: \"translate(-50%, 0%)\",\n top: \"50%\",\n left: \"50%\",\n }),\n ...detailContentStyle,\n }}\n >\n <slot name=\"detail\" ref={slotRef}></slot>\n </div>\n )}\n </div>\n );\n}\n"],"names":["___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_EXPORT___","___CSS_LOADER_URL_REPLACEMENT_0___","push","module","id","toString","useContainerScale","_ref","width","baseWidth","height","baseHeight","root","maxScale","disabled","scale","setScale","useState","useEffect","observer","ResizeObserver","entries","entry","target","contentRect","Math","min","observe","disconnect","defineElement","property","event","createDecorators","BASE_WIDTH","BASE_HEIGHT","_ChinaMapChart","_A","WeakMap","_B","_C","_D","_E","_ChinaMapChart_brand","WeakSet","_handleOpenChange","ChinaMapChart","ReactNextElement","constructor","arguments","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_init_province","_init_extra_province","_init_dataSource","_init_extra_dataSource","_init_detailContentStyle","_init_extra_detailContentStyle","_init_fillContainer","_init_extra_fillContainer","_init_openChangeEvent","_init_extra_openChangeEvent","open","data","_classPrivateGetter","this","_get_openChangeEvent","emit","province","_classPrivateFieldGet","v","_classPrivateFieldSet","dataSource","detailContentStyle","fillContainer","render","React","ChinaMapChartComponent","onDetailOpenChange","props","mapRef","useRef","slotRef","showData","setShowData","showDataRef","textPosition","setTextPosition","scene","Scene","current","logoVisible","map","Map","pitch","zoom","setMapStatus","doubleClickZoom","zoomEnable","defaultImg","Image","src","defaultSvg","selectedImg","selectedSvg","addImage","texturePng","chinaPng","on","async","southSeaData","matchedProvince","AreaList","CitiesImport","AreaListImport","Promise","all","Cities","default","find","a","level","name","includes","Error","type","features","filter","f","properties","province_adcode","adcode","CHINA","slice","length","seventhPolygonLayer","PolygonLayer","autoFit","source","labelDivideLng","raisingHeightBase","top","Infinity","left","bottom","right","flatMap","geometry","coordinates","flat","forEach","lng","lat","max","lngRange","latRange","shape","color","style","heightfixed","pickLight","opacity","raisingHeight","secondPolygonLayer","firstPolygonLayer","chinaImgLayer","ImageLayer","zIndex","parser","extent","fourthLineLayer","LineLayer","size","thirdLineLayer","secondLineLayer","firstLineLayer","addLayer","southSeaPolygonLayer","southSeaLineLayer","i","el","document","createElement","coord","classNameText","textContent","text","area","parent","city","isLeftOffset","center","isTopOffset","className","onclick","e","getBoundingClientRect","textClick","stopPropagation","isEqual","toNumber","replace","imgEl","marker","Marker","element","setLnglat","imgMarker","addMarker","setTimeout","bounds","getBounds","panTo","setZoom","getZoom","provinceImgLayer","maskLayers","destroy","_document","handleClick","composedPath","addEventListener","_document2","removeEventListener","cloneDeep","isEmpty","transform","ref","onClick","detailDisplayLocation","_ChinaMapChart2","_set_openChangeEvent","c","_initClass","_applyDecs","styleTexts","styleText","attribute","Boolean","o","_","has","_checkInRHS"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(globalThis.webpackChunk_next_bricks_data_view=globalThis.webpackChunk_next_bricks_data_view||[]).push([[5509],{7851:(e,t,a)=>{a.r(t),a.d(t,{ChinaMap:()=>D,ChinaMapComponent:()=>I});var r=a(70918),s=a(86121),i=a(70829),l=a(62740),n=a(18769),o=a.n(n),c=a(20563),h=a(
|
|
2
|
-
//# sourceMappingURL=china-map.
|
|
1
|
+
"use strict";(globalThis.webpackChunk_next_bricks_data_view=globalThis.webpackChunk_next_bricks_data_view||[]).push([[5509],{7851:(e,t,a)=>{a.r(t),a.d(t,{ChinaMap:()=>D,ChinaMapComponent:()=>I});var r=a(70918),s=a(86121),i=a(70829),l=a(62740),n=a(18769),o=a.n(n),c=a(20563),h=a(7921),d=a(11280),f=(a(37),a(20840)),p=a(86168),u=a(47906),x=a(84890),g=a(10177),v=a(13910);let m,b,w,y,S,k,A,E,C;var P,N;const{defineElement:_,property:W}=(0,h.createDecorators)(),F=(0,d.wrapBrick)("eo-icon"),M=960,z=750,B=null!==(P=window.devicePixelRatio)&&void 0!==P?P:1,R=[{fill:"rgba(84, 239, 241, 0.2)",shadowColor:"rgba(84, 239, 241, 0.2)",shadowBlur:2,shadowOffsetY:1,offset:28},{fill:"#bee1e2",shadowColor:"rgba(93,250,255,0.2)",shadowBlur:4,shadowOffsetY:10,offset:23},{fill:"#000",offset:19.5},{lineWidth:1,strokeStyle:"#2B64FF",offset:15},{lineWidth:1.5,strokeStyle:"#2B64FF",offset:10}];let D;var O=new WeakMap,Y=new WeakMap,$=new WeakMap,T=new WeakMap;class j extends d.ReactNextElement{constructor(){super(...arguments),(0,r.A)(this,O,b(this)),(0,r.A)(this,Y,(w(this),y(this))),(0,r.A)(this,$,(S(this),k(this))),(0,r.A)(this,T,(A(this),E(this))),C(this)}get province(){return(0,i.A)(O,this)}set province(e){(0,s.A)(O,this,e)}get dataSource(){return(0,i.A)(Y,this)}set dataSource(e){(0,s.A)(Y,this,e)}get maxScale(){return(0,i.A)($,this)}set maxScale(e){(0,s.A)($,this,e)}get textScale(){return(0,i.A)(T,this)}set textScale(e){(0,s.A)(T,this,e)}render(){return o().createElement(I,{root:this,province:this.province,dataSource:this.dataSource,maxScale:this.maxScale,textScale:this.textScale})}}function I(e){let{root:t,province:r,dataSource:s,maxScale:i,textScale:l}=e;const h=(0,u.D)({width:M,height:z,root:t,maxScale:i}),d=(0,n.useRef)(null),[v,m]=(0,n.useState)([]),[b,w]=(0,n.useState)(!1);return(0,n.useEffect)((()=>{const e=d.current.getContext("2d");let t=!1;return(async()=>{let i,l,n,o,h;try{[h]=await Promise.all([new Promise(((e,t)=>{const a=new Image;a.onload=()=>{e(a)},a.onerror=e=>{t(e)},a.src=x})),(async()=>{if(r){const[e,t]=await Promise.all([a.e(8763).then(a.t.bind(a,1144,19)),a.e(6873).then(a.t.bind(a,76873,19))]),s=e.default;if(o=t.default,n=o.find((e=>"province"===e.level&&e.name.includes(r))),!n)throw new Error(`没有找到省份:"${r}"`);i={type:"FeatureCollection",features:s.features.filter((e=>e.properties.province_adcode===n.adcode))}}else{const e=(await a.e(2785).then(a.t.bind(a,52785,19))).default,t=(0,c.groupBy)(e.features,(e=>e.properties.name?"main-land":"south-sea"));i={type:"FeatureCollection",features:t["main-land"]},l={type:"FeatureCollection",features:t["south-sea"]}}})()])}catch(a){return void(t||(w(String(a)),e.clearRect(0,0,M*B,z*B),m([])))}if(t)return;w(!0),e.clearRect(0,0,M*B,z*B),e.strokeStyle="#fff",e.lineWidth=2.5*B,e.lineJoin="round";const d=(0,f.Ay)().fitExtent([[10*B,10*B],[(M-10)*B,(z-25)*B]],i),u=(0,p.A)(d,e);R.forEach((t=>{const a=e;var r,s;e.save(),e.translate(0,t.offset*B),t.shadowColor&&(a.shadowColor=t.shadowColor,a.shadowBlur=(null!==(r=t.shadowBlur)&&void 0!==r?r:0)*B,a.shadowOffsetY=(null!==(s=t.shadowOffsetY)&&void 0!==s?s:0)*B),a.beginPath(),(0,p.A)(d,a)(i),a.closePath(),t.fill&&(a.fillStyle=t.fill,a.fill()),t.lineWidth&&(a.strokeStyle=t.strokeStyle,a.lineWidth=t.lineWidth*B,a.stroke()),e.restore()})),e.save();{const t=e.createPattern(h,"repeat");e.fillStyle=t}e.beginPath(),u(i),e.closePath(),e.fill(),e.restore(),e.save(),e.strokeStyle="#3DC6FF",e.beginPath(),u(i),e.closePath(),e.stroke(),e.restore(),r||(e.save(),e.strokeStyle="rgb(30, 144, 255)",e.beginPath(),u(l),e.closePath(),e.stroke(),e.restore()),m(null==s?void 0:s.flatMap((e=>{let t,a;if(e.coordinate)[t,a]=e.coordinate;else if(n){const r=o.find((t=>"city"===t.level&&t.parent===n.adcode&&t.name.includes(e.city)));if(!r)return[];({lng:t,lat:a}=r)}else{var r;const s=i.features.find((t=>"province"===t.properties.level&&t.properties.name.includes(e.province)));if(!s)return[];[t,a]=null!==(r=s.properties.cp)&&void 0!==r?r:s.properties.center}const s=d([t,a]),l=s[0]/B;return{left:l,top:s[1]/B,text:e.text,align:l>M-150?"left":"right"}})))})(),()=>{t=!0}}),[r,s]),o().createElement("div",{className:"container",style:{width:M,height:z,visibility:null===h?"hidden":"visible","--scale":h,"--text-scale":l}},!0!==b&&o().createElement("div",{className:"message",style:{width:M,height:z}},!1===b&&o().createElement(F,{lib:"antd",icon:"loading",spinning:!0,className:"loading"}),"string"==typeof b&&o().createElement("div",{className:"error"},b)),o().createElement("canvas",{ref:d,width:M*B,height:z*B,style:{width:M,height:z}}),o().createElement("div",{className:"labels",style:{width:M,height:z}},null==v?void 0:v.map(((e,t)=>o().createElement("div",{key:t,className:`label ${e.align}`,style:{left:e.left,top:e.top}},o().createElement("img",{width:28,height:32,className:"marker",src:g}),o().createElement("div",{className:"text"},e.text))))))}N=j,({e:[b,w,y,S,k,A,E,C],c:[D,m]}=(0,l.A)(N,[_("data-view.china-map",{styleTexts:[v.A]})],[[W(),1,"province"],[W({attribute:!1}),1,"dataSource"],[W({type:Number}),1,"maxScale"],[W({type:Number}),1,"textScale"]],0,void 0,d.ReactNextElement)),m()},10177:(e,t,a)=>{e.exports=a.p+"images/d20b2c27.svg"},13910:(e,t,a)=>{a.d(t,{A:()=>f});var r=a(36758),s=a.n(r),i=a(40935),l=a.n(i),n=a(20062),o=a.n(n),c=new URL(a(99158),a.b),h=l()(s()),d=o()(c);h.push([e.id,`:host,\n.message{display:flex;align-items:center;justify-content:center}:host{position:relative;color:#fff;height:100%}:host([hidden]){display:none}*{box-sizing:border-box}.container{position:relative;transform:scale(var(--scale));--scale:1;--text-scale:1;--text-height:calc(22px * var(--text-scale));--text-font-size:calc(12px * var(--text-scale));--text-indent:calc(10px * var(--text-scale));--text-background-size:calc(119px * var(--text-scale)) calc(22px * var(--text-scale))}canvas,\n.message,\n.labels{position:absolute;left:50%;transform:translate(-50%,0);top:0}.loading{font-size:48px}.error{color:var(--color-error)}.label{position:absolute;display:flex;align-items:center;transform:translate(-14px,-28px)}.text{height:var(--text-height);line-height:var(--text-height);font-size:var(--text-font-size);background:url(${d}) no-repeat center left;background-size:var(--text-background-size);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);text-indent:var(--text-indent);transform:translate(0,-18px);white-space:nowrap;color:#fffcef}.left > .text{transform:translate(calc(-100% - 32px),-18px)}`,""]);const f=h.toString()},20062:e=>{e.exports=function(e,t){return t||(t={}),e?(e=String(e.__esModule?e.default:e),/^['"].*['"]$/.test(e)&&(e=e.slice(1,-1)),t.hash&&(e+=t.hash),/["'() \t\n]|(%20)/.test(e)||t.needQuotes?'"'.concat(e.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):e):e}},47906:(e,t,a)=>{a.d(t,{D:()=>i});var r=a(18769),s=a(99126);function i(e){let{width:t,height:a,root:i,maxScale:l,disabled:n}=e;const[o,c]=(0,r.useState)(null);return(0,r.useEffect)((()=>{if(n)return void c(null);const e=new s.A((e=>{for(const r of e)if(r.target===i){const{width:e,height:s}=r.contentRect;c(Math.min(null!=l?l:1,e/t,s/a))}}));return e.observe(i),()=>e.disconnect()}),[a,t,n,l,i]),o}},84890:(e,t,a)=>{e.exports=a.p+"images/7e4100fd.png"},99158:(e,t,a)=>{e.exports=a.p+"images/4f7762f3.svg"}}]);
|
|
2
|
+
//# sourceMappingURL=china-map.3e89e422.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/china-map.faf20495.js","mappings":"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","sources":["webpack:///./src/china-map/index.tsx","webpack:///./src/china-map/styles.shadow.css","webpack:///../../node_modules/css-loader/dist/runtime/getUrl.js","webpack:///./src/shared/useContainerScale.ts"],"sourcesContent":["import React, { useEffect, useRef, useState } from \"react\";\nimport { groupBy } from \"lodash\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { geoPath, geoMercator, type ExtendedFeatureCollection } from \"d3-geo\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { useContainerScale } from \"../shared/useContainerScale\";\nimport texturePng from \"../china-map-chart/assets/texture.png\";\nimport markerSvg from \"../china-map-chart/assets/default.svg?url\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement, property } = createDecorators();\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst BASE_WIDTH = 960;\nconst BASE_HEIGHT = 750;\nconst pixelRatio = window.devicePixelRatio ?? 1;\nconst layers = [\n {\n fill: \"rgba(84, 239, 241, 0.2)\",\n shadowColor: \"rgba(84, 239, 241, 0.2)\",\n shadowBlur: 2,\n shadowOffsetY: 1,\n offset: 28,\n },\n {\n fill: \"#bee1e2\",\n shadowColor: \"rgba(93,250,255,0.2)\",\n shadowBlur: 4,\n shadowOffsetY: 10,\n offset: 23,\n },\n {\n fill: \"#000\",\n offset: 19.5,\n },\n {\n lineWidth: 1,\n strokeStyle: \"#2B64FF\",\n offset: 15,\n },\n {\n lineWidth: 1.5,\n strokeStyle: \"#2B64FF\",\n offset: 10,\n },\n];\n\nexport interface ChinaMapProps {\n province?: string;\n dataSource?: DataItem[];\n maxScale?: number;\n textScale?: number;\n}\n\nexport interface DataItem {\n province?: string;\n city?: string;\n /** 手动设置经纬度信息,优先级高于 province 和 city */\n coordinate?: [longitude: number, latitude: number];\n text: string;\n}\n\n/**\n * 构件 `data-view.china-map`\n */\nexport\n@defineElement(\"data-view.china-map\", {\n styleTexts: [styleText],\n})\nclass ChinaMap extends ReactNextElement implements ChinaMapProps {\n /**\n * 省份名称,例如“广东”。如果设置,则只显示该省份的地图,否则显示全国地图\n */\n @property()\n accessor province: string | undefined;\n\n /**\n * 数据源\n */\n @property({ attribute: false })\n accessor dataSource: DataItem[] | undefined;\n\n /**\n * 最大缩放比例\n *\n * @default 1\n */\n @property({ type: Number })\n accessor maxScale: number | undefined;\n\n /**\n * 标签文本缩放比例\n *\n * @default 1\n */\n @property({ type: Number })\n accessor textScale: number | undefined;\n\n render() {\n return (\n <ChinaMapComponent\n root={this}\n province={this.province}\n dataSource={this.dataSource}\n maxScale={this.maxScale}\n textScale={this.textScale}\n />\n );\n }\n}\n\nexport interface ChinaMapComponentProps extends ChinaMapProps {\n root: ChinaMap;\n}\n\ninterface Area {\n name: string;\n level: \"country\" | \"province\" | \"city\" | \"district\";\n adcode: number;\n lng: number;\n lat: number;\n parent: number;\n}\n\ninterface Label {\n left: number;\n top: number;\n text: string;\n align: \"left\" | \"right\";\n}\n\nexport function ChinaMapComponent({\n root,\n province,\n dataSource,\n maxScale,\n textScale,\n}: ChinaMapComponentProps) {\n const scale = useContainerScale({\n width: BASE_WIDTH,\n height: BASE_HEIGHT,\n root,\n maxScale,\n });\n\n const canvasRef = useRef<HTMLCanvasElement>(null);\n const [labels, setLabels] = useState<Label[]>([]);\n\n // true: loaded\n // false: loading\n // string: error\n const [state, setState] = useState<boolean | string>(false);\n\n useEffect(() => {\n const canvas = canvasRef.current;\n const context = canvas.getContext(\"2d\");\n let ignore = false;\n\n (async () => {\n let geo: ExtendedFeatureCollection;\n let SouthSea: ExtendedFeatureCollection;\n let matchedProvince: Area | undefined;\n let AreaList: Area[] | undefined;\n\n let image: HTMLImageElement;\n try {\n [image] = await Promise.all([\n new Promise<HTMLImageElement>((resolve, reject) => {\n const img = new Image();\n // istanbul ignore next: can't mock image\n img.onload = () => {\n resolve(img);\n };\n // istanbul ignore next: can't mock image\n img.onerror = (reason) => {\n reject(reason);\n };\n img.src = texturePng;\n // istanbul ignore next: can't mock image\n if (process.env.NODE_ENV === \"test\") {\n resolve(null);\n }\n }),\n (async () => {\n if (province) {\n const [CitiesImport, AreaListImport] = await Promise.all([\n import(\"./cities.json\"),\n import(\"../china-map-chart/area-list.json\"),\n ]);\n\n const Cities =\n CitiesImport.default as unknown as ExtendedFeatureCollection;\n AreaList = AreaListImport.default as unknown as Area[];\n matchedProvince = AreaList.find(\n (a) => a.level === \"province\" && a.name.includes(province)\n );\n if (!matchedProvince) {\n throw new Error(`没有找到省份:\"${province}\"`);\n }\n geo = {\n type: \"FeatureCollection\",\n features: Cities.features.filter(\n (f) => f.properties.province_adcode === matchedProvince.adcode\n ),\n };\n } else {\n const ChinaImport = await import(\"./provinces.json\");\n const ChinaGeoJson =\n ChinaImport.default as unknown as ExtendedFeatureCollection;\n const geoGroup = groupBy(ChinaGeoJson.features, (f) =>\n f.properties.name ? \"main-land\" : \"south-sea\"\n );\n geo = {\n type: \"FeatureCollection\",\n features: geoGroup[\"main-land\"],\n };\n SouthSea = {\n type: \"FeatureCollection\",\n features: geoGroup[\"south-sea\"],\n };\n }\n })(),\n ]);\n } catch (e) {\n if (!ignore) {\n setState(String(e));\n context.clearRect(\n 0,\n 0,\n BASE_WIDTH * pixelRatio,\n BASE_HEIGHT * pixelRatio\n );\n setLabels([]);\n }\n return;\n }\n\n if (ignore) {\n return;\n }\n\n setState(true);\n\n context.clearRect(\n 0,\n 0,\n BASE_WIDTH * pixelRatio,\n BASE_HEIGHT * pixelRatio\n );\n\n context.strokeStyle = \"#fff\";\n context.lineWidth = 2.5 * pixelRatio;\n context.lineJoin = \"round\";\n\n const projection = geoMercator().fitExtent(\n [\n [10 * pixelRatio, 10 * pixelRatio],\n [(BASE_WIDTH - 10) * pixelRatio, (BASE_HEIGHT - 25) * pixelRatio],\n ],\n geo\n );\n const path = geoPath(projection, context);\n\n // 3D 效果层\n layers.forEach((layer) => {\n const ctx = context;\n context.save();\n context.translate(0, layer.offset * pixelRatio);\n\n if (layer.shadowColor) {\n ctx.shadowColor = layer.shadowColor;\n ctx.shadowBlur = (layer.shadowBlur ?? 0) * pixelRatio;\n ctx.shadowOffsetY = (layer.shadowOffsetY ?? 0) * pixelRatio;\n }\n\n ctx.beginPath();\n const p = geoPath(projection, ctx);\n p(geo);\n ctx.closePath();\n\n if (layer.fill) {\n ctx.fillStyle = layer.fill;\n ctx.fill();\n }\n\n if (layer.lineWidth) {\n ctx.strokeStyle = layer.strokeStyle;\n ctx.lineWidth = layer.lineWidth * pixelRatio;\n ctx.stroke();\n }\n context.restore();\n });\n\n // 纹理填充\n context.save();\n // istanbul ignore next: can't mock image\n if (process.env.NODE_ENV !== \"test\") {\n const pattern = context.createPattern(image, \"repeat\");\n context.fillStyle = pattern;\n }\n context.beginPath();\n path(geo);\n context.closePath();\n context.fill();\n context.restore();\n\n // 边界线\n context.save();\n context.strokeStyle = \"#3DC6FF\";\n context.beginPath();\n path(geo);\n context.closePath();\n context.stroke();\n context.restore();\n\n // 南海\n if (!province) {\n context.save();\n context.strokeStyle = \"rgb(30, 144, 255)\";\n context.beginPath();\n path(SouthSea);\n context.closePath();\n context.stroke();\n context.restore();\n }\n\n // 标签\n setLabels(\n dataSource?.flatMap<Label>((label) => {\n let lng: number;\n let lat: number;\n if (label.coordinate) {\n [lng, lat] = label.coordinate;\n } else if (matchedProvince) {\n const area = AreaList.find(\n (a) =>\n a.level === \"city\" &&\n a.parent === matchedProvince.adcode &&\n a.name.includes(label.city)\n );\n if (!area) {\n return [];\n }\n ({ lng, lat } = area);\n } else {\n const feature = geo.features.find(\n (f) =>\n f.properties.level === \"province\" &&\n f.properties.name.includes(label.province)\n );\n if (!feature) {\n return [];\n }\n [lng, lat] = feature.properties.cp ?? feature.properties.center;\n }\n\n const point = projection([lng, lat]);\n const left = point[0] / pixelRatio;\n const top = point[1] / pixelRatio;\n\n return {\n left,\n top,\n text: label.text,\n // 防止标签超出边界,将最右侧的标签左对齐\n align: left > BASE_WIDTH - 150 ? \"left\" : \"right\",\n };\n })\n );\n })();\n\n return () => {\n ignore = true;\n };\n }, [province, dataSource]);\n\n return (\n <div\n className=\"container\"\n style={\n {\n width: BASE_WIDTH,\n height: BASE_HEIGHT,\n visibility: scale === null ? \"hidden\" : \"visible\",\n \"--scale\": scale,\n \"--text-scale\": textScale,\n } as React.CSSProperties & {\n \"--scale\": number;\n \"--text-scale\": number;\n }\n }\n >\n {state !== true && (\n <div\n className=\"message\"\n style={{ width: BASE_WIDTH, height: BASE_HEIGHT }}\n >\n {state === false && (\n <WrappedIcon\n lib=\"antd\"\n icon=\"loading\"\n spinning\n className=\"loading\"\n />\n )}\n {typeof state === \"string\" && <div className=\"error\">{state}</div>}\n </div>\n )}\n <canvas\n ref={canvasRef}\n width={BASE_WIDTH * pixelRatio}\n height={BASE_HEIGHT * pixelRatio}\n style={{ width: BASE_WIDTH, height: BASE_HEIGHT }}\n />\n <div\n className=\"labels\"\n style={{\n width: BASE_WIDTH,\n height: BASE_HEIGHT,\n }}\n >\n {labels?.map((label, index) => (\n <div\n key={index}\n className={`label ${label.align}`}\n style={{ left: label.left, top: label.top }}\n >\n <img width={28} height={32} className=\"marker\" src={markerSvg} />\n <div className=\"text\">{label.text}</div>\n </div>\n ))}\n </div>\n </div>\n );\n}\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"../china-map-chart/assets/label.svg\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host,\n.message{display:flex;align-items:center;justify-content:center}:host{position:relative;color:#fff;height:100%}:host([hidden]){display:none}*{box-sizing:border-box}.container{position:relative;transform:scale(var(--scale));--scale:1;--text-scale:1;--text-height:calc(22px * var(--text-scale));--text-font-size:calc(12px * var(--text-scale));--text-indent:calc(10px * var(--text-scale));--text-background-size:calc(119px * var(--text-scale)) calc(22px * var(--text-scale))}canvas,\n.message,\n.labels{position:absolute;left:50%;transform:translate(-50%,0);top:0}.loading{font-size:48px}.error{color:var(--color-error)}.label{position:absolute;display:flex;align-items:center;transform:translate(-14px,-28px)}.text{height:var(--text-height);line-height:var(--text-height);font-size:var(--text-font-size);background:url(${___CSS_LOADER_URL_REPLACEMENT_0___}) no-repeat center left;background-size:var(--text-background-size);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);text-indent:var(--text-indent);transform:translate(0,-18px);white-space:nowrap;color:#fffcef}.left > .text{transform:translate(calc(-100% - 32px),-18px)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","\"use strict\";\n\nmodule.exports = function (url, options) {\n if (!options) {\n options = {};\n }\n if (!url) {\n return url;\n }\n url = String(url.__esModule ? url.default : url);\n\n // If url is already wrapped in quotes, remove them\n if (/^['\"].*['\"]$/.test(url)) {\n url = url.slice(1, -1);\n }\n if (options.hash) {\n url += options.hash;\n }\n\n // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n if (/[\"'() \\t\\n]|(%20)/.test(url) || options.needQuotes) {\n return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, \"\\\\n\"), \"\\\"\");\n }\n return url;\n};","import { useEffect, useState } from \"react\";\nimport ResizeObserver from \"resize-observer-polyfill\";\n\n/**\n * 根据容器尺寸进行缩放\n */\nexport function useContainerScale({\n width: baseWidth,\n height: baseHeight,\n root,\n maxScale,\n disabled,\n}: {\n width: number;\n height: number;\n root: HTMLElement;\n /** 最大缩放比例,默认为 1 */\n maxScale?: number;\n disabled?: boolean;\n}): number | null {\n const [scale, setScale] = useState<number | null>(null);\n\n useEffect(() => {\n if (disabled) {\n setScale(null);\n return;\n }\n // 当容器宽高低于预设值时,图形会自动缩小\n const observer = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target === root) {\n const { width, height } = entry.contentRect;\n setScale(\n Math.min(maxScale ?? 1, width / baseWidth, height / baseHeight)\n );\n }\n }\n });\n observer.observe(root);\n return () => observer.disconnect();\n }, [baseHeight, baseWidth, disabled, maxScale, root]);\n\n return scale;\n}\n"],"names":["defineElement","property","createDecorators","WrappedIcon","wrapBrick","BASE_WIDTH","BASE_HEIGHT","pixelRatio","_window$devicePixelRa","window","devicePixelRatio","layers","fill","shadowColor","shadowBlur","shadowOffsetY","offset","lineWidth","strokeStyle","_ChinaMap","_A","WeakMap","_B","_C","_D","ChinaMap","ReactNextElement","constructor","arguments","_classPrivateFieldInitSpec","_init_province","_init_extra_province","_init_dataSource","_init_extra_dataSource","_init_maxScale","_init_extra_maxScale","_init_textScale","_init_extra_textScale","province","_classPrivateFieldGet","v","_classPrivateFieldSet","dataSource","maxScale","textScale","render","React","ChinaMapComponent","root","this","_ref","scale","useContainerScale","width","height","canvasRef","useRef","labels","setLabels","useState","state","setState","useEffect","context","current","getContext","ignore","geo","SouthSea","matchedProvince","AreaList","image","Promise","all","resolve","reject","img","Image","onload","onerror","reason","src","texturePng","CitiesImport","AreaListImport","Cities","default","find","a","level","name","includes","Error","type","features","filter","f","properties","province_adcode","adcode","ChinaGeoJson","geoGroup","groupBy","e","String","clearRect","lineJoin","projection","geoMercator","fitExtent","path","geoPath","forEach","layer","ctx","_layer$shadowBlur","_layer$shadowOffsetY","save","translate","beginPath","p","closePath","fillStyle","stroke","restore","pattern","createPattern","flatMap","label","lng","lat","coordinate","area","parent","city","_feature$properties$c","feature","cp","center","point","left","top","text","align","className","style","visibility","lib","icon","spinning","ref","map","index","key","markerSvg","_ChinaMap2","c","_initClass","_applyDecs","styleTexts","styleText","attribute","Number","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_EXPORT___","___CSS_LOADER_URL_REPLACEMENT_0___","push","module","id","toString","exports","url","options","__esModule","test","slice","hash","needQuotes","concat","replace","baseWidth","baseHeight","disabled","setScale","observer","ResizeObserver","entries","entry","target","contentRect","Math","min","observe","disconnect"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"chunks/china-map.3e89e422.js","mappings":"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","sources":["webpack:///./src/china-map/index.tsx","webpack:///./src/china-map/styles.shadow.css","webpack:///../../node_modules/css-loader/dist/runtime/getUrl.js","webpack:///./src/shared/useContainerScale.ts"],"sourcesContent":["import React, { useEffect, useRef, useState } from \"react\";\nimport { groupBy } from \"lodash\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { geoPath, geoMercator, type ExtendedFeatureCollection } from \"d3-geo\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { useContainerScale } from \"../shared/useContainerScale\";\nimport texturePng from \"../china-map-chart/assets/texture.png\";\nimport markerSvg from \"../china-map-chart/assets/default.svg?url\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement, property } = createDecorators();\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst BASE_WIDTH = 960;\nconst BASE_HEIGHT = 750;\nconst pixelRatio = window.devicePixelRatio ?? 1;\nconst layers = [\n {\n fill: \"rgba(84, 239, 241, 0.2)\",\n shadowColor: \"rgba(84, 239, 241, 0.2)\",\n shadowBlur: 2,\n shadowOffsetY: 1,\n offset: 28,\n },\n {\n fill: \"#bee1e2\",\n shadowColor: \"rgba(93,250,255,0.2)\",\n shadowBlur: 4,\n shadowOffsetY: 10,\n offset: 23,\n },\n {\n fill: \"#000\",\n offset: 19.5,\n },\n {\n lineWidth: 1,\n strokeStyle: \"#2B64FF\",\n offset: 15,\n },\n {\n lineWidth: 1.5,\n strokeStyle: \"#2B64FF\",\n offset: 10,\n },\n];\n\nexport interface ChinaMapProps {\n province?: string;\n dataSource?: DataItem[];\n maxScale?: number;\n textScale?: number;\n}\n\nexport interface DataItem {\n province?: string;\n city?: string;\n /** 手动设置经纬度信息,优先级高于 province 和 city */\n coordinate?: [longitude: number, latitude: number];\n text: string;\n}\n\n/**\n * 构件 `data-view.china-map`\n */\nexport\n@defineElement(\"data-view.china-map\", {\n styleTexts: [styleText],\n})\nclass ChinaMap extends ReactNextElement implements ChinaMapProps {\n /**\n * 省份名称,例如“广东”。如果设置,则只显示该省份的地图,否则显示全国地图\n */\n @property()\n accessor province: string | undefined;\n\n /**\n * 数据源\n */\n @property({ attribute: false })\n accessor dataSource: DataItem[] | undefined;\n\n /**\n * 最大缩放比例\n *\n * @default 1\n */\n @property({ type: Number })\n accessor maxScale: number | undefined;\n\n /**\n * 标签文本缩放比例\n *\n * @default 1\n */\n @property({ type: Number })\n accessor textScale: number | undefined;\n\n render() {\n return (\n <ChinaMapComponent\n root={this}\n province={this.province}\n dataSource={this.dataSource}\n maxScale={this.maxScale}\n textScale={this.textScale}\n />\n );\n }\n}\n\nexport interface ChinaMapComponentProps extends ChinaMapProps {\n root: ChinaMap;\n}\n\ninterface Area {\n name: string;\n level: \"country\" | \"province\" | \"city\" | \"district\";\n adcode: number;\n lng: number;\n lat: number;\n parent: number;\n}\n\ninterface Label {\n left: number;\n top: number;\n text: string;\n align: \"left\" | \"right\";\n}\n\nexport function ChinaMapComponent({\n root,\n province,\n dataSource,\n maxScale,\n textScale,\n}: ChinaMapComponentProps) {\n const scale = useContainerScale({\n width: BASE_WIDTH,\n height: BASE_HEIGHT,\n root,\n maxScale,\n });\n\n const canvasRef = useRef<HTMLCanvasElement>(null);\n const [labels, setLabels] = useState<Label[]>([]);\n\n // true: loaded\n // false: loading\n // string: error\n const [state, setState] = useState<boolean | string>(false);\n\n useEffect(() => {\n const canvas = canvasRef.current;\n const context = canvas.getContext(\"2d\");\n let ignore = false;\n\n (async () => {\n let geo: ExtendedFeatureCollection;\n let SouthSea: ExtendedFeatureCollection;\n let matchedProvince: Area | undefined;\n let AreaList: Area[] | undefined;\n\n let image: HTMLImageElement;\n try {\n [image] = await Promise.all([\n new Promise<HTMLImageElement>((resolve, reject) => {\n const img = new Image();\n // istanbul ignore next: can't mock image\n img.onload = () => {\n resolve(img);\n };\n // istanbul ignore next: can't mock image\n img.onerror = (reason) => {\n reject(reason);\n };\n img.src = texturePng;\n // istanbul ignore next: can't mock image\n if (process.env.NODE_ENV === \"test\") {\n resolve(null);\n }\n }),\n (async () => {\n if (province) {\n const [CitiesImport, AreaListImport] = await Promise.all([\n import(\"./cities.json\"),\n import(\"../china-map-chart/area-list.json\"),\n ]);\n\n const Cities =\n CitiesImport.default as unknown as ExtendedFeatureCollection;\n AreaList = AreaListImport.default as unknown as Area[];\n matchedProvince = AreaList.find(\n (a) => a.level === \"province\" && a.name.includes(province)\n );\n if (!matchedProvince) {\n throw new Error(`没有找到省份:\"${province}\"`);\n }\n geo = {\n type: \"FeatureCollection\",\n features: Cities.features.filter(\n (f) => f.properties.province_adcode === matchedProvince.adcode\n ),\n };\n } else {\n const ChinaImport = await import(\"./provinces.json\");\n const ChinaGeoJson =\n ChinaImport.default as unknown as ExtendedFeatureCollection;\n const geoGroup = groupBy(ChinaGeoJson.features, (f) =>\n f.properties.name ? \"main-land\" : \"south-sea\"\n );\n geo = {\n type: \"FeatureCollection\",\n features: geoGroup[\"main-land\"],\n };\n SouthSea = {\n type: \"FeatureCollection\",\n features: geoGroup[\"south-sea\"],\n };\n }\n })(),\n ]);\n } catch (e) {\n if (!ignore) {\n setState(String(e));\n context.clearRect(\n 0,\n 0,\n BASE_WIDTH * pixelRatio,\n BASE_HEIGHT * pixelRatio\n );\n setLabels([]);\n }\n return;\n }\n\n if (ignore) {\n return;\n }\n\n setState(true);\n\n context.clearRect(\n 0,\n 0,\n BASE_WIDTH * pixelRatio,\n BASE_HEIGHT * pixelRatio\n );\n\n context.strokeStyle = \"#fff\";\n context.lineWidth = 2.5 * pixelRatio;\n context.lineJoin = \"round\";\n\n const projection = geoMercator().fitExtent(\n [\n [10 * pixelRatio, 10 * pixelRatio],\n [(BASE_WIDTH - 10) * pixelRatio, (BASE_HEIGHT - 25) * pixelRatio],\n ],\n geo\n );\n const path = geoPath(projection, context);\n\n // 3D 效果层\n layers.forEach((layer) => {\n const ctx = context;\n context.save();\n context.translate(0, layer.offset * pixelRatio);\n\n if (layer.shadowColor) {\n ctx.shadowColor = layer.shadowColor;\n ctx.shadowBlur = (layer.shadowBlur ?? 0) * pixelRatio;\n ctx.shadowOffsetY = (layer.shadowOffsetY ?? 0) * pixelRatio;\n }\n\n ctx.beginPath();\n const p = geoPath(projection, ctx);\n p(geo);\n ctx.closePath();\n\n if (layer.fill) {\n ctx.fillStyle = layer.fill;\n ctx.fill();\n }\n\n if (layer.lineWidth) {\n ctx.strokeStyle = layer.strokeStyle;\n ctx.lineWidth = layer.lineWidth * pixelRatio;\n ctx.stroke();\n }\n context.restore();\n });\n\n // 纹理填充\n context.save();\n // istanbul ignore next: can't mock image\n if (process.env.NODE_ENV !== \"test\") {\n const pattern = context.createPattern(image, \"repeat\");\n context.fillStyle = pattern;\n }\n context.beginPath();\n path(geo);\n context.closePath();\n context.fill();\n context.restore();\n\n // 边界线\n context.save();\n context.strokeStyle = \"#3DC6FF\";\n context.beginPath();\n path(geo);\n context.closePath();\n context.stroke();\n context.restore();\n\n // 南海\n if (!province) {\n context.save();\n context.strokeStyle = \"rgb(30, 144, 255)\";\n context.beginPath();\n path(SouthSea);\n context.closePath();\n context.stroke();\n context.restore();\n }\n\n // 标签\n setLabels(\n dataSource?.flatMap<Label>((label) => {\n let lng: number;\n let lat: number;\n if (label.coordinate) {\n [lng, lat] = label.coordinate;\n } else if (matchedProvince) {\n const area = AreaList.find(\n (a) =>\n a.level === \"city\" &&\n a.parent === matchedProvince.adcode &&\n a.name.includes(label.city)\n );\n if (!area) {\n return [];\n }\n ({ lng, lat } = area);\n } else {\n const feature = geo.features.find(\n (f) =>\n f.properties.level === \"province\" &&\n f.properties.name.includes(label.province)\n );\n if (!feature) {\n return [];\n }\n [lng, lat] = feature.properties.cp ?? feature.properties.center;\n }\n\n const point = projection([lng, lat]);\n const left = point[0] / pixelRatio;\n const top = point[1] / pixelRatio;\n\n return {\n left,\n top,\n text: label.text,\n // 防止标签超出边界,将最右侧的标签左对齐\n align: left > BASE_WIDTH - 150 ? \"left\" : \"right\",\n };\n })\n );\n })();\n\n return () => {\n ignore = true;\n };\n }, [province, dataSource]);\n\n return (\n <div\n className=\"container\"\n style={\n {\n width: BASE_WIDTH,\n height: BASE_HEIGHT,\n visibility: scale === null ? \"hidden\" : \"visible\",\n \"--scale\": scale,\n \"--text-scale\": textScale,\n } as React.CSSProperties & {\n \"--scale\": number;\n \"--text-scale\": number;\n }\n }\n >\n {state !== true && (\n <div\n className=\"message\"\n style={{ width: BASE_WIDTH, height: BASE_HEIGHT }}\n >\n {state === false && (\n <WrappedIcon\n lib=\"antd\"\n icon=\"loading\"\n spinning\n className=\"loading\"\n />\n )}\n {typeof state === \"string\" && <div className=\"error\">{state}</div>}\n </div>\n )}\n <canvas\n ref={canvasRef}\n width={BASE_WIDTH * pixelRatio}\n height={BASE_HEIGHT * pixelRatio}\n style={{ width: BASE_WIDTH, height: BASE_HEIGHT }}\n />\n <div\n className=\"labels\"\n style={{\n width: BASE_WIDTH,\n height: BASE_HEIGHT,\n }}\n >\n {labels?.map((label, index) => (\n <div\n key={index}\n className={`label ${label.align}`}\n style={{ left: label.left, top: label.top }}\n >\n <img width={28} height={32} className=\"marker\" src={markerSvg} />\n <div className=\"text\">{label.text}</div>\n </div>\n ))}\n </div>\n </div>\n );\n}\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"../china-map-chart/assets/label.svg\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host,\n.message{display:flex;align-items:center;justify-content:center}:host{position:relative;color:#fff;height:100%}:host([hidden]){display:none}*{box-sizing:border-box}.container{position:relative;transform:scale(var(--scale));--scale:1;--text-scale:1;--text-height:calc(22px * var(--text-scale));--text-font-size:calc(12px * var(--text-scale));--text-indent:calc(10px * var(--text-scale));--text-background-size:calc(119px * var(--text-scale)) calc(22px * var(--text-scale))}canvas,\n.message,\n.labels{position:absolute;left:50%;transform:translate(-50%,0);top:0}.loading{font-size:48px}.error{color:var(--color-error)}.label{position:absolute;display:flex;align-items:center;transform:translate(-14px,-28px)}.text{height:var(--text-height);line-height:var(--text-height);font-size:var(--text-font-size);background:url(${___CSS_LOADER_URL_REPLACEMENT_0___}) no-repeat center left;background-size:var(--text-background-size);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);text-indent:var(--text-indent);transform:translate(0,-18px);white-space:nowrap;color:#fffcef}.left > .text{transform:translate(calc(-100% - 32px),-18px)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","\"use strict\";\n\nmodule.exports = function (url, options) {\n if (!options) {\n options = {};\n }\n if (!url) {\n return url;\n }\n url = String(url.__esModule ? url.default : url);\n\n // If url is already wrapped in quotes, remove them\n if (/^['\"].*['\"]$/.test(url)) {\n url = url.slice(1, -1);\n }\n if (options.hash) {\n url += options.hash;\n }\n\n // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n if (/[\"'() \\t\\n]|(%20)/.test(url) || options.needQuotes) {\n return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, \"\\\\n\"), \"\\\"\");\n }\n return url;\n};","import { useEffect, useState } from \"react\";\nimport ResizeObserver from \"resize-observer-polyfill\";\n\n/**\n * 根据容器尺寸进行缩放\n */\nexport function useContainerScale({\n width: baseWidth,\n height: baseHeight,\n root,\n maxScale,\n disabled,\n}: {\n width: number;\n height: number;\n root: HTMLElement;\n /** 最大缩放比例,默认为 1 */\n maxScale?: number;\n disabled?: boolean;\n}): number | null {\n const [scale, setScale] = useState<number | null>(null);\n\n useEffect(() => {\n if (disabled) {\n setScale(null);\n return;\n }\n // 当容器宽高低于预设值时,图形会自动缩小\n const observer = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target === root) {\n const { width, height } = entry.contentRect;\n setScale(\n Math.min(maxScale ?? 1, width / baseWidth, height / baseHeight)\n );\n }\n }\n });\n observer.observe(root);\n return () => observer.disconnect();\n }, [baseHeight, baseWidth, disabled, maxScale, root]);\n\n return scale;\n}\n"],"names":["defineElement","property","createDecorators","WrappedIcon","wrapBrick","BASE_WIDTH","BASE_HEIGHT","pixelRatio","_window$devicePixelRa","window","devicePixelRatio","layers","fill","shadowColor","shadowBlur","shadowOffsetY","offset","lineWidth","strokeStyle","_ChinaMap","_A","WeakMap","_B","_C","_D","ChinaMap","ReactNextElement","constructor","arguments","_classPrivateFieldInitSpec","_init_province","_init_extra_province","_init_dataSource","_init_extra_dataSource","_init_maxScale","_init_extra_maxScale","_init_textScale","_init_extra_textScale","province","_classPrivateFieldGet","v","_classPrivateFieldSet","dataSource","maxScale","textScale","render","React","ChinaMapComponent","root","this","_ref","scale","useContainerScale","width","height","canvasRef","useRef","labels","setLabels","useState","state","setState","useEffect","context","current","getContext","ignore","geo","SouthSea","matchedProvince","AreaList","image","Promise","all","resolve","reject","img","Image","onload","onerror","reason","src","texturePng","CitiesImport","AreaListImport","Cities","default","find","a","level","name","includes","Error","type","features","filter","f","properties","province_adcode","adcode","ChinaGeoJson","geoGroup","groupBy","e","String","clearRect","lineJoin","projection","geoMercator","fitExtent","path","geoPath","forEach","layer","ctx","_layer$shadowBlur","_layer$shadowOffsetY","save","translate","beginPath","p","closePath","fillStyle","stroke","restore","pattern","createPattern","flatMap","label","lng","lat","coordinate","area","parent","city","_feature$properties$c","feature","cp","center","point","left","top","text","align","className","style","visibility","lib","icon","spinning","ref","map","index","key","markerSvg","_ChinaMap2","c","_initClass","_applyDecs","styleTexts","styleText","attribute","Number","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_EXPORT___","___CSS_LOADER_URL_REPLACEMENT_0___","push","module","id","toString","exports","url","options","__esModule","test","slice","hash","needQuotes","concat","replace","baseWidth","baseHeight","disabled","setScale","observer","ResizeObserver","entries","entry","target","contentRect","Math","min","observe","disconnect"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(globalThis.webpackChunk_next_bricks_data_view=globalThis.webpackChunk_next_bricks_data_view||[]).push([[2052,5994],{5536:(e,t,r)=>{r.d(t,{A:()=>n});var a=r(12559);function n(e,t,r){return r((0,a.A)(e,t))}},11369:(e,t,r)=>{r.d(t,{A:()=>n});var a=r(17545);function n(e){var t=function(e){if("object"!=(0,a.A)(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=(0,a.A)(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==(0,a.A)(t)?t:t+""}},12559:(e,t,r)=>{function a(e,t,r){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:r;throw new TypeError("Private element is not present on this object")}r.d(t,{A:()=>a})},17545:(e,t,r)=>{function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}r.d(t,{A:()=>a})},24586:(e,t,r)=>{r.d(t,{A:()=>n});var a=r(11369);function n(e,t,r){return(t=(0,a.A)(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}},26902:(e,t,r)=>{r.d(t,{A:()=>n});var a=r(17545);function n(e){if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==e?(0,a.A)(e):"null"));return e}},36758:e=>{e.exports=function(e){return e[1]}},40935:e=>{e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var r="",a=void 0!==t[5];return t[4]&&(r+="@supports (".concat(t[4],") {")),t[2]&&(r+="@media ".concat(t[2]," {")),a&&(r+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),r+=e(t),a&&(r+="}"),t[2]&&(r+="}"),t[4]&&(r+="}"),r})).join("")},t.i=function(e,r,a,n,o){"string"==typeof e&&(e=[[null,e,void 0]]);var i={};if(a)for(var l=0;l<this.length;l++){var s=this[l][0];null!=s&&(i[s]=!0)}for(var c=0;c<e.length;c++){var p=[].concat(e[c]);a&&i[p[0]]||(void 0!==o&&(void 0===p[5]||(p[1]="@layer".concat(p[5].length>0?" ".concat(p[5]):""," {").concat(p[1],"}")),p[5]=o),r&&(p[2]?(p[1]="@media ".concat(p[2]," {").concat(p[1],"}"),p[2]=r):p[2]=r),n&&(p[4]?(p[1]="@supports (".concat(p[4],") {").concat(p[1],"}"),p[4]=n):p[4]="".concat(n)),t.push(p))}},t}},41856:(e,t,r)=>{e.exports=r.p+"images/6d954a25.png"},62740:(e,t,r)=>{r.d(t,{A:()=>l});var a=r(17545),n=r(26902);function o(e,t,r){"symbol"==(0,a.A)(t)&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:r?r+" "+t:t})}catch(e){}return e}var i=r(11369);function l(e,t,r,l,s,c){var p,u,h,d,b,g,f,v=Symbol.metadata||Symbol.for("Symbol.metadata"),m=Object.defineProperty,x=Object.create,w=[x(null),x(null)],y=t.length;function A(t,r,a){return function(n,o){r&&(o=n,n=e);for(var i=0;i<t.length;i++)o=t[i].apply(n,a?[o]:[]);return a?o:n}}function k(e,t,r,a){if("function"!=typeof e&&(a||void 0!==e))throw new TypeError(t+" must "+(r||"be")+" a function"+(a?"":" or undefined"));return e}function E(e,t,r,n,i,l,s,c,h,d,b){function g(e){if(!b(e))throw new TypeError("Attempted to access private element on non-instance")}var f=[].concat(t[0]),v=t[3],x=!s,y=1===i,E=3===i,z=4===i,S=2===i;function M(t,r,a){return function(n,o){return r&&(o=n,n=e),a&&a(n),T[t].call(n,o)}}if(!x){var T={},B=[],I=E?"get":z||y?"set":"value";if(h?(d||y?T={get:o((function(){return v(this)}),n,"get"),set:function(e){t[4](this,e)}}:T[I]=v,d||o(T[I],n,S?"":I)):d||(T=Object.getOwnPropertyDescriptor(e,n)),!d&&!h){if((u=w[+c][n])&&7!=(u^i))throw Error("Decorating two elements with the same name ("+T[I].name+") is not supported yet");w[+c][n]=i<3?1:i}}for(var j=e,N=f.length-1;N>=0;N-=r?2:1){var C=k(f[N],"A decorator","be",!0),W=r?f[N-1]:void 0,P={},_={kind:["field","accessor","method","getter","setter","class"][i],name:n,metadata:p,addInitializer:function(e,t){if(e.v)throw Error("attempted to call addInitializer after decoration was finished");k(t,"An initializer","be",!0),l.push(t)}.bind(null,P)};if(x)u=C.call(W,j,_),P.v=1,k(u,"class decorators","return")&&(j=u);else if(_.static=c,_.private=h,u=_.access={has:h?b.bind():function(e){return n in e}},z||(u.get=h?S?function(e){return g(e),T.value}:M("get",0,g):function(e){return e[n]}),S||E||(u.set=h?M("set",0,g):function(e,t){e[n]=t}),j=C.call(W,y?{get:T.get,set:T.set}:T[I],_),P.v=1,y){if("object"==(0,a.A)(j)&&j)(u=k(j.get,"accessor.get"))&&(T.get=u),(u=k(j.set,"accessor.set"))&&(T.set=u),(u=k(j.init,"accessor.init"))&&B.unshift(u);else if(void 0!==j)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else k(j,(d?"field":"method")+" decorators","return")&&(d?B.unshift(j):T[I]=j)}return i<2&&s.push(A(B,c,1),A(l,c,0)),d||x||(h?y?s.splice(-1,0,M("get",c),M("set",c)):s.push(S?T[I]:k.call.bind(T[I])):m(e,n,T)),j}function z(e){return m(e,v,{configurable:!0,enumerable:!0,value:p})}return void 0!==c&&(p=c[v]),p=x(null==p?null:p),b=[],g=function(e){e&&b.push(A(e))},f=function(t,a){for(var o=0;o<r.length;o++){var l=r[o],c=l[1],p=7&c;if((8&c)==t&&!p==a){var u=l[2],g=!!l[3],f=16&c;E(t?e:e.prototype,l,f,g?"#"+u:(0,i.A)(u),p,p<2?[]:t?d=d||[]:h=h||[],b,!!t,g,a,t&&g?function(t){return(0,n.A)(t)===e}:s)}}},f(8,0),f(0,0),f(8,1),f(0,1),g(h),g(d),u=b,y||z(e),{e:u,get c(){var r=[];return y&&[z(e=E(e,[t],l,e.name,5,r)),A(r,1)]}}}},66060:(e,t,r)=>{r.r(t),r.d(t,{ComplexSearch:()=>re,ComplexSearchComponent:()=>be});var a,n=r(89575),o=r(24586),i=r(74635),l=r(70918),s=r(26902),c=r(5536),p=r(86121),u=r(70829),h=r(62740),d=r(18769),b=r.n(d),g=r(6192),f=r(99859),v=r(79935),m=r(69994),x=r(77390),w=r(7201),y=r(98414),A=r(41856);let k,E,z,S,M,T,B,I,j,N,C,W,P,_,D,O,R,U,F,Y,K,L,q,G,H,J,Q,V,X;const{defineElement:Z,property:$,event:ee}=(0,g.createDecorators)();(0,w.initializeReactI18n)(y.NS,y.I);const te=(0,f.wrapBrick)("eo-icon");let re;var ae=new WeakMap,ne=new WeakMap,oe=new WeakMap,ie=new WeakMap,le=new WeakMap,se=new WeakSet,ce=new WeakMap,pe=new WeakMap,ue=new WeakMap,he=new WeakMap;class de extends f.ReactNextElement{constructor(){super(...arguments),(0,i.A)(this,se),(0,l.A)(this,ae,E(this)),(0,l.A)(this,ne,(z(this),S(this))),(0,l.A)(this,oe,(M(this),T(this))),(0,l.A)(this,ie,(B(this),I(this))),(0,l.A)(this,le,(j(this),N(this))),(0,l.A)(this,ce,(P(this),_(this))),(0,l.A)(this,pe,(R(this),U(this))),(0,l.A)(this,ue,(K(this),L(this))),(0,l.A)(this,he,(H(this),J(this))),(0,o.A)(this,"handleInputChange",(X(this),e=>{(0,c.A)(se,this,C).emit(e)})),(0,o.A)(this,"handleSearch",(e=>{(0,c.A)(se,this,D).emit(e)})),(0,o.A)(this,"handleFocus",(()=>{(0,c.A)(se,this,q).emit()})),(0,o.A)(this,"handleBlur",(()=>{(0,c.A)(se,this,Q).emit()})),(0,o.A)(this,"handleSelect",(e=>{(0,c.A)(se,this,F).emit(e)}))}get value(){return(0,u.A)(ae,this)}set value(e){(0,p.A)(ae,this,e)}get placeholder(){return(0,u.A)(ne,this)}set placeholder(e){(0,p.A)(ne,this,e)}get options(){return(0,u.A)(oe,this)}set options(e){(0,p.A)(oe,this,e)}get tooltipUseBrick(){return(0,u.A)(ie,this)}set tooltipUseBrick(e){(0,p.A)(ie,this,e)}render(){return b().createElement(be,{value:this.value,onInputChange:this.handleInputChange,onSearch:this.handleSearch,onBlur:this.handleBlur,onFocus:this.handleFocus,tooltipUseBrick:this.tooltipUseBrick,placeholder:this.placeholder,onSelect:this.handleSelect,options:this.options})}}function be(e){const{onInputChange:t,onSearch:r,onBlur:a,onFocus:o,tooltipUseBrick:i,placeholder:l,onSelect:s,options:c=[]}=e,{t:p}=(0,w.useTranslation)(y.NS),[u,h]=(0,d.useState)(!1),g=(0,d.useRef)(null),[f,v]=(0,d.useState)(!1),[m,k]=(0,d.useState)(),[E,z]=(0,d.useState)(0),[S,M]=(0,d.useState)(!1),[T,B]=(0,d.useState)(e.value);(0,d.useEffect)((()=>{B(e.value)}),[e.value]),(0,d.useEffect)((()=>{h(!!T)}),[T]);const I=e=>{e.composedPath().some((e=>e===g.current))||v(!1)},j=(0,d.useMemo)((()=>null!=i&&i.useBrick?b().createElement("div",{className:"dropdownMenuItemTooltip",style:{top:E,visibility:S?"visible":"hidden",opacity:S?1:0},onMouseEnter:()=>M(!0),onMouseLeave:()=>M(!1)},b().createElement("div",{className:"useBrickWrapper"},b().createElement(x.ReactUseMultipleBricks,{useBrick:i.useBrick,data:m||{}}))):void 0),[m,i,E,S]);return(0,d.useEffect)((()=>(document.addEventListener("click",I),()=>document.removeEventListener("click",I))),[]),b().createElement("div",{className:"wrapper",ref:g},b().createElement("div",{className:"inputWrapper"},b().createElement("input",{placeholder:l,value:null!=T?T:"",type:"text",onChange:e=>{return r=e.target.value,B(r),t(r),void v(!0);var r},onFocus:()=>{v(!0),o()},onBlur:a,onKeyDown:e=>{"Enter"===e.key&&(v(!1),B(e.target.value),r(e.target.value))}}),b().createElement(te,{className:"searchIcon icon",lib:"antd",icon:"search",theme:"outlined"}),u&&b().createElement(te,{className:"clearIcon icon",onClick:()=>{B(null),t(""),v(!1)},lib:"antd",icon:"close-circle",theme:"filled"})),b().createElement("div",{className:"dropdownWrapper",style:{visibility:f?"visible":"hidden"}},c.length?b().createElement("div",{className:"dropdownMenu"},c.map(((e,t)=>b().createElement("div",{className:"dropdownMenuItem",key:t,onMouseEnter:t=>((e,t)=>{k(t),M(!0);const r=e.target.getBoundingClientRect().top-g.current.getBoundingClientRect().top;z(r)})(t,e),onMouseLeave:()=>M(!1),onClick:()=>{return B((t=e).name),s(t),void v(!1);var t}},b().createElement(te,(0,n.A)({},e.icon,{className:"menuIcon"})),b().createElement("span",{className:"menuTitle"},e.name))))):b().createElement("div",{className:"emptyData"},b().createElement("img",{src:A,alt:p(y.K.EMPTY_DATA)}),b().createElement("span",null,p(y.K.EMPTY_DATA)))),j)}a=de,({e:[E,z,S,M,T,B,I,j,N,C,W,P,_,D,O,R,U,F,Y,K,L,q,G,H,J,Q,V,X],c:[re,k]}=(0,h.A)(a,[Z("data-view.complex-search",{styleTexts:[v.A,m.A]})],[[$(),1,"value"],[$(),1,"placeholder"],[$({attribute:!1}),1,"options"],[$({attribute:!1}),1,"tooltipUseBrick"],[ee({type:"change"}),1,"inputChangeEvent",e=>(0,u.A)(le,e),(e,t)=>(0,p.A)(le,e,t)],[ee({type:"search"}),1,"onSearchEvent",e=>(0,u.A)(ce,e),(e,t)=>(0,p.A)(ce,e,t)],[ee({type:"select"}),1,"onSelectEvent",e=>(0,u.A)(pe,e),(e,t)=>(0,p.A)(pe,e,t)],[ee({type:"focus"}),1,"onFocusEvent",e=>(0,u.A)(ue,e),(e,t)=>(0,p.A)(ue,e,t)],[ee({type:"blur"}),1,"onBlurEvent",e=>(0,u.A)(he,e),(e,t)=>(0,p.A)(he,e,t)]],0,(e=>se.has((0,s.A)(e))),f.ReactNextElement)),k()},69994:(e,t,r)=>{r.d(t,{A:()=>l});var a=r(36758),n=r.n(a),o=r(40935),i=r.n(o)()(n());i.push([e.id,'.wrapper{width:100%;position:relative}.inputWrapper{width:100%;height:32px;position:relative}input{height:100%;line-height:32px;border:none;width:100%;box-sizing:border-box;padding:0 32px;background:var(--color-fill-bg-base-1);border-radius:var(--medius-border-radius);font-size:var(--auxiliary-font-size-small);font-weight:var(--font-weight-400);color:var(--color-normal-text)}input::placeholder{color:var(--color-disabled-text);font-size:var(--auxiliary-font-size-small);font-weight:var(--font-weight-400)}input:not(:disabled):focus{border:none;outline:0}.icon{position:absolute;color:var(--color-normal-text);opacity:0.6}.searchIcon{left:10px;top:6px;font-size:16px}.clearIcon{right:10px;top:7px;font-size:14px}.dropdownWrapper{width:100%;height:336px;margin:5px 0;padding:8px 0;box-sizing:border-box;position:absolute;z-index:900;overflow:auto;background:var(--color-fill-bg-base-1);border-radius:var(--medius-border-radius);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}.emptyData{width:100%;height:100%;display:flex;justify-content:center;align-items:center;flex-direction:column;color:var(--color-disabled-text);gap:20px}.emptyData img{width:62px}.dropdownMenu{overflow-y:auto}.dropdownMenuItem{padding:6px 18px;color:var(--color-normal-text);font-size:var(--auxiliary-font-size-small);font-weight:var(--font-weight-400);display:flex;align-items:center;gap:6px;height:32px;line-height:20px;box-sizing:border-box;cursor:pointer}.menuTitle{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.menuIcon{font-size:20px}.dropdownMenuItem:hover{border-radius:var(--no-border-radius);background:var(--color-fill-bg-container-1)}.dropdownMenuItemTooltip{position:absolute;width:324px;left:-325px;top:0;background:var(--color-fill-bg-base-4);border-radius:var(--medius-border-radius)}.dropdownMenuItemTooltip:before{content:"";position:absolute;top:0;width:100%;height:100%;left:0;background:#282e3a linear-gradient(186deg,rgba(51,102,255,0.3) 0%,rgba(51,102,255,0) 100%);border-radius:4px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.useBrickWrapper{position:relative;min-height:100px;max-height:465px;overflow:auto}',""]);const l=i.toString()},70829:(e,t,r)=>{r.d(t,{A:()=>n});var a=r(12559);function n(e,t){return e.get((0,a.A)(e,t))}},70918:(e,t,r)=>{r.d(t,{A:()=>n});var a=r(72016);function n(e,t,r){(0,a.A)(e,t),t.set(e,r)}},72016:(e,t,r)=>{function a(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}r.d(t,{A:()=>a})},74635:(e,t,r)=>{r.d(t,{A:()=>n});var a=r(72016);function n(e,t){(0,a.A)(e,t),t.add(e)}},79935:(e,t,r)=>{r.d(t,{A:()=>l});var a=r(36758),n=r.n(a),o=r(40935),i=r.n(o)()(n());i.push([e.id,":host{--palette-rgba-white-1:rgba(255,255,255,10%);--palette-rgba-white-2:rgba(255,255,255,20%);--palette-rgba-white-3:rgba(255,255,255,30%);--palette-rgba-white-4:rgba(255,255,255,40%);--palette-rgba-white-5:rgba(255,255,255,50%);--palette-rgba-white-6:rgba(255,255,255,60%);--palette-rgba-white-7:rgba(255,255,255,70%);--palette-rgba-white-8:rgba(255,255,255,80%);--palette-rgba-white-9:rgba(255,255,255,90%);--palette-rgba-white-10:rgba(255,255,255,100%);--palette-rgba-gray-1:rgba(0,0,0,10%);--palette-rgba-gray-2:rgba(0,0,0,20%);--palette-rgba-gray-3:rgba(0,0,0,30%);--palette-rgba-gray-4:rgba(0,0,0,40%);--palette-rgba-gray-5:rgba(0,0,0,50%);--palette-rgba-gray-6:rgba(0,0,0,60%);--palette-rgba-gray-7:rgba(0,0,0,70%);--palette-rgba-gray-8:rgba(0,0,0,80%);--palette-rgba-gray-9:rgba(0,0,0,90%);--palette-rgba-gray-10:rgba(0,0,0,100%);--palette-rgba-blue-gray-2:rgba(101,106,134,20%);--palette-rgba-blue-gray-3:rgba(101,106,134,30%);--palette-rgba-blue-gray-8:rgba(101,106,134,80%);--palette-tech-blue-4-channel:67,127,255;--palette-tech-blue-4:rgb(var(--palette-tech-blue-4-channel));--palette-tech-blue-6-channel:51,102,255;--palette-tech-blue-6:rgb(var(--palette-tech-blue-6-channel));--palette-tech-blue-8-channel:40,69,159;--palette-tech-blue-8:rgb(var(--palette-tech-blue-8-channel));--palette-sea-green-4-channel:131,245,225;--palette-sea-green-4:rgb(var(--palette-sea-green-4-channel));--palette-green-6-channel:81,235,73;--palette-green-6:rgb(var(--palette-green-6-channel));--palette-green-2:rgba(var(--palette-green-6-channel),20%);--palette-lotus-pink-7-channel:204,0,102;--palette-lotus-pink-7:rgb(var(--palette-lotus-pink-7-channel));--palette-red-6-channel:242,39,39;--palette-red-6:rgb(var(--palette-red-6-channel));--palette-red-2:rgba(var(--palette-red-6-channel),20%);--color-fill-global-bg:#0f1014;--color-fill-bg-container-1:var(--palette-rgba-white-1);--color-fill-bg-container-2:var(--palette-rgba-blue-gray-2);--color-fill-bg-container-3:var(--palette-rgba-blue-gray-8);--color-fill-bg-base-1:var(--palette-rgba-blue-gray-2);--color-fill-bg-base-2:rgba(15,16,20,0%);--color-fill-bg-base-3:rgba(0,0,0,20%);--color-fill-bg-base-4:rgba(40,46,58,100%);--color-fill-bg-base-5:rgba(19,25,47,80%);--color-fill-bg-base-6:var(--palette-rgba-blue-gray-3);--color-brand:var(--palette-tech-blue-6);--color-brand-hover:var(--palette-tech-blue-4);--color-brand-active:var(--palette-tech-blue-8);--color-contrast-1:var(--palette-sea-green-4);--color-error:var(--palette-red-6);--color-error-bg:var(--palette-red-2);--color-success:var(--palette-green-6);--color-success-bg:var(--palette-green-2);--color-header-text-big:var(--palette-rgba-white-10);--color-header-text:var(--palette-rgba-white-10);--color-normal-text:var(--palette-rgba-white-10);--color-strong-text:var(--palette-rgba-white-9);--color-auxiliary-text:var(--palette-rgba-white-8);--color-secondary-text:var(--palette-rgba-white-6);--color-disabled-text:var(--palette-rgba-white-4);--color-border-divider-line:var(--palette-rgba-white-1);--color-text-divider-line-1:var(--palette-rgba-white-2);--color-text-divider-line-2:var(--palette-rgba-white-2);--small-border-radius:2px;--medius-border-radius:5px;--larger-border-radius:12px;--container-border-radius:9999px;--no-border-radius:0px;--mask-bg:var(--palette-rgba-gray-7);--title-font-size-larger:30px;--title-font-size-strong:22px;--title-font-size:18px;--normal-font-size:14px;--auxiliary-font-size:16px;--auxiliary-font-size-small:12px;--overview-data-font-size:34px;--statistics-data-font-size:28px;--normal-data-font-size-larger:20px;--normal-data-font-size:16px;--chart-legend-font-size:12px;--chart-tooltips-font-size-1:12px;--chart-tooltips-font-size-2:12px;--chart-axis-x-font-size:12px;--chart-axis-x-font-size-larger:14px;--chart-axis-y-font-size:12px;--chart-axis-y-font-size-larger:14px;--font-weight-600:600;--font-weight-500:500;--font-weight-400:400;--text-shadow:0px 1px 4px #2863ee;--border-width-base:1px;--border-width-double-base:2px;--border-width-tribble-base:3px;--punctate-width-base:1px;--paragraph-width-base:1px;--button-text-color:#40d0db}",""]);const l=i.toString()},86121:(e,t,r)=>{r.d(t,{A:()=>n});var a=r(12559);function n(e,t,r){return e.set((0,a.A)(e,t),r),r}},89575:(e,t,r)=>{function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},a.apply(this,arguments)}r.d(t,{A:()=>a})},98414:(e,t,r)=>{r.d(t,{I:()=>o,K:()=>a,NS:()=>n});let a=function(e){return e.EMPTY_DATA="EMPTY_DATA",e}({});const n="bricks/data-view/complex-search",o={en:{EMPTY_DATA:"Empty data"},zh:{EMPTY_DATA:"空数据"}}}}]);
|
|
2
|
-
//# sourceMappingURL=complex-search.
|
|
1
|
+
"use strict";(globalThis.webpackChunk_next_bricks_data_view=globalThis.webpackChunk_next_bricks_data_view||[]).push([[2052,5994],{5536:(e,t,r)=>{r.d(t,{A:()=>n});var a=r(12559);function n(e,t,r){return r((0,a.A)(e,t))}},11369:(e,t,r)=>{r.d(t,{A:()=>n});var a=r(17545);function n(e){var t=function(e){if("object"!=(0,a.A)(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=(0,a.A)(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==(0,a.A)(t)?t:t+""}},12559:(e,t,r)=>{function a(e,t,r){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:r;throw new TypeError("Private element is not present on this object")}r.d(t,{A:()=>a})},17545:(e,t,r)=>{function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}r.d(t,{A:()=>a})},24586:(e,t,r)=>{r.d(t,{A:()=>n});var a=r(11369);function n(e,t,r){return(t=(0,a.A)(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}},26902:(e,t,r)=>{r.d(t,{A:()=>n});var a=r(17545);function n(e){if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==e?(0,a.A)(e):"null"));return e}},36758:e=>{e.exports=function(e){return e[1]}},40935:e=>{e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var r="",a=void 0!==t[5];return t[4]&&(r+="@supports (".concat(t[4],") {")),t[2]&&(r+="@media ".concat(t[2]," {")),a&&(r+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),r+=e(t),a&&(r+="}"),t[2]&&(r+="}"),t[4]&&(r+="}"),r})).join("")},t.i=function(e,r,a,n,o){"string"==typeof e&&(e=[[null,e,void 0]]);var i={};if(a)for(var l=0;l<this.length;l++){var s=this[l][0];null!=s&&(i[s]=!0)}for(var c=0;c<e.length;c++){var p=[].concat(e[c]);a&&i[p[0]]||(void 0!==o&&(void 0===p[5]||(p[1]="@layer".concat(p[5].length>0?" ".concat(p[5]):""," {").concat(p[1],"}")),p[5]=o),r&&(p[2]?(p[1]="@media ".concat(p[2]," {").concat(p[1],"}"),p[2]=r):p[2]=r),n&&(p[4]?(p[1]="@supports (".concat(p[4],") {").concat(p[1],"}"),p[4]=n):p[4]="".concat(n)),t.push(p))}},t}},41856:(e,t,r)=>{e.exports=r.p+"images/6d954a25.png"},62740:(e,t,r)=>{r.d(t,{A:()=>l});var a=r(17545),n=r(26902);function o(e,t,r){"symbol"==(0,a.A)(t)&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:r?r+" "+t:t})}catch(e){}return e}var i=r(11369);function l(e,t,r,l,s,c){var p,u,h,d,b,g,f,v=Symbol.metadata||Symbol.for("Symbol.metadata"),m=Object.defineProperty,x=Object.create,w=[x(null),x(null)],y=t.length;function A(t,r,a){return function(n,o){r&&(o=n,n=e);for(var i=0;i<t.length;i++)o=t[i].apply(n,a?[o]:[]);return a?o:n}}function k(e,t,r,a){if("function"!=typeof e&&(a||void 0!==e))throw new TypeError(t+" must "+(r||"be")+" a function"+(a?"":" or undefined"));return e}function E(e,t,r,n,i,l,s,c,h,d,b){function g(e){if(!b(e))throw new TypeError("Attempted to access private element on non-instance")}var f=[].concat(t[0]),v=t[3],x=!s,y=1===i,E=3===i,z=4===i,S=2===i;function M(t,r,a){return function(n,o){return r&&(o=n,n=e),a&&a(n),T[t].call(n,o)}}if(!x){var T={},B=[],I=E?"get":z||y?"set":"value";if(h?(d||y?T={get:o((function(){return v(this)}),n,"get"),set:function(e){t[4](this,e)}}:T[I]=v,d||o(T[I],n,S?"":I)):d||(T=Object.getOwnPropertyDescriptor(e,n)),!d&&!h){if((u=w[+c][n])&&7!=(u^i))throw Error("Decorating two elements with the same name ("+T[I].name+") is not supported yet");w[+c][n]=i<3?1:i}}for(var j=e,N=f.length-1;N>=0;N-=r?2:1){var C=k(f[N],"A decorator","be",!0),W=r?f[N-1]:void 0,P={},_={kind:["field","accessor","method","getter","setter","class"][i],name:n,metadata:p,addInitializer:function(e,t){if(e.v)throw Error("attempted to call addInitializer after decoration was finished");k(t,"An initializer","be",!0),l.push(t)}.bind(null,P)};if(x)u=C.call(W,j,_),P.v=1,k(u,"class decorators","return")&&(j=u);else if(_.static=c,_.private=h,u=_.access={has:h?b.bind():function(e){return n in e}},z||(u.get=h?S?function(e){return g(e),T.value}:M("get",0,g):function(e){return e[n]}),S||E||(u.set=h?M("set",0,g):function(e,t){e[n]=t}),j=C.call(W,y?{get:T.get,set:T.set}:T[I],_),P.v=1,y){if("object"==(0,a.A)(j)&&j)(u=k(j.get,"accessor.get"))&&(T.get=u),(u=k(j.set,"accessor.set"))&&(T.set=u),(u=k(j.init,"accessor.init"))&&B.unshift(u);else if(void 0!==j)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else k(j,(d?"field":"method")+" decorators","return")&&(d?B.unshift(j):T[I]=j)}return i<2&&s.push(A(B,c,1),A(l,c,0)),d||x||(h?y?s.splice(-1,0,M("get",c),M("set",c)):s.push(S?T[I]:k.call.bind(T[I])):m(e,n,T)),j}function z(e){return m(e,v,{configurable:!0,enumerable:!0,value:p})}return void 0!==c&&(p=c[v]),p=x(null==p?null:p),b=[],g=function(e){e&&b.push(A(e))},f=function(t,a){for(var o=0;o<r.length;o++){var l=r[o],c=l[1],p=7&c;if((8&c)==t&&!p==a){var u=l[2],g=!!l[3],f=16&c;E(t?e:e.prototype,l,f,g?"#"+u:(0,i.A)(u),p,p<2?[]:t?d=d||[]:h=h||[],b,!!t,g,a,t&&g?function(t){return(0,n.A)(t)===e}:s)}}},f(8,0),f(0,0),f(8,1),f(0,1),g(h),g(d),u=b,y||z(e),{e:u,get c(){var r=[];return y&&[z(e=E(e,[t],l,e.name,5,r)),A(r,1)]}}}},66060:(e,t,r)=>{r.r(t),r.d(t,{ComplexSearch:()=>re,ComplexSearchComponent:()=>be});var a,n=r(89575),o=r(24586),i=r(74635),l=r(70918),s=r(26902),c=r(5536),p=r(86121),u=r(70829),h=r(62740),d=r(18769),b=r.n(d),g=r(7921),f=r(11280),v=r(79935),m=r(69994),x=r(8917),w=r(76822),y=r(98414),A=r(41856);let k,E,z,S,M,T,B,I,j,N,C,W,P,_,D,O,R,U,F,Y,K,L,q,G,H,J,Q,V,X;const{defineElement:Z,property:$,event:ee}=(0,g.createDecorators)();(0,w.initializeReactI18n)(y.NS,y.I);const te=(0,f.wrapBrick)("eo-icon");let re;var ae=new WeakMap,ne=new WeakMap,oe=new WeakMap,ie=new WeakMap,le=new WeakMap,se=new WeakSet,ce=new WeakMap,pe=new WeakMap,ue=new WeakMap,he=new WeakMap;class de extends f.ReactNextElement{constructor(){super(...arguments),(0,i.A)(this,se),(0,l.A)(this,ae,E(this)),(0,l.A)(this,ne,(z(this),S(this))),(0,l.A)(this,oe,(M(this),T(this))),(0,l.A)(this,ie,(B(this),I(this))),(0,l.A)(this,le,(j(this),N(this))),(0,l.A)(this,ce,(P(this),_(this))),(0,l.A)(this,pe,(R(this),U(this))),(0,l.A)(this,ue,(K(this),L(this))),(0,l.A)(this,he,(H(this),J(this))),(0,o.A)(this,"handleInputChange",(X(this),e=>{(0,c.A)(se,this,C).emit(e)})),(0,o.A)(this,"handleSearch",(e=>{(0,c.A)(se,this,D).emit(e)})),(0,o.A)(this,"handleFocus",(()=>{(0,c.A)(se,this,q).emit()})),(0,o.A)(this,"handleBlur",(()=>{(0,c.A)(se,this,Q).emit()})),(0,o.A)(this,"handleSelect",(e=>{(0,c.A)(se,this,F).emit(e)}))}get value(){return(0,u.A)(ae,this)}set value(e){(0,p.A)(ae,this,e)}get placeholder(){return(0,u.A)(ne,this)}set placeholder(e){(0,p.A)(ne,this,e)}get options(){return(0,u.A)(oe,this)}set options(e){(0,p.A)(oe,this,e)}get tooltipUseBrick(){return(0,u.A)(ie,this)}set tooltipUseBrick(e){(0,p.A)(ie,this,e)}render(){return b().createElement(be,{value:this.value,onInputChange:this.handleInputChange,onSearch:this.handleSearch,onBlur:this.handleBlur,onFocus:this.handleFocus,tooltipUseBrick:this.tooltipUseBrick,placeholder:this.placeholder,onSelect:this.handleSelect,options:this.options})}}function be(e){const{onInputChange:t,onSearch:r,onBlur:a,onFocus:o,tooltipUseBrick:i,placeholder:l,onSelect:s,options:c=[]}=e,{t:p}=(0,w.useTranslation)(y.NS),[u,h]=(0,d.useState)(!1),g=(0,d.useRef)(null),[f,v]=(0,d.useState)(!1),[m,k]=(0,d.useState)(),[E,z]=(0,d.useState)(0),[S,M]=(0,d.useState)(!1),[T,B]=(0,d.useState)(e.value);(0,d.useEffect)((()=>{B(e.value)}),[e.value]),(0,d.useEffect)((()=>{h(!!T)}),[T]);const I=e=>{e.composedPath().some((e=>e===g.current))||v(!1)},j=(0,d.useMemo)((()=>null!=i&&i.useBrick?b().createElement("div",{className:"dropdownMenuItemTooltip",style:{top:E,visibility:S?"visible":"hidden",opacity:S?1:0},onMouseEnter:()=>M(!0),onMouseLeave:()=>M(!1)},b().createElement("div",{className:"useBrickWrapper"},b().createElement(x.ReactUseMultipleBricks,{useBrick:i.useBrick,data:m||{}}))):void 0),[m,i,E,S]);return(0,d.useEffect)((()=>(document.addEventListener("click",I),()=>document.removeEventListener("click",I))),[]),b().createElement("div",{className:"wrapper",ref:g},b().createElement("div",{className:"inputWrapper"},b().createElement("input",{placeholder:l,value:null!=T?T:"",type:"text",onChange:e=>{return r=e.target.value,B(r),t(r),void v(!0);var r},onFocus:()=>{v(!0),o()},onBlur:a,onKeyDown:e=>{"Enter"===e.key&&(v(!1),B(e.target.value),r(e.target.value))}}),b().createElement(te,{className:"searchIcon icon",lib:"antd",icon:"search",theme:"outlined"}),u&&b().createElement(te,{className:"clearIcon icon",onClick:()=>{B(null),t(""),v(!1)},lib:"antd",icon:"close-circle",theme:"filled"})),b().createElement("div",{className:"dropdownWrapper",style:{visibility:f?"visible":"hidden"}},c.length?b().createElement("div",{className:"dropdownMenu"},c.map(((e,t)=>b().createElement("div",{className:"dropdownMenuItem",key:t,onMouseEnter:t=>((e,t)=>{k(t),M(!0);const r=e.target.getBoundingClientRect().top-g.current.getBoundingClientRect().top;z(r)})(t,e),onMouseLeave:()=>M(!1),onClick:()=>{return B((t=e).name),s(t),void v(!1);var t}},b().createElement(te,(0,n.A)({},e.icon,{className:"menuIcon"})),b().createElement("span",{className:"menuTitle"},e.name))))):b().createElement("div",{className:"emptyData"},b().createElement("img",{src:A,alt:p(y.K.EMPTY_DATA)}),b().createElement("span",null,p(y.K.EMPTY_DATA)))),j)}a=de,({e:[E,z,S,M,T,B,I,j,N,C,W,P,_,D,O,R,U,F,Y,K,L,q,G,H,J,Q,V,X],c:[re,k]}=(0,h.A)(a,[Z("data-view.complex-search",{styleTexts:[v.A,m.A]})],[[$(),1,"value"],[$(),1,"placeholder"],[$({attribute:!1}),1,"options"],[$({attribute:!1}),1,"tooltipUseBrick"],[ee({type:"change"}),1,"inputChangeEvent",e=>(0,u.A)(le,e),(e,t)=>(0,p.A)(le,e,t)],[ee({type:"search"}),1,"onSearchEvent",e=>(0,u.A)(ce,e),(e,t)=>(0,p.A)(ce,e,t)],[ee({type:"select"}),1,"onSelectEvent",e=>(0,u.A)(pe,e),(e,t)=>(0,p.A)(pe,e,t)],[ee({type:"focus"}),1,"onFocusEvent",e=>(0,u.A)(ue,e),(e,t)=>(0,p.A)(ue,e,t)],[ee({type:"blur"}),1,"onBlurEvent",e=>(0,u.A)(he,e),(e,t)=>(0,p.A)(he,e,t)]],0,(e=>se.has((0,s.A)(e))),f.ReactNextElement)),k()},69994:(e,t,r)=>{r.d(t,{A:()=>l});var a=r(36758),n=r.n(a),o=r(40935),i=r.n(o)()(n());i.push([e.id,'.wrapper{width:100%;position:relative}.inputWrapper{width:100%;height:32px;position:relative}input{height:100%;line-height:32px;border:none;width:100%;box-sizing:border-box;padding:0 32px;background:var(--color-fill-bg-base-1);border-radius:var(--medius-border-radius);font-size:var(--auxiliary-font-size-small);font-weight:var(--font-weight-400);color:var(--color-normal-text)}input::placeholder{color:var(--color-disabled-text);font-size:var(--auxiliary-font-size-small);font-weight:var(--font-weight-400)}input:not(:disabled):focus{border:none;outline:0}.icon{position:absolute;color:var(--color-normal-text);opacity:0.6}.searchIcon{left:10px;top:6px;font-size:16px}.clearIcon{right:10px;top:7px;font-size:14px}.dropdownWrapper{width:100%;height:336px;margin:5px 0;padding:8px 0;box-sizing:border-box;position:absolute;z-index:900;overflow:auto;background:var(--color-fill-bg-base-1);border-radius:var(--medius-border-radius);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}.emptyData{width:100%;height:100%;display:flex;justify-content:center;align-items:center;flex-direction:column;color:var(--color-disabled-text);gap:20px}.emptyData img{width:62px}.dropdownMenu{overflow-y:auto}.dropdownMenuItem{padding:6px 18px;color:var(--color-normal-text);font-size:var(--auxiliary-font-size-small);font-weight:var(--font-weight-400);display:flex;align-items:center;gap:6px;height:32px;line-height:20px;box-sizing:border-box;cursor:pointer}.menuTitle{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.menuIcon{font-size:20px}.dropdownMenuItem:hover{border-radius:var(--no-border-radius);background:var(--color-fill-bg-container-1)}.dropdownMenuItemTooltip{position:absolute;width:324px;left:-325px;top:0;background:var(--color-fill-bg-base-4);border-radius:var(--medius-border-radius)}.dropdownMenuItemTooltip:before{content:"";position:absolute;top:0;width:100%;height:100%;left:0;background:#282e3a linear-gradient(186deg,rgba(51,102,255,0.3) 0%,rgba(51,102,255,0) 100%);border-radius:4px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.useBrickWrapper{position:relative;min-height:100px;max-height:465px;overflow:auto}',""]);const l=i.toString()},70829:(e,t,r)=>{r.d(t,{A:()=>n});var a=r(12559);function n(e,t){return e.get((0,a.A)(e,t))}},70918:(e,t,r)=>{r.d(t,{A:()=>n});var a=r(72016);function n(e,t,r){(0,a.A)(e,t),t.set(e,r)}},72016:(e,t,r)=>{function a(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}r.d(t,{A:()=>a})},74635:(e,t,r)=>{r.d(t,{A:()=>n});var a=r(72016);function n(e,t){(0,a.A)(e,t),t.add(e)}},79935:(e,t,r)=>{r.d(t,{A:()=>l});var a=r(36758),n=r.n(a),o=r(40935),i=r.n(o)()(n());i.push([e.id,":host{--palette-rgba-white-1:rgba(255,255,255,10%);--palette-rgba-white-2:rgba(255,255,255,20%);--palette-rgba-white-3:rgba(255,255,255,30%);--palette-rgba-white-4:rgba(255,255,255,40%);--palette-rgba-white-5:rgba(255,255,255,50%);--palette-rgba-white-6:rgba(255,255,255,60%);--palette-rgba-white-7:rgba(255,255,255,70%);--palette-rgba-white-8:rgba(255,255,255,80%);--palette-rgba-white-9:rgba(255,255,255,90%);--palette-rgba-white-10:rgba(255,255,255,100%);--palette-rgba-gray-1:rgba(0,0,0,10%);--palette-rgba-gray-2:rgba(0,0,0,20%);--palette-rgba-gray-3:rgba(0,0,0,30%);--palette-rgba-gray-4:rgba(0,0,0,40%);--palette-rgba-gray-5:rgba(0,0,0,50%);--palette-rgba-gray-6:rgba(0,0,0,60%);--palette-rgba-gray-7:rgba(0,0,0,70%);--palette-rgba-gray-8:rgba(0,0,0,80%);--palette-rgba-gray-9:rgba(0,0,0,90%);--palette-rgba-gray-10:rgba(0,0,0,100%);--palette-rgba-blue-gray-2:rgba(101,106,134,20%);--palette-rgba-blue-gray-3:rgba(101,106,134,30%);--palette-rgba-blue-gray-8:rgba(101,106,134,80%);--palette-tech-blue-4-channel:67,127,255;--palette-tech-blue-4:rgb(var(--palette-tech-blue-4-channel));--palette-tech-blue-6-channel:51,102,255;--palette-tech-blue-6:rgb(var(--palette-tech-blue-6-channel));--palette-tech-blue-8-channel:40,69,159;--palette-tech-blue-8:rgb(var(--palette-tech-blue-8-channel));--palette-sea-green-4-channel:131,245,225;--palette-sea-green-4:rgb(var(--palette-sea-green-4-channel));--palette-green-6-channel:81,235,73;--palette-green-6:rgb(var(--palette-green-6-channel));--palette-green-2:rgba(var(--palette-green-6-channel),20%);--palette-lotus-pink-7-channel:204,0,102;--palette-lotus-pink-7:rgb(var(--palette-lotus-pink-7-channel));--palette-red-6-channel:242,39,39;--palette-red-6:rgb(var(--palette-red-6-channel));--palette-red-2:rgba(var(--palette-red-6-channel),20%);--color-fill-global-bg:#0f1014;--color-fill-bg-container-1:var(--palette-rgba-white-1);--color-fill-bg-container-2:var(--palette-rgba-blue-gray-2);--color-fill-bg-container-3:var(--palette-rgba-blue-gray-8);--color-fill-bg-base-1:var(--palette-rgba-blue-gray-2);--color-fill-bg-base-2:rgba(15,16,20,0%);--color-fill-bg-base-3:rgba(0,0,0,20%);--color-fill-bg-base-4:rgba(40,46,58,100%);--color-fill-bg-base-5:rgba(19,25,47,80%);--color-fill-bg-base-6:var(--palette-rgba-blue-gray-3);--color-brand:var(--palette-tech-blue-6);--color-brand-hover:var(--palette-tech-blue-4);--color-brand-active:var(--palette-tech-blue-8);--color-contrast-1:var(--palette-sea-green-4);--color-error:var(--palette-red-6);--color-error-bg:var(--palette-red-2);--color-success:var(--palette-green-6);--color-success-bg:var(--palette-green-2);--color-header-text-big:var(--palette-rgba-white-10);--color-header-text:var(--palette-rgba-white-10);--color-normal-text:var(--palette-rgba-white-10);--color-strong-text:var(--palette-rgba-white-9);--color-auxiliary-text:var(--palette-rgba-white-8);--color-secondary-text:var(--palette-rgba-white-6);--color-disabled-text:var(--palette-rgba-white-4);--color-border-divider-line:var(--palette-rgba-white-1);--color-text-divider-line-1:var(--palette-rgba-white-2);--color-text-divider-line-2:var(--palette-rgba-white-2);--small-border-radius:2px;--medius-border-radius:5px;--larger-border-radius:12px;--container-border-radius:9999px;--no-border-radius:0px;--mask-bg:var(--palette-rgba-gray-7);--title-font-size-larger:30px;--title-font-size-strong:22px;--title-font-size:18px;--normal-font-size:14px;--auxiliary-font-size:16px;--auxiliary-font-size-small:12px;--overview-data-font-size:34px;--statistics-data-font-size:28px;--normal-data-font-size-larger:20px;--normal-data-font-size:16px;--chart-legend-font-size:12px;--chart-tooltips-font-size-1:12px;--chart-tooltips-font-size-2:12px;--chart-axis-x-font-size:12px;--chart-axis-x-font-size-larger:14px;--chart-axis-y-font-size:12px;--chart-axis-y-font-size-larger:14px;--font-weight-600:600;--font-weight-500:500;--font-weight-400:400;--text-shadow:0px 1px 4px #2863ee;--border-width-base:1px;--border-width-double-base:2px;--border-width-tribble-base:3px;--punctate-width-base:1px;--paragraph-width-base:1px;--button-text-color:#40d0db}",""]);const l=i.toString()},86121:(e,t,r)=>{r.d(t,{A:()=>n});var a=r(12559);function n(e,t,r){return e.set((0,a.A)(e,t),r),r}},89575:(e,t,r)=>{function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},a.apply(this,arguments)}r.d(t,{A:()=>a})},98414:(e,t,r)=>{r.d(t,{I:()=>o,K:()=>a,NS:()=>n});let a=function(e){return e.EMPTY_DATA="EMPTY_DATA",e}({});const n="bricks/data-view/complex-search",o={en:{EMPTY_DATA:"Empty data"},zh:{EMPTY_DATA:"空数据"}}}}]);
|
|
2
|
+
//# sourceMappingURL=complex-search.92e0b5ca.js.map
|