@univerjs/sheets-conditional-formatting 0.5.0 → 0.5.1

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.
Files changed (29) hide show
  1. package/lib/cjs/index.js +1 -1
  2. package/lib/es/index.js +1396 -1357
  3. package/lib/types/base/const.d.ts +1 -1
  4. package/lib/types/controllers/config.schema.d.ts +1 -1
  5. package/lib/types/index.d.ts +1 -2
  6. package/lib/types/models/calculate-unit-v2/__test__/calculate.databar.spec.d.ts +16 -0
  7. package/lib/types/models/calculate-unit-v2/__test__/calculate.highlight.spec.d.ts +16 -0
  8. package/lib/types/{services → models/calculate-unit-v2}/__test__/test.util.d.ts +3 -3
  9. package/lib/types/models/calculate-unit-v2/base-calculate-unit.d.ts +53 -0
  10. package/lib/types/models/calculate-unit-v2/color-scale-calculate-unit.d.ts +11 -0
  11. package/lib/types/models/calculate-unit-v2/data-bar-calculate-unit.d.ts +17 -0
  12. package/lib/types/models/calculate-unit-v2/highlight-cell-calculate-unit.d.ts +12 -0
  13. package/lib/types/models/calculate-unit-v2/icon-set-calculate-unit.d.ts +18 -0
  14. package/lib/types/{services/calculate-unit → models/calculate-unit-v2}/utils.d.ts +2 -2
  15. package/lib/types/models/conditional-formatting-rule-model.d.ts +1 -5
  16. package/lib/types/models/conditional-formatting-view-model.d.ts +51 -23
  17. package/lib/types/render/data-bar.render.d.ts +1 -0
  18. package/lib/types/services/conditional-formatting-formula.service.d.ts +27 -11
  19. package/lib/types/services/conditional-formatting.service.d.ts +3 -30
  20. package/lib/types/utils/is-ranges-equal.d.ts +16 -2
  21. package/lib/umd/index.js +1 -1
  22. package/package.json +10 -10
  23. package/lib/types/services/calculate-unit/color-scale.d.ts +0 -2
  24. package/lib/types/services/calculate-unit/data-bar.d.ts +0 -2
  25. package/lib/types/services/calculate-unit/highlight-cell.d.ts +0 -2
  26. package/lib/types/services/calculate-unit/icon-set.d.ts +0 -2
  27. package/lib/types/services/calculate-unit/type.d.ts +0 -15
  28. /package/lib/types/{services/__test__/calculate.databar.spec.d.ts → models/calculate-unit-v2/__test__/base-calculate.spec.d.ts} +0 -0
  29. /package/lib/types/{services/__test__/cf.service.spec.d.ts → models/calculate-unit-v2/__test__/calculate.color.spec.d.ts} +0 -0
package/lib/es/index.js CHANGED
@@ -1,15 +1,16 @@
1
- var B2 = Object.defineProperty;
2
- var k2 = (n, i, t) => i in n ? B2(n, i, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[i] = t;
3
- var E = (n, i, t) => k2(n, typeof i != "symbol" ? i + "" : i, t);
4
- import { Tools as Y, Inject as M, Injector as o2, ObjectMatrix as I, Range as R, CommandType as Q, ICommandService as C2, Disposable as x2, toDisposable as V2, RefAlias as U2, CellValueType as B, BooleanNumber as _2, dayjs as x, ColorKit as M2, createInterceptorKey as N2, IUniverInstanceService as O2, IResourceManagerService as T2, InterceptorManager as P2, UniverInstanceType as l2, Rectangle as H, Plugin as $2, IConfigService as W2 } from "@univerjs/core";
5
- import { Subject as s2, Observable as q2 } from "rxjs";
6
- import { bufferTime as y2, filter as D2, map as Z2 } from "rxjs/operators";
7
- import { SheetInterceptorService as j2, RemoveSheetCommand as G2, ReorderRangeMutation as H2, MoveRangeMutation as X2, MoveColsMutation as Y2, MoveRowsMutation as K2, InsertRowMutation as J2, RemoveRowMutation as z2, RemoveColMutation as Q2, InsertColMutation as e0, SetRangeValuesMutation as t0 } from "@univerjs/sheets";
8
- import { isObject as i0, SpreadsheetExtensionRegistry as R2, SheetExtension as I2, FIX_ONE_PIXEL_BLUR_OFFSET as s0 } from "@univerjs/engine-render";
9
- import { IActiveDirtyManagerService as n0, SetFormulaCalculationResultMutation as r0, SetOtherFormulaMutation as a0, RemoveOtherFormulaMutation as o0, BooleanValue as w2, ERROR_TYPE_SET as E2 } from "@univerjs/engine-formula";
10
- const L2 = "SHEET_CONDITIONAL_FORMATTING_PLUGIN";
11
- var b = /* @__PURE__ */ ((n) => (n.beginsWith = "beginsWith", n.endsWith = "endsWith", n.containsText = "containsText", n.notContainsText = "notContainsText", n.equal = "equal", n.notEqual = "notEqual", n.containsBlanks = "containsBlanks", n.notContainsBlanks = "notContainsBlanks", n.containsErrors = "containsErrors", n.notContainsErrors = "notContainsErrors", n))(b || {}), S = /* @__PURE__ */ ((n) => (n.today = "today", n.yesterday = "yesterday", n.tomorrow = "tomorrow", n.last7Days = "last7Days", n.thisMonth = "thisMonth", n.lastMonth = "lastMonth", n.nextMonth = "nextMonth", n.thisWeek = "thisWeek", n.lastWeek = "lastWeek", n.nextWeek = "nextWeek", n))(S || {}), p = /* @__PURE__ */ ((n) => (n.greaterThan = "greaterThan", n.greaterThanOrEqual = "greaterThanOrEqual", n.lessThan = "lessThan", n.lessThanOrEqual = "lessThanOrEqual", n.notBetween = "notBetween", n.between = "between", n.equal = "equal", n.notEqual = "notEqual", n))(p || {}), L = /* @__PURE__ */ ((n) => (n.highlightCell = "highlightCell", n.dataBar = "dataBar", n.colorScale = "colorScale", n.iconSet = "iconSet", n))(L || {}), _ = /* @__PURE__ */ ((n) => (n.uniqueValues = "uniqueValues", n.duplicateValues = "duplicateValues", n.rank = "rank", n.text = "text", n.timePeriod = "timePeriod", n.number = "number", n.average = "average", n.formula = "formula", n))(_ || {}), U = /* @__PURE__ */ ((n) => (n.num = "num", n.min = "min", n.max = "max", n.percent = "percent", n.percentile = "percentile", n.formula = "formula", n))(U || {});
12
- const C1 = "#fff", f1 = "#000000", m1 = () => ({
1
+ var U2 = Object.defineProperty;
2
+ var V2 = (n, s, t) => s in n ? U2(n, s, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[s] = t;
3
+ var m = (n, s, t) => V2(n, typeof s != "symbol" ? s + "" : s, t);
4
+ import { Tools as H, CommandType as J, Inject as A, ICommandService as f2, Disposable as m2, ObjectMatrix as T, RefAlias as O2, CellValueType as _, BooleanNumber as R2, LRUMap as I2, dayjs as v, Range as N, ColorKit as b2, Injector as F2, RTree as $2, IUniverInstanceService as S2, IResourceManagerService as P2, UniverInstanceType as c2, Rectangle as X, Plugin as W2, touchDependencies as Z2, IConfigService as q2 } from "@univerjs/core";
5
+ import { isRangesEqual as B1 } from "@univerjs/core";
6
+ import { Subject as i2, BehaviorSubject as G2 } from "rxjs";
7
+ import { distinctUntilChanged as j2, bufferTime as H2, filter as X2, map as Y2 } from "rxjs/operators";
8
+ import { IActiveDirtyManagerService as K2, SetFormulaCalculationResultMutation as J2, SetOtherFormulaMutation as z2, RemoveOtherFormulaMutation as Q2, BooleanValue as A2, ERROR_TYPE_SET as _2 } from "@univerjs/engine-formula";
9
+ import { isObject as e0, SpreadsheetExtensionRegistry as L2, SheetExtension as B2, FIX_ONE_PIXEL_BLUR_OFFSET as t0 } from "@univerjs/engine-render";
10
+ import { SheetInterceptorService as r0, RemoveSheetCommand as s0, ReorderRangeMutation as n0, MoveRangeMutation as i0, MoveColsMutation as a0, MoveRowsMutation as l0, InsertRowMutation as o0, RemoveRowMutation as c0, RemoveColMutation as u0, InsertColMutation as h0, SetRangeValuesMutation as d0 } from "@univerjs/sheets";
11
+ const k2 = "SHEET_CONDITIONAL_FORMATTING_PLUGIN";
12
+ var M = /* @__PURE__ */ ((n) => (n.beginsWith = "beginsWith", n.endsWith = "endsWith", n.containsText = "containsText", n.notContainsText = "notContainsText", n.equal = "equal", n.notEqual = "notEqual", n.containsBlanks = "containsBlanks", n.notContainsBlanks = "notContainsBlanks", n.containsErrors = "containsErrors", n.notContainsErrors = "notContainsErrors", n))(M || {}), R = /* @__PURE__ */ ((n) => (n.today = "today", n.yesterday = "yesterday", n.tomorrow = "tomorrow", n.last7Days = "last7Days", n.thisMonth = "thisMonth", n.lastMonth = "lastMonth", n.nextMonth = "nextMonth", n.thisWeek = "thisWeek", n.lastWeek = "lastWeek", n.nextWeek = "nextWeek", n))(R || {}), w = /* @__PURE__ */ ((n) => (n.greaterThan = "greaterThan", n.greaterThanOrEqual = "greaterThanOrEqual", n.lessThan = "lessThan", n.lessThanOrEqual = "lessThanOrEqual", n.notBetween = "notBetween", n.between = "between", n.equal = "equal", n.notEqual = "notEqual", n))(w || {}), y = /* @__PURE__ */ ((n) => (n.highlightCell = "highlightCell", n.dataBar = "dataBar", n.colorScale = "colorScale", n.iconSet = "iconSet", n))(y || {}), E = /* @__PURE__ */ ((n) => (n.uniqueValues = "uniqueValues", n.duplicateValues = "duplicateValues", n.rank = "rank", n.text = "text", n.timePeriod = "timePeriod", n.number = "number", n.average = "average", n.formula = "formula", n))(E || {}), x = /* @__PURE__ */ ((n) => (n.num = "num", n.min = "min", n.max = "max", n.percent = "percent", n.percentile = "percentile", n.formula = "formula", n))(x || {});
13
+ const v1 = "#fff", E1 = "#000000", p1 = () => ({
13
14
  cfId: void 0,
14
15
  ranges: [],
15
16
  stopIfTrue: !1,
@@ -19,7 +20,7 @@ const C1 = "#fff", f1 = "#000000", m1 = () => ({
19
20
  operator: "containsText"
20
21
  /* containsText */
21
22
  }
22
- }), F1 = (n, i) => {
23
+ }), A1 = (n, s) => {
23
24
  switch (n) {
24
25
  case "text": {
25
26
  if ([
@@ -30,7 +31,7 @@ const C1 = "#fff", f1 = "#000000", m1 = () => ({
30
31
  "notContainsText",
31
32
  "notEqual"
32
33
  /* notEqual */
33
- ].includes(i))
34
+ ].includes(s))
34
35
  return "";
35
36
  break;
36
37
  }
@@ -39,10 +40,10 @@ const C1 = "#fff", f1 = "#000000", m1 = () => ({
39
40
  "between",
40
41
  "notBetween"
41
42
  /* notBetween */
42
- ].includes(i) ? [10, 100] : 10;
43
+ ].includes(s) ? [10, 100] : 10;
43
44
  }
44
45
  return "";
45
- }, w1 = (n, i) => {
46
+ }, _1 = (n, s) => {
46
47
  switch (n) {
47
48
  case "formula":
48
49
  return "=";
@@ -52,13 +53,13 @@ const C1 = "#fff", f1 = "#000000", m1 = () => ({
52
53
  case "percent":
53
54
  case "percentile":
54
55
  case "num":
55
- return i !== void 0 ? i : 10;
56
+ return s !== void 0 ? s : 10;
56
57
  }
57
58
  return "";
58
- }, l0 = () => `${Y.generateRandomId(8)}`, j = (n, i, t) => {
59
- if (!i)
59
+ }, W = (n, s, t) => {
60
+ if (!s)
60
61
  return null;
61
- const e = i.findIndex((s) => t(s) === n.id);
62
+ const e = s.findIndex((r) => t(r) === n.id);
62
63
  if (e < 0)
63
64
  return null;
64
65
  switch (n.type) {
@@ -69,673 +70,266 @@ const C1 = "#fff", f1 = "#000000", m1 = () => ({
69
70
  case "self":
70
71
  return e;
71
72
  }
72
- }, c0 = (n, i, t, e) => {
73
+ }, g0 = (n, s, t, e) => {
73
74
  if (!t)
74
75
  return null;
75
- const s = j(n, t, e);
76
- let r = j(i, t, e);
77
- if (s === null || r === null || s === r)
76
+ const r = W(n, t, e);
77
+ let i = W(s, t, e);
78
+ if (r === null || i === null || r === i)
78
79
  return;
79
- const a = t.splice(s, 1)[0];
80
- switch (s < r && (r = j(i, t, e)), i.type) {
80
+ const a = t.splice(r, 1)[0];
81
+ switch (r < i && (i = W(s, t, e)), s.type) {
81
82
  case "before": {
82
- t.splice(r + 1, 0, a);
83
+ t.splice(i + 1, 0, a);
83
84
  break;
84
85
  }
85
86
  case "self":
86
87
  case "after": {
87
- t.splice(r, 0, a);
88
+ t.splice(i, 0, a);
88
89
  break;
89
90
  }
90
91
  }
91
- }, u0 = (n, i, t, e) => {
92
- if (n.type === "after" && ["after", "before"].includes(i.type))
93
- return [n, i];
94
- const s = { ...n }, r = { ...i };
95
- if (s.type !== "after") {
96
- const a = j(s, t, e);
92
+ }, C0 = (n, s, t, e) => {
93
+ if (n.type === "after" && ["after", "before"].includes(s.type))
94
+ return [n, s];
95
+ const r = { ...n }, i = { ...s };
96
+ if (r.type !== "after") {
97
+ const a = W(r, t, e);
97
98
  if (a === null)
98
99
  return null;
99
100
  if (a - 1 < 0) {
100
- const o = t[a + 1];
101
- if (o)
102
- s.id = e(o), s.type = "before";
101
+ const u = t[a + 1];
102
+ if (u)
103
+ r.id = e(u), r.type = "before";
103
104
  else
104
105
  return null;
105
106
  } else {
106
- const o = e(t[a - 1]);
107
- s.id = o, s.type = "after";
107
+ const u = e(t[a - 1]);
108
+ r.id = u, r.type = "after";
108
109
  }
109
110
  }
110
- if (!["after", "before"].includes(r.type)) {
111
- const a = j(r, t, e);
111
+ if (!["after", "before"].includes(i.type)) {
112
+ const a = W(i, t, e);
112
113
  if (a === null)
113
114
  return null;
114
115
  if (a === 0)
115
- r.type = "before";
116
+ i.type = "before";
116
117
  else if (a - 1 >= 0) {
117
- const o = e(t[a - 1]);
118
- r.id = o, r.type = "after";
118
+ const u = e(t[a - 1]);
119
+ i.id = u, i.type = "after";
119
120
  } else if (a + 1 <= t.length - 1) {
120
- const o = e(t[a + 1]);
121
- r.id = o, r.type = "before";
121
+ const u = e(t[a + 1]);
122
+ i.id = u, i.type = "before";
122
123
  } else
123
124
  return null;
124
125
  }
125
- return s.id === r.id && s.type === r.type ? null : [s, r];
126
- }, h0 = (n, i) => {
127
- if (["after", "before"].includes(i.type)) {
126
+ return r.id === i.id && r.type === i.type ? null : [r, i];
127
+ }, D0 = (n, s) => {
128
+ if (["after", "before"].includes(s.type)) {
128
129
  if (n.type === "after")
129
- return [i, n];
130
+ return [s, n];
130
131
  if (n.type === "before")
131
- return [i, { ...n, type: "self" }];
132
+ return [s, { ...n, type: "self" }];
132
133
  }
133
134
  return null;
134
- }, E1 = (n, i) => n.id === i.id && n.type === i.type;
135
- var d0 = Object.defineProperty, g0 = Object.getOwnPropertyDescriptor, D0 = (n, i, t, e) => {
136
- for (var s = e > 1 ? void 0 : e ? g0(i, t) : i, r = n.length - 1, a; r >= 0; r--)
137
- (a = n[r]) && (s = (e ? a(i, t, s) : a(s)) || s);
138
- return e && s && d0(i, t, s), s;
139
- }, C0 = (n, i) => (t, e) => i(t, e, n);
140
- let V = class {
141
- constructor(n) {
135
+ }, x1 = (n, s) => n.id === s.id && n.type === s.type, f0 = () => `${H.generateRandomId(8)}`;
136
+ class B {
137
+ constructor() {
142
138
  // Map<unitID ,<sheetId ,IConditionFormattingRule[]>>
143
- E(this, "_model", /* @__PURE__ */ new Map());
144
- E(this, "_ruleChange$", new s2());
145
- E(this, "$ruleChange", this._ruleChange$.asObservable().pipe(
146
- y2(16),
147
- D2((n) => !!n.length),
148
- // Operations for aggregated conditional formatting
149
- // Adding and then deleting the same conditional format for multiple times will not result in any changes being propagated externally
150
- // When multiple settings are applied to the same conditional format, only the last setting will be propagated externally.
151
- (n) => new q2((i) => {
152
- n.subscribe({
153
- next: (t) => {
154
- const e = (o) => `${o.unitId}_${o.subUnitId}_${o.rule.cfId}`, s = (o) => {
155
- const l = o.findIndex((h) => h.type === "add"), c = o.findIndex((h) => h.type === "delete");
156
- l !== -1 && c !== -1 && c > l && o.splice(l, c - l + 1);
157
- }, r = t.reduce((o, l, c) => {
158
- const h = e(l);
159
- return o[h] || (o[h] = []), o[h].push({ ...l, _index: c }), o;
160
- }, {});
161
- for (const o in r) {
162
- const l = r[o];
163
- l.length >= 2 && s(l);
164
- }
165
- Object.keys(r).reduce((o, l) => {
166
- const c = r[l];
167
- return o.push(...c), o;
168
- }, []).sort((o, l) => o._index - l._index).map((o) => o).forEach((o) => {
169
- i.next(o);
170
- });
171
- },
172
- error: (t) => i.error(t),
173
- complete: () => i.complete()
174
- });
175
- })
176
- ));
177
- this._injector = n;
178
- }
179
- _ensureList(n, i) {
180
- let t = this.getSubunitRules(n, i);
181
- if (!t) {
182
- t = [];
183
- let e = this._model.get(n);
184
- e || (e = /* @__PURE__ */ new Map(), this._model.set(n, e)), e.set(i, t);
139
+ m(this, "_model", /* @__PURE__ */ new Map());
140
+ m(this, "_ruleChange$", new i2());
141
+ m(this, "$ruleChange", this._ruleChange$.asObservable());
142
+ }
143
+ _ensureList(s, t) {
144
+ let e = this.getSubunitRules(s, t);
145
+ if (!e) {
146
+ e = [];
147
+ let r = this._model.get(s);
148
+ r || (r = /* @__PURE__ */ new Map(), this._model.set(s, r)), r.set(t, e);
185
149
  }
186
- return t;
150
+ return e;
187
151
  }
188
- getRule(n, i, t) {
189
- const e = this.getSubunitRules(n, i);
190
- return e ? e.find((s) => s.cfId === t) : null;
152
+ getRule(s, t, e) {
153
+ const r = this.getSubunitRules(s, t);
154
+ return r ? r.find((i) => i.cfId === e) : null;
191
155
  }
192
- getUnitRules(n) {
193
- return this._model.get(n) || null;
156
+ getUnitRules(s) {
157
+ return this._model.get(s) || null;
194
158
  }
195
- getSubunitRules(n, i) {
196
- var e;
197
- return ((e = this._model.get(n)) == null ? void 0 : e.get(i)) || null;
159
+ getSubunitRules(s, t) {
160
+ var r;
161
+ return ((r = this._model.get(s)) == null ? void 0 : r.get(t)) || null;
198
162
  }
199
- deleteRule(n, i, t) {
200
- const e = this.getSubunitRules(n, i);
201
- if (e) {
202
- const s = e.findIndex((a) => a.cfId === t), r = e[s];
203
- r && (e.splice(s, 1), this._ruleChange$.next({ rule: r, subUnitId: i, unitId: n, type: "delete" }));
163
+ deleteRule(s, t, e) {
164
+ const r = this.getSubunitRules(s, t);
165
+ if (r) {
166
+ const i = r.findIndex((u) => u.cfId === e), a = r[i];
167
+ a && (r.splice(i, 1), this._ruleChange$.next({ rule: a, subUnitId: t, unitId: s, type: "delete" }));
204
168
  }
205
169
  }
206
- setRule(n, i, t, e) {
207
- const r = this._ensureList(n, i).find((a) => a.cfId === e);
208
- if (r) {
209
- const a = Y.deepClone(r);
210
- Object.assign(r, t), this._ruleChange$.next({ rule: r, subUnitId: i, unitId: n, type: "set", oldRule: a });
170
+ setRule(s, t, e, r) {
171
+ const a = this._ensureList(s, t).find((u) => u.cfId === r);
172
+ if (a) {
173
+ const u = H.deepClone(a);
174
+ Object.assign(a, e), this._ruleChange$.next({ rule: a, subUnitId: t, unitId: s, type: "set", oldRule: u });
211
175
  }
212
176
  }
213
- addRule(n, i, t) {
214
- const e = this._ensureList(n, i);
215
- e.find((r) => r.cfId === t.cfId) || e.unshift(t), this._ruleChange$.next({ rule: t, subUnitId: i, unitId: n, type: "add" });
177
+ addRule(s, t, e) {
178
+ const r = this._ensureList(s, t);
179
+ r.find((a) => a.cfId === e.cfId) || r.unshift(e), this._ruleChange$.next({ rule: e, subUnitId: t, unitId: s, type: "add" });
216
180
  }
217
181
  /**
218
182
  * example [1,2,3,4,5,6],if you move behind 5 to 2, then cfId=5,targetId=2.
219
183
  * if targetId does not exist, it defaults to top
220
184
  */
221
- moveRulePriority(n, i, t, e) {
222
- const s = this._ensureList(n, i), r = j(t, s, (l) => l.cfId), a = j(e, s, (l) => l.cfId);
223
- if (a === null || r === null || a === r)
185
+ moveRulePriority(s, t, e, r) {
186
+ const i = this._ensureList(s, t), a = W(e, i, (o) => o.cfId), u = W(r, i, (o) => o.cfId);
187
+ if (u === null || a === null || u === a)
224
188
  return;
225
- const o = s[r];
226
- o && (c0(t, e, s, (l) => l.cfId), this._ruleChange$.next({ rule: o, subUnitId: i, unitId: n, type: "sort" }));
227
- }
228
- createCfId(n, i) {
229
- return l0();
230
- }
231
- deleteUnitId(n) {
232
- this._model.delete(n);
233
- }
234
- };
235
- V = D0([
236
- C0(0, M(o2))
237
- ], V);
238
- class c2 {
239
- constructor() {
240
- // Map<unitID ,<sheetId ,ObjectMatrix>>
241
- E(this, "_model", /* @__PURE__ */ new Map());
242
- E(this, "_markDirty$", new s2());
243
- E(this, "markDirty$", this._markDirty$.asObservable());
244
- }
245
- _ensureMatrix(i, t) {
246
- let e = this.getMatrix(i, t);
247
- if (!e) {
248
- e = new I();
249
- let s = this._model.get(i);
250
- s || (s = /* @__PURE__ */ new Map(), this._model.set(i, s)), s.set(t, e);
251
- }
252
- return e;
253
- }
254
- getMatrix(i, t) {
255
- var e;
256
- return (e = this._model.get(i)) == null ? void 0 : e.get(t);
257
- }
258
- getCellCf(i, t, e, s, r) {
259
- const a = r != null ? r : this.getMatrix(i, t);
260
- return a ? a.getValue(e, s) : null;
261
- }
262
- setCellCfRuleCache(i, t, e, s, r, a) {
263
- const l = this._ensureMatrix(i, t).getValue(e, s), c = l == null ? void 0 : l.cfList.find((h) => h.cfId === r);
264
- c && (c.ruleCache = a, c.isDirty = !1);
265
- }
266
- deleteCellCf(i, t, e, s, r, a) {
267
- const o = a != null ? a : this.getMatrix(i, t);
268
- if (o) {
269
- const l = o.getValue(e, s);
270
- if (l) {
271
- const c = l.cfList, h = c.findIndex((u) => u.cfId === r);
272
- h > -1 && c.splice(h, 1), c.length || o.realDeleteValue(e, s);
273
- }
274
- }
189
+ const l = i[a];
190
+ l && (g0(e, r, i, (o) => o.cfId), this._ruleChange$.next({ rule: l, subUnitId: t, unitId: s, type: "sort" }));
275
191
  }
276
- pushCellCf(i, t, e, s, r) {
277
- const a = this._ensureMatrix(i, t);
278
- let o = a.getValue(e, s);
279
- if (!o)
280
- o = { cfList: [{ cfId: r, isDirty: !0 }] };
281
- else {
282
- const l = o.cfList;
283
- if (l.findIndex((h) => h.cfId === r) > -1)
284
- return;
285
- l.push({ cfId: r, isDirty: !0 });
286
- }
287
- a.setValue(e, s, o);
288
- }
289
- sortCellCf(i, t, e, s, r) {
290
- const a = this.getCellCf(i, t, e, s);
291
- if (a) {
292
- const o = a.cfList.map((l) => {
293
- const c = r.get(l.cfId);
294
- return c === void 0 ? null : { ...l, priority: c };
295
- }).filter((l) => !!l).sort((l, c) => l.priority - c.priority);
296
- a.cfList = o;
297
- }
192
+ createCfId(s, t) {
193
+ return f0();
298
194
  }
299
- markRuleDirty(i, t, e, s, r) {
300
- const a = (o, l) => {
301
- const c = this.getCellCf(i, t, o, l);
302
- if (c) {
303
- const h = c.cfList.find((u) => u.cfId === e.cfId);
304
- h && (h.isDirty = !0);
305
- }
306
- };
307
- s !== void 0 && r !== void 0 ? (a(s, r), this._markDirty$.next({ rule: e, unitId: i, subUnitId: t })) : (e.ranges.forEach((o) => {
308
- R.foreach(o, (l, c) => {
309
- a(l, c);
310
- });
311
- }), this._markDirty$.next({ rule: e, unitId: i, subUnitId: t }));
312
- }
313
- }
314
- const f0 = {
315
- mistake: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Ccircle%20cx%3D%229.99999%22%20cy%3D%2210%22%20r%3D%227.03704%22%20fill%3D%22%23FE4B4B%22%2F%3E%0A%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M6.87359%206.87332C6.6146%207.13231%206.6146%207.55221%206.87359%207.8112L9.062%209.99961L6.87356%2012.188C6.61457%2012.447%206.61457%2012.8669%206.87356%2013.1259C7.13255%2013.3849%207.55245%2013.3849%207.81144%2013.1259L9.99987%2010.9375L12.1882%2013.1258C12.4472%2013.3848%2012.8671%2013.3848%2013.1261%2013.1258C13.3851%2012.8669%2013.3851%2012.447%2013.1261%2012.188L10.9378%209.99961L13.1261%207.81127C13.3851%207.55228%2013.3851%207.13238%2013.1261%206.87339C12.8671%206.61441%2012.4472%206.61441%2012.1882%206.87339L9.99987%209.06173L7.81147%206.87332C7.55248%206.61433%207.13257%206.61433%206.87359%206.87332Z%22%20fill%3D%22%23FFFFFF%22%2F%3E%0A%3C%2Fsvg%3E%0A",
316
- warn: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Ccircle%20cx%3D%229.99999%22%20cy%3D%2210%22%20r%3D%227.03704%22%20fill%3D%22%23FFBD37%22%2F%3E%0A%3Cpath%20d%3D%22M9.16817%206.67735C9.16646%206.61745%209.1656%206.5875%209.16653%206.56236C9.18103%206.16817%209.49136%205.84883%209.88497%205.82306C9.91008%205.82141%209.94004%205.82141%209.99996%205.82141V5.82141C10.0599%205.82141%2010.0899%205.82141%2010.115%205.82306C10.5086%205.84883%2010.8189%206.16817%2010.8334%206.56236C10.8343%206.5875%2010.8335%206.61745%2010.8318%206.67735L10.7043%2011.131C10.6934%2011.5121%2010.3812%2011.8154%209.99995%2011.8154V11.8154C9.61866%2011.8154%209.30655%2011.5121%209.29564%2011.131L9.16817%206.67735Z%22%20fill%3D%22%23FFFFFF%22%2F%3E%0A%3Crect%20x%3D%229.31488%22%20y%3D%2212.8086%22%20width%3D%221.37006%22%20height%3D%221.37006%22%20rx%3D%220.685032%22%20fill%3D%22%23FFFFFF%22%2F%3E%0A%3C%2Fsvg%3E%0A",
317
- correct: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20d%3D%22M17.037%2010C17.037%2013.8865%2013.8864%2017.0371%209.99999%2017.0371C6.11354%2017.0371%202.96295%2013.8865%202.96295%2010C2.96295%206.1136%206.11354%202.96301%209.99999%202.96301C13.8864%202.96301%2017.037%206.1136%2017.037%2010Z%22%20fill%3D%22%2359D01E%22%2F%3E%0A%3Cpath%20d%3D%22M13.9239%207.17477C13.6638%206.91472%2013.2422%206.91472%2012.9821%207.17477L8.74433%2011.4126L7.01786%209.6861C6.75781%209.42606%206.33619%209.42606%206.07614%209.6861C5.81609%209.94615%205.81609%2010.3678%206.07614%2010.6278L8.27349%2012.8252C8.53354%2013.0852%208.95516%2013.0852%209.21521%2012.8252L9.2195%2012.8209L13.9239%208.1165C14.1839%207.85645%2014.1839%207.43482%2013.9239%207.17477Z%22%20fill%3D%22%23FFFFFF%22%2F%3E%0A%3C%2Fsvg%3E%0A"
318
- }, m0 = {
319
- starEmpty: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20d%3D%22M10.3437%203.3312L11.6861%206.67412C11.8451%207.0699%2012.2165%207.33978%2012.6421%207.36863L16.2362%207.61233C16.5693%207.63492%2016.7048%208.05202%2016.4486%208.26608L13.6841%2010.5758C13.3568%2010.8493%2013.215%2011.2859%2013.319%2011.6996L14.1979%2015.1931C14.2793%2015.5168%2013.9245%2015.7746%2013.6418%2015.5971L10.5908%2013.6817C10.2296%2013.4549%209.77045%2013.4549%209.40924%2013.6817L6.35828%2015.5971C6.07553%2015.7746%205.72072%2015.5168%205.80217%2015.1931L6.68105%2011.6996C6.7851%2011.2859%206.64322%2010.8493%206.31592%2010.5758L3.55145%208.26607C3.29525%208.05202%203.43078%207.63492%203.76386%207.61233L7.358%207.36863C7.78352%207.33978%208.15498%207.0699%208.31391%206.67412L9.65633%203.3312C9.78074%203.0214%2010.2193%203.0214%2010.3437%203.3312Z%22%20fill%3D%22%23fff%22%20stroke%3D%22%23FFBD37%22%20stroke-width%3D%220.740741%22%2F%3E%0A%3C%2Fsvg%3E%0A",
320
- starIncomplete: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cg%20clip-path%3D%22url(%23clip0_613_177)%22%3E%0A%3Cmask%20id%3D%22mask0_613_177%22%20style%3D%22mask-type%3Aalpha%22%20maskUnits%3D%22userSpaceOnUse%22%20x%3D%2210%22%20y%3D%220%22%20width%3D%2210%22%20height%3D%2220%22%3E%0A%3Crect%20x%3D%2210.3704%22%20y%3D%220.37037%22%20width%3D%229.25926%22%20height%3D%2219.2593%22%20fill%3D%22%23C4C4C4%22%20stroke%3D%22%23F7D564%22%20stroke-width%3D%220.740741%22%2F%3E%0A%3C%2Fmask%3E%0A%3Cg%20mask%3D%22url(%23mask0_613_177)%22%3E%0A%3Cpath%20d%3D%22M10.3437%203.3312L11.6861%206.67412C11.845%207.0699%2012.2165%207.33978%2012.642%207.36863L16.2361%207.61233C16.5692%207.63492%2016.7047%208.05202%2016.4485%208.26608L13.6841%2010.5758C13.3568%2010.8493%2013.2149%2011.2859%2013.3189%2011.6996L14.1978%2015.1931C14.2793%2015.5168%2013.9245%2015.7746%2013.6417%2015.5971L10.5908%2013.6817C10.2295%2013.4549%209.77039%2013.4549%209.40918%2013.6817L6.35822%2015.5971C6.07547%2015.7746%205.72066%2015.5168%205.80211%2015.1931L6.68098%2011.6996C6.78504%2011.2859%206.64316%2010.8493%206.31586%2010.5758L3.55139%208.26607C3.29519%208.05202%203.43072%207.63492%203.7638%207.61233L7.35793%207.36863C7.78346%207.33978%208.15491%207.0699%208.31385%206.67412L9.65627%203.3312C9.78068%203.0214%2010.2192%203.0214%2010.3437%203.3312Z%22%20fill%3D%22%23fff%22%20stroke%3D%22%23FFBD37%22%20stroke-width%3D%220.740741%22%2F%3E%0A%3C%2Fg%3E%0A%3Cmask%20id%3D%22mask1_613_177%22%20style%3D%22mask-type%3Aalpha%22%20maskUnits%3D%22userSpaceOnUse%22%20x%3D%220%22%20y%3D%220%22%20width%3D%2210%22%20height%3D%2220%22%3E%0A%3Crect%20width%3D%2210%22%20height%3D%2220%22%20fill%3D%22%23C4C4C4%22%2F%3E%0A%3C%2Fmask%3E%0A%3Cg%20mask%3D%22url(%23mask1_613_177)%22%3E%0A%3Cpath%20d%3D%22M10.3437%203.3312L11.6861%206.67412C11.845%207.0699%2012.2165%207.33978%2012.642%207.36863L16.2361%207.61233C16.5692%207.63492%2016.7047%208.05202%2016.4485%208.26608L13.6841%2010.5758C13.3568%2010.8493%2013.2149%2011.2859%2013.3189%2011.6996L14.1978%2015.1931C14.2793%2015.5168%2013.9245%2015.7746%2013.6417%2015.5971L10.5908%2013.6817C10.2295%2013.4549%209.77039%2013.4549%209.40918%2013.6817L6.35822%2015.5971C6.07547%2015.7746%205.72066%2015.5168%205.80211%2015.1931L6.68098%2011.6996C6.78504%2011.2859%206.64316%2010.8493%206.31586%2010.5758L3.55139%208.26607C3.29519%208.05202%203.43072%207.63492%203.7638%207.61233L7.35793%207.36863C7.78346%207.33978%208.15491%207.0699%208.31385%206.67412L9.65627%203.3312C9.78068%203.0214%2010.2192%203.0214%2010.3437%203.3312Z%22%20fill%3D%22%23FFBD37%22%20stroke%3D%22%23FFBD37%22%20stroke-width%3D%220.740741%22%2F%3E%0A%3C%2Fg%3E%0A%3C%2Fg%3E%0A%3Cdefs%3E%0A%3CclipPath%20id%3D%22clip0_613_177%22%3E%0A%3Crect%20width%3D%2220%22%20height%3D%2220%22%20fill%3D%22white%22%2F%3E%0A%3C%2FclipPath%3E%0A%3C%2Fdefs%3E%0A%3C%2Fsvg%3E%0A",
321
- starFull: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20d%3D%22M10.3437%203.3312L11.6861%206.67412C11.8451%207.0699%2012.2165%207.33978%2012.6421%207.36863L16.2362%207.61233C16.5693%207.63492%2016.7048%208.05202%2016.4486%208.26608L13.6841%2010.5758C13.3568%2010.8493%2013.215%2011.2859%2013.319%2011.6996L14.1979%2015.1931C14.2793%2015.5168%2013.9245%2015.7746%2013.6418%2015.5971L10.5908%2013.6817C10.2296%2013.4549%209.77045%2013.4549%209.40924%2013.6817L6.35828%2015.5971C6.07553%2015.7746%205.72072%2015.5168%205.80217%2015.1931L6.68105%2011.6996C6.7851%2011.2859%206.64322%2010.8493%206.31592%2010.5758L3.55145%208.26607C3.29525%208.05202%203.43078%207.63492%203.76386%207.61233L7.358%207.36863C7.78352%207.33978%208.15498%207.0699%208.31391%206.67412L9.65633%203.3312C9.78074%203.0214%2010.2193%203.0214%2010.3437%203.3312Z%22%20fill%3D%22%23FFBD37%22%20stroke%3D%22%23FFBD37%22%20stroke-width%3D%220.740741%22%2F%3E%0A%3C%2Fsvg%3E%0A"
322
- }, F0 = {
323
- progress0: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Ccircle%20cx%3D%2210%22%20cy%3D%229.99993%22%20r%3D%226.66667%22%20stroke%3D%22%237A7A7A%22%20stroke-width%3D%220.740741%22%2F%3E%0A%3C%2Fsvg%3E%0A",
324
- progress25: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Ccircle%20cx%3D%2210%22%20cy%3D%229.99993%22%20r%3D%226.66667%22%20stroke%3D%22%237A7A7A%22%20stroke-width%3D%220.740741%22%2F%3E%0A%3Cpath%20d%3D%22M16.2963%209.99991C16.2963%209.17307%2016.1335%208.35432%2015.8171%207.59042C15.5006%206.82652%2015.0369%206.13242%2014.4522%205.54776C13.8675%204.96309%2013.1734%204.49931%2012.4095%204.18289C11.6456%203.86647%2010.8269%203.70361%2010%203.70361L10%209.99991H16.2963Z%22%20fill%3D%22%237A7A7A%22%2F%3E%0A%3C%2Fsvg%3E%0A",
325
- progress50: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Ccircle%20cx%3D%2210%22%20cy%3D%229.99993%22%20r%3D%226.66667%22%20stroke%3D%22%237A7A7A%22%20stroke-width%3D%220.740741%22%2F%3E%0A%3Cpath%20d%3D%22M10%2016.2962C11.6699%2016.2962%2013.2714%2015.6328%2014.4522%2014.4521C15.633%2013.2713%2016.2963%2011.6698%2016.2963%209.99991C16.2963%208.33003%2015.633%206.72854%2014.4522%205.54776C13.2714%204.36697%2011.6699%203.70361%2010%203.70361L10%209.99991L10%2016.2962Z%22%20fill%3D%22%237A7A7A%22%2F%3E%0A%3C%2Fsvg%3E%0A",
326
- progress75: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Ccircle%20cx%3D%2210%22%20cy%3D%229.99993%22%20r%3D%226.66667%22%20stroke%3D%22%237A7A7A%22%20stroke-width%3D%220.740741%22%2F%3E%0A%3Cpath%20d%3D%22M3.70374%209.99991C3.70374%2011.2452%204.07301%2012.4625%204.76485%2013.4979C5.4567%2014.5334%206.44005%2015.3404%207.59054%2015.8169C8.74104%2016.2935%2010.007%2016.4182%2011.2284%2016.1752C12.4497%2015.9323%2013.5716%2015.3326%2014.4522%2014.4521C15.3327%2013.5715%2015.9324%2012.4496%2016.1753%2011.2283C16.4183%2010.0069%2016.2936%208.74092%2015.8171%207.59042C15.3405%206.43992%2014.5335%205.45658%2013.4981%204.76473C12.4626%204.07288%2011.2453%203.70361%2010%203.70361L10%209.99991L3.70374%209.99991Z%22%20fill%3D%22%237A7A7A%22%2F%3E%0A%3C%2Fsvg%3E%0A",
327
- progress100: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Ccircle%20cx%3D%2210%22%20cy%3D%229.99993%22%20r%3D%226.66667%22%20stroke%3D%22%237A7A7A%22%20stroke-width%3D%220.740741%22%2F%3E%0A%3Ccircle%20cx%3D%2210%22%20cy%3D%229.99991%22%20r%3D%226.2963%22%20fill%3D%22%237A7A7A%22%2F%3E%0A%3C%2Fsvg%3E%0A"
328
- }, w0 = {
329
- signal0: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Crect%20x%3D%2214.4764%22%20y%3D%222.98926%22%20width%3D%222.3%22%20height%3D%2214.0597%22%20rx%3D%220.5%22%20fill%3D%22%23E5E5E5%22%2F%3E%0A%3Crect%20x%3D%2210.7255%22%20y%3D%225.93921%22%20width%3D%222.3%22%20height%3D%2211.1096%22%20rx%3D%220.5%22%20fill%3D%22%23E5E5E5%22%2F%3E%0A%3Crect%20x%3D%226.97455%22%20y%3D%229.70435%22%20width%3D%222.3%22%20height%3D%227.3443%22%20rx%3D%220.5%22%20fill%3D%22%23E5E5E5%22%2F%3E%0A%3Crect%20x%3D%223.22363%22%20y%3D%2213.3302%22%20width%3D%222.3%22%20height%3D%223.71851%22%20rx%3D%220.5%22%20fill%3D%22%23E5E5E5%22%2F%3E%0A%3C%2Fsvg%3E%0A",
330
- signal25: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Crect%20x%3D%2214.4764%22%20y%3D%222.98926%22%20width%3D%222.3%22%20height%3D%2214.0597%22%20rx%3D%220.5%22%20fill%3D%22%23E5E5E5%22%2F%3E%0A%3Crect%20x%3D%2210.7255%22%20y%3D%225.93921%22%20width%3D%222.3%22%20height%3D%2211.1096%22%20rx%3D%220.5%22%20fill%3D%22%23E5E5E5%22%2F%3E%0A%3Crect%20x%3D%226.97455%22%20y%3D%229.70435%22%20width%3D%222.3%22%20height%3D%227.3443%22%20rx%3D%220.5%22%20fill%3D%22%23E5E5E5%22%2F%3E%0A%3Crect%20x%3D%223.22363%22%20y%3D%2213.3302%22%20width%3D%222.3%22%20height%3D%223.71851%22%20rx%3D%220.5%22%20fill%3D%22%230493EE%22%2F%3E%0A%3C%2Fsvg%3E%0A",
331
- signal50: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Crect%20x%3D%2214.4764%22%20y%3D%222.98926%22%20width%3D%222.3%22%20height%3D%2214.0597%22%20rx%3D%220.5%22%20fill%3D%22%23E5E5E5%22%2F%3E%0A%3Crect%20x%3D%2210.7255%22%20y%3D%225.93921%22%20width%3D%222.3%22%20height%3D%2211.1096%22%20rx%3D%220.5%22%20fill%3D%22%23E5E5E5%22%2F%3E%0A%3Crect%20x%3D%226.97455%22%20y%3D%229.70435%22%20width%3D%222.3%22%20height%3D%227.3443%22%20rx%3D%220.5%22%20fill%3D%22%230493EE%22%2F%3E%0A%3Crect%20x%3D%223.22363%22%20y%3D%2213.3302%22%20width%3D%222.3%22%20height%3D%223.71851%22%20rx%3D%220.5%22%20fill%3D%22%230493EE%22%2F%3E%0A%3C%2Fsvg%3E%0A",
332
- signal75: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Crect%20x%3D%2214.4764%22%20y%3D%222.98926%22%20width%3D%222.3%22%20height%3D%2214.0597%22%20rx%3D%220.5%22%20fill%3D%22%23E5E5E5%22%2F%3E%0A%3Crect%20x%3D%2210.7255%22%20y%3D%225.93921%22%20width%3D%222.3%22%20height%3D%2211.1096%22%20rx%3D%220.5%22%20fill%3D%22%230493EE%22%2F%3E%0A%3Crect%20x%3D%226.97455%22%20y%3D%229.70435%22%20width%3D%222.3%22%20height%3D%227.3443%22%20rx%3D%220.5%22%20fill%3D%22%230493EE%22%2F%3E%0A%3Crect%20x%3D%223.22363%22%20y%3D%2213.3302%22%20width%3D%222.3%22%20height%3D%223.71851%22%20rx%3D%220.5%22%20fill%3D%22%230493EE%22%2F%3E%0A%3C%2Fsvg%3E%0A",
333
- signal100: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Crect%20x%3D%2214.4764%22%20y%3D%222.98926%22%20width%3D%222.3%22%20height%3D%2214.0597%22%20rx%3D%220.5%22%20fill%3D%22%230493EE%22%2F%3E%0A%3Crect%20x%3D%2210.7255%22%20y%3D%225.93933%22%20width%3D%222.3%22%20height%3D%2211.1096%22%20rx%3D%220.5%22%20fill%3D%22%230493EE%22%2F%3E%0A%3Crect%20x%3D%226.97455%22%20y%3D%229.70447%22%20width%3D%222.3%22%20height%3D%227.3443%22%20rx%3D%220.5%22%20fill%3D%22%230493EE%22%2F%3E%0A%3Crect%20x%3D%223.22363%22%20y%3D%2213.3302%22%20width%3D%222.3%22%20height%3D%223.71851%22%20rx%3D%220.5%22%20fill%3D%22%230493EE%22%2F%3E%0A%3C%2Fsvg%3E%0A"
334
- }, E0 = {
335
- guffaw: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20d%3D%22M16.887%2010C16.887%2013.8037%2013.8036%2016.8871%209.99999%2016.8871C6.19638%2016.8871%203.11295%2013.8037%203.11295%2010C3.11295%206.19644%206.19638%203.11301%209.99999%203.11301C13.8036%203.11301%2016.887%206.19644%2016.887%2010Z%22%20fill%3D%22%23FFBD37%22%20stroke%3D%22%238F5F00%22%20stroke-width%3D%220.3%22%2F%3E%0A%3Crect%20x%3D%227.40741%22%20y%3D%227.40735%22%20width%3D%221.48148%22%20height%3D%221.48148%22%20rx%3D%220.740741%22%20fill%3D%22%238F5F00%22%2F%3E%0A%3Crect%20x%3D%2211.1111%22%20y%3D%227.40735%22%20width%3D%221.48148%22%20height%3D%221.48148%22%20rx%3D%220.740741%22%20fill%3D%22%238F5F00%22%2F%3E%0A%3Cpath%20d%3D%22M12.5355%2013.5821C13.0482%2013.1841%2013.3951%2012.6107%2013.5405%2012.0327C13.5934%2011.8226%2013.5051%2011.6349%2013.3518%2011.5331C13.2036%2011.4346%2013.0031%2011.4203%2012.8265%2011.5131C11.0615%2012.4407%208.94609%2012.4427%207.1828%2011.513C7.00629%2011.4199%206.80602%2011.4343%206.65798%2011.5329C6.50518%2011.6346%206.41701%2011.8217%206.46844%2012.0312C6.61029%2012.609%206.95079%2013.1833%207.46449%2013.5821C8.14361%2014.1093%209.05608%2014.3999%2010%2014.3999C10.9439%2014.3999%2011.8564%2014.1093%2012.5355%2013.5821Z%22%20fill%3D%22white%22%20stroke%3D%22%238F5F00%22%20stroke-width%3D%220.4%22%2F%3E%0A%3C%2Fsvg%3E%0A",
336
- smile: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Ccircle%20cx%3D%229.99999%22%20cy%3D%2210%22%20r%3D%226.88704%22%20fill%3D%22%23FFBD37%22%20stroke%3D%22%238F5F00%22%20stroke-width%3D%220.3%22%2F%3E%0A%3Crect%20x%3D%227.40741%22%20y%3D%227.40735%22%20width%3D%221.48148%22%20height%3D%221.48148%22%20rx%3D%220.740741%22%20fill%3D%22%238F5F00%22%2F%3E%0A%3Crect%20x%3D%2211.1111%22%20y%3D%227.40735%22%20width%3D%221.48148%22%20height%3D%221.48148%22%20rx%3D%220.740741%22%20fill%3D%22%238F5F00%22%2F%3E%0A%3Cpath%20d%3D%22M7.03705%2011.8518C7.03705%2011.8518%207.77779%2013.7037%2010%2013.7037C12.2222%2013.7037%2012.963%2011.8518%2012.963%2011.8518%22%20stroke%3D%22%238F5F00%22%20stroke-width%3D%220.962963%22%20stroke-linecap%3D%22round%22%2F%3E%0A%3C%2Fsvg%3E%0A",
337
- noninductive: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Ccircle%20cx%3D%229.99999%22%20cy%3D%2210%22%20r%3D%226.88704%22%20fill%3D%22%23FFBD37%22%20stroke%3D%22%238F5F00%22%20stroke-width%3D%220.3%22%2F%3E%0A%3Crect%20x%3D%227.40741%22%20y%3D%227.9259%22%20width%3D%221.48148%22%20height%3D%221.11111%22%20rx%3D%220.555556%22%20fill%3D%22%238F5F00%22%2F%3E%0A%3Crect%20x%3D%2211.1111%22%20y%3D%227.9259%22%20width%3D%221.48148%22%20height%3D%221.11111%22%20rx%3D%220.555556%22%20fill%3D%22%238F5F00%22%2F%3E%0A%3Cpath%20d%3D%22M7.03705%2012.5927C7.03705%2012.5927%208.14816%2012.5927%2010.3704%2012.5927C12.5926%2012.5927%2012.963%2012.5927%2012.963%2012.5927%22%20stroke%3D%22%238F5F00%22%20stroke-width%3D%220.962963%22%20stroke-linecap%3D%22round%22%2F%3E%0A%3C%2Fsvg%3E%0A",
338
- dissatisfied: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Ccircle%20cx%3D%229.99999%22%20cy%3D%2210%22%20r%3D%226.88704%22%20fill%3D%22%23FFBD37%22%20stroke%3D%22%238F5F00%22%20stroke-width%3D%220.3%22%2F%3E%0A%3Crect%20x%3D%227.40741%22%20y%3D%227.40735%22%20width%3D%221.48148%22%20height%3D%221.48148%22%20rx%3D%220.740741%22%20fill%3D%22%238F5F00%22%2F%3E%0A%3Crect%20x%3D%2211.1111%22%20y%3D%227.40735%22%20width%3D%221.48148%22%20height%3D%221.48148%22%20rx%3D%220.740741%22%20fill%3D%22%238F5F00%22%2F%3E%0A%3Cpath%20d%3D%22M7.03705%2013.7037C7.03705%2013.7037%207.77779%2011.8519%2010%2011.8519C12.2222%2011.8519%2012.963%2013.7037%2012.963%2013.7037%22%20stroke%3D%22%238F5F00%22%20stroke-width%3D%220.962963%22%20stroke-linecap%3D%22round%22%2F%3E%0A%3C%2Fsvg%3E%0A",
339
- impatient: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Ccircle%20cx%3D%229.99999%22%20cy%3D%2210%22%20r%3D%226.88704%22%20fill%3D%22%23FFBD37%22%20stroke%3D%22%238F5F00%22%20stroke-width%3D%220.3%22%2F%3E%0A%3Crect%20x%3D%227.40741%22%20y%3D%227.40735%22%20width%3D%221.48148%22%20height%3D%221.48148%22%20rx%3D%220.740741%22%20fill%3D%22%238F5F00%22%2F%3E%0A%3Crect%20x%3D%2211.1111%22%20y%3D%227.40735%22%20width%3D%221.48148%22%20height%3D%221.48148%22%20rx%3D%220.740741%22%20fill%3D%22%238F5F00%22%2F%3E%0A%3Cpath%20d%3D%22M7.47573%2011.731C6.96306%2012.129%206.61613%2012.7024%206.47071%2013.2804C6.41784%2013.4905%206.50617%2013.6782%206.65942%2013.78C6.80761%2013.8785%207.00813%2013.8928%207.18477%2013.8C8.9498%2012.8724%2011.0652%2012.8704%2012.8285%2013.8002C13.005%2013.8932%2013.2052%2013.8788%2013.3533%2013.7802C13.5061%2013.6785%2013.5942%2013.4914%2013.5428%2013.2819C13.401%2012.7041%2013.0605%2012.1298%2012.5468%2011.731C11.8676%2011.2038%2010.9552%2010.9132%2010.0112%2010.9132C9.06732%2010.9132%208.15485%2011.2038%207.47573%2011.731Z%22%20fill%3D%22white%22%20stroke%3D%22%238F5F00%22%20stroke-width%3D%220.4%22%2F%3E%0A%3C%2Fsvg%3E%0A"
340
- }, v0 = {
341
- "down-red": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M8.90467%203.99244C8.84611%204.1338%208.84611%204.31301%208.84611%204.67143V13.716L5.92068%2010.7906C5.66724%2010.5371%205.54052%2010.4104%205.39916%2010.3519C5.21067%2010.2738%204.9989%2010.2738%204.81041%2010.3519C4.66905%2010.4104%204.54233%2010.5371%204.28889%2010.7906C4.03545%2011.044%203.90873%2011.1707%203.85018%2011.3121C3.77211%2011.5006%203.77211%2011.7124%203.85018%2011.9008C3.90873%2012.0422%204.03545%2012.1689%204.28889%2012.4224L9.03476%2017.1682C9.07839%2017.2127%209.12737%2017.2617%209.18231%2017.3166L9.18239%2017.3167L9.18241%2017.3167C9.40545%2017.5398%209.53035%2017.6647%209.65346%2017.7313C9.67085%2017.7408%209.6882%2017.7492%209.70577%2017.7564C9.89425%2017.8345%2010.106%2017.8345%2010.2945%2017.7564C10.4359%2017.6979%2010.5626%2017.5712%2010.816%2017.3177C10.8986%2017.2352%2010.9677%2017.1661%2011.0253%2017.1056L15.7095%2012.4214L15.7095%2012.4213C15.963%2012.1679%2016.0897%2012.0412%2016.1482%2011.8998C16.2263%2011.7114%2016.2263%2011.4996%2016.1482%2011.3111C16.0897%2011.1697%2015.963%2011.043%2015.7095%2010.7896C15.4561%2010.5361%2015.3294%2010.4094%2015.188%2010.3509C14.9995%2010.2728%2014.7878%2010.2728%2014.5993%2010.3509C14.4579%2010.4094%2014.3312%2010.5361%2014.0778%2010.7896L14.0777%2010.7896L11.1538%2013.7135V4.67142C11.1538%204.31301%2011.1538%204.1338%2011.0953%203.99244C11.0172%203.80395%2010.8674%203.6542%2010.6789%203.57613C10.5376%203.51758%2010.3584%203.51758%209.99996%203.51758C9.64154%203.51758%209.46233%203.51758%209.32097%203.57613C9.13249%203.6542%208.98274%203.80395%208.90467%203.99244Z%22%20fill%3D%22%23FE4B4B%22%2F%3E%0A%3C%2Fsvg%3E%0A",
342
- "right-gold": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M3.32508%2011.7609C3.46644%2011.8194%203.64565%2011.8194%204.00407%2011.8194H13.049L10.1235%2014.745C9.87002%2014.9984%209.7433%2015.1251%209.68475%2015.2665C9.60668%2015.455%209.60668%2015.6668%209.68475%2015.8552C9.7433%2015.9966%209.87002%2016.1233%2010.1235%2016.3768C10.3769%2016.6302%2010.5036%2016.7569%2010.645%2016.8155C10.8335%2016.8935%2011.0452%2016.8935%2011.2337%2016.8155C11.3751%2016.7569%2011.5018%2016.6302%2011.7552%2016.3768L16.5105%2011.6215C16.5524%2011.5803%2016.5983%2011.5344%2016.6493%2011.4834L16.6495%2011.4831C16.8561%2011.2765%2016.9785%2011.1542%2017.0484%2011.0394C17.0648%2011.0128%2017.0782%2010.9866%2017.0893%2010.9599C17.1674%2010.7714%2017.1674%2010.5596%2017.0893%2010.3711C17.0308%2010.2298%2016.904%2010.1031%2016.6506%209.84962C16.5685%209.76752%2016.4997%209.69872%2016.4394%209.64123L11.7542%204.95601C11.5007%204.70257%2011.374%204.57585%2011.2327%204.5173C11.0442%204.43923%2010.8324%204.43923%2010.6439%204.5173C10.5026%204.57585%2010.3758%204.70257%2010.1224%204.95601L10.1224%204.95601C9.86895%205.20945%209.74223%205.33617%209.68368%205.47753C9.60561%205.66601%209.60561%205.87779%209.68368%206.06627C9.74223%206.20764%209.86895%206.33436%2010.1224%206.5878L13.0463%209.51175H4.00407C3.64565%209.51175%203.46644%209.51175%203.32508%209.5703C3.1366%209.64837%202.98685%209.79812%202.90877%209.98661C2.85022%2010.128%202.85022%2010.3072%202.85022%2010.6656C2.85022%2011.024%202.85022%2011.2032%202.90877%2011.3446C2.98685%2011.5331%203.1366%2011.6828%203.32508%2011.7609Z%22%20fill%3D%22%23FFBD37%22%2F%3E%0A%3C%2Fsvg%3E%0A",
343
- "up-green": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M11.0936%2017.3406C11.1522%2017.1992%2011.1522%2017.02%2011.1522%2016.6616V7.61701L14.0776%2010.5424C14.3311%2010.7959%2014.4578%2010.9226%2014.5991%2010.9811C14.7876%2011.0592%2014.9994%2011.0592%2015.1879%2010.9811C15.3292%2010.9226%2015.456%2010.7959%2015.7094%2010.5424C15.9628%2010.289%2016.0896%2010.1623%2016.1481%2010.0209C16.2262%209.83243%2016.2262%209.62066%2016.1481%209.43217C16.0896%209.29081%2015.9628%209.16409%2015.7094%208.91065L10.9645%204.16576C10.9207%204.12105%2010.8714%204.07178%2010.8161%204.01648L10.8159%204.0163C10.5916%203.792%2010.4666%203.66696%2010.3428%203.60058C10.3261%203.59154%2010.3094%203.58358%2010.2925%203.57658C10.104%203.49851%209.89226%203.49851%209.70378%203.57658C9.56242%203.63514%209.4357%203.76186%209.18226%204.0153C9.09955%204.09801%209.03034%204.16722%208.97258%204.22785L4.28878%208.91166C4.03534%209.1651%203.90862%209.29182%203.85006%209.43318C3.77199%209.62166%203.77199%209.83344%203.85006%2010.0219C3.90862%2010.1633%204.03534%2010.29%204.28878%2010.5434C4.54221%2010.7969%204.66893%2010.9236%204.8103%2010.9822C4.99878%2011.0602%205.21056%2011.0602%205.39904%2010.9822C5.5404%2010.9236%205.66712%2010.7969%205.92056%2010.5434L5.92056%2010.5434L8.84449%207.61951V16.6616C8.84449%2017.02%208.84449%2017.1992%208.90305%2017.3406C8.98112%2017.5291%209.13087%2017.6788%209.31935%2017.7569C9.46072%2017.8154%209.63992%2017.8154%209.99834%2017.8154C10.3568%2017.8154%2010.536%2017.8154%2010.6773%2017.7569C10.8658%2017.6788%2011.0156%2017.5291%2011.0936%2017.3406Z%22%20fill%3D%22%2359D01E%22%2F%3E%0A%3C%2Fsvg%3E%0A",
344
- "rightAndDown-gold": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M4.5062%206.72126C4.56476%206.86262%204.69148%206.98934%204.94492%207.24278L11.3404%2013.6382L7.20313%2013.6382C6.84471%2013.6382%206.66551%2013.6382%206.52414%2013.6968C6.33566%2013.7749%206.18591%2013.9246%206.10784%2014.1131C6.04928%2014.2545%206.04928%2014.4337%206.04928%2014.7921C6.04928%2015.1505%206.04928%2015.3297%206.10784%2015.4711C6.18591%2015.6596%206.33566%2015.8093%206.52414%2015.8874C6.66551%2015.9459%206.84471%2015.9459%207.20313%2015.9459L13.9194%2015.9459C13.9805%2015.9465%2014.0484%2015.9465%2014.1243%2015.9465H14.1243C14.4353%2015.9465%2014.6114%2015.9465%2014.7449%2015.9082C14.7659%2015.9023%2014.7859%2015.8954%2014.8052%2015.8874C14.9937%2015.8093%2015.1434%2015.6596%2015.2215%2015.4711C15.2801%2015.3297%2015.2801%2015.1505%2015.2801%2014.7921C15.2801%2014.6767%2015.2801%2014.5799%2015.2781%2014.497L15.2781%207.86957C15.2781%207.51115%2015.2781%207.33194%2015.2195%207.19058C15.1415%207.0021%2014.9917%206.85235%2014.8032%206.77428C14.6619%206.71572%2014.4827%206.71572%2014.1243%206.71572C13.7658%206.71572%2013.5866%206.71572%2013.4453%206.77428C13.2568%206.85235%2013.107%207.0021%2013.029%207.19058C12.9704%207.33194%2012.9704%207.51115%2012.9704%207.86957L12.9704%2012.0047L6.5767%205.61099C6.32326%205.35755%206.19654%205.23083%206.05518%205.17228C5.8667%205.09421%205.65492%205.09421%205.46644%205.17228C5.32508%205.23083%205.19836%205.35755%204.94492%205.61099C4.69148%205.86443%204.56476%205.99115%204.5062%206.13251C4.42813%206.32099%204.42813%206.53277%204.5062%206.72126Z%22%20fill%3D%22%23FFBD37%22%2F%3E%0A%3C%2Fsvg%3E%0A",
345
- "rightAndUp-gold": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M6.05431%2016.1597C6.19567%2016.1012%206.32239%2015.9745%206.57583%2015.721L12.9712%209.32568L12.9712%2013.4626C12.9712%2013.821%2012.9712%2014.0002%2013.0297%2014.1416C13.1078%2014.3301%2013.2576%2014.4798%2013.446%2014.5579C13.5874%2014.6164%2013.7666%2014.6164%2014.125%2014.6164C14.4834%2014.6164%2014.6626%2014.6164%2014.804%2014.5579C14.9925%2014.4798%2015.1422%2014.3301%2015.2203%2014.1416C15.2789%2014.0002%2015.2789%2013.821%2015.2789%2013.4626L15.2789%206.75233C15.2795%206.68972%2015.2795%206.62004%2015.2795%206.54182L15.2795%206.54157C15.2795%206.22585%2015.2795%206.04918%2015.2395%205.91495C15.2339%205.89605%2015.2276%205.878%2015.2203%205.86053C15.1422%205.67204%2014.9925%205.52229%2014.804%205.44422C14.6626%205.38567%2014.4834%205.38567%2014.125%205.38567L14.125%205.38567C14.0075%205.38567%2013.9093%205.38567%2013.8254%205.38773L7.20256%205.38773C6.84414%205.38773%206.66493%205.38773%206.52357%205.44628C6.33509%205.52436%206.18534%205.6741%206.10727%205.86259C6.04871%206.00395%206.04871%206.18315%206.04871%206.54156V6.54157L6.04871%206.54159C6.04871%206.9%206.04871%207.0792%206.10727%207.22056C6.18534%207.40905%206.33509%207.55879%206.52357%207.63687C6.66493%207.69542%206.84414%207.69542%207.20256%207.69542H11.3379L4.94405%2014.0892C4.69061%2014.3427%204.56389%2014.4694%204.50533%2014.6108C4.42726%2014.7992%204.42726%2015.011%204.50533%2015.1995C4.56389%2015.3409%204.69061%2015.4676%204.94405%2015.721C5.19749%2015.9745%205.32421%2016.1012%205.46557%2016.1597C5.65405%2016.2378%205.86583%2016.2378%206.05431%2016.1597Z%22%20fill%3D%22%23FFBD37%22%2F%3E%0A%3C%2Fsvg%3E%0A",
346
- "down-gray": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M8.90467%203.99244C8.84611%204.1338%208.84611%204.31301%208.84611%204.67143V13.716L5.92068%2010.7906C5.66724%2010.5371%205.54052%2010.4104%205.39916%2010.3519C5.21067%2010.2738%204.9989%2010.2738%204.81041%2010.3519C4.66905%2010.4104%204.54233%2010.5371%204.28889%2010.7906C4.03545%2011.044%203.90873%2011.1707%203.85018%2011.3121C3.77211%2011.5006%203.77211%2011.7124%203.85018%2011.9008C3.90873%2012.0422%204.03545%2012.1689%204.28889%2012.4224L9.03476%2017.1682C9.07839%2017.2127%209.12737%2017.2617%209.18231%2017.3166L9.18239%2017.3167L9.18241%2017.3167C9.40545%2017.5398%209.53035%2017.6647%209.65346%2017.7313C9.67085%2017.7408%209.6882%2017.7492%209.70577%2017.7564C9.89425%2017.8345%2010.106%2017.8345%2010.2945%2017.7564C10.4359%2017.6979%2010.5626%2017.5712%2010.816%2017.3177C10.8986%2017.2352%2010.9677%2017.1661%2011.0253%2017.1056L15.7095%2012.4214L15.7095%2012.4213C15.963%2012.1679%2016.0897%2012.0412%2016.1482%2011.8998C16.2263%2011.7114%2016.2263%2011.4996%2016.1482%2011.3111C16.0897%2011.1697%2015.963%2011.043%2015.7095%2010.7896C15.4561%2010.5361%2015.3294%2010.4094%2015.188%2010.3509C14.9995%2010.2728%2014.7878%2010.2728%2014.5993%2010.3509C14.4579%2010.4094%2014.3312%2010.5361%2014.0778%2010.7896L14.0777%2010.7896L11.1538%2013.7135V4.67142C11.1538%204.31301%2011.1538%204.1338%2011.0953%203.99244C11.0172%203.80395%2010.8674%203.6542%2010.6789%203.57613C10.5376%203.51758%2010.3584%203.51758%209.99996%203.51758C9.64154%203.51758%209.46233%203.51758%209.32097%203.57613C9.13249%203.6542%208.98274%203.80395%208.90467%203.99244Z%22%20fill%3D%22%23999999%22%2F%3E%0A%3C%2Fsvg%3E%0A",
347
- "right-gray": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M3.32508%2011.7609C3.46644%2011.8194%203.64565%2011.8194%204.00407%2011.8194H13.049L10.1235%2014.745C9.87002%2014.9984%209.7433%2015.1251%209.68475%2015.2665C9.60668%2015.455%209.60668%2015.6668%209.68475%2015.8552C9.7433%2015.9966%209.87002%2016.1233%2010.1235%2016.3768C10.3769%2016.6302%2010.5036%2016.7569%2010.645%2016.8155C10.8335%2016.8935%2011.0452%2016.8935%2011.2337%2016.8155C11.3751%2016.7569%2011.5018%2016.6302%2011.7552%2016.3768L16.5105%2011.6215C16.5524%2011.5803%2016.5983%2011.5344%2016.6493%2011.4834L16.6495%2011.4831C16.8561%2011.2765%2016.9785%2011.1542%2017.0484%2011.0394C17.0648%2011.0128%2017.0782%2010.9866%2017.0893%2010.9599C17.1674%2010.7714%2017.1674%2010.5596%2017.0893%2010.3711C17.0308%2010.2298%2016.904%2010.1031%2016.6506%209.84962C16.5685%209.76752%2016.4997%209.69872%2016.4394%209.64123L11.7542%204.95601C11.5007%204.70257%2011.374%204.57585%2011.2327%204.5173C11.0442%204.43923%2010.8324%204.43923%2010.6439%204.5173C10.5026%204.57585%2010.3758%204.70257%2010.1224%204.95601L10.1224%204.95601C9.86895%205.20945%209.74223%205.33617%209.68368%205.47753C9.60561%205.66601%209.60561%205.87779%209.68368%206.06627C9.74223%206.20764%209.86895%206.33436%2010.1224%206.5878L13.0463%209.51175H4.00407C3.64565%209.51175%203.46644%209.51175%203.32508%209.5703C3.1366%209.64837%202.98685%209.79812%202.90877%209.98661C2.85022%2010.128%202.85022%2010.3072%202.85022%2010.6656C2.85022%2011.024%202.85022%2011.2032%202.90877%2011.3446C2.98685%2011.5331%203.1366%2011.6828%203.32508%2011.7609Z%22%20fill%3D%22%23999999%22%2F%3E%0A%3C%2Fsvg%3E%0A",
348
- "up-gray": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M11.0936%2017.3406C11.1522%2017.1992%2011.1522%2017.02%2011.1522%2016.6616V7.61701L14.0776%2010.5424C14.3311%2010.7959%2014.4578%2010.9226%2014.5991%2010.9811C14.7876%2011.0592%2014.9994%2011.0592%2015.1879%2010.9811C15.3292%2010.9226%2015.456%2010.7959%2015.7094%2010.5424C15.9628%2010.289%2016.0896%2010.1623%2016.1481%2010.0209C16.2262%209.83243%2016.2262%209.62066%2016.1481%209.43217C16.0896%209.29081%2015.9628%209.16409%2015.7094%208.91065L10.9645%204.16576C10.9207%204.12105%2010.8714%204.07178%2010.8161%204.01648L10.8159%204.0163C10.5916%203.792%2010.4666%203.66696%2010.3428%203.60058C10.3261%203.59154%2010.3094%203.58358%2010.2925%203.57658C10.104%203.49851%209.89226%203.49851%209.70378%203.57658C9.56242%203.63514%209.4357%203.76186%209.18226%204.0153C9.09955%204.09801%209.03034%204.16722%208.97258%204.22785L4.28878%208.91166C4.03534%209.1651%203.90862%209.29182%203.85006%209.43318C3.77199%209.62166%203.77199%209.83344%203.85006%2010.0219C3.90862%2010.1633%204.03534%2010.29%204.28878%2010.5434C4.54221%2010.7969%204.66893%2010.9236%204.8103%2010.9822C4.99878%2011.0602%205.21056%2011.0602%205.39904%2010.9822C5.5404%2010.9236%205.66712%2010.7969%205.92056%2010.5434L5.92056%2010.5434L8.84449%207.61951V16.6616C8.84449%2017.02%208.84449%2017.1992%208.90305%2017.3406C8.98112%2017.5291%209.13087%2017.6788%209.31935%2017.7569C9.46072%2017.8154%209.63992%2017.8154%209.99834%2017.8154C10.3568%2017.8154%2010.536%2017.8154%2010.6773%2017.7569C10.8658%2017.6788%2011.0156%2017.5291%2011.0936%2017.3406Z%22%20fill%3D%22%23999999%22%2F%3E%0A%3C%2Fsvg%3E%0A",
349
- "rightAndDown-gray": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M4.5062%206.72126C4.56476%206.86262%204.69148%206.98934%204.94492%207.24278L11.3404%2013.6382L7.20313%2013.6382C6.84471%2013.6382%206.66551%2013.6382%206.52414%2013.6968C6.33566%2013.7749%206.18591%2013.9246%206.10784%2014.1131C6.04928%2014.2545%206.04928%2014.4337%206.04928%2014.7921C6.04928%2015.1505%206.04928%2015.3297%206.10784%2015.4711C6.18591%2015.6596%206.33566%2015.8093%206.52414%2015.8874C6.66551%2015.9459%206.84471%2015.9459%207.20313%2015.9459L13.9194%2015.9459C13.9805%2015.9465%2014.0484%2015.9465%2014.1243%2015.9465H14.1243C14.4353%2015.9465%2014.6114%2015.9465%2014.7449%2015.9082C14.7659%2015.9023%2014.7859%2015.8954%2014.8052%2015.8874C14.9937%2015.8093%2015.1434%2015.6596%2015.2215%2015.4711C15.2801%2015.3297%2015.2801%2015.1505%2015.2801%2014.7921C15.2801%2014.6767%2015.2801%2014.5799%2015.2781%2014.497L15.2781%207.86957C15.2781%207.51115%2015.2781%207.33194%2015.2195%207.19058C15.1415%207.0021%2014.9917%206.85235%2014.8032%206.77428C14.6619%206.71572%2014.4827%206.71572%2014.1243%206.71572C13.7658%206.71572%2013.5866%206.71572%2013.4453%206.77428C13.2568%206.85235%2013.107%207.0021%2013.029%207.19058C12.9704%207.33194%2012.9704%207.51115%2012.9704%207.86957L12.9704%2012.0047L6.5767%205.61099C6.32326%205.35755%206.19654%205.23083%206.05518%205.17228C5.8667%205.09421%205.65492%205.09421%205.46644%205.17228C5.32508%205.23083%205.19836%205.35755%204.94492%205.61099C4.69148%205.86443%204.56476%205.99115%204.5062%206.13251C4.42813%206.32099%204.42813%206.53277%204.5062%206.72126Z%22%20fill%3D%22%23999999%22%2F%3E%0A%3C%2Fsvg%3E%0A",
350
- "rightAndUp-gray": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M6.05431%2016.1597C6.19567%2016.1012%206.32239%2015.9745%206.57583%2015.721L12.9712%209.32568L12.9712%2013.4626C12.9712%2013.821%2012.9712%2014.0002%2013.0297%2014.1416C13.1078%2014.3301%2013.2576%2014.4798%2013.446%2014.5579C13.5874%2014.6164%2013.7666%2014.6164%2014.125%2014.6164C14.4834%2014.6164%2014.6626%2014.6164%2014.804%2014.5579C14.9925%2014.4798%2015.1422%2014.3301%2015.2203%2014.1416C15.2789%2014.0002%2015.2789%2013.821%2015.2789%2013.4626L15.2789%206.75233C15.2795%206.68972%2015.2795%206.62004%2015.2795%206.54182L15.2795%206.54157C15.2795%206.22585%2015.2795%206.04918%2015.2395%205.91495C15.2339%205.89605%2015.2276%205.878%2015.2203%205.86053C15.1422%205.67204%2014.9925%205.52229%2014.804%205.44422C14.6626%205.38567%2014.4834%205.38567%2014.125%205.38567L14.125%205.38567C14.0075%205.38567%2013.9093%205.38567%2013.8254%205.38773L7.20256%205.38773C6.84414%205.38773%206.66493%205.38773%206.52357%205.44628C6.33509%205.52436%206.18534%205.6741%206.10727%205.86259C6.04871%206.00395%206.04871%206.18315%206.04871%206.54156V6.54157L6.04871%206.54159C6.04871%206.9%206.04871%207.0792%206.10727%207.22056C6.18534%207.40905%206.33509%207.55879%206.52357%207.63687C6.66493%207.69542%206.84414%207.69542%207.20256%207.69542H11.3379L4.94405%2014.0892C4.69061%2014.3427%204.56389%2014.4694%204.50533%2014.6108C4.42726%2014.7992%204.42726%2015.011%204.50533%2015.1995C4.56389%2015.3409%204.69061%2015.4676%204.94405%2015.721C5.19749%2015.9745%205.32421%2016.1012%205.46557%2016.1597C5.65405%2016.2378%205.86583%2016.2378%206.05431%2016.1597Z%22%20fill%3D%22%23999999%22%2F%3E%0A%3C%2Fsvg%3E%0A"
351
- }, p0 = {
352
- cross: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Crect%20x%3D%223.70374%22%20y%3D%228.14795%22%20width%3D%2212.5926%22%20height%3D%223.7037%22%20rx%3D%220.740741%22%20fill%3D%22%23FFBD37%22%2F%3E%0A%3C%2Fsvg%3E%0A",
353
- up: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20d%3D%22M9.44533%205.81157C9.74012%205.47858%2010.2598%205.47858%2010.5546%205.81157L16.2868%2012.2867C16.71%2012.7647%2016.3706%2013.5184%2015.7322%2013.5184H4.26776C3.62933%2013.5184%203.28995%2012.7647%203.71313%2012.2867L9.44533%205.81157Z%22%20fill%3D%22%2359D01E%22%2F%3E%0A%3C%2Fsvg%3E%0A",
354
- down: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20d%3D%22M10.5547%2014.1884C10.2599%2014.5214%209.74019%2014.5214%209.4454%2014.1884L3.71321%207.71335C3.29002%207.23532%203.6294%206.48161%204.26784%206.48161L15.7322%206.48161C16.3707%206.48161%2016.7101%207.23532%2016.2869%207.71335L10.5547%2014.1884Z%22%20fill%3D%22%23FE4B4B%22%2F%3E%0A%3C%2Fsvg%3E%0A",
355
- "rhomboid-red": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20d%3D%22M2.1415%2011.1984C1.8412%2010.9074%201.8412%2010.4256%202.1415%2010.1346L9.48467%203.01785C9.77196%202.73942%2010.2284%202.73942%2010.5157%203.01786L17.8586%2010.1346C18.1589%2010.4256%2018.1589%2010.9074%2017.8586%2011.1984L10.5157%2018.3151C10.2284%2018.5936%209.77196%2018.5936%209.48467%2018.3152L2.1415%2011.1984Z%22%20fill%3D%22%23FE4B4B%22%2F%3E%0A%3C%2Fsvg%3E%0A",
356
- "rhomboid-gold": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20d%3D%22M2.1415%2011.1984C1.8412%2010.9074%201.8412%2010.4256%202.1415%2010.1346L9.48467%203.01785C9.77196%202.73942%2010.2284%202.73942%2010.5157%203.01786L17.8586%2010.1346C18.1589%2010.4256%2018.1589%2010.9074%2017.8586%2011.1984L10.5157%2018.3151C10.2284%2018.5936%209.77196%2018.5936%209.48467%2018.3152L2.1415%2011.1984Z%22%20fill%3D%22%23FFBD37%22%2F%3E%0A%3C%2Fsvg%3E%0A",
357
- "roundness-greed": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Ccircle%20cx%3D%2210%22%20cy%3D%2210.6664%22%20r%3D%227.03704%22%20fill%3D%22%2359D01E%22%2F%3E%0A%3C%2Fsvg%3E%0A",
358
- "roundness-gold": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Ccircle%20cx%3D%2210%22%20cy%3D%2210.6664%22%20r%3D%227.03704%22%20fill%3D%22%23FFBD37%22%2F%3E%0A%3C%2Fsvg%3E%0A",
359
- "roundness-red": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Ccircle%20cx%3D%2210%22%20cy%3D%2210.6664%22%20r%3D%227.03704%22%20fill%3D%22%23FE4B4B%22%2F%3E%0A%3C%2Fsvg%3E%0A",
360
- "roundness-pink": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Ccircle%20cx%3D%2210%22%20cy%3D%2210.6664%22%20r%3D%227.03704%22%20fill%3D%22%23FB9D9D%22%2F%3E%0A%3C%2Fsvg%3E%0A",
361
- "roundness-gray": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Ccircle%20cx%3D%2210%22%20cy%3D%2210.6664%22%20r%3D%227.03704%22%20fill%3D%22%23999999%22%2F%3E%0A%3C%2Fsvg%3E%0A",
362
- "roundness-black": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Ccircle%20cx%3D%2210%22%20cy%3D%2210.6664%22%20r%3D%227.03704%22%20fill%3D%22black%22%2F%3E%0A%3C%2Fsvg%3E%0A",
363
- "triangle-gold": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cg%20clip-path%3D%22url(%23clip0_613_237)%22%3E%0A%3Cpath%20d%3D%22M9.32308%204.41301C9.58368%203.82623%2010.4164%203.82623%2010.677%204.413L15.9526%2016.2917C16.1701%2016.7815%2015.8115%2017.3331%2015.2756%2017.3331H4.72454C4.18858%2017.3331%203.83002%2016.7815%204.04756%2016.2917L9.32308%204.41301Z%22%20fill%3D%22%23FFBD37%22%2F%3E%0A%3C%2Fg%3E%0A%3Cdefs%3E%0A%3CclipPath%20id%3D%22clip0_613_237%22%3E%0A%3Crect%20width%3D%2220%22%20height%3D%2220%22%20fill%3D%22white%22%20transform%3D%22translate(0%200.666504)%22%2F%3E%0A%3C%2FclipPath%3E%0A%3C%2Fdefs%3E%0A%3C%2Fsvg%3E%0A",
364
- "indicate-greed": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Crect%20x%3D%222.76941%22%20y%3D%222.76941%22%20width%3D%2214.4612%22%20height%3D%2214.4612%22%20rx%3D%223%22%20fill%3D%22black%22%2F%3E%0A%3Ccircle%20cx%3D%2210%22%20cy%3D%2210%22%20r%3D%224.5%22%20fill%3D%22%2359D01E%22%2F%3E%0A%3C%2Fsvg%3E%0A",
365
- "indicate-gold": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Crect%20x%3D%222.76941%22%20y%3D%222.76941%22%20width%3D%2214.4612%22%20height%3D%2214.4612%22%20rx%3D%223%22%20fill%3D%22black%22%2F%3E%0A%3Ccircle%20cx%3D%2210%22%20cy%3D%2210%22%20r%3D%224.5%22%20fill%3D%22%23FFBD37%22%2F%3E%0A%3C%2Fsvg%3E%0A",
366
- "indicate-red": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Crect%20x%3D%222.76941%22%20y%3D%222.76941%22%20width%3D%2214.4612%22%20height%3D%2214.4612%22%20rx%3D%223%22%20fill%3D%22black%22%2F%3E%0A%3Ccircle%20cx%3D%2210%22%20cy%3D%2210%22%20r%3D%224.5%22%20fill%3D%22%23FE4B4B%22%2F%3E%0A%3C%2Fsvg%3E%0A"
367
- }, A0 = {
368
- mistake2: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M4.12194%206.33702C4.1805%206.47839%204.30722%206.6051%204.56066%206.85854L8.36822%2010.6661L4.56062%2014.4737C4.30718%2014.7272%204.18046%2014.8539%204.12191%2014.9952C4.04384%2015.1837%204.04384%2015.3955%204.12191%2015.584C4.18046%2015.7253%204.30718%2015.8521%204.56062%2016.1055C4.81406%2016.3589%204.94078%2016.4857%205.08214%2016.5442C5.27062%2016.6223%205.4824%2016.6223%205.67089%2016.5442C5.81225%2016.4857%205.93897%2016.3589%206.19241%2016.1055L10%2012.2979L13.8074%2016.1053C14.0609%2016.3588%2014.1876%2016.4855%2014.329%2016.544C14.5174%2016.6221%2014.7292%2016.6221%2014.9177%2016.544C15.0591%2016.4855%2015.1858%2016.3588%2015.4392%2016.1053L15.4392%2016.1053C15.6927%2015.8519%2015.8194%2015.7252%2015.8779%2015.5838C15.956%2015.3953%2015.956%2015.1835%2015.8779%2014.9951C15.8194%2014.8537%2015.6927%2014.727%2015.4392%2014.4735L15.4392%2014.4735L11.6318%2010.6661L15.4392%206.85872C15.6926%206.60528%2015.8193%206.47856%2015.8779%206.3372C15.956%206.14871%2015.956%205.93694%2015.8779%205.74845C15.8193%205.60709%2015.6926%205.48037%2015.4392%205.22693C15.1857%204.97349%2015.059%204.84677%2014.9177%204.78822C14.7292%204.71015%2014.5174%204.71015%2014.3289%204.78822C14.1876%204.84677%2014.0608%204.97349%2013.8074%205.22693L10%209.03433L6.19244%205.22676C5.939%204.97332%205.81228%204.8466%205.67092%204.78805C5.48244%204.70997%205.27066%204.70997%205.08218%204.78805C4.94082%204.8466%204.8141%204.97332%204.56066%205.22676L4.56066%205.22676C4.30722%205.4802%204.1805%205.60692%204.12194%205.74828C4.04387%205.93676%204.04387%206.14854%204.12194%206.33702Z%22%20fill%3D%22%23FE4B4B%22%2F%3E%0A%3C%2Fsvg%3E%0A",
369
- warn2: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20d%3D%22M8.49778%205.00963C8.48513%204.56774%208.47881%204.3468%208.56086%204.17746C8.63301%204.02856%208.75124%203.90689%208.89802%203.83052C9.06494%203.74365%209.28597%203.74365%209.72805%203.74365H10.272C10.714%203.74365%2010.9351%203.74365%2011.102%203.83052C11.2488%203.9069%2011.367%204.02856%2011.4392%204.17746C11.5212%204.3468%2011.5149%204.56775%2011.5022%205.00964L11.2644%2013.3173C11.2524%2013.737%2011.2464%2013.9468%2011.1609%2014.1065C11.0857%2014.2471%2010.9687%2014.3609%2010.826%2014.432C10.6639%2014.5129%2010.454%2014.5129%2010.0342%2014.5129H9.96582C9.54601%2014.5129%209.33611%2014.5129%209.17397%2014.432C9.0313%2014.3609%208.91426%2014.2471%208.83904%2014.1065C8.75357%2013.9468%208.74756%2013.737%208.73555%2013.3173L8.49778%205.00963Z%22%20fill%3D%22%23FFBD37%22%2F%3E%0A%3Crect%20x%3D%228.76917%22%20y%3D%2215.2817%22%20width%3D%222.46154%22%20height%3D%222.46154%22%20rx%3D%220.769231%22%20fill%3D%22%23FFBD37%22%2F%3E%0A%3C%2Fsvg%3E%0A",
370
- correct2: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cg%20clip-path%3D%22url(%23clip0_613_248)%22%3E%0A%3Cpath%20d%3D%22M15.689%205.69723C15.5476%205.75578%2015.4209%205.8825%2015.1675%206.13594L7.82436%2013.4791L4.83279%2010.4875C4.57935%2010.2341%204.45263%2010.1073%204.31127%2010.0488C4.12278%209.97071%203.91101%209.97071%203.72252%2010.0488C3.58116%2010.1073%203.45444%2010.2341%203.201%2010.4875C2.94756%2010.7409%202.82084%2010.8676%202.76229%2011.009C2.68422%2011.1975%202.68422%2011.4093%202.76229%2011.5978C2.82084%2011.7391%202.94756%2011.8658%203.201%2012.1193L7.0085%2015.9268C7.26194%2016.1802%207.38866%2016.3069%207.53002%2016.3655C7.7185%2016.4436%207.93028%2016.4436%208.11876%2016.3655C8.26013%2016.3069%208.38685%2016.1802%208.64028%2015.9268C8.66387%2015.9032%208.68636%2015.8807%208.7078%2015.8592L16.7993%207.76772C17.0527%207.51428%2017.1794%207.38756%2017.238%207.2462C17.3161%207.05772%2017.3161%206.84594%2017.238%206.65746C17.1794%206.5161%2017.0527%206.38938%2016.7993%206.13594C16.5458%205.8825%2016.4191%205.75578%2016.2777%205.69723C16.0893%205.61915%2015.8775%205.61915%2015.689%205.69723Z%22%20fill%3D%22%2359D01E%22%2F%3E%0A%3C%2Fg%3E%0A%3Cdefs%3E%0A%3CclipPath%20id%3D%22clip0_613_248%22%3E%0A%3Crect%20width%3D%2220%22%20height%3D%2220%22%20fill%3D%22white%22%20transform%3D%22translate(0%200.666504)%22%2F%3E%0A%3C%2FclipPath%3E%0A%3C%2Fdefs%3E%0A%3C%2Fsvg%3E%0A"
371
- }, x0 = {
372
- "flag-green": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M15.4274%204.74935C14.0982%205.1012%2013.1363%205.13675%2012.3604%205.03379C11.5776%204.93009%2010.9487%204.68342%2010.2456%204.40416L10.2246%204.39527C9.53411%204.1212%208.76945%203.8175%207.81312%203.69157C6.84279%203.56268%205.71016%203.61898%204.24802%204.0049C4.09343%204.04217%203.95538%204.13393%203.85649%204.26515C3.7576%204.39636%203.70374%204.55925%203.70374%204.72712V17.3197C3.70374%2017.5162%203.79534%2017.7046%203.92654%2017.8435C4.05773%2017.9824%204.25893%2018.0605%204.44448%2018.0605C4.63002%2018.0605%204.84911%2017.9824%204.98031%2017.8435C5.11151%2017.7046%205.18522%2017.5162%205.18522%2017.3197V14.9123V12.5049C6.24649%2012.2738%206.97081%2012.2605%207.63962%2012.3486C8.42246%2012.4523%209.05139%2012.699%209.75448%2012.9782L9.77546%2012.9871C10.466%2013.2612%2011.2306%2013.5649%2012.1869%2013.6908C13.1601%2013.8197%2014.2976%2013.7627%2015.7667%2013.3738C15.8866%2013.3421%2016.0727%2013.2135%2016.1483%2013.111C16.2238%2013.0084%2016.2963%2012.8204%2016.2963%2012.6553V5.46787C16.2963%205.35535%2016.2721%205.24432%2016.2255%205.1432C16.1788%205.04208%2016.1111%204.95353%2016.0274%204.88428C15.9436%204.81502%2015.846%204.76688%2015.7421%204.7435C15.6382%204.72012%2015.494%204.73173%2015.4274%204.74935Z%22%20fill%3D%22%2359D01E%22%2F%3E%0A%3C%2Fsvg%3E%0A",
373
- "flag-gold": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M15.4274%204.74935C14.0982%205.1012%2013.1363%205.13675%2012.3604%205.03379C11.5776%204.93009%2010.9487%204.68342%2010.2456%204.40416L10.2246%204.39527C9.53411%204.1212%208.76945%203.8175%207.81312%203.69157C6.84279%203.56268%205.71016%203.61898%204.24802%204.0049C4.09343%204.04217%203.95538%204.13393%203.85649%204.26515C3.7576%204.39636%203.70374%204.55925%203.70374%204.72712V17.3197C3.70374%2017.5162%203.79534%2017.7046%203.92654%2017.8435C4.05773%2017.9824%204.25893%2018.0605%204.44448%2018.0605C4.63002%2018.0605%204.84911%2017.9824%204.98031%2017.8435C5.11151%2017.7046%205.18522%2017.5162%205.18522%2017.3197V14.9123V12.5049C6.24649%2012.2738%206.97081%2012.2605%207.63962%2012.3486C8.42246%2012.4523%209.05139%2012.699%209.75448%2012.9782L9.77546%2012.9871C10.466%2013.2612%2011.2306%2013.5649%2012.1869%2013.6908C13.1601%2013.8197%2014.2976%2013.7627%2015.7667%2013.3738C15.8866%2013.3421%2016.0727%2013.2135%2016.1483%2013.111C16.2238%2013.0084%2016.2963%2012.8204%2016.2963%2012.6553V5.46787C16.2963%205.35535%2016.2721%205.24432%2016.2255%205.1432C16.1788%205.04208%2016.1111%204.95353%2016.0274%204.88428C15.9436%204.81502%2015.846%204.76688%2015.7421%204.7435C15.6382%204.72012%2015.494%204.73173%2015.4274%204.74935Z%22%20fill%3D%22%23FFBD37%22%2F%3E%0A%3C%2Fsvg%3E%0A",
374
- "flag-red": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M15.4274%204.74935C14.0982%205.1012%2013.1363%205.13675%2012.3604%205.03379C11.5776%204.93009%2010.9487%204.68342%2010.2456%204.40416L10.2246%204.39527C9.53411%204.1212%208.76945%203.8175%207.81312%203.69157C6.84279%203.56268%205.71016%203.61898%204.24802%204.0049C4.09343%204.04217%203.95538%204.13393%203.85649%204.26515C3.7576%204.39636%203.70374%204.55925%203.70374%204.72712V17.3197C3.70374%2017.5162%203.79534%2017.7046%203.92654%2017.8435C4.05773%2017.9824%204.25893%2018.0605%204.44448%2018.0605C4.63002%2018.0605%204.84911%2017.9824%204.98031%2017.8435C5.11151%2017.7046%205.18522%2017.5162%205.18522%2017.3197V14.9123V12.5049C6.24649%2012.2738%206.97081%2012.2605%207.63962%2012.3486C8.42246%2012.4523%209.05139%2012.699%209.75448%2012.9782L9.77546%2012.9871C10.466%2013.2612%2011.2306%2013.5649%2012.1869%2013.6908C13.1601%2013.8197%2014.2976%2013.7627%2015.7667%2013.3738C15.8866%2013.3421%2016.0727%2013.2135%2016.1483%2013.111C16.2238%2013.0084%2016.2963%2012.8204%2016.2963%2012.6553V5.46787C16.2963%205.35535%2016.2721%205.24432%2016.2255%205.1432C16.1788%205.04208%2016.1111%204.95353%2016.0274%204.88428C15.9436%204.81502%2015.846%204.76688%2015.7421%204.7435C15.6382%204.72012%2015.494%204.73173%2015.4274%204.74935Z%22%20fill%3D%22%23FE4B4B%22%2F%3E%0A%3C%2Fsvg%3E%0A"
375
- }, _0 = {
376
- "cell-0": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Crect%20x%3D%224%22%20y%3D%2211.001%22%20width%3D%225%22%20height%3D%225%22%20rx%3D%221%22%20fill%3D%22%23E5E5E5%22%2F%3E%0A%3Crect%20x%3D%2211%22%20y%3D%2211.001%22%20width%3D%225%22%20height%3D%225%22%20rx%3D%221%22%20fill%3D%22%23E5E5E5%22%2F%3E%0A%3Crect%20x%3D%224%22%20y%3D%224.00098%22%20width%3D%225%22%20height%3D%225%22%20rx%3D%221%22%20fill%3D%22%23E5E5E5%22%2F%3E%0A%3Crect%20x%3D%2211%22%20y%3D%224.00098%22%20width%3D%225%22%20height%3D%225%22%20rx%3D%221%22%20fill%3D%22%23E5E5E5%22%2F%3E%0A%3C%2Fsvg%3E%0A",
377
- "cell-25": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Crect%20x%3D%224%22%20y%3D%2211.001%22%20width%3D%225%22%20height%3D%225%22%20rx%3D%221%22%20fill%3D%22%23E5E5E5%22%2F%3E%0A%3Crect%20x%3D%2211%22%20y%3D%2211.001%22%20width%3D%225%22%20height%3D%225%22%20rx%3D%221%22%20fill%3D%22%23E5E5E5%22%2F%3E%0A%3Crect%20x%3D%224.25%22%20y%3D%224.25098%22%20width%3D%224.5%22%20height%3D%224.5%22%20rx%3D%220.75%22%20fill%3D%22%230493EE%22%20stroke%3D%22%230493EE%22%20stroke-width%3D%220.5%22%2F%3E%0A%3Crect%20x%3D%2211%22%20y%3D%224.00098%22%20width%3D%225%22%20height%3D%225%22%20rx%3D%221%22%20fill%3D%22%23E5E5E5%22%2F%3E%0A%3C%2Fsvg%3E%0A",
378
- "cell-50": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Crect%20x%3D%224%22%20y%3D%2211.001%22%20width%3D%225%22%20height%3D%225%22%20rx%3D%221%22%20fill%3D%22%23E5E5E5%22%2F%3E%0A%3Crect%20x%3D%2211%22%20y%3D%2211.001%22%20width%3D%225%22%20height%3D%225%22%20rx%3D%221%22%20fill%3D%22%23E5E5E5%22%2F%3E%0A%3Crect%20x%3D%224.25%22%20y%3D%224.25098%22%20width%3D%224.5%22%20height%3D%224.5%22%20rx%3D%220.75%22%20fill%3D%22%230493EE%22%20stroke%3D%22%230493EE%22%20stroke-width%3D%220.5%22%2F%3E%0A%3Crect%20x%3D%2211.25%22%20y%3D%224.25098%22%20width%3D%224.5%22%20height%3D%224.5%22%20rx%3D%220.75%22%20fill%3D%22%230493EE%22%20stroke%3D%22%230493EE%22%20stroke-width%3D%220.5%22%2F%3E%0A%3C%2Fsvg%3E%0A",
379
- "cell-75": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Crect%20x%3D%224.25%22%20y%3D%2211.251%22%20width%3D%224.5%22%20height%3D%224.5%22%20rx%3D%220.75%22%20fill%3D%22%230493EE%22%20stroke%3D%22%230493EE%22%20stroke-width%3D%220.5%22%2F%3E%0A%3Crect%20x%3D%2211%22%20y%3D%2211.001%22%20width%3D%225%22%20height%3D%225%22%20rx%3D%221%22%20fill%3D%22%23E5E5E5%22%2F%3E%0A%3Crect%20x%3D%224.25%22%20y%3D%224.25098%22%20width%3D%224.5%22%20height%3D%224.5%22%20rx%3D%220.75%22%20fill%3D%22%230493EE%22%20stroke%3D%22%230493EE%22%20stroke-width%3D%220.5%22%2F%3E%0A%3Crect%20x%3D%2211.25%22%20y%3D%224.25098%22%20width%3D%224.5%22%20height%3D%224.5%22%20rx%3D%220.75%22%20fill%3D%22%230493EE%22%20stroke%3D%22%230493EE%22%20stroke-width%3D%220.5%22%2F%3E%0A%3C%2Fsvg%3E%0A",
380
- "cell-100": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Crect%20x%3D%224.25%22%20y%3D%2211.251%22%20width%3D%224.5%22%20height%3D%224.5%22%20rx%3D%220.75%22%20fill%3D%22%230493EE%22%20stroke%3D%22%230493EE%22%20stroke-width%3D%220.5%22%2F%3E%0A%3Crect%20x%3D%2211.25%22%20y%3D%2211.251%22%20width%3D%224.5%22%20height%3D%224.5%22%20rx%3D%220.75%22%20fill%3D%22%230493EE%22%20stroke%3D%22%230493EE%22%20stroke-width%3D%220.5%22%2F%3E%0A%3Crect%20x%3D%224.25%22%20y%3D%224.25098%22%20width%3D%224.5%22%20height%3D%224.5%22%20rx%3D%220.75%22%20fill%3D%22%230493EE%22%20stroke%3D%22%230493EE%22%20stroke-width%3D%220.5%22%2F%3E%0A%3Crect%20x%3D%2211.25%22%20y%3D%224.25098%22%20width%3D%224.5%22%20height%3D%224.5%22%20rx%3D%220.75%22%20fill%3D%22%230493EE%22%20stroke%3D%22%230493EE%22%20stroke-width%3D%220.5%22%2F%3E%0A%3C%2Fsvg%3E%0A"
381
- }, f = {
382
- feedback: f0,
383
- star: m0,
384
- progress: F0,
385
- signal: w0,
386
- feeling: E0,
387
- arrow: v0,
388
- shape: p0,
389
- feedback2: A0,
390
- flag: x0,
391
- cell: _0
392
- }, M0 = [
393
- {
394
- title: "sheet.cf.iconSet.direction",
395
- group: [
396
- { name: "3Arrows", list: [f.arrow["up-green"], f.arrow["right-gold"], f.arrow["down-red"]] },
397
- { name: "3ArrowsGray", list: [f.arrow["up-gray"], f.arrow["right-gray"], f.arrow["down-gray"]] },
398
- { name: "4Arrows", list: [f.arrow["up-green"], f.arrow["rightAndUp-gold"], f.arrow["rightAndDown-gold"], f.arrow["down-red"]] },
399
- { name: "4ArrowsGray", list: [f.arrow["up-gray"], f.arrow["rightAndUp-gray"], f.arrow["rightAndDown-gray"], f.arrow["down-gray"]] },
400
- { name: "5Arrows", list: [f.arrow["up-green"], f.arrow["rightAndUp-gold"], f.arrow["right-gold"], f.arrow["rightAndDown-gold"], f.arrow["down-red"]] },
401
- { name: "5ArrowsGray", list: [f.arrow["up-gray"], f.arrow["rightAndUp-gray"], f.arrow["right-gray"], f.arrow["rightAndDown-gray"], f.arrow["down-gray"]] },
402
- { name: "3Triangles", list: [f.shape.up, f.shape.cross, f.shape.down] }
403
- ]
404
- },
405
- {
406
- title: "sheet.cf.iconSet.shape",
407
- group: [
408
- {
409
- name: "3TrafficLights1",
410
- list: [f.shape["roundness-greed"], f.shape["roundness-gold"], f.shape["roundness-red"]]
411
- },
412
- {
413
- name: "3Signs",
414
- list: [f.shape["roundness-greed"], f.shape["triangle-gold"], f.shape["rhomboid-red"]]
415
- },
416
- { name: "3TrafficLights2", list: [f.shape["indicate-greed"], f.shape["indicate-gold"], f.shape["indicate-red"]] },
417
- {
418
- name: "4RedToBlack",
419
- list: [f.shape["roundness-red"], f.shape["roundness-pink"], f.shape["roundness-gray"], f.shape["roundness-black"]]
420
- },
421
- {
422
- name: "4TrafficLights",
423
- list: [f.shape["roundness-greed"], f.shape["roundness-gold"], f.shape["roundness-red"], f.shape["roundness-black"]]
424
- }
425
- ]
426
- },
427
- {
428
- title: "sheet.cf.iconSet.mark",
429
- group: [
430
- {
431
- name: "3Symbols",
432
- list: [f.feedback.correct, f.feedback.warn, f.feedback.mistake]
433
- },
434
- {
435
- name: "3Symbols2",
436
- list: [f.feedback2.correct2, f.feedback2.warn2, f.feedback2.mistake2]
437
- },
438
- {
439
- name: "3Flags",
440
- list: [f.flag["flag-green"], f.flag["flag-gold"], f.flag["flag-red"]]
441
- }
442
- ]
443
- },
444
- {
445
- title: "sheet.cf.iconSet.rank",
446
- group: [
447
- {
448
- name: "4Rating",
449
- list: [f.signal.signal25, f.signal.signal50, f.signal.signal75, f.signal.signal100]
450
- },
451
- {
452
- name: "5Rating",
453
- list: [f.signal.signal0, f.signal.signal25, f.signal.signal50, f.signal.signal75, f.signal.signal100]
454
- },
455
- {
456
- name: "5Quarters",
457
- list: [f.progress.progress100, f.progress.progress75, f.progress.progress50, f.progress.progress25, f.progress.progress0]
458
- },
459
- {
460
- name: "_5Felling",
461
- list: [f.feeling.guffaw, f.feeling.smile, f.feeling.noninductive, f.feeling.dissatisfied, f.feeling.impatient]
462
- },
463
- {
464
- name: "5Boxes",
465
- list: [f.cell["cell-100"], f.cell["cell-75"], f.cell["cell-50"], f.cell["cell-25"], f.cell["cell-0"]]
466
- },
467
- {
468
- name: "3Stars",
469
- list: [f.star.starFull, f.star.starIncomplete, f.star.starEmpty]
470
- }
471
- ]
195
+ deleteUnitId(s) {
196
+ this._model.delete(s);
472
197
  }
473
- ], n2 = M0.reduce((n, i) => {
474
- const { group: t } = i;
475
- for (const e of t)
476
- n[e.name] = e.list;
477
- return n;
478
- }, {});
479
- for (const n in n2) {
480
- const i = n2[n];
481
- Object.freeze(i);
482
198
  }
483
- const y0 = "EMPTY_ICON_TYPE", f2 = {
484
- type: Q.MUTATION,
485
- id: "sheet.mutation.move-conditional-rule",
486
- handler(n, i) {
487
- if (!i)
488
- return !1;
489
- const { unitId: t, subUnitId: e, start: s, end: r } = i;
490
- return n.get(V).moveRulePriority(t, e, s, r), !0;
491
- }
492
- }, v1 = (n) => {
493
- const { unitId: i, subUnitId: t } = n, e = h0(n.start, n.end);
494
- if (!e)
495
- return [];
496
- const [s, r] = e;
497
- return [
498
- {
499
- id: f2.id,
500
- params: { unitId: i, subUnitId: t, start: s, end: r }
501
- }
502
- ];
503
- }, R0 = (n, i) => {
504
- const t = n.get(V), { unitId: e, subUnitId: s, cfId: r } = i, a = [...t.getSubunitRules(e, s) || []], o = a.findIndex((c) => c.cfId === r), l = a[o - 1];
505
- if (o > -1) {
506
- const c = a[o], h = [{
507
- id: b2.id,
508
- params: { unitId: e, subUnitId: s, rule: Y.deepClone(c) }
509
- }];
510
- if (a.splice(o, 1), o !== 0) {
511
- const u = a[0];
512
- if (u) {
513
- const g = u0({ id: u.cfId, type: "before" }, { id: l.cfId, type: "after" }, a, (m) => m.cfId);
514
- if (!g)
515
- return h;
516
- const [d, D] = g, C = {
517
- unitId: e,
518
- subUnitId: s,
519
- start: d,
520
- end: D
521
- };
522
- h.push({ id: f2.id, params: C });
523
- }
524
- }
525
- return h;
526
- }
527
- return [];
528
- }, m2 = {
529
- type: Q.MUTATION,
530
- id: "sheet.mutation.delete-conditional-rule",
531
- handler(n, i) {
532
- if (!i)
533
- return !1;
534
- const { unitId: t, subUnitId: e, cfId: s } = i;
535
- return n.get(V).deleteRule(t, e, s), !0;
536
- }
537
- }, p1 = (n, i) => ({ id: m2.id, params: { unitId: i.unitId, subUnitId: i.subUnitId, cfId: i.rule.cfId } }), b2 = {
538
- type: Q.MUTATION,
539
- id: "sheet.mutation.add-conditional-rule",
540
- handler(n, i) {
541
- if (!i)
542
- return !1;
543
- const { unitId: t, subUnitId: e, rule: s } = i;
544
- return n.get(V).addRule(t, e, s), !0;
545
- }
546
- }, i2 = {
547
- type: Q.MUTATION,
199
+ const n2 = {
200
+ type: J.MUTATION,
548
201
  id: "sheet.mutation.conditional-formatting-formula-mark-dirty",
549
202
  handler() {
550
203
  return !0;
551
204
  }
552
- }, S2 = {
553
- type: Q.MUTATION,
554
- id: "sheet.mutation.set-conditional-rule",
555
- handler(n, i) {
556
- if (!i)
557
- return !1;
558
- const { unitId: t, subUnitId: e, rule: s } = i, r = i.cfId || i.rule.cfId;
559
- return n.get(V).setRule(t, e, s, r), !0;
560
- }
561
- }, A1 = (n, i) => {
562
- const t = n.get(V), { unitId: e, subUnitId: s } = i, r = i.cfId || i.rule.cfId, a = t.getRule(e, s, r);
563
- return a ? [
564
- {
565
- id: S2.id,
566
- params: {
567
- unitId: e,
568
- subUnitId: s,
569
- cfId: r,
570
- rule: Y.deepClone(a)
571
- }
572
- }
573
- ] : [];
574
- }, I0 = "ssheets-conditional-formatting.config", L0 = {};
575
- var b0 = Object.defineProperty, S0 = Object.getOwnPropertyDescriptor, B0 = (n, i, t, e) => {
576
- for (var s = e > 1 ? void 0 : e ? S0(i, t) : i, r = n.length - 1, a; r >= 0; r--)
577
- (a = n[r]) && (s = (e ? a(i, t, s) : a(s)) || s);
578
- return e && s && b0(i, t, s), s;
579
- }, K = (n, i) => (t, e) => i(t, e, n), y = /* @__PURE__ */ ((n) => (n[n.NOT_REGISTER = 1] = "NOT_REGISTER", n[n.SUCCESS = 2] = "SUCCESS", n[n.WAIT = 3] = "WAIT", n[n.ERROR = 4] = "ERROR", n))(y || {});
580
- const k0 = (n) => {
581
- const i = n && n[0] && n[0][0];
582
- return (i == null ? void 0 : i.t) === B.BOOLEAN ? i.v === _2.TRUE || i.v === !0 : i ? i.v : !1;
583
205
  };
584
- let N = class extends x2 {
585
- constructor(i, t, e, s, r) {
206
+ var m0 = Object.defineProperty, F0 = Object.getOwnPropertyDescriptor, w0 = (n, s, t, e) => {
207
+ for (var r = e > 1 ? void 0 : e ? F0(s, t) : s, i = n.length - 1, a; i >= 0; i--)
208
+ (a = n[i]) && (r = (e ? a(s, t, r) : a(r)) || r);
209
+ return e && r && m0(s, t, r), r;
210
+ }, d2 = (n, s) => (t, e) => s(t, e, n), b = /* @__PURE__ */ ((n) => (n[n.NOT_REGISTER = 1] = "NOT_REGISTER", n[n.SUCCESS = 2] = "SUCCESS", n[n.WAIT = 3] = "WAIT", n[n.ERROR = 4] = "ERROR", n))(b || {});
211
+ const v0 = (n) => {
212
+ const s = n && n[0] && n[0][0];
213
+ return (s == null ? void 0 : s.t) === _.BOOLEAN ? s.v === R2.TRUE || s.v === !0 : s ? s.v : !1;
214
+ };
215
+ let G = class extends m2 {
216
+ constructor(s, t, e) {
586
217
  super();
587
218
  // Cache Formula ID and formula mapping.
588
- E(this, "_formulaMap", /* @__PURE__ */ new Map());
589
- // Cache style results, style replacement needs to wait until the formula has been calculated, then replace.
590
- E(this, "_cache", /* @__PURE__ */ new Map());
591
- this._commandService = i, this._injector = t, this._activeDirtyManagerService = e, this._conditionalFormattingViewModel = s, this._conditionalFormattingRuleModel = r, this._initFormulaCalculationResultChange(), this._initRuleChange(), this._initCache(), this.disposeWithMe(V2(() => {
592
- this._cache.clear(), this._formulaMap.clear();
593
- }));
594
- }
595
- _initCache() {
596
- const i = this._injector.get(z);
597
- this.disposeWithMe(i.ruleComputeStatus$.subscribe((t) => {
598
- const { unitId: e, subUnitId: s, status: r, result: a, cfId: o } = t;
599
- r === "end" && a && this._ensureCacheMap(e, s).set(o, a);
600
- })), this.disposeWithMe(this._conditionalFormattingRuleModel.$ruleChange.subscribe((t) => {
601
- if (t.type === "delete") {
602
- const { unitId: e, subUnitId: s, rule: r } = t;
603
- this._deleteCache(e, s, r.cfId);
604
- }
605
- }));
219
+ m(this, "_formulaMap", /* @__PURE__ */ new Map());
220
+ m(this, "_result$", new i2());
221
+ m(this, "result$", this._result$.asObservable());
222
+ this._commandService = s, this._activeDirtyManagerService = t, this._conditionalFormattingRuleModel = e, this._initFormulaCalculationResultChange(), this._initRuleChange();
606
223
  }
607
224
  _initRuleChange() {
608
- const i = (t) => {
225
+ const s = (t) => {
609
226
  switch (t.type) {
610
- case L.colorScale:
611
- return t.config.some((e) => e.value.type === U.formula);
612
- case L.highlightCell:
613
- return t.subType === _.formula;
614
- case L.dataBar:
615
- return [t.config.max, t.config.min].some((e) => e.type === U.formula);
616
- case L.iconSet:
617
- return t.config.some((e) => e.value.type === U.formula);
227
+ case y.colorScale:
228
+ return t.config.some((e) => e.value.type === x.formula);
229
+ case y.dataBar:
230
+ return [t.config.max, t.config.min].some((e) => e.type === x.formula);
231
+ case y.iconSet:
232
+ return t.config.some((e) => e.value.type === x.formula);
618
233
  }
619
234
  };
620
235
  this.disposeWithMe(this._conditionalFormattingRuleModel.$ruleChange.subscribe((t) => {
621
- const { unitId: e, subUnitId: s, rule: r, oldRule: a } = t;
622
- t.type === "delete" && this._removeFormulaByCfId(e, s, r.cfId), t.type === "set" && (i(r.rule) || a && i(a.rule)) && this._removeFormulaByCfId(e, s, r.cfId);
236
+ const { unitId: e, subUnitId: r, rule: i, oldRule: a } = t;
237
+ t.type === "delete" && this._removeFormulaByCfId(e, r, i.cfId), t.type === "set" && (s(i.rule) || a && s(a.rule)) && this._removeFormulaByCfId(e, r, i.cfId);
623
238
  }));
624
239
  }
625
240
  _initFormulaCalculationResultChange() {
626
- this.disposeWithMe(this._commandService.onCommandExecuted((i) => {
627
- if (i.id === r0.id) {
628
- const t = i.params;
241
+ this.disposeWithMe(this._commandService.onCommandExecuted((s) => {
242
+ if (s.id === J2.id) {
243
+ const t = s.params;
629
244
  for (const e in t.unitOtherData)
630
- for (const s in t.unitOtherData[e]) {
631
- const r = /* @__PURE__ */ new Set();
632
- for (const a in t.unitOtherData[e][s]) {
633
- const o = new I(t.unitOtherData[e][s][a]), l = this._ensureSubunitFormulaMap(e, s).getValue(a, ["formulaId"]);
634
- if (!l)
245
+ for (const r in t.unitOtherData[e])
246
+ for (const i in t.unitOtherData[e][r]) {
247
+ const a = new T(t.unitOtherData[e][r][i]), u = this._ensureSubunitFormulaMap(e, r).getValue(i, ["formulaId"]);
248
+ if (!u)
635
249
  continue;
636
- const c = l.ranges;
637
- if (!c)
250
+ const l = u.ranges;
251
+ if (!l)
638
252
  continue;
639
- const h = l.result, u = c[0].startRow, g = c[0].startColumn;
640
- o.forValue((d, D, C) => {
641
- h.setValue(u + d, g + D, k0(C));
642
- }), l.status = 2, r.add(l.cfId);
643
- }
644
- for (const a of r) {
645
- const o = this._conditionalFormattingRuleModel.getRule(e, s, a);
646
- o && this._conditionalFormattingViewModel.markRuleDirty(e, s, o);
253
+ const o = u.result, h = l[0].startRow, c = l[0].startColumn;
254
+ a.forValue((D, f, F) => {
255
+ o.setValue(h + D, c + f, v0(F));
256
+ }), u.status = 2;
257
+ const C = this._getAllFormulaResultByCfId(e, r, u.cfId).every(
258
+ (D) => D.status === 2
259
+ /* SUCCESS */
260
+ );
261
+ this._result$.next({ ...u, isAllFinished: C });
647
262
  }
648
- }
649
263
  }
650
264
  })), this._activeDirtyManagerService.register(
651
- i2.id,
265
+ n2.id,
652
266
  {
653
- commandId: i2.id,
654
- getDirtyData(i) {
267
+ commandId: n2.id,
268
+ getDirtyData(s) {
655
269
  return {
656
- dirtyUnitOtherFormulaMap: i.params
270
+ dirtyUnitOtherFormulaMap: s.params
657
271
  };
658
272
  }
659
273
  }
660
274
  );
661
275
  }
662
- _ensureSubunitFormulaMap(i, t) {
663
- let e = this._formulaMap.get(i);
664
- e || (e = /* @__PURE__ */ new Map(), this._formulaMap.set(i, e));
665
- let s = e.get(t);
666
- return s || (s = new U2([], ["formulaId", "id"]), e.set(t, s)), s;
667
- }
668
- _ensureCacheMap(i, t) {
669
- let e = this._cache.get(i);
670
- e || (e = /* @__PURE__ */ new Map(), this._cache.set(i, e));
671
- let s = e.get(t);
672
- return s || (s = /* @__PURE__ */ new Map(), e.set(t, s)), s;
673
- }
674
- _deleteCache(i, t, e) {
675
- const s = this._cache.get(i);
676
- if (s) {
677
- const r = s.get(t);
678
- r && (e ? r.delete(e) : r.clear());
679
- }
680
- }
681
- getCache(i, t, e) {
682
- return this._ensureCacheMap(i, t).get(e);
276
+ _ensureSubunitFormulaMap(s, t) {
277
+ let e = this._formulaMap.get(s);
278
+ e || (e = /* @__PURE__ */ new Map(), this._formulaMap.set(s, e));
279
+ let r = e.get(t);
280
+ return r || (r = new O2([], ["formulaId", "id"]), e.set(t, r)), r;
683
281
  }
684
- getSubUnitFormulaMap(i, t) {
282
+ getSubUnitFormulaMap(s, t) {
685
283
  var e;
686
- return (e = this._formulaMap.get(i)) == null ? void 0 : e.get(t);
284
+ return (e = this._formulaMap.get(s)) == null ? void 0 : e.get(t);
687
285
  }
688
- registerFormulaWithRange(i, t, e, s, r = [{ startRow: 0, endRow: 0, startColumn: 0, endColumn: 0 }]) {
689
- const a = this._ensureSubunitFormulaMap(i, t);
690
- if (a.getValue(this.createCFormulaId(e, s), ["id"]))
286
+ registerFormulaWithRange(s, t, e, r, i = [{ startRow: 0, endRow: 0, startColumn: 0, endColumn: 0 }]) {
287
+ const a = this._ensureSubunitFormulaMap(s, t), u = this.createCFormulaId(e, r);
288
+ if (a.getValue(u, ["id"]))
691
289
  return;
692
- const o = this._createFormulaId(i, t);
290
+ const l = this._createFormulaId(s, t);
693
291
  a.addValue({
694
- formulaText: s,
292
+ formulaText: r,
293
+ unitId: s,
294
+ subUnitId: t,
695
295
  cfId: e,
696
- id: this.createCFormulaId(e, s),
697
- ranges: r,
698
- formulaId: o,
296
+ id: u,
297
+ ranges: i,
298
+ formulaId: l,
699
299
  status: 3,
700
- result: new I()
300
+ result: new T()
701
301
  });
702
- const l = {
703
- unitId: i,
302
+ const o = {
303
+ unitId: s,
704
304
  subUnitId: t,
705
305
  formulaMap: {
706
- [o]: {
707
- f: s,
708
- ranges: r
306
+ [l]: {
307
+ f: r,
308
+ ranges: i
709
309
  }
710
310
  }
711
311
  };
712
- this._commandService.executeCommand(a0.id, l).then(() => {
312
+ this._commandService.executeCommand(z2.id, o).then(() => {
713
313
  this._commandService.executeCommand(
714
- i2.id,
715
- { [i]: { [t]: { [o]: !0 } } }
314
+ n2.id,
315
+ { [s]: { [t]: { [l]: !0 } } }
716
316
  );
717
317
  });
718
318
  }
719
- _removeFormulaByCfId(i, t, e) {
720
- const s = this._ensureSubunitFormulaMap(i, t);
721
- s.deleteValue(e);
722
- const r = s.getValues().filter((o) => o.cfId === e);
723
- r.forEach((o) => {
724
- s.deleteValue(o.id, ["id"]);
725
- });
726
- const a = r.map((o) => o.formulaId);
727
- this._commandService.executeCommand(o0.id, { unitId: i, subUnitId: t, formulaIdList: a });
319
+ _removeFormulaByCfId(s, t, e) {
320
+ const i = this.deleteCache(s, t, e).map((a) => a.formulaId);
321
+ this._commandService.executeCommand(Q2.id, { unitId: s, subUnitId: t, formulaIdList: i });
728
322
  }
729
- getFormulaResult(i, t, e, s, r = 0, a = 0) {
730
- const o = this.getSubUnitFormulaMap(i, t);
731
- if (!o)
323
+ getFormulaResultWithCoords(s, t, e, r, i = 0, a = 0) {
324
+ const u = this.getSubUnitFormulaMap(s, t);
325
+ if (!u)
732
326
  return {
733
327
  status: 1
734
328
  /* NOT_REGISTER */
735
329
  };
736
- const l = o.getValue(this.createCFormulaId(e, s), ["id"]);
330
+ const l = u.getValue(this.createCFormulaId(e, r), ["id"]);
737
331
  return l ? l.status === 2 && l.result ? {
738
- result: l.result.getValue(r, a),
332
+ result: l.result.getValue(i, a),
739
333
  status: 2
740
334
  /* SUCCESS */
741
335
  } : l.status === 3 ? {
@@ -749,34 +343,153 @@ let N = class extends x2 {
749
343
  /* NOT_REGISTER */
750
344
  };
751
345
  }
752
- _createFormulaId(i, t) {
753
- return `sheet.cf_${i}_${t}_${Y.generateRandomId(8)}`;
346
+ getFormulaMatrix(s, t, e, r) {
347
+ const i = this.getSubUnitFormulaMap(s, t);
348
+ if (!i)
349
+ return {
350
+ status: 1
351
+ /* NOT_REGISTER */
352
+ };
353
+ const a = i.getValue(this.createCFormulaId(e, r), ["id"]);
354
+ if (!a)
355
+ return {
356
+ status: 1
357
+ /* NOT_REGISTER */
358
+ };
359
+ if (a.status === 2 && a.result)
360
+ return {
361
+ result: a.result,
362
+ status: 2
363
+ /* SUCCESS */
364
+ };
365
+ }
366
+ /**
367
+ * If `formulaText` is not provided, then all caches related to `cfId` will be deleted.
368
+ */
369
+ deleteCache(s, t, e, r) {
370
+ const i = this.getSubUnitFormulaMap(s, t);
371
+ if (!i)
372
+ return [];
373
+ if (r) {
374
+ const a = this.createCFormulaId(e, r);
375
+ return i.deleteValue(a, ["id"]), [];
376
+ } else {
377
+ const a = i.getValues().filter((u) => u.cfId === e);
378
+ return a.forEach((u) => {
379
+ i.deleteValue(u.formulaId, ["formulaId"]);
380
+ }), a;
381
+ }
382
+ }
383
+ _getAllFormulaResultByCfId(s, t, e) {
384
+ const r = this.getSubUnitFormulaMap(s, t);
385
+ return r ? r.getValues().filter((a) => a.cfId === e) : [];
754
386
  }
755
- createCFormulaId(i, t) {
756
- return `${i}_${t}`;
387
+ /**
388
+ * The external environment is not aware of`formulaId`;it communicates internally with the formula engine.
389
+ */
390
+ _createFormulaId(s, t) {
391
+ return `sheet.cf_${s}_${t}_${H.generateRandomId(8)}`;
392
+ }
393
+ /**
394
+ * A conditional formatting may have multiple formulas;if the formulas are identical,then the results will be consistent.
395
+ */
396
+ createCFormulaId(s, t) {
397
+ return `${s}_${t}`;
757
398
  }
758
399
  };
759
- N = B0([
760
- K(0, M(C2)),
761
- K(1, M(o2)),
762
- K(2, M(n0)),
763
- K(3, M(c2)),
764
- K(4, M(V))
765
- ], N);
766
- function r2(n, i) {
767
- return Math.abs(n - i) < Number.EPSILON;
400
+ G = w0([
401
+ d2(0, A(f2)),
402
+ d2(1, A(K2)),
403
+ d2(2, A(B))
404
+ ], G);
405
+ var L = /* @__PURE__ */ ((n) => (n.preComputingStart = "preComputingStart", n.preComputing = "preComputing", n.preComputingEnd = "preComputingEnd", n.preComputingError = "preComputingError", n))(L || {});
406
+ class u2 {
407
+ constructor(s) {
408
+ /**
409
+ * 3nd-level cache
410
+ */
411
+ m(this, "_cache");
412
+ m(this, "_preComputingStatus$", new G2(
413
+ "preComputingStart"
414
+ /* preComputingStart */
415
+ ));
416
+ m(this, "preComputingStatus$", this._preComputingStatus$.asObservable().pipe(j2()));
417
+ /**
418
+ * 2nd-level cache
419
+ */
420
+ m(this, "_preComputingCache");
421
+ m(this, "_rule");
422
+ this._context = s, this._cache = new I2(s.limit), this._rule = s.rule, this._preComputingCache = null, this._initClearCacheListener();
423
+ }
424
+ setCacheLength(s) {
425
+ this._cache.limit = s;
426
+ }
427
+ clearCache() {
428
+ this._cache.clear();
429
+ }
430
+ resetPreComputingCache() {
431
+ this._preComputingStatus$.next(
432
+ "preComputingStart"
433
+ /* preComputingStart */
434
+ ), this._preComputingCache = null;
435
+ }
436
+ updateRule(s) {
437
+ this._rule = s, this.resetPreComputingCache();
438
+ }
439
+ getCell(s, t) {
440
+ const e = this._createKey(s, t);
441
+ if (this._preComputingStatus$.getValue() === "preComputing")
442
+ return this._cache.get(e);
443
+ let r = this.getPreComputingResult(s, t);
444
+ if (r === null && (this._preComputingStatus$.next(
445
+ "preComputingStart"
446
+ /* preComputingStart */
447
+ ), this.preComputing(s, t, this._getContext()), r = this.getPreComputingResult(s, t), r === null))
448
+ return this._cache.get(e);
449
+ if (this._preComputingStatus$.next(
450
+ "preComputingEnd"
451
+ /* preComputingEnd */
452
+ ), this._cache.has(e))
453
+ return this._cache.get(e);
454
+ const i = this.getCellResult(s, t, r, this._getContext());
455
+ return i !== null && this._setCache(s, t, i), i;
456
+ }
457
+ setPreComputingCache(s) {
458
+ this._preComputingCache = s;
459
+ }
460
+ getPreComputingResult(s, t) {
461
+ return this._preComputingCache;
462
+ }
463
+ _createKey(s, t) {
464
+ return `${s}_${t}`;
465
+ }
466
+ _setCache(s, t, e) {
467
+ const r = this._createKey(s, t);
468
+ this._cache.set(r, e);
469
+ }
470
+ _getContext() {
471
+ return { ...this._context, rule: this._rule };
472
+ }
473
+ _initClearCacheListener() {
474
+ this.preComputingStatus$.subscribe((s) => {
475
+ s === "preComputingEnd" && this.clearCache();
476
+ });
477
+ }
478
+ }
479
+ function a2(n, s) {
480
+ return Math.abs(n - s) < Number.EPSILON;
768
481
  }
769
- const k = (n) => [void 0, null].includes(n), T = (n) => {
770
- var e, s;
482
+ const I = (n) => [void 0, null].includes(n), U = (n) => {
483
+ var e, r;
771
484
  if (!n)
772
485
  return null;
773
- if (n.t === B.BOOLEAN)
774
- return n.v === _2.TRUE ? w2.TRUE : w2.FALSE;
775
- const i = n.v, t = (s = (e = n.p) == null ? void 0 : e.body) == null ? void 0 : s.dataStream.replace(/\r\n$/, "");
776
- return k(i) ? k(t) ? null : t : i;
777
- }, d2 = 86400;
778
- function V0(n, i = !0) {
779
- if (i && n >= 0) {
486
+ if (n.t === _.BOOLEAN)
487
+ return n.v === R2.TRUE ? A2.TRUE : A2.FALSE;
488
+ const s = n.v, t = (r = (e = n.p) == null ? void 0 : e.body) == null ? void 0 : r.dataStream.replace(/\r\n$/, "");
489
+ return I(s) ? I(t) ? null : t : s;
490
+ }, g2 = 86400;
491
+ function E0(n, s = !0) {
492
+ if (s && n >= 0) {
780
493
  if (n === 0)
781
494
  return [1900, 1, 0];
782
495
  if (n === 60)
@@ -787,677 +500,1053 @@ function V0(n, i = !0) {
787
500
  let t = n + 68569 + 2415019;
788
501
  const e = Math.floor(4 * t / 146097);
789
502
  t = t - Math.floor((146097 * e + 3) / 4);
790
- const s = Math.floor(4e3 * (t + 1) / 1461001);
791
- t = t - Math.floor(1461 * s / 4) + 31;
792
- const r = Math.floor(80 * t / 2447), a = t - Math.floor(2447 * r / 80);
793
- t = Math.floor(r / 11);
794
- const o = r + 2 - 12 * t;
795
- return [100 * (e - 49) + s + t | 0, o | 0, a | 0];
503
+ const r = Math.floor(4e3 * (t + 1) / 1461001);
504
+ t = t - Math.floor(1461 * r / 4) + 31;
505
+ const i = Math.floor(80 * t / 2447), a = t - Math.floor(2447 * i / 80);
506
+ t = Math.floor(i / 11);
507
+ const u = i + 2 - 12 * t;
508
+ return [100 * (e - 49) + r + t | 0, u | 0, a | 0];
796
509
  }
797
- const U0 = (n) => {
798
- let i = n | 0;
799
- const t = d2 * (n - i);
510
+ const p0 = (n) => {
511
+ let s = n | 0;
512
+ const t = g2 * (n - s);
800
513
  let e = Math.floor(t);
801
- t - e > 0.9999 && (e += 1, e === d2 && (e = 0, i += 1));
802
- const s = e < 0 ? d2 + e : e, [r, a, o] = V0(n, !0), l = Math.floor(s / 60 / 60) % 60, c = Math.floor(s / 60) % 60, h = Math.floor(s) % 60;
803
- return x(`${r}/${a}/${o} ${l}:${c}:${h}`).valueOf();
804
- }, a2 = (n, i, t) => {
514
+ t - e > 0.9999 && (e += 1, e === g2 && (e = 0, s += 1));
515
+ const r = e < 0 ? g2 + e : e, [i, a, u] = E0(n, !0), l = Math.floor(r / 60 / 60) % 60, o = Math.floor(r / 60) % 60, h = Math.floor(r) % 60;
516
+ return v(`${i}/${a}/${u} ${l}:${o}:${h}`).valueOf();
517
+ }, l2 = (n, s, t) => {
805
518
  switch (n.type) {
806
- case U.max: {
519
+ case x.max: {
807
520
  let e = 0;
808
- return i.forValue((s, r, a) => {
521
+ return s.forValue((r, i, a) => {
809
522
  a > e && (e = a);
810
523
  }), {
811
- status: y.SUCCESS,
524
+ status: b.SUCCESS,
812
525
  result: e
813
526
  };
814
527
  }
815
- case U.min: {
528
+ case x.min: {
816
529
  let e;
817
- return i.forValue((s, r, a) => {
530
+ return s.forValue((r, i, a) => {
818
531
  e === void 0 && (e = a), a < e && (e = a);
819
532
  }), {
820
- status: y.SUCCESS,
533
+ status: b.SUCCESS,
821
534
  result: e
822
535
  };
823
536
  }
824
- case U.percent: {
825
- let e, s;
826
- i.forValue((o, l, c) => {
827
- (e === void 0 || s === void 0) && (e = c, s = c), c > e && (e = c), c < s && (s = c);
537
+ case x.percent: {
538
+ let e, r;
539
+ s.forValue((u, l, o) => {
540
+ (e === void 0 || r === void 0) && (e = o, r = o), o > e && (e = o), o < r && (r = o);
828
541
  });
829
- const r = (e || 0) - (s || 0), a = Math.max(Math.min(Number(n.value) || 0, 100), 0);
542
+ const i = (e || 0) - (r || 0), a = Math.max(Math.min(Number(n.value) || 0, 100), 0);
830
543
  return {
831
- status: y.SUCCESS,
832
- result: r * (a / 100) + (s || 0)
544
+ status: b.SUCCESS,
545
+ result: i * (a / 100) + (r || 0)
833
546
  };
834
547
  }
835
- case U.percentile: {
836
- const e = i.toNativeArray().sort((c, h) => c - h), s = Math.max(Math.min(Number(n.value) || 0, 100), 0), r = (e.length - 1) * s / 100, a = Math.floor(r), o = r - a, l = e[a] + (e[Math.min(a + 1, e.length - 1)] - e[a]) * o;
548
+ case x.percentile: {
549
+ const e = s.toNativeArray().sort((o, h) => o - h), r = Math.max(Math.min(Number(n.value) || 0, 100), 0), i = (e.length - 1) * r / 100, a = Math.floor(i), u = i - a, l = e[a] + (e[Math.min(a + 1, e.length - 1)] - e[a]) * u;
837
550
  return {
838
- status: y.SUCCESS,
551
+ status: b.SUCCESS,
839
552
  result: l
840
553
  };
841
554
  }
842
- case U.formula: {
843
- const { accessor: e, unitId: s, subUnitId: r, cfId: a } = t, o = String(n.value), l = e.get(N);
844
- return l.registerFormulaWithRange(s, r, a, o), l.getFormulaResult(s, r, a, o);
555
+ case x.formula: {
556
+ const { accessor: e, unitId: r, subUnitId: i, cfId: a } = t, u = String(n.value), l = e.get(G);
557
+ return l.registerFormulaWithRange(r, i, a, u), l.getFormulaResultWithCoords(r, i, a, u);
845
558
  }
846
- case U.num: {
559
+ case x.num: {
847
560
  const e = Number(n.value);
848
561
  return {
849
- status: y.SUCCESS,
562
+ status: b.SUCCESS,
850
563
  result: Number.isNaN(e) ? 0 : e
851
564
  };
852
565
  }
853
566
  }
854
- }, x1 = (n, i, t, e) => {
855
- const { accessor: s } = e, r = s.get(c2), a = new I();
856
- return t.ranges.forEach((o) => {
857
- R.foreach(o, (l, c) => {
858
- const h = r.getCellCf(n, i, l, c);
567
+ }, y1 = (n, s, t, e) => {
568
+ const { accessor: r } = e, i = r.get(j), a = new T();
569
+ return t.ranges.forEach((u) => {
570
+ N.foreach(u, (l, o) => {
571
+ const h = i.getCellCfs(n, s, l, o);
859
572
  if (h) {
860
- const u = h.cfList.find((g) => g.cfId === t.cfId);
861
- u != null && u.ruleCache && a.setValue(l, c, u.ruleCache);
573
+ const c = h.find((d) => d.cfId === t.cfId);
574
+ c != null && c.result && a.setValue(l, o, c.result);
862
575
  }
863
576
  });
864
577
  }), a;
865
- }, J = (n, i) => {
578
+ }, Y = (n, s) => {
866
579
  switch (n.operator) {
867
- case p.between: {
580
+ case w.between: {
868
581
  if (typeof n.value != "object" || !n.value.length)
869
582
  return;
870
583
  const t = Math.min(...n.value), e = Math.max(...n.value);
871
- return i >= t && i <= e;
584
+ return s >= t && s <= e;
872
585
  }
873
- case p.notBetween: {
586
+ case w.notBetween: {
874
587
  if (typeof n.value != "object" || !n.value.length)
875
588
  return;
876
589
  const t = Math.min(...n.value), e = Math.max(...n.value);
877
- return !(i >= t && i <= e);
590
+ return !(s >= t && s <= e);
878
591
  }
879
- case p.equal: {
592
+ case w.equal: {
880
593
  const t = n.value || 0;
881
- return r2(t, i);
594
+ return a2(t, s);
882
595
  }
883
- case p.notEqual: {
596
+ case w.notEqual: {
884
597
  const t = n.value || 0;
885
- return !r2(t, i);
598
+ return !a2(t, s);
886
599
  }
887
- case p.greaterThan: {
600
+ case w.greaterThan: {
888
601
  const t = n.value || 0;
889
- return i > t;
602
+ return s > t;
890
603
  }
891
- case p.greaterThanOrEqual: {
604
+ case w.greaterThanOrEqual: {
892
605
  const t = n.value || 0;
893
- return i >= t;
606
+ return s >= t;
894
607
  }
895
- case p.lessThan: {
608
+ case w.lessThan: {
896
609
  const t = n.value || 0;
897
- return i < t;
610
+ return s < t;
898
611
  }
899
- case p.lessThanOrEqual: {
612
+ case w.lessThanOrEqual: {
900
613
  const t = n.value || 0;
901
- return i <= t;
614
+ return s <= t;
902
615
  }
903
616
  default:
904
617
  return !1;
905
618
  }
906
- }, N0 = (n) => {
619
+ }, A0 = (n) => {
907
620
  switch (n) {
908
- case p.greaterThan:
909
- return p.lessThanOrEqual;
910
- case p.greaterThanOrEqual:
911
- return p.lessThan;
912
- case p.lessThan:
913
- return p.greaterThanOrEqual;
914
- case p.lessThanOrEqual:
915
- return p.greaterThan;
621
+ case w.greaterThan:
622
+ return w.lessThanOrEqual;
623
+ case w.greaterThanOrEqual:
624
+ return w.lessThan;
625
+ case w.lessThan:
626
+ return w.greaterThanOrEqual;
627
+ case w.lessThanOrEqual:
628
+ return w.greaterThan;
916
629
  }
917
630
  return n;
918
- }, O0 = (n, i) => {
919
- const t = (r) => r.a !== void 0 ? r : { ...r, a: 1 }, e = n.findIndex((r) => r.value >= i), s = e - 1;
631
+ }, _0 = (n, s) => {
632
+ const t = (i) => i.a !== void 0 ? i : { ...i, a: 1 }, e = n.findIndex((i) => i.value >= s), r = e - 1;
920
633
  if (e === 0)
921
634
  return n[0].color.toRgbString();
922
- if (s >= 0) {
923
- const r = n[s], a = n[e];
924
- if (r.color.isValid && a.color.isValid) {
925
- const o = t(r.color.toRgb()), l = t(a.color.toRgb()), c = a.value - r.value, h = (i - r.value) / c, u = ["r", "g", "b", "a"].reduce((d, D) => {
926
- const C = o[D];
927
- return d[D] = (l[D] - C) * h + C, d;
635
+ if (r >= 0) {
636
+ const i = n[r], a = n[e];
637
+ if (i.color.isValid && a.color.isValid) {
638
+ const u = t(i.color.toRgb()), l = t(a.color.toRgb()), o = a.value - i.value, h = (s - i.value) / o, c = ["r", "g", "b", "a"].reduce((C, D) => {
639
+ const f = u[D];
640
+ return C[D] = (l[D] - f) * h + f, C;
928
641
  }, {});
929
- return new M2(u).toRgbString();
642
+ return new b2(c).toRgbString();
930
643
  }
931
644
  } else
932
645
  return n[n.length - 1].color.toRgbString();
933
- }, u2 = (n, i, t) => n.map((e) => {
934
- if (e.startColumn > t || e.startRow > i)
646
+ }, w2 = (n, s, t) => n.map((e) => {
647
+ if (e.startColumn > t || e.startRow > s)
935
648
  return null;
936
- const s = { ...e };
937
- return s.endRow = Math.min(s.endRow, i), s.endColumn = Math.min(s.endColumn, t), s;
649
+ const r = { ...e };
650
+ return r.endRow = Math.min(r.endRow, s), r.endColumn = Math.min(r.endColumn, t), r;
938
651
  }).filter((e) => !!e);
939
- function _1(n) {
940
- let i = 0;
941
- return new I(n).forValue((t, e, s) => {
942
- i = Math.max(Number.isNaN(i) ? 0 : i, Number(s));
943
- }), i;
652
+ function M1(n) {
653
+ let s = 0;
654
+ return new T(n).forValue((t, e, r) => {
655
+ s = Math.max(Number.isNaN(s) ? 0 : s, Number(r));
656
+ }), s;
944
657
  }
945
- const T0 = "", P0 = {
946
- type: L.colorScale,
947
- handle: async (n, i) => {
948
- var u;
949
- const t = n.rule, e = i.accessor.get(N), { worksheet: s } = i, r = new I(), a = u2(n.ranges, s.getMaxRows() - 1, s.getMaxColumns() - 1);
950
- a.forEach((g) => {
951
- R.foreach(g, (d, D) => {
952
- const C = s == null ? void 0 : s.getCellRaw(d, D), m = C && C.v;
953
- if (!k(m) && (C == null ? void 0 : C.t) === B.NUMBER) {
954
- const F = Number(m);
955
- !Number.isNaN(F) && r.setValue(d, D, F);
658
+ class x0 extends u2 {
659
+ preComputing(s, t, e) {
660
+ const r = e.rule, i = e.worksheet, a = new T();
661
+ !r.rule.config.every((h) => h.value.type === x.num) && w2(r.ranges, i.getMaxRows() - 1, i.getMaxColumns() - 1).forEach((c) => {
662
+ N.foreach(c, (d, C) => {
663
+ const D = e.getCellValue(d, C), f = D && D.v;
664
+ if (!I(f) && (D == null ? void 0 : D.t) === _.NUMBER) {
665
+ const F = Number(f);
666
+ !Number.isNaN(F) && a.setValue(d, C, F);
956
667
  }
957
668
  });
958
669
  });
959
- const o = new I();
960
- a.forEach((g) => {
961
- R.foreach(g, (d, D) => {
962
- o.setValue(d, D, T0);
963
- });
964
- });
965
- const l = [...t.config].sort((g, d) => g.index - d.index).map((g) => ({
966
- value: a2(g.value, r, { ...i, cfId: n.cfId }),
967
- color: new M2(g.color)
670
+ const l = [...r.rule.config].sort((h, c) => h.index - c.index).map((h) => ({
671
+ value: l2(h.value, a, {
672
+ ...e,
673
+ cfId: r.cfId
674
+ }),
675
+ color: new b2(h.color)
968
676
  }));
969
- if (l.some((g) => i0(g.value) ? g.value.status !== y.SUCCESS : !1))
970
- return (u = e.getCache(i.unitId, i.subUnitId, n.cfId)) != null ? u : o;
971
- const h = l.map((g) => g.color).reduce((g, d, D) => (g.result.push({ color: d, value: g.sortValue[D] }), g), {
972
- result: [],
973
- sortValue: l.map((g) => g.value.result).sort((g, d) => g - d)
974
- }).result;
975
- return h.length <= 1 || r.forValue((g, d, D) => {
976
- const C = O0(h, D);
977
- C && o.setValue(g, d, C);
978
- }), o;
979
- }
980
- }, $0 = "sheet-conditional-rule-data-bar", v2 = "#ffbe38", p2 = "#abd91a", W0 = 34;
981
- class q0 extends I2 {
677
+ if (!l.some((h) => e0(h.value) ? h.value.status !== b.SUCCESS : !1)) {
678
+ const h = l.map((c) => c.color).reduce((c, d, C) => (c.result.push({ color: d, value: c.sortValue[C] }), c), {
679
+ result: [],
680
+ sortValue: l.map((c) => c.value.result).sort((c, d) => c - d)
681
+ }).result;
682
+ this.setPreComputingCache(h), this._preComputingStatus$.next(L.preComputingEnd);
683
+ return;
684
+ }
685
+ this._preComputingStatus$.next(L.preComputing);
686
+ }
687
+ getCellResult(s, t, e, r) {
688
+ if (!e)
689
+ return null;
690
+ const i = r.getCellValue(s, t);
691
+ if (i.t === _.NUMBER) {
692
+ const a = Number(i.v);
693
+ if (!Number.isNaN(a))
694
+ return _0(e, a);
695
+ }
696
+ }
697
+ }
698
+ const y0 = "sheet-conditional-rule-data-bar", x2 = "#ffbe38", y2 = "#abd91a", M0 = "#000", R0 = 34;
699
+ class I0 extends B2 {
982
700
  constructor() {
983
701
  super(...arguments);
984
- E(this, "_paddingRightAndLeft", 2);
985
- E(this, "_paddingTopAndBottom", 2);
986
- E(this, "uKey", $0);
987
- E(this, "Z_INDEX", W0);
988
- E(this, "_radius", 1);
702
+ m(this, "_paddingRightAndLeft", 2);
703
+ m(this, "_paddingTopAndBottom", 2);
704
+ m(this, "uKey", y0);
705
+ m(this, "Z_INDEX", R0);
706
+ m(this, "_radius", 1);
989
707
  }
990
708
  // eslint-disable-next-line max-lines-per-function
991
- draw(t, e, s, r) {
992
- const { worksheet: a } = s;
709
+ draw(t, e, r, i) {
710
+ const { worksheet: a } = r;
993
711
  if (!a)
994
712
  return !1;
995
- t.save(), R.foreach(s.rowColumnSegment, (o, l) => {
996
- if (!a.getRowVisible(o) || !a.getColVisible(l))
713
+ t.save(), N.foreach(r.rowColumnSegment, (u, l) => {
714
+ if (!a.getRowVisible(u) || !a.getColVisible(l))
997
715
  return;
998
- const c = a.getCell(o, l);
999
- if (c && c.dataBar) {
1000
- const { color: h, value: u, startPoint: g, isGradient: d } = c.dataBar, D = s.getCellWithCoordByIndex(o, l, !1);
1001
- let { isMerged: C, isMergedMainCell: m, mergeInfo: F, startY: w, endY: v, startX: A, endX: O } = D;
1002
- if (C || (m && (w = F.startY, v = F.endY, A = F.startX, O = F.endX), !this.isRenderDiffRangesByCell(F, r)))
716
+ const o = a.getCell(u, l);
717
+ if (o && o.dataBar) {
718
+ const { color: h, value: c, startPoint: d, isGradient: C } = o.dataBar, D = r.getCellWithCoordByIndex(u, l, !1);
719
+ let { isMerged: f, isMergedMainCell: F, mergeInfo: p, startY: S, endY: k, startX: V, endX: z } = D;
720
+ if (f || (F && (S = p.startY, k = p.endY, V = p.startX, z = p.endX), !this.isRenderDiffRangesByCell(p, i)))
1003
721
  return;
1004
- const P = O - A, h2 = v + s0 - w, e2 = P - this._paddingRightAndLeft * 2, F2 = h2 - this._paddingTopAndBottom * 2;
1005
- if (u > 0) {
1006
- const G = Math.max(e2 * (1 - g / 100) * u / 100, 1), $ = A + this._paddingRightAndLeft + g / 100 * e2, W = w + this._paddingTopAndBottom;
1007
- if (d) {
1008
- const q = t.createLinearGradient($, W, $ + G, W);
1009
- q.addColorStop(0, h), q.addColorStop(1, "rgb(255 255 255)"), t.fillStyle = q, t.strokeStyle = h, t.lineWidth = 1;
722
+ const Q = z - V, h2 = k + t0 - S, e2 = Q - this._paddingRightAndLeft * 2, p2 = h2 - this._paddingTopAndBottom * 2;
723
+ if (c > 0) {
724
+ const Z = Math.max(e2 * (1 - d / 100) * c / 100, 1), O = V + this._paddingRightAndLeft + d / 100 * e2, $ = S + this._paddingTopAndBottom;
725
+ if (C) {
726
+ const P = t.createLinearGradient(O, $, O + Z, $);
727
+ P.addColorStop(0, h), P.addColorStop(1, "rgb(255 255 255)"), t.fillStyle = P, t.strokeStyle = h, t.lineWidth = 1;
1010
728
  } else
1011
729
  t.fillStyle = h;
1012
- this._drawRectWithRoundedCorner(t, $, W, G, F2, !1, !0, !0, !1), d && t.stroke();
730
+ this._drawRectWithRoundedCorner(t, O, $, Z, p2, !1, !0, !0, !1), C && t.stroke();
1013
731
  } else {
1014
- const G = Math.max(e2 * g / 100 * Math.abs(u) / 100, 1), $ = A + this._paddingRightAndLeft + g / 100 * e2 - G, W = w + this._paddingTopAndBottom;
1015
- if (d) {
1016
- const q = t.createLinearGradient($, W, $ + G, W);
1017
- q.addColorStop(0, "rgb(255 255 255)"), q.addColorStop(1, h), t.fillStyle = q, t.strokeStyle = h, t.lineWidth = 1;
732
+ const Z = Math.max(e2 * d / 100 * Math.abs(c) / 100, 1), O = V + this._paddingRightAndLeft + d / 100 * e2 - Z, $ = S + this._paddingTopAndBottom;
733
+ if (C) {
734
+ const P = t.createLinearGradient(O, $, O + Z, $);
735
+ P.addColorStop(0, "rgb(255 255 255)"), P.addColorStop(1, h), t.fillStyle = P, t.strokeStyle = h, t.lineWidth = 1;
1018
736
  } else
1019
737
  t.fillStyle = h;
1020
- this._drawRectWithRoundedCorner(t, $, W, G, F2, !0, !1, !1, !0), d && t.stroke();
738
+ this._drawRectWithRoundedCorner(t, O, $, Z, p2, !0, !1, !1, !0), C && t.stroke();
1021
739
  }
1022
740
  }
1023
741
  }), t.restore();
1024
742
  }
1025
- _drawRectWithRoundedCorner(t, e, s, r, a, o, l, c, h) {
1026
- const u = this._radius;
1027
- !a || !r || (t.beginPath(), t.moveTo(e + u, s), t.lineTo(e + r - u, s), l ? t.arcTo(e + r, s, e + r, s + u, u) : t.lineTo(e + r, s), t.lineTo(e + r, s + a - u), c ? t.arcTo(e + r, s + a, e + r - u, s + a, u) : t.lineTo(e + r, s + a), t.lineTo(e + u, s + a), h ? t.arcTo(e, s + a, e, s + a - u, u) : t.lineTo(e, s + a), t.lineTo(e, s + u), o ? t.arcTo(e, s, e + u, s, u) : t.lineTo(e, s), t.closePath(), t.fill());
743
+ _drawRectWithRoundedCorner(t, e, r, i, a, u, l, o, h) {
744
+ const c = this._radius;
745
+ !a || !i || (t.beginPath(), t.moveTo(e + c, r), t.lineTo(e + i - c, r), l ? t.arcTo(e + i, r, e + i, r + c, c) : t.lineTo(e + i, r), t.lineTo(e + i, r + a - c), o ? t.arcTo(e + i, r + a, e + i - c, r + a, c) : t.lineTo(e + i, r + a), t.lineTo(e + c, r + a), h ? t.arcTo(e, r + a, e, r + a - c, c) : t.lineTo(e, r + a), t.lineTo(e, r + c), u ? t.arcTo(e, r, e + c, r, c) : t.lineTo(e, r), t.closePath(), t.fill());
1028
746
  }
1029
747
  }
1030
- R2.add(q0);
1031
- const X = {};
1032
- Object.freeze(X);
1033
- const Z0 = {
1034
- type: L.dataBar,
1035
- // eslint-disable-next-line max-lines-per-function
1036
- handle: async (n, i) => {
1037
- const t = n.rule, e = i.accessor.get(N), { worksheet: s } = i, r = new I(), a = u2(n.ranges, s.getMaxRows() - 1, s.getMaxColumns() - 1);
1038
- a.forEach((C) => {
1039
- R.foreach(C, (m, F) => {
1040
- const w = s == null ? void 0 : s.getCellRaw(m, F), v = w && w.v;
1041
- if (!k(v) && (w == null ? void 0 : w.t) === B.NUMBER) {
1042
- const A = Number(v);
1043
- !Number.isNaN(A) && r.setValue(m, F, A);
748
+ L2.add(I0);
749
+ const t2 = (n) => Math.max(Math.min(100, n), 0), b0 = (n, s, t) => {
750
+ const e = t(n, s);
751
+ if (e && e.t === _.NUMBER) {
752
+ const r = Number(e.v);
753
+ return Number.isNaN(r) ? null : r;
754
+ }
755
+ return null;
756
+ };
757
+ class S0 extends u2 {
758
+ preComputing(s, t, e) {
759
+ const r = e.rule, i = r.rule, a = e.worksheet, u = new T();
760
+ ![r.rule.config.max, r.rule.config.min].every((C) => C.type === x.num) && w2(r.ranges, a.getMaxRows() - 1, a.getMaxColumns() - 1).forEach((D) => {
761
+ N.foreach(D, (f, F) => {
762
+ const p = e.getCellValue(f, F), S = p && p.v;
763
+ if (!I(S) && (p == null ? void 0 : p.t) === _.NUMBER) {
764
+ const k = Number(S);
765
+ !Number.isNaN(k) && u.setValue(f, F, k);
1044
766
  }
1045
767
  });
1046
768
  });
1047
- const o = new I();
1048
- a.forEach((C) => {
1049
- R.foreach(C, (m, F) => {
1050
- o.setValue(m, F, X);
1051
- });
1052
- });
1053
- const l = a2(t.config.min, r, { ...i, cfId: n.cfId }), c = a2(t.config.max, r, { ...i, cfId: n.cfId });
1054
- let h = 0, u = 0;
1055
- if (l.status === y.WAIT)
1056
- return e.getCache(i.unitId, i.subUnitId, n.cfId) || o;
1057
- if (l.status === y.SUCCESS) {
1058
- const C = Number(l.result);
1059
- h = Number.isNaN(C) ? 0 : C;
1060
- } else
1061
- return o;
1062
- if (c.status === y.WAIT)
1063
- return e.getCache(i.unitId, i.subUnitId, n.cfId) || o;
1064
- if (c.status === y.SUCCESS) {
1065
- const C = Number(c.result), m = Number.isNaN(C) ? 0 : C;
1066
- u = Math.max(m, h), h = Math.min(m, h);
1067
- } else
1068
- return o;
1069
- const g = t.config.isGradient, d = t.isShowValue, D = (C) => Math.max(Math.min(100, C), 0);
1070
- if (!(h === u || u < h)) {
1071
- if (h < 0 && u <= 0) {
1072
- const C = u - h, m = 100;
1073
- r.forValue((F, w, v) => {
1074
- if (v > u)
1075
- return;
1076
- const A = D((u - v) / C * 100);
1077
- o.setValue(F, w, { color: t.config.nativeColor || p2, startPoint: m, value: -A, isGradient: g, isShowValue: d });
1078
- });
1079
- } else if (h < 0 && u > 0) {
1080
- const C = Math.abs(u) + Math.abs(h), m = Math.abs(h) / C * 100;
1081
- r.forValue((F, w, v) => {
1082
- if (v)
1083
- if (v > 0) {
1084
- const A = D(Math.min(v / u, 1) * 100);
1085
- o.setValue(F, w, { color: t.config.positiveColor || v2, startPoint: m, value: A, isGradient: g, isShowValue: d });
1086
- } else {
1087
- const A = D(Math.min(Math.abs(v) / Math.abs(h), 1) * 100);
1088
- o.setValue(F, w, { color: t.config.nativeColor || p2, startPoint: m, value: -A, isGradient: g, isShowValue: d });
1089
- }
1090
- });
1091
- } else if (h >= 0 && u > 0) {
1092
- const C = u - h, m = 0;
1093
- r.forValue((F, w, v) => {
1094
- if (v < h)
1095
- return;
1096
- const A = D((1 - (u - v) / C) * 100);
1097
- o.setValue(F, w, { color: t.config.positiveColor || v2, startPoint: m, value: A, isGradient: g, isShowValue: d });
1098
- });
769
+ const o = l2(i.config.min, u, { ...e, cfId: r.cfId }), h = l2(i.config.max, u, { ...e, cfId: r.cfId });
770
+ let c = 0, d = 0;
771
+ if (o.status === b.SUCCESS) {
772
+ const C = Number(o.result);
773
+ c = Number.isNaN(C) ? 0 : C;
774
+ } else {
775
+ this._preComputingStatus$.next(L.preComputing);
776
+ return;
777
+ }
778
+ if (h.status === b.SUCCESS) {
779
+ const C = Number(h.result), D = Number.isNaN(C) ? 0 : C;
780
+ d = Math.max(D, c), c = Math.min(D, c);
781
+ let f = 50;
782
+ if (c < 0 && d <= 0)
783
+ f = 100;
784
+ else if (c < 0 && d > 0) {
785
+ const F = Math.abs(d) + Math.abs(c);
786
+ f = Math.abs(c) / F * 100;
787
+ } else c >= 0 && d > 0 && (f = 0);
788
+ this.setPreComputingCache({ min: c, max: d, startPoint: f }), this._preComputingStatus$.next(L.preComputingEnd);
789
+ return;
790
+ }
791
+ this._preComputingStatus$.next(L.preComputing);
792
+ }
793
+ // eslint-disable-next-line complexity
794
+ getCellResult(s, t, e, r) {
795
+ const { min: i, max: a, startPoint: u } = e, o = r.rule.rule, h = o.isShowValue, c = o.config.isGradient, d = b0(s, t, r.getCellValue);
796
+ if (!(d === null || d < i || i === a || a < i)) {
797
+ if (d === 0)
798
+ return { color: M0, startPoint: u, value: 0, isGradient: c, isShowValue: h };
799
+ if (i < 0 && a <= 0) {
800
+ const C = a - i, D = t2((a - d) / C * 100);
801
+ return D === 0 ? void 0 : { color: o.config.nativeColor || y2, startPoint: u, value: -D, isGradient: c, isShowValue: h };
802
+ } else if (i < 0 && a > 0)
803
+ if (d > 0) {
804
+ const C = t2(Math.min(d / a, 1) * 100);
805
+ return C === 0 ? void 0 : { color: o.config.positiveColor || x2, startPoint: u, value: C, isGradient: c, isShowValue: h };
806
+ } else {
807
+ const C = t2(Math.min(Math.abs(d) / Math.abs(i), 1) * 100);
808
+ return C === 0 ? void 0 : { color: o.config.nativeColor || y2, startPoint: u, value: -C, isGradient: c, isShowValue: h };
809
+ }
810
+ else if (i >= 0 && a > 0) {
811
+ const C = a - i, D = 0, f = t2((1 - (a - d) / C) * 100);
812
+ return f === 0 ? void 0 : { color: o.config.positiveColor || x2, startPoint: D, value: f, isGradient: c, isShowValue: h };
1099
813
  }
1100
814
  }
1101
- return o;
1102
- }
1103
- }, j0 = {
1104
- type: L.highlightCell,
1105
- handle: async (n, i) => {
1106
- const t = n.rule, { worksheet: e, unitId: s, subUnitId: r } = i, a = u2(n.ranges, e.getMaxRows() - 1, e.getMaxColumns() - 1), l = (() => {
1107
- switch (t.subType) {
1108
- case _.average: {
1109
- let u = 0, g = 0;
1110
- return a.forEach((d) => {
1111
- R.foreach(d, (D, C) => {
1112
- const m = e == null ? void 0 : e.getCellRaw(D, C), F = T(m || void 0);
1113
- m && m.t === B.NUMBER && F !== void 0 && (u += Number(F) || 0, g++);
815
+ }
816
+ }
817
+ class L0 extends u2 {
818
+ // eslint-disable-next-line max-lines-per-function
819
+ preComputing(s, t, e) {
820
+ const r = e.rule.rule, i = e.rule.ranges, u = (() => {
821
+ switch (r.subType) {
822
+ case E.average: {
823
+ let l = 0, o = 0;
824
+ return i.forEach((h) => {
825
+ N.foreach(h, (c, d) => {
826
+ const C = e.getCellValue(c, d), D = U(C || void 0);
827
+ C && C.t === _.NUMBER && D !== void 0 && (l += Number(D) || 0, o++);
1114
828
  });
1115
- }), { average: u / g };
829
+ }), { value: l / o, type: r.subType };
1116
830
  }
1117
- case _.uniqueValues:
1118
- case _.duplicateValues: {
1119
- const u = /* @__PURE__ */ new Map();
1120
- return a.forEach((g) => {
1121
- R.foreach(g, (d, D) => {
1122
- const C = e == null ? void 0 : e.getCellRaw(d, D), m = T(C || void 0);
1123
- if (m !== void 0) {
1124
- const F = u.get(m);
1125
- F ? u.set(m, F + 1) : u.set(m, 1);
831
+ case E.uniqueValues:
832
+ case E.duplicateValues: {
833
+ const l = /* @__PURE__ */ new Map();
834
+ return i.forEach((o) => {
835
+ N.foreach(o, (h, c) => {
836
+ const d = e.getCellValue(h, c), C = U(d || void 0);
837
+ if (C !== void 0) {
838
+ const D = l.get(C);
839
+ D ? l.set(C, D + 1) : l.set(C, 1);
1126
840
  }
1127
841
  });
1128
- }), { count: u };
842
+ }), { value: l, type: r.subType };
1129
843
  }
1130
- case _.rank: {
1131
- const u = [];
1132
- a.forEach((D) => {
1133
- R.foreach(D, (C, m) => {
1134
- const F = e == null ? void 0 : e.getCellRaw(C, m), w = T(F || void 0);
1135
- F && F.t === B.NUMBER && w !== void 0 && u.push(Number(w) || 0);
844
+ case E.rank: {
845
+ const l = [];
846
+ i.forEach((c) => {
847
+ N.foreach(c, (d, C) => {
848
+ const D = e.getCellValue(d, C), f = U(D || void 0);
849
+ D && D.t === _.NUMBER && f !== void 0 && l.push(Number(f) || 0);
1136
850
  });
1137
- }), u.sort((D, C) => C - D);
1138
- const g = n.rule, d = g.isPercent ? Math.floor(Math.max(Math.min(g.value, 100), 0) / 100 * u.length) : Math.floor(Math.max(Math.min(g.isBottom ? g.value - 1 : g.value, u.length), 0));
1139
- return g.isBottom ? { rank: u[u.length - d - 1] } : { rank: u[Math.max(d - 1, 0)] };
851
+ }), l.sort((c, d) => d - c);
852
+ const o = e.rule.rule, h = o.isPercent ? Math.floor(Math.max(Math.min(o.value, 100), 0) / 100 * l.length) : Math.floor(Math.max(Math.min(o.isBottom ? o.value - 1 : o.value, l.length), 0));
853
+ return o.isBottom ? { value: l[l.length - h - 1], type: r.subType } : { value: l[Math.max(h - 1, 0)], type: r.subType };
1140
854
  }
1141
- case _.formula: {
1142
- const u = t;
1143
- i.accessor.get(N).registerFormulaWithRange(i.unitId, i.subUnitId, n.cfId, u.value, n.ranges);
1144
- break;
855
+ case E.formula: {
856
+ const l = r, o = e.accessor.get(G);
857
+ o.registerFormulaWithRange(e.unitId, e.subUnitId, e.rule.cfId, l.value, e.rule.ranges);
858
+ const h = o.getFormulaMatrix(e.unitId, e.subUnitId, e.rule.cfId, l.value);
859
+ return h && h.status === b.SUCCESS ? (this._preComputingStatus$.next(L.preComputingEnd), {
860
+ value: h.result,
861
+ type: r.subType
862
+ }) : (this._preComputingStatus$.next(L.preComputing), null);
1145
863
  }
1146
- case _.timePeriod:
1147
- switch (t.operator) {
1148
- case S.last7Days:
864
+ case E.timePeriod:
865
+ switch (r.operator) {
866
+ case R.last7Days:
1149
867
  return {
1150
- timePeriod: {
1151
- start: x().subtract(7, "day").valueOf(),
1152
- end: x().valueOf()
1153
- }
868
+ value: {
869
+ start: v().subtract(7, "day").valueOf(),
870
+ end: v().valueOf()
871
+ },
872
+ type: r.subType
1154
873
  };
1155
- case S.lastMonth:
874
+ case R.lastMonth:
1156
875
  return {
1157
- timePeriod: {
1158
- start: x().startOf("month").subtract(1, "month").valueOf(),
1159
- end: x().endOf("month").subtract(1, "month").valueOf()
1160
- }
876
+ value: {
877
+ start: v().startOf("month").subtract(1, "month").valueOf(),
878
+ end: v().endOf("month").subtract(1, "month").valueOf()
879
+ },
880
+ type: r.subType
1161
881
  };
1162
- case S.lastWeek:
882
+ case R.lastWeek:
1163
883
  return {
1164
- timePeriod: {
1165
- start: x().startOf("week").subtract(1, "week").valueOf(),
1166
- end: x().endOf("week").subtract(1, "week").valueOf()
1167
- }
884
+ value: {
885
+ start: v().startOf("week").subtract(1, "week").valueOf(),
886
+ end: v().endOf("week").subtract(1, "week").valueOf()
887
+ },
888
+ type: r.subType
1168
889
  };
1169
- case S.nextMonth:
890
+ case R.nextMonth:
1170
891
  return {
1171
- timePeriod: {
1172
- start: x().startOf("month").add(1, "month").valueOf(),
1173
- end: x().endOf("month").add(1, "month").valueOf()
1174
- }
892
+ value: {
893
+ start: v().startOf("month").add(1, "month").valueOf(),
894
+ end: v().endOf("month").add(1, "month").valueOf()
895
+ },
896
+ type: r.subType
1175
897
  };
1176
- case S.nextWeek:
898
+ case R.nextWeek:
1177
899
  return {
1178
- timePeriod: {
1179
- start: x().startOf("week").add(1, "week").valueOf(),
1180
- end: x().endOf("week").add(1, "week").valueOf()
1181
- }
900
+ value: {
901
+ start: v().startOf("week").add(1, "week").valueOf(),
902
+ end: v().endOf("week").add(1, "week").valueOf()
903
+ },
904
+ type: r.subType
1182
905
  };
1183
- case S.thisMonth:
906
+ case R.thisMonth:
1184
907
  return {
1185
- timePeriod: {
1186
- start: x().startOf("month").valueOf(),
1187
- end: x().endOf("month").valueOf()
1188
- }
908
+ value: {
909
+ start: v().startOf("month").valueOf(),
910
+ end: v().endOf("month").valueOf()
911
+ },
912
+ type: r.subType
1189
913
  };
1190
- case S.thisWeek:
914
+ case R.thisWeek:
1191
915
  return {
1192
- timePeriod: {
1193
- start: x().startOf("week").valueOf(),
1194
- end: x().endOf("week").valueOf()
1195
- }
916
+ value: {
917
+ start: v().startOf("week").valueOf(),
918
+ end: v().endOf("week").valueOf()
919
+ },
920
+ type: r.subType
1196
921
  };
1197
- case S.today:
922
+ case R.today:
1198
923
  return {
1199
- timePeriod: {
1200
- start: x().startOf("day").valueOf(),
1201
- end: x().endOf("day").valueOf()
1202
- }
924
+ value: {
925
+ start: v().startOf("day").valueOf(),
926
+ end: v().endOf("day").valueOf()
927
+ },
928
+ type: r.subType
1203
929
  };
1204
- case S.tomorrow:
930
+ case R.tomorrow:
1205
931
  return {
1206
- timePeriod: {
1207
- start: x().startOf("day").add(1, "day").valueOf(),
1208
- end: x().endOf("day").add(1, "day").valueOf()
1209
- }
932
+ value: {
933
+ start: v().startOf("day").add(1, "day").valueOf(),
934
+ end: v().endOf("day").add(1, "day").valueOf()
935
+ },
936
+ type: r.subType
1210
937
  };
1211
- case S.yesterday:
938
+ case R.yesterday:
1212
939
  return {
1213
- timePeriod: {
1214
- start: x().startOf("day").subtract(1, "day").valueOf(),
1215
- end: x().endOf("day").subtract(1, "day").valueOf()
1216
- }
940
+ value: {
941
+ start: v().startOf("day").subtract(1, "day").valueOf(),
942
+ end: v().endOf("day").subtract(1, "day").valueOf()
943
+ },
944
+ type: r.subType
1217
945
  };
1218
946
  }
1219
947
  }
1220
- })(), c = (u, g) => {
1221
- const d = e == null ? void 0 : e.getCellRaw(u, g);
1222
- switch (t.subType) {
1223
- case _.number: {
1224
- const D = d && Number(d.v);
1225
- if (k(D) || Number.isNaN(D) || (d == null ? void 0 : d.t) !== B.NUMBER)
1226
- return !1;
1227
- const C = t;
1228
- return J({ operator: C.operator, value: C.value || 0 }, D || 0);
948
+ })();
949
+ this.setPreComputingCache(u);
950
+ }
951
+ // eslint-disable-next-line max-lines-per-function
952
+ getCellResult(s, t, e, r) {
953
+ const i = r.getCellValue(s, t), a = r.rule.rule;
954
+ return (() => {
955
+ switch (a.subType) {
956
+ case E.number: {
957
+ const o = i && Number(i.v);
958
+ if (I(o) || Number.isNaN(o) || (i == null ? void 0 : i.t) !== _.NUMBER)
959
+ return;
960
+ const h = a;
961
+ return Y({ operator: h.operator, value: h.value || 0 }, o || 0);
1229
962
  }
1230
- case _.text: {
1231
- const D = t, C = T(d), m = C === null ? "" : String(C), F = D.value || "";
1232
- switch (D.operator) {
1233
- case b.beginsWith:
1234
- return m.startsWith(F);
1235
- case b.containsBlanks:
1236
- return /^\s*$/.test(m);
1237
- case b.notContainsBlanks:
1238
- return !/^\s*$/.test(m);
1239
- case b.containsErrors:
1240
- return E2.has(m);
1241
- case b.notContainsErrors:
1242
- return !E2.has(m);
1243
- case b.containsText:
1244
- return m.indexOf(F) > -1;
1245
- case b.notContainsText:
1246
- return m.indexOf(F) === -1;
1247
- case b.endsWith:
1248
- return m.endsWith(F);
1249
- case b.equal:
1250
- return m === F;
1251
- case b.notEqual:
1252
- return m !== F;
963
+ case E.text: {
964
+ const o = a, h = U(i), c = h === null ? "" : String(h), d = o.value || "";
965
+ switch (o.operator) {
966
+ case M.beginsWith:
967
+ return c.startsWith(d);
968
+ case M.containsBlanks:
969
+ return /^\s*$/.test(c);
970
+ case M.notContainsBlanks:
971
+ return !/^\s*$/.test(c);
972
+ case M.containsErrors:
973
+ return _2.has(c);
974
+ case M.notContainsErrors:
975
+ return !_2.has(c);
976
+ case M.containsText:
977
+ return c.indexOf(d) > -1;
978
+ case M.notContainsText:
979
+ return c.indexOf(d) === -1;
980
+ case M.endsWith:
981
+ return c.endsWith(d);
982
+ case M.equal:
983
+ return c === d;
984
+ case M.notEqual:
985
+ return c !== d;
1253
986
  default:
1254
987
  return !1;
1255
988
  }
1256
989
  }
1257
- case _.timePeriod: {
1258
- const D = T(d);
1259
- if (k(D) || Number.isNaN(Number(D)) || (d == null ? void 0 : d.t) !== B.NUMBER)
1260
- return !1;
1261
- const C = U0(Number(D)), { start: m, end: F } = l.timePeriod;
1262
- return C >= m && C <= F;
990
+ case E.timePeriod: {
991
+ const o = U(i);
992
+ if (I(o) || Number.isNaN(Number(o)) || (i == null ? void 0 : i.t) !== _.NUMBER || !e)
993
+ return;
994
+ const h = p0(Number(o)), { start: c, end: d } = e.value;
995
+ return h >= c && h <= d;
1263
996
  }
1264
- case _.average: {
1265
- const D = d && d.v, C = Number(D);
1266
- if (k(D) || Number.isNaN(C) || (d == null ? void 0 : d.t) !== B.NUMBER)
997
+ case E.average: {
998
+ const o = i && i.v, h = Number(o);
999
+ if (I(o) || Number.isNaN(h) || (i == null ? void 0 : i.t) !== _.NUMBER || !e)
1267
1000
  return !1;
1268
- const m = t, F = l == null ? void 0 : l.average;
1269
- switch (m.operator) {
1270
- case p.greaterThan:
1271
- return C > F;
1272
- case p.greaterThanOrEqual:
1273
- return C >= F;
1274
- case p.lessThan:
1275
- return C < F;
1276
- case p.lessThanOrEqual:
1277
- return C <= F;
1278
- case p.equal:
1279
- return r2(C, F);
1280
- case p.notEqual:
1281
- return !r2(C, F);
1001
+ const c = a, d = e.value;
1002
+ switch (c.operator) {
1003
+ case w.greaterThan:
1004
+ return h > d;
1005
+ case w.greaterThanOrEqual:
1006
+ return h >= d;
1007
+ case w.lessThan:
1008
+ return h < d;
1009
+ case w.lessThanOrEqual:
1010
+ return h <= d;
1011
+ case w.equal:
1012
+ return a2(h, d);
1013
+ case w.notEqual:
1014
+ return !a2(h, d);
1282
1015
  default:
1283
1016
  return !1;
1284
1017
  }
1285
1018
  }
1286
- case _.rank: {
1287
- const D = T(d), C = Number(D);
1288
- if (k(D) || Number.isNaN(C) || (d == null ? void 0 : d.t) !== B.NUMBER)
1019
+ case E.rank: {
1020
+ const o = U(i), h = Number(o);
1021
+ if (I(o) || Number.isNaN(h) || (i == null ? void 0 : i.t) !== _.NUMBER || !e)
1289
1022
  return !1;
1290
- const m = l.rank;
1291
- return t.isBottom ? C <= m : C >= m;
1023
+ const c = e.value;
1024
+ return a.isBottom ? h <= c : h >= c;
1292
1025
  }
1293
- case _.uniqueValues: {
1294
- const D = T(d);
1295
- return k(D) ? !1 : l.count.get(D) === 1;
1026
+ case E.uniqueValues: {
1027
+ const o = U(i);
1028
+ return I(o) || !e ? !1 : e.value.get(o) === 1;
1296
1029
  }
1297
- case _.duplicateValues: {
1298
- const D = T(d);
1299
- return k(D) ? !1 : l.count.get(D) !== 1;
1030
+ case E.duplicateValues: {
1031
+ const o = U(i);
1032
+ return I(o) || !e ? !1 : e.value.get(o) !== 1;
1300
1033
  }
1301
- case _.formula: {
1302
- const D = t, m = i.accessor.get(N).getFormulaResult(s, r, n.cfId, D.value, u, g);
1303
- return m && m.status === y.SUCCESS ? m.result === !0 : !1;
1034
+ case E.formula: {
1035
+ const o = e == null ? void 0 : e.value;
1036
+ return o ? o.getValue(s, t) === !0 : !1;
1304
1037
  }
1305
1038
  }
1306
- }, h = new I();
1307
- if (t.subType === _.formula) {
1308
- const u = t, g = i.accessor.get(N), d = g.getSubUnitFormulaMap(s, r), D = d == null ? void 0 : d.getValue(g.createCFormulaId(n.cfId, u.value), ["id"]);
1309
- if (!D || D.status !== y.SUCCESS)
1310
- return g.getCache(s, r, n.cfId) || h;
1311
- }
1312
- return a.forEach((u) => {
1313
- R.foreach(u, (g, d) => {
1314
- c(g, d) ? h.setValue(g, d, t.style) : h.setValue(g, d, X);
1315
- });
1316
- }), h;
1317
- }
1318
- }, G0 = {
1319
- type: L.iconSet,
1320
- handle: async (n, i) => {
1321
- var g;
1322
- const t = n.rule, e = i.accessor.get(N), { worksheet: s } = i, r = new I(), a = u2(n.ranges, s.getMaxRows() - 1, s.getMaxColumns() - 1);
1323
- a.forEach((d) => {
1324
- R.foreach(d, (D, C) => {
1325
- const m = s == null ? void 0 : s.getCellRaw(D, C), F = m && m.v;
1326
- if (!k(F) && (m == null ? void 0 : m.t) === B.NUMBER) {
1327
- const w = Number(F);
1328
- !Number.isNaN(w) && r.setValue(D, C, w);
1039
+ })() ? a.style : {};
1040
+ }
1041
+ }
1042
+ const B0 = (n, s, t) => {
1043
+ const e = t(n, s);
1044
+ if (e && e.t === _.NUMBER) {
1045
+ const r = Number(e.v);
1046
+ return Number.isNaN(r) ? null : r;
1047
+ }
1048
+ return null;
1049
+ };
1050
+ class k0 extends u2 {
1051
+ preComputing(s, t, e) {
1052
+ const r = e.rule.rule, i = e.worksheet, a = new T();
1053
+ !r.config.every((h) => h.value.type === x.num) && w2(e.rule.ranges, i.getMaxRows() - 1, i.getMaxColumns() - 1).forEach((c) => {
1054
+ N.foreach(c, (d, C) => {
1055
+ const D = e.getCellValue(d, C), f = D && D.v;
1056
+ if (!I(f) && (D == null ? void 0 : D.t) === _.NUMBER) {
1057
+ const F = Number(f);
1058
+ !Number.isNaN(F) && a.setValue(d, C, F);
1329
1059
  }
1330
1060
  });
1331
1061
  });
1332
- const o = new I();
1333
- a.forEach((d) => {
1334
- R.foreach(d, (D, C) => {
1335
- o.setValue(D, C, X);
1062
+ const l = r.config.map((h) => l2(h.value, a, { ...e, cfId: e.rule.cfId }));
1063
+ if (!l.some((h) => h.status !== b.SUCCESS)) {
1064
+ const h = l.map((c, d) => ({
1065
+ operator: r.config[d].operator,
1066
+ value: Number(c.result) || 0
1067
+ })).reduce((c, d, C, D) => {
1068
+ const f = r.config[C];
1069
+ if (!C || C === D.length - 1)
1070
+ c.push({ ...d, iconId: f.iconId, iconType: f.iconType });
1071
+ else {
1072
+ const F = D[C - 1];
1073
+ Y(F, d.value) || c.push({ ...d, iconId: f.iconId, iconType: f.iconType });
1074
+ }
1075
+ return c;
1076
+ }, []);
1077
+ this.setPreComputingCache(h), this._preComputingStatus$.next(L.preComputingEnd);
1078
+ return;
1079
+ }
1080
+ this._preComputingStatus$.next(L.preComputing);
1081
+ }
1082
+ getCellResult(s, t, e, r) {
1083
+ if (!e)
1084
+ return null;
1085
+ const i = B0(s, t, r.getCellValue);
1086
+ if (i === null)
1087
+ return;
1088
+ const a = r.rule.rule, u = a.isShowValue === void 0 ? !0 : !!a.isShowValue;
1089
+ for (let l = 0; l < e.length; l++) {
1090
+ const o = e[l], h = { ...o }, c = { ...o }, { iconId: d, iconType: C } = o;
1091
+ if (l === 0) {
1092
+ if (Y(o, i))
1093
+ return { iconId: d, iconType: C, isShowValue: u };
1094
+ } else {
1095
+ if (l === e.length - 1)
1096
+ return { iconId: d, iconType: C, isShowValue: u };
1097
+ {
1098
+ const D = e[l - 1];
1099
+ if (c.operator = A0(D.operator), c.value = D.value, Y(h, i) && Y(c, i))
1100
+ return { iconId: d, iconType: C, isShowValue: u };
1101
+ }
1102
+ }
1103
+ }
1104
+ }
1105
+ }
1106
+ var N0 = Object.defineProperty, T0 = Object.getOwnPropertyDescriptor, U0 = (n, s, t, e) => {
1107
+ for (var r = e > 1 ? void 0 : e ? T0(s, t) : s, i = n.length - 1, a; i >= 0; i--)
1108
+ (a = n[i]) && (r = (e ? a(s, t, r) : a(r)) || r);
1109
+ return e && r && N0(s, t, r), r;
1110
+ }, r2 = (n, s) => (t, e) => s(t, e, n);
1111
+ const C2 = 50 * 20 * 3 * 3;
1112
+ let j = class extends m2 {
1113
+ constructor(s, t, e, r) {
1114
+ super();
1115
+ // Map<unitID ,<sheetId ,ObjectMatrix>>
1116
+ m(this, "_calculateUnitManagers", /* @__PURE__ */ new Map());
1117
+ m(this, "_rTreeManager", new $2());
1118
+ /**
1119
+ * 1nd-level cache
1120
+ */
1121
+ m(this, "_cellCache", new I2(C2));
1122
+ m(this, "_markDirty$", new i2());
1123
+ /**
1124
+ * The rendering layer listens to this variable to determine whether a reRender is necessary.
1125
+ * @memberof ConditionalFormattingViewModel
1126
+ */
1127
+ m(this, "markDirty$", this._markDirty$.asObservable());
1128
+ /**
1129
+ `isNeedResetPreComputingCache` indicates whether it is necessary to remove the 2nd-level cache for each rule individually.
1130
+ Generally, when the logic of a rule calculation is modified, the cache for that rule needs to be removed.
1131
+ Changes in style/priority do not require the clearing of the 2nd-level cache.
1132
+ Rule changes/region changes require the removal of the 2nd-level cache.
1133
+ There is also a situation where preComputing is asynchronously calculated.
1134
+ After the calculation is finished, it is only for marking as dirty, and the 2nd-level cache need to be cleared.
1135
+ * @param {boolean} [isNeedResetPreComputingCache]
1136
+ */
1137
+ m(this, "_markRuleDirtyAtOnce", (s, t, e, r = !0) => {
1138
+ if (this._cellCache.clear(), r) {
1139
+ const a = this._ensureCalculateUnitManager(s, t).get(e);
1140
+ a && a.resetPreComputingCache();
1141
+ }
1142
+ this._markDirty$.next({
1143
+ unitId: s,
1144
+ subUnitId: t,
1145
+ cfId: e
1336
1146
  });
1337
1147
  });
1338
- const l = t.config.map((d) => a2(d.value, r, { ...i, cfId: n.cfId }));
1339
- if (l.some((d) => d.status !== y.SUCCESS))
1340
- return (g = e.getCache(i.unitId, i.subUnitId, n.cfId)) != null ? g : o;
1341
- const h = l.map((d, D) => ({
1342
- operator: t.config[D].operator,
1343
- value: Number(d.result) || 0
1344
- })).reduce((d, D, C, m) => {
1345
- const F = t.config[C];
1346
- if (!C || C === m.length - 1)
1347
- d.push({ ...D, iconId: F.iconId, iconType: F.iconType });
1348
- else {
1349
- const w = m[C - 1];
1350
- J(w, D.value) || d.push({ ...D, iconId: F.iconId, iconType: F.iconType });
1351
- }
1352
- return d;
1353
- }, []), u = t.isShowValue === void 0 ? !0 : !!t.isShowValue;
1354
- return r.forValue((d, D, C) => {
1355
- for (let m = 0; m < h.length; m++) {
1356
- const F = h[m], w = { ...F }, v = { ...F }, { iconId: A, iconType: O } = F;
1357
- if (m === 0) {
1358
- if (J(F, C)) {
1359
- o.setValue(d, D, { iconId: A, iconType: O, isShowValue: u });
1148
+ /**
1149
+ * For the same condition format being marked dirty multiple times at the same time,
1150
+ * it will cause the style cache to be cleared, thereby causing the screen to flicker.
1151
+ * Here,multiple dirties are merged into one..
1152
+ */
1153
+ m(this, "markRuleDirty", (() => {
1154
+ const s = new i2();
1155
+ return s.pipe(H2(100), X2((t) => !!t.length), Y2((t) => {
1156
+ const e = /* @__PURE__ */ new Set(), r = [];
1157
+ return t.forEach((i) => {
1158
+ const a = `${i.unitId}_${i.subUnitId}_${i.cfId}`;
1159
+ if (e.has(a)) {
1160
+ if (i.isNeedResetPreComputingCache) {
1161
+ const u = r.find((l) => l.cfId === i.cfId);
1162
+ u.isNeedResetPreComputingCache = !0;
1163
+ }
1360
1164
  return;
1361
1165
  }
1362
- } else if (m === h.length - 1) {
1363
- o.setValue(d, D, { iconId: A, iconType: O, isShowValue: u });
1364
- return;
1365
- } else {
1366
- const P = h[m - 1];
1367
- if (v.operator = N0(P.operator), v.value = P.value, J(w, C) && J(v, C)) {
1368
- o.setValue(d, D, { iconId: A, iconType: O, isShowValue: u });
1369
- return;
1166
+ e.add(a), r.push({ ...i });
1167
+ }), r;
1168
+ })).subscribe((t) => {
1169
+ t.forEach((e) => {
1170
+ this._markRuleDirtyAtOnce(e.unitId, e.subUnitId, e.cfId, e.isNeedResetPreComputingCache);
1171
+ });
1172
+ }), (t, e, r, i = !0) => {
1173
+ s.next({ unitId: t, subUnitId: e, cfId: r, isNeedResetPreComputingCache: i });
1174
+ };
1175
+ })());
1176
+ this._injector = s, this._conditionalFormattingRuleModel = t, this._conditionalFormattingFormulaService = e, this._univerInstanceService = r, this._initRuleListener(), this._handleCustomFormulasSeparately(), this._initCFFormulaListener();
1177
+ }
1178
+ _initCFFormulaListener() {
1179
+ this.disposeWithMe(
1180
+ this._conditionalFormattingFormulaService.result$.subscribe(({ unitId: s, subUnitId: t, cfId: e, isAllFinished: r }) => {
1181
+ r && this._markRuleDirtyAtOnce(s, t, e, r);
1182
+ })
1183
+ );
1184
+ }
1185
+ getCellCfs(s, t, e, r) {
1186
+ const i = this._createCacheKey(s, t, e, r);
1187
+ if (this._cellCache.has(i))
1188
+ return this._cellCache.get(i);
1189
+ const a = this._getCellCfs(s, t, e, r);
1190
+ return a.length && this._cellCache.set(i, a), a;
1191
+ }
1192
+ _getCellCfs(s, t, e, r) {
1193
+ var h;
1194
+ const i = (h = this._conditionalFormattingRuleModel.getSubunitRules(s, t)) != null ? h : [], a = this._ensureCalculateUnitManager(s, t), u = this._rTreeManager.bulkSearch([{ unitId: s, sheetId: t, range: { startColumn: r, endColumn: r, startRow: e, endRow: e } }]), l = i.filter((c) => u.has(c.cfId));
1195
+ return l.length ? l.map((c) => {
1196
+ const d = a.get(c.cfId);
1197
+ return d ? {
1198
+ cfId: c.cfId,
1199
+ result: d.getCell(e, r)
1200
+ } : null;
1201
+ }).filter((c) => !!c).map((c, d) => ({ ...c, priority: d })) : [];
1202
+ }
1203
+ _handleCustomFormulasSeparately() {
1204
+ this.disposeWithMe(
1205
+ this._conditionalFormattingRuleModel.$ruleChange.subscribe((s) => {
1206
+ if (s.type === "set") {
1207
+ const { unitId: t, subUnitId: e } = s, r = s.oldRule;
1208
+ r.rule.type === y.highlightCell && r.rule.subType === E.formula && this._conditionalFormattingFormulaService.deleteCache(t, e, r.cfId);
1209
+ }
1210
+ })
1211
+ );
1212
+ }
1213
+ _initRuleListener() {
1214
+ this.disposeWithMe(
1215
+ this._conditionalFormattingRuleModel.$ruleChange.subscribe((s) => {
1216
+ const { unitId: t, subUnitId: e, rule: r } = s, { cfId: i, ranges: a } = r, u = this._ensureCalculateUnitManager(t, e);
1217
+ switch (this.markRuleDirty(t, e, i), s.type) {
1218
+ case "add": {
1219
+ this._rTreeManager.bulkInsert(a.map((o) => ({ unitId: t, sheetId: e, id: i, range: o })));
1220
+ const l = this._createRuleCalculateUnitInstance(t, e, r);
1221
+ if (!l)
1222
+ return;
1223
+ u.set(r.cfId, l);
1224
+ break;
1225
+ }
1226
+ case "delete": {
1227
+ this._rTreeManager.bulkRemove(a.map((l) => ({ unitId: t, sheetId: e, id: i, range: l }))), u.delete(r.cfId);
1228
+ break;
1229
+ }
1230
+ case "set": {
1231
+ const l = s.oldRule;
1232
+ if (this._rTreeManager.bulkRemove(l.ranges.map((o) => ({ unitId: t, sheetId: e, id: l.cfId, range: o }))), this._rTreeManager.bulkInsert(a.map((o) => ({ unitId: t, sheetId: e, id: i, range: o }))), l.rule.type !== r.rule.type) {
1233
+ const o = this._createRuleCalculateUnitInstance(t, e, r);
1234
+ if (!o)
1235
+ return;
1236
+ u.delete(l.cfId), u.set(r.cfId, o);
1237
+ } else {
1238
+ const o = u.get(l.cfId);
1239
+ if (!o)
1240
+ return;
1241
+ o.updateRule(r);
1242
+ }
1370
1243
  }
1371
1244
  }
1372
- }
1373
- }), o;
1245
+ })
1246
+ );
1374
1247
  }
1375
- };
1376
- var H0 = Object.defineProperty, X0 = Object.getOwnPropertyDescriptor, Y0 = (n, i, t, e) => {
1377
- for (var s = e > 1 ? void 0 : e ? X0(i, t) : i, r = n.length - 1, a; r >= 0; r--)
1378
- (a = n[r]) && (s = (e ? a(i, t, s) : a(s)) || s);
1379
- return e && s && H0(i, t, s), s;
1380
- }, Z = (n, i) => (t, e) => i(t, e, n);
1381
- const K0 = N2("conditional-formatting-before-update-rule-result");
1382
- let z = class extends x2 {
1383
- constructor(i, t, e, s, r, a, o) {
1384
- super();
1385
- // <unitId,<subUnitId,<cfId,IComputeCache>>>
1386
- E(this, "_ruleCacheMap", /* @__PURE__ */ new Map());
1387
- E(this, "_calculateUnit$", new s2());
1388
- E(this, "_ruleComputeStatus$", new s2());
1389
- E(this, "ruleComputeStatus$", this._ruleComputeStatus$.asObservable());
1390
- E(this, "interceptorManager", new P2({ beforeUpdateRuleResult: K0 }));
1391
- E(this, "_calculationUnitMap", /* @__PURE__ */ new Map());
1392
- this._conditionalFormattingRuleModel = i, this._injector = t, this._conditionalFormattingViewModel = e, this._univerInstanceService = s, this._resourceManagerService = r, this._sheetInterceptorService = a, this._commandService = o, this._initCellChange(), this._initCacheManager(), this._initRemoteCalculate(), this._initSnapshot(), this._initSheetChange(), this._registerCalculationUnit(Z0), this._registerCalculationUnit(P0), this._registerCalculationUnit(j0), this._registerCalculationUnit(G0), this._calculateUnit$.pipe(y2(100), D2((l) => !!l.length), Z2((l) => {
1393
- const c = (u) => `${u.unitId}_${u.subUnitId}_${u.rule.cfId}`;
1394
- return l.reduce((u, g) => {
1395
- const d = c(g);
1396
- return u.map[d] || (u.map[d] = g, u.list.push(g)), u;
1397
- }, {
1398
- map: {},
1399
- list: []
1400
- }).list;
1401
- })).subscribe((l) => {
1402
- l.forEach((c) => {
1403
- this._handleCalculateUnit(c.unitId, c.subUnitId, c.rule);
1248
+ _ensureCalculateUnitManager(s, t) {
1249
+ let e = this._calculateUnitManagers.get(s);
1250
+ e || (e = /* @__PURE__ */ new Map(), this._calculateUnitManagers.set(s, e));
1251
+ let r = e.get(t);
1252
+ return r || (r = /* @__PURE__ */ new Map(), e.set(t, r)), r;
1253
+ }
1254
+ _createRuleCalculateUnitInstance(s, t, e) {
1255
+ const r = this._univerInstanceService.getUnit(s), i = r == null ? void 0 : r.getSheetBySheetId(t);
1256
+ if (!r || !i)
1257
+ return;
1258
+ const a = {
1259
+ workbook: r,
1260
+ worksheet: i,
1261
+ unitId: s,
1262
+ subUnitId: t,
1263
+ accessor: this._injector,
1264
+ rule: e,
1265
+ limit: C2,
1266
+ getCellValue: (u, l) => i.getCellRaw(u, l) || {}
1267
+ };
1268
+ switch (e.rule.type) {
1269
+ case y.colorScale:
1270
+ return new x0(a);
1271
+ case y.dataBar:
1272
+ return new S0(a);
1273
+ case y.highlightCell:
1274
+ return new L0(a);
1275
+ case y.iconSet:
1276
+ return new k0(a);
1277
+ }
1278
+ }
1279
+ _createCacheKey(s, t, e, r) {
1280
+ return `${s}_${t}_${e}_${r}`;
1281
+ }
1282
+ setCacheLength(s = C2) {
1283
+ this._cellCache.limit !== s && (this._cellCache.limit = s, this._calculateUnitManagers.forEach((t) => {
1284
+ t.forEach((e) => {
1285
+ e.forEach((r) => {
1286
+ r.setCacheLength(s);
1287
+ });
1404
1288
  });
1405
- }), this.disposeWithMe(() => {
1406
- this.interceptorManager.dispose();
1407
- });
1289
+ }));
1408
1290
  }
1409
- composeStyle(i, t, e, s) {
1410
- const r = this._conditionalFormattingViewModel.getCellCf(i, t, e, s);
1411
- if (r) {
1412
- const a = r.cfList.map((c) => this._conditionalFormattingRuleModel.getRule(i, t, c.cfId)).filter((c) => !!c).reverse(), o = a.findIndex((c) => c == null ? void 0 : c.stopIfTrue);
1413
- return o > -1 && a.splice(o + 1), a.reduce((c, h) => {
1291
+ };
1292
+ j = U0([
1293
+ r2(0, A(F2)),
1294
+ r2(1, A(B)),
1295
+ r2(2, A(G)),
1296
+ r2(3, S2)
1297
+ ], j);
1298
+ const V0 = { mistake: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Ccircle%20cx%3D%229.99999%22%20cy%3D%2210%22%20r%3D%227.03704%22%20fill%3D%22%23FE4B4B%22%2F%3E%0A%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M6.87359%206.87332C6.6146%207.13231%206.6146%207.55221%206.87359%207.8112L9.062%209.99961L6.87356%2012.188C6.61457%2012.447%206.61457%2012.8669%206.87356%2013.1259C7.13255%2013.3849%207.55245%2013.3849%207.81144%2013.1259L9.99987%2010.9375L12.1882%2013.1258C12.4472%2013.3848%2012.8671%2013.3848%2013.1261%2013.1258C13.3851%2012.8669%2013.3851%2012.447%2013.1261%2012.188L10.9378%209.99961L13.1261%207.81127C13.3851%207.55228%2013.3851%207.13238%2013.1261%206.87339C12.8671%206.61441%2012.4472%206.61441%2012.1882%206.87339L9.99987%209.06173L7.81147%206.87332C7.55248%206.61433%207.13257%206.61433%206.87359%206.87332Z%22%20fill%3D%22%23FFFFFF%22%2F%3E%0A%3C%2Fsvg%3E%0A", warn: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Ccircle%20cx%3D%229.99999%22%20cy%3D%2210%22%20r%3D%227.03704%22%20fill%3D%22%23FFBD37%22%2F%3E%0A%3Cpath%20d%3D%22M9.16817%206.67735C9.16646%206.61745%209.1656%206.5875%209.16653%206.56236C9.18103%206.16817%209.49136%205.84883%209.88497%205.82306C9.91008%205.82141%209.94004%205.82141%209.99996%205.82141V5.82141C10.0599%205.82141%2010.0899%205.82141%2010.115%205.82306C10.5086%205.84883%2010.8189%206.16817%2010.8334%206.56236C10.8343%206.5875%2010.8335%206.61745%2010.8318%206.67735L10.7043%2011.131C10.6934%2011.5121%2010.3812%2011.8154%209.99995%2011.8154V11.8154C9.61866%2011.8154%209.30655%2011.5121%209.29564%2011.131L9.16817%206.67735Z%22%20fill%3D%22%23FFFFFF%22%2F%3E%0A%3Crect%20x%3D%229.31488%22%20y%3D%2212.8086%22%20width%3D%221.37006%22%20height%3D%221.37006%22%20rx%3D%220.685032%22%20fill%3D%22%23FFFFFF%22%2F%3E%0A%3C%2Fsvg%3E%0A", correct: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20d%3D%22M17.037%2010C17.037%2013.8865%2013.8864%2017.0371%209.99999%2017.0371C6.11354%2017.0371%202.96295%2013.8865%202.96295%2010C2.96295%206.1136%206.11354%202.96301%209.99999%202.96301C13.8864%202.96301%2017.037%206.1136%2017.037%2010Z%22%20fill%3D%22%2359D01E%22%2F%3E%0A%3Cpath%20d%3D%22M13.9239%207.17477C13.6638%206.91472%2013.2422%206.91472%2012.9821%207.17477L8.74433%2011.4126L7.01786%209.6861C6.75781%209.42606%206.33619%209.42606%206.07614%209.6861C5.81609%209.94615%205.81609%2010.3678%206.07614%2010.6278L8.27349%2012.8252C8.53354%2013.0852%208.95516%2013.0852%209.21521%2012.8252L9.2195%2012.8209L13.9239%208.1165C14.1839%207.85645%2014.1839%207.43482%2013.9239%207.17477Z%22%20fill%3D%22%23FFFFFF%22%2F%3E%0A%3C%2Fsvg%3E%0A" }, O0 = { starEmpty: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20d%3D%22M10.3437%203.3312L11.6861%206.67412C11.8451%207.0699%2012.2165%207.33978%2012.6421%207.36863L16.2362%207.61233C16.5693%207.63492%2016.7048%208.05202%2016.4486%208.26608L13.6841%2010.5758C13.3568%2010.8493%2013.215%2011.2859%2013.319%2011.6996L14.1979%2015.1931C14.2793%2015.5168%2013.9245%2015.7746%2013.6418%2015.5971L10.5908%2013.6817C10.2296%2013.4549%209.77045%2013.4549%209.40924%2013.6817L6.35828%2015.5971C6.07553%2015.7746%205.72072%2015.5168%205.80217%2015.1931L6.68105%2011.6996C6.7851%2011.2859%206.64322%2010.8493%206.31592%2010.5758L3.55145%208.26607C3.29525%208.05202%203.43078%207.63492%203.76386%207.61233L7.358%207.36863C7.78352%207.33978%208.15498%207.0699%208.31391%206.67412L9.65633%203.3312C9.78074%203.0214%2010.2193%203.0214%2010.3437%203.3312Z%22%20fill%3D%22%23fff%22%20stroke%3D%22%23FFBD37%22%20stroke-width%3D%220.740741%22%2F%3E%0A%3C%2Fsvg%3E%0A", starIncomplete: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cg%20clip-path%3D%22url(%23clip0_613_177)%22%3E%0A%3Cmask%20id%3D%22mask0_613_177%22%20style%3D%22mask-type%3Aalpha%22%20maskUnits%3D%22userSpaceOnUse%22%20x%3D%2210%22%20y%3D%220%22%20width%3D%2210%22%20height%3D%2220%22%3E%0A%3Crect%20x%3D%2210.3704%22%20y%3D%220.37037%22%20width%3D%229.25926%22%20height%3D%2219.2593%22%20fill%3D%22%23C4C4C4%22%20stroke%3D%22%23F7D564%22%20stroke-width%3D%220.740741%22%2F%3E%0A%3C%2Fmask%3E%0A%3Cg%20mask%3D%22url(%23mask0_613_177)%22%3E%0A%3Cpath%20d%3D%22M10.3437%203.3312L11.6861%206.67412C11.845%207.0699%2012.2165%207.33978%2012.642%207.36863L16.2361%207.61233C16.5692%207.63492%2016.7047%208.05202%2016.4485%208.26608L13.6841%2010.5758C13.3568%2010.8493%2013.2149%2011.2859%2013.3189%2011.6996L14.1978%2015.1931C14.2793%2015.5168%2013.9245%2015.7746%2013.6417%2015.5971L10.5908%2013.6817C10.2295%2013.4549%209.77039%2013.4549%209.40918%2013.6817L6.35822%2015.5971C6.07547%2015.7746%205.72066%2015.5168%205.80211%2015.1931L6.68098%2011.6996C6.78504%2011.2859%206.64316%2010.8493%206.31586%2010.5758L3.55139%208.26607C3.29519%208.05202%203.43072%207.63492%203.7638%207.61233L7.35793%207.36863C7.78346%207.33978%208.15491%207.0699%208.31385%206.67412L9.65627%203.3312C9.78068%203.0214%2010.2192%203.0214%2010.3437%203.3312Z%22%20fill%3D%22%23fff%22%20stroke%3D%22%23FFBD37%22%20stroke-width%3D%220.740741%22%2F%3E%0A%3C%2Fg%3E%0A%3Cmask%20id%3D%22mask1_613_177%22%20style%3D%22mask-type%3Aalpha%22%20maskUnits%3D%22userSpaceOnUse%22%20x%3D%220%22%20y%3D%220%22%20width%3D%2210%22%20height%3D%2220%22%3E%0A%3Crect%20width%3D%2210%22%20height%3D%2220%22%20fill%3D%22%23C4C4C4%22%2F%3E%0A%3C%2Fmask%3E%0A%3Cg%20mask%3D%22url(%23mask1_613_177)%22%3E%0A%3Cpath%20d%3D%22M10.3437%203.3312L11.6861%206.67412C11.845%207.0699%2012.2165%207.33978%2012.642%207.36863L16.2361%207.61233C16.5692%207.63492%2016.7047%208.05202%2016.4485%208.26608L13.6841%2010.5758C13.3568%2010.8493%2013.2149%2011.2859%2013.3189%2011.6996L14.1978%2015.1931C14.2793%2015.5168%2013.9245%2015.7746%2013.6417%2015.5971L10.5908%2013.6817C10.2295%2013.4549%209.77039%2013.4549%209.40918%2013.6817L6.35822%2015.5971C6.07547%2015.7746%205.72066%2015.5168%205.80211%2015.1931L6.68098%2011.6996C6.78504%2011.2859%206.64316%2010.8493%206.31586%2010.5758L3.55139%208.26607C3.29519%208.05202%203.43072%207.63492%203.7638%207.61233L7.35793%207.36863C7.78346%207.33978%208.15491%207.0699%208.31385%206.67412L9.65627%203.3312C9.78068%203.0214%2010.2192%203.0214%2010.3437%203.3312Z%22%20fill%3D%22%23FFBD37%22%20stroke%3D%22%23FFBD37%22%20stroke-width%3D%220.740741%22%2F%3E%0A%3C%2Fg%3E%0A%3C%2Fg%3E%0A%3Cdefs%3E%0A%3CclipPath%20id%3D%22clip0_613_177%22%3E%0A%3Crect%20width%3D%2220%22%20height%3D%2220%22%20fill%3D%22white%22%2F%3E%0A%3C%2FclipPath%3E%0A%3C%2Fdefs%3E%0A%3C%2Fsvg%3E%0A", starFull: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20d%3D%22M10.3437%203.3312L11.6861%206.67412C11.8451%207.0699%2012.2165%207.33978%2012.6421%207.36863L16.2362%207.61233C16.5693%207.63492%2016.7048%208.05202%2016.4486%208.26608L13.6841%2010.5758C13.3568%2010.8493%2013.215%2011.2859%2013.319%2011.6996L14.1979%2015.1931C14.2793%2015.5168%2013.9245%2015.7746%2013.6418%2015.5971L10.5908%2013.6817C10.2296%2013.4549%209.77045%2013.4549%209.40924%2013.6817L6.35828%2015.5971C6.07553%2015.7746%205.72072%2015.5168%205.80217%2015.1931L6.68105%2011.6996C6.7851%2011.2859%206.64322%2010.8493%206.31592%2010.5758L3.55145%208.26607C3.29525%208.05202%203.43078%207.63492%203.76386%207.61233L7.358%207.36863C7.78352%207.33978%208.15498%207.0699%208.31391%206.67412L9.65633%203.3312C9.78074%203.0214%2010.2193%203.0214%2010.3437%203.3312Z%22%20fill%3D%22%23FFBD37%22%20stroke%3D%22%23FFBD37%22%20stroke-width%3D%220.740741%22%2F%3E%0A%3C%2Fsvg%3E%0A" }, $0 = { progress0: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Ccircle%20cx%3D%2210%22%20cy%3D%229.99993%22%20r%3D%226.66667%22%20stroke%3D%22%237A7A7A%22%20stroke-width%3D%220.740741%22%2F%3E%0A%3C%2Fsvg%3E%0A", progress25: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Ccircle%20cx%3D%2210%22%20cy%3D%229.99993%22%20r%3D%226.66667%22%20stroke%3D%22%237A7A7A%22%20stroke-width%3D%220.740741%22%2F%3E%0A%3Cpath%20d%3D%22M16.2963%209.99991C16.2963%209.17307%2016.1335%208.35432%2015.8171%207.59042C15.5006%206.82652%2015.0369%206.13242%2014.4522%205.54776C13.8675%204.96309%2013.1734%204.49931%2012.4095%204.18289C11.6456%203.86647%2010.8269%203.70361%2010%203.70361L10%209.99991H16.2963Z%22%20fill%3D%22%237A7A7A%22%2F%3E%0A%3C%2Fsvg%3E%0A", progress50: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Ccircle%20cx%3D%2210%22%20cy%3D%229.99993%22%20r%3D%226.66667%22%20stroke%3D%22%237A7A7A%22%20stroke-width%3D%220.740741%22%2F%3E%0A%3Cpath%20d%3D%22M10%2016.2962C11.6699%2016.2962%2013.2714%2015.6328%2014.4522%2014.4521C15.633%2013.2713%2016.2963%2011.6698%2016.2963%209.99991C16.2963%208.33003%2015.633%206.72854%2014.4522%205.54776C13.2714%204.36697%2011.6699%203.70361%2010%203.70361L10%209.99991L10%2016.2962Z%22%20fill%3D%22%237A7A7A%22%2F%3E%0A%3C%2Fsvg%3E%0A", progress75: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Ccircle%20cx%3D%2210%22%20cy%3D%229.99993%22%20r%3D%226.66667%22%20stroke%3D%22%237A7A7A%22%20stroke-width%3D%220.740741%22%2F%3E%0A%3Cpath%20d%3D%22M3.70374%209.99991C3.70374%2011.2452%204.07301%2012.4625%204.76485%2013.4979C5.4567%2014.5334%206.44005%2015.3404%207.59054%2015.8169C8.74104%2016.2935%2010.007%2016.4182%2011.2284%2016.1752C12.4497%2015.9323%2013.5716%2015.3326%2014.4522%2014.4521C15.3327%2013.5715%2015.9324%2012.4496%2016.1753%2011.2283C16.4183%2010.0069%2016.2936%208.74092%2015.8171%207.59042C15.3405%206.43992%2014.5335%205.45658%2013.4981%204.76473C12.4626%204.07288%2011.2453%203.70361%2010%203.70361L10%209.99991L3.70374%209.99991Z%22%20fill%3D%22%237A7A7A%22%2F%3E%0A%3C%2Fsvg%3E%0A", progress100: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Ccircle%20cx%3D%2210%22%20cy%3D%229.99993%22%20r%3D%226.66667%22%20stroke%3D%22%237A7A7A%22%20stroke-width%3D%220.740741%22%2F%3E%0A%3Ccircle%20cx%3D%2210%22%20cy%3D%229.99991%22%20r%3D%226.2963%22%20fill%3D%22%237A7A7A%22%2F%3E%0A%3C%2Fsvg%3E%0A" }, P0 = { signal0: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Crect%20x%3D%2214.4764%22%20y%3D%222.98926%22%20width%3D%222.3%22%20height%3D%2214.0597%22%20rx%3D%220.5%22%20fill%3D%22%23E5E5E5%22%2F%3E%0A%3Crect%20x%3D%2210.7255%22%20y%3D%225.93921%22%20width%3D%222.3%22%20height%3D%2211.1096%22%20rx%3D%220.5%22%20fill%3D%22%23E5E5E5%22%2F%3E%0A%3Crect%20x%3D%226.97455%22%20y%3D%229.70435%22%20width%3D%222.3%22%20height%3D%227.3443%22%20rx%3D%220.5%22%20fill%3D%22%23E5E5E5%22%2F%3E%0A%3Crect%20x%3D%223.22363%22%20y%3D%2213.3302%22%20width%3D%222.3%22%20height%3D%223.71851%22%20rx%3D%220.5%22%20fill%3D%22%23E5E5E5%22%2F%3E%0A%3C%2Fsvg%3E%0A", signal25: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Crect%20x%3D%2214.4764%22%20y%3D%222.98926%22%20width%3D%222.3%22%20height%3D%2214.0597%22%20rx%3D%220.5%22%20fill%3D%22%23E5E5E5%22%2F%3E%0A%3Crect%20x%3D%2210.7255%22%20y%3D%225.93921%22%20width%3D%222.3%22%20height%3D%2211.1096%22%20rx%3D%220.5%22%20fill%3D%22%23E5E5E5%22%2F%3E%0A%3Crect%20x%3D%226.97455%22%20y%3D%229.70435%22%20width%3D%222.3%22%20height%3D%227.3443%22%20rx%3D%220.5%22%20fill%3D%22%23E5E5E5%22%2F%3E%0A%3Crect%20x%3D%223.22363%22%20y%3D%2213.3302%22%20width%3D%222.3%22%20height%3D%223.71851%22%20rx%3D%220.5%22%20fill%3D%22%230493EE%22%2F%3E%0A%3C%2Fsvg%3E%0A", signal50: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Crect%20x%3D%2214.4764%22%20y%3D%222.98926%22%20width%3D%222.3%22%20height%3D%2214.0597%22%20rx%3D%220.5%22%20fill%3D%22%23E5E5E5%22%2F%3E%0A%3Crect%20x%3D%2210.7255%22%20y%3D%225.93921%22%20width%3D%222.3%22%20height%3D%2211.1096%22%20rx%3D%220.5%22%20fill%3D%22%23E5E5E5%22%2F%3E%0A%3Crect%20x%3D%226.97455%22%20y%3D%229.70435%22%20width%3D%222.3%22%20height%3D%227.3443%22%20rx%3D%220.5%22%20fill%3D%22%230493EE%22%2F%3E%0A%3Crect%20x%3D%223.22363%22%20y%3D%2213.3302%22%20width%3D%222.3%22%20height%3D%223.71851%22%20rx%3D%220.5%22%20fill%3D%22%230493EE%22%2F%3E%0A%3C%2Fsvg%3E%0A", signal75: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Crect%20x%3D%2214.4764%22%20y%3D%222.98926%22%20width%3D%222.3%22%20height%3D%2214.0597%22%20rx%3D%220.5%22%20fill%3D%22%23E5E5E5%22%2F%3E%0A%3Crect%20x%3D%2210.7255%22%20y%3D%225.93921%22%20width%3D%222.3%22%20height%3D%2211.1096%22%20rx%3D%220.5%22%20fill%3D%22%230493EE%22%2F%3E%0A%3Crect%20x%3D%226.97455%22%20y%3D%229.70435%22%20width%3D%222.3%22%20height%3D%227.3443%22%20rx%3D%220.5%22%20fill%3D%22%230493EE%22%2F%3E%0A%3Crect%20x%3D%223.22363%22%20y%3D%2213.3302%22%20width%3D%222.3%22%20height%3D%223.71851%22%20rx%3D%220.5%22%20fill%3D%22%230493EE%22%2F%3E%0A%3C%2Fsvg%3E%0A", signal100: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Crect%20x%3D%2214.4764%22%20y%3D%222.98926%22%20width%3D%222.3%22%20height%3D%2214.0597%22%20rx%3D%220.5%22%20fill%3D%22%230493EE%22%2F%3E%0A%3Crect%20x%3D%2210.7255%22%20y%3D%225.93933%22%20width%3D%222.3%22%20height%3D%2211.1096%22%20rx%3D%220.5%22%20fill%3D%22%230493EE%22%2F%3E%0A%3Crect%20x%3D%226.97455%22%20y%3D%229.70447%22%20width%3D%222.3%22%20height%3D%227.3443%22%20rx%3D%220.5%22%20fill%3D%22%230493EE%22%2F%3E%0A%3Crect%20x%3D%223.22363%22%20y%3D%2213.3302%22%20width%3D%222.3%22%20height%3D%223.71851%22%20rx%3D%220.5%22%20fill%3D%22%230493EE%22%2F%3E%0A%3C%2Fsvg%3E%0A" }, W0 = { guffaw: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20d%3D%22M16.887%2010C16.887%2013.8037%2013.8036%2016.8871%209.99999%2016.8871C6.19638%2016.8871%203.11295%2013.8037%203.11295%2010C3.11295%206.19644%206.19638%203.11301%209.99999%203.11301C13.8036%203.11301%2016.887%206.19644%2016.887%2010Z%22%20fill%3D%22%23FFBD37%22%20stroke%3D%22%238F5F00%22%20stroke-width%3D%220.3%22%2F%3E%0A%3Crect%20x%3D%227.40741%22%20y%3D%227.40735%22%20width%3D%221.48148%22%20height%3D%221.48148%22%20rx%3D%220.740741%22%20fill%3D%22%238F5F00%22%2F%3E%0A%3Crect%20x%3D%2211.1111%22%20y%3D%227.40735%22%20width%3D%221.48148%22%20height%3D%221.48148%22%20rx%3D%220.740741%22%20fill%3D%22%238F5F00%22%2F%3E%0A%3Cpath%20d%3D%22M12.5355%2013.5821C13.0482%2013.1841%2013.3951%2012.6107%2013.5405%2012.0327C13.5934%2011.8226%2013.5051%2011.6349%2013.3518%2011.5331C13.2036%2011.4346%2013.0031%2011.4203%2012.8265%2011.5131C11.0615%2012.4407%208.94609%2012.4427%207.1828%2011.513C7.00629%2011.4199%206.80602%2011.4343%206.65798%2011.5329C6.50518%2011.6346%206.41701%2011.8217%206.46844%2012.0312C6.61029%2012.609%206.95079%2013.1833%207.46449%2013.5821C8.14361%2014.1093%209.05608%2014.3999%2010%2014.3999C10.9439%2014.3999%2011.8564%2014.1093%2012.5355%2013.5821Z%22%20fill%3D%22white%22%20stroke%3D%22%238F5F00%22%20stroke-width%3D%220.4%22%2F%3E%0A%3C%2Fsvg%3E%0A", smile: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Ccircle%20cx%3D%229.99999%22%20cy%3D%2210%22%20r%3D%226.88704%22%20fill%3D%22%23FFBD37%22%20stroke%3D%22%238F5F00%22%20stroke-width%3D%220.3%22%2F%3E%0A%3Crect%20x%3D%227.40741%22%20y%3D%227.40735%22%20width%3D%221.48148%22%20height%3D%221.48148%22%20rx%3D%220.740741%22%20fill%3D%22%238F5F00%22%2F%3E%0A%3Crect%20x%3D%2211.1111%22%20y%3D%227.40735%22%20width%3D%221.48148%22%20height%3D%221.48148%22%20rx%3D%220.740741%22%20fill%3D%22%238F5F00%22%2F%3E%0A%3Cpath%20d%3D%22M7.03705%2011.8518C7.03705%2011.8518%207.77779%2013.7037%2010%2013.7037C12.2222%2013.7037%2012.963%2011.8518%2012.963%2011.8518%22%20stroke%3D%22%238F5F00%22%20stroke-width%3D%220.962963%22%20stroke-linecap%3D%22round%22%2F%3E%0A%3C%2Fsvg%3E%0A", noninductive: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Ccircle%20cx%3D%229.99999%22%20cy%3D%2210%22%20r%3D%226.88704%22%20fill%3D%22%23FFBD37%22%20stroke%3D%22%238F5F00%22%20stroke-width%3D%220.3%22%2F%3E%0A%3Crect%20x%3D%227.40741%22%20y%3D%227.9259%22%20width%3D%221.48148%22%20height%3D%221.11111%22%20rx%3D%220.555556%22%20fill%3D%22%238F5F00%22%2F%3E%0A%3Crect%20x%3D%2211.1111%22%20y%3D%227.9259%22%20width%3D%221.48148%22%20height%3D%221.11111%22%20rx%3D%220.555556%22%20fill%3D%22%238F5F00%22%2F%3E%0A%3Cpath%20d%3D%22M7.03705%2012.5927C7.03705%2012.5927%208.14816%2012.5927%2010.3704%2012.5927C12.5926%2012.5927%2012.963%2012.5927%2012.963%2012.5927%22%20stroke%3D%22%238F5F00%22%20stroke-width%3D%220.962963%22%20stroke-linecap%3D%22round%22%2F%3E%0A%3C%2Fsvg%3E%0A", dissatisfied: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Ccircle%20cx%3D%229.99999%22%20cy%3D%2210%22%20r%3D%226.88704%22%20fill%3D%22%23FFBD37%22%20stroke%3D%22%238F5F00%22%20stroke-width%3D%220.3%22%2F%3E%0A%3Crect%20x%3D%227.40741%22%20y%3D%227.40735%22%20width%3D%221.48148%22%20height%3D%221.48148%22%20rx%3D%220.740741%22%20fill%3D%22%238F5F00%22%2F%3E%0A%3Crect%20x%3D%2211.1111%22%20y%3D%227.40735%22%20width%3D%221.48148%22%20height%3D%221.48148%22%20rx%3D%220.740741%22%20fill%3D%22%238F5F00%22%2F%3E%0A%3Cpath%20d%3D%22M7.03705%2013.7037C7.03705%2013.7037%207.77779%2011.8519%2010%2011.8519C12.2222%2011.8519%2012.963%2013.7037%2012.963%2013.7037%22%20stroke%3D%22%238F5F00%22%20stroke-width%3D%220.962963%22%20stroke-linecap%3D%22round%22%2F%3E%0A%3C%2Fsvg%3E%0A", impatient: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Ccircle%20cx%3D%229.99999%22%20cy%3D%2210%22%20r%3D%226.88704%22%20fill%3D%22%23FFBD37%22%20stroke%3D%22%238F5F00%22%20stroke-width%3D%220.3%22%2F%3E%0A%3Crect%20x%3D%227.40741%22%20y%3D%227.40735%22%20width%3D%221.48148%22%20height%3D%221.48148%22%20rx%3D%220.740741%22%20fill%3D%22%238F5F00%22%2F%3E%0A%3Crect%20x%3D%2211.1111%22%20y%3D%227.40735%22%20width%3D%221.48148%22%20height%3D%221.48148%22%20rx%3D%220.740741%22%20fill%3D%22%238F5F00%22%2F%3E%0A%3Cpath%20d%3D%22M7.47573%2011.731C6.96306%2012.129%206.61613%2012.7024%206.47071%2013.2804C6.41784%2013.4905%206.50617%2013.6782%206.65942%2013.78C6.80761%2013.8785%207.00813%2013.8928%207.18477%2013.8C8.9498%2012.8724%2011.0652%2012.8704%2012.8285%2013.8002C13.005%2013.8932%2013.2052%2013.8788%2013.3533%2013.7802C13.5061%2013.6785%2013.5942%2013.4914%2013.5428%2013.2819C13.401%2012.7041%2013.0605%2012.1298%2012.5468%2011.731C11.8676%2011.2038%2010.9552%2010.9132%2010.0112%2010.9132C9.06732%2010.9132%208.15485%2011.2038%207.47573%2011.731Z%22%20fill%3D%22white%22%20stroke%3D%22%238F5F00%22%20stroke-width%3D%220.4%22%2F%3E%0A%3C%2Fsvg%3E%0A" }, Z0 = JSON.parse('{"down-red":"data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M8.90467%203.99244C8.84611%204.1338%208.84611%204.31301%208.84611%204.67143V13.716L5.92068%2010.7906C5.66724%2010.5371%205.54052%2010.4104%205.39916%2010.3519C5.21067%2010.2738%204.9989%2010.2738%204.81041%2010.3519C4.66905%2010.4104%204.54233%2010.5371%204.28889%2010.7906C4.03545%2011.044%203.90873%2011.1707%203.85018%2011.3121C3.77211%2011.5006%203.77211%2011.7124%203.85018%2011.9008C3.90873%2012.0422%204.03545%2012.1689%204.28889%2012.4224L9.03476%2017.1682C9.07839%2017.2127%209.12737%2017.2617%209.18231%2017.3166L9.18239%2017.3167L9.18241%2017.3167C9.40545%2017.5398%209.53035%2017.6647%209.65346%2017.7313C9.67085%2017.7408%209.6882%2017.7492%209.70577%2017.7564C9.89425%2017.8345%2010.106%2017.8345%2010.2945%2017.7564C10.4359%2017.6979%2010.5626%2017.5712%2010.816%2017.3177C10.8986%2017.2352%2010.9677%2017.1661%2011.0253%2017.1056L15.7095%2012.4214L15.7095%2012.4213C15.963%2012.1679%2016.0897%2012.0412%2016.1482%2011.8998C16.2263%2011.7114%2016.2263%2011.4996%2016.1482%2011.3111C16.0897%2011.1697%2015.963%2011.043%2015.7095%2010.7896C15.4561%2010.5361%2015.3294%2010.4094%2015.188%2010.3509C14.9995%2010.2728%2014.7878%2010.2728%2014.5993%2010.3509C14.4579%2010.4094%2014.3312%2010.5361%2014.0778%2010.7896L14.0777%2010.7896L11.1538%2013.7135V4.67142C11.1538%204.31301%2011.1538%204.1338%2011.0953%203.99244C11.0172%203.80395%2010.8674%203.6542%2010.6789%203.57613C10.5376%203.51758%2010.3584%203.51758%209.99996%203.51758C9.64154%203.51758%209.46233%203.51758%209.32097%203.57613C9.13249%203.6542%208.98274%203.80395%208.90467%203.99244Z%22%20fill%3D%22%23FE4B4B%22%2F%3E%0A%3C%2Fsvg%3E%0A","right-gold":"data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M3.32508%2011.7609C3.46644%2011.8194%203.64565%2011.8194%204.00407%2011.8194H13.049L10.1235%2014.745C9.87002%2014.9984%209.7433%2015.1251%209.68475%2015.2665C9.60668%2015.455%209.60668%2015.6668%209.68475%2015.8552C9.7433%2015.9966%209.87002%2016.1233%2010.1235%2016.3768C10.3769%2016.6302%2010.5036%2016.7569%2010.645%2016.8155C10.8335%2016.8935%2011.0452%2016.8935%2011.2337%2016.8155C11.3751%2016.7569%2011.5018%2016.6302%2011.7552%2016.3768L16.5105%2011.6215C16.5524%2011.5803%2016.5983%2011.5344%2016.6493%2011.4834L16.6495%2011.4831C16.8561%2011.2765%2016.9785%2011.1542%2017.0484%2011.0394C17.0648%2011.0128%2017.0782%2010.9866%2017.0893%2010.9599C17.1674%2010.7714%2017.1674%2010.5596%2017.0893%2010.3711C17.0308%2010.2298%2016.904%2010.1031%2016.6506%209.84962C16.5685%209.76752%2016.4997%209.69872%2016.4394%209.64123L11.7542%204.95601C11.5007%204.70257%2011.374%204.57585%2011.2327%204.5173C11.0442%204.43923%2010.8324%204.43923%2010.6439%204.5173C10.5026%204.57585%2010.3758%204.70257%2010.1224%204.95601L10.1224%204.95601C9.86895%205.20945%209.74223%205.33617%209.68368%205.47753C9.60561%205.66601%209.60561%205.87779%209.68368%206.06627C9.74223%206.20764%209.86895%206.33436%2010.1224%206.5878L13.0463%209.51175H4.00407C3.64565%209.51175%203.46644%209.51175%203.32508%209.5703C3.1366%209.64837%202.98685%209.79812%202.90877%209.98661C2.85022%2010.128%202.85022%2010.3072%202.85022%2010.6656C2.85022%2011.024%202.85022%2011.2032%202.90877%2011.3446C2.98685%2011.5331%203.1366%2011.6828%203.32508%2011.7609Z%22%20fill%3D%22%23FFBD37%22%2F%3E%0A%3C%2Fsvg%3E%0A","up-green":"data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M11.0936%2017.3406C11.1522%2017.1992%2011.1522%2017.02%2011.1522%2016.6616V7.61701L14.0776%2010.5424C14.3311%2010.7959%2014.4578%2010.9226%2014.5991%2010.9811C14.7876%2011.0592%2014.9994%2011.0592%2015.1879%2010.9811C15.3292%2010.9226%2015.456%2010.7959%2015.7094%2010.5424C15.9628%2010.289%2016.0896%2010.1623%2016.1481%2010.0209C16.2262%209.83243%2016.2262%209.62066%2016.1481%209.43217C16.0896%209.29081%2015.9628%209.16409%2015.7094%208.91065L10.9645%204.16576C10.9207%204.12105%2010.8714%204.07178%2010.8161%204.01648L10.8159%204.0163C10.5916%203.792%2010.4666%203.66696%2010.3428%203.60058C10.3261%203.59154%2010.3094%203.58358%2010.2925%203.57658C10.104%203.49851%209.89226%203.49851%209.70378%203.57658C9.56242%203.63514%209.4357%203.76186%209.18226%204.0153C9.09955%204.09801%209.03034%204.16722%208.97258%204.22785L4.28878%208.91166C4.03534%209.1651%203.90862%209.29182%203.85006%209.43318C3.77199%209.62166%203.77199%209.83344%203.85006%2010.0219C3.90862%2010.1633%204.03534%2010.29%204.28878%2010.5434C4.54221%2010.7969%204.66893%2010.9236%204.8103%2010.9822C4.99878%2011.0602%205.21056%2011.0602%205.39904%2010.9822C5.5404%2010.9236%205.66712%2010.7969%205.92056%2010.5434L5.92056%2010.5434L8.84449%207.61951V16.6616C8.84449%2017.02%208.84449%2017.1992%208.90305%2017.3406C8.98112%2017.5291%209.13087%2017.6788%209.31935%2017.7569C9.46072%2017.8154%209.63992%2017.8154%209.99834%2017.8154C10.3568%2017.8154%2010.536%2017.8154%2010.6773%2017.7569C10.8658%2017.6788%2011.0156%2017.5291%2011.0936%2017.3406Z%22%20fill%3D%22%2359D01E%22%2F%3E%0A%3C%2Fsvg%3E%0A","rightAndDown-gold":"data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M4.5062%206.72126C4.56476%206.86262%204.69148%206.98934%204.94492%207.24278L11.3404%2013.6382L7.20313%2013.6382C6.84471%2013.6382%206.66551%2013.6382%206.52414%2013.6968C6.33566%2013.7749%206.18591%2013.9246%206.10784%2014.1131C6.04928%2014.2545%206.04928%2014.4337%206.04928%2014.7921C6.04928%2015.1505%206.04928%2015.3297%206.10784%2015.4711C6.18591%2015.6596%206.33566%2015.8093%206.52414%2015.8874C6.66551%2015.9459%206.84471%2015.9459%207.20313%2015.9459L13.9194%2015.9459C13.9805%2015.9465%2014.0484%2015.9465%2014.1243%2015.9465H14.1243C14.4353%2015.9465%2014.6114%2015.9465%2014.7449%2015.9082C14.7659%2015.9023%2014.7859%2015.8954%2014.8052%2015.8874C14.9937%2015.8093%2015.1434%2015.6596%2015.2215%2015.4711C15.2801%2015.3297%2015.2801%2015.1505%2015.2801%2014.7921C15.2801%2014.6767%2015.2801%2014.5799%2015.2781%2014.497L15.2781%207.86957C15.2781%207.51115%2015.2781%207.33194%2015.2195%207.19058C15.1415%207.0021%2014.9917%206.85235%2014.8032%206.77428C14.6619%206.71572%2014.4827%206.71572%2014.1243%206.71572C13.7658%206.71572%2013.5866%206.71572%2013.4453%206.77428C13.2568%206.85235%2013.107%207.0021%2013.029%207.19058C12.9704%207.33194%2012.9704%207.51115%2012.9704%207.86957L12.9704%2012.0047L6.5767%205.61099C6.32326%205.35755%206.19654%205.23083%206.05518%205.17228C5.8667%205.09421%205.65492%205.09421%205.46644%205.17228C5.32508%205.23083%205.19836%205.35755%204.94492%205.61099C4.69148%205.86443%204.56476%205.99115%204.5062%206.13251C4.42813%206.32099%204.42813%206.53277%204.5062%206.72126Z%22%20fill%3D%22%23FFBD37%22%2F%3E%0A%3C%2Fsvg%3E%0A","rightAndUp-gold":"data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M6.05431%2016.1597C6.19567%2016.1012%206.32239%2015.9745%206.57583%2015.721L12.9712%209.32568L12.9712%2013.4626C12.9712%2013.821%2012.9712%2014.0002%2013.0297%2014.1416C13.1078%2014.3301%2013.2576%2014.4798%2013.446%2014.5579C13.5874%2014.6164%2013.7666%2014.6164%2014.125%2014.6164C14.4834%2014.6164%2014.6626%2014.6164%2014.804%2014.5579C14.9925%2014.4798%2015.1422%2014.3301%2015.2203%2014.1416C15.2789%2014.0002%2015.2789%2013.821%2015.2789%2013.4626L15.2789%206.75233C15.2795%206.68972%2015.2795%206.62004%2015.2795%206.54182L15.2795%206.54157C15.2795%206.22585%2015.2795%206.04918%2015.2395%205.91495C15.2339%205.89605%2015.2276%205.878%2015.2203%205.86053C15.1422%205.67204%2014.9925%205.52229%2014.804%205.44422C14.6626%205.38567%2014.4834%205.38567%2014.125%205.38567L14.125%205.38567C14.0075%205.38567%2013.9093%205.38567%2013.8254%205.38773L7.20256%205.38773C6.84414%205.38773%206.66493%205.38773%206.52357%205.44628C6.33509%205.52436%206.18534%205.6741%206.10727%205.86259C6.04871%206.00395%206.04871%206.18315%206.04871%206.54156V6.54157L6.04871%206.54159C6.04871%206.9%206.04871%207.0792%206.10727%207.22056C6.18534%207.40905%206.33509%207.55879%206.52357%207.63687C6.66493%207.69542%206.84414%207.69542%207.20256%207.69542H11.3379L4.94405%2014.0892C4.69061%2014.3427%204.56389%2014.4694%204.50533%2014.6108C4.42726%2014.7992%204.42726%2015.011%204.50533%2015.1995C4.56389%2015.3409%204.69061%2015.4676%204.94405%2015.721C5.19749%2015.9745%205.32421%2016.1012%205.46557%2016.1597C5.65405%2016.2378%205.86583%2016.2378%206.05431%2016.1597Z%22%20fill%3D%22%23FFBD37%22%2F%3E%0A%3C%2Fsvg%3E%0A","down-gray":"data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M8.90467%203.99244C8.84611%204.1338%208.84611%204.31301%208.84611%204.67143V13.716L5.92068%2010.7906C5.66724%2010.5371%205.54052%2010.4104%205.39916%2010.3519C5.21067%2010.2738%204.9989%2010.2738%204.81041%2010.3519C4.66905%2010.4104%204.54233%2010.5371%204.28889%2010.7906C4.03545%2011.044%203.90873%2011.1707%203.85018%2011.3121C3.77211%2011.5006%203.77211%2011.7124%203.85018%2011.9008C3.90873%2012.0422%204.03545%2012.1689%204.28889%2012.4224L9.03476%2017.1682C9.07839%2017.2127%209.12737%2017.2617%209.18231%2017.3166L9.18239%2017.3167L9.18241%2017.3167C9.40545%2017.5398%209.53035%2017.6647%209.65346%2017.7313C9.67085%2017.7408%209.6882%2017.7492%209.70577%2017.7564C9.89425%2017.8345%2010.106%2017.8345%2010.2945%2017.7564C10.4359%2017.6979%2010.5626%2017.5712%2010.816%2017.3177C10.8986%2017.2352%2010.9677%2017.1661%2011.0253%2017.1056L15.7095%2012.4214L15.7095%2012.4213C15.963%2012.1679%2016.0897%2012.0412%2016.1482%2011.8998C16.2263%2011.7114%2016.2263%2011.4996%2016.1482%2011.3111C16.0897%2011.1697%2015.963%2011.043%2015.7095%2010.7896C15.4561%2010.5361%2015.3294%2010.4094%2015.188%2010.3509C14.9995%2010.2728%2014.7878%2010.2728%2014.5993%2010.3509C14.4579%2010.4094%2014.3312%2010.5361%2014.0778%2010.7896L14.0777%2010.7896L11.1538%2013.7135V4.67142C11.1538%204.31301%2011.1538%204.1338%2011.0953%203.99244C11.0172%203.80395%2010.8674%203.6542%2010.6789%203.57613C10.5376%203.51758%2010.3584%203.51758%209.99996%203.51758C9.64154%203.51758%209.46233%203.51758%209.32097%203.57613C9.13249%203.6542%208.98274%203.80395%208.90467%203.99244Z%22%20fill%3D%22%23999999%22%2F%3E%0A%3C%2Fsvg%3E%0A","right-gray":"data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M3.32508%2011.7609C3.46644%2011.8194%203.64565%2011.8194%204.00407%2011.8194H13.049L10.1235%2014.745C9.87002%2014.9984%209.7433%2015.1251%209.68475%2015.2665C9.60668%2015.455%209.60668%2015.6668%209.68475%2015.8552C9.7433%2015.9966%209.87002%2016.1233%2010.1235%2016.3768C10.3769%2016.6302%2010.5036%2016.7569%2010.645%2016.8155C10.8335%2016.8935%2011.0452%2016.8935%2011.2337%2016.8155C11.3751%2016.7569%2011.5018%2016.6302%2011.7552%2016.3768L16.5105%2011.6215C16.5524%2011.5803%2016.5983%2011.5344%2016.6493%2011.4834L16.6495%2011.4831C16.8561%2011.2765%2016.9785%2011.1542%2017.0484%2011.0394C17.0648%2011.0128%2017.0782%2010.9866%2017.0893%2010.9599C17.1674%2010.7714%2017.1674%2010.5596%2017.0893%2010.3711C17.0308%2010.2298%2016.904%2010.1031%2016.6506%209.84962C16.5685%209.76752%2016.4997%209.69872%2016.4394%209.64123L11.7542%204.95601C11.5007%204.70257%2011.374%204.57585%2011.2327%204.5173C11.0442%204.43923%2010.8324%204.43923%2010.6439%204.5173C10.5026%204.57585%2010.3758%204.70257%2010.1224%204.95601L10.1224%204.95601C9.86895%205.20945%209.74223%205.33617%209.68368%205.47753C9.60561%205.66601%209.60561%205.87779%209.68368%206.06627C9.74223%206.20764%209.86895%206.33436%2010.1224%206.5878L13.0463%209.51175H4.00407C3.64565%209.51175%203.46644%209.51175%203.32508%209.5703C3.1366%209.64837%202.98685%209.79812%202.90877%209.98661C2.85022%2010.128%202.85022%2010.3072%202.85022%2010.6656C2.85022%2011.024%202.85022%2011.2032%202.90877%2011.3446C2.98685%2011.5331%203.1366%2011.6828%203.32508%2011.7609Z%22%20fill%3D%22%23999999%22%2F%3E%0A%3C%2Fsvg%3E%0A","up-gray":"data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M11.0936%2017.3406C11.1522%2017.1992%2011.1522%2017.02%2011.1522%2016.6616V7.61701L14.0776%2010.5424C14.3311%2010.7959%2014.4578%2010.9226%2014.5991%2010.9811C14.7876%2011.0592%2014.9994%2011.0592%2015.1879%2010.9811C15.3292%2010.9226%2015.456%2010.7959%2015.7094%2010.5424C15.9628%2010.289%2016.0896%2010.1623%2016.1481%2010.0209C16.2262%209.83243%2016.2262%209.62066%2016.1481%209.43217C16.0896%209.29081%2015.9628%209.16409%2015.7094%208.91065L10.9645%204.16576C10.9207%204.12105%2010.8714%204.07178%2010.8161%204.01648L10.8159%204.0163C10.5916%203.792%2010.4666%203.66696%2010.3428%203.60058C10.3261%203.59154%2010.3094%203.58358%2010.2925%203.57658C10.104%203.49851%209.89226%203.49851%209.70378%203.57658C9.56242%203.63514%209.4357%203.76186%209.18226%204.0153C9.09955%204.09801%209.03034%204.16722%208.97258%204.22785L4.28878%208.91166C4.03534%209.1651%203.90862%209.29182%203.85006%209.43318C3.77199%209.62166%203.77199%209.83344%203.85006%2010.0219C3.90862%2010.1633%204.03534%2010.29%204.28878%2010.5434C4.54221%2010.7969%204.66893%2010.9236%204.8103%2010.9822C4.99878%2011.0602%205.21056%2011.0602%205.39904%2010.9822C5.5404%2010.9236%205.66712%2010.7969%205.92056%2010.5434L5.92056%2010.5434L8.84449%207.61951V16.6616C8.84449%2017.02%208.84449%2017.1992%208.90305%2017.3406C8.98112%2017.5291%209.13087%2017.6788%209.31935%2017.7569C9.46072%2017.8154%209.63992%2017.8154%209.99834%2017.8154C10.3568%2017.8154%2010.536%2017.8154%2010.6773%2017.7569C10.8658%2017.6788%2011.0156%2017.5291%2011.0936%2017.3406Z%22%20fill%3D%22%23999999%22%2F%3E%0A%3C%2Fsvg%3E%0A","rightAndDown-gray":"data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M4.5062%206.72126C4.56476%206.86262%204.69148%206.98934%204.94492%207.24278L11.3404%2013.6382L7.20313%2013.6382C6.84471%2013.6382%206.66551%2013.6382%206.52414%2013.6968C6.33566%2013.7749%206.18591%2013.9246%206.10784%2014.1131C6.04928%2014.2545%206.04928%2014.4337%206.04928%2014.7921C6.04928%2015.1505%206.04928%2015.3297%206.10784%2015.4711C6.18591%2015.6596%206.33566%2015.8093%206.52414%2015.8874C6.66551%2015.9459%206.84471%2015.9459%207.20313%2015.9459L13.9194%2015.9459C13.9805%2015.9465%2014.0484%2015.9465%2014.1243%2015.9465H14.1243C14.4353%2015.9465%2014.6114%2015.9465%2014.7449%2015.9082C14.7659%2015.9023%2014.7859%2015.8954%2014.8052%2015.8874C14.9937%2015.8093%2015.1434%2015.6596%2015.2215%2015.4711C15.2801%2015.3297%2015.2801%2015.1505%2015.2801%2014.7921C15.2801%2014.6767%2015.2801%2014.5799%2015.2781%2014.497L15.2781%207.86957C15.2781%207.51115%2015.2781%207.33194%2015.2195%207.19058C15.1415%207.0021%2014.9917%206.85235%2014.8032%206.77428C14.6619%206.71572%2014.4827%206.71572%2014.1243%206.71572C13.7658%206.71572%2013.5866%206.71572%2013.4453%206.77428C13.2568%206.85235%2013.107%207.0021%2013.029%207.19058C12.9704%207.33194%2012.9704%207.51115%2012.9704%207.86957L12.9704%2012.0047L6.5767%205.61099C6.32326%205.35755%206.19654%205.23083%206.05518%205.17228C5.8667%205.09421%205.65492%205.09421%205.46644%205.17228C5.32508%205.23083%205.19836%205.35755%204.94492%205.61099C4.69148%205.86443%204.56476%205.99115%204.5062%206.13251C4.42813%206.32099%204.42813%206.53277%204.5062%206.72126Z%22%20fill%3D%22%23999999%22%2F%3E%0A%3C%2Fsvg%3E%0A","rightAndUp-gray":"data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M6.05431%2016.1597C6.19567%2016.1012%206.32239%2015.9745%206.57583%2015.721L12.9712%209.32568L12.9712%2013.4626C12.9712%2013.821%2012.9712%2014.0002%2013.0297%2014.1416C13.1078%2014.3301%2013.2576%2014.4798%2013.446%2014.5579C13.5874%2014.6164%2013.7666%2014.6164%2014.125%2014.6164C14.4834%2014.6164%2014.6626%2014.6164%2014.804%2014.5579C14.9925%2014.4798%2015.1422%2014.3301%2015.2203%2014.1416C15.2789%2014.0002%2015.2789%2013.821%2015.2789%2013.4626L15.2789%206.75233C15.2795%206.68972%2015.2795%206.62004%2015.2795%206.54182L15.2795%206.54157C15.2795%206.22585%2015.2795%206.04918%2015.2395%205.91495C15.2339%205.89605%2015.2276%205.878%2015.2203%205.86053C15.1422%205.67204%2014.9925%205.52229%2014.804%205.44422C14.6626%205.38567%2014.4834%205.38567%2014.125%205.38567L14.125%205.38567C14.0075%205.38567%2013.9093%205.38567%2013.8254%205.38773L7.20256%205.38773C6.84414%205.38773%206.66493%205.38773%206.52357%205.44628C6.33509%205.52436%206.18534%205.6741%206.10727%205.86259C6.04871%206.00395%206.04871%206.18315%206.04871%206.54156V6.54157L6.04871%206.54159C6.04871%206.9%206.04871%207.0792%206.10727%207.22056C6.18534%207.40905%206.33509%207.55879%206.52357%207.63687C6.66493%207.69542%206.84414%207.69542%207.20256%207.69542H11.3379L4.94405%2014.0892C4.69061%2014.3427%204.56389%2014.4694%204.50533%2014.6108C4.42726%2014.7992%204.42726%2015.011%204.50533%2015.1995C4.56389%2015.3409%204.69061%2015.4676%204.94405%2015.721C5.19749%2015.9745%205.32421%2016.1012%205.46557%2016.1597C5.65405%2016.2378%205.86583%2016.2378%206.05431%2016.1597Z%22%20fill%3D%22%23999999%22%2F%3E%0A%3C%2Fsvg%3E%0A"}'), q0 = { cross: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Crect%20x%3D%223.70374%22%20y%3D%228.14795%22%20width%3D%2212.5926%22%20height%3D%223.7037%22%20rx%3D%220.740741%22%20fill%3D%22%23FFBD37%22%2F%3E%0A%3C%2Fsvg%3E%0A", up: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20d%3D%22M9.44533%205.81157C9.74012%205.47858%2010.2598%205.47858%2010.5546%205.81157L16.2868%2012.2867C16.71%2012.7647%2016.3706%2013.5184%2015.7322%2013.5184H4.26776C3.62933%2013.5184%203.28995%2012.7647%203.71313%2012.2867L9.44533%205.81157Z%22%20fill%3D%22%2359D01E%22%2F%3E%0A%3C%2Fsvg%3E%0A", down: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20d%3D%22M10.5547%2014.1884C10.2599%2014.5214%209.74019%2014.5214%209.4454%2014.1884L3.71321%207.71335C3.29002%207.23532%203.6294%206.48161%204.26784%206.48161L15.7322%206.48161C16.3707%206.48161%2016.7101%207.23532%2016.2869%207.71335L10.5547%2014.1884Z%22%20fill%3D%22%23FE4B4B%22%2F%3E%0A%3C%2Fsvg%3E%0A", "rhomboid-red": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20d%3D%22M2.1415%2011.1984C1.8412%2010.9074%201.8412%2010.4256%202.1415%2010.1346L9.48467%203.01785C9.77196%202.73942%2010.2284%202.73942%2010.5157%203.01786L17.8586%2010.1346C18.1589%2010.4256%2018.1589%2010.9074%2017.8586%2011.1984L10.5157%2018.3151C10.2284%2018.5936%209.77196%2018.5936%209.48467%2018.3152L2.1415%2011.1984Z%22%20fill%3D%22%23FE4B4B%22%2F%3E%0A%3C%2Fsvg%3E%0A", "rhomboid-gold": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20d%3D%22M2.1415%2011.1984C1.8412%2010.9074%201.8412%2010.4256%202.1415%2010.1346L9.48467%203.01785C9.77196%202.73942%2010.2284%202.73942%2010.5157%203.01786L17.8586%2010.1346C18.1589%2010.4256%2018.1589%2010.9074%2017.8586%2011.1984L10.5157%2018.3151C10.2284%2018.5936%209.77196%2018.5936%209.48467%2018.3152L2.1415%2011.1984Z%22%20fill%3D%22%23FFBD37%22%2F%3E%0A%3C%2Fsvg%3E%0A", "roundness-greed": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Ccircle%20cx%3D%2210%22%20cy%3D%2210.6664%22%20r%3D%227.03704%22%20fill%3D%22%2359D01E%22%2F%3E%0A%3C%2Fsvg%3E%0A", "roundness-gold": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Ccircle%20cx%3D%2210%22%20cy%3D%2210.6664%22%20r%3D%227.03704%22%20fill%3D%22%23FFBD37%22%2F%3E%0A%3C%2Fsvg%3E%0A", "roundness-red": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Ccircle%20cx%3D%2210%22%20cy%3D%2210.6664%22%20r%3D%227.03704%22%20fill%3D%22%23FE4B4B%22%2F%3E%0A%3C%2Fsvg%3E%0A", "roundness-pink": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Ccircle%20cx%3D%2210%22%20cy%3D%2210.6664%22%20r%3D%227.03704%22%20fill%3D%22%23FB9D9D%22%2F%3E%0A%3C%2Fsvg%3E%0A", "roundness-gray": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Ccircle%20cx%3D%2210%22%20cy%3D%2210.6664%22%20r%3D%227.03704%22%20fill%3D%22%23999999%22%2F%3E%0A%3C%2Fsvg%3E%0A", "roundness-black": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Ccircle%20cx%3D%2210%22%20cy%3D%2210.6664%22%20r%3D%227.03704%22%20fill%3D%22black%22%2F%3E%0A%3C%2Fsvg%3E%0A", "triangle-gold": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cg%20clip-path%3D%22url(%23clip0_613_237)%22%3E%0A%3Cpath%20d%3D%22M9.32308%204.41301C9.58368%203.82623%2010.4164%203.82623%2010.677%204.413L15.9526%2016.2917C16.1701%2016.7815%2015.8115%2017.3331%2015.2756%2017.3331H4.72454C4.18858%2017.3331%203.83002%2016.7815%204.04756%2016.2917L9.32308%204.41301Z%22%20fill%3D%22%23FFBD37%22%2F%3E%0A%3C%2Fg%3E%0A%3Cdefs%3E%0A%3CclipPath%20id%3D%22clip0_613_237%22%3E%0A%3Crect%20width%3D%2220%22%20height%3D%2220%22%20fill%3D%22white%22%20transform%3D%22translate(0%200.666504)%22%2F%3E%0A%3C%2FclipPath%3E%0A%3C%2Fdefs%3E%0A%3C%2Fsvg%3E%0A", "indicate-greed": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Crect%20x%3D%222.76941%22%20y%3D%222.76941%22%20width%3D%2214.4612%22%20height%3D%2214.4612%22%20rx%3D%223%22%20fill%3D%22black%22%2F%3E%0A%3Ccircle%20cx%3D%2210%22%20cy%3D%2210%22%20r%3D%224.5%22%20fill%3D%22%2359D01E%22%2F%3E%0A%3C%2Fsvg%3E%0A", "indicate-gold": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Crect%20x%3D%222.76941%22%20y%3D%222.76941%22%20width%3D%2214.4612%22%20height%3D%2214.4612%22%20rx%3D%223%22%20fill%3D%22black%22%2F%3E%0A%3Ccircle%20cx%3D%2210%22%20cy%3D%2210%22%20r%3D%224.5%22%20fill%3D%22%23FFBD37%22%2F%3E%0A%3C%2Fsvg%3E%0A", "indicate-red": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Crect%20x%3D%222.76941%22%20y%3D%222.76941%22%20width%3D%2214.4612%22%20height%3D%2214.4612%22%20rx%3D%223%22%20fill%3D%22black%22%2F%3E%0A%3Ccircle%20cx%3D%2210%22%20cy%3D%2210%22%20r%3D%224.5%22%20fill%3D%22%23FE4B4B%22%2F%3E%0A%3C%2Fsvg%3E%0A" }, G0 = { mistake2: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M4.12194%206.33702C4.1805%206.47839%204.30722%206.6051%204.56066%206.85854L8.36822%2010.6661L4.56062%2014.4737C4.30718%2014.7272%204.18046%2014.8539%204.12191%2014.9952C4.04384%2015.1837%204.04384%2015.3955%204.12191%2015.584C4.18046%2015.7253%204.30718%2015.8521%204.56062%2016.1055C4.81406%2016.3589%204.94078%2016.4857%205.08214%2016.5442C5.27062%2016.6223%205.4824%2016.6223%205.67089%2016.5442C5.81225%2016.4857%205.93897%2016.3589%206.19241%2016.1055L10%2012.2979L13.8074%2016.1053C14.0609%2016.3588%2014.1876%2016.4855%2014.329%2016.544C14.5174%2016.6221%2014.7292%2016.6221%2014.9177%2016.544C15.0591%2016.4855%2015.1858%2016.3588%2015.4392%2016.1053L15.4392%2016.1053C15.6927%2015.8519%2015.8194%2015.7252%2015.8779%2015.5838C15.956%2015.3953%2015.956%2015.1835%2015.8779%2014.9951C15.8194%2014.8537%2015.6927%2014.727%2015.4392%2014.4735L15.4392%2014.4735L11.6318%2010.6661L15.4392%206.85872C15.6926%206.60528%2015.8193%206.47856%2015.8779%206.3372C15.956%206.14871%2015.956%205.93694%2015.8779%205.74845C15.8193%205.60709%2015.6926%205.48037%2015.4392%205.22693C15.1857%204.97349%2015.059%204.84677%2014.9177%204.78822C14.7292%204.71015%2014.5174%204.71015%2014.3289%204.78822C14.1876%204.84677%2014.0608%204.97349%2013.8074%205.22693L10%209.03433L6.19244%205.22676C5.939%204.97332%205.81228%204.8466%205.67092%204.78805C5.48244%204.70997%205.27066%204.70997%205.08218%204.78805C4.94082%204.8466%204.8141%204.97332%204.56066%205.22676L4.56066%205.22676C4.30722%205.4802%204.1805%205.60692%204.12194%205.74828C4.04387%205.93676%204.04387%206.14854%204.12194%206.33702Z%22%20fill%3D%22%23FE4B4B%22%2F%3E%0A%3C%2Fsvg%3E%0A", warn2: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20d%3D%22M8.49778%205.00963C8.48513%204.56774%208.47881%204.3468%208.56086%204.17746C8.63301%204.02856%208.75124%203.90689%208.89802%203.83052C9.06494%203.74365%209.28597%203.74365%209.72805%203.74365H10.272C10.714%203.74365%2010.9351%203.74365%2011.102%203.83052C11.2488%203.9069%2011.367%204.02856%2011.4392%204.17746C11.5212%204.3468%2011.5149%204.56775%2011.5022%205.00964L11.2644%2013.3173C11.2524%2013.737%2011.2464%2013.9468%2011.1609%2014.1065C11.0857%2014.2471%2010.9687%2014.3609%2010.826%2014.432C10.6639%2014.5129%2010.454%2014.5129%2010.0342%2014.5129H9.96582C9.54601%2014.5129%209.33611%2014.5129%209.17397%2014.432C9.0313%2014.3609%208.91426%2014.2471%208.83904%2014.1065C8.75357%2013.9468%208.74756%2013.737%208.73555%2013.3173L8.49778%205.00963Z%22%20fill%3D%22%23FFBD37%22%2F%3E%0A%3Crect%20x%3D%228.76917%22%20y%3D%2215.2817%22%20width%3D%222.46154%22%20height%3D%222.46154%22%20rx%3D%220.769231%22%20fill%3D%22%23FFBD37%22%2F%3E%0A%3C%2Fsvg%3E%0A", correct2: "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cg%20clip-path%3D%22url(%23clip0_613_248)%22%3E%0A%3Cpath%20d%3D%22M15.689%205.69723C15.5476%205.75578%2015.4209%205.8825%2015.1675%206.13594L7.82436%2013.4791L4.83279%2010.4875C4.57935%2010.2341%204.45263%2010.1073%204.31127%2010.0488C4.12278%209.97071%203.91101%209.97071%203.72252%2010.0488C3.58116%2010.1073%203.45444%2010.2341%203.201%2010.4875C2.94756%2010.7409%202.82084%2010.8676%202.76229%2011.009C2.68422%2011.1975%202.68422%2011.4093%202.76229%2011.5978C2.82084%2011.7391%202.94756%2011.8658%203.201%2012.1193L7.0085%2015.9268C7.26194%2016.1802%207.38866%2016.3069%207.53002%2016.3655C7.7185%2016.4436%207.93028%2016.4436%208.11876%2016.3655C8.26013%2016.3069%208.38685%2016.1802%208.64028%2015.9268C8.66387%2015.9032%208.68636%2015.8807%208.7078%2015.8592L16.7993%207.76772C17.0527%207.51428%2017.1794%207.38756%2017.238%207.2462C17.3161%207.05772%2017.3161%206.84594%2017.238%206.65746C17.1794%206.5161%2017.0527%206.38938%2016.7993%206.13594C16.5458%205.8825%2016.4191%205.75578%2016.2777%205.69723C16.0893%205.61915%2015.8775%205.61915%2015.689%205.69723Z%22%20fill%3D%22%2359D01E%22%2F%3E%0A%3C%2Fg%3E%0A%3Cdefs%3E%0A%3CclipPath%20id%3D%22clip0_613_248%22%3E%0A%3Crect%20width%3D%2220%22%20height%3D%2220%22%20fill%3D%22white%22%20transform%3D%22translate(0%200.666504)%22%2F%3E%0A%3C%2FclipPath%3E%0A%3C%2Fdefs%3E%0A%3C%2Fsvg%3E%0A" }, j0 = { "flag-green": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M15.4274%204.74935C14.0982%205.1012%2013.1363%205.13675%2012.3604%205.03379C11.5776%204.93009%2010.9487%204.68342%2010.2456%204.40416L10.2246%204.39527C9.53411%204.1212%208.76945%203.8175%207.81312%203.69157C6.84279%203.56268%205.71016%203.61898%204.24802%204.0049C4.09343%204.04217%203.95538%204.13393%203.85649%204.26515C3.7576%204.39636%203.70374%204.55925%203.70374%204.72712V17.3197C3.70374%2017.5162%203.79534%2017.7046%203.92654%2017.8435C4.05773%2017.9824%204.25893%2018.0605%204.44448%2018.0605C4.63002%2018.0605%204.84911%2017.9824%204.98031%2017.8435C5.11151%2017.7046%205.18522%2017.5162%205.18522%2017.3197V14.9123V12.5049C6.24649%2012.2738%206.97081%2012.2605%207.63962%2012.3486C8.42246%2012.4523%209.05139%2012.699%209.75448%2012.9782L9.77546%2012.9871C10.466%2013.2612%2011.2306%2013.5649%2012.1869%2013.6908C13.1601%2013.8197%2014.2976%2013.7627%2015.7667%2013.3738C15.8866%2013.3421%2016.0727%2013.2135%2016.1483%2013.111C16.2238%2013.0084%2016.2963%2012.8204%2016.2963%2012.6553V5.46787C16.2963%205.35535%2016.2721%205.24432%2016.2255%205.1432C16.1788%205.04208%2016.1111%204.95353%2016.0274%204.88428C15.9436%204.81502%2015.846%204.76688%2015.7421%204.7435C15.6382%204.72012%2015.494%204.73173%2015.4274%204.74935Z%22%20fill%3D%22%2359D01E%22%2F%3E%0A%3C%2Fsvg%3E%0A", "flag-gold": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M15.4274%204.74935C14.0982%205.1012%2013.1363%205.13675%2012.3604%205.03379C11.5776%204.93009%2010.9487%204.68342%2010.2456%204.40416L10.2246%204.39527C9.53411%204.1212%208.76945%203.8175%207.81312%203.69157C6.84279%203.56268%205.71016%203.61898%204.24802%204.0049C4.09343%204.04217%203.95538%204.13393%203.85649%204.26515C3.7576%204.39636%203.70374%204.55925%203.70374%204.72712V17.3197C3.70374%2017.5162%203.79534%2017.7046%203.92654%2017.8435C4.05773%2017.9824%204.25893%2018.0605%204.44448%2018.0605C4.63002%2018.0605%204.84911%2017.9824%204.98031%2017.8435C5.11151%2017.7046%205.18522%2017.5162%205.18522%2017.3197V14.9123V12.5049C6.24649%2012.2738%206.97081%2012.2605%207.63962%2012.3486C8.42246%2012.4523%209.05139%2012.699%209.75448%2012.9782L9.77546%2012.9871C10.466%2013.2612%2011.2306%2013.5649%2012.1869%2013.6908C13.1601%2013.8197%2014.2976%2013.7627%2015.7667%2013.3738C15.8866%2013.3421%2016.0727%2013.2135%2016.1483%2013.111C16.2238%2013.0084%2016.2963%2012.8204%2016.2963%2012.6553V5.46787C16.2963%205.35535%2016.2721%205.24432%2016.2255%205.1432C16.1788%205.04208%2016.1111%204.95353%2016.0274%204.88428C15.9436%204.81502%2015.846%204.76688%2015.7421%204.7435C15.6382%204.72012%2015.494%204.73173%2015.4274%204.74935Z%22%20fill%3D%22%23FFBD37%22%2F%3E%0A%3C%2Fsvg%3E%0A", "flag-red": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2221%22%20viewBox%3D%220%200%2020%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M15.4274%204.74935C14.0982%205.1012%2013.1363%205.13675%2012.3604%205.03379C11.5776%204.93009%2010.9487%204.68342%2010.2456%204.40416L10.2246%204.39527C9.53411%204.1212%208.76945%203.8175%207.81312%203.69157C6.84279%203.56268%205.71016%203.61898%204.24802%204.0049C4.09343%204.04217%203.95538%204.13393%203.85649%204.26515C3.7576%204.39636%203.70374%204.55925%203.70374%204.72712V17.3197C3.70374%2017.5162%203.79534%2017.7046%203.92654%2017.8435C4.05773%2017.9824%204.25893%2018.0605%204.44448%2018.0605C4.63002%2018.0605%204.84911%2017.9824%204.98031%2017.8435C5.11151%2017.7046%205.18522%2017.5162%205.18522%2017.3197V14.9123V12.5049C6.24649%2012.2738%206.97081%2012.2605%207.63962%2012.3486C8.42246%2012.4523%209.05139%2012.699%209.75448%2012.9782L9.77546%2012.9871C10.466%2013.2612%2011.2306%2013.5649%2012.1869%2013.6908C13.1601%2013.8197%2014.2976%2013.7627%2015.7667%2013.3738C15.8866%2013.3421%2016.0727%2013.2135%2016.1483%2013.111C16.2238%2013.0084%2016.2963%2012.8204%2016.2963%2012.6553V5.46787C16.2963%205.35535%2016.2721%205.24432%2016.2255%205.1432C16.1788%205.04208%2016.1111%204.95353%2016.0274%204.88428C15.9436%204.81502%2015.846%204.76688%2015.7421%204.7435C15.6382%204.72012%2015.494%204.73173%2015.4274%204.74935Z%22%20fill%3D%22%23FE4B4B%22%2F%3E%0A%3C%2Fsvg%3E%0A" }, H0 = { "cell-0": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Crect%20x%3D%224%22%20y%3D%2211.001%22%20width%3D%225%22%20height%3D%225%22%20rx%3D%221%22%20fill%3D%22%23E5E5E5%22%2F%3E%0A%3Crect%20x%3D%2211%22%20y%3D%2211.001%22%20width%3D%225%22%20height%3D%225%22%20rx%3D%221%22%20fill%3D%22%23E5E5E5%22%2F%3E%0A%3Crect%20x%3D%224%22%20y%3D%224.00098%22%20width%3D%225%22%20height%3D%225%22%20rx%3D%221%22%20fill%3D%22%23E5E5E5%22%2F%3E%0A%3Crect%20x%3D%2211%22%20y%3D%224.00098%22%20width%3D%225%22%20height%3D%225%22%20rx%3D%221%22%20fill%3D%22%23E5E5E5%22%2F%3E%0A%3C%2Fsvg%3E%0A", "cell-25": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Crect%20x%3D%224%22%20y%3D%2211.001%22%20width%3D%225%22%20height%3D%225%22%20rx%3D%221%22%20fill%3D%22%23E5E5E5%22%2F%3E%0A%3Crect%20x%3D%2211%22%20y%3D%2211.001%22%20width%3D%225%22%20height%3D%225%22%20rx%3D%221%22%20fill%3D%22%23E5E5E5%22%2F%3E%0A%3Crect%20x%3D%224.25%22%20y%3D%224.25098%22%20width%3D%224.5%22%20height%3D%224.5%22%20rx%3D%220.75%22%20fill%3D%22%230493EE%22%20stroke%3D%22%230493EE%22%20stroke-width%3D%220.5%22%2F%3E%0A%3Crect%20x%3D%2211%22%20y%3D%224.00098%22%20width%3D%225%22%20height%3D%225%22%20rx%3D%221%22%20fill%3D%22%23E5E5E5%22%2F%3E%0A%3C%2Fsvg%3E%0A", "cell-50": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Crect%20x%3D%224%22%20y%3D%2211.001%22%20width%3D%225%22%20height%3D%225%22%20rx%3D%221%22%20fill%3D%22%23E5E5E5%22%2F%3E%0A%3Crect%20x%3D%2211%22%20y%3D%2211.001%22%20width%3D%225%22%20height%3D%225%22%20rx%3D%221%22%20fill%3D%22%23E5E5E5%22%2F%3E%0A%3Crect%20x%3D%224.25%22%20y%3D%224.25098%22%20width%3D%224.5%22%20height%3D%224.5%22%20rx%3D%220.75%22%20fill%3D%22%230493EE%22%20stroke%3D%22%230493EE%22%20stroke-width%3D%220.5%22%2F%3E%0A%3Crect%20x%3D%2211.25%22%20y%3D%224.25098%22%20width%3D%224.5%22%20height%3D%224.5%22%20rx%3D%220.75%22%20fill%3D%22%230493EE%22%20stroke%3D%22%230493EE%22%20stroke-width%3D%220.5%22%2F%3E%0A%3C%2Fsvg%3E%0A", "cell-75": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Crect%20x%3D%224.25%22%20y%3D%2211.251%22%20width%3D%224.5%22%20height%3D%224.5%22%20rx%3D%220.75%22%20fill%3D%22%230493EE%22%20stroke%3D%22%230493EE%22%20stroke-width%3D%220.5%22%2F%3E%0A%3Crect%20x%3D%2211%22%20y%3D%2211.001%22%20width%3D%225%22%20height%3D%225%22%20rx%3D%221%22%20fill%3D%22%23E5E5E5%22%2F%3E%0A%3Crect%20x%3D%224.25%22%20y%3D%224.25098%22%20width%3D%224.5%22%20height%3D%224.5%22%20rx%3D%220.75%22%20fill%3D%22%230493EE%22%20stroke%3D%22%230493EE%22%20stroke-width%3D%220.5%22%2F%3E%0A%3Crect%20x%3D%2211.25%22%20y%3D%224.25098%22%20width%3D%224.5%22%20height%3D%224.5%22%20rx%3D%220.75%22%20fill%3D%22%230493EE%22%20stroke%3D%22%230493EE%22%20stroke-width%3D%220.5%22%2F%3E%0A%3C%2Fsvg%3E%0A", "cell-100": "data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Crect%20x%3D%224.25%22%20y%3D%2211.251%22%20width%3D%224.5%22%20height%3D%224.5%22%20rx%3D%220.75%22%20fill%3D%22%230493EE%22%20stroke%3D%22%230493EE%22%20stroke-width%3D%220.5%22%2F%3E%0A%3Crect%20x%3D%2211.25%22%20y%3D%2211.251%22%20width%3D%224.5%22%20height%3D%224.5%22%20rx%3D%220.75%22%20fill%3D%22%230493EE%22%20stroke%3D%22%230493EE%22%20stroke-width%3D%220.5%22%2F%3E%0A%3Crect%20x%3D%224.25%22%20y%3D%224.25098%22%20width%3D%224.5%22%20height%3D%224.5%22%20rx%3D%220.75%22%20fill%3D%22%230493EE%22%20stroke%3D%22%230493EE%22%20stroke-width%3D%220.5%22%2F%3E%0A%3Crect%20x%3D%2211.25%22%20y%3D%224.25098%22%20width%3D%224.5%22%20height%3D%224.5%22%20rx%3D%220.75%22%20fill%3D%22%230493EE%22%20stroke%3D%22%230493EE%22%20stroke-width%3D%220.5%22%2F%3E%0A%3C%2Fsvg%3E%0A" }, g = {
1299
+ feedback: V0,
1300
+ star: O0,
1301
+ progress: $0,
1302
+ signal: P0,
1303
+ feeling: W0,
1304
+ arrow: Z0,
1305
+ shape: q0,
1306
+ feedback2: G0,
1307
+ flag: j0,
1308
+ cell: H0
1309
+ }, X0 = [
1310
+ {
1311
+ title: "sheet.cf.iconSet.direction",
1312
+ group: [
1313
+ { name: "3Arrows", list: [g.arrow["up-green"], g.arrow["right-gold"], g.arrow["down-red"]] },
1314
+ { name: "3ArrowsGray", list: [g.arrow["up-gray"], g.arrow["right-gray"], g.arrow["down-gray"]] },
1315
+ { name: "4Arrows", list: [g.arrow["up-green"], g.arrow["rightAndUp-gold"], g.arrow["rightAndDown-gold"], g.arrow["down-red"]] },
1316
+ { name: "4ArrowsGray", list: [g.arrow["up-gray"], g.arrow["rightAndUp-gray"], g.arrow["rightAndDown-gray"], g.arrow["down-gray"]] },
1317
+ { name: "5Arrows", list: [g.arrow["up-green"], g.arrow["rightAndUp-gold"], g.arrow["right-gold"], g.arrow["rightAndDown-gold"], g.arrow["down-red"]] },
1318
+ { name: "5ArrowsGray", list: [g.arrow["up-gray"], g.arrow["rightAndUp-gray"], g.arrow["right-gray"], g.arrow["rightAndDown-gray"], g.arrow["down-gray"]] },
1319
+ { name: "3Triangles", list: [g.shape.up, g.shape.cross, g.shape.down] }
1320
+ ]
1321
+ },
1322
+ {
1323
+ title: "sheet.cf.iconSet.shape",
1324
+ group: [
1325
+ {
1326
+ name: "3TrafficLights1",
1327
+ list: [g.shape["roundness-greed"], g.shape["roundness-gold"], g.shape["roundness-red"]]
1328
+ },
1329
+ {
1330
+ name: "3Signs",
1331
+ list: [g.shape["roundness-greed"], g.shape["triangle-gold"], g.shape["rhomboid-red"]]
1332
+ },
1333
+ { name: "3TrafficLights2", list: [g.shape["indicate-greed"], g.shape["indicate-gold"], g.shape["indicate-red"]] },
1334
+ {
1335
+ name: "4RedToBlack",
1336
+ list: [g.shape["roundness-red"], g.shape["roundness-pink"], g.shape["roundness-gray"], g.shape["roundness-black"]]
1337
+ },
1338
+ {
1339
+ name: "4TrafficLights",
1340
+ list: [g.shape["roundness-greed"], g.shape["roundness-gold"], g.shape["roundness-red"], g.shape["roundness-black"]]
1341
+ }
1342
+ ]
1343
+ },
1344
+ {
1345
+ title: "sheet.cf.iconSet.mark",
1346
+ group: [
1347
+ {
1348
+ name: "3Symbols",
1349
+ list: [g.feedback.correct, g.feedback.warn, g.feedback.mistake]
1350
+ },
1351
+ {
1352
+ name: "3Symbols2",
1353
+ list: [g.feedback2.correct2, g.feedback2.warn2, g.feedback2.mistake2]
1354
+ },
1355
+ {
1356
+ name: "3Flags",
1357
+ list: [g.flag["flag-green"], g.flag["flag-gold"], g.flag["flag-red"]]
1358
+ }
1359
+ ]
1360
+ },
1361
+ {
1362
+ title: "sheet.cf.iconSet.rank",
1363
+ group: [
1364
+ {
1365
+ name: "4Rating",
1366
+ list: [g.signal.signal25, g.signal.signal50, g.signal.signal75, g.signal.signal100]
1367
+ },
1368
+ {
1369
+ name: "5Rating",
1370
+ list: [g.signal.signal0, g.signal.signal25, g.signal.signal50, g.signal.signal75, g.signal.signal100]
1371
+ },
1372
+ {
1373
+ name: "5Quarters",
1374
+ list: [g.progress.progress100, g.progress.progress75, g.progress.progress50, g.progress.progress25, g.progress.progress0]
1375
+ },
1376
+ {
1377
+ name: "_5Felling",
1378
+ list: [g.feeling.guffaw, g.feeling.smile, g.feeling.noninductive, g.feeling.dissatisfied, g.feeling.impatient]
1379
+ },
1380
+ {
1381
+ name: "5Boxes",
1382
+ list: [g.cell["cell-100"], g.cell["cell-75"], g.cell["cell-50"], g.cell["cell-25"], g.cell["cell-0"]]
1383
+ },
1384
+ {
1385
+ name: "3Stars",
1386
+ list: [g.star.starFull, g.star.starIncomplete, g.star.starEmpty]
1387
+ }
1388
+ ]
1389
+ }
1390
+ ], o2 = X0.reduce((n, s) => {
1391
+ const { group: t } = s;
1392
+ for (const e of t)
1393
+ n[e.name] = e.list;
1394
+ return n;
1395
+ }, {});
1396
+ for (const n in o2) {
1397
+ const s = o2[n];
1398
+ Object.freeze(s);
1399
+ }
1400
+ const Y0 = "EMPTY_ICON_TYPE", v2 = {
1401
+ type: J.MUTATION,
1402
+ id: "sheet.mutation.move-conditional-rule",
1403
+ handler(n, s) {
1404
+ if (!s)
1405
+ return !1;
1406
+ const { unitId: t, subUnitId: e, start: r, end: i } = s;
1407
+ return n.get(B).moveRulePriority(t, e, r, i), !0;
1408
+ }
1409
+ }, R1 = (n) => {
1410
+ const { unitId: s, subUnitId: t } = n, e = D0(n.start, n.end);
1411
+ if (!e)
1412
+ return [];
1413
+ const [r, i] = e;
1414
+ return [
1415
+ {
1416
+ id: v2.id,
1417
+ params: { unitId: s, subUnitId: t, start: r, end: i }
1418
+ }
1419
+ ];
1420
+ }, K0 = (n, s) => {
1421
+ const t = n.get(B), { unitId: e, subUnitId: r, cfId: i } = s, a = [...t.getSubunitRules(e, r) || []], u = a.findIndex((o) => o.cfId === i), l = a[u - 1];
1422
+ if (u > -1) {
1423
+ const o = a[u], h = [{
1424
+ id: N2.id,
1425
+ params: { unitId: e, subUnitId: r, rule: H.deepClone(o) }
1426
+ }];
1427
+ if (a.splice(u, 1), u !== 0) {
1428
+ const c = a[0];
1429
+ if (c) {
1430
+ const d = C0({ id: c.cfId, type: "before" }, { id: l.cfId, type: "after" }, a, (F) => F.cfId);
1431
+ if (!d)
1432
+ return h;
1433
+ const [C, D] = d, f = {
1434
+ unitId: e,
1435
+ subUnitId: r,
1436
+ start: C,
1437
+ end: D
1438
+ };
1439
+ h.push({ id: v2.id, params: f });
1440
+ }
1441
+ }
1442
+ return h;
1443
+ }
1444
+ return [];
1445
+ }, E2 = {
1446
+ type: J.MUTATION,
1447
+ id: "sheet.mutation.delete-conditional-rule",
1448
+ handler(n, s) {
1449
+ if (!s)
1450
+ return !1;
1451
+ const { unitId: t, subUnitId: e, cfId: r } = s;
1452
+ return n.get(B).deleteRule(t, e, r), !0;
1453
+ }
1454
+ }, I1 = (n, s) => ({ id: E2.id, params: { unitId: s.unitId, subUnitId: s.subUnitId, cfId: s.rule.cfId } }), N2 = {
1455
+ type: J.MUTATION,
1456
+ id: "sheet.mutation.add-conditional-rule",
1457
+ handler(n, s) {
1458
+ if (!s)
1459
+ return !1;
1460
+ const { unitId: t, subUnitId: e, rule: r } = s;
1461
+ return n.get(B).addRule(t, e, r), !0;
1462
+ }
1463
+ }, T2 = {
1464
+ type: J.MUTATION,
1465
+ id: "sheet.mutation.set-conditional-rule",
1466
+ handler(n, s) {
1467
+ if (!s)
1468
+ return !1;
1469
+ const { unitId: t, subUnitId: e, rule: r } = s, i = s.cfId || s.rule.cfId;
1470
+ return n.get(B).setRule(t, e, r, i), !0;
1471
+ }
1472
+ }, b1 = (n, s) => {
1473
+ const t = n.get(B), { unitId: e, subUnitId: r } = s, i = s.cfId || s.rule.cfId, a = t.getRule(e, r, i);
1474
+ return a ? [
1475
+ {
1476
+ id: T2.id,
1477
+ params: {
1478
+ unitId: e,
1479
+ subUnitId: r,
1480
+ cfId: i,
1481
+ rule: H.deepClone(a)
1482
+ }
1483
+ }
1484
+ ] : [];
1485
+ }, J0 = "ssheets-conditional-formatting.config", z0 = {};
1486
+ var Q0 = Object.defineProperty, e1 = Object.getOwnPropertyDescriptor, t1 = (n, s, t, e) => {
1487
+ for (var r = e > 1 ? void 0 : e ? e1(s, t) : s, i = n.length - 1, a; i >= 0; i--)
1488
+ (a = n[i]) && (r = (e ? a(s, t, r) : a(r)) || r);
1489
+ return e && r && Q0(s, t, r), r;
1490
+ }, q = (n, s) => (t, e) => s(t, e, n);
1491
+ let K = class extends m2 {
1492
+ constructor(n, s, t, e, r, i) {
1493
+ super(), this._conditionalFormattingRuleModel = n, this._injector = s, this._univerInstanceService = t, this._resourceManagerService = e, this._sheetInterceptorService = r, this._commandService = i, this._initCellChange(), this._initSnapshot(), this._initSheetChange();
1494
+ }
1495
+ get _conditionalFormattingViewModelV2() {
1496
+ return this._injector.get(j);
1497
+ }
1498
+ composeStyle(n, s, t, e) {
1499
+ const r = this._conditionalFormattingViewModelV2.getCellCfs(n, s, t, e);
1500
+ if (r && (r != null && r.length)) {
1501
+ const i = r.map((l) => this._conditionalFormattingRuleModel.getRule(n, s, l.cfId)).filter((l) => !!l).reverse(), a = i.findIndex((l) => l == null ? void 0 : l.stopIfTrue);
1502
+ return a > -1 && i.splice(a + 1), i.reduce((l, o) => {
1414
1503
  var d;
1415
- const u = h.rule.type, g = r.cfList.find((D) => D.cfId === h.cfId);
1416
- if (g != null && g.isDirty && this._calculateUnit$.next({ unitId: i, subUnitId: t, rule: h }), u === L.highlightCell)
1417
- g.ruleCache && Y.deepMerge(c, { style: g.ruleCache });
1418
- else if (u === L.colorScale) {
1419
- const D = g == null ? void 0 : g.ruleCache;
1420
- D && typeof D == "string" && (c.style = { ...(d = c.style) != null ? d : {}, bg: { rgb: D } });
1421
- } else if (u === L.dataBar) {
1422
- const D = g == null ? void 0 : g.ruleCache;
1423
- D && D !== X && (c.dataBar = D, c.isShowValue = D.isShowValue);
1424
- } else if (u === L.iconSet) {
1425
- const D = g == null ? void 0 : g.ruleCache;
1426
- D && D !== X && (c.iconSet = D, c.isShowValue = D.isShowValue);
1504
+ const h = o.rule.type, c = r.find((C) => C.cfId === o.cfId);
1505
+ if (h === y.highlightCell)
1506
+ c.result && H.deepMerge(l, { style: c.result });
1507
+ else if (h === y.colorScale) {
1508
+ const C = c == null ? void 0 : c.result;
1509
+ C && typeof C == "string" && (l.style = { ...(d = l.style) != null ? d : {}, bg: { rgb: C } });
1510
+ } else if (h === y.dataBar) {
1511
+ const C = c == null ? void 0 : c.result;
1512
+ C && (l.dataBar = C, l.isShowValue = C.isShowValue);
1513
+ } else if (h === y.iconSet) {
1514
+ const C = c == null ? void 0 : c.result;
1515
+ C && (l.iconSet = C, l.isShowValue = C.isShowValue);
1427
1516
  }
1428
- return c;
1517
+ return l;
1429
1518
  }, {});
1430
1519
  }
1431
1520
  return null;
1432
1521
  }
1433
1522
  _initSnapshot() {
1434
- const i = (e) => {
1435
- const s = this._conditionalFormattingRuleModel.getUnitRules(e), r = {};
1436
- return s ? (s.forEach((a, o) => {
1437
- r[o] = a;
1523
+ const n = (t) => {
1524
+ const e = this._conditionalFormattingRuleModel.getUnitRules(t), r = {};
1525
+ return e ? (e.forEach((i, a) => {
1526
+ r[a] = i;
1438
1527
  }), JSON.stringify(r)) : "";
1439
- }, t = (e) => {
1440
- if (!e)
1528
+ }, s = (t) => {
1529
+ if (!t)
1441
1530
  return {};
1442
1531
  try {
1443
- return JSON.parse(e);
1532
+ return JSON.parse(t);
1444
1533
  } catch {
1445
1534
  return {};
1446
1535
  }
1447
1536
  };
1448
1537
  this.disposeWithMe(
1449
1538
  this._resourceManagerService.registerPluginResource({
1450
- pluginName: L2,
1451
- businesses: [l2.UNIVER_SHEET],
1452
- toJson: (e) => i(e),
1453
- parseJson: (e) => t(e),
1454
- onUnLoad: (e) => {
1455
- this._conditionalFormattingRuleModel.deleteUnitId(e);
1539
+ pluginName: k2,
1540
+ businesses: [c2.UNIVER_SHEET],
1541
+ toJson: (t) => n(t),
1542
+ parseJson: (t) => s(t),
1543
+ onUnLoad: (t) => {
1544
+ this._conditionalFormattingRuleModel.deleteUnitId(t);
1456
1545
  },
1457
- onLoad: (e, s) => {
1458
- Object.keys(s).forEach((r) => {
1459
- [...s[r]].reverse().forEach((o) => {
1460
- this._conditionalFormattingRuleModel.addRule(e, r, o);
1546
+ onLoad: (t, e) => {
1547
+ Object.keys(e).forEach((r) => {
1548
+ [...e[r]].reverse().forEach((a) => {
1549
+ this._conditionalFormattingRuleModel.addRule(t, r, a);
1461
1550
  });
1462
1551
  });
1463
1552
  }
@@ -1467,28 +1556,28 @@ let z = class extends x2 {
1467
1556
  _initSheetChange() {
1468
1557
  this.disposeWithMe(
1469
1558
  this._sheetInterceptorService.interceptCommand({
1470
- getMutations: (i) => {
1471
- if (i.id === G2.id) {
1472
- const t = i.params, e = t.unitId || J0(this._univerInstanceService), s = t.subUnitId || z0(this._univerInstanceService);
1473
- if (!s)
1559
+ getMutations: (n) => {
1560
+ if (n.id === s0.id) {
1561
+ const s = n.params, t = s.unitId || r1(this._univerInstanceService), e = s.subUnitId || s1(this._univerInstanceService);
1562
+ if (!e)
1474
1563
  return { redos: [], undos: [] };
1475
- const r = this._conditionalFormattingRuleModel.getSubunitRules(e, s);
1564
+ const r = this._conditionalFormattingRuleModel.getSubunitRules(t, e);
1476
1565
  if (!r)
1477
1566
  return { redos: [], undos: [] };
1478
- const a = [], o = [];
1479
- return r.forEach((l) => {
1480
- const c = {
1481
- unitId: e,
1482
- subUnitId: s,
1483
- cfId: l.cfId
1567
+ const i = [], a = [];
1568
+ return r.forEach((u) => {
1569
+ const l = {
1570
+ unitId: t,
1571
+ subUnitId: e,
1572
+ cfId: u.cfId
1484
1573
  };
1485
- a.push({
1486
- id: m2.id,
1487
- params: c
1488
- }), o.push(...R0(this._injector, c));
1574
+ i.push({
1575
+ id: E2.id,
1576
+ params: l
1577
+ }), a.push(...K0(this._injector, l));
1489
1578
  }), {
1490
- redos: a,
1491
- undos: o
1579
+ redos: i,
1580
+ undos: a
1492
1581
  };
1493
1582
  }
1494
1583
  return { redos: [], undos: [] };
@@ -1496,107 +1585,84 @@ let z = class extends x2 {
1496
1585
  })
1497
1586
  );
1498
1587
  }
1499
- _registerCalculationUnit(i) {
1500
- this._calculationUnitMap.set(i.type, i);
1501
- }
1502
- _getComputedCache(i, t, e) {
1503
- var s, r;
1504
- return (r = (s = this._ruleCacheMap.get(i)) == null ? void 0 : s.get(t)) == null ? void 0 : r.get(e);
1505
- }
1506
- _setComputedCache(i, t, e, s) {
1507
- let r = this._ruleCacheMap.get(i);
1508
- r || (r = /* @__PURE__ */ new Map(), this._ruleCacheMap.set(i, r));
1509
- let a = r.get(t);
1510
- a || (a = /* @__PURE__ */ new Map(), r.set(t, a)), a.set(e, s);
1511
- }
1512
- _deleteComputeCache(i, t, e) {
1513
- const s = this._ruleCacheMap.get(i), r = s == null ? void 0 : s.get(t);
1514
- r && (r.delete(e), r.size || s == null || s.delete(t));
1515
- }
1516
- _initCacheManager() {
1517
- this.disposeWithMe(this._conditionalFormattingViewModel.markDirty$.subscribe((i) => {
1518
- this._deleteComputeCache(i.unitId, i.subUnitId, i.rule.cfId);
1519
- })), this.disposeWithMe(this._conditionalFormattingRuleModel.$ruleChange.pipe(D2((i) => i.type !== "sort")).subscribe((i) => {
1520
- const { unitId: t, subUnitId: e, rule: s } = i;
1521
- this._deleteComputeCache(t, e, s.cfId);
1522
- }));
1523
- }
1588
+ // eslint-disable-next-line max-lines-per-function
1524
1589
  _initCellChange() {
1525
1590
  this.disposeWithMe(
1526
- this._commandService.onCommandExecuted((i) => {
1527
- const t = (e, s, r) => {
1528
- const a = /* @__PURE__ */ new Set();
1529
- return r.forEach(([o, l]) => {
1530
- const c = this._conditionalFormattingViewModel.getCellCf(e, s, o, l);
1531
- c == null || c.cfList.forEach((h) => a.add(h.cfId));
1532
- }), [...a].map((o) => this._conditionalFormattingRuleModel.getRule(e, s, o)).filter((o) => !!o);
1591
+ // eslint-disable-next-line max-lines-per-function
1592
+ this._commandService.onCommandExecuted((n) => {
1593
+ const s = (t, e, r) => {
1594
+ const i = /* @__PURE__ */ new Set();
1595
+ return r.forEach(([a, u]) => {
1596
+ const l = this._conditionalFormattingViewModelV2.getCellCfs(t, e, a, u);
1597
+ l == null || l.forEach((o) => i.add(o.cfId));
1598
+ }), [...i].map((a) => this._conditionalFormattingRuleModel.getRule(t, e, a)).filter((a) => !!a);
1533
1599
  };
1534
- switch (i.id) {
1535
- case t0.id: {
1536
- const e = i.params, { subUnitId: s, unitId: r, cellValue: a } = e, o = [];
1537
- new I(a).forValue((c, h, u) => {
1538
- u && Object.keys(u).some((d) => ["p", "v"].includes(d)) && o.push([c, h]);
1539
- }), t(r, s, o).forEach((c) => {
1540
- this._conditionalFormattingViewModel.markRuleDirty(r, s, c), this._deleteComputeCache(r, s, c.cfId);
1600
+ switch (n.id) {
1601
+ case d0.id: {
1602
+ const t = n.params, { subUnitId: e, unitId: r, cellValue: i } = t, a = [];
1603
+ new T(i).forValue((l, o, h) => {
1604
+ h && Object.keys(h).some((d) => ["p", "v"].includes(d)) && a.push([l, o]);
1605
+ }), s(r, e, a).forEach((l) => {
1606
+ this._conditionalFormattingViewModelV2.markRuleDirty(r, e, l.cfId);
1541
1607
  });
1542
1608
  break;
1543
1609
  }
1544
- case e0.id:
1545
- case Q2.id: {
1546
- const { range: e, unitId: s, subUnitId: r } = i.params, a = this._conditionalFormattingRuleModel.getSubunitRules(s, r), o = { ...e, endColumn: Number.MAX_SAFE_INTEGER };
1547
- a && a.filter((c) => c.ranges.some((h) => H.intersects(h, o))).forEach((c) => {
1548
- this._conditionalFormattingViewModel.markRuleDirty(s, r, c), this._deleteComputeCache(s, r, c.cfId);
1610
+ case h0.id:
1611
+ case u0.id: {
1612
+ const { range: t, unitId: e, subUnitId: r } = n.params, i = this._conditionalFormattingRuleModel.getSubunitRules(e, r), a = { ...t, endColumn: Number.MAX_SAFE_INTEGER };
1613
+ i && i.filter((l) => l.ranges.some((o) => X.intersects(o, a))).forEach((l) => {
1614
+ this._conditionalFormattingViewModelV2.markRuleDirty(e, r, l.cfId);
1549
1615
  });
1550
1616
  break;
1551
1617
  }
1552
- case z2.id:
1553
- case J2.id: {
1554
- const { range: e, unitId: s, subUnitId: r } = i.params, a = this._conditionalFormattingRuleModel.getSubunitRules(s, r), o = { ...e, endRow: Number.MAX_SAFE_INTEGER };
1555
- a && a.filter((c) => c.ranges.some((h) => H.intersects(h, o))).forEach((c) => {
1556
- this._conditionalFormattingViewModel.markRuleDirty(s, r, c), this._deleteComputeCache(s, r, c.cfId);
1618
+ case c0.id:
1619
+ case o0.id: {
1620
+ const { range: t, unitId: e, subUnitId: r } = n.params, i = this._conditionalFormattingRuleModel.getSubunitRules(e, r), a = { ...t, endRow: Number.MAX_SAFE_INTEGER };
1621
+ i && i.filter((l) => l.ranges.some((o) => X.intersects(o, a))).forEach((l) => {
1622
+ this._conditionalFormattingViewModelV2.markRuleDirty(e, r, l.cfId);
1557
1623
  });
1558
1624
  break;
1559
1625
  }
1560
- case K2.id: {
1561
- const { sourceRange: e, targetRange: s, unitId: r, subUnitId: a } = i.params, o = this._conditionalFormattingRuleModel.getSubunitRules(r, a), l = {
1562
- startRow: Math.min(e.startRow, s.startRow),
1626
+ case l0.id: {
1627
+ const { sourceRange: t, targetRange: e, unitId: r, subUnitId: i } = n.params, a = this._conditionalFormattingRuleModel.getSubunitRules(r, i), u = {
1628
+ startRow: Math.min(t.startRow, e.startRow),
1563
1629
  endRow: Number.MAX_SAFE_INTEGER,
1564
1630
  startColumn: 0,
1565
1631
  endColumn: Number.MAX_SAFE_INTEGER
1566
1632
  };
1567
- o && o.filter((h) => h.ranges.some((u) => H.intersects(u, l))).forEach((h) => {
1568
- this._conditionalFormattingViewModel.markRuleDirty(r, a, h), this._deleteComputeCache(r, a, h.cfId);
1633
+ a && a.filter((o) => o.ranges.some((h) => X.intersects(h, u))).forEach((o) => {
1634
+ this._conditionalFormattingViewModelV2.markRuleDirty(r, i, o.cfId);
1569
1635
  });
1570
1636
  break;
1571
1637
  }
1572
- case Y2.id: {
1573
- const { sourceRange: e, targetRange: s, unitId: r, subUnitId: a } = i.params, o = this._conditionalFormattingRuleModel.getSubunitRules(r, a), l = {
1638
+ case a0.id: {
1639
+ const { sourceRange: t, targetRange: e, unitId: r, subUnitId: i } = n.params, a = this._conditionalFormattingRuleModel.getSubunitRules(r, i), u = {
1574
1640
  startRow: 0,
1575
1641
  endRow: Number.MAX_SAFE_INTEGER,
1576
- startColumn: Math.min(e.startColumn, s.startColumn),
1642
+ startColumn: Math.min(t.startColumn, e.startColumn),
1577
1643
  endColumn: Number.MAX_SAFE_INTEGER
1578
1644
  };
1579
- o && o.filter((h) => h.ranges.some((u) => H.intersects(u, l))).forEach((h) => {
1580
- this._conditionalFormattingViewModel.markRuleDirty(r, a, h), this._deleteComputeCache(r, a, h.cfId);
1645
+ a && a.filter((o) => o.ranges.some((h) => X.intersects(h, u))).forEach((o) => {
1646
+ this._conditionalFormattingViewModelV2.markRuleDirty(r, i, o.cfId);
1581
1647
  });
1582
1648
  break;
1583
1649
  }
1584
- case X2.id: {
1585
- const { unitId: e, to: s, from: r } = i.params, a = (o) => {
1586
- const l = [];
1587
- new I(o.value).forValue((h, u) => {
1588
- l.push([h, u]);
1589
- }), t(e, o.subUnitId, l).forEach((h) => {
1590
- this._conditionalFormattingViewModel.markRuleDirty(e, o.subUnitId, h), this._deleteComputeCache(e, o.subUnitId, h.cfId);
1650
+ case i0.id: {
1651
+ const { unitId: t, to: e, from: r } = n.params, i = (a) => {
1652
+ const u = [];
1653
+ new T(a.value).forValue((o, h) => {
1654
+ u.push([o, h]);
1655
+ }), s(t, a.subUnitId, u).forEach((o) => {
1656
+ this._conditionalFormattingViewModelV2.markRuleDirty(t, a.subUnitId, o.cfId);
1591
1657
  });
1592
1658
  };
1593
- a(s), a(r);
1659
+ i(e), i(r);
1594
1660
  break;
1595
1661
  }
1596
- case H2.id: {
1597
- const { range: e, unitId: s, subUnitId: r } = i.params, a = this._conditionalFormattingRuleModel.getSubunitRules(s, r);
1598
- a && a.filter((l) => l.ranges.some((c) => H.intersects(c, e))).forEach((l) => {
1599
- this._conditionalFormattingViewModel.markRuleDirty(s, r, l), this._deleteComputeCache(s, r, l.cfId);
1662
+ case n0.id: {
1663
+ const { range: t, unitId: e, subUnitId: r } = n.params, i = this._conditionalFormattingRuleModel.getSubunitRules(e, r);
1664
+ i && i.filter((u) => u.ranges.some((l) => X.intersects(l, t))).forEach((u) => {
1665
+ this._conditionalFormattingViewModelV2.markRuleDirty(e, r, u.cfId);
1600
1666
  });
1601
1667
  break;
1602
1668
  }
@@ -1604,204 +1670,177 @@ let z = class extends x2 {
1604
1670
  })
1605
1671
  );
1606
1672
  }
1607
- _initRemoteCalculate() {
1608
- this.disposeWithMe(this._ruleComputeStatus$.subscribe(({ status: i, subUnitId: t, unitId: e, cfId: s, result: r }) => {
1609
- const a = this._getComputedCache(e, t, s) || {};
1610
- a.status = i, this._setComputedCache(e, t, s, a), i === "end" && r && (this.interceptorManager.fetchThroughInterceptors(this.interceptorManager.getInterceptPoints().beforeUpdateRuleResult)({
1611
- subUnitId: t,
1612
- unitId: e,
1613
- cfId: s
1614
- }, void 0), r.forValue((o, l, c) => {
1615
- this._conditionalFormattingViewModel.setCellCfRuleCache(e, t, o, l, s, c);
1616
- }));
1617
- }));
1618
- }
1619
- async _handleCalculateUnit(i, t, e) {
1620
- if (!this._conditionalFormattingRuleModel.getRule(i, t, e.cfId))
1621
- return;
1622
- const s = this._univerInstanceService.getUnit(i), r = s == null ? void 0 : s.getSheetBySheetId(t);
1623
- let a = this._getComputedCache(i, t, e.cfId);
1624
- if (a && ["computing", "end"].includes(a.status))
1625
- return;
1626
- a || (a = { status: "computing" }, this._setComputedCache(i, t, e.cfId, a));
1627
- const o = this._calculationUnitMap.get(e.rule.type);
1628
- if (!o || !r)
1629
- return;
1630
- const l = { unitId: i, subUnitId: t, accessor: this._injector, workbook: s, worksheet: r }, c = await o.handle(e, l);
1631
- this._ruleComputeStatus$.next({ status: "end", unitId: i, subUnitId: t, cfId: e.cfId, result: c });
1632
- }
1633
1673
  };
1634
- z = Y0([
1635
- Z(0, M(V)),
1636
- Z(1, M(o2)),
1637
- Z(2, M(c2)),
1638
- Z(3, M(O2)),
1639
- Z(4, M(T2)),
1640
- Z(5, M(j2)),
1641
- Z(6, M(C2))
1642
- ], z);
1643
- const J0 = (n) => n.getCurrentUnitForType(l2.UNIVER_SHEET).getUnitId(), z0 = (n) => {
1644
- var i;
1645
- return (i = n.getCurrentUnitForType(l2.UNIVER_SHEET).getActiveSheet()) == null ? void 0 : i.getSheetId();
1674
+ K = t1([
1675
+ q(0, A(B)),
1676
+ q(1, A(F2)),
1677
+ q(2, A(S2)),
1678
+ q(3, A(P2)),
1679
+ q(4, A(r0)),
1680
+ q(5, A(f2))
1681
+ ], K);
1682
+ const r1 = (n) => n.getCurrentUnitForType(c2.UNIVER_SHEET).getUnitId(), s1 = (n) => {
1683
+ var s;
1684
+ return (s = n.getCurrentUnitForType(c2.UNIVER_SHEET).getActiveSheet()) == null ? void 0 : s.getSheetId();
1646
1685
  };
1647
- var Q0 = Object.defineProperty, e1 = Object.getOwnPropertyDescriptor, t1 = (n, i, t, e) => {
1648
- for (var s = e > 1 ? void 0 : e ? e1(i, t) : i, r = n.length - 1, a; r >= 0; r--)
1649
- (a = n[r]) && (s = (e ? a(i, t, s) : a(s)) || s);
1650
- return e && s && Q0(i, t, s), s;
1651
- }, g2 = (n, i) => (t, e) => i(t, e, n), t2;
1652
- let A2 = (t2 = class extends $2 {
1653
- constructor(n = L0, i, t, e) {
1654
- super(), this._config = n, this._injector = i, this._commandService = t, this._configService = e;
1655
- const { ...s } = this._config;
1656
- this._configService.setConfig(I0, s), [
1657
- [z],
1658
- [N],
1659
- [V],
1660
- [c2]
1661
- ].forEach((r) => {
1662
- this._injector.add(r);
1686
+ var n1 = Object.defineProperty, i1 = Object.getOwnPropertyDescriptor, a1 = (n, s, t, e) => {
1687
+ for (var r = e > 1 ? void 0 : e ? i1(s, t) : s, i = n.length - 1, a; i >= 0; i--)
1688
+ (a = n[i]) && (r = (e ? a(s, t, r) : a(r)) || r);
1689
+ return e && r && n1(s, t, r), r;
1690
+ }, D2 = (n, s) => (t, e) => s(t, e, n), s2;
1691
+ let M2 = (s2 = class extends W2 {
1692
+ constructor(n = z0, s, t, e) {
1693
+ super(), this._config = n, this._injector = s, this._commandService = t, this._configService = e;
1694
+ const { ...r } = this._config;
1695
+ this._configService.setConfig(J0, r), [
1696
+ [K],
1697
+ [G],
1698
+ [B],
1699
+ [j]
1700
+ ].forEach((i) => {
1701
+ this._injector.add(i);
1663
1702
  }), [
1664
- b2,
1665
- m2,
1666
- S2,
1667
- f2,
1668
- i2
1669
- ].forEach((r) => {
1670
- this._commandService.registerCommand(r);
1703
+ N2,
1704
+ E2,
1705
+ T2,
1706
+ v2,
1707
+ n2
1708
+ ].forEach((i) => {
1709
+ this._commandService.registerCommand(i);
1671
1710
  });
1672
1711
  }
1673
1712
  onStarting() {
1674
- this._injector.get(z);
1675
- }
1676
- }, E(t2, "pluginName", L2), E(t2, "type", l2.UNIVER_SHEET), t2);
1677
- A2 = t1([
1678
- g2(1, M(o2)),
1679
- g2(2, M(C2)),
1680
- g2(3, W2)
1681
- ], A2);
1682
- const i1 = "sheet-conditional-rule-icon", s1 = 35, n1 = 15, r1 = 2;
1683
- class a1 extends I2 {
1713
+ this._injector.get(K), Z2(this._injector, [[K], [j]]);
1714
+ }
1715
+ }, m(s2, "pluginName", k2), m(s2, "type", c2.UNIVER_SHEET), s2);
1716
+ M2 = a1([
1717
+ D2(1, A(F2)),
1718
+ D2(2, A(f2)),
1719
+ D2(3, q2)
1720
+ ], M2);
1721
+ const l1 = "sheet-conditional-rule-icon", o1 = 35, c1 = 15, u1 = 2;
1722
+ class h1 extends B2 {
1684
1723
  constructor() {
1685
1724
  super();
1686
- E(this, "_paddingRightAndLeft", r1);
1687
- E(this, "_width", n1);
1688
- E(this, "_imageMap", /* @__PURE__ */ new Map());
1689
- E(this, "uKey", i1);
1690
- E(this, "Z_INDEX", s1);
1691
- E(this, "_radius", 1);
1725
+ m(this, "_paddingRightAndLeft", u1);
1726
+ m(this, "_width", c1);
1727
+ m(this, "_imageMap", /* @__PURE__ */ new Map());
1728
+ m(this, "uKey", l1);
1729
+ m(this, "Z_INDEX", o1);
1730
+ m(this, "_radius", 1);
1692
1731
  this._init();
1693
1732
  }
1694
- draw(t, e, s, r) {
1695
- const { worksheet: a } = s;
1733
+ draw(t, e, r, i) {
1734
+ const { worksheet: a } = r;
1696
1735
  if (!a)
1697
1736
  return !1;
1698
- t.save(), R.foreach(s.rowColumnSegment, (o, l) => {
1699
- if (!a.getRowVisible(o) || !a.getColVisible(l))
1737
+ t.save(), N.foreach(r.rowColumnSegment, (u, l) => {
1738
+ if (!a.getRowVisible(u) || !a.getColVisible(l))
1700
1739
  return;
1701
- const c = a.getCell(o, l);
1702
- if (c != null && c.iconSet) {
1703
- const { iconType: h, iconId: u } = c.iconSet;
1704
- if (h === y0)
1740
+ const o = a.getCell(u, l);
1741
+ if (o != null && o.iconSet) {
1742
+ const { iconType: h, iconId: c } = o.iconSet;
1743
+ if (h === Y0)
1705
1744
  return;
1706
- const g = this._imageMap.get(this._createKey(h, u));
1707
- if (!g)
1745
+ const d = this._imageMap.get(this._createKey(h, c));
1746
+ if (!d)
1708
1747
  return;
1709
- const d = s.getCellWithCoordByIndex(o, l, !1);
1710
- let { isMerged: D, isMergedMainCell: C, mergeInfo: m, startY: F, endY: w, startX: v, endX: A } = d;
1711
- if (D || (C && (F = m.startY, w = m.endY, v = m.startX, A = m.endX), !this.isRenderDiffRangesByCell(m, r)))
1748
+ const C = r.getCellWithCoordByIndex(u, l, !1);
1749
+ let { isMerged: D, isMergedMainCell: f, mergeInfo: F, startY: p, endY: S, startX: k, endX: V } = C;
1750
+ if (D || (f && (p = F.startY, S = F.endY, k = F.startX, V = F.endX), !this.isRenderDiffRangesByCell(F, i)))
1712
1751
  return;
1713
- const O = A - v, P = w - F;
1714
- if (this._width > P || this._width > O + this._paddingRightAndLeft * 2)
1752
+ const z = V - k, Q = S - p;
1753
+ if (this._width > Q || this._width > z + this._paddingRightAndLeft * 2)
1715
1754
  return;
1716
- const h2 = (P - this._width) / 2 + F;
1717
- t.drawImage(g, v + this._paddingRightAndLeft, h2, this._width, this._width);
1755
+ const h2 = (Q - this._width) / 2 + p;
1756
+ t.drawImage(d, k + this._paddingRightAndLeft, h2, this._width, this._width);
1718
1757
  }
1719
1758
  }), t.restore();
1720
1759
  }
1721
1760
  _init() {
1722
- for (const t in n2)
1723
- n2[t].forEach((s, r) => {
1724
- const a = this._createKey(t, String(r)), o = new Image();
1725
- o.onload = () => {
1726
- this._imageMap.set(a, o);
1727
- }, o.src = s;
1761
+ for (const t in o2)
1762
+ o2[t].forEach((r, i) => {
1763
+ const a = this._createKey(t, String(i)), u = new Image();
1764
+ u.onload = () => {
1765
+ this._imageMap.set(a, u);
1766
+ }, u.src = r;
1728
1767
  });
1729
1768
  }
1730
1769
  _createKey(t, e) {
1731
1770
  return `${t}_${e}`;
1732
1771
  }
1733
1772
  }
1734
- R2.add(a1);
1735
- const M1 = (n, i) => i.length === n.length && !n.some((t) => i.some((e) => !H.equals(e, t)));
1736
- function o1(n) {
1773
+ L2.add(h1);
1774
+ function d1(n) {
1737
1775
  if (typeof n != "object" || n === null)
1738
1776
  return n;
1739
- const i = {};
1777
+ const s = {};
1740
1778
  for (const t in n)
1741
1779
  if (n.hasOwnProperty(t)) {
1742
- const e = o1(n[t]);
1743
- e !== void 0 && (i[t] = e);
1780
+ const e = d1(n[t]);
1781
+ e !== void 0 && (s[t] = e);
1744
1782
  }
1745
- return i;
1783
+ return s;
1746
1784
  }
1747
1785
  export {
1748
- b2 as AddConditionalRuleMutation,
1749
- p1 as AddConditionalRuleMutationUndoFactory,
1750
- p as CFNumberOperator,
1751
- L as CFRuleType,
1752
- _ as CFSubRuleType,
1753
- b as CFTextOperator,
1754
- S as CFTimePeriodOperator,
1755
- U as CFValueType,
1756
- i2 as ConditionalFormattingFormulaMarkDirty,
1757
- N as ConditionalFormattingFormulaService,
1758
- a1 as ConditionalFormattingIcon,
1759
- V as ConditionalFormattingRuleModel,
1760
- z as ConditionalFormattingService,
1761
- c2 as ConditionalFormattingViewModel,
1762
- C1 as DEFAULT_BG_COLOR,
1763
- f1 as DEFAULT_FONT_COLOR,
1764
- r1 as DEFAULT_PADDING,
1765
- n1 as DEFAULT_WIDTH,
1766
- q0 as DataBar,
1767
- m2 as DeleteConditionalRuleMutation,
1768
- R0 as DeleteConditionalRuleMutationUndoFactory,
1769
- y0 as EMPTY_ICON_TYPE,
1770
- X as EMPTY_STYLE,
1771
- y as FormulaResultStatus,
1772
- i1 as IconUKey,
1773
- f2 as MoveConditionalRuleMutation,
1774
- v1 as MoveConditionalRuleMutationUndoFactory,
1775
- L2 as SHEET_CONDITIONAL_FORMATTING_PLUGIN,
1776
- S2 as SetConditionalRuleMutation,
1777
- A2 as UniverSheetsConditionalFormattingPlugin,
1778
- h0 as anchorUndoFactory,
1779
- J as compareWithNumber,
1780
- l0 as createCfId,
1781
- m1 as createDefaultRule,
1782
- F1 as createDefaultValue,
1783
- w1 as createDefaultValueByValueType,
1784
- $0 as dataBarUKey,
1785
- p2 as defaultDataBarNativeColor,
1786
- v2 as defaultDataBarPositiveColor,
1787
- u2 as filterRange,
1788
- j as findIndexByAnchor,
1789
- x1 as getCacheStyleMatrix,
1790
- T as getCellValue,
1791
- O0 as getColorScaleFromValue,
1792
- _1 as getMaxInFormulaResult,
1793
- N0 as getOppositeOperator,
1794
- a2 as getValueByType,
1795
- M0 as iconGroup,
1796
- n2 as iconMap,
1797
- E1 as isAnchorEqual,
1798
- r2 as isFloatsEqual,
1799
- k as isNullable,
1800
- M1 as isRangesEqual,
1801
- c0 as moveByAnchor,
1802
- o1 as removeUndefinedAttr,
1803
- U0 as serialTimeToTimestamp,
1804
- A1 as setConditionalRuleMutationUndoFactory,
1805
- V0 as toYMD_1900,
1806
- u0 as transformSupportSymmetryAnchor
1786
+ N2 as AddConditionalRuleMutation,
1787
+ I1 as AddConditionalRuleMutationUndoFactory,
1788
+ w as CFNumberOperator,
1789
+ y as CFRuleType,
1790
+ E as CFSubRuleType,
1791
+ M as CFTextOperator,
1792
+ R as CFTimePeriodOperator,
1793
+ x as CFValueType,
1794
+ C2 as CONDITIONAL_FORMATTING_VIEWPORT_CACHE_LENGTH,
1795
+ n2 as ConditionalFormattingFormulaMarkDirty,
1796
+ G as ConditionalFormattingFormulaService,
1797
+ h1 as ConditionalFormattingIcon,
1798
+ B as ConditionalFormattingRuleModel,
1799
+ K as ConditionalFormattingService,
1800
+ j as ConditionalFormattingViewModel,
1801
+ v1 as DEFAULT_BG_COLOR,
1802
+ E1 as DEFAULT_FONT_COLOR,
1803
+ u1 as DEFAULT_PADDING,
1804
+ c1 as DEFAULT_WIDTH,
1805
+ I0 as DataBar,
1806
+ E2 as DeleteConditionalRuleMutation,
1807
+ K0 as DeleteConditionalRuleMutationUndoFactory,
1808
+ Y0 as EMPTY_ICON_TYPE,
1809
+ b as FormulaResultStatus,
1810
+ l1 as IconUKey,
1811
+ v2 as MoveConditionalRuleMutation,
1812
+ R1 as MoveConditionalRuleMutationUndoFactory,
1813
+ k2 as SHEET_CONDITIONAL_FORMATTING_PLUGIN,
1814
+ T2 as SetConditionalRuleMutation,
1815
+ M2 as UniverSheetsConditionalFormattingPlugin,
1816
+ D0 as anchorUndoFactory,
1817
+ Y as compareWithNumber,
1818
+ f0 as createCfId,
1819
+ p1 as createDefaultRule,
1820
+ A1 as createDefaultValue,
1821
+ _1 as createDefaultValueByValueType,
1822
+ y0 as dataBarUKey,
1823
+ y2 as defaultDataBarNativeColor,
1824
+ x2 as defaultDataBarPositiveColor,
1825
+ M0 as defaultPlaceholderColor,
1826
+ w2 as filterRange,
1827
+ W as findIndexByAnchor,
1828
+ y1 as getCacheStyleMatrix,
1829
+ U as getCellValue,
1830
+ _0 as getColorScaleFromValue,
1831
+ M1 as getMaxInFormulaResult,
1832
+ A0 as getOppositeOperator,
1833
+ l2 as getValueByType,
1834
+ X0 as iconGroup,
1835
+ o2 as iconMap,
1836
+ x1 as isAnchorEqual,
1837
+ a2 as isFloatsEqual,
1838
+ I as isNullable,
1839
+ B1 as isRangesEqual,
1840
+ g0 as moveByAnchor,
1841
+ d1 as removeUndefinedAttr,
1842
+ p0 as serialTimeToTimestamp,
1843
+ b1 as setConditionalRuleMutationUndoFactory,
1844
+ E0 as toYMD_1900,
1845
+ C0 as transformSupportSymmetryAnchor
1807
1846
  };