tntd 3.0.50 → 3.0.51
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/es/_util/hooks/useScrollLock.js +68 -0
- package/es/_util/hooks/useScrollLock.js.map +1 -0
- package/es/anchor/anchor.js +96 -0
- package/es/anchor/anchor.js.map +1 -0
- package/es/anchor/anchor.less +79 -0
- package/es/anchor/index.js +7 -9
- package/es/anchor/index.js.map +1 -1
- package/es/array-input/icon.js +36 -0
- package/es/array-input/icon.js.map +1 -0
- package/es/checkbox/checkbox-group.js +16 -0
- package/es/checkbox/checkbox-group.js.map +1 -0
- package/es/ellipsis/index.js +11 -1
- package/es/ellipsis/index.js.map +1 -1
- package/es/page-loading/index.less +4 -4
- package/es/page-loading/loading.gif +0 -0
- package/es/page-loading/loading1.gif +0 -0
- package/es/query-form/Field/Composition/FieldPopover.js +31 -24
- package/es/query-form/Field/Composition/Select.js +31 -24
- package/es/query-form/Field/Composition/SelectInput.js +18 -17
- package/es/query-form/Field/Composition/ValueTag.js +18 -17
- package/es/query-form/Field/Composition/index.js +37 -30
- package/es/query-form/Field/Composition/utils.js +3 -3
- package/es/radio/radio-group.js +16 -0
- package/es/radio/radio-group.js.map +1 -0
- package/es/scroll-bar/Bar.js +18 -17
- package/es/scroll-bar/Context.js +3 -3
- package/es/scroll-bar/ScrollBar.js +3 -3
- package/es/scroll-bar/Thumb.js +18 -17
- package/es/scroll-bar/index.js +3 -3
- package/es/scroll-bar/util.js +13 -7
- package/es/steps/stepStyle/small.less +5 -0
- package/es/table/total-shower.js +20 -0
- package/es/table/total-shower.js.map +1 -0
- package/es/tntd-rc-select/style/index.less +20 -2
- package/es/tooltip/tooltip.js +19 -5
- package/es/tooltip/tooltip.js.map +1 -1
- package/es/utils/simple-template.js +19 -0
- package/es/utils/simple-template.js.map +1 -0
- package/lib/_util/hooks/useScrollLock.d.ts +9 -0
- package/lib/_util/hooks/useScrollLock.d.ts.map +1 -0
- package/lib/_util/hooks/useScrollLock.js +114 -0
- package/lib/_util/hooks/useScrollLock.js.map +1 -0
- package/lib/anchor/anchor.d.ts +15 -0
- package/lib/anchor/anchor.d.ts.map +1 -0
- package/lib/anchor/anchor.js +131 -0
- package/lib/anchor/anchor.js.map +1 -0
- package/lib/anchor/anchor.less +79 -0
- package/lib/anchor/index.d.ts +3 -2
- package/lib/anchor/index.d.ts.map +1 -1
- package/lib/anchor/index.js +7 -40
- package/lib/anchor/index.js.map +1 -1
- package/lib/array-input/icon.d.ts +4 -0
- package/lib/array-input/icon.d.ts.map +1 -0
- package/lib/array-input/icon.js +36 -0
- package/lib/array-input/icon.js.map +1 -0
- package/lib/checkbox/checkbox-group.d.ts +8 -0
- package/lib/checkbox/checkbox-group.d.ts.map +1 -0
- package/lib/checkbox/checkbox-group.js +16 -0
- package/lib/checkbox/checkbox-group.js.map +1 -0
- package/lib/ellipsis/index.d.ts.map +1 -1
- package/lib/ellipsis/index.js +11 -1
- package/lib/ellipsis/index.js.map +1 -1
- package/lib/notification/assets/svg-error-tip.d.ts +1 -1
- package/lib/notification/assets/svg-success-tip.d.ts +1 -1
- package/lib/page-loading/index.less +4 -4
- package/lib/page-loading/loading.gif +0 -0
- package/lib/page-loading/loading1.gif +0 -0
- package/lib/query-form/Field/Composition/FieldPopover.js +31 -24
- package/lib/query-form/Field/Composition/Select.js +31 -24
- package/lib/query-form/Field/Composition/SelectInput.js +18 -17
- package/lib/query-form/Field/Composition/ValueTag.js +18 -17
- package/lib/query-form/Field/Composition/index.js +37 -30
- package/lib/query-form/Field/Composition/utils.js +3 -3
- package/lib/radio/radio-group.d.ts +8 -0
- package/lib/radio/radio-group.d.ts.map +1 -0
- package/lib/radio/radio-group.js +16 -0
- package/lib/radio/radio-group.js.map +1 -0
- package/lib/scroll-bar/Bar.js +18 -17
- package/lib/scroll-bar/Context.js +3 -3
- package/lib/scroll-bar/ScrollBar.js +3 -3
- package/lib/scroll-bar/Thumb.js +18 -17
- package/lib/scroll-bar/index.js +3 -3
- package/lib/scroll-bar/util.js +13 -7
- package/lib/segmented/index.d.ts +1 -1
- package/lib/steps/stepStyle/small.less +5 -0
- package/lib/svg-components/illustration-403.d.ts +1 -1
- package/lib/svg-components/illustration-404.d.ts +1 -1
- package/lib/svg-components/illustration-500.d.ts +1 -1
- package/lib/svg-components/illustration-empty.d.ts +1 -1
- package/lib/svg-components/illustration-failure.d.ts +1 -1
- package/lib/svg-components/illustration-no-access.d.ts +1 -1
- package/lib/svg-components/illustration-no-chart.d.ts +1 -1
- package/lib/svg-components/illustration-no-result.d.ts +1 -1
- package/lib/svg-components/illustration-offline.d.ts +1 -1
- package/lib/svg-components/illustration-success.d.ts +1 -1
- package/lib/table/assets/image-loading-background.d.ts +1 -1
- package/lib/table/assets/image-loading.d.ts +1 -1
- package/lib/table/total-shower.d.ts +9 -0
- package/lib/table/total-shower.d.ts.map +1 -0
- package/lib/table/total-shower.js +20 -0
- package/lib/table/total-shower.js.map +1 -0
- package/lib/tntd-rc-select/style/index.less +20 -2
- package/lib/tooltip/tooltip.d.ts +1 -0
- package/lib/tooltip/tooltip.d.ts.map +1 -1
- package/lib/tooltip/tooltip.js +23 -9
- package/lib/tooltip/tooltip.js.map +1 -1
- package/lib/utils/simple-template.d.ts +9 -0
- package/lib/utils/simple-template.d.ts.map +1 -0
- package/lib/utils/simple-template.js +19 -0
- package/lib/utils/simple-template.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.TotalShower = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _utils = require("../utils");
|
|
9
|
+
function _interopRequireDefault(e) {
|
|
10
|
+
return e && e.__esModule ? e : {
|
|
11
|
+
"default": e
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
var TotalShower = exports.TotalShower = function TotalShower(_ref) {
|
|
15
|
+
var total = _ref.total,
|
|
16
|
+
locale = _ref.locale;
|
|
17
|
+
return _react["default"].createElement(_react["default"].Fragment, null, (0, _utils.simpleTemplate)(locale.total, {
|
|
18
|
+
total: total
|
|
19
|
+
}));
|
|
20
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"total-shower.js","sourceRoot":"","sources":["../../src/table/total-shower.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAAyB;AAGzB,oCAAyC;AAElC,MAAM,WAAW,GAAG,CAAC,EAC1B,KAAK,EACL,MAAM,GAMP,EAAE,EAAE;IACH,OAAO,8DAAG,IAAA,sBAAc,EAAC,MAAM,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAI,CAAA;AACvD,CAAC,CAAA;AAVY,QAAA,WAAW,eAUvB","sourcesContent":["import React from 'react'\n\nimport type { TableProps as AntdTableProps } from 'antd/lib/table'\nimport { simpleTemplate } from '../utils'\n\nexport const TotalShower = ({\n total,\n locale,\n}: {\n total: number\n locale: AntdTableProps<unknown>['locale'] & {\n total?: string\n }\n}) => {\n return <>{simpleTemplate(locale.total, { total })}</>\n}\n"]}
|
|
@@ -1338,7 +1338,7 @@
|
|
|
1338
1338
|
.tntd-rc-select:not(.tntd-rc-select-customize-input) .tntd-rc-select-selector {
|
|
1339
1339
|
position: relative;
|
|
1340
1340
|
background-color: #fff;
|
|
1341
|
-
border: 1px solid
|
|
1341
|
+
border: 1px solid #e1e6ee;
|
|
1342
1342
|
border-radius: 2px;
|
|
1343
1343
|
transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
|
|
1344
1344
|
}
|
|
@@ -1446,7 +1446,7 @@
|
|
|
1446
1446
|
align-items: center;
|
|
1447
1447
|
height: 12px;
|
|
1448
1448
|
margin-top: -6px;
|
|
1449
|
-
color: rgba(
|
|
1449
|
+
color: rgba(23, 35, 61, 0.3);
|
|
1450
1450
|
font-size: 12px;
|
|
1451
1451
|
line-height: 1;
|
|
1452
1452
|
text-align: center;
|
|
@@ -1775,3 +1775,21 @@
|
|
|
1775
1775
|
}
|
|
1776
1776
|
}
|
|
1777
1777
|
}
|
|
1778
|
+
|
|
1779
|
+
.has-error{
|
|
1780
|
+
.tntd-rc-select:not(.tntd-rc-select-customize-input) .tntd-rc-select-selector {
|
|
1781
|
+
border-color: @red-6;
|
|
1782
|
+
box-shadow: none ;
|
|
1783
|
+
}
|
|
1784
|
+
|
|
1785
|
+
.tntd-rc-select-focused:not(.tntd-rc-select-disabled).tntd-rc-select:not(
|
|
1786
|
+
.tntd-rc-select-customize-input
|
|
1787
|
+
) .tntd-rc-select-selector {
|
|
1788
|
+
border-color: @red-6;
|
|
1789
|
+
box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.2);
|
|
1790
|
+
}
|
|
1791
|
+
}
|
|
1792
|
+
|
|
1793
|
+
.tntd-rc-select-arrow{
|
|
1794
|
+
color: #17233d;
|
|
1795
|
+
}
|
package/lib/tooltip/tooltip.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../src/tooltip/tooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../src/tooltip/tooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAA;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAMnD,cAAc,iBAAiB,CAAA;AAK/B,QAAA,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CACrB,YAAY,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAAE,CA6CzF,CAAA;AAED,eAAe,OAAO,CAAA"}
|
package/lib/tooltip/tooltip.js
CHANGED
|
@@ -14,8 +14,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
14
14
|
});
|
|
15
15
|
var _exportNames = {};
|
|
16
16
|
exports["default"] = void 0;
|
|
17
|
-
var _react =
|
|
17
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
18
18
|
var _configProvider = require("../config-provider");
|
|
19
|
+
var _useScrollLock = _interopRequireDefault(require("../_util/hooks/useScrollLock"));
|
|
19
20
|
var _tooltip = _interopRequireWildcard(require("antd/lib/tooltip"));
|
|
20
21
|
Object.keys(_tooltip).forEach(function (key) {
|
|
21
22
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -29,6 +30,11 @@ Object.keys(_tooltip).forEach(function (key) {
|
|
|
29
30
|
});
|
|
30
31
|
});
|
|
31
32
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
33
|
+
function _interopRequireDefault(e) {
|
|
34
|
+
return e && e.__esModule ? e : {
|
|
35
|
+
"default": e
|
|
36
|
+
};
|
|
37
|
+
}
|
|
32
38
|
function _getRequireWildcardCache(e) {
|
|
33
39
|
if ("function" != typeof WeakMap) return null;
|
|
34
40
|
var r = new WeakMap(),
|
|
@@ -54,11 +60,6 @@ function _interopRequireWildcard(e, r) {
|
|
|
54
60
|
}
|
|
55
61
|
return n["default"] = e, t && t.set(e, n), n;
|
|
56
62
|
}
|
|
57
|
-
function _interopRequireDefault(e) {
|
|
58
|
-
return e && e.__esModule ? e : {
|
|
59
|
-
"default": e
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
63
|
var __rest = void 0 && (void 0).__rest || function (s, e) {
|
|
63
64
|
var t = {};
|
|
64
65
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
@@ -76,13 +77,26 @@ var Tooltip = function Tooltip(props) {
|
|
|
76
77
|
theme = _props$theme === void 0 ? '' : _props$theme,
|
|
77
78
|
_props$hiddenArrow = props.hiddenArrow,
|
|
78
79
|
hiddenArrow = _props$hiddenArrow === void 0 ? false : _props$hiddenArrow,
|
|
79
|
-
|
|
80
|
+
enableScrollObserver = props.enableScrollObserver,
|
|
81
|
+
restProps = __rest(props, ["overlayClassName", "theme", "hiddenArrow", "enableScrollObserver"]);
|
|
82
|
+
var isScrolling = (0, _useScrollLock["default"])({
|
|
83
|
+
enableScrollObserver: enableScrollObserver
|
|
84
|
+
});
|
|
85
|
+
var MOUSE_ENTER_DELAY_WHILE_SCROLLING = 9999;
|
|
86
|
+
var DEFAULT_MOUSE_ENTER_DELAY = 0.1;
|
|
87
|
+
var visibleInfo = (0, _react.useMemo)(function () {
|
|
88
|
+
return isScrolling ? {
|
|
89
|
+
visible: false
|
|
90
|
+
} : {};
|
|
91
|
+
}, [isScrolling]);
|
|
80
92
|
return _react["default"].createElement(_configProvider.ConfigConsumer, null, function (_ref) {
|
|
81
93
|
var getPrefixCls = _ref.getPrefixCls;
|
|
82
94
|
var prefixCls = getPrefixCls('tooltip');
|
|
83
95
|
return _react["default"].createElement(_tooltip["default"], Object.assign({
|
|
84
|
-
overlayClassName: (0, _classnames["default"])(prefixCls, 'tnt-tooltip', themeMap(prefixCls, theme), hiddenArrow ? prefixCls
|
|
85
|
-
}, restProps
|
|
96
|
+
overlayClassName: (0, _classnames["default"])(prefixCls, 'tnt-tooltip', themeMap(prefixCls, theme), hiddenArrow ? "".concat(prefixCls, "-arrow-hidden") : '', overlayClassName)
|
|
97
|
+
}, restProps, {
|
|
98
|
+
mouseEnterDelay: isScrolling ? MOUSE_ENTER_DELAY_WHILE_SCROLLING : restProps.mouseEnterDelay || DEFAULT_MOUSE_ENTER_DELAY
|
|
99
|
+
}, visibleInfo));
|
|
86
100
|
});
|
|
87
101
|
};
|
|
88
102
|
var _default = exports["default"] = Tooltip;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltip.js","sourceRoot":"","sources":["../../src/tooltip/tooltip.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tooltip.js","sourceRoot":"","sources":["../../src/tooltip/tooltip.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAsC;AAEtC,wDAAmD;AACnD,iFAAwD;AACxD,8DAAyC;AACzC,4DAAmC;AAEnC,kDAA+B;AAC/B,MAAM,QAAQ,GAAG,CAAC,SAAiB,EAAE,UAAkB,EAAE,EAAE;IACzD,OAAO,GAAG,SAAS,IAAI,UAAU,EAAE,CAAA;AACrC,CAAC,CAAA;AAED,MAAM,OAAO,GAET,CAAC,KAAK,EAAE,EAAE;IACZ,MAAM,EACJ,gBAAgB,EAChB,KAAK,GAAG,EAAE,EACV,WAAW,GAAG,KAAK,EACnB,oBAAoB,KAElB,KAAK,EADJ,SAAS,UACV,KAAK,EANH,oEAML,CAAQ,CAAA;IAET,MAAM,WAAW,GAAG,IAAA,uBAAa,EAAC,EAAE,oBAAoB,EAAE,CAAC,CAAA;IAE3D,MAAM,iCAAiC,GAAG,IAAI,CAAA;IAC9C,MAAM,yBAAyB,GAAG,GAAG,CAAA;IAErC,MAAM,WAAW,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QAC/B,OAAO,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAC9C,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAA;IAEjB,OAAO,CACL,8BAAC,gCAAc,QACZ,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE;QACpB,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,CAAA;QAEzC,OAAO,CACL,8BAAC,iBAAW,kBACV,gBAAgB,EAAE,IAAA,oBAAU,EAC1B,SAAS,EACT,aAAa,EACb,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,EAC1B,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,eAAe,CAAC,CAAC,CAAC,EAAE,EAC9C,gBAAgB,CACjB,IACG,SAAS,IACb,eAAe,EACb,WAAW;gBACT,CAAC,CAAC,iCAAiC;gBACnC,CAAC,CAAC,SAAS,CAAC,eAAe,IAAI,yBAAyB,IAExD,WAAW,EACf,CACH,CAAA;IACH,CAAC,CACc,CAClB,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,OAAO,CAAA","sourcesContent":["import React, { useMemo } from 'react'\nimport type { TooltipProps } from 'antd/lib/tooltip'\nimport { ConfigConsumer } from '../config-provider'\nimport useScrollLock from '../_util/hooks/useScrollLock'\nimport AntdTooltip from 'antd/lib/tooltip'\nimport classNames from 'classnames'\n\nexport * from 'antd/lib/tooltip'\nconst themeMap = (prefixCls: string, themeColor: string) => {\n return `${prefixCls}-${themeColor}`\n}\n\nconst Tooltip: React.FC<\n TooltipProps & { theme?: string; hiddenArrow?: boolean; enableScrollObserver?: boolean }\n> = (props) => {\n const {\n overlayClassName,\n theme = '',\n hiddenArrow = false,\n enableScrollObserver,\n ...restProps\n } = props\n\n const isScrolling = useScrollLock({ enableScrollObserver })\n\n const MOUSE_ENTER_DELAY_WHILE_SCROLLING = 9999\n const DEFAULT_MOUSE_ENTER_DELAY = 0.1\n\n const visibleInfo = useMemo(() => {\n return isScrolling ? { visible: false } : {}\n }, [isScrolling])\n\n return (\n <ConfigConsumer>\n {({ getPrefixCls }) => {\n const prefixCls = getPrefixCls('tooltip')\n\n return (\n <AntdTooltip\n overlayClassName={classNames(\n prefixCls,\n 'tnt-tooltip',\n themeMap(prefixCls, theme),\n hiddenArrow ? `${prefixCls}-arrow-hidden` : '',\n overlayClassName\n )}\n {...restProps}\n mouseEnterDelay={\n isScrolling\n ? MOUSE_ENTER_DELAY_WHILE_SCROLLING\n : restProps.mouseEnterDelay || DEFAULT_MOUSE_ENTER_DELAY\n } // 滚动期间延迟触发\n {...visibleInfo} // 滚动时隐藏 tooltip\n />\n )\n }}\n </ConfigConsumer>\n )\n}\n\nexport default Tooltip\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simple-template.d.ts","sourceRoot":"","sources":["../../src/utils/simple-template.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAM,sBAE3F"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.simpleTemplate = simpleTemplate;
|
|
7
|
+
/**
|
|
8
|
+
* 简单的模板替换
|
|
9
|
+
*
|
|
10
|
+
* @param template
|
|
11
|
+
* @param data
|
|
12
|
+
* @returns
|
|
13
|
+
*/
|
|
14
|
+
function simpleTemplate(template) {
|
|
15
|
+
var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
16
|
+
return template === null || template === void 0 ? void 0 : template.replace(/\${(.*?)}/g, function (match, key) {
|
|
17
|
+
return data[key.trim()].toString();
|
|
18
|
+
});
|
|
19
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simple-template.js","sourceRoot":"","sources":["../../src/utils/simple-template.ts"],"names":[],"mappings":";;;AAAA;;;;;;GAMG;AACH,SAAgB,cAAc,CAAC,QAAiB,EAAE,OAAwC,EAAE;IAC1F,OAAO,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;AACrF,CAAC;AAFD,wCAEC","sourcesContent":["/**\n * 简单的模板替换\n *\n * @param template\n * @param data\n * @returns\n */\nexport function simpleTemplate(template?: string, data: Record<string, string | number> = {}) {\n return template?.replace(/\\${(.*?)}/g, (match, key) => data[key.trim()].toString())\n}\n"]}
|