pollination-react-io 0.0.28 → 0.0.31
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/LICENSE +21 -21
- package/README.md +111 -111
- package/build/SendGeometry/SendGeometry.types.d.ts +1 -1
- package/build/SendModel/SendModel.types.d.ts +1 -1
- package/build/atoms/ConditionalWrapper/index.d.ts +5 -0
- package/build/atoms/Dropdown/Dropdown.d.ts +26 -0
- package/build/atoms/Dropdown/Dropdown.types.d.ts +3 -0
- package/build/atoms/FileInput/FileInput.d.ts +6 -0
- package/build/atoms/FileInput/FileInput.types.d.ts +4 -0
- package/build/atoms/Logo/index.d.ts +2 -0
- package/build/atoms/SettingsButton/index.d.ts +11 -0
- package/build/atoms/Tooltip/index.d.ts +10 -0
- package/build/buttons.scss +86 -86
- package/build/index.esm.js +1862 -104
- package/build/index.esm.js.map +1 -1
- package/build/index.js +1861 -103
- package/build/index.js.map +1 -1
- package/build/typography.scss +25 -11
- package/build/variables.scss +32 -32
- package/package.json +99 -98
- package/build/SendGeometry/geometry.d.ts +0 -9
package/build/index.js
CHANGED
|
@@ -2145,7 +2145,7 @@ var __assign$2 = function() {
|
|
|
2145
2145
|
return __assign$2.apply(this, arguments);
|
|
2146
2146
|
};
|
|
2147
2147
|
|
|
2148
|
-
function __awaiter(thisArg, _arguments, P, generator) {
|
|
2148
|
+
function __awaiter$1(thisArg, _arguments, P, generator) {
|
|
2149
2149
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
2150
2150
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
2151
2151
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
@@ -2155,7 +2155,7 @@ function __awaiter(thisArg, _arguments, P, generator) {
|
|
|
2155
2155
|
});
|
|
2156
2156
|
}
|
|
2157
2157
|
|
|
2158
|
-
function __generator(thisArg, body) {
|
|
2158
|
+
function __generator$1(thisArg, body) {
|
|
2159
2159
|
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
2160
2160
|
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
2161
2161
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
@@ -2334,9 +2334,9 @@ var useHbjsontoVTK = function () {
|
|
|
2334
2334
|
.catch(function (e) {
|
|
2335
2335
|
throw new Error(e);
|
|
2336
2336
|
})
|
|
2337
|
-
.then(function (res) { return __awaiter(void 0, void 0, void 0, function () {
|
|
2337
|
+
.then(function (res) { return __awaiter$1(void 0, void 0, void 0, function () {
|
|
2338
2338
|
var translatedFile;
|
|
2339
|
-
return __generator(this, function (_a) {
|
|
2339
|
+
return __generator$1(this, function (_a) {
|
|
2340
2340
|
switch (_a.label) {
|
|
2341
2341
|
case 0:
|
|
2342
2342
|
if (!res.ok) return [3 /*break*/, 2];
|
|
@@ -3507,20 +3507,20 @@ if (process.env.NODE_ENV !== 'production') {
|
|
|
3507
3507
|
|
|
3508
3508
|
var PropTypes = propTypes;
|
|
3509
3509
|
|
|
3510
|
-
var _excluded$
|
|
3510
|
+
var _excluded$9 = ["color", "size", "title"];
|
|
3511
3511
|
|
|
3512
|
-
function _extends$
|
|
3512
|
+
function _extends$9() { _extends$9 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$9.apply(this, arguments); }
|
|
3513
3513
|
|
|
3514
|
-
function _objectWithoutProperties$
|
|
3514
|
+
function _objectWithoutProperties$9(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose$9(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
3515
3515
|
|
|
3516
|
-
function _objectWithoutPropertiesLoose$
|
|
3516
|
+
function _objectWithoutPropertiesLoose$9(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
3517
3517
|
var ArrowClockwise = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
3518
3518
|
var color = _ref.color,
|
|
3519
3519
|
size = _ref.size,
|
|
3520
3520
|
title = _ref.title,
|
|
3521
|
-
rest = _objectWithoutProperties$
|
|
3521
|
+
rest = _objectWithoutProperties$9(_ref, _excluded$9);
|
|
3522
3522
|
|
|
3523
|
-
return /*#__PURE__*/React__default["default"].createElement("svg", _extends$
|
|
3523
|
+
return /*#__PURE__*/React__default["default"].createElement("svg", _extends$9({
|
|
3524
3524
|
ref: ref,
|
|
3525
3525
|
xmlns: "http://www.w3.org/2000/svg",
|
|
3526
3526
|
viewBox: "0 0 16 16",
|
|
@@ -3546,20 +3546,20 @@ ArrowClockwise.defaultProps = {
|
|
|
3546
3546
|
};
|
|
3547
3547
|
var ArrowClockwise$1 = ArrowClockwise;
|
|
3548
3548
|
|
|
3549
|
-
var _excluded$
|
|
3549
|
+
var _excluded$8 = ["color", "size", "title"];
|
|
3550
3550
|
|
|
3551
|
-
function _extends$
|
|
3551
|
+
function _extends$8() { _extends$8 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$8.apply(this, arguments); }
|
|
3552
3552
|
|
|
3553
|
-
function _objectWithoutProperties$
|
|
3553
|
+
function _objectWithoutProperties$8(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose$8(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
3554
3554
|
|
|
3555
|
-
function _objectWithoutPropertiesLoose$
|
|
3555
|
+
function _objectWithoutPropertiesLoose$8(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
3556
3556
|
var ArrowRepeat = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
3557
3557
|
var color = _ref.color,
|
|
3558
3558
|
size = _ref.size,
|
|
3559
3559
|
title = _ref.title,
|
|
3560
|
-
rest = _objectWithoutProperties$
|
|
3560
|
+
rest = _objectWithoutProperties$8(_ref, _excluded$8);
|
|
3561
3561
|
|
|
3562
|
-
return /*#__PURE__*/React__default["default"].createElement("svg", _extends$
|
|
3562
|
+
return /*#__PURE__*/React__default["default"].createElement("svg", _extends$8({
|
|
3563
3563
|
ref: ref,
|
|
3564
3564
|
xmlns: "http://www.w3.org/2000/svg",
|
|
3565
3565
|
viewBox: "0 0 16 16",
|
|
@@ -3585,20 +3585,20 @@ ArrowRepeat.defaultProps = {
|
|
|
3585
3585
|
};
|
|
3586
3586
|
var ArrowRepeat$1 = ArrowRepeat;
|
|
3587
3587
|
|
|
3588
|
-
var _excluded$
|
|
3588
|
+
var _excluded$7 = ["color", "size", "title"];
|
|
3589
3589
|
|
|
3590
|
-
function _extends$
|
|
3590
|
+
function _extends$7() { _extends$7 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$7.apply(this, arguments); }
|
|
3591
3591
|
|
|
3592
|
-
function _objectWithoutProperties$
|
|
3592
|
+
function _objectWithoutProperties$7(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose$7(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
3593
3593
|
|
|
3594
|
-
function _objectWithoutPropertiesLoose$
|
|
3594
|
+
function _objectWithoutPropertiesLoose$7(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
3595
3595
|
var BoundingBox = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
3596
3596
|
var color = _ref.color,
|
|
3597
3597
|
size = _ref.size,
|
|
3598
3598
|
title = _ref.title,
|
|
3599
|
-
rest = _objectWithoutProperties$
|
|
3599
|
+
rest = _objectWithoutProperties$7(_ref, _excluded$7);
|
|
3600
3600
|
|
|
3601
|
-
return /*#__PURE__*/React__default["default"].createElement("svg", _extends$
|
|
3601
|
+
return /*#__PURE__*/React__default["default"].createElement("svg", _extends$7({
|
|
3602
3602
|
ref: ref,
|
|
3603
3603
|
xmlns: "http://www.w3.org/2000/svg",
|
|
3604
3604
|
viewBox: "0 0 16 16",
|
|
@@ -3621,20 +3621,20 @@ BoundingBox.defaultProps = {
|
|
|
3621
3621
|
};
|
|
3622
3622
|
var BoundingBox$1 = BoundingBox;
|
|
3623
3623
|
|
|
3624
|
-
var _excluded$
|
|
3624
|
+
var _excluded$6 = ["color", "size", "title"];
|
|
3625
3625
|
|
|
3626
|
-
function _extends$
|
|
3626
|
+
function _extends$6() { _extends$6 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$6.apply(this, arguments); }
|
|
3627
3627
|
|
|
3628
|
-
function _objectWithoutProperties$
|
|
3628
|
+
function _objectWithoutProperties$6(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose$6(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
3629
3629
|
|
|
3630
|
-
function _objectWithoutPropertiesLoose$
|
|
3630
|
+
function _objectWithoutPropertiesLoose$6(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
3631
3631
|
var BoxArrowInLeft = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
3632
3632
|
var color = _ref.color,
|
|
3633
3633
|
size = _ref.size,
|
|
3634
3634
|
title = _ref.title,
|
|
3635
|
-
rest = _objectWithoutProperties$
|
|
3635
|
+
rest = _objectWithoutProperties$6(_ref, _excluded$6);
|
|
3636
3636
|
|
|
3637
|
-
return /*#__PURE__*/React__default["default"].createElement("svg", _extends$
|
|
3637
|
+
return /*#__PURE__*/React__default["default"].createElement("svg", _extends$6({
|
|
3638
3638
|
ref: ref,
|
|
3639
3639
|
xmlns: "http://www.w3.org/2000/svg",
|
|
3640
3640
|
viewBox: "0 0 16 16",
|
|
@@ -3661,20 +3661,20 @@ BoxArrowInLeft.defaultProps = {
|
|
|
3661
3661
|
};
|
|
3662
3662
|
var BoxArrowInLeft$1 = BoxArrowInLeft;
|
|
3663
3663
|
|
|
3664
|
-
var _excluded$
|
|
3664
|
+
var _excluded$5 = ["color", "size", "title"];
|
|
3665
3665
|
|
|
3666
|
-
function _extends$
|
|
3666
|
+
function _extends$5() { _extends$5 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$5.apply(this, arguments); }
|
|
3667
3667
|
|
|
3668
|
-
function _objectWithoutProperties$
|
|
3668
|
+
function _objectWithoutProperties$5(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose$5(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
3669
3669
|
|
|
3670
|
-
function _objectWithoutPropertiesLoose$
|
|
3670
|
+
function _objectWithoutPropertiesLoose$5(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
3671
3671
|
var CaretDownFill = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
3672
3672
|
var color = _ref.color,
|
|
3673
3673
|
size = _ref.size,
|
|
3674
3674
|
title = _ref.title,
|
|
3675
|
-
rest = _objectWithoutProperties$
|
|
3675
|
+
rest = _objectWithoutProperties$5(_ref, _excluded$5);
|
|
3676
3676
|
|
|
3677
|
-
return /*#__PURE__*/React__default["default"].createElement("svg", _extends$
|
|
3677
|
+
return /*#__PURE__*/React__default["default"].createElement("svg", _extends$5({
|
|
3678
3678
|
ref: ref,
|
|
3679
3679
|
xmlns: "http://www.w3.org/2000/svg",
|
|
3680
3680
|
viewBox: "0 0 16 16",
|
|
@@ -3697,20 +3697,20 @@ CaretDownFill.defaultProps = {
|
|
|
3697
3697
|
};
|
|
3698
3698
|
var CaretDownFill$1 = CaretDownFill;
|
|
3699
3699
|
|
|
3700
|
-
var _excluded$
|
|
3700
|
+
var _excluded$4 = ["color", "size", "title"];
|
|
3701
3701
|
|
|
3702
|
-
function _extends$
|
|
3702
|
+
function _extends$4() { _extends$4 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$4.apply(this, arguments); }
|
|
3703
3703
|
|
|
3704
|
-
function _objectWithoutProperties$
|
|
3704
|
+
function _objectWithoutProperties$4(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose$4(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
3705
3705
|
|
|
3706
|
-
function _objectWithoutPropertiesLoose$
|
|
3706
|
+
function _objectWithoutPropertiesLoose$4(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
3707
3707
|
var CheckCircle = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
3708
3708
|
var color = _ref.color,
|
|
3709
3709
|
size = _ref.size,
|
|
3710
3710
|
title = _ref.title,
|
|
3711
|
-
rest = _objectWithoutProperties$
|
|
3711
|
+
rest = _objectWithoutProperties$4(_ref, _excluded$4);
|
|
3712
3712
|
|
|
3713
|
-
return /*#__PURE__*/React__default["default"].createElement("svg", _extends$
|
|
3713
|
+
return /*#__PURE__*/React__default["default"].createElement("svg", _extends$4({
|
|
3714
3714
|
ref: ref,
|
|
3715
3715
|
xmlns: "http://www.w3.org/2000/svg",
|
|
3716
3716
|
viewBox: "0 0 16 16",
|
|
@@ -3735,18 +3735,57 @@ CheckCircle.defaultProps = {
|
|
|
3735
3735
|
};
|
|
3736
3736
|
var CheckCircle$1 = CheckCircle;
|
|
3737
3737
|
|
|
3738
|
-
var _excluded$
|
|
3738
|
+
var _excluded$3 = ["color", "size", "title"];
|
|
3739
|
+
|
|
3740
|
+
function _extends$3() { _extends$3 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$3.apply(this, arguments); }
|
|
3741
|
+
|
|
3742
|
+
function _objectWithoutProperties$3(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose$3(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
3743
|
+
|
|
3744
|
+
function _objectWithoutPropertiesLoose$3(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
3745
|
+
var CloudArrowUp = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
3746
|
+
var color = _ref.color,
|
|
3747
|
+
size = _ref.size,
|
|
3748
|
+
title = _ref.title,
|
|
3749
|
+
rest = _objectWithoutProperties$3(_ref, _excluded$3);
|
|
3750
|
+
|
|
3751
|
+
return /*#__PURE__*/React__default["default"].createElement("svg", _extends$3({
|
|
3752
|
+
ref: ref,
|
|
3753
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
3754
|
+
viewBox: "0 0 16 16",
|
|
3755
|
+
width: size,
|
|
3756
|
+
height: size,
|
|
3757
|
+
fill: color
|
|
3758
|
+
}, rest), title ? /*#__PURE__*/React__default["default"].createElement("title", null, title) : null, /*#__PURE__*/React__default["default"].createElement("path", {
|
|
3759
|
+
fillRule: "evenodd",
|
|
3760
|
+
d: "M7.646 5.146a.5.5 0 0 1 .708 0l2 2a.5.5 0 0 1-.708.708L8.5 6.707V10.5a.5.5 0 0 1-1 0V6.707L6.354 7.854a.5.5 0 1 1-.708-.708l2-2z"
|
|
3761
|
+
}), /*#__PURE__*/React__default["default"].createElement("path", {
|
|
3762
|
+
d: "M4.406 3.342A5.53 5.53 0 0 1 8 2c2.69 0 4.923 2 5.166 4.579C14.758 6.804 16 8.137 16 9.773 16 11.569 14.502 13 12.687 13H3.781C1.708 13 0 11.366 0 9.318c0-1.763 1.266-3.223 2.942-3.593.143-.863.698-1.723 1.464-2.383zm.653.757c-.757.653-1.153 1.44-1.153 2.056v.448l-.445.049C2.064 6.805 1 7.952 1 9.318 1 10.785 2.23 12 3.781 12h8.906C13.98 12 15 10.988 15 9.773c0-1.216-1.02-2.228-2.313-2.228h-.5v-.5C12.188 4.825 10.328 3 8 3a4.53 4.53 0 0 0-2.941 1.1z"
|
|
3763
|
+
}));
|
|
3764
|
+
});
|
|
3765
|
+
CloudArrowUp.propTypes = {
|
|
3766
|
+
color: PropTypes.string,
|
|
3767
|
+
size: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
|
|
3768
|
+
title: PropTypes.string
|
|
3769
|
+
};
|
|
3770
|
+
CloudArrowUp.defaultProps = {
|
|
3771
|
+
color: 'currentColor',
|
|
3772
|
+
size: '1em',
|
|
3773
|
+
title: null
|
|
3774
|
+
};
|
|
3775
|
+
var CloudArrowUp$1 = CloudArrowUp;
|
|
3776
|
+
|
|
3777
|
+
var _excluded$2 = ["color", "size", "title"];
|
|
3739
3778
|
|
|
3740
3779
|
function _extends$2() { _extends$2 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$2.apply(this, arguments); }
|
|
3741
3780
|
|
|
3742
|
-
function _objectWithoutProperties$
|
|
3781
|
+
function _objectWithoutProperties$2(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose$2(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
3743
3782
|
|
|
3744
|
-
function _objectWithoutPropertiesLoose$
|
|
3783
|
+
function _objectWithoutPropertiesLoose$2(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
3745
3784
|
var EyeSlash = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
3746
3785
|
var color = _ref.color,
|
|
3747
3786
|
size = _ref.size,
|
|
3748
3787
|
title = _ref.title,
|
|
3749
|
-
rest = _objectWithoutProperties$
|
|
3788
|
+
rest = _objectWithoutProperties$2(_ref, _excluded$2);
|
|
3750
3789
|
|
|
3751
3790
|
return /*#__PURE__*/React__default["default"].createElement("svg", _extends$2({
|
|
3752
3791
|
ref: ref,
|
|
@@ -3775,18 +3814,18 @@ EyeSlash.defaultProps = {
|
|
|
3775
3814
|
};
|
|
3776
3815
|
var EyeSlash$1 = EyeSlash;
|
|
3777
3816
|
|
|
3778
|
-
var _excluded = ["color", "size", "title"];
|
|
3817
|
+
var _excluded$1 = ["color", "size", "title"];
|
|
3779
3818
|
|
|
3780
3819
|
function _extends$1() { _extends$1 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1.apply(this, arguments); }
|
|
3781
3820
|
|
|
3782
|
-
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
3821
|
+
function _objectWithoutProperties$1(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose$1(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
3783
3822
|
|
|
3784
|
-
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
3823
|
+
function _objectWithoutPropertiesLoose$1(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
3785
3824
|
var Eye = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
3786
3825
|
var color = _ref.color,
|
|
3787
3826
|
size = _ref.size,
|
|
3788
3827
|
title = _ref.title,
|
|
3789
|
-
rest = _objectWithoutProperties(_ref, _excluded);
|
|
3828
|
+
rest = _objectWithoutProperties$1(_ref, _excluded$1);
|
|
3790
3829
|
|
|
3791
3830
|
return /*#__PURE__*/React__default["default"].createElement("svg", _extends$1({
|
|
3792
3831
|
ref: ref,
|
|
@@ -3852,9 +3891,9 @@ function createContextScope(n,o=[]){let r=[];const c=()=>{const t=r.map((t=>/*#_
|
|
|
3852
3891
|
|
|
3853
3892
|
function createCollection(c){const n=c+"CollectionProvider",[l,i]=createContextScope(n),[f,a]=l(n,{collectionRef:{current:null},itemMap:new Map}),u=e=>{const{scope:r,children:t}=e,c=React__default["default"].useRef(null),n=React__default["default"].useRef(new Map).current;return React__default["default"].createElement(f,{scope:r,itemMap:n,collectionRef:c},t)},m=c+"CollectionSlot",s=/*#__PURE__*/React__default["default"].forwardRef(((t,c)=>{const{scope:n,children:l}=t,i=a(m,n),f=useComposedRefs(c,i.collectionRef);return React__default["default"].createElement(Slot,{ref:f},l)})),p=c+"CollectionItemSlot",d="data-radix-collection-item",R=/*#__PURE__*/React__default["default"].forwardRef(((t,c)=>{const{scope:n,children:l,...i}=t,f=React__default["default"].useRef(null),u=useComposedRefs(c,f),m=a(p,n);return React__default["default"].useEffect((()=>(m.itemMap.set(f,{ref:f,...i}),()=>{m.itemMap.delete(f);}))),/*#__PURE__*/React__default["default"].createElement(Slot,{[d]:"",ref:u},l)}));return [{Provider:u,Slot:s,ItemSlot:R},function(e){const r=a(c+"CollectionConsumer",e);return React__default["default"].useCallback((()=>{const e=r.collectionRef.current;if(!e)return [];const t=Array.from(e.querySelectorAll(`[${d}]`));return Array.from(r.itemMap.values()).sort(((e,r)=>t.indexOf(e.ref.current)-t.indexOf(r.ref.current)))}),[r.collectionRef,r.itemMap])},i]}
|
|
3854
3893
|
|
|
3855
|
-
function composeEventHandlers(e,n,{checkForDefaultPrevented:t=!0}={}){return function(r){if(null==e||e(r),!1===t||!r.defaultPrevented)return null==n?void 0:n(r)}}
|
|
3894
|
+
function composeEventHandlers$1(e,n,{checkForDefaultPrevented:t=!0}={}){return function(r){if(null==e||e(r),!1===t||!r.defaultPrevented)return null==n?void 0:n(r)}}
|
|
3856
3895
|
|
|
3857
|
-
const f$3={bubbles:!1,cancelable:!0},[p$1,l$2,m$2]=createCollection("RovingFocusGroup"),[d$3,v$1]=createContextScope("RovingFocusGroup",[m$2]);const[g$2,F$1]=d$3("RovingFocusGroup");const RovingFocusGroup=/*#__PURE__*/React__namespace.forwardRef(((e,o)=>/*#__PURE__*/React__namespace.createElement(p$1.Provider,{scope:e.__scopeRovingFocusGroup},/*#__PURE__*/React__namespace.createElement(p$1.Slot,{scope:e.__scopeRovingFocusGroup},/*#__PURE__*/React__namespace.createElement(w$2,_extends({},e,{ref:o}))))));const w$2=/*#__PURE__*/React__namespace.forwardRef(((t,n)=>{const{__scopeRovingFocusGroup:c,orientation:p,dir:m="ltr",loop:d=!1,currentTabStopId:v,defaultCurrentTabStopId:F,onCurrentTabStopIdChange:w,onEntryFocus:b,...x}=t,E=React__namespace.useRef(null),I=useComposedRefs(n,E),[G=null,h]=useControllableState({prop:v,defaultProp:F,onChange:w}),[T,A]=React__namespace.useState(!1),y=useCallbackRef$1(b),D=l$2(c),S=React__namespace.useRef(!1);return React__namespace.useEffect((()=>{const e=E.current;if(e)return e.addEventListener("rovingFocusGroup.onEntryFocus",y),()=>e.removeEventListener("rovingFocusGroup.onEntryFocus",y)}),[y]),/*#__PURE__*/React__namespace.createElement(g$2,{scope:c,orientation:p,dir:m,loop:d,currentTabStopId:G,onItemFocus:React__namespace.useCallback((e=>h(e)),[h]),onItemShiftTab:React__namespace.useCallback((()=>A(!0)),[])},/*#__PURE__*/React__namespace.createElement(Primitive.div,_extends({tabIndex:T?-1:0,"data-orientation":p},x,{ref:I,style:{outline:"none",...t.style},onMouseDown:composeEventHandlers(t.onMouseDown,(()=>{S.current=!0;})),onFocus:composeEventHandlers(t.onFocus,(e=>{const o=!S.current;if(e.target===e.currentTarget&&o&&!T){const o=new Event("rovingFocusGroup.onEntryFocus",f$3);if(e.currentTarget.dispatchEvent(o),!o.defaultPrevented){const e=D().filter((e=>e.focusable));R$1([e.find((e=>e.active)),e.find((e=>e.id===G)),...e].filter(Boolean).map((e=>e.ref.current)));}}S.current=!1;})),onBlur:composeEventHandlers(t.onBlur,(()=>A(!1)))})))}));const RovingFocusGroupItem=/*#__PURE__*/React__namespace.forwardRef(((e,o)=>{const{__scopeRovingFocusGroup:n,focusable:i=!0,active:c=!1,...f}=e,m=useId(),d=F$1("RovingFocusGroupItem",n),v=d.currentTabStopId===m,g=l$2(n);return React__namespace.createElement(p$1.ItemSlot,{scope:n,id:m,focusable:i,active:c},/*#__PURE__*/React__namespace.createElement(Primitive.span,_extends({tabIndex:v?0:-1,"data-orientation":d.orientation},f,{ref:o,onMouseDown:composeEventHandlers(e.onMouseDown,(e=>{i?d.onItemFocus(m):e.preventDefault();})),onFocus:composeEventHandlers(e.onFocus,(()=>d.onItemFocus(m))),onKeyDown:composeEventHandlers(e.onKeyDown,(e=>{if("Tab"===e.key&&e.shiftKey)return void d.onItemShiftTab();if(e.target!==e.currentTarget)return;const o=function(e,o,r){const t=function(e,o){return "rtl"!==o?e:"ArrowLeft"===e?"ArrowRight":"ArrowRight"===e?"ArrowLeft":e}(e.key,r);return "vertical"===o&&["ArrowLeft","ArrowRight"].includes(t)||"horizontal"===o&&["ArrowUp","ArrowDown"].includes(t)?void 0:b$2[t]}(e,d.orientation,d.dir);if(void 0!==o){e.preventDefault();let n=g().filter((e=>e.focusable)).map((e=>e.ref.current));if("last"===o)n.reverse();else if("prev"===o||"next"===o){"prev"===o&&n.reverse();const i=n.indexOf(e.currentTarget);n=d.loop?(t=i+1,(r=n).map(((e,o)=>r[(t+o)%r.length]))):n.slice(i+1);}setTimeout((()=>R$1(n)));}var r,t;}))})))}));const b$2={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function R$1(e){const o=document.activeElement;for(const r of e){if(r===o)return;if(r.focus(),document.activeElement!==o)return}}const Root$8=RovingFocusGroup;const Item$2=RovingFocusGroupItem;
|
|
3896
|
+
const f$3={bubbles:!1,cancelable:!0},[p$1,l$2,m$2]=createCollection("RovingFocusGroup"),[d$3,v$1]=createContextScope("RovingFocusGroup",[m$2]);const[g$2,F$1]=d$3("RovingFocusGroup");const RovingFocusGroup=/*#__PURE__*/React__namespace.forwardRef(((e,o)=>/*#__PURE__*/React__namespace.createElement(p$1.Provider,{scope:e.__scopeRovingFocusGroup},/*#__PURE__*/React__namespace.createElement(p$1.Slot,{scope:e.__scopeRovingFocusGroup},/*#__PURE__*/React__namespace.createElement(w$2,_extends({},e,{ref:o}))))));const w$2=/*#__PURE__*/React__namespace.forwardRef(((t,n)=>{const{__scopeRovingFocusGroup:c,orientation:p,dir:m="ltr",loop:d=!1,currentTabStopId:v,defaultCurrentTabStopId:F,onCurrentTabStopIdChange:w,onEntryFocus:b,...x}=t,E=React__namespace.useRef(null),I=useComposedRefs(n,E),[G=null,h]=useControllableState({prop:v,defaultProp:F,onChange:w}),[T,A]=React__namespace.useState(!1),y=useCallbackRef$1(b),D=l$2(c),S=React__namespace.useRef(!1);return React__namespace.useEffect((()=>{const e=E.current;if(e)return e.addEventListener("rovingFocusGroup.onEntryFocus",y),()=>e.removeEventListener("rovingFocusGroup.onEntryFocus",y)}),[y]),/*#__PURE__*/React__namespace.createElement(g$2,{scope:c,orientation:p,dir:m,loop:d,currentTabStopId:G,onItemFocus:React__namespace.useCallback((e=>h(e)),[h]),onItemShiftTab:React__namespace.useCallback((()=>A(!0)),[])},/*#__PURE__*/React__namespace.createElement(Primitive.div,_extends({tabIndex:T?-1:0,"data-orientation":p},x,{ref:I,style:{outline:"none",...t.style},onMouseDown:composeEventHandlers$1(t.onMouseDown,(()=>{S.current=!0;})),onFocus:composeEventHandlers$1(t.onFocus,(e=>{const o=!S.current;if(e.target===e.currentTarget&&o&&!T){const o=new Event("rovingFocusGroup.onEntryFocus",f$3);if(e.currentTarget.dispatchEvent(o),!o.defaultPrevented){const e=D().filter((e=>e.focusable));R$1([e.find((e=>e.active)),e.find((e=>e.id===G)),...e].filter(Boolean).map((e=>e.ref.current)));}}S.current=!1;})),onBlur:composeEventHandlers$1(t.onBlur,(()=>A(!1)))})))}));const RovingFocusGroupItem=/*#__PURE__*/React__namespace.forwardRef(((e,o)=>{const{__scopeRovingFocusGroup:n,focusable:i=!0,active:c=!1,...f}=e,m=useId(),d=F$1("RovingFocusGroupItem",n),v=d.currentTabStopId===m,g=l$2(n);return React__namespace.createElement(p$1.ItemSlot,{scope:n,id:m,focusable:i,active:c},/*#__PURE__*/React__namespace.createElement(Primitive.span,_extends({tabIndex:v?0:-1,"data-orientation":d.orientation},f,{ref:o,onMouseDown:composeEventHandlers$1(e.onMouseDown,(e=>{i?d.onItemFocus(m):e.preventDefault();})),onFocus:composeEventHandlers$1(e.onFocus,(()=>d.onItemFocus(m))),onKeyDown:composeEventHandlers$1(e.onKeyDown,(e=>{if("Tab"===e.key&&e.shiftKey)return void d.onItemShiftTab();if(e.target!==e.currentTarget)return;const o=function(e,o,r){const t=function(e,o){return "rtl"!==o?e:"ArrowLeft"===e?"ArrowRight":"ArrowRight"===e?"ArrowLeft":e}(e.key,r);return "vertical"===o&&["ArrowLeft","ArrowRight"].includes(t)||"horizontal"===o&&["ArrowUp","ArrowDown"].includes(t)?void 0:b$2[t]}(e,d.orientation,d.dir);if(void 0!==o){e.preventDefault();let n=g().filter((e=>e.focusable)).map((e=>e.ref.current));if("last"===o)n.reverse();else if("prev"===o||"next"===o){"prev"===o&&n.reverse();const i=n.indexOf(e.currentTarget);n=d.loop?(t=i+1,(r=n).map(((e,o)=>r[(t+o)%r.length]))):n.slice(i+1);}setTimeout((()=>R$1(n)));}var r,t;}))})))}));const b$2={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function R$1(e){const o=document.activeElement;for(const r of e){if(r===o)return;if(r.focus(),document.activeElement!==o)return}}const Root$8=RovingFocusGroup;const Item$2=RovingFocusGroupItem;
|
|
3858
3897
|
|
|
3859
3898
|
const Portal=/*#__PURE__*/React__namespace.forwardRef(((a,i)=>{var n,d;const{containerRef:s,style:u,...c}=a,m=null!==(n=null==s?void 0:s.current)&&void 0!==n?n:null===globalThis||void 0===globalThis||null===(d=globalThis.document)||void 0===d?void 0:d.body,[,f]=React__namespace.useState({});return useLayoutEffect((()=>{f({});}),[]),m?/*#__PURE__*/e__default["default"].createPortal(/*#__PURE__*/React__namespace.createElement(Primitive.div,_extends({"data-radix-portal":""},c,{ref:i,style:m===document.body?{position:"absolute",top:0,left:0,zIndex:2147483647,...u}:void 0})),m):null}));
|
|
3860
3899
|
|
|
@@ -3878,7 +3917,7 @@ function useEscapeKeydown(n){const o=useCallbackRef$1(n);React__namespace.useEff
|
|
|
3878
3917
|
|
|
3879
3918
|
let n$1,o=0;function useBodyPointerEvents({disabled:r}){const i=React__namespace.useRef(!1);useLayoutEffect((()=>{if(r){function e(){o--,0===o&&(document.body.style.pointerEvents=n$1);}function t(e){i.current="mouse"!==e.pointerType;}return 0===o&&(n$1=document.body.style.pointerEvents),document.body.style.pointerEvents="none",o++,document.addEventListener("pointerup",t),()=>{i.current?document.addEventListener("click",e,{once:!0}):e(),document.removeEventListener("pointerup",t);}}}),[r]);}
|
|
3880
3919
|
|
|
3881
|
-
const u=/*#__PURE__*/React__namespace.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set});const DismissableLayer=/*#__PURE__*/React__namespace.forwardRef(((l,m)=>{const{disableOutsidePointerEvents:f=!1,onEscapeKeyDown:p,onPointerDownOutside:v,onFocusOutside:b,onInteractOutside:E,onDismiss:y,...w}=l,h=React__namespace.useContext(u),[D,x]=React__namespace.useState(null),[,C]=React__namespace.useState({}),L=useComposedRefs(m,(e=>x(e))),P=Array.from(h.layers),[O]=[...h.layersWithOutsidePointerEventsDisabled].slice(-1),g=P.indexOf(O),B=D?P.indexOf(D):-1,R=h.layersWithOutsidePointerEventsDisabled.size>0,F=B>=g,S=function(e){const n=useCallbackRef$1(e),r=React__namespace.useRef(!1);return React__namespace.useEffect((()=>{const e=e=>{if(e.target&&!r.current){d("dismissableLayer.pointerDownOutside",n,{originalEvent:e});}r.current=!1;},t=window.setTimeout((()=>{document.addEventListener("pointerdown",e);}),0);return ()=>{window.clearTimeout(t),document.removeEventListener("pointerdown",e);}}),[n]),{onPointerDownCapture:()=>r.current=!0}}((e=>{const t=e.target,n=[...h.branches].some((e=>e.contains(t)));F&&!n&&(null==v||v(e),null==E||E(e),e.defaultPrevented||null==y||y());})),W=function(e){const n=useCallbackRef$1(e),r=React__namespace.useRef(!1);return React__namespace.useEffect((()=>{const e=e=>{if(e.target&&!r.current){d("dismissableLayer.focusOutside",n,{originalEvent:e});}};return document.addEventListener("focusin",e),()=>document.removeEventListener("focusin",e)}),[n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}((e=>{const t=e.target;[...h.branches].some((e=>e.contains(t)))||(null==b||b(e),null==E||E(e),e.defaultPrevented||null==y||y());}));return useEscapeKeydown((e=>{B===h.layers.size-1&&(null==p||p(e),e.defaultPrevented||null==y||y());})),useBodyPointerEvents({disabled:f}),React__namespace.useEffect((()=>{D&&(f&&h.layersWithOutsidePointerEventsDisabled.add(D),h.layers.add(D),c());}),[D,f,h]),React__namespace.useEffect((()=>()=>{D&&(h.layers.delete(D),h.layersWithOutsidePointerEventsDisabled.delete(D),c());}),[D,h]),React__namespace.useEffect((()=>{const e=()=>C({});return document.addEventListener("dismissableLayer.update",e),()=>document.removeEventListener("dismissableLayer.update",e)}),[]),/*#__PURE__*/React__namespace.createElement(Primitive.div,_extends({},w,{ref:L,style:{pointerEvents:R?F?"auto":"none":void 0,...l.style},onFocusCapture:composeEventHandlers(l.onFocusCapture,W.onFocusCapture),onBlurCapture:composeEventHandlers(l.onBlurCapture,W.onBlurCapture),onPointerDownCapture:composeEventHandlers(l.onPointerDownCapture,S.onPointerDownCapture)}))}));function c(){const e=new Event("dismissableLayer.update");document.dispatchEvent(e);}function d(e,t,n){const r=n.originalEvent.target,s=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});return t&&r.addEventListener(e,t,{once:!0}),!r.dispatchEvent(s)}
|
|
3920
|
+
const u=/*#__PURE__*/React__namespace.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set});const DismissableLayer=/*#__PURE__*/React__namespace.forwardRef(((l,m)=>{const{disableOutsidePointerEvents:f=!1,onEscapeKeyDown:p,onPointerDownOutside:v,onFocusOutside:b,onInteractOutside:E,onDismiss:y,...w}=l,h=React__namespace.useContext(u),[D,x]=React__namespace.useState(null),[,C]=React__namespace.useState({}),L=useComposedRefs(m,(e=>x(e))),P=Array.from(h.layers),[O]=[...h.layersWithOutsidePointerEventsDisabled].slice(-1),g=P.indexOf(O),B=D?P.indexOf(D):-1,R=h.layersWithOutsidePointerEventsDisabled.size>0,F=B>=g,S=function(e){const n=useCallbackRef$1(e),r=React__namespace.useRef(!1);return React__namespace.useEffect((()=>{const e=e=>{if(e.target&&!r.current){d("dismissableLayer.pointerDownOutside",n,{originalEvent:e});}r.current=!1;},t=window.setTimeout((()=>{document.addEventListener("pointerdown",e);}),0);return ()=>{window.clearTimeout(t),document.removeEventListener("pointerdown",e);}}),[n]),{onPointerDownCapture:()=>r.current=!0}}((e=>{const t=e.target,n=[...h.branches].some((e=>e.contains(t)));F&&!n&&(null==v||v(e),null==E||E(e),e.defaultPrevented||null==y||y());})),W=function(e){const n=useCallbackRef$1(e),r=React__namespace.useRef(!1);return React__namespace.useEffect((()=>{const e=e=>{if(e.target&&!r.current){d("dismissableLayer.focusOutside",n,{originalEvent:e});}};return document.addEventListener("focusin",e),()=>document.removeEventListener("focusin",e)}),[n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}((e=>{const t=e.target;[...h.branches].some((e=>e.contains(t)))||(null==b||b(e),null==E||E(e),e.defaultPrevented||null==y||y());}));return useEscapeKeydown((e=>{B===h.layers.size-1&&(null==p||p(e),e.defaultPrevented||null==y||y());})),useBodyPointerEvents({disabled:f}),React__namespace.useEffect((()=>{D&&(f&&h.layersWithOutsidePointerEventsDisabled.add(D),h.layers.add(D),c());}),[D,f,h]),React__namespace.useEffect((()=>()=>{D&&(h.layers.delete(D),h.layersWithOutsidePointerEventsDisabled.delete(D),c());}),[D,h]),React__namespace.useEffect((()=>{const e=()=>C({});return document.addEventListener("dismissableLayer.update",e),()=>document.removeEventListener("dismissableLayer.update",e)}),[]),/*#__PURE__*/React__namespace.createElement(Primitive.div,_extends({},w,{ref:L,style:{pointerEvents:R?F?"auto":"none":void 0,...l.style},onFocusCapture:composeEventHandlers$1(l.onFocusCapture,W.onFocusCapture),onBlurCapture:composeEventHandlers$1(l.onBlurCapture,W.onBlurCapture),onPointerDownCapture:composeEventHandlers$1(l.onPointerDownCapture,S.onPointerDownCapture)}))}));function c(){const e=new Event("dismissableLayer.update");document.dispatchEvent(e);}function d(e,t,n){const r=n.originalEvent.target,s=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});return t&&r.addEventListener(e,t,{once:!0}),!r.dispatchEvent(s)}
|
|
3882
3921
|
|
|
3883
3922
|
var getDefaultParent = function (originalTarget) {
|
|
3884
3923
|
if (typeof document === 'undefined') {
|
|
@@ -4004,7 +4043,7 @@ function __rest$1(s, e) {
|
|
|
4004
4043
|
return t;
|
|
4005
4044
|
}
|
|
4006
4045
|
|
|
4007
|
-
function __spreadArray(to, from, pack) {
|
|
4046
|
+
function __spreadArray$1(to, from, pack) {
|
|
4008
4047
|
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
4009
4048
|
if (ar || !(i in from)) {
|
|
4010
4049
|
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
@@ -4556,7 +4595,7 @@ function RemoveScrollSideCar(props) {
|
|
|
4556
4595
|
React__namespace.useEffect(function () {
|
|
4557
4596
|
if (props.inert) {
|
|
4558
4597
|
document.body.classList.add("block-interactivity-".concat(id));
|
|
4559
|
-
var allow_1 = __spreadArray([props.lockRef.current], (props.shards || []).map(extractRef), true).filter(Boolean);
|
|
4598
|
+
var allow_1 = __spreadArray$1([props.lockRef.current], (props.shards || []).map(extractRef), true).filter(Boolean);
|
|
4560
4599
|
allow_1.forEach(function (el) { return el.classList.add("allow-interactivity-".concat(id)); });
|
|
4561
4600
|
return function () {
|
|
4562
4601
|
document.body.classList.remove("block-interactivity-".concat(id));
|
|
@@ -4675,42 +4714,12 @@ var ReactRemoveScroll = React__namespace.forwardRef(function (props, ref) { retu
|
|
|
4675
4714
|
ReactRemoveScroll.classNames = RemoveScroll.classNames;
|
|
4676
4715
|
var C = ReactRemoveScroll;
|
|
4677
4716
|
|
|
4678
|
-
const x$1=["Enter"," "],b$1=["ArrowUp","PageDown","End"],R=["ArrowDown","PageUp","Home",...b$1],y$1={ltr:["ArrowLeft"],rtl:["ArrowRight"]},[I,k$1,P]=createCollection("Menu"),[D$1,S]=createContextScope("Menu",[P,l$1,v$1]);const O=l$1(),T=v$1(),[L,A]=D$1("Menu");const Menu=e=>{const{__scopeMenu:n,open:o=!1,children:u,onOpenChange:c,modal:i=!0}=e,s=O(n),[l,d]=React__namespace.useState(null),p=React__namespace.useRef(!1),f=useCallbackRef$1(c),m=useDirection(l,e.dir);return React__namespace.useEffect((()=>{const e=()=>{p.current=!0,document.addEventListener("pointerdown",n,{capture:!0,once:!0}),document.addEventListener("pointermove",n,{capture:!0,once:!0});},n=()=>p.current=!1;return document.addEventListener("keydown",e,{capture:!0}),()=>{document.removeEventListener("keydown",e,{capture:!0}),document.removeEventListener("pointerdown",n,{capture:!0}),document.removeEventListener("pointermove",n,{capture:!0});}}),[]),/*#__PURE__*/React__namespace.createElement(Root$6,s,/*#__PURE__*/React__namespace.createElement(L,{scope:n,isSubmenu:!1,isUsingKeyboardRef:p,dir:m,open:o,onOpenChange:f,content:l,onContentChange:d,onRootClose:React__namespace.useCallback((()=>f(!1)),[f]),modal:i},u))};const MenuSub=n=>{const{__scopeMenu:r,children:o,open:u=!1,onOpenChange:c}=n,i=A("MenuSub",r),s=O(r),[l,d]=React__namespace.useState(null),[p,f]=React__namespace.useState(null),m=useCallbackRef$1(c);return React__namespace.useEffect((()=>(!1===i.open&&m(!1),()=>m(!1))),[i.open,m]),/*#__PURE__*/React__namespace.createElement(Root$6,s,/*#__PURE__*/React__namespace.createElement(L,{scope:r,isSubmenu:!0,isUsingKeyboardRef:i.isUsingKeyboardRef,dir:i.dir,open:u,onOpenChange:m,content:p,onContentChange:f,onRootClose:i.onRootClose,contentId:useId(),trigger:l,onTriggerChange:d,triggerId:useId(),modal:!1},o))};const MenuAnchor=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const{__scopeMenu:t,...r}=e,o=O(t);return React__namespace.createElement(Anchor$1,_extends({},o,r,{ref:n}))}));const[F,K]=D$1("MenuContent");const MenuContent=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const{forceMount:t,...r}=e,o=A("MenuContent",e.__scopeMenu);return React__namespace.createElement(I.Provider,{scope:e.__scopeMenu},/*#__PURE__*/React__namespace.createElement(Presence,{present:t||o.open},/*#__PURE__*/React__namespace.createElement(I.Slot,{scope:e.__scopeMenu},o.isSubmenu?/*#__PURE__*/React__namespace.createElement(X,_extends({},r,{ref:n})):/*#__PURE__*/React__namespace.createElement(G,_extends({},r,{ref:n})))))}));const G=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>A("MenuContent",e.__scopeMenu).modal?/*#__PURE__*/React__namespace.createElement(U,_extends({},e,{ref:n})):/*#__PURE__*/React__namespace.createElement(V,_extends({},e,{ref:n})))),U=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const t=A("MenuContent",e.__scopeMenu),r=React__namespace.useRef(null),o=useComposedRefs(n,r);return React__namespace.useEffect((()=>{const e=r.current;if(e)return hideOthers(e)}),[]),/*#__PURE__*/React__namespace.createElement(B,_extends({},e,{ref:o,trapFocus:t.open,disableOutsidePointerEvents:t.open,disableOutsideScroll:!0,onFocusOutside:composeEventHandlers(e.onFocusOutside,(e=>e.preventDefault()),{checkForDefaultPrevented:!1}),onDismiss:()=>t.onOpenChange(!1)}))})),V=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const t=A("MenuContent",e.__scopeMenu);return React__namespace.createElement(B,_extends({},e,{ref:n,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>t.onOpenChange(!1)}))})),X=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const t=A("MenuContent",e.__scopeMenu),r=React__namespace.useRef(null),o=useComposedRefs(n,r);return t.isSubmenu?/*#__PURE__*/React__namespace.createElement(B,_extends({id:t.contentId,"aria-labelledby":t.triggerId},e,{ref:o,align:"start",side:"rtl"===t.dir?"left":"right",portalled:!0,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:e=>{var n;t.isUsingKeyboardRef.current&&(null===(n=r.current)||void 0===n||n.focus()),e.preventDefault();},onCloseAutoFocus:e=>e.preventDefault(),onFocusOutside:composeEventHandlers(e.onFocusOutside,(e=>{e.target!==t.trigger&&t.onOpenChange(!1);})),onEscapeKeyDown:composeEventHandlers(e.onEscapeKeyDown,t.onRootClose),onKeyDown:composeEventHandlers(e.onKeyDown,(e=>{const n=e.currentTarget.contains(e.target),r=y$1[t.dir].includes(e.key);var o;n&&r&&(t.onOpenChange(!1),null===(o=t.trigger)||void 0===o||o.focus(),e.preventDefault());}))})):null})),B=/*#__PURE__*/React__namespace.forwardRef(((e,t)=>{const{__scopeMenu:r,loop:u=!1,trapFocus:i,onOpenAutoFocus:s,onCloseAutoFocus:l,disableOutsidePointerEvents:f,onEscapeKeyDown:v,onPointerDownOutside:g,onFocusOutside:h,onInteractOutside:x,onDismiss:_,disableOutsideScroll:y,allowPinchZoom:I,portalled:P,...D}=e,S=A("MenuContent",r),L=O(r),K=T(r),G=k$1(r),[U,V]=React__namespace.useState(null),X=React__namespace.useRef(null),B=useComposedRefs(t,X,S.onContentChange),Y=React__namespace.useRef(0),Z=React__namespace.useRef(""),z=React__namespace.useRef(0),H=React__namespace.useRef(null),W=React__namespace.useRef("right"),q=React__namespace.useRef(0),N=P?Portal:React__namespace.Fragment,Q=y?C:React__namespace.Fragment,$=y?{allowPinchZoom:I}:void 0,ee=e=>{var n,t;const r=Z.current+e,o=G().filter((e=>!e.disabled)),u=document.activeElement,c=null===(n=o.find((e=>e.ref.current===u)))||void 0===n?void 0:n.textValue,a=function(e,n,t){const r=n.length>1&&Array.from(n).every((e=>e===n[0]))?n[0]:n,o=t?e.indexOf(t):-1;let u=(c=e,a=Math.max(o,0),c.map(((e,n)=>c[(a+n)%c.length])));var c,a;1===r.length&&(u=u.filter((e=>e!==t)));const i=u.find((e=>e.toLowerCase().startsWith(r.toLowerCase())));return i!==t?i:void 0}(o.map((e=>e.textValue)),r,c),i=null===(t=o.find((e=>e.textValue===a)))||void 0===t?void 0:t.ref.current;!function e(n){Z.current=n,window.clearTimeout(Y.current),""!==n&&(Y.current=window.setTimeout((()=>e("")),1e3));}(r),i&&setTimeout((()=>i.focus()));};React__namespace.useEffect((()=>()=>window.clearTimeout(Y.current)),[]),useFocusGuards();const ne=React__namespace.useCallback((e=>{var n,t;return W.current===(null===(n=H.current)||void 0===n?void 0:n.side)&&function(e,n){if(!n)return !1;return function(e,n){const{x:t,y:r}=e;let o=!1;for(let e=0,u=n.length-1;e<n.length;u=e++){const c=n[e].x,a=n[e].y,i=n[u].x,s=n[u].y;a>r!=s>r&&t<(i-c)*(r-a)/(s-a)+c&&(o=!o);}return o}({x:e.clientX,y:e.clientY},n)}(e,null===(t=H.current)||void 0===t?void 0:t.area)}),[]);return React__namespace.createElement(N,null,/*#__PURE__*/React__namespace.createElement(Q,$,/*#__PURE__*/React__namespace.createElement(F,{scope:r,searchRef:Z,onItemEnter:React__namespace.useCallback((e=>{ne(e)&&e.preventDefault();}),[ne]),onItemLeave:React__namespace.useCallback((e=>{var n;ne(e)||(null===(n=X.current)||void 0===n||n.focus(),V(null));}),[ne]),onTriggerLeave:React__namespace.useCallback((e=>{ne(e)&&e.preventDefault();}),[ne]),pointerGraceTimerRef:z,onPointerGraceIntentChange:React__namespace.useCallback((e=>{H.current=e;}),[])},/*#__PURE__*/React__namespace.createElement(FocusScope,{asChild:!0,trapped:i,onMountAutoFocus:composeEventHandlers(s,(e=>{var n;e.preventDefault(),null===(n=X.current)||void 0===n||n.focus();})),onUnmountAutoFocus:l},/*#__PURE__*/React__namespace.createElement(DismissableLayer,{asChild:!0,disableOutsidePointerEvents:f,onEscapeKeyDown:v,onPointerDownOutside:g,onFocusOutside:h,onInteractOutside:x,onDismiss:_},/*#__PURE__*/React__namespace.createElement(Root$8,_extends({asChild:!0},K,{dir:S.dir,orientation:"vertical",loop:u,currentTabStopId:U,onCurrentTabStopIdChange:V,onEntryFocus:e=>{S.isUsingKeyboardRef.current||e.preventDefault();}}),/*#__PURE__*/React__namespace.createElement(Content$4,_extends({role:"menu","aria-orientation":"vertical","data-state":j(S.open),dir:S.dir},L,D,{ref:B,style:{outline:"none",...D.style},onKeyDown:composeEventHandlers(D.onKeyDown,(e=>{const n=e.target,t=e.currentTarget.contains(n),r=e.ctrlKey||e.altKey||e.metaKey,o=1===e.key.length;t&&("Tab"===e.key&&e.preventDefault(),!r&&o&&ee(e.key));const u=X.current;if(e.target!==u)return;if(!R.includes(e.key))return;e.preventDefault();const c=G().filter((e=>!e.disabled)).map((e=>e.ref.current));b$1.includes(e.key)&&c.reverse(),function(e){const n=document.activeElement;for(const t of e){if(t===n)return;if(t.focus(),document.activeElement!==n)return}}(c);})),onBlur:composeEventHandlers(e.onBlur,(e=>{e.currentTarget.contains(e.target)||(window.clearTimeout(Y.current),Z.current="");})),onPointerMove:composeEventHandlers(e.onPointerMove,J((e=>{const n=e.target,t=q.current!==e.clientX;if(e.currentTarget.contains(n)&&t){const n=e.clientX>q.current?"right":"left";W.current=n,q.current=e.clientX;}})))}))))))))}));const MenuGroup=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const{__scopeMenu:t,...r}=e;return React__namespace.createElement(Primitive.div,_extends({role:"group"},r,{ref:n}))}));const MenuLabel=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const{__scopeMenu:t,...r}=e;return React__namespace.createElement(Primitive.div,_extends({},r,{ref:n}))}));const MenuItem=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const{disabled:t=!1,onSelect:r,...o}=e,u=React__namespace.useRef(null),c=A("MenuItem",e.__scopeMenu),a=K("MenuItem",e.__scopeMenu),i=useComposedRefs(n,u),s=React__namespace.useRef(!1);return React__namespace.createElement(Y,_extends({},o,{ref:i,disabled:t,onClick:composeEventHandlers(e.onClick,(()=>{const e=u.current;if(!t&&e){const n=new Event("menu.itemSelect",{bubbles:!0,cancelable:!0});e.addEventListener("menu.itemSelect",(e=>null==r?void 0:r(e)),{once:!0}),e.dispatchEvent(n),n.defaultPrevented?s.current=!1:c.onRootClose();}})),onPointerDown:n=>{var t;null===(t=e.onPointerDown)||void 0===t||t.call(e,n),s.current=!0;},onPointerUp:composeEventHandlers(e.onPointerUp,(e=>{var n;s.current||null===(n=e.currentTarget)||void 0===n||n.click();})),onKeyDown:composeEventHandlers(e.onKeyDown,(e=>{const n=""!==a.searchRef.current;t||n&&" "===e.key||x$1.includes(e.key)&&(e.currentTarget.click(),e.preventDefault());}))}))}));const Y=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const{__scopeMenu:t,disabled:r=!1,textValue:u,...c}=e,a=K("MenuItem",t),i=T(t),l=React__namespace.useRef(null),d=useComposedRefs(n,l),[p,f]=React__namespace.useState("");return React__namespace.useEffect((()=>{const e=l.current;var n;e&&f((null!==(n=e.textContent)&&void 0!==n?n:"").trim());}),[c.children]),/*#__PURE__*/React__namespace.createElement(I.ItemSlot,{scope:t,disabled:r,textValue:null!=u?u:p},/*#__PURE__*/React__namespace.createElement(Item$2,_extends({asChild:!0},i,{focusable:!r}),/*#__PURE__*/React__namespace.createElement(Primitive.div,_extends({role:"menuitem","aria-disabled":r||void 0,"data-disabled":r?"":void 0},c,{ref:d,onPointerMove:composeEventHandlers(e.onPointerMove,J((e=>{if(r)a.onItemLeave(e);else if(a.onItemEnter(e),!e.defaultPrevented){e.currentTarget.focus();}}))),onPointerLeave:composeEventHandlers(e.onPointerLeave,J((e=>a.onItemLeave(e))))}))))}));const MenuCheckboxItem=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const{checked:t=!1,onCheckedChange:r,...o}=e;return React__namespace.createElement(H,{scope:e.__scopeMenu,checked:t},/*#__PURE__*/React__namespace.createElement(MenuItem,_extends({role:"menuitemcheckbox","aria-checked":t},o,{ref:n,"data-state":q(t),onSelect:composeEventHandlers(o.onSelect,(()=>null==r?void 0:r(!t)),{checkForDefaultPrevented:!1})})))}));const[Z,z]=D$1("MenuRadioGroup",{value:void 0,onValueChange:()=>{}});const MenuRadioGroup=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const{value:r,onValueChange:o,...u}=e,c=useCallbackRef$1(o);return React__namespace.createElement(Z,{scope:e.__scopeMenu,value:r,onValueChange:c},/*#__PURE__*/React__namespace.createElement(MenuGroup,_extends({},u,{ref:n})))}));const MenuRadioItem=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const{value:t,...r}=e,o=z("MenuRadioItem",e.__scopeMenu),u=t===o.value;return React__namespace.createElement(H,{scope:e.__scopeMenu,checked:u},/*#__PURE__*/React__namespace.createElement(MenuItem,_extends({role:"menuitemradio","aria-checked":u},r,{ref:n,"data-state":q(u),onSelect:composeEventHandlers(r.onSelect,(()=>{var e;return null===(e=o.onValueChange)||void 0===e?void 0:e.call(o,t)}),{checkForDefaultPrevented:!1})})))}));const[H,W]=D$1("MenuItemIndicator",{checked:!1});const MenuItemIndicator=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const{__scopeMenu:t,forceMount:r,...o}=e,u=W("MenuItemIndicator",t);return React__namespace.createElement(Presence,{present:r||u.checked},/*#__PURE__*/React__namespace.createElement(Primitive.span,_extends({},o,{ref:n,"data-state":q(u.checked)})))}));const MenuArrow=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const{__scopeMenu:t,...r}=e,o=O(t);return React__namespace.createElement(Arrow$4,_extends({},o,r,{ref:n}))}));function j(e){return e?"open":"closed"}function q(e){return e?"checked":"unchecked"}function J(e){return n=>"mouse"===n.pointerType?e(n):void 0}const Root$5=Menu;const Sub=MenuSub;const Anchor=MenuAnchor;const Content$3=MenuContent;const Group$1=MenuGroup;const Label$1=MenuLabel;const Item$1=MenuItem;const CheckboxItem$1=MenuCheckboxItem;const RadioGroup$1=MenuRadioGroup;const RadioItem$1=MenuRadioItem;const ItemIndicator$1=MenuItemIndicator;const Arrow$3=MenuArrow;
|
|
4717
|
+
const x$1=["Enter"," "],b$1=["ArrowUp","PageDown","End"],R=["ArrowDown","PageUp","Home",...b$1],y$1={ltr:["ArrowLeft"],rtl:["ArrowRight"]},[I,k$1,P]=createCollection("Menu"),[D$1,S]=createContextScope("Menu",[P,l$1,v$1]);const O=l$1(),T=v$1(),[L,A]=D$1("Menu");const Menu=e=>{const{__scopeMenu:n,open:o=!1,children:u,onOpenChange:c,modal:i=!0}=e,s=O(n),[l,d]=React__namespace.useState(null),p=React__namespace.useRef(!1),f=useCallbackRef$1(c),m=useDirection(l,e.dir);return React__namespace.useEffect((()=>{const e=()=>{p.current=!0,document.addEventListener("pointerdown",n,{capture:!0,once:!0}),document.addEventListener("pointermove",n,{capture:!0,once:!0});},n=()=>p.current=!1;return document.addEventListener("keydown",e,{capture:!0}),()=>{document.removeEventListener("keydown",e,{capture:!0}),document.removeEventListener("pointerdown",n,{capture:!0}),document.removeEventListener("pointermove",n,{capture:!0});}}),[]),/*#__PURE__*/React__namespace.createElement(Root$6,s,/*#__PURE__*/React__namespace.createElement(L,{scope:n,isSubmenu:!1,isUsingKeyboardRef:p,dir:m,open:o,onOpenChange:f,content:l,onContentChange:d,onRootClose:React__namespace.useCallback((()=>f(!1)),[f]),modal:i},u))};const MenuSub=n=>{const{__scopeMenu:r,children:o,open:u=!1,onOpenChange:c}=n,i=A("MenuSub",r),s=O(r),[l,d]=React__namespace.useState(null),[p,f]=React__namespace.useState(null),m=useCallbackRef$1(c);return React__namespace.useEffect((()=>(!1===i.open&&m(!1),()=>m(!1))),[i.open,m]),/*#__PURE__*/React__namespace.createElement(Root$6,s,/*#__PURE__*/React__namespace.createElement(L,{scope:r,isSubmenu:!0,isUsingKeyboardRef:i.isUsingKeyboardRef,dir:i.dir,open:u,onOpenChange:m,content:p,onContentChange:f,onRootClose:i.onRootClose,contentId:useId(),trigger:l,onTriggerChange:d,triggerId:useId(),modal:!1},o))};const MenuAnchor=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const{__scopeMenu:t,...r}=e,o=O(t);return React__namespace.createElement(Anchor$1,_extends({},o,r,{ref:n}))}));const[F,K]=D$1("MenuContent");const MenuContent=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const{forceMount:t,...r}=e,o=A("MenuContent",e.__scopeMenu);return React__namespace.createElement(I.Provider,{scope:e.__scopeMenu},/*#__PURE__*/React__namespace.createElement(Presence,{present:t||o.open},/*#__PURE__*/React__namespace.createElement(I.Slot,{scope:e.__scopeMenu},o.isSubmenu?/*#__PURE__*/React__namespace.createElement(X,_extends({},r,{ref:n})):/*#__PURE__*/React__namespace.createElement(G,_extends({},r,{ref:n})))))}));const G=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>A("MenuContent",e.__scopeMenu).modal?/*#__PURE__*/React__namespace.createElement(U,_extends({},e,{ref:n})):/*#__PURE__*/React__namespace.createElement(V,_extends({},e,{ref:n})))),U=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const t=A("MenuContent",e.__scopeMenu),r=React__namespace.useRef(null),o=useComposedRefs(n,r);return React__namespace.useEffect((()=>{const e=r.current;if(e)return hideOthers(e)}),[]),/*#__PURE__*/React__namespace.createElement(B,_extends({},e,{ref:o,trapFocus:t.open,disableOutsidePointerEvents:t.open,disableOutsideScroll:!0,onFocusOutside:composeEventHandlers$1(e.onFocusOutside,(e=>e.preventDefault()),{checkForDefaultPrevented:!1}),onDismiss:()=>t.onOpenChange(!1)}))})),V=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const t=A("MenuContent",e.__scopeMenu);return React__namespace.createElement(B,_extends({},e,{ref:n,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>t.onOpenChange(!1)}))})),X=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const t=A("MenuContent",e.__scopeMenu),r=React__namespace.useRef(null),o=useComposedRefs(n,r);return t.isSubmenu?/*#__PURE__*/React__namespace.createElement(B,_extends({id:t.contentId,"aria-labelledby":t.triggerId},e,{ref:o,align:"start",side:"rtl"===t.dir?"left":"right",portalled:!0,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:e=>{var n;t.isUsingKeyboardRef.current&&(null===(n=r.current)||void 0===n||n.focus()),e.preventDefault();},onCloseAutoFocus:e=>e.preventDefault(),onFocusOutside:composeEventHandlers$1(e.onFocusOutside,(e=>{e.target!==t.trigger&&t.onOpenChange(!1);})),onEscapeKeyDown:composeEventHandlers$1(e.onEscapeKeyDown,t.onRootClose),onKeyDown:composeEventHandlers$1(e.onKeyDown,(e=>{const n=e.currentTarget.contains(e.target),r=y$1[t.dir].includes(e.key);var o;n&&r&&(t.onOpenChange(!1),null===(o=t.trigger)||void 0===o||o.focus(),e.preventDefault());}))})):null})),B=/*#__PURE__*/React__namespace.forwardRef(((e,t)=>{const{__scopeMenu:r,loop:u=!1,trapFocus:i,onOpenAutoFocus:s,onCloseAutoFocus:l,disableOutsidePointerEvents:f,onEscapeKeyDown:v,onPointerDownOutside:g,onFocusOutside:h,onInteractOutside:x,onDismiss:_,disableOutsideScroll:y,allowPinchZoom:I,portalled:P,...D}=e,S=A("MenuContent",r),L=O(r),K=T(r),G=k$1(r),[U,V]=React__namespace.useState(null),X=React__namespace.useRef(null),B=useComposedRefs(t,X,S.onContentChange),Y=React__namespace.useRef(0),Z=React__namespace.useRef(""),z=React__namespace.useRef(0),H=React__namespace.useRef(null),W=React__namespace.useRef("right"),q=React__namespace.useRef(0),N=P?Portal:React__namespace.Fragment,Q=y?C:React__namespace.Fragment,$=y?{allowPinchZoom:I}:void 0,ee=e=>{var n,t;const r=Z.current+e,o=G().filter((e=>!e.disabled)),u=document.activeElement,c=null===(n=o.find((e=>e.ref.current===u)))||void 0===n?void 0:n.textValue,a=function(e,n,t){const r=n.length>1&&Array.from(n).every((e=>e===n[0]))?n[0]:n,o=t?e.indexOf(t):-1;let u=(c=e,a=Math.max(o,0),c.map(((e,n)=>c[(a+n)%c.length])));var c,a;1===r.length&&(u=u.filter((e=>e!==t)));const i=u.find((e=>e.toLowerCase().startsWith(r.toLowerCase())));return i!==t?i:void 0}(o.map((e=>e.textValue)),r,c),i=null===(t=o.find((e=>e.textValue===a)))||void 0===t?void 0:t.ref.current;!function e(n){Z.current=n,window.clearTimeout(Y.current),""!==n&&(Y.current=window.setTimeout((()=>e("")),1e3));}(r),i&&setTimeout((()=>i.focus()));};React__namespace.useEffect((()=>()=>window.clearTimeout(Y.current)),[]),useFocusGuards();const ne=React__namespace.useCallback((e=>{var n,t;return W.current===(null===(n=H.current)||void 0===n?void 0:n.side)&&function(e,n){if(!n)return !1;return function(e,n){const{x:t,y:r}=e;let o=!1;for(let e=0,u=n.length-1;e<n.length;u=e++){const c=n[e].x,a=n[e].y,i=n[u].x,s=n[u].y;a>r!=s>r&&t<(i-c)*(r-a)/(s-a)+c&&(o=!o);}return o}({x:e.clientX,y:e.clientY},n)}(e,null===(t=H.current)||void 0===t?void 0:t.area)}),[]);return React__namespace.createElement(N,null,/*#__PURE__*/React__namespace.createElement(Q,$,/*#__PURE__*/React__namespace.createElement(F,{scope:r,searchRef:Z,onItemEnter:React__namespace.useCallback((e=>{ne(e)&&e.preventDefault();}),[ne]),onItemLeave:React__namespace.useCallback((e=>{var n;ne(e)||(null===(n=X.current)||void 0===n||n.focus(),V(null));}),[ne]),onTriggerLeave:React__namespace.useCallback((e=>{ne(e)&&e.preventDefault();}),[ne]),pointerGraceTimerRef:z,onPointerGraceIntentChange:React__namespace.useCallback((e=>{H.current=e;}),[])},/*#__PURE__*/React__namespace.createElement(FocusScope,{asChild:!0,trapped:i,onMountAutoFocus:composeEventHandlers$1(s,(e=>{var n;e.preventDefault(),null===(n=X.current)||void 0===n||n.focus();})),onUnmountAutoFocus:l},/*#__PURE__*/React__namespace.createElement(DismissableLayer,{asChild:!0,disableOutsidePointerEvents:f,onEscapeKeyDown:v,onPointerDownOutside:g,onFocusOutside:h,onInteractOutside:x,onDismiss:_},/*#__PURE__*/React__namespace.createElement(Root$8,_extends({asChild:!0},K,{dir:S.dir,orientation:"vertical",loop:u,currentTabStopId:U,onCurrentTabStopIdChange:V,onEntryFocus:e=>{S.isUsingKeyboardRef.current||e.preventDefault();}}),/*#__PURE__*/React__namespace.createElement(Content$4,_extends({role:"menu","aria-orientation":"vertical","data-state":j(S.open),dir:S.dir},L,D,{ref:B,style:{outline:"none",...D.style},onKeyDown:composeEventHandlers$1(D.onKeyDown,(e=>{const n=e.target,t=e.currentTarget.contains(n),r=e.ctrlKey||e.altKey||e.metaKey,o=1===e.key.length;t&&("Tab"===e.key&&e.preventDefault(),!r&&o&&ee(e.key));const u=X.current;if(e.target!==u)return;if(!R.includes(e.key))return;e.preventDefault();const c=G().filter((e=>!e.disabled)).map((e=>e.ref.current));b$1.includes(e.key)&&c.reverse(),function(e){const n=document.activeElement;for(const t of e){if(t===n)return;if(t.focus(),document.activeElement!==n)return}}(c);})),onBlur:composeEventHandlers$1(e.onBlur,(e=>{e.currentTarget.contains(e.target)||(window.clearTimeout(Y.current),Z.current="");})),onPointerMove:composeEventHandlers$1(e.onPointerMove,J((e=>{const n=e.target,t=q.current!==e.clientX;if(e.currentTarget.contains(n)&&t){const n=e.clientX>q.current?"right":"left";W.current=n,q.current=e.clientX;}})))}))))))))}));const MenuGroup=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const{__scopeMenu:t,...r}=e;return React__namespace.createElement(Primitive.div,_extends({role:"group"},r,{ref:n}))}));const MenuLabel=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const{__scopeMenu:t,...r}=e;return React__namespace.createElement(Primitive.div,_extends({},r,{ref:n}))}));const MenuItem=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const{disabled:t=!1,onSelect:r,...o}=e,u=React__namespace.useRef(null),c=A("MenuItem",e.__scopeMenu),a=K("MenuItem",e.__scopeMenu),i=useComposedRefs(n,u),s=React__namespace.useRef(!1);return React__namespace.createElement(Y,_extends({},o,{ref:i,disabled:t,onClick:composeEventHandlers$1(e.onClick,(()=>{const e=u.current;if(!t&&e){const n=new Event("menu.itemSelect",{bubbles:!0,cancelable:!0});e.addEventListener("menu.itemSelect",(e=>null==r?void 0:r(e)),{once:!0}),e.dispatchEvent(n),n.defaultPrevented?s.current=!1:c.onRootClose();}})),onPointerDown:n=>{var t;null===(t=e.onPointerDown)||void 0===t||t.call(e,n),s.current=!0;},onPointerUp:composeEventHandlers$1(e.onPointerUp,(e=>{var n;s.current||null===(n=e.currentTarget)||void 0===n||n.click();})),onKeyDown:composeEventHandlers$1(e.onKeyDown,(e=>{const n=""!==a.searchRef.current;t||n&&" "===e.key||x$1.includes(e.key)&&(e.currentTarget.click(),e.preventDefault());}))}))}));const Y=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const{__scopeMenu:t,disabled:r=!1,textValue:u,...c}=e,a=K("MenuItem",t),i=T(t),l=React__namespace.useRef(null),d=useComposedRefs(n,l),[p,f]=React__namespace.useState("");return React__namespace.useEffect((()=>{const e=l.current;var n;e&&f((null!==(n=e.textContent)&&void 0!==n?n:"").trim());}),[c.children]),/*#__PURE__*/React__namespace.createElement(I.ItemSlot,{scope:t,disabled:r,textValue:null!=u?u:p},/*#__PURE__*/React__namespace.createElement(Item$2,_extends({asChild:!0},i,{focusable:!r}),/*#__PURE__*/React__namespace.createElement(Primitive.div,_extends({role:"menuitem","aria-disabled":r||void 0,"data-disabled":r?"":void 0},c,{ref:d,onPointerMove:composeEventHandlers$1(e.onPointerMove,J((e=>{if(r)a.onItemLeave(e);else if(a.onItemEnter(e),!e.defaultPrevented){e.currentTarget.focus();}}))),onPointerLeave:composeEventHandlers$1(e.onPointerLeave,J((e=>a.onItemLeave(e))))}))))}));const MenuCheckboxItem=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const{checked:t=!1,onCheckedChange:r,...o}=e;return React__namespace.createElement(H,{scope:e.__scopeMenu,checked:t},/*#__PURE__*/React__namespace.createElement(MenuItem,_extends({role:"menuitemcheckbox","aria-checked":t},o,{ref:n,"data-state":q(t),onSelect:composeEventHandlers$1(o.onSelect,(()=>null==r?void 0:r(!t)),{checkForDefaultPrevented:!1})})))}));const[Z,z]=D$1("MenuRadioGroup",{value:void 0,onValueChange:()=>{}});const MenuRadioGroup=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const{value:r,onValueChange:o,...u}=e,c=useCallbackRef$1(o);return React__namespace.createElement(Z,{scope:e.__scopeMenu,value:r,onValueChange:c},/*#__PURE__*/React__namespace.createElement(MenuGroup,_extends({},u,{ref:n})))}));const MenuRadioItem=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const{value:t,...r}=e,o=z("MenuRadioItem",e.__scopeMenu),u=t===o.value;return React__namespace.createElement(H,{scope:e.__scopeMenu,checked:u},/*#__PURE__*/React__namespace.createElement(MenuItem,_extends({role:"menuitemradio","aria-checked":u},r,{ref:n,"data-state":q(u),onSelect:composeEventHandlers$1(r.onSelect,(()=>{var e;return null===(e=o.onValueChange)||void 0===e?void 0:e.call(o,t)}),{checkForDefaultPrevented:!1})})))}));const[H,W]=D$1("MenuItemIndicator",{checked:!1});const MenuItemIndicator=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const{__scopeMenu:t,forceMount:r,...o}=e,u=W("MenuItemIndicator",t);return React__namespace.createElement(Presence,{present:r||u.checked},/*#__PURE__*/React__namespace.createElement(Primitive.span,_extends({},o,{ref:n,"data-state":q(u.checked)})))}));const MenuArrow=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const{__scopeMenu:t,...r}=e,o=O(t);return React__namespace.createElement(Arrow$4,_extends({},o,r,{ref:n}))}));function j(e){return e?"open":"closed"}function q(e){return e?"checked":"unchecked"}function J(e){return n=>"mouse"===n.pointerType?e(n):void 0}const Root$5=Menu;const Sub=MenuSub;const Anchor=MenuAnchor;const Content$3=MenuContent;const Group$1=MenuGroup;const Label$1=MenuLabel;const Item$1=MenuItem;const CheckboxItem$1=MenuCheckboxItem;const RadioGroup$1=MenuRadioGroup;const RadioItem$1=MenuRadioItem;const ItemIndicator$1=MenuItemIndicator;const Arrow$3=MenuArrow;
|
|
4679
4718
|
|
|
4680
|
-
const[s,i$1]=createContextScope("DropdownMenu",[S]);const l=S(),[m,w$1]=s("DropdownMenu");const DropdownMenu=e=>{const{__scopeDropdownMenu:n,children:r,open:p,defaultOpen:d,onOpenChange:a}=e,s=M("DropdownMenu",n),i=l(n),[w=!1,D]=useControllableState({prop:p,defaultProp:d,onChange:a}),g=React__namespace.useCallback((()=>D((e=>!e))),[D]);return s.isInsideContent?/*#__PURE__*/React__namespace.createElement(m,{scope:n,isRootMenu:!1,open:w,onOpenChange:D,onOpenToggle:g},/*#__PURE__*/React__namespace.createElement(Sub,_extends({},i,{open:w,onOpenChange:D}),r)):/*#__PURE__*/React__namespace.createElement(f,_extends({},e,{open:w,onOpenChange:D,onOpenToggle:g}),r)};const f=n=>{const{__scopeDropdownMenu:r,children:t,dir:p,open:d,onOpenChange:a,onOpenToggle:s,modal:i=!0}=n,w=l(r),f=React__namespace.useRef(null);return React__namespace.createElement(m,{scope:r,isRootMenu:!0,triggerId:useId(),triggerRef:f,contentId:useId(),open:d,onOpenChange:a,onOpenToggle:s,modal:i},/*#__PURE__*/React__namespace.createElement(Root$5,_extends({},w,{open:d,onOpenChange:a,dir:p,modal:i}),t))};const DropdownMenuTrigger=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const{__scopeDropdownMenu:t,disabled:p=!1,...s}=e,i=w$1("DropdownMenuTrigger",t),m=l(t);return i.isRootMenu?/*#__PURE__*/React__namespace.createElement(Anchor,_extends({asChild:!0},m),/*#__PURE__*/React__namespace.createElement(Primitive.button,_extends({type:"button",id:i.triggerId,"aria-haspopup":"menu","aria-expanded":!!i.open||void 0,"aria-controls":i.open?i.contentId:void 0,"data-state":i.open?"open":"closed","data-disabled":p?"":void 0,disabled:p},s,{ref:composeRefs(n,i.triggerRef),onPointerDown:composeEventHandlers(e.onPointerDown,(e=>{p||0!==e.button||!1!==e.ctrlKey||(i.open||e.preventDefault(),i.onOpenToggle());})),onKeyDown:composeEventHandlers(e.onKeyDown,(e=>{p||(["Enter"," "].includes(e.key)&&i.onOpenToggle(),"ArrowDown"===e.key&&i.onOpenChange(!0),[" ","ArrowDown"].includes(e.key)&&e.preventDefault());}))}))):null}));const[D,M]=s("DropdownMenuContent",{isInsideContent:!1});const DropdownMenuContent=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const{__scopeDropdownMenu:r,...t}=e,p=w$1("DropdownMenuContent",r),d=l(r),a={...t,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)"}};return React__namespace.createElement(D,{scope:r,isInsideContent:!0},p.isRootMenu?/*#__PURE__*/React__namespace.createElement(g$1,_extends({__scopeDropdownMenu:r},a,{ref:n})):/*#__PURE__*/React__namespace.createElement(Content$3,_extends({},d,a,{ref:n})))}));const g$1=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const{__scopeDropdownMenu:r,portalled:t=!0,...p}=e,d=w$1("DropdownMenuContent",r),s=l(r),i=React__namespace.useRef(!1);return d.isRootMenu?/*#__PURE__*/React__namespace.createElement(Content$3,_extends({id:d.contentId,"aria-labelledby":d.triggerId},s,p,{ref:n,portalled:t,onCloseAutoFocus:composeEventHandlers(e.onCloseAutoFocus,(e=>{var o;i.current||null===(o=d.triggerRef.current)||void 0===o||o.focus(),i.current=!1,e.preventDefault();})),onInteractOutside:composeEventHandlers(e.onInteractOutside,(e=>{const o=e.detail.originalEvent,n=0===o.button&&!0===o.ctrlKey,r=2===o.button||n;d.modal&&!r||(i.current=!0);}))})):null}));const DropdownMenuGroup=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const{__scopeDropdownMenu:r,...t}=e,p=l(r);return React__namespace.createElement(Group$1,_extends({},p,t,{ref:n}))}));const DropdownMenuLabel=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const{__scopeDropdownMenu:r,...t}=e,p=l(r);return React__namespace.createElement(Label$1,_extends({},p,t,{ref:n}))}));const DropdownMenuItem=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const{__scopeDropdownMenu:r,...t}=e,p=l(r);return React__namespace.createElement(Item$1,_extends({},p,t,{ref:n}))}));const DropdownMenuCheckboxItem=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const{__scopeDropdownMenu:r,...t}=e,p=l(r);return React__namespace.createElement(CheckboxItem$1,_extends({},p,t,{ref:n}))}));const DropdownMenuRadioGroup=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const{__scopeDropdownMenu:r,...t}=e,p=l(r);return React__namespace.createElement(RadioGroup$1,_extends({},p,t,{ref:n}))}));const DropdownMenuRadioItem=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const{__scopeDropdownMenu:r,...t}=e,p=l(r);return React__namespace.createElement(RadioItem$1,_extends({},p,t,{ref:n}))}));const DropdownMenuItemIndicator=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const{__scopeDropdownMenu:r,...t}=e,p=l(r);return React__namespace.createElement(ItemIndicator$1,_extends({},p,t,{ref:n}))}));const DropdownMenuArrow=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const{__scopeDropdownMenu:r,...t}=e,p=l(r);return React__namespace.createElement(Arrow$3,_extends({},p,t,{ref:n}))}));const Root$4=DropdownMenu;const Trigger$2=DropdownMenuTrigger;const Content$2=DropdownMenuContent;const Group=DropdownMenuGroup;const Label=DropdownMenuLabel;const Item=DropdownMenuItem;const CheckboxItem=DropdownMenuCheckboxItem;const RadioGroup=DropdownMenuRadioGroup;const RadioItem=DropdownMenuRadioItem;const ItemIndicator=DropdownMenuItemIndicator;const Arrow$2=DropdownMenuArrow;
|
|
4719
|
+
const[s,i$1]=createContextScope("DropdownMenu",[S]);const l=S(),[m,w$1]=s("DropdownMenu");const DropdownMenu=e=>{const{__scopeDropdownMenu:n,children:r,open:p,defaultOpen:d,onOpenChange:a}=e,s=M("DropdownMenu",n),i=l(n),[w=!1,D]=useControllableState({prop:p,defaultProp:d,onChange:a}),g=React__namespace.useCallback((()=>D((e=>!e))),[D]);return s.isInsideContent?/*#__PURE__*/React__namespace.createElement(m,{scope:n,isRootMenu:!1,open:w,onOpenChange:D,onOpenToggle:g},/*#__PURE__*/React__namespace.createElement(Sub,_extends({},i,{open:w,onOpenChange:D}),r)):/*#__PURE__*/React__namespace.createElement(f,_extends({},e,{open:w,onOpenChange:D,onOpenToggle:g}),r)};const f=n=>{const{__scopeDropdownMenu:r,children:t,dir:p,open:d,onOpenChange:a,onOpenToggle:s,modal:i=!0}=n,w=l(r),f=React__namespace.useRef(null);return React__namespace.createElement(m,{scope:r,isRootMenu:!0,triggerId:useId(),triggerRef:f,contentId:useId(),open:d,onOpenChange:a,onOpenToggle:s,modal:i},/*#__PURE__*/React__namespace.createElement(Root$5,_extends({},w,{open:d,onOpenChange:a,dir:p,modal:i}),t))};const DropdownMenuTrigger=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const{__scopeDropdownMenu:t,disabled:p=!1,...s}=e,i=w$1("DropdownMenuTrigger",t),m=l(t);return i.isRootMenu?/*#__PURE__*/React__namespace.createElement(Anchor,_extends({asChild:!0},m),/*#__PURE__*/React__namespace.createElement(Primitive.button,_extends({type:"button",id:i.triggerId,"aria-haspopup":"menu","aria-expanded":!!i.open||void 0,"aria-controls":i.open?i.contentId:void 0,"data-state":i.open?"open":"closed","data-disabled":p?"":void 0,disabled:p},s,{ref:composeRefs(n,i.triggerRef),onPointerDown:composeEventHandlers$1(e.onPointerDown,(e=>{p||0!==e.button||!1!==e.ctrlKey||(i.open||e.preventDefault(),i.onOpenToggle());})),onKeyDown:composeEventHandlers$1(e.onKeyDown,(e=>{p||(["Enter"," "].includes(e.key)&&i.onOpenToggle(),"ArrowDown"===e.key&&i.onOpenChange(!0),[" ","ArrowDown"].includes(e.key)&&e.preventDefault());}))}))):null}));const[D,M]=s("DropdownMenuContent",{isInsideContent:!1});const DropdownMenuContent=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const{__scopeDropdownMenu:r,...t}=e,p=w$1("DropdownMenuContent",r),d=l(r),a={...t,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)"}};return React__namespace.createElement(D,{scope:r,isInsideContent:!0},p.isRootMenu?/*#__PURE__*/React__namespace.createElement(g$1,_extends({__scopeDropdownMenu:r},a,{ref:n})):/*#__PURE__*/React__namespace.createElement(Content$3,_extends({},d,a,{ref:n})))}));const g$1=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const{__scopeDropdownMenu:r,portalled:t=!0,...p}=e,d=w$1("DropdownMenuContent",r),s=l(r),i=React__namespace.useRef(!1);return d.isRootMenu?/*#__PURE__*/React__namespace.createElement(Content$3,_extends({id:d.contentId,"aria-labelledby":d.triggerId},s,p,{ref:n,portalled:t,onCloseAutoFocus:composeEventHandlers$1(e.onCloseAutoFocus,(e=>{var o;i.current||null===(o=d.triggerRef.current)||void 0===o||o.focus(),i.current=!1,e.preventDefault();})),onInteractOutside:composeEventHandlers$1(e.onInteractOutside,(e=>{const o=e.detail.originalEvent,n=0===o.button&&!0===o.ctrlKey,r=2===o.button||n;d.modal&&!r||(i.current=!0);}))})):null}));const DropdownMenuGroup=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const{__scopeDropdownMenu:r,...t}=e,p=l(r);return React__namespace.createElement(Group$1,_extends({},p,t,{ref:n}))}));const DropdownMenuLabel=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const{__scopeDropdownMenu:r,...t}=e,p=l(r);return React__namespace.createElement(Label$1,_extends({},p,t,{ref:n}))}));const DropdownMenuItem=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const{__scopeDropdownMenu:r,...t}=e,p=l(r);return React__namespace.createElement(Item$1,_extends({},p,t,{ref:n}))}));const DropdownMenuCheckboxItem=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const{__scopeDropdownMenu:r,...t}=e,p=l(r);return React__namespace.createElement(CheckboxItem$1,_extends({},p,t,{ref:n}))}));const DropdownMenuRadioGroup=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const{__scopeDropdownMenu:r,...t}=e,p=l(r);return React__namespace.createElement(RadioGroup$1,_extends({},p,t,{ref:n}))}));const DropdownMenuRadioItem=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const{__scopeDropdownMenu:r,...t}=e,p=l(r);return React__namespace.createElement(RadioItem$1,_extends({},p,t,{ref:n}))}));const DropdownMenuItemIndicator=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const{__scopeDropdownMenu:r,...t}=e,p=l(r);return React__namespace.createElement(ItemIndicator$1,_extends({},p,t,{ref:n}))}));const DropdownMenuArrow=/*#__PURE__*/React__namespace.forwardRef(((e,n)=>{const{__scopeDropdownMenu:r,...t}=e,p=l(r);return React__namespace.createElement(Arrow$3,_extends({},p,t,{ref:n}))}));const Root$4=DropdownMenu;const Trigger$2=DropdownMenuTrigger;const Content$2=DropdownMenuContent;const Group=DropdownMenuGroup;const Label=DropdownMenuLabel;const Item=DropdownMenuItem;const CheckboxItem=DropdownMenuCheckboxItem;const RadioGroup=DropdownMenuRadioGroup;const RadioItem=DropdownMenuRadioItem;const ItemIndicator=DropdownMenuItemIndicator;const Arrow$2=DropdownMenuArrow;
|
|
4681
4720
|
|
|
4682
4721
|
const e="horizontal",n=["horizontal","vertical"];const Separator=/*#__PURE__*/React__namespace.forwardRef(((n,a)=>{const{decorative:p,orientation:l=e,...c}=n,s=i(l)?l:e,u=p?{role:"none"}:{"aria-orientation":"vertical"===s?s:void 0,role:"separator"};return React__namespace.createElement(Primitive.div,_extends({"data-orientation":s},u,c,{ref:a}))}));function i(r){return n.includes(r)}Separator.propTypes={orientation(r,o,t){const n=r[o],a=String(n);return n&&!i(n)?new Error(function(r,o){return `Invalid prop \`orientation\` of value \`${r}\` supplied to \`${o}\`, expected one of:\n - horizontal\n - vertical\n\nDefaulting to \`${e}\`.`}(a,t)):null}};const Root$3=Separator;
|
|
4683
4722
|
|
|
4684
|
-
function styleInject(css, ref) {
|
|
4685
|
-
if ( ref === void 0 ) ref = {};
|
|
4686
|
-
var insertAt = ref.insertAt;
|
|
4687
|
-
|
|
4688
|
-
if (!css || typeof document === 'undefined') { return; }
|
|
4689
|
-
|
|
4690
|
-
var head = document.head || document.getElementsByTagName('head')[0];
|
|
4691
|
-
var style = document.createElement('style');
|
|
4692
|
-
style.type = 'text/css';
|
|
4693
|
-
|
|
4694
|
-
if (insertAt === 'top') {
|
|
4695
|
-
if (head.firstChild) {
|
|
4696
|
-
head.insertBefore(style, head.firstChild);
|
|
4697
|
-
} else {
|
|
4698
|
-
head.appendChild(style);
|
|
4699
|
-
}
|
|
4700
|
-
} else {
|
|
4701
|
-
head.appendChild(style);
|
|
4702
|
-
}
|
|
4703
|
-
|
|
4704
|
-
if (style.styleSheet) {
|
|
4705
|
-
style.styleSheet.cssText = css;
|
|
4706
|
-
} else {
|
|
4707
|
-
style.appendChild(document.createTextNode(css));
|
|
4708
|
-
}
|
|
4709
|
-
}
|
|
4710
|
-
|
|
4711
|
-
var css_248z$4 = ":root {\n --background: #FFFAEE;\n --primary: #1890ff;\n --primary2: #40a9ff;\n --primary0: #e6f7ff;\n --grey5: #8c8c8c;\n --grey3: #d0d7de;\n --secondary: #fff566;\n --font-color: #494949;\n}\n\n@media (prefers-color-scheme: dark) {\n :root {\n --background: #3c3c3c;\n --font-color: #fafafa;\n }\n}\n@keyframes spin {\n from {\n transform: rotate(0);\n }\n to {\n transform: rotate(360deg);\n }\n}\n.spin {\n animation: spin 1s linear 0s infinite;\n}\n\n.poll-select-content {\n font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", Segoe UI Symbol, \"Noto Color Emoji\";\n display: flex;\n flex-direction: column;\n width: fit-content;\n background-color: white;\n border: 1px solid var(--grey3);\n border-radius: 4px;\n padding: 6px 4px;\n box-shadow: rgba(0, 0, 0, 0.08) 0px 2px 4px;\n gap: 2px;\n}\n\n.poll-select-item {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 6px;\n border-radius: 2px;\n padding: 2px 8px 2px 24px;\n transition: background-color 0.15s linear, color 0.15s linear;\n}\n\n.poll-select-item[data-state=checked] {\n background-color: var(--primary2);\n color: white;\n}\n\n.poll-select-item:focus-visible {\n outline: none;\n}\n\n.poll-select-item:hover {\n background-color: var(--primary0);\n cursor: pointer;\n color: unset;\n}\n\n.poll-separator {\n background-color: #d0d7de;\n height: 1px;\n width: 100%;\n margin: 4px 0;\n}";
|
|
4712
|
-
styleInject(css_248z$4);
|
|
4713
|
-
|
|
4714
4723
|
var ConditionalWrapper = function (_a) {
|
|
4715
4724
|
var condition = _a.condition, wrapper = _a.wrapper, children = _a.children;
|
|
4716
4725
|
return condition ? wrapper(children) : children;
|
|
@@ -4722,7 +4731,7 @@ var Dropdown = function (_a) {
|
|
|
4722
4731
|
var _a;
|
|
4723
4732
|
switch (o.type) {
|
|
4724
4733
|
case 'checkbox':
|
|
4725
|
-
return (React__default["default"].createElement(CheckboxItem, __assign$2({ key: o.id, className: 'poll-select-item', onSelect: function (
|
|
4734
|
+
return (React__default["default"].createElement(CheckboxItem, __assign$2({ key: o.id, className: 'poll-select-item', onSelect: function () {
|
|
4726
4735
|
if (o.onSelect)
|
|
4727
4736
|
o.onSelect(o);
|
|
4728
4737
|
}, checked: o.checked, disabled: o.disabled }, itemProps),
|
|
@@ -4734,7 +4743,7 @@ var Dropdown = function (_a) {
|
|
|
4734
4743
|
React__default["default"].createElement(CheckCircle$1, null)),
|
|
4735
4744
|
o.label));
|
|
4736
4745
|
case 'radio':
|
|
4737
|
-
return (React__default["default"].createElement(RadioItem, __assign$2({ key: o.id, className: 'poll-select-item', onSelect: function (
|
|
4746
|
+
return (React__default["default"].createElement(RadioItem, __assign$2({ key: o.id, className: 'poll-select-item', onSelect: function () {
|
|
4738
4747
|
if (o.onSelect)
|
|
4739
4748
|
o.onSelect(o);
|
|
4740
4749
|
}, textValue: o.label, value: o.id, disabled: o.disabled }, itemProps),
|
|
@@ -4751,7 +4760,7 @@ var Dropdown = function (_a) {
|
|
|
4751
4760
|
return (React__default["default"].createElement("a", { href: (_a = o.to) !== null && _a !== void 0 ? _a : '/', key: o.id, style: { color: 'unset' } },
|
|
4752
4761
|
React__default["default"].createElement(Item, __assign$2({ className: 'poll-select-item', onSelect: function () { return o.onSelect && o.onSelect(o); } }, itemProps), o.label)));
|
|
4753
4762
|
default:
|
|
4754
|
-
return (React__default["default"].createElement(Item, __assign$2({ key: o.id, className: 'poll-select-item', onSelect: function (
|
|
4763
|
+
return (React__default["default"].createElement(Item, __assign$2({ key: o.id, className: 'poll-select-item', onSelect: function () { return o.onSelect && o.onSelect(o); } }, itemProps), o.label));
|
|
4755
4764
|
}
|
|
4756
4765
|
}, [itemProps]);
|
|
4757
4766
|
return (React__default["default"].createElement(Root$4, null,
|
|
@@ -4774,10 +4783,37 @@ var Dropdown = function (_a) {
|
|
|
4774
4783
|
}, offset: 12 }))));
|
|
4775
4784
|
};
|
|
4776
4785
|
|
|
4777
|
-
|
|
4778
|
-
|
|
4786
|
+
function styleInject(css, ref) {
|
|
4787
|
+
if ( ref === void 0 ) ref = {};
|
|
4788
|
+
var insertAt = ref.insertAt;
|
|
4789
|
+
|
|
4790
|
+
if (!css || typeof document === 'undefined') { return; }
|
|
4791
|
+
|
|
4792
|
+
var head = document.head || document.getElementsByTagName('head')[0];
|
|
4793
|
+
var style = document.createElement('style');
|
|
4794
|
+
style.type = 'text/css';
|
|
4795
|
+
|
|
4796
|
+
if (insertAt === 'top') {
|
|
4797
|
+
if (head.firstChild) {
|
|
4798
|
+
head.insertBefore(style, head.firstChild);
|
|
4799
|
+
} else {
|
|
4800
|
+
head.appendChild(style);
|
|
4801
|
+
}
|
|
4802
|
+
} else {
|
|
4803
|
+
head.appendChild(style);
|
|
4804
|
+
}
|
|
4805
|
+
|
|
4806
|
+
if (style.styleSheet) {
|
|
4807
|
+
style.styleSheet.cssText = css;
|
|
4808
|
+
} else {
|
|
4809
|
+
style.appendChild(document.createTextNode(css));
|
|
4810
|
+
}
|
|
4811
|
+
}
|
|
4779
4812
|
|
|
4780
|
-
var logo = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIwIiBoZWlnaHQ9IjEyMSIgdmlld0JveD0iMCAwIDEyMCAxMjEiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+DQo8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDBfMTk2OjI4NzkpIj4NCjxwYXRoIGQ9Ik03NC4xMzI5IDE5LjkzNUM3MS4yNTQ2IDE4LjE2NDQgNjcuNzU4IDE3LjE1ODYgNjQuMjEzOCAxNi42Mzc5QzYwLjg4MzkgMTYuMjUyNyA1OS4wNjk3IDE2LjI2IDU1Ljg4NDIgMTYuNTY1M0M1Mi4yODYgMTcuMDI5NSA0OC44ODY2IDE4LjEyNjkgNDUuODAxMiAxOS43NDIyTDM4Ljk3NDYgMjQuNjMzNEMzNS4wMzM1IDI4LjM4NDQgMzIuMTA0NyAzMy4xODk4IDMwLjYzOTcgMzguNTk3N0MzMC41NDQzIDM4Ljk1MDEgMzAuMjcwMyAzOS4yMjcxIDI5LjkxOTEgMzkuMzI2OUMxOC4yMTY2IDQyLjY1MzcgOS4wOTc2NiA1My4wMTczIDguMTQ4ODUgNjUuMjUxN0M3Ljk1ODEgNjcuNzExNSA4LjA0MjUyIDY5LjA3NzkgOC4xNDg4NiA3MS40OTg5QzguNjE1NzEgODIuMTI3OCAxOC4yMDE5IDk0LjA0NjUgMjkuOTIgOTcuNDIyOUMzMC4yNzA4IDk3LjUyMzkgMzAuNTQ0NCA5Ny44MDExIDMwLjYzOTggOTguMTUzNUMzMy45MDYzIDExMC4yMjEgNDQuNDMyNiAxMTkuNTUzIDU3LjI3MjcgMTIwLjMzMkM1OS43NjMyIDEyMC40ODMgNjEuMTIxMyAxMjAuNDY2IDYzLjUxOTkgMTIwLjIwN0M3NC41MDI3IDExOS4wMTcgODUuNjQzMyAxMDkuOTE0IDg4Ljg5IDk4LjMwMzZDODguOTg5NyA5Ny45NDcgODkuMjcxNSA5Ny42Njg3IDg5LjYyOTUgOTcuNTc0MkMxMDEuNiA5NC40MTQxIDExMC44MDkgODMuOTIyNiAxMTEuNzc4IDcxLjMyNzZMMTExLjc5IDcxLjE2MzJDMTExLjk3IDY4LjgzNDkgMTEyLjA3NiA2Ny40NjEyIDExMS43NzggNjUuMDgwNEMxMTAuMTcyIDUyLjI0MTMgMTAxLjU4IDQyLjMxODUgODkuNjMwMSAzOS4xNzYzQzg5LjI3MiAzOS4wODIyIDg4Ljk5MDQgMzguODA0MyA4OC44ODc2IDM4LjQ0ODZDODcuMzQ1NCAzMy4xMTIxIDgzLjE1NjcgMjYuOTEwOCA4MC44NjY5IDI0Ljg5MzJDNzguNDkzNiAyMi44MDIgNzcuMDExMiAyMS43MDU1IDc0LjEzMjkgMTkuOTM1WiIgZmlsbD0iI0ZBRkFGQSIvPg0KPHBhdGggZD0iTTU1LjM1NjUgODEuNTQ2M0M1Mi4yMTA2IDg1LjczMjQgNDcuNTk4OCA4OC43NTM5IDQyLjI4MzMgODkuODQ4N0M0Mi4yNzk2IDg5Ljk5ODMgNDIuMjc3NyA5MC4xNDg0IDQyLjI3NzcgOTAuMjk5QzQyLjI3NzcgMTAwLjA4NyA1MC4yMTIzIDEwOC4wMjEgNjAgMTA4LjAyMUM2OS43ODc4IDEwOC4wMjEgNzcuNzIyMyAxMDAuMDg3IDc3LjcyMjMgOTAuMjk5Qzc3LjcyMjMgODAuNTExMiA2OS43ODc4IDcyLjU3NjcgNjAgNzIuNTc2N0M1OS43NzgyIDcyLjU3NjcgNTkuNTU3NCA3Mi41ODA3IDU5LjMzNzUgNzIuNTg4OEM1OC44NzI3IDc0Ljk5MTkgNTguMDE0OCA3Ny4yNTQ4IDU2LjgzMzYgNzkuMzA4QzU3LjY4NDUgNzguNTc3OCA1OC43OTA4IDc4LjEzNjYgNjAgNzguMTM2NkM2Mi42ODY5IDc4LjEzNjYgNjQuODY1IDgwLjMxNDcgNjQuODY1IDgzLjAwMTZDNjQuODY1IDg1LjY4ODQgNjIuNjg2OSA4Ny44NjY1IDYwIDg3Ljg2NjVDNTcuMzEzMiA4Ny44NjY1IDU1LjEzNTEgODUuNjg4NCA1NS4xMzUxIDgzLjAwMTZDNTUuMTM1MSA4Mi40OTQ2IDU1LjIxMjYgODIuMDA1OCA1NS4zNTY1IDgxLjU0NjNaIiBmaWxsPSIjRjJCMjREIi8+DQo8cGF0aCBkPSJNNzMuMzU1IDIwLjg3NTRDNzMuNzE5OSAyMC4zNTkxIDczLjU4MTcgMTkuNjIzOSA3My4wMTM4IDE5LjM0NTlDNzAuNjA4NyAxOC4xNjgzIDY4LjAyNCAxNy4zMDA3IDY1LjMxMTkgMTYuNzk1MkM2NC43MTIgMTYuNjgzNCA2NC4xNjk5IDE3LjE1MjQgNjQuMTY5OSAxNy43NjI2VjI0LjI1NjNDNjQuMTY5OSAyNC43MzA5IDY0LjUwNDIgMjUuMTM3NyA2NC45NjUyIDI1LjI1MDdDNjYuNTM2NCAyNS42MzU4IDY4LjA0MSAyNi4xOTA1IDY5LjQ1ODcgMjYuODk0MkM3MC4wODg4IDI3LjIwNzEgNzAuODY0NCAyNi44Mzc2IDcxLjAyNDggMjYuMTUyN0M3MS40NjUzIDI0LjI3MTggNzIuMTkwNiAyMi41MjMgNzMuMzU1IDIwLjg3NTRaIiBmaWxsPSIjMjQyOTJFIi8+DQo8cGF0aCBkPSJNNzguODcyNyAzNS44NzAyQzc4Ljc4NzYgMzUuNzE3OCA3OC43NDE1IDM1LjU0NjUgNzguNzQxNSAzNS4zNzE5VjMyLjg4OTFDNzguNzQxNSAzMi44ODg3IDc4Ljc0MTIgMzIuODg4NCA3OC43NDA4IDMyLjg4ODRWMzIuODg4NEM3OC43NDA0IDMyLjg4ODQgNzguNzQwMSAzMi44ODgxIDc4Ljc0MDEgMzIuODg3N0M3OC43NDAyIDI4Ljk1MSA3OS4xNzM0IDI3LjA3MDMgODAuMTk2IDI1LjY0NDhDODAuNTIwMiAyNS4xOTI3IDgxLjE3MDEgMjUuMTg2NCA4MS41NTUyIDI1LjU4NzlDODQuOTcxNiAyOS4xNDk3IDg3LjUyNDUgMzMuNTQ2NSA4OC44NzggMzguNDQyQzg4Ljk3NjcgMzguNzk4OCA4OS4yNTg3IDM5LjA3NyA4OS42MTY3IDM5LjE3MTNDMTAxLjI0OCA0Mi4yMzcxIDExMC4xMzUgNTIuMDUzNiAxMTEuODMxIDY0LjE3OUMxMTEuOTEzIDY0Ljc2NiAxMTEuNDQ5IDY1LjI3OTMgMTEwLjg1NyA2NS4yNzkzSDEwNC40M0MxMDMuOTMyIDY1LjI3OTMgMTAzLjUxMyA2NC45MTI4IDEwMy40MjMgNjQuNDIzNEMxMDEuNzMgNTUuMjE0NiA5NC4yNzI5IDQ4LjAxODkgODQuOTMyOSA0Ni43MjM0TDgyLjU4NzMgNDYuMzk4MUM4Mi4xNDg0IDQ2LjMzNzIgODEuODAyIDQ1Ljk5NDggODEuNzM1OCA0NS41NTY4TDgxLjM4MjUgNDMuMjE1MkM4MC45ODU1IDQwLjU4NDIgODAuMTE5NSAzOC4xMDY2IDc4Ljg3MjcgMzUuODcwMloiIGZpbGw9IiMyNDI5MkUiLz4NCjxwYXRoIGQ9Ik0zOS4wMDYxIDI0LjcxNzFDMzguOTQ2NyAyNC42NTc4IDM4Ljg1MDggMjQuNjU2NSAzOC43OTAzIDI0LjcxNDdDMzQuODk5MSAyOC40NTUyIDMyLjAwNzIgMzMuMjI3OSAzMC41NTM5IDM4LjU5MjhDMzAuNDU4NSAzOC45NDUxIDMwLjE4NDIgMzkuMjIyMyAyOS44MzMxIDM5LjMyMkMxOC40NzMyIDQyLjU0ODUgOS44MzgxNyA1Mi4yNDUzIDguMTY4NyA2NC4xNzkxQzguMDg2NTggNjQuNzY2MSA4LjU1MDU4IDY1LjI3OTMgOS4xNDMyOSA2NS4yNzkzSDE1LjU3MDFDMTYuMDY3NyA2NS4yNzkzIDE2LjQ4NzEgNjQuOTEyOCAxNi41NzcxIDY0LjQyMzRDMTguMjQyOSA1NS4zNjQxIDI1LjQ4NjYgNDguMjUyNCAzNC42MTQ3IDQ2Ljc5MUwzNi45MDk4IDQ2LjQyMzVDMzcuMzQwOCA0Ni4zNTQ1IDM3LjY3NzIgNDYuMDE0IDM3Ljc0MSA0NS41ODIyTDM4LjA4MDYgNDMuMjgyOEMzOC41MjMyIDQwLjI4NjYgMzkuNTczNiAzNy40ODgxIDQxLjEwMjQgMzUuMDE2M0M0MS4yMDIyIDM0Ljg1NDkgNDEuMjU3IDM0LjY2OTQgNDEuMjU3MyAzNC40Nzk2TDQxLjI1OTkgMzIuODgxN0M0MS4yNTkzIDI4LjA0NzIgNDAuNjA0NiAyNi4zMTU2IDM5LjAwNjEgMjQuNzE3MVYyNC43MTcxWiIgZmlsbD0iIzI0MjkyRSIvPg0KPHBhdGggZD0iTTUwLjQ2MDkgMjYuNjc4OUM0OS44Mzg1IDI2Ljk3MDUgNDkuMDg4OSAyNi42MDc4IDQ4LjkyNDEgMjUuOTQwNkM0OC40NjI5IDI0LjA3MzYgNDcuNzEyNCAyMi4zMzcyIDQ2LjUxOTIgMjAuNzAwM0M0Ni4xMzk2IDIwLjE3OTYgNDYuMjgwOCAxOS40MjY0IDQ2Ljg2MzcgMTkuMTUxN0M0OS4zMTQ5IDE3Ljk5NjUgNTEuOTQ2NiAxNy4xNjEgNTQuNzA1IDE2LjY5OUM1NS4yOTk4IDE2LjU5OTQgNTUuODMgMTcuMDY2NSA1NS44MyAxNy42Njk2VjI0LjEzMzlDNTUuODMgMjQuNjE3OCA1NS40ODI5IDI1LjAyOTggNTUuMDEwNCAyNS4xMzM4QzUzLjQyMjQgMjUuNDgzMyA1MS44OTkgMjYuMDA1MyA1MC40NjA5IDI2LjY3ODlaIiBmaWxsPSIjMjQyOTJFIi8+DQo8cGF0aCBkPSJNODEuMzgyNSA5My41OTgzQzgwLjAyMSAxMDIuNjIgNzMuMTQ2NiAxMDkuODM3IDY0LjMwMjggMTExLjcxNEM2My44MjY1IDExMS44MTUgNjMuNDc1MiAxMTIuMjI5IDYzLjQ3NTIgMTEyLjcxNlYxMTkuMTcyQzYzLjQ3NTIgMTE5Ljc3MiA2NC4wMDE4IDEyMC4yMzkgNjQuNTk0OSAxMjAuMTQzQzc2LjMwODYgMTE4LjI1MSA4NS43NjUgMTA5LjYzIDg4Ljg3NzggOTguMzcyMkM4OC45NzY1IDk4LjAxNTMgODkuMjU4NyA5Ny43MzY1IDg5LjYxNjcgOTcuNjQyMkMxMDEuMjQ3IDk0LjU3NjQgMTEwLjEzNSA4NC43NTk4IDExMS44MzEgNzIuNjM0NUMxMTEuOTEzIDcyLjA0NzUgMTExLjQ0OSA3MS41MzQyIDExMC44NTcgNzEuNTM0MkgxMDQuNDNDMTAzLjkzMiA3MS41MzQyIDEwMy41MTMgNzEuOTAwNyAxMDMuNDIzIDcyLjM5MDFDMTAxLjczIDgxLjU5ODkgOTQuMjcyOSA4OC43OTQ2IDg0LjkzMjkgOTAuMDkwMUw4Mi41ODczIDkwLjQxNTRDODIuMTQ4NCA5MC40NzYzIDgxLjgwMiA5MC44MTg2IDgxLjczNTggOTEuMjU2N0w4MS4zODI1IDkzLjU5ODNaIiBmaWxsPSIjMjQyOTJFIi8+DQo8cGF0aCBkPSJNMzQuNjE0NyA5MC4wMjI1QzI1LjQ4NjYgODguNTYxMSAxOC4yNDI5IDgxLjQ0OTQgMTYuNTc3MSA3Mi4zOUMxNi40ODcxIDcxLjkwMDcgMTYuMDY3NyA3MS41MzQyIDE1LjU3MDEgNzEuNTM0Mkg5LjE0MzI5QzguNTUwNTggNzEuNTM0MiA4LjA4NjU4IDcyLjA0NzQgOC4xNjg3IDcyLjYzNDRDOS44MzgxOCA4NC41NjgyIDE4LjQ3MzIgOTQuMjY1IDI5LjgzMzEgOTcuNDkxNUMzMC4xODQyIDk3LjU5MTIgMzAuNDU4NiA5Ny44NjkgMzAuNTU0MSA5OC4yMjE0QzMzLjczMjkgMTA5Ljk1NSA0My43OTQgMTE4Ljg1NiA1Ni4xMzk1IDEyMC4zMTlDNTYuNzIwMSAxMjAuMzg4IDU3LjIyMDMgMTE5LjkyNyA1Ny4yMjAzIDExOS4zNDJWMTEyLjk0QzU3LjIyMDMgMTEyLjQzMiA1Ni44MzgzIDExMi4wMDcgNTYuMzM2MSAxMTEuOTI5QzQ2LjkxMjkgMTEwLjQ1OSAzOS40NzU5IDEwMi45NzcgMzguMDgwNiA5My41MzA3TDM3Ljc0MSA5MS4yMzEzQzM3LjY3NzIgOTAuNzk5NSAzNy4zNDA4IDkwLjQ1ODkgMzYuOTA5OCA5MC4zODk5TDM0LjYxNDcgOTAuMDIyNVoiIGZpbGw9IiMyNDI5MkUiLz4NCjxwYXRoIGQ9Ik04MS42Mjg4IDg2LjEyOUM5MS40MTY2IDg2LjEyOSA5OS4zNTExIDc4LjE5NDUgOTkuMzUxMSA2OC40MDY3Qzk5LjM1MTEgNTguNjE4OSA5MS40MTY2IDUwLjY4NDQgODEuNjI4OCA1MC42ODQ0QzcxLjg0MSA1MC42ODQ0IDYzLjkwNjUgNTguNjE4OSA2My45MDY1IDY4LjQwNjdDNjMuOTA2NSA2OC41Mzk2IDYzLjkwOCA2OC42NzIxIDYzLjkxMDkgNjguODA0MkM2Ni4zMzcgNjkuMjcyNiA2OC42MjA0IDcwLjE0MTUgNzAuNjg5NiA3MS4zMzk1QzcwLjA3MjUgNzAuNTI0MSA2OS43MDY1IDY5LjUwODEgNjkuNzA2NSA2OC40MDY3QzY5LjcwNjUgNjUuNzE5OSA3MS44ODQ2IDYzLjU0MTggNzQuNTcxNSA2My41NDE4Qzc3LjI1ODMgNjMuNTQxOCA3OS40MzY0IDY1LjcxOTkgNzkuNDM2NCA2OC40MDY3Qzc5LjQzNjQgNzEuMDkzNSA3Ny4yNTgzIDczLjI3MTcgNzQuNTcxNSA3My4yNzE3Qzc0LjEyNDkgNzMuMjcxNyA3My42OTIzIDczLjIxMTUgNzMuMjgxNCA3My4wOTg4Qzc3LjMyNTEgNzYuMjg3NSA4MC4yMTcxIDgwLjg3MTUgODEuMjMxMyA4Ni4xMjQ3QzgxLjM2MzUgODYuMTI3NiA4MS40OTYgODYuMTI5IDgxLjYyODggODYuMTI5WiIgZmlsbD0iI0VCMjIyNyIvPg0KPHBhdGggZD0iTTc3LjcxNzkgNDYuOTExOUM3Ny43MjA4IDQ2Ljc3OTggNzcuNzIyMiA0Ni42NDczIDc3LjcyMjIgNDYuNTE0NEM3Ny43MjIyIDM2LjcyNjcgNjkuNzg3NyAyOC43OTIxIDU5Ljk5OTkgMjguNzkyMUM1MC4yMTIxIDI4Ljc5MjEgNDIuMjc3NiAzNi43MjY3IDQyLjI3NzYgNDYuNTE0NEM0Mi4yNzc2IDU2LjMwMjIgNTAuMjEyMSA2NC4yMzY3IDU5Ljk5OTkgNjQuMjM2N0M2MC4xMzI4IDY0LjIzNjcgNjAuMjY1MyA2NC4yMzUzIDYwLjM5NzQgNjQuMjMyNEM2MC44MzU3IDYxLjk2MjMgNjEuNjI0NiA1OS44MTcyIDYyLjcwNTYgNTcuODU1NkM2MS45MzIgNTguMzc0MyA2MS4wMDEzIDU4LjY3NjggNTkuOTk5OSA1OC42NzY4QzU3LjMxMzEgNTguNjc2OCA1NS4xMzUgNTYuNDk4NyA1NS4xMzUgNTMuODExOUM1NS4xMzUgNTEuMTI1IDU3LjMxMzEgNDguOTQ2OSA1OS45OTk5IDQ4Ljk0NjlDNjIuNjg2NyA0OC45NDY5IDY0Ljg2NDkgNTEuMTI1IDY0Ljg2NDkgNTMuODExOUM2NC44NjQ5IDU0LjEzNjQgNjQuODMzMSA1NC40NTM2IDY0Ljc3MjQgNTQuNzYwNEM2Ny45NTc1IDUwLjc2OTggNzIuNTA4NyA0Ny45MTc2IDc3LjcxNzkgNDYuOTExOVoiIGZpbGw9IiMwNEE1NEYiLz4NCjxwYXRoIGQ9Ik01NS41NjEgNjcuOTU2NEM1NS41NjQ3IDY4LjEwNjEgNTUuNTY2NiA2OC4yNTYyIDU1LjU2NjYgNjguNDA2N0M1NS41NjY2IDc4LjE5NDUgNDcuNjMyIDg2LjEyOSAzNy44NDQzIDg2LjEyOUMyOC4wNTY1IDg2LjEyOSAyMC4xMjE5IDc4LjE5NDUgMjAuMTIxOSA2OC40MDY3QzIwLjEyMTkgNTguNjE4OSAyOC4wNTY1IDUwLjY4NDQgMzcuODQ0MyA1MC42ODQ0QzM4LjA2NiA1MC42ODQ0IDM4LjI4NjggNTAuNjg4NSAzOC41MDY2IDUwLjY5NjVDMzkuNTE0MyA1NS45MDYgNDIuMzY4OSA2MC40NTcgNDYuMzYxOSA2My42NDA4QzQ2LjA0NDggNjMuNTc1OSA0NS43MTY2IDYzLjU0MTggNDUuMzgwNCA2My41NDE4QzQyLjY5MzUgNjMuNTQxOCA0MC41MTU0IDY1LjcxOTkgNDAuNTE1NCA2OC40MDY3QzQwLjUxNTQgNzEuMDkzNSA0Mi42OTM1IDczLjI3MTcgNDUuMzgwNCA3My4yNzE3QzQ4LjA2NzIgNzMuMjcxNyA1MC4yNDUzIDcxLjA5MzUgNTAuMjQ1MyA2OC40MDY3QzUwLjI0NTMgNjcuMzk1OSA0OS45MzcxIDY2LjQ1NzIgNDkuNDA5NSA2NS42NzkzQzUxLjMwNTQgNjYuNzI5MiA1My4zNzM2IDY3LjUwNiA1NS41NjEgNjcuOTU2NFoiIGZpbGw9IiMyREE5RTEiLz4NCjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMzAuMTA4OCAxNi4wNjg2QzMwLjEwODggMTIuMjMwMiAzMy4yMjA0IDkuMTE4NjUgMzcuMDU4NyA5LjExODY1QzQwLjg5NyA5LjExODY1IDQ0LjAwODYgMTIuMjMwMiA0NC4wMDg2IDE2LjA2ODZDNDQuMDA4NiAxNy4zNDgzIDQzLjY2MjggMTguNTQ3MiA0My4wNTk0IDE5LjU3N0w0My40MjkxIDE5Ljk0NjdMNDAuNDgwNSAyMi44OTUzTDM5Ljk2NzUgMjIuMzgyM0MzOS4wODI2IDIyLjc5MDcgMzguMDk3MyAyMy4wMTg1IDM3LjA1ODcgMjMuMDE4NUMzMy4yMjA0IDIzLjAxODUgMzAuMTA4OCAxOS45MDY5IDMwLjEwODggMTYuMDY4NlpNMzcuMDU4NyAxMy4yODg2QzM1LjUyMzQgMTMuMjg4NiAzNC4yNzg3IDE0LjUzMzIgMzQuMjc4NyAxNi4wNjg2QzM0LjI3ODcgMTcuNjAzOSAzNS41MjM0IDE4Ljg0ODYgMzcuMDU4NyAxOC44NDg2QzM4LjU5NCAxOC44NDg2IDM5LjgzODcgMTcuNjAzOSAzOS44Mzg3IDE2LjA2ODZDMzkuODM4NyAxNC41MzMyIDM4LjU5NCAxMy4yODg2IDM3LjA1ODcgMTMuMjg4NloiIGZpbGw9IiMyNDI5MkUiLz4NCjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNDMuMjczIDYxLjc4OTdMNDMuMzIwMiAzMi41Mzc1TDQzLjM0NSAzMi41Mzc1QzQzLjM0NDcgMjcuNTEzOCA0Mi42Njk2IDI1LjA4NDQgNDAuNDgwNSAyMi44OTUzTDQzLjQyOTEgMTkuOTQ2N0M0Ni43OTk1IDIzLjMxNzEgNDcuNTE1IDI3LjE0MiA0Ny41MTUgMzIuNTQwOUg0NS40MTE4TDQ3LjQ5MDIgMzIuNTQ0Mkw0Ny40NDMgNjEuNzYwNkM1MC4yODY2IDYyLjYzMTcgNTIuMzU0MyA2NS4yNzc3IDUyLjM1NDMgNjguNDA2N0M1Mi4zNTQzIDcyLjI0NSA0OS4yNDI3IDc1LjM1NjYgNDUuNDA0NCA3NS4zNTY2QzQxLjU2NiA3NS4zNTY2IDM4LjQ1NDQgNzIuMjQ1IDM4LjQ1NDQgNjguNDA2N0MzOC40NTQ0IDY1LjMxMTkgNDAuNDc3MyA2Mi42ODk1IDQzLjI3MyA2MS43ODk3Wk00NS40MDQ0IDY1LjYyNjdDNDMuODY5IDY1LjYyNjcgNDIuNjI0NCA2Ni44NzEzIDQyLjYyNDQgNjguNDA2N0M0Mi42MjQ0IDY5Ljk0MiA0My44NjkgNzEuMTg2NyA0NS40MDQ0IDcxLjE4NjdDNDYuOTM5NyA3MS4xODY3IDQ4LjE4NDMgNjkuOTQyIDQ4LjE4NDMgNjguNDA2N0M0OC4xODQzIDY2Ljg3MTQgNDYuOTM5NyA2NS42MjY3IDQ1LjQwNDQgNjUuNjI2N1oiIGZpbGw9IiMyNDI5MkUiLz4NCjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNzYuNDQ4MyAxNi4wNjg2Qzc2LjQ0ODMgMTIuMjMwMiA3OS41NTk5IDkuMTE4NjUgODMuMzk4MiA5LjExODY1Qzg3LjIzNjYgOS4xMTg2NSA5MC4zNDgxIDEyLjIzMDIgOTAuMzQ4MSAxNi4wNjg2QzkwLjM0ODEgMTkuOTA2OSA4Ny4yMzY2IDIzLjAxODUgODMuMzk4MiAyMy4wMTg1QzgyLjIzODIgMjMuMDE4NSA4MS4xNDQ2IDIyLjczNDMgODAuMTgzMiAyMi4yMzE4TDc5LjUxOTYgMjIuODk1M0M3OS41MTk2IDIyLjg5NTMgNzkuNTE5NiAyMi44OTUzIDc5LjUxOTYgMjIuODk1M0M3Ny4zMzAxIDI1LjA4NDkgNzYuNjU1MyAyNy41MTQ5IDc2LjY1NTMgMzIuNTQwOUw3Ni42NTY3IDMyLjU0MDlWNjEuNzY3NEM3OS40ODg4IDYyLjY0NTUgODEuNTQ1NyA2NS4yODU5IDgxLjU0NTcgNjguNDA2N0M4MS41NDU3IDcyLjI0NSA3OC40MzQxIDc1LjM1NjYgNzQuNTk1OCA3NS4zNTY2QzcwLjc1NzUgNzUuMzU2NiA2Ny42NDU5IDcyLjI0NSA2Ny42NDU5IDY4LjQwNjdDNjcuNjQ1OSA2NS4zMDM2IDY5LjY3OTUgNjIuNjc1NiA3Mi40ODY3IDYxLjc4MjVWMzIuNTQwOUw3Mi40ODU0IDMyLjU0MDlDNzIuNDg1NCAyNy4xNDIgNzMuMjAwNyAyMy4zMTcgNzYuNTcxIDE5Ljk0NjdMNzcuMjM0NyAxOS4yODNDNzYuNzMyNCAxOC4zMjE4IDc2LjQ0ODMgMTcuMjI4MyA3Ni40NDgzIDE2LjA2ODZaTTgzLjM5ODIgMTMuMjg4NkM4MS44NjI5IDEzLjI4ODYgODAuNjE4MiAxNC41MzMyIDgwLjYxODIgMTYuMDY4NkM4MC42MTgyIDE3LjYwMzkgODEuODYyOSAxOC44NDg2IDgzLjM5ODIgMTguODQ4NkM4NC45MzM2IDE4Ljg0ODYgODYuMTc4MiAxNy42MDM5IDg2LjE3ODIgMTYuMDY4NkM4Ni4xNzgyIDE0LjUzMzIgODQuOTMzNiAxMy4yODg2IDgzLjM5ODIgMTMuMjg4NlpNNzQuNTk1OCA2NS42MjY3QzczLjA2MDUgNjUuNjI2NyA3MS44MTU4IDY2Ljg3MTQgNzEuODE1OCA2OC40MDY3QzcxLjgxNTggNjkuOTQyIDczLjA2MDUgNzEuMTg2NyA3NC41OTU4IDcxLjE4NjdDNzYuMTMxMSA3MS4xODY3IDc3LjM3NTggNjkuOTQyIDc3LjM3NTggNjguNDA2N0M3Ny4zNzU4IDY2Ljg3MTQgNzYuMTMxMSA2NS42MjY3IDc0LjU5NTggNjUuNjI2N1oiIGZpbGw9IiMyNDI5MkUiLz4NCjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNjAuMDAwMSAwLjQyNzk3OUM1Ni4xNjE4IDAuNDI3OTc5IDUzLjA1MDIgMy41Mzk1NyA1My4wNTAyIDcuMzc3OTFDNTMuMDUwMiAxMC40ODk4IDU1LjA5NTQgMTMuMTI0IDU3LjkxNSAxNC4wMDk2TDU3LjkxNSA0Ny4xODc3QzU1LjEwNzggNDguMDgwNyA1My4wNzQxIDUwLjcwODggNTMuMDc0MSA1My44MTE5QzUzLjA3NDEgNTYuOTE2MSA1NS4xMDkzIDU5LjU0NSA1Ny45MTgxIDYwLjQzN0w1Ny45MTk4IDYxLjc3MzVDNTUuMDk3OCA2Mi42NTc3IDUzLjA1MDMgNjUuMjkzMSA1My4wNTAzIDY4LjQwNjdDNTMuMDUwMyA3MS41MjY0IDU1LjEwNTkgNzQuMTY2MSA1Ny45MzY1IDc1LjA0NTFMNTcuOTM4MiA3Ni4zNzAxQzU1LjExOSA3Ny4yNTYgNTMuMDc0MSA3OS44OSA1My4wNzQxIDgzLjAwMTZDNTMuMDc0MSA4Ni44Mzk5IDU2LjE4NTcgODkuOTUxNSA2MC4wMjQgODkuOTUxNUM2My44NjI0IDg5Ljk1MTUgNjYuOTc0IDg2LjgzOTkgNjYuOTc0IDgzLjAwMTZDNjYuOTc0IDc5Ljg4OTMgNjQuOTI4MiA3Ny4yNTQ5IDYyLjEwODEgNzYuMzY5NUw2Mi4xMDY0IDc1LjAzMThDNjQuOTE1MSA3NC4xMzk3IDY2Ljk1MDIgNzEuNTEwOCA2Ni45NTAyIDY4LjQwNjdDNjYuOTUwMiA2NS4yOTY1IDY0LjkwNzEgNjIuNjYzNCA2Mi4wODk4IDYxLjc3NjRMNjIuMDg4MSA2MC40NTAyQzY0LjkxODYgNTkuNTcxIDY2Ljk3NCA1Ni45MzE1IDY2Ljk3NCA1My44MTE5QzY2Ljk3NCA1MC42OTExIDY0LjkxNyA0OC4wNTA4IDYyLjA4NSA0Ny4xNzI2TDYyLjA4NSAxNC4wMDk3QzY0LjkwNDcgMTMuMTI0MSA2Ni45NSAxMC40ODk5IDY2Ljk1IDcuMzc3OTFDNjYuOTUgMy41Mzk1NyA2My44Mzg0IDAuNDI3OTc5IDYwLjAwMDEgMC40Mjc5NzlaTTU3LjIyMDEgNy4zNzc5MUM1Ny4yMjAxIDUuODQyNTcgNTguNDY0OCA0LjU5Nzk0IDYwLjAwMDEgNC41OTc5NEM2MS41MzU0IDQuNTk3OTQgNjIuNzgwMSA1Ljg0MjU3IDYyLjc4MDEgNy4zNzc5MUM2Mi43ODAxIDguOTEzMjQgNjEuNTM1NCAxMC4xNTc5IDYwLjAwMDEgMTAuMTU3OUM1OC40NjQ4IDEwLjE1NzkgNTcuMjIwMSA4LjkxMzI0IDU3LjIyMDEgNy4zNzc5MVpNNTcuMjQ0MSA4My4wMDE2QzU3LjI0NDEgODEuNDY2MiA1OC40ODg3IDgwLjIyMTYgNjAuMDI0IDgwLjIyMTZDNjEuNTU5NCA4MC4yMjE2IDYyLjgwNCA4MS40NjYyIDYyLjgwNCA4My4wMDE2QzYyLjgwNCA4NC41MzY5IDYxLjU1OTQgODUuNzgxNSA2MC4wMjQgODUuNzgxNUM1OC40ODg3IDg1Ljc4MTUgNTcuMjQ0MSA4NC41MzY5IDU3LjI0NDEgODMuMDAxNlpNNTcuMjIwMyA2OC40MDY3QzU3LjIyMDMgNjYuODcxNCA1OC40NjQ5IDY1LjYyNjggNjAuMDAwMyA2NS42MjY4QzYxLjUzNTYgNjUuNjI2OCA2Mi43ODAyIDY2Ljg3MTQgNjIuNzgwMiA2OC40MDY3QzYyLjc4MDIgNjkuOTQyMSA2MS41MzU2IDcxLjE4NjcgNjAuMDAwMyA3MS4xODY3QzU4LjQ2NDkgNzEuMTg2NyA1Ny4yMjAzIDY5Ljk0MjEgNTcuMjIwMyA2OC40MDY3Wk02MC4wMjQgNTEuMDMxOUM1OC40ODg3IDUxLjAzMTkgNTcuMjQ0MSA1Mi4yNzY1IDU3LjI0NDEgNTMuODExOUM1Ny4yNDQxIDU1LjM0NzIgNTguNDg4NyA1Ni41OTE4IDYwLjAyNCA1Ni41OTE4QzYxLjU1OTQgNTYuNTkxOCA2Mi44MDQgNTUuMzQ3MiA2Mi44MDQgNTMuODExOUM2Mi44MDQgNTIuMjc2NSA2MS41NTk0IDUxLjAzMTkgNjAuMDI0IDUxLjAzMTlaIiBmaWxsPSIjMjQyOTJFIi8+DQo8L2c+DQo8ZGVmcz4NCjxjbGlwUGF0aCBpZD0iY2xpcDBfMTk2OjI4NzkiPg0KPHJlY3Qgd2lkdGg9IjEyMCIgaGVpZ2h0PSIxMjAiIGZpbGw9IndoaXRlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDAuNDI3OTc5KSIvPg0KPC9jbGlwUGF0aD4NCjwvZGVmcz4NCjwvc3ZnPg==';
|
|
4813
|
+
var css_248z$4 = ":root {\n --background: #FFFAEE;\n --primary: #1890ff;\n --primary2: #40a9ff;\n --primary0: #e6f7ff;\n --grey5: #8c8c8c;\n --grey3: #d0d7de;\n --secondary: #fff566;\n --font-color: #494949;\n}\n\n@media (prefers-color-scheme: dark) {\n :root {\n --background: #3c3c3c;\n --font-color: #fafafa;\n }\n}\n@keyframes spin {\n from {\n transform: rotate(0);\n }\n to {\n transform: rotate(360deg);\n }\n}\n.spin {\n animation: spin 1s linear 0s infinite;\n}\n\nspan.label {\n font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", Segoe UI Symbol, \"Noto Color Emoji\";\n font-size: clamp(0.75rem, 8vw - 0.85rem, 0.95rem);\n color: #11181C;\n}\n\nspan.label-secondary {\n font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", Segoe UI Symbol, \"Noto Color Emoji\";\n font-size: clamp(0.65rem, 8vw - 0.75rem, 0.85rem);\n color: #687075;\n}\n\n.btn-group {\n font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", Segoe UI Symbol, \"Noto Color Emoji\";\n width: fit-content;\n display: flex;\n border-radius: 4px;\n}\n\n.btn-group:hover {\n box-shadow: 0 1px 2px 0 rgba(26, 115, 232, 0.45), 0 1px 3px 1px rgba(26, 115, 232, 0.3);\n}\n\n.btn-group-disabled:hover {\n box-shadow: none;\n}\n\n.btn-group button {\n max-width: 260px;\n display: flex;\n background-color: var(--primary);\n border: 1px solid var(--primary);\n color: white;\n padding: 6px 10px;\n cursor: pointer;\n float: left;\n transition: background-color 0.125s ease-in-out;\n z-index: 10;\n align-items: center;\n gap: 8px;\n}\n\n.btn-group-disabled button {\n background-color: var(--grey3);\n color: var(--grey5);\n cursor: default;\n border-color: var(--grey5);\n}\n\n.btn-group button:first-child {\n border-top-left-radius: 4px;\n border-bottom-left-radius: 4px;\n}\n\n.btn-group button:last-child {\n border-top-right-radius: 4px;\n border-bottom-right-radius: 4px;\n border-left-color: #096dd9;\n}\n\n.btn-group button:last-child:disabled {\n border-left-color: var(--grey5);\n}\n\n.btn-group button:not(:last-child) {\n border-right: none;\n}\n\n.btn-group button:focus-visible {\n outline: none;\n}\n\n.btn-group button:focus {\n outline: none;\n}\n\n/* Clear floats (clearfix hack) */\n.btn-group:after {\n content: \"\";\n clear: both;\n display: table;\n}\n\n.btn-group button:hover {\n background-color: var(--primary2);\n z-index: 11;\n}\n\n.btn-group-disabled:hover button:hover {\n background-color: var(--grey3);\n}\n\n.options-content {\n font-size: clamp(0.65rem, 8vw - 0.75rem, 0.85rem);\n}";
|
|
4814
|
+
styleInject(css_248z$4);
|
|
4815
|
+
|
|
4816
|
+
var logo = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIwIiBoZWlnaHQ9IjEyMSIgdmlld0JveD0iMCAwIDEyMCAxMjEiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xOTY6Mjg3OSkiPgo8cGF0aCBkPSJNNzQuMTMyOSAxOS45MzVDNzEuMjU0NiAxOC4xNjQ0IDY3Ljc1OCAxNy4xNTg2IDY0LjIxMzggMTYuNjM3OUM2MC44ODM5IDE2LjI1MjcgNTkuMDY5NyAxNi4yNiA1NS44ODQyIDE2LjU2NTNDNTIuMjg2IDE3LjAyOTUgNDguODg2NiAxOC4xMjY5IDQ1LjgwMTIgMTkuNzQyMkwzOC45NzQ2IDI0LjYzMzRDMzUuMDMzNSAyOC4zODQ0IDMyLjEwNDcgMzMuMTg5OCAzMC42Mzk3IDM4LjU5NzdDMzAuNTQ0MyAzOC45NTAxIDMwLjI3MDMgMzkuMjI3MSAyOS45MTkxIDM5LjMyNjlDMTguMjE2NiA0Mi42NTM3IDkuMDk3NjYgNTMuMDE3MyA4LjE0ODg1IDY1LjI1MTdDNy45NTgxIDY3LjcxMTUgOC4wNDI1MiA2OS4wNzc5IDguMTQ4ODYgNzEuNDk4OUM4LjYxNTcxIDgyLjEyNzggMTguMjAxOSA5NC4wNDY1IDI5LjkyIDk3LjQyMjlDMzAuMjcwOCA5Ny41MjM5IDMwLjU0NDQgOTcuODAxMSAzMC42Mzk4IDk4LjE1MzVDMzMuOTA2MyAxMTAuMjIxIDQ0LjQzMjYgMTE5LjU1MyA1Ny4yNzI3IDEyMC4zMzJDNTkuNzYzMiAxMjAuNDgzIDYxLjEyMTMgMTIwLjQ2NiA2My41MTk5IDEyMC4yMDdDNzQuNTAyNyAxMTkuMDE3IDg1LjY0MzMgMTA5LjkxNCA4OC44OSA5OC4zMDM2Qzg4Ljk4OTcgOTcuOTQ3IDg5LjI3MTUgOTcuNjY4NyA4OS42Mjk1IDk3LjU3NDJDMTAxLjYgOTQuNDE0MSAxMTAuODA5IDgzLjkyMjYgMTExLjc3OCA3MS4zMjc2TDExMS43OSA3MS4xNjMyQzExMS45NyA2OC44MzQ5IDExMi4wNzYgNjcuNDYxMiAxMTEuNzc4IDY1LjA4MDRDMTEwLjE3MiA1Mi4yNDEzIDEwMS41OCA0Mi4zMTg1IDg5LjYzMDEgMzkuMTc2M0M4OS4yNzIgMzkuMDgyMiA4OC45OTA0IDM4LjgwNDMgODguODg3NiAzOC40NDg2Qzg3LjM0NTQgMzMuMTEyMSA4My4xNTY3IDI2LjkxMDggODAuODY2OSAyNC44OTMyQzc4LjQ5MzYgMjIuODAyIDc3LjAxMTIgMjEuNzA1NSA3NC4xMzI5IDE5LjkzNVoiIGZpbGw9IiNGQUZBRkEiLz4KPHBhdGggZD0iTTU1LjM1NjUgODEuNTQ2M0M1Mi4yMTA2IDg1LjczMjQgNDcuNTk4OCA4OC43NTM5IDQyLjI4MzMgODkuODQ4N0M0Mi4yNzk2IDg5Ljk5ODMgNDIuMjc3NyA5MC4xNDg0IDQyLjI3NzcgOTAuMjk5QzQyLjI3NzcgMTAwLjA4NyA1MC4yMTIzIDEwOC4wMjEgNjAgMTA4LjAyMUM2OS43ODc4IDEwOC4wMjEgNzcuNzIyMyAxMDAuMDg3IDc3LjcyMjMgOTAuMjk5Qzc3LjcyMjMgODAuNTExMiA2OS43ODc4IDcyLjU3NjcgNjAgNzIuNTc2N0M1OS43NzgyIDcyLjU3NjcgNTkuNTU3NCA3Mi41ODA3IDU5LjMzNzUgNzIuNTg4OEM1OC44NzI3IDc0Ljk5MTkgNTguMDE0OCA3Ny4yNTQ4IDU2LjgzMzYgNzkuMzA4QzU3LjY4NDUgNzguNTc3OCA1OC43OTA4IDc4LjEzNjYgNjAgNzguMTM2NkM2Mi42ODY5IDc4LjEzNjYgNjQuODY1IDgwLjMxNDcgNjQuODY1IDgzLjAwMTZDNjQuODY1IDg1LjY4ODQgNjIuNjg2OSA4Ny44NjY1IDYwIDg3Ljg2NjVDNTcuMzEzMiA4Ny44NjY1IDU1LjEzNTEgODUuNjg4NCA1NS4xMzUxIDgzLjAwMTZDNTUuMTM1MSA4Mi40OTQ2IDU1LjIxMjYgODIuMDA1OCA1NS4zNTY1IDgxLjU0NjNaIiBmaWxsPSIjRjJCMjREIi8+CjxwYXRoIGQ9Ik03My4zNTUgMjAuODc1NEM3My43MTk5IDIwLjM1OTEgNzMuNTgxNyAxOS42MjM5IDczLjAxMzggMTkuMzQ1OUM3MC42MDg3IDE4LjE2ODMgNjguMDI0IDE3LjMwMDcgNjUuMzExOSAxNi43OTUyQzY0LjcxMiAxNi42ODM0IDY0LjE2OTkgMTcuMTUyNCA2NC4xNjk5IDE3Ljc2MjZWMjQuMjU2M0M2NC4xNjk5IDI0LjczMDkgNjQuNTA0MiAyNS4xMzc3IDY0Ljk2NTIgMjUuMjUwN0M2Ni41MzY0IDI1LjYzNTggNjguMDQxIDI2LjE5MDUgNjkuNDU4NyAyNi44OTQyQzcwLjA4ODggMjcuMjA3MSA3MC44NjQ0IDI2LjgzNzYgNzEuMDI0OCAyNi4xNTI3QzcxLjQ2NTMgMjQuMjcxOCA3Mi4xOTA2IDIyLjUyMyA3My4zNTUgMjAuODc1NFoiIGZpbGw9IiMyNDI5MkUiLz4KPHBhdGggZD0iTTc4Ljg3MjcgMzUuODcwMkM3OC43ODc2IDM1LjcxNzggNzguNzQxNSAzNS41NDY1IDc4Ljc0MTUgMzUuMzcxOVYzMi44ODkxQzc4Ljc0MTUgMzIuODg4NyA3OC43NDEyIDMyLjg4ODQgNzguNzQwOCAzMi44ODg0VjMyLjg4ODRDNzguNzQwNCAzMi44ODg0IDc4Ljc0MDEgMzIuODg4MSA3OC43NDAxIDMyLjg4NzdDNzguNzQwMiAyOC45NTEgNzkuMTczNCAyNy4wNzAzIDgwLjE5NiAyNS42NDQ4QzgwLjUyMDIgMjUuMTkyNyA4MS4xNzAxIDI1LjE4NjQgODEuNTU1MiAyNS41ODc5Qzg0Ljk3MTYgMjkuMTQ5NyA4Ny41MjQ1IDMzLjU0NjUgODguODc4IDM4LjQ0MkM4OC45NzY3IDM4Ljc5ODggODkuMjU4NyAzOS4wNzcgODkuNjE2NyAzOS4xNzEzQzEwMS4yNDggNDIuMjM3MSAxMTAuMTM1IDUyLjA1MzYgMTExLjgzMSA2NC4xNzlDMTExLjkxMyA2NC43NjYgMTExLjQ0OSA2NS4yNzkzIDExMC44NTcgNjUuMjc5M0gxMDQuNDNDMTAzLjkzMiA2NS4yNzkzIDEwMy41MTMgNjQuOTEyOCAxMDMuNDIzIDY0LjQyMzRDMTAxLjczIDU1LjIxNDYgOTQuMjcyOSA0OC4wMTg5IDg0LjkzMjkgNDYuNzIzNEw4Mi41ODczIDQ2LjM5ODFDODIuMTQ4NCA0Ni4zMzcyIDgxLjgwMiA0NS45OTQ4IDgxLjczNTggNDUuNTU2OEw4MS4zODI1IDQzLjIxNTJDODAuOTg1NSA0MC41ODQyIDgwLjExOTUgMzguMTA2NiA3OC44NzI3IDM1Ljg3MDJaIiBmaWxsPSIjMjQyOTJFIi8+CjxwYXRoIGQ9Ik0zOS4wMDYxIDI0LjcxNzFDMzguOTQ2NyAyNC42NTc4IDM4Ljg1MDggMjQuNjU2NSAzOC43OTAzIDI0LjcxNDdDMzQuODk5MSAyOC40NTUyIDMyLjAwNzIgMzMuMjI3OSAzMC41NTM5IDM4LjU5MjhDMzAuNDU4NSAzOC45NDUxIDMwLjE4NDIgMzkuMjIyMyAyOS44MzMxIDM5LjMyMkMxOC40NzMyIDQyLjU0ODUgOS44MzgxNyA1Mi4yNDUzIDguMTY4NyA2NC4xNzkxQzguMDg2NTggNjQuNzY2MSA4LjU1MDU4IDY1LjI3OTMgOS4xNDMyOSA2NS4yNzkzSDE1LjU3MDFDMTYuMDY3NyA2NS4yNzkzIDE2LjQ4NzEgNjQuOTEyOCAxNi41NzcxIDY0LjQyMzRDMTguMjQyOSA1NS4zNjQxIDI1LjQ4NjYgNDguMjUyNCAzNC42MTQ3IDQ2Ljc5MUwzNi45MDk4IDQ2LjQyMzVDMzcuMzQwOCA0Ni4zNTQ1IDM3LjY3NzIgNDYuMDE0IDM3Ljc0MSA0NS41ODIyTDM4LjA4MDYgNDMuMjgyOEMzOC41MjMyIDQwLjI4NjYgMzkuNTczNiAzNy40ODgxIDQxLjEwMjQgMzUuMDE2M0M0MS4yMDIyIDM0Ljg1NDkgNDEuMjU3IDM0LjY2OTQgNDEuMjU3MyAzNC40Nzk2TDQxLjI1OTkgMzIuODgxN0M0MS4yNTkzIDI4LjA0NzIgNDAuNjA0NiAyNi4zMTU2IDM5LjAwNjEgMjQuNzE3MVYyNC43MTcxWiIgZmlsbD0iIzI0MjkyRSIvPgo8cGF0aCBkPSJNNTAuNDYwOSAyNi42Nzg5QzQ5LjgzODUgMjYuOTcwNSA0OS4wODg5IDI2LjYwNzggNDguOTI0MSAyNS45NDA2QzQ4LjQ2MjkgMjQuMDczNiA0Ny43MTI0IDIyLjMzNzIgNDYuNTE5MiAyMC43MDAzQzQ2LjEzOTYgMjAuMTc5NiA0Ni4yODA4IDE5LjQyNjQgNDYuODYzNyAxOS4xNTE3QzQ5LjMxNDkgMTcuOTk2NSA1MS45NDY2IDE3LjE2MSA1NC43MDUgMTYuNjk5QzU1LjI5OTggMTYuNTk5NCA1NS44MyAxNy4wNjY1IDU1LjgzIDE3LjY2OTZWMjQuMTMzOUM1NS44MyAyNC42MTc4IDU1LjQ4MjkgMjUuMDI5OCA1NS4wMTA0IDI1LjEzMzhDNTMuNDIyNCAyNS40ODMzIDUxLjg5OSAyNi4wMDUzIDUwLjQ2MDkgMjYuNjc4OVoiIGZpbGw9IiMyNDI5MkUiLz4KPHBhdGggZD0iTTgxLjM4MjUgOTMuNTk4M0M4MC4wMjEgMTAyLjYyIDczLjE0NjYgMTA5LjgzNyA2NC4zMDI4IDExMS43MTRDNjMuODI2NSAxMTEuODE1IDYzLjQ3NTIgMTEyLjIyOSA2My40NzUyIDExMi43MTZWMTE5LjE3MkM2My40NzUyIDExOS43NzIgNjQuMDAxOCAxMjAuMjM5IDY0LjU5NDkgMTIwLjE0M0M3Ni4zMDg2IDExOC4yNTEgODUuNzY1IDEwOS42MyA4OC44Nzc4IDk4LjM3MjJDODguOTc2NSA5OC4wMTUzIDg5LjI1ODcgOTcuNzM2NSA4OS42MTY3IDk3LjY0MjJDMTAxLjI0NyA5NC41NzY0IDExMC4xMzUgODQuNzU5OCAxMTEuODMxIDcyLjYzNDVDMTExLjkxMyA3Mi4wNDc1IDExMS40NDkgNzEuNTM0MiAxMTAuODU3IDcxLjUzNDJIMTA0LjQzQzEwMy45MzIgNzEuNTM0MiAxMDMuNTEzIDcxLjkwMDcgMTAzLjQyMyA3Mi4zOTAxQzEwMS43MyA4MS41OTg5IDk0LjI3MjkgODguNzk0NiA4NC45MzI5IDkwLjA5MDFMODIuNTg3MyA5MC40MTU0QzgyLjE0ODQgOTAuNDc2MyA4MS44MDIgOTAuODE4NiA4MS43MzU4IDkxLjI1NjdMODEuMzgyNSA5My41OTgzWiIgZmlsbD0iIzI0MjkyRSIvPgo8cGF0aCBkPSJNMzQuNjE0NyA5MC4wMjI1QzI1LjQ4NjYgODguNTYxMSAxOC4yNDI5IDgxLjQ0OTQgMTYuNTc3MSA3Mi4zOUMxNi40ODcxIDcxLjkwMDcgMTYuMDY3NyA3MS41MzQyIDE1LjU3MDEgNzEuNTM0Mkg5LjE0MzI5QzguNTUwNTggNzEuNTM0MiA4LjA4NjU4IDcyLjA0NzQgOC4xNjg3IDcyLjYzNDRDOS44MzgxOCA4NC41NjgyIDE4LjQ3MzIgOTQuMjY1IDI5LjgzMzEgOTcuNDkxNUMzMC4xODQyIDk3LjU5MTIgMzAuNDU4NiA5Ny44NjkgMzAuNTU0MSA5OC4yMjE0QzMzLjczMjkgMTA5Ljk1NSA0My43OTQgMTE4Ljg1NiA1Ni4xMzk1IDEyMC4zMTlDNTYuNzIwMSAxMjAuMzg4IDU3LjIyMDMgMTE5LjkyNyA1Ny4yMjAzIDExOS4zNDJWMTEyLjk0QzU3LjIyMDMgMTEyLjQzMiA1Ni44MzgzIDExMi4wMDcgNTYuMzM2MSAxMTEuOTI5QzQ2LjkxMjkgMTEwLjQ1OSAzOS40NzU5IDEwMi45NzcgMzguMDgwNiA5My41MzA3TDM3Ljc0MSA5MS4yMzEzQzM3LjY3NzIgOTAuNzk5NSAzNy4zNDA4IDkwLjQ1ODkgMzYuOTA5OCA5MC4zODk5TDM0LjYxNDcgOTAuMDIyNVoiIGZpbGw9IiMyNDI5MkUiLz4KPHBhdGggZD0iTTgxLjYyODggODYuMTI5QzkxLjQxNjYgODYuMTI5IDk5LjM1MTEgNzguMTk0NSA5OS4zNTExIDY4LjQwNjdDOTkuMzUxMSA1OC42MTg5IDkxLjQxNjYgNTAuNjg0NCA4MS42Mjg4IDUwLjY4NDRDNzEuODQxIDUwLjY4NDQgNjMuOTA2NSA1OC42MTg5IDYzLjkwNjUgNjguNDA2N0M2My45MDY1IDY4LjUzOTYgNjMuOTA4IDY4LjY3MjEgNjMuOTEwOSA2OC44MDQyQzY2LjMzNyA2OS4yNzI2IDY4LjYyMDQgNzAuMTQxNSA3MC42ODk2IDcxLjMzOTVDNzAuMDcyNSA3MC41MjQxIDY5LjcwNjUgNjkuNTA4MSA2OS43MDY1IDY4LjQwNjdDNjkuNzA2NSA2NS43MTk5IDcxLjg4NDYgNjMuNTQxOCA3NC41NzE1IDYzLjU0MThDNzcuMjU4MyA2My41NDE4IDc5LjQzNjQgNjUuNzE5OSA3OS40MzY0IDY4LjQwNjdDNzkuNDM2NCA3MS4wOTM1IDc3LjI1ODMgNzMuMjcxNyA3NC41NzE1IDczLjI3MTdDNzQuMTI0OSA3My4yNzE3IDczLjY5MjMgNzMuMjExNSA3My4yODE0IDczLjA5ODhDNzcuMzI1MSA3Ni4yODc1IDgwLjIxNzEgODAuODcxNSA4MS4yMzEzIDg2LjEyNDdDODEuMzYzNSA4Ni4xMjc2IDgxLjQ5NiA4Ni4xMjkgODEuNjI4OCA4Ni4xMjlaIiBmaWxsPSIjRUIyMjI3Ii8+CjxwYXRoIGQ9Ik03Ny43MTc5IDQ2LjkxMTlDNzcuNzIwOCA0Ni43Nzk4IDc3LjcyMjIgNDYuNjQ3MyA3Ny43MjIyIDQ2LjUxNDRDNzcuNzIyMiAzNi43MjY3IDY5Ljc4NzcgMjguNzkyMSA1OS45OTk5IDI4Ljc5MjFDNTAuMjEyMSAyOC43OTIxIDQyLjI3NzYgMzYuNzI2NyA0Mi4yNzc2IDQ2LjUxNDRDNDIuMjc3NiA1Ni4zMDIyIDUwLjIxMjEgNjQuMjM2NyA1OS45OTk5IDY0LjIzNjdDNjAuMTMyOCA2NC4yMzY3IDYwLjI2NTMgNjQuMjM1MyA2MC4zOTc0IDY0LjIzMjRDNjAuODM1NyA2MS45NjIzIDYxLjYyNDYgNTkuODE3MiA2Mi43MDU2IDU3Ljg1NTZDNjEuOTMyIDU4LjM3NDMgNjEuMDAxMyA1OC42NzY4IDU5Ljk5OTkgNTguNjc2OEM1Ny4zMTMxIDU4LjY3NjggNTUuMTM1IDU2LjQ5ODcgNTUuMTM1IDUzLjgxMTlDNTUuMTM1IDUxLjEyNSA1Ny4zMTMxIDQ4Ljk0NjkgNTkuOTk5OSA0OC45NDY5QzYyLjY4NjcgNDguOTQ2OSA2NC44NjQ5IDUxLjEyNSA2NC44NjQ5IDUzLjgxMTlDNjQuODY0OSA1NC4xMzY0IDY0LjgzMzEgNTQuNDUzNiA2NC43NzI0IDU0Ljc2MDRDNjcuOTU3NSA1MC43Njk4IDcyLjUwODcgNDcuOTE3NiA3Ny43MTc5IDQ2LjkxMTlaIiBmaWxsPSIjMDRBNTRGIi8+CjxwYXRoIGQ9Ik01NS41NjEgNjcuOTU2NEM1NS41NjQ3IDY4LjEwNjEgNTUuNTY2NiA2OC4yNTYyIDU1LjU2NjYgNjguNDA2N0M1NS41NjY2IDc4LjE5NDUgNDcuNjMyIDg2LjEyOSAzNy44NDQzIDg2LjEyOUMyOC4wNTY1IDg2LjEyOSAyMC4xMjE5IDc4LjE5NDUgMjAuMTIxOSA2OC40MDY3QzIwLjEyMTkgNTguNjE4OSAyOC4wNTY1IDUwLjY4NDQgMzcuODQ0MyA1MC42ODQ0QzM4LjA2NiA1MC42ODQ0IDM4LjI4NjggNTAuNjg4NSAzOC41MDY2IDUwLjY5NjVDMzkuNTE0MyA1NS45MDYgNDIuMzY4OSA2MC40NTcgNDYuMzYxOSA2My42NDA4QzQ2LjA0NDggNjMuNTc1OSA0NS43MTY2IDYzLjU0MTggNDUuMzgwNCA2My41NDE4QzQyLjY5MzUgNjMuNTQxOCA0MC41MTU0IDY1LjcxOTkgNDAuNTE1NCA2OC40MDY3QzQwLjUxNTQgNzEuMDkzNSA0Mi42OTM1IDczLjI3MTcgNDUuMzgwNCA3My4yNzE3QzQ4LjA2NzIgNzMuMjcxNyA1MC4yNDUzIDcxLjA5MzUgNTAuMjQ1MyA2OC40MDY3QzUwLjI0NTMgNjcuMzk1OSA0OS45MzcxIDY2LjQ1NzIgNDkuNDA5NSA2NS42NzkzQzUxLjMwNTQgNjYuNzI5MiA1My4zNzM2IDY3LjUwNiA1NS41NjEgNjcuOTU2NFoiIGZpbGw9IiMyREE5RTEiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zMC4xMDg4IDE2LjA2ODZDMzAuMTA4OCAxMi4yMzAyIDMzLjIyMDQgOS4xMTg2NSAzNy4wNTg3IDkuMTE4NjVDNDAuODk3IDkuMTE4NjUgNDQuMDA4NiAxMi4yMzAyIDQ0LjAwODYgMTYuMDY4NkM0NC4wMDg2IDE3LjM0ODMgNDMuNjYyOCAxOC41NDcyIDQzLjA1OTQgMTkuNTc3TDQzLjQyOTEgMTkuOTQ2N0w0MC40ODA1IDIyLjg5NTNMMzkuOTY3NSAyMi4zODIzQzM5LjA4MjYgMjIuNzkwNyAzOC4wOTczIDIzLjAxODUgMzcuMDU4NyAyMy4wMTg1QzMzLjIyMDQgMjMuMDE4NSAzMC4xMDg4IDE5LjkwNjkgMzAuMTA4OCAxNi4wNjg2Wk0zNy4wNTg3IDEzLjI4ODZDMzUuNTIzNCAxMy4yODg2IDM0LjI3ODcgMTQuNTMzMiAzNC4yNzg3IDE2LjA2ODZDMzQuMjc4NyAxNy42MDM5IDM1LjUyMzQgMTguODQ4NiAzNy4wNTg3IDE4Ljg0ODZDMzguNTk0IDE4Ljg0ODYgMzkuODM4NyAxNy42MDM5IDM5LjgzODcgMTYuMDY4NkMzOS44Mzg3IDE0LjUzMzIgMzguNTk0IDEzLjI4ODYgMzcuMDU4NyAxMy4yODg2WiIgZmlsbD0iIzI0MjkyRSIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTQzLjI3MyA2MS43ODk3TDQzLjMyMDIgMzIuNTM3NUw0My4zNDUgMzIuNTM3NUM0My4zNDQ3IDI3LjUxMzggNDIuNjY5NiAyNS4wODQ0IDQwLjQ4MDUgMjIuODk1M0w0My40MjkxIDE5Ljk0NjdDNDYuNzk5NSAyMy4zMTcxIDQ3LjUxNSAyNy4xNDIgNDcuNTE1IDMyLjU0MDlINDUuNDExOEw0Ny40OTAyIDMyLjU0NDJMNDcuNDQzIDYxLjc2MDZDNTAuMjg2NiA2Mi42MzE3IDUyLjM1NDMgNjUuMjc3NyA1Mi4zNTQzIDY4LjQwNjdDNTIuMzU0MyA3Mi4yNDUgNDkuMjQyNyA3NS4zNTY2IDQ1LjQwNDQgNzUuMzU2NkM0MS41NjYgNzUuMzU2NiAzOC40NTQ0IDcyLjI0NSAzOC40NTQ0IDY4LjQwNjdDMzguNDU0NCA2NS4zMTE5IDQwLjQ3NzMgNjIuNjg5NSA0My4yNzMgNjEuNzg5N1pNNDUuNDA0NCA2NS42MjY3QzQzLjg2OSA2NS42MjY3IDQyLjYyNDQgNjYuODcxMyA0Mi42MjQ0IDY4LjQwNjdDNDIuNjI0NCA2OS45NDIgNDMuODY5IDcxLjE4NjcgNDUuNDA0NCA3MS4xODY3QzQ2LjkzOTcgNzEuMTg2NyA0OC4xODQzIDY5Ljk0MiA0OC4xODQzIDY4LjQwNjdDNDguMTg0MyA2Ni44NzE0IDQ2LjkzOTcgNjUuNjI2NyA0NS40MDQ0IDY1LjYyNjdaIiBmaWxsPSIjMjQyOTJFIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNzYuNDQ4MyAxNi4wNjg2Qzc2LjQ0ODMgMTIuMjMwMiA3OS41NTk5IDkuMTE4NjUgODMuMzk4MiA5LjExODY1Qzg3LjIzNjYgOS4xMTg2NSA5MC4zNDgxIDEyLjIzMDIgOTAuMzQ4MSAxNi4wNjg2QzkwLjM0ODEgMTkuOTA2OSA4Ny4yMzY2IDIzLjAxODUgODMuMzk4MiAyMy4wMTg1QzgyLjIzODIgMjMuMDE4NSA4MS4xNDQ2IDIyLjczNDMgODAuMTgzMiAyMi4yMzE4TDc5LjUxOTYgMjIuODk1M0M3OS41MTk2IDIyLjg5NTMgNzkuNTE5NiAyMi44OTUzIDc5LjUxOTYgMjIuODk1M0M3Ny4zMzAxIDI1LjA4NDkgNzYuNjU1MyAyNy41MTQ5IDc2LjY1NTMgMzIuNTQwOUw3Ni42NTY3IDMyLjU0MDlWNjEuNzY3NEM3OS40ODg4IDYyLjY0NTUgODEuNTQ1NyA2NS4yODU5IDgxLjU0NTcgNjguNDA2N0M4MS41NDU3IDcyLjI0NSA3OC40MzQxIDc1LjM1NjYgNzQuNTk1OCA3NS4zNTY2QzcwLjc1NzUgNzUuMzU2NiA2Ny42NDU5IDcyLjI0NSA2Ny42NDU5IDY4LjQwNjdDNjcuNjQ1OSA2NS4zMDM2IDY5LjY3OTUgNjIuNjc1NiA3Mi40ODY3IDYxLjc4MjVWMzIuNTQwOUw3Mi40ODU0IDMyLjU0MDlDNzIuNDg1NCAyNy4xNDIgNzMuMjAwNyAyMy4zMTcgNzYuNTcxIDE5Ljk0NjdMNzcuMjM0NyAxOS4yODNDNzYuNzMyNCAxOC4zMjE4IDc2LjQ0ODMgMTcuMjI4MyA3Ni40NDgzIDE2LjA2ODZaTTgzLjM5ODIgMTMuMjg4NkM4MS44NjI5IDEzLjI4ODYgODAuNjE4MiAxNC41MzMyIDgwLjYxODIgMTYuMDY4NkM4MC42MTgyIDE3LjYwMzkgODEuODYyOSAxOC44NDg2IDgzLjM5ODIgMTguODQ4NkM4NC45MzM2IDE4Ljg0ODYgODYuMTc4MiAxNy42MDM5IDg2LjE3ODIgMTYuMDY4NkM4Ni4xNzgyIDE0LjUzMzIgODQuOTMzNiAxMy4yODg2IDgzLjM5ODIgMTMuMjg4NlpNNzQuNTk1OCA2NS42MjY3QzczLjA2MDUgNjUuNjI2NyA3MS44MTU4IDY2Ljg3MTQgNzEuODE1OCA2OC40MDY3QzcxLjgxNTggNjkuOTQyIDczLjA2MDUgNzEuMTg2NyA3NC41OTU4IDcxLjE4NjdDNzYuMTMxMSA3MS4xODY3IDc3LjM3NTggNjkuOTQyIDc3LjM3NTggNjguNDA2N0M3Ny4zNzU4IDY2Ljg3MTQgNzYuMTMxMSA2NS42MjY3IDc0LjU5NTggNjUuNjI2N1oiIGZpbGw9IiMyNDI5MkUiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik02MC4wMDAxIDAuNDI3OTc5QzU2LjE2MTggMC40Mjc5NzkgNTMuMDUwMiAzLjUzOTU3IDUzLjA1MDIgNy4zNzc5MUM1My4wNTAyIDEwLjQ4OTggNTUuMDk1NCAxMy4xMjQgNTcuOTE1IDE0LjAwOTZMNTcuOTE1IDQ3LjE4NzdDNTUuMTA3OCA0OC4wODA3IDUzLjA3NDEgNTAuNzA4OCA1My4wNzQxIDUzLjgxMTlDNTMuMDc0MSA1Ni45MTYxIDU1LjEwOTMgNTkuNTQ1IDU3LjkxODEgNjAuNDM3TDU3LjkxOTggNjEuNzczNUM1NS4wOTc4IDYyLjY1NzcgNTMuMDUwMyA2NS4yOTMxIDUzLjA1MDMgNjguNDA2N0M1My4wNTAzIDcxLjUyNjQgNTUuMTA1OSA3NC4xNjYxIDU3LjkzNjUgNzUuMDQ1MUw1Ny45MzgyIDc2LjM3MDFDNTUuMTE5IDc3LjI1NiA1My4wNzQxIDc5Ljg5IDUzLjA3NDEgODMuMDAxNkM1My4wNzQxIDg2LjgzOTkgNTYuMTg1NyA4OS45NTE1IDYwLjAyNCA4OS45NTE1QzYzLjg2MjQgODkuOTUxNSA2Ni45NzQgODYuODM5OSA2Ni45NzQgODMuMDAxNkM2Ni45NzQgNzkuODg5MyA2NC45MjgyIDc3LjI1NDkgNjIuMTA4MSA3Ni4zNjk1TDYyLjEwNjQgNzUuMDMxOEM2NC45MTUxIDc0LjEzOTcgNjYuOTUwMiA3MS41MTA4IDY2Ljk1MDIgNjguNDA2N0M2Ni45NTAyIDY1LjI5NjUgNjQuOTA3MSA2Mi42NjM0IDYyLjA4OTggNjEuNzc2NEw2Mi4wODgxIDYwLjQ1MDJDNjQuOTE4NiA1OS41NzEgNjYuOTc0IDU2LjkzMTUgNjYuOTc0IDUzLjgxMTlDNjYuOTc0IDUwLjY5MTEgNjQuOTE3IDQ4LjA1MDggNjIuMDg1IDQ3LjE3MjZMNjIuMDg1IDE0LjAwOTdDNjQuOTA0NyAxMy4xMjQxIDY2Ljk1IDEwLjQ4OTkgNjYuOTUgNy4zNzc5MUM2Ni45NSAzLjUzOTU3IDYzLjgzODQgMC40Mjc5NzkgNjAuMDAwMSAwLjQyNzk3OVpNNTcuMjIwMSA3LjM3NzkxQzU3LjIyMDEgNS44NDI1NyA1OC40NjQ4IDQuNTk3OTQgNjAuMDAwMSA0LjU5Nzk0QzYxLjUzNTQgNC41OTc5NCA2Mi43ODAxIDUuODQyNTcgNjIuNzgwMSA3LjM3NzkxQzYyLjc4MDEgOC45MTMyNCA2MS41MzU0IDEwLjE1NzkgNjAuMDAwMSAxMC4xNTc5QzU4LjQ2NDggMTAuMTU3OSA1Ny4yMjAxIDguOTEzMjQgNTcuMjIwMSA3LjM3NzkxWk01Ny4yNDQxIDgzLjAwMTZDNTcuMjQ0MSA4MS40NjYyIDU4LjQ4ODcgODAuMjIxNiA2MC4wMjQgODAuMjIxNkM2MS41NTk0IDgwLjIyMTYgNjIuODA0IDgxLjQ2NjIgNjIuODA0IDgzLjAwMTZDNjIuODA0IDg0LjUzNjkgNjEuNTU5NCA4NS43ODE1IDYwLjAyNCA4NS43ODE1QzU4LjQ4ODcgODUuNzgxNSA1Ny4yNDQxIDg0LjUzNjkgNTcuMjQ0MSA4My4wMDE2Wk01Ny4yMjAzIDY4LjQwNjdDNTcuMjIwMyA2Ni44NzE0IDU4LjQ2NDkgNjUuNjI2OCA2MC4wMDAzIDY1LjYyNjhDNjEuNTM1NiA2NS42MjY4IDYyLjc4MDIgNjYuODcxNCA2Mi43ODAyIDY4LjQwNjdDNjIuNzgwMiA2OS45NDIxIDYxLjUzNTYgNzEuMTg2NyA2MC4wMDAzIDcxLjE4NjdDNTguNDY0OSA3MS4xODY3IDU3LjIyMDMgNjkuOTQyMSA1Ny4yMjAzIDY4LjQwNjdaTTYwLjAyNCA1MS4wMzE5QzU4LjQ4ODcgNTEuMDMxOSA1Ny4yNDQxIDUyLjI3NjUgNTcuMjQ0MSA1My44MTE5QzU3LjI0NDEgNTUuMzQ3MiA1OC40ODg3IDU2LjU5MTggNjAuMDI0IDU2LjU5MThDNjEuNTU5NCA1Ni41OTE4IDYyLjgwNCA1NS4zNDcyIDYyLjgwNCA1My44MTE5QzYyLjgwNCA1Mi4yNzY1IDYxLjU1OTQgNTEuMDMxOSA2MC4wMjQgNTEuMDMxOVoiIGZpbGw9IiMyNDI5MkUiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xOTY6Mjg3OSI+CjxyZWN0IHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIiBmaWxsPSJ3aGl0ZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAwLjQyNzk3OSkiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4=';
|
|
4781
4817
|
|
|
4782
4818
|
function Logo() {
|
|
4783
4819
|
return (React__default["default"].createElement("div", { style: {
|
|
@@ -4795,14 +4831,14 @@ const VisuallyHidden=/*#__PURE__*/React__namespace.forwardRef(((i,o)=>/*#__PURE_
|
|
|
4795
4831
|
|
|
4796
4832
|
function usePrevious(r){const u=React__namespace.useRef({value:r,previous:r});return React__namespace.useMemo((()=>(u.current.value!==r&&(u.current.previous=u.current.value,u.current.value=r),u.current.previous)),[r])}
|
|
4797
4833
|
|
|
4798
|
-
const[w,x]=createContextScope("Tooltip",[l$1]);const g=l$1(),E=700,[v,b]=w("TooltipProvider",{isOpenDelayed:!0,delayDuration:E,onOpen:()=>{},onClose:()=>{}});const[y,_]=w("Tooltip");const Tooltip$1=o=>{const{__scopeTooltip:t,children:r,open:i,defaultOpen:a=!1,onOpenChange:l,delayDuration:c}=o,s=b("Tooltip",t),u=g(t),[d,m]=React__namespace.useState(null),f=useId(),C=React__namespace.useRef(0),w=null!=c?c:s.delayDuration,x=React__namespace.useRef(!1),{onOpen:E,onClose:v}=s,[_=!1,h]=useControllableState({prop:i,defaultProp:a,onChange:e=>{e&&(document.dispatchEvent(new CustomEvent("tooltip.open")),E()),null==l||l(e);}}),k=React__namespace.useMemo((()=>_?x.current?"delayed-open":"instant-open":"closed"),[_]),D=React__namespace.useCallback((()=>{window.clearTimeout(C.current),x.current=!1,h(!0);}),[h]),O=React__namespace.useCallback((()=>{window.clearTimeout(C.current),C.current=window.setTimeout((()=>{x.current=!0,h(!0);}),w);}),[w,h]);return React__namespace.useEffect((()=>()=>window.clearTimeout(C.current)),[]),/*#__PURE__*/React__namespace.createElement(Root$6,u,/*#__PURE__*/React__namespace.createElement(y,{scope:t,contentId:f,open:_,stateAttribute:k,trigger:d,onTriggerChange:m,onTriggerEnter:React__namespace.useCallback((()=>{s.isOpenDelayed?O():D();}),[s.isOpenDelayed,O,D]),onOpen:React__namespace.useCallback(D,[D]),onClose:React__namespace.useCallback((()=>{window.clearTimeout(C.current),h(!1),v();}),[h,v])},r))};const TooltipTrigger=/*#__PURE__*/React__namespace.forwardRef(((e,o)=>{const{__scopeTooltip:t,...r}=e,i=_("TooltipTrigger",t),l=g(t),c=useComposedRefs(o,i.onTriggerChange),s=React__namespace.useRef(!1),u=React__namespace.useCallback((()=>s.current=!1),[]);return React__namespace.useEffect((()=>()=>document.removeEventListener("mouseup",u)),[u]),/*#__PURE__*/React__namespace.createElement(Anchor$1,_extends({asChild:!0},l),/*#__PURE__*/React__namespace.createElement(Primitive.button,_extends({"aria-describedby":i.open?i.contentId:void 0,"data-state":i.stateAttribute},r,{ref:c,onMouseEnter:composeEventHandlers(e.onMouseEnter,i.onTriggerEnter),onMouseLeave:composeEventHandlers(e.onMouseLeave,i.onClose),onMouseDown:composeEventHandlers(e.onMouseDown,(()=>{i.onClose(),s.current=!0,document.addEventListener("mouseup",u,{once:!0});})),onFocus:composeEventHandlers(e.onFocus,(()=>{s.current||i.onOpen();})),onBlur:composeEventHandlers(e.onBlur,i.onClose),onClick:composeEventHandlers(e.onClick,(e=>{0===e.detail&&i.onClose();}))})))}));const TooltipContent=/*#__PURE__*/React__namespace.forwardRef(((e,o)=>{const{forceMount:t,...r}=e,n=_("TooltipContent",e.__scopeTooltip);return React__namespace.createElement(Presence,{present:t||n.open},/*#__PURE__*/React__namespace.createElement(h,_extends({ref:o},r)))}));const h=/*#__PURE__*/React__namespace.forwardRef(((e,i)=>{const{__scopeTooltip:a,children:l,"aria-label":c,portalled:s=!0,...p}=e,d=_("TooltipContent",a),m=g(a),f=s?Portal:React__namespace.Fragment,{onClose:w}=d;return useEscapeKeydown((()=>w())),React__namespace.useEffect((()=>(document.addEventListener("tooltip.open",w),()=>document.removeEventListener("tooltip.open",w))),[w]),/*#__PURE__*/React__namespace.createElement(f,null,/*#__PURE__*/React__namespace.createElement(k,{__scopeTooltip:a}),/*#__PURE__*/React__namespace.createElement(Content$4,_extends({"data-state":d.stateAttribute},m,p,{ref:i,style:{...p.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)"}}),/*#__PURE__*/React__namespace.createElement(Slottable,null,l),/*#__PURE__*/React__namespace.createElement(Root$2,{id:d.contentId,role:"tooltip"},c||l)))}));const TooltipArrow=/*#__PURE__*/React__namespace.forwardRef(((e,o)=>{const{__scopeTooltip:t,...r}=e,i=g(t);return React__namespace.createElement(Arrow$4,_extends({},i,r,{ref:o}))}));function k(e){const{__scopeTooltip:o}=e,t=_("CheckTriggerMoved",o),r=useRect(t.trigger),n=null==r?void 0:r.left,i=usePrevious(n),a=null==r?void 0:r.top,l=usePrevious(a),u=t.onClose;return React__namespace.useEffect((()=>{(void 0!==i&&i!==n||void 0!==l&&l!==a)&&u();}),[u,i,l,n,a]),null}const Root$1=Tooltip$1;const Trigger$1=TooltipTrigger;const Content$1=TooltipContent;const Arrow$1=TooltipArrow;
|
|
4834
|
+
const[w,x]=createContextScope("Tooltip",[l$1]);const g=l$1(),E=700,[v,b]=w("TooltipProvider",{isOpenDelayed:!0,delayDuration:E,onOpen:()=>{},onClose:()=>{}});const[y,_]=w("Tooltip");const Tooltip$1=o=>{const{__scopeTooltip:t,children:r,open:i,defaultOpen:a=!1,onOpenChange:l,delayDuration:c}=o,s=b("Tooltip",t),u=g(t),[d,m]=React__namespace.useState(null),f=useId(),C=React__namespace.useRef(0),w=null!=c?c:s.delayDuration,x=React__namespace.useRef(!1),{onOpen:E,onClose:v}=s,[_=!1,h]=useControllableState({prop:i,defaultProp:a,onChange:e=>{e&&(document.dispatchEvent(new CustomEvent("tooltip.open")),E()),null==l||l(e);}}),k=React__namespace.useMemo((()=>_?x.current?"delayed-open":"instant-open":"closed"),[_]),D=React__namespace.useCallback((()=>{window.clearTimeout(C.current),x.current=!1,h(!0);}),[h]),O=React__namespace.useCallback((()=>{window.clearTimeout(C.current),C.current=window.setTimeout((()=>{x.current=!0,h(!0);}),w);}),[w,h]);return React__namespace.useEffect((()=>()=>window.clearTimeout(C.current)),[]),/*#__PURE__*/React__namespace.createElement(Root$6,u,/*#__PURE__*/React__namespace.createElement(y,{scope:t,contentId:f,open:_,stateAttribute:k,trigger:d,onTriggerChange:m,onTriggerEnter:React__namespace.useCallback((()=>{s.isOpenDelayed?O():D();}),[s.isOpenDelayed,O,D]),onOpen:React__namespace.useCallback(D,[D]),onClose:React__namespace.useCallback((()=>{window.clearTimeout(C.current),h(!1),v();}),[h,v])},r))};const TooltipTrigger=/*#__PURE__*/React__namespace.forwardRef(((e,o)=>{const{__scopeTooltip:t,...r}=e,i=_("TooltipTrigger",t),l=g(t),c=useComposedRefs(o,i.onTriggerChange),s=React__namespace.useRef(!1),u=React__namespace.useCallback((()=>s.current=!1),[]);return React__namespace.useEffect((()=>()=>document.removeEventListener("mouseup",u)),[u]),/*#__PURE__*/React__namespace.createElement(Anchor$1,_extends({asChild:!0},l),/*#__PURE__*/React__namespace.createElement(Primitive.button,_extends({"aria-describedby":i.open?i.contentId:void 0,"data-state":i.stateAttribute},r,{ref:c,onMouseEnter:composeEventHandlers$1(e.onMouseEnter,i.onTriggerEnter),onMouseLeave:composeEventHandlers$1(e.onMouseLeave,i.onClose),onMouseDown:composeEventHandlers$1(e.onMouseDown,(()=>{i.onClose(),s.current=!0,document.addEventListener("mouseup",u,{once:!0});})),onFocus:composeEventHandlers$1(e.onFocus,(()=>{s.current||i.onOpen();})),onBlur:composeEventHandlers$1(e.onBlur,i.onClose),onClick:composeEventHandlers$1(e.onClick,(e=>{0===e.detail&&i.onClose();}))})))}));const TooltipContent=/*#__PURE__*/React__namespace.forwardRef(((e,o)=>{const{forceMount:t,...r}=e,n=_("TooltipContent",e.__scopeTooltip);return React__namespace.createElement(Presence,{present:t||n.open},/*#__PURE__*/React__namespace.createElement(h,_extends({ref:o},r)))}));const h=/*#__PURE__*/React__namespace.forwardRef(((e,i)=>{const{__scopeTooltip:a,children:l,"aria-label":c,portalled:s=!0,...p}=e,d=_("TooltipContent",a),m=g(a),f=s?Portal:React__namespace.Fragment,{onClose:w}=d;return useEscapeKeydown((()=>w())),React__namespace.useEffect((()=>(document.addEventListener("tooltip.open",w),()=>document.removeEventListener("tooltip.open",w))),[w]),/*#__PURE__*/React__namespace.createElement(f,null,/*#__PURE__*/React__namespace.createElement(k,{__scopeTooltip:a}),/*#__PURE__*/React__namespace.createElement(Content$4,_extends({"data-state":d.stateAttribute},m,p,{ref:i,style:{...p.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)"}}),/*#__PURE__*/React__namespace.createElement(Slottable,null,l),/*#__PURE__*/React__namespace.createElement(Root$2,{id:d.contentId,role:"tooltip"},c||l)))}));const TooltipArrow=/*#__PURE__*/React__namespace.forwardRef(((e,o)=>{const{__scopeTooltip:t,...r}=e,i=g(t);return React__namespace.createElement(Arrow$4,_extends({},i,r,{ref:o}))}));function k(e){const{__scopeTooltip:o}=e,t=_("CheckTriggerMoved",o),r=useRect(t.trigger),n=null==r?void 0:r.left,i=usePrevious(n),a=null==r?void 0:r.top,l=usePrevious(a),u=t.onClose;return React__namespace.useEffect((()=>{(void 0!==i&&i!==n||void 0!==l&&l!==a)&&u();}),[u,i,l,n,a]),null}const Root$1=Tooltip$1;const Trigger$1=TooltipTrigger;const Content$1=TooltipContent;const Arrow$1=TooltipArrow;
|
|
4799
4835
|
|
|
4800
|
-
var css_248z$
|
|
4801
|
-
styleInject(css_248z$
|
|
4836
|
+
var css_248z$3 = ":root {\n --background: #FFFAEE;\n --primary: #1890ff;\n --primary2: #40a9ff;\n --primary0: #e6f7ff;\n --grey5: #8c8c8c;\n --grey3: #d0d7de;\n --secondary: #fff566;\n --font-color: #494949;\n}\n\n@media (prefers-color-scheme: dark) {\n :root {\n --background: #3c3c3c;\n --font-color: #fafafa;\n }\n}\n@keyframes spin {\n from {\n transform: rotate(0);\n }\n to {\n transform: rotate(360deg);\n }\n}\n.spin {\n animation: spin 1s linear 0s infinite;\n}\n\nspan.label {\n font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", Segoe UI Symbol, \"Noto Color Emoji\";\n font-size: clamp(0.75rem, 8vw - 0.85rem, 0.95rem);\n color: #11181C;\n}\n\nspan.label-secondary {\n font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", Segoe UI Symbol, \"Noto Color Emoji\";\n font-size: clamp(0.65rem, 8vw - 0.75rem, 0.85rem);\n color: #687075;\n}\n\n.tooltip-content {\n font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", Segoe UI Symbol, \"Noto Color Emoji\";\n color: black;\n border-radius: 4px;\n padding: 6px 10px;\n background-color: white;\n font-size: 0.85rem;\n font-weight: 500;\n border: 1px solid #d0d7de;\n box-shadow: hsla(206deg, 22%, 7%, 0.35) 0px 10px 38px -10px, hsla(206deg, 22%, 7%, 0.2) 0px 10px 20px -15px;\n}";
|
|
4837
|
+
styleInject(css_248z$3);
|
|
4802
4838
|
|
|
4803
4839
|
var Root = Root$1, Trigger = Trigger$1, Content = Content$1, Arrow = Arrow$1;
|
|
4804
4840
|
var Tooltip = function (_a) {
|
|
4805
|
-
var content = _a.content, _b = _a.side, side = _b === void 0 ? "
|
|
4841
|
+
var content = _a.content, _b = _a.side, side = _b === void 0 ? "right" : _b, children = _a.children, style = _a.style;
|
|
4806
4842
|
return (React__default["default"].createElement(Root, { delayDuration: 10 },
|
|
4807
4843
|
React__default["default"].createElement(Trigger, { asChild: true }, children),
|
|
4808
4844
|
React__default["default"].createElement(Content, { className: 'tooltip-content', portalled: true, side: side, align: 'center', style: __assign$2({ zIndex: 9999 }, style) },
|
|
@@ -4910,11 +4946,1733 @@ var GetGeometry = function (_a) {
|
|
|
4910
4946
|
undefined }));
|
|
4911
4947
|
};
|
|
4912
4948
|
|
|
4913
|
-
|
|
4914
|
-
|
|
4949
|
+
/******************************************************************************
|
|
4950
|
+
Copyright (c) Microsoft Corporation.
|
|
4951
|
+
|
|
4952
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
4953
|
+
purpose with or without fee is hereby granted.
|
|
4954
|
+
|
|
4955
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
4956
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
4957
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
4958
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
4959
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
4960
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
4961
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
4962
|
+
***************************************************************************** */
|
|
4963
|
+
|
|
4964
|
+
function __awaiter(thisArg, _arguments, P, generator) {
|
|
4965
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4966
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4967
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
4968
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
4969
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
4970
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
4971
|
+
});
|
|
4972
|
+
}
|
|
4973
|
+
|
|
4974
|
+
function __generator(thisArg, body) {
|
|
4975
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
4976
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
4977
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
4978
|
+
function step(op) {
|
|
4979
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
4980
|
+
while (_) try {
|
|
4981
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
4982
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
4983
|
+
switch (op[0]) {
|
|
4984
|
+
case 0: case 1: t = op; break;
|
|
4985
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
4986
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
4987
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
4988
|
+
default:
|
|
4989
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
4990
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
4991
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
4992
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
4993
|
+
if (t[2]) _.ops.pop();
|
|
4994
|
+
_.trys.pop(); continue;
|
|
4995
|
+
}
|
|
4996
|
+
op = body.call(thisArg, _);
|
|
4997
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
4998
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
4999
|
+
}
|
|
5000
|
+
}
|
|
5001
|
+
|
|
5002
|
+
function __read(o, n) {
|
|
5003
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
5004
|
+
if (!m) return o;
|
|
5005
|
+
var i = m.call(o), r, ar = [], e;
|
|
5006
|
+
try {
|
|
5007
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
5008
|
+
}
|
|
5009
|
+
catch (error) { e = { error: error }; }
|
|
5010
|
+
finally {
|
|
5011
|
+
try {
|
|
5012
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
5013
|
+
}
|
|
5014
|
+
finally { if (e) throw e.error; }
|
|
5015
|
+
}
|
|
5016
|
+
return ar;
|
|
5017
|
+
}
|
|
5018
|
+
|
|
5019
|
+
function __spreadArray(to, from, pack) {
|
|
5020
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
5021
|
+
if (ar || !(i in from)) {
|
|
5022
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
5023
|
+
ar[i] = from[i];
|
|
5024
|
+
}
|
|
5025
|
+
}
|
|
5026
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
5027
|
+
}
|
|
5028
|
+
|
|
5029
|
+
var COMMON_MIME_TYPES = new Map([
|
|
5030
|
+
// https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types
|
|
5031
|
+
['aac', 'audio/aac'],
|
|
5032
|
+
['abw', 'application/x-abiword'],
|
|
5033
|
+
['arc', 'application/x-freearc'],
|
|
5034
|
+
['avif', 'image/avif'],
|
|
5035
|
+
['avi', 'video/x-msvideo'],
|
|
5036
|
+
['azw', 'application/vnd.amazon.ebook'],
|
|
5037
|
+
['bin', 'application/octet-stream'],
|
|
5038
|
+
['bmp', 'image/bmp'],
|
|
5039
|
+
['bz', 'application/x-bzip'],
|
|
5040
|
+
['bz2', 'application/x-bzip2'],
|
|
5041
|
+
['cda', 'application/x-cdf'],
|
|
5042
|
+
['csh', 'application/x-csh'],
|
|
5043
|
+
['css', 'text/css'],
|
|
5044
|
+
['csv', 'text/csv'],
|
|
5045
|
+
['doc', 'application/msword'],
|
|
5046
|
+
['docx', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'],
|
|
5047
|
+
['eot', 'application/vnd.ms-fontobject'],
|
|
5048
|
+
['epub', 'application/epub+zip'],
|
|
5049
|
+
['gz', 'application/gzip'],
|
|
5050
|
+
['gif', 'image/gif'],
|
|
5051
|
+
['heic', 'image/heic'],
|
|
5052
|
+
['heif', 'image/heif'],
|
|
5053
|
+
['htm', 'text/html'],
|
|
5054
|
+
['html', 'text/html'],
|
|
5055
|
+
['ico', 'image/vnd.microsoft.icon'],
|
|
5056
|
+
['ics', 'text/calendar'],
|
|
5057
|
+
['jar', 'application/java-archive'],
|
|
5058
|
+
['jpeg', 'image/jpeg'],
|
|
5059
|
+
['jpg', 'image/jpeg'],
|
|
5060
|
+
['js', 'text/javascript'],
|
|
5061
|
+
['json', 'application/json'],
|
|
5062
|
+
['jsonld', 'application/ld+json'],
|
|
5063
|
+
['mid', 'audio/midi'],
|
|
5064
|
+
['midi', 'audio/midi'],
|
|
5065
|
+
['mjs', 'text/javascript'],
|
|
5066
|
+
['mp3', 'audio/mpeg'],
|
|
5067
|
+
['mp4', 'video/mp4'],
|
|
5068
|
+
['mpeg', 'video/mpeg'],
|
|
5069
|
+
['mpkg', 'application/vnd.apple.installer+xml'],
|
|
5070
|
+
['odp', 'application/vnd.oasis.opendocument.presentation'],
|
|
5071
|
+
['ods', 'application/vnd.oasis.opendocument.spreadsheet'],
|
|
5072
|
+
['odt', 'application/vnd.oasis.opendocument.text'],
|
|
5073
|
+
['oga', 'audio/ogg'],
|
|
5074
|
+
['ogv', 'video/ogg'],
|
|
5075
|
+
['ogx', 'application/ogg'],
|
|
5076
|
+
['opus', 'audio/opus'],
|
|
5077
|
+
['otf', 'font/otf'],
|
|
5078
|
+
['png', 'image/png'],
|
|
5079
|
+
['pdf', 'application/pdf'],
|
|
5080
|
+
['php', 'application/x-httpd-php'],
|
|
5081
|
+
['ppt', 'application/vnd.ms-powerpoint'],
|
|
5082
|
+
['pptx', 'application/vnd.openxmlformats-officedocument.presentationml.presentation'],
|
|
5083
|
+
['rar', 'application/vnd.rar'],
|
|
5084
|
+
['rtf', 'application/rtf'],
|
|
5085
|
+
['sh', 'application/x-sh'],
|
|
5086
|
+
['svg', 'image/svg+xml'],
|
|
5087
|
+
['swf', 'application/x-shockwave-flash'],
|
|
5088
|
+
['tar', 'application/x-tar'],
|
|
5089
|
+
['tif', 'image/tiff'],
|
|
5090
|
+
['tiff', 'image/tiff'],
|
|
5091
|
+
['ts', 'video/mp2t'],
|
|
5092
|
+
['ttf', 'font/ttf'],
|
|
5093
|
+
['txt', 'text/plain'],
|
|
5094
|
+
['vsd', 'application/vnd.visio'],
|
|
5095
|
+
['wav', 'audio/wav'],
|
|
5096
|
+
['weba', 'audio/webm'],
|
|
5097
|
+
['webm', 'video/webm'],
|
|
5098
|
+
['webp', 'image/webp'],
|
|
5099
|
+
['woff', 'font/woff'],
|
|
5100
|
+
['woff2', 'font/woff2'],
|
|
5101
|
+
['xhtml', 'application/xhtml+xml'],
|
|
5102
|
+
['xls', 'application/vnd.ms-excel'],
|
|
5103
|
+
['xlsx', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'],
|
|
5104
|
+
['xml', 'application/xml'],
|
|
5105
|
+
['xul', 'application/vnd.mozilla.xul+xml'],
|
|
5106
|
+
['zip', 'application/zip'],
|
|
5107
|
+
['7z', 'application/x-7z-compressed'],
|
|
5108
|
+
// Others
|
|
5109
|
+
['mkv', 'video/x-matroska'],
|
|
5110
|
+
['mov', 'video/quicktime'],
|
|
5111
|
+
['msg', 'application/vnd.ms-outlook']
|
|
5112
|
+
]);
|
|
5113
|
+
function toFileWithPath(file, path) {
|
|
5114
|
+
var f = withMimeType(file);
|
|
5115
|
+
if (typeof f.path !== 'string') { // on electron, path is already set to the absolute path
|
|
5116
|
+
var webkitRelativePath = file.webkitRelativePath;
|
|
5117
|
+
Object.defineProperty(f, 'path', {
|
|
5118
|
+
value: typeof path === 'string'
|
|
5119
|
+
? path
|
|
5120
|
+
// If <input webkitdirectory> is set,
|
|
5121
|
+
// the File will have a {webkitRelativePath} property
|
|
5122
|
+
// https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/webkitdirectory
|
|
5123
|
+
: typeof webkitRelativePath === 'string' && webkitRelativePath.length > 0
|
|
5124
|
+
? webkitRelativePath
|
|
5125
|
+
: file.name,
|
|
5126
|
+
writable: false,
|
|
5127
|
+
configurable: false,
|
|
5128
|
+
enumerable: true
|
|
5129
|
+
});
|
|
5130
|
+
}
|
|
5131
|
+
return f;
|
|
5132
|
+
}
|
|
5133
|
+
function withMimeType(file) {
|
|
5134
|
+
var name = file.name;
|
|
5135
|
+
var hasExtension = name && name.lastIndexOf('.') !== -1;
|
|
5136
|
+
if (hasExtension && !file.type) {
|
|
5137
|
+
var ext = name.split('.')
|
|
5138
|
+
.pop().toLowerCase();
|
|
5139
|
+
var type = COMMON_MIME_TYPES.get(ext);
|
|
5140
|
+
if (type) {
|
|
5141
|
+
Object.defineProperty(file, 'type', {
|
|
5142
|
+
value: type,
|
|
5143
|
+
writable: false,
|
|
5144
|
+
configurable: false,
|
|
5145
|
+
enumerable: true
|
|
5146
|
+
});
|
|
5147
|
+
}
|
|
5148
|
+
}
|
|
5149
|
+
return file;
|
|
5150
|
+
}
|
|
4915
5151
|
|
|
4916
|
-
var
|
|
4917
|
-
|
|
5152
|
+
var FILES_TO_IGNORE = [
|
|
5153
|
+
// Thumbnail cache files for macOS and Windows
|
|
5154
|
+
'.DS_Store',
|
|
5155
|
+
'Thumbs.db' // Windows
|
|
5156
|
+
];
|
|
5157
|
+
/**
|
|
5158
|
+
* Convert a DragEvent's DataTrasfer object to a list of File objects
|
|
5159
|
+
* NOTE: If some of the items are folders,
|
|
5160
|
+
* everything will be flattened and placed in the same list but the paths will be kept as a {path} property.
|
|
5161
|
+
*
|
|
5162
|
+
* EXPERIMENTAL: A list of https://developer.mozilla.org/en-US/docs/Web/API/FileSystemHandle objects can also be passed as an arg
|
|
5163
|
+
* and a list of File objects will be returned.
|
|
5164
|
+
*
|
|
5165
|
+
* @param evt
|
|
5166
|
+
*/
|
|
5167
|
+
function fromEvent(evt) {
|
|
5168
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
5169
|
+
return __generator(this, function (_a) {
|
|
5170
|
+
if (isObject(evt) && isDataTransfer(evt.dataTransfer)) {
|
|
5171
|
+
return [2 /*return*/, getDataTransferFiles(evt.dataTransfer, evt.type)];
|
|
5172
|
+
}
|
|
5173
|
+
else if (isChangeEvt(evt)) {
|
|
5174
|
+
return [2 /*return*/, getInputFiles(evt)];
|
|
5175
|
+
}
|
|
5176
|
+
else if (Array.isArray(evt) && evt.every(function (item) { return 'getFile' in item && typeof item.getFile === 'function'; })) {
|
|
5177
|
+
return [2 /*return*/, getFsHandleFiles(evt)];
|
|
5178
|
+
}
|
|
5179
|
+
return [2 /*return*/, []];
|
|
5180
|
+
});
|
|
5181
|
+
});
|
|
5182
|
+
}
|
|
5183
|
+
function isDataTransfer(value) {
|
|
5184
|
+
return isObject(value);
|
|
5185
|
+
}
|
|
5186
|
+
function isChangeEvt(value) {
|
|
5187
|
+
return isObject(value) && isObject(value.target);
|
|
5188
|
+
}
|
|
5189
|
+
function isObject(v) {
|
|
5190
|
+
return typeof v === 'object' && v !== null;
|
|
5191
|
+
}
|
|
5192
|
+
function getInputFiles(evt) {
|
|
5193
|
+
return fromList(evt.target.files).map(function (file) { return toFileWithPath(file); });
|
|
5194
|
+
}
|
|
5195
|
+
// Ee expect each handle to be https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileHandle
|
|
5196
|
+
function getFsHandleFiles(handles) {
|
|
5197
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
5198
|
+
var files;
|
|
5199
|
+
return __generator(this, function (_a) {
|
|
5200
|
+
switch (_a.label) {
|
|
5201
|
+
case 0: return [4 /*yield*/, Promise.all(handles.map(function (h) { return h.getFile(); }))];
|
|
5202
|
+
case 1:
|
|
5203
|
+
files = _a.sent();
|
|
5204
|
+
return [2 /*return*/, files.map(function (file) { return toFileWithPath(file); })];
|
|
5205
|
+
}
|
|
5206
|
+
});
|
|
5207
|
+
});
|
|
5208
|
+
}
|
|
5209
|
+
function getDataTransferFiles(dt, type) {
|
|
5210
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
5211
|
+
var items, files;
|
|
5212
|
+
return __generator(this, function (_a) {
|
|
5213
|
+
switch (_a.label) {
|
|
5214
|
+
case 0:
|
|
5215
|
+
if (!dt.items) return [3 /*break*/, 2];
|
|
5216
|
+
items = fromList(dt.items)
|
|
5217
|
+
.filter(function (item) { return item.kind === 'file'; });
|
|
5218
|
+
// According to https://html.spec.whatwg.org/multipage/dnd.html#dndevents,
|
|
5219
|
+
// only 'dragstart' and 'drop' has access to the data (source node)
|
|
5220
|
+
if (type !== 'drop') {
|
|
5221
|
+
return [2 /*return*/, items];
|
|
5222
|
+
}
|
|
5223
|
+
return [4 /*yield*/, Promise.all(items.map(toFilePromises))];
|
|
5224
|
+
case 1:
|
|
5225
|
+
files = _a.sent();
|
|
5226
|
+
return [2 /*return*/, noIgnoredFiles(flatten(files))];
|
|
5227
|
+
case 2: return [2 /*return*/, noIgnoredFiles(fromList(dt.files)
|
|
5228
|
+
.map(function (file) { return toFileWithPath(file); }))];
|
|
5229
|
+
}
|
|
5230
|
+
});
|
|
5231
|
+
});
|
|
5232
|
+
}
|
|
5233
|
+
function noIgnoredFiles(files) {
|
|
5234
|
+
return files.filter(function (file) { return FILES_TO_IGNORE.indexOf(file.name) === -1; });
|
|
5235
|
+
}
|
|
5236
|
+
// IE11 does not support Array.from()
|
|
5237
|
+
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from#Browser_compatibility
|
|
5238
|
+
// https://developer.mozilla.org/en-US/docs/Web/API/FileList
|
|
5239
|
+
// https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItemList
|
|
5240
|
+
function fromList(items) {
|
|
5241
|
+
if (items === null) {
|
|
5242
|
+
return [];
|
|
5243
|
+
}
|
|
5244
|
+
var files = [];
|
|
5245
|
+
// tslint:disable: prefer-for-of
|
|
5246
|
+
for (var i = 0; i < items.length; i++) {
|
|
5247
|
+
var file = items[i];
|
|
5248
|
+
files.push(file);
|
|
5249
|
+
}
|
|
5250
|
+
return files;
|
|
5251
|
+
}
|
|
5252
|
+
// https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItem
|
|
5253
|
+
function toFilePromises(item) {
|
|
5254
|
+
if (typeof item.webkitGetAsEntry !== 'function') {
|
|
5255
|
+
return fromDataTransferItem(item);
|
|
5256
|
+
}
|
|
5257
|
+
var entry = item.webkitGetAsEntry();
|
|
5258
|
+
// Safari supports dropping an image node from a different window and can be retrieved using
|
|
5259
|
+
// the DataTransferItem.getAsFile() API
|
|
5260
|
+
// NOTE: FileSystemEntry.file() throws if trying to get the file
|
|
5261
|
+
if (entry && entry.isDirectory) {
|
|
5262
|
+
return fromDirEntry(entry);
|
|
5263
|
+
}
|
|
5264
|
+
return fromDataTransferItem(item);
|
|
5265
|
+
}
|
|
5266
|
+
function flatten(items) {
|
|
5267
|
+
return items.reduce(function (acc, files) { return __spreadArray(__spreadArray([], __read(acc), false), __read((Array.isArray(files) ? flatten(files) : [files])), false); }, []);
|
|
5268
|
+
}
|
|
5269
|
+
function fromDataTransferItem(item) {
|
|
5270
|
+
var file = item.getAsFile();
|
|
5271
|
+
if (!file) {
|
|
5272
|
+
return Promise.reject("".concat(item, " is not a File"));
|
|
5273
|
+
}
|
|
5274
|
+
var fwp = toFileWithPath(file);
|
|
5275
|
+
return Promise.resolve(fwp);
|
|
5276
|
+
}
|
|
5277
|
+
// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemEntry
|
|
5278
|
+
function fromEntry(entry) {
|
|
5279
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
5280
|
+
return __generator(this, function (_a) {
|
|
5281
|
+
return [2 /*return*/, entry.isDirectory ? fromDirEntry(entry) : fromFileEntry(entry)];
|
|
5282
|
+
});
|
|
5283
|
+
});
|
|
5284
|
+
}
|
|
5285
|
+
// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryEntry
|
|
5286
|
+
function fromDirEntry(entry) {
|
|
5287
|
+
var reader = entry.createReader();
|
|
5288
|
+
return new Promise(function (resolve, reject) {
|
|
5289
|
+
var entries = [];
|
|
5290
|
+
function readEntries() {
|
|
5291
|
+
var _this = this;
|
|
5292
|
+
// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryEntry/createReader
|
|
5293
|
+
// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryReader/readEntries
|
|
5294
|
+
reader.readEntries(function (batch) { return __awaiter(_this, void 0, void 0, function () {
|
|
5295
|
+
var files, err_1, items;
|
|
5296
|
+
return __generator(this, function (_a) {
|
|
5297
|
+
switch (_a.label) {
|
|
5298
|
+
case 0:
|
|
5299
|
+
if (!!batch.length) return [3 /*break*/, 5];
|
|
5300
|
+
_a.label = 1;
|
|
5301
|
+
case 1:
|
|
5302
|
+
_a.trys.push([1, 3, , 4]);
|
|
5303
|
+
return [4 /*yield*/, Promise.all(entries)];
|
|
5304
|
+
case 2:
|
|
5305
|
+
files = _a.sent();
|
|
5306
|
+
resolve(files);
|
|
5307
|
+
return [3 /*break*/, 4];
|
|
5308
|
+
case 3:
|
|
5309
|
+
err_1 = _a.sent();
|
|
5310
|
+
reject(err_1);
|
|
5311
|
+
return [3 /*break*/, 4];
|
|
5312
|
+
case 4: return [3 /*break*/, 6];
|
|
5313
|
+
case 5:
|
|
5314
|
+
items = Promise.all(batch.map(fromEntry));
|
|
5315
|
+
entries.push(items);
|
|
5316
|
+
// Continue reading
|
|
5317
|
+
readEntries();
|
|
5318
|
+
_a.label = 6;
|
|
5319
|
+
case 6: return [2 /*return*/];
|
|
5320
|
+
}
|
|
5321
|
+
});
|
|
5322
|
+
}); }, function (err) {
|
|
5323
|
+
reject(err);
|
|
5324
|
+
});
|
|
5325
|
+
}
|
|
5326
|
+
readEntries();
|
|
5327
|
+
});
|
|
5328
|
+
}
|
|
5329
|
+
// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileEntry
|
|
5330
|
+
function fromFileEntry(entry) {
|
|
5331
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
5332
|
+
return __generator(this, function (_a) {
|
|
5333
|
+
return [2 /*return*/, new Promise(function (resolve, reject) {
|
|
5334
|
+
entry.file(function (file) {
|
|
5335
|
+
var fwp = toFileWithPath(file, entry.fullPath);
|
|
5336
|
+
resolve(fwp);
|
|
5337
|
+
}, function (err) {
|
|
5338
|
+
reject(err);
|
|
5339
|
+
});
|
|
5340
|
+
})];
|
|
5341
|
+
});
|
|
5342
|
+
});
|
|
5343
|
+
}
|
|
5344
|
+
|
|
5345
|
+
var _default = function (file, acceptedFiles) {
|
|
5346
|
+
if (file && acceptedFiles) {
|
|
5347
|
+
var acceptedFilesArray = Array.isArray(acceptedFiles) ? acceptedFiles : acceptedFiles.split(',');
|
|
5348
|
+
var fileName = file.name || '';
|
|
5349
|
+
var mimeType = (file.type || '').toLowerCase();
|
|
5350
|
+
var baseMimeType = mimeType.replace(/\/.*$/, '');
|
|
5351
|
+
return acceptedFilesArray.some(function (type) {
|
|
5352
|
+
var validType = type.trim().toLowerCase();
|
|
5353
|
+
|
|
5354
|
+
if (validType.charAt(0) === '.') {
|
|
5355
|
+
return fileName.toLowerCase().endsWith(validType);
|
|
5356
|
+
} else if (validType.endsWith('/*')) {
|
|
5357
|
+
// This is something like a image/* mime type
|
|
5358
|
+
return baseMimeType === validType.replace(/\/.*$/, '');
|
|
5359
|
+
}
|
|
5360
|
+
|
|
5361
|
+
return mimeType === validType;
|
|
5362
|
+
});
|
|
5363
|
+
}
|
|
5364
|
+
|
|
5365
|
+
return true;
|
|
5366
|
+
};
|
|
5367
|
+
|
|
5368
|
+
var accepts = _default;
|
|
5369
|
+
|
|
5370
|
+
function _toConsumableArray$1(arr) { return _arrayWithoutHoles$1(arr) || _iterableToArray$1(arr) || _unsupportedIterableToArray$1(arr) || _nonIterableSpread$1(); }
|
|
5371
|
+
|
|
5372
|
+
function _nonIterableSpread$1() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
5373
|
+
|
|
5374
|
+
function _iterableToArray$1(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
5375
|
+
|
|
5376
|
+
function _arrayWithoutHoles$1(arr) { if (Array.isArray(arr)) return _arrayLikeToArray$1(arr); }
|
|
5377
|
+
|
|
5378
|
+
function _defineProperty$1(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
5379
|
+
|
|
5380
|
+
function _slicedToArray$1(arr, i) { return _arrayWithHoles$1(arr) || _iterableToArrayLimit$1(arr, i) || _unsupportedIterableToArray$1(arr, i) || _nonIterableRest$1(); }
|
|
5381
|
+
|
|
5382
|
+
function _nonIterableRest$1() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
5383
|
+
|
|
5384
|
+
function _unsupportedIterableToArray$1(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$1(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen); }
|
|
5385
|
+
|
|
5386
|
+
function _arrayLikeToArray$1(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
5387
|
+
|
|
5388
|
+
function _iterableToArrayLimit$1(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
5389
|
+
|
|
5390
|
+
function _arrayWithHoles$1(arr) { if (Array.isArray(arr)) return arr; }
|
|
5391
|
+
|
|
5392
|
+
var FILE_INVALID_TYPE = "file-invalid-type";
|
|
5393
|
+
var FILE_TOO_LARGE = "file-too-large";
|
|
5394
|
+
var FILE_TOO_SMALL = "file-too-small";
|
|
5395
|
+
var TOO_MANY_FILES = "too-many-files";
|
|
5396
|
+
|
|
5397
|
+
var getInvalidTypeRejectionErr = function getInvalidTypeRejectionErr(accept) {
|
|
5398
|
+
accept = Array.isArray(accept) && accept.length === 1 ? accept[0] : accept;
|
|
5399
|
+
var messageSuffix = Array.isArray(accept) ? "one of ".concat(accept.join(", ")) : accept;
|
|
5400
|
+
return {
|
|
5401
|
+
code: FILE_INVALID_TYPE,
|
|
5402
|
+
message: "File type must be ".concat(messageSuffix)
|
|
5403
|
+
};
|
|
5404
|
+
};
|
|
5405
|
+
var getTooLargeRejectionErr = function getTooLargeRejectionErr(maxSize) {
|
|
5406
|
+
return {
|
|
5407
|
+
code: FILE_TOO_LARGE,
|
|
5408
|
+
message: "File is larger than ".concat(maxSize, " ").concat(maxSize === 1 ? "byte" : "bytes")
|
|
5409
|
+
};
|
|
5410
|
+
};
|
|
5411
|
+
var getTooSmallRejectionErr = function getTooSmallRejectionErr(minSize) {
|
|
5412
|
+
return {
|
|
5413
|
+
code: FILE_TOO_SMALL,
|
|
5414
|
+
message: "File is smaller than ".concat(minSize, " ").concat(minSize === 1 ? "byte" : "bytes")
|
|
5415
|
+
};
|
|
5416
|
+
};
|
|
5417
|
+
var TOO_MANY_FILES_REJECTION = {
|
|
5418
|
+
code: TOO_MANY_FILES,
|
|
5419
|
+
message: "Too many files"
|
|
5420
|
+
}; // Firefox versions prior to 53 return a bogus MIME type for every file drag, so dragovers with
|
|
5421
|
+
// that MIME type will always be accepted
|
|
5422
|
+
|
|
5423
|
+
function fileAccepted(file, accept) {
|
|
5424
|
+
var isAcceptable = file.type === "application/x-moz-file" || accepts(file, accept);
|
|
5425
|
+
return [isAcceptable, isAcceptable ? null : getInvalidTypeRejectionErr(accept)];
|
|
5426
|
+
}
|
|
5427
|
+
function fileMatchSize(file, minSize, maxSize) {
|
|
5428
|
+
if (isDefined(file.size)) {
|
|
5429
|
+
if (isDefined(minSize) && isDefined(maxSize)) {
|
|
5430
|
+
if (file.size > maxSize) return [false, getTooLargeRejectionErr(maxSize)];
|
|
5431
|
+
if (file.size < minSize) return [false, getTooSmallRejectionErr(minSize)];
|
|
5432
|
+
} else if (isDefined(minSize) && file.size < minSize) return [false, getTooSmallRejectionErr(minSize)];else if (isDefined(maxSize) && file.size > maxSize) return [false, getTooLargeRejectionErr(maxSize)];
|
|
5433
|
+
}
|
|
5434
|
+
|
|
5435
|
+
return [true, null];
|
|
5436
|
+
}
|
|
5437
|
+
|
|
5438
|
+
function isDefined(value) {
|
|
5439
|
+
return value !== undefined && value !== null;
|
|
5440
|
+
}
|
|
5441
|
+
/**
|
|
5442
|
+
*
|
|
5443
|
+
* @param {object} options
|
|
5444
|
+
* @param {File[]} options.files
|
|
5445
|
+
* @param {string|string[]} [options.accept]
|
|
5446
|
+
* @param {number} [options.minSize]
|
|
5447
|
+
* @param {number} [options.maxSize]
|
|
5448
|
+
* @param {boolean} [options.multiple]
|
|
5449
|
+
* @param {number} [options.maxFiles]
|
|
5450
|
+
* @param {(f: File) => FileError|FileError[]|null} [options.validator]
|
|
5451
|
+
* @returns
|
|
5452
|
+
*/
|
|
5453
|
+
|
|
5454
|
+
|
|
5455
|
+
function allFilesAccepted(_ref) {
|
|
5456
|
+
var files = _ref.files,
|
|
5457
|
+
accept = _ref.accept,
|
|
5458
|
+
minSize = _ref.minSize,
|
|
5459
|
+
maxSize = _ref.maxSize,
|
|
5460
|
+
multiple = _ref.multiple,
|
|
5461
|
+
maxFiles = _ref.maxFiles,
|
|
5462
|
+
validator = _ref.validator;
|
|
5463
|
+
|
|
5464
|
+
if (!multiple && files.length > 1 || multiple && maxFiles >= 1 && files.length > maxFiles) {
|
|
5465
|
+
return false;
|
|
5466
|
+
}
|
|
5467
|
+
|
|
5468
|
+
return files.every(function (file) {
|
|
5469
|
+
var _fileAccepted = fileAccepted(file, accept),
|
|
5470
|
+
_fileAccepted2 = _slicedToArray$1(_fileAccepted, 1),
|
|
5471
|
+
accepted = _fileAccepted2[0];
|
|
5472
|
+
|
|
5473
|
+
var _fileMatchSize = fileMatchSize(file, minSize, maxSize),
|
|
5474
|
+
_fileMatchSize2 = _slicedToArray$1(_fileMatchSize, 1),
|
|
5475
|
+
sizeMatch = _fileMatchSize2[0];
|
|
5476
|
+
|
|
5477
|
+
var customErrors = validator ? validator(file) : null;
|
|
5478
|
+
return accepted && sizeMatch && !customErrors;
|
|
5479
|
+
});
|
|
5480
|
+
} // React's synthetic events has event.isPropagationStopped,
|
|
5481
|
+
// but to remain compatibility with other libs (Preact) fall back
|
|
5482
|
+
// to check event.cancelBubble
|
|
5483
|
+
|
|
5484
|
+
function isPropagationStopped(event) {
|
|
5485
|
+
if (typeof event.isPropagationStopped === "function") {
|
|
5486
|
+
return event.isPropagationStopped();
|
|
5487
|
+
} else if (typeof event.cancelBubble !== "undefined") {
|
|
5488
|
+
return event.cancelBubble;
|
|
5489
|
+
}
|
|
5490
|
+
|
|
5491
|
+
return false;
|
|
5492
|
+
}
|
|
5493
|
+
function isEvtWithFiles(event) {
|
|
5494
|
+
if (!event.dataTransfer) {
|
|
5495
|
+
return !!event.target && !!event.target.files;
|
|
5496
|
+
} // https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/types
|
|
5497
|
+
// https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API/Recommended_drag_types#file
|
|
5498
|
+
|
|
5499
|
+
|
|
5500
|
+
return Array.prototype.some.call(event.dataTransfer.types, function (type) {
|
|
5501
|
+
return type === "Files" || type === "application/x-moz-file";
|
|
5502
|
+
});
|
|
5503
|
+
}
|
|
5504
|
+
|
|
5505
|
+
function onDocumentDragOver(event) {
|
|
5506
|
+
event.preventDefault();
|
|
5507
|
+
}
|
|
5508
|
+
|
|
5509
|
+
function isIe(userAgent) {
|
|
5510
|
+
return userAgent.indexOf("MSIE") !== -1 || userAgent.indexOf("Trident/") !== -1;
|
|
5511
|
+
}
|
|
5512
|
+
|
|
5513
|
+
function isEdge(userAgent) {
|
|
5514
|
+
return userAgent.indexOf("Edge/") !== -1;
|
|
5515
|
+
}
|
|
5516
|
+
|
|
5517
|
+
function isIeOrEdge() {
|
|
5518
|
+
var userAgent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window.navigator.userAgent;
|
|
5519
|
+
return isIe(userAgent) || isEdge(userAgent);
|
|
5520
|
+
}
|
|
5521
|
+
/**
|
|
5522
|
+
* This is intended to be used to compose event handlers
|
|
5523
|
+
* They are executed in order until one of them calls `event.isPropagationStopped()`.
|
|
5524
|
+
* Note that the check is done on the first invoke too,
|
|
5525
|
+
* meaning that if propagation was stopped before invoking the fns,
|
|
5526
|
+
* no handlers will be executed.
|
|
5527
|
+
*
|
|
5528
|
+
* @param {Function} fns the event hanlder functions
|
|
5529
|
+
* @return {Function} the event handler to add to an element
|
|
5530
|
+
*/
|
|
5531
|
+
|
|
5532
|
+
function composeEventHandlers() {
|
|
5533
|
+
for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
5534
|
+
fns[_key] = arguments[_key];
|
|
5535
|
+
}
|
|
5536
|
+
|
|
5537
|
+
return function (event) {
|
|
5538
|
+
for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
|
|
5539
|
+
args[_key2 - 1] = arguments[_key2];
|
|
5540
|
+
}
|
|
5541
|
+
|
|
5542
|
+
return fns.some(function (fn) {
|
|
5543
|
+
if (!isPropagationStopped(event) && fn) {
|
|
5544
|
+
fn.apply(void 0, [event].concat(args));
|
|
5545
|
+
}
|
|
5546
|
+
|
|
5547
|
+
return isPropagationStopped(event);
|
|
5548
|
+
});
|
|
5549
|
+
};
|
|
5550
|
+
}
|
|
5551
|
+
/**
|
|
5552
|
+
* canUseFileSystemAccessAPI checks if the [File System Access API](https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API)
|
|
5553
|
+
* is supported by the browser.
|
|
5554
|
+
* @returns {boolean}
|
|
5555
|
+
*/
|
|
5556
|
+
|
|
5557
|
+
function canUseFileSystemAccessAPI() {
|
|
5558
|
+
return "showOpenFilePicker" in window;
|
|
5559
|
+
}
|
|
5560
|
+
/**
|
|
5561
|
+
* Convert the `{accept}` dropzone prop to the
|
|
5562
|
+
* `{types}` option for https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker
|
|
5563
|
+
*
|
|
5564
|
+
* @param {AcceptProp} accept
|
|
5565
|
+
* @returns {{accept: string[]}[]}
|
|
5566
|
+
*/
|
|
5567
|
+
|
|
5568
|
+
function pickerOptionsFromAccept(accept) {
|
|
5569
|
+
if (isDefined(accept)) {
|
|
5570
|
+
return Object.entries(accept).filter(function (_ref2) {
|
|
5571
|
+
var _ref3 = _slicedToArray$1(_ref2, 2),
|
|
5572
|
+
mimeType = _ref3[0],
|
|
5573
|
+
ext = _ref3[1];
|
|
5574
|
+
|
|
5575
|
+
var ok = true;
|
|
5576
|
+
|
|
5577
|
+
if (!isMIMEType(mimeType)) {
|
|
5578
|
+
console.warn("Skipped \"".concat(mimeType, "\" because it is not a valid MIME type. Check https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types for a list of valid MIME types."));
|
|
5579
|
+
ok = false;
|
|
5580
|
+
}
|
|
5581
|
+
|
|
5582
|
+
if (!Array.isArray(ext) || !ext.every(isExt)) {
|
|
5583
|
+
console.warn("Skipped \"".concat(mimeType, "\" because an invalid file extension was provided."));
|
|
5584
|
+
ok = false;
|
|
5585
|
+
}
|
|
5586
|
+
|
|
5587
|
+
return ok;
|
|
5588
|
+
}).map(function (_ref4) {
|
|
5589
|
+
var _ref5 = _slicedToArray$1(_ref4, 2),
|
|
5590
|
+
mimeType = _ref5[0],
|
|
5591
|
+
ext = _ref5[1];
|
|
5592
|
+
|
|
5593
|
+
return {
|
|
5594
|
+
accept: _defineProperty$1({}, mimeType, ext)
|
|
5595
|
+
};
|
|
5596
|
+
});
|
|
5597
|
+
}
|
|
5598
|
+
|
|
5599
|
+
return accept;
|
|
5600
|
+
}
|
|
5601
|
+
/**
|
|
5602
|
+
* Convert the `{accept}` dropzone prop to an array of MIME types/extensions.
|
|
5603
|
+
* @param {AcceptProp} accept
|
|
5604
|
+
* @returns {string}
|
|
5605
|
+
*/
|
|
5606
|
+
|
|
5607
|
+
function acceptPropAsAcceptAttr(accept) {
|
|
5608
|
+
if (isDefined(accept)) {
|
|
5609
|
+
return Object.entries(accept).reduce(function (a, _ref6) {
|
|
5610
|
+
var _ref7 = _slicedToArray$1(_ref6, 2),
|
|
5611
|
+
mimeType = _ref7[0],
|
|
5612
|
+
ext = _ref7[1];
|
|
5613
|
+
|
|
5614
|
+
return [].concat(_toConsumableArray$1(a), [mimeType], _toConsumableArray$1(ext));
|
|
5615
|
+
}, []) // Silently discard invalid entries as pickerOptionsFromAccept warns about these
|
|
5616
|
+
.filter(function (v) {
|
|
5617
|
+
return isMIMEType(v) || isExt(v);
|
|
5618
|
+
}).join(",");
|
|
5619
|
+
}
|
|
5620
|
+
|
|
5621
|
+
return undefined;
|
|
5622
|
+
}
|
|
5623
|
+
/**
|
|
5624
|
+
* Check if v is an exception caused by aborting a request (e.g window.showOpenFilePicker()).
|
|
5625
|
+
*
|
|
5626
|
+
* See https://developer.mozilla.org/en-US/docs/Web/API/DOMException.
|
|
5627
|
+
* @param {any} v
|
|
5628
|
+
* @returns {boolean} True if v is an abort exception.
|
|
5629
|
+
*/
|
|
5630
|
+
|
|
5631
|
+
function isAbort(v) {
|
|
5632
|
+
return v instanceof DOMException && (v.name === "AbortError" || v.code === v.ABORT_ERR);
|
|
5633
|
+
}
|
|
5634
|
+
/**
|
|
5635
|
+
* Check if v is a security error.
|
|
5636
|
+
*
|
|
5637
|
+
* See https://developer.mozilla.org/en-US/docs/Web/API/DOMException.
|
|
5638
|
+
* @param {any} v
|
|
5639
|
+
* @returns {boolean} True if v is a security error.
|
|
5640
|
+
*/
|
|
5641
|
+
|
|
5642
|
+
function isSecurityError(v) {
|
|
5643
|
+
return v instanceof DOMException && (v.name === "SecurityError" || v.code === v.SECURITY_ERR);
|
|
5644
|
+
}
|
|
5645
|
+
/**
|
|
5646
|
+
* Check if v is a MIME type string.
|
|
5647
|
+
*
|
|
5648
|
+
* See accepted format: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#unique_file_type_specifiers.
|
|
5649
|
+
*
|
|
5650
|
+
* @param {string} v
|
|
5651
|
+
*/
|
|
5652
|
+
|
|
5653
|
+
function isMIMEType(v) {
|
|
5654
|
+
return v === "audio/*" || v === "video/*" || v === "image/*" || v === "text/*" || /\w+\/[-+.\w]+/g.test(v);
|
|
5655
|
+
}
|
|
5656
|
+
/**
|
|
5657
|
+
* Check if v is a file extension.
|
|
5658
|
+
* @param {string} v
|
|
5659
|
+
*/
|
|
5660
|
+
|
|
5661
|
+
function isExt(v) {
|
|
5662
|
+
return /^.*\.[\w]+$/.test(v);
|
|
5663
|
+
}
|
|
5664
|
+
/**
|
|
5665
|
+
* @typedef {Object.<string, string[]>} AcceptProp
|
|
5666
|
+
*/
|
|
5667
|
+
|
|
5668
|
+
/**
|
|
5669
|
+
* @typedef {object} FileError
|
|
5670
|
+
* @property {string} message
|
|
5671
|
+
* @property {ErrorCode|string} code
|
|
5672
|
+
*/
|
|
5673
|
+
|
|
5674
|
+
/**
|
|
5675
|
+
* @typedef {"file-invalid-type"|"file-too-large"|"file-too-small"|"too-many-files"} ErrorCode
|
|
5676
|
+
*/
|
|
5677
|
+
|
|
5678
|
+
var _excluded = ["children"],
|
|
5679
|
+
_excluded2 = ["open"],
|
|
5680
|
+
_excluded3 = ["refKey", "role", "onKeyDown", "onFocus", "onBlur", "onClick", "onDragEnter", "onDragOver", "onDragLeave", "onDrop"],
|
|
5681
|
+
_excluded4 = ["refKey", "onChange", "onClick"];
|
|
5682
|
+
|
|
5683
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
5684
|
+
|
|
5685
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
5686
|
+
|
|
5687
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
5688
|
+
|
|
5689
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
5690
|
+
|
|
5691
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
5692
|
+
|
|
5693
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
5694
|
+
|
|
5695
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
5696
|
+
|
|
5697
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
5698
|
+
|
|
5699
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
5700
|
+
|
|
5701
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
5702
|
+
|
|
5703
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
5704
|
+
|
|
5705
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
5706
|
+
|
|
5707
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
5708
|
+
|
|
5709
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
5710
|
+
|
|
5711
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
5712
|
+
/**
|
|
5713
|
+
* Convenience wrapper component for the `useDropzone` hook
|
|
5714
|
+
*
|
|
5715
|
+
* ```jsx
|
|
5716
|
+
* <Dropzone>
|
|
5717
|
+
* {({getRootProps, getInputProps}) => (
|
|
5718
|
+
* <div {...getRootProps()}>
|
|
5719
|
+
* <input {...getInputProps()} />
|
|
5720
|
+
* <p>Drag 'n' drop some files here, or click to select files</p>
|
|
5721
|
+
* </div>
|
|
5722
|
+
* )}
|
|
5723
|
+
* </Dropzone>
|
|
5724
|
+
* ```
|
|
5725
|
+
*/
|
|
5726
|
+
|
|
5727
|
+
var Dropzone = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
5728
|
+
var children = _ref.children,
|
|
5729
|
+
params = _objectWithoutProperties(_ref, _excluded);
|
|
5730
|
+
|
|
5731
|
+
var _useDropzone = useDropzone(params),
|
|
5732
|
+
open = _useDropzone.open,
|
|
5733
|
+
props = _objectWithoutProperties(_useDropzone, _excluded2);
|
|
5734
|
+
|
|
5735
|
+
React.useImperativeHandle(ref, function () {
|
|
5736
|
+
return {
|
|
5737
|
+
open: open
|
|
5738
|
+
};
|
|
5739
|
+
}, [open]); // TODO: Figure out why react-styleguidist cannot create docs if we don't return a jsx element
|
|
5740
|
+
|
|
5741
|
+
return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, children(_objectSpread(_objectSpread({}, props), {}, {
|
|
5742
|
+
open: open
|
|
5743
|
+
})));
|
|
5744
|
+
});
|
|
5745
|
+
Dropzone.displayName = "Dropzone"; // Add default props for react-docgen
|
|
5746
|
+
|
|
5747
|
+
var defaultProps = {
|
|
5748
|
+
disabled: false,
|
|
5749
|
+
getFilesFromEvent: fromEvent,
|
|
5750
|
+
maxSize: Infinity,
|
|
5751
|
+
minSize: 0,
|
|
5752
|
+
multiple: true,
|
|
5753
|
+
maxFiles: 0,
|
|
5754
|
+
preventDropOnDocument: true,
|
|
5755
|
+
noClick: false,
|
|
5756
|
+
noKeyboard: false,
|
|
5757
|
+
noDrag: false,
|
|
5758
|
+
noDragEventsBubbling: false,
|
|
5759
|
+
validator: null,
|
|
5760
|
+
useFsAccessApi: true,
|
|
5761
|
+
autoFocus: false
|
|
5762
|
+
};
|
|
5763
|
+
Dropzone.defaultProps = defaultProps;
|
|
5764
|
+
Dropzone.propTypes = {
|
|
5765
|
+
/**
|
|
5766
|
+
* Render function that exposes the dropzone state and prop getter fns
|
|
5767
|
+
*
|
|
5768
|
+
* @param {object} params
|
|
5769
|
+
* @param {Function} params.getRootProps Returns the props you should apply to the root drop container you render
|
|
5770
|
+
* @param {Function} params.getInputProps Returns the props you should apply to hidden file input you render
|
|
5771
|
+
* @param {Function} params.open Open the native file selection dialog
|
|
5772
|
+
* @param {boolean} params.isFocused Dropzone area is in focus
|
|
5773
|
+
* @param {boolean} params.isFileDialogActive File dialog is opened
|
|
5774
|
+
* @param {boolean} params.isDragActive Active drag is in progress
|
|
5775
|
+
* @param {boolean} params.isDragAccept Dragged files are accepted
|
|
5776
|
+
* @param {boolean} params.isDragReject Some dragged files are rejected
|
|
5777
|
+
* @param {File[]} params.acceptedFiles Accepted files
|
|
5778
|
+
* @param {FileRejection[]} params.fileRejections Rejected files and why they were rejected
|
|
5779
|
+
*/
|
|
5780
|
+
children: PropTypes.func,
|
|
5781
|
+
|
|
5782
|
+
/**
|
|
5783
|
+
* Set accepted file types.
|
|
5784
|
+
* Checkout https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker types option for more information.
|
|
5785
|
+
* Keep in mind that mime type determination is not reliable across platforms. CSV files,
|
|
5786
|
+
* for example, are reported as text/plain under macOS but as application/vnd.ms-excel under
|
|
5787
|
+
* Windows. In some cases there might not be a mime type set at all (https://github.com/react-dropzone/react-dropzone/issues/276).
|
|
5788
|
+
*/
|
|
5789
|
+
accept: PropTypes.objectOf(PropTypes.arrayOf(PropTypes.string)),
|
|
5790
|
+
|
|
5791
|
+
/**
|
|
5792
|
+
* Allow drag 'n' drop (or selection from the file dialog) of multiple files
|
|
5793
|
+
*/
|
|
5794
|
+
multiple: PropTypes.bool,
|
|
5795
|
+
|
|
5796
|
+
/**
|
|
5797
|
+
* If false, allow dropped items to take over the current browser window
|
|
5798
|
+
*/
|
|
5799
|
+
preventDropOnDocument: PropTypes.bool,
|
|
5800
|
+
|
|
5801
|
+
/**
|
|
5802
|
+
* If true, disables click to open the native file selection dialog
|
|
5803
|
+
*/
|
|
5804
|
+
noClick: PropTypes.bool,
|
|
5805
|
+
|
|
5806
|
+
/**
|
|
5807
|
+
* If true, disables SPACE/ENTER to open the native file selection dialog.
|
|
5808
|
+
* Note that it also stops tracking the focus state.
|
|
5809
|
+
*/
|
|
5810
|
+
noKeyboard: PropTypes.bool,
|
|
5811
|
+
|
|
5812
|
+
/**
|
|
5813
|
+
* If true, disables drag 'n' drop
|
|
5814
|
+
*/
|
|
5815
|
+
noDrag: PropTypes.bool,
|
|
5816
|
+
|
|
5817
|
+
/**
|
|
5818
|
+
* If true, stops drag event propagation to parents
|
|
5819
|
+
*/
|
|
5820
|
+
noDragEventsBubbling: PropTypes.bool,
|
|
5821
|
+
|
|
5822
|
+
/**
|
|
5823
|
+
* Minimum file size (in bytes)
|
|
5824
|
+
*/
|
|
5825
|
+
minSize: PropTypes.number,
|
|
5826
|
+
|
|
5827
|
+
/**
|
|
5828
|
+
* Maximum file size (in bytes)
|
|
5829
|
+
*/
|
|
5830
|
+
maxSize: PropTypes.number,
|
|
5831
|
+
|
|
5832
|
+
/**
|
|
5833
|
+
* Maximum accepted number of files
|
|
5834
|
+
* The default value is 0 which means there is no limitation to how many files are accepted.
|
|
5835
|
+
*/
|
|
5836
|
+
maxFiles: PropTypes.number,
|
|
5837
|
+
|
|
5838
|
+
/**
|
|
5839
|
+
* Enable/disable the dropzone
|
|
5840
|
+
*/
|
|
5841
|
+
disabled: PropTypes.bool,
|
|
5842
|
+
|
|
5843
|
+
/**
|
|
5844
|
+
* Use this to provide a custom file aggregator
|
|
5845
|
+
*
|
|
5846
|
+
* @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)
|
|
5847
|
+
*/
|
|
5848
|
+
getFilesFromEvent: PropTypes.func,
|
|
5849
|
+
|
|
5850
|
+
/**
|
|
5851
|
+
* Cb for when closing the file dialog with no selection
|
|
5852
|
+
*/
|
|
5853
|
+
onFileDialogCancel: PropTypes.func,
|
|
5854
|
+
|
|
5855
|
+
/**
|
|
5856
|
+
* Cb for when opening the file dialog
|
|
5857
|
+
*/
|
|
5858
|
+
onFileDialogOpen: PropTypes.func,
|
|
5859
|
+
|
|
5860
|
+
/**
|
|
5861
|
+
* Set to true to use the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API
|
|
5862
|
+
* to open the file picker instead of using an `<input type="file">` click event.
|
|
5863
|
+
*/
|
|
5864
|
+
useFsAccessApi: PropTypes.bool,
|
|
5865
|
+
|
|
5866
|
+
/**
|
|
5867
|
+
* Set to true to focus the root element on render
|
|
5868
|
+
*/
|
|
5869
|
+
autoFocus: PropTypes.bool,
|
|
5870
|
+
|
|
5871
|
+
/**
|
|
5872
|
+
* Cb for when the `dragenter` event occurs.
|
|
5873
|
+
*
|
|
5874
|
+
* @param {DragEvent} event
|
|
5875
|
+
*/
|
|
5876
|
+
onDragEnter: PropTypes.func,
|
|
5877
|
+
|
|
5878
|
+
/**
|
|
5879
|
+
* Cb for when the `dragleave` event occurs
|
|
5880
|
+
*
|
|
5881
|
+
* @param {DragEvent} event
|
|
5882
|
+
*/
|
|
5883
|
+
onDragLeave: PropTypes.func,
|
|
5884
|
+
|
|
5885
|
+
/**
|
|
5886
|
+
* Cb for when the `dragover` event occurs
|
|
5887
|
+
*
|
|
5888
|
+
* @param {DragEvent} event
|
|
5889
|
+
*/
|
|
5890
|
+
onDragOver: PropTypes.func,
|
|
5891
|
+
|
|
5892
|
+
/**
|
|
5893
|
+
* Cb for when the `drop` event occurs.
|
|
5894
|
+
* Note that this callback is invoked after the `getFilesFromEvent` callback is done.
|
|
5895
|
+
*
|
|
5896
|
+
* Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.
|
|
5897
|
+
* `accept` must be a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) or a valid file extension.
|
|
5898
|
+
* If `multiple` is set to false and additional files are dropped,
|
|
5899
|
+
* all files besides the first will be rejected.
|
|
5900
|
+
* Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.
|
|
5901
|
+
*
|
|
5902
|
+
* Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.
|
|
5903
|
+
* If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.
|
|
5904
|
+
*
|
|
5905
|
+
* `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.
|
|
5906
|
+
* For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:
|
|
5907
|
+
*
|
|
5908
|
+
* ```js
|
|
5909
|
+
* function onDrop(acceptedFiles) {
|
|
5910
|
+
* const req = request.post('/upload')
|
|
5911
|
+
* acceptedFiles.forEach(file => {
|
|
5912
|
+
* req.attach(file.name, file)
|
|
5913
|
+
* })
|
|
5914
|
+
* req.end(callback)
|
|
5915
|
+
* }
|
|
5916
|
+
* ```
|
|
5917
|
+
*
|
|
5918
|
+
* @param {File[]} acceptedFiles
|
|
5919
|
+
* @param {FileRejection[]} fileRejections
|
|
5920
|
+
* @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)
|
|
5921
|
+
*/
|
|
5922
|
+
onDrop: PropTypes.func,
|
|
5923
|
+
|
|
5924
|
+
/**
|
|
5925
|
+
* Cb for when the `drop` event occurs.
|
|
5926
|
+
* Note that if no files are accepted, this callback is not invoked.
|
|
5927
|
+
*
|
|
5928
|
+
* @param {File[]} files
|
|
5929
|
+
* @param {(DragEvent|Event)} event
|
|
5930
|
+
*/
|
|
5931
|
+
onDropAccepted: PropTypes.func,
|
|
5932
|
+
|
|
5933
|
+
/**
|
|
5934
|
+
* Cb for when the `drop` event occurs.
|
|
5935
|
+
* Note that if no files are rejected, this callback is not invoked.
|
|
5936
|
+
*
|
|
5937
|
+
* @param {FileRejection[]} fileRejections
|
|
5938
|
+
* @param {(DragEvent|Event)} event
|
|
5939
|
+
*/
|
|
5940
|
+
onDropRejected: PropTypes.func,
|
|
5941
|
+
|
|
5942
|
+
/**
|
|
5943
|
+
* Cb for when there's some error from any of the promises.
|
|
5944
|
+
*
|
|
5945
|
+
* @param {Error} error
|
|
5946
|
+
*/
|
|
5947
|
+
onError: PropTypes.func,
|
|
5948
|
+
|
|
5949
|
+
/**
|
|
5950
|
+
* Custom validation function. It must return null if there's no errors.
|
|
5951
|
+
* @param {File} file
|
|
5952
|
+
* @returns {FileError|FileError[]|null}
|
|
5953
|
+
*/
|
|
5954
|
+
validator: PropTypes.func
|
|
5955
|
+
};
|
|
5956
|
+
/**
|
|
5957
|
+
* A function that is invoked for the `dragenter`,
|
|
5958
|
+
* `dragover` and `dragleave` events.
|
|
5959
|
+
* It is not invoked if the items are not files (such as link, text, etc.).
|
|
5960
|
+
*
|
|
5961
|
+
* @callback dragCb
|
|
5962
|
+
* @param {DragEvent} event
|
|
5963
|
+
*/
|
|
5964
|
+
|
|
5965
|
+
/**
|
|
5966
|
+
* A function that is invoked for the `drop` or input change event.
|
|
5967
|
+
* It is not invoked if the items are not files (such as link, text, etc.).
|
|
5968
|
+
*
|
|
5969
|
+
* @callback dropCb
|
|
5970
|
+
* @param {File[]} acceptedFiles List of accepted files
|
|
5971
|
+
* @param {FileRejection[]} fileRejections List of rejected files and why they were rejected
|
|
5972
|
+
* @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)
|
|
5973
|
+
*/
|
|
5974
|
+
|
|
5975
|
+
/**
|
|
5976
|
+
* A function that is invoked for the `drop` or input change event.
|
|
5977
|
+
* It is not invoked if the items are files (such as link, text, etc.).
|
|
5978
|
+
*
|
|
5979
|
+
* @callback dropAcceptedCb
|
|
5980
|
+
* @param {File[]} files List of accepted files that meet the given criteria
|
|
5981
|
+
* (`accept`, `multiple`, `minSize`, `maxSize`)
|
|
5982
|
+
* @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)
|
|
5983
|
+
*/
|
|
5984
|
+
|
|
5985
|
+
/**
|
|
5986
|
+
* A function that is invoked for the `drop` or input change event.
|
|
5987
|
+
*
|
|
5988
|
+
* @callback dropRejectedCb
|
|
5989
|
+
* @param {File[]} files List of rejected files that do not meet the given criteria
|
|
5990
|
+
* (`accept`, `multiple`, `minSize`, `maxSize`)
|
|
5991
|
+
* @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)
|
|
5992
|
+
*/
|
|
5993
|
+
|
|
5994
|
+
/**
|
|
5995
|
+
* A function that is used aggregate files,
|
|
5996
|
+
* in a asynchronous fashion, from drag or input change events.
|
|
5997
|
+
*
|
|
5998
|
+
* @callback getFilesFromEvent
|
|
5999
|
+
* @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)
|
|
6000
|
+
* @returns {(File[]|Promise<File[]>)}
|
|
6001
|
+
*/
|
|
6002
|
+
|
|
6003
|
+
/**
|
|
6004
|
+
* An object with the current dropzone state.
|
|
6005
|
+
*
|
|
6006
|
+
* @typedef {object} DropzoneState
|
|
6007
|
+
* @property {boolean} isFocused Dropzone area is in focus
|
|
6008
|
+
* @property {boolean} isFileDialogActive File dialog is opened
|
|
6009
|
+
* @property {boolean} isDragActive Active drag is in progress
|
|
6010
|
+
* @property {boolean} isDragAccept Dragged files are accepted
|
|
6011
|
+
* @property {boolean} isDragReject Some dragged files are rejected
|
|
6012
|
+
* @property {File[]} acceptedFiles Accepted files
|
|
6013
|
+
* @property {FileRejection[]} fileRejections Rejected files and why they were rejected
|
|
6014
|
+
*/
|
|
6015
|
+
|
|
6016
|
+
/**
|
|
6017
|
+
* An object with the dropzone methods.
|
|
6018
|
+
*
|
|
6019
|
+
* @typedef {object} DropzoneMethods
|
|
6020
|
+
* @property {Function} getRootProps Returns the props you should apply to the root drop container you render
|
|
6021
|
+
* @property {Function} getInputProps Returns the props you should apply to hidden file input you render
|
|
6022
|
+
* @property {Function} open Open the native file selection dialog
|
|
6023
|
+
*/
|
|
6024
|
+
|
|
6025
|
+
var initialState = {
|
|
6026
|
+
isFocused: false,
|
|
6027
|
+
isFileDialogActive: false,
|
|
6028
|
+
isDragActive: false,
|
|
6029
|
+
isDragAccept: false,
|
|
6030
|
+
isDragReject: false,
|
|
6031
|
+
acceptedFiles: [],
|
|
6032
|
+
fileRejections: []
|
|
6033
|
+
};
|
|
6034
|
+
/**
|
|
6035
|
+
* A React hook that creates a drag 'n' drop area.
|
|
6036
|
+
*
|
|
6037
|
+
* ```jsx
|
|
6038
|
+
* function MyDropzone(props) {
|
|
6039
|
+
* const {getRootProps, getInputProps} = useDropzone({
|
|
6040
|
+
* onDrop: acceptedFiles => {
|
|
6041
|
+
* // do something with the File objects, e.g. upload to some server
|
|
6042
|
+
* }
|
|
6043
|
+
* });
|
|
6044
|
+
* return (
|
|
6045
|
+
* <div {...getRootProps()}>
|
|
6046
|
+
* <input {...getInputProps()} />
|
|
6047
|
+
* <p>Drag and drop some files here, or click to select files</p>
|
|
6048
|
+
* </div>
|
|
6049
|
+
* )
|
|
6050
|
+
* }
|
|
6051
|
+
* ```
|
|
6052
|
+
*
|
|
6053
|
+
* @function useDropzone
|
|
6054
|
+
*
|
|
6055
|
+
* @param {object} props
|
|
6056
|
+
* @param {import("./utils").AcceptProp} [props.accept] Set accepted file types.
|
|
6057
|
+
* Checkout https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker types option for more information.
|
|
6058
|
+
* Keep in mind that mime type determination is not reliable across platforms. CSV files,
|
|
6059
|
+
* for example, are reported as text/plain under macOS but as application/vnd.ms-excel under
|
|
6060
|
+
* Windows. In some cases there might not be a mime type set at all (https://github.com/react-dropzone/react-dropzone/issues/276).
|
|
6061
|
+
* @param {boolean} [props.multiple=true] Allow drag 'n' drop (or selection from the file dialog) of multiple files
|
|
6062
|
+
* @param {boolean} [props.preventDropOnDocument=true] If false, allow dropped items to take over the current browser window
|
|
6063
|
+
* @param {boolean} [props.noClick=false] If true, disables click to open the native file selection dialog
|
|
6064
|
+
* @param {boolean} [props.noKeyboard=false] If true, disables SPACE/ENTER to open the native file selection dialog.
|
|
6065
|
+
* Note that it also stops tracking the focus state.
|
|
6066
|
+
* @param {boolean} [props.noDrag=false] If true, disables drag 'n' drop
|
|
6067
|
+
* @param {boolean} [props.noDragEventsBubbling=false] If true, stops drag event propagation to parents
|
|
6068
|
+
* @param {number} [props.minSize=0] Minimum file size (in bytes)
|
|
6069
|
+
* @param {number} [props.maxSize=Infinity] Maximum file size (in bytes)
|
|
6070
|
+
* @param {boolean} [props.disabled=false] Enable/disable the dropzone
|
|
6071
|
+
* @param {getFilesFromEvent} [props.getFilesFromEvent] Use this to provide a custom file aggregator
|
|
6072
|
+
* @param {Function} [props.onFileDialogCancel] Cb for when closing the file dialog with no selection
|
|
6073
|
+
* @param {boolean} [props.useFsAccessApi] Set to true to use the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API
|
|
6074
|
+
* to open the file picker instead of using an `<input type="file">` click event.
|
|
6075
|
+
* @param {boolean} autoFocus Set to true to auto focus the root element.
|
|
6076
|
+
* @param {Function} [props.onFileDialogOpen] Cb for when opening the file dialog
|
|
6077
|
+
* @param {dragCb} [props.onDragEnter] Cb for when the `dragenter` event occurs.
|
|
6078
|
+
* @param {dragCb} [props.onDragLeave] Cb for when the `dragleave` event occurs
|
|
6079
|
+
* @param {dragCb} [props.onDragOver] Cb for when the `dragover` event occurs
|
|
6080
|
+
* @param {dropCb} [props.onDrop] Cb for when the `drop` event occurs.
|
|
6081
|
+
* Note that this callback is invoked after the `getFilesFromEvent` callback is done.
|
|
6082
|
+
*
|
|
6083
|
+
* Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.
|
|
6084
|
+
* `accept` must be an object with keys as a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) and the value an array of file extensions (optional).
|
|
6085
|
+
* If `multiple` is set to false and additional files are dropped,
|
|
6086
|
+
* all files besides the first will be rejected.
|
|
6087
|
+
* Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.
|
|
6088
|
+
*
|
|
6089
|
+
* Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.
|
|
6090
|
+
* If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.
|
|
6091
|
+
*
|
|
6092
|
+
* `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.
|
|
6093
|
+
* For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:
|
|
6094
|
+
*
|
|
6095
|
+
* ```js
|
|
6096
|
+
* function onDrop(acceptedFiles) {
|
|
6097
|
+
* const req = request.post('/upload')
|
|
6098
|
+
* acceptedFiles.forEach(file => {
|
|
6099
|
+
* req.attach(file.name, file)
|
|
6100
|
+
* })
|
|
6101
|
+
* req.end(callback)
|
|
6102
|
+
* }
|
|
6103
|
+
* ```
|
|
6104
|
+
* @param {dropAcceptedCb} [props.onDropAccepted]
|
|
6105
|
+
* @param {dropRejectedCb} [props.onDropRejected]
|
|
6106
|
+
* @param {(error: Error) => void} [props.onError]
|
|
6107
|
+
*
|
|
6108
|
+
* @returns {DropzoneState & DropzoneMethods}
|
|
6109
|
+
*/
|
|
6110
|
+
|
|
6111
|
+
function useDropzone() {
|
|
6112
|
+
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
6113
|
+
|
|
6114
|
+
var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),
|
|
6115
|
+
accept = _defaultProps$props.accept,
|
|
6116
|
+
disabled = _defaultProps$props.disabled,
|
|
6117
|
+
getFilesFromEvent = _defaultProps$props.getFilesFromEvent,
|
|
6118
|
+
maxSize = _defaultProps$props.maxSize,
|
|
6119
|
+
minSize = _defaultProps$props.minSize,
|
|
6120
|
+
multiple = _defaultProps$props.multiple,
|
|
6121
|
+
maxFiles = _defaultProps$props.maxFiles,
|
|
6122
|
+
onDragEnter = _defaultProps$props.onDragEnter,
|
|
6123
|
+
onDragLeave = _defaultProps$props.onDragLeave,
|
|
6124
|
+
onDragOver = _defaultProps$props.onDragOver,
|
|
6125
|
+
onDrop = _defaultProps$props.onDrop,
|
|
6126
|
+
onDropAccepted = _defaultProps$props.onDropAccepted,
|
|
6127
|
+
onDropRejected = _defaultProps$props.onDropRejected,
|
|
6128
|
+
onFileDialogCancel = _defaultProps$props.onFileDialogCancel,
|
|
6129
|
+
onFileDialogOpen = _defaultProps$props.onFileDialogOpen,
|
|
6130
|
+
useFsAccessApi = _defaultProps$props.useFsAccessApi,
|
|
6131
|
+
autoFocus = _defaultProps$props.autoFocus,
|
|
6132
|
+
preventDropOnDocument = _defaultProps$props.preventDropOnDocument,
|
|
6133
|
+
noClick = _defaultProps$props.noClick,
|
|
6134
|
+
noKeyboard = _defaultProps$props.noKeyboard,
|
|
6135
|
+
noDrag = _defaultProps$props.noDrag,
|
|
6136
|
+
noDragEventsBubbling = _defaultProps$props.noDragEventsBubbling,
|
|
6137
|
+
onError = _defaultProps$props.onError,
|
|
6138
|
+
validator = _defaultProps$props.validator;
|
|
6139
|
+
|
|
6140
|
+
var acceptAttr = React.useMemo(function () {
|
|
6141
|
+
return acceptPropAsAcceptAttr(accept);
|
|
6142
|
+
}, [accept]);
|
|
6143
|
+
var pickerTypes = React.useMemo(function () {
|
|
6144
|
+
return pickerOptionsFromAccept(accept);
|
|
6145
|
+
}, [accept]);
|
|
6146
|
+
var onFileDialogOpenCb = React.useMemo(function () {
|
|
6147
|
+
return typeof onFileDialogOpen === "function" ? onFileDialogOpen : noop;
|
|
6148
|
+
}, [onFileDialogOpen]);
|
|
6149
|
+
var onFileDialogCancelCb = React.useMemo(function () {
|
|
6150
|
+
return typeof onFileDialogCancel === "function" ? onFileDialogCancel : noop;
|
|
6151
|
+
}, [onFileDialogCancel]);
|
|
6152
|
+
/**
|
|
6153
|
+
* @constant
|
|
6154
|
+
* @type {React.MutableRefObject<HTMLElement>}
|
|
6155
|
+
*/
|
|
6156
|
+
|
|
6157
|
+
var rootRef = React.useRef(null);
|
|
6158
|
+
var inputRef = React.useRef(null);
|
|
6159
|
+
|
|
6160
|
+
var _useReducer = React.useReducer(reducer, initialState),
|
|
6161
|
+
_useReducer2 = _slicedToArray(_useReducer, 2),
|
|
6162
|
+
state = _useReducer2[0],
|
|
6163
|
+
dispatch = _useReducer2[1];
|
|
6164
|
+
|
|
6165
|
+
var isFocused = state.isFocused,
|
|
6166
|
+
isFileDialogActive = state.isFileDialogActive;
|
|
6167
|
+
var fsAccessApiWorksRef = React.useRef(typeof window !== "undefined" && window.isSecureContext && useFsAccessApi && canUseFileSystemAccessAPI()); // Update file dialog active state when the window is focused on
|
|
6168
|
+
|
|
6169
|
+
var onWindowFocus = function onWindowFocus() {
|
|
6170
|
+
// Execute the timeout only if the file dialog is opened in the browser
|
|
6171
|
+
if (!fsAccessApiWorksRef.current && isFileDialogActive) {
|
|
6172
|
+
setTimeout(function () {
|
|
6173
|
+
if (inputRef.current) {
|
|
6174
|
+
var files = inputRef.current.files;
|
|
6175
|
+
|
|
6176
|
+
if (!files.length) {
|
|
6177
|
+
dispatch({
|
|
6178
|
+
type: "closeDialog"
|
|
6179
|
+
});
|
|
6180
|
+
onFileDialogCancelCb();
|
|
6181
|
+
}
|
|
6182
|
+
}
|
|
6183
|
+
}, 300);
|
|
6184
|
+
}
|
|
6185
|
+
};
|
|
6186
|
+
|
|
6187
|
+
React.useEffect(function () {
|
|
6188
|
+
window.addEventListener("focus", onWindowFocus, false);
|
|
6189
|
+
return function () {
|
|
6190
|
+
window.removeEventListener("focus", onWindowFocus, false);
|
|
6191
|
+
};
|
|
6192
|
+
}, [inputRef, isFileDialogActive, onFileDialogCancelCb, fsAccessApiWorksRef]);
|
|
6193
|
+
var dragTargetsRef = React.useRef([]);
|
|
6194
|
+
|
|
6195
|
+
var onDocumentDrop = function onDocumentDrop(event) {
|
|
6196
|
+
if (rootRef.current && rootRef.current.contains(event.target)) {
|
|
6197
|
+
// If we intercepted an event for our instance, let it propagate down to the instance's onDrop handler
|
|
6198
|
+
return;
|
|
6199
|
+
}
|
|
6200
|
+
|
|
6201
|
+
event.preventDefault();
|
|
6202
|
+
dragTargetsRef.current = [];
|
|
6203
|
+
};
|
|
6204
|
+
|
|
6205
|
+
React.useEffect(function () {
|
|
6206
|
+
if (preventDropOnDocument) {
|
|
6207
|
+
document.addEventListener("dragover", onDocumentDragOver, false);
|
|
6208
|
+
document.addEventListener("drop", onDocumentDrop, false);
|
|
6209
|
+
}
|
|
6210
|
+
|
|
6211
|
+
return function () {
|
|
6212
|
+
if (preventDropOnDocument) {
|
|
6213
|
+
document.removeEventListener("dragover", onDocumentDragOver);
|
|
6214
|
+
document.removeEventListener("drop", onDocumentDrop);
|
|
6215
|
+
}
|
|
6216
|
+
};
|
|
6217
|
+
}, [rootRef, preventDropOnDocument]); // Auto focus the root when autoFocus is true
|
|
6218
|
+
|
|
6219
|
+
React.useEffect(function () {
|
|
6220
|
+
if (!disabled && autoFocus && rootRef.current) {
|
|
6221
|
+
rootRef.current.focus();
|
|
6222
|
+
}
|
|
6223
|
+
|
|
6224
|
+
return function () {};
|
|
6225
|
+
}, [rootRef, autoFocus, disabled]);
|
|
6226
|
+
var onErrCb = React.useCallback(function (e) {
|
|
6227
|
+
if (onError) {
|
|
6228
|
+
onError(e);
|
|
6229
|
+
} else {
|
|
6230
|
+
// Let the user know something's gone wrong if they haven't provided the onError cb.
|
|
6231
|
+
console.error(e);
|
|
6232
|
+
}
|
|
6233
|
+
}, [onError]);
|
|
6234
|
+
var onDragEnterCb = React.useCallback(function (event) {
|
|
6235
|
+
event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done
|
|
6236
|
+
|
|
6237
|
+
event.persist();
|
|
6238
|
+
stopPropagation(event);
|
|
6239
|
+
dragTargetsRef.current = [].concat(_toConsumableArray(dragTargetsRef.current), [event.target]);
|
|
6240
|
+
|
|
6241
|
+
if (isEvtWithFiles(event)) {
|
|
6242
|
+
Promise.resolve(getFilesFromEvent(event)).then(function (files) {
|
|
6243
|
+
if (isPropagationStopped(event) && !noDragEventsBubbling) {
|
|
6244
|
+
return;
|
|
6245
|
+
}
|
|
6246
|
+
|
|
6247
|
+
var fileCount = files.length;
|
|
6248
|
+
var isDragAccept = fileCount > 0 && allFilesAccepted({
|
|
6249
|
+
files: files,
|
|
6250
|
+
accept: acceptAttr,
|
|
6251
|
+
minSize: minSize,
|
|
6252
|
+
maxSize: maxSize,
|
|
6253
|
+
multiple: multiple,
|
|
6254
|
+
maxFiles: maxFiles,
|
|
6255
|
+
validator: validator
|
|
6256
|
+
});
|
|
6257
|
+
var isDragReject = fileCount > 0 && !isDragAccept;
|
|
6258
|
+
dispatch({
|
|
6259
|
+
isDragAccept: isDragAccept,
|
|
6260
|
+
isDragReject: isDragReject,
|
|
6261
|
+
isDragActive: true,
|
|
6262
|
+
type: "setDraggedFiles"
|
|
6263
|
+
});
|
|
6264
|
+
|
|
6265
|
+
if (onDragEnter) {
|
|
6266
|
+
onDragEnter(event);
|
|
6267
|
+
}
|
|
6268
|
+
}).catch(function (e) {
|
|
6269
|
+
return onErrCb(e);
|
|
6270
|
+
});
|
|
6271
|
+
}
|
|
6272
|
+
}, [getFilesFromEvent, onDragEnter, onErrCb, noDragEventsBubbling, acceptAttr, minSize, maxSize, multiple, maxFiles, validator]);
|
|
6273
|
+
var onDragOverCb = React.useCallback(function (event) {
|
|
6274
|
+
event.preventDefault();
|
|
6275
|
+
event.persist();
|
|
6276
|
+
stopPropagation(event);
|
|
6277
|
+
var hasFiles = isEvtWithFiles(event);
|
|
6278
|
+
|
|
6279
|
+
if (hasFiles && event.dataTransfer) {
|
|
6280
|
+
try {
|
|
6281
|
+
event.dataTransfer.dropEffect = "copy";
|
|
6282
|
+
} catch (_unused) {}
|
|
6283
|
+
/* eslint-disable-line no-empty */
|
|
6284
|
+
|
|
6285
|
+
}
|
|
6286
|
+
|
|
6287
|
+
if (hasFiles && onDragOver) {
|
|
6288
|
+
onDragOver(event);
|
|
6289
|
+
}
|
|
6290
|
+
|
|
6291
|
+
return false;
|
|
6292
|
+
}, [onDragOver, noDragEventsBubbling]);
|
|
6293
|
+
var onDragLeaveCb = React.useCallback(function (event) {
|
|
6294
|
+
event.preventDefault();
|
|
6295
|
+
event.persist();
|
|
6296
|
+
stopPropagation(event); // Only deactivate once the dropzone and all children have been left
|
|
6297
|
+
|
|
6298
|
+
var targets = dragTargetsRef.current.filter(function (target) {
|
|
6299
|
+
return rootRef.current && rootRef.current.contains(target);
|
|
6300
|
+
}); // Make sure to remove a target present multiple times only once
|
|
6301
|
+
// (Firefox may fire dragenter/dragleave multiple times on the same element)
|
|
6302
|
+
|
|
6303
|
+
var targetIdx = targets.indexOf(event.target);
|
|
6304
|
+
|
|
6305
|
+
if (targetIdx !== -1) {
|
|
6306
|
+
targets.splice(targetIdx, 1);
|
|
6307
|
+
}
|
|
6308
|
+
|
|
6309
|
+
dragTargetsRef.current = targets;
|
|
6310
|
+
|
|
6311
|
+
if (targets.length > 0) {
|
|
6312
|
+
return;
|
|
6313
|
+
}
|
|
6314
|
+
|
|
6315
|
+
dispatch({
|
|
6316
|
+
type: "setDraggedFiles",
|
|
6317
|
+
isDragActive: false,
|
|
6318
|
+
isDragAccept: false,
|
|
6319
|
+
isDragReject: false
|
|
6320
|
+
});
|
|
6321
|
+
|
|
6322
|
+
if (isEvtWithFiles(event) && onDragLeave) {
|
|
6323
|
+
onDragLeave(event);
|
|
6324
|
+
}
|
|
6325
|
+
}, [rootRef, onDragLeave, noDragEventsBubbling]);
|
|
6326
|
+
var setFiles = React.useCallback(function (files, event) {
|
|
6327
|
+
var acceptedFiles = [];
|
|
6328
|
+
var fileRejections = [];
|
|
6329
|
+
files.forEach(function (file) {
|
|
6330
|
+
var _fileAccepted = fileAccepted(file, acceptAttr),
|
|
6331
|
+
_fileAccepted2 = _slicedToArray(_fileAccepted, 2),
|
|
6332
|
+
accepted = _fileAccepted2[0],
|
|
6333
|
+
acceptError = _fileAccepted2[1];
|
|
6334
|
+
|
|
6335
|
+
var _fileMatchSize = fileMatchSize(file, minSize, maxSize),
|
|
6336
|
+
_fileMatchSize2 = _slicedToArray(_fileMatchSize, 2),
|
|
6337
|
+
sizeMatch = _fileMatchSize2[0],
|
|
6338
|
+
sizeError = _fileMatchSize2[1];
|
|
6339
|
+
|
|
6340
|
+
var customErrors = validator ? validator(file) : null;
|
|
6341
|
+
|
|
6342
|
+
if (accepted && sizeMatch && !customErrors) {
|
|
6343
|
+
acceptedFiles.push(file);
|
|
6344
|
+
} else {
|
|
6345
|
+
var errors = [acceptError, sizeError];
|
|
6346
|
+
|
|
6347
|
+
if (customErrors) {
|
|
6348
|
+
errors = errors.concat(customErrors);
|
|
6349
|
+
}
|
|
6350
|
+
|
|
6351
|
+
fileRejections.push({
|
|
6352
|
+
file: file,
|
|
6353
|
+
errors: errors.filter(function (e) {
|
|
6354
|
+
return e;
|
|
6355
|
+
})
|
|
6356
|
+
});
|
|
6357
|
+
}
|
|
6358
|
+
});
|
|
6359
|
+
|
|
6360
|
+
if (!multiple && acceptedFiles.length > 1 || multiple && maxFiles >= 1 && acceptedFiles.length > maxFiles) {
|
|
6361
|
+
// Reject everything and empty accepted files
|
|
6362
|
+
acceptedFiles.forEach(function (file) {
|
|
6363
|
+
fileRejections.push({
|
|
6364
|
+
file: file,
|
|
6365
|
+
errors: [TOO_MANY_FILES_REJECTION]
|
|
6366
|
+
});
|
|
6367
|
+
});
|
|
6368
|
+
acceptedFiles.splice(0);
|
|
6369
|
+
}
|
|
6370
|
+
|
|
6371
|
+
dispatch({
|
|
6372
|
+
acceptedFiles: acceptedFiles,
|
|
6373
|
+
fileRejections: fileRejections,
|
|
6374
|
+
type: "setFiles"
|
|
6375
|
+
});
|
|
6376
|
+
|
|
6377
|
+
if (onDrop) {
|
|
6378
|
+
onDrop(acceptedFiles, fileRejections, event);
|
|
6379
|
+
}
|
|
6380
|
+
|
|
6381
|
+
if (fileRejections.length > 0 && onDropRejected) {
|
|
6382
|
+
onDropRejected(fileRejections, event);
|
|
6383
|
+
}
|
|
6384
|
+
|
|
6385
|
+
if (acceptedFiles.length > 0 && onDropAccepted) {
|
|
6386
|
+
onDropAccepted(acceptedFiles, event);
|
|
6387
|
+
}
|
|
6388
|
+
}, [dispatch, multiple, acceptAttr, minSize, maxSize, maxFiles, onDrop, onDropAccepted, onDropRejected, validator]);
|
|
6389
|
+
var onDropCb = React.useCallback(function (event) {
|
|
6390
|
+
event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done
|
|
6391
|
+
|
|
6392
|
+
event.persist();
|
|
6393
|
+
stopPropagation(event);
|
|
6394
|
+
dragTargetsRef.current = [];
|
|
6395
|
+
|
|
6396
|
+
if (isEvtWithFiles(event)) {
|
|
6397
|
+
Promise.resolve(getFilesFromEvent(event)).then(function (files) {
|
|
6398
|
+
if (isPropagationStopped(event) && !noDragEventsBubbling) {
|
|
6399
|
+
return;
|
|
6400
|
+
}
|
|
6401
|
+
|
|
6402
|
+
setFiles(files, event);
|
|
6403
|
+
}).catch(function (e) {
|
|
6404
|
+
return onErrCb(e);
|
|
6405
|
+
});
|
|
6406
|
+
}
|
|
6407
|
+
|
|
6408
|
+
dispatch({
|
|
6409
|
+
type: "reset"
|
|
6410
|
+
});
|
|
6411
|
+
}, [getFilesFromEvent, setFiles, onErrCb, noDragEventsBubbling]); // Fn for opening the file dialog programmatically
|
|
6412
|
+
|
|
6413
|
+
var openFileDialog = React.useCallback(function () {
|
|
6414
|
+
// No point to use FS access APIs if context is not secure
|
|
6415
|
+
// https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts#feature_detection
|
|
6416
|
+
if (fsAccessApiWorksRef.current) {
|
|
6417
|
+
dispatch({
|
|
6418
|
+
type: "openDialog"
|
|
6419
|
+
});
|
|
6420
|
+
onFileDialogOpenCb(); // https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker
|
|
6421
|
+
|
|
6422
|
+
var opts = {
|
|
6423
|
+
multiple: multiple,
|
|
6424
|
+
types: pickerTypes
|
|
6425
|
+
};
|
|
6426
|
+
window.showOpenFilePicker(opts).then(function (handles) {
|
|
6427
|
+
return getFilesFromEvent(handles);
|
|
6428
|
+
}).then(function (files) {
|
|
6429
|
+
setFiles(files, null);
|
|
6430
|
+
dispatch({
|
|
6431
|
+
type: "closeDialog"
|
|
6432
|
+
});
|
|
6433
|
+
}).catch(function (e) {
|
|
6434
|
+
// AbortError means the user canceled
|
|
6435
|
+
if (isAbort(e)) {
|
|
6436
|
+
onFileDialogCancelCb(e);
|
|
6437
|
+
dispatch({
|
|
6438
|
+
type: "closeDialog"
|
|
6439
|
+
});
|
|
6440
|
+
} else if (isSecurityError(e)) {
|
|
6441
|
+
fsAccessApiWorksRef.current = false; // CORS, so cannot use this API
|
|
6442
|
+
// Try using the input
|
|
6443
|
+
|
|
6444
|
+
if (inputRef.current) {
|
|
6445
|
+
inputRef.current.value = null;
|
|
6446
|
+
inputRef.current.click();
|
|
6447
|
+
} else {
|
|
6448
|
+
onErrCb(new Error("Cannot open the file picker because the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API is not supported and no <input> was provided."));
|
|
6449
|
+
}
|
|
6450
|
+
} else {
|
|
6451
|
+
onErrCb(e);
|
|
6452
|
+
}
|
|
6453
|
+
});
|
|
6454
|
+
return;
|
|
6455
|
+
}
|
|
6456
|
+
|
|
6457
|
+
if (inputRef.current) {
|
|
6458
|
+
dispatch({
|
|
6459
|
+
type: "openDialog"
|
|
6460
|
+
});
|
|
6461
|
+
onFileDialogOpenCb();
|
|
6462
|
+
inputRef.current.value = null;
|
|
6463
|
+
inputRef.current.click();
|
|
6464
|
+
}
|
|
6465
|
+
}, [dispatch, onFileDialogOpenCb, onFileDialogCancelCb, useFsAccessApi, setFiles, onErrCb, pickerTypes, multiple]); // Cb to open the file dialog when SPACE/ENTER occurs on the dropzone
|
|
6466
|
+
|
|
6467
|
+
var onKeyDownCb = React.useCallback(function (event) {
|
|
6468
|
+
// Ignore keyboard events bubbling up the DOM tree
|
|
6469
|
+
if (!rootRef.current || !rootRef.current.isEqualNode(event.target)) {
|
|
6470
|
+
return;
|
|
6471
|
+
}
|
|
6472
|
+
|
|
6473
|
+
if (event.key === " " || event.key === "Enter" || event.keyCode === 32 || event.keyCode === 13) {
|
|
6474
|
+
event.preventDefault();
|
|
6475
|
+
openFileDialog();
|
|
6476
|
+
}
|
|
6477
|
+
}, [rootRef, openFileDialog]); // Update focus state for the dropzone
|
|
6478
|
+
|
|
6479
|
+
var onFocusCb = React.useCallback(function () {
|
|
6480
|
+
dispatch({
|
|
6481
|
+
type: "focus"
|
|
6482
|
+
});
|
|
6483
|
+
}, []);
|
|
6484
|
+
var onBlurCb = React.useCallback(function () {
|
|
6485
|
+
dispatch({
|
|
6486
|
+
type: "blur"
|
|
6487
|
+
});
|
|
6488
|
+
}, []); // Cb to open the file dialog when click occurs on the dropzone
|
|
6489
|
+
|
|
6490
|
+
var onClickCb = React.useCallback(function () {
|
|
6491
|
+
if (noClick) {
|
|
6492
|
+
return;
|
|
6493
|
+
} // In IE11/Edge the file-browser dialog is blocking, therefore, use setTimeout()
|
|
6494
|
+
// to ensure React can handle state changes
|
|
6495
|
+
// See: https://github.com/react-dropzone/react-dropzone/issues/450
|
|
6496
|
+
|
|
6497
|
+
|
|
6498
|
+
if (isIeOrEdge()) {
|
|
6499
|
+
setTimeout(openFileDialog, 0);
|
|
6500
|
+
} else {
|
|
6501
|
+
openFileDialog();
|
|
6502
|
+
}
|
|
6503
|
+
}, [noClick, openFileDialog]);
|
|
6504
|
+
|
|
6505
|
+
var composeHandler = function composeHandler(fn) {
|
|
6506
|
+
return disabled ? null : fn;
|
|
6507
|
+
};
|
|
6508
|
+
|
|
6509
|
+
var composeKeyboardHandler = function composeKeyboardHandler(fn) {
|
|
6510
|
+
return noKeyboard ? null : composeHandler(fn);
|
|
6511
|
+
};
|
|
6512
|
+
|
|
6513
|
+
var composeDragHandler = function composeDragHandler(fn) {
|
|
6514
|
+
return noDrag ? null : composeHandler(fn);
|
|
6515
|
+
};
|
|
6516
|
+
|
|
6517
|
+
var stopPropagation = function stopPropagation(event) {
|
|
6518
|
+
if (noDragEventsBubbling) {
|
|
6519
|
+
event.stopPropagation();
|
|
6520
|
+
}
|
|
6521
|
+
};
|
|
6522
|
+
|
|
6523
|
+
var getRootProps = React.useMemo(function () {
|
|
6524
|
+
return function () {
|
|
6525
|
+
var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
6526
|
+
_ref2$refKey = _ref2.refKey,
|
|
6527
|
+
refKey = _ref2$refKey === void 0 ? "ref" : _ref2$refKey,
|
|
6528
|
+
role = _ref2.role,
|
|
6529
|
+
onKeyDown = _ref2.onKeyDown,
|
|
6530
|
+
onFocus = _ref2.onFocus,
|
|
6531
|
+
onBlur = _ref2.onBlur,
|
|
6532
|
+
onClick = _ref2.onClick,
|
|
6533
|
+
onDragEnter = _ref2.onDragEnter,
|
|
6534
|
+
onDragOver = _ref2.onDragOver,
|
|
6535
|
+
onDragLeave = _ref2.onDragLeave,
|
|
6536
|
+
onDrop = _ref2.onDrop,
|
|
6537
|
+
rest = _objectWithoutProperties(_ref2, _excluded3);
|
|
6538
|
+
|
|
6539
|
+
return _objectSpread(_objectSpread(_defineProperty({
|
|
6540
|
+
onKeyDown: composeKeyboardHandler(composeEventHandlers(onKeyDown, onKeyDownCb)),
|
|
6541
|
+
onFocus: composeKeyboardHandler(composeEventHandlers(onFocus, onFocusCb)),
|
|
6542
|
+
onBlur: composeKeyboardHandler(composeEventHandlers(onBlur, onBlurCb)),
|
|
6543
|
+
onClick: composeHandler(composeEventHandlers(onClick, onClickCb)),
|
|
6544
|
+
onDragEnter: composeDragHandler(composeEventHandlers(onDragEnter, onDragEnterCb)),
|
|
6545
|
+
onDragOver: composeDragHandler(composeEventHandlers(onDragOver, onDragOverCb)),
|
|
6546
|
+
onDragLeave: composeDragHandler(composeEventHandlers(onDragLeave, onDragLeaveCb)),
|
|
6547
|
+
onDrop: composeDragHandler(composeEventHandlers(onDrop, onDropCb)),
|
|
6548
|
+
role: typeof role === "string" && role !== "" ? role : "presentation"
|
|
6549
|
+
}, refKey, rootRef), !disabled && !noKeyboard ? {
|
|
6550
|
+
tabIndex: 0
|
|
6551
|
+
} : {}), rest);
|
|
6552
|
+
};
|
|
6553
|
+
}, [rootRef, onKeyDownCb, onFocusCb, onBlurCb, onClickCb, onDragEnterCb, onDragOverCb, onDragLeaveCb, onDropCb, noKeyboard, noDrag, disabled]);
|
|
6554
|
+
var onInputElementClick = React.useCallback(function (event) {
|
|
6555
|
+
event.stopPropagation();
|
|
6556
|
+
}, []);
|
|
6557
|
+
var getInputProps = React.useMemo(function () {
|
|
6558
|
+
return function () {
|
|
6559
|
+
var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
6560
|
+
_ref3$refKey = _ref3.refKey,
|
|
6561
|
+
refKey = _ref3$refKey === void 0 ? "ref" : _ref3$refKey,
|
|
6562
|
+
onChange = _ref3.onChange,
|
|
6563
|
+
onClick = _ref3.onClick,
|
|
6564
|
+
rest = _objectWithoutProperties(_ref3, _excluded4);
|
|
6565
|
+
|
|
6566
|
+
var inputProps = _defineProperty({
|
|
6567
|
+
accept: acceptAttr,
|
|
6568
|
+
multiple: multiple,
|
|
6569
|
+
type: "file",
|
|
6570
|
+
style: {
|
|
6571
|
+
display: "none"
|
|
6572
|
+
},
|
|
6573
|
+
onChange: composeHandler(composeEventHandlers(onChange, onDropCb)),
|
|
6574
|
+
onClick: composeHandler(composeEventHandlers(onClick, onInputElementClick)),
|
|
6575
|
+
tabIndex: -1
|
|
6576
|
+
}, refKey, inputRef);
|
|
6577
|
+
|
|
6578
|
+
return _objectSpread(_objectSpread({}, inputProps), rest);
|
|
6579
|
+
};
|
|
6580
|
+
}, [inputRef, accept, multiple, onDropCb, disabled]);
|
|
6581
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
6582
|
+
isFocused: isFocused && !disabled,
|
|
6583
|
+
getRootProps: getRootProps,
|
|
6584
|
+
getInputProps: getInputProps,
|
|
6585
|
+
rootRef: rootRef,
|
|
6586
|
+
inputRef: inputRef,
|
|
6587
|
+
open: composeHandler(openFileDialog)
|
|
6588
|
+
});
|
|
6589
|
+
}
|
|
6590
|
+
/**
|
|
6591
|
+
* @param {DropzoneState} state
|
|
6592
|
+
* @param {{type: string} & DropzoneState} action
|
|
6593
|
+
* @returns {DropzoneState}
|
|
6594
|
+
*/
|
|
6595
|
+
|
|
6596
|
+
function reducer(state, action) {
|
|
6597
|
+
/* istanbul ignore next */
|
|
6598
|
+
switch (action.type) {
|
|
6599
|
+
case "focus":
|
|
6600
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
6601
|
+
isFocused: true
|
|
6602
|
+
});
|
|
6603
|
+
|
|
6604
|
+
case "blur":
|
|
6605
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
6606
|
+
isFocused: false
|
|
6607
|
+
});
|
|
6608
|
+
|
|
6609
|
+
case "openDialog":
|
|
6610
|
+
return _objectSpread(_objectSpread({}, initialState), {}, {
|
|
6611
|
+
isFileDialogActive: true
|
|
6612
|
+
});
|
|
6613
|
+
|
|
6614
|
+
case "closeDialog":
|
|
6615
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
6616
|
+
isFileDialogActive: false
|
|
6617
|
+
});
|
|
6618
|
+
|
|
6619
|
+
case "setDraggedFiles":
|
|
6620
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
6621
|
+
isDragActive: action.isDragActive,
|
|
6622
|
+
isDragAccept: action.isDragAccept,
|
|
6623
|
+
isDragReject: action.isDragReject
|
|
6624
|
+
});
|
|
6625
|
+
|
|
6626
|
+
case "setFiles":
|
|
6627
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
6628
|
+
acceptedFiles: action.acceptedFiles,
|
|
6629
|
+
fileRejections: action.fileRejections
|
|
6630
|
+
});
|
|
6631
|
+
|
|
6632
|
+
case "reset":
|
|
6633
|
+
return _objectSpread({}, initialState);
|
|
6634
|
+
|
|
6635
|
+
default:
|
|
6636
|
+
return state;
|
|
6637
|
+
}
|
|
6638
|
+
}
|
|
6639
|
+
|
|
6640
|
+
function noop() {}
|
|
6641
|
+
|
|
6642
|
+
var css_248z$2 = ":root {\n --background: #FFFAEE;\n --primary: #1890ff;\n --primary2: #40a9ff;\n --primary0: #e6f7ff;\n --grey5: #8c8c8c;\n --grey3: #d0d7de;\n --secondary: #fff566;\n --font-color: #494949;\n}\n\n@media (prefers-color-scheme: dark) {\n :root {\n --background: #3c3c3c;\n --font-color: #fafafa;\n }\n}\n@keyframes spin {\n from {\n transform: rotate(0);\n }\n to {\n transform: rotate(360deg);\n }\n}\n.spin {\n animation: spin 1s linear 0s infinite;\n}\n\nspan.label {\n font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", Segoe UI Symbol, \"Noto Color Emoji\";\n font-size: clamp(0.75rem, 8vw - 0.85rem, 0.95rem);\n color: #11181C;\n}\n\nspan.label-secondary {\n font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", Segoe UI Symbol, \"Noto Color Emoji\";\n font-size: clamp(0.65rem, 8vw - 0.75rem, 0.85rem);\n color: #687075;\n}\n\n.pollination-drop-zone {\n font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", Segoe UI Symbol, \"Noto Color Emoji\";\n display: flex;\n align-items: center;\n justify-content: space-between;\n background-color: #E8F6FF;\n padding: 10px 12px;\n border-radius: 6px;\n gap: 16px;\n cursor: pointer;\n border: 1px solid #E8F6FF;\n user-select: none;\n}\n\n.pollination-drop-zone-disabled {\n font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", Segoe UI Symbol, \"Noto Color Emoji\";\n display: flex;\n align-items: center;\n justify-content: space-between;\n background-color: #E8F6FF;\n padding: 10px 12px;\n border-radius: 6px;\n gap: 16px;\n border: 1px solid #E8F6FF;\n user-select: none;\n}\n\n.pollination-drop-zone:hover,\n.pollination-drop-zone:active,\n.pollination-drop-zone:focus {\n border-color: #FCDE5D;\n}\n\n.pollination-drop-zone:hover .pollination-file-input-button,\n.pollination-drop-zone:active .pollination-file-input-button {\n background-color: #FCDE5D;\n color: black;\n border-color: #FCDE5D;\n}\n\n.pollination-file-input-button {\n font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", Segoe UI Symbol, \"Noto Color Emoji\";\n z-index: 10;\n display: flex;\n max-width: 260px;\n background-color: var(--primary);\n border: 1px solid var(--primary);\n color: white;\n padding: 8px 16px;\n float: left;\n align-items: center;\n gap: 8px;\n border-radius: 4px;\n transition: background-color 0.25s, border-color 0.25s, color 0.25s;\n}\n\n.pollination-file-input-button-disabled {\n font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", Segoe UI Symbol, \"Noto Color Emoji\";\n content: \"Disabled\";\n background-color: var(--grey3);\n color: var(--grey5);\n cursor: default;\n border-color: var(--grey5);\n}";
|
|
6643
|
+
styleInject(css_248z$2);
|
|
6644
|
+
|
|
6645
|
+
var css_248z$1 = "span.label {\n font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", Segoe UI Symbol, \"Noto Color Emoji\";\n font-size: clamp(0.75rem, 8vw - 0.85rem, 0.95rem);\n color: #11181C;\n}\n\nspan.label-secondary {\n font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", Segoe UI Symbol, \"Noto Color Emoji\";\n font-size: clamp(0.65rem, 8vw - 0.75rem, 0.85rem);\n color: #687075;\n}";
|
|
6646
|
+
styleInject(css_248z$1);
|
|
6647
|
+
|
|
6648
|
+
var FileInput = function (_a) {
|
|
6649
|
+
var disabled = _a.disabled; _a.onChange;
|
|
6650
|
+
var onDrop = React.useCallback(function (acceptedFiles) {
|
|
6651
|
+
console.log(acceptedFiles);
|
|
6652
|
+
}, []);
|
|
6653
|
+
var _b = useDropzone({
|
|
6654
|
+
onDrop: onDrop,
|
|
6655
|
+
accept: {
|
|
6656
|
+
'application/json': ['.hbjson']
|
|
6657
|
+
},
|
|
6658
|
+
disabled: disabled
|
|
6659
|
+
}), getRootProps = _b.getRootProps, getInputProps = _b.getInputProps; _b.isDragActive;
|
|
6660
|
+
return (React__default["default"].createElement("div", __assign$2({}, getRootProps({ className: disabled ? 'pollination-drop-zone-disabled' : 'pollination-drop-zone' })),
|
|
6661
|
+
React__default["default"].createElement("div", { style: {
|
|
6662
|
+
display: 'flex',
|
|
6663
|
+
gap: 16,
|
|
6664
|
+
alignItems: 'center'
|
|
6665
|
+
} },
|
|
6666
|
+
React__default["default"].createElement(CloudArrowUp$1, { size: 32, style: { color: '#687075' } }),
|
|
6667
|
+
React__default["default"].createElement("div", { style: {
|
|
6668
|
+
display: 'flex',
|
|
6669
|
+
flexDirection: 'column',
|
|
6670
|
+
gap: 4
|
|
6671
|
+
} },
|
|
6672
|
+
React__default["default"].createElement("span", { className: "label" }, "Drag and Drop .hbjson files here"),
|
|
6673
|
+
React__default["default"].createElement("span", { className: "label-secondary" }, "Limit 200MB per file"))),
|
|
6674
|
+
React__default["default"].createElement("span", { className: "pollination-file-input-button ".concat(disabled && 'pollination-file-input-button-disabled') }, "Upload an .hbjson file"),
|
|
6675
|
+
React__default["default"].createElement("input", __assign$2({ type: "file", name: "file" }, getInputProps()))));
|
|
4918
6676
|
};
|
|
4919
6677
|
|
|
4920
6678
|
var GetModel = function (_a) {
|
|
@@ -4953,7 +6711,7 @@ var GetModel = function (_a) {
|
|
|
4953
6711
|
}
|
|
4954
6712
|
}, [getHbjson, key, subscribe]);
|
|
4955
6713
|
return (host === 'web' ?
|
|
4956
|
-
React__default["default"].createElement(FileInput, {
|
|
6714
|
+
React__default["default"].createElement(FileInput, { onChange: function (event) {
|
|
4957
6715
|
if (event.target.files.length < 1)
|
|
4958
6716
|
return;
|
|
4959
6717
|
var file = event.target.files[0];
|
|
@@ -5170,7 +6928,7 @@ var PreviewBakeModel = function (_a) {
|
|
|
5170
6928
|
"Bake")))));
|
|
5171
6929
|
};
|
|
5172
6930
|
|
|
5173
|
-
var css_248z = ":root {\n --background: #FFFAEE;\n --primary: #1890ff;\n --primary2: #40a9ff;\n --primary0: #e6f7ff;\n --grey5: #8c8c8c;\n --grey3: #d0d7de;\n --secondary: #fff566;\n --font-color: #494949;\n}\n\n@media (prefers-color-scheme: dark) {\n :root {\n --background: #3c3c3c;\n --font-color: #fafafa;\n }\n}\n@keyframes spin {\n from {\n transform: rotate(0);\n }\n to {\n transform: rotate(360deg);\n }\n}\n.spin {\n animation: spin 1s linear 0s infinite;\n}";
|
|
6931
|
+
var css_248z = ":root {\n --background: #FFFAEE;\n --primary: #1890ff;\n --primary2: #40a9ff;\n --primary0: #e6f7ff;\n --grey5: #8c8c8c;\n --grey3: #d0d7de;\n --secondary: #fff566;\n --font-color: #494949;\n}\n\n@media (prefers-color-scheme: dark) {\n :root {\n --background: #3c3c3c;\n --font-color: #fafafa;\n }\n}\n@keyframes spin {\n from {\n transform: rotate(0);\n }\n to {\n transform: rotate(360deg);\n }\n}\n.spin {\n animation: spin 1s linear 0s infinite;\n}\n\nspan.label {\n font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", Segoe UI Symbol, \"Noto Color Emoji\";\n font-size: clamp(0.75rem, 8vw - 0.85rem, 0.95rem);\n color: #11181C;\n}\n\nspan.label-secondary {\n font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", Segoe UI Symbol, \"Noto Color Emoji\";\n font-size: clamp(0.65rem, 8vw - 0.75rem, 0.85rem);\n color: #687075;\n}";
|
|
5174
6932
|
styleInject(css_248z);
|
|
5175
6933
|
|
|
5176
6934
|
var getAction$1 = function (key) {
|
|
@@ -5188,7 +6946,7 @@ var getAction$1 = function (key) {
|
|
|
5188
6946
|
}
|
|
5189
6947
|
};
|
|
5190
6948
|
var SendGeometry = function (_a) {
|
|
5191
|
-
var geometry = _a.geometry, defaultAction = _a.defaultAction, defaultKey = _a.
|
|
6949
|
+
var geometry = _a.geometry, defaultAction = _a.defaultAction, defaultKey = _a.defaultKey;
|
|
5192
6950
|
var _b = React.useState(defaultAction !== null && defaultAction !== void 0 ? defaultAction : 'preview'), selOpt = _b[0], setSelOpt = _b[1];
|
|
5193
6951
|
var _c = React.useState(defaultKey !== null && defaultKey !== void 0 ? defaultKey : performance.now().toString()), key = _c[0], setKey = _c[1];
|
|
5194
6952
|
var sendGeometry = useSendGeometry().sendGeometry;
|
|
@@ -5297,7 +7055,7 @@ var getAction = function (key) {
|
|
|
5297
7055
|
}
|
|
5298
7056
|
};
|
|
5299
7057
|
var SendModel = function (_a) {
|
|
5300
|
-
var hbjson = _a.hbjson, defaultAction = _a.defaultAction, defaultKey = _a.
|
|
7058
|
+
var hbjson = _a.hbjson, defaultAction = _a.defaultAction, defaultKey = _a.defaultKey;
|
|
5301
7059
|
var _b = React.useState(defaultAction !== null && defaultAction !== void 0 ? defaultAction : 'preview'), selOpt = _b[0], setSelOpt = _b[1];
|
|
5302
7060
|
var _c = React.useState(defaultKey !== null && defaultKey !== void 0 ? defaultKey : performance.now().toString()), key = _c[0], setKey = _c[1];
|
|
5303
7061
|
var _d = useSendHbjson(); _d.host; _d.state; var sendHbjson = _d.sendHbjson;
|