@icos-desktop/react-components 2.2.14 → 2.3.0

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.
@@ -1,9 +1,5 @@
1
1
  import React, { ReactNode } from 'react';
2
2
  import { ButtonProps, SelectProps, TableProps, TreeSelectProps, ModalProps, CascaderProps } from '@xirang/design-antd';
3
- import { ContextMenuKey as ContextMenuKey$2 } from '@/components/BookTable/BookTable.types';
4
- import { ContextMenuKey as ContextMenuKey$3 } from '@/components/SenseTable/SenseTable.types';
5
- import { VideoPlayerProps as VideoPlayerProps$1 } from '@/components/VideoPlayer';
6
- import { IcosDesktopType } from '@/global';
7
3
 
8
4
  interface BookDetailProps {
9
5
  /**
@@ -195,7 +191,7 @@ interface BookSelectProps extends SelectProps {
195
191
 
196
192
  declare const BookSelect: React.FC<BookSelectProps>;
197
193
 
198
- type ContextMenuKey$1 = 'create' | 'tagConfig' | 'show' | 'delete' | 'attribute' | 'export' | 'share';
194
+ type ContextMenuKey$3 = 'create' | 'tagConfig' | 'show' | 'delete' | 'attribute' | 'export' | 'share';
199
195
  interface BookTableProps extends TableProps {
200
196
  /**
201
197
  * 表头配置
@@ -233,7 +229,7 @@ interface BookTableProps extends TableProps {
233
229
  /**
234
230
  * 台账功能
235
231
  */
236
- contextMenuConfig?: ContextMenuKey$1[];
232
+ contextMenuConfig?: ContextMenuKey$3[];
237
233
  /**
238
234
  * 双击台账
239
235
  * @param record
@@ -707,6 +703,17 @@ interface SenseFormRef {
707
703
 
708
704
  declare const SenseForm: React.ForwardRefExoticComponent<SenseFormProps & React.RefAttributes<SenseFormRef>>;
709
705
 
706
+ type ContextMenuKey$2 =
707
+ | 'create'
708
+ | 'tagConfig'
709
+ | 'show'
710
+ | 'delete'
711
+ | 'attribute'
712
+ | 'export'
713
+ | 'share';
714
+
715
+ type ContextMenuKey$1 = 'show' | 'edit' | 'cut' | 'copy' | 'delete';
716
+
710
717
  interface CustomButtonConfig extends ButtonProps {
711
718
  title: string;
712
719
  }
@@ -778,7 +785,7 @@ interface SenseFullTableProps {
778
785
  /**
779
786
  * 实体记录功能,可选项:`show` 查看, `edit` 编辑, `cut` 剪切, `copy` 复制, `delete` 删除
780
787
  */
781
- senseContextMenuConfig?: ContextMenuKey$3[];
788
+ senseContextMenuConfig?: ContextMenuKey$1[];
782
789
  /**
783
790
  * 扩展列参数,目前仅支持实体列表
784
791
  */
@@ -1448,7 +1455,19 @@ type TagTreeSelectProps = TreeSelectProps;
1448
1455
 
1449
1456
  declare const TagTreeSelect: React.FC<TagTreeSelectProps>;
1450
1457
 
1451
- interface VideoControlProps extends VideoPlayerProps$1 {
1458
+ interface VideoControlProps {
1459
+ /**
1460
+ * 实体唯一编码,用于视频控制
1461
+ */
1462
+ senseGlobalCode?: string;
1463
+ /**
1464
+ * 视频通道 id
1465
+ */
1466
+ channelId?: string;
1467
+ /**
1468
+ * 视频源类型
1469
+ */
1470
+ videoStreamSource?: 'cityeyes' | 'hikvision' | 'custom';
1452
1471
  /**
1453
1472
  * 禁用云台控制
1454
1473
  */
@@ -1461,6 +1480,10 @@ interface VideoControlProps extends VideoPlayerProps$1 {
1461
1480
  * 操作按钮边框颜色
1462
1481
  */
1463
1482
  operateIconBorderColor?: string;
1483
+ /**
1484
+ * 可注入的播放器节点(用于打破循环依赖)
1485
+ */
1486
+ player?: React.ReactNode;
1464
1487
  }
1465
1488
 
1466
1489
  declare const VideoControl: (props: VideoControlProps) => React.JSX.Element;
@@ -1523,6 +1546,180 @@ declare const CcosVideoPlayer: {
1523
1546
  settings: ComponentPrototype;
1524
1547
  };
1525
1548
 
1549
+ // ------ settings ------
1550
+ // 属性描述
1551
+ interface ComponentPropType {
1552
+ // 属性的名称
1553
+ name: string;
1554
+ // 属性的标题
1555
+ title: string;
1556
+ // 如果是对象属性,这里声明子属性列表
1557
+ props?: ComponentPropType[];
1558
+ // 属性的选项
1559
+ options?: any[];
1560
+ // 属性的文档地址
1561
+ docs?: string;
1562
+ // 如果没提供 initValue, 是否自动初始化值,默认值 false
1563
+ autoInitValue?: boolean;
1564
+ // 组件的内置默认值
1565
+ defaultValue?: any;
1566
+ // 是否禁用变量设置器,默认值 false
1567
+ disableVariableSetter?: boolean;
1568
+ // 动态设置属性,覆盖已有的 prop 对象
1569
+ getProp?: (form) => any;
1570
+ // 动态设置属性,覆盖已有的 setterProps 对象
1571
+ getSetterProps?: (form) => any;
1572
+ // 动态设置表单项是否展示
1573
+ getVisible?: (form) => boolean;
1574
+ // 属性的分组
1575
+ group?: 'basic' | 'event' | 'style' | 'advanced';
1576
+ // 首次拖拽后用来初始化组件的属性值
1577
+ initValue?: any;
1578
+ // 属性的占位符
1579
+ placeholder?: string;
1580
+ // 属性的设置器
1581
+ setter?: SetterType;
1582
+ // 设置器的属性设置
1583
+ setterProps?: any;
1584
+ // 属性的提示
1585
+ tips?: string;
1586
+ }
1587
+
1588
+ // 设置器枚举
1589
+ type SetterType =
1590
+ // 接收值类型: number
1591
+ // 说明和示例: 数字值设置器
1592
+ | 'numberSetter'
1593
+ // 接收值类型: string
1594
+ // 说明和示例: 文本值设置器
1595
+ | 'textSetter'
1596
+ // 接收值类型: boolean
1597
+ // 说明和示例: true或false
1598
+ | 'boolSetter'
1599
+ // 接收值类型: string
1600
+ // 说明和示例: 单选列表,多选一
1601
+ | 'choiceSetter'
1602
+ // 接收值类型: string
1603
+ // 说明和示例: 下拉选择器,多选一
1604
+ | 'selectSetter'
1605
+ // 接收值类型: object[]
1606
+ // 说明和示例: [{ key, label, ...}, ...]
1607
+ | 'actionListSetter'
1608
+ // 接收值类型: object[]
1609
+ // 说明和示例: 表格列设置器[{ key, dataIndex, title, ... }, ...]
1610
+ | 'columnSetter'
1611
+ // 接收值类型: string
1612
+ // 说明和示例: 日期值设置器
1613
+ | 'dateSetter'
1614
+ // 接收值类型: string[]
1615
+ // 说明和示例: 日期范围设置器
1616
+ | 'dateRangeSetter'
1617
+ // 接收值类型: string
1618
+ // 说明和示例: 时间值设置器
1619
+ | 'timeSetter'
1620
+ // 接收值类型: string[]
1621
+ // 说明和示例: 时间范围设置器
1622
+ | 'timeRangeSetter'
1623
+ // 接收值类型: object
1624
+ // 说明和示例: 枚举对象{ key1, key2, key3 }
1625
+ | 'enumSetter'
1626
+ // 接收值类型: object[]
1627
+ // 说明和示例: 通用的对象列表设置器,[{ key }, ...]
1628
+ | 'listSetter'
1629
+ // 接收值类型: object[]
1630
+ // 说明和示例: 选项列表设置器,[{ label, value }, ...]
1631
+ | 'optionSetter'
1632
+ // 接收值类型: string
1633
+ // 说明和示例: 路由设置器
1634
+ | 'routerSetter'
1635
+ // 接收值类型: code
1636
+ // 说明和示例: 通用的代码片段设置器
1637
+ | 'codeSetter'
1638
+ // 接收值类型: code
1639
+ // 说明和示例: 事件监听函数设置器,() => {}
1640
+ | 'eventSetter'
1641
+ // 接收值类型: code
1642
+ // 说明和示例: JSON 表达式设置器,{ "foo": "foo" }
1643
+ | 'jsonSetter'
1644
+ // 接收值类型: code
1645
+ // 说明和示例: JSX 设置器,<div>block</div>
1646
+ | 'jsxSetter'
1647
+ // 接收值类型: code
1648
+ // 说明和示例: render props 设置器,() => <div></div>
1649
+ | 'renderPropsSetter'
1650
+ // 接收值类型: code
1651
+ // 说明和示例: 表格单元格设置器
1652
+ | 'tableCellSetter'
1653
+ // 接收值类型: code
1654
+ // 说明和示例: 表格展开设置器
1655
+ | 'tableExpandableSetter'
1656
+ // 接收值类型: string
1657
+ // 说明和示例: 颜色选择器
1658
+ | 'colorSetter';
1659
+
1660
+ // 规则
1661
+ interface ComponentDndRulesType {
1662
+ // 当前组件 是否可以被拖拽
1663
+ canDrag?: () => boolean;
1664
+ // 当前节点 是否可以拖拽到目标节点中
1665
+ canDrop?: (targetName) => boolean;
1666
+ // 进来的节点 是否可以落进来,仅适用于容器节点
1667
+ canMoveIn?: (incomingName) => boolean;
1668
+ // 被拖拽的节点 是否可以被拖离当前节点,仅适用于容器节点
1669
+ canMoveOut?: (outgoingName) => boolean;
1670
+ // 子节点的容器选择器,用于快速定位子节点容器,适合组件存在多个可搭建区域时使用
1671
+ childrenContainerSelector?: string;
1672
+ }
1673
+
1674
+ // ------ icos desktop ------
1675
+ // window._ICOS_DESKTOP_
1676
+ interface IcosDesktopType {
1677
+ // 知识体系编码映射
1678
+ ksCodeMap?: EntityAPI.KsCodeMap;
1679
+ // 实体分类列表
1680
+ entityClassList?: EntityAPI.EntityClassItem[];
1681
+ // 接口前缀
1682
+ apiPrefix?: string;
1683
+ }
1684
+
1685
+ // ------ global ------
1686
+ declare global {
1687
+ // 单个组件描述
1688
+ interface ComponentPrototype {
1689
+ // 组件的名称
1690
+ name: string;
1691
+ // 组件的标题
1692
+ title: string;
1693
+ // 组件的包名,或引入路径
1694
+ package: string;
1695
+ // 组件的描述信息
1696
+ description?: string;
1697
+ // 组件的文档地址
1698
+ docs?: string;
1699
+ // 组件的图标,图片地址或 iconfont 图标名
1700
+ icon?: string;
1701
+ // 组件的导出类型
1702
+ exportType: 'defaultExport' | 'namedExport';
1703
+ // 是否有子组件,默认值 false
1704
+ hasChildren?: boolean;
1705
+ // 子组件内容,适合编组的组件
1706
+ childrenNames?: string[];
1707
+ // 组件的类型,默认值 block
1708
+ type?: 'page' | 'container' | 'placeholder' | 'element' | 'snippet' | 'block';
1709
+ // 组件的属性描述
1710
+ props?: ComponentPropType[];
1711
+ // 组件的相关引入
1712
+ relatedImports?: string[];
1713
+ // 组件的规则
1714
+ rules?: ComponentDndRulesType;
1715
+ }
1716
+
1717
+ interface Window {
1718
+ _ICOS_DESKTOP_?: IcosDesktopType;
1719
+ _ICOS_DESKTOP_VERSION_?: string;
1720
+ }
1721
+ }
1722
+
1526
1723
  type Config = Pick<IcosDesktopType, 'apiPrefix'>;
1527
1724
  declare const setCconfig: (config: Config) => void;
1528
1725
 
@@ -132,7 +132,7 @@ var request = createRequest({
132
132
  return config;
133
133
  },
134
134
  responseInterceptor: function (response) {
135
- var responseType = response.config.responseType;
135
+ var responseType = (response.config || {}).responseType;
136
136
  if (responseType === 'blob') {
137
137
  return __assign(__assign({}, response), { data: {
138
138
  code: 0,
@@ -7548,57 +7548,10 @@ styleInject(css_248z$m);
7548
7548
 
7549
7549
  var VideoControl = function (props) {
7550
7550
  var _a;
7551
- var libsPath = props.libsPath, url = props.url, senseGlobalCode = props.senseGlobalCode, channelId = props.channelId, videoPlayerType = props.videoPlayerType, videoStreamSource = props.videoStreamSource, disabled = props.disabled, operationIconColor = props.operationIconColor, operateIconBorderColor = props.operateIconBorderColor;
7551
+ var senseGlobalCode = props.senseGlobalCode, channelId = props.channelId, videoStreamSource = props.videoStreamSource, disabled = props.disabled, operationIconColor = props.operationIconColor, operateIconBorderColor = props.operateIconBorderColor, player = props.player;
7552
7552
  var _b = message.useMessage(), messageApi = _b[0], contextHolder = _b[1];
7553
7553
  // 云台速度
7554
7554
  var _c = useState(40), speed = _c[0], setSpeed = _c[1];
7555
- /**
7556
- * TODO:复制自 VideoPlayer,逻辑待抽离
7557
- * 视频播放器需要参数 url 和 videoPlayerType
7558
- * 指定 url 时直接使用 url,还需指定 videoPlayerType
7559
- * 指定 channelId 和 videoStreamSource 时,通过接口获取 url,还需指定 videoPlayerType
7560
- * 指定 senseGlobalCode 时,通过接口获取 url 和 videoPlayerType
7561
- */
7562
- var data = useRequest(function () { return __awaiter(void 0, void 0, void 0, function () {
7563
- var _url, res, _url;
7564
- var _a;
7565
- return __generator(this, function (_b) {
7566
- switch (_b.label) {
7567
- case 0:
7568
- if (url) {
7569
- return [2 /*return*/, { url: url, senseGlobalCode: senseGlobalCode, channelId: channelId, videoPlayerType: videoPlayerType, videoStreamSource: videoStreamSource }];
7570
- }
7571
- if (!(channelId && videoStreamSource)) return [3 /*break*/, 2];
7572
- return [4 /*yield*/, getRealtimeVideoUrl({ channelId: channelId, videoStreamSource: videoStreamSource, streamType: 0 })];
7573
- case 1:
7574
- _url = _b.sent();
7575
- return [2 /*return*/, { url: _url, senseGlobalCode: senseGlobalCode, channelId: channelId, videoPlayerType: videoPlayerType, videoStreamSource: videoStreamSource }];
7576
- case 2:
7577
- if (!senseGlobalCode) return [3 /*break*/, 5];
7578
- return [4 /*yield*/, getEntityContentConfig({ senseGlobalCode: senseGlobalCode })];
7579
- case 3:
7580
- res = _b.sent();
7581
- if (!((_a = res === null || res === void 0 ? void 0 : res.videoDataConfig) === null || _a === void 0 ? void 0 : _a.channelId)) return [3 /*break*/, 5];
7582
- return [4 /*yield*/, getRealtimeVideoUrl({
7583
- channelId: res.videoDataConfig.channelId,
7584
- videoStreamSource: res.videoDataConfig.videoStreamSource,
7585
- streamType: 0,
7586
- })];
7587
- case 4:
7588
- _url = _b.sent();
7589
- return [2 /*return*/, {
7590
- url: _url,
7591
- senseGlobalCode: senseGlobalCode,
7592
- channelId: res.videoDataConfig.channelId,
7593
- videoPlayerType: res.videoDataConfig.videoPlayerType,
7594
- videoStreamSource: res.videoDataConfig.videoStreamSource,
7595
- }];
7596
- case 5: return [2 /*return*/];
7597
- }
7598
- });
7599
- }); }, {
7600
- refreshDeps: [url, senseGlobalCode, channelId, videoPlayerType, videoStreamSource],
7601
- }).data;
7602
7555
  // 操作云台
7603
7556
  var handleControl = function (command) { return __awaiter(void 0, void 0, void 0, function () {
7604
7557
  var res;
@@ -7629,8 +7582,7 @@ var VideoControl = function (props) {
7629
7582
  document.documentElement.style.setProperty('--video-control-operate-icon-border-color', typeof operateIconBorderColor !== 'undefined' ? operateIconBorderColor : '#18C7F2');
7630
7583
  });
7631
7584
  return (React__default.createElement("div", { className: styles$m.container },
7632
- React__default.createElement("div", { className: styles$m.player },
7633
- React__default.createElement(VideoPlayer, __assign({ libsPath: libsPath }, data))),
7585
+ React__default.createElement("div", { className: styles$m.player }, player),
7634
7586
  React__default.createElement(SvgLine$1, null),
7635
7587
  React__default.createElement("div", { className: classNames(styles$m.control, (_a = {}, _a[styles$m['control-disabled']] = disabled, _a)) },
7636
7588
  React__default.createElement("div", { className: styles$m.title }, "\u4E91\u53F0\u64CD\u63A7"),
@@ -7669,16 +7621,6 @@ var VideoControl = function (props) {
7669
7621
  contextHolder));
7670
7622
  };
7671
7623
 
7672
- var css_248z$l = "";
7673
- var styles$l = {};
7674
- styleInject(css_248z$l);
7675
-
7676
- var Control = function (props) {
7677
- var open = props.open, onCancel = props.onCancel;
7678
- return (React__default.createElement(Modal$1, { width: 800, open: open, title: "\u4E91\u53F0\u63A7\u5236", onCancel: onCancel, cancelText: "\u5173\u95ED", okButtonProps: { style: { display: 'none' } }, className: styles$l.container, destroyOnHidden: true },
7679
- React__default.createElement(VideoControl, __assign({}, omit(props, ['open', 'onCancel'])))));
7680
- };
7681
-
7682
7624
  var Cityeyes = function (_a) {
7683
7625
  var url = _a.url, libPath = _a.libPath;
7684
7626
  var status = useExternal(libPath, { type: 'js' });
@@ -7746,6 +7688,16 @@ var Player = function (props) {
7746
7688
  }
7747
7689
  };
7748
7690
 
7691
+ var css_248z$l = "";
7692
+ var styles$l = {};
7693
+ styleInject(css_248z$l);
7694
+
7695
+ var Control = function (props) {
7696
+ var open = props.open, onCancel = props.onCancel;
7697
+ return (React__default.createElement(Modal$1, { width: 800, open: open, title: "\u4E91\u53F0\u63A7\u5236", onCancel: onCancel, cancelText: "\u5173\u95ED", okButtonProps: { style: { display: 'none' } }, className: styles$l.container, destroyOnHidden: true },
7698
+ React__default.createElement(VideoControl, __assign({}, omit(props, ['open', 'onCancel']), { player: React__default.createElement(Player, { libsPath: props.libsPath, videoPlayerType: props.videoPlayerType, url: props.url, width: 800, height: 450 }) }))));
7699
+ };
7700
+
7749
7701
  var css_248z$k = ".VideoPlayer-module_container__Afx8w {\n position: relative;\n width: 100%;\n height: 100%;\n}\n.VideoPlayer-module_container__Afx8w * {\n box-sizing: border-box;\n}\n.VideoPlayer-module_container__Afx8w .VideoPlayer-module_control__BUSKK {\n position: absolute;\n top: 16px;\n right: 8px;\n z-index: 999;\n display: flex;\n column-gap: 4px;\n padding: 4px 12px;\n font-size: 16px;\n font-weight: 400;\n color: #fff;\n cursor: pointer;\n background: linear-gradient(0deg, rgba(0, 255, 255, 0.3) 0%, rgba(0, 255, 255, 0.3) 100%), rgba(0, 43, 102, 0.4);\n border: 1px solid rgba(0, 255, 255, 0.6);\n border-radius: 2px;\n backdrop-filter: blur(2px);\n}\n";
7750
7702
  var styles$k = {"container":"VideoPlayer-module_container__Afx8w","control":"VideoPlayer-module_control__BUSKK"};
7751
7703
  styleInject(css_248z$k);
@@ -7816,7 +7768,7 @@ var VideoPlayer = function (props) {
7816
7768
  data.ptzControl ? (React__default.createElement("div", { className: styles$k.control, onClick: handleOpenControl },
7817
7769
  React__default.createElement(FullscreenOutlined, null),
7818
7770
  React__default.createElement("span", null, "\u8BBE\u5907\u63A7\u5236"))) : null,
7819
- data.ptzControl ? (React__default.createElement(Control, __assign({ open: openControl, onCancel: handleCloseControl, libsPath: libsPath }, data))) : null));
7771
+ data.ptzControl ? (React__default.createElement(Control, __assign({ open: openControl, onCancel: handleCloseControl }, props, data))) : null));
7820
7772
  };
7821
7773
 
7822
7774
  var css_248z$j = ":root {\n --sense-detail-card-name-color: rgba(255, 255, 255, 0.85);\n --sense-detail-card-value-color: #fff;\n --sense-detail-card-border-color: #00ffff;\n --sense-detail-card-bg-color: rgba(60, 240, 225, 0.08);\n}\n.index-module_box__ujhJl {\n width: 100%;\n background: var(--sense-detail-card-bg-color);\n}\n.index-module_box__ujhJl .index-module_line__u3Sw7 {\n position: relative;\n display: flex;\n flex-wrap: nowrap;\n align-items: center;\n width: 100%;\n height: 100px;\n}\n.index-module_box__ujhJl .index-module_line__u3Sw7:not(:last-child)::after {\n position: absolute;\n bottom: 0;\n width: 100%;\n height: 1px;\n content: '';\n}\n.index-module_box__ujhJl .index-module_line__u3Sw7 .index-module_item__2v6a8 {\n position: relative;\n display: flex;\n flex: 1;\n flex-direction: column;\n row-gap: 8px;\n align-items: center;\n justify-content: center;\n height: 100%;\n padding: 0 8px;\n overflow: hidden;\n text-align: center;\n}\n.index-module_box__ujhJl .index-module_line__u3Sw7 .index-module_item__2v6a8:not(:last-child)::after {\n position: absolute;\n top: 8px;\n right: 0;\n width: 1px;\n height: 84px;\n content: '';\n background: var(--sense-detail-card-border-color);\n}\n.index-module_box__ujhJl .index-module_line__u3Sw7 .index-module_item__2v6a8 .index-module_value__9m0Bs {\n width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n font-family: JDZhengHT;\n font-size: 20px;\n font-style: normal;\n font-weight: 500;\n line-height: 32px;\n color: var(--sense-detail-card-value-color);\n white-space: nowrap;\n}\n.index-module_box__ujhJl .index-module_line__u3Sw7 .index-module_item__2v6a8 .index-module_name__nW5zz {\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: 14px;\n font-style: normal;\n font-weight: 350;\n line-height: 16px;\n color: var(--sense-detail-card-name-color);\n white-space: nowrap;\n}\n";
@@ -10136,14 +10088,26 @@ var AdvancedSearch = function (_a) {
10136
10088
  data: item.data,
10137
10089
  polygon: pointRange ? wkt.stringify(getPointPolygonGeom(item.data, pointRange)) : null,
10138
10090
  }); }), true), (selectPoints || []).map(function (item) {
10139
- var _a = item.split('^'), lon = _a[0], lat = _a[1];
10140
- return {
10141
- id: "selectPoint__".concat(item),
10142
- data: [+lon, +lat],
10143
- polygon: pointRange
10144
- ? wkt.stringify(getPointPolygonGeom([+lon, +lat], pointRange))
10145
- : null,
10146
- };
10091
+ if (item === null || item === void 0 ? void 0 : item.value) {
10092
+ var _a = item.value.split('^'), lon = _a[0], lat = _a[1];
10093
+ return {
10094
+ id: "selectPoint__".concat(item),
10095
+ data: [+lon, +lat],
10096
+ polygon: pointRange
10097
+ ? wkt.stringify(getPointPolygonGeom([+lon, +lat], pointRange))
10098
+ : null,
10099
+ };
10100
+ }
10101
+ if (item) {
10102
+ var _b = item.split('^'), lon = _b[0], lat = _b[1];
10103
+ return {
10104
+ id: "selectPoint__".concat(item),
10105
+ data: [+lon, +lat],
10106
+ polygon: pointRange
10107
+ ? wkt.stringify(getPointPolygonGeom([+lon, +lat], pointRange))
10108
+ : null,
10109
+ };
10110
+ }
10147
10111
  }), true);
10148
10112
  curLines = __spreadArray(__spreadArray([], (lines || []).map(function (item) { return ({
10149
10113
  id: "line__".concat(item.id),
@@ -10332,8 +10296,14 @@ var SenseSearch = forwardRef(function (props, ref) {
10332
10296
  if (!(searchMode === SEARCH_MODE.SPACE || searchMode === SEARCH_MODE.TIME_SPACE)) return [3 /*break*/, 3];
10333
10297
  points = values.points, lines = values.lines, polygons = values.polygons, pointRange_1 = values.pointRange, lineRange_1 = values.lineRange, selectPoints = values.selectPoints, selectLines = values.selectLines, selectPolygons = values.selectPolygons, region = values.region;
10334
10298
  polygonGeoms_1 = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], (points || []).map(function (item) { return getPointPolygonGeom(item.data, pointRange_1); }), true), (lines || []).map(function (item) { return getLinePolygonGeom(item.data, lineRange_1); }), true), (polygons || []).map(function (item) { return wkt.parse(item.data); }), true), (selectPoints || []).map(function (item) {
10335
- var p = item.split('^');
10336
- return getPointPolygonGeom([+p[0], +p[1]], pointRange_1);
10299
+ if (item === null || item === void 0 ? void 0 : item.value) {
10300
+ var p = item.value.split('^');
10301
+ return getPointPolygonGeom([+p[0], +p[1]], pointRange_1);
10302
+ }
10303
+ if (item) {
10304
+ var p = item.split('^');
10305
+ return getPointPolygonGeom([+p[0], +p[1]], pointRange_1);
10306
+ }
10337
10307
  }), true), (selectLines || []).map(function (item) { return getLinePolygonGeom(item, pointRange_1); }), true), (selectPolygons || []).map(function (item) { return wkt.parse(item); }), true);
10338
10308
  if (!region) return [3 /*break*/, 2];
10339
10309
  return [4 /*yield*/, getRegionInfo({
@@ -12977,11 +12947,11 @@ var CcosVideoPlayer = function (props) {
12977
12947
  CcosVideoPlayer.settings = settings$1;
12978
12948
 
12979
12949
  try {
12980
- window._ICOS_DESKTOP_VERSION_ = JSON.parse('{"version":"2.2.14","branch":"remotes/origin/release_v2.2.0","buildDate":"2025-09-04 16:32:04"}');
12950
+ window._ICOS_DESKTOP_VERSION_ = JSON.parse('{"version":"2.3.0","branch":"release_v2.2.0","buildDate":"2025-10-21 10:21:06"}');
12981
12951
  }
12982
12952
  catch (err) {
12983
12953
  console.warn(err);
12984
- window._ICOS_DESKTOP_VERSION_ = '{"version":"2.2.14","branch":"remotes/origin/release_v2.2.0","buildDate":"2025-09-04 16:32:04"}';
12954
+ window._ICOS_DESKTOP_VERSION_ = '{"version":"2.3.0","branch":"release_v2.2.0","buildDate":"2025-10-21 10:21:06"}';
12985
12955
  }
12986
12956
 
12987
12957
  export { BookDetail, BookGroupImport, BookGroupTable, BookImport, BookInfo, BookSelect, BookTable, CcosBookDetail, CcosImportTable, CcosSenseContentTable, CcosSenseCreate, CcosSenseDetail, CcosSenseEdit, CcosSenseFullTable, CcosSenseManager, CcosSenseSearch, CcosSenseTree, CcosSenseView, CcosTagConfig, CcosVideoControl, CcosVideoPlayer, EntityClassFilter, EntityClassTreeSelect, ImportTable, Modal, OrgTreeSelect, PersonSelector, ProTable$1 as ProTable, RegionCascader, RegionTreeSelect, RelationGraph, SenseContentTable, SenseCreate, SenseDetail, SenseEdit, SenseForm, SenseFullTable, SenseInfo, SenseManager, SenseSearch, SenseTable, SenseTree, SenseView, TagConfig, TagTreeSelect, VideoControl, VideoPlayer, setCconfig as config };