@opentiny/tiny-engine-setting-events 2.9.0-alpha.4 → 2.9.0-alpha.6
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/index.js +94 -95
- package/dist/index.js.map +1 -1
- package/dist/style.css +1 -1
- package/package.json +7 -7
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import "./style.css";
|
|
2
2
|
import { ref as Lt, reactive as Ut, provide as he, nextTick as Ee, resolveComponent as B, createBlock as tt, openBlock as S, withCtx as I, createElementVNode as m, createVNode as _, resolveDynamicComponent as te, createTextVNode as Dt, unref as O, computed as Tt, watchEffect as ue, createElementBlock as J, Fragment as $t, withDirectives as ee, renderList as Ht, normalizeClass as It, toDisplayString as W, createCommentVNode as zt, vShow as ne, watch as ie, inject as ge } from "vue";
|
|
3
|
-
import { callEntry as b, META_APP as x, getMetaApi as k, getOptions as X, useLayout as N, useHistory as K, useCanvas as
|
|
3
|
+
import { callEntry as b, META_APP as x, getMetaApi as k, getOptions as X, useLayout as N, useHistory as K, useCanvas as E, getMergeMeta as L, useBlock as pt, useMaterial as vt, useModal as bt, useMessage as _t, useProperties as $ } from "@opentiny/tiny-engine-meta-register";
|
|
4
4
|
import { TinyAlert as ye, DialogBox as fe, Button as Ft, Form as we, FormItem as oe, Input as qt, Popover as Ce, Tooltip as xe, Collapse as ke, CollapseItem as se, Checkbox as De, Search as Se } from "@opentiny/vue";
|
|
5
5
|
import Et from "@opentiny/tiny-engine-common/js/i18n";
|
|
6
6
|
import { SvgButton as yt, BlockLinkEvent as wt, PluginPanel as Ae, VueMonaco as St } from "@opentiny/tiny-engine-common";
|
|
@@ -689,7 +689,7 @@ const Bt = (c, t) => {
|
|
|
689
689
|
ctx: () => ({
|
|
690
690
|
string2Ast: H,
|
|
691
691
|
getMergeMeta: L,
|
|
692
|
-
useCanvas:
|
|
692
|
+
useCanvas: E,
|
|
693
693
|
useHistory: K,
|
|
694
694
|
useLayout: N,
|
|
695
695
|
getOptions: X,
|
|
@@ -710,7 +710,7 @@ const Bt = (c, t) => {
|
|
|
710
710
|
ctx: () => ({
|
|
711
711
|
string2Ast: H,
|
|
712
712
|
getMergeMeta: L,
|
|
713
|
-
useCanvas:
|
|
713
|
+
useCanvas: E,
|
|
714
714
|
useHistory: K,
|
|
715
715
|
useLayout: N,
|
|
716
716
|
getOptions: X,
|
|
@@ -744,7 +744,7 @@ const Bt = (c, t) => {
|
|
|
744
744
|
activePlugin: i
|
|
745
745
|
} = N(), {
|
|
746
746
|
pageState: o
|
|
747
|
-
} =
|
|
747
|
+
} = E(), {
|
|
748
748
|
getMethods: s,
|
|
749
749
|
saveMethod: r,
|
|
750
750
|
highlightMethod: a
|
|
@@ -757,8 +757,8 @@ const Bt = (c, t) => {
|
|
|
757
757
|
isValidParams: !0
|
|
758
758
|
});
|
|
759
759
|
he("context", d);
|
|
760
|
-
const f = b((
|
|
761
|
-
d.bindMethodInfo =
|
|
760
|
+
const f = b((w) => {
|
|
761
|
+
d.bindMethodInfo = w;
|
|
762
762
|
}, {
|
|
763
763
|
metaData: {
|
|
764
764
|
id: "engine.setting.event.BindEventsDialog.selectMethod"
|
|
@@ -780,13 +780,13 @@ const Bt = (c, t) => {
|
|
|
780
780
|
getExtraParams: h,
|
|
781
781
|
getFormatParams: g,
|
|
782
782
|
rewriteMethodParams: p,
|
|
783
|
-
activePagePlugin:
|
|
783
|
+
activePagePlugin: y,
|
|
784
784
|
confirm: C,
|
|
785
785
|
openedDialog: A,
|
|
786
786
|
closeDialog: P,
|
|
787
787
|
string2Ast: H,
|
|
788
788
|
getMergeMeta: L,
|
|
789
|
-
useCanvas:
|
|
789
|
+
useCanvas: E,
|
|
790
790
|
useHistory: K,
|
|
791
791
|
useLayout: N,
|
|
792
792
|
getOptions: X,
|
|
@@ -798,9 +798,9 @@ const Bt = (c, t) => {
|
|
|
798
798
|
open: V,
|
|
799
799
|
close: F
|
|
800
800
|
})
|
|
801
|
-
}), l = b((
|
|
801
|
+
}), l = b((w) => {
|
|
802
802
|
var Y, q;
|
|
803
|
-
if (!
|
|
803
|
+
if (!w)
|
|
804
804
|
return;
|
|
805
805
|
const v = (Y = c.eventBinding) == null ? void 0 : Y.eventName;
|
|
806
806
|
if (!v)
|
|
@@ -811,7 +811,7 @@ const Bt = (c, t) => {
|
|
|
811
811
|
const {
|
|
812
812
|
name: M,
|
|
813
813
|
extra: et
|
|
814
|
-
} =
|
|
814
|
+
} = w;
|
|
815
815
|
c[v] || (D[v] = {
|
|
816
816
|
type: "JSExpression",
|
|
817
817
|
value: ""
|
|
@@ -837,13 +837,13 @@ const Bt = (c, t) => {
|
|
|
837
837
|
getExtraParams: h,
|
|
838
838
|
getFormatParams: g,
|
|
839
839
|
rewriteMethodParams: p,
|
|
840
|
-
activePagePlugin:
|
|
840
|
+
activePagePlugin: y,
|
|
841
841
|
confirm: C,
|
|
842
842
|
openedDialog: A,
|
|
843
843
|
closeDialog: P,
|
|
844
844
|
string2Ast: H,
|
|
845
845
|
getMergeMeta: L,
|
|
846
|
-
useCanvas:
|
|
846
|
+
useCanvas: E,
|
|
847
847
|
useHistory: K,
|
|
848
848
|
useLayout: N,
|
|
849
849
|
getOptions: X,
|
|
@@ -878,13 +878,13 @@ const Bt = (c, t) => {
|
|
|
878
878
|
getExtraParams: h,
|
|
879
879
|
getFormatParams: g,
|
|
880
880
|
rewriteMethodParams: p,
|
|
881
|
-
activePagePlugin:
|
|
881
|
+
activePagePlugin: y,
|
|
882
882
|
confirm: C,
|
|
883
883
|
openedDialog: A,
|
|
884
884
|
closeDialog: P,
|
|
885
885
|
string2Ast: H,
|
|
886
886
|
getMergeMeta: L,
|
|
887
|
-
useCanvas:
|
|
887
|
+
useCanvas: E,
|
|
888
888
|
useHistory: K,
|
|
889
889
|
useLayout: N,
|
|
890
890
|
getOptions: X,
|
|
@@ -897,14 +897,14 @@ const Bt = (c, t) => {
|
|
|
897
897
|
close: F
|
|
898
898
|
})
|
|
899
899
|
}), h = b(() => {
|
|
900
|
-
let
|
|
900
|
+
let w = "";
|
|
901
901
|
if (d.enableExtraParams)
|
|
902
902
|
try {
|
|
903
|
-
|
|
903
|
+
w = JSON.parse(d.editorContent), d.isValidParams = Array.isArray(w);
|
|
904
904
|
} catch {
|
|
905
905
|
d.isValidParams = !1;
|
|
906
906
|
}
|
|
907
|
-
return
|
|
907
|
+
return w;
|
|
908
908
|
}, {
|
|
909
909
|
metaData: {
|
|
910
910
|
id: "engine.setting.event.BindEventsDialog.getExtraParams"
|
|
@@ -926,13 +926,13 @@ const Bt = (c, t) => {
|
|
|
926
926
|
getExtraParams: h,
|
|
927
927
|
getFormatParams: g,
|
|
928
928
|
rewriteMethodParams: p,
|
|
929
|
-
activePagePlugin:
|
|
929
|
+
activePagePlugin: y,
|
|
930
930
|
confirm: C,
|
|
931
931
|
openedDialog: A,
|
|
932
932
|
closeDialog: P,
|
|
933
933
|
string2Ast: H,
|
|
934
934
|
getMergeMeta: L,
|
|
935
|
-
useCanvas:
|
|
935
|
+
useCanvas: E,
|
|
936
936
|
useHistory: K,
|
|
937
937
|
useLayout: N,
|
|
938
938
|
getOptions: X,
|
|
@@ -944,8 +944,8 @@ const Bt = (c, t) => {
|
|
|
944
944
|
open: V,
|
|
945
945
|
close: F
|
|
946
946
|
})
|
|
947
|
-
}), g = b((
|
|
948
|
-
length:
|
|
947
|
+
}), g = b((w) => Array.from({
|
|
948
|
+
length: w.length
|
|
949
949
|
}, (v, D) => `args${D}`).join(","), {
|
|
950
950
|
metaData: {
|
|
951
951
|
id: "engine.setting.event.BindEventsDialog.getFormatParams"
|
|
@@ -967,13 +967,13 @@ const Bt = (c, t) => {
|
|
|
967
967
|
getExtraParams: h,
|
|
968
968
|
getFormatParams: g,
|
|
969
969
|
rewriteMethodParams: p,
|
|
970
|
-
activePagePlugin:
|
|
970
|
+
activePagePlugin: y,
|
|
971
971
|
confirm: C,
|
|
972
972
|
openedDialog: A,
|
|
973
973
|
closeDialog: P,
|
|
974
974
|
string2Ast: H,
|
|
975
975
|
getMergeMeta: L,
|
|
976
|
-
useCanvas:
|
|
976
|
+
useCanvas: E,
|
|
977
977
|
useHistory: K,
|
|
978
978
|
useLayout: N,
|
|
979
979
|
getOptions: X,
|
|
@@ -985,19 +985,19 @@ const Bt = (c, t) => {
|
|
|
985
985
|
open: V,
|
|
986
986
|
close: F
|
|
987
987
|
})
|
|
988
|
-
}), p = b((
|
|
988
|
+
}), p = b((w, v, D, M, et) => {
|
|
989
989
|
var nt, it, ot, Z, jt;
|
|
990
990
|
const Y = et && M.length ? `event,${D}` : D, q = `function ${v} (${Y}) {
|
|
991
991
|
}
|
|
992
992
|
`;
|
|
993
|
-
if (!
|
|
993
|
+
if (!w)
|
|
994
994
|
return q;
|
|
995
995
|
try {
|
|
996
|
-
const gt = new U(
|
|
996
|
+
const gt = new U(w), T = H(w);
|
|
997
997
|
if (((it = (nt = T == null ? void 0 : T.program) == null ? void 0 : nt.body[0]) == null ? void 0 : it.type) !== "FunctionDeclaration")
|
|
998
998
|
return q;
|
|
999
999
|
if (((ot = T == null ? void 0 : T.program) == null ? void 0 : ot.body[0].params.length) === M.length + 1)
|
|
1000
|
-
return
|
|
1000
|
+
return w;
|
|
1001
1001
|
const Pt = (Z = T == null ? void 0 : T.program) == null ? void 0 : Z.body[0].id.end, Xt = (jt = T == null ? void 0 : T.program) == null ? void 0 : jt.body[0].body.start;
|
|
1002
1002
|
return gt.remove(Pt, Xt), gt.appendLeft(Pt, `(${Y})`), gt.toString();
|
|
1003
1003
|
} catch {
|
|
@@ -1024,13 +1024,13 @@ const Bt = (c, t) => {
|
|
|
1024
1024
|
getExtraParams: h,
|
|
1025
1025
|
getFormatParams: g,
|
|
1026
1026
|
rewriteMethodParams: p,
|
|
1027
|
-
activePagePlugin:
|
|
1027
|
+
activePagePlugin: y,
|
|
1028
1028
|
confirm: C,
|
|
1029
1029
|
openedDialog: A,
|
|
1030
1030
|
closeDialog: P,
|
|
1031
1031
|
string2Ast: H,
|
|
1032
1032
|
getMergeMeta: L,
|
|
1033
|
-
useCanvas:
|
|
1033
|
+
useCanvas: E,
|
|
1034
1034
|
useHistory: K,
|
|
1035
1035
|
useLayout: N,
|
|
1036
1036
|
getOptions: X,
|
|
@@ -1042,11 +1042,10 @@ const Bt = (c, t) => {
|
|
|
1042
1042
|
open: V,
|
|
1043
1043
|
close: F
|
|
1044
1044
|
})
|
|
1045
|
-
}),
|
|
1045
|
+
}), y = b((w) => {
|
|
1046
1046
|
i(e.Page).then(() => {
|
|
1047
1047
|
Ee(() => {
|
|
1048
|
-
|
|
1049
|
-
a && a((E = d.bindMethodInfo) == null ? void 0 : E.name);
|
|
1048
|
+
a && a(w);
|
|
1050
1049
|
});
|
|
1051
1050
|
});
|
|
1052
1051
|
}, {
|
|
@@ -1070,13 +1069,13 @@ const Bt = (c, t) => {
|
|
|
1070
1069
|
getExtraParams: h,
|
|
1071
1070
|
getFormatParams: g,
|
|
1072
1071
|
rewriteMethodParams: p,
|
|
1073
|
-
activePagePlugin:
|
|
1072
|
+
activePagePlugin: y,
|
|
1074
1073
|
confirm: C,
|
|
1075
1074
|
openedDialog: A,
|
|
1076
1075
|
closeDialog: P,
|
|
1077
1076
|
string2Ast: H,
|
|
1078
1077
|
getMergeMeta: L,
|
|
1079
|
-
useCanvas:
|
|
1078
|
+
useCanvas: E,
|
|
1080
1079
|
useHistory: K,
|
|
1081
1080
|
useLayout: N,
|
|
1082
1081
|
getOptions: X,
|
|
@@ -1092,14 +1091,14 @@ const Bt = (c, t) => {
|
|
|
1092
1091
|
var it, ot;
|
|
1093
1092
|
if (d.tipError)
|
|
1094
1093
|
return;
|
|
1095
|
-
let
|
|
1094
|
+
let w = "event";
|
|
1096
1095
|
const v = h();
|
|
1097
|
-
let D =
|
|
1096
|
+
let D = w;
|
|
1098
1097
|
if (!d.isValidParams)
|
|
1099
1098
|
return;
|
|
1100
|
-
v && (
|
|
1099
|
+
v && (w = v.join(","), D = g(v)), l({
|
|
1101
1100
|
...d.bindMethodInfo,
|
|
1102
|
-
params:
|
|
1101
|
+
params: w,
|
|
1103
1102
|
extra: v
|
|
1104
1103
|
});
|
|
1105
1104
|
const {
|
|
@@ -1110,7 +1109,7 @@ const Bt = (c, t) => {
|
|
|
1110
1109
|
}, {
|
|
1111
1110
|
beforeSaveMethod: nt
|
|
1112
1111
|
} = X(R.id);
|
|
1113
|
-
typeof nt == "function" && await nt(q, d.bindMethodInfo), r == null || r(q),
|
|
1112
|
+
typeof nt == "function" && await nt(q, d.bindMethodInfo), r == null || r(q), y(M), F();
|
|
1114
1113
|
}, {
|
|
1115
1114
|
metaData: {
|
|
1116
1115
|
id: "engine.setting.event.BindEventsDialog.confirm"
|
|
@@ -1132,13 +1131,13 @@ const Bt = (c, t) => {
|
|
|
1132
1131
|
getExtraParams: h,
|
|
1133
1132
|
getFormatParams: g,
|
|
1134
1133
|
rewriteMethodParams: p,
|
|
1135
|
-
activePagePlugin:
|
|
1134
|
+
activePagePlugin: y,
|
|
1136
1135
|
confirm: C,
|
|
1137
1136
|
openedDialog: A,
|
|
1138
1137
|
closeDialog: P,
|
|
1139
1138
|
string2Ast: H,
|
|
1140
1139
|
getMergeMeta: L,
|
|
1141
|
-
useCanvas:
|
|
1140
|
+
useCanvas: E,
|
|
1142
1141
|
useHistory: K,
|
|
1143
1142
|
useLayout: N,
|
|
1144
1143
|
getOptions: X,
|
|
@@ -1151,8 +1150,8 @@ const Bt = (c, t) => {
|
|
|
1151
1150
|
close: F
|
|
1152
1151
|
})
|
|
1153
1152
|
}), A = b(() => {
|
|
1154
|
-
var
|
|
1155
|
-
d.enableExtraParams = !!((v = (
|
|
1153
|
+
var w, v, D;
|
|
1154
|
+
d.enableExtraParams = !!((v = (w = c.eventBinding) == null ? void 0 : w.params) != null && v.length), d.editorContent = JSON.stringify(((D = c.eventBinding) == null ? void 0 : D.params) || [], null, 2), u();
|
|
1156
1155
|
}, {
|
|
1157
1156
|
metaData: {
|
|
1158
1157
|
id: "engine.setting.event.BindEventsDialog.openedDialog"
|
|
@@ -1174,13 +1173,13 @@ const Bt = (c, t) => {
|
|
|
1174
1173
|
getExtraParams: h,
|
|
1175
1174
|
getFormatParams: g,
|
|
1176
1175
|
rewriteMethodParams: p,
|
|
1177
|
-
activePagePlugin:
|
|
1176
|
+
activePagePlugin: y,
|
|
1178
1177
|
confirm: C,
|
|
1179
1178
|
openedDialog: A,
|
|
1180
1179
|
closeDialog: P,
|
|
1181
1180
|
string2Ast: H,
|
|
1182
1181
|
getMergeMeta: L,
|
|
1183
|
-
useCanvas:
|
|
1182
|
+
useCanvas: E,
|
|
1184
1183
|
useHistory: K,
|
|
1185
1184
|
useLayout: N,
|
|
1186
1185
|
getOptions: X,
|
|
@@ -1215,13 +1214,13 @@ const Bt = (c, t) => {
|
|
|
1215
1214
|
getExtraParams: h,
|
|
1216
1215
|
getFormatParams: g,
|
|
1217
1216
|
rewriteMethodParams: p,
|
|
1218
|
-
activePagePlugin:
|
|
1217
|
+
activePagePlugin: y,
|
|
1219
1218
|
confirm: C,
|
|
1220
1219
|
openedDialog: A,
|
|
1221
1220
|
closeDialog: P,
|
|
1222
1221
|
string2Ast: H,
|
|
1223
1222
|
getMergeMeta: L,
|
|
1224
|
-
useCanvas:
|
|
1223
|
+
useCanvas: E,
|
|
1225
1224
|
useHistory: K,
|
|
1226
1225
|
useLayout: N,
|
|
1227
1226
|
getOptions: X,
|
|
@@ -1297,7 +1296,7 @@ function He(c, t, n, e, i, o) {
|
|
|
1297
1296
|
_: 1
|
|
1298
1297
|
}, 8, ["visible", "onClose", "onOpened"]);
|
|
1299
1298
|
}
|
|
1300
|
-
const xt = /* @__PURE__ */ Bt(Fe, [["render", He], ["__scopeId", "data-v-
|
|
1299
|
+
const xt = /* @__PURE__ */ Bt(Fe, [["render", He], ["__scopeId", "data-v-75c09cb1"]]), pe = {
|
|
1301
1300
|
onClick: {
|
|
1302
1301
|
label: {
|
|
1303
1302
|
zh_CN: "点击事件"
|
|
@@ -1556,7 +1555,7 @@ const xt = /* @__PURE__ */ Bt(Fe, [["render", He], ["__scopeId", "data-v-84897b9
|
|
|
1556
1555
|
activePlugin: t
|
|
1557
1556
|
} = N(), {
|
|
1558
1557
|
pageState: n
|
|
1559
|
-
} =
|
|
1558
|
+
} = E(), {
|
|
1560
1559
|
getBlockEvents: e,
|
|
1561
1560
|
getCurrentBlock: i,
|
|
1562
1561
|
removeEventLink: o
|
|
@@ -1633,14 +1632,14 @@ const xt = /* @__PURE__ */ Bt(Fe, [["render", He], ["__scopeId", "data-v-84897b9
|
|
|
1633
1632
|
isEmpty: h,
|
|
1634
1633
|
renderEventList: g,
|
|
1635
1634
|
openActionDialog: p,
|
|
1636
|
-
deleteAction:
|
|
1635
|
+
deleteAction: y,
|
|
1637
1636
|
delEvent: C,
|
|
1638
1637
|
openCodePanel: A,
|
|
1639
1638
|
handleToggleAddEventDialog: P,
|
|
1640
|
-
handleAddEvent:
|
|
1639
|
+
handleAddEvent: w,
|
|
1641
1640
|
useModal: bt,
|
|
1642
1641
|
getMergeMeta: L,
|
|
1643
|
-
useCanvas:
|
|
1642
|
+
useCanvas: E,
|
|
1644
1643
|
useLayout: N,
|
|
1645
1644
|
useBlock: pt,
|
|
1646
1645
|
useMaterial: vt,
|
|
@@ -1655,7 +1654,7 @@ const xt = /* @__PURE__ */ Bt(Fe, [["render", He], ["__scopeId", "data-v-84897b9
|
|
|
1655
1654
|
openDialog: V,
|
|
1656
1655
|
AddEventsDialog: kt
|
|
1657
1656
|
})
|
|
1658
|
-
}),
|
|
1657
|
+
}), y = b((v) => {
|
|
1659
1658
|
var M;
|
|
1660
1659
|
Object.keys(((M = n == null ? void 0 : n.currentSchema) == null ? void 0 : M.props) || {}).indexOf(v.eventName) > -1 && (delete n.currentSchema.props[v.eventName], _t().publish({
|
|
1661
1660
|
topic: "schemaChange",
|
|
@@ -1684,14 +1683,14 @@ const xt = /* @__PURE__ */ Bt(Fe, [["render", He], ["__scopeId", "data-v-84897b9
|
|
|
1684
1683
|
isEmpty: h,
|
|
1685
1684
|
renderEventList: g,
|
|
1686
1685
|
openActionDialog: p,
|
|
1687
|
-
deleteAction:
|
|
1686
|
+
deleteAction: y,
|
|
1688
1687
|
delEvent: C,
|
|
1689
1688
|
openCodePanel: A,
|
|
1690
1689
|
handleToggleAddEventDialog: P,
|
|
1691
|
-
handleAddEvent:
|
|
1690
|
+
handleAddEvent: w,
|
|
1692
1691
|
useModal: bt,
|
|
1693
1692
|
getMergeMeta: L,
|
|
1694
|
-
useCanvas:
|
|
1693
|
+
useCanvas: E,
|
|
1695
1694
|
useLayout: N,
|
|
1696
1695
|
useBlock: pt,
|
|
1697
1696
|
useMaterial: vt,
|
|
@@ -1713,7 +1712,7 @@ const xt = /* @__PURE__ */ Bt(Fe, [["render", He], ["__scopeId", "data-v-84897b9
|
|
|
1713
1712
|
exec() {
|
|
1714
1713
|
n.isBlock && o({
|
|
1715
1714
|
linked: v.linked
|
|
1716
|
-
}),
|
|
1715
|
+
}), y(v);
|
|
1717
1716
|
}
|
|
1718
1717
|
});
|
|
1719
1718
|
}, {
|
|
@@ -1737,14 +1736,14 @@ const xt = /* @__PURE__ */ Bt(Fe, [["render", He], ["__scopeId", "data-v-84897b9
|
|
|
1737
1736
|
isEmpty: h,
|
|
1738
1737
|
renderEventList: g,
|
|
1739
1738
|
openActionDialog: p,
|
|
1740
|
-
deleteAction:
|
|
1739
|
+
deleteAction: y,
|
|
1741
1740
|
delEvent: C,
|
|
1742
1741
|
openCodePanel: A,
|
|
1743
1742
|
handleToggleAddEventDialog: P,
|
|
1744
|
-
handleAddEvent:
|
|
1743
|
+
handleAddEvent: w,
|
|
1745
1744
|
useModal: bt,
|
|
1746
1745
|
getMergeMeta: L,
|
|
1747
|
-
useCanvas:
|
|
1746
|
+
useCanvas: E,
|
|
1748
1747
|
useLayout: N,
|
|
1749
1748
|
useBlock: pt,
|
|
1750
1749
|
useMaterial: vt,
|
|
@@ -1784,14 +1783,14 @@ const xt = /* @__PURE__ */ Bt(Fe, [["render", He], ["__scopeId", "data-v-84897b9
|
|
|
1784
1783
|
isEmpty: h,
|
|
1785
1784
|
renderEventList: g,
|
|
1786
1785
|
openActionDialog: p,
|
|
1787
|
-
deleteAction:
|
|
1786
|
+
deleteAction: y,
|
|
1788
1787
|
delEvent: C,
|
|
1789
1788
|
openCodePanel: A,
|
|
1790
1789
|
handleToggleAddEventDialog: P,
|
|
1791
|
-
handleAddEvent:
|
|
1790
|
+
handleAddEvent: w,
|
|
1792
1791
|
useModal: bt,
|
|
1793
1792
|
getMergeMeta: L,
|
|
1794
|
-
useCanvas:
|
|
1793
|
+
useCanvas: E,
|
|
1795
1794
|
useLayout: N,
|
|
1796
1795
|
useBlock: pt,
|
|
1797
1796
|
useMaterial: vt,
|
|
@@ -1829,14 +1828,14 @@ const xt = /* @__PURE__ */ Bt(Fe, [["render", He], ["__scopeId", "data-v-84897b9
|
|
|
1829
1828
|
isEmpty: h,
|
|
1830
1829
|
renderEventList: g,
|
|
1831
1830
|
openActionDialog: p,
|
|
1832
|
-
deleteAction:
|
|
1831
|
+
deleteAction: y,
|
|
1833
1832
|
delEvent: C,
|
|
1834
1833
|
openCodePanel: A,
|
|
1835
1834
|
handleToggleAddEventDialog: P,
|
|
1836
|
-
handleAddEvent:
|
|
1835
|
+
handleAddEvent: w,
|
|
1837
1836
|
useModal: bt,
|
|
1838
1837
|
getMergeMeta: L,
|
|
1839
|
-
useCanvas:
|
|
1838
|
+
useCanvas: E,
|
|
1840
1839
|
useLayout: N,
|
|
1841
1840
|
useBlock: pt,
|
|
1842
1841
|
useMaterial: vt,
|
|
@@ -1851,7 +1850,7 @@ const xt = /* @__PURE__ */ Bt(Fe, [["render", He], ["__scopeId", "data-v-84897b9
|
|
|
1851
1850
|
openDialog: V,
|
|
1852
1851
|
AddEventsDialog: kt
|
|
1853
1852
|
})
|
|
1854
|
-
}),
|
|
1853
|
+
}), w = b((v) => {
|
|
1855
1854
|
const {
|
|
1856
1855
|
eventName: D,
|
|
1857
1856
|
eventDescription: M
|
|
@@ -1893,14 +1892,14 @@ const xt = /* @__PURE__ */ Bt(Fe, [["render", He], ["__scopeId", "data-v-84897b9
|
|
|
1893
1892
|
isEmpty: h,
|
|
1894
1893
|
renderEventList: g,
|
|
1895
1894
|
openActionDialog: p,
|
|
1896
|
-
deleteAction:
|
|
1895
|
+
deleteAction: y,
|
|
1897
1896
|
delEvent: C,
|
|
1898
1897
|
openCodePanel: A,
|
|
1899
1898
|
handleToggleAddEventDialog: P,
|
|
1900
|
-
handleAddEvent:
|
|
1899
|
+
handleAddEvent: w,
|
|
1901
1900
|
useModal: bt,
|
|
1902
1901
|
getMergeMeta: L,
|
|
1903
|
-
useCanvas:
|
|
1902
|
+
useCanvas: E,
|
|
1904
1903
|
useLayout: N,
|
|
1905
1904
|
useBlock: pt,
|
|
1906
1905
|
useMaterial: vt,
|
|
@@ -1923,7 +1922,7 @@ const xt = /* @__PURE__ */ Bt(Fe, [["render", He], ["__scopeId", "data-v-84897b9
|
|
|
1923
1922
|
delEvent: C,
|
|
1924
1923
|
openCodePanel: A,
|
|
1925
1924
|
openActionDialog: p,
|
|
1926
|
-
handleAddEvent:
|
|
1925
|
+
handleAddEvent: w,
|
|
1927
1926
|
handleToggleAddEventDialog: P,
|
|
1928
1927
|
renderEventList: g,
|
|
1929
1928
|
locale: a
|
|
@@ -1955,13 +1954,13 @@ function dn(c, t, n, e, i, o) {
|
|
|
1955
1954
|
default: I(() => [
|
|
1956
1955
|
m("ul", Qe, [
|
|
1957
1956
|
(S(!0), J($t, null, Ht(e.renderEventList, (g, p) => {
|
|
1958
|
-
var
|
|
1957
|
+
var y;
|
|
1959
1958
|
return S(), J("li", {
|
|
1960
1959
|
key: p,
|
|
1961
1960
|
class: It(["bind-event-list-item", { "bind-event-list-item-notallow": e.state.bindActions[p] }]),
|
|
1962
1961
|
onClick: (C) => e.openActionDialog({ eventName: p }, !0)
|
|
1963
1962
|
}, [
|
|
1964
|
-
m("div", null, W(p) + " | " + W(((
|
|
1963
|
+
m("div", null, W(p) + " | " + W(((y = g == null ? void 0 : g.label) == null ? void 0 : y[e.locale]) || p), 1)
|
|
1965
1964
|
], 10, tn);
|
|
1966
1965
|
}), 128))
|
|
1967
1966
|
])
|
|
@@ -1984,7 +1983,7 @@ function dn(c, t, n, e, i, o) {
|
|
|
1984
1983
|
]),
|
|
1985
1984
|
ee(m("ul", en, [
|
|
1986
1985
|
(S(!0), J($t, null, Ht(e.state.bindActions, (g) => {
|
|
1987
|
-
var p,
|
|
1986
|
+
var p, y;
|
|
1988
1987
|
return S(), J("li", {
|
|
1989
1988
|
key: g.eventName
|
|
1990
1989
|
}, [
|
|
@@ -1995,7 +1994,7 @@ function dn(c, t, n, e, i, o) {
|
|
|
1995
1994
|
}, [
|
|
1996
1995
|
m("div", null, [
|
|
1997
1996
|
Dt(W(g.eventName), 1),
|
|
1998
|
-
m("span", null, W((
|
|
1997
|
+
m("span", null, W((y = (p = e.renderEventList[g.eventName]) == null ? void 0 : p.label) == null ? void 0 : y[e.locale]), 1)
|
|
1999
1998
|
]),
|
|
2000
1999
|
m("div", {
|
|
2001
2000
|
class: It({ linked: g.linked })
|
|
@@ -2070,7 +2069,7 @@ const cn = /* @__PURE__ */ Bt(We, [["render", dn], ["__scopeId", "data-v-cce64db
|
|
|
2070
2069
|
setup() {
|
|
2071
2070
|
const {
|
|
2072
2071
|
pageState: c
|
|
2073
|
-
} =
|
|
2072
|
+
} = E(), t = Lt(!1), n = Tt(() => {
|
|
2074
2073
|
var l;
|
|
2075
2074
|
return ((l = t.value) == null ? void 0 : l.type) === G.JSEXPRESSION;
|
|
2076
2075
|
}), e = b(() => {
|
|
@@ -2097,7 +2096,7 @@ const cn = /* @__PURE__ */ Bt(We, [["render", dn], ["__scopeId", "data-v-cce64db
|
|
|
2097
2096
|
SwitchConfigurator: lt,
|
|
2098
2097
|
VariableConfigurator: at,
|
|
2099
2098
|
useProperties: $,
|
|
2100
|
-
useCanvas:
|
|
2099
|
+
useCanvas: E,
|
|
2101
2100
|
PROP_DATA_TYPE: G,
|
|
2102
2101
|
constants: ht,
|
|
2103
2102
|
utils: ut,
|
|
@@ -2132,14 +2131,14 @@ const cn = /* @__PURE__ */ Bt(We, [["render", dn], ["__scopeId", "data-v-cce64db
|
|
|
2132
2131
|
if (!g)
|
|
2133
2132
|
return;
|
|
2134
2133
|
const p = Number(l).toString() !== "NaN";
|
|
2135
|
-
let
|
|
2136
|
-
l && !p && (
|
|
2134
|
+
let y = (C = g.props) == null ? void 0 : C.key;
|
|
2135
|
+
l && !p && (y = {
|
|
2137
2136
|
type: G.JSEXPRESSION,
|
|
2138
2137
|
value: l
|
|
2139
|
-
}), l || (i.isLoop ?
|
|
2138
|
+
}), l || (i.isLoop ? y = {
|
|
2140
2139
|
type: G.JSEXPRESSION,
|
|
2141
2140
|
value: e()
|
|
2142
|
-
} :
|
|
2141
|
+
} : y = ""), h("key", y);
|
|
2143
2142
|
}, {
|
|
2144
2143
|
metaData: {
|
|
2145
2144
|
id: "engine.setting.event.AdvanceConfig.setLoopKey"
|
|
@@ -2161,7 +2160,7 @@ const cn = /* @__PURE__ */ Bt(We, [["render", dn], ["__scopeId", "data-v-cce64db
|
|
|
2161
2160
|
SwitchConfigurator: lt,
|
|
2162
2161
|
VariableConfigurator: at,
|
|
2163
2162
|
useProperties: $,
|
|
2164
|
-
useCanvas:
|
|
2163
|
+
useCanvas: E,
|
|
2165
2164
|
PROP_DATA_TYPE: G,
|
|
2166
2165
|
constants: ht,
|
|
2167
2166
|
utils: ut,
|
|
@@ -2196,7 +2195,7 @@ const cn = /* @__PURE__ */ Bt(We, [["render", dn], ["__scopeId", "data-v-cce64db
|
|
|
2196
2195
|
SwitchConfigurator: lt,
|
|
2197
2196
|
VariableConfigurator: at,
|
|
2198
2197
|
useProperties: $,
|
|
2199
|
-
useCanvas:
|
|
2198
|
+
useCanvas: E,
|
|
2200
2199
|
PROP_DATA_TYPE: G,
|
|
2201
2200
|
constants: ht,
|
|
2202
2201
|
utils: ut,
|
|
@@ -2211,7 +2210,7 @@ const cn = /* @__PURE__ */ Bt(We, [["render", dn], ["__scopeId", "data-v-cce64db
|
|
|
2211
2210
|
return;
|
|
2212
2211
|
const {
|
|
2213
2212
|
operateNode: g
|
|
2214
|
-
} =
|
|
2213
|
+
} = E();
|
|
2215
2214
|
if (l === !1 || l != null && l.type)
|
|
2216
2215
|
g({
|
|
2217
2216
|
type: "updateAttributes",
|
|
@@ -2223,7 +2222,7 @@ const cn = /* @__PURE__ */ Bt(We, [["render", dn], ["__scopeId", "data-v-cce64db
|
|
|
2223
2222
|
else {
|
|
2224
2223
|
const {
|
|
2225
2224
|
condition: p,
|
|
2226
|
-
children:
|
|
2225
|
+
children: y,
|
|
2227
2226
|
...C
|
|
2228
2227
|
} = h;
|
|
2229
2228
|
g({
|
|
@@ -2235,7 +2234,7 @@ const cn = /* @__PURE__ */ Bt(We, [["render", dn], ["__scopeId", "data-v-cce64db
|
|
|
2235
2234
|
overwrite: !0
|
|
2236
2235
|
});
|
|
2237
2236
|
}
|
|
2238
|
-
|
|
2237
|
+
E().canvasApi.value.updateRect(), t.value = l;
|
|
2239
2238
|
}, {
|
|
2240
2239
|
metaData: {
|
|
2241
2240
|
id: "engine.setting.event.AdvanceConfig.setConfig"
|
|
@@ -2257,7 +2256,7 @@ const cn = /* @__PURE__ */ Bt(We, [["render", dn], ["__scopeId", "data-v-cce64db
|
|
|
2257
2256
|
SwitchConfigurator: lt,
|
|
2258
2257
|
VariableConfigurator: at,
|
|
2259
2258
|
useProperties: $,
|
|
2260
|
-
useCanvas:
|
|
2259
|
+
useCanvas: E,
|
|
2261
2260
|
PROP_DATA_TYPE: G,
|
|
2262
2261
|
constants: ht,
|
|
2263
2262
|
utils: ut,
|
|
@@ -2269,7 +2268,7 @@ const cn = /* @__PURE__ */ Bt(We, [["render", dn], ["__scopeId", "data-v-cce64db
|
|
|
2269
2268
|
let h = u.loopArgs;
|
|
2270
2269
|
const {
|
|
2271
2270
|
operateNode: g
|
|
2272
|
-
} =
|
|
2271
|
+
} = E();
|
|
2273
2272
|
h ? h[1] = l || z.INDEX : h = [z.ITEM, l], g({
|
|
2274
2273
|
type: "updateAttributes",
|
|
2275
2274
|
id: u.id,
|
|
@@ -2298,7 +2297,7 @@ const cn = /* @__PURE__ */ Bt(We, [["render", dn], ["__scopeId", "data-v-cce64db
|
|
|
2298
2297
|
SwitchConfigurator: lt,
|
|
2299
2298
|
VariableConfigurator: at,
|
|
2300
2299
|
useProperties: $,
|
|
2301
|
-
useCanvas:
|
|
2300
|
+
useCanvas: E,
|
|
2302
2301
|
PROP_DATA_TYPE: G,
|
|
2303
2302
|
constants: ht,
|
|
2304
2303
|
utils: ut,
|
|
@@ -2308,7 +2307,7 @@ const cn = /* @__PURE__ */ Bt(We, [["render", dn], ["__scopeId", "data-v-cce64db
|
|
|
2308
2307
|
}), d = b((l) => {
|
|
2309
2308
|
const {
|
|
2310
2309
|
operateNode: u
|
|
2311
|
-
} =
|
|
2310
|
+
} = E(), {
|
|
2312
2311
|
getSchema: h
|
|
2313
2312
|
} = $(), g = h();
|
|
2314
2313
|
if (l) {
|
|
@@ -2324,7 +2323,7 @@ const cn = /* @__PURE__ */ Bt(We, [["render", dn], ["__scopeId", "data-v-cce64db
|
|
|
2324
2323
|
o();
|
|
2325
2324
|
const {
|
|
2326
2325
|
loop: p,
|
|
2327
|
-
loopArgs:
|
|
2326
|
+
loopArgs: y,
|
|
2328
2327
|
children: C,
|
|
2329
2328
|
...A
|
|
2330
2329
|
} = g;
|
|
@@ -2357,7 +2356,7 @@ const cn = /* @__PURE__ */ Bt(We, [["render", dn], ["__scopeId", "data-v-cce64db
|
|
|
2357
2356
|
SwitchConfigurator: lt,
|
|
2358
2357
|
VariableConfigurator: at,
|
|
2359
2358
|
useProperties: $,
|
|
2360
|
-
useCanvas:
|
|
2359
|
+
useCanvas: E,
|
|
2361
2360
|
PROP_DATA_TYPE: G,
|
|
2362
2361
|
constants: ht,
|
|
2363
2362
|
utils: ut,
|
|
@@ -2369,7 +2368,7 @@ const cn = /* @__PURE__ */ Bt(We, [["render", dn], ["__scopeId", "data-v-cce64db
|
|
|
2369
2368
|
let h = u.loopArgs;
|
|
2370
2369
|
const {
|
|
2371
2370
|
operateNode: g
|
|
2372
|
-
} =
|
|
2371
|
+
} = E();
|
|
2373
2372
|
h ? h[0] = l || z.ITEM : h = [l, z.INDEX], g({
|
|
2374
2373
|
type: "updateAttributes",
|
|
2375
2374
|
id: u.id,
|
|
@@ -2398,7 +2397,7 @@ const cn = /* @__PURE__ */ Bt(We, [["render", dn], ["__scopeId", "data-v-cce64db
|
|
|
2398
2397
|
SwitchConfigurator: lt,
|
|
2399
2398
|
VariableConfigurator: at,
|
|
2400
2399
|
useProperties: $,
|
|
2401
|
-
useCanvas:
|
|
2400
|
+
useCanvas: E,
|
|
2402
2401
|
PROP_DATA_TYPE: G,
|
|
2403
2402
|
constants: ht,
|
|
2404
2403
|
utils: ut,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../meta.js","../../../../node_modules/.pnpm/@jridgewell+sourcemap-codec@1.5.5/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs","../../../../node_modules/.pnpm/magic-string@0.30.19/node_modules/magic-string/dist/magic-string.es.mjs","../src/components/constants.ts","../index.ts"],"sourcesContent":["export default {\n id: 'engine.setting.event',\n title: '高级',\n type: 'plugins',\n name: 'event',\n icon: 'event'\n}\n","// src/vlq.ts\nvar comma = \",\".charCodeAt(0);\nvar semicolon = \";\".charCodeAt(0);\nvar chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\nvar intToChar = new Uint8Array(64);\nvar charToInt = new Uint8Array(128);\nfor (let i = 0; i < chars.length; i++) {\n const c = chars.charCodeAt(i);\n intToChar[i] = c;\n charToInt[c] = i;\n}\nfunction decodeInteger(reader, relative) {\n let value = 0;\n let shift = 0;\n let integer = 0;\n do {\n const c = reader.next();\n integer = charToInt[c];\n value |= (integer & 31) << shift;\n shift += 5;\n } while (integer & 32);\n const shouldNegate = value & 1;\n value >>>= 1;\n if (shouldNegate) {\n value = -2147483648 | -value;\n }\n return relative + value;\n}\nfunction encodeInteger(builder, num, relative) {\n let delta = num - relative;\n delta = delta < 0 ? -delta << 1 | 1 : delta << 1;\n do {\n let clamped = delta & 31;\n delta >>>= 5;\n if (delta > 0) clamped |= 32;\n builder.write(intToChar[clamped]);\n } while (delta > 0);\n return num;\n}\nfunction hasMoreVlq(reader, max) {\n if (reader.pos >= max) return false;\n return reader.peek() !== comma;\n}\n\n// src/strings.ts\nvar bufLength = 1024 * 16;\nvar td = typeof TextDecoder !== \"undefined\" ? /* @__PURE__ */ new TextDecoder() : typeof Buffer !== \"undefined\" ? {\n decode(buf) {\n const out = Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength);\n return out.toString();\n }\n} : {\n decode(buf) {\n let out = \"\";\n for (let i = 0; i < buf.length; i++) {\n out += String.fromCharCode(buf[i]);\n }\n return out;\n }\n};\nvar StringWriter = class {\n constructor() {\n this.pos = 0;\n this.out = \"\";\n this.buffer = new Uint8Array(bufLength);\n }\n write(v) {\n const { buffer } = this;\n buffer[this.pos++] = v;\n if (this.pos === bufLength) {\n this.out += td.decode(buffer);\n this.pos = 0;\n }\n }\n flush() {\n const { buffer, out, pos } = this;\n return pos > 0 ? out + td.decode(buffer.subarray(0, pos)) : out;\n }\n};\nvar StringReader = class {\n constructor(buffer) {\n this.pos = 0;\n this.buffer = buffer;\n }\n next() {\n return this.buffer.charCodeAt(this.pos++);\n }\n peek() {\n return this.buffer.charCodeAt(this.pos);\n }\n indexOf(char) {\n const { buffer, pos } = this;\n const idx = buffer.indexOf(char, pos);\n return idx === -1 ? buffer.length : idx;\n }\n};\n\n// src/scopes.ts\nvar EMPTY = [];\nfunction decodeOriginalScopes(input) {\n const { length } = input;\n const reader = new StringReader(input);\n const scopes = [];\n const stack = [];\n let line = 0;\n for (; reader.pos < length; reader.pos++) {\n line = decodeInteger(reader, line);\n const column = decodeInteger(reader, 0);\n if (!hasMoreVlq(reader, length)) {\n const last = stack.pop();\n last[2] = line;\n last[3] = column;\n continue;\n }\n const kind = decodeInteger(reader, 0);\n const fields = decodeInteger(reader, 0);\n const hasName = fields & 1;\n const scope = hasName ? [line, column, 0, 0, kind, decodeInteger(reader, 0)] : [line, column, 0, 0, kind];\n let vars = EMPTY;\n if (hasMoreVlq(reader, length)) {\n vars = [];\n do {\n const varsIndex = decodeInteger(reader, 0);\n vars.push(varsIndex);\n } while (hasMoreVlq(reader, length));\n }\n scope.vars = vars;\n scopes.push(scope);\n stack.push(scope);\n }\n return scopes;\n}\nfunction encodeOriginalScopes(scopes) {\n const writer = new StringWriter();\n for (let i = 0; i < scopes.length; ) {\n i = _encodeOriginalScopes(scopes, i, writer, [0]);\n }\n return writer.flush();\n}\nfunction _encodeOriginalScopes(scopes, index, writer, state) {\n const scope = scopes[index];\n const { 0: startLine, 1: startColumn, 2: endLine, 3: endColumn, 4: kind, vars } = scope;\n if (index > 0) writer.write(comma);\n state[0] = encodeInteger(writer, startLine, state[0]);\n encodeInteger(writer, startColumn, 0);\n encodeInteger(writer, kind, 0);\n const fields = scope.length === 6 ? 1 : 0;\n encodeInteger(writer, fields, 0);\n if (scope.length === 6) encodeInteger(writer, scope[5], 0);\n for (const v of vars) {\n encodeInteger(writer, v, 0);\n }\n for (index++; index < scopes.length; ) {\n const next = scopes[index];\n const { 0: l, 1: c } = next;\n if (l > endLine || l === endLine && c >= endColumn) {\n break;\n }\n index = _encodeOriginalScopes(scopes, index, writer, state);\n }\n writer.write(comma);\n state[0] = encodeInteger(writer, endLine, state[0]);\n encodeInteger(writer, endColumn, 0);\n return index;\n}\nfunction decodeGeneratedRanges(input) {\n const { length } = input;\n const reader = new StringReader(input);\n const ranges = [];\n const stack = [];\n let genLine = 0;\n let definitionSourcesIndex = 0;\n let definitionScopeIndex = 0;\n let callsiteSourcesIndex = 0;\n let callsiteLine = 0;\n let callsiteColumn = 0;\n let bindingLine = 0;\n let bindingColumn = 0;\n do {\n const semi = reader.indexOf(\";\");\n let genColumn = 0;\n for (; reader.pos < semi; reader.pos++) {\n genColumn = decodeInteger(reader, genColumn);\n if (!hasMoreVlq(reader, semi)) {\n const last = stack.pop();\n last[2] = genLine;\n last[3] = genColumn;\n continue;\n }\n const fields = decodeInteger(reader, 0);\n const hasDefinition = fields & 1;\n const hasCallsite = fields & 2;\n const hasScope = fields & 4;\n let callsite = null;\n let bindings = EMPTY;\n let range;\n if (hasDefinition) {\n const defSourcesIndex = decodeInteger(reader, definitionSourcesIndex);\n definitionScopeIndex = decodeInteger(\n reader,\n definitionSourcesIndex === defSourcesIndex ? definitionScopeIndex : 0\n );\n definitionSourcesIndex = defSourcesIndex;\n range = [genLine, genColumn, 0, 0, defSourcesIndex, definitionScopeIndex];\n } else {\n range = [genLine, genColumn, 0, 0];\n }\n range.isScope = !!hasScope;\n if (hasCallsite) {\n const prevCsi = callsiteSourcesIndex;\n const prevLine = callsiteLine;\n callsiteSourcesIndex = decodeInteger(reader, callsiteSourcesIndex);\n const sameSource = prevCsi === callsiteSourcesIndex;\n callsiteLine = decodeInteger(reader, sameSource ? callsiteLine : 0);\n callsiteColumn = decodeInteger(\n reader,\n sameSource && prevLine === callsiteLine ? callsiteColumn : 0\n );\n callsite = [callsiteSourcesIndex, callsiteLine, callsiteColumn];\n }\n range.callsite = callsite;\n if (hasMoreVlq(reader, semi)) {\n bindings = [];\n do {\n bindingLine = genLine;\n bindingColumn = genColumn;\n const expressionsCount = decodeInteger(reader, 0);\n let expressionRanges;\n if (expressionsCount < -1) {\n expressionRanges = [[decodeInteger(reader, 0)]];\n for (let i = -1; i > expressionsCount; i--) {\n const prevBl = bindingLine;\n bindingLine = decodeInteger(reader, bindingLine);\n bindingColumn = decodeInteger(reader, bindingLine === prevBl ? bindingColumn : 0);\n const expression = decodeInteger(reader, 0);\n expressionRanges.push([expression, bindingLine, bindingColumn]);\n }\n } else {\n expressionRanges = [[expressionsCount]];\n }\n bindings.push(expressionRanges);\n } while (hasMoreVlq(reader, semi));\n }\n range.bindings = bindings;\n ranges.push(range);\n stack.push(range);\n }\n genLine++;\n reader.pos = semi + 1;\n } while (reader.pos < length);\n return ranges;\n}\nfunction encodeGeneratedRanges(ranges) {\n if (ranges.length === 0) return \"\";\n const writer = new StringWriter();\n for (let i = 0; i < ranges.length; ) {\n i = _encodeGeneratedRanges(ranges, i, writer, [0, 0, 0, 0, 0, 0, 0]);\n }\n return writer.flush();\n}\nfunction _encodeGeneratedRanges(ranges, index, writer, state) {\n const range = ranges[index];\n const {\n 0: startLine,\n 1: startColumn,\n 2: endLine,\n 3: endColumn,\n isScope,\n callsite,\n bindings\n } = range;\n if (state[0] < startLine) {\n catchupLine(writer, state[0], startLine);\n state[0] = startLine;\n state[1] = 0;\n } else if (index > 0) {\n writer.write(comma);\n }\n state[1] = encodeInteger(writer, range[1], state[1]);\n const fields = (range.length === 6 ? 1 : 0) | (callsite ? 2 : 0) | (isScope ? 4 : 0);\n encodeInteger(writer, fields, 0);\n if (range.length === 6) {\n const { 4: sourcesIndex, 5: scopesIndex } = range;\n if (sourcesIndex !== state[2]) {\n state[3] = 0;\n }\n state[2] = encodeInteger(writer, sourcesIndex, state[2]);\n state[3] = encodeInteger(writer, scopesIndex, state[3]);\n }\n if (callsite) {\n const { 0: sourcesIndex, 1: callLine, 2: callColumn } = range.callsite;\n if (sourcesIndex !== state[4]) {\n state[5] = 0;\n state[6] = 0;\n } else if (callLine !== state[5]) {\n state[6] = 0;\n }\n state[4] = encodeInteger(writer, sourcesIndex, state[4]);\n state[5] = encodeInteger(writer, callLine, state[5]);\n state[6] = encodeInteger(writer, callColumn, state[6]);\n }\n if (bindings) {\n for (const binding of bindings) {\n if (binding.length > 1) encodeInteger(writer, -binding.length, 0);\n const expression = binding[0][0];\n encodeInteger(writer, expression, 0);\n let bindingStartLine = startLine;\n let bindingStartColumn = startColumn;\n for (let i = 1; i < binding.length; i++) {\n const expRange = binding[i];\n bindingStartLine = encodeInteger(writer, expRange[1], bindingStartLine);\n bindingStartColumn = encodeInteger(writer, expRange[2], bindingStartColumn);\n encodeInteger(writer, expRange[0], 0);\n }\n }\n }\n for (index++; index < ranges.length; ) {\n const next = ranges[index];\n const { 0: l, 1: c } = next;\n if (l > endLine || l === endLine && c >= endColumn) {\n break;\n }\n index = _encodeGeneratedRanges(ranges, index, writer, state);\n }\n if (state[0] < endLine) {\n catchupLine(writer, state[0], endLine);\n state[0] = endLine;\n state[1] = 0;\n } else {\n writer.write(comma);\n }\n state[1] = encodeInteger(writer, endColumn, state[1]);\n return index;\n}\nfunction catchupLine(writer, lastLine, line) {\n do {\n writer.write(semicolon);\n } while (++lastLine < line);\n}\n\n// src/sourcemap-codec.ts\nfunction decode(mappings) {\n const { length } = mappings;\n const reader = new StringReader(mappings);\n const decoded = [];\n let genColumn = 0;\n let sourcesIndex = 0;\n let sourceLine = 0;\n let sourceColumn = 0;\n let namesIndex = 0;\n do {\n const semi = reader.indexOf(\";\");\n const line = [];\n let sorted = true;\n let lastCol = 0;\n genColumn = 0;\n while (reader.pos < semi) {\n let seg;\n genColumn = decodeInteger(reader, genColumn);\n if (genColumn < lastCol) sorted = false;\n lastCol = genColumn;\n if (hasMoreVlq(reader, semi)) {\n sourcesIndex = decodeInteger(reader, sourcesIndex);\n sourceLine = decodeInteger(reader, sourceLine);\n sourceColumn = decodeInteger(reader, sourceColumn);\n if (hasMoreVlq(reader, semi)) {\n namesIndex = decodeInteger(reader, namesIndex);\n seg = [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex];\n } else {\n seg = [genColumn, sourcesIndex, sourceLine, sourceColumn];\n }\n } else {\n seg = [genColumn];\n }\n line.push(seg);\n reader.pos++;\n }\n if (!sorted) sort(line);\n decoded.push(line);\n reader.pos = semi + 1;\n } while (reader.pos <= length);\n return decoded;\n}\nfunction sort(line) {\n line.sort(sortComparator);\n}\nfunction sortComparator(a, b) {\n return a[0] - b[0];\n}\nfunction encode(decoded) {\n const writer = new StringWriter();\n let sourcesIndex = 0;\n let sourceLine = 0;\n let sourceColumn = 0;\n let namesIndex = 0;\n for (let i = 0; i < decoded.length; i++) {\n const line = decoded[i];\n if (i > 0) writer.write(semicolon);\n if (line.length === 0) continue;\n let genColumn = 0;\n for (let j = 0; j < line.length; j++) {\n const segment = line[j];\n if (j > 0) writer.write(comma);\n genColumn = encodeInteger(writer, segment[0], genColumn);\n if (segment.length === 1) continue;\n sourcesIndex = encodeInteger(writer, segment[1], sourcesIndex);\n sourceLine = encodeInteger(writer, segment[2], sourceLine);\n sourceColumn = encodeInteger(writer, segment[3], sourceColumn);\n if (segment.length === 4) continue;\n namesIndex = encodeInteger(writer, segment[4], namesIndex);\n }\n }\n return writer.flush();\n}\nexport {\n decode,\n decodeGeneratedRanges,\n decodeOriginalScopes,\n encode,\n encodeGeneratedRanges,\n encodeOriginalScopes\n};\n//# sourceMappingURL=sourcemap-codec.mjs.map\n","import { encode } from '@jridgewell/sourcemap-codec';\n\nclass BitSet {\n\tconstructor(arg) {\n\t\tthis.bits = arg instanceof BitSet ? arg.bits.slice() : [];\n\t}\n\n\tadd(n) {\n\t\tthis.bits[n >> 5] |= 1 << (n & 31);\n\t}\n\n\thas(n) {\n\t\treturn !!(this.bits[n >> 5] & (1 << (n & 31)));\n\t}\n}\n\nclass Chunk {\n\tconstructor(start, end, content) {\n\t\tthis.start = start;\n\t\tthis.end = end;\n\t\tthis.original = content;\n\n\t\tthis.intro = '';\n\t\tthis.outro = '';\n\n\t\tthis.content = content;\n\t\tthis.storeName = false;\n\t\tthis.edited = false;\n\n\t\t{\n\t\t\tthis.previous = null;\n\t\t\tthis.next = null;\n\t\t}\n\t}\n\n\tappendLeft(content) {\n\t\tthis.outro += content;\n\t}\n\n\tappendRight(content) {\n\t\tthis.intro = this.intro + content;\n\t}\n\n\tclone() {\n\t\tconst chunk = new Chunk(this.start, this.end, this.original);\n\n\t\tchunk.intro = this.intro;\n\t\tchunk.outro = this.outro;\n\t\tchunk.content = this.content;\n\t\tchunk.storeName = this.storeName;\n\t\tchunk.edited = this.edited;\n\n\t\treturn chunk;\n\t}\n\n\tcontains(index) {\n\t\treturn this.start < index && index < this.end;\n\t}\n\n\teachNext(fn) {\n\t\tlet chunk = this;\n\t\twhile (chunk) {\n\t\t\tfn(chunk);\n\t\t\tchunk = chunk.next;\n\t\t}\n\t}\n\n\teachPrevious(fn) {\n\t\tlet chunk = this;\n\t\twhile (chunk) {\n\t\t\tfn(chunk);\n\t\t\tchunk = chunk.previous;\n\t\t}\n\t}\n\n\tedit(content, storeName, contentOnly) {\n\t\tthis.content = content;\n\t\tif (!contentOnly) {\n\t\t\tthis.intro = '';\n\t\t\tthis.outro = '';\n\t\t}\n\t\tthis.storeName = storeName;\n\n\t\tthis.edited = true;\n\n\t\treturn this;\n\t}\n\n\tprependLeft(content) {\n\t\tthis.outro = content + this.outro;\n\t}\n\n\tprependRight(content) {\n\t\tthis.intro = content + this.intro;\n\t}\n\n\treset() {\n\t\tthis.intro = '';\n\t\tthis.outro = '';\n\t\tif (this.edited) {\n\t\t\tthis.content = this.original;\n\t\t\tthis.storeName = false;\n\t\t\tthis.edited = false;\n\t\t}\n\t}\n\n\tsplit(index) {\n\t\tconst sliceIndex = index - this.start;\n\n\t\tconst originalBefore = this.original.slice(0, sliceIndex);\n\t\tconst originalAfter = this.original.slice(sliceIndex);\n\n\t\tthis.original = originalBefore;\n\n\t\tconst newChunk = new Chunk(index, this.end, originalAfter);\n\t\tnewChunk.outro = this.outro;\n\t\tthis.outro = '';\n\n\t\tthis.end = index;\n\n\t\tif (this.edited) {\n\t\t\t// after split we should save the edit content record into the correct chunk\n\t\t\t// to make sure sourcemap correct\n\t\t\t// For example:\n\t\t\t// ' test'.trim()\n\t\t\t// split -> ' ' + 'test'\n\t\t\t// ✔️ edit -> '' + 'test'\n\t\t\t// ✖️ edit -> 'test' + ''\n\t\t\t// TODO is this block necessary?...\n\t\t\tnewChunk.edit('', false);\n\t\t\tthis.content = '';\n\t\t} else {\n\t\t\tthis.content = originalBefore;\n\t\t}\n\n\t\tnewChunk.next = this.next;\n\t\tif (newChunk.next) newChunk.next.previous = newChunk;\n\t\tnewChunk.previous = this;\n\t\tthis.next = newChunk;\n\n\t\treturn newChunk;\n\t}\n\n\ttoString() {\n\t\treturn this.intro + this.content + this.outro;\n\t}\n\n\ttrimEnd(rx) {\n\t\tthis.outro = this.outro.replace(rx, '');\n\t\tif (this.outro.length) return true;\n\n\t\tconst trimmed = this.content.replace(rx, '');\n\n\t\tif (trimmed.length) {\n\t\t\tif (trimmed !== this.content) {\n\t\t\t\tthis.split(this.start + trimmed.length).edit('', undefined, true);\n\t\t\t\tif (this.edited) {\n\t\t\t\t\t// save the change, if it has been edited\n\t\t\t\t\tthis.edit(trimmed, this.storeName, true);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} else {\n\t\t\tthis.edit('', undefined, true);\n\n\t\t\tthis.intro = this.intro.replace(rx, '');\n\t\t\tif (this.intro.length) return true;\n\t\t}\n\t}\n\n\ttrimStart(rx) {\n\t\tthis.intro = this.intro.replace(rx, '');\n\t\tif (this.intro.length) return true;\n\n\t\tconst trimmed = this.content.replace(rx, '');\n\n\t\tif (trimmed.length) {\n\t\t\tif (trimmed !== this.content) {\n\t\t\t\tconst newChunk = this.split(this.end - trimmed.length);\n\t\t\t\tif (this.edited) {\n\t\t\t\t\t// save the change, if it has been edited\n\t\t\t\t\tnewChunk.edit(trimmed, this.storeName, true);\n\t\t\t\t}\n\t\t\t\tthis.edit('', undefined, true);\n\t\t\t}\n\t\t\treturn true;\n\t\t} else {\n\t\t\tthis.edit('', undefined, true);\n\n\t\t\tthis.outro = this.outro.replace(rx, '');\n\t\t\tif (this.outro.length) return true;\n\t\t}\n\t}\n}\n\nfunction getBtoa() {\n\tif (typeof globalThis !== 'undefined' && typeof globalThis.btoa === 'function') {\n\t\treturn (str) => globalThis.btoa(unescape(encodeURIComponent(str)));\n\t} else if (typeof Buffer === 'function') {\n\t\treturn (str) => Buffer.from(str, 'utf-8').toString('base64');\n\t} else {\n\t\treturn () => {\n\t\t\tthrow new Error('Unsupported environment: `window.btoa` or `Buffer` should be supported.');\n\t\t};\n\t}\n}\n\nconst btoa = /*#__PURE__*/ getBtoa();\n\nclass SourceMap {\n\tconstructor(properties) {\n\t\tthis.version = 3;\n\t\tthis.file = properties.file;\n\t\tthis.sources = properties.sources;\n\t\tthis.sourcesContent = properties.sourcesContent;\n\t\tthis.names = properties.names;\n\t\tthis.mappings = encode(properties.mappings);\n\t\tif (typeof properties.x_google_ignoreList !== 'undefined') {\n\t\t\tthis.x_google_ignoreList = properties.x_google_ignoreList;\n\t\t}\n\t\tif (typeof properties.debugId !== 'undefined') {\n\t\t\tthis.debugId = properties.debugId;\n\t\t}\n\t}\n\n\ttoString() {\n\t\treturn JSON.stringify(this);\n\t}\n\n\ttoUrl() {\n\t\treturn 'data:application/json;charset=utf-8;base64,' + btoa(this.toString());\n\t}\n}\n\nfunction guessIndent(code) {\n\tconst lines = code.split('\\n');\n\n\tconst tabbed = lines.filter((line) => /^\\t+/.test(line));\n\tconst spaced = lines.filter((line) => /^ {2,}/.test(line));\n\n\tif (tabbed.length === 0 && spaced.length === 0) {\n\t\treturn null;\n\t}\n\n\t// More lines tabbed than spaced? Assume tabs, and\n\t// default to tabs in the case of a tie (or nothing\n\t// to go on)\n\tif (tabbed.length >= spaced.length) {\n\t\treturn '\\t';\n\t}\n\n\t// Otherwise, we need to guess the multiple\n\tconst min = spaced.reduce((previous, current) => {\n\t\tconst numSpaces = /^ +/.exec(current)[0].length;\n\t\treturn Math.min(numSpaces, previous);\n\t}, Infinity);\n\n\treturn new Array(min + 1).join(' ');\n}\n\nfunction getRelativePath(from, to) {\n\tconst fromParts = from.split(/[/\\\\]/);\n\tconst toParts = to.split(/[/\\\\]/);\n\n\tfromParts.pop(); // get dirname\n\n\twhile (fromParts[0] === toParts[0]) {\n\t\tfromParts.shift();\n\t\ttoParts.shift();\n\t}\n\n\tif (fromParts.length) {\n\t\tlet i = fromParts.length;\n\t\twhile (i--) fromParts[i] = '..';\n\t}\n\n\treturn fromParts.concat(toParts).join('/');\n}\n\nconst toString = Object.prototype.toString;\n\nfunction isObject(thing) {\n\treturn toString.call(thing) === '[object Object]';\n}\n\nfunction getLocator(source) {\n\tconst originalLines = source.split('\\n');\n\tconst lineOffsets = [];\n\n\tfor (let i = 0, pos = 0; i < originalLines.length; i++) {\n\t\tlineOffsets.push(pos);\n\t\tpos += originalLines[i].length + 1;\n\t}\n\n\treturn function locate(index) {\n\t\tlet i = 0;\n\t\tlet j = lineOffsets.length;\n\t\twhile (i < j) {\n\t\t\tconst m = (i + j) >> 1;\n\t\t\tif (index < lineOffsets[m]) {\n\t\t\t\tj = m;\n\t\t\t} else {\n\t\t\t\ti = m + 1;\n\t\t\t}\n\t\t}\n\t\tconst line = i - 1;\n\t\tconst column = index - lineOffsets[line];\n\t\treturn { line, column };\n\t};\n}\n\nconst wordRegex = /\\w/;\n\nclass Mappings {\n\tconstructor(hires) {\n\t\tthis.hires = hires;\n\t\tthis.generatedCodeLine = 0;\n\t\tthis.generatedCodeColumn = 0;\n\t\tthis.raw = [];\n\t\tthis.rawSegments = this.raw[this.generatedCodeLine] = [];\n\t\tthis.pending = null;\n\t}\n\n\taddEdit(sourceIndex, content, loc, nameIndex) {\n\t\tif (content.length) {\n\t\t\tconst contentLengthMinusOne = content.length - 1;\n\t\t\tlet contentLineEnd = content.indexOf('\\n', 0);\n\t\t\tlet previousContentLineEnd = -1;\n\t\t\t// Loop through each line in the content and add a segment, but stop if the last line is empty,\n\t\t\t// else code afterwards would fill one line too many\n\t\t\twhile (contentLineEnd >= 0 && contentLengthMinusOne > contentLineEnd) {\n\t\t\t\tconst segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\t\t\t\tif (nameIndex >= 0) {\n\t\t\t\t\tsegment.push(nameIndex);\n\t\t\t\t}\n\t\t\t\tthis.rawSegments.push(segment);\n\n\t\t\t\tthis.generatedCodeLine += 1;\n\t\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\t\tthis.generatedCodeColumn = 0;\n\n\t\t\t\tpreviousContentLineEnd = contentLineEnd;\n\t\t\t\tcontentLineEnd = content.indexOf('\\n', contentLineEnd + 1);\n\t\t\t}\n\n\t\t\tconst segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\t\t\tif (nameIndex >= 0) {\n\t\t\t\tsegment.push(nameIndex);\n\t\t\t}\n\t\t\tthis.rawSegments.push(segment);\n\n\t\t\tthis.advance(content.slice(previousContentLineEnd + 1));\n\t\t} else if (this.pending) {\n\t\t\tthis.rawSegments.push(this.pending);\n\t\t\tthis.advance(content);\n\t\t}\n\n\t\tthis.pending = null;\n\t}\n\n\taddUneditedChunk(sourceIndex, chunk, original, loc, sourcemapLocations) {\n\t\tlet originalCharIndex = chunk.start;\n\t\tlet first = true;\n\t\t// when iterating each char, check if it's in a word boundary\n\t\tlet charInHiresBoundary = false;\n\n\t\twhile (originalCharIndex < chunk.end) {\n\t\t\tif (original[originalCharIndex] === '\\n') {\n\t\t\t\tloc.line += 1;\n\t\t\t\tloc.column = 0;\n\t\t\t\tthis.generatedCodeLine += 1;\n\t\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\t\tthis.generatedCodeColumn = 0;\n\t\t\t\tfirst = true;\n\t\t\t\tcharInHiresBoundary = false;\n\t\t\t} else {\n\t\t\t\tif (this.hires || first || sourcemapLocations.has(originalCharIndex)) {\n\t\t\t\t\tconst segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\n\t\t\t\t\tif (this.hires === 'boundary') {\n\t\t\t\t\t\t// in hires \"boundary\", group segments per word boundary than per char\n\t\t\t\t\t\tif (wordRegex.test(original[originalCharIndex])) {\n\t\t\t\t\t\t\t// for first char in the boundary found, start the boundary by pushing a segment\n\t\t\t\t\t\t\tif (!charInHiresBoundary) {\n\t\t\t\t\t\t\t\tthis.rawSegments.push(segment);\n\t\t\t\t\t\t\t\tcharInHiresBoundary = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// for non-word char, end the boundary by pushing a segment\n\t\t\t\t\t\t\tthis.rawSegments.push(segment);\n\t\t\t\t\t\t\tcharInHiresBoundary = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.rawSegments.push(segment);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tloc.column += 1;\n\t\t\t\tthis.generatedCodeColumn += 1;\n\t\t\t\tfirst = false;\n\t\t\t}\n\n\t\t\toriginalCharIndex += 1;\n\t\t}\n\n\t\tthis.pending = null;\n\t}\n\n\tadvance(str) {\n\t\tif (!str) return;\n\n\t\tconst lines = str.split('\\n');\n\n\t\tif (lines.length > 1) {\n\t\t\tfor (let i = 0; i < lines.length - 1; i++) {\n\t\t\t\tthis.generatedCodeLine++;\n\t\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\t}\n\t\t\tthis.generatedCodeColumn = 0;\n\t\t}\n\n\t\tthis.generatedCodeColumn += lines[lines.length - 1].length;\n\t}\n}\n\nconst n = '\\n';\n\nconst warned = {\n\tinsertLeft: false,\n\tinsertRight: false,\n\tstoreName: false,\n};\n\nclass MagicString {\n\tconstructor(string, options = {}) {\n\t\tconst chunk = new Chunk(0, string.length, string);\n\n\t\tObject.defineProperties(this, {\n\t\t\toriginal: { writable: true, value: string },\n\t\t\toutro: { writable: true, value: '' },\n\t\t\tintro: { writable: true, value: '' },\n\t\t\tfirstChunk: { writable: true, value: chunk },\n\t\t\tlastChunk: { writable: true, value: chunk },\n\t\t\tlastSearchedChunk: { writable: true, value: chunk },\n\t\t\tbyStart: { writable: true, value: {} },\n\t\t\tbyEnd: { writable: true, value: {} },\n\t\t\tfilename: { writable: true, value: options.filename },\n\t\t\tindentExclusionRanges: { writable: true, value: options.indentExclusionRanges },\n\t\t\tsourcemapLocations: { writable: true, value: new BitSet() },\n\t\t\tstoredNames: { writable: true, value: {} },\n\t\t\tindentStr: { writable: true, value: undefined },\n\t\t\tignoreList: { writable: true, value: options.ignoreList },\n\t\t\toffset: { writable: true, value: options.offset || 0 },\n\t\t});\n\n\t\tthis.byStart[0] = chunk;\n\t\tthis.byEnd[string.length] = chunk;\n\t}\n\n\taddSourcemapLocation(char) {\n\t\tthis.sourcemapLocations.add(char);\n\t}\n\n\tappend(content) {\n\t\tif (typeof content !== 'string') throw new TypeError('outro content must be a string');\n\n\t\tthis.outro += content;\n\t\treturn this;\n\t}\n\n\tappendLeft(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byEnd[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.appendLeft(content);\n\t\t} else {\n\t\t\tthis.intro += content;\n\t\t}\n\t\treturn this;\n\t}\n\n\tappendRight(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byStart[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.appendRight(content);\n\t\t} else {\n\t\t\tthis.outro += content;\n\t\t}\n\t\treturn this;\n\t}\n\n\tclone() {\n\t\tconst cloned = new MagicString(this.original, { filename: this.filename, offset: this.offset });\n\n\t\tlet originalChunk = this.firstChunk;\n\t\tlet clonedChunk = (cloned.firstChunk = cloned.lastSearchedChunk = originalChunk.clone());\n\n\t\twhile (originalChunk) {\n\t\t\tcloned.byStart[clonedChunk.start] = clonedChunk;\n\t\t\tcloned.byEnd[clonedChunk.end] = clonedChunk;\n\n\t\t\tconst nextOriginalChunk = originalChunk.next;\n\t\t\tconst nextClonedChunk = nextOriginalChunk && nextOriginalChunk.clone();\n\n\t\t\tif (nextClonedChunk) {\n\t\t\t\tclonedChunk.next = nextClonedChunk;\n\t\t\t\tnextClonedChunk.previous = clonedChunk;\n\n\t\t\t\tclonedChunk = nextClonedChunk;\n\t\t\t}\n\n\t\t\toriginalChunk = nextOriginalChunk;\n\t\t}\n\n\t\tcloned.lastChunk = clonedChunk;\n\n\t\tif (this.indentExclusionRanges) {\n\t\t\tcloned.indentExclusionRanges = this.indentExclusionRanges.slice();\n\t\t}\n\n\t\tcloned.sourcemapLocations = new BitSet(this.sourcemapLocations);\n\n\t\tcloned.intro = this.intro;\n\t\tcloned.outro = this.outro;\n\n\t\treturn cloned;\n\t}\n\n\tgenerateDecodedMap(options) {\n\t\toptions = options || {};\n\n\t\tconst sourceIndex = 0;\n\t\tconst names = Object.keys(this.storedNames);\n\t\tconst mappings = new Mappings(options.hires);\n\n\t\tconst locate = getLocator(this.original);\n\n\t\tif (this.intro) {\n\t\t\tmappings.advance(this.intro);\n\t\t}\n\n\t\tthis.firstChunk.eachNext((chunk) => {\n\t\t\tconst loc = locate(chunk.start);\n\n\t\t\tif (chunk.intro.length) mappings.advance(chunk.intro);\n\n\t\t\tif (chunk.edited) {\n\t\t\t\tmappings.addEdit(\n\t\t\t\t\tsourceIndex,\n\t\t\t\t\tchunk.content,\n\t\t\t\t\tloc,\n\t\t\t\t\tchunk.storeName ? names.indexOf(chunk.original) : -1,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tmappings.addUneditedChunk(sourceIndex, chunk, this.original, loc, this.sourcemapLocations);\n\t\t\t}\n\n\t\t\tif (chunk.outro.length) mappings.advance(chunk.outro);\n\t\t});\n\n\t\tif (this.outro) {\n\t\t\tmappings.advance(this.outro);\n\t\t}\n\n\t\treturn {\n\t\t\tfile: options.file ? options.file.split(/[/\\\\]/).pop() : undefined,\n\t\t\tsources: [\n\t\t\t\toptions.source ? getRelativePath(options.file || '', options.source) : options.file || '',\n\t\t\t],\n\t\t\tsourcesContent: options.includeContent ? [this.original] : undefined,\n\t\t\tnames,\n\t\t\tmappings: mappings.raw,\n\t\t\tx_google_ignoreList: this.ignoreList ? [sourceIndex] : undefined,\n\t\t};\n\t}\n\n\tgenerateMap(options) {\n\t\treturn new SourceMap(this.generateDecodedMap(options));\n\t}\n\n\t_ensureindentStr() {\n\t\tif (this.indentStr === undefined) {\n\t\t\tthis.indentStr = guessIndent(this.original);\n\t\t}\n\t}\n\n\t_getRawIndentString() {\n\t\tthis._ensureindentStr();\n\t\treturn this.indentStr;\n\t}\n\n\tgetIndentString() {\n\t\tthis._ensureindentStr();\n\t\treturn this.indentStr === null ? '\\t' : this.indentStr;\n\t}\n\n\tindent(indentStr, options) {\n\t\tconst pattern = /^[^\\r\\n]/gm;\n\n\t\tif (isObject(indentStr)) {\n\t\t\toptions = indentStr;\n\t\t\tindentStr = undefined;\n\t\t}\n\n\t\tif (indentStr === undefined) {\n\t\t\tthis._ensureindentStr();\n\t\t\tindentStr = this.indentStr || '\\t';\n\t\t}\n\n\t\tif (indentStr === '') return this; // noop\n\n\t\toptions = options || {};\n\n\t\t// Process exclusion ranges\n\t\tconst isExcluded = {};\n\n\t\tif (options.exclude) {\n\t\t\tconst exclusions =\n\t\t\t\ttypeof options.exclude[0] === 'number' ? [options.exclude] : options.exclude;\n\t\t\texclusions.forEach((exclusion) => {\n\t\t\t\tfor (let i = exclusion[0]; i < exclusion[1]; i += 1) {\n\t\t\t\t\tisExcluded[i] = true;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tlet shouldIndentNextCharacter = options.indentStart !== false;\n\t\tconst replacer = (match) => {\n\t\t\tif (shouldIndentNextCharacter) return `${indentStr}${match}`;\n\t\t\tshouldIndentNextCharacter = true;\n\t\t\treturn match;\n\t\t};\n\n\t\tthis.intro = this.intro.replace(pattern, replacer);\n\n\t\tlet charIndex = 0;\n\t\tlet chunk = this.firstChunk;\n\n\t\twhile (chunk) {\n\t\t\tconst end = chunk.end;\n\n\t\t\tif (chunk.edited) {\n\t\t\t\tif (!isExcluded[charIndex]) {\n\t\t\t\t\tchunk.content = chunk.content.replace(pattern, replacer);\n\n\t\t\t\t\tif (chunk.content.length) {\n\t\t\t\t\t\tshouldIndentNextCharacter = chunk.content[chunk.content.length - 1] === '\\n';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcharIndex = chunk.start;\n\n\t\t\t\twhile (charIndex < end) {\n\t\t\t\t\tif (!isExcluded[charIndex]) {\n\t\t\t\t\t\tconst char = this.original[charIndex];\n\n\t\t\t\t\t\tif (char === '\\n') {\n\t\t\t\t\t\t\tshouldIndentNextCharacter = true;\n\t\t\t\t\t\t} else if (char !== '\\r' && shouldIndentNextCharacter) {\n\t\t\t\t\t\t\tshouldIndentNextCharacter = false;\n\n\t\t\t\t\t\t\tif (charIndex === chunk.start) {\n\t\t\t\t\t\t\t\tchunk.prependRight(indentStr);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis._splitChunk(chunk, charIndex);\n\t\t\t\t\t\t\t\tchunk = chunk.next;\n\t\t\t\t\t\t\t\tchunk.prependRight(indentStr);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tcharIndex += 1;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcharIndex = chunk.end;\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\tthis.outro = this.outro.replace(pattern, replacer);\n\n\t\treturn this;\n\t}\n\n\tinsert() {\n\t\tthrow new Error(\n\t\t\t'magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)',\n\t\t);\n\t}\n\n\tinsertLeft(index, content) {\n\t\tif (!warned.insertLeft) {\n\t\t\tconsole.warn(\n\t\t\t\t'magicString.insertLeft(...) is deprecated. Use magicString.appendLeft(...) instead',\n\t\t\t);\n\t\t\twarned.insertLeft = true;\n\t\t}\n\n\t\treturn this.appendLeft(index, content);\n\t}\n\n\tinsertRight(index, content) {\n\t\tif (!warned.insertRight) {\n\t\t\tconsole.warn(\n\t\t\t\t'magicString.insertRight(...) is deprecated. Use magicString.prependRight(...) instead',\n\t\t\t);\n\t\t\twarned.insertRight = true;\n\t\t}\n\n\t\treturn this.prependRight(index, content);\n\t}\n\n\tmove(start, end, index) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\t\tindex = index + this.offset;\n\n\t\tif (index >= start && index <= end) throw new Error('Cannot move a selection inside itself');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\t\tthis._split(index);\n\n\t\tconst first = this.byStart[start];\n\t\tconst last = this.byEnd[end];\n\n\t\tconst oldLeft = first.previous;\n\t\tconst oldRight = last.next;\n\n\t\tconst newRight = this.byStart[index];\n\t\tif (!newRight && last === this.lastChunk) return this;\n\t\tconst newLeft = newRight ? newRight.previous : this.lastChunk;\n\n\t\tif (oldLeft) oldLeft.next = oldRight;\n\t\tif (oldRight) oldRight.previous = oldLeft;\n\n\t\tif (newLeft) newLeft.next = first;\n\t\tif (newRight) newRight.previous = last;\n\n\t\tif (!first.previous) this.firstChunk = last.next;\n\t\tif (!last.next) {\n\t\t\tthis.lastChunk = first.previous;\n\t\t\tthis.lastChunk.next = null;\n\t\t}\n\n\t\tfirst.previous = newLeft;\n\t\tlast.next = newRight || null;\n\n\t\tif (!newLeft) this.firstChunk = first;\n\t\tif (!newRight) this.lastChunk = last;\n\t\treturn this;\n\t}\n\n\toverwrite(start, end, content, options) {\n\t\toptions = options || {};\n\t\treturn this.update(start, end, content, { ...options, overwrite: !options.contentOnly });\n\t}\n\n\tupdate(start, end, content, options) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('replacement content must be a string');\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tif (end > this.original.length) throw new Error('end is out of bounds');\n\t\tif (start === end)\n\t\t\tthrow new Error(\n\t\t\t\t'Cannot overwrite a zero-length range – use appendLeft or prependRight instead',\n\t\t\t);\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\n\t\tif (options === true) {\n\t\t\tif (!warned.storeName) {\n\t\t\t\tconsole.warn(\n\t\t\t\t\t'The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string',\n\t\t\t\t);\n\t\t\t\twarned.storeName = true;\n\t\t\t}\n\n\t\t\toptions = { storeName: true };\n\t\t}\n\t\tconst storeName = options !== undefined ? options.storeName : false;\n\t\tconst overwrite = options !== undefined ? options.overwrite : false;\n\n\t\tif (storeName) {\n\t\t\tconst original = this.original.slice(start, end);\n\t\t\tObject.defineProperty(this.storedNames, original, {\n\t\t\t\twritable: true,\n\t\t\t\tvalue: true,\n\t\t\t\tenumerable: true,\n\t\t\t});\n\t\t}\n\n\t\tconst first = this.byStart[start];\n\t\tconst last = this.byEnd[end];\n\n\t\tif (first) {\n\t\t\tlet chunk = first;\n\t\t\twhile (chunk !== last) {\n\t\t\t\tif (chunk.next !== this.byStart[chunk.end]) {\n\t\t\t\t\tthrow new Error('Cannot overwrite across a split point');\n\t\t\t\t}\n\t\t\t\tchunk = chunk.next;\n\t\t\t\tchunk.edit('', false);\n\t\t\t}\n\n\t\t\tfirst.edit(content, storeName, !overwrite);\n\t\t} else {\n\t\t\t// must be inserting at the end\n\t\t\tconst newChunk = new Chunk(start, end, '').edit(content, storeName);\n\n\t\t\t// TODO last chunk in the array may not be the last chunk, if it's moved...\n\t\t\tlast.next = newChunk;\n\t\t\tnewChunk.previous = last;\n\t\t}\n\t\treturn this;\n\t}\n\n\tprepend(content) {\n\t\tif (typeof content !== 'string') throw new TypeError('outro content must be a string');\n\n\t\tthis.intro = content + this.intro;\n\t\treturn this;\n\t}\n\n\tprependLeft(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byEnd[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.prependLeft(content);\n\t\t} else {\n\t\t\tthis.intro = content + this.intro;\n\t\t}\n\t\treturn this;\n\t}\n\n\tprependRight(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byStart[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.prependRight(content);\n\t\t} else {\n\t\t\tthis.outro = content + this.outro;\n\t\t}\n\t\treturn this;\n\t}\n\n\tremove(start, end) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tif (start === end) return this;\n\n\t\tif (start < 0 || end > this.original.length) throw new Error('Character is out of bounds');\n\t\tif (start > end) throw new Error('end must be greater than start');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\n\t\tlet chunk = this.byStart[start];\n\n\t\twhile (chunk) {\n\t\t\tchunk.intro = '';\n\t\t\tchunk.outro = '';\n\t\t\tchunk.edit('');\n\n\t\t\tchunk = end > chunk.end ? this.byStart[chunk.end] : null;\n\t\t}\n\t\treturn this;\n\t}\n\n\treset(start, end) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tif (start === end) return this;\n\n\t\tif (start < 0 || end > this.original.length) throw new Error('Character is out of bounds');\n\t\tif (start > end) throw new Error('end must be greater than start');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\n\t\tlet chunk = this.byStart[start];\n\n\t\twhile (chunk) {\n\t\t\tchunk.reset();\n\n\t\t\tchunk = end > chunk.end ? this.byStart[chunk.end] : null;\n\t\t}\n\t\treturn this;\n\t}\n\n\tlastChar() {\n\t\tif (this.outro.length) return this.outro[this.outro.length - 1];\n\t\tlet chunk = this.lastChunk;\n\t\tdo {\n\t\t\tif (chunk.outro.length) return chunk.outro[chunk.outro.length - 1];\n\t\t\tif (chunk.content.length) return chunk.content[chunk.content.length - 1];\n\t\t\tif (chunk.intro.length) return chunk.intro[chunk.intro.length - 1];\n\t\t} while ((chunk = chunk.previous));\n\t\tif (this.intro.length) return this.intro[this.intro.length - 1];\n\t\treturn '';\n\t}\n\n\tlastLine() {\n\t\tlet lineIndex = this.outro.lastIndexOf(n);\n\t\tif (lineIndex !== -1) return this.outro.substr(lineIndex + 1);\n\t\tlet lineStr = this.outro;\n\t\tlet chunk = this.lastChunk;\n\t\tdo {\n\t\t\tif (chunk.outro.length > 0) {\n\t\t\t\tlineIndex = chunk.outro.lastIndexOf(n);\n\t\t\t\tif (lineIndex !== -1) return chunk.outro.substr(lineIndex + 1) + lineStr;\n\t\t\t\tlineStr = chunk.outro + lineStr;\n\t\t\t}\n\n\t\t\tif (chunk.content.length > 0) {\n\t\t\t\tlineIndex = chunk.content.lastIndexOf(n);\n\t\t\t\tif (lineIndex !== -1) return chunk.content.substr(lineIndex + 1) + lineStr;\n\t\t\t\tlineStr = chunk.content + lineStr;\n\t\t\t}\n\n\t\t\tif (chunk.intro.length > 0) {\n\t\t\t\tlineIndex = chunk.intro.lastIndexOf(n);\n\t\t\t\tif (lineIndex !== -1) return chunk.intro.substr(lineIndex + 1) + lineStr;\n\t\t\t\tlineStr = chunk.intro + lineStr;\n\t\t\t}\n\t\t} while ((chunk = chunk.previous));\n\t\tlineIndex = this.intro.lastIndexOf(n);\n\t\tif (lineIndex !== -1) return this.intro.substr(lineIndex + 1) + lineStr;\n\t\treturn this.intro + lineStr;\n\t}\n\n\tslice(start = 0, end = this.original.length - this.offset) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tlet result = '';\n\n\t\t// find start chunk\n\t\tlet chunk = this.firstChunk;\n\t\twhile (chunk && (chunk.start > start || chunk.end <= start)) {\n\t\t\t// found end chunk before start\n\t\t\tif (chunk.start < end && chunk.end >= end) {\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\tif (chunk && chunk.edited && chunk.start !== start)\n\t\t\tthrow new Error(`Cannot use replaced character ${start} as slice start anchor.`);\n\n\t\tconst startChunk = chunk;\n\t\twhile (chunk) {\n\t\t\tif (chunk.intro && (startChunk !== chunk || chunk.start === start)) {\n\t\t\t\tresult += chunk.intro;\n\t\t\t}\n\n\t\t\tconst containsEnd = chunk.start < end && chunk.end >= end;\n\t\t\tif (containsEnd && chunk.edited && chunk.end !== end)\n\t\t\t\tthrow new Error(`Cannot use replaced character ${end} as slice end anchor.`);\n\n\t\t\tconst sliceStart = startChunk === chunk ? start - chunk.start : 0;\n\t\t\tconst sliceEnd = containsEnd ? chunk.content.length + end - chunk.end : chunk.content.length;\n\n\t\t\tresult += chunk.content.slice(sliceStart, sliceEnd);\n\n\t\t\tif (chunk.outro && (!containsEnd || chunk.end === end)) {\n\t\t\t\tresult += chunk.outro;\n\t\t\t}\n\n\t\t\tif (containsEnd) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\treturn result;\n\t}\n\n\t// TODO deprecate this? not really very useful\n\tsnip(start, end) {\n\t\tconst clone = this.clone();\n\t\tclone.remove(0, start);\n\t\tclone.remove(end, clone.original.length);\n\n\t\treturn clone;\n\t}\n\n\t_split(index) {\n\t\tif (this.byStart[index] || this.byEnd[index]) return;\n\n\t\tlet chunk = this.lastSearchedChunk;\n\t\tlet previousChunk = chunk;\n\t\tconst searchForward = index > chunk.end;\n\n\t\twhile (chunk) {\n\t\t\tif (chunk.contains(index)) return this._splitChunk(chunk, index);\n\n\t\t\tchunk = searchForward ? this.byStart[chunk.end] : this.byEnd[chunk.start];\n\n\t\t\t// Prevent infinite loop (e.g. via empty chunks, where start === end)\n\t\t\tif (chunk === previousChunk) return;\n\n\t\t\tpreviousChunk = chunk;\n\t\t}\n\t}\n\n\t_splitChunk(chunk, index) {\n\t\tif (chunk.edited && chunk.content.length) {\n\t\t\t// zero-length edited chunks are a special case (overlapping replacements)\n\t\t\tconst loc = getLocator(this.original)(index);\n\t\t\tthrow new Error(\n\t\t\t\t`Cannot split a chunk that has already been edited (${loc.line}:${loc.column} – \"${chunk.original}\")`,\n\t\t\t);\n\t\t}\n\n\t\tconst newChunk = chunk.split(index);\n\n\t\tthis.byEnd[index] = chunk;\n\t\tthis.byStart[index] = newChunk;\n\t\tthis.byEnd[newChunk.end] = newChunk;\n\n\t\tif (chunk === this.lastChunk) this.lastChunk = newChunk;\n\n\t\tthis.lastSearchedChunk = chunk;\n\t\treturn true;\n\t}\n\n\ttoString() {\n\t\tlet str = this.intro;\n\n\t\tlet chunk = this.firstChunk;\n\t\twhile (chunk) {\n\t\t\tstr += chunk.toString();\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\treturn str + this.outro;\n\t}\n\n\tisEmpty() {\n\t\tlet chunk = this.firstChunk;\n\t\tdo {\n\t\t\tif (\n\t\t\t\t(chunk.intro.length && chunk.intro.trim()) ||\n\t\t\t\t(chunk.content.length && chunk.content.trim()) ||\n\t\t\t\t(chunk.outro.length && chunk.outro.trim())\n\t\t\t)\n\t\t\t\treturn false;\n\t\t} while ((chunk = chunk.next));\n\t\treturn true;\n\t}\n\n\tlength() {\n\t\tlet chunk = this.firstChunk;\n\t\tlet length = 0;\n\t\tdo {\n\t\t\tlength += chunk.intro.length + chunk.content.length + chunk.outro.length;\n\t\t} while ((chunk = chunk.next));\n\t\treturn length;\n\t}\n\n\ttrimLines() {\n\t\treturn this.trim('[\\\\r\\\\n]');\n\t}\n\n\ttrim(charType) {\n\t\treturn this.trimStart(charType).trimEnd(charType);\n\t}\n\n\ttrimEndAborted(charType) {\n\t\tconst rx = new RegExp((charType || '\\\\s') + '+$');\n\n\t\tthis.outro = this.outro.replace(rx, '');\n\t\tif (this.outro.length) return true;\n\n\t\tlet chunk = this.lastChunk;\n\n\t\tdo {\n\t\t\tconst end = chunk.end;\n\t\t\tconst aborted = chunk.trimEnd(rx);\n\n\t\t\t// if chunk was trimmed, we have a new lastChunk\n\t\t\tif (chunk.end !== end) {\n\t\t\t\tif (this.lastChunk === chunk) {\n\t\t\t\t\tthis.lastChunk = chunk.next;\n\t\t\t\t}\n\n\t\t\t\tthis.byEnd[chunk.end] = chunk;\n\t\t\t\tthis.byStart[chunk.next.start] = chunk.next;\n\t\t\t\tthis.byEnd[chunk.next.end] = chunk.next;\n\t\t\t}\n\n\t\t\tif (aborted) return true;\n\t\t\tchunk = chunk.previous;\n\t\t} while (chunk);\n\n\t\treturn false;\n\t}\n\n\ttrimEnd(charType) {\n\t\tthis.trimEndAborted(charType);\n\t\treturn this;\n\t}\n\ttrimStartAborted(charType) {\n\t\tconst rx = new RegExp('^' + (charType || '\\\\s') + '+');\n\n\t\tthis.intro = this.intro.replace(rx, '');\n\t\tif (this.intro.length) return true;\n\n\t\tlet chunk = this.firstChunk;\n\n\t\tdo {\n\t\t\tconst end = chunk.end;\n\t\t\tconst aborted = chunk.trimStart(rx);\n\n\t\t\tif (chunk.end !== end) {\n\t\t\t\t// special case...\n\t\t\t\tif (chunk === this.lastChunk) this.lastChunk = chunk.next;\n\n\t\t\t\tthis.byEnd[chunk.end] = chunk;\n\t\t\t\tthis.byStart[chunk.next.start] = chunk.next;\n\t\t\t\tthis.byEnd[chunk.next.end] = chunk.next;\n\t\t\t}\n\n\t\t\tif (aborted) return true;\n\t\t\tchunk = chunk.next;\n\t\t} while (chunk);\n\n\t\treturn false;\n\t}\n\n\ttrimStart(charType) {\n\t\tthis.trimStartAborted(charType);\n\t\treturn this;\n\t}\n\n\thasChanged() {\n\t\treturn this.original !== this.toString();\n\t}\n\n\t_replaceRegexp(searchValue, replacement) {\n\t\tfunction getReplacement(match, str) {\n\t\t\tif (typeof replacement === 'string') {\n\t\t\t\treturn replacement.replace(/\\$(\\$|&|\\d+)/g, (_, i) => {\n\t\t\t\t\t// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#specifying_a_string_as_a_parameter\n\t\t\t\t\tif (i === '$') return '$';\n\t\t\t\t\tif (i === '&') return match[0];\n\t\t\t\t\tconst num = +i;\n\t\t\t\t\tif (num < match.length) return match[+i];\n\t\t\t\t\treturn `$${i}`;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn replacement(...match, match.index, str, match.groups);\n\t\t\t}\n\t\t}\n\t\tfunction matchAll(re, str) {\n\t\t\tlet match;\n\t\t\tconst matches = [];\n\t\t\twhile ((match = re.exec(str))) {\n\t\t\t\tmatches.push(match);\n\t\t\t}\n\t\t\treturn matches;\n\t\t}\n\t\tif (searchValue.global) {\n\t\t\tconst matches = matchAll(searchValue, this.original);\n\t\t\tmatches.forEach((match) => {\n\t\t\t\tif (match.index != null) {\n\t\t\t\t\tconst replacement = getReplacement(match, this.original);\n\t\t\t\t\tif (replacement !== match[0]) {\n\t\t\t\t\t\tthis.overwrite(match.index, match.index + match[0].length, replacement);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tconst match = this.original.match(searchValue);\n\t\t\tif (match && match.index != null) {\n\t\t\t\tconst replacement = getReplacement(match, this.original);\n\t\t\t\tif (replacement !== match[0]) {\n\t\t\t\t\tthis.overwrite(match.index, match.index + match[0].length, replacement);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\n\t_replaceString(string, replacement) {\n\t\tconst { original } = this;\n\t\tconst index = original.indexOf(string);\n\n\t\tif (index !== -1) {\n\t\t\tif (typeof replacement === 'function') {\n\t\t\t\treplacement = replacement(string, index, original);\n\t\t\t}\n\t\t\tif (string !== replacement) {\n\t\t\t\tthis.overwrite(index, index + string.length, replacement);\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t}\n\n\treplace(searchValue, replacement) {\n\t\tif (typeof searchValue === 'string') {\n\t\t\treturn this._replaceString(searchValue, replacement);\n\t\t}\n\n\t\treturn this._replaceRegexp(searchValue, replacement);\n\t}\n\n\t_replaceAllString(string, replacement) {\n\t\tconst { original } = this;\n\t\tconst stringLength = string.length;\n\t\tfor (\n\t\t\tlet index = original.indexOf(string);\n\t\t\tindex !== -1;\n\t\t\tindex = original.indexOf(string, index + stringLength)\n\t\t) {\n\t\t\tconst previous = original.slice(index, index + stringLength);\n\t\t\tlet _replacement = replacement;\n\t\t\tif (typeof replacement === 'function') {\n\t\t\t\t_replacement = replacement(previous, index, original);\n\t\t\t}\n\t\t\tif (previous !== _replacement) this.overwrite(index, index + stringLength, _replacement);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\treplaceAll(searchValue, replacement) {\n\t\tif (typeof searchValue === 'string') {\n\t\t\treturn this._replaceAllString(searchValue, replacement);\n\t\t}\n\n\t\tif (!searchValue.global) {\n\t\t\tthrow new TypeError(\n\t\t\t\t'MagicString.prototype.replaceAll called with a non-global RegExp argument',\n\t\t\t);\n\t\t}\n\n\t\treturn this._replaceRegexp(searchValue, replacement);\n\t}\n}\n\nconst hasOwnProp = Object.prototype.hasOwnProperty;\n\nclass Bundle {\n\tconstructor(options = {}) {\n\t\tthis.intro = options.intro || '';\n\t\tthis.separator = options.separator !== undefined ? options.separator : '\\n';\n\t\tthis.sources = [];\n\t\tthis.uniqueSources = [];\n\t\tthis.uniqueSourceIndexByFilename = {};\n\t}\n\n\taddSource(source) {\n\t\tif (source instanceof MagicString) {\n\t\t\treturn this.addSource({\n\t\t\t\tcontent: source,\n\t\t\t\tfilename: source.filename,\n\t\t\t\tseparator: this.separator,\n\t\t\t});\n\t\t}\n\n\t\tif (!isObject(source) || !source.content) {\n\t\t\tthrow new Error(\n\t\t\t\t'bundle.addSource() takes an object with a `content` property, which should be an instance of MagicString, and an optional `filename`',\n\t\t\t);\n\t\t}\n\n\t\t['filename', 'ignoreList', 'indentExclusionRanges', 'separator'].forEach((option) => {\n\t\t\tif (!hasOwnProp.call(source, option)) source[option] = source.content[option];\n\t\t});\n\n\t\tif (source.separator === undefined) {\n\t\t\t// TODO there's a bunch of this sort of thing, needs cleaning up\n\t\t\tsource.separator = this.separator;\n\t\t}\n\n\t\tif (source.filename) {\n\t\t\tif (!hasOwnProp.call(this.uniqueSourceIndexByFilename, source.filename)) {\n\t\t\t\tthis.uniqueSourceIndexByFilename[source.filename] = this.uniqueSources.length;\n\t\t\t\tthis.uniqueSources.push({ filename: source.filename, content: source.content.original });\n\t\t\t} else {\n\t\t\t\tconst uniqueSource = this.uniqueSources[this.uniqueSourceIndexByFilename[source.filename]];\n\t\t\t\tif (source.content.original !== uniqueSource.content) {\n\t\t\t\t\tthrow new Error(`Illegal source: same filename (${source.filename}), different contents`);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.sources.push(source);\n\t\treturn this;\n\t}\n\n\tappend(str, options) {\n\t\tthis.addSource({\n\t\t\tcontent: new MagicString(str),\n\t\t\tseparator: (options && options.separator) || '',\n\t\t});\n\n\t\treturn this;\n\t}\n\n\tclone() {\n\t\tconst bundle = new Bundle({\n\t\t\tintro: this.intro,\n\t\t\tseparator: this.separator,\n\t\t});\n\n\t\tthis.sources.forEach((source) => {\n\t\t\tbundle.addSource({\n\t\t\t\tfilename: source.filename,\n\t\t\t\tcontent: source.content.clone(),\n\t\t\t\tseparator: source.separator,\n\t\t\t});\n\t\t});\n\n\t\treturn bundle;\n\t}\n\n\tgenerateDecodedMap(options = {}) {\n\t\tconst names = [];\n\t\tlet x_google_ignoreList = undefined;\n\t\tthis.sources.forEach((source) => {\n\t\t\tObject.keys(source.content.storedNames).forEach((name) => {\n\t\t\t\tif (!~names.indexOf(name)) names.push(name);\n\t\t\t});\n\t\t});\n\n\t\tconst mappings = new Mappings(options.hires);\n\n\t\tif (this.intro) {\n\t\t\tmappings.advance(this.intro);\n\t\t}\n\n\t\tthis.sources.forEach((source, i) => {\n\t\t\tif (i > 0) {\n\t\t\t\tmappings.advance(this.separator);\n\t\t\t}\n\n\t\t\tconst sourceIndex = source.filename ? this.uniqueSourceIndexByFilename[source.filename] : -1;\n\t\t\tconst magicString = source.content;\n\t\t\tconst locate = getLocator(magicString.original);\n\n\t\t\tif (magicString.intro) {\n\t\t\t\tmappings.advance(magicString.intro);\n\t\t\t}\n\n\t\t\tmagicString.firstChunk.eachNext((chunk) => {\n\t\t\t\tconst loc = locate(chunk.start);\n\n\t\t\t\tif (chunk.intro.length) mappings.advance(chunk.intro);\n\n\t\t\t\tif (source.filename) {\n\t\t\t\t\tif (chunk.edited) {\n\t\t\t\t\t\tmappings.addEdit(\n\t\t\t\t\t\t\tsourceIndex,\n\t\t\t\t\t\t\tchunk.content,\n\t\t\t\t\t\t\tloc,\n\t\t\t\t\t\t\tchunk.storeName ? names.indexOf(chunk.original) : -1,\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmappings.addUneditedChunk(\n\t\t\t\t\t\t\tsourceIndex,\n\t\t\t\t\t\t\tchunk,\n\t\t\t\t\t\t\tmagicString.original,\n\t\t\t\t\t\t\tloc,\n\t\t\t\t\t\t\tmagicString.sourcemapLocations,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tmappings.advance(chunk.content);\n\t\t\t\t}\n\n\t\t\t\tif (chunk.outro.length) mappings.advance(chunk.outro);\n\t\t\t});\n\n\t\t\tif (magicString.outro) {\n\t\t\t\tmappings.advance(magicString.outro);\n\t\t\t}\n\n\t\t\tif (source.ignoreList && sourceIndex !== -1) {\n\t\t\t\tif (x_google_ignoreList === undefined) {\n\t\t\t\t\tx_google_ignoreList = [];\n\t\t\t\t}\n\t\t\t\tx_google_ignoreList.push(sourceIndex);\n\t\t\t}\n\t\t});\n\n\t\treturn {\n\t\t\tfile: options.file ? options.file.split(/[/\\\\]/).pop() : undefined,\n\t\t\tsources: this.uniqueSources.map((source) => {\n\t\t\t\treturn options.file ? getRelativePath(options.file, source.filename) : source.filename;\n\t\t\t}),\n\t\t\tsourcesContent: this.uniqueSources.map((source) => {\n\t\t\t\treturn options.includeContent ? source.content : null;\n\t\t\t}),\n\t\t\tnames,\n\t\t\tmappings: mappings.raw,\n\t\t\tx_google_ignoreList,\n\t\t};\n\t}\n\n\tgenerateMap(options) {\n\t\treturn new SourceMap(this.generateDecodedMap(options));\n\t}\n\n\tgetIndentString() {\n\t\tconst indentStringCounts = {};\n\n\t\tthis.sources.forEach((source) => {\n\t\t\tconst indentStr = source.content._getRawIndentString();\n\n\t\t\tif (indentStr === null) return;\n\n\t\t\tif (!indentStringCounts[indentStr]) indentStringCounts[indentStr] = 0;\n\t\t\tindentStringCounts[indentStr] += 1;\n\t\t});\n\n\t\treturn (\n\t\t\tObject.keys(indentStringCounts).sort((a, b) => {\n\t\t\t\treturn indentStringCounts[a] - indentStringCounts[b];\n\t\t\t})[0] || '\\t'\n\t\t);\n\t}\n\n\tindent(indentStr) {\n\t\tif (!arguments.length) {\n\t\t\tindentStr = this.getIndentString();\n\t\t}\n\n\t\tif (indentStr === '') return this; // noop\n\n\t\tlet trailingNewline = !this.intro || this.intro.slice(-1) === '\\n';\n\n\t\tthis.sources.forEach((source, i) => {\n\t\t\tconst separator = source.separator !== undefined ? source.separator : this.separator;\n\t\t\tconst indentStart = trailingNewline || (i > 0 && /\\r?\\n$/.test(separator));\n\n\t\t\tsource.content.indent(indentStr, {\n\t\t\t\texclude: source.indentExclusionRanges,\n\t\t\t\tindentStart, //: trailingNewline || /\\r?\\n$/.test( separator ) //true///\\r?\\n/.test( separator )\n\t\t\t});\n\n\t\t\ttrailingNewline = source.content.lastChar() === '\\n';\n\t\t});\n\n\t\tif (this.intro) {\n\t\t\tthis.intro =\n\t\t\t\tindentStr +\n\t\t\t\tthis.intro.replace(/^[^\\n]/gm, (match, index) => {\n\t\t\t\t\treturn index > 0 ? indentStr + match : match;\n\t\t\t\t});\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tprepend(str) {\n\t\tthis.intro = str + this.intro;\n\t\treturn this;\n\t}\n\n\ttoString() {\n\t\tconst body = this.sources\n\t\t\t.map((source, i) => {\n\t\t\t\tconst separator = source.separator !== undefined ? source.separator : this.separator;\n\t\t\t\tconst str = (i > 0 ? separator : '') + source.content.toString();\n\n\t\t\t\treturn str;\n\t\t\t})\n\t\t\t.join('');\n\n\t\treturn this.intro + body;\n\t}\n\n\tisEmpty() {\n\t\tif (this.intro.length && this.intro.trim()) return false;\n\t\tif (this.sources.some((source) => !source.content.isEmpty())) return false;\n\t\treturn true;\n\t}\n\n\tlength() {\n\t\treturn this.sources.reduce(\n\t\t\t(length, source) => length + source.content.length(),\n\t\t\tthis.intro.length,\n\t\t);\n\t}\n\n\ttrimLines() {\n\t\treturn this.trim('[\\\\r\\\\n]');\n\t}\n\n\ttrim(charType) {\n\t\treturn this.trimStart(charType).trimEnd(charType);\n\t}\n\n\ttrimStart(charType) {\n\t\tconst rx = new RegExp('^' + (charType || '\\\\s') + '+');\n\t\tthis.intro = this.intro.replace(rx, '');\n\n\t\tif (!this.intro) {\n\t\t\tlet source;\n\t\t\tlet i = 0;\n\n\t\t\tdo {\n\t\t\t\tsource = this.sources[i++];\n\t\t\t\tif (!source) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} while (!source.content.trimStartAborted(charType));\n\t\t}\n\n\t\treturn this;\n\t}\n\n\ttrimEnd(charType) {\n\t\tconst rx = new RegExp((charType || '\\\\s') + '+$');\n\n\t\tlet source;\n\t\tlet i = this.sources.length - 1;\n\n\t\tdo {\n\t\t\tsource = this.sources[i--];\n\t\t\tif (!source) {\n\t\t\t\tthis.intro = this.intro.replace(rx, '');\n\t\t\t\tbreak;\n\t\t\t}\n\t\t} while (!source.content.trimEndAborted(charType));\n\n\t\treturn this;\n\t}\n}\n\nexport { Bundle, SourceMap, MagicString as default };\n//# sourceMappingURL=magic-string.es.mjs.map\n","export const NEW_METHOD_TYPE = 'newMethod'\nexport const INVALID_VARNAME_CHAR_RE = /[^0-9a-zA-Z_$]/\nexport const VALID_VARNAME_RE = /^[a-zA-Z_$][0-9a-zA-Z_$]*$/\n\nexport const METHOD_TIPS_MAP = {\n default: '选择已有方法或者添加新方法(点击 确定 之后将在JS面板中创建一个该名称的新方法)',\n exist: '方法名称已存在',\n ruleInvalid: '请输入有效的方法名,可以由字母、数字、下划线、$ 符号组成,不能以数字开头',\n empty: '方法名称不能为空'\n}\n","/**\n * Copyright (c) 2023 - present TinyEngine Authors.\n * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd.\n *\n * Use of this source code is governed by an MIT-style license.\n *\n * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,\n * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR\n * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.\n *\n */\n\nimport entry from './src/Main.vue'\nimport metaData from './meta'\nimport { commonEvents } from './src/commonjs/events.ts'\nimport BindEventsDialogContent from './src/components/BindEventsDialogContent.vue'\nimport BindEventsDialogSidebar from './src/components/BindEventsDialogSidebar.vue'\nimport './src/styles/vars.less'\n\nexport default {\n ...metaData,\n entry,\n options: { commonEvents },\n components: {\n BindEventsDialogSidebar,\n BindEventsDialogContent\n }\n}\n"],"names":["metaData","comma","semicolon","chars","intToChar","charToInt","i","c","encodeInteger","builder","num","relative","delta","clamped","bufLength","td","buf","out","StringWriter","v","buffer","pos","encode","decoded","writer","sourcesIndex","sourceLine","sourceColumn","namesIndex","line","genColumn","j","segment","BitSet","arg","n","Chunk","start","end","content","chunk","index","fn","storeName","contentOnly","sliceIndex","originalBefore","originalAfter","newChunk","rx","trimmed","getBtoa","str","btoa","SourceMap","properties","guessIndent","code","lines","tabbed","spaced","min","previous","current","numSpaces","getRelativePath","from","to","fromParts","toParts","toString","isObject","thing","getLocator","source","originalLines","lineOffsets","m","column","wordRegex","Mappings","hires","sourceIndex","loc","nameIndex","contentLengthMinusOne","contentLineEnd","previousContentLineEnd","original","sourcemapLocations","originalCharIndex","first","charInHiresBoundary","warned","MagicString","string","options","char","cloned","originalChunk","clonedChunk","nextOriginalChunk","nextClonedChunk","names","mappings","locate","indentStr","pattern","isExcluded","exclusion","shouldIndentNextCharacter","replacer","match","charIndex","last","oldLeft","oldRight","newRight","newLeft","overwrite","lineIndex","lineStr","result","startChunk","containsEnd","sliceStart","sliceEnd","clone","previousChunk","searchForward","length","charType","aborted","searchValue","replacement","getReplacement","_","matchAll","re","matches","stringLength","_replacement","NEW_METHOD_TYPE","INVALID_VARNAME_CHAR_RE","VALID_VARNAME_RE","METHOD_TIPS_MAP","entry","commonEvents","BindEventsDialogSidebar","BindEventsDialogContent"],"mappings":"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","x_google_ignoreList":[1,2]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../meta.js","../../../../node_modules/.pnpm/@jridgewell+sourcemap-codec@1.5.5/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs","../../../../node_modules/.pnpm/magic-string@0.30.19/node_modules/magic-string/dist/magic-string.es.mjs","../src/components/constants.ts","../index.ts"],"sourcesContent":["export default {\n id: 'engine.setting.event',\n title: '高级',\n type: 'plugins',\n name: 'event',\n icon: 'event'\n}\n","// src/vlq.ts\nvar comma = \",\".charCodeAt(0);\nvar semicolon = \";\".charCodeAt(0);\nvar chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\nvar intToChar = new Uint8Array(64);\nvar charToInt = new Uint8Array(128);\nfor (let i = 0; i < chars.length; i++) {\n const c = chars.charCodeAt(i);\n intToChar[i] = c;\n charToInt[c] = i;\n}\nfunction decodeInteger(reader, relative) {\n let value = 0;\n let shift = 0;\n let integer = 0;\n do {\n const c = reader.next();\n integer = charToInt[c];\n value |= (integer & 31) << shift;\n shift += 5;\n } while (integer & 32);\n const shouldNegate = value & 1;\n value >>>= 1;\n if (shouldNegate) {\n value = -2147483648 | -value;\n }\n return relative + value;\n}\nfunction encodeInteger(builder, num, relative) {\n let delta = num - relative;\n delta = delta < 0 ? -delta << 1 | 1 : delta << 1;\n do {\n let clamped = delta & 31;\n delta >>>= 5;\n if (delta > 0) clamped |= 32;\n builder.write(intToChar[clamped]);\n } while (delta > 0);\n return num;\n}\nfunction hasMoreVlq(reader, max) {\n if (reader.pos >= max) return false;\n return reader.peek() !== comma;\n}\n\n// src/strings.ts\nvar bufLength = 1024 * 16;\nvar td = typeof TextDecoder !== \"undefined\" ? /* @__PURE__ */ new TextDecoder() : typeof Buffer !== \"undefined\" ? {\n decode(buf) {\n const out = Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength);\n return out.toString();\n }\n} : {\n decode(buf) {\n let out = \"\";\n for (let i = 0; i < buf.length; i++) {\n out += String.fromCharCode(buf[i]);\n }\n return out;\n }\n};\nvar StringWriter = class {\n constructor() {\n this.pos = 0;\n this.out = \"\";\n this.buffer = new Uint8Array(bufLength);\n }\n write(v) {\n const { buffer } = this;\n buffer[this.pos++] = v;\n if (this.pos === bufLength) {\n this.out += td.decode(buffer);\n this.pos = 0;\n }\n }\n flush() {\n const { buffer, out, pos } = this;\n return pos > 0 ? out + td.decode(buffer.subarray(0, pos)) : out;\n }\n};\nvar StringReader = class {\n constructor(buffer) {\n this.pos = 0;\n this.buffer = buffer;\n }\n next() {\n return this.buffer.charCodeAt(this.pos++);\n }\n peek() {\n return this.buffer.charCodeAt(this.pos);\n }\n indexOf(char) {\n const { buffer, pos } = this;\n const idx = buffer.indexOf(char, pos);\n return idx === -1 ? buffer.length : idx;\n }\n};\n\n// src/scopes.ts\nvar EMPTY = [];\nfunction decodeOriginalScopes(input) {\n const { length } = input;\n const reader = new StringReader(input);\n const scopes = [];\n const stack = [];\n let line = 0;\n for (; reader.pos < length; reader.pos++) {\n line = decodeInteger(reader, line);\n const column = decodeInteger(reader, 0);\n if (!hasMoreVlq(reader, length)) {\n const last = stack.pop();\n last[2] = line;\n last[3] = column;\n continue;\n }\n const kind = decodeInteger(reader, 0);\n const fields = decodeInteger(reader, 0);\n const hasName = fields & 1;\n const scope = hasName ? [line, column, 0, 0, kind, decodeInteger(reader, 0)] : [line, column, 0, 0, kind];\n let vars = EMPTY;\n if (hasMoreVlq(reader, length)) {\n vars = [];\n do {\n const varsIndex = decodeInteger(reader, 0);\n vars.push(varsIndex);\n } while (hasMoreVlq(reader, length));\n }\n scope.vars = vars;\n scopes.push(scope);\n stack.push(scope);\n }\n return scopes;\n}\nfunction encodeOriginalScopes(scopes) {\n const writer = new StringWriter();\n for (let i = 0; i < scopes.length; ) {\n i = _encodeOriginalScopes(scopes, i, writer, [0]);\n }\n return writer.flush();\n}\nfunction _encodeOriginalScopes(scopes, index, writer, state) {\n const scope = scopes[index];\n const { 0: startLine, 1: startColumn, 2: endLine, 3: endColumn, 4: kind, vars } = scope;\n if (index > 0) writer.write(comma);\n state[0] = encodeInteger(writer, startLine, state[0]);\n encodeInteger(writer, startColumn, 0);\n encodeInteger(writer, kind, 0);\n const fields = scope.length === 6 ? 1 : 0;\n encodeInteger(writer, fields, 0);\n if (scope.length === 6) encodeInteger(writer, scope[5], 0);\n for (const v of vars) {\n encodeInteger(writer, v, 0);\n }\n for (index++; index < scopes.length; ) {\n const next = scopes[index];\n const { 0: l, 1: c } = next;\n if (l > endLine || l === endLine && c >= endColumn) {\n break;\n }\n index = _encodeOriginalScopes(scopes, index, writer, state);\n }\n writer.write(comma);\n state[0] = encodeInteger(writer, endLine, state[0]);\n encodeInteger(writer, endColumn, 0);\n return index;\n}\nfunction decodeGeneratedRanges(input) {\n const { length } = input;\n const reader = new StringReader(input);\n const ranges = [];\n const stack = [];\n let genLine = 0;\n let definitionSourcesIndex = 0;\n let definitionScopeIndex = 0;\n let callsiteSourcesIndex = 0;\n let callsiteLine = 0;\n let callsiteColumn = 0;\n let bindingLine = 0;\n let bindingColumn = 0;\n do {\n const semi = reader.indexOf(\";\");\n let genColumn = 0;\n for (; reader.pos < semi; reader.pos++) {\n genColumn = decodeInteger(reader, genColumn);\n if (!hasMoreVlq(reader, semi)) {\n const last = stack.pop();\n last[2] = genLine;\n last[3] = genColumn;\n continue;\n }\n const fields = decodeInteger(reader, 0);\n const hasDefinition = fields & 1;\n const hasCallsite = fields & 2;\n const hasScope = fields & 4;\n let callsite = null;\n let bindings = EMPTY;\n let range;\n if (hasDefinition) {\n const defSourcesIndex = decodeInteger(reader, definitionSourcesIndex);\n definitionScopeIndex = decodeInteger(\n reader,\n definitionSourcesIndex === defSourcesIndex ? definitionScopeIndex : 0\n );\n definitionSourcesIndex = defSourcesIndex;\n range = [genLine, genColumn, 0, 0, defSourcesIndex, definitionScopeIndex];\n } else {\n range = [genLine, genColumn, 0, 0];\n }\n range.isScope = !!hasScope;\n if (hasCallsite) {\n const prevCsi = callsiteSourcesIndex;\n const prevLine = callsiteLine;\n callsiteSourcesIndex = decodeInteger(reader, callsiteSourcesIndex);\n const sameSource = prevCsi === callsiteSourcesIndex;\n callsiteLine = decodeInteger(reader, sameSource ? callsiteLine : 0);\n callsiteColumn = decodeInteger(\n reader,\n sameSource && prevLine === callsiteLine ? callsiteColumn : 0\n );\n callsite = [callsiteSourcesIndex, callsiteLine, callsiteColumn];\n }\n range.callsite = callsite;\n if (hasMoreVlq(reader, semi)) {\n bindings = [];\n do {\n bindingLine = genLine;\n bindingColumn = genColumn;\n const expressionsCount = decodeInteger(reader, 0);\n let expressionRanges;\n if (expressionsCount < -1) {\n expressionRanges = [[decodeInteger(reader, 0)]];\n for (let i = -1; i > expressionsCount; i--) {\n const prevBl = bindingLine;\n bindingLine = decodeInteger(reader, bindingLine);\n bindingColumn = decodeInteger(reader, bindingLine === prevBl ? bindingColumn : 0);\n const expression = decodeInteger(reader, 0);\n expressionRanges.push([expression, bindingLine, bindingColumn]);\n }\n } else {\n expressionRanges = [[expressionsCount]];\n }\n bindings.push(expressionRanges);\n } while (hasMoreVlq(reader, semi));\n }\n range.bindings = bindings;\n ranges.push(range);\n stack.push(range);\n }\n genLine++;\n reader.pos = semi + 1;\n } while (reader.pos < length);\n return ranges;\n}\nfunction encodeGeneratedRanges(ranges) {\n if (ranges.length === 0) return \"\";\n const writer = new StringWriter();\n for (let i = 0; i < ranges.length; ) {\n i = _encodeGeneratedRanges(ranges, i, writer, [0, 0, 0, 0, 0, 0, 0]);\n }\n return writer.flush();\n}\nfunction _encodeGeneratedRanges(ranges, index, writer, state) {\n const range = ranges[index];\n const {\n 0: startLine,\n 1: startColumn,\n 2: endLine,\n 3: endColumn,\n isScope,\n callsite,\n bindings\n } = range;\n if (state[0] < startLine) {\n catchupLine(writer, state[0], startLine);\n state[0] = startLine;\n state[1] = 0;\n } else if (index > 0) {\n writer.write(comma);\n }\n state[1] = encodeInteger(writer, range[1], state[1]);\n const fields = (range.length === 6 ? 1 : 0) | (callsite ? 2 : 0) | (isScope ? 4 : 0);\n encodeInteger(writer, fields, 0);\n if (range.length === 6) {\n const { 4: sourcesIndex, 5: scopesIndex } = range;\n if (sourcesIndex !== state[2]) {\n state[3] = 0;\n }\n state[2] = encodeInteger(writer, sourcesIndex, state[2]);\n state[3] = encodeInteger(writer, scopesIndex, state[3]);\n }\n if (callsite) {\n const { 0: sourcesIndex, 1: callLine, 2: callColumn } = range.callsite;\n if (sourcesIndex !== state[4]) {\n state[5] = 0;\n state[6] = 0;\n } else if (callLine !== state[5]) {\n state[6] = 0;\n }\n state[4] = encodeInteger(writer, sourcesIndex, state[4]);\n state[5] = encodeInteger(writer, callLine, state[5]);\n state[6] = encodeInteger(writer, callColumn, state[6]);\n }\n if (bindings) {\n for (const binding of bindings) {\n if (binding.length > 1) encodeInteger(writer, -binding.length, 0);\n const expression = binding[0][0];\n encodeInteger(writer, expression, 0);\n let bindingStartLine = startLine;\n let bindingStartColumn = startColumn;\n for (let i = 1; i < binding.length; i++) {\n const expRange = binding[i];\n bindingStartLine = encodeInteger(writer, expRange[1], bindingStartLine);\n bindingStartColumn = encodeInteger(writer, expRange[2], bindingStartColumn);\n encodeInteger(writer, expRange[0], 0);\n }\n }\n }\n for (index++; index < ranges.length; ) {\n const next = ranges[index];\n const { 0: l, 1: c } = next;\n if (l > endLine || l === endLine && c >= endColumn) {\n break;\n }\n index = _encodeGeneratedRanges(ranges, index, writer, state);\n }\n if (state[0] < endLine) {\n catchupLine(writer, state[0], endLine);\n state[0] = endLine;\n state[1] = 0;\n } else {\n writer.write(comma);\n }\n state[1] = encodeInteger(writer, endColumn, state[1]);\n return index;\n}\nfunction catchupLine(writer, lastLine, line) {\n do {\n writer.write(semicolon);\n } while (++lastLine < line);\n}\n\n// src/sourcemap-codec.ts\nfunction decode(mappings) {\n const { length } = mappings;\n const reader = new StringReader(mappings);\n const decoded = [];\n let genColumn = 0;\n let sourcesIndex = 0;\n let sourceLine = 0;\n let sourceColumn = 0;\n let namesIndex = 0;\n do {\n const semi = reader.indexOf(\";\");\n const line = [];\n let sorted = true;\n let lastCol = 0;\n genColumn = 0;\n while (reader.pos < semi) {\n let seg;\n genColumn = decodeInteger(reader, genColumn);\n if (genColumn < lastCol) sorted = false;\n lastCol = genColumn;\n if (hasMoreVlq(reader, semi)) {\n sourcesIndex = decodeInteger(reader, sourcesIndex);\n sourceLine = decodeInteger(reader, sourceLine);\n sourceColumn = decodeInteger(reader, sourceColumn);\n if (hasMoreVlq(reader, semi)) {\n namesIndex = decodeInteger(reader, namesIndex);\n seg = [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex];\n } else {\n seg = [genColumn, sourcesIndex, sourceLine, sourceColumn];\n }\n } else {\n seg = [genColumn];\n }\n line.push(seg);\n reader.pos++;\n }\n if (!sorted) sort(line);\n decoded.push(line);\n reader.pos = semi + 1;\n } while (reader.pos <= length);\n return decoded;\n}\nfunction sort(line) {\n line.sort(sortComparator);\n}\nfunction sortComparator(a, b) {\n return a[0] - b[0];\n}\nfunction encode(decoded) {\n const writer = new StringWriter();\n let sourcesIndex = 0;\n let sourceLine = 0;\n let sourceColumn = 0;\n let namesIndex = 0;\n for (let i = 0; i < decoded.length; i++) {\n const line = decoded[i];\n if (i > 0) writer.write(semicolon);\n if (line.length === 0) continue;\n let genColumn = 0;\n for (let j = 0; j < line.length; j++) {\n const segment = line[j];\n if (j > 0) writer.write(comma);\n genColumn = encodeInteger(writer, segment[0], genColumn);\n if (segment.length === 1) continue;\n sourcesIndex = encodeInteger(writer, segment[1], sourcesIndex);\n sourceLine = encodeInteger(writer, segment[2], sourceLine);\n sourceColumn = encodeInteger(writer, segment[3], sourceColumn);\n if (segment.length === 4) continue;\n namesIndex = encodeInteger(writer, segment[4], namesIndex);\n }\n }\n return writer.flush();\n}\nexport {\n decode,\n decodeGeneratedRanges,\n decodeOriginalScopes,\n encode,\n encodeGeneratedRanges,\n encodeOriginalScopes\n};\n//# sourceMappingURL=sourcemap-codec.mjs.map\n","import { encode } from '@jridgewell/sourcemap-codec';\n\nclass BitSet {\n\tconstructor(arg) {\n\t\tthis.bits = arg instanceof BitSet ? arg.bits.slice() : [];\n\t}\n\n\tadd(n) {\n\t\tthis.bits[n >> 5] |= 1 << (n & 31);\n\t}\n\n\thas(n) {\n\t\treturn !!(this.bits[n >> 5] & (1 << (n & 31)));\n\t}\n}\n\nclass Chunk {\n\tconstructor(start, end, content) {\n\t\tthis.start = start;\n\t\tthis.end = end;\n\t\tthis.original = content;\n\n\t\tthis.intro = '';\n\t\tthis.outro = '';\n\n\t\tthis.content = content;\n\t\tthis.storeName = false;\n\t\tthis.edited = false;\n\n\t\t{\n\t\t\tthis.previous = null;\n\t\t\tthis.next = null;\n\t\t}\n\t}\n\n\tappendLeft(content) {\n\t\tthis.outro += content;\n\t}\n\n\tappendRight(content) {\n\t\tthis.intro = this.intro + content;\n\t}\n\n\tclone() {\n\t\tconst chunk = new Chunk(this.start, this.end, this.original);\n\n\t\tchunk.intro = this.intro;\n\t\tchunk.outro = this.outro;\n\t\tchunk.content = this.content;\n\t\tchunk.storeName = this.storeName;\n\t\tchunk.edited = this.edited;\n\n\t\treturn chunk;\n\t}\n\n\tcontains(index) {\n\t\treturn this.start < index && index < this.end;\n\t}\n\n\teachNext(fn) {\n\t\tlet chunk = this;\n\t\twhile (chunk) {\n\t\t\tfn(chunk);\n\t\t\tchunk = chunk.next;\n\t\t}\n\t}\n\n\teachPrevious(fn) {\n\t\tlet chunk = this;\n\t\twhile (chunk) {\n\t\t\tfn(chunk);\n\t\t\tchunk = chunk.previous;\n\t\t}\n\t}\n\n\tedit(content, storeName, contentOnly) {\n\t\tthis.content = content;\n\t\tif (!contentOnly) {\n\t\t\tthis.intro = '';\n\t\t\tthis.outro = '';\n\t\t}\n\t\tthis.storeName = storeName;\n\n\t\tthis.edited = true;\n\n\t\treturn this;\n\t}\n\n\tprependLeft(content) {\n\t\tthis.outro = content + this.outro;\n\t}\n\n\tprependRight(content) {\n\t\tthis.intro = content + this.intro;\n\t}\n\n\treset() {\n\t\tthis.intro = '';\n\t\tthis.outro = '';\n\t\tif (this.edited) {\n\t\t\tthis.content = this.original;\n\t\t\tthis.storeName = false;\n\t\t\tthis.edited = false;\n\t\t}\n\t}\n\n\tsplit(index) {\n\t\tconst sliceIndex = index - this.start;\n\n\t\tconst originalBefore = this.original.slice(0, sliceIndex);\n\t\tconst originalAfter = this.original.slice(sliceIndex);\n\n\t\tthis.original = originalBefore;\n\n\t\tconst newChunk = new Chunk(index, this.end, originalAfter);\n\t\tnewChunk.outro = this.outro;\n\t\tthis.outro = '';\n\n\t\tthis.end = index;\n\n\t\tif (this.edited) {\n\t\t\t// after split we should save the edit content record into the correct chunk\n\t\t\t// to make sure sourcemap correct\n\t\t\t// For example:\n\t\t\t// ' test'.trim()\n\t\t\t// split -> ' ' + 'test'\n\t\t\t// ✔️ edit -> '' + 'test'\n\t\t\t// ✖️ edit -> 'test' + ''\n\t\t\t// TODO is this block necessary?...\n\t\t\tnewChunk.edit('', false);\n\t\t\tthis.content = '';\n\t\t} else {\n\t\t\tthis.content = originalBefore;\n\t\t}\n\n\t\tnewChunk.next = this.next;\n\t\tif (newChunk.next) newChunk.next.previous = newChunk;\n\t\tnewChunk.previous = this;\n\t\tthis.next = newChunk;\n\n\t\treturn newChunk;\n\t}\n\n\ttoString() {\n\t\treturn this.intro + this.content + this.outro;\n\t}\n\n\ttrimEnd(rx) {\n\t\tthis.outro = this.outro.replace(rx, '');\n\t\tif (this.outro.length) return true;\n\n\t\tconst trimmed = this.content.replace(rx, '');\n\n\t\tif (trimmed.length) {\n\t\t\tif (trimmed !== this.content) {\n\t\t\t\tthis.split(this.start + trimmed.length).edit('', undefined, true);\n\t\t\t\tif (this.edited) {\n\t\t\t\t\t// save the change, if it has been edited\n\t\t\t\t\tthis.edit(trimmed, this.storeName, true);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} else {\n\t\t\tthis.edit('', undefined, true);\n\n\t\t\tthis.intro = this.intro.replace(rx, '');\n\t\t\tif (this.intro.length) return true;\n\t\t}\n\t}\n\n\ttrimStart(rx) {\n\t\tthis.intro = this.intro.replace(rx, '');\n\t\tif (this.intro.length) return true;\n\n\t\tconst trimmed = this.content.replace(rx, '');\n\n\t\tif (trimmed.length) {\n\t\t\tif (trimmed !== this.content) {\n\t\t\t\tconst newChunk = this.split(this.end - trimmed.length);\n\t\t\t\tif (this.edited) {\n\t\t\t\t\t// save the change, if it has been edited\n\t\t\t\t\tnewChunk.edit(trimmed, this.storeName, true);\n\t\t\t\t}\n\t\t\t\tthis.edit('', undefined, true);\n\t\t\t}\n\t\t\treturn true;\n\t\t} else {\n\t\t\tthis.edit('', undefined, true);\n\n\t\t\tthis.outro = this.outro.replace(rx, '');\n\t\t\tif (this.outro.length) return true;\n\t\t}\n\t}\n}\n\nfunction getBtoa() {\n\tif (typeof globalThis !== 'undefined' && typeof globalThis.btoa === 'function') {\n\t\treturn (str) => globalThis.btoa(unescape(encodeURIComponent(str)));\n\t} else if (typeof Buffer === 'function') {\n\t\treturn (str) => Buffer.from(str, 'utf-8').toString('base64');\n\t} else {\n\t\treturn () => {\n\t\t\tthrow new Error('Unsupported environment: `window.btoa` or `Buffer` should be supported.');\n\t\t};\n\t}\n}\n\nconst btoa = /*#__PURE__*/ getBtoa();\n\nclass SourceMap {\n\tconstructor(properties) {\n\t\tthis.version = 3;\n\t\tthis.file = properties.file;\n\t\tthis.sources = properties.sources;\n\t\tthis.sourcesContent = properties.sourcesContent;\n\t\tthis.names = properties.names;\n\t\tthis.mappings = encode(properties.mappings);\n\t\tif (typeof properties.x_google_ignoreList !== 'undefined') {\n\t\t\tthis.x_google_ignoreList = properties.x_google_ignoreList;\n\t\t}\n\t\tif (typeof properties.debugId !== 'undefined') {\n\t\t\tthis.debugId = properties.debugId;\n\t\t}\n\t}\n\n\ttoString() {\n\t\treturn JSON.stringify(this);\n\t}\n\n\ttoUrl() {\n\t\treturn 'data:application/json;charset=utf-8;base64,' + btoa(this.toString());\n\t}\n}\n\nfunction guessIndent(code) {\n\tconst lines = code.split('\\n');\n\n\tconst tabbed = lines.filter((line) => /^\\t+/.test(line));\n\tconst spaced = lines.filter((line) => /^ {2,}/.test(line));\n\n\tif (tabbed.length === 0 && spaced.length === 0) {\n\t\treturn null;\n\t}\n\n\t// More lines tabbed than spaced? Assume tabs, and\n\t// default to tabs in the case of a tie (or nothing\n\t// to go on)\n\tif (tabbed.length >= spaced.length) {\n\t\treturn '\\t';\n\t}\n\n\t// Otherwise, we need to guess the multiple\n\tconst min = spaced.reduce((previous, current) => {\n\t\tconst numSpaces = /^ +/.exec(current)[0].length;\n\t\treturn Math.min(numSpaces, previous);\n\t}, Infinity);\n\n\treturn new Array(min + 1).join(' ');\n}\n\nfunction getRelativePath(from, to) {\n\tconst fromParts = from.split(/[/\\\\]/);\n\tconst toParts = to.split(/[/\\\\]/);\n\n\tfromParts.pop(); // get dirname\n\n\twhile (fromParts[0] === toParts[0]) {\n\t\tfromParts.shift();\n\t\ttoParts.shift();\n\t}\n\n\tif (fromParts.length) {\n\t\tlet i = fromParts.length;\n\t\twhile (i--) fromParts[i] = '..';\n\t}\n\n\treturn fromParts.concat(toParts).join('/');\n}\n\nconst toString = Object.prototype.toString;\n\nfunction isObject(thing) {\n\treturn toString.call(thing) === '[object Object]';\n}\n\nfunction getLocator(source) {\n\tconst originalLines = source.split('\\n');\n\tconst lineOffsets = [];\n\n\tfor (let i = 0, pos = 0; i < originalLines.length; i++) {\n\t\tlineOffsets.push(pos);\n\t\tpos += originalLines[i].length + 1;\n\t}\n\n\treturn function locate(index) {\n\t\tlet i = 0;\n\t\tlet j = lineOffsets.length;\n\t\twhile (i < j) {\n\t\t\tconst m = (i + j) >> 1;\n\t\t\tif (index < lineOffsets[m]) {\n\t\t\t\tj = m;\n\t\t\t} else {\n\t\t\t\ti = m + 1;\n\t\t\t}\n\t\t}\n\t\tconst line = i - 1;\n\t\tconst column = index - lineOffsets[line];\n\t\treturn { line, column };\n\t};\n}\n\nconst wordRegex = /\\w/;\n\nclass Mappings {\n\tconstructor(hires) {\n\t\tthis.hires = hires;\n\t\tthis.generatedCodeLine = 0;\n\t\tthis.generatedCodeColumn = 0;\n\t\tthis.raw = [];\n\t\tthis.rawSegments = this.raw[this.generatedCodeLine] = [];\n\t\tthis.pending = null;\n\t}\n\n\taddEdit(sourceIndex, content, loc, nameIndex) {\n\t\tif (content.length) {\n\t\t\tconst contentLengthMinusOne = content.length - 1;\n\t\t\tlet contentLineEnd = content.indexOf('\\n', 0);\n\t\t\tlet previousContentLineEnd = -1;\n\t\t\t// Loop through each line in the content and add a segment, but stop if the last line is empty,\n\t\t\t// else code afterwards would fill one line too many\n\t\t\twhile (contentLineEnd >= 0 && contentLengthMinusOne > contentLineEnd) {\n\t\t\t\tconst segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\t\t\t\tif (nameIndex >= 0) {\n\t\t\t\t\tsegment.push(nameIndex);\n\t\t\t\t}\n\t\t\t\tthis.rawSegments.push(segment);\n\n\t\t\t\tthis.generatedCodeLine += 1;\n\t\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\t\tthis.generatedCodeColumn = 0;\n\n\t\t\t\tpreviousContentLineEnd = contentLineEnd;\n\t\t\t\tcontentLineEnd = content.indexOf('\\n', contentLineEnd + 1);\n\t\t\t}\n\n\t\t\tconst segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\t\t\tif (nameIndex >= 0) {\n\t\t\t\tsegment.push(nameIndex);\n\t\t\t}\n\t\t\tthis.rawSegments.push(segment);\n\n\t\t\tthis.advance(content.slice(previousContentLineEnd + 1));\n\t\t} else if (this.pending) {\n\t\t\tthis.rawSegments.push(this.pending);\n\t\t\tthis.advance(content);\n\t\t}\n\n\t\tthis.pending = null;\n\t}\n\n\taddUneditedChunk(sourceIndex, chunk, original, loc, sourcemapLocations) {\n\t\tlet originalCharIndex = chunk.start;\n\t\tlet first = true;\n\t\t// when iterating each char, check if it's in a word boundary\n\t\tlet charInHiresBoundary = false;\n\n\t\twhile (originalCharIndex < chunk.end) {\n\t\t\tif (original[originalCharIndex] === '\\n') {\n\t\t\t\tloc.line += 1;\n\t\t\t\tloc.column = 0;\n\t\t\t\tthis.generatedCodeLine += 1;\n\t\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\t\tthis.generatedCodeColumn = 0;\n\t\t\t\tfirst = true;\n\t\t\t\tcharInHiresBoundary = false;\n\t\t\t} else {\n\t\t\t\tif (this.hires || first || sourcemapLocations.has(originalCharIndex)) {\n\t\t\t\t\tconst segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\n\t\t\t\t\tif (this.hires === 'boundary') {\n\t\t\t\t\t\t// in hires \"boundary\", group segments per word boundary than per char\n\t\t\t\t\t\tif (wordRegex.test(original[originalCharIndex])) {\n\t\t\t\t\t\t\t// for first char in the boundary found, start the boundary by pushing a segment\n\t\t\t\t\t\t\tif (!charInHiresBoundary) {\n\t\t\t\t\t\t\t\tthis.rawSegments.push(segment);\n\t\t\t\t\t\t\t\tcharInHiresBoundary = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// for non-word char, end the boundary by pushing a segment\n\t\t\t\t\t\t\tthis.rawSegments.push(segment);\n\t\t\t\t\t\t\tcharInHiresBoundary = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.rawSegments.push(segment);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tloc.column += 1;\n\t\t\t\tthis.generatedCodeColumn += 1;\n\t\t\t\tfirst = false;\n\t\t\t}\n\n\t\t\toriginalCharIndex += 1;\n\t\t}\n\n\t\tthis.pending = null;\n\t}\n\n\tadvance(str) {\n\t\tif (!str) return;\n\n\t\tconst lines = str.split('\\n');\n\n\t\tif (lines.length > 1) {\n\t\t\tfor (let i = 0; i < lines.length - 1; i++) {\n\t\t\t\tthis.generatedCodeLine++;\n\t\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\t}\n\t\t\tthis.generatedCodeColumn = 0;\n\t\t}\n\n\t\tthis.generatedCodeColumn += lines[lines.length - 1].length;\n\t}\n}\n\nconst n = '\\n';\n\nconst warned = {\n\tinsertLeft: false,\n\tinsertRight: false,\n\tstoreName: false,\n};\n\nclass MagicString {\n\tconstructor(string, options = {}) {\n\t\tconst chunk = new Chunk(0, string.length, string);\n\n\t\tObject.defineProperties(this, {\n\t\t\toriginal: { writable: true, value: string },\n\t\t\toutro: { writable: true, value: '' },\n\t\t\tintro: { writable: true, value: '' },\n\t\t\tfirstChunk: { writable: true, value: chunk },\n\t\t\tlastChunk: { writable: true, value: chunk },\n\t\t\tlastSearchedChunk: { writable: true, value: chunk },\n\t\t\tbyStart: { writable: true, value: {} },\n\t\t\tbyEnd: { writable: true, value: {} },\n\t\t\tfilename: { writable: true, value: options.filename },\n\t\t\tindentExclusionRanges: { writable: true, value: options.indentExclusionRanges },\n\t\t\tsourcemapLocations: { writable: true, value: new BitSet() },\n\t\t\tstoredNames: { writable: true, value: {} },\n\t\t\tindentStr: { writable: true, value: undefined },\n\t\t\tignoreList: { writable: true, value: options.ignoreList },\n\t\t\toffset: { writable: true, value: options.offset || 0 },\n\t\t});\n\n\t\tthis.byStart[0] = chunk;\n\t\tthis.byEnd[string.length] = chunk;\n\t}\n\n\taddSourcemapLocation(char) {\n\t\tthis.sourcemapLocations.add(char);\n\t}\n\n\tappend(content) {\n\t\tif (typeof content !== 'string') throw new TypeError('outro content must be a string');\n\n\t\tthis.outro += content;\n\t\treturn this;\n\t}\n\n\tappendLeft(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byEnd[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.appendLeft(content);\n\t\t} else {\n\t\t\tthis.intro += content;\n\t\t}\n\t\treturn this;\n\t}\n\n\tappendRight(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byStart[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.appendRight(content);\n\t\t} else {\n\t\t\tthis.outro += content;\n\t\t}\n\t\treturn this;\n\t}\n\n\tclone() {\n\t\tconst cloned = new MagicString(this.original, { filename: this.filename, offset: this.offset });\n\n\t\tlet originalChunk = this.firstChunk;\n\t\tlet clonedChunk = (cloned.firstChunk = cloned.lastSearchedChunk = originalChunk.clone());\n\n\t\twhile (originalChunk) {\n\t\t\tcloned.byStart[clonedChunk.start] = clonedChunk;\n\t\t\tcloned.byEnd[clonedChunk.end] = clonedChunk;\n\n\t\t\tconst nextOriginalChunk = originalChunk.next;\n\t\t\tconst nextClonedChunk = nextOriginalChunk && nextOriginalChunk.clone();\n\n\t\t\tif (nextClonedChunk) {\n\t\t\t\tclonedChunk.next = nextClonedChunk;\n\t\t\t\tnextClonedChunk.previous = clonedChunk;\n\n\t\t\t\tclonedChunk = nextClonedChunk;\n\t\t\t}\n\n\t\t\toriginalChunk = nextOriginalChunk;\n\t\t}\n\n\t\tcloned.lastChunk = clonedChunk;\n\n\t\tif (this.indentExclusionRanges) {\n\t\t\tcloned.indentExclusionRanges = this.indentExclusionRanges.slice();\n\t\t}\n\n\t\tcloned.sourcemapLocations = new BitSet(this.sourcemapLocations);\n\n\t\tcloned.intro = this.intro;\n\t\tcloned.outro = this.outro;\n\n\t\treturn cloned;\n\t}\n\n\tgenerateDecodedMap(options) {\n\t\toptions = options || {};\n\n\t\tconst sourceIndex = 0;\n\t\tconst names = Object.keys(this.storedNames);\n\t\tconst mappings = new Mappings(options.hires);\n\n\t\tconst locate = getLocator(this.original);\n\n\t\tif (this.intro) {\n\t\t\tmappings.advance(this.intro);\n\t\t}\n\n\t\tthis.firstChunk.eachNext((chunk) => {\n\t\t\tconst loc = locate(chunk.start);\n\n\t\t\tif (chunk.intro.length) mappings.advance(chunk.intro);\n\n\t\t\tif (chunk.edited) {\n\t\t\t\tmappings.addEdit(\n\t\t\t\t\tsourceIndex,\n\t\t\t\t\tchunk.content,\n\t\t\t\t\tloc,\n\t\t\t\t\tchunk.storeName ? names.indexOf(chunk.original) : -1,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tmappings.addUneditedChunk(sourceIndex, chunk, this.original, loc, this.sourcemapLocations);\n\t\t\t}\n\n\t\t\tif (chunk.outro.length) mappings.advance(chunk.outro);\n\t\t});\n\n\t\tif (this.outro) {\n\t\t\tmappings.advance(this.outro);\n\t\t}\n\n\t\treturn {\n\t\t\tfile: options.file ? options.file.split(/[/\\\\]/).pop() : undefined,\n\t\t\tsources: [\n\t\t\t\toptions.source ? getRelativePath(options.file || '', options.source) : options.file || '',\n\t\t\t],\n\t\t\tsourcesContent: options.includeContent ? [this.original] : undefined,\n\t\t\tnames,\n\t\t\tmappings: mappings.raw,\n\t\t\tx_google_ignoreList: this.ignoreList ? [sourceIndex] : undefined,\n\t\t};\n\t}\n\n\tgenerateMap(options) {\n\t\treturn new SourceMap(this.generateDecodedMap(options));\n\t}\n\n\t_ensureindentStr() {\n\t\tif (this.indentStr === undefined) {\n\t\t\tthis.indentStr = guessIndent(this.original);\n\t\t}\n\t}\n\n\t_getRawIndentString() {\n\t\tthis._ensureindentStr();\n\t\treturn this.indentStr;\n\t}\n\n\tgetIndentString() {\n\t\tthis._ensureindentStr();\n\t\treturn this.indentStr === null ? '\\t' : this.indentStr;\n\t}\n\n\tindent(indentStr, options) {\n\t\tconst pattern = /^[^\\r\\n]/gm;\n\n\t\tif (isObject(indentStr)) {\n\t\t\toptions = indentStr;\n\t\t\tindentStr = undefined;\n\t\t}\n\n\t\tif (indentStr === undefined) {\n\t\t\tthis._ensureindentStr();\n\t\t\tindentStr = this.indentStr || '\\t';\n\t\t}\n\n\t\tif (indentStr === '') return this; // noop\n\n\t\toptions = options || {};\n\n\t\t// Process exclusion ranges\n\t\tconst isExcluded = {};\n\n\t\tif (options.exclude) {\n\t\t\tconst exclusions =\n\t\t\t\ttypeof options.exclude[0] === 'number' ? [options.exclude] : options.exclude;\n\t\t\texclusions.forEach((exclusion) => {\n\t\t\t\tfor (let i = exclusion[0]; i < exclusion[1]; i += 1) {\n\t\t\t\t\tisExcluded[i] = true;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tlet shouldIndentNextCharacter = options.indentStart !== false;\n\t\tconst replacer = (match) => {\n\t\t\tif (shouldIndentNextCharacter) return `${indentStr}${match}`;\n\t\t\tshouldIndentNextCharacter = true;\n\t\t\treturn match;\n\t\t};\n\n\t\tthis.intro = this.intro.replace(pattern, replacer);\n\n\t\tlet charIndex = 0;\n\t\tlet chunk = this.firstChunk;\n\n\t\twhile (chunk) {\n\t\t\tconst end = chunk.end;\n\n\t\t\tif (chunk.edited) {\n\t\t\t\tif (!isExcluded[charIndex]) {\n\t\t\t\t\tchunk.content = chunk.content.replace(pattern, replacer);\n\n\t\t\t\t\tif (chunk.content.length) {\n\t\t\t\t\t\tshouldIndentNextCharacter = chunk.content[chunk.content.length - 1] === '\\n';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcharIndex = chunk.start;\n\n\t\t\t\twhile (charIndex < end) {\n\t\t\t\t\tif (!isExcluded[charIndex]) {\n\t\t\t\t\t\tconst char = this.original[charIndex];\n\n\t\t\t\t\t\tif (char === '\\n') {\n\t\t\t\t\t\t\tshouldIndentNextCharacter = true;\n\t\t\t\t\t\t} else if (char !== '\\r' && shouldIndentNextCharacter) {\n\t\t\t\t\t\t\tshouldIndentNextCharacter = false;\n\n\t\t\t\t\t\t\tif (charIndex === chunk.start) {\n\t\t\t\t\t\t\t\tchunk.prependRight(indentStr);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis._splitChunk(chunk, charIndex);\n\t\t\t\t\t\t\t\tchunk = chunk.next;\n\t\t\t\t\t\t\t\tchunk.prependRight(indentStr);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tcharIndex += 1;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcharIndex = chunk.end;\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\tthis.outro = this.outro.replace(pattern, replacer);\n\n\t\treturn this;\n\t}\n\n\tinsert() {\n\t\tthrow new Error(\n\t\t\t'magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)',\n\t\t);\n\t}\n\n\tinsertLeft(index, content) {\n\t\tif (!warned.insertLeft) {\n\t\t\tconsole.warn(\n\t\t\t\t'magicString.insertLeft(...) is deprecated. Use magicString.appendLeft(...) instead',\n\t\t\t);\n\t\t\twarned.insertLeft = true;\n\t\t}\n\n\t\treturn this.appendLeft(index, content);\n\t}\n\n\tinsertRight(index, content) {\n\t\tif (!warned.insertRight) {\n\t\t\tconsole.warn(\n\t\t\t\t'magicString.insertRight(...) is deprecated. Use magicString.prependRight(...) instead',\n\t\t\t);\n\t\t\twarned.insertRight = true;\n\t\t}\n\n\t\treturn this.prependRight(index, content);\n\t}\n\n\tmove(start, end, index) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\t\tindex = index + this.offset;\n\n\t\tif (index >= start && index <= end) throw new Error('Cannot move a selection inside itself');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\t\tthis._split(index);\n\n\t\tconst first = this.byStart[start];\n\t\tconst last = this.byEnd[end];\n\n\t\tconst oldLeft = first.previous;\n\t\tconst oldRight = last.next;\n\n\t\tconst newRight = this.byStart[index];\n\t\tif (!newRight && last === this.lastChunk) return this;\n\t\tconst newLeft = newRight ? newRight.previous : this.lastChunk;\n\n\t\tif (oldLeft) oldLeft.next = oldRight;\n\t\tif (oldRight) oldRight.previous = oldLeft;\n\n\t\tif (newLeft) newLeft.next = first;\n\t\tif (newRight) newRight.previous = last;\n\n\t\tif (!first.previous) this.firstChunk = last.next;\n\t\tif (!last.next) {\n\t\t\tthis.lastChunk = first.previous;\n\t\t\tthis.lastChunk.next = null;\n\t\t}\n\n\t\tfirst.previous = newLeft;\n\t\tlast.next = newRight || null;\n\n\t\tif (!newLeft) this.firstChunk = first;\n\t\tif (!newRight) this.lastChunk = last;\n\t\treturn this;\n\t}\n\n\toverwrite(start, end, content, options) {\n\t\toptions = options || {};\n\t\treturn this.update(start, end, content, { ...options, overwrite: !options.contentOnly });\n\t}\n\n\tupdate(start, end, content, options) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('replacement content must be a string');\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tif (end > this.original.length) throw new Error('end is out of bounds');\n\t\tif (start === end)\n\t\t\tthrow new Error(\n\t\t\t\t'Cannot overwrite a zero-length range – use appendLeft or prependRight instead',\n\t\t\t);\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\n\t\tif (options === true) {\n\t\t\tif (!warned.storeName) {\n\t\t\t\tconsole.warn(\n\t\t\t\t\t'The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string',\n\t\t\t\t);\n\t\t\t\twarned.storeName = true;\n\t\t\t}\n\n\t\t\toptions = { storeName: true };\n\t\t}\n\t\tconst storeName = options !== undefined ? options.storeName : false;\n\t\tconst overwrite = options !== undefined ? options.overwrite : false;\n\n\t\tif (storeName) {\n\t\t\tconst original = this.original.slice(start, end);\n\t\t\tObject.defineProperty(this.storedNames, original, {\n\t\t\t\twritable: true,\n\t\t\t\tvalue: true,\n\t\t\t\tenumerable: true,\n\t\t\t});\n\t\t}\n\n\t\tconst first = this.byStart[start];\n\t\tconst last = this.byEnd[end];\n\n\t\tif (first) {\n\t\t\tlet chunk = first;\n\t\t\twhile (chunk !== last) {\n\t\t\t\tif (chunk.next !== this.byStart[chunk.end]) {\n\t\t\t\t\tthrow new Error('Cannot overwrite across a split point');\n\t\t\t\t}\n\t\t\t\tchunk = chunk.next;\n\t\t\t\tchunk.edit('', false);\n\t\t\t}\n\n\t\t\tfirst.edit(content, storeName, !overwrite);\n\t\t} else {\n\t\t\t// must be inserting at the end\n\t\t\tconst newChunk = new Chunk(start, end, '').edit(content, storeName);\n\n\t\t\t// TODO last chunk in the array may not be the last chunk, if it's moved...\n\t\t\tlast.next = newChunk;\n\t\t\tnewChunk.previous = last;\n\t\t}\n\t\treturn this;\n\t}\n\n\tprepend(content) {\n\t\tif (typeof content !== 'string') throw new TypeError('outro content must be a string');\n\n\t\tthis.intro = content + this.intro;\n\t\treturn this;\n\t}\n\n\tprependLeft(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byEnd[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.prependLeft(content);\n\t\t} else {\n\t\t\tthis.intro = content + this.intro;\n\t\t}\n\t\treturn this;\n\t}\n\n\tprependRight(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byStart[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.prependRight(content);\n\t\t} else {\n\t\t\tthis.outro = content + this.outro;\n\t\t}\n\t\treturn this;\n\t}\n\n\tremove(start, end) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tif (start === end) return this;\n\n\t\tif (start < 0 || end > this.original.length) throw new Error('Character is out of bounds');\n\t\tif (start > end) throw new Error('end must be greater than start');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\n\t\tlet chunk = this.byStart[start];\n\n\t\twhile (chunk) {\n\t\t\tchunk.intro = '';\n\t\t\tchunk.outro = '';\n\t\t\tchunk.edit('');\n\n\t\t\tchunk = end > chunk.end ? this.byStart[chunk.end] : null;\n\t\t}\n\t\treturn this;\n\t}\n\n\treset(start, end) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tif (start === end) return this;\n\n\t\tif (start < 0 || end > this.original.length) throw new Error('Character is out of bounds');\n\t\tif (start > end) throw new Error('end must be greater than start');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\n\t\tlet chunk = this.byStart[start];\n\n\t\twhile (chunk) {\n\t\t\tchunk.reset();\n\n\t\t\tchunk = end > chunk.end ? this.byStart[chunk.end] : null;\n\t\t}\n\t\treturn this;\n\t}\n\n\tlastChar() {\n\t\tif (this.outro.length) return this.outro[this.outro.length - 1];\n\t\tlet chunk = this.lastChunk;\n\t\tdo {\n\t\t\tif (chunk.outro.length) return chunk.outro[chunk.outro.length - 1];\n\t\t\tif (chunk.content.length) return chunk.content[chunk.content.length - 1];\n\t\t\tif (chunk.intro.length) return chunk.intro[chunk.intro.length - 1];\n\t\t} while ((chunk = chunk.previous));\n\t\tif (this.intro.length) return this.intro[this.intro.length - 1];\n\t\treturn '';\n\t}\n\n\tlastLine() {\n\t\tlet lineIndex = this.outro.lastIndexOf(n);\n\t\tif (lineIndex !== -1) return this.outro.substr(lineIndex + 1);\n\t\tlet lineStr = this.outro;\n\t\tlet chunk = this.lastChunk;\n\t\tdo {\n\t\t\tif (chunk.outro.length > 0) {\n\t\t\t\tlineIndex = chunk.outro.lastIndexOf(n);\n\t\t\t\tif (lineIndex !== -1) return chunk.outro.substr(lineIndex + 1) + lineStr;\n\t\t\t\tlineStr = chunk.outro + lineStr;\n\t\t\t}\n\n\t\t\tif (chunk.content.length > 0) {\n\t\t\t\tlineIndex = chunk.content.lastIndexOf(n);\n\t\t\t\tif (lineIndex !== -1) return chunk.content.substr(lineIndex + 1) + lineStr;\n\t\t\t\tlineStr = chunk.content + lineStr;\n\t\t\t}\n\n\t\t\tif (chunk.intro.length > 0) {\n\t\t\t\tlineIndex = chunk.intro.lastIndexOf(n);\n\t\t\t\tif (lineIndex !== -1) return chunk.intro.substr(lineIndex + 1) + lineStr;\n\t\t\t\tlineStr = chunk.intro + lineStr;\n\t\t\t}\n\t\t} while ((chunk = chunk.previous));\n\t\tlineIndex = this.intro.lastIndexOf(n);\n\t\tif (lineIndex !== -1) return this.intro.substr(lineIndex + 1) + lineStr;\n\t\treturn this.intro + lineStr;\n\t}\n\n\tslice(start = 0, end = this.original.length - this.offset) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tlet result = '';\n\n\t\t// find start chunk\n\t\tlet chunk = this.firstChunk;\n\t\twhile (chunk && (chunk.start > start || chunk.end <= start)) {\n\t\t\t// found end chunk before start\n\t\t\tif (chunk.start < end && chunk.end >= end) {\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\tif (chunk && chunk.edited && chunk.start !== start)\n\t\t\tthrow new Error(`Cannot use replaced character ${start} as slice start anchor.`);\n\n\t\tconst startChunk = chunk;\n\t\twhile (chunk) {\n\t\t\tif (chunk.intro && (startChunk !== chunk || chunk.start === start)) {\n\t\t\t\tresult += chunk.intro;\n\t\t\t}\n\n\t\t\tconst containsEnd = chunk.start < end && chunk.end >= end;\n\t\t\tif (containsEnd && chunk.edited && chunk.end !== end)\n\t\t\t\tthrow new Error(`Cannot use replaced character ${end} as slice end anchor.`);\n\n\t\t\tconst sliceStart = startChunk === chunk ? start - chunk.start : 0;\n\t\t\tconst sliceEnd = containsEnd ? chunk.content.length + end - chunk.end : chunk.content.length;\n\n\t\t\tresult += chunk.content.slice(sliceStart, sliceEnd);\n\n\t\t\tif (chunk.outro && (!containsEnd || chunk.end === end)) {\n\t\t\t\tresult += chunk.outro;\n\t\t\t}\n\n\t\t\tif (containsEnd) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\treturn result;\n\t}\n\n\t// TODO deprecate this? not really very useful\n\tsnip(start, end) {\n\t\tconst clone = this.clone();\n\t\tclone.remove(0, start);\n\t\tclone.remove(end, clone.original.length);\n\n\t\treturn clone;\n\t}\n\n\t_split(index) {\n\t\tif (this.byStart[index] || this.byEnd[index]) return;\n\n\t\tlet chunk = this.lastSearchedChunk;\n\t\tlet previousChunk = chunk;\n\t\tconst searchForward = index > chunk.end;\n\n\t\twhile (chunk) {\n\t\t\tif (chunk.contains(index)) return this._splitChunk(chunk, index);\n\n\t\t\tchunk = searchForward ? this.byStart[chunk.end] : this.byEnd[chunk.start];\n\n\t\t\t// Prevent infinite loop (e.g. via empty chunks, where start === end)\n\t\t\tif (chunk === previousChunk) return;\n\n\t\t\tpreviousChunk = chunk;\n\t\t}\n\t}\n\n\t_splitChunk(chunk, index) {\n\t\tif (chunk.edited && chunk.content.length) {\n\t\t\t// zero-length edited chunks are a special case (overlapping replacements)\n\t\t\tconst loc = getLocator(this.original)(index);\n\t\t\tthrow new Error(\n\t\t\t\t`Cannot split a chunk that has already been edited (${loc.line}:${loc.column} – \"${chunk.original}\")`,\n\t\t\t);\n\t\t}\n\n\t\tconst newChunk = chunk.split(index);\n\n\t\tthis.byEnd[index] = chunk;\n\t\tthis.byStart[index] = newChunk;\n\t\tthis.byEnd[newChunk.end] = newChunk;\n\n\t\tif (chunk === this.lastChunk) this.lastChunk = newChunk;\n\n\t\tthis.lastSearchedChunk = chunk;\n\t\treturn true;\n\t}\n\n\ttoString() {\n\t\tlet str = this.intro;\n\n\t\tlet chunk = this.firstChunk;\n\t\twhile (chunk) {\n\t\t\tstr += chunk.toString();\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\treturn str + this.outro;\n\t}\n\n\tisEmpty() {\n\t\tlet chunk = this.firstChunk;\n\t\tdo {\n\t\t\tif (\n\t\t\t\t(chunk.intro.length && chunk.intro.trim()) ||\n\t\t\t\t(chunk.content.length && chunk.content.trim()) ||\n\t\t\t\t(chunk.outro.length && chunk.outro.trim())\n\t\t\t)\n\t\t\t\treturn false;\n\t\t} while ((chunk = chunk.next));\n\t\treturn true;\n\t}\n\n\tlength() {\n\t\tlet chunk = this.firstChunk;\n\t\tlet length = 0;\n\t\tdo {\n\t\t\tlength += chunk.intro.length + chunk.content.length + chunk.outro.length;\n\t\t} while ((chunk = chunk.next));\n\t\treturn length;\n\t}\n\n\ttrimLines() {\n\t\treturn this.trim('[\\\\r\\\\n]');\n\t}\n\n\ttrim(charType) {\n\t\treturn this.trimStart(charType).trimEnd(charType);\n\t}\n\n\ttrimEndAborted(charType) {\n\t\tconst rx = new RegExp((charType || '\\\\s') + '+$');\n\n\t\tthis.outro = this.outro.replace(rx, '');\n\t\tif (this.outro.length) return true;\n\n\t\tlet chunk = this.lastChunk;\n\n\t\tdo {\n\t\t\tconst end = chunk.end;\n\t\t\tconst aborted = chunk.trimEnd(rx);\n\n\t\t\t// if chunk was trimmed, we have a new lastChunk\n\t\t\tif (chunk.end !== end) {\n\t\t\t\tif (this.lastChunk === chunk) {\n\t\t\t\t\tthis.lastChunk = chunk.next;\n\t\t\t\t}\n\n\t\t\t\tthis.byEnd[chunk.end] = chunk;\n\t\t\t\tthis.byStart[chunk.next.start] = chunk.next;\n\t\t\t\tthis.byEnd[chunk.next.end] = chunk.next;\n\t\t\t}\n\n\t\t\tif (aborted) return true;\n\t\t\tchunk = chunk.previous;\n\t\t} while (chunk);\n\n\t\treturn false;\n\t}\n\n\ttrimEnd(charType) {\n\t\tthis.trimEndAborted(charType);\n\t\treturn this;\n\t}\n\ttrimStartAborted(charType) {\n\t\tconst rx = new RegExp('^' + (charType || '\\\\s') + '+');\n\n\t\tthis.intro = this.intro.replace(rx, '');\n\t\tif (this.intro.length) return true;\n\n\t\tlet chunk = this.firstChunk;\n\n\t\tdo {\n\t\t\tconst end = chunk.end;\n\t\t\tconst aborted = chunk.trimStart(rx);\n\n\t\t\tif (chunk.end !== end) {\n\t\t\t\t// special case...\n\t\t\t\tif (chunk === this.lastChunk) this.lastChunk = chunk.next;\n\n\t\t\t\tthis.byEnd[chunk.end] = chunk;\n\t\t\t\tthis.byStart[chunk.next.start] = chunk.next;\n\t\t\t\tthis.byEnd[chunk.next.end] = chunk.next;\n\t\t\t}\n\n\t\t\tif (aborted) return true;\n\t\t\tchunk = chunk.next;\n\t\t} while (chunk);\n\n\t\treturn false;\n\t}\n\n\ttrimStart(charType) {\n\t\tthis.trimStartAborted(charType);\n\t\treturn this;\n\t}\n\n\thasChanged() {\n\t\treturn this.original !== this.toString();\n\t}\n\n\t_replaceRegexp(searchValue, replacement) {\n\t\tfunction getReplacement(match, str) {\n\t\t\tif (typeof replacement === 'string') {\n\t\t\t\treturn replacement.replace(/\\$(\\$|&|\\d+)/g, (_, i) => {\n\t\t\t\t\t// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#specifying_a_string_as_a_parameter\n\t\t\t\t\tif (i === '$') return '$';\n\t\t\t\t\tif (i === '&') return match[0];\n\t\t\t\t\tconst num = +i;\n\t\t\t\t\tif (num < match.length) return match[+i];\n\t\t\t\t\treturn `$${i}`;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn replacement(...match, match.index, str, match.groups);\n\t\t\t}\n\t\t}\n\t\tfunction matchAll(re, str) {\n\t\t\tlet match;\n\t\t\tconst matches = [];\n\t\t\twhile ((match = re.exec(str))) {\n\t\t\t\tmatches.push(match);\n\t\t\t}\n\t\t\treturn matches;\n\t\t}\n\t\tif (searchValue.global) {\n\t\t\tconst matches = matchAll(searchValue, this.original);\n\t\t\tmatches.forEach((match) => {\n\t\t\t\tif (match.index != null) {\n\t\t\t\t\tconst replacement = getReplacement(match, this.original);\n\t\t\t\t\tif (replacement !== match[0]) {\n\t\t\t\t\t\tthis.overwrite(match.index, match.index + match[0].length, replacement);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tconst match = this.original.match(searchValue);\n\t\t\tif (match && match.index != null) {\n\t\t\t\tconst replacement = getReplacement(match, this.original);\n\t\t\t\tif (replacement !== match[0]) {\n\t\t\t\t\tthis.overwrite(match.index, match.index + match[0].length, replacement);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\n\t_replaceString(string, replacement) {\n\t\tconst { original } = this;\n\t\tconst index = original.indexOf(string);\n\n\t\tif (index !== -1) {\n\t\t\tif (typeof replacement === 'function') {\n\t\t\t\treplacement = replacement(string, index, original);\n\t\t\t}\n\t\t\tif (string !== replacement) {\n\t\t\t\tthis.overwrite(index, index + string.length, replacement);\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t}\n\n\treplace(searchValue, replacement) {\n\t\tif (typeof searchValue === 'string') {\n\t\t\treturn this._replaceString(searchValue, replacement);\n\t\t}\n\n\t\treturn this._replaceRegexp(searchValue, replacement);\n\t}\n\n\t_replaceAllString(string, replacement) {\n\t\tconst { original } = this;\n\t\tconst stringLength = string.length;\n\t\tfor (\n\t\t\tlet index = original.indexOf(string);\n\t\t\tindex !== -1;\n\t\t\tindex = original.indexOf(string, index + stringLength)\n\t\t) {\n\t\t\tconst previous = original.slice(index, index + stringLength);\n\t\t\tlet _replacement = replacement;\n\t\t\tif (typeof replacement === 'function') {\n\t\t\t\t_replacement = replacement(previous, index, original);\n\t\t\t}\n\t\t\tif (previous !== _replacement) this.overwrite(index, index + stringLength, _replacement);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\treplaceAll(searchValue, replacement) {\n\t\tif (typeof searchValue === 'string') {\n\t\t\treturn this._replaceAllString(searchValue, replacement);\n\t\t}\n\n\t\tif (!searchValue.global) {\n\t\t\tthrow new TypeError(\n\t\t\t\t'MagicString.prototype.replaceAll called with a non-global RegExp argument',\n\t\t\t);\n\t\t}\n\n\t\treturn this._replaceRegexp(searchValue, replacement);\n\t}\n}\n\nconst hasOwnProp = Object.prototype.hasOwnProperty;\n\nclass Bundle {\n\tconstructor(options = {}) {\n\t\tthis.intro = options.intro || '';\n\t\tthis.separator = options.separator !== undefined ? options.separator : '\\n';\n\t\tthis.sources = [];\n\t\tthis.uniqueSources = [];\n\t\tthis.uniqueSourceIndexByFilename = {};\n\t}\n\n\taddSource(source) {\n\t\tif (source instanceof MagicString) {\n\t\t\treturn this.addSource({\n\t\t\t\tcontent: source,\n\t\t\t\tfilename: source.filename,\n\t\t\t\tseparator: this.separator,\n\t\t\t});\n\t\t}\n\n\t\tif (!isObject(source) || !source.content) {\n\t\t\tthrow new Error(\n\t\t\t\t'bundle.addSource() takes an object with a `content` property, which should be an instance of MagicString, and an optional `filename`',\n\t\t\t);\n\t\t}\n\n\t\t['filename', 'ignoreList', 'indentExclusionRanges', 'separator'].forEach((option) => {\n\t\t\tif (!hasOwnProp.call(source, option)) source[option] = source.content[option];\n\t\t});\n\n\t\tif (source.separator === undefined) {\n\t\t\t// TODO there's a bunch of this sort of thing, needs cleaning up\n\t\t\tsource.separator = this.separator;\n\t\t}\n\n\t\tif (source.filename) {\n\t\t\tif (!hasOwnProp.call(this.uniqueSourceIndexByFilename, source.filename)) {\n\t\t\t\tthis.uniqueSourceIndexByFilename[source.filename] = this.uniqueSources.length;\n\t\t\t\tthis.uniqueSources.push({ filename: source.filename, content: source.content.original });\n\t\t\t} else {\n\t\t\t\tconst uniqueSource = this.uniqueSources[this.uniqueSourceIndexByFilename[source.filename]];\n\t\t\t\tif (source.content.original !== uniqueSource.content) {\n\t\t\t\t\tthrow new Error(`Illegal source: same filename (${source.filename}), different contents`);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.sources.push(source);\n\t\treturn this;\n\t}\n\n\tappend(str, options) {\n\t\tthis.addSource({\n\t\t\tcontent: new MagicString(str),\n\t\t\tseparator: (options && options.separator) || '',\n\t\t});\n\n\t\treturn this;\n\t}\n\n\tclone() {\n\t\tconst bundle = new Bundle({\n\t\t\tintro: this.intro,\n\t\t\tseparator: this.separator,\n\t\t});\n\n\t\tthis.sources.forEach((source) => {\n\t\t\tbundle.addSource({\n\t\t\t\tfilename: source.filename,\n\t\t\t\tcontent: source.content.clone(),\n\t\t\t\tseparator: source.separator,\n\t\t\t});\n\t\t});\n\n\t\treturn bundle;\n\t}\n\n\tgenerateDecodedMap(options = {}) {\n\t\tconst names = [];\n\t\tlet x_google_ignoreList = undefined;\n\t\tthis.sources.forEach((source) => {\n\t\t\tObject.keys(source.content.storedNames).forEach((name) => {\n\t\t\t\tif (!~names.indexOf(name)) names.push(name);\n\t\t\t});\n\t\t});\n\n\t\tconst mappings = new Mappings(options.hires);\n\n\t\tif (this.intro) {\n\t\t\tmappings.advance(this.intro);\n\t\t}\n\n\t\tthis.sources.forEach((source, i) => {\n\t\t\tif (i > 0) {\n\t\t\t\tmappings.advance(this.separator);\n\t\t\t}\n\n\t\t\tconst sourceIndex = source.filename ? this.uniqueSourceIndexByFilename[source.filename] : -1;\n\t\t\tconst magicString = source.content;\n\t\t\tconst locate = getLocator(magicString.original);\n\n\t\t\tif (magicString.intro) {\n\t\t\t\tmappings.advance(magicString.intro);\n\t\t\t}\n\n\t\t\tmagicString.firstChunk.eachNext((chunk) => {\n\t\t\t\tconst loc = locate(chunk.start);\n\n\t\t\t\tif (chunk.intro.length) mappings.advance(chunk.intro);\n\n\t\t\t\tif (source.filename) {\n\t\t\t\t\tif (chunk.edited) {\n\t\t\t\t\t\tmappings.addEdit(\n\t\t\t\t\t\t\tsourceIndex,\n\t\t\t\t\t\t\tchunk.content,\n\t\t\t\t\t\t\tloc,\n\t\t\t\t\t\t\tchunk.storeName ? names.indexOf(chunk.original) : -1,\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmappings.addUneditedChunk(\n\t\t\t\t\t\t\tsourceIndex,\n\t\t\t\t\t\t\tchunk,\n\t\t\t\t\t\t\tmagicString.original,\n\t\t\t\t\t\t\tloc,\n\t\t\t\t\t\t\tmagicString.sourcemapLocations,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tmappings.advance(chunk.content);\n\t\t\t\t}\n\n\t\t\t\tif (chunk.outro.length) mappings.advance(chunk.outro);\n\t\t\t});\n\n\t\t\tif (magicString.outro) {\n\t\t\t\tmappings.advance(magicString.outro);\n\t\t\t}\n\n\t\t\tif (source.ignoreList && sourceIndex !== -1) {\n\t\t\t\tif (x_google_ignoreList === undefined) {\n\t\t\t\t\tx_google_ignoreList = [];\n\t\t\t\t}\n\t\t\t\tx_google_ignoreList.push(sourceIndex);\n\t\t\t}\n\t\t});\n\n\t\treturn {\n\t\t\tfile: options.file ? options.file.split(/[/\\\\]/).pop() : undefined,\n\t\t\tsources: this.uniqueSources.map((source) => {\n\t\t\t\treturn options.file ? getRelativePath(options.file, source.filename) : source.filename;\n\t\t\t}),\n\t\t\tsourcesContent: this.uniqueSources.map((source) => {\n\t\t\t\treturn options.includeContent ? source.content : null;\n\t\t\t}),\n\t\t\tnames,\n\t\t\tmappings: mappings.raw,\n\t\t\tx_google_ignoreList,\n\t\t};\n\t}\n\n\tgenerateMap(options) {\n\t\treturn new SourceMap(this.generateDecodedMap(options));\n\t}\n\n\tgetIndentString() {\n\t\tconst indentStringCounts = {};\n\n\t\tthis.sources.forEach((source) => {\n\t\t\tconst indentStr = source.content._getRawIndentString();\n\n\t\t\tif (indentStr === null) return;\n\n\t\t\tif (!indentStringCounts[indentStr]) indentStringCounts[indentStr] = 0;\n\t\t\tindentStringCounts[indentStr] += 1;\n\t\t});\n\n\t\treturn (\n\t\t\tObject.keys(indentStringCounts).sort((a, b) => {\n\t\t\t\treturn indentStringCounts[a] - indentStringCounts[b];\n\t\t\t})[0] || '\\t'\n\t\t);\n\t}\n\n\tindent(indentStr) {\n\t\tif (!arguments.length) {\n\t\t\tindentStr = this.getIndentString();\n\t\t}\n\n\t\tif (indentStr === '') return this; // noop\n\n\t\tlet trailingNewline = !this.intro || this.intro.slice(-1) === '\\n';\n\n\t\tthis.sources.forEach((source, i) => {\n\t\t\tconst separator = source.separator !== undefined ? source.separator : this.separator;\n\t\t\tconst indentStart = trailingNewline || (i > 0 && /\\r?\\n$/.test(separator));\n\n\t\t\tsource.content.indent(indentStr, {\n\t\t\t\texclude: source.indentExclusionRanges,\n\t\t\t\tindentStart, //: trailingNewline || /\\r?\\n$/.test( separator ) //true///\\r?\\n/.test( separator )\n\t\t\t});\n\n\t\t\ttrailingNewline = source.content.lastChar() === '\\n';\n\t\t});\n\n\t\tif (this.intro) {\n\t\t\tthis.intro =\n\t\t\t\tindentStr +\n\t\t\t\tthis.intro.replace(/^[^\\n]/gm, (match, index) => {\n\t\t\t\t\treturn index > 0 ? indentStr + match : match;\n\t\t\t\t});\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tprepend(str) {\n\t\tthis.intro = str + this.intro;\n\t\treturn this;\n\t}\n\n\ttoString() {\n\t\tconst body = this.sources\n\t\t\t.map((source, i) => {\n\t\t\t\tconst separator = source.separator !== undefined ? source.separator : this.separator;\n\t\t\t\tconst str = (i > 0 ? separator : '') + source.content.toString();\n\n\t\t\t\treturn str;\n\t\t\t})\n\t\t\t.join('');\n\n\t\treturn this.intro + body;\n\t}\n\n\tisEmpty() {\n\t\tif (this.intro.length && this.intro.trim()) return false;\n\t\tif (this.sources.some((source) => !source.content.isEmpty())) return false;\n\t\treturn true;\n\t}\n\n\tlength() {\n\t\treturn this.sources.reduce(\n\t\t\t(length, source) => length + source.content.length(),\n\t\t\tthis.intro.length,\n\t\t);\n\t}\n\n\ttrimLines() {\n\t\treturn this.trim('[\\\\r\\\\n]');\n\t}\n\n\ttrim(charType) {\n\t\treturn this.trimStart(charType).trimEnd(charType);\n\t}\n\n\ttrimStart(charType) {\n\t\tconst rx = new RegExp('^' + (charType || '\\\\s') + '+');\n\t\tthis.intro = this.intro.replace(rx, '');\n\n\t\tif (!this.intro) {\n\t\t\tlet source;\n\t\t\tlet i = 0;\n\n\t\t\tdo {\n\t\t\t\tsource = this.sources[i++];\n\t\t\t\tif (!source) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} while (!source.content.trimStartAborted(charType));\n\t\t}\n\n\t\treturn this;\n\t}\n\n\ttrimEnd(charType) {\n\t\tconst rx = new RegExp((charType || '\\\\s') + '+$');\n\n\t\tlet source;\n\t\tlet i = this.sources.length - 1;\n\n\t\tdo {\n\t\t\tsource = this.sources[i--];\n\t\t\tif (!source) {\n\t\t\t\tthis.intro = this.intro.replace(rx, '');\n\t\t\t\tbreak;\n\t\t\t}\n\t\t} while (!source.content.trimEndAborted(charType));\n\n\t\treturn this;\n\t}\n}\n\nexport { Bundle, SourceMap, MagicString as default };\n//# sourceMappingURL=magic-string.es.mjs.map\n","export const NEW_METHOD_TYPE = 'newMethod'\nexport const INVALID_VARNAME_CHAR_RE = /[^0-9a-zA-Z_$]/\nexport const VALID_VARNAME_RE = /^[a-zA-Z_$][0-9a-zA-Z_$]*$/\n\nexport const METHOD_TIPS_MAP = {\n default: '选择已有方法或者添加新方法(点击 确定 之后将在JS面板中创建一个该名称的新方法)',\n exist: '方法名称已存在',\n ruleInvalid: '请输入有效的方法名,可以由字母、数字、下划线、$ 符号组成,不能以数字开头',\n empty: '方法名称不能为空'\n}\n","/**\n * Copyright (c) 2023 - present TinyEngine Authors.\n * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd.\n *\n * Use of this source code is governed by an MIT-style license.\n *\n * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,\n * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR\n * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.\n *\n */\n\nimport entry from './src/Main.vue'\nimport metaData from './meta'\nimport { commonEvents } from './src/commonjs/events.ts'\nimport BindEventsDialogContent from './src/components/BindEventsDialogContent.vue'\nimport BindEventsDialogSidebar from './src/components/BindEventsDialogSidebar.vue'\nimport './src/styles/vars.less'\n\nexport default {\n ...metaData,\n entry,\n options: { commonEvents },\n components: {\n BindEventsDialogSidebar,\n BindEventsDialogContent\n }\n}\n"],"names":["metaData","comma","semicolon","chars","intToChar","charToInt","i","c","encodeInteger","builder","num","relative","delta","clamped","bufLength","td","buf","out","StringWriter","v","buffer","pos","encode","decoded","writer","sourcesIndex","sourceLine","sourceColumn","namesIndex","line","genColumn","j","segment","BitSet","arg","n","Chunk","start","end","content","chunk","index","fn","storeName","contentOnly","sliceIndex","originalBefore","originalAfter","newChunk","rx","trimmed","getBtoa","str","btoa","SourceMap","properties","guessIndent","code","lines","tabbed","spaced","min","previous","current","numSpaces","getRelativePath","from","to","fromParts","toParts","toString","isObject","thing","getLocator","source","originalLines","lineOffsets","m","column","wordRegex","Mappings","hires","sourceIndex","loc","nameIndex","contentLengthMinusOne","contentLineEnd","previousContentLineEnd","original","sourcemapLocations","originalCharIndex","first","charInHiresBoundary","warned","MagicString","string","options","char","cloned","originalChunk","clonedChunk","nextOriginalChunk","nextClonedChunk","names","mappings","locate","indentStr","pattern","isExcluded","exclusion","shouldIndentNextCharacter","replacer","match","charIndex","last","oldLeft","oldRight","newRight","newLeft","overwrite","lineIndex","lineStr","result","startChunk","containsEnd","sliceStart","sliceEnd","clone","previousChunk","searchForward","length","charType","aborted","searchValue","replacement","getReplacement","_","matchAll","re","matches","stringLength","_replacement","NEW_METHOD_TYPE","INVALID_VARNAME_CHAR_RE","VALID_VARNAME_RE","METHOD_TIPS_MAP","entry","commonEvents","BindEventsDialogSidebar","BindEventsDialogContent"],"mappings":"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","x_google_ignoreList":[1,2]}
|
package/dist/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.bind-event-dialog[data-v-
|
|
1
|
+
.bind-event-dialog[data-v-75c09cb1]{z-index:99}.bind-event-dialog[data-v-75c09cb1] .tiny-dialog-box{min-width:760px}.bind-event-dialog-tip .tiny-alert.tiny-alert--normal[data-v-75c09cb1]{margin:12px 0}.bind-event-dialog-content[data-v-75c09cb1]{display:flex;min-width:700px}.add-custom-event-form.add-custom-event-form[data-v-2ed7fac6] .tiny-form-item__label{padding-left:0}.footer[data-v-2ed7fac6]{display:flex;justify-content:flex-end}.custom-event[data-v-cce64db4]{padding:10px 20px 10px 10px}.custom-event footer[data-v-cce64db4]{text-align:center}.bind-action-list .bind-actions[data-v-cce64db4]{margin-top:20px}.bind-action-list .bind-actions .binding-name[data-v-cce64db4]{word-break:break-all}.bind-action-list .bind-actions .action-buttons[data-v-cce64db4]{display:flex;align-items:center;justify-content:center}.bind-action-list .bind-actions .action-buttons .item[data-v-cce64db4]{margin-right:10px}.bind-action-list .bind-actions .event-bind[data-v-cce64db4]{color:var(--te-events-event-bind-text-color)}.bind-action-list .bind-actions .bind-action-item[data-v-cce64db4]{display:flex;justify-content:space-between;padding:8px 12px;cursor:pointer;color:var(--te-events-bind-action-item-text-color);border-bottom:1px solid var(--te-events-bind-action-item-border-color)}.bind-action-list .bind-actions .bind-action-item[data-v-cce64db4]:first-child{border-top:1px solid var(--te-events-bind-action-item-border-color)}.bind-action-list .bind-actions .bind-action-item[data-v-cce64db4]:hover{background:var(--te-events-bind-action-item-bg-color-hover)}.bind-action-list .bind-actions .bind-action-item .linked[data-v-cce64db4]{color:var(--te-events-bind-action-item-text-color-link)}.bind-action-list .popover-head[data-v-cce64db4]{display:flex;justify-content:space-between;margin-top:12px}.bind-action-list .popover-head .bind-action-button-item[data-v-cce64db4]{width:50%}.bind-action-list .popover-head .bind-action-button-item[data-v-cce64db4]:not(:last-child){margin-right:12px}.bind-action-list .popover-head .add-custom-event-button[data-v-cce64db4]{margin-right:0}.bind-action-list .popover-head .bind-event-btn[data-v-cce64db4]{padding:0 16px;width:100%}.bind-action-list .popover-head .bind-event-btn .bind-event-btn-icon[data-v-cce64db4]{margin-right:0;margin-left:4px}.bind-action-list .empty-action[data-v-cce64db4]{display:flex;flex-direction:column;align-items:center;background-color:var(--te-events-empty-action-bg-color);color:var(--te-events-empty-action-text-color);padding:24px 18px;margin-top:var(--te-common-vertical-item-spacing-normal)}.bind-action-list .empty-action .empty-action-icon[data-v-cce64db4]{font-size:48px}.bind-action-list .empty-action .icon[data-v-cce64db4]{text-align:center;opacity:.4}.bind-action-list .empty-action .center[data-v-cce64db4]{margin-top:4px}.bind-action-list .empty-action .text[data-v-cce64db4]{margin-top:12px}.bind-event-list[data-v-cce64db4]{color:var(--te-events-bind-event-list-text-color)}.bind-event-list-item-notallow[data-v-cce64db4]{cursor:not-allowed;pointer-events:none;color:var(--te-events-bind-event-list-item-text-color-disabled)}.bind-event-list-item[data-v-cce64db4]{padding:0 16px;margin:0 -16px;line-height:24px}.bind-event-list-item[data-v-cce64db4]:hover{cursor:pointer;background:var(--te-events-bind-event-list-item-bg-color-hover)}.advanced-config-container .advnce-config[data-v-a108e614]{align-items:center;display:flex;column-gap:12px;color:var(--te-events-advanced-config-text-color)}.advanced-config-container .advnce-config[data-v-a108e614]:not(:last-child){margin-bottom:var(--te-common-vertical-item-spacing-normal)}.advanced-config-container .advnce-config label[data-v-a108e614]{width:80px;word-break:keep-all;color:var(--te-events-advanced-label-text-color);flex-shrink:0}.advanced-config-container .advnce-config .advanced-config-form-item[data-v-a108e614]{display:grid;grid-template-columns:1fr auto;flex:1}.advanced-config-container .advnce-config .binding-state[data-v-a108e614]{box-sizing:border-box;background:var(--te-events-advanced-binding-state-bg-color);color:var(--te-events-advanced-binding-state-text-color);border:1px solid var(--te-events-advanced-binding-state-border-color);font-size:12px;height:24px;line-height:14px;padding:4px 8px;--ellipsis-line: 1;border-radius:var(--te-base-border-radius-1)}.advanced-config-container .advnce-config .advance-config-loop-wrap .advance-item[data-v-a108e614]{width:100%}.advanced-config-container .loop-data-item[data-v-a108e614]{display:block}.advanced-config-container .loop-data-item label[data-v-a108e614]{margin-bottom:5px}.content-right[data-v-ea32648b]{width:68%}.content-right .content-right-top .new-action-tip[data-v-ea32648b]{margin:8px 0;color:var(--te-bind-event-dialog-tip-text-color)}.content-right .content-right-bottom .content-right-monaco[data-v-ea32648b]{border:1px solid var(--te-bind-event-dialog-content-right-monaco-border-color);overflow:hidden;position:relative}.content-right .content-right-bottom .content-right-monaco .monaco-editor[data-v-ea32648b]{width:100%;height:216px;color:var(--te-bind-event-dialog-content-right-monaco-text-color)}.content-right .content-right-bottom .content-right-monaco .mark[data-v-ea32648b]{width:100%;height:216px;position:absolute;z-index:1;top:0}.content-right .content-right-bottom .params-tip[data-v-ea32648b]{margin:8px 0;color:var(--te-bind-event-dialog-danger-tip-text-color)}.content-right .content-right-top .content-right-title[data-v-ea32648b],.content-right .content-right-bottom .content-right-title[data-v-ea32648b]{margin-bottom:var(--te-common-vertical-item-spacing-normal)}.content-right .content-right-top .content-right-title .set-params-tip[data-v-ea32648b],.content-right .content-right-bottom .content-right-title .set-params-tip[data-v-ea32648b]{margin-top:6px;font-weight:400;color:var(--te-bind-event-dialog-tip-text-color)}.content-right .tip-error .content-right-monaco[data-v-ea32648b]{border:1px solid var(--te-bind-event-dialog-danger-border-color)}.content-right .tip-error .params-tip[data-v-ea32648b],.content-right .tip-error .new-action-tip[data-v-ea32648b]{color:var(--te-bind-event-dialog-danger-tip-text-color)}.dialog-content-left[data-v-9bcc2645]{margin-right:30px;width:30%;display:flex;flex-direction:column}.dialog-content-left .left-title[data-v-9bcc2645]{font-weight:400}.dialog-content-left .left-list-wrap[data-v-9bcc2645]{border:1px solid var(--te-bind-event-dialog-content-left-border-color);border-radius:4px;height:300px;margin-top:var(--te-common-vertical-item-spacing-normal);display:flex;flex:1}.dialog-content-left .left-list-wrap .left-action-list[data-v-9bcc2645]{flex:1;padding:12px}.dialog-content-left .left-list-wrap .left-action-list .action-list-wrap[data-v-9bcc2645]{height:250px;margin-top:8px;overflow:auto}.dialog-content-left .left-list-wrap .left-action-list .action-name[data-v-9bcc2645]{display:flex;justify-content:space-between;padding:8px 12px;cursor:pointer;color:var(--te-bind-event-dialog-text-color)}.dialog-content-left .left-list-wrap .left-action-list .action-name.active[data-v-9bcc2645]{background:var(--te-bind-event-dialog-content-left-list-item-bg-color-active)}:root{--te-events-advanced-config-text-color: var(--te-common-text-secondary);--te-events-advanced-label-text-color: var(--te-common-text-secondary);--te-events-advanced-binding-state-bg-color: var(--te-common-bg-info);--te-events-advanced-binding-state-border-color: var(--te-common-border-info);--te-events-advanced-binding-state-text-color: var(--te-common-text-emphasize);--te-bind-event-dialog-text-color: var(--te-common-text-secondary);--te-bind-event-dialog-content-left-border-color: var(--te-common-border-divider);--te-bind-event-dialog-content-right-monaco-text-color: var(--te-common-text-secondary);--te-bind-event-dialog-content-right-monaco-border-color: var(--te-common-border-divider);--te-bind-event-dialog-content-left-list-item-bg-color-active: var(--te-common-bg-container);--te-bind-event-dialog-tip-text-color: var(--te-common-text-weaken);--te-bind-event-dialog-tip-bg-color: var(--te-common-bg-container);--te-bind-event-dialog-danger-tip-text-color: var(--te-common-color-error);--te-bind-event-dialog-danger-border-color: var(--te-common-color-error);--te-events-bind-action-item-border-color: var(--te-common-border-divider);--te-events-event-bind-text-color: var(--te-common-text-weaken);--te-events-bind-action-item-text-color: var(--te-common-text-primary);--te-events-bind-action-item-bg-color-hover: var(--te-common-bg-container);--te-events-bind-action-item-text-color-link: var(--te-common-text-emphasize);--te-events-empty-action-bg-color: var(--te-common-bg-container);--te-events-empty-action-text-color: var(--te-common-text-weaken);--te-events-bind-event-list-text-color: var(--te-common-text-primary);--te-events-bind-event-list-item-text-color-disabled: var(--te-common-text-disabled);--te-events-bind-event-list-item-bg-color-hover: var(--te-common-bg-container)}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opentiny/tiny-engine-setting-events",
|
|
3
|
-
"version": "2.9.0-alpha.
|
|
3
|
+
"version": "2.9.0-alpha.6",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -25,14 +25,14 @@
|
|
|
25
25
|
"license": "MIT",
|
|
26
26
|
"homepage": "https://opentiny.design/tiny-engine",
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@opentiny/tiny-engine-common": "2.9.0-alpha.
|
|
29
|
-
"@opentiny/tiny-engine-configurator": "2.9.0-alpha.
|
|
30
|
-
"@opentiny/tiny-engine-meta-register": "2.9.0-alpha.
|
|
31
|
-
"@opentiny/tiny-engine-utils": "2.9.0-alpha.
|
|
28
|
+
"@opentiny/tiny-engine-common": "2.9.0-alpha.6",
|
|
29
|
+
"@opentiny/tiny-engine-configurator": "2.9.0-alpha.6",
|
|
30
|
+
"@opentiny/tiny-engine-meta-register": "2.9.0-alpha.6",
|
|
31
|
+
"@opentiny/tiny-engine-utils": "2.9.0-alpha.6",
|
|
32
32
|
"magic-string": "^0.30.17"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
|
-
"@opentiny/tiny-engine-vite-plugin-meta-comments": "2.9.0-alpha.
|
|
35
|
+
"@opentiny/tiny-engine-vite-plugin-meta-comments": "2.9.0-alpha.6",
|
|
36
36
|
"@vitejs/plugin-vue": "^5.1.2",
|
|
37
37
|
"@vitejs/plugin-vue-jsx": "^4.0.1",
|
|
38
38
|
"vite": "^5.4.2"
|
|
@@ -42,5 +42,5 @@
|
|
|
42
42
|
"@opentiny/vue-icon": "^3.20.0",
|
|
43
43
|
"vue": "^3.4.15"
|
|
44
44
|
},
|
|
45
|
-
"gitHead": "
|
|
45
|
+
"gitHead": "488da1bae729e897b2c07be88056cce0d3507460"
|
|
46
46
|
}
|