@darajs/components 1.9.4 → 1.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dara_components-1.10.0-py3-none-any.whl +0 -0
- package/dist/graphs/graph-layout.d.ts +4 -3
- package/dist/graphs/graph-layout.d.ts.map +1 -1
- package/dist/graphs/graph-layout.js +22 -1
- package/dist/graphs/graph-layout.js.map +1 -1
- package/dist/umd/dara.components.umd.js +1410 -557
- package/package.json +13 -13
- package/dist/dara_components-1.9.4-py3-none-any.whl +0 -0
|
@@ -786,6 +786,11 @@
|
|
|
786
786
|
icon: [448, 512, [61460, "trash-alt"], "f2ed", "M135.2 17.7C140.6 6.8 151.7 0 163.8 0H284.2c12.1 0 23.2 6.8 28.6 17.7L320 32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32h96l7.2-14.3zM32 128H416V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V128zm96 64c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16z"]
|
|
787
787
|
};
|
|
788
788
|
var faTrashAlt = faTrashCan;
|
|
789
|
+
var faDownLeftAndUpRightToCenter = {
|
|
790
|
+
prefix: "fas",
|
|
791
|
+
iconName: "down-left-and-up-right-to-center",
|
|
792
|
+
icon: [512, 512, ["compress-alt"], "f422", "M439 7c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8H296c-13.3 0-24-10.7-24-24V72c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39L439 7zM72 272H216c13.3 0 24 10.7 24 24V440c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39L73 505c-9.4 9.4-24.6 9.4-33.9 0L7 473c-9.4-9.4-9.4-24.6 0-33.9l87-87L55 313c-6.9-6.9-8.9-17.2-5.2-26.2s12.5-14.8 22.2-14.8z"]
|
|
793
|
+
};
|
|
789
794
|
var faToggleOff = {
|
|
790
795
|
prefix: "fas",
|
|
791
796
|
iconName: "toggle-off",
|
|
@@ -933,6 +938,11 @@
|
|
|
933
938
|
iconName: "moon",
|
|
934
939
|
icon: [384, 512, [127769, 9214], "f186", "M223.5 32C100 32 0 132.3 0 256S100 480 223.5 480c60.6 0 115.5-24.2 155.8-63.4c5-4.9 6.3-12.5 3.1-18.7s-10.1-9.7-17-8.5c-9.8 1.7-19.8 2.6-30.1 2.6c-96.9 0-175.5-78.8-175.5-176c0-65.8 36-123.1 89.3-153.3c6.1-3.5 9.2-10.5 7.7-17.3s-7.3-11.9-14.3-12.5c-6.3-.5-12.6-.8-19-.8z"]
|
|
935
940
|
};
|
|
941
|
+
var faUpRightAndDownLeftFromCenter = {
|
|
942
|
+
prefix: "fas",
|
|
943
|
+
iconName: "up-right-and-down-left-from-center",
|
|
944
|
+
icon: [512, 512, ["expand-alt"], "f424", "M344 0H488c13.3 0 24 10.7 24 24V168c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-87 87c-9.4 9.4-24.6 9.4-33.9 0l-32-32c-9.4-9.4-9.4-24.6 0-33.9l87-87L327 41c-6.9-6.9-8.9-17.2-5.2-26.2S334.3 0 344 0zM168 512H24c-13.3 0-24-10.7-24-24V344c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39 87-87c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8z"]
|
|
945
|
+
};
|
|
936
946
|
var faCheck = {
|
|
937
947
|
prefix: "fas",
|
|
938
948
|
iconName: "check",
|
|
@@ -3737,7 +3747,7 @@
|
|
|
3737
3747
|
var allProps = _objectSpread2$1(_objectSpread2$1({}, defaultProps$7), props);
|
|
3738
3748
|
var iconArgs = allProps.icon, maskArgs = allProps.mask, symbol = allProps.symbol, className = allProps.className, title = allProps.title, titleId = allProps.titleId, maskId = allProps.maskId;
|
|
3739
3749
|
var iconLookup = normalizeIconArgs(iconArgs);
|
|
3740
|
-
var classes = objectWithKey("classes", [].concat(_toConsumableArray$3(classList$1(allProps)), _toConsumableArray$3(className.split(" "))));
|
|
3750
|
+
var classes = objectWithKey("classes", [].concat(_toConsumableArray$3(classList$1(allProps)), _toConsumableArray$3((className || "").split(" "))));
|
|
3741
3751
|
var transform = objectWithKey("transform", typeof allProps.transform === "string" ? parse$1$1.transform(allProps.transform) : allProps.transform);
|
|
3742
3752
|
var mask = objectWithKey("mask", normalizeIconArgs(maskArgs));
|
|
3743
3753
|
var renderedIcon = icon(iconLookup, _objectSpread2$1(_objectSpread2$1(_objectSpread2$1(_objectSpread2$1({}, classes), transform), mask), {}, {
|
|
@@ -4055,6 +4065,9 @@
|
|
|
4055
4065
|
const TrashAlt = (props) => {
|
|
4056
4066
|
return jsxRuntime.exports.jsx(StyledFAIcon, Object.assign({ icon: faTrashAlt }, props));
|
|
4057
4067
|
};
|
|
4068
|
+
const DownLeftAndUpRightToCenter = (props) => {
|
|
4069
|
+
return jsxRuntime.exports.jsx(StyledFAIcon, Object.assign({ icon: faDownLeftAndUpRightToCenter }, props));
|
|
4070
|
+
};
|
|
4058
4071
|
const PenToSquare = (props) => {
|
|
4059
4072
|
return jsxRuntime.exports.jsx(StyledFAIcon, Object.assign({ icon: faPenToSquare }, props));
|
|
4060
4073
|
};
|
|
@@ -4070,6 +4083,9 @@
|
|
|
4070
4083
|
const Xmark = (props) => {
|
|
4071
4084
|
return jsxRuntime.exports.jsx(StyledFAIcon, Object.assign({ icon: faXmark }, props));
|
|
4072
4085
|
};
|
|
4086
|
+
const UpRightAndDownLeftFromCenter = (props) => {
|
|
4087
|
+
return jsxRuntime.exports.jsx(StyledFAIcon, Object.assign({ icon: faUpRightAndDownLeftFromCenter }, props));
|
|
4088
|
+
};
|
|
4073
4089
|
const TriangleExclamation = (props) => {
|
|
4074
4090
|
return jsxRuntime.exports.jsx(StyledFAIcon, Object.assign({ icon: faTriangleExclamation }, props));
|
|
4075
4091
|
};
|
|
@@ -4087,10 +4103,8 @@
|
|
|
4087
4103
|
color: ${(props) => props.theme.colors.grey5};
|
|
4088
4104
|
transition: transform 0.1s linear;
|
|
4089
4105
|
`;
|
|
4090
|
-
|
|
4091
|
-
|
|
4092
|
-
}
|
|
4093
|
-
const Chevron$2 = React__namespace.forwardRef(Chevron$1);
|
|
4106
|
+
const Chevron$1 = React__namespace.forwardRef((props, ref2) => jsxRuntime.exports.jsx(Icon$2, { angles: props.angles, className: props.className, disabled: props.disabled, isOpen: props.isOpen, onClick: props.onClick, ref: ref2, style: props.style }));
|
|
4107
|
+
const Chevron$2 = React__namespace.memo(Chevron$1);
|
|
4094
4108
|
styled__default.default.label`
|
|
4095
4109
|
margin-bottom: 0;
|
|
4096
4110
|
font-size: 11px;
|
|
@@ -4107,33 +4121,18 @@
|
|
|
4107
4121
|
|
|
4108
4122
|
border: 1px solid ${(props) => props.theme.colors.grey3};
|
|
4109
4123
|
`;
|
|
4110
|
-
const
|
|
4111
|
-
|
|
4112
|
-
|
|
4113
|
-
|
|
4114
|
-
|
|
4124
|
+
const NoItemsLabel = styled__default.default.span`
|
|
4125
|
+
display: flex;
|
|
4126
|
+
flex: 1 1 auto;
|
|
4127
|
+
align-items: center;
|
|
4128
|
+
justify-content: center;
|
|
4115
4129
|
|
|
4116
|
-
|
|
4117
|
-
min-height: 2rem;
|
|
4118
|
-
padding: 0.25rem 1rem;
|
|
4130
|
+
height: 2rem;
|
|
4119
4131
|
|
|
4120
|
-
font-size:
|
|
4121
|
-
font-weight: 300;
|
|
4132
|
+
font-size: 1rem;
|
|
4122
4133
|
color: ${(props) => props.theme.colors.text};
|
|
4123
|
-
text-overflow: ellipsis;
|
|
4124
|
-
white-space: nowrap;
|
|
4125
4134
|
|
|
4126
|
-
background-color: ${(props) => props.
|
|
4127
|
-
border-bottom: 1px solid ${(props) => props.theme.colors.grey3};
|
|
4128
|
-
|
|
4129
|
-
:active {
|
|
4130
|
-
color: ${(props) => props.theme.colors.blue1};
|
|
4131
|
-
background-color: ${(props) => props.theme.colors.primary};
|
|
4132
|
-
}
|
|
4133
|
-
|
|
4134
|
-
&:last-child {
|
|
4135
|
-
border-bottom: none;
|
|
4136
|
-
}
|
|
4135
|
+
background-color: ${(props) => props.theme.colors.blue1};
|
|
4137
4136
|
`;
|
|
4138
4137
|
globalThis && globalThis.__awaiter || function(thisArg, _arguments, P2, generator) {
|
|
4139
4138
|
function adopt(value) {
|
|
@@ -8544,48 +8543,38 @@
|
|
|
8544
8543
|
border-radius: ${(props) => props.height ? `${props.height / 2}px` : "1rem"};
|
|
8545
8544
|
`;
|
|
8546
8545
|
function _extends$3() {
|
|
8547
|
-
_extends$3 = Object.assign ? Object.assign.bind() : function(
|
|
8548
|
-
for (var
|
|
8549
|
-
var
|
|
8550
|
-
for (var
|
|
8551
|
-
|
|
8552
|
-
target[key] = source[key];
|
|
8553
|
-
}
|
|
8554
|
-
}
|
|
8546
|
+
return _extends$3 = Object.assign ? Object.assign.bind() : function(n2) {
|
|
8547
|
+
for (var e3 = 1; e3 < arguments.length; e3++) {
|
|
8548
|
+
var t2 = arguments[e3];
|
|
8549
|
+
for (var r2 in t2)
|
|
8550
|
+
({}).hasOwnProperty.call(t2, r2) && (n2[r2] = t2[r2]);
|
|
8555
8551
|
}
|
|
8556
|
-
return
|
|
8557
|
-
};
|
|
8558
|
-
return _extends$3.apply(this, arguments);
|
|
8552
|
+
return n2;
|
|
8553
|
+
}, _extends$3.apply(null, arguments);
|
|
8559
8554
|
}
|
|
8560
|
-
function _assertThisInitialized$4(
|
|
8561
|
-
if (
|
|
8555
|
+
function _assertThisInitialized$4(e3) {
|
|
8556
|
+
if (void 0 === e3)
|
|
8562
8557
|
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
8563
|
-
|
|
8564
|
-
return self2;
|
|
8558
|
+
return e3;
|
|
8565
8559
|
}
|
|
8566
|
-
function _setPrototypeOf$4(
|
|
8567
|
-
_setPrototypeOf$4 = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function
|
|
8568
|
-
|
|
8569
|
-
|
|
8570
|
-
};
|
|
8571
|
-
return _setPrototypeOf$4(o2, p2);
|
|
8560
|
+
function _setPrototypeOf$4(t2, e3) {
|
|
8561
|
+
return _setPrototypeOf$4 = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(t3, e4) {
|
|
8562
|
+
return t3.__proto__ = e4, t3;
|
|
8563
|
+
}, _setPrototypeOf$4(t2, e3);
|
|
8572
8564
|
}
|
|
8573
|
-
function _inheritsLoose$2(
|
|
8574
|
-
|
|
8575
|
-
subClass.prototype.constructor = subClass;
|
|
8576
|
-
_setPrototypeOf$4(subClass, superClass);
|
|
8565
|
+
function _inheritsLoose$2(t2, o2) {
|
|
8566
|
+
t2.prototype = Object.create(o2.prototype), t2.prototype.constructor = t2, _setPrototypeOf$4(t2, o2);
|
|
8577
8567
|
}
|
|
8578
|
-
function _getPrototypeOf$3(
|
|
8579
|
-
_getPrototypeOf$3 = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function
|
|
8580
|
-
return
|
|
8581
|
-
};
|
|
8582
|
-
return _getPrototypeOf$3(o2);
|
|
8568
|
+
function _getPrototypeOf$3(t2) {
|
|
8569
|
+
return _getPrototypeOf$3 = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function(t3) {
|
|
8570
|
+
return t3.__proto__ || Object.getPrototypeOf(t3);
|
|
8571
|
+
}, _getPrototypeOf$3(t2);
|
|
8583
8572
|
}
|
|
8584
|
-
function _isNativeFunction$1(
|
|
8573
|
+
function _isNativeFunction$1(t2) {
|
|
8585
8574
|
try {
|
|
8586
|
-
return Function.toString.call(
|
|
8587
|
-
} catch (
|
|
8588
|
-
return
|
|
8575
|
+
return -1 !== Function.toString.call(t2).indexOf("[native code]");
|
|
8576
|
+
} catch (n2) {
|
|
8577
|
+
return "function" == typeof t2;
|
|
8589
8578
|
}
|
|
8590
8579
|
}
|
|
8591
8580
|
function _isNativeReflectConstruct$3() {
|
|
@@ -8606,33 +8595,30 @@
|
|
|
8606
8595
|
var p2 = new (t2.bind.apply(t2, o2))();
|
|
8607
8596
|
return r2 && _setPrototypeOf$4(p2, r2.prototype), p2;
|
|
8608
8597
|
}
|
|
8609
|
-
function _wrapNativeSuper$1(
|
|
8610
|
-
var
|
|
8611
|
-
_wrapNativeSuper$1 = function _wrapNativeSuper2(
|
|
8612
|
-
if (
|
|
8613
|
-
return
|
|
8614
|
-
if (
|
|
8598
|
+
function _wrapNativeSuper$1(t2) {
|
|
8599
|
+
var r2 = "function" == typeof Map ? /* @__PURE__ */ new Map() : void 0;
|
|
8600
|
+
return _wrapNativeSuper$1 = function _wrapNativeSuper2(t3) {
|
|
8601
|
+
if (null === t3 || !_isNativeFunction$1(t3))
|
|
8602
|
+
return t3;
|
|
8603
|
+
if ("function" != typeof t3)
|
|
8615
8604
|
throw new TypeError("Super expression must either be null or a function");
|
|
8616
|
-
|
|
8617
|
-
|
|
8618
|
-
|
|
8619
|
-
|
|
8620
|
-
_cache.set(Class2, Wrapper2);
|
|
8605
|
+
if (void 0 !== r2) {
|
|
8606
|
+
if (r2.has(t3))
|
|
8607
|
+
return r2.get(t3);
|
|
8608
|
+
r2.set(t3, Wrapper2);
|
|
8621
8609
|
}
|
|
8622
8610
|
function Wrapper2() {
|
|
8623
|
-
return _construct$1(
|
|
8611
|
+
return _construct$1(t3, arguments, _getPrototypeOf$3(this).constructor);
|
|
8624
8612
|
}
|
|
8625
|
-
Wrapper2.prototype = Object.create(
|
|
8613
|
+
return Wrapper2.prototype = Object.create(t3.prototype, {
|
|
8626
8614
|
constructor: {
|
|
8627
8615
|
value: Wrapper2,
|
|
8628
8616
|
enumerable: false,
|
|
8629
8617
|
writable: true,
|
|
8630
8618
|
configurable: true
|
|
8631
8619
|
}
|
|
8632
|
-
});
|
|
8633
|
-
|
|
8634
|
-
};
|
|
8635
|
-
return _wrapNativeSuper$1(Class);
|
|
8620
|
+
}), _setPrototypeOf$4(Wrapper2, t3);
|
|
8621
|
+
}, _wrapNativeSuper$1(t2);
|
|
8636
8622
|
}
|
|
8637
8623
|
var PolishedError$2 = /* @__PURE__ */ function(_Error) {
|
|
8638
8624
|
_inheritsLoose$2(PolishedError2, _Error);
|
|
@@ -9125,7 +9111,7 @@
|
|
|
9125
9111
|
var _a3;
|
|
9126
9112
|
return jsxRuntime.exports.jsxs(Wrapper$c, { className: props.className, style: props.style, children: [jsxRuntime.exports.jsxs(Loader$1, { color: props.color, size: props.size, children: [jsxRuntime.exports.jsx("div", { className: "sk-chase-dot" }), jsxRuntime.exports.jsx("div", { className: "sk-chase-dot" }), jsxRuntime.exports.jsx("div", { className: "sk-chase-dot" }), jsxRuntime.exports.jsx("div", { className: "sk-chase-dot" }), jsxRuntime.exports.jsx("div", { className: "sk-chase-dot" }), jsxRuntime.exports.jsx("div", { className: "sk-chase-dot" })] }), (props.showText || props.text) && jsxRuntime.exports.jsx(LoadingText, { color: props.color, children: (_a3 = props.text) !== null && _a3 !== void 0 ? _a3 : "LOADING" })] });
|
|
9127
9113
|
}
|
|
9128
|
-
var __rest$
|
|
9114
|
+
var __rest$f = globalThis && globalThis.__rest || function(s2, e3) {
|
|
9129
9115
|
var t2 = {};
|
|
9130
9116
|
for (var p2 in s2)
|
|
9131
9117
|
if (Object.prototype.hasOwnProperty.call(s2, p2) && e3.indexOf(p2) < 0)
|
|
@@ -9231,7 +9217,7 @@
|
|
|
9231
9217
|
secondary: SecondaryButton$1
|
|
9232
9218
|
};
|
|
9233
9219
|
function Button$2(_a3, ref2) {
|
|
9234
|
-
var { autoFocus, children: children2, className, disabled: disabled2, download, href, loading, id: id2, onClick, outline = false, style: style2, styling = "primary", type: type2 = "button" } = _a3, props = __rest$
|
|
9220
|
+
var { autoFocus, children: children2, className, disabled: disabled2, download, href, loading, id: id2, onClick, outline = false, style: style2, styling = "primary", type: type2 = "button" } = _a3, props = __rest$f(_a3, ["autoFocus", "children", "className", "disabled", "download", "href", "loading", "id", "onClick", "outline", "style", "styling", "type"]);
|
|
9235
9221
|
const currentTheme = useClTheme();
|
|
9236
9222
|
const Component = stylingMap[styling];
|
|
9237
9223
|
const content2 = loading ? jsxRuntime.exports.jsx(StyledLoading, { color: outline ? currentTheme.colors.grey2 : currentTheme.colors.blue1 }) : children2;
|
|
@@ -23850,11 +23836,7 @@
|
|
|
23850
23836
|
options = encoding;
|
|
23851
23837
|
encoding = void 0;
|
|
23852
23838
|
}
|
|
23853
|
-
return compiler(options)(
|
|
23854
|
-
postprocess(
|
|
23855
|
-
parse$6(options).document().write(preprocess()(value, encoding, true))
|
|
23856
|
-
)
|
|
23857
|
-
);
|
|
23839
|
+
return compiler(options)(postprocess(parse$6(options).document().write(preprocess()(value, encoding, true))));
|
|
23858
23840
|
}
|
|
23859
23841
|
function compiler(options) {
|
|
23860
23842
|
const config2 = {
|
|
@@ -23914,6 +23896,7 @@
|
|
|
23914
23896
|
characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,
|
|
23915
23897
|
characterReferenceMarkerNumeric: onexitcharacterreferencemarker,
|
|
23916
23898
|
characterReferenceValue: onexitcharacterreferencevalue,
|
|
23899
|
+
characterReference: onexitcharacterreference,
|
|
23917
23900
|
codeFenced: closer(onexitcodefenced),
|
|
23918
23901
|
codeFencedFence: onexitcodefencedfence,
|
|
23919
23902
|
codeFencedFenceInfo: onexitcodefencedfenceinfo,
|
|
@@ -23988,15 +23971,9 @@
|
|
|
23988
23971
|
while (++index2 < events2.length) {
|
|
23989
23972
|
const handler = config2[events2[index2][0]];
|
|
23990
23973
|
if (own$7.call(handler, events2[index2][1].type)) {
|
|
23991
|
-
handler[events2[index2][1].type].call(
|
|
23992
|
-
|
|
23993
|
-
|
|
23994
|
-
sliceSerialize: events2[index2][2].sliceSerialize
|
|
23995
|
-
},
|
|
23996
|
-
context2
|
|
23997
|
-
),
|
|
23998
|
-
events2[index2][1]
|
|
23999
|
-
);
|
|
23974
|
+
handler[events2[index2][1].type].call(Object.assign({
|
|
23975
|
+
sliceSerialize: events2[index2][2].sliceSerialize
|
|
23976
|
+
}, context2), events2[index2][1]);
|
|
24000
23977
|
}
|
|
24001
23978
|
}
|
|
24002
23979
|
if (context2.tokenStack.length > 0) {
|
|
@@ -24005,20 +23982,16 @@
|
|
|
24005
23982
|
handler.call(context2, void 0, tail[0]);
|
|
24006
23983
|
}
|
|
24007
23984
|
tree.position = {
|
|
24008
|
-
start: point$2(
|
|
24009
|
-
|
|
24010
|
-
|
|
24011
|
-
|
|
24012
|
-
|
|
24013
|
-
|
|
24014
|
-
|
|
24015
|
-
|
|
24016
|
-
|
|
24017
|
-
|
|
24018
|
-
column: 1,
|
|
24019
|
-
offset: 0
|
|
24020
|
-
}
|
|
24021
|
-
)
|
|
23985
|
+
start: point$2(events2.length > 0 ? events2[0][1].start : {
|
|
23986
|
+
line: 1,
|
|
23987
|
+
column: 1,
|
|
23988
|
+
offset: 0
|
|
23989
|
+
}),
|
|
23990
|
+
end: point$2(events2.length > 0 ? events2[events2.length - 2][1].end : {
|
|
23991
|
+
line: 1,
|
|
23992
|
+
column: 1,
|
|
23993
|
+
offset: 0
|
|
23994
|
+
})
|
|
24022
23995
|
};
|
|
24023
23996
|
index2 = -1;
|
|
24024
23997
|
while (++index2 < config2.transforms.length) {
|
|
@@ -24092,10 +24065,7 @@
|
|
|
24092
24065
|
if (firstBlankLineIndex && (!lineIndex || firstBlankLineIndex < lineIndex)) {
|
|
24093
24066
|
listItem3._spread = true;
|
|
24094
24067
|
}
|
|
24095
|
-
listItem3.end = Object.assign(
|
|
24096
|
-
{},
|
|
24097
|
-
lineIndex ? events2[lineIndex][1].start : event2[1].end
|
|
24098
|
-
);
|
|
24068
|
+
listItem3.end = Object.assign({}, lineIndex ? events2[lineIndex][1].start : event2[1].end);
|
|
24099
24069
|
events2.splice(lineIndex || index2, 0, ["exit", listItem3, event2[2]]);
|
|
24100
24070
|
index2++;
|
|
24101
24071
|
length++;
|
|
@@ -24156,12 +24126,10 @@
|
|
|
24156
24126
|
const node2 = this.stack.pop();
|
|
24157
24127
|
const open = this.tokenStack.pop();
|
|
24158
24128
|
if (!open) {
|
|
24159
|
-
throw new Error(
|
|
24160
|
-
|
|
24161
|
-
|
|
24162
|
-
|
|
24163
|
-
}) + "): it\u2019s not open"
|
|
24164
|
-
);
|
|
24129
|
+
throw new Error("Cannot close `" + token.type + "` (" + stringifyPosition({
|
|
24130
|
+
start: token.start,
|
|
24131
|
+
end: token.end
|
|
24132
|
+
}) + "): it\u2019s not open");
|
|
24165
24133
|
} else if (open[0].type !== token.type) {
|
|
24166
24134
|
if (onExitError) {
|
|
24167
24135
|
onExitError.call(this, token, open[0]);
|
|
@@ -24216,9 +24184,7 @@
|
|
|
24216
24184
|
const label = this.resume();
|
|
24217
24185
|
const node2 = this.stack[this.stack.length - 1];
|
|
24218
24186
|
node2.label = label;
|
|
24219
|
-
node2.identifier = normalizeIdentifier(
|
|
24220
|
-
this.sliceSerialize(token)
|
|
24221
|
-
).toLowerCase();
|
|
24187
|
+
node2.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();
|
|
24222
24188
|
}
|
|
24223
24189
|
function onexitdefinitiontitlestring() {
|
|
24224
24190
|
const data3 = this.resume();
|
|
@@ -24363,9 +24329,7 @@
|
|
|
24363
24329
|
const label = this.resume();
|
|
24364
24330
|
const node2 = this.stack[this.stack.length - 1];
|
|
24365
24331
|
node2.label = label;
|
|
24366
|
-
node2.identifier = normalizeIdentifier(
|
|
24367
|
-
this.sliceSerialize(token)
|
|
24368
|
-
).toLowerCase();
|
|
24332
|
+
node2.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();
|
|
24369
24333
|
this.data.referenceType = "full";
|
|
24370
24334
|
}
|
|
24371
24335
|
function onexitcharacterreferencemarker(token) {
|
|
@@ -24376,17 +24340,17 @@
|
|
|
24376
24340
|
const type2 = this.data.characterReferenceType;
|
|
24377
24341
|
let value;
|
|
24378
24342
|
if (type2) {
|
|
24379
|
-
value = decodeNumericCharacterReference(
|
|
24380
|
-
data3,
|
|
24381
|
-
type2 === "characterReferenceMarkerNumeric" ? 10 : 16
|
|
24382
|
-
);
|
|
24343
|
+
value = decodeNumericCharacterReference(data3, type2 === "characterReferenceMarkerNumeric" ? 10 : 16);
|
|
24383
24344
|
this.data.characterReferenceType = void 0;
|
|
24384
24345
|
} else {
|
|
24385
24346
|
const result = decodeNamedCharacterReference(data3);
|
|
24386
24347
|
value = result;
|
|
24387
24348
|
}
|
|
24388
|
-
const tail = this.stack.
|
|
24349
|
+
const tail = this.stack[this.stack.length - 1];
|
|
24389
24350
|
tail.value += value;
|
|
24351
|
+
}
|
|
24352
|
+
function onexitcharacterreference(token) {
|
|
24353
|
+
const tail = this.stack.pop();
|
|
24390
24354
|
tail.position.end = point$2(token.end);
|
|
24391
24355
|
}
|
|
24392
24356
|
function onexitautolinkprotocol(token) {
|
|
@@ -24560,22 +24524,18 @@
|
|
|
24560
24524
|
}
|
|
24561
24525
|
function defaultOnError(left2, right2) {
|
|
24562
24526
|
if (left2) {
|
|
24563
|
-
throw new Error(
|
|
24564
|
-
|
|
24565
|
-
|
|
24566
|
-
|
|
24567
|
-
|
|
24568
|
-
|
|
24569
|
-
|
|
24570
|
-
}) + ") is open"
|
|
24571
|
-
);
|
|
24527
|
+
throw new Error("Cannot close `" + left2.type + "` (" + stringifyPosition({
|
|
24528
|
+
start: left2.start,
|
|
24529
|
+
end: left2.end
|
|
24530
|
+
}) + "): a different token (`" + right2.type + "`, " + stringifyPosition({
|
|
24531
|
+
start: right2.start,
|
|
24532
|
+
end: right2.end
|
|
24533
|
+
}) + ") is open");
|
|
24572
24534
|
} else {
|
|
24573
|
-
throw new Error(
|
|
24574
|
-
|
|
24575
|
-
|
|
24576
|
-
|
|
24577
|
-
}) + ") is still open"
|
|
24578
|
-
);
|
|
24535
|
+
throw new Error("Cannot close document, a token (`" + right2.type + "`, " + stringifyPosition({
|
|
24536
|
+
start: right2.start,
|
|
24537
|
+
end: right2.end
|
|
24538
|
+
}) + ") is still open");
|
|
24579
24539
|
}
|
|
24580
24540
|
}
|
|
24581
24541
|
function remarkParse(options) {
|
|
@@ -24729,13 +24689,13 @@
|
|
|
24729
24689
|
}
|
|
24730
24690
|
function imageReference$1(state, node2) {
|
|
24731
24691
|
const id2 = String(node2.identifier).toUpperCase();
|
|
24732
|
-
const
|
|
24733
|
-
if (!
|
|
24692
|
+
const definition2 = state.definitionById.get(id2);
|
|
24693
|
+
if (!definition2) {
|
|
24734
24694
|
return revert(state, node2);
|
|
24735
24695
|
}
|
|
24736
|
-
const properties = { src: normalizeUri(
|
|
24737
|
-
if (
|
|
24738
|
-
properties.title =
|
|
24696
|
+
const properties = { src: normalizeUri(definition2.url || ""), alt: node2.alt };
|
|
24697
|
+
if (definition2.title !== null && definition2.title !== void 0) {
|
|
24698
|
+
properties.title = definition2.title;
|
|
24739
24699
|
}
|
|
24740
24700
|
const result = { type: "element", tagName: "img", properties, children: [] };
|
|
24741
24701
|
state.patch(node2, result);
|
|
@@ -24767,13 +24727,13 @@
|
|
|
24767
24727
|
}
|
|
24768
24728
|
function linkReference$1(state, node2) {
|
|
24769
24729
|
const id2 = String(node2.identifier).toUpperCase();
|
|
24770
|
-
const
|
|
24771
|
-
if (!
|
|
24730
|
+
const definition2 = state.definitionById.get(id2);
|
|
24731
|
+
if (!definition2) {
|
|
24772
24732
|
return revert(state, node2);
|
|
24773
24733
|
}
|
|
24774
|
-
const properties = { href: normalizeUri(
|
|
24775
|
-
if (
|
|
24776
|
-
properties.title =
|
|
24734
|
+
const properties = { href: normalizeUri(definition2.url || "") };
|
|
24735
|
+
if (definition2.title !== null && definition2.title !== void 0) {
|
|
24736
|
+
properties.title = definition2.title;
|
|
24777
24737
|
}
|
|
24778
24738
|
const result = {
|
|
24779
24739
|
type: "element",
|
|
@@ -25288,12 +25248,14 @@
|
|
|
25288
25248
|
const listItems = [];
|
|
25289
25249
|
let referenceIndex = -1;
|
|
25290
25250
|
while (++referenceIndex < state.footnoteOrder.length) {
|
|
25291
|
-
const
|
|
25292
|
-
|
|
25251
|
+
const definition2 = state.footnoteById.get(
|
|
25252
|
+
state.footnoteOrder[referenceIndex]
|
|
25253
|
+
);
|
|
25254
|
+
if (!definition2) {
|
|
25293
25255
|
continue;
|
|
25294
25256
|
}
|
|
25295
|
-
const content2 = state.all(
|
|
25296
|
-
const id2 = String(
|
|
25257
|
+
const content2 = state.all(definition2);
|
|
25258
|
+
const id2 = String(definition2.identifier).toUpperCase();
|
|
25297
25259
|
const safeId = normalizeUri(id2.toLowerCase());
|
|
25298
25260
|
let rereferenceIndex = 0;
|
|
25299
25261
|
const backReferences = [];
|
|
@@ -25336,7 +25298,7 @@
|
|
|
25336
25298
|
properties: { id: clobberPrefix + "fn-" + safeId },
|
|
25337
25299
|
children: state.wrap(content2, true)
|
|
25338
25300
|
};
|
|
25339
|
-
state.patch(
|
|
25301
|
+
state.patch(definition2, listItem2);
|
|
25340
25302
|
listItems.push(listItem2);
|
|
25341
25303
|
}
|
|
25342
25304
|
if (listItems.length === 0) {
|
|
@@ -29519,7 +29481,7 @@
|
|
|
29519
29481
|
fromMarkdownExtensions.push(gfmFromMarkdown());
|
|
29520
29482
|
toMarkdownExtensions.push(gfmToMarkdown(settings2));
|
|
29521
29483
|
}
|
|
29522
|
-
var __rest$
|
|
29484
|
+
var __rest$e = globalThis && globalThis.__rest || function(s2, e3) {
|
|
29523
29485
|
var t2 = {};
|
|
29524
29486
|
for (var p2 in s2)
|
|
29525
29487
|
if (Object.prototype.hasOwnProperty.call(s2, p2) && e3.indexOf(p2) < 0)
|
|
@@ -29786,7 +29748,7 @@
|
|
|
29786
29748
|
`;
|
|
29787
29749
|
function Markdown$1(props) {
|
|
29788
29750
|
var _a3;
|
|
29789
|
-
const { markdown, className, style: style2 } = props, reactMarkdownProps = __rest$
|
|
29751
|
+
const { markdown, className, style: style2 } = props, reactMarkdownProps = __rest$e(props, ["markdown", "className", "style"]);
|
|
29790
29752
|
return jsxRuntime.exports.jsx(CustomMarkdownWrapper, { className, style: style2, children: jsxRuntime.exports.jsx(Markdown$2, Object.assign({}, reactMarkdownProps, { remarkPlugins: (_a3 = reactMarkdownProps.remarkPlugins) !== null && _a3 !== void 0 ? _a3 : [remarkGfm], children: markdown })) });
|
|
29791
29753
|
}
|
|
29792
29754
|
var top$1 = "top";
|
|
@@ -34226,7 +34188,7 @@
|
|
|
34226
34188
|
return jsxRuntime.exports.jsx(CheckboxWrapper, { "aria-disabled": props.disabled, children: jsxRuntime.exports.jsx(Checkbox, { disabled: isSelectPermitted ? props.disabled : ((_a3 = checkedState.find((option) => option.value === item.value)) === null || _a3 === void 0 ? void 0 : _a3.state) === false, id: index2, isListStyle: props.isListStyle, label: item.label ? item.label : item.value, onChange: (checked, e3) => onChangeValue(e3), selected: (_b = checkedState.find((option) => option.value === item.value)) === null || _b === void 0 ? void 0 : _b.state }) }, `item-${index2}`);
|
|
34227
34189
|
})] });
|
|
34228
34190
|
}
|
|
34229
|
-
var __rest$
|
|
34191
|
+
var __rest$d = globalThis && globalThis.__rest || function(s2, e3) {
|
|
34230
34192
|
var t2 = {};
|
|
34231
34193
|
for (var p2 in s2)
|
|
34232
34194
|
if (Object.prototype.hasOwnProperty.call(s2, p2) && e3.indexOf(p2) < 0)
|
|
@@ -34282,7 +34244,7 @@
|
|
|
34282
34244
|
color: ${(props) => props.theme.colors.error};
|
|
34283
34245
|
`;
|
|
34284
34246
|
const Input$3 = React.forwardRef((_a3, ref2) => {
|
|
34285
|
-
var { type: type2 = "text" } = _a3, props = __rest$
|
|
34247
|
+
var { type: type2 = "text" } = _a3, props = __rest$d(_a3, ["type"]);
|
|
34286
34248
|
const onChange2 = (e3) => {
|
|
34287
34249
|
const target = e3.target;
|
|
34288
34250
|
if (props.onChange) {
|
|
@@ -34456,18 +34418,17 @@
|
|
|
34456
34418
|
setPreviousFilter(filterValue);
|
|
34457
34419
|
}, children: "Apply" })] });
|
|
34458
34420
|
}
|
|
34459
|
-
function _objectWithoutPropertiesLoose$4(
|
|
34460
|
-
if (
|
|
34421
|
+
function _objectWithoutPropertiesLoose$4(r2, e3) {
|
|
34422
|
+
if (null == r2)
|
|
34461
34423
|
return {};
|
|
34462
|
-
var
|
|
34463
|
-
for (var
|
|
34464
|
-
if (
|
|
34465
|
-
if (
|
|
34424
|
+
var t2 = {};
|
|
34425
|
+
for (var n2 in r2)
|
|
34426
|
+
if ({}.hasOwnProperty.call(r2, n2)) {
|
|
34427
|
+
if (e3.indexOf(n2) >= 0)
|
|
34466
34428
|
continue;
|
|
34467
|
-
|
|
34429
|
+
t2[n2] = r2[n2];
|
|
34468
34430
|
}
|
|
34469
|
-
|
|
34470
|
-
return target;
|
|
34431
|
+
return t2;
|
|
34471
34432
|
}
|
|
34472
34433
|
var reactIs = { exports: {} };
|
|
34473
34434
|
var reactIs_production_min = {};
|
|
@@ -34642,25 +34603,6 @@
|
|
|
34642
34603
|
}
|
|
34643
34604
|
return D2;
|
|
34644
34605
|
};
|
|
34645
|
-
var extendStatics = function(d2, b2) {
|
|
34646
|
-
extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d3, b3) {
|
|
34647
|
-
d3.__proto__ = b3;
|
|
34648
|
-
} || function(d3, b3) {
|
|
34649
|
-
for (var p2 in b3)
|
|
34650
|
-
if (Object.prototype.hasOwnProperty.call(b3, p2))
|
|
34651
|
-
d3[p2] = b3[p2];
|
|
34652
|
-
};
|
|
34653
|
-
return extendStatics(d2, b2);
|
|
34654
|
-
};
|
|
34655
|
-
function __extends(d2, b2) {
|
|
34656
|
-
if (typeof b2 !== "function" && b2 !== null)
|
|
34657
|
-
throw new TypeError("Class extends value " + String(b2) + " is not a constructor or null");
|
|
34658
|
-
extendStatics(d2, b2);
|
|
34659
|
-
function __() {
|
|
34660
|
-
this.constructor = d2;
|
|
34661
|
-
}
|
|
34662
|
-
d2.prototype = b2 === null ? Object.create(b2) : (__.prototype = b2.prototype, new __());
|
|
34663
|
-
}
|
|
34664
34606
|
var __assign = function() {
|
|
34665
34607
|
__assign = Object.assign || function __assign2(t2) {
|
|
34666
34608
|
for (var s2, i2 = 1, n2 = arguments.length; i2 < n2; i2++) {
|
|
@@ -34776,21 +34718,7 @@
|
|
|
34776
34718
|
return { value: op[0] ? op[1] : void 0, done: true };
|
|
34777
34719
|
}
|
|
34778
34720
|
}
|
|
34779
|
-
function
|
|
34780
|
-
var s2 = typeof Symbol === "function" && Symbol.iterator, m2 = s2 && o2[s2], i2 = 0;
|
|
34781
|
-
if (m2)
|
|
34782
|
-
return m2.call(o2);
|
|
34783
|
-
if (o2 && typeof o2.length === "number")
|
|
34784
|
-
return {
|
|
34785
|
-
next: function() {
|
|
34786
|
-
if (o2 && i2 >= o2.length)
|
|
34787
|
-
o2 = void 0;
|
|
34788
|
-
return { value: o2 && o2[i2++], done: !o2 };
|
|
34789
|
-
}
|
|
34790
|
-
};
|
|
34791
|
-
throw new TypeError(s2 ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
34792
|
-
}
|
|
34793
|
-
function __read(o2, n2) {
|
|
34721
|
+
function __read$1(o2, n2) {
|
|
34794
34722
|
var m2 = typeof Symbol === "function" && o2[Symbol.iterator];
|
|
34795
34723
|
if (!m2)
|
|
34796
34724
|
return o2;
|
|
@@ -34813,20 +34741,9 @@
|
|
|
34813
34741
|
}
|
|
34814
34742
|
function __spread() {
|
|
34815
34743
|
for (var ar = [], i2 = 0; i2 < arguments.length; i2++)
|
|
34816
|
-
ar = ar.concat(__read(arguments[i2]));
|
|
34744
|
+
ar = ar.concat(__read$1(arguments[i2]));
|
|
34817
34745
|
return ar;
|
|
34818
34746
|
}
|
|
34819
|
-
function __spreadArray(to2, from, pack) {
|
|
34820
|
-
if (pack || arguments.length === 2)
|
|
34821
|
-
for (var i2 = 0, l2 = from.length, ar; i2 < l2; i2++) {
|
|
34822
|
-
if (ar || !(i2 in from)) {
|
|
34823
|
-
if (!ar)
|
|
34824
|
-
ar = Array.prototype.slice.call(from, 0, i2);
|
|
34825
|
-
ar[i2] = from[i2];
|
|
34826
|
-
}
|
|
34827
|
-
}
|
|
34828
|
-
return to2.concat(ar || Array.prototype.slice.call(from));
|
|
34829
|
-
}
|
|
34830
34747
|
typeof SuppressedError === "function" ? SuppressedError : function(error2, suppressed, message) {
|
|
34831
34748
|
var e3 = new Error(message);
|
|
34832
34749
|
return e3.name = "SuppressedError", e3.error = error2, e3.suppressed = suppressed, e3;
|
|
@@ -36864,6 +36781,118 @@
|
|
|
36864
36781
|
activeIndex
|
|
36865
36782
|
};
|
|
36866
36783
|
}
|
|
36784
|
+
var __rest$c = globalThis && globalThis.__rest || function(s2, e3) {
|
|
36785
|
+
var t2 = {};
|
|
36786
|
+
for (var p2 in s2)
|
|
36787
|
+
if (Object.prototype.hasOwnProperty.call(s2, p2) && e3.indexOf(p2) < 0)
|
|
36788
|
+
t2[p2] = s2[p2];
|
|
36789
|
+
if (s2 != null && typeof Object.getOwnPropertySymbols === "function")
|
|
36790
|
+
for (var i2 = 0, p2 = Object.getOwnPropertySymbols(s2); i2 < p2.length; i2++) {
|
|
36791
|
+
if (e3.indexOf(p2[i2]) < 0 && Object.prototype.propertyIsEnumerable.call(s2, p2[i2]))
|
|
36792
|
+
t2[p2[i2]] = s2[p2[i2]];
|
|
36793
|
+
}
|
|
36794
|
+
return t2;
|
|
36795
|
+
};
|
|
36796
|
+
const StyledChevronButton = styled__default.default(Button$3).attrs((attrs2) => Object.assign(Object.assign({}, attrs2), { styling: "ghost" }))`
|
|
36797
|
+
min-width: 0;
|
|
36798
|
+
height: auto;
|
|
36799
|
+
margin: 0;
|
|
36800
|
+
padding: 0 0.25rem;
|
|
36801
|
+
|
|
36802
|
+
background-color: transparent !important;
|
|
36803
|
+
`;
|
|
36804
|
+
const ChevronButton = (_a3) => {
|
|
36805
|
+
var { getToggleButtonProps, disabled: disabled2, isOpen } = _a3, props = __rest$c(_a3, ["getToggleButtonProps", "disabled", "isOpen"]);
|
|
36806
|
+
return jsxRuntime.exports.jsx(StyledChevronButton, Object.assign({}, getToggleButtonProps(), props, { children: jsxRuntime.exports.jsx(Chevron$2, { disabled: disabled2, isOpen }) }));
|
|
36807
|
+
};
|
|
36808
|
+
const ChevronButton$1 = React__default.default.memo(ChevronButton);
|
|
36809
|
+
var __rest$b = globalThis && globalThis.__rest || function(s2, e3) {
|
|
36810
|
+
var t2 = {};
|
|
36811
|
+
for (var p2 in s2)
|
|
36812
|
+
if (Object.prototype.hasOwnProperty.call(s2, p2) && e3.indexOf(p2) < 0)
|
|
36813
|
+
t2[p2] = s2[p2];
|
|
36814
|
+
if (s2 != null && typeof Object.getOwnPropertySymbols === "function")
|
|
36815
|
+
for (var i2 = 0, p2 = Object.getOwnPropertySymbols(s2); i2 < p2.length; i2++) {
|
|
36816
|
+
if (e3.indexOf(p2[i2]) < 0 && Object.prototype.propertyIsEnumerable.call(s2, p2[i2]))
|
|
36817
|
+
t2[p2[i2]] = s2[p2[i2]];
|
|
36818
|
+
}
|
|
36819
|
+
return t2;
|
|
36820
|
+
};
|
|
36821
|
+
const StyledListItem = styled__default.default.span`
|
|
36822
|
+
cursor: pointer;
|
|
36823
|
+
user-select: none;
|
|
36824
|
+
|
|
36825
|
+
overflow: hidden;
|
|
36826
|
+
|
|
36827
|
+
width: 100%;
|
|
36828
|
+
min-height: 2rem;
|
|
36829
|
+
padding: 0.25rem 1rem;
|
|
36830
|
+
|
|
36831
|
+
font-size: ${(props) => props.size ? `${props.size}rem` : "1rem"};
|
|
36832
|
+
font-weight: 300;
|
|
36833
|
+
color: ${(props) => props.theme.colors.text};
|
|
36834
|
+
text-overflow: ellipsis;
|
|
36835
|
+
white-space: nowrap;
|
|
36836
|
+
|
|
36837
|
+
background-color: ${(props) => {
|
|
36838
|
+
if (props.isSelected) {
|
|
36839
|
+
return props.theme.colors.blue3;
|
|
36840
|
+
}
|
|
36841
|
+
if (props.isHighlighted) {
|
|
36842
|
+
return props.theme.colors.grey2;
|
|
36843
|
+
}
|
|
36844
|
+
return props.theme.colors.blue1;
|
|
36845
|
+
}};
|
|
36846
|
+
border-bottom: 1px solid ${(props) => props.theme.colors.grey3};
|
|
36847
|
+
|
|
36848
|
+
:hover {
|
|
36849
|
+
background-color: ${(props) => props.theme.colors.grey2};
|
|
36850
|
+
}
|
|
36851
|
+
|
|
36852
|
+
:active {
|
|
36853
|
+
color: ${(props) => props.theme.colors.blue1};
|
|
36854
|
+
background-color: ${(props) => props.theme.colors.blue4};
|
|
36855
|
+
}
|
|
36856
|
+
|
|
36857
|
+
&:last-child {
|
|
36858
|
+
border-bottom: none;
|
|
36859
|
+
}
|
|
36860
|
+
`;
|
|
36861
|
+
const ListItem = ({ size: size2, title, item, index: index2, getItemProps, itemClass, children: children2, isHighlighted, isSelected }) => {
|
|
36862
|
+
const _a3 = getItemProps({ index: index2, item }), { itemClassName } = _a3, itemProps = __rest$b(_a3, ["itemClassName"]);
|
|
36863
|
+
return jsxRuntime.exports.jsx(StyledListItem, Object.assign({}, itemProps, { className: itemClass ? `${itemClassName} ${itemClass}` : itemClassName, title, size: size2, item, isHighlighted, isSelected, children: children2 }));
|
|
36864
|
+
};
|
|
36865
|
+
ListItem.displayName = "ListItem";
|
|
36866
|
+
const ListItem$1 = React__default.default.memo(ListItem);
|
|
36867
|
+
const StyledDropdownList$1 = styled__default.default(List)`
|
|
36868
|
+
border-radius: 0 0 0.25rem 0.25rem;
|
|
36869
|
+
outline: 0;
|
|
36870
|
+
box-shadow: ${(props) => props.theme.shadow.light};
|
|
36871
|
+
`;
|
|
36872
|
+
const DropdownList = React__default.default.forwardRef(({ items, getItemProps, getFloatingProps, isOpen, getMenuProps, size: size2, style: style2, maxItems, itemClass, className, children: children2, selectedItem, kbdHighlightIdx }, ref2) => jsxRuntime.exports.jsx(StyledDropdownList$1, Object.assign({}, getMenuProps ? getMenuProps({ ref: ref2 }) : { ref: ref2 }, getFloatingProps(), { isOpen, maxItems, style: Object.assign(Object.assign({}, style2), { zIndex: 9999 }), className, children: !lodash$1.exports.isEmpty(items) ? items.map((item, index2) => {
|
|
36873
|
+
const isSelected = (selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.label) === item.label;
|
|
36874
|
+
return children2 ? children2(item, index2) : jsxRuntime.exports.jsx(ListItem$1, { getItemProps, size: size2, title: item.label, item, index: index2, itemClass, isHighlighted: isOpen && kbdHighlightIdx !== void 0 && kbdHighlightIdx === index2, isSelected, children: item.label }, `item-${index2}-${isOpen && isSelected}`);
|
|
36875
|
+
}) : jsxRuntime.exports.jsx(NoItemsLabel, { children: "No Items" }) })));
|
|
36876
|
+
DropdownList.displayName = "DropdownList";
|
|
36877
|
+
const DropdownList$1 = React__default.default.memo(DropdownList);
|
|
36878
|
+
const { stateChangeTypes: useSelectChangeTypes } = useSelect;
|
|
36879
|
+
const { stateChangeTypes: useComboboxChangeTypes } = useCombobox;
|
|
36880
|
+
const setTypes = /* @__PURE__ */ new Set([
|
|
36881
|
+
useSelectChangeTypes.ToggleButtonKeyDownArrowDown,
|
|
36882
|
+
useSelectChangeTypes.ToggleButtonKeyDownArrowUp,
|
|
36883
|
+
useComboboxChangeTypes.InputKeyDownArrowDown,
|
|
36884
|
+
useComboboxChangeTypes.InputKeyDownArrowUp
|
|
36885
|
+
]);
|
|
36886
|
+
const syncKbdHighlightIdx = (setKbdHighlightIdx) => ({
|
|
36887
|
+
onHighlightedIndexChange: ({ highlightedIndex, type: type2 }) => {
|
|
36888
|
+
if (setTypes.has(type2)) {
|
|
36889
|
+
setKbdHighlightIdx(highlightedIndex);
|
|
36890
|
+
}
|
|
36891
|
+
if (type2 === useSelectChangeTypes.ItemMouseMove) {
|
|
36892
|
+
setKbdHighlightIdx(void 0);
|
|
36893
|
+
}
|
|
36894
|
+
}
|
|
36895
|
+
});
|
|
36867
36896
|
const { stateChangeTypes: stateChangeTypes$3 } = useCombobox;
|
|
36868
36897
|
const Wrapper$a = styled__default.default.div`
|
|
36869
36898
|
display: inline-flex;
|
|
@@ -36943,42 +36972,17 @@
|
|
|
36943
36972
|
cursor: not-allowed;
|
|
36944
36973
|
color: ${(props) => props.theme.colors.grey2};
|
|
36945
36974
|
}
|
|
36946
|
-
`;
|
|
36947
|
-
const NoItemsLabel$1 = styled__default.default.span`
|
|
36948
|
-
display: flex;
|
|
36949
|
-
flex: 1 1 auto;
|
|
36950
|
-
align-items: center;
|
|
36951
|
-
justify-content: center;
|
|
36952
|
-
|
|
36953
|
-
height: 2rem;
|
|
36954
|
-
|
|
36955
|
-
font-size: 1rem;
|
|
36956
|
-
color: ${(props) => props.theme.colors.text};
|
|
36957
|
-
|
|
36958
|
-
background-color: ${(props) => props.theme.colors.blue1};
|
|
36959
|
-
`;
|
|
36960
|
-
const DropdownList$3 = styled__default.default(List)`
|
|
36961
|
-
margin-left: -1px;
|
|
36962
|
-
border-radius: 0 0 0.25rem 0.25rem;
|
|
36963
|
-
box-shadow: ${(props) => props.theme.shadow.light};
|
|
36964
|
-
`;
|
|
36965
|
-
const ChevronButton$1 = styled__default.default(Button$3).attrs((attrs2) => Object.assign(Object.assign({}, attrs2), { styling: "ghost" }))`
|
|
36966
|
-
min-width: 0;
|
|
36967
|
-
height: auto;
|
|
36968
|
-
margin: 0;
|
|
36969
|
-
padding: 0 0.25rem;
|
|
36970
|
-
|
|
36971
|
-
background-color: transparent !important;
|
|
36972
36975
|
`;
|
|
36973
36976
|
function ComboBox(props) {
|
|
36974
36977
|
var _a3, _b, _c, _d, _e2, _f;
|
|
36975
36978
|
const [inputValue, setInputValue] = React.useState((_d = (_b = (_a3 = props.initialValue) === null || _a3 === void 0 ? void 0 : _a3.label) !== null && _b !== void 0 ? _b : (_c = props.selectedItem) === null || _c === void 0 ? void 0 : _c.label) !== null && _d !== void 0 ? _d : "");
|
|
36976
36979
|
const [pendingHighlight, setPendingHighlight] = React.useState(null);
|
|
36977
|
-
const filteredItems = props.items.filter((item) => {
|
|
36980
|
+
const filteredItems = React.useMemo(() => props.items.filter((item) => {
|
|
36978
36981
|
var _a4;
|
|
36979
36982
|
return inputValue ? (_a4 = item.label) === null || _a4 === void 0 ? void 0 : _a4.toLowerCase().includes(inputValue === null || inputValue === void 0 ? void 0 : inputValue.toLowerCase()) : true;
|
|
36980
|
-
});
|
|
36981
|
-
const
|
|
36983
|
+
}), [inputValue, props.items]);
|
|
36984
|
+
const [kbdHighlightIdx, setKbdHighlightIdx] = React__default.default.useState();
|
|
36985
|
+
const { selectedItem, isOpen, getMenuProps, getInputProps, getToggleButtonProps, getItemProps, setHighlightedIndex } = useCombobox(Object.assign(Object.assign(Object.assign({ initialIsOpen: props.initialIsOpen, initialSelectedItem: (_e2 = props.initialValue) !== null && _e2 !== void 0 ? _e2 : props.selectedItem, itemToString: (item) => item ? item.label : "", items: filteredItems, onInputValueChange: (change) => {
|
|
36982
36986
|
setInputValue(change.inputValue);
|
|
36983
36987
|
}, onSelectedItemChange: (changes) => {
|
|
36984
36988
|
var _a4, _b2;
|
|
@@ -36987,7 +36991,7 @@
|
|
|
36987
36991
|
props.onSelect(changes.selectedItem);
|
|
36988
36992
|
}
|
|
36989
36993
|
}
|
|
36990
|
-
}, stateReducer: (state, { changes, type: type2 }) => {
|
|
36994
|
+
} }, syncKbdHighlightIdx(setKbdHighlightIdx)), { stateReducer: (state, { changes, type: type2 }) => {
|
|
36991
36995
|
var _a4;
|
|
36992
36996
|
if (type2 === stateChangeTypes$3.InputFocus || type2 === stateChangeTypes$3.ToggleButtonClick && changes.isOpen || type2 === stateChangeTypes$3.ControlledPropUpdatedSelectedItem && changes.isOpen) {
|
|
36993
36997
|
setPendingHighlight(changes.selectedItem ? props.items.findIndex((i2) => i2.value === changes.selectedItem.value) : 0);
|
|
@@ -37003,7 +37007,7 @@
|
|
|
37003
37007
|
return Object.assign(Object.assign({}, changes), { inputValue: ((_a4 = changes.selectedItem) === null || _a4 === void 0 ? void 0 : _a4.label) || "" });
|
|
37004
37008
|
}
|
|
37005
37009
|
return changes;
|
|
37006
|
-
} }, "selectedItem" in props && { selectedItem: props.selectedItem }));
|
|
37010
|
+
} }), "selectedItem" in props && { selectedItem: props.selectedItem }));
|
|
37007
37011
|
React.useEffect(() => {
|
|
37008
37012
|
if (isOpen && pendingHighlight !== null) {
|
|
37009
37013
|
setHighlightedIndex(pendingHighlight);
|
|
@@ -37020,17 +37024,13 @@
|
|
|
37020
37024
|
middleware: [flip$2(), shift$1(), offset$2({ crossAxis: 1 }), matchWidthToReference(2)],
|
|
37021
37025
|
whileElementsMounted: isOpen ? autoUpdate : void 0
|
|
37022
37026
|
});
|
|
37027
|
+
const dropdownStyle = React.useMemo(() => Object.assign(Object.assign({}, floatingStyles), { marginLeft: -1 }), [floatingStyles]);
|
|
37023
37028
|
const role = useRole(context2, { role: "combobox" });
|
|
37024
37029
|
const { getReferenceProps, getFloatingProps } = useInteractions([role]);
|
|
37025
|
-
const menuProps = React.useMemo(() => getMenuProps({ ref: refs.setFloating }), [refs.setFloating, getMenuProps]);
|
|
37026
37030
|
return jsxRuntime.exports.jsx(Tooltip$1, { content: props.errorMsg, disabled: !props.errorMsg, styling: "error", children: jsxRuntime.exports.jsxs(Wrapper$a, { className: props.className, isDisabled: props.disabled, isErrored: !!props.errorMsg, isOpen, style: props.style, children: [jsxRuntime.exports.jsxs(InputWrapper$4, { disabled: props.disabled, isOpen, ref: refs.setReference, children: [jsxRuntime.exports.jsx(Input$2, Object.assign({}, getInputProps({
|
|
37027
37031
|
disabled: props.disabled
|
|
37028
|
-
}), getReferenceProps(), { placeholder: (_f = selectedItem === null ? props.placeholder : selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.label) !== null && _f !== void 0 ? _f : props.placeholder, size: props.size })), jsxRuntime.exports.jsx(ChevronButton$1,
|
|
37032
|
+
}), getReferenceProps(), { placeholder: (_f = selectedItem === null ? props.placeholder : selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.label) !== null && _f !== void 0 ? _f : props.placeholder, size: props.size })), jsxRuntime.exports.jsx(ChevronButton$1, { disabled: props.disabled, isOpen, getToggleButtonProps })] }), ReactDOM__default.default.createPortal(jsxRuntime.exports.jsx(DropdownList$1, { items: filteredItems, getItemProps, getFloatingProps, style: dropdownStyle, isOpen, getMenuProps, size: props.size, ref: refs.setFloating, selectedItem, kbdHighlightIdx }), document.body)] }) });
|
|
37029
37033
|
}
|
|
37030
|
-
styled__default.default(List)`
|
|
37031
|
-
overflow-y: auto;
|
|
37032
|
-
box-shadow: ${(props) => props.theme.shadow.light};
|
|
37033
|
-
`;
|
|
37034
37034
|
var dateFormats$1 = {
|
|
37035
37035
|
full: "EEEE, d MMMM yyyy",
|
|
37036
37036
|
long: "d MMMM yyyy",
|
|
@@ -43662,7 +43662,7 @@
|
|
|
43662
43662
|
}
|
|
43663
43663
|
}
|
|
43664
43664
|
`;
|
|
43665
|
-
const
|
|
43665
|
+
const StyledDatepickerListItem = styled__default.default.span`
|
|
43666
43666
|
cursor: pointer;
|
|
43667
43667
|
user-select: none;
|
|
43668
43668
|
|
|
@@ -43674,22 +43674,27 @@
|
|
|
43674
43674
|
min-height: 2rem;
|
|
43675
43675
|
padding: 0.25rem 1.5rem;
|
|
43676
43676
|
|
|
43677
|
-
font-size:
|
|
43677
|
+
font-size: 0.75rem;
|
|
43678
43678
|
font-weight: 300;
|
|
43679
43679
|
color: ${(props) => props.isSelected ? "#FFF" : props.theme.colors.text};
|
|
43680
43680
|
text-overflow: ellipsis;
|
|
43681
43681
|
white-space: nowrap;
|
|
43682
|
+
border-radius: 0.25rem;
|
|
43682
43683
|
|
|
43683
43684
|
background-color: ${(props) => {
|
|
43684
43685
|
if (props.isSelected) {
|
|
43685
43686
|
return props.theme.colors.primary;
|
|
43686
43687
|
}
|
|
43687
|
-
if (props.
|
|
43688
|
+
if (props.isHighlighted) {
|
|
43688
43689
|
return props.theme.colors.grey2;
|
|
43689
43690
|
}
|
|
43690
43691
|
return props.theme.colors.grey1;
|
|
43691
43692
|
}};
|
|
43692
43693
|
|
|
43694
|
+
:hover {
|
|
43695
|
+
background-color: ${(props) => props.isSelected ? props.theme.colors.primary : props.theme.colors.grey2};
|
|
43696
|
+
}
|
|
43697
|
+
|
|
43693
43698
|
:active {
|
|
43694
43699
|
background-color: ${(props) => props.theme.colors.grey1};
|
|
43695
43700
|
}
|
|
@@ -43698,39 +43703,41 @@
|
|
|
43698
43703
|
border-bottom: none;
|
|
43699
43704
|
}
|
|
43700
43705
|
`;
|
|
43701
|
-
const
|
|
43706
|
+
const DatepickerListItem = React__namespace.memo(({ item, index: index2, getItemProps, isSelected, size: size2, isHighlighted }) => {
|
|
43707
|
+
const _a3 = getItemProps({ index: index2, item }), itemProps = __rest$a(_a3, ["itemClassName"]);
|
|
43708
|
+
return jsxRuntime.exports.jsx(StyledDatepickerListItem, Object.assign({}, itemProps, { isSelected, title: item.label, item, index: index2, size: size2, isHighlighted, children: item.label }));
|
|
43709
|
+
});
|
|
43710
|
+
const StyledDropdownList = React__namespace.memo(styled__default.default(DropdownList$1)`
|
|
43702
43711
|
overflow-y: auto;
|
|
43703
43712
|
display: ${(props) => props.isOpen ? "flex" : "none"};
|
|
43704
43713
|
flex-direction: column;
|
|
43705
43714
|
gap: 0.125rem;
|
|
43706
43715
|
|
|
43707
|
-
|
|
43716
|
+
width: 16.25rem;
|
|
43717
|
+
max-height: calc(
|
|
43718
|
+
${(props) => (props.maxItems || 5) * 2}em + 2px + (${(props) => (props.maxItems || 5) - 1}) * 0.125em
|
|
43719
|
+
);
|
|
43708
43720
|
margin-left: ${(props) => props.displacement}rem;
|
|
43709
43721
|
|
|
43710
43722
|
background-color: ${(props) => props.theme.colors.grey1};
|
|
43711
43723
|
border: none;
|
|
43712
|
-
|
|
43713
|
-
|
|
43724
|
+
box-shadow: none;
|
|
43725
|
+
`);
|
|
43726
|
+
const DatepickerSelectButtonPrimary = React__namespace.memo(({ disabled: disabled2, getToggleButtonProps, setReference, getReferenceProps, size: size2, isOpen, selectedItem }) => jsxRuntime.exports.jsxs(SelectButtonPrimary, Object.assign({ disabled: disabled2 }, getToggleButtonProps({ disabled: disabled2, ref: setReference }), getReferenceProps(), { type: "button", children: [jsxRuntime.exports.jsx(SelectedItem$1, { size: size2, children: selectedItem ? selectedItem.label : "Select" }), jsxRuntime.exports.jsx(Chevron$2, { disabled: disabled2, isOpen })] })));
|
|
43714
43727
|
function DatepickerSelect(props) {
|
|
43715
43728
|
var _a3;
|
|
43716
|
-
const [
|
|
43717
|
-
const { isOpen, selectedItem, getToggleButtonProps, getMenuProps,
|
|
43729
|
+
const [kbdHighlightIdx, setKbdHighlightIdx] = React__namespace.useState();
|
|
43730
|
+
const { isOpen, selectedItem, getToggleButtonProps, getMenuProps, getItemProps } = useSelect(Object.assign(Object.assign(Object.assign({ initialSelectedItem: props.initialValue, itemToString: (item) => item.label, items: props.items, onSelectedItemChange: (changes) => {
|
|
43718
43731
|
const selected = changes.selectedItem;
|
|
43719
43732
|
if (props.onSelect) {
|
|
43720
43733
|
props.onSelect(selected);
|
|
43721
43734
|
}
|
|
43722
|
-
}, stateReducer: (state, { changes, type: type2 }) => {
|
|
43723
|
-
if (type2 === stateChangeTypes$2.ToggleButtonClick) {
|
|
43724
|
-
|
|
43735
|
+
} }, syncKbdHighlightIdx(setKbdHighlightIdx)), { stateReducer: (state, { changes, type: type2 }) => {
|
|
43736
|
+
if (type2 === stateChangeTypes$2.ToggleButtonClick && (changes === null || changes === void 0 ? void 0 : changes.isOpen) && props.selectedItem) {
|
|
43737
|
+
return Object.assign(Object.assign({}, changes), { highlightedIndex: props.items.findIndex((i2) => i2.value === changes.selectedItem.value) });
|
|
43725
43738
|
}
|
|
43726
43739
|
return changes;
|
|
43727
|
-
} }, props.selectedItem && { selectedItem: props.selectedItem }));
|
|
43728
|
-
React.useEffect(() => {
|
|
43729
|
-
if (isOpen && pendingHighlight !== null) {
|
|
43730
|
-
setHighlightedIndex(pendingHighlight);
|
|
43731
|
-
setPendingHighlight(null);
|
|
43732
|
-
}
|
|
43733
|
-
}, [isOpen, pendingHighlight, setHighlightedIndex]);
|
|
43740
|
+
} }), props.selectedItem && { selectedItem: props.selectedItem }));
|
|
43734
43741
|
const { refs, floatingStyles, context: context2 } = useFloating({
|
|
43735
43742
|
open: isOpen,
|
|
43736
43743
|
placement: props.placement || "bottom-start",
|
|
@@ -43739,19 +43746,15 @@
|
|
|
43739
43746
|
});
|
|
43740
43747
|
const role = useRole(context2, { role: "listbox" });
|
|
43741
43748
|
const { getReferenceProps, getFloatingProps } = useInteractions([role]);
|
|
43742
|
-
const menuProps = getMenuProps();
|
|
43743
|
-
const setMenuRef = menuProps.ref;
|
|
43744
43749
|
const setFloatingRef = refs.setFloating;
|
|
43745
43750
|
const { dropdownRef } = props;
|
|
43746
43751
|
const mergedDropdownRef = React__namespace.useCallback((node2) => {
|
|
43747
43752
|
setFloatingRef(node2);
|
|
43748
|
-
setMenuRef(node2);
|
|
43749
43753
|
dropdownRef === null || dropdownRef === void 0 ? void 0 : dropdownRef(node2);
|
|
43750
|
-
}, [setFloatingRef,
|
|
43751
|
-
|
|
43752
|
-
|
|
43753
|
-
|
|
43754
|
-
}) })), document.body)] }) });
|
|
43754
|
+
}, [setFloatingRef, dropdownRef]);
|
|
43755
|
+
const menuProps = React__namespace.useMemo(() => getMenuProps({ ref: mergedDropdownRef }), [mergedDropdownRef, getMenuProps]);
|
|
43756
|
+
const renderListItem = React__namespace.useCallback((item, index2) => jsxRuntime.exports.jsx(DatepickerListItem, { item, index: index2, getItemProps, isSelected: (selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.label) === item.label, isHighlighted: isOpen && kbdHighlightIdx !== void 0 && kbdHighlightIdx === index2 }, `item-${index2}-${isOpen && (selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.label) === item.label}`), [getItemProps, selectedItem, isOpen, kbdHighlightIdx]);
|
|
43757
|
+
return jsxRuntime.exports.jsx(Tooltip$1, { content: props.errorMsg, disabled: !props.errorMsg, styling: "error", children: jsxRuntime.exports.jsxs(Wrapper$9, { className: props.className, isDisabled: props.disabled, isErrored: !!props.errorMsg, onClick: props.onClick, style: props.style, children: [jsxRuntime.exports.jsx(DatepickerSelectButtonPrimary, { disabled: props.disabled, getToggleButtonProps, setReference: refs.setReference, getReferenceProps, size: props.size, isOpen, selectedItem }), ReactDOM__default.default.createPortal(jsxRuntime.exports.jsx(StyledDropdownList, { items: props.items, getItemProps, getFloatingProps, style: floatingStyles, isOpen, getMenuProps, size: props.size, className: `${(_a3 = menuProps === null || menuProps === void 0 ? void 0 : menuProps.className) !== null && _a3 !== void 0 ? _a3 : ""} ${props.itemClass}`, itemClass: props.itemClass, displacement: props.displacement, maxItems: 7, ref: mergedDropdownRef, kbdHighlightIdx, children: renderListItem }), document.body)] }) });
|
|
43755
43758
|
}
|
|
43756
43759
|
function getMonths() {
|
|
43757
43760
|
const months = [];
|
|
@@ -45607,42 +45610,16 @@
|
|
|
45607
45610
|
overflow: hidden;
|
|
45608
45611
|
text-overflow: ellipsis;
|
|
45609
45612
|
white-space: nowrap;
|
|
45610
|
-
`;
|
|
45611
|
-
const NoItemsLabel = styled__default.default.span`
|
|
45612
|
-
display: flex;
|
|
45613
|
-
flex: 1 1 auto;
|
|
45614
|
-
align-items: center;
|
|
45615
|
-
justify-content: center;
|
|
45616
|
-
|
|
45617
|
-
height: 2rem;
|
|
45618
|
-
|
|
45619
|
-
font-size: 1rem;
|
|
45620
|
-
color: ${(props) => props.theme.colors.grey4};
|
|
45621
|
-
|
|
45622
|
-
background-color: ${(props) => props.theme.colors.blue1};
|
|
45623
|
-
`;
|
|
45624
|
-
const DropdownList$1 = styled__default.default(List)`
|
|
45625
|
-
border-radius: 0 0 0.25rem 0.25rem;
|
|
45626
|
-
outline: 0;
|
|
45627
|
-
box-shadow: ${(props) => props.theme.shadow.light};
|
|
45628
|
-
`;
|
|
45629
|
-
const ChevronButton = styled__default.default(Button$3).attrs((attrs2) => Object.assign(Object.assign({}, attrs2), { styling: "ghost" }))`
|
|
45630
|
-
min-width: 0;
|
|
45631
|
-
height: auto;
|
|
45632
|
-
margin: 0;
|
|
45633
|
-
padding: 0 0.25rem;
|
|
45634
|
-
|
|
45635
|
-
background-color: transparent !important;
|
|
45636
45613
|
`;
|
|
45637
45614
|
function MultiSelect(_a3) {
|
|
45638
|
-
var _b;
|
|
45615
|
+
var _b, _c;
|
|
45639
45616
|
var { maxWidth = "100%", maxRows = 3 } = _a3, props = __rest$9(_a3, ["maxWidth", "maxRows"]);
|
|
45640
45617
|
const [inputValue, setInputValue] = React.useState("");
|
|
45641
45618
|
const { getSelectedItemProps, getDropdownProps, addSelectedItem, removeSelectedItem, selectedItems } = useMultipleSelection(Object.assign({ initialSelectedItems: (_b = props.initialValue) !== null && _b !== void 0 ? _b : [], onSelectedItemsChange: (changes) => {
|
|
45642
45619
|
if (props.onSelect) {
|
|
45643
45620
|
props.onSelect(changes.selectedItems);
|
|
45644
45621
|
}
|
|
45645
|
-
} }, "selectedItems" in props && { selectedItems: props.selectedItems }));
|
|
45622
|
+
} }, "selectedItems" in props && { selectedItems: (_c = props.selectedItems) !== null && _c !== void 0 ? _c : [] }));
|
|
45646
45623
|
const onTermChange = React.useCallback(
|
|
45647
45624
|
(term) => {
|
|
45648
45625
|
setInputValue(term);
|
|
@@ -45656,35 +45633,23 @@
|
|
|
45656
45633
|
var _a4;
|
|
45657
45634
|
return !selectedItems.includes(item) && ((_a4 = item.label) === null || _a4 === void 0 ? void 0 : _a4.toLowerCase().includes(inputValue.toLowerCase()));
|
|
45658
45635
|
}), [props.onTermChange, props.items, selectedItems, inputValue]);
|
|
45659
|
-
const
|
|
45660
|
-
|
|
45661
|
-
|
|
45662
|
-
|
|
45663
|
-
|
|
45664
|
-
|
|
45665
|
-
|
|
45666
|
-
|
|
45667
|
-
|
|
45668
|
-
}
|
|
45669
|
-
if ([
|
|
45670
|
-
stateChangeTypes$1.InputKeyDownEnter,
|
|
45671
|
-
stateChangeTypes$1.ItemClick,
|
|
45672
|
-
stateChangeTypes$1.InputBlur
|
|
45673
|
-
].includes(type2)) {
|
|
45674
|
-
if (selectedItem) {
|
|
45675
|
-
onTermChange("");
|
|
45676
|
-
addSelectedItem(selectedItem);
|
|
45677
|
-
}
|
|
45678
|
-
}
|
|
45679
|
-
},
|
|
45680
|
-
selectedItem: null,
|
|
45681
|
-
stateReducer: (state, { changes, type: type2 }) => {
|
|
45682
|
-
if (type2 === stateChangeTypes$1.ItemClick || type2 === stateChangeTypes$1.InputKeyDownEnter) {
|
|
45683
|
-
return Object.assign(Object.assign({}, changes), { isOpen: true });
|
|
45636
|
+
const [kbdHighlightIdx, setKbdHighlightIdx] = React.useState();
|
|
45637
|
+
const { isOpen, getMenuProps, getInputProps, getItemProps, getToggleButtonProps } = useCombobox(Object.assign(Object.assign({ defaultHighlightedIndex: -1, initialIsOpen: props.initialIsOpen, inputValue, itemToString: (item) => (item === null || item === void 0 ? void 0 : item.label) || "", items: filteredItems, onStateChange: ({ inputValue: internalInputVal, selectedItem, type: type2 }) => {
|
|
45638
|
+
if (type2 === stateChangeTypes$1.InputChange) {
|
|
45639
|
+
onTermChange(internalInputVal);
|
|
45640
|
+
}
|
|
45641
|
+
if ([stateChangeTypes$1.InputKeyDownEnter, stateChangeTypes$1.ItemClick, stateChangeTypes$1.InputBlur].includes(type2)) {
|
|
45642
|
+
if (selectedItem) {
|
|
45643
|
+
onTermChange("");
|
|
45644
|
+
addSelectedItem(selectedItem);
|
|
45684
45645
|
}
|
|
45685
|
-
return changes;
|
|
45686
45646
|
}
|
|
45687
|
-
})
|
|
45647
|
+
} }, syncKbdHighlightIdx(setKbdHighlightIdx)), { selectedItem: null, stateReducer: (state, { changes, type: type2 }) => {
|
|
45648
|
+
if (type2 === stateChangeTypes$1.ItemClick || type2 === stateChangeTypes$1.InputKeyDownEnter) {
|
|
45649
|
+
return Object.assign(Object.assign({}, changes), { isOpen: true });
|
|
45650
|
+
}
|
|
45651
|
+
return changes;
|
|
45652
|
+
} }));
|
|
45688
45653
|
const { refs, floatingStyles, context: context2 } = useFloating({
|
|
45689
45654
|
open: isOpen,
|
|
45690
45655
|
middleware: [flip$2(), shift$1(), matchWidthToReference()],
|
|
@@ -45692,25 +45657,11 @@
|
|
|
45692
45657
|
});
|
|
45693
45658
|
const role = useRole(context2, { role: "listbox" });
|
|
45694
45659
|
const { getReferenceProps, getFloatingProps } = useInteractions([role]);
|
|
45695
|
-
const menuProps = React.useMemo(() => getMenuProps({ ref: refs.setFloating }), [getMenuProps, refs.setFloating]);
|
|
45696
|
-
const toggleProps = React.useMemo(() => getToggleButtonProps(), [getToggleButtonProps]);
|
|
45697
45660
|
return jsxRuntime.exports.jsxs(Wrapper$7, { className: props.className, isDisabled: props.disabled, isOpen, maxRows, maxWidth, style: props.style, children: [jsxRuntime.exports.jsx(Tooltip$1, { content: props.errorMsg, disabled: !props.errorMsg, styling: "error", children: jsxRuntime.exports.jsxs(InputWrapper$3, { isDisabled: props.disabled, isOpen, ref: refs.setReference, children: [jsxRuntime.exports.jsxs(TagWrapper, { maxRows, children: [selectedItems.map((selectedItem, index2) => jsxRuntime.exports.jsxs(Tag$1, Object.assign({ disabled: props.disabled }, getSelectedItemProps({ index: index2, selectedItem }), { children: [jsxRuntime.exports.jsx(TagText, { children: selectedItem.label }), jsxRuntime.exports.jsx(Cross$1, { asButton: true, onClick: (e3) => {
|
|
45698
45661
|
e3.stopPropagation();
|
|
45699
45662
|
return removeSelectedItem(selectedItem);
|
|
45700
|
-
} })] }), selectedItem.value)), jsxRuntime.exports.jsx(Input$1, Object.assign({}, getInputProps(getDropdownProps({ preventKeyAction: isOpen })), getReferenceProps(), { disabled: props.disabled, placeholder: props.placeholder, size: props.size, style: { flex: "1 1 5ch" } }))] }), jsxRuntime.exports.jsx(ChevronButton
|
|
45663
|
+
} })] }), selectedItem.value)), jsxRuntime.exports.jsx(Input$1, Object.assign({}, getInputProps(getDropdownProps({ preventKeyAction: isOpen })), getReferenceProps(), { disabled: props.disabled, placeholder: props.placeholder, size: props.size, style: { flex: "1 1 5ch" } }))] }), jsxRuntime.exports.jsx(ChevronButton$1, { disabled: props.disabled, isOpen, getToggleButtonProps })] }) }), ReactDOM__default.default.createPortal(jsxRuntime.exports.jsx(DropdownList$1, { items: filteredItems, getItemProps, getFloatingProps, style: floatingStyles, isOpen, getMenuProps, size: props.size, ref: refs.setFloating, kbdHighlightIdx }), document.body)] });
|
|
45701
45664
|
}
|
|
45702
|
-
var __rest$8 = globalThis && globalThis.__rest || function(s2, e3) {
|
|
45703
|
-
var t2 = {};
|
|
45704
|
-
for (var p2 in s2)
|
|
45705
|
-
if (Object.prototype.hasOwnProperty.call(s2, p2) && e3.indexOf(p2) < 0)
|
|
45706
|
-
t2[p2] = s2[p2];
|
|
45707
|
-
if (s2 != null && typeof Object.getOwnPropertySymbols === "function")
|
|
45708
|
-
for (var i2 = 0, p2 = Object.getOwnPropertySymbols(s2); i2 < p2.length; i2++) {
|
|
45709
|
-
if (e3.indexOf(p2[i2]) < 0 && Object.prototype.propertyIsEnumerable.call(s2, p2[i2]))
|
|
45710
|
-
t2[p2[i2]] = s2[p2[i2]];
|
|
45711
|
-
}
|
|
45712
|
-
return t2;
|
|
45713
|
-
};
|
|
45714
45665
|
const SelectedItem = styled__default.default.div`
|
|
45715
45666
|
overflow: hidden;
|
|
45716
45667
|
|
|
@@ -45791,21 +45742,16 @@
|
|
|
45791
45742
|
color: ${(props) => props.theme.colors.grey2};
|
|
45792
45743
|
}
|
|
45793
45744
|
}
|
|
45794
|
-
`;
|
|
45795
|
-
const DropdownList = styled__default.default(List)`
|
|
45796
|
-
margin-left: -1px;
|
|
45797
|
-
border-radius: 0 0 0.25rem 0.25rem;
|
|
45798
|
-
outline: 0;
|
|
45799
|
-
box-shadow: ${(props) => props.theme.shadow.light};
|
|
45800
45745
|
`;
|
|
45801
45746
|
function Select$1(props) {
|
|
45802
45747
|
var _a3, _b, _c;
|
|
45803
45748
|
const { applySameWidthModifier = true } = props;
|
|
45804
|
-
const
|
|
45749
|
+
const [kbdHighlightIdx, setKbdHighlightIdx] = React__namespace.useState();
|
|
45750
|
+
const { isOpen, selectedItem, getToggleButtonProps, getMenuProps, getItemProps } = useSelect(Object.assign(Object.assign({ initialIsOpen: props.initialIsOpen, initialSelectedItem: props.initialValue, itemToString: (item) => item.label, items: props.items, onSelectedItemChange: (changes) => {
|
|
45805
45751
|
var _a4;
|
|
45806
45752
|
const selected = changes.selectedItem;
|
|
45807
45753
|
(_a4 = props.onSelect) === null || _a4 === void 0 ? void 0 : _a4.call(props, selected);
|
|
45808
|
-
} }, "selectedItem" in props && { selectedItem: props.selectedItem }));
|
|
45754
|
+
} }, syncKbdHighlightIdx(setKbdHighlightIdx)), "selectedItem" in props && { selectedItem: props.selectedItem }));
|
|
45809
45755
|
const { refs, floatingStyles, context: context2 } = useFloating({
|
|
45810
45756
|
open: isOpen,
|
|
45811
45757
|
placement: props.placement || "bottom-start",
|
|
@@ -45822,10 +45768,8 @@
|
|
|
45822
45768
|
}, [setFloatingRef, dropdownRef]);
|
|
45823
45769
|
const menuProps = React__namespace.useMemo(() => getMenuProps({ ref: mergedDropdownRef }), [mergedDropdownRef, getMenuProps]);
|
|
45824
45770
|
const toggleButtonProps = React__namespace.useMemo(() => getToggleButtonProps({ disabled: props.disabled, ref: refs.setReference }), [props.disabled, refs.setReference, getToggleButtonProps]);
|
|
45825
|
-
|
|
45826
|
-
|
|
45827
|
-
return React.createElement(ListItem, Object.assign({}, itemProps, { className: `${itemClassName} ${props.itemClass}`, hovered: index2 === highlightedIndex, key: `item-${index2}`, size: props.size, title: item.label }), item.label);
|
|
45828
|
-
}) })), document.body)] }) });
|
|
45771
|
+
const dropdownStyle = React__namespace.useMemo(() => Object.assign(Object.assign({}, floatingStyles), { marginLeft: -1 }), [floatingStyles]);
|
|
45772
|
+
return jsxRuntime.exports.jsx(Tooltip$1, { content: props.errorMsg, disabled: !props.errorMsg, styling: "error", children: jsxRuntime.exports.jsxs(Wrapper$6, { className: props.className, isDisabled: props.disabled, isErrored: !!props.errorMsg, isOpen, onClick: props.onClick, style: props.style, children: [jsxRuntime.exports.jsxs(SelectButton, Object.assign({ disabled: props.disabled, isOpen }, toggleButtonProps, getReferenceProps(), { type: "button", children: [jsxRuntime.exports.jsx(SelectedItem, { size: props.size, children: (_b = (_a3 = selectedItem === null ? props.placeholder : selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.label) !== null && _a3 !== void 0 ? _a3 : props.placeholder) !== null && _b !== void 0 ? _b : "Select" }), jsxRuntime.exports.jsx(Chevron$2, { disabled: props.disabled, isOpen })] })), ReactDOM__default.default.createPortal(jsxRuntime.exports.jsx(DropdownList$1, { items: props.items, getItemProps, getFloatingProps, style: dropdownStyle, isOpen, getMenuProps, size: props.size, ref: refs.setFloating, className: `${(_c = menuProps === null || menuProps === void 0 ? void 0 : menuProps.className) !== null && _c !== void 0 ? _c : ""} ${props.itemClass}`, itemClass: props.itemClass, maxItems: props.maxItems, selectedItem, kbdHighlightIdx }), document.body)] }) });
|
|
45829
45773
|
}
|
|
45830
45774
|
const StyledSelect$2 = styled__default.default(Select$1)`
|
|
45831
45775
|
margin: 1px solid ${(props) => props.theme.colors.background};
|
|
@@ -46425,22 +46369,29 @@
|
|
|
46425
46369
|
return jsxRuntime.exports.jsxs(RadioWrapper, { "aria-disabled": props.disabled, isListStyle: props.isListStyle, children: [jsxRuntime.exports.jsx(RadioButton, { checked: isEqual_1((_a3 = props.value) === null || _a3 === void 0 ? void 0 : _a3.value, item.value) || currentSelected === index2, disabled: props.disabled, name: uuid2.current, onChange: (e3) => onChangeValue(e3), type: "radio", value: index2 }), jsxRuntime.exports.jsx(StyledCheckmark, { disabled: props.disabled }), item.label ? item.label : item.value] }, `item-${index2}`);
|
|
46426
46370
|
}) });
|
|
46427
46371
|
}
|
|
46372
|
+
var __rest$8 = globalThis && globalThis.__rest || function(s2, e3) {
|
|
46373
|
+
var t2 = {};
|
|
46374
|
+
for (var p2 in s2)
|
|
46375
|
+
if (Object.prototype.hasOwnProperty.call(s2, p2) && e3.indexOf(p2) < 0)
|
|
46376
|
+
t2[p2] = s2[p2];
|
|
46377
|
+
if (s2 != null && typeof Object.getOwnPropertySymbols === "function")
|
|
46378
|
+
for (var i2 = 0, p2 = Object.getOwnPropertySymbols(s2); i2 < p2.length; i2++) {
|
|
46379
|
+
if (e3.indexOf(p2[i2]) < 0 && Object.prototype.propertyIsEnumerable.call(s2, p2[i2]))
|
|
46380
|
+
t2[p2[i2]] = s2[p2[i2]];
|
|
46381
|
+
}
|
|
46382
|
+
return t2;
|
|
46383
|
+
};
|
|
46428
46384
|
const { stateChangeTypes } = useCombobox;
|
|
46429
|
-
const
|
|
46430
|
-
margin-left: -1px;
|
|
46431
|
-
border-radius: 0 0 0.25rem 0.25rem;
|
|
46432
|
-
box-shadow: ${(props) => props.theme.shadow.light};
|
|
46433
|
-
`;
|
|
46434
|
-
const getTextColor = (heading2, selected, theme2) => {
|
|
46385
|
+
const getTextColor = (heading2, isSelected, theme2) => {
|
|
46435
46386
|
if (heading2) {
|
|
46436
46387
|
return theme2.colors.text;
|
|
46437
46388
|
}
|
|
46438
|
-
if (
|
|
46389
|
+
if (isSelected) {
|
|
46439
46390
|
return theme2.colors.primary;
|
|
46440
46391
|
}
|
|
46441
46392
|
return theme2.colors.text;
|
|
46442
46393
|
};
|
|
46443
|
-
const ListItemSpan = styled__default.default(
|
|
46394
|
+
const ListItemSpan = styled__default.default(StyledListItem)`
|
|
46444
46395
|
cursor: ${(props) => (props === null || props === void 0 ? void 0 : props.heading) ? "text" : "pointer"};
|
|
46445
46396
|
user-select: ${(props) => (props === null || props === void 0 ? void 0 : props.heading) ? "text" : "none"};
|
|
46446
46397
|
|
|
@@ -46452,7 +46403,7 @@
|
|
|
46452
46403
|
padding-right: 0.7rem;
|
|
46453
46404
|
|
|
46454
46405
|
font-weight: ${(props) => (props === null || props === void 0 ? void 0 : props.heading) ? "bold" : "normal"};
|
|
46455
|
-
color: ${(props) => getTextColor(props === null || props === void 0 ? void 0 : props.heading, props.
|
|
46406
|
+
color: ${(props) => getTextColor(props === null || props === void 0 ? void 0 : props.heading, props.isSelected, props.theme)};
|
|
46456
46407
|
|
|
46457
46408
|
${(props) => {
|
|
46458
46409
|
if (props.heading) {
|
|
@@ -46478,14 +46429,22 @@
|
|
|
46478
46429
|
return [...acc, item];
|
|
46479
46430
|
}, []);
|
|
46480
46431
|
}
|
|
46432
|
+
const SectionedListItem = ({ item, index: index2, getItemProps, isSelected, isHighlighted }) => {
|
|
46433
|
+
const theme2 = useClTheme();
|
|
46434
|
+
const _a3 = getItemProps({ index: index2, item }), itemProps = __rest$8(_a3, ["itemClassName"]);
|
|
46435
|
+
if (item.heading) {
|
|
46436
|
+
delete itemProps.onClick;
|
|
46437
|
+
}
|
|
46438
|
+
return jsxRuntime.exports.jsxs(ListItemSpan, Object.assign({}, itemProps, { heading: item.heading, section: item.section, isSelected, title: item.label, item, index: index2, isHighlighted, children: [item.label || item.section, item.badge && jsxRuntime.exports.jsx(Badge, { color: item.badge.color || theme2.colors.primary, children: item.badge.label })] }));
|
|
46439
|
+
};
|
|
46481
46440
|
function SectionedList(props) {
|
|
46482
46441
|
var _a3, _b, _c;
|
|
46483
|
-
const theme2 = useClTheme();
|
|
46484
46442
|
const unpackedItems = React.useMemo(() => unpackSectionedList(props.items), [props.items]);
|
|
46485
46443
|
const [pendingHighlight, setPendingHighlight] = React.useState(null);
|
|
46486
46444
|
const [items, setItems] = React.useState(unpackedItems);
|
|
46487
46445
|
const [inputValue, setInputValue] = React.useState((_b = (_a3 = props.selectedItem) === null || _a3 === void 0 ? void 0 : _a3.label) !== null && _b !== void 0 ? _b : "");
|
|
46488
|
-
const
|
|
46446
|
+
const [kbdHighlightIdx, setKbdHighlightIdx] = React__default.default.useState();
|
|
46447
|
+
const { selectedItem, isOpen, getMenuProps, getInputProps, getToggleButtonProps, getItemProps, setHighlightedIndex } = useCombobox(Object.assign(Object.assign(Object.assign({ initialIsOpen: false, initialSelectedItem: (_c = props.initialValue) !== null && _c !== void 0 ? _c : props.selectedItem, itemToString: (item) => item ? item.label : "", items, onInputValueChange: (change) => {
|
|
46489
46448
|
setInputValue(change.inputValue);
|
|
46490
46449
|
if (!change.inputValue) {
|
|
46491
46450
|
setItems(unpackedItems);
|
|
@@ -46518,7 +46477,7 @@
|
|
|
46518
46477
|
props.onSelect(changes.selectedItem);
|
|
46519
46478
|
}
|
|
46520
46479
|
}
|
|
46521
|
-
}, stateReducer: (state, { changes, type: type2 }) => {
|
|
46480
|
+
} }, syncKbdHighlightIdx(setKbdHighlightIdx)), { stateReducer: (state, { changes, type: type2 }) => {
|
|
46522
46481
|
var _a4, _b2, _c2;
|
|
46523
46482
|
if (type2 === stateChangeTypes.ControlledPropUpdatedSelectedItem) {
|
|
46524
46483
|
return Object.assign(Object.assign({}, changes), { inputValue: "" });
|
|
@@ -46543,7 +46502,7 @@
|
|
|
46543
46502
|
return Object.assign(Object.assign({}, changes), { highlightedIndex: changes.highlightedIndex + 1 === items.length ? 0 : changes.highlightedIndex + 1 });
|
|
46544
46503
|
}
|
|
46545
46504
|
return changes;
|
|
46546
|
-
} }, "selectedItem" in props && { selectedItem: props.selectedItem }));
|
|
46505
|
+
} }), "selectedItem" in props && { selectedItem: props.selectedItem }));
|
|
46547
46506
|
React.useEffect(() => {
|
|
46548
46507
|
if (isOpen && pendingHighlight !== null) {
|
|
46549
46508
|
setHighlightedIndex(pendingHighlight);
|
|
@@ -46563,25 +46522,9 @@
|
|
|
46563
46522
|
});
|
|
46564
46523
|
const role = useRole(context2, { role: "listbox" });
|
|
46565
46524
|
const { getReferenceProps, getFloatingProps } = useInteractions([role]);
|
|
46566
|
-
const
|
|
46567
|
-
const
|
|
46568
|
-
|
|
46569
|
-
const mergedRefs = React.useCallback((node2) => {
|
|
46570
|
-
setFloatingRef(node2);
|
|
46571
|
-
setMenuRef(node2);
|
|
46572
|
-
}, [setFloatingRef, setMenuRef]);
|
|
46573
|
-
return jsxRuntime.exports.jsxs(Wrapper$a, { className: props.className, isDisabled: props.disabled, isErrored: false, isOpen, style: props.style, children: [jsxRuntime.exports.jsxs(InputWrapper$4, { disabled: props.disabled, isOpen, ref: refs.setReference, children: [jsxRuntime.exports.jsx(Input$2, Object.assign({}, getInputProps({ value: inputValue }), getReferenceProps())), jsxRuntime.exports.jsx(ChevronButton$1, Object.assign({}, getToggleButtonProps(), { children: jsxRuntime.exports.jsx(Chevron$2, { disabled: props.disabled, isOpen }) }))] }), ReactDOM__default.default.createPortal(jsxRuntime.exports.jsxs(ListWrapper, Object.assign({}, menuProps, getFloatingProps(), { ref: mergedRefs, isOpen, style: Object.assign(Object.assign({}, floatingStyles), { zIndex: 9999 }), children: [items.length > 0 && items.map((item, index2) => {
|
|
46574
|
-
const itemProps = getItemProps({ index: index2, item });
|
|
46575
|
-
if (item.heading) {
|
|
46576
|
-
delete itemProps.onClick;
|
|
46577
|
-
}
|
|
46578
|
-
return React.createElement(
|
|
46579
|
-
ListItemSpan,
|
|
46580
|
-
Object.assign({}, itemProps, { heading: item.heading, hovered: index2 === highlightedIndex, key: `item-${index2}`, section: item.section, selected: item.value === (selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.value), title: item.label }),
|
|
46581
|
-
item.label || item.section,
|
|
46582
|
-
item.badge && jsxRuntime.exports.jsx(Badge, { color: item.badge.color || theme2.colors.primary, children: item.badge.label })
|
|
46583
|
-
);
|
|
46584
|
-
}), items.length === 0 && jsxRuntime.exports.jsx(NoItemsLabel$1, { children: "No Items" })] })), document.body)] });
|
|
46525
|
+
const dropdownStyle = React__default.default.useMemo(() => Object.assign(Object.assign({}, floatingStyles), { marginLeft: -1 }), [floatingStyles]);
|
|
46526
|
+
const renderListItem = React.useCallback((item, index2) => jsxRuntime.exports.jsx(SectionedListItem, { item, index: index2, getItemProps, isSelected: (selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.value) === item.value, isHighlighted: isOpen && kbdHighlightIdx !== void 0 && kbdHighlightIdx === index2 }, `item-${index2}-${isOpen && (selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.label) === item.label}`), [getItemProps, selectedItem, isOpen, kbdHighlightIdx]);
|
|
46527
|
+
return jsxRuntime.exports.jsxs(Wrapper$a, { className: props.className, isDisabled: props.disabled, isErrored: false, isOpen, style: props.style, children: [jsxRuntime.exports.jsxs(InputWrapper$4, { disabled: props.disabled, isOpen, ref: refs.setReference, children: [jsxRuntime.exports.jsx(Input$2, Object.assign({}, getInputProps({ value: inputValue }), getReferenceProps())), jsxRuntime.exports.jsx(ChevronButton$1, { disabled: props.disabled, isOpen, getToggleButtonProps })] }), ReactDOM__default.default.createPortal(jsxRuntime.exports.jsx(DropdownList$1, { items, getItemProps, getFloatingProps, style: dropdownStyle, isOpen, getMenuProps, ref: refs.setFloating, kbdHighlightIdx, children: renderListItem }), document.body)] });
|
|
46585
46528
|
}
|
|
46586
46529
|
var toNumber$2 = toNumber_1$1;
|
|
46587
46530
|
var INFINITY$3 = 1 / 0, MAX_INTEGER = 17976931348623157e292;
|
|
@@ -50793,31 +50736,6 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
50793
50736
|
var nextStyle = nextProps.style, nextRest = _objectWithoutPropertiesLoose$1(nextProps, _excluded2);
|
|
50794
50737
|
return !shallowDiffers(prevStyle, nextStyle) && !shallowDiffers(prevRest, nextRest);
|
|
50795
50738
|
}
|
|
50796
|
-
const GlobalStyle = styled.createGlobalStyle`
|
|
50797
|
-
body {
|
|
50798
|
-
/* stylelint-disable-next-line -- external classname */
|
|
50799
|
-
.DatetimeFilterSelect {
|
|
50800
|
-
background-color: ${(props) => props.theme.colors.grey1};
|
|
50801
|
-
|
|
50802
|
-
span {
|
|
50803
|
-
background-color: ${(props) => props.theme.colors.grey1};
|
|
50804
|
-
border-bottom: 1px solid ${(props) => props.theme.colors.grey1};
|
|
50805
|
-
|
|
50806
|
-
&[aria-selected="true"] {
|
|
50807
|
-
background-color: ${(props) => props.theme.colors.primary};
|
|
50808
|
-
}
|
|
50809
|
-
|
|
50810
|
-
:hover {
|
|
50811
|
-
background-color: ${(props) => props.theme.colors.grey3};
|
|
50812
|
-
}
|
|
50813
|
-
|
|
50814
|
-
:active {
|
|
50815
|
-
background-color: ${(props) => props.theme.colors.grey4};
|
|
50816
|
-
}
|
|
50817
|
-
}
|
|
50818
|
-
}
|
|
50819
|
-
}
|
|
50820
|
-
`;
|
|
50821
50739
|
const DatetimeFilterWrapper = styled__default.default(FilterWrapper)`
|
|
50822
50740
|
gap: 0;
|
|
50823
50741
|
`;
|
|
@@ -50943,7 +50861,7 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
50943
50861
|
}
|
|
50944
50862
|
return false;
|
|
50945
50863
|
}, [props.disabled, previousFilter, filteredValues, dateValues, selected]);
|
|
50946
|
-
return jsxRuntime.exports.jsxs(DatetimeFilterWrapper, { className: props.className, children: [jsxRuntime.exports.
|
|
50864
|
+
return jsxRuntime.exports.jsxs(DatetimeFilterWrapper, { className: props.className, children: [jsxRuntime.exports.jsxs(FilterHeader, { children: [jsxRuntime.exports.jsx(StyledSelect$1, { dropdownRef: (element2) => {
|
|
50947
50865
|
if (props.portalsRef) {
|
|
50948
50866
|
props.portalsRef.current[2] = element2;
|
|
50949
50867
|
}
|
|
@@ -295805,7 +295723,7 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
295805
295723
|
android: /* @__PURE__ */ /Android\b/.test(nav.userAgent),
|
|
295806
295724
|
webkit,
|
|
295807
295725
|
safari,
|
|
295808
|
-
webkit_version: webkit ? +(/* @__PURE__ */ /\bAppleWebKit\/(\d+)/.exec(
|
|
295726
|
+
webkit_version: webkit ? +(/* @__PURE__ */ /\bAppleWebKit\/(\d+)/.exec(nav.userAgent) || [0, 0])[1] : 0,
|
|
295809
295727
|
tabSize: doc.documentElement.style.tabSize != null ? "tab-size" : "-moz-tab-size"
|
|
295810
295728
|
};
|
|
295811
295729
|
const MaxJoinLen = 256;
|
|
@@ -297173,6 +297091,7 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
297173
297091
|
}
|
|
297174
297092
|
}
|
|
297175
297093
|
const scrollIntoView = /* @__PURE__ */ StateEffect.define({ map: (t2, ch) => t2.map(ch) });
|
|
297094
|
+
const setEditContextFormatting = /* @__PURE__ */ StateEffect.define();
|
|
297176
297095
|
function logException(state, exception, context2) {
|
|
297177
297096
|
let handler = state.facet(exceptionSink);
|
|
297178
297097
|
if (handler.length)
|
|
@@ -297412,10 +297331,11 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
297412
297331
|
super();
|
|
297413
297332
|
this.view = view;
|
|
297414
297333
|
this.decorations = [];
|
|
297415
|
-
this.dynamicDecorationMap = [];
|
|
297334
|
+
this.dynamicDecorationMap = [false];
|
|
297416
297335
|
this.domChanged = null;
|
|
297417
297336
|
this.hasComposition = null;
|
|
297418
297337
|
this.markedForComposition = /* @__PURE__ */ new Set();
|
|
297338
|
+
this.editContextFormatting = Decoration.none;
|
|
297419
297339
|
this.lastCompositionAfterCursor = false;
|
|
297420
297340
|
this.minWidth = 0;
|
|
297421
297341
|
this.minWidthFrom = 0;
|
|
@@ -297441,8 +297361,9 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
297441
297361
|
this.minWidthTo = update2.changes.mapPos(this.minWidthTo, 1);
|
|
297442
297362
|
}
|
|
297443
297363
|
}
|
|
297364
|
+
this.updateEditContextFormatting(update2);
|
|
297444
297365
|
let readCompositionAt = -1;
|
|
297445
|
-
if (this.view.inputState.composing >= 0) {
|
|
297366
|
+
if (this.view.inputState.composing >= 0 && !this.view.observer.editContext) {
|
|
297446
297367
|
if ((_a3 = this.domChanged) === null || _a3 === void 0 ? void 0 : _a3.newSel)
|
|
297447
297368
|
readCompositionAt = this.domChanged.newSel.head;
|
|
297448
297369
|
else if (!touchesComposition(update2.changes, this.hasComposition) && !update2.selectionSet)
|
|
@@ -297528,6 +297449,14 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
297528
297449
|
if (composition)
|
|
297529
297450
|
this.fixCompositionDOM(composition);
|
|
297530
297451
|
}
|
|
297452
|
+
updateEditContextFormatting(update2) {
|
|
297453
|
+
this.editContextFormatting = this.editContextFormatting.map(update2.changes);
|
|
297454
|
+
for (let tr2 of update2.transactions)
|
|
297455
|
+
for (let effect2 of tr2.effects)
|
|
297456
|
+
if (effect2.is(setEditContextFormatting)) {
|
|
297457
|
+
this.editContextFormatting = effect2.value;
|
|
297458
|
+
}
|
|
297459
|
+
}
|
|
297531
297460
|
compositionView(composition) {
|
|
297532
297461
|
let cur = new TextView(composition.text.nodeValue);
|
|
297533
297462
|
cur.flags |= 8;
|
|
@@ -297700,6 +297629,11 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
297700
297629
|
if (start2 <= pos && (start2 < pos || child.covers(-1)) && (end2 > pos || child.covers(1)) && (!best || child instanceof LineView && !(best instanceof LineView && side >= 0))) {
|
|
297701
297630
|
best = child;
|
|
297702
297631
|
bestPos = start2;
|
|
297632
|
+
} else if (best && start2 == pos && end2 == pos && child instanceof BlockWidgetView && Math.abs(side) < 2) {
|
|
297633
|
+
if (child.deco.startSide < 0)
|
|
297634
|
+
break;
|
|
297635
|
+
else if (i2)
|
|
297636
|
+
best = null;
|
|
297703
297637
|
}
|
|
297704
297638
|
off = start2;
|
|
297705
297639
|
}
|
|
@@ -297817,7 +297751,7 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
297817
297751
|
return Decoration.set(deco);
|
|
297818
297752
|
}
|
|
297819
297753
|
updateDeco() {
|
|
297820
|
-
let i2 =
|
|
297754
|
+
let i2 = 1;
|
|
297821
297755
|
let allDeco = this.view.state.facet(decorations).map((d2) => {
|
|
297822
297756
|
let dynamic = this.dynamicDecorationMap[i2++] = typeof d2 == "function";
|
|
297823
297757
|
return dynamic ? d2(this.view) : d2;
|
|
@@ -297833,6 +297767,7 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
297833
297767
|
allDeco.push(RangeSet.join(outerDeco));
|
|
297834
297768
|
}
|
|
297835
297769
|
this.decorations = [
|
|
297770
|
+
this.editContextFormatting,
|
|
297836
297771
|
...allDeco,
|
|
297837
297772
|
this.computeBlockGapDeco(),
|
|
297838
297773
|
this.view.viewState.lineGapDeco
|
|
@@ -298346,9 +298281,9 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
298346
298281
|
this.lastScrollTop = 0;
|
|
298347
298282
|
this.lastScrollLeft = 0;
|
|
298348
298283
|
this.pendingIOSKey = void 0;
|
|
298284
|
+
this.tabFocusMode = -1;
|
|
298349
298285
|
this.lastSelectionOrigin = null;
|
|
298350
298286
|
this.lastSelectionTime = 0;
|
|
298351
|
-
this.lastEscPress = 0;
|
|
298352
298287
|
this.lastContextMenu = 0;
|
|
298353
298288
|
this.scrollHandlers = [];
|
|
298354
298289
|
this.handlers = /* @__PURE__ */ Object.create(null);
|
|
@@ -298409,10 +298344,10 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
298409
298344
|
keydown(event2) {
|
|
298410
298345
|
this.lastKeyCode = event2.keyCode;
|
|
298411
298346
|
this.lastKeyTime = Date.now();
|
|
298412
|
-
if (event2.keyCode == 9 && Date.now()
|
|
298347
|
+
if (event2.keyCode == 9 && this.tabFocusMode > -1 && (!this.tabFocusMode || Date.now() <= this.tabFocusMode))
|
|
298413
298348
|
return true;
|
|
298414
|
-
if (event2.keyCode != 27 && modifierCodes.indexOf(event2.keyCode) < 0)
|
|
298415
|
-
this.
|
|
298349
|
+
if (this.tabFocusMode > 0 && event2.keyCode != 27 && modifierCodes.indexOf(event2.keyCode) < 0)
|
|
298350
|
+
this.tabFocusMode = -1;
|
|
298416
298351
|
if (browser.android && browser.chrome && !event2.synthetic && (event2.keyCode == 13 || event2.keyCode == 8)) {
|
|
298417
298352
|
this.view.observer.delayAndroidKey(event2.key, event2.keyCode);
|
|
298418
298353
|
return true;
|
|
@@ -298453,6 +298388,7 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
298453
298388
|
this.mouseSelection = mouseSelection;
|
|
298454
298389
|
}
|
|
298455
298390
|
update(update2) {
|
|
298391
|
+
this.view.observer.update(update2);
|
|
298456
298392
|
if (this.mouseSelection)
|
|
298457
298393
|
this.mouseSelection.update(update2);
|
|
298458
298394
|
if (this.draggedContent && update2.docChanged)
|
|
@@ -298623,7 +298559,9 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
298623
298559
|
this.mustSelect = false;
|
|
298624
298560
|
}
|
|
298625
298561
|
update(update2) {
|
|
298626
|
-
if (
|
|
298562
|
+
if (update2.transactions.some((tr2) => tr2.isUserEvent("input.type")))
|
|
298563
|
+
this.destroy();
|
|
298564
|
+
else if (this.style.update(update2))
|
|
298627
298565
|
setTimeout(() => this.select(this.lastEvent), 20);
|
|
298628
298566
|
}
|
|
298629
298567
|
}
|
|
@@ -298715,8 +298653,8 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
298715
298653
|
};
|
|
298716
298654
|
handlers.keydown = (view, event2) => {
|
|
298717
298655
|
view.inputState.setSelectionOrigin("select");
|
|
298718
|
-
if (event2.keyCode == 27)
|
|
298719
|
-
view.inputState.
|
|
298656
|
+
if (event2.keyCode == 27 && view.inputState.tabFocusMode != 0)
|
|
298657
|
+
view.inputState.tabFocusMode = Date.now() + 2e3;
|
|
298720
298658
|
return false;
|
|
298721
298659
|
};
|
|
298722
298660
|
observers.touchstart = (view, e3) => {
|
|
@@ -298742,7 +298680,12 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
298742
298680
|
let mustFocus = !view.hasFocus;
|
|
298743
298681
|
view.inputState.startMouseSelection(new MouseSelection(view, event2, style2, mustFocus));
|
|
298744
298682
|
if (mustFocus)
|
|
298745
|
-
view.observer.ignore(() =>
|
|
298683
|
+
view.observer.ignore(() => {
|
|
298684
|
+
focusPreventScroll(view.contentDOM);
|
|
298685
|
+
let active = view.root.activeElement;
|
|
298686
|
+
if (active && !active.contains(view.contentDOM))
|
|
298687
|
+
active.blur();
|
|
298688
|
+
});
|
|
298746
298689
|
let mouseSel = view.inputState.mouseSelection;
|
|
298747
298690
|
if (mouseSel) {
|
|
298748
298691
|
mouseSel.start(event2);
|
|
@@ -299012,6 +298955,8 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
299012
298955
|
updateForFocusChange(view);
|
|
299013
298956
|
};
|
|
299014
298957
|
observers.compositionstart = observers.compositionupdate = (view) => {
|
|
298958
|
+
if (view.observer.editContext)
|
|
298959
|
+
return;
|
|
299015
298960
|
if (view.inputState.compositionFirstChange == null)
|
|
299016
298961
|
view.inputState.compositionFirstChange = true;
|
|
299017
298962
|
if (view.inputState.composing < 0) {
|
|
@@ -299019,6 +298964,8 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
299019
298964
|
}
|
|
299020
298965
|
};
|
|
299021
298966
|
observers.compositionend = (view) => {
|
|
298967
|
+
if (view.observer.editContext)
|
|
298968
|
+
return;
|
|
299022
298969
|
view.inputState.composing = -1;
|
|
299023
298970
|
view.inputState.compositionEndedAt = Date.now();
|
|
299024
298971
|
view.inputState.compositionPendingKey = true;
|
|
@@ -299831,9 +299778,12 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
299831
299778
|
this.heightOracle = new HeightOracle(guessWrapping);
|
|
299832
299779
|
this.stateDeco = state.facet(decorations).filter((d2) => typeof d2 != "function");
|
|
299833
299780
|
this.heightMap = HeightMap.empty().applyChanges(this.stateDeco, Text$1.empty, this.heightOracle.setDoc(state.doc), [new ChangedRange(0, 0, 0, state.doc.length)]);
|
|
299834
|
-
|
|
299781
|
+
for (let i2 = 0; i2 < 2; i2++) {
|
|
299782
|
+
this.viewport = this.getViewport(0, null);
|
|
299783
|
+
if (!this.updateForViewport())
|
|
299784
|
+
break;
|
|
299785
|
+
}
|
|
299835
299786
|
this.updateViewportLines();
|
|
299836
|
-
this.updateForViewport();
|
|
299837
299787
|
this.lineGaps = this.ensureLineGaps([]);
|
|
299838
299788
|
this.lineGapDeco = Decoration.set(this.lineGaps.map((gap) => gap.draw(this, false)));
|
|
299839
299789
|
this.computeVisibleRanges();
|
|
@@ -299848,12 +299798,17 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
299848
299798
|
}
|
|
299849
299799
|
}
|
|
299850
299800
|
this.viewports = viewports.sort((a2, b2) => a2.from - b2.from);
|
|
299801
|
+
return this.updateScaler();
|
|
299802
|
+
}
|
|
299803
|
+
updateScaler() {
|
|
299804
|
+
let scaler = this.scaler;
|
|
299851
299805
|
this.scaler = this.heightMap.height <= 7e6 ? IdScaler : new BigScaler(this.heightOracle, this.heightMap, this.viewports);
|
|
299806
|
+
return scaler.eq(this.scaler) ? 0 : 2;
|
|
299852
299807
|
}
|
|
299853
299808
|
updateViewportLines() {
|
|
299854
299809
|
this.viewportLines = [];
|
|
299855
299810
|
this.heightMap.forEachLine(this.viewport.from, this.viewport.to, this.heightOracle.setDoc(this.state.doc), 0, 0, (block) => {
|
|
299856
|
-
this.viewportLines.push(
|
|
299811
|
+
this.viewportLines.push(scaleBlock(block, this.scaler));
|
|
299857
299812
|
});
|
|
299858
299813
|
}
|
|
299859
299814
|
update(update2, scrollTarget = null) {
|
|
@@ -299877,10 +299832,10 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
299877
299832
|
let viewport2 = heightChanges.length ? this.mapViewport(this.viewport, update2.changes) : this.viewport;
|
|
299878
299833
|
if (scrollTarget && (scrollTarget.range.head < viewport2.from || scrollTarget.range.head > viewport2.to) || !this.viewportIsAppropriate(viewport2))
|
|
299879
299834
|
viewport2 = this.getViewport(0, scrollTarget);
|
|
299880
|
-
let
|
|
299835
|
+
let viewportChange = viewport2.from != this.viewport.from || viewport2.to != this.viewport.to;
|
|
299881
299836
|
this.viewport = viewport2;
|
|
299882
|
-
this.updateForViewport();
|
|
299883
|
-
if (
|
|
299837
|
+
update2.flags |= this.updateForViewport();
|
|
299838
|
+
if (viewportChange || !update2.changes.empty || update2.flags & 2)
|
|
299884
299839
|
this.updateViewportLines();
|
|
299885
299840
|
if (this.lineGaps.length || this.viewport.to - this.viewport.from > 2e3 << 1)
|
|
299886
299841
|
this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps, update2.changes)));
|
|
@@ -299971,9 +299926,12 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
299971
299926
|
result |= 2;
|
|
299972
299927
|
}
|
|
299973
299928
|
let viewportChange = !this.viewportIsAppropriate(this.viewport, bias) || this.scrollTarget && (this.scrollTarget.range.head < this.viewport.from || this.scrollTarget.range.head > this.viewport.to);
|
|
299974
|
-
if (viewportChange)
|
|
299929
|
+
if (viewportChange) {
|
|
299930
|
+
if (result & 2)
|
|
299931
|
+
result |= this.updateScaler();
|
|
299975
299932
|
this.viewport = this.getViewport(bias, this.scrollTarget);
|
|
299976
|
-
|
|
299933
|
+
result |= this.updateForViewport();
|
|
299934
|
+
}
|
|
299977
299935
|
if (result & 2 || viewportChange)
|
|
299978
299936
|
this.updateViewportLines();
|
|
299979
299937
|
if (this.lineGaps.length || this.viewport.to - this.viewport.from > 2e3 << 1)
|
|
@@ -300063,12 +300021,12 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
300063
300021
|
}
|
|
300064
300022
|
gaps.push(gap);
|
|
300065
300023
|
};
|
|
300066
|
-
|
|
300067
|
-
if (line.length < doubleMargin)
|
|
300068
|
-
|
|
300024
|
+
let checkLine = (line) => {
|
|
300025
|
+
if (line.length < doubleMargin || line.type != BlockType.Text)
|
|
300026
|
+
return;
|
|
300069
300027
|
let structure = lineStructure(line.from, line.to, this.stateDeco);
|
|
300070
300028
|
if (structure.total < doubleMargin)
|
|
300071
|
-
|
|
300029
|
+
return;
|
|
300072
300030
|
let target = this.scrollTarget ? this.scrollTarget.range.head : null;
|
|
300073
300031
|
let viewFrom, viewTo;
|
|
300074
300032
|
if (wrapping) {
|
|
@@ -300105,6 +300063,12 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
300105
300063
|
addGap(line.from, viewFrom, line, structure);
|
|
300106
300064
|
if (viewTo < line.to)
|
|
300107
300065
|
addGap(viewTo, line.to, line, structure);
|
|
300066
|
+
};
|
|
300067
|
+
for (let line of this.viewportLines) {
|
|
300068
|
+
if (Array.isArray(line.type))
|
|
300069
|
+
line.type.forEach(checkLine);
|
|
300070
|
+
else
|
|
300071
|
+
checkLine(line);
|
|
300108
300072
|
}
|
|
300109
300073
|
return gaps;
|
|
300110
300074
|
}
|
|
@@ -300142,7 +300106,7 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
300142
300106
|
return pos >= this.viewport.from && pos <= this.viewport.to && this.viewportLines.find((b2) => b2.from <= pos && b2.to >= pos) || scaleBlock(this.heightMap.lineAt(pos, QueryType$1.ByPos, this.heightOracle, 0, 0), this.scaler);
|
|
300143
300107
|
}
|
|
300144
300108
|
lineBlockAtHeight(height) {
|
|
300145
|
-
return scaleBlock(this.heightMap.lineAt(this.scaler.fromDOM(height), QueryType$1.ByHeight, this.heightOracle, 0, 0), this.scaler);
|
|
300109
|
+
return height >= this.viewportLines[0].top && height <= this.viewportLines[this.viewportLines.length - 1].bottom && this.viewportLines.find((l2) => l2.top <= height && l2.bottom >= height) || scaleBlock(this.heightMap.lineAt(this.scaler.fromDOM(height), QueryType$1.ByHeight, this.heightOracle, 0, 0), this.scaler);
|
|
300146
300110
|
}
|
|
300147
300111
|
scrollAnchorAt(scrollTop) {
|
|
300148
300112
|
let block = this.lineBlockAtHeight(scrollTop + 8);
|
|
@@ -300220,7 +300184,10 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
300220
300184
|
fromDOM(n2) {
|
|
300221
300185
|
return n2;
|
|
300222
300186
|
},
|
|
300223
|
-
scale: 1
|
|
300187
|
+
scale: 1,
|
|
300188
|
+
eq(other) {
|
|
300189
|
+
return other == this;
|
|
300190
|
+
}
|
|
300224
300191
|
};
|
|
300225
300192
|
class BigScaler {
|
|
300226
300193
|
constructor(oracle, heightMap, viewports) {
|
|
@@ -300260,6 +300227,11 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
300260
300227
|
domBase = vp.domBottom;
|
|
300261
300228
|
}
|
|
300262
300229
|
}
|
|
300230
|
+
eq(other) {
|
|
300231
|
+
if (!(other instanceof BigScaler))
|
|
300232
|
+
return false;
|
|
300233
|
+
return this.scale == other.scale && this.viewports.length == other.viewports.length && this.viewports.every((vp, i2) => vp.from == other.viewports[i2].from && vp.to == other.viewports[i2].to);
|
|
300234
|
+
}
|
|
300263
300235
|
}
|
|
300264
300236
|
function scaleBlock(block, scaler) {
|
|
300265
300237
|
if (scaler.scale == 1)
|
|
@@ -300632,6 +300604,7 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
300632
300604
|
this.typeOver = typeOver;
|
|
300633
300605
|
this.bounds = null;
|
|
300634
300606
|
this.text = "";
|
|
300607
|
+
this.domChanged = start2 > -1;
|
|
300635
300608
|
let { impreciseHead: iHead, impreciseAnchor: iAnchor } = view.docView;
|
|
300636
300609
|
if (view.state.readOnly && start2 > -1) {
|
|
300637
300610
|
this.newSel = null;
|
|
@@ -300702,18 +300675,7 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
300702
300675
|
change = { from: sel.from, to: sel.to, insert: Text$1.of([" "]) };
|
|
300703
300676
|
}
|
|
300704
300677
|
if (change) {
|
|
300705
|
-
|
|
300706
|
-
return true;
|
|
300707
|
-
if (browser.android && (change.to == sel.to && (change.from == sel.from || change.from == sel.from - 1 && view.state.sliceDoc(change.from, sel.from) == " ") && change.insert.length == 1 && change.insert.lines == 2 && dispatchKey(view.contentDOM, "Enter", 13) || (change.from == sel.from - 1 && change.to == sel.to && change.insert.length == 0 || lastKey == 8 && change.insert.length < change.to - change.from && change.to > sel.head) && dispatchKey(view.contentDOM, "Backspace", 8) || change.from == sel.from && change.to == sel.to + 1 && change.insert.length == 0 && dispatchKey(view.contentDOM, "Delete", 46)))
|
|
300708
|
-
return true;
|
|
300709
|
-
let text2 = change.insert.toString();
|
|
300710
|
-
if (view.inputState.composing >= 0)
|
|
300711
|
-
view.inputState.composing++;
|
|
300712
|
-
let defaultTr;
|
|
300713
|
-
let defaultInsert = () => defaultTr || (defaultTr = applyDefaultInsert(view, change, newSel));
|
|
300714
|
-
if (!view.state.facet(inputHandler$1).some((h2) => h2(view, change.from, change.to, text2, defaultInsert)))
|
|
300715
|
-
view.dispatch(defaultInsert());
|
|
300716
|
-
return true;
|
|
300678
|
+
return applyDOMChangeInner(view, change, newSel, lastKey);
|
|
300717
300679
|
} else if (newSel && !newSel.main.eq(sel)) {
|
|
300718
300680
|
let scrollIntoView2 = false, userEvent = "select";
|
|
300719
300681
|
if (view.inputState.lastSelectionTime > Date.now() - 50) {
|
|
@@ -300727,6 +300689,21 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
300727
300689
|
return false;
|
|
300728
300690
|
}
|
|
300729
300691
|
}
|
|
300692
|
+
function applyDOMChangeInner(view, change, newSel, lastKey = -1) {
|
|
300693
|
+
if (browser.ios && view.inputState.flushIOSKey(change))
|
|
300694
|
+
return true;
|
|
300695
|
+
let sel = view.state.selection.main;
|
|
300696
|
+
if (browser.android && (change.to == sel.to && (change.from == sel.from || change.from == sel.from - 1 && view.state.sliceDoc(change.from, sel.from) == " ") && change.insert.length == 1 && change.insert.lines == 2 && dispatchKey(view.contentDOM, "Enter", 13) || (change.from == sel.from - 1 && change.to == sel.to && change.insert.length == 0 || lastKey == 8 && change.insert.length < change.to - change.from && change.to > sel.head) && dispatchKey(view.contentDOM, "Backspace", 8) || change.from == sel.from && change.to == sel.to + 1 && change.insert.length == 0 && dispatchKey(view.contentDOM, "Delete", 46)))
|
|
300697
|
+
return true;
|
|
300698
|
+
let text2 = change.insert.toString();
|
|
300699
|
+
if (view.inputState.composing >= 0)
|
|
300700
|
+
view.inputState.composing++;
|
|
300701
|
+
let defaultTr;
|
|
300702
|
+
let defaultInsert = () => defaultTr || (defaultTr = applyDefaultInsert(view, change, newSel));
|
|
300703
|
+
if (!view.state.facet(inputHandler$1).some((h2) => h2(view, change.from, change.to, text2, defaultInsert)))
|
|
300704
|
+
view.dispatch(defaultInsert());
|
|
300705
|
+
return true;
|
|
300706
|
+
}
|
|
300730
300707
|
function applyDefaultInsert(view, change, newSel) {
|
|
300731
300708
|
let tr2, startState = view.state, sel = startState.selection.main;
|
|
300732
300709
|
if (change.from >= sel.from && change.to <= sel.to && change.to - change.from >= (sel.to - sel.from) / 3 && (!newSel || newSel.main.empty && newSel.main.from == change.from + change.insert.length) && view.inputState.composing < 0) {
|
|
@@ -300835,6 +300812,7 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
300835
300812
|
constructor(view) {
|
|
300836
300813
|
this.view = view;
|
|
300837
300814
|
this.active = false;
|
|
300815
|
+
this.editContext = null;
|
|
300838
300816
|
this.selectionRange = new DOMSelectionState();
|
|
300839
300817
|
this.selectionChanged = false;
|
|
300840
300818
|
this.delayedFlush = -1;
|
|
@@ -300860,6 +300838,10 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
300860
300838
|
else
|
|
300861
300839
|
this.flush();
|
|
300862
300840
|
});
|
|
300841
|
+
if (window.EditContext && view.constructor.EDIT_CONTEXT !== false) {
|
|
300842
|
+
this.editContext = new EditContextManager(view);
|
|
300843
|
+
view.contentDOM.editContext = this.editContext.editContext;
|
|
300844
|
+
}
|
|
300863
300845
|
if (useCharData)
|
|
300864
300846
|
this.onCharData = (event2) => {
|
|
300865
300847
|
this.queue.push({
|
|
@@ -300912,6 +300894,8 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
300912
300894
|
onScroll(e3) {
|
|
300913
300895
|
if (this.intersecting)
|
|
300914
300896
|
this.flush(false);
|
|
300897
|
+
if (this.editContext)
|
|
300898
|
+
this.view.requestMeasure(this.editContext.measureReq);
|
|
300915
300899
|
this.onScrollChanged(e3);
|
|
300916
300900
|
}
|
|
300917
300901
|
onResize() {
|
|
@@ -301134,7 +301118,7 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
301134
301118
|
}
|
|
301135
301119
|
let startState = this.view.state;
|
|
301136
301120
|
let handled = applyDOMChange(this.view, domChange);
|
|
301137
|
-
if (this.view.state == startState)
|
|
301121
|
+
if (this.view.state == startState && (domChange.domChanged || domChange.newSel && !domChange.newSel.main.eq(this.view.state.selection.main)))
|
|
301138
301122
|
this.view.update([]);
|
|
301139
301123
|
return handled;
|
|
301140
301124
|
}
|
|
@@ -301184,6 +301168,10 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
301184
301168
|
win.removeEventListener("beforeprint", this.onPrint);
|
|
301185
301169
|
win.document.removeEventListener("selectionchange", this.onSelectionChange);
|
|
301186
301170
|
}
|
|
301171
|
+
update(update2) {
|
|
301172
|
+
if (this.editContext)
|
|
301173
|
+
this.editContext.update(update2);
|
|
301174
|
+
}
|
|
301187
301175
|
destroy() {
|
|
301188
301176
|
var _a3, _b, _c;
|
|
301189
301177
|
this.stop();
|
|
@@ -301234,6 +301222,147 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
301234
301222
|
view.contentDOM.removeEventListener("beforeinput", read2, true);
|
|
301235
301223
|
return found ? buildSelectionRangeFromRange(view, found) : null;
|
|
301236
301224
|
}
|
|
301225
|
+
class EditContextManager {
|
|
301226
|
+
constructor(view) {
|
|
301227
|
+
this.from = 0;
|
|
301228
|
+
this.to = 0;
|
|
301229
|
+
this.pendingContextChange = null;
|
|
301230
|
+
this.resetRange(view.state);
|
|
301231
|
+
let context2 = this.editContext = new window.EditContext({
|
|
301232
|
+
text: view.state.doc.sliceString(this.from, this.to),
|
|
301233
|
+
selectionStart: this.toContextPos(Math.max(this.from, Math.min(this.to, view.state.selection.main.anchor))),
|
|
301234
|
+
selectionEnd: this.toContextPos(view.state.selection.main.head)
|
|
301235
|
+
});
|
|
301236
|
+
context2.addEventListener("textupdate", (e3) => {
|
|
301237
|
+
let { anchor } = view.state.selection.main;
|
|
301238
|
+
let change = {
|
|
301239
|
+
from: this.toEditorPos(e3.updateRangeStart),
|
|
301240
|
+
to: this.toEditorPos(e3.updateRangeEnd),
|
|
301241
|
+
insert: Text$1.of(e3.text.split("\n"))
|
|
301242
|
+
};
|
|
301243
|
+
if (change.from == this.from && anchor < this.from)
|
|
301244
|
+
change.from = anchor;
|
|
301245
|
+
else if (change.to == this.to && anchor > this.to)
|
|
301246
|
+
change.to = anchor;
|
|
301247
|
+
if (change.from == change.to && !change.insert.length)
|
|
301248
|
+
return;
|
|
301249
|
+
this.pendingContextChange = change;
|
|
301250
|
+
applyDOMChangeInner(view, change, EditorSelection.single(this.toEditorPos(e3.selectionStart), this.toEditorPos(e3.selectionEnd)));
|
|
301251
|
+
if (this.pendingContextChange)
|
|
301252
|
+
this.revertPending(view.state);
|
|
301253
|
+
});
|
|
301254
|
+
context2.addEventListener("characterboundsupdate", (e3) => {
|
|
301255
|
+
let rects = [], prev = null;
|
|
301256
|
+
for (let i2 = this.toEditorPos(e3.rangeStart), end2 = this.toEditorPos(e3.rangeEnd); i2 < end2; i2++) {
|
|
301257
|
+
let rect = view.coordsForChar(i2);
|
|
301258
|
+
prev = rect && new DOMRect(rect.left, rect.right, rect.right - rect.left, rect.bottom - rect.top) || prev || new DOMRect();
|
|
301259
|
+
rects.push(prev);
|
|
301260
|
+
}
|
|
301261
|
+
context2.updateCharacterBounds(e3.rangeStart, rects);
|
|
301262
|
+
});
|
|
301263
|
+
context2.addEventListener("textformatupdate", (e3) => {
|
|
301264
|
+
let deco = [];
|
|
301265
|
+
for (let format2 of e3.getTextFormats()) {
|
|
301266
|
+
let lineStyle = format2.underlineStyle, thickness = format2.underlineThickness;
|
|
301267
|
+
if (lineStyle != "None" && thickness != "None") {
|
|
301268
|
+
let style2 = `text-decoration: underline ${lineStyle == "Dashed" ? "dashed " : lineStyle == "Squiggle" ? "wavy " : ""}${thickness == "Thin" ? 1 : 2}px`;
|
|
301269
|
+
deco.push(Decoration.mark({ attributes: { style: style2 } }).range(this.toEditorPos(format2.rangeStart), this.toEditorPos(format2.rangeEnd)));
|
|
301270
|
+
}
|
|
301271
|
+
}
|
|
301272
|
+
view.dispatch({ effects: setEditContextFormatting.of(Decoration.set(deco)) });
|
|
301273
|
+
});
|
|
301274
|
+
context2.addEventListener("compositionstart", () => {
|
|
301275
|
+
if (view.inputState.composing < 0) {
|
|
301276
|
+
view.inputState.composing = 0;
|
|
301277
|
+
view.inputState.compositionFirstChange = true;
|
|
301278
|
+
}
|
|
301279
|
+
});
|
|
301280
|
+
context2.addEventListener("compositionend", () => {
|
|
301281
|
+
view.inputState.composing = -1;
|
|
301282
|
+
view.inputState.compositionFirstChange = null;
|
|
301283
|
+
});
|
|
301284
|
+
this.measureReq = { read: (view2) => {
|
|
301285
|
+
this.editContext.updateControlBounds(view2.contentDOM.getBoundingClientRect());
|
|
301286
|
+
let sel = getSelection(view2.root);
|
|
301287
|
+
if (sel && sel.rangeCount)
|
|
301288
|
+
this.editContext.updateSelectionBounds(sel.getRangeAt(0).getBoundingClientRect());
|
|
301289
|
+
} };
|
|
301290
|
+
}
|
|
301291
|
+
applyEdits(update2) {
|
|
301292
|
+
let off = 0, abort = false, pending = this.pendingContextChange;
|
|
301293
|
+
update2.changes.iterChanges((fromA, toA, _fromB, _toB, insert2) => {
|
|
301294
|
+
if (abort)
|
|
301295
|
+
return;
|
|
301296
|
+
let dLen = insert2.length - (toA - fromA);
|
|
301297
|
+
if (pending && toA >= pending.to) {
|
|
301298
|
+
if (pending.from == fromA && pending.to == toA && pending.insert.eq(insert2)) {
|
|
301299
|
+
pending = this.pendingContextChange = null;
|
|
301300
|
+
off += dLen;
|
|
301301
|
+
return;
|
|
301302
|
+
} else {
|
|
301303
|
+
pending = null;
|
|
301304
|
+
this.revertPending(update2.state);
|
|
301305
|
+
}
|
|
301306
|
+
}
|
|
301307
|
+
fromA += off;
|
|
301308
|
+
toA += off;
|
|
301309
|
+
if (toA <= this.from) {
|
|
301310
|
+
this.from += dLen;
|
|
301311
|
+
this.to += dLen;
|
|
301312
|
+
} else if (fromA < this.to) {
|
|
301313
|
+
if (fromA < this.from || toA > this.to || this.to - this.from + insert2.length > 3e4) {
|
|
301314
|
+
abort = true;
|
|
301315
|
+
return;
|
|
301316
|
+
}
|
|
301317
|
+
this.editContext.updateText(this.toContextPos(fromA), this.toContextPos(toA), insert2.toString());
|
|
301318
|
+
this.to += dLen;
|
|
301319
|
+
}
|
|
301320
|
+
off += dLen;
|
|
301321
|
+
});
|
|
301322
|
+
if (pending && !abort)
|
|
301323
|
+
this.revertPending(update2.state);
|
|
301324
|
+
return !abort;
|
|
301325
|
+
}
|
|
301326
|
+
update(update2) {
|
|
301327
|
+
if (!this.applyEdits(update2) || !this.rangeIsValid(update2.state)) {
|
|
301328
|
+
this.pendingContextChange = null;
|
|
301329
|
+
this.resetRange(update2.state);
|
|
301330
|
+
this.editContext.updateText(0, this.editContext.text.length, update2.state.doc.sliceString(this.from, this.to));
|
|
301331
|
+
this.setSelection(update2.state);
|
|
301332
|
+
} else if (update2.docChanged || update2.selectionSet) {
|
|
301333
|
+
this.setSelection(update2.state);
|
|
301334
|
+
}
|
|
301335
|
+
if (update2.geometryChanged || update2.docChanged || update2.selectionSet)
|
|
301336
|
+
update2.view.requestMeasure(this.measureReq);
|
|
301337
|
+
}
|
|
301338
|
+
resetRange(state) {
|
|
301339
|
+
let { head } = state.selection.main;
|
|
301340
|
+
this.from = Math.max(0, head - 1e4);
|
|
301341
|
+
this.to = Math.min(state.doc.length, head + 1e4);
|
|
301342
|
+
}
|
|
301343
|
+
revertPending(state) {
|
|
301344
|
+
let pending = this.pendingContextChange;
|
|
301345
|
+
this.pendingContextChange = null;
|
|
301346
|
+
this.editContext.updateText(this.toContextPos(pending.from), this.toContextPos(pending.to + pending.insert.length), state.doc.sliceString(pending.from, pending.to));
|
|
301347
|
+
}
|
|
301348
|
+
setSelection(state) {
|
|
301349
|
+
let { main: main2 } = state.selection;
|
|
301350
|
+
let start2 = this.toContextPos(Math.max(this.from, Math.min(this.to, main2.anchor)));
|
|
301351
|
+
let end2 = this.toContextPos(main2.head);
|
|
301352
|
+
if (this.editContext.selectionStart != start2 || this.editContext.selectionEnd != end2)
|
|
301353
|
+
this.editContext.updateSelection(start2, end2);
|
|
301354
|
+
}
|
|
301355
|
+
rangeIsValid(state) {
|
|
301356
|
+
let { head } = state.selection.main;
|
|
301357
|
+
return !(this.from > 0 && head - this.from < 500 || this.to < state.doc.length && this.to - head < 500 || this.to - this.from > 1e4 * 3);
|
|
301358
|
+
}
|
|
301359
|
+
toEditorPos(contextPos) {
|
|
301360
|
+
return contextPos + this.from;
|
|
301361
|
+
}
|
|
301362
|
+
toContextPos(editorPos) {
|
|
301363
|
+
return editorPos - this.from;
|
|
301364
|
+
}
|
|
301365
|
+
}
|
|
301237
301366
|
class EditorView {
|
|
301238
301367
|
get state() {
|
|
301239
301368
|
return this.viewState.state;
|
|
@@ -301766,6 +301895,8 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
301766
301895
|
}
|
|
301767
301896
|
}
|
|
301768
301897
|
destroy() {
|
|
301898
|
+
if (this.root.activeElement == this.contentDOM)
|
|
301899
|
+
this.contentDOM.blur();
|
|
301769
301900
|
for (let plugin of this.plugins)
|
|
301770
301901
|
plugin.destroy(this);
|
|
301771
301902
|
this.plugins = [];
|
|
@@ -301785,6 +301916,14 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
301785
301916
|
let ref2 = this.viewState.scrollAnchorAt(scrollTop);
|
|
301786
301917
|
return scrollIntoView.of(new ScrollTarget(EditorSelection.cursor(ref2.from), "start", "start", ref2.top - scrollTop, scrollLeft, true));
|
|
301787
301918
|
}
|
|
301919
|
+
setTabFocusMode(to2) {
|
|
301920
|
+
if (to2 == null)
|
|
301921
|
+
this.inputState.tabFocusMode = this.inputState.tabFocusMode < 0 ? 0 : -1;
|
|
301922
|
+
else if (typeof to2 == "boolean")
|
|
301923
|
+
this.inputState.tabFocusMode = to2 ? 0 : -1;
|
|
301924
|
+
else if (this.inputState.tabFocusMode != 0)
|
|
301925
|
+
this.inputState.tabFocusMode = Date.now() + to2;
|
|
301926
|
+
}
|
|
301788
301927
|
static domEventHandlers(handlers2) {
|
|
301789
301928
|
return ViewPlugin.define(() => ({}), { eventHandlers: handlers2 });
|
|
301790
301929
|
}
|
|
@@ -301978,8 +302117,9 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
301978
302117
|
let scopeObj = bound2[scope2] || (bound2[scope2] = /* @__PURE__ */ Object.create(null));
|
|
301979
302118
|
if (!scopeObj._any)
|
|
301980
302119
|
scopeObj._any = { preventDefault: false, stopPropagation: false, run: [] };
|
|
302120
|
+
let { any } = b2;
|
|
301981
302121
|
for (let key in scopeObj)
|
|
301982
|
-
scopeObj[key].run.push(
|
|
302122
|
+
scopeObj[key].run.push((view) => any(view, currentKeyEvent));
|
|
301983
302123
|
}
|
|
301984
302124
|
let name2 = b2[platform2] || b2.key;
|
|
301985
302125
|
if (!name2)
|
|
@@ -301992,7 +302132,9 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
301992
302132
|
}
|
|
301993
302133
|
return bound2;
|
|
301994
302134
|
}
|
|
302135
|
+
let currentKeyEvent = null;
|
|
301995
302136
|
function runHandlers(map2, event2, view, scope2) {
|
|
302137
|
+
currentKeyEvent = event2;
|
|
301996
302138
|
let name2 = keyName(event2);
|
|
301997
302139
|
let charCode = codePointAt(name2, 0), isChar = codePointSize(charCode) == name2.length && name2 != " ";
|
|
301998
302140
|
let prefix = "", handled = false, prevented = false, stopPropagation = false;
|
|
@@ -302009,7 +302151,7 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
302009
302151
|
for (let cmd2 of binding.run)
|
|
302010
302152
|
if (!ran.has(cmd2)) {
|
|
302011
302153
|
ran.add(cmd2);
|
|
302012
|
-
if (cmd2(view
|
|
302154
|
+
if (cmd2(view)) {
|
|
302013
302155
|
if (binding.stopPropagation)
|
|
302014
302156
|
stopPropagation = true;
|
|
302015
302157
|
return true;
|
|
@@ -302043,19 +302185,25 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
302043
302185
|
handled = true;
|
|
302044
302186
|
if (handled && stopPropagation)
|
|
302045
302187
|
event2.stopPropagation();
|
|
302188
|
+
currentKeyEvent = null;
|
|
302046
302189
|
return handled;
|
|
302047
302190
|
}
|
|
302048
302191
|
const CanHidePrimary = !browser.ios;
|
|
302049
302192
|
const themeSpec = {
|
|
302050
302193
|
".cm-line": {
|
|
302051
|
-
"& ::selection": { backgroundColor: "transparent !important" }
|
|
302052
|
-
|
|
302194
|
+
"& ::selection, &::selection": { backgroundColor: "transparent !important" }
|
|
302195
|
+
},
|
|
302196
|
+
".cm-content": {
|
|
302197
|
+
"& :focus": {
|
|
302198
|
+
caretColor: "initial !important",
|
|
302199
|
+
"&::selection, & ::selection": {
|
|
302200
|
+
backgroundColor: "Highlight !important"
|
|
302201
|
+
}
|
|
302202
|
+
}
|
|
302053
302203
|
}
|
|
302054
302204
|
};
|
|
302055
|
-
if (CanHidePrimary)
|
|
302056
|
-
themeSpec[".cm-line"].caretColor = "transparent !important";
|
|
302057
|
-
themeSpec[".cm-content"] = { caretColor: "transparent !important" };
|
|
302058
|
-
}
|
|
302205
|
+
if (CanHidePrimary)
|
|
302206
|
+
themeSpec[".cm-line"].caretColor = themeSpec[".cm-content"].caretColor = "transparent !important";
|
|
302059
302207
|
const panelConfig = /* @__PURE__ */ Facet.define({
|
|
302060
302208
|
combine(configs) {
|
|
302061
302209
|
let topContainer, bottomContainer;
|
|
@@ -305445,8 +305593,9 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
305445
305593
|
let fields = [];
|
|
305446
305594
|
let lines = [], positions = [], m2;
|
|
305447
305595
|
for (let line of template.split(/\r\n?|\n/)) {
|
|
305448
|
-
while (m2 = /[#$]\{(?:(\d+)(?::([^}]*))?|([^}]*))\}/.exec(line)) {
|
|
305449
|
-
let seq = m2[1] ? +m2[1] : null,
|
|
305596
|
+
while (m2 = /[#$]\{(?:(\d+)(?::([^}]*))?|((?:\\[{}]|[^}])*))\}/.exec(line)) {
|
|
305597
|
+
let seq = m2[1] ? +m2[1] : null, rawName = m2[2] || m2[3] || "", found = -1;
|
|
305598
|
+
let name2 = rawName.replace(/\\[{}]/g, (m3) => m3[1]);
|
|
305450
305599
|
for (let i2 = 0; i2 < fields.length; i2++) {
|
|
305451
305600
|
if (seq != null ? fields[i2].seq == seq : name2 ? fields[i2].name == name2 : false)
|
|
305452
305601
|
found = i2;
|
|
@@ -305462,16 +305611,16 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
305462
305611
|
pos.field++;
|
|
305463
305612
|
}
|
|
305464
305613
|
positions.push(new FieldPos(found, lines.length, m2.index, m2.index + name2.length));
|
|
305465
|
-
line = line.slice(0, m2.index) +
|
|
305614
|
+
line = line.slice(0, m2.index) + rawName + line.slice(m2.index + m2[0].length);
|
|
305466
305615
|
}
|
|
305467
|
-
|
|
305468
|
-
line = line.slice(0, esc.index) + esc[1] + line.slice(esc.index + esc[0].length);
|
|
305616
|
+
line = line.replace(/\\([{}])/g, (_2, brace, index2) => {
|
|
305469
305617
|
for (let pos of positions)
|
|
305470
|
-
if (pos.line == lines.length && pos.from >
|
|
305618
|
+
if (pos.line == lines.length && pos.from > index2) {
|
|
305471
305619
|
pos.from--;
|
|
305472
305620
|
pos.to--;
|
|
305473
305621
|
}
|
|
305474
|
-
|
|
305622
|
+
return brace;
|
|
305623
|
+
});
|
|
305475
305624
|
lines.push(line);
|
|
305476
305625
|
}
|
|
305477
305626
|
return new Snippet(lines, positions);
|
|
@@ -306759,6 +306908,10 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
306759
306908
|
}), { userEvent: "delete.dedent" }));
|
|
306760
306909
|
return true;
|
|
306761
306910
|
};
|
|
306911
|
+
const toggleTabFocusMode = (view) => {
|
|
306912
|
+
view.setTabFocusMode();
|
|
306913
|
+
return true;
|
|
306914
|
+
};
|
|
306762
306915
|
const emacsStyleKeymap = [
|
|
306763
306916
|
{ key: "Ctrl-b", run: cursorCharLeft, shift: selectCharLeft, preventDefault: true },
|
|
306764
306917
|
{ key: "Ctrl-f", run: cursorCharRight, shift: selectCharRight },
|
|
@@ -306819,7 +306972,8 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
306819
306972
|
{ key: "Shift-Mod-k", run: deleteLine },
|
|
306820
306973
|
{ key: "Shift-Mod-\\", run: cursorMatchingBracket },
|
|
306821
306974
|
{ key: "Mod-/", run: toggleComment },
|
|
306822
|
-
{ key: "Alt-A", run: toggleBlockComment }
|
|
306975
|
+
{ key: "Alt-A", run: toggleBlockComment },
|
|
306976
|
+
{ key: "Ctrl-m", mac: "Shift-Alt-m", run: toggleTabFocusMode }
|
|
306823
306977
|
].concat(standardKeymap);
|
|
306824
306978
|
const indentWithTab = { key: "Tab", run: indentMore, shift: indentLess };
|
|
306825
306979
|
class Stack$1 {
|
|
@@ -306854,6 +307008,8 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
306854
307008
|
var _a3;
|
|
306855
307009
|
let depth = action >> 19, type2 = action & 65535;
|
|
306856
307010
|
let { parser: parser2 } = this.p;
|
|
307011
|
+
if (this.reducePos < this.pos - 25)
|
|
307012
|
+
this.setLookAhead(this.pos);
|
|
306857
307013
|
let dPrec = parser2.dynamicPrecedence(type2);
|
|
306858
307014
|
if (dPrec)
|
|
306859
307015
|
this.score += dPrec;
|
|
@@ -308279,7 +308435,7 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
308279
308435
|
function json() {
|
|
308280
308436
|
return new LanguageSupport(jsonLanguage);
|
|
308281
308437
|
}
|
|
308282
|
-
const printKeyword = 1, indent = 194, dedent = 195, newline$1 = 196, blankLineStart = 197, newlineBracketed = 198, eof = 199, stringContent = 200, Escape = 2, replacementStart = 3, stringEnd = 201, ParenL = 24, ParenthesizedExpression = 25, TupleExpression = 49, ComprehensionExpression = 50, BracketL = 55, ArrayExpression = 56, ArrayComprehensionExpression = 57, BraceL = 59, DictionaryExpression = 60, DictionaryComprehensionExpression = 61, SetExpression = 62, SetComprehensionExpression = 63, ArgList = 65, subscript = 238, String$1 = 71, stringStart = 241, stringStartD = 242, stringStartL = 243, stringStartLD = 244, stringStartR = 245, stringStartRD = 246, stringStartRL = 247, stringStartRLD = 248, FormatString = 72, stringStartF = 249, stringStartFD = 250, stringStartFL = 251, stringStartFLD = 252, stringStartFR = 253, stringStartFRD = 254, stringStartFRL = 255, stringStartFRLD = 256, FormatReplacement = 73, nestedFormatReplacement = 77, importList =
|
|
308438
|
+
const printKeyword = 1, indent = 194, dedent = 195, newline$1 = 196, blankLineStart = 197, newlineBracketed = 198, eof = 199, stringContent = 200, Escape = 2, replacementStart = 3, stringEnd = 201, ParenL = 24, ParenthesizedExpression = 25, TupleExpression = 49, ComprehensionExpression = 50, BracketL = 55, ArrayExpression = 56, ArrayComprehensionExpression = 57, BraceL = 59, DictionaryExpression = 60, DictionaryComprehensionExpression = 61, SetExpression = 62, SetComprehensionExpression = 63, ArgList = 65, subscript = 238, String$1 = 71, stringStart = 241, stringStartD = 242, stringStartL = 243, stringStartLD = 244, stringStartR = 245, stringStartRD = 246, stringStartRL = 247, stringStartRLD = 248, FormatString = 72, stringStartF = 249, stringStartFD = 250, stringStartFL = 251, stringStartFLD = 252, stringStartFR = 253, stringStartFRD = 254, stringStartFRL = 255, stringStartFRLD = 256, FormatReplacement = 73, nestedFormatReplacement = 77, importList = 263, TypeParamList = 112, ParamList = 130, SequencePattern = 151, MappingPattern = 152, PatternArgList = 155;
|
|
308283
308439
|
const newline = 10, carriageReturn = 13, space = 32, tab = 9, hash = 35, parenOpen = 40, dot = 46, braceOpen = 123, braceClose = 125, singleQuote = 39, doubleQuote = 34, backslash = 92, letter_o = 111, letter_x = 120, letter_N = 78, letter_u = 117, letter_U = 85;
|
|
308284
308440
|
const bracketed = /* @__PURE__ */ new Set([
|
|
308285
308441
|
ParenthesizedExpression,
|
|
@@ -308536,9 +308692,9 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
308536
308692
|
const spec_identifier = { __proto__: null, await: 44, or: 54, and: 56, in: 60, not: 62, is: 64, if: 70, else: 72, lambda: 76, yield: 94, from: 96, async: 102, for: 104, None: 162, True: 164, False: 164, del: 178, pass: 182, break: 186, continue: 190, return: 194, raise: 202, import: 206, as: 208, global: 212, nonlocal: 214, assert: 218, type: 223, elif: 236, while: 240, try: 246, except: 248, finally: 250, with: 254, def: 258, class: 268, match: 279, case: 285 };
|
|
308537
308693
|
const parser$1 = LRParser.deserialize({
|
|
308538
308694
|
version: 14,
|
|
308539
|
-
states: "##
|
|
308540
|
-
stateData: "$=l~O%cOS%^OSSOS%]PQ~OPdOVaOfoOhYOopOs!POvqO!PrO!Q{O!T!SO!U!RO!XZO!][O!h`O!r`O!s`O!t`O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#l!QO#o!TO#s!UO#u!VO#z!WO#}hO$P!XO%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~O%]!YO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%j![O%k!]O%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aO~Ok%xXl%xXm%xXn%xXo%xXp%xXs%xXz%xX{%xX!x%xX#g%xX%[%xX%_%xX%z%xXg%xX!T%xX!U%xX%{%xX!W%xX![%xX!Q%xX#[%xXt%xX!m%xX~P%SOfoOhYO!XZO!][O!h`O!r`O!s`O!t`O%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~Oz%wX{%wX#g%wX%[%wX%_%wX%z%wX~Ok!pOl!qOm!oOn!oOo!rOp!sOs!tO!x%wX~P)pOV!zOg!|Oo0dOv0rO!PrO~P'vOV#OOo0dOv0rO!W#PO~P'vOV#SOa#TOo0dOv0rO![#UO~P'vOQ#XO%`#XO%a#ZO~OQ#^OR#[O%`#^O%a#`O~OV%iX_%iXa%iXh%iXk%iXl%iXm%iXn%iXo%iXp%iXs%iXz%iX!X%iX!f%iX%j%iX%k%iX%l%iX%m%iX%n%iX%o%iX%p%iX%q%iX%r%iX%s%iXg%iX!T%iX!U%iX~O&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O{%iX!x%iX#g%iX%[%iX%_%iX%z%iX%{%iX!W%iX![%iX!Q%iX#[%iXt%iX!m%iX~P,eOz#dO{%hX!x%hX#g%hX%[%hX%_%hX%z%hX~Oo0dOv0rO~P'vO#g#gO%[#iO%_#iO~O%uWO~O!T#nO#u!VO#z!WO#}hO~OopO~P'vOV#sOa#tO%uWO{wP~OV#xOo0dOv0rO!Q#yO~P'vO{#{O!x$QO%z#|O#g!yX%[!yX%_!yX~OV#xOo0dOv0rO#g#SX%[#SX%_#SX~P'vOo0dOv0rO#g#WX%[#WX%_#WX~P'vO!f$WO!r$WO%uWO~OV$cO~P'vO!U$eO#s$fO#u$gO~O{$hO~OV$oO~P'vOS$qO%[$pO%c$rO~OV${Oa${Og$}Oo0dOv0rO~P'vOo0dOv0rO{%QO~P'vO&Y%SO~Oa!bOh!iO!X!kO!f!mOVba_bakbalbambanbaobapbasbazba{ba!xba#gba%[ba%_ba%jba%kba%lba%mba%nba%oba%pba%qba%rba%sba%zbagba!Tba!Uba%{ba!Wba![ba!Qba#[batba!mba~On%XO~Oo%XO~P'vOo0dO~P'vOk0fOl0gOm0eOn0eOo0nOp0oOs0sOg%wX!T%wX!U%wX%{%wX!W%wX![%wX!Q%wX#[%wX!m%wX~P)pO%{%ZOg%vXz%vX!T%vX!U%vX!W%vX{%vX~Og%]Oz%^O!T%bO!U%aO~Og%]O~Oz%eO!T%bO!U%aO!W&SX~O!W%iO~Oz%jO{%lO!T%bO!U%aO![%}X~O![%pO~O![%qO~OQ#XO%`#XO%a%sO~OV%uOo0dOv0rO!PrO~P'vOQ#^OR#[O%`#^O%a%xO~OV!qa_!qaa!qah!qak!qal!qam!qan!qao!qap!qas!qaz!qa{!qa!X!qa!f!qa!x!qa#g!qa%[!qa%_!qa%j!qa%k!qa%l!qa%m!qa%n!qa%o!qa%p!qa%q!qa%r!qa%s!qa%z!qag!qa!T!qa!U!qa%{!qa!W!qa![!qa!Q!qa#[!qat!qa!m!qa~P#yOz%zO{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P%SOV%|OopOvqO{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P'vOz%zO{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#g$zX%[$zX%_$zX~P'vO#g#gO%[&RO%_&RO~O!f&SOh&qX%[&qX#[&qX#g&qX%_&qX#Z&qX~Oh!iO%[&UO~Okealeameaneaoeapeaseazea{ea!xea#gea%[ea%_ea%zeagea!Tea!Uea%{ea!Wea![ea!Qea#[eatea!mea~P%SOsqazqa{qa#gqa%[qa%_qa%zqa~Ok!pOl!qOm!oOn!oOo!rOp!sO!xqa~PEQO%z&WOz%yX{%yX~O%uWOz%yX{%yX~Oz&ZO{wX~O{&]O~Oz%jO#g%}X%[%}X%_%}Xg%}X{%}X![%}X!m%}X%z%}X~OV0mOo0dOv0rO!PrO~P'vO%z#|O#gUa%[Ua%_Ua~Oz&fO#g&PX%[&PX%_&PXn&PX~P%SOz&iO!Q&hO#g#Wa%[#Wa%_#Wa~O#[&jO#g#Ya%[#Ya%_#Ya~O!f$WO!r$WO#Z&lO%uWO~O#Z&lO~Oz&nO#g&tX%[&tX%_&tX~Oz&pO#g&pX%[&pX%_&pX{&pX~O!X&rO%z&sO~Oz&wOn&wX~P%SOn&zO~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO%['PO~P'vOt'TO#p'RO#q'SOP#naV#naf#nah#nao#nas#nav#na!P#na!Q#na!T#na!U#na!X#na!]#na!h#na!r#na!s#na!t#na!{#na!}#na#P#na#R#na#T#na#X#na#Z#na#^#na#_#na#a#na#c#na#l#na#o#na#s#na#u#na#z#na#}#na$P#na%X#na%o#na%p#na%t#na%u#na&Z#na&[#na&]#na&^#na&_#na&`#na&a#na&b#na&c#na&d#na&e#na&f#na&g#na&h#na&i#na&j#na%Z#na%_#na~Oz'UO#['WO{&xX~Oh'YO!X&rO~Oh!iO{$hO!X&rO~O{'`O~P%SO%['cO~OS'dO%['cO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%k!]O~P!#WO%kWi~P!#WOV!aO_!aOa!bOh!iO!X!kO!f!mO%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%m!_O%n!_O~P!&RO%mWi%nWi~P!&ROa!bOh!iO!X!kO!f!mOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%mWi%nWi%oWi%pWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~OV!aO_!aO%q!aO%r!aO%s!aO~P!)POVWi_Wi%qWi%rWi%sWi~P!)PO!T%bO!U%aOg&VXz&VX~O%z'fO%{'fO~P,eOz'hOg&UX~Og'jO~Oz'kO{'mO!W&XX~Oo0dOv0rOz'kO{'nO!W&XX~P'vO!W'pO~Om!oOn!oOo!rOp!sOkjisjizji{ji!xji#gji%[ji%_ji%zji~Ol!qO~P!-rOlji~P!-rOk0fOl0gOm0eOn0eOo0nOp0oO~Ot'rO~P!.{OV'wOg'xOo0dOv0rO~P'vOg'xOz'yO~Og'{O~O!U'}O~Og(OOz'yO!T%bO!U%aO~P%SOk0fOl0gOm0eOn0eOo0nOp0oOgqa!Tqa!Uqa%{qa!Wqa![qa!Qqa#[qatqa!mqa~PEQOV'wOo0dOv0rO!W&Sa~P'vOz(RO!W&Sa~O!W(SO~Oz(RO!T%bO!U%aO!W&Sa~P%SOV(WOo0dOv0rO![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~P'vOz(XO![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~O![([O~Oz(XO!T%bO!U%aO![%}a~P%SOz(_O!T%bO!U%aO![&Ta~P%SOz(bO{&lX![&lX!m&lX%z&lX~O{(fO![(hO!m(iO%z(eO~OV%|OopOvqO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~P'vOz(kO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~O!f&SOh&qa%[&qa#[&qa#g&qa%_&qa#Z&qa~O%[(pO~OV#sOa#tO%uWO~Oz&ZO{wa~OopOvqO~P'vOz(XO#g%}a%[%}a%_%}ag%}a{%}a![%}a!m%}a%z%}a~P%SOz(uO#g%hX%[%hX%_%hX%z%hX~O%z#|O#gUi%[Ui%_Ui~O#g&Pa%[&Pa%_&Pan&Pa~P'vOz(xO#g&Pa%[&Pa%_&Pan&Pa~OV(|Oh)OO%uWO~O#Z)PO~O%uWO#g&ta%[&ta%_&ta~Oz)RO#g&ta%[&ta%_&ta~Oo0dOv0rO#g&pa%[&pa%_&pa{&pa~P'vOz)UO#g&pa%[&pa%_&pa{&pa~OV)WOa)WO%uWO~O%z)]O~Ot)`O#j)_OP#hiV#hif#hih#hio#his#hiv#hi!P#hi!Q#hi!T#hi!U#hi!X#hi!]#hi!h#hi!r#hi!s#hi!t#hi!{#hi!}#hi#P#hi#R#hi#T#hi#X#hi#Z#hi#^#hi#_#hi#a#hi#c#hi#l#hi#o#hi#s#hi#u#hi#z#hi#}#hi$P#hi%X#hi%o#hi%p#hi%t#hi%u#hi&Z#hi&[#hi&]#hi&^#hi&_#hi&`#hi&a#hi&b#hi&c#hi&d#hi&e#hi&f#hi&g#hi&h#hi&i#hi&j#hi%Z#hi%_#hi~Ot)aOP#kiV#kif#kih#kio#kis#kiv#ki!P#ki!Q#ki!T#ki!U#ki!X#ki!]#ki!h#ki!r#ki!s#ki!t#ki!{#ki!}#ki#P#ki#R#ki#T#ki#X#ki#Z#ki#^#ki#_#ki#a#ki#c#ki#l#ki#o#ki#s#ki#u#ki#z#ki#}#ki$P#ki%X#ki%o#ki%p#ki%t#ki%u#ki&Z#ki&[#ki&]#ki&^#ki&_#ki&`#ki&a#ki&b#ki&c#ki&d#ki&e#ki&f#ki&g#ki&h#ki&i#ki&j#ki%Z#ki%_#ki~OV)cOn&wa~P'vOz)dOn&wa~Oz)dOn&wa~P%SOn)hO~O%Y)lO~Ot)oO#p'RO#q)nOP#niV#nif#nih#nio#nis#niv#ni!P#ni!Q#ni!T#ni!U#ni!X#ni!]#ni!h#ni!r#ni!s#ni!t#ni!{#ni!}#ni#P#ni#R#ni#T#ni#X#ni#Z#ni#^#ni#_#ni#a#ni#c#ni#l#ni#o#ni#s#ni#u#ni#z#ni#}#ni$P#ni%X#ni%o#ni%p#ni%t#ni%u#ni&Z#ni&[#ni&]#ni&^#ni&_#ni&`#ni&a#ni&b#ni&c#ni&d#ni&e#ni&f#ni&g#ni&h#ni&i#ni&j#ni%Z#ni%_#ni~OV)rOo0dOv0rO{$hO~P'vOo0dOv0rO{&xa~P'vOz)vO{&xa~OV)zOa){Og*OO%q)|O%uWO~O{$hO&{*QO~Oh'YO~Oh!iO{$hO~O%[*VO~O%[*XO~OV${Oa${Oo0dOv0rOg&Ua~P'vOz*[Og&Ua~Oo0dOv0rO{*_O!W&Xa~P'vOz*`O!W&Xa~Oo0dOv0rOz*`O{*cO!W&Xa~P'vOo0dOv0rOz*`O!W&Xa~P'vOz*`O{*cO!W&Xa~Om0eOn0eOo0nOp0oOgjikjisjizji!Tji!Uji%{ji!Wji{ji![ji#gji%[ji%_ji!Qji#[jitji!mji%zji~Ol0gO~P!LzOlji~P!LzOV'wOg*hOo0dOv0rO~P'vOn*jO~Og*hOz*lO~Og*mO~OV'wOo0dOv0rO!W&Si~P'vOz*nO!W&Si~O!W*oO~OV(WOo0dOv0rO![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~P'vOz*rO!T%bO!U%aO![&Ti~Oz*uO![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~O![*vO~Oa*xOo0dOv0rO![&Ti~P'vOz*rO![&Ti~O![*zO~OV*|Oo0dOv0rO{&la![&la!m&la%z&la~P'vOz*}O{&la![&la!m&la%z&la~O!]+QO&n+SO![!nX~O![+UO~O{(fO![+VO~O{(fO![+VO!m+WO~OV%|OopOvqO{%hq!x%hq#g%hq%[%hq%_%hq%z%hq~P'vOz$ri{$ri!x$ri#g$ri%[$ri%_$ri%z$ri~P%SOV%|OopOvqO~P'vOV%|Oo0dOv0rO#g%ha%[%ha%_%ha%z%ha~P'vOz+XO#g%ha%[%ha%_%ha%z%ha~Oz$ia#g$ia%[$ia%_$ian$ia~P%SO#g&Pi%[&Pi%_&Pin&Pi~P'vOz+[O#g#Wq%[#Wq%_#Wq~Oz+]O#[+_O#g&sX%[&sX%_&sXg&sX~OV+aOh)OO%uWO~O%uWO#g&ti%[&ti%_&ti~Oo0dOv0rO#g&pi%[&pi%_&pi{&pi~P'vO{#{Oz#eX!W#eX~Oz+eO!W&uX~O!W+gO~Ot+jO#j)_OP#hqV#hqf#hqh#hqo#hqs#hqv#hq!P#hq!Q#hq!T#hq!U#hq!X#hq!]#hq!h#hq!r#hq!s#hq!t#hq!{#hq!}#hq#P#hq#R#hq#T#hq#X#hq#Z#hq#^#hq#_#hq#a#hq#c#hq#l#hq#o#hq#s#hq#u#hq#z#hq#}#hq$P#hq%X#hq%o#hq%p#hq%t#hq%u#hq&Z#hq&[#hq&]#hq&^#hq&_#hq&`#hq&a#hq&b#hq&c#hq&d#hq&e#hq&f#hq&g#hq&h#hq&i#hq&j#hq%Z#hq%_#hq~On$|az$|a~P%SOV)cOn&wi~P'vOz+qOn&wi~Oz+{O{$hO#[+{O~O#q+}OP#nqV#nqf#nqh#nqo#nqs#nqv#nq!P#nq!Q#nq!T#nq!U#nq!X#nq!]#nq!h#nq!r#nq!s#nq!t#nq!{#nq!}#nq#P#nq#R#nq#T#nq#X#nq#Z#nq#^#nq#_#nq#a#nq#c#nq#l#nq#o#nq#s#nq#u#nq#z#nq#}#nq$P#nq%X#nq%o#nq%p#nq%t#nq%u#nq&Z#nq&[#nq&]#nq&^#nq&_#nq&`#nq&a#nq&b#nq&c#nq&d#nq&e#nq&f#nq&g#nq&h#nq&i#nq&j#nq%Z#nq%_#nq~O#[,OOz%Oa{%Oa~Oo0dOv0rO{&xi~P'vOz,QO{&xi~O{#{O%z,SOg&zXz&zX~O%uWOg&zXz&zX~Oz,WOg&yX~Og,YO~O%Y,]O~O!T%bO!U%aOg&Viz&Vi~OV${Oa${Oo0dOv0rOg&Ui~P'vO{,`Oz$la!W$la~Oo0dOv0rO{,aOz$la!W$la~P'vOo0dOv0rO{*_O!W&Xi~P'vOz,dO!W&Xi~Oo0dOv0rOz,dO!W&Xi~P'vOz,dO{,gO!W&Xi~Og$hiz$hi!W$hi~P%SOV'wOo0dOv0rO~P'vOn,iO~OV'wOg,jOo0dOv0rO~P'vOV'wOo0dOv0rO!W&Sq~P'vOz$gi![$gi#g$gi%[$gi%_$gig$gi{$gi!m$gi%z$gi~P%SOV(WOo0dOv0rO~P'vOa*xOo0dOv0rO![&Tq~P'vOz,kO![&Tq~O![,lO~OV(WOo0dOv0rO![%}q#g%}q%[%}q%_%}qg%}q{%}q!m%}q%z%}q~P'vO{,mO~OV*|Oo0dOv0rO{&li![&li!m&li%z&li~P'vOz,rO{&li![&li!m&li%z&li~O!]+QO&n+SO![!na~O{(fO![,uO~OV%|Oo0dOv0rO#g%hi%[%hi%_%hi%z%hi~P'vOz,vO#g%hi%[%hi%_%hi%z%hi~O%uWO#g&sa%[&sa%_&sag&sa~Oz,yO#g&sa%[&sa%_&sag&sa~Og,|O~OV)WOa)WO%uWO!W&ua~Oz-OO!W&ua~On$|iz$|i~P%SOV)cO~P'vOV)cOn&wq~P'vOt-SOP#myV#myf#myh#myo#mys#myv#my!P#my!Q#my!T#my!U#my!X#my!]#my!h#my!r#my!s#my!t#my!{#my!}#my#P#my#R#my#T#my#X#my#Z#my#^#my#_#my#a#my#c#my#l#my#o#my#s#my#u#my#z#my#}#my$P#my%X#my%o#my%p#my%t#my%u#my&Z#my&[#my&]#my&^#my&_#my&`#my&a#my&b#my&c#my&d#my&e#my&f#my&g#my&h#my&i#my&j#my%Z#my%_#my~O%Z-WO%_-WO~P`O#q-XOP#nyV#nyf#nyh#nyo#nys#nyv#ny!P#ny!Q#ny!T#ny!U#ny!X#ny!]#ny!h#ny!r#ny!s#ny!t#ny!{#ny!}#ny#P#ny#R#ny#T#ny#X#ny#Z#ny#^#ny#_#ny#a#ny#c#ny#l#ny#o#ny#s#ny#u#ny#z#ny#}#ny$P#ny%X#ny%o#ny%p#ny%t#ny%u#ny&Z#ny&[#ny&]#ny&^#ny&_#ny&`#ny&a#ny&b#ny&c#ny&d#ny&e#ny&f#ny&g#ny&h#ny&i#ny&j#ny%Z#ny%_#ny~Oz-[O{$hO#[-[O~Oo0dOv0rO{&xq~P'vOz-_O{&xq~O%z,SOg&zaz&za~OV)zOa){O%q)|O%uWOg&ya~Oz-cOg&ya~O$S-gO~OV${Oa${Oo0dOv0rO~P'vOo0dOv0rO{-hOz$li!W$li~P'vOo0dOv0rOz$li!W$li~P'vO{-hOz$li!W$li~Oo0dOv0rO{*_O~P'vOo0dOv0rO{*_O!W&Xq~P'vOz-kO!W&Xq~Oo0dOv0rOz-kO!W&Xq~P'vOs-nO!T%bO!U%aOg&Oq!W&Oq![&Oqz&Oq~P!.{Oa*xOo0dOv0rO![&Ty~P'vOz$ji![$ji~P%SOa*xOo0dOv0rO~P'vOV*|Oo0dOv0rO~P'vOV*|Oo0dOv0rO{&lq![&lq!m&lq%z&lq~P'vO{(fO![-sO!m-tO%z-rO~OV%|Oo0dOv0rO#g%hq%[%hq%_%hq%z%hq~P'vO#[-vOz$wa#g$wa%[$wa%_$wag$wa~O%uWO#g&si%[&si%_&sig&si~Oz-xO#g&si%[&si%_&sig&si~OV)WOa)WO%uWO!W&ui~Ot-|OP#m!RV#m!Rf#m!Rh#m!Ro#m!Rs#m!Rv#m!R!P#m!R!Q#m!R!T#m!R!U#m!R!X#m!R!]#m!R!h#m!R!r#m!R!s#m!R!t#m!R!{#m!R!}#m!R#P#m!R#R#m!R#T#m!R#X#m!R#Z#m!R#^#m!R#_#m!R#a#m!R#c#m!R#l#m!R#o#m!R#s#m!R#u#m!R#z#m!R#}#m!R$P#m!R%X#m!R%o#m!R%p#m!R%t#m!R%u#m!R&Z#m!R&[#m!R&]#m!R&^#m!R&_#m!R&`#m!R&a#m!R&b#m!R&c#m!R&d#m!R&e#m!R&f#m!R&g#m!R&h#m!R&i#m!R&j#m!R%Z#m!R%_#m!R~Oo0dOv0rO{&xy~P'vOV)zOa){O%q)|O%uWOg&yi~O$S-gO%Z.UO%_.UO~OV.`Oh.^O!X.]O!]._O!h.XO!s.ZO!t.ZO%p.WO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O~Oo0dOv0rOz$lq!W$lq~P'vO{.eOz$lq!W$lq~Oo0dOv0rO{*_O!W&Xy~P'vOz.fO!W&Xy~Oo0dOv.jO~P'vOs-nO!T%bO!U%aOg&Oy!W&Oy![&Oyz&Oy~P!.{O{(fO![.mO~O{(fO![.mO!m.nO~O%uWO#g&sq%[&sq%_&sqg&sq~Oz.pO#g&sq%[&sq%_&sqg&sq~OV)zOa){O%q)|O%uWO~Oh.uO!f.sOz$TX#[$TX%j$TXg$TX~Os$TX{$TX!W$TX![$TX~P$,bO%o.wO%p.wOs$UXz$UX{$UX#[$UX%j$UX!W$UXg$UX![$UX~O!h.yO~Oz.}O#[/PO%j.zOs&|X{&|X!W&|Xg&|X~Oa/SO~P$(WOh.uOs&}Xz&}X{&}X#[&}X%j&}X!W&}Xg&}X![&}X~Os/WO{$hO~Oo0dOv0rOz$ly!W$ly~P'vOo0dOv0rO{*_O!W&X!R~P'vOz/[O!W&X!R~Og&RXs&RX!T&RX!U&RX!W&RX![&RXz&RX~P!.{Os-nO!T%bO!U%aOg&Qa!W&Qa![&Qaz&Qa~O{(fO![/_O~O%uWO#g&sy%[&sy%_&syg&sy~O!f.sOh$[as$[az$[a{$[a#[$[a%j$[a!W$[ag$[a![$[a~O!h/fO~O%o.wO%p.wOs$Uaz$Ua{$Ua#[$Ua%j$Ua!W$Uag$Ua![$Ua~O%j.zOs$Yaz$Ya{$Ya#[$Ya!W$Yag$Ya![$Ya~Os&|a{&|a!W&|ag&|a~P$'zOz/kOs&|a{&|a!W&|ag&|a~O!W/nO~Og/nO~O{/pO~O![/qO~Oo0dOv0rO{*_O!W&X!Z~P'vO{/tO~O%z/uO~P$,bOz/vO#[/PO%j.zOg'PX~Oz/vOg'PX~Og/xO~O!h/yO~O#[/POs%Saz%Sa{%Sa%j%Sa!W%Sag%Sa![%Sa~O#[/PO%j.zOs%Waz%Wa{%Wa!W%Wag%Wa~Os&|i{&|i!W&|ig&|i~P$'zOz/{O#[/PO%j.zO!['Oa~O{$da~P%SOg'Pa~P$'zOz0TOg'Pa~Oa0VO!['Oi~P$(WOz0XO!['Oi~Oz0XO#[/PO%j.zO!['Oi~O#[/PO%j.zOg$biz$bi~O%z0[O~P$,bO#[/PO%j.zOg%Vaz%Va~Og'Pi~P$'zO{0_O~Oa0VO!['Oq~P$(WOz0aO!['Oq~O#[/PO%j.zOz%Ui![%Ui~Oa0VO~P$(WOa0VO!['Oy~P$(WO#[/PO%j.zOg$ciz$ci~O#[/PO%j.zOz%Uq![%Uq~Oz+XO#g%ha%[%ha%_%ha%z%ha~P%SOV%|Oo0dOv0rO~P'vOn0iO~Oo0iO~P'vO{0jO~Ot0kO~P!.{O&]&Z&j&h&i&g&f&d&e&c&b&`&a&_&^&[%u~",
|
|
308541
|
-
goto: "!=
|
|
308695
|
+
states: "##jO`QeOOP$}OSOOO&WQtO'#HUOOQS'#Co'#CoOOQS'#Cp'#CpO'vQdO'#CnO*UQtO'#HTOOQS'#HU'#HUOOQS'#DU'#DUOOQS'#HT'#HTO*rQdO'#D_O+VQdO'#DfO+gQdO'#DjO+zOWO'#DuO,VOWO'#DvO.[QtO'#GuOOQS'#Gu'#GuO'vQdO'#GtO0ZQtO'#GtOOQS'#Eb'#EbO0rQdO'#EcOOQS'#Gs'#GsO0|QdO'#GrOOQV'#Gr'#GrO1XQdO'#FYOOQS'#G^'#G^O1^QdO'#FXOOQV'#IS'#ISOOQV'#Gq'#GqOOQV'#Fq'#FqQ`QeOOO'vQdO'#CqO1lQdO'#C}O1sQdO'#DRO2RQdO'#HYO2cQtO'#EVO'vQdO'#EWOOQS'#EY'#EYOOQS'#E['#E[OOQS'#E^'#E^O2wQdO'#E`O3_QdO'#EdO3rQdO'#EfO3zQtO'#EfO1XQdO'#EiO0rQdO'#ElO1XQdO'#EnO0rQdO'#EtO0rQdO'#EwO4VQdO'#EyO4^QdO'#FOO4iQdO'#EzO0rQdO'#FOO1XQdO'#FQO1XQdO'#FVO4nQdO'#F[P4uOdO'#GpPOOO)CBd)CBdOOQS'#Ce'#CeOOQS'#Cf'#CfOOQS'#Cg'#CgOOQS'#Ch'#ChOOQS'#Ci'#CiOOQS'#Cj'#CjOOQS'#Cl'#ClO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO5QQdO'#DoOOQS,5:Y,5:YO5eQdO'#HdOOQS,5:],5:]O5rQ!fO,5:]O5wQtO,59YO1lQdO,59bO1lQdO,59bO1lQdO,59bO8gQdO,59bO8lQdO,59bO8sQdO,59jO8zQdO'#HTO:QQdO'#HSOOQS'#HS'#HSOOQS'#D['#D[O:iQdO,59aO'vQdO,59aO:wQdO,59aOOQS,59y,59yO:|QdO,5:RO'vQdO,5:ROOQS,5:Q,5:QO;[QdO,5:QO;aQdO,5:XO'vQdO,5:XO'vQdO,5:VOOQS,5:U,5:UO;rQdO,5:UO;wQdO,5:WOOOW'#Fy'#FyO;|OWO,5:aOOQS,5:a,5:aO<XQdO'#HwOOOW'#Dw'#DwOOOW'#Fz'#FzO<iOWO,5:bOOQS,5:b,5:bOOQS'#F}'#F}O<wQtO,5:iO?iQtO,5=`O@SQ#xO,5=`O@sQtO,5=`OOQS,5:},5:}OA[QeO'#GWOBnQdO,5;^OOQV,5=^,5=^OByQtO'#IPOChQdO,5;tOOQS-E:[-E:[OOQV,5;s,5;sO4dQdO'#FQOOQV-E9o-E9oOCpQtO,59]OEwQtO,59iOFbQdO'#HVOFmQdO'#HVO1XQdO'#HVOFxQdO'#DTOGQQdO,59mOGVQdO'#HZO'vQdO'#HZO0rQdO,5=tOOQS,5=t,5=tO0rQdO'#EROOQS'#ES'#ESOGtQdO'#GPOHUQdO,58|OHUQdO,58|O*xQdO,5:oOHdQtO'#H]OOQS,5:r,5:rOOQS,5:z,5:zOHwQdO,5;OOIYQdO'#IOO1XQdO'#H}OOQS,5;Q,5;QOOQS'#GT'#GTOInQtO,5;QOI|QdO,5;QOJRQdO'#IQOOQS,5;T,5;TOJaQdO'#H|OOQS,5;W,5;WOJrQdO,5;YO4iQdO,5;`O4iQdO,5;cOJzQtO'#ITO'vQdO'#ITOKUQdO,5;eO4VQdO,5;eO0rQdO,5;jO1XQdO,5;lOKZQeO'#EuOLgQgO,5;fO!!hQdO'#IUO4iQdO,5;jO!!sQdO,5;lO!!{QdO,5;qO!#WQtO,5;vO'vQdO,5;vPOOO,5=[,5=[P!#_OSO,5=[P!#dOdO,5=[O!&XQtO1G.jO!&`QtO1G.jO!)PQtO1G.jO!)ZQtO1G.jO!+tQtO1G.jO!,XQtO1G.jO!,lQdO'#HcO!,zQtO'#GuO0rQdO'#HcO!-UQdO'#HbOOQS,5:Z,5:ZO!-^QdO,5:ZO!-cQdO'#HeO!-nQdO'#HeO!.RQdO,5>OOOQS'#Ds'#DsOOQS1G/w1G/wOOQS1G.|1G.|O!/RQtO1G.|O!/YQtO1G.|O1lQdO1G.|O!/uQdO1G/UOOQS'#DZ'#DZO0rQdO,59tOOQS1G.{1G.{O!/|QdO1G/eO!0^QdO1G/eO!0fQdO1G/fO'vQdO'#H[O!0kQdO'#H[O!0pQtO1G.{O!1QQdO,59iO!2WQdO,5=zO!2hQdO,5=zO!2pQdO1G/mO!2uQtO1G/mOOQS1G/l1G/lO!3VQdO,5=uO!3|QdO,5=uO0rQdO1G/qO!4kQdO1G/sO!4pQtO1G/sO!5QQtO1G/qOOQS1G/p1G/pOOQS1G/r1G/rOOOW-E9w-E9wOOQS1G/{1G/{O!5bQdO'#HxO0rQdO'#HxO!5sQdO,5>cOOOW-E9x-E9xOOQS1G/|1G/|OOQS-E9{-E9{O!6RQ#xO1G2zO!6rQtO1G2zO'vQdO,5<jOOQS,5<j,5<jOOQS-E9|-E9|OOQS,5<r,5<rOOQS-E:U-E:UOOQV1G0x1G0xO1XQdO'#GRO!7ZQtO,5>kOOQS1G1`1G1`O!7xQdO1G1`OOQS'#DV'#DVO0rQdO,5=qOOQS,5=q,5=qO!7}QdO'#FrO!8YQdO,59oO!8bQdO1G/XO!8lQtO,5=uOOQS1G3`1G3`OOQS,5:m,5:mO!9]QdO'#GtOOQS,5<k,5<kOOQS-E9}-E9}O!9nQdO1G.hOOQS1G0Z1G0ZO!9|QdO,5=wO!:^QdO,5=wO0rQdO1G0jO0rQdO1G0jO!:oQdO,5>jO!;QQdO,5>jO1XQdO,5>jO!;cQdO,5>iOOQS-E:R-E:RO!;hQdO1G0lO!;sQdO1G0lO!;xQdO,5>lO!<WQdO,5>lO!<fQdO,5>hO!<|QdO,5>hO!=_QdO'#EpO0rQdO1G0tO!=jQdO1G0tO!=oQgO1G0zO!AmQgO1G0}O!EhQdO,5>oO!ErQdO,5>oO!EzQtO,5>oO0rQdO1G1PO!FUQdO1G1PO4iQdO1G1UO!!sQdO1G1WOOQV,5;a,5;aO!FZQfO,5;aO!F`QgO1G1QO!JaQdO'#GZO4iQdO1G1QO4iQdO1G1QO!JqQdO,5>pO!KOQdO,5>pO1XQdO,5>pOOQV1G1U1G1UO!KWQdO'#FSO!KiQ!fO1G1WO!KqQdO1G1WOOQV1G1]1G1]O4iQdO1G1]O!KvQdO1G1]O!LOQdO'#F^OOQV1G1b1G1bO!#WQtO1G1bPOOO1G2v1G2vP!LTOSO1G2vOOQS,5=},5=}OOQS'#Dp'#DpO0rQdO,5=}O!LYQdO,5=|O!LmQdO,5=|OOQS1G/u1G/uO!LuQdO,5>PO!MVQdO,5>PO!M_QdO,5>PO!MrQdO,5>PO!NSQdO,5>POOQS1G3j1G3jOOQS7+$h7+$hO!8bQdO7+$pO# uQdO1G.|O# |QdO1G.|OOQS1G/`1G/`OOQS,5<`,5<`O'vQdO,5<`OOQS7+%P7+%PO#!TQdO7+%POOQS-E9r-E9rOOQS7+%Q7+%QO#!eQdO,5=vO'vQdO,5=vOOQS7+$g7+$gO#!jQdO7+%PO#!rQdO7+%QO#!wQdO1G3fOOQS7+%X7+%XO##XQdO1G3fO##aQdO7+%XOOQS,5<_,5<_O'vQdO,5<_O##fQdO1G3aOOQS-E9q-E9qO#$]QdO7+%]OOQS7+%_7+%_O#$kQdO1G3aO#%YQdO7+%_O#%_QdO1G3gO#%oQdO1G3gO#%wQdO7+%]O#%|QdO,5>dO#&gQdO,5>dO#&gQdO,5>dOOQS'#Dx'#DxO#&xO&jO'#DzO#'TO`O'#HyOOOW1G3}1G3}O#'YQdO1G3}O#'bQdO1G3}O#'mQ#xO7+(fO#(^QtO1G2UP#(wQdO'#GOOOQS,5<m,5<mOOQS-E:P-E:POOQS7+&z7+&zOOQS1G3]1G3]OOQS,5<^,5<^OOQS-E9p-E9pOOQS7+$s7+$sO#)UQdO,5=`O#)oQdO,5=`O#*QQtO,5<aO#*eQdO1G3cOOQS-E9s-E9sOOQS7+&U7+&UO#*uQdO7+&UO#+TQdO,5<nO#+iQdO1G4UOOQS-E:Q-E:QO#+zQdO1G4UOOQS1G4T1G4TOOQS7+&W7+&WO#,]QdO7+&WOOQS,5<p,5<pO#,hQdO1G4WOOQS-E:S-E:SOOQS,5<l,5<lO#,vQdO1G4SOOQS-E:O-E:OO1XQdO'#EqO#-^QdO'#EqO#-iQdO'#IRO#-qQdO,5;[OOQS7+&`7+&`O0rQdO7+&`O#-vQgO7+&fO!JdQdO'#GXO4iQdO7+&fO4iQdO7+&iO#1tQtO,5<tO'vQdO,5<tO#2OQdO1G4ZOOQS-E:W-E:WO#2YQdO1G4ZO4iQdO7+&kO0rQdO7+&kOOQV7+&p7+&pO!KiQ!fO7+&rO!KqQdO7+&rO`QeO1G0{OOQV-E:X-E:XO4iQdO7+&lO4iQdO7+&lOOQV,5<u,5<uO#2bQdO,5<uO!JdQdO,5<uOOQV7+&l7+&lO#2mQgO7+&lO#6hQdO,5<vO#6sQdO1G4[OOQS-E:Y-E:YO#7QQdO1G4[O#7YQdO'#IWO#7hQdO'#IWO1XQdO'#IWOOQS'#IW'#IWO#7sQdO'#IVOOQS,5;n,5;nO#7{QdO,5;nO0rQdO'#FUOOQV7+&r7+&rO4iQdO7+&rOOQV7+&w7+&wO4iQdO7+&wO#8QQfO,5;xOOQV7+&|7+&|POOO7+(b7+(bO#8VQdO1G3iOOQS,5<c,5<cO#8eQdO1G3hOOQS-E9u-E9uO#8xQdO,5<dO#9TQdO,5<dO#9hQdO1G3kOOQS-E9v-E9vO#9xQdO1G3kO#:QQdO1G3kO#:bQdO1G3kO#9xQdO1G3kOOQS<<H[<<H[O#:mQtO1G1zOOQS<<Hk<<HkP#:zQdO'#FtO8sQdO1G3bO#;XQdO1G3bO#;^QdO<<HkOOQS<<Hl<<HlO#;nQdO7+)QOOQS<<Hs<<HsO#<OQtO1G1yP#<oQdO'#FsO#<|QdO7+)RO#=^QdO7+)RO#=fQdO<<HwO#=kQdO7+({OOQS<<Hy<<HyO#>bQdO,5<bO'vQdO,5<bOOQS-E9t-E9tOOQS<<Hw<<HwOOQS,5<g,5<gO0rQdO,5<gO#>gQdO1G4OOOQS-E9y-E9yO#?QQdO1G4OO<XQdO'#H{OOOO'#D{'#D{OOOO'#F|'#F|O#?cO&jO,5:fOOOW,5>e,5>eOOOW7+)i7+)iO#?nQdO7+)iO#?vQdO1G2zO#@aQdO1G2zP'vQdO'#FuO0rQdO<<IpO1XQdO1G2YP1XQdO'#GSO#@rQdO7+)pO#ATQdO7+)pOOQS<<Ir<<IrP1XQdO'#GUP0rQdO'#GQOOQS,5;],5;]O#AfQdO,5>mO#AtQdO,5>mOOQS1G0v1G0vOOQS<<Iz<<IzOOQV-E:V-E:VO4iQdO<<JQOOQV,5<s,5<sO4iQdO,5<sOOQV<<JQ<<JQOOQV<<JT<<JTO#A|QtO1G2`P#BWQdO'#GYO#B_QdO7+)uO#BiQgO<<JVO4iQdO<<JVOOQV<<J^<<J^O4iQdO<<J^O!KiQ!fO<<J^O#FdQgO7+&gOOQV<<JW<<JWO#FnQgO<<JWOOQV1G2a1G2aO1XQdO1G2aO#JiQdO1G2aO4iQdO<<JWO1XQdO1G2bP0rQdO'#G[O#JtQdO7+)vO#KRQdO7+)vOOQS'#FT'#FTO0rQdO,5>rO#KZQdO,5>rOOQS,5>r,5>rO#KfQdO,5>qO#KwQdO,5>qOOQS1G1Y1G1YOOQS,5;p,5;pOOQV<<Jc<<JcO#LPQdO1G1dOOQS7+)T7+)TP#LUQdO'#FwO#LfQdO1G2OO#LyQdO1G2OO#MZQdO1G2OP#MfQdO'#FxO#MsQdO7+)VO#NTQdO7+)VO#NTQdO7+)VO#N]QdO7+)VO#NmQdO7+(|O8sQdO7+(|OOQSAN>VAN>VO$ WQdO<<LmOOQSAN>cAN>cO0rQdO1G1|O$ hQtO1G1|P$ rQdO'#FvOOQS1G2R1G2RP$!PQdO'#F{O$!^QdO7+)jO$!wQdO,5>gOOOO-E9z-E9zOOOW<<MT<<MTO$#VQdO7+(fOOQSAN?[AN?[OOQS7+'t7+'tO$#pQdO<<M[OOQS,5<q,5<qO$$RQdO1G4XOOQS-E:T-E:TOOQVAN?lAN?lOOQV1G2_1G2_O4iQdOAN?qO$$aQgOAN?qOOQVAN?xAN?xO4iQdOAN?xOOQV<<JR<<JRO4iQdOAN?rO4iQdO7+'{OOQV7+'{7+'{O1XQdO7+'{OOQVAN?rAN?rOOQS7+'|7+'|O$([QdO<<MbOOQS1G4^1G4^O0rQdO1G4^OOQS,5<w,5<wO$(iQdO1G4]OOQS-E:Z-E:ZOOQU'#G_'#G_O$(zQfO7+'OO$)VQdO'#F_O$*^QdO7+'jO$*nQdO7+'jOOQS7+'j7+'jO$*yQdO<<LqO$+ZQdO<<LqO$+ZQdO<<LqO$+cQdO'#H^OOQS<<Lh<<LhO$+mQdO<<LhOOQS7+'h7+'hOOQS'#D|'#D|OOOO1G4R1G4RO$,WQdO1G4RO$,`QdO1G4RP!=_QdO'#GVOOQVG25]G25]O4iQdOG25]OOQVG25dG25dOOQVG25^G25^OOQV<<Kg<<KgO4iQdO<<KgOOQS7+)x7+)xP$,kQdO'#G]OOQU-E:]-E:]OOQV<<Jj<<JjO$-_QtO'#FaOOQS'#Fc'#FcO$-oQdO'#FbO$.aQdO'#FbOOQS'#Fb'#FbO$.fQdO'#IYO$)VQdO'#FiO$)VQdO'#FiO$.}QdO'#FjO$)VQdO'#FkO$/UQdO'#IZOOQS'#IZ'#IZO$/sQdO,5;yOOQS<<KU<<KUO$/{QdO<<KUO$0]QdOANB]O$0mQdOANB]O$0uQdO'#H_OOQS'#H_'#H_O1sQdO'#DcO$1`QdO,5=xOOQSANBSANBSOOOO7+)m7+)mO$1wQdO7+)mOOQVLD*wLD*wOOQVANARANARO5rQ!fO'#GaO$2PQtO,5<SO$)VQdO'#FmOOQS,5<W,5<WOOQS'#Fd'#FdO$2qQdO,5;|O$2vQdO,5;|OOQS'#Fg'#FgO$)VQdO'#G`O$3hQdO,5<QO$4SQdO,5>tO$4dQdO,5>tO1XQdO,5<PO$4uQdO,5<TO$4zQdO,5<TO$)VQdO'#I[O$5PQdO'#I[O$5UQdO,5<UOOQS,5<V,5<VO'vQdO'#FpOOQU1G1e1G1eO4iQdO1G1eOOQSAN@pAN@pO$5ZQdOG27wO$5kQdO,59}OOQS1G3d1G3dOOOO<<MX<<MXOOQS,5<{,5<{OOQS-E:_-E:_O$5pQtO'#FaO$5wQdO'#I]O$6VQdO'#I]O$6_QdO,5<XOOQS1G1h1G1hO$6dQdO1G1hO$6iQdO,5<zOOQS-E:^-E:^O$7TQdO,5=OO$7lQdO1G4`OOQS-E:b-E:bOOQS1G1k1G1kOOQS1G1o1G1oO$7|QdO,5>vO$)VQdO,5>vOOQS1G1p1G1pO$8[QtO,5<[OOQU7+'P7+'PO$+cQdO1G/iO$)VQdO,5<YO$8cQdO,5>wO$8jQdO,5>wOOQS1G1s1G1sOOQS7+'S7+'SP$)VQdO'#GdO$8rQdO1G4bO$8|QdO1G4bO$9UQdO1G4bOOQS7+%T7+%TO$9dQdO1G1tO$9rQtO'#FaO$9yQdO,5<}OOQS,5<},5<}O$:XQdO1G4cOOQS-E:a-E:aO$)VQdO,5<|O$:`QdO,5<|O$:eQdO7+)|OOQS-E:`-E:`O$:oQdO7+)|O$)VQdO,5<ZP$)VQdO'#GcO$:wQdO1G2hO$)VQdO1G2hP$;VQdO'#GbO$;^QdO<<MhO$;hQdO1G1uO$;vQdO7+(SO8sQdO'#C}O8sQdO,59bO8sQdO,59bO8sQdO,59bO$<UQtO,5=`O8sQdO1G.|O0rQdO1G/XO0rQdO7+$pP$<iQdO'#GOO'vQdO'#GtO$<vQdO,59bO$<{QdO,59bO$=SQdO,59mO$=XQdO1G/UO1sQdO'#DRO8sQdO,59j",
|
|
308696
|
+
stateData: "$=r~O%cOS%^OSSOS%]PQ~OPdOVaOfoOhYOopOs!POvqO!PrO!Q{O!T!SO!U!RO!XZO!][O!h`O!r`O!s`O!t`O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#l!QO#o!TO#s!UO#u!VO#z!WO#}hO$P!XO%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~O%]!YO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%j![O%k!]O%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aO~Ok%xXl%xXm%xXn%xXo%xXp%xXs%xXz%xX{%xX!x%xX#g%xX%[%xX%_%xX%z%xXg%xX!T%xX!U%xX%{%xX!W%xX![%xX!Q%xX#[%xXt%xX!m%xX~P%SOfoOhYO!XZO!][O!h`O!r`O!s`O!t`O%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~Oz%wX{%wX#g%wX%[%wX%_%wX%z%wX~Ok!pOl!qOm!oOn!oOo!rOp!sOs!tO!x%wX~P)pOV!zOg!|Oo0cOv0qO!PrO~P'vOV#OOo0cOv0qO!W#PO~P'vOV#SOa#TOo0cOv0qO![#UO~P'vOQ#XO%`#XO%a#ZO~OQ#^OR#[O%`#^O%a#`O~OV%iX_%iXa%iXh%iXk%iXl%iXm%iXn%iXo%iXp%iXs%iXz%iX!X%iX!f%iX%j%iX%k%iX%l%iX%m%iX%n%iX%o%iX%p%iX%q%iX%r%iX%s%iXg%iX!T%iX!U%iX~O&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O{%iX!x%iX#g%iX%[%iX%_%iX%z%iX%{%iX!W%iX![%iX!Q%iX#[%iXt%iX!m%iX~P,eOz#dO{%hX!x%hX#g%hX%[%hX%_%hX%z%hX~Oo0cOv0qO~P'vO#g#gO%[#iO%_#iO~O%uWO~O!T#nO#u!VO#z!WO#}hO~OopO~P'vOV#sOa#tO%uWO{wP~OV#xOo0cOv0qO!Q#yO~P'vO{#{O!x$QO%z#|O#g!yX%[!yX%_!yX~OV#xOo0cOv0qO#g#SX%[#SX%_#SX~P'vOo0cOv0qO#g#WX%[#WX%_#WX~P'vOh$WO%uWO~O!f$YO!r$YO%uWO~OV$eO~P'vO!U$gO#s$hO#u$iO~O{$jO~OV$qO~P'vOS$sO%[$rO%c$tO~OV$}Oa$}Og%POo0cOv0qO~P'vOo0cOv0qO{%SO~P'vO&Y%UO~Oa!bOh!iO!X!kO!f!mOVba_bakbalbambanbaobapbasbazba{ba!xba#gba%[ba%_ba%jba%kba%lba%mba%nba%oba%pba%qba%rba%sba%zbagba!Tba!Uba%{ba!Wba![ba!Qba#[batba!mba~On%ZO~Oo%ZO~P'vOo0cO~P'vOk0eOl0fOm0dOn0dOo0mOp0nOs0rOg%wX!T%wX!U%wX%{%wX!W%wX![%wX!Q%wX#[%wX!m%wX~P)pO%{%]Og%vXz%vX!T%vX!U%vX!W%vX{%vX~Og%_Oz%`O!T%dO!U%cO~Og%_O~Oz%gO!T%dO!U%cO!W&SX~O!W%kO~Oz%lO{%nO!T%dO!U%cO![%}X~O![%rO~O![%sO~OQ#XO%`#XO%a%uO~OV%wOo0cOv0qO!PrO~P'vOQ#^OR#[O%`#^O%a%zO~OV!qa_!qaa!qah!qak!qal!qam!qan!qao!qap!qas!qaz!qa{!qa!X!qa!f!qa!x!qa#g!qa%[!qa%_!qa%j!qa%k!qa%l!qa%m!qa%n!qa%o!qa%p!qa%q!qa%r!qa%s!qa%z!qag!qa!T!qa!U!qa%{!qa!W!qa![!qa!Q!qa#[!qat!qa!m!qa~P#yOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P%SOV&OOopOvqO{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P'vOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#g$zX%[$zX%_$zX~P'vO#g#gO%[&TO%_&TO~O!f&UOh&sX%[&sXz&sX#[&sX#g&sX%_&sX#Z&sXg&sX~Oh!iO%[&WO~Okealeameaneaoeapeaseazea{ea!xea#gea%[ea%_ea%zeagea!Tea!Uea%{ea!Wea![ea!Qea#[eatea!mea~P%SOsqazqa{qa#gqa%[qa%_qa%zqa~Ok!pOl!qOm!oOn!oOo!rOp!sO!xqa~PE`O%z&YOz%yX{%yX~O%uWOz%yX{%yX~Oz&]O{wX~O{&_O~Oz%lO#g%}X%[%}X%_%}Xg%}X{%}X![%}X!m%}X%z%}X~OV0lOo0cOv0qO!PrO~P'vO%z#|O#gUa%[Ua%_Ua~Oz&hO#g&PX%[&PX%_&PXn&PX~P%SOz&kO!Q&jO#g#Wa%[#Wa%_#Wa~Oz&lO#[&nO#g&rX%[&rX%_&rXg&rX~O!f$YO!r$YO#Z&qO%uWO~O#Z&qO~Oz&sO#g&tX%[&tX%_&tX~Oz&uO#g&pX%[&pX%_&pX{&pX~O!X&wO%z&xO~Oz&|On&wX~P%SOn'PO~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO%['UO~P'vOt'YO#p'WO#q'XOP#naV#naf#nah#nao#nas#nav#na!P#na!Q#na!T#na!U#na!X#na!]#na!h#na!r#na!s#na!t#na!{#na!}#na#P#na#R#na#T#na#X#na#Z#na#^#na#_#na#a#na#c#na#l#na#o#na#s#na#u#na#z#na#}#na$P#na%X#na%o#na%p#na%t#na%u#na&Z#na&[#na&]#na&^#na&_#na&`#na&a#na&b#na&c#na&d#na&e#na&f#na&g#na&h#na&i#na&j#na%Z#na%_#na~Oz'ZO#[']O{&xX~Oh'_O!X&wO~Oh!iO{$jO!X&wO~O{'eO~P%SO%['hO~OS'iO%['hO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%k!]O~P!#lO%kWi~P!#lOV!aO_!aOa!bOh!iO!X!kO!f!mO%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%m!_O%n!_O~P!&gO%mWi%nWi~P!&gOa!bOh!iO!X!kO!f!mOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%mWi%nWi%oWi%pWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~OV!aO_!aO%q!aO%r!aO%s!aO~P!)eOVWi_Wi%qWi%rWi%sWi~P!)eO!T%dO!U%cOg&VXz&VX~O%z'kO%{'kO~P,eOz'mOg&UX~Og'oO~Oz'pO{'rO!W&XX~Oo0cOv0qOz'pO{'sO!W&XX~P'vO!W'uO~Om!oOn!oOo!rOp!sOkjisjizji{ji!xji#gji%[ji%_ji%zji~Ol!qO~P!.WOlji~P!.WOk0eOl0fOm0dOn0dOo0mOp0nO~Ot'wO~P!/aOV'|Og'}Oo0cOv0qO~P'vOg'}Oz(OO~Og(QO~O!U(SO~Og(TOz(OO!T%dO!U%cO~P%SOk0eOl0fOm0dOn0dOo0mOp0nOgqa!Tqa!Uqa%{qa!Wqa![qa!Qqa#[qatqa!mqa~PE`OV'|Oo0cOv0qO!W&Sa~P'vOz(WO!W&Sa~O!W(XO~Oz(WO!T%dO!U%cO!W&Sa~P%SOV(]Oo0cOv0qO![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~P'vOz(^O![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~O![(aO~Oz(^O!T%dO!U%cO![%}a~P%SOz(dO!T%dO!U%cO![&Ta~P%SOz(gO{&lX![&lX!m&lX%z&lX~O{(kO![(mO!m(nO%z(jO~OV&OOopOvqO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~P'vOz(pO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~O!f&UOh&sa%[&saz&sa#[&sa#g&sa%_&sa#Z&sag&sa~O%[(uO~OV#sOa#tO%uWO~Oz&]O{wa~OopOvqO~P'vOz(^O#g%}a%[%}a%_%}ag%}a{%}a![%}a!m%}a%z%}a~P%SOz(zO#g%hX%[%hX%_%hX%z%hX~O%z#|O#gUi%[Ui%_Ui~O#g&Pa%[&Pa%_&Pan&Pa~P'vOz(}O#g&Pa%[&Pa%_&Pan&Pa~O%uWO#g&ra%[&ra%_&rag&ra~Oz)SO#g&ra%[&ra%_&rag&ra~Og)VO~OV)WOh$WO%uWO~O#Z)XO~O%uWO#g&ta%[&ta%_&ta~Oz)ZO#g&ta%[&ta%_&ta~Oo0cOv0qO#g&pa%[&pa%_&pa{&pa~P'vOz)^O#g&pa%[&pa%_&pa{&pa~OV)`Oa)`O%uWO~O%z)eO~Ot)hO#j)gOP#hiV#hif#hih#hio#his#hiv#hi!P#hi!Q#hi!T#hi!U#hi!X#hi!]#hi!h#hi!r#hi!s#hi!t#hi!{#hi!}#hi#P#hi#R#hi#T#hi#X#hi#Z#hi#^#hi#_#hi#a#hi#c#hi#l#hi#o#hi#s#hi#u#hi#z#hi#}#hi$P#hi%X#hi%o#hi%p#hi%t#hi%u#hi&Z#hi&[#hi&]#hi&^#hi&_#hi&`#hi&a#hi&b#hi&c#hi&d#hi&e#hi&f#hi&g#hi&h#hi&i#hi&j#hi%Z#hi%_#hi~Ot)iOP#kiV#kif#kih#kio#kis#kiv#ki!P#ki!Q#ki!T#ki!U#ki!X#ki!]#ki!h#ki!r#ki!s#ki!t#ki!{#ki!}#ki#P#ki#R#ki#T#ki#X#ki#Z#ki#^#ki#_#ki#a#ki#c#ki#l#ki#o#ki#s#ki#u#ki#z#ki#}#ki$P#ki%X#ki%o#ki%p#ki%t#ki%u#ki&Z#ki&[#ki&]#ki&^#ki&_#ki&`#ki&a#ki&b#ki&c#ki&d#ki&e#ki&f#ki&g#ki&h#ki&i#ki&j#ki%Z#ki%_#ki~OV)kOn&wa~P'vOz)lOn&wa~Oz)lOn&wa~P%SOn)pO~O%Y)tO~Ot)wO#p'WO#q)vOP#niV#nif#nih#nio#nis#niv#ni!P#ni!Q#ni!T#ni!U#ni!X#ni!]#ni!h#ni!r#ni!s#ni!t#ni!{#ni!}#ni#P#ni#R#ni#T#ni#X#ni#Z#ni#^#ni#_#ni#a#ni#c#ni#l#ni#o#ni#s#ni#u#ni#z#ni#}#ni$P#ni%X#ni%o#ni%p#ni%t#ni%u#ni&Z#ni&[#ni&]#ni&^#ni&_#ni&`#ni&a#ni&b#ni&c#ni&d#ni&e#ni&f#ni&g#ni&h#ni&i#ni&j#ni%Z#ni%_#ni~OV)zOo0cOv0qO{$jO~P'vOo0cOv0qO{&xa~P'vOz*OO{&xa~OV*SOa*TOg*WO%q*UO%uWO~O{$jO&{*YO~Oh'_O~Oh!iO{$jO~O%[*_O~O%[*aO~OV$}Oa$}Oo0cOv0qOg&Ua~P'vOz*dOg&Ua~Oo0cOv0qO{*gO!W&Xa~P'vOz*hO!W&Xa~Oo0cOv0qOz*hO{*kO!W&Xa~P'vOo0cOv0qOz*hO!W&Xa~P'vOz*hO{*kO!W&Xa~Om0dOn0dOo0mOp0nOgjikjisjizji!Tji!Uji%{ji!Wji{ji![ji#gji%[ji%_ji!Qji#[jitji!mji%zji~Ol0fO~P!N_Olji~P!N_OV'|Og*pOo0cOv0qO~P'vOn*rO~Og*pOz*tO~Og*uO~OV'|Oo0cOv0qO!W&Si~P'vOz*vO!W&Si~O!W*wO~OV(]Oo0cOv0qO![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~P'vOz*zO!T%dO!U%cO![&Ti~Oz*}O![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~O![+OO~Oa+QOo0cOv0qO![&Ti~P'vOz*zO![&Ti~O![+SO~OV+UOo0cOv0qO{&la![&la!m&la%z&la~P'vOz+VO{&la![&la!m&la%z&la~O!]+YO&n+[O![!nX~O![+^O~O{(kO![+_O~O{(kO![+_O!m+`O~OV&OOopOvqO{%hq!x%hq#g%hq%[%hq%_%hq%z%hq~P'vOz$ri{$ri!x$ri#g$ri%[$ri%_$ri%z$ri~P%SOV&OOopOvqO~P'vOV&OOo0cOv0qO#g%ha%[%ha%_%ha%z%ha~P'vOz+aO#g%ha%[%ha%_%ha%z%ha~Oz$ia#g$ia%[$ia%_$ian$ia~P%SO#g&Pi%[&Pi%_&Pin&Pi~P'vOz+dO#g#Wq%[#Wq%_#Wq~O#[+eOz$va#g$va%[$va%_$vag$va~O%uWO#g&ri%[&ri%_&rig&ri~Oz+gO#g&ri%[&ri%_&rig&ri~OV+iOh$WO%uWO~O%uWO#g&ti%[&ti%_&ti~Oo0cOv0qO#g&pi%[&pi%_&pi{&pi~P'vO{#{Oz#eX!W#eX~Oz+mO!W&uX~O!W+oO~Ot+rO#j)gOP#hqV#hqf#hqh#hqo#hqs#hqv#hq!P#hq!Q#hq!T#hq!U#hq!X#hq!]#hq!h#hq!r#hq!s#hq!t#hq!{#hq!}#hq#P#hq#R#hq#T#hq#X#hq#Z#hq#^#hq#_#hq#a#hq#c#hq#l#hq#o#hq#s#hq#u#hq#z#hq#}#hq$P#hq%X#hq%o#hq%p#hq%t#hq%u#hq&Z#hq&[#hq&]#hq&^#hq&_#hq&`#hq&a#hq&b#hq&c#hq&d#hq&e#hq&f#hq&g#hq&h#hq&i#hq&j#hq%Z#hq%_#hq~On$|az$|a~P%SOV)kOn&wi~P'vOz+yOn&wi~Oz,TO{$jO#[,TO~O#q,VOP#nqV#nqf#nqh#nqo#nqs#nqv#nq!P#nq!Q#nq!T#nq!U#nq!X#nq!]#nq!h#nq!r#nq!s#nq!t#nq!{#nq!}#nq#P#nq#R#nq#T#nq#X#nq#Z#nq#^#nq#_#nq#a#nq#c#nq#l#nq#o#nq#s#nq#u#nq#z#nq#}#nq$P#nq%X#nq%o#nq%p#nq%t#nq%u#nq&Z#nq&[#nq&]#nq&^#nq&_#nq&`#nq&a#nq&b#nq&c#nq&d#nq&e#nq&f#nq&g#nq&h#nq&i#nq&j#nq%Z#nq%_#nq~O#[,WOz%Oa{%Oa~Oo0cOv0qO{&xi~P'vOz,YO{&xi~O{#{O%z,[Og&zXz&zX~O%uWOg&zXz&zX~Oz,`Og&yX~Og,bO~O%Y,eO~O!T%dO!U%cOg&Viz&Vi~OV$}Oa$}Oo0cOv0qOg&Ui~P'vO{,hOz$la!W$la~Oo0cOv0qO{,iOz$la!W$la~P'vOo0cOv0qO{*gO!W&Xi~P'vOz,lO!W&Xi~Oo0cOv0qOz,lO!W&Xi~P'vOz,lO{,oO!W&Xi~Og$hiz$hi!W$hi~P%SOV'|Oo0cOv0qO~P'vOn,qO~OV'|Og,rOo0cOv0qO~P'vOV'|Oo0cOv0qO!W&Sq~P'vOz$gi![$gi#g$gi%[$gi%_$gig$gi{$gi!m$gi%z$gi~P%SOV(]Oo0cOv0qO~P'vOa+QOo0cOv0qO![&Tq~P'vOz,sO![&Tq~O![,tO~OV(]Oo0cOv0qO![%}q#g%}q%[%}q%_%}qg%}q{%}q!m%}q%z%}q~P'vO{,uO~OV+UOo0cOv0qO{&li![&li!m&li%z&li~P'vOz,zO{&li![&li!m&li%z&li~O!]+YO&n+[O![!na~O{(kO![,}O~OV&OOo0cOv0qO#g%hi%[%hi%_%hi%z%hi~P'vOz-OO#g%hi%[%hi%_%hi%z%hi~O%uWO#g&rq%[&rq%_&rqg&rq~Oz-RO#g&rq%[&rq%_&rqg&rq~OV)`Oa)`O%uWO!W&ua~Oz-TO!W&ua~On$|iz$|i~P%SOV)kO~P'vOV)kOn&wq~P'vOt-XOP#myV#myf#myh#myo#mys#myv#my!P#my!Q#my!T#my!U#my!X#my!]#my!h#my!r#my!s#my!t#my!{#my!}#my#P#my#R#my#T#my#X#my#Z#my#^#my#_#my#a#my#c#my#l#my#o#my#s#my#u#my#z#my#}#my$P#my%X#my%o#my%p#my%t#my%u#my&Z#my&[#my&]#my&^#my&_#my&`#my&a#my&b#my&c#my&d#my&e#my&f#my&g#my&h#my&i#my&j#my%Z#my%_#my~O%Z-]O%_-]O~P`O#q-^OP#nyV#nyf#nyh#nyo#nys#nyv#ny!P#ny!Q#ny!T#ny!U#ny!X#ny!]#ny!h#ny!r#ny!s#ny!t#ny!{#ny!}#ny#P#ny#R#ny#T#ny#X#ny#Z#ny#^#ny#_#ny#a#ny#c#ny#l#ny#o#ny#s#ny#u#ny#z#ny#}#ny$P#ny%X#ny%o#ny%p#ny%t#ny%u#ny&Z#ny&[#ny&]#ny&^#ny&_#ny&`#ny&a#ny&b#ny&c#ny&d#ny&e#ny&f#ny&g#ny&h#ny&i#ny&j#ny%Z#ny%_#ny~Oz-aO{$jO#[-aO~Oo0cOv0qO{&xq~P'vOz-dO{&xq~O%z,[Og&zaz&za~OV*SOa*TO%q*UO%uWOg&ya~Oz-hOg&ya~O$S-lO~OV$}Oa$}Oo0cOv0qO~P'vOo0cOv0qO{-mOz$li!W$li~P'vOo0cOv0qOz$li!W$li~P'vO{-mOz$li!W$li~Oo0cOv0qO{*gO~P'vOo0cOv0qO{*gO!W&Xq~P'vOz-pO!W&Xq~Oo0cOv0qOz-pO!W&Xq~P'vOs-sO!T%dO!U%cOg&Oq!W&Oq![&Oqz&Oq~P!/aOa+QOo0cOv0qO![&Ty~P'vOz$ji![$ji~P%SOa+QOo0cOv0qO~P'vOV+UOo0cOv0qO~P'vOV+UOo0cOv0qO{&lq![&lq!m&lq%z&lq~P'vO{(kO![-xO!m-yO%z-wO~OV&OOo0cOv0qO#g%hq%[%hq%_%hq%z%hq~P'vO%uWO#g&ry%[&ry%_&ryg&ry~OV)`Oa)`O%uWO!W&ui~Ot-}OP#m!RV#m!Rf#m!Rh#m!Ro#m!Rs#m!Rv#m!R!P#m!R!Q#m!R!T#m!R!U#m!R!X#m!R!]#m!R!h#m!R!r#m!R!s#m!R!t#m!R!{#m!R!}#m!R#P#m!R#R#m!R#T#m!R#X#m!R#Z#m!R#^#m!R#_#m!R#a#m!R#c#m!R#l#m!R#o#m!R#s#m!R#u#m!R#z#m!R#}#m!R$P#m!R%X#m!R%o#m!R%p#m!R%t#m!R%u#m!R&Z#m!R&[#m!R&]#m!R&^#m!R&_#m!R&`#m!R&a#m!R&b#m!R&c#m!R&d#m!R&e#m!R&f#m!R&g#m!R&h#m!R&i#m!R&j#m!R%Z#m!R%_#m!R~Oo0cOv0qO{&xy~P'vOV*SOa*TO%q*UO%uWOg&yi~O$S-lO%Z.VO%_.VO~OV.aOh._O!X.^O!].`O!h.YO!s.[O!t.[O%p.XO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O~Oo0cOv0qOz$lq!W$lq~P'vO{.fOz$lq!W$lq~Oo0cOv0qO{*gO!W&Xy~P'vOz.gO!W&Xy~Oo0cOv.kO~P'vOs-sO!T%dO!U%cOg&Oy!W&Oy![&Oyz&Oy~P!/aO{(kO![.nO~O{(kO![.nO!m.oO~OV*SOa*TO%q*UO%uWO~Oh.tO!f.rOz$TX#[$TX%j$TXg$TX~Os$TX{$TX!W$TX![$TX~P$,yO%o.vO%p.vOs$UXz$UX{$UX#[$UX%j$UX!W$UXg$UX![$UX~O!h.xO~Oz.|O#[/OO%j.yOs&|X{&|X!W&|Xg&|X~Oa/RO~P$)cOh.tOs&}Xz&}X{&}X#[&}X%j&}X!W&}Xg&}X![&}X~Os/VO{$jO~Oo0cOv0qOz$ly!W$ly~P'vOo0cOv0qO{*gO!W&X!R~P'vOz/ZO!W&X!R~Og&RXs&RX!T&RX!U&RX!W&RX![&RXz&RX~P!/aOs-sO!T%dO!U%cOg&Qa!W&Qa![&Qaz&Qa~O{(kO![/^O~O!f.rOh$[as$[az$[a{$[a#[$[a%j$[a!W$[ag$[a![$[a~O!h/eO~O%o.vO%p.vOs$Uaz$Ua{$Ua#[$Ua%j$Ua!W$Uag$Ua![$Ua~O%j.yOs$Yaz$Ya{$Ya#[$Ya!W$Yag$Ya![$Ya~Os&|a{&|a!W&|ag&|a~P$)VOz/jOs&|a{&|a!W&|ag&|a~O!W/mO~Og/mO~O{/oO~O![/pO~Oo0cOv0qO{*gO!W&X!Z~P'vO{/sO~O%z/tO~P$,yOz/uO#[/OO%j.yOg'PX~Oz/uOg'PX~Og/wO~O!h/xO~O#[/OOs%Saz%Sa{%Sa%j%Sa!W%Sag%Sa![%Sa~O#[/OO%j.yOs%Waz%Wa{%Wa!W%Wag%Wa~Os&|i{&|i!W&|ig&|i~P$)VOz/zO#[/OO%j.yO!['Oa~O{$da~P%SOg'Pa~P$)VOz0SOg'Pa~Oa0UO!['Oi~P$)cOz0WO!['Oi~Oz0WO#[/OO%j.yO!['Oi~O#[/OO%j.yOg$biz$bi~O%z0ZO~P$,yO#[/OO%j.yOg%Vaz%Va~Og'Pi~P$)VO{0^O~Oa0UO!['Oq~P$)cOz0`O!['Oq~O#[/OO%j.yOz%Ui![%Ui~Oa0UO~P$)cOa0UO!['Oy~P$)cO#[/OO%j.yOg$ciz$ci~O#[/OO%j.yOz%Uq![%Uq~Oz+aO#g%ha%[%ha%_%ha%z%ha~P%SOV&OOo0cOv0qO~P'vOn0hO~Oo0hO~P'vO{0iO~Ot0jO~P!/aO&]&Z&j&h&i&g&f&d&e&c&b&`&a&_&^&[%u~",
|
|
308697
|
+
goto: "!=l'QPPPPPP'RP'Z*s+]+v,b,}-kP.YP'Z.y.y'ZPPP'Z2cPPPPPP2c5VPP5VP7g7p=xPP={>m>pPP'Z'ZPP?PPP'Z'ZPP'Z'Z'Z'Z'Z?T?}'ZP@QP@WD_G{HPPHSH^Hb'ZPPPHeHn'RP'R'RP'RP'RP'RP'RP'R'R'RP'RPP'RPP'RP'RPHtIQIYPIaIgPIaPIaIaPPPIaPKuPLOLYL`KuPIaLiPIaPLpLvPLzM`M}NhLzLzNnN{LzLzLzLz! a! g! j! o! r! |!!S!!`!!r!!x!#S!#Y!#v!#|!$S!$^!$d!$j!$|!%W!%^!%d!%n!%t!%z!&Q!&W!&^!&h!&n!&x!'O!'X!'_!'n!'v!(Q!(XPPPPPPPPPPP!(_!(b!(h!(q!({!)WPPPPPPPPPPPP!-z!/`!3`!6pPP!6x!7X!7b!8Z!8Q!8d!8j!8m!8p!8s!8{!9lPPPPPPPPPPPPPPPPP!9o!9s!9yP!:_!:c!:o!:x!;U!;l!;o!;r!;x!<O!<U!<XP!<a!<j!=f!=i]eOn#g$j)t,P'}`OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0r}!cQ#c#p$R$d$p%e%j%p%q&`'O'g(q(|)j*o*x+w,v/q0g!P!dQ#c#p$R$d$p$u%e%j%p%q&`'O'g(q(|)j*o*x+w,v/q0g!R!eQ#c#p$R$d$p$u$v%e%j%p%q&`'O'g(q(|)j*o*x+w,v/q0g!T!fQ#c#p$R$d$p$u$v$w%e%j%p%q&`'O'g(q(|)j*o*x+w,v/q0g!V!gQ#c#p$R$d$p$u$v$w$x%e%j%p%q&`'O'g(q(|)j*o*x+w,v/q0g!X!hQ#c#p$R$d$p$u$v$w$x$y%e%j%p%q&`'O'g(q(|)j*o*x+w,v/q0g!]!hQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v/q0g'}TOTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0r&cVOYZ[dnprxy}!P!Q!U!i!k!o!p!q!s!t#[#d#g#y#{#}$Q$h$j$}%S%Z%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/Z/s0c0d0e0f0h0i0j0k0n0r%mXOYZ[dnrxy}!P!Q!U!i!k#[#d#g#y#{#}$Q$h$j$}%S%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,s,u,w,y,z-O-d-f-m-p.f.g/Z0i0j0kQ#vqQ/[.kR0o0q't`OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rh#jhz{$W$Z&l&q)S)X+f+g-RW#rq&].k0qQ$]|Q$a!OQ$n!VQ$o!WW$|!i'm*d,gS&[#s#tQ'S$iQ(s&UQ)U&nU)Y&s)Z+jW)a&w+m-T-{Q*Q']W*R'_,`-h.TQ+l)`S,_*S*TQ-Q+eQ-_,TQ-c,WQ.R-al.W-l.^._.a.z.|/R/j/o/t/y0U0Z0^Q/S.`Q/a.tQ/l/OU0P/u0S0[X0V/z0W0_0`R&Z#r!_!wYZ!P!Q!k%S%`%g'p'r's(O(W)g*g*h*k*q*t*v,h,i,k,l,o-m-p.f.g/ZR%^!vQ!{YQ%x#[Q&d#}Q&g$QR,{+YT.j-s/s^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rS#a_#b!P.[-l.^._.`.a.t.z.|/R/j/o/t/u/y/z0S0U0W0Z0[0^0_0`'|_OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rT#a_#bT#^^#_R(o%xa(l%x(n(o+`,{-y-z.oT+[(k+]R-z,{Q$PsQ+l)aR,^*RX#}s$O$P&fQ&y$aQ'a$nQ'd$oR)s'SQ)b&wV-S+m-T-{ZgOn$j)t,PXkOn)t,PQ$k!TQ&z$bQ&{$cQ'^$mQ'b$oQ)q'RQ)x'WQ){'XQ)|'YQ*Z'`S*]'c'dQ+s)gQ+u)hQ+v)iQ+z)oS+|)r*[Q,Q)vQ,R)wS,S)y)zQ,d*^Q-V+rQ-W+tQ-Y+{S-Z+},OQ-`,UQ-b,VQ-|-XQ.O-[Q.P-^Q.Q-_Q.p-}Q.q.RQ/W.dR/r/XWkOn)t,PR#mjQ'`$nS)r'S'aR,O)sQ,]*RR-f,^Q*['`Q+})rR-[,OZiOjn)t,PQ'f$pR*`'gT-j,e-ku.c-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^t.c-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^Q/S.`X0V/z0W0_0`!P.Z-l.^._.`.a.t.z.|/R/j/o/t/u/y/z0S0U0W0Z0[0^0_0`Q.w.YR/f.xg.z.].{/b/i/n/|0O0Q0]0a0bu.b-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^X.u.W.b/a0PR/c.tV0R/u0S0[R/X.dQnOS#on,PR,P)tQ&^#uR(x&^S%m#R#wS(_%m(bT(b%p&`Q%a!yQ%h!}W(P%a%h(U(YQ(U%eR(Y%jQ&i$RR)O&iQ(e%qQ*{(`T+R(e*{Q'n%OR*e'nS'q%R%SY*i'q*j,m-q.hU*j'r's'tU,m*k*l*mS-q,n,oR.h-rQ#Y]R%t#YQ#_^R%y#_Q(h%vS+W(h+XR+X(iQ+](kR,|+]Q#b_R%{#bQ#ebQ%}#cW&Q#e%}({+bQ({&cR+b0gQ$OsS&e$O&fR&f$PQ&v$_R)_&vQ&V#jR(t&VQ&m$VS)T&m+hR+h)UQ$Z{R&p$ZQ&t$]R)[&tQ+n)bR-U+nQ#hfR&S#hQ)f&zR+q)fQ&}$dS)m&})nR)n'OQ'V$kR)u'VQ'[$lS*P'[,ZR,Z*QQ,a*VR-i,aWjOn)t,PR#ljQ-k,eR.U-kd.{.]/b/i/n/|0O0Q0]0a0bR/h.{U.s.W/a0PR/`.sQ/{/nS0X/{0YR0Y/|S/v/b/cR0T/vQ.}.]R/k.}R!ZPXmOn)t,PWlOn)t,PR'T$jYfOn$j)t,PR&R#g[sOn#g$j)t,PR&d#}&bQOYZ[dnprxy}!P!Q!U!i!k!o!p!q!s!t#[#d#g#y#{#}$Q$h$j$}%S%Z%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/Z/s0c0d0e0f0h0i0j0k0n0rQ!nTQ#caQ#poU$Rt%c(SS$d!R$gQ$p!XQ$u!cQ$v!dQ$w!eQ$x!fQ$y!gQ$z!hQ%e!zQ%j#OQ%p#SQ%q#TQ&`#xQ'O$eQ'g$qQ(q&OU(|&h(}+cW)j&|)l+x+yQ*o'|Q*x(]Q+w)kQ,v+QQ/q/VR0g0lQ!yYQ!}ZQ$b!PQ$c!QQ%R!kQ't%S^'{%`%g(O(W*q*t*v^*f'p*h,k,l-p.g/ZQ*l'rQ*m'sQ+t)gQ,j*gQ,n*kQ-n,hQ-o,iQ-r,oQ.e-mR/Y.f[bOn#g$j)t,P!^!vYZ!P!Q!k%S%`%g'p'r's(O(W)g*g*h*k*q*t*v,h,i,k,l,o-m-p.f.g/ZQ#R[Q#fdS#wrxQ$UyW$_}$Q'P)pS$l!U$hW${!i'm*d,gS%v#[+Y`&P#d%|(p(r(z+a-O0kQ&a#yQ&b#{Q&c#}Q'j$}Q'z%^W([%l(^*y*}Q(`%nQ(i%wQ(v&ZS(y&_0iQ)P&jQ)Q&kU)]&u)^+kQ)d&xQ)y'WY)}'Z*O,X,Y-dQ*b'lS*n'w0jW+P(d*z,s,wW+T(g+V,y,zQ+p)eQ,U)zQ,c*YQ,x+UQ-P+dQ-e,]Q-v,uR.S-fhUOn#d#g$j%|&_'w(p(r)t,P%S!uYZ[drxy}!P!Q!U!i!k#[#y#{#}$Q$h$}%S%^%`%g%l%n%w&Z&j&k&u&x'P'W'Z'l'm'p'r's(O(W(^(d(g(z)^)e)g)p)z*O*Y*d*g*h*k*q*t*v*y*z*}+U+V+Y+a+d+k,X,Y,],g,h,i,k,l,o,s,u,w,y,z-O-d-f-m-p.f.g/Z0i0j0kQ#qpW%W!o!s0d0nQ%X!pQ%Y!qQ%[!tQ%f0cS'v%Z0hQ'x0eQ'y0fQ,p*rQ-u,qS.i-s/sR0p0rU#uq.k0qR(w&][cOn#g$j)t,PZ!xY#[#}$Q+YQ#W[Q#zrR$TxQ%b!yQ%i!}Q%o#RQ'j${Q(V%eQ(Z%jQ(c%pQ(f%qQ*|(`Q,f*bQ-t,pQ.m-uR/].lQ$StQ(R%cR*s(SQ.l-sR/}/sR#QZR#V[R%Q!iQ%O!iV*c'm*d,g!]!lQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v/q0gR%T!kT#]^#_Q%x#[R,{+YQ(m%xS+_(n(oQ,}+`Q-x,{S.n-y-zR/^.oT+Z(k+]Q$`}Q&g$QQ)o'PR+{)pQ$XzQ)W&qR+i)XQ$XzQ&o$WQ)W&qR+i)XQ#khW$Vz$W&q)XQ$[{Q&r$ZZ)R&l)S+f+g-RR$^|R)c&wXlOn)t,PQ$f!RR'Q$gQ$m!UR'R$hR*X'_Q*V'_V-g,`-h.TQ.d-lQ/P.^R/Q._U.]-l.^._Q/U.aQ/b.tQ/g.zU/i.|/j/yQ/n/RQ/|/oQ0O/tU0Q/u0S0[Q0]0UQ0a0ZR0b0^R/T.`R/d.t",
|
|
308542
308698
|
nodeNames: "\u26A0 print Escape { Comment Script AssignStatement * BinaryExpression BitOp BitOp BitOp BitOp ArithOp ArithOp @ ArithOp ** UnaryExpression ArithOp BitOp AwaitExpression await ) ( ParenthesizedExpression BinaryExpression or and CompareOp in not is UnaryExpression ConditionalExpression if else LambdaExpression lambda ParamList VariableName AssignOp , : NamedExpression AssignOp YieldExpression yield from TupleExpression ComprehensionExpression async for LambdaExpression ] [ ArrayExpression ArrayComprehensionExpression } { DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression CallExpression ArgList AssignOp MemberExpression . PropertyName Number String FormatString FormatReplacement FormatSelfDoc FormatConversion FormatSpec FormatReplacement FormatSelfDoc ContinuedString Ellipsis None Boolean TypeDef AssignOp UpdateStatement UpdateOp ExpressionStatement DeleteStatement del PassStatement pass BreakStatement break ContinueStatement continue ReturnStatement return YieldStatement PrintStatement RaiseStatement raise ImportStatement import as ScopeStatement global nonlocal AssertStatement assert TypeDefinition type TypeParamList TypeParam StatementGroup ; IfStatement Body elif WhileStatement while ForStatement TryStatement try except finally WithStatement with FunctionDefinition def ParamList AssignOp TypeDef ClassDefinition class DecoratedStatement Decorator At MatchStatement match MatchBody MatchClause case CapturePattern LiteralPattern ArithOp ArithOp AsPattern OrPattern LogicOp AttributePattern SequencePattern MappingPattern StarPattern ClassPattern PatternArgList KeywordPattern KeywordPattern Guard",
|
|
308543
308699
|
maxTerm: 277,
|
|
308544
308700
|
context: trackIndent,
|
|
@@ -308555,7 +308711,7 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
308555
308711
|
tokenizers: [legacyPrint, indentation, newlines, strings, 0, 1, 2, 3, 4],
|
|
308556
308712
|
topRules: { "Script": [0, 5] },
|
|
308557
308713
|
specialized: [{ term: 221, get: (value) => spec_identifier[value] || -1 }],
|
|
308558
|
-
tokenPrec:
|
|
308714
|
+
tokenPrec: 7652
|
|
308559
308715
|
});
|
|
308560
308716
|
const cache$1 = /* @__PURE__ */ new NodeWeakMap();
|
|
308561
308717
|
const ScopeNodes = /* @__PURE__ */ new Set([
|
|
@@ -310145,6 +310301,75 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
310145
310301
|
function noop$3() {
|
|
310146
310302
|
}
|
|
310147
310303
|
var noop_1 = noop$3;
|
|
310304
|
+
var extendStatics = function(d2, b2) {
|
|
310305
|
+
extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d3, b3) {
|
|
310306
|
+
d3.__proto__ = b3;
|
|
310307
|
+
} || function(d3, b3) {
|
|
310308
|
+
for (var p2 in b3)
|
|
310309
|
+
if (Object.prototype.hasOwnProperty.call(b3, p2))
|
|
310310
|
+
d3[p2] = b3[p2];
|
|
310311
|
+
};
|
|
310312
|
+
return extendStatics(d2, b2);
|
|
310313
|
+
};
|
|
310314
|
+
function __extends(d2, b2) {
|
|
310315
|
+
if (typeof b2 !== "function" && b2 !== null)
|
|
310316
|
+
throw new TypeError("Class extends value " + String(b2) + " is not a constructor or null");
|
|
310317
|
+
extendStatics(d2, b2);
|
|
310318
|
+
function __() {
|
|
310319
|
+
this.constructor = d2;
|
|
310320
|
+
}
|
|
310321
|
+
d2.prototype = b2 === null ? Object.create(b2) : (__.prototype = b2.prototype, new __());
|
|
310322
|
+
}
|
|
310323
|
+
function __values(o2) {
|
|
310324
|
+
var s2 = typeof Symbol === "function" && Symbol.iterator, m2 = s2 && o2[s2], i2 = 0;
|
|
310325
|
+
if (m2)
|
|
310326
|
+
return m2.call(o2);
|
|
310327
|
+
if (o2 && typeof o2.length === "number")
|
|
310328
|
+
return {
|
|
310329
|
+
next: function() {
|
|
310330
|
+
if (o2 && i2 >= o2.length)
|
|
310331
|
+
o2 = void 0;
|
|
310332
|
+
return { value: o2 && o2[i2++], done: !o2 };
|
|
310333
|
+
}
|
|
310334
|
+
};
|
|
310335
|
+
throw new TypeError(s2 ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
310336
|
+
}
|
|
310337
|
+
function __read(o2, n2) {
|
|
310338
|
+
var m2 = typeof Symbol === "function" && o2[Symbol.iterator];
|
|
310339
|
+
if (!m2)
|
|
310340
|
+
return o2;
|
|
310341
|
+
var i2 = m2.call(o2), r2, ar = [], e3;
|
|
310342
|
+
try {
|
|
310343
|
+
while ((n2 === void 0 || n2-- > 0) && !(r2 = i2.next()).done)
|
|
310344
|
+
ar.push(r2.value);
|
|
310345
|
+
} catch (error2) {
|
|
310346
|
+
e3 = { error: error2 };
|
|
310347
|
+
} finally {
|
|
310348
|
+
try {
|
|
310349
|
+
if (r2 && !r2.done && (m2 = i2["return"]))
|
|
310350
|
+
m2.call(i2);
|
|
310351
|
+
} finally {
|
|
310352
|
+
if (e3)
|
|
310353
|
+
throw e3.error;
|
|
310354
|
+
}
|
|
310355
|
+
}
|
|
310356
|
+
return ar;
|
|
310357
|
+
}
|
|
310358
|
+
function __spreadArray(to2, from, pack) {
|
|
310359
|
+
if (pack || arguments.length === 2)
|
|
310360
|
+
for (var i2 = 0, l2 = from.length, ar; i2 < l2; i2++) {
|
|
310361
|
+
if (ar || !(i2 in from)) {
|
|
310362
|
+
if (!ar)
|
|
310363
|
+
ar = Array.prototype.slice.call(from, 0, i2);
|
|
310364
|
+
ar[i2] = from[i2];
|
|
310365
|
+
}
|
|
310366
|
+
}
|
|
310367
|
+
return to2.concat(ar || Array.prototype.slice.call(from));
|
|
310368
|
+
}
|
|
310369
|
+
typeof SuppressedError === "function" ? SuppressedError : function(error2, suppressed, message) {
|
|
310370
|
+
var e3 = new Error(message);
|
|
310371
|
+
return e3.name = "SuppressedError", e3.error = error2, e3.suppressed = suppressed, e3;
|
|
310372
|
+
};
|
|
310148
310373
|
function isFunction$1(value) {
|
|
310149
310374
|
return typeof value === "function";
|
|
310150
310375
|
}
|
|
@@ -311338,6 +311563,11 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
311338
311563
|
function SoftEdgeArrowButton() {
|
|
311339
311564
|
return jsxRuntime.exports.jsxs("svg", { fill: "none", height: "15", viewBox: "0 0 16 15", width: "16", xmlns: "http://www.w3.org/2000/svg", children: [jsxRuntime.exports.jsx("path", { d: "M9.1333 0.867188C10.9545 0.867188 12.701 1.59064 13.9888 2.87839C15.2765 4.16614 16 5.9127 16 7.73385C16 9.55501 15.2765 11.3016 13.9888 12.5893C12.701 13.8771 10.9545 14.6005 9.1333 14.6005L9.1333 12.2659C10.3353 12.2659 11.488 11.7884 12.3379 10.9385C13.1878 10.0885 13.6653 8.93581 13.6653 7.73385C13.6653 6.53189 13.1878 5.37916 12.3379 4.52925C11.488 3.67933 10.3353 3.20185 9.1333 3.20185V0.867188Z", fill: "currentColor" }), jsxRuntime.exports.jsx("path", { d: "M1.14286 6.59375H14.1667V8.87946H1.14286C0.510714 8.87946 0 8.36875 0 7.73661C0 7.10446 0.510714 6.59375 1.14286 6.59375Z", fill: "currentColor" }), jsxRuntime.exports.jsx("circle", { cx: "9.13389", cy: "2.03452", fill: "currentColor", r: "1.16733" }), jsxRuntime.exports.jsx("circle", { cx: "9.13389", cy: "13.4344", fill: "currentColor", r: "1.16733" })] });
|
|
311340
311565
|
}
|
|
311566
|
+
function CollapseExpandGroupButton(props) {
|
|
311567
|
+
const { disablePointerEvents } = React.useContext(pointerCtx);
|
|
311568
|
+
const buttonText = props.showExpandAll ? "Collapse All" : "Expand All";
|
|
311569
|
+
return jsxRuntime.exports.jsx(Tooltip$1, { content: buttonText, placement: "bottom", children: jsxRuntime.exports.jsx(FloatingButton, { "aria-label": buttonText, disableEvents: disablePointerEvents, fixedSize: true, onClick: props.showExpandAll ? props.onCollapseAll : props.onExpandAll, style: { padding: "0 0.75rem" }, children: props.showExpandAll ? jsxRuntime.exports.jsx(DownLeftAndUpRightToCenter, {}) : jsxRuntime.exports.jsx(UpRightAndDownLeftFromCenter, {}) }) });
|
|
311570
|
+
}
|
|
311341
311571
|
function SaveImageButton(props) {
|
|
311342
311572
|
const [hovered, setHovered] = React.useState(false);
|
|
311343
311573
|
const { disablePointerEvents } = React.useContext(pointerCtx);
|
|
@@ -311792,6 +312022,8 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
311792
312022
|
return deque;
|
|
311793
312023
|
};
|
|
311794
312024
|
var hasCycle = hasCycle$1;
|
|
312025
|
+
const DEFAULT_NODE_SIZE$1 = 64;
|
|
312026
|
+
const TARGET_NODE_MULTIPLIER = 1.25;
|
|
311795
312027
|
function willCreateCycle(graphOriginal, edge) {
|
|
311796
312028
|
const graph = graphOriginal.copy();
|
|
311797
312029
|
try {
|
|
@@ -311828,14 +312060,14 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
311828
312060
|
function getTooltipContent(id2, data2, theme2, label, tooltipSize) {
|
|
311829
312061
|
return jsxRuntime.exports.jsxs("div", { children: [jsxRuntime.exports.jsx("div", { style: { display: "flex", flexDirection: "row", justifyContent: "center" }, children: jsxRuntime.exports.jsx("h2", { style: { fontSize: tooltipSize ? `${tooltipSize}px` : theme2.font.size }, children: label !== null && label !== void 0 ? label : id2 }) }), data2 && typeof data2 === "object" && jsxRuntime.exports.jsx("ul", { style: { margin: 0, padding: 0, paddingLeft: "1rem", paddingTop: "1rem" }, children: Object.keys(data2).map((key) => jsxRuntime.exports.jsx("li", { children: jsxRuntime.exports.jsxs("p", { style: { fontSize: tooltipSize ? `${tooltipSize}px` : theme2.font.size }, children: [jsxRuntime.exports.jsxs("strong", { children: [key, ": "] }), data2[key]] }) }, `${id2}-${String(data2[key])}`)) }), data2 && typeof data2 === "string" && jsxRuntime.exports.jsx("span", { style: { margin: 0, padding: 0, paddingTop: "1rem" }, children: data2 })] });
|
|
311830
312062
|
}
|
|
311831
|
-
function
|
|
311832
|
-
let
|
|
312063
|
+
function getNodeCategory(graph, id2, isLatent) {
|
|
312064
|
+
let category = "other";
|
|
311833
312065
|
if (isLatent) {
|
|
311834
|
-
|
|
311835
|
-
} else if (graph.inDegree(id2) > 0 && graph.outDegree(id2) === 0) {
|
|
311836
|
-
|
|
312066
|
+
category = "latent";
|
|
312067
|
+
} else if (graph.hasNode(id2) && graph.inDegree(id2) > 0 && graph.outDegree(id2) === 0) {
|
|
312068
|
+
category = "target";
|
|
311837
312069
|
}
|
|
311838
|
-
return
|
|
312070
|
+
return category;
|
|
311839
312071
|
}
|
|
311840
312072
|
function isDag(graph) {
|
|
311841
312073
|
if (hasCycle(graph)) {
|
|
@@ -311865,7 +312097,7 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
311865
312097
|
}
|
|
311866
312098
|
return void 0;
|
|
311867
312099
|
}
|
|
311868
|
-
function
|
|
312100
|
+
function getGroupToNodesMap(nodes, group, graph) {
|
|
311869
312101
|
const attributePathArray = group.split(".");
|
|
311870
312102
|
return nodes.reduce((groupAccumulator, node2) => {
|
|
311871
312103
|
const nodeAttributes = graph.getNodeAttributes(node2);
|
|
@@ -311881,6 +312113,18 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
311881
312113
|
return groupAccumulator;
|
|
311882
312114
|
}, {});
|
|
311883
312115
|
}
|
|
312116
|
+
function getNodeToGroupMap(nodes, group, graph) {
|
|
312117
|
+
const attributePathArray = group.split(".");
|
|
312118
|
+
return nodes.reduce((nodeToGroupMap, node2) => {
|
|
312119
|
+
const nodeAttributes = graph.getNodeAttributes(node2);
|
|
312120
|
+
const nodeGroup = attributePathArray.reduce(getPathInNodeAttribute, nodeAttributes);
|
|
312121
|
+
if (nodeGroup !== void 0) {
|
|
312122
|
+
const groupKey = String(nodeGroup);
|
|
312123
|
+
nodeToGroupMap[node2] = groupKey;
|
|
312124
|
+
}
|
|
312125
|
+
return nodeToGroupMap;
|
|
312126
|
+
}, {});
|
|
312127
|
+
}
|
|
311884
312128
|
function getNodeOrder(nodes, orderPath, graph) {
|
|
311885
312129
|
const attributePathArray = orderPath.split(".");
|
|
311886
312130
|
return nodes.reduce((groupAccumulator, node2) => {
|
|
@@ -311898,7 +312142,7 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
311898
312142
|
if (!Array.isArray(tiers)) {
|
|
311899
312143
|
const { group, rank } = tiers;
|
|
311900
312144
|
const nodes = graph.nodes();
|
|
311901
|
-
const tieredNodes =
|
|
312145
|
+
const tieredNodes = getGroupToNodesMap(nodes, group, graph);
|
|
311902
312146
|
if (rank) {
|
|
311903
312147
|
const missingGroups = [];
|
|
311904
312148
|
tiersArray = rank.map((key) => {
|
|
@@ -312427,7 +312671,7 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
|
|
|
312427
312671
|
function LegendList({ listItems }) {
|
|
312428
312672
|
return jsxRuntime.exports.jsx(Ul, { children: listItems.map((_a3) => {
|
|
312429
312673
|
var { label } = _a3, props = __rest$5(_a3, ["label"]);
|
|
312430
|
-
return jsxRuntime.exports.jsxs(Li, { children: [jsxRuntime.exports.jsx(LegendSymbol, Object.assign({}, props)), jsxRuntime.exports.jsx(LegendText, { children: label })] }, label);
|
|
312674
|
+
return jsxRuntime.exports.jsxs(Li, { children: [jsxRuntime.exports.jsx(LegendSymbol, Object.assign({}, props)), jsxRuntime.exports.jsx(LegendText, { children: label })] }, `${label}-${props.type}`);
|
|
312431
312675
|
}) });
|
|
312432
312676
|
}
|
|
312433
312677
|
const LegendWrapper = styled__default.default.div`
|
|
@@ -340168,7 +340412,7 @@ ${e3}`);
|
|
|
340168
340412
|
}
|
|
340169
340413
|
class GraphLayoutBuilder {
|
|
340170
340414
|
constructor() {
|
|
340171
|
-
this._nodeSize =
|
|
340415
|
+
this._nodeSize = DEFAULT_NODE_SIZE$1;
|
|
340172
340416
|
this._nodeFontSize = 16;
|
|
340173
340417
|
}
|
|
340174
340418
|
nodeSize(size2) {
|
|
@@ -347395,22 +347639,22 @@ ${e3}`);
|
|
|
347395
347639
|
}
|
|
347396
347640
|
const nodes = graph.mapNodes((id2, attributes2) => {
|
|
347397
347641
|
const parentIds = graph.inboundNeighbors(id2);
|
|
347398
|
-
let
|
|
347642
|
+
let nodeType = "latent";
|
|
347399
347643
|
let nodeOrder;
|
|
347400
347644
|
let nodeRank;
|
|
347401
347645
|
if (tiers) {
|
|
347402
347646
|
const nodeData = nodeTiersMap.get(id2);
|
|
347403
|
-
|
|
347647
|
+
nodeType = nodeData === null || nodeData === void 0 ? void 0 : nodeData.group;
|
|
347404
347648
|
nodeOrder = nodeData === null || nodeData === void 0 ? void 0 : nodeData.order;
|
|
347405
347649
|
nodeRank = nodeData === null || nodeData === void 0 ? void 0 : nodeData.rank;
|
|
347406
347650
|
}
|
|
347407
|
-
return Object.assign(Object.assign({}, attributes2), { group:
|
|
347651
|
+
return Object.assign(Object.assign({}, attributes2), { group: nodeType, ord: nodeOrder, parentIds, rank: nodeRank });
|
|
347408
347652
|
});
|
|
347409
347653
|
const stratify = ai();
|
|
347410
347654
|
return stratify(nodes);
|
|
347411
347655
|
}
|
|
347412
347656
|
function getD3Data(graph) {
|
|
347413
|
-
const nodes = graph.reduceNodes((acc, id2, attrs2) => Object.assign(Object.assign({}, acc), { [id2]: Object.assign(Object.assign({}, attrs2), {
|
|
347657
|
+
const nodes = graph.reduceNodes((acc, id2, attrs2) => Object.assign(Object.assign({}, acc), { [id2]: Object.assign(Object.assign({}, attrs2), { category: getNodeCategory(graph, id2, attrs2["meta.rendering_properties.latent"]) }) }), {});
|
|
347414
347658
|
const edges = graph.mapEdges((edgeKey, attrs2, source, target) => {
|
|
347415
347659
|
return Object.assign(Object.assign({}, attrs2), { source: nodes[source], target: nodes[target] });
|
|
347416
347660
|
});
|
|
@@ -347555,6 +347799,7 @@ ${e3}`);
|
|
|
347555
347799
|
this._linkForce = 5;
|
|
347556
347800
|
this._warmupTicks = 100;
|
|
347557
347801
|
this._tierSeparation = 300;
|
|
347802
|
+
this._groupRepelStrength = 2e3;
|
|
347558
347803
|
this.orientation = "horizontal";
|
|
347559
347804
|
}
|
|
347560
347805
|
collisionForce(force) {
|
|
@@ -347577,6 +347822,10 @@ ${e3}`);
|
|
|
347577
347822
|
this._tierSeparation = separation;
|
|
347578
347823
|
return this;
|
|
347579
347824
|
}
|
|
347825
|
+
groupRepelStrength(force) {
|
|
347826
|
+
this._groupRepelStrength = force;
|
|
347827
|
+
return this;
|
|
347828
|
+
}
|
|
347580
347829
|
build() {
|
|
347581
347830
|
return new SpringLayout(this);
|
|
347582
347831
|
}
|
|
@@ -347589,12 +347838,12 @@ ${e3}`);
|
|
|
347589
347838
|
function force(alpha) {
|
|
347590
347839
|
sortedNodesOrderArray.forEach((nodeName, index2) => {
|
|
347591
347840
|
const targetPosition = index2 * nodeSeparation;
|
|
347592
|
-
const
|
|
347593
|
-
if (
|
|
347841
|
+
const targetedNode = nodesMap.get(nodeName);
|
|
347842
|
+
if (targetedNode) {
|
|
347594
347843
|
if (orientation === "horizontal") {
|
|
347595
|
-
|
|
347844
|
+
targetedNode.vy += (targetPosition - targetedNode.y) * alpha;
|
|
347596
347845
|
} else {
|
|
347597
|
-
|
|
347846
|
+
targetedNode.vx += (targetPosition - targetedNode.x) * alpha;
|
|
347598
347847
|
}
|
|
347599
347848
|
}
|
|
347600
347849
|
});
|
|
@@ -347619,12 +347868,12 @@ ${e3}`);
|
|
|
347619
347868
|
tiersArray.forEach((tier, index2) => {
|
|
347620
347869
|
const targetPosition = index2 * tiersSeparation;
|
|
347621
347870
|
tier.forEach((nodeName) => {
|
|
347622
|
-
const
|
|
347623
|
-
if (
|
|
347871
|
+
const targetedNode = nodesMapping.get(nodeName);
|
|
347872
|
+
if (targetedNode) {
|
|
347624
347873
|
if (orientation === "horizontal") {
|
|
347625
|
-
|
|
347874
|
+
targetedNode.x = targetPosition + (targetedNode.x - targetPosition) * alpha;
|
|
347626
347875
|
} else {
|
|
347627
|
-
|
|
347876
|
+
targetedNode.y = targetPosition + (targetedNode.y - targetPosition) * alpha;
|
|
347628
347877
|
}
|
|
347629
347878
|
}
|
|
347630
347879
|
});
|
|
@@ -347634,6 +347883,33 @@ ${e3}`);
|
|
|
347634
347883
|
}
|
|
347635
347884
|
simulation2.force("layer", forceLayer());
|
|
347636
347885
|
}
|
|
347886
|
+
function createGroupEdges(nodeList) {
|
|
347887
|
+
const edges = [];
|
|
347888
|
+
if (nodeList.length > 1) {
|
|
347889
|
+
for (let i2 = 0; i2 < nodeList.length; i2++) {
|
|
347890
|
+
for (let j2 = i2 + 1; j2 < nodeList.length; j2++) {
|
|
347891
|
+
edges.push({
|
|
347892
|
+
source: nodeList[i2],
|
|
347893
|
+
target: nodeList[j2],
|
|
347894
|
+
originalMeta: {},
|
|
347895
|
+
edge_type: EdgeType.UNDIRECTED_EDGE
|
|
347896
|
+
});
|
|
347897
|
+
}
|
|
347898
|
+
}
|
|
347899
|
+
}
|
|
347900
|
+
return edges;
|
|
347901
|
+
}
|
|
347902
|
+
function createEdgesWithinAllGroups(group, graph, nodes) {
|
|
347903
|
+
const groupsToNodes = getGroupToNodesMap(graph.nodes(), group, graph);
|
|
347904
|
+
const edges = [];
|
|
347905
|
+
Object.keys(groupsToNodes).forEach((groupName) => {
|
|
347906
|
+
const nodeStringsList = groupsToNodes[groupName];
|
|
347907
|
+
const nodeList = nodeStringsList.map((nodeString) => nodes.find((node2) => node2.id === nodeString));
|
|
347908
|
+
const groupEdges = createGroupEdges(nodeList);
|
|
347909
|
+
edges.push(...groupEdges);
|
|
347910
|
+
});
|
|
347911
|
+
return edges;
|
|
347912
|
+
}
|
|
347637
347913
|
class SpringLayout extends GraphLayout {
|
|
347638
347914
|
constructor(builder) {
|
|
347639
347915
|
super(builder);
|
|
@@ -347642,12 +347918,56 @@ ${e3}`);
|
|
|
347642
347918
|
this.gravity = builder._gravity;
|
|
347643
347919
|
this.warmupTicks = builder._warmupTicks;
|
|
347644
347920
|
this.tierSeparation = builder._tierSeparation;
|
|
347921
|
+
this.groupRepelStrength = builder._groupRepelStrength;
|
|
347645
347922
|
this.orientation = builder.orientation;
|
|
347646
347923
|
this.tiers = builder.tiers;
|
|
347924
|
+
this.group = builder.group;
|
|
347647
347925
|
}
|
|
347648
347926
|
applyLayout(graph, forceUpdate) {
|
|
347649
|
-
|
|
347650
|
-
const
|
|
347927
|
+
const [edges, nodes] = getD3Data(graph);
|
|
347928
|
+
const { group, groupRepelStrength } = this;
|
|
347929
|
+
let simulation$1;
|
|
347930
|
+
if (group) {
|
|
347931
|
+
let clusterRepelForce = function(alpha) {
|
|
347932
|
+
for (let i2 = 0; i2 < groupKeys.length; i2++) {
|
|
347933
|
+
const groupA = groupKeys[i2];
|
|
347934
|
+
const nodeA = firstNodes[groupA];
|
|
347935
|
+
const groupASize = groupsToNodes[groupA].length;
|
|
347936
|
+
for (let j2 = i2 + 1; j2 < groupKeys.length; j2++) {
|
|
347937
|
+
const groupB = groupKeys[j2];
|
|
347938
|
+
const nodeB = firstNodes[groupB];
|
|
347939
|
+
const groupBSize = groupsToNodes[groupB].length;
|
|
347940
|
+
const dx = nodeA.x - nodeB.x;
|
|
347941
|
+
const dy = nodeA.y - nodeB.y;
|
|
347942
|
+
const distance = Math.sqrt(dx * dx + dy * dy);
|
|
347943
|
+
if (distance > 3e3) {
|
|
347944
|
+
continue;
|
|
347945
|
+
}
|
|
347946
|
+
const cappedDistance = Math.max(distance, 1);
|
|
347947
|
+
const strengthFactor = groupASize * groupBSize;
|
|
347948
|
+
const strength = groupRepelStrength * strengthFactor * alpha / (cappedDistance * cappedDistance);
|
|
347949
|
+
if (strength < 0.01) {
|
|
347950
|
+
continue;
|
|
347951
|
+
}
|
|
347952
|
+
nodeA.vx += nodeA.x * strength;
|
|
347953
|
+
nodeA.vy += nodeA.y * strength;
|
|
347954
|
+
nodeB.vx -= nodeB.x * strength;
|
|
347955
|
+
nodeB.vy -= nodeB.y * strength;
|
|
347956
|
+
}
|
|
347957
|
+
}
|
|
347958
|
+
};
|
|
347959
|
+
const groupsToNodes = getGroupToNodesMap(graph.nodes(), group, graph);
|
|
347960
|
+
const groupKeys = Object.keys(groupsToNodes);
|
|
347961
|
+
const firstNodes = {};
|
|
347962
|
+
groupKeys.forEach((groupKey) => {
|
|
347963
|
+
const nodeId = groupsToNodes[groupKey][0];
|
|
347964
|
+
firstNodes[groupKey] = nodes.find((node2) => node2.id === nodeId);
|
|
347965
|
+
});
|
|
347966
|
+
const groupEdges = createEdgesWithinAllGroups(this.group, graph, nodes);
|
|
347967
|
+
simulation$1 = simulation(nodes).force("clusterRepel", clusterRepelForce).force("groupLinks", link(groupEdges).id((d2) => d2.id).distance(() => this.nodeSize * this.linkForce)).force("collide", collide(this.nodeSize * this.collisionForce)).force("center", center()).stop();
|
|
347968
|
+
} else {
|
|
347969
|
+
simulation$1 = simulation(nodes).force("links", link(edges).id((d2) => d2.id).distance(() => this.nodeSize * this.linkForce)).force("charge", manyBody().strength(this.gravity)).force("collide", collide(this.nodeSize * this.collisionForce)).force("center", center()).stop();
|
|
347970
|
+
}
|
|
347651
347971
|
if (this.tiers) {
|
|
347652
347972
|
applyTierForces(simulation$1, graph, nodes, this.tiers, this.tierSeparation, this.orientation);
|
|
347653
347973
|
}
|
|
@@ -347657,7 +347977,6 @@ ${e3}`);
|
|
|
347657
347977
|
forceUpdate(newNodes);
|
|
347658
347978
|
}).restart();
|
|
347659
347979
|
const onAddNode = debounce_1$1(() => {
|
|
347660
|
-
[edges, nodes] = getD3Data(graph);
|
|
347661
347980
|
simulation$1.nodes(nodes).force("links", link(edges).id((d2) => d2.id).distance(() => this.nodeSize * this.linkForce)).alpha(0.8).alphaTarget(0).restart();
|
|
347662
347981
|
}, 100);
|
|
347663
347982
|
return Promise.resolve({
|
|
@@ -347714,18 +348033,18 @@ ${e3}`);
|
|
|
347714
348033
|
applyLayout(graph) {
|
|
347715
348034
|
const [edges, nodes] = getD3Data(graph);
|
|
347716
348035
|
const simulation$1 = simulation(nodes).alphaMin(1e-3).force("link", link(edges).id((d2) => d2.id).distance(() => this.nodeSize * 3).strength(this.targetLocation === "center" ? 0.7 : 0.1)).force("charge", manyBody().strength(this.targetLocation === "center" ? -1e3 : -2e3)).force("y", y$3().y((node2) => {
|
|
347717
|
-
if (node2.
|
|
348036
|
+
if (node2.category === "target") {
|
|
347718
348037
|
return this.nodeSize * 10;
|
|
347719
348038
|
}
|
|
347720
|
-
if (node2.
|
|
348039
|
+
if (node2.category === "latent") {
|
|
347721
348040
|
return this.nodeSize * 2;
|
|
347722
348041
|
}
|
|
347723
348042
|
return this.nodeSize * 6;
|
|
347724
348043
|
}).strength(this.targetLocation === "center" ? 0 : 0.3)).force("collide", collide(this.nodeSize + 10)).force("radial", radial((node2) => {
|
|
347725
|
-
if (node2.
|
|
348044
|
+
if (node2.category === "target") {
|
|
347726
348045
|
return 0;
|
|
347727
348046
|
}
|
|
347728
|
-
if (node2.
|
|
348047
|
+
if (node2.category === "latent") {
|
|
347729
348048
|
return this.nodeSize * 8;
|
|
347730
348049
|
}
|
|
347731
348050
|
return this.nodeSize * 4;
|
|
@@ -347733,7 +348052,7 @@ ${e3}`);
|
|
|
347733
348052
|
if (this.targetLocation === "center") {
|
|
347734
348053
|
return 1;
|
|
347735
348054
|
}
|
|
347736
|
-
return node2.
|
|
348055
|
+
return node2.category === "other" ? 0.7 : 1;
|
|
347737
348056
|
})).stop();
|
|
347738
348057
|
if (this.tiers) {
|
|
347739
348058
|
applyTierForces(simulation$1, graph, nodes, this.tiers, this.tierSeparation, this.orientation);
|
|
@@ -383431,6 +383750,20 @@ ${e3}`);
|
|
|
383431
383750
|
relativePlacementConstraint: getRelativeTieredArrayPlacement(tiersArray, orientation, tierSeparation, nodesOrder)
|
|
383432
383751
|
};
|
|
383433
383752
|
}
|
|
383753
|
+
function assignParents(elements, relationships) {
|
|
383754
|
+
const elementLookup = {};
|
|
383755
|
+
elements.forEach((element2) => {
|
|
383756
|
+
elementLookup[element2.data.id] = element2;
|
|
383757
|
+
});
|
|
383758
|
+
for (const [parent, children2] of Object.entries(relationships)) {
|
|
383759
|
+
children2.forEach((childId) => {
|
|
383760
|
+
const node2 = elementLookup[childId];
|
|
383761
|
+
if (node2) {
|
|
383762
|
+
node2.data.parent = parent;
|
|
383763
|
+
}
|
|
383764
|
+
});
|
|
383765
|
+
}
|
|
383766
|
+
}
|
|
383434
383767
|
class FcoseLayout extends GraphLayout {
|
|
383435
383768
|
constructor(builder) {
|
|
383436
383769
|
super(builder);
|
|
@@ -383446,6 +383779,7 @@ ${e3}`);
|
|
|
383446
383779
|
this.tierSeparation = builder._tierSeparation;
|
|
383447
383780
|
this.orientation = builder.orientation;
|
|
383448
383781
|
this.tiers = builder.tiers;
|
|
383782
|
+
this.group = builder.group;
|
|
383449
383783
|
}
|
|
383450
383784
|
get requiresPosition() {
|
|
383451
383785
|
return false;
|
|
@@ -383470,6 +383804,16 @@ ${e3}`);
|
|
|
383470
383804
|
group: "edges"
|
|
383471
383805
|
}))
|
|
383472
383806
|
];
|
|
383807
|
+
if (this.group) {
|
|
383808
|
+
const groupedNodes = getGroupToNodesMap(graph.nodes(), this.group, graph);
|
|
383809
|
+
Object.keys(groupedNodes).forEach((groupLabel) => {
|
|
383810
|
+
elements.push({
|
|
383811
|
+
data: { id: groupLabel, height: size2, width: size2 },
|
|
383812
|
+
group: "nodes"
|
|
383813
|
+
});
|
|
383814
|
+
});
|
|
383815
|
+
assignParents(elements, groupedNodes);
|
|
383816
|
+
}
|
|
383473
383817
|
cytoscape$1({
|
|
383474
383818
|
elements,
|
|
383475
383819
|
headless: true,
|
|
@@ -386242,6 +386586,9 @@ if (vType < 0.5) {
|
|
|
386242
386586
|
function isGraphLayoutWithTiers(layout2) {
|
|
386243
386587
|
return layout2.tiers !== void 0;
|
|
386244
386588
|
}
|
|
386589
|
+
function isGraphLayoutWithGroups(layout2) {
|
|
386590
|
+
return layout2.group !== void 0;
|
|
386591
|
+
}
|
|
386245
386592
|
const DOT_DISTANCE = 20;
|
|
386246
386593
|
const SCALE = 0.5;
|
|
386247
386594
|
class Background extends EventEmitter$1 {
|
|
@@ -388930,12 +389277,75 @@ void main(void){
|
|
|
388930
389277
|
}
|
|
388931
389278
|
return gfx;
|
|
388932
389279
|
}
|
|
389280
|
+
function calculateSourceBoundPosition(centerX, centerY, rotation2, width) {
|
|
389281
|
+
const halfSize = width / 2;
|
|
389282
|
+
let x2;
|
|
389283
|
+
let y2;
|
|
389284
|
+
if (rotation2 >= 0 && rotation2 < Math.PI / 4) {
|
|
389285
|
+
x2 = centerX + halfSize;
|
|
389286
|
+
y2 = centerY + Math.tan(rotation2) * halfSize;
|
|
389287
|
+
} else if (rotation2 >= Math.PI / 4 && rotation2 < Math.PI / 2) {
|
|
389288
|
+
x2 = centerX + Math.tan(Math.PI / 2 - rotation2) * halfSize;
|
|
389289
|
+
y2 = centerY + halfSize;
|
|
389290
|
+
} else if (rotation2 >= Math.PI / 2 && rotation2 < 3 * Math.PI / 4) {
|
|
389291
|
+
x2 = centerX - Math.tan(rotation2 - Math.PI / 2) * halfSize;
|
|
389292
|
+
y2 = centerY + halfSize;
|
|
389293
|
+
} else if (rotation2 >= Math.PI / 4 && rotation2 < 3 * Math.PI) {
|
|
389294
|
+
x2 = centerX - halfSize;
|
|
389295
|
+
y2 = centerY + Math.tan(Math.PI - rotation2) * halfSize;
|
|
389296
|
+
} else if (rotation2 <= 0 && rotation2 > -Math.PI / 4) {
|
|
389297
|
+
y2 = centerY + Math.tan(Math.PI + rotation2) * halfSize;
|
|
389298
|
+
x2 = centerX + halfSize;
|
|
389299
|
+
} else if (rotation2 <= -Math.PI / 4 && rotation2 > -Math.PI / 2) {
|
|
389300
|
+
x2 = centerX - Math.tan(-rotation2 - Math.PI / 2) * halfSize;
|
|
389301
|
+
y2 = centerY - halfSize;
|
|
389302
|
+
} else if (rotation2 <= -Math.PI / 2 && rotation2 > -3 * Math.PI / 4) {
|
|
389303
|
+
x2 = centerX + Math.tan(Math.PI / 2 + rotation2) * halfSize;
|
|
389304
|
+
y2 = centerY - halfSize;
|
|
389305
|
+
} else {
|
|
389306
|
+
x2 = centerX - halfSize;
|
|
389307
|
+
y2 = centerY + Math.tan(-rotation2) * halfSize;
|
|
389308
|
+
}
|
|
389309
|
+
return { x: x2, y: y2 };
|
|
389310
|
+
}
|
|
389311
|
+
function calculateTargetBoundPosition(centerX, centerY, rotation2, width) {
|
|
389312
|
+
const halfSize = width / 2;
|
|
389313
|
+
let x2;
|
|
389314
|
+
let y2;
|
|
389315
|
+
if (rotation2 >= 0 && rotation2 < Math.PI / 4) {
|
|
389316
|
+
x2 = centerX - halfSize;
|
|
389317
|
+
y2 = centerY - Math.tan(rotation2) * halfSize;
|
|
389318
|
+
} else if (rotation2 >= Math.PI / 4 && rotation2 < Math.PI / 2) {
|
|
389319
|
+
x2 = centerX - Math.tan(Math.PI / 2 - rotation2) * halfSize;
|
|
389320
|
+
y2 = centerY - halfSize;
|
|
389321
|
+
} else if (rotation2 >= Math.PI / 2 && rotation2 < 3 * Math.PI / 4) {
|
|
389322
|
+
x2 = centerX + Math.tan(rotation2 - Math.PI / 2) * halfSize;
|
|
389323
|
+
y2 = centerY - halfSize;
|
|
389324
|
+
} else if (rotation2 >= Math.PI / 4 && rotation2 < 3 * Math.PI) {
|
|
389325
|
+
x2 = centerX + halfSize;
|
|
389326
|
+
y2 = centerY - Math.tan(Math.PI - rotation2) * halfSize;
|
|
389327
|
+
} else if (rotation2 <= 0 && rotation2 > -Math.PI / 4) {
|
|
389328
|
+
x2 = centerX - halfSize;
|
|
389329
|
+
y2 = centerY - Math.tan(Math.PI + rotation2) * halfSize;
|
|
389330
|
+
} else if (rotation2 <= -Math.PI / 4 && rotation2 > -Math.PI / 2) {
|
|
389331
|
+
x2 = centerX + Math.tan(-rotation2 - Math.PI / 2) * halfSize;
|
|
389332
|
+
y2 = centerY + halfSize;
|
|
389333
|
+
} else if (rotation2 <= -Math.PI / 2 && rotation2 > -3 * Math.PI / 4) {
|
|
389334
|
+
x2 = centerX - Math.tan(Math.PI / 2 + rotation2) * halfSize;
|
|
389335
|
+
y2 = centerY + halfSize;
|
|
389336
|
+
} else {
|
|
389337
|
+
x2 = centerX + halfSize;
|
|
389338
|
+
y2 = centerY - Math.tan(-rotation2) * halfSize;
|
|
389339
|
+
}
|
|
389340
|
+
return { x: x2, y: y2 };
|
|
389341
|
+
}
|
|
388933
389342
|
const EDGE_LINE_SPRITE = "EDGE_LINE_SPRITE";
|
|
388934
389343
|
const EDGE_LINE_GFX = "EDGE_LINE_GFX";
|
|
388935
389344
|
const EDGE_TOP_SYMBOL = "EDGE_TOP_SYMBOL";
|
|
388936
389345
|
const EDGE_CENTER_SYMBOL = "EDGE_CENTER_SYMBOL";
|
|
388937
389346
|
const EDGE_BOTTOM_SYMBOL = "EDGE_BOTTOM_SYMBOL";
|
|
388938
389347
|
const EDGE_STRENGTH_SYMBOL = "EDGE_STRENGTH_SYMBOL";
|
|
389348
|
+
const EDGE_NUMBER_SYMBOL = "EDGE_NUMBER_SYMBOL";
|
|
388939
389349
|
const EDGE_OFFSET = 10;
|
|
388940
389350
|
const LOCAL_MULTIPLIER = 1.5;
|
|
388941
389351
|
class EdgeObject extends EventEmitter$1 {
|
|
@@ -388990,6 +389400,10 @@ void main(void){
|
|
|
388990
389400
|
edgeStrengthSymbol.name = EDGE_STRENGTH_SYMBOL;
|
|
388991
389401
|
edgeStrengthSymbol.anchor.set(0.5, 1);
|
|
388992
389402
|
edgeSymbolsGfx.addChild(edgeStrengthSymbol);
|
|
389403
|
+
const edgeSourceNumberSymbol = new Sprite();
|
|
389404
|
+
edgeSourceNumberSymbol.name = EDGE_NUMBER_SYMBOL;
|
|
389405
|
+
edgeSourceNumberSymbol.anchor.set(0.5);
|
|
389406
|
+
edgeSymbolsGfx.addChild(edgeSourceNumberSymbol);
|
|
388993
389407
|
return edgeSymbolsGfx;
|
|
388994
389408
|
}
|
|
388995
389409
|
static updateEdgeStyle(edgeGfx, edgeStyle, textureCache) {
|
|
@@ -389100,6 +389514,24 @@ void main(void){
|
|
|
389100
389514
|
edgeStrengthSymbol.position.y = edgeTopSymbol.position.y - 5;
|
|
389101
389515
|
[edgeStrengthSymbol.tint] = colorToPixi(edgeStyle.color);
|
|
389102
389516
|
edgeStrengthSymbol.alpha = 1;
|
|
389517
|
+
const edgeNumberSymbol = edgeSymbolsGfx.getChildByName(EDGE_NUMBER_SYMBOL);
|
|
389518
|
+
const numberSymbolTexture = textureCache.get(createKey(EDGE_NUMBER_SYMBOL, edgeStyle.collapsedEdgesCount), () => {
|
|
389519
|
+
if (edgeStyle.collapsedEdgesCount === void 0) {
|
|
389520
|
+
return new Graphics();
|
|
389521
|
+
}
|
|
389522
|
+
const textStyle = new TextStyle({
|
|
389523
|
+
fontFamily: "Manrope",
|
|
389524
|
+
fontSize: 18,
|
|
389525
|
+
fill: colorToPixi(edgeStyle.color)
|
|
389526
|
+
});
|
|
389527
|
+
const text2 = new Text(edgeStyle.collapsedEdgesCount, textStyle);
|
|
389528
|
+
return text2;
|
|
389529
|
+
});
|
|
389530
|
+
edgeNumberSymbol.texture = numberSymbolTexture;
|
|
389531
|
+
edgeNumberSymbol.position.y = edgeTopSymbol.position.y - 30;
|
|
389532
|
+
edgeNumberSymbol.rotation = edgeGfx.rotation <= Math.PI / 2 && edgeGfx.rotation > 0 || edgeGfx.rotation >= -3 * Math.PI / 2 && edgeGfx.rotation < -Math.PI ? -Math.PI / 2 : Math.PI / 2;
|
|
389533
|
+
[edgeStrengthSymbol.tint] = colorToPixi(edgeStyle.color);
|
|
389534
|
+
edgeNumberSymbol.alpha = 1;
|
|
389103
389535
|
if (edgeStyle.isEdgeSelected && !edgeStyle.state.selected && !edgeStyle.state.hover) {
|
|
389104
389536
|
edgeCenterSymbol.alpha = 0.3;
|
|
389105
389537
|
edgeBottomSymbol.alpha = 0.3;
|
|
@@ -389134,28 +389566,38 @@ void main(void){
|
|
|
389134
389566
|
edgeBottomSymbol.visible = !hasPoints && edgeBottomSymbol.visible && zoomState.symbol;
|
|
389135
389567
|
edgeStrengthSymbol.visible = !hasPoints && edgeStrengthSymbol.visible && zoomState.symbol;
|
|
389136
389568
|
}
|
|
389137
|
-
updatePosition(edgeStyle, sourceNodePosition, targetNodePosition, sourceSize, targetSize, viewport2, textureCache) {
|
|
389569
|
+
updatePosition(edgeStyle, sourceNodePosition, targetNodePosition, sourceSize, targetSize, viewport2, textureCache, isSourceSquare, isTargetSquare) {
|
|
389138
389570
|
var _a3;
|
|
389139
|
-
const rotation2 =
|
|
389140
|
-
const targetRadius = (targetSize - BORDER_PADDING) / 2;
|
|
389141
|
-
const targetBoundPosition = {
|
|
389142
|
-
x: targetNodePosition.x + Math.sin(rotation2) * targetRadius,
|
|
389143
|
-
y: targetNodePosition.y - Math.cos(rotation2) * targetRadius
|
|
389144
|
-
};
|
|
389571
|
+
const rotation2 = Math.atan2(targetNodePosition.y - sourceNodePosition.y, targetNodePosition.x - sourceNodePosition.x);
|
|
389145
389572
|
const sourceRadius = (sourceSize - BORDER_PADDING) / 2;
|
|
389146
|
-
const
|
|
389147
|
-
|
|
389148
|
-
|
|
389149
|
-
|
|
389573
|
+
const targetRadius = (targetSize - BORDER_PADDING) / 2;
|
|
389574
|
+
let targetBoundPosition;
|
|
389575
|
+
let sourceBoundPosition;
|
|
389576
|
+
if (isTargetSquare) {
|
|
389577
|
+
targetBoundPosition = calculateTargetBoundPosition(targetNodePosition.x, targetNodePosition.y, rotation2, targetSize - BORDER_PADDING);
|
|
389578
|
+
} else {
|
|
389579
|
+
targetBoundPosition = {
|
|
389580
|
+
x: targetNodePosition.x - Math.cos(rotation2) * targetRadius,
|
|
389581
|
+
y: targetNodePosition.y - Math.sin(rotation2) * targetRadius
|
|
389582
|
+
};
|
|
389583
|
+
}
|
|
389584
|
+
if (isSourceSquare) {
|
|
389585
|
+
sourceBoundPosition = calculateSourceBoundPosition(sourceNodePosition.x, sourceNodePosition.y, rotation2, sourceSize - BORDER_PADDING);
|
|
389586
|
+
} else {
|
|
389587
|
+
sourceBoundPosition = {
|
|
389588
|
+
x: sourceNodePosition.x + Math.cos(rotation2) * sourceRadius,
|
|
389589
|
+
y: sourceNodePosition.y + Math.sin(rotation2) * sourceRadius
|
|
389590
|
+
};
|
|
389591
|
+
}
|
|
389150
389592
|
const position2 = {
|
|
389151
389593
|
x: (sourceBoundPosition.x + targetBoundPosition.x) / 2,
|
|
389152
389594
|
y: (sourceBoundPosition.y + targetBoundPosition.y) / 2
|
|
389153
389595
|
};
|
|
389154
389596
|
const length = Math.hypot(targetBoundPosition.x - sourceBoundPosition.x, targetBoundPosition.y - sourceBoundPosition.y);
|
|
389155
389597
|
this.edgeGfx.position.copyFrom(position2);
|
|
389156
|
-
this.edgeGfx.rotation = rotation2;
|
|
389598
|
+
this.edgeGfx.rotation = rotation2 - Math.PI / 2;
|
|
389157
389599
|
this.edgeSymbolsGfx.position.copyFrom(position2);
|
|
389158
|
-
this.edgeSymbolsGfx.rotation = rotation2;
|
|
389600
|
+
this.edgeSymbolsGfx.rotation = rotation2 - Math.PI / 2;
|
|
389159
389601
|
(_a3 = edgeStyle.color) !== null && _a3 !== void 0 ? _a3 : edgeStyle.color = edgeStyle.theme.colors.grey5;
|
|
389160
389602
|
if (edgeStyle.points) {
|
|
389161
389603
|
this.edgeGfx.scale.x = 1;
|
|
@@ -389283,6 +389725,89 @@ void main(void){
|
|
|
389283
389725
|
thickness: 4
|
|
389284
389726
|
}
|
|
389285
389727
|
];
|
|
389728
|
+
const GROUP_RECTANGLE = "GROUP_RECTANGLE";
|
|
389729
|
+
const GROUP_BORDER = "GROUP_BORDER";
|
|
389730
|
+
class GroupContainerObject extends EventEmitter$1 {
|
|
389731
|
+
constructor() {
|
|
389732
|
+
super();
|
|
389733
|
+
this.state = {
|
|
389734
|
+
hover: false
|
|
389735
|
+
};
|
|
389736
|
+
this.groupContainerGfx = this.createGroupContainer();
|
|
389737
|
+
}
|
|
389738
|
+
createGroupContainer() {
|
|
389739
|
+
const groupContainerGfx = new Container();
|
|
389740
|
+
groupContainerGfx.interactive = true;
|
|
389741
|
+
groupContainerGfx.cursor = "pointer";
|
|
389742
|
+
groupContainerGfx.hitArea = new Rectangle(0, 0);
|
|
389743
|
+
MOUSE_EVENTS.forEach((eventName) => {
|
|
389744
|
+
groupContainerGfx.addEventListener(eventName, (event2) => this.emit(eventName, event2));
|
|
389745
|
+
});
|
|
389746
|
+
const containerRectangle = new Sprite();
|
|
389747
|
+
containerRectangle.name = GROUP_RECTANGLE;
|
|
389748
|
+
containerRectangle.anchor.set(0.5);
|
|
389749
|
+
groupContainerGfx.addChild(containerRectangle);
|
|
389750
|
+
const containerBorder = new Sprite();
|
|
389751
|
+
containerBorder.name = GROUP_BORDER;
|
|
389752
|
+
containerBorder.anchor.set(0.5);
|
|
389753
|
+
groupContainerGfx.addChild(containerBorder);
|
|
389754
|
+
return groupContainerGfx;
|
|
389755
|
+
}
|
|
389756
|
+
static updateContainerStyle(groupContainerGfx, nodes, textureCache, theme2) {
|
|
389757
|
+
let minX = Infinity;
|
|
389758
|
+
let maxX = -Infinity;
|
|
389759
|
+
let minY = Infinity;
|
|
389760
|
+
let maxY = -Infinity;
|
|
389761
|
+
nodes.forEach((node2) => {
|
|
389762
|
+
var _a3;
|
|
389763
|
+
let radius2 = (_a3 = node2["meta.rendering_properties.size"]) !== null && _a3 !== void 0 ? _a3 : DEFAULT_NODE_SIZE$1 * TARGET_NODE_MULTIPLIER;
|
|
389764
|
+
radius2 += 20;
|
|
389765
|
+
minX = Math.min(minX, node2.x - radius2);
|
|
389766
|
+
maxX = Math.max(maxX, node2.x + radius2);
|
|
389767
|
+
minY = Math.min(minY, node2.y - radius2);
|
|
389768
|
+
maxY = Math.max(maxY, node2.y + radius2);
|
|
389769
|
+
});
|
|
389770
|
+
const height = maxY - minY;
|
|
389771
|
+
const width = maxX - minX;
|
|
389772
|
+
groupContainerGfx.hitArea.x = -width / 2;
|
|
389773
|
+
groupContainerGfx.hitArea.y = -height / 2;
|
|
389774
|
+
groupContainerGfx.hitArea.width = width;
|
|
389775
|
+
groupContainerGfx.hitArea.height = height;
|
|
389776
|
+
const rectangleTexture = textureCache.get(createKey(GROUP_RECTANGLE, minX, maxX, minY, maxY), () => {
|
|
389777
|
+
const graphics = new Graphics();
|
|
389778
|
+
graphics.lineStyle(2, theme2.colors.primary.replace("#", "0x"), 0.5);
|
|
389779
|
+
graphics.beginFill(theme2.colors.blue2.replace("#", "0x"), 1);
|
|
389780
|
+
graphics.drawRoundedRect(minX, minY, width, height, 8);
|
|
389781
|
+
graphics.endFill();
|
|
389782
|
+
return graphics;
|
|
389783
|
+
});
|
|
389784
|
+
const rectangle = groupContainerGfx.getChildByName(GROUP_RECTANGLE);
|
|
389785
|
+
rectangle.texture = rectangleTexture;
|
|
389786
|
+
[rectangle.tint, rectangle.alpha] = colorToPixi(theme2.colors.blue2);
|
|
389787
|
+
}
|
|
389788
|
+
updatePosition(position2) {
|
|
389789
|
+
this.groupContainerGfx.position.copyFrom(position2);
|
|
389790
|
+
}
|
|
389791
|
+
updateStyle(nodes, textureCache, theme2) {
|
|
389792
|
+
let minX = Infinity;
|
|
389793
|
+
let maxX = -Infinity;
|
|
389794
|
+
let minY = Infinity;
|
|
389795
|
+
let maxY = -Infinity;
|
|
389796
|
+
nodes.forEach((node2) => {
|
|
389797
|
+
var _a3;
|
|
389798
|
+
let radius2 = (_a3 = node2["meta.rendering_properties.size"]) !== null && _a3 !== void 0 ? _a3 : DEFAULT_NODE_SIZE$1 * TARGET_NODE_MULTIPLIER;
|
|
389799
|
+
radius2 += 20;
|
|
389800
|
+
minX = Math.min(minX, node2.x - radius2);
|
|
389801
|
+
maxX = Math.max(maxX, node2.x + radius2);
|
|
389802
|
+
minY = Math.min(minY, node2.y - radius2);
|
|
389803
|
+
maxY = Math.max(maxY, node2.y + radius2);
|
|
389804
|
+
});
|
|
389805
|
+
const centerX = minX + (maxX - minX) / 2;
|
|
389806
|
+
const centerY = minY + (maxY - minY) / 2;
|
|
389807
|
+
GroupContainerObject.updateContainerStyle(this.groupContainerGfx, nodes, textureCache, theme2);
|
|
389808
|
+
this.groupContainerGfx.position.copyFrom({ x: centerX, y: centerY });
|
|
389809
|
+
}
|
|
389810
|
+
}
|
|
389286
389811
|
const SHADOWS = {
|
|
389287
389812
|
dark: {
|
|
389288
389813
|
shadowHover: "rgba(255, 255, 255, 0.3)",
|
|
@@ -389357,8 +389882,8 @@ ${letters.join("\n")}`;
|
|
|
389357
389882
|
}
|
|
389358
389883
|
return finalText.join(" ");
|
|
389359
389884
|
}
|
|
389360
|
-
function getNodeColor(
|
|
389361
|
-
switch (
|
|
389885
|
+
function getNodeColor(category, theme2) {
|
|
389886
|
+
switch (category) {
|
|
389362
389887
|
case "target":
|
|
389363
389888
|
return [theme2.colors.secondary, theme2.colors.blue1];
|
|
389364
389889
|
case "latent":
|
|
@@ -389367,13 +389892,15 @@ ${letters.join("\n")}`;
|
|
|
389367
389892
|
return [theme2.colors.blue4, theme2.colors.text];
|
|
389368
389893
|
}
|
|
389369
389894
|
}
|
|
389370
|
-
function getNodeSize(size2,
|
|
389371
|
-
const sizeMultiplier =
|
|
389895
|
+
function getNodeSize(size2, category) {
|
|
389896
|
+
const sizeMultiplier = category === "target" ? TARGET_NODE_MULTIPLIER : 1;
|
|
389372
389897
|
return size2 * sizeMultiplier;
|
|
389373
389898
|
}
|
|
389374
389899
|
const NODE_CIRCLE = "NODE_CIRCLE";
|
|
389375
389900
|
const NODE_BORDER = "NODE_BORDER";
|
|
389376
389901
|
const NODE_LABEL = "NODE_LABEL";
|
|
389902
|
+
const NODE_SQUARE = "NODE_SQUARE";
|
|
389903
|
+
const NODE_SQUARE_BORDER = "NODE_SQUARE_BORDER";
|
|
389377
389904
|
class NodeObject extends EventEmitter$1 {
|
|
389378
389905
|
constructor() {
|
|
389379
389906
|
super();
|
|
@@ -389398,10 +389925,18 @@ ${letters.join("\n")}`;
|
|
|
389398
389925
|
nodeCircle.name = NODE_CIRCLE;
|
|
389399
389926
|
nodeCircle.anchor.set(0.5);
|
|
389400
389927
|
nodeGfx.addChild(nodeCircle);
|
|
389928
|
+
const nodeSquare = new Sprite();
|
|
389929
|
+
nodeSquare.name = NODE_SQUARE;
|
|
389930
|
+
nodeSquare.anchor.set(0.5);
|
|
389931
|
+
nodeGfx.addChild(nodeSquare);
|
|
389401
389932
|
const nodeBorder = new Sprite();
|
|
389402
389933
|
nodeBorder.name = NODE_BORDER;
|
|
389403
389934
|
nodeBorder.anchor.set(0.5);
|
|
389404
389935
|
nodeGfx.addChild(nodeBorder);
|
|
389936
|
+
const nodeSquareBorder = new Sprite();
|
|
389937
|
+
nodeSquareBorder.name = NODE_SQUARE_BORDER;
|
|
389938
|
+
nodeSquareBorder.anchor.set(0.5);
|
|
389939
|
+
nodeGfx.addChild(nodeSquareBorder);
|
|
389405
389940
|
return nodeGfx;
|
|
389406
389941
|
}
|
|
389407
389942
|
createNodeLabel() {
|
|
@@ -389425,22 +389960,32 @@ ${letters.join("\n")}`;
|
|
|
389425
389960
|
nodeGfx.filters = [new F({ offset: { x: 0, y: 0 } })];
|
|
389426
389961
|
}
|
|
389427
389962
|
const dropShadow = nodeGfx.filters[0];
|
|
389428
|
-
const
|
|
389963
|
+
const nodeTextureKey = nodeStyle.isGroupNode ? NODE_SQUARE : NODE_CIRCLE;
|
|
389964
|
+
const nodeBorderTextureKey = nodeStyle.isGroupNode ? NODE_SQUARE_BORDER : NODE_BORDER;
|
|
389965
|
+
const nodeTexture = textureCache.get(createKey(nodeTextureKey, nodeStyle.size), () => {
|
|
389429
389966
|
const graphics = new SmoothGraphics();
|
|
389430
389967
|
graphics.beginFill(16777215, 1, true);
|
|
389431
|
-
|
|
389968
|
+
if (nodeStyle.isGroupNode) {
|
|
389969
|
+
graphics.drawRoundedRect(nodeStyle.size, nodeStyle.size, 2 * nodeStyle.size, 2 * nodeStyle.size, 8);
|
|
389970
|
+
} else {
|
|
389971
|
+
graphics.drawCircle(nodeStyle.size, nodeStyle.size, nodeStyle.size);
|
|
389972
|
+
}
|
|
389432
389973
|
return graphics;
|
|
389433
389974
|
});
|
|
389434
|
-
const
|
|
389435
|
-
|
|
389436
|
-
[
|
|
389437
|
-
const borderTexture = textureCache.get(createKey(
|
|
389975
|
+
const nodeBody = nodeGfx.getChildByName(nodeTextureKey);
|
|
389976
|
+
nodeBody.texture = nodeTexture;
|
|
389977
|
+
[nodeBody.tint, nodeBody.alpha] = colorToPixi(nodeStyle.color);
|
|
389978
|
+
const borderTexture = textureCache.get(createKey(nodeBorderTextureKey, outerRadius, borderWidth, nodeStyle.size), () => {
|
|
389438
389979
|
const graphics = new SmoothGraphics();
|
|
389439
389980
|
graphics.lineStyle({ color: 16777215, width: borderWidth });
|
|
389440
|
-
|
|
389981
|
+
if (nodeStyle.isGroupNode) {
|
|
389982
|
+
graphics.drawRoundedRect(outerRadius, outerRadius, 2 * nodeStyle.size, 2 * nodeStyle.size, 8);
|
|
389983
|
+
} else {
|
|
389984
|
+
graphics.drawCircle(outerRadius, outerRadius, nodeStyle.size);
|
|
389985
|
+
}
|
|
389441
389986
|
return graphics;
|
|
389442
389987
|
}, BORDER_PADDING);
|
|
389443
|
-
const border = nodeGfx.getChildByName(
|
|
389988
|
+
const border = nodeGfx.getChildByName(nodeBorderTextureKey);
|
|
389444
389989
|
border.texture = borderTexture;
|
|
389445
389990
|
[border.tint, border.alpha] = colorToPixi(nodeStyle.highlight_color);
|
|
389446
389991
|
const themeShadows = SHADOWS[nodeStyle.theme.themeType];
|
|
@@ -389457,13 +390002,13 @@ ${letters.join("\n")}`;
|
|
|
389457
390002
|
dropShadow.blur = blur;
|
|
389458
390003
|
dropShadow.padding = 10;
|
|
389459
390004
|
if (nodeStyle.isEdgeSelected && !nodeStyle.state.selected && !nodeStyle.state.attachedEdgeSelected && !nodeStyle.state.hover && !nodeStyle.isSourceOfNewEdge) {
|
|
389460
|
-
|
|
390005
|
+
nodeBody.alpha = 0.3;
|
|
389461
390006
|
border.alpha = 0.3;
|
|
389462
390007
|
}
|
|
389463
390008
|
}
|
|
389464
390009
|
static updateNodeLabelStyle(nodeLabelGfx, nodeStyle, textureCache) {
|
|
389465
|
-
const labelTexture = textureCache.get(createKey(NODE_LABEL, nodeStyle.label, nodeStyle.size, nodeStyle.
|
|
389466
|
-
const nodeRadius = getNodeSize(nodeStyle.size, nodeStyle.
|
|
390010
|
+
const labelTexture = textureCache.get(createKey(NODE_LABEL, nodeStyle.label, nodeStyle.size, nodeStyle.category), () => {
|
|
390011
|
+
const nodeRadius = getNodeSize(nodeStyle.size, nodeStyle.category);
|
|
389467
390012
|
const nodeSize2 = nodeRadius * 2;
|
|
389468
390013
|
const maxSize = nodeSize2 - 10;
|
|
389469
390014
|
const textStyle = getTextStyle(nodeStyle.label_size);
|
|
@@ -389493,7 +390038,7 @@ ${letters.join("\n")}`;
|
|
|
389493
390038
|
}
|
|
389494
390039
|
updateStyle(nodeStyle, textureCache) {
|
|
389495
390040
|
var _a3, _b, _c;
|
|
389496
|
-
const [defaultColor, defaultFontColor] = getNodeColor(nodeStyle.
|
|
390041
|
+
const [defaultColor, defaultFontColor] = getNodeColor(nodeStyle.category, nodeStyle.theme);
|
|
389497
390042
|
(_a3 = nodeStyle.color) !== null && _a3 !== void 0 ? _a3 : nodeStyle.color = defaultColor;
|
|
389498
390043
|
(_b = nodeStyle.highlight_color) !== null && _b !== void 0 ? _b : nodeStyle.highlight_color = nodeStyle.theme.colors.primary;
|
|
389499
390044
|
(_c = nodeStyle.label_color) !== null && _c !== void 0 ? _c : nodeStyle.label_color = defaultFontColor;
|
|
@@ -389585,7 +390130,9 @@ ${letters.join("\n")}`;
|
|
|
389585
390130
|
"nodeMouseover",
|
|
389586
390131
|
"nodeMouseout",
|
|
389587
390132
|
"edgeMouseout",
|
|
389588
|
-
"edgeMouseover"
|
|
390133
|
+
"edgeMouseover",
|
|
390134
|
+
"groupMouseout",
|
|
390135
|
+
"groupMouseover"
|
|
389589
390136
|
];
|
|
389590
390137
|
class Engine extends EventEmitter$1 {
|
|
389591
390138
|
constructor(graph, layout2, editable2, editorMode, theme2, constraints, zoomThresholds, errorHandler, processEdgeStyle, requireFocusToZoom) {
|
|
@@ -389604,6 +390151,8 @@ ${letters.join("\n")}`;
|
|
|
389604
390151
|
this.onAddNode = null;
|
|
389605
390152
|
this.onAddEdge = null;
|
|
389606
390153
|
this.onCleanup = null;
|
|
390154
|
+
this.groupContainerMap = /* @__PURE__ */ new Map();
|
|
390155
|
+
this.collapsedEdgesMap = /* @__PURE__ */ new Map();
|
|
389607
390156
|
this.onGraphAttributesUpdatedBound = this.onGraphAttributesUpdated.bind(this);
|
|
389608
390157
|
this.onGraphNodeAddedBound = this.onGraphNodeAdded.bind(this);
|
|
389609
390158
|
this.onGraphEdgeAddedBound = this.onGraphEdgeAdded.bind(this);
|
|
@@ -389681,10 +390230,28 @@ ${letters.join("\n")}`;
|
|
|
389681
390230
|
resetViewport() {
|
|
389682
390231
|
const nodesX = this.graph.mapNodes((nodeKey) => this.graph.getNodeAttribute(nodeKey, "x"));
|
|
389683
390232
|
const nodesY = this.graph.mapNodes((nodeKey) => this.graph.getNodeAttribute(nodeKey, "y"));
|
|
389684
|
-
|
|
389685
|
-
|
|
389686
|
-
|
|
389687
|
-
|
|
390233
|
+
let minX = Math.min(...nodesX);
|
|
390234
|
+
let maxX = Math.max(...nodesX);
|
|
390235
|
+
let minY = Math.min(...nodesY);
|
|
390236
|
+
let maxY = Math.max(...nodesY);
|
|
390237
|
+
if (isGraphLayoutWithGroups(this.layout)) {
|
|
390238
|
+
const nodes = this.graph.mapNodes((nodeKey) => this.graph.getNodeAttributes(nodeKey));
|
|
390239
|
+
const nodesInGroups = Object.values(getGroupToNodesMap(this.graph.nodes(), this.layout.group, this.graph)).flat();
|
|
390240
|
+
const updateBoundary = (node2, delta) => {
|
|
390241
|
+
if (nodesInGroups.includes(node2 === null || node2 === void 0 ? void 0 : node2.id)) {
|
|
390242
|
+
return delta;
|
|
390243
|
+
}
|
|
390244
|
+
return 0;
|
|
390245
|
+
};
|
|
390246
|
+
const nodeWithMinX = nodes.find((node2) => node2.x === minX);
|
|
390247
|
+
const nodeWithMaxX = nodes.find((node2) => node2.x === maxX);
|
|
390248
|
+
const nodeWithMinY = nodes.find((node2) => node2.y === minY);
|
|
390249
|
+
const nodeWithMaxY = nodes.find((node2) => node2.y === maxY);
|
|
390250
|
+
minX += updateBoundary(nodeWithMinX, -20);
|
|
390251
|
+
maxX += updateBoundary(nodeWithMaxX, 20);
|
|
390252
|
+
minY += updateBoundary(nodeWithMinY, -20);
|
|
390253
|
+
maxY += updateBoundary(nodeWithMaxY, 20);
|
|
390254
|
+
}
|
|
389688
390255
|
const graphWidth = Math.abs(maxX - minX);
|
|
389689
390256
|
const graphHeight = Math.abs(maxY - minY);
|
|
389690
390257
|
const graphCenter = new Point$1(minX + graphWidth / 2, minY + graphHeight / 2);
|
|
@@ -389700,6 +390267,111 @@ ${letters.join("\n")}`;
|
|
|
389700
390267
|
console.error("Error resetting viewport", err);
|
|
389701
390268
|
}
|
|
389702
390269
|
}
|
|
390270
|
+
collapseAllGroups() {
|
|
390271
|
+
if (isGraphLayoutWithGroups(this.layout)) {
|
|
390272
|
+
const layoutGroup = this.layout.group;
|
|
390273
|
+
const groupsObject = getGroupToNodesMap(this.graph.nodes(), layoutGroup, this.graph);
|
|
390274
|
+
const nodeToGroup = getNodeToGroupMap(this.graph.nodes(), layoutGroup, this.graph);
|
|
390275
|
+
const groupsArray = Object.keys(groupsObject);
|
|
390276
|
+
groupsArray.forEach((group) => {
|
|
390277
|
+
const groupNodeAttributes = {
|
|
390278
|
+
id: group,
|
|
390279
|
+
originalMeta: {},
|
|
390280
|
+
variable_type: "groupNode"
|
|
390281
|
+
};
|
|
390282
|
+
this.dropGroupContainer(group);
|
|
390283
|
+
if (!this.graph.hasNode(group)) {
|
|
390284
|
+
this.graph.addNode(group, groupNodeAttributes);
|
|
390285
|
+
} else {
|
|
390286
|
+
this.createNode(group, groupNodeAttributes);
|
|
390287
|
+
}
|
|
390288
|
+
});
|
|
390289
|
+
groupsArray.forEach((group) => {
|
|
390290
|
+
const collapsedEdges = [];
|
|
390291
|
+
this.graph.forEachEdge((edgeKey) => {
|
|
390292
|
+
var _a3, _b;
|
|
390293
|
+
const initialSource = this.graph.source(edgeKey);
|
|
390294
|
+
const initialTarget = this.graph.target(edgeKey);
|
|
390295
|
+
if (nodeToGroup[initialSource] === group || nodeToGroup[initialTarget] === group || groupsArray.includes(initialSource) || groupsArray.includes(initialTarget)) {
|
|
390296
|
+
const finalTarget = (_a3 = nodeToGroup[initialTarget]) !== null && _a3 !== void 0 ? _a3 : initialTarget;
|
|
390297
|
+
const finalSource = (_b = nodeToGroup[initialSource]) !== null && _b !== void 0 ? _b : initialSource;
|
|
390298
|
+
const edgeHasChanged = !(initialSource === finalSource && initialTarget === finalTarget);
|
|
390299
|
+
const edgeIsNotWithinTheGroup = finalSource !== finalTarget;
|
|
390300
|
+
const graphHasFinalEdge = this.graph.hasEdge(finalSource, finalTarget);
|
|
390301
|
+
const finalSourceAttributes = this.graph.getNodeAttributes(finalSource);
|
|
390302
|
+
const finalTargetAttributes = this.graph.getNodeAttributes(finalTarget);
|
|
390303
|
+
const currentEdgeAttributes = this.graph.getEdgeAttributes(edgeKey);
|
|
390304
|
+
let numberOfCollapsedEdges = graphHasFinalEdge ? this.graph.getEdgeAttributes(finalSource, finalTarget)["meta.rendering_properties.collapsedEdgesCount"] : 0;
|
|
390305
|
+
if (graphHasFinalEdge && edgeHasChanged && group === finalSource) {
|
|
390306
|
+
numberOfCollapsedEdges += 1;
|
|
390307
|
+
}
|
|
390308
|
+
const edgeAttributes = Object.assign(Object.assign({}, currentEdgeAttributes), { "meta.rendering_properties.collapsedEdgesCount": numberOfCollapsedEdges });
|
|
390309
|
+
if (initialSource !== finalSource || initialTarget !== finalTarget) {
|
|
390310
|
+
collapsedEdges.push(Object.assign({ id: edgeKey }, edgeAttributes));
|
|
390311
|
+
this.dropEdge(edgeKey);
|
|
390312
|
+
}
|
|
390313
|
+
if (edgeIsNotWithinTheGroup) {
|
|
390314
|
+
if (!graphHasFinalEdge && group === finalSource) {
|
|
390315
|
+
edgeAttributes["meta.rendering_properties.collapsedEdgesCount"] = 1;
|
|
390316
|
+
this.graph.addEdge(finalSource, finalTarget, edgeAttributes);
|
|
390317
|
+
} else if (!this.edgeMap.has(edgeKey) && !edgeHasChanged) {
|
|
390318
|
+
this.createEdge(edgeKey, edgeAttributes, finalSource, finalTarget, finalSourceAttributes, finalTargetAttributes);
|
|
390319
|
+
} else if (graphHasFinalEdge) {
|
|
390320
|
+
this.graph.setEdgeAttribute(finalSource, finalTarget, "meta.rendering_properties.collapsedEdgesCount", numberOfCollapsedEdges);
|
|
390321
|
+
}
|
|
390322
|
+
}
|
|
390323
|
+
}
|
|
390324
|
+
});
|
|
390325
|
+
this.collapsedEdgesMap.set(group, collapsedEdges);
|
|
390326
|
+
});
|
|
390327
|
+
Object.values(groupsObject).forEach((nodes) => {
|
|
390328
|
+
nodes.forEach((node2) => {
|
|
390329
|
+
if (this.nodeMap.has(node2)) {
|
|
390330
|
+
this.dropNode(node2);
|
|
390331
|
+
}
|
|
390332
|
+
});
|
|
390333
|
+
});
|
|
390334
|
+
this.requestRender();
|
|
390335
|
+
}
|
|
390336
|
+
}
|
|
390337
|
+
expandAllGroups() {
|
|
390338
|
+
if (this.graph.nodes().some((node2) => this.graph.getNodeAttribute(node2, "variable_type") === "groupNode")) {
|
|
390339
|
+
this.graph.forEachEdge((edgeKey) => {
|
|
390340
|
+
const source = this.graph.source(edgeKey);
|
|
390341
|
+
const target = this.graph.target(edgeKey);
|
|
390342
|
+
const isSourceGroupNode = this.graph.getNodeAttribute(source, "variable_type") === "groupNode";
|
|
390343
|
+
const isTargetGroupNode = this.graph.getNodeAttribute(target, "variable_type") === "groupNode";
|
|
390344
|
+
if (isSourceGroupNode || isTargetGroupNode) {
|
|
390345
|
+
this.dropEdge(edgeKey);
|
|
390346
|
+
this.graph.setEdgeAttribute(source, target, "meta.rendering_properties.collapsedEdgesCount", 0);
|
|
390347
|
+
}
|
|
390348
|
+
});
|
|
390349
|
+
this.graph.forEachNode((node2, attributes2) => {
|
|
390350
|
+
if (this.graph.getNodeAttribute(node2, "variable_type") !== "groupNode") {
|
|
390351
|
+
if (!this.nodeMap.has(node2)) {
|
|
390352
|
+
this.createNode(node2, attributes2);
|
|
390353
|
+
}
|
|
390354
|
+
} else {
|
|
390355
|
+
this.dropNode(node2);
|
|
390356
|
+
}
|
|
390357
|
+
});
|
|
390358
|
+
this.collapsedEdgesMap.forEach((edges) => {
|
|
390359
|
+
edges.forEach((edge) => {
|
|
390360
|
+
var _a3, _b;
|
|
390361
|
+
if (!this.edgeMap.has(edge.id)) {
|
|
390362
|
+
const source = (_a3 = edge.extras) === null || _a3 === void 0 ? void 0 : _a3.source.identifier;
|
|
390363
|
+
const target = (_b = edge.extras) === null || _b === void 0 ? void 0 : _b.destination.identifier;
|
|
390364
|
+
const sourceNodeAttributes = this.graph.getNodeAttributes(source);
|
|
390365
|
+
const targetNodeAttributes = this.graph.getNodeAttributes(target);
|
|
390366
|
+
this.createEdge(edge.id, edge, source, target, sourceNodeAttributes, targetNodeAttributes);
|
|
390367
|
+
}
|
|
390368
|
+
});
|
|
390369
|
+
});
|
|
390370
|
+
this.createGroupContainers();
|
|
390371
|
+
this.debouncedUpdateLayout();
|
|
390372
|
+
this.requestRender();
|
|
390373
|
+
}
|
|
390374
|
+
}
|
|
389703
390375
|
searchNodes(ids) {
|
|
389704
390376
|
const newNodes = ids.filter((newId2) => !this.searchResults.includes(newId2));
|
|
389705
390377
|
const removedNodes = this.searchResults.filter((oldId) => !ids.includes(oldId));
|
|
@@ -389822,10 +390494,12 @@ ${letters.join("\n")}`;
|
|
|
389822
390494
|
this.background.updatePosition(this.container);
|
|
389823
390495
|
this.app.stage.addChild(this.background.sprite);
|
|
389824
390496
|
this.app.stage.addChild(this.viewport);
|
|
390497
|
+
this.groupContainerLayer = new Container();
|
|
389825
390498
|
this.edgeLayer = new Container();
|
|
389826
390499
|
this.edgeSymbolsLayer = new Container();
|
|
389827
390500
|
this.nodeLayer = new Container();
|
|
389828
390501
|
this.nodeLabelLayer = new Container();
|
|
390502
|
+
this.viewport.addChild(this.groupContainerLayer);
|
|
389829
390503
|
this.viewport.addChild(this.edgeLayer);
|
|
389830
390504
|
this.viewport.addChild(this.edgeSymbolsLayer);
|
|
389831
390505
|
this.viewport.addChild(this.nodeLayer);
|
|
@@ -389946,12 +390620,19 @@ ${letters.join("\n")}`;
|
|
|
389946
390620
|
});
|
|
389947
390621
|
edge.addListener("mouseup", (event2) => {
|
|
389948
390622
|
if (this.mousedownEdgeKey === id2) {
|
|
390623
|
+
if (isGraphLayoutWithGroups(this.layout)) {
|
|
390624
|
+
const groupsObject = getGroupToNodesMap(this.graph.nodes(), this.layout.group, this.graph);
|
|
390625
|
+
if (Object.keys(groupsObject).includes(source) || Object.keys(groupsObject).includes(target)) {
|
|
390626
|
+
return;
|
|
390627
|
+
}
|
|
390628
|
+
}
|
|
389949
390629
|
this.emit("edgeClick", event2, source, target);
|
|
389950
390630
|
}
|
|
389951
390631
|
});
|
|
389952
390632
|
this.updateEdgeStyle(id2, attributes2, source, target, sourceAttributes, targetAttributes);
|
|
389953
390633
|
}
|
|
389954
390634
|
createGraph() {
|
|
390635
|
+
this.createGroupContainers();
|
|
389955
390636
|
this.graph.forEachNode(this.createNode.bind(this));
|
|
389956
390637
|
this.graph.forEachEdge(this.createEdge.bind(this));
|
|
389957
390638
|
this.updateStrengthRange();
|
|
@@ -389992,6 +390673,12 @@ ${letters.join("\n")}`;
|
|
|
389992
390673
|
const xOffset = Math.abs(this.nodeMousedownPosition.x - event2.global.x);
|
|
389993
390674
|
const yOffset = Math.abs(this.nodeMousedownPosition.y - event2.global.y);
|
|
389994
390675
|
if (xOffset <= 2 && yOffset <= 2) {
|
|
390676
|
+
if (isGraphLayoutWithGroups(this.layout)) {
|
|
390677
|
+
const groupsObject = getGroupToNodesMap(this.graph.nodes(), this.layout.group, this.graph);
|
|
390678
|
+
if (Object.keys(groupsObject).includes(id2)) {
|
|
390679
|
+
return;
|
|
390680
|
+
}
|
|
390681
|
+
}
|
|
389995
390682
|
this.emit("nodeClick", event2, id2);
|
|
389996
390683
|
}
|
|
389997
390684
|
}
|
|
@@ -390006,6 +390693,39 @@ ${letters.join("\n")}`;
|
|
|
390006
390693
|
});
|
|
390007
390694
|
this.updateNodeStyle(id2, attributes2);
|
|
390008
390695
|
}
|
|
390696
|
+
createGroupContainer(id2, nodes) {
|
|
390697
|
+
const groupContainer = new GroupContainerObject();
|
|
390698
|
+
this.groupContainerLayer.addChild(groupContainer.groupContainerGfx);
|
|
390699
|
+
this.groupContainerMap.set(id2, groupContainer);
|
|
390700
|
+
groupContainer.addListener("mouseover", (event2) => {
|
|
390701
|
+
this.hoverGroupContainer(id2, nodes);
|
|
390702
|
+
if (!this.mousedownNodeKey) {
|
|
390703
|
+
this.emit("groupMouseover", event2, id2);
|
|
390704
|
+
}
|
|
390705
|
+
});
|
|
390706
|
+
groupContainer.addListener("mouseout", (event2) => {
|
|
390707
|
+
const local = groupContainer.groupContainerGfx.toLocal(event2.global);
|
|
390708
|
+
const isInGroupContainer = groupContainer.groupContainerGfx.hitArea.contains(local.x, local.y);
|
|
390709
|
+
if (!isInGroupContainer) {
|
|
390710
|
+
this.unhoverGroupContainer(id2, nodes);
|
|
390711
|
+
this.emit("groupMouseout", event2, id2);
|
|
390712
|
+
}
|
|
390713
|
+
if (!this.editable && !this.isMovingNode && !this.isCreatingEdge) {
|
|
390714
|
+
this.mousedownNodeKey = null;
|
|
390715
|
+
}
|
|
390716
|
+
});
|
|
390717
|
+
this.updateGroupContainerStyle(id2, nodes);
|
|
390718
|
+
}
|
|
390719
|
+
createGroupContainers() {
|
|
390720
|
+
if (isGraphLayoutWithGroups(this.layout)) {
|
|
390721
|
+
const { group } = this.layout;
|
|
390722
|
+
const groups = getGroupToNodesMap(this.graph.nodes(), group, this.graph);
|
|
390723
|
+
Object.keys(groups).forEach((gr) => {
|
|
390724
|
+
const nodesIngroup = groups[gr].map((node2) => this.graph.getNodeAttributes(node2));
|
|
390725
|
+
this.createGroupContainer(gr, nodesIngroup);
|
|
390726
|
+
});
|
|
390727
|
+
}
|
|
390728
|
+
}
|
|
390009
390729
|
dropEdge(id2) {
|
|
390010
390730
|
const edge = this.edgeMap.get(id2);
|
|
390011
390731
|
if (edge) {
|
|
@@ -390023,6 +390743,14 @@ ${letters.join("\n")}`;
|
|
|
390023
390743
|
this.requestRender();
|
|
390024
390744
|
}
|
|
390025
390745
|
}
|
|
390746
|
+
dropGroupContainer(id2) {
|
|
390747
|
+
const container = this.groupContainerMap.get(id2);
|
|
390748
|
+
if (container) {
|
|
390749
|
+
this.groupContainerLayer.removeChild(container.groupContainerGfx);
|
|
390750
|
+
this.groupContainerMap.delete(id2);
|
|
390751
|
+
this.requestRender();
|
|
390752
|
+
}
|
|
390753
|
+
}
|
|
390026
390754
|
enableDragBehaviour() {
|
|
390027
390755
|
var _a3;
|
|
390028
390756
|
if (this.dragMode === "move_node") {
|
|
@@ -390058,7 +390786,8 @@ ${letters.join("\n")}`;
|
|
|
390058
390786
|
strength: this.getRelativeStrength(attributes2),
|
|
390059
390787
|
theme: this.theme,
|
|
390060
390788
|
thickness: attributes2["meta.rendering_properties.thickness"],
|
|
390061
|
-
type: attributes2.edge_type
|
|
390789
|
+
type: attributes2.edge_type,
|
|
390790
|
+
collapsedEdges: attributes2["meta.rendering_properties.collapsedEdgesCount"]
|
|
390062
390791
|
};
|
|
390063
390792
|
if (this.processEdgeStyle) {
|
|
390064
390793
|
return this.processEdgeStyle(edgeStyle, attributes2);
|
|
@@ -390067,10 +390796,10 @@ ${letters.join("\n")}`;
|
|
|
390067
390796
|
}
|
|
390068
390797
|
getNodeStyle(node2, attributes2) {
|
|
390069
390798
|
var _a3, _b, _c, _d;
|
|
390070
|
-
const group =
|
|
390799
|
+
const group = getNodeCategory(this.graph, attributes2.id, attributes2["meta.rendering_properties.latent"]);
|
|
390071
390800
|
return {
|
|
390072
390801
|
color: attributes2["meta.rendering_properties.color"],
|
|
390073
|
-
group,
|
|
390802
|
+
category: group,
|
|
390074
390803
|
highlight_color: attributes2["meta.rendering_properties.highlight_color"],
|
|
390075
390804
|
isEdgeSelected: !!this.selectedEdge,
|
|
390076
390805
|
isSourceOfNewEdge: this.isCreatingEdge && this.mousedownNodeKey === attributes2.id,
|
|
@@ -390079,7 +390808,8 @@ ${letters.join("\n")}`;
|
|
|
390079
390808
|
label_size: (_b = attributes2["meta.rendering_properties.label_size"]) !== null && _b !== void 0 ? _b : this.layout.nodeFontSize,
|
|
390080
390809
|
size: (_c = attributes2["meta.rendering_properties.size"]) !== null && _c !== void 0 ? _c : getNodeSize((_d = attributes2["meta.rendering_properties.size"]) !== null && _d !== void 0 ? _d : this.layout.nodeSize, group),
|
|
390081
390810
|
state: node2.state,
|
|
390082
|
-
theme: this.theme
|
|
390811
|
+
theme: this.theme,
|
|
390812
|
+
isGroupNode: attributes2.variable_type === "groupNode"
|
|
390083
390813
|
};
|
|
390084
390814
|
}
|
|
390085
390815
|
hoverEdge(id2) {
|
|
@@ -390091,6 +390821,15 @@ ${letters.join("\n")}`;
|
|
|
390091
390821
|
this.updateEdgeStyleByKey(id2);
|
|
390092
390822
|
this.requestRender();
|
|
390093
390823
|
}
|
|
390824
|
+
hoverGroupContainer(id2, nodes) {
|
|
390825
|
+
const groupContainer = this.groupContainerMap.get(id2);
|
|
390826
|
+
if (groupContainer.state.hover) {
|
|
390827
|
+
return;
|
|
390828
|
+
}
|
|
390829
|
+
groupContainer.state.hover = true;
|
|
390830
|
+
this.updateGroupContainerStyle(id2, nodes);
|
|
390831
|
+
this.requestRender();
|
|
390832
|
+
}
|
|
390094
390833
|
hoverNode(id2) {
|
|
390095
390834
|
const node2 = this.nodeMap.get(id2);
|
|
390096
390835
|
if (node2.state.hover) {
|
|
@@ -390234,15 +390973,26 @@ ${letters.join("\n")}`;
|
|
|
390234
390973
|
this.updateNodeStyleByKey(id2);
|
|
390235
390974
|
this.requestRender();
|
|
390236
390975
|
}
|
|
390976
|
+
unhoverGroupContainer(id2, nodes) {
|
|
390977
|
+
const groupContainer = this.groupContainerMap.get(id2);
|
|
390978
|
+
if (!groupContainer.state.hover) {
|
|
390979
|
+
return;
|
|
390980
|
+
}
|
|
390981
|
+
groupContainer.state.hover = false;
|
|
390982
|
+
this.updateGroupContainerStyle(id2, nodes);
|
|
390983
|
+
this.requestRender();
|
|
390984
|
+
}
|
|
390237
390985
|
updateEdgeStyle(id2, attributes2, source, target, sourceNodeAttributes, targetNodeAttributes) {
|
|
390238
390986
|
const edge = this.edgeMap.get(id2);
|
|
390239
390987
|
if (edge && this.viewport) {
|
|
390240
390988
|
const sourceNode = this.nodeMap.get(source);
|
|
390241
390989
|
const targetNode = this.nodeMap.get(target);
|
|
390990
|
+
const isSourceGroupNode = sourceNodeAttributes.variable_type === "groupNode";
|
|
390991
|
+
const isTargetGroupNode = targetNodeAttributes.variable_type === "groupNode";
|
|
390242
390992
|
const sourceNodePosition = { x: sourceNodeAttributes.x, y: sourceNodeAttributes.y };
|
|
390243
390993
|
const targetNodePosition = { x: targetNodeAttributes.x, y: targetNodeAttributes.y };
|
|
390244
390994
|
const edgeStyle = this.getEdgeStyle(edge, attributes2, this.getConstraint(source, target));
|
|
390245
|
-
edge.updatePosition(edgeStyle, sourceNodePosition, targetNodePosition, sourceNode.nodeGfx.width, targetNode.nodeGfx.width, this.viewport, this.textureCache);
|
|
390995
|
+
edge.updatePosition(edgeStyle, sourceNodePosition, targetNodePosition, sourceNode.nodeGfx.width, targetNode.nodeGfx.width, this.viewport, this.textureCache, isSourceGroupNode, isTargetGroupNode);
|
|
390246
390996
|
}
|
|
390247
390997
|
}
|
|
390248
390998
|
updateEdgeStyleByKey(edgeKey) {
|
|
@@ -390320,6 +391070,12 @@ ${letters.join("\n")}`;
|
|
|
390320
391070
|
node2.updateStyle(this.getNodeStyle(node2, attributes2), this.textureCache);
|
|
390321
391071
|
}
|
|
390322
391072
|
}
|
|
391073
|
+
updateGroupContainerStyle(id2, nodes) {
|
|
391074
|
+
const groupContainer = this.groupContainerMap.get(id2);
|
|
391075
|
+
if (groupContainer) {
|
|
391076
|
+
groupContainer.updateStyle(nodes, this.textureCache, this.theme);
|
|
391077
|
+
}
|
|
391078
|
+
}
|
|
390323
391079
|
updateNodeStyleByKey(nodeKey) {
|
|
390324
391080
|
const nodeAttributes = this.graph.getNodeAttributes(nodeKey);
|
|
390325
391081
|
this.updateNodeStyle(nodeKey, nodeAttributes);
|
|
@@ -390337,6 +391093,14 @@ ${letters.join("\n")}`;
|
|
|
390337
391093
|
updateStyles() {
|
|
390338
391094
|
this.graph.forEachNode(this.updateNodeStyle.bind(this));
|
|
390339
391095
|
this.graph.forEachEdge(this.updateEdgeStyle.bind(this));
|
|
391096
|
+
if (isGraphLayoutWithGroups(this.layout)) {
|
|
391097
|
+
const { group } = this.layout;
|
|
391098
|
+
const groupsObject = getGroupToNodesMap(this.graph.nodes(), group, this.graph);
|
|
391099
|
+
Object.keys(groupsObject).forEach((gr) => {
|
|
391100
|
+
const nodesIngroup = groupsObject[gr].map((node2) => this.graph.getNodeAttributes(node2));
|
|
391101
|
+
this.updateGroupContainerStyle(gr, nodesIngroup);
|
|
391102
|
+
});
|
|
391103
|
+
}
|
|
390340
391104
|
}
|
|
390341
391105
|
}
|
|
390342
391106
|
function useRenderEngine({ parentRef, graph, layout: layout2, editable: editable2, editorMode, constraints, errorHandler, processEdgeStyle, zoomThresholds, requireFocusToZoom }) {
|
|
@@ -390412,6 +391176,16 @@ ${letters.join("\n")}`;
|
|
|
390412
391176
|
engine.current.resetViewport();
|
|
390413
391177
|
}
|
|
390414
391178
|
},
|
|
391179
|
+
collapseGroups: () => {
|
|
391180
|
+
if (engine.current.initialized) {
|
|
391181
|
+
engine.current.collapseAllGroups();
|
|
391182
|
+
}
|
|
391183
|
+
},
|
|
391184
|
+
expandGroups: () => {
|
|
391185
|
+
if (engine.current.initialized) {
|
|
391186
|
+
engine.current.expandAllGroups();
|
|
391187
|
+
}
|
|
391188
|
+
},
|
|
390415
391189
|
extractImage: () => {
|
|
390416
391190
|
if (engine.current.initialized) {
|
|
390417
391191
|
return engine.current.extractImage();
|
|
@@ -391618,7 +392392,8 @@ ${letters.join("\n")}`;
|
|
|
391618
392392
|
const handleError = (e3) => {
|
|
391619
392393
|
setError(e3);
|
|
391620
392394
|
};
|
|
391621
|
-
const
|
|
392395
|
+
const layoutHasGroup = React.useMemo(() => layout2.group !== void 0, [layout2]);
|
|
392396
|
+
const { getCenterPosition, useEngineEvent, resetViewport, collapseGroups, expandGroups, resetLayout, extractImage, onSetDragMode, onNodeSelected, onEdgeSelected, onSearchResults, onUpdateConstraints, onSetFocus } = useRenderEngine({
|
|
391622
392397
|
constraints: props.initialConstraints,
|
|
391623
392398
|
editable: props.editable,
|
|
391624
392399
|
editorMode: state.editorMode,
|
|
@@ -391639,6 +392414,7 @@ ${letters.join("\n")}`;
|
|
|
391639
392414
|
localStorage.setItem("showGraphZoomPrompt", "false");
|
|
391640
392415
|
}
|
|
391641
392416
|
const [hasFocus, setHasFocus] = React.useState(false);
|
|
392417
|
+
const [showCollapseAll, setShowCollapseAll] = React.useState(true);
|
|
391642
392418
|
function onPaneFocus(focus) {
|
|
391643
392419
|
setHasFocus(focus);
|
|
391644
392420
|
onSetFocus(focus);
|
|
@@ -391683,6 +392459,22 @@ ${letters.join("\n")}`;
|
|
|
391683
392459
|
}
|
|
391684
392460
|
}, [state.editorMode, selectedEdge, constraints]);
|
|
391685
392461
|
function onRemoveNode() {
|
|
392462
|
+
var _a4, _b2;
|
|
392463
|
+
if (layoutHasGroup) {
|
|
392464
|
+
const layoutGroup = layout2.group;
|
|
392465
|
+
const groupsObject = getGroupToNodesMap(state.graph.nodes(), layoutGroup, state.graph);
|
|
392466
|
+
const nodesToGroups = getNodeToGroupMap(state.graph.nodes(), layoutGroup, state.graph);
|
|
392467
|
+
const group = nodesToGroups[selectedNode];
|
|
392468
|
+
if (((_a4 = groupsObject[group]) === null || _a4 === void 0 ? void 0 : _a4.length) === 1) {
|
|
392469
|
+
(_b2 = props.onNotify) === null || _b2 === void 0 ? void 0 : _b2.call(props, {
|
|
392470
|
+
key: "delete-group",
|
|
392471
|
+
message: "Cannot delete the last node in a group",
|
|
392472
|
+
status: Status.WARNING,
|
|
392473
|
+
title: "Group deletion"
|
|
392474
|
+
});
|
|
392475
|
+
return;
|
|
392476
|
+
}
|
|
392477
|
+
}
|
|
391686
392478
|
api2.removeNode(selectedNode);
|
|
391687
392479
|
setSelectedNode(null);
|
|
391688
392480
|
}
|
|
@@ -391715,9 +392507,23 @@ ${letters.join("\n")}`;
|
|
|
391715
392507
|
}
|
|
391716
392508
|
}
|
|
391717
392509
|
function onAddEdge(edge) {
|
|
391718
|
-
var _a4;
|
|
392510
|
+
var _a4, _b2;
|
|
392511
|
+
if (layoutHasGroup) {
|
|
392512
|
+
const layoutGroup = layout2.group;
|
|
392513
|
+
const groupsObject = getGroupToNodesMap(state.graph.nodes(), layoutGroup, state.graph);
|
|
392514
|
+
const groups = Object.keys(groupsObject);
|
|
392515
|
+
if (groups.includes(edge[0]) && groups.includes(edge[1])) {
|
|
392516
|
+
(_a4 = props.onNotify) === null || _a4 === void 0 ? void 0 : _a4.call(props, {
|
|
392517
|
+
key: "create-edge-group",
|
|
392518
|
+
message: "Adding edge between groups is not allowed",
|
|
392519
|
+
status: Status.WARNING,
|
|
392520
|
+
title: "Group edge detected"
|
|
392521
|
+
});
|
|
392522
|
+
return;
|
|
392523
|
+
}
|
|
392524
|
+
}
|
|
391719
392525
|
if (willCreateCycle(state.graph, edge)) {
|
|
391720
|
-
(
|
|
392526
|
+
(_b2 = props.onNotify) === null || _b2 === void 0 ? void 0 : _b2.call(props, {
|
|
391721
392527
|
key: "create-edge-cycle",
|
|
391722
392528
|
message: "Could not create an edge as it would create a cycle",
|
|
391723
392529
|
status: Status.WARNING,
|
|
@@ -391819,6 +392625,20 @@ ${letters.join("\n")}`;
|
|
|
391819
392625
|
});
|
|
391820
392626
|
setTooltipContent(edgeTooltipContent);
|
|
391821
392627
|
});
|
|
392628
|
+
useEngineEvent("groupMouseover", (event2, groupId) => {
|
|
392629
|
+
tooltipRef.current = () => ({
|
|
392630
|
+
bottom: event2.clientY,
|
|
392631
|
+
height: 0,
|
|
392632
|
+
left: event2.clientX,
|
|
392633
|
+
right: event2.clientX,
|
|
392634
|
+
top: event2.clientY,
|
|
392635
|
+
width: 0
|
|
392636
|
+
});
|
|
392637
|
+
setTooltipContent(getTooltipContent(groupId, "", theme2));
|
|
392638
|
+
});
|
|
392639
|
+
useEngineEvent("groupMouseout", () => {
|
|
392640
|
+
setTooltipContent(null);
|
|
392641
|
+
});
|
|
391822
392642
|
useEngineEvent("edgeMouseout", () => {
|
|
391823
392643
|
setTooltipContent(null);
|
|
391824
392644
|
});
|
|
@@ -391943,7 +392763,19 @@ ${letters.join("\n")}`;
|
|
|
391943
392763
|
editorMode: state.editorMode,
|
|
391944
392764
|
onNotify: props.onNotify,
|
|
391945
392765
|
verboseDescriptions: props.verboseDescriptions
|
|
391946
|
-
}, children: jsxRuntime.exports.jsx(pointerCtx.Provider, { value: { disablePointerEvents: isDragging, onPanelEnter, onPanelExit }, children: jsxRuntime.exports.jsx(GraphPane, { "$hasFocus": hasFocus, onClick: () => onPaneFocus(true), ref: paneRef, style: props.style, children: jsxRuntime.exports.jsxs(Graph, { onMouseEnter, onMouseLeave, children: [jsxRuntime.exports.jsx(EditorOverlay, { bottomLeft: jsxRuntime.exports.jsx(Legend, { listItems: getLegendData(props.defaultLegends, state.editorMode, props.additionalLegends) }), onDelete, onNext, onPrev, showFrameButtons: !isDragging && (showFrameButtons || hasFocus), title: panelTitle, topCenter: jsxRuntime.exports.jsx(jsxRuntime.exports.Fragment, { children: showZoomPrompt && jsxRuntime.exports.jsx(ZoomPrompt, { hasFocus, onClose: () => setShowZoomPrompt(false), onDismiss }) }), topLeft: jsxRuntime.exports.jsx(RecalculateLayoutButton, { onResetLayout: resetLayout }), topRight: jsxRuntime.exports.jsxs(jsxRuntime.exports.Fragment, { children: [jsxRuntime.exports.jsx(FloatingSearchBar, { onChange:
|
|
392766
|
+
}, children: jsxRuntime.exports.jsx(pointerCtx.Provider, { value: { disablePointerEvents: isDragging, onPanelEnter, onPanelExit }, children: jsxRuntime.exports.jsx(GraphPane, { "$hasFocus": hasFocus, onClick: () => onPaneFocus(true), ref: paneRef, style: props.style, children: jsxRuntime.exports.jsxs(Graph, { onMouseEnter, onMouseLeave, children: [jsxRuntime.exports.jsx(EditorOverlay, { bottomLeft: jsxRuntime.exports.jsx(Legend, { listItems: getLegendData(props.defaultLegends, state.editorMode, props.additionalLegends) }), onDelete, onNext, onPrev, showFrameButtons: !isDragging && (showFrameButtons || hasFocus), title: panelTitle, topCenter: jsxRuntime.exports.jsx(jsxRuntime.exports.Fragment, { children: showZoomPrompt && jsxRuntime.exports.jsx(ZoomPrompt, { hasFocus, onClose: () => setShowZoomPrompt(false), onDismiss }) }), topLeft: jsxRuntime.exports.jsx(RecalculateLayoutButton, { onResetLayout: resetLayout }), topRight: jsxRuntime.exports.jsxs(jsxRuntime.exports.Fragment, { children: [jsxRuntime.exports.jsx(FloatingSearchBar, { onChange: (value) => {
|
|
392767
|
+
onSearchBarChange(value);
|
|
392768
|
+
if (layoutHasGroup) {
|
|
392769
|
+
expandGroups();
|
|
392770
|
+
setShowCollapseAll(true);
|
|
392771
|
+
}
|
|
392772
|
+
}, onClose: () => setSelectedNode(null), onNext: onNextSearchResult, onPrev: onPrevSearchResult, selectedResult: currentSearchNode + 1, totalNumberOfResults: searchResults.length }), layoutHasGroup && jsxRuntime.exports.jsx(CollapseExpandGroupButton, { onCollapseAll: () => {
|
|
392773
|
+
setShowCollapseAll(false);
|
|
392774
|
+
collapseGroups();
|
|
392775
|
+
}, onExpandAll: () => {
|
|
392776
|
+
expandGroups();
|
|
392777
|
+
setShowCollapseAll(true);
|
|
392778
|
+
}, showExpandAll: showCollapseAll }), jsxRuntime.exports.jsx(CenterGraphButton, { onResetZoom: resetViewport }), jsxRuntime.exports.jsx(EditControls, { onAddNode }), jsxRuntime.exports.jsx(DragModeButton, { dragMode, setDragMode }), jsxRuntime.exports.jsx(SaveImageButton, { onSave: saveImage })] }), validContentSelected: contentSelected, children: jsxRuntime.exports.jsxs(graphCtx.Provider, { value: {
|
|
391947
392779
|
api: api2,
|
|
391948
392780
|
constraints,
|
|
391949
392781
|
editable: props.editable,
|
|
@@ -396763,6 +397595,9 @@ ${letters.join("\n")}`;
|
|
|
396763
397595
|
function isDefinitionWithTiers(obj) {
|
|
396764
397596
|
return obj && typeof obj === "object" && "tiers" in obj;
|
|
396765
397597
|
}
|
|
397598
|
+
function isDefinitionWithGroup(obj) {
|
|
397599
|
+
return obj && typeof obj === "object" && "group" in obj;
|
|
397600
|
+
}
|
|
396766
397601
|
function parseLayoutDefinition(definition2) {
|
|
396767
397602
|
let builder;
|
|
396768
397603
|
switch (definition2.layout_type) {
|
|
@@ -396855,13 +397690,25 @@ ${letters.join("\n")}`;
|
|
|
396855
397690
|
}
|
|
396856
397691
|
case "spring": {
|
|
396857
397692
|
builder = SpringLayout.Builder;
|
|
397693
|
+
if (definition2.collision_force) {
|
|
397694
|
+
builder.collisionForce(definition2.collision_force);
|
|
397695
|
+
}
|
|
397696
|
+
if (definition2.gravity) {
|
|
397697
|
+
builder.gravity(definition2.gravity);
|
|
397698
|
+
}
|
|
397699
|
+
if (definition2.link_force) {
|
|
397700
|
+
builder.linkForce(definition2.link_force);
|
|
397701
|
+
}
|
|
396858
397702
|
if (definition2.warmup_ticks) {
|
|
396859
397703
|
builder.warmupTicks(definition2.warmup_ticks);
|
|
396860
397704
|
}
|
|
397705
|
+
if (definition2.group_repel_strength) {
|
|
397706
|
+
builder.groupRepelStrength(definition2.group_repel_strength);
|
|
397707
|
+
}
|
|
396861
397708
|
break;
|
|
396862
397709
|
}
|
|
396863
397710
|
default: {
|
|
396864
|
-
throw new Error(`
|
|
397711
|
+
throw new Error(`Unrecognized layout type: ${String(definition2.layout_type)}`);
|
|
396865
397712
|
}
|
|
396866
397713
|
}
|
|
396867
397714
|
if (isDefinitionWithTiers(definition2)) {
|
|
@@ -396876,6 +397723,12 @@ ${letters.join("\n")}`;
|
|
|
396876
397723
|
builderWithTiers.tierSeparation(definition2.tier_separation);
|
|
396877
397724
|
}
|
|
396878
397725
|
}
|
|
397726
|
+
if (isDefinitionWithGroup(definition2)) {
|
|
397727
|
+
const builderWithGroup = builder;
|
|
397728
|
+
if (definition2.group) {
|
|
397729
|
+
builderWithGroup.group = definition2.group;
|
|
397730
|
+
}
|
|
397731
|
+
}
|
|
396879
397732
|
if (definition2.node_size) {
|
|
396880
397733
|
builder.nodeSize(definition2.node_size);
|
|
396881
397734
|
}
|