@magmonium/one 0.4.87 → 0.4.88

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.
@@ -34797,7 +34797,7 @@ i0.ɵɵngDeclareClassMetadata({
34797
34797
  });
34798
34798
  const gapPct = (level, value) => (level / value - 1) * 100;
34799
34799
  const formatGap = (gap) => `${gap > 0 ? "+" : gap < 0 ? "−" : ""}${Math.abs(gap).toFixed(1)}%`;
34800
- const PAD = .04;
34800
+ const PAD$1 = .04;
34801
34801
  const ladderScale = ({ value, levels, forward = [], maxSpanPct }) => {
34802
34802
  const within = (v) => Math.abs(gapPct(v, value)) <= maxSpanPct;
34803
34803
  const values = [
@@ -34808,7 +34808,7 @@ const ladderScale = ({ value, levels, forward = [], maxSpanPct }) => {
34808
34808
  const min = Math.min(...values);
34809
34809
  const max = Math.max(...values);
34810
34810
  const span = max - min || Math.abs(max) * .02 || 1;
34811
- const lo = max === min ? min - span / 2 : min - span * PAD;
34811
+ const lo = max === min ? min - span / 2 : min - span * PAD$1;
34812
34812
  const width = max === min ? span : span * 1.08;
34813
34813
  const pos = (v) => (v - lo) / width * 100;
34814
34814
  return {
@@ -35271,8 +35271,8 @@ i0.ɵɵngDeclareClassMetadata({
35271
35271
  }
35272
35272
  });
35273
35273
  const LIST_BELOW_PX = 360;
35274
- const FALLBACK_PX = 640;
35275
- const LABEL_GAP_PX = 64;
35274
+ const FALLBACK_PX$1 = 640;
35275
+ const LABEL_GAP_PX$1 = 64;
35276
35276
  const price = (v) => typeof v === "number" && Number.isFinite(v) && v > 0 ? v : null;
35277
35277
  var PriceLadderComponent = class PriceLadderComponent {
35278
35278
  value = input(null, ...ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []);
@@ -35441,11 +35441,11 @@ var PriceLadderComponent = class PriceLadderComponent {
35441
35441
  maxSpanPct: this.maxSpanPct()
35442
35442
  });
35443
35443
  const at = new Map(marks.map((m) => [m.key, m]));
35444
- const widthPx = this.width() || FALLBACK_PX;
35444
+ const widthPx = this.width() || FALLBACK_PX$1;
35445
35445
  const labels = layoutLanes(marks.map((m) => ({
35446
35446
  key: m.key,
35447
35447
  x: scale.pos(m.value) / 100 * widthPx
35448
- })), LABEL_GAP_PX).map((label) => {
35448
+ })), LABEL_GAP_PX$1).map((label) => {
35449
35449
  const group = marks.filter((m) => label.keys.includes(m.key));
35450
35450
  const level = group.some((m) => m.kind === "level");
35451
35451
  return {
@@ -35476,11 +35476,11 @@ var PriceLadderComponent = class PriceLadderComponent {
35476
35476
  const from = at.get(pair?.from ?? "");
35477
35477
  const to = at.get(pair?.to ?? "");
35478
35478
  const cross = pair && from && to ? {
35479
- ...span(scale.pos(from.value), scale.pos(to.value)),
35479
+ ...span$1(scale.pos(from.value), scale.pos(to.value)),
35480
35480
  tone: pair.tone
35481
35481
  } : null;
35482
35482
  const ends = marks.filter((m) => m.kind === "bound");
35483
- const bounds = ends.length === 2 ? span(scale.pos(ends[0].value), scale.pos(ends[1].value)) : null;
35483
+ const bounds = ends.length === 2 ? span$1(scale.pos(ends[0].value), scale.pos(ends[1].value)) : null;
35484
35484
  return {
35485
35485
  valuePos,
35486
35486
  ticks: marks.map((m) => ({
@@ -35492,8 +35492,8 @@ var PriceLadderComponent = class PriceLadderComponent {
35492
35492
  labels,
35493
35493
  lanes: labels.some((l) => l.lane === 1) ? 2 : 1,
35494
35494
  target,
35495
- connector: target && fwd?.point != null ? span(valuePos, target.pos) : null,
35496
- band: fwd?.range ? span(scale.clamp(fwd.range.low), scale.clamp(fwd.range.high)) : null,
35495
+ connector: target && fwd?.point != null ? span$1(valuePos, target.pos) : null,
35496
+ band: fwd?.range ? span$1(scale.clamp(fwd.range.low), scale.clamp(fwd.range.high)) : null,
35497
35497
  cross,
35498
35498
  bounds
35499
35499
  };
@@ -35811,10 +35811,1096 @@ i0.ɵɵngDeclareClassMetadata({
35811
35811
  }]
35812
35812
  }
35813
35813
  });
35814
- const span = (a, b) => ({
35814
+ const span$1 = (a, b) => ({
35815
35815
  left: Math.min(a, b),
35816
35816
  width: Math.abs(b - a)
35817
35817
  });
35818
+ const PAD = .05;
35819
+ const scaleDomain = ({ values, primary, maxSpanPct, min, max }) => {
35820
+ const far = (v) => maxSpanPct != null && primary != null && primary !== 0 && Math.abs(gapPct(v, primary)) > maxSpanPct;
35821
+ const kept = values.filter((v) => !far(v));
35822
+ const low = kept.length ? Math.min(...kept) : 0;
35823
+ const high = kept.length ? Math.max(...kept) : 1;
35824
+ const span = high - low || Math.abs(high) * .1 || 1;
35825
+ const lo = min ?? (high === low ? low - span / 2 : low - span * PAD);
35826
+ const fitHi = max ?? (high === low ? high + span / 2 : high + span * PAD);
35827
+ const hi = fitHi > lo ? fitHi : lo + 1;
35828
+ const pin = (v) => {
35829
+ if (far(v)) return v > primary ? 1 : -1;
35830
+ return v < lo ? -1 : v > hi ? 1 : 0;
35831
+ };
35832
+ const pos = (v) => {
35833
+ const p = pin(v);
35834
+ return p === 1 ? 100 : p === -1 ? 0 : (v - lo) / (hi - lo) * 100;
35835
+ };
35836
+ return {
35837
+ lo,
35838
+ hi,
35839
+ pin,
35840
+ pos
35841
+ };
35842
+ };
35843
+ const NOT_HOLDING = {
35844
+ holds: false,
35845
+ left: null,
35846
+ right: null,
35847
+ gap: null
35848
+ };
35849
+ const ALWAYS = {
35850
+ ...NOT_HOLDING,
35851
+ holds: true
35852
+ };
35853
+ const parseKeys = (raw) => (typeof raw === "string" ? raw.split(/[\s,]+/) : [...raw ?? []]).filter(Boolean);
35854
+ const compare$1 = (op, l, r, gap, n) => {
35855
+ switch (op) {
35856
+ case "gt": return l > r;
35857
+ case "gte": return l >= r;
35858
+ case "lt": return l < r;
35859
+ case "lte": return l <= r;
35860
+ case "within": return gap !== null && n !== null && Math.abs(gap) <= n;
35861
+ case "beyond": return gap !== null && n !== null && Math.abs(gap) > n;
35862
+ }
35863
+ };
35864
+ const rightOf = (def, values) => {
35865
+ if (def.rightKind === "fixed") return def.rightValue;
35866
+ const mark = values.get(def.right);
35867
+ if (mark === void 0) return null;
35868
+ if (def.rightKind === "pct") return def.rightValue === null ? null : mark * def.rightValue / 100;
35869
+ return mark;
35870
+ };
35871
+ const evaluateRelations = (defs, values) => {
35872
+ const byKey = new Map(defs.map((d) => [d.key, d]));
35873
+ const done = /* @__PURE__ */ new Map();
35874
+ const evaluate = (key, stack) => {
35875
+ const known = done.get(key);
35876
+ if (known) return known;
35877
+ const def = byKey.get(key);
35878
+ if (!def || stack.has(key)) return NOT_HOLDING;
35879
+ const result = def.type === "always" ? ALWAYS : def.type === "combine" ? combine(def, /* @__PURE__ */ new Set([...stack, key])) : compareOf(def);
35880
+ done.set(key, result);
35881
+ return result;
35882
+ };
35883
+ const combine = (def, stack) => {
35884
+ const held = def.of.map((k) => evaluate(k, stack).holds);
35885
+ const holds = def.mode === "all" ? held.length > 0 && held.every(Boolean) : def.mode === "any" ? held.some(Boolean) : held.length > 0 && !held[0];
35886
+ return {
35887
+ ...NOT_HOLDING,
35888
+ holds
35889
+ };
35890
+ };
35891
+ const compareOf = (def) => {
35892
+ const left = values.get(def.left) ?? null;
35893
+ const right = rightOf(def, values);
35894
+ if (left === null || right === null) return NOT_HOLDING;
35895
+ const gap = right !== 0 ? gapPct(left, right) : null;
35896
+ return {
35897
+ holds: compare$1(def.op, left, right, gap, def.n),
35898
+ left,
35899
+ right,
35900
+ gap
35901
+ };
35902
+ };
35903
+ for (const def of defs) evaluate(def.key, /* @__PURE__ */ new Set());
35904
+ return done;
35905
+ };
35906
+ const spreadLabels = (items, gapPx, lengthPx) => {
35907
+ const out = [...items].sort((a, b) => a.y - b.y).map((i) => ({ ...i }));
35908
+ for (let i = 1; i < out.length; i++) out[i].y = Math.max(out[i].y, out[i - 1].y + gapPx);
35909
+ const last = out.length - 1;
35910
+ if (last >= 0 && out[last].y > lengthPx) {
35911
+ out[last].y = lengthPx;
35912
+ for (let i = last - 1; i >= 0; i--) out[i].y = Math.min(out[i].y, out[i + 1].y - gapPx);
35913
+ }
35914
+ if (out.length && out[0].y < 0) {
35915
+ out[0].y = 0;
35916
+ for (let i = 1; i < out.length; i++) out[i].y = Math.max(out[i].y, out[i - 1].y + gapPx);
35917
+ }
35918
+ return out;
35919
+ };
35920
+ const compare = (key, left, op, right, more = {}) => ({
35921
+ key,
35922
+ ...more.hidden ? {} : { label: key },
35923
+ tone: more.tone ?? "neutral",
35924
+ type: "compare",
35925
+ left,
35926
+ op,
35927
+ rightKind: more.pct === void 0 ? "mark" : "pct",
35928
+ right,
35929
+ ...more.pct === void 0 ? {} : { rightValue: more.pct },
35930
+ ...more.n === void 0 ? {} : { n: more.n },
35931
+ ...more.hidden ? { hidden: true } : {},
35932
+ ...more.bracket ? { bracket: true } : {}
35933
+ });
35934
+ const combine = (key, mode, of, tone = "neutral", hidden = false) => ({
35935
+ key,
35936
+ ...hidden ? {} : { label: key },
35937
+ tone,
35938
+ type: "combine",
35939
+ mode,
35940
+ of,
35941
+ ...hidden ? { hidden: true } : {}
35942
+ });
35943
+ const SMAS = [
35944
+ "sma10",
35945
+ "sma50",
35946
+ "sma100",
35947
+ "sma200"
35948
+ ];
35949
+ const CONVERGING = SMAS.flatMap((a) => SMAS.filter((b) => b !== a).map((b) => `${a}-under-103-of-${b}`));
35950
+ const PRICE_RULES = [
35951
+ compare("golden-cross", "sma50", "gte", "sma200", {
35952
+ tone: "gold",
35953
+ bracket: true
35954
+ }),
35955
+ compare("death-cross", "sma50", "lt", "sma200", {
35956
+ tone: "down",
35957
+ bracket: true
35958
+ }),
35959
+ combine("death-cross-near", "all", ["golden-cross", "cross-near"], "down"),
35960
+ combine("golden-cross-near", "all", ["death-cross", "cross-near"], "gold"),
35961
+ combine("bullish-alignment", "all", [
35962
+ "above-sma10",
35963
+ "sma10-above-sma50",
35964
+ "sma50-above-sma100",
35965
+ "sma100-above-sma200"
35966
+ ], "up"),
35967
+ combine("bearish-alignment", "all", [
35968
+ "below-sma10",
35969
+ "sma10-below-sma50",
35970
+ "sma50-below-sma100",
35971
+ "sma100-below-sma200"
35972
+ ], "down"),
35973
+ combine("strongly-bullish", "all", ["above-sma50", "above-sma200"], "up"),
35974
+ combine("bullish-support", "all", ["not-above-sma50", "above-sma200"], "up"),
35975
+ combine("recovering", "all", ["above-sma50", "not-above-sma200"]),
35976
+ combine("bearish-pressure", "all", ["not-above-sma50", "not-above-sma200"], "down"),
35977
+ compare("stretched", "current", "gt", "sma200", {
35978
+ tone: "warn",
35979
+ pct: 120
35980
+ }),
35981
+ compare("far-below-sma-200", "current", "lt", "sma200", {
35982
+ tone: "down",
35983
+ pct: 80
35984
+ }),
35985
+ combine("averages-converging", "all", CONVERGING, "warn"),
35986
+ compare("52w-breakout", "current", "gte", "high52w", { tone: "up" }),
35987
+ combine("near-52w-high", "all", ["below-52w-high", "within-3-of-52w-high"], "up"),
35988
+ compare("new-52w-low", "current", "lte", "low52w", { tone: "down" }),
35989
+ combine("near-52w-low", "all", ["above-52w-low", "within-3-of-52w-low"], "down"),
35990
+ combine("forecast-against-trend", "any", ["against-up", "against-down"], "warn"),
35991
+ compare("forecast-above-52w-high", "forecast", "gt", "high52w")
35992
+ ];
35993
+ const PRICE_HELPERS = [
35994
+ compare("cross-near", "sma50", "within", "sma200", {
35995
+ n: 1,
35996
+ hidden: true
35997
+ }),
35998
+ compare("above-sma10", "current", "gt", "sma10", { hidden: true }),
35999
+ compare("sma10-above-sma50", "sma10", "gt", "sma50", { hidden: true }),
36000
+ compare("sma50-above-sma100", "sma50", "gt", "sma100", { hidden: true }),
36001
+ compare("sma100-above-sma200", "sma100", "gt", "sma200", { hidden: true }),
36002
+ compare("below-sma10", "current", "lt", "sma10", { hidden: true }),
36003
+ compare("sma10-below-sma50", "sma10", "lt", "sma50", { hidden: true }),
36004
+ compare("sma50-below-sma100", "sma50", "lt", "sma100", { hidden: true }),
36005
+ compare("sma100-below-sma200", "sma100", "lt", "sma200", { hidden: true }),
36006
+ compare("above-sma50", "current", "gt", "sma50", { hidden: true }),
36007
+ compare("above-sma200", "current", "gt", "sma200", { hidden: true }),
36008
+ compare("not-above-sma50", "current", "lte", "sma50", { hidden: true }),
36009
+ compare("not-above-sma200", "current", "lte", "sma200", { hidden: true }),
36010
+ ...SMAS.flatMap((a) => SMAS.filter((b) => b !== a).map((b) => compare(`${a}-under-103-of-${b}`, a, "lt", b, {
36011
+ pct: 103,
36012
+ hidden: true
36013
+ }))),
36014
+ compare("below-52w-high", "current", "lt", "high52w", { hidden: true }),
36015
+ compare("within-3-of-52w-high", "current", "gt", "high52w", {
36016
+ pct: 100 / 1.03,
36017
+ hidden: true
36018
+ }),
36019
+ compare("above-52w-low", "current", "gt", "low52w", { hidden: true }),
36020
+ compare("within-3-of-52w-low", "current", "lt", "low52w", {
36021
+ pct: 103,
36022
+ hidden: true
36023
+ }),
36024
+ compare("forecast-up", "forecast", "gt", "current", { hidden: true }),
36025
+ compare("forecast-down", "forecast", "lt", "current", { hidden: true }),
36026
+ combine("bear-trend", "any", ["death-cross", "bearish-alignment"], "neutral", true),
36027
+ combine("bull-trend", "any", ["golden-cross", "bullish-alignment"], "neutral", true),
36028
+ combine("against-up", "all", ["forecast-up", "bear-trend"], "neutral", true),
36029
+ combine("against-down", "all", ["forecast-down", "bull-trend"], "neutral", true)
36030
+ ];
36031
+ const BY_KEY = new Map([...PRICE_RULES, ...PRICE_HELPERS].map((r) => [r.key, r]));
36032
+ const isPriceRule = (name) => typeof name === "string" && PRICE_RULES.some((r) => r.key === name);
36033
+ const asHidden = (relation) => {
36034
+ const rest = { ...relation };
36035
+ delete rest.label;
36036
+ delete rest.bracket;
36037
+ return {
36038
+ ...rest,
36039
+ hidden: true
36040
+ };
36041
+ };
36042
+ const priceRelationsFor = (rules) => {
36043
+ const asked = new Set(rules);
36044
+ const out = /* @__PURE__ */ new Map();
36045
+ const visit = (key) => {
36046
+ const relation = BY_KEY.get(key);
36047
+ if (!relation || out.has(key)) return;
36048
+ out.set(key, asked.has(key) ? relation : asHidden(relation));
36049
+ for (const k of relation.of ?? []) visit(k);
36050
+ };
36051
+ rules.forEach((key) => BY_KEY.has(key) && !out.has(key) && out.set(key, BY_KEY.get(key)));
36052
+ for (const key of rules) for (const k of BY_KEY.get(key)?.of ?? []) visit(k);
36053
+ return [...out.values()];
36054
+ };
36055
+ const PRICE_SCALE_RELATIONS = priceRelationsFor(PRICE_RULES.map((r) => r.key));
36056
+ var ScaleMarkComponent = class ScaleMarkComponent {
36057
+ key = input("", ...ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []);
36058
+ label = input("", ...ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []);
36059
+ value = input(null, ...ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []);
36060
+ kind = input("level", ...ngDevMode ? [{ debugName: "kind" }] : /* istanbul ignore next */ []);
36061
+ low = input(null, ...ngDevMode ? [{ debugName: "low" }] : /* istanbul ignore next */ []);
36062
+ high = input(null, ...ngDevMode ? [{ debugName: "high" }] : /* istanbul ignore next */ []);
36063
+ primary = input(false, ...ngDevMode ? [{ debugName: "primary" }] : /* istanbul ignore next */ []);
36064
+ static ɵfac = i0.ɵɵngDeclareFactory({
36065
+ minVersion: "12.0.0",
36066
+ version: "22.2.1",
36067
+ ngImport: i0,
36068
+ type: ScaleMarkComponent,
36069
+ deps: [],
36070
+ target: i0.ɵɵFactoryTarget.Component
36071
+ });
36072
+ static ɵcmp = i0.ɵɵngDeclareComponent({
36073
+ minVersion: "17.1.0",
36074
+ version: "22.2.1",
36075
+ type: ScaleMarkComponent,
36076
+ isStandalone: true,
36077
+ selector: "m-scale-mark",
36078
+ inputs: {
36079
+ key: {
36080
+ classPropertyName: "key",
36081
+ publicName: "key",
36082
+ isSignal: true,
36083
+ isRequired: false,
36084
+ transformFunction: null
36085
+ },
36086
+ label: {
36087
+ classPropertyName: "label",
36088
+ publicName: "label",
36089
+ isSignal: true,
36090
+ isRequired: false,
36091
+ transformFunction: null
36092
+ },
36093
+ value: {
36094
+ classPropertyName: "value",
36095
+ publicName: "value",
36096
+ isSignal: true,
36097
+ isRequired: false,
36098
+ transformFunction: null
36099
+ },
36100
+ kind: {
36101
+ classPropertyName: "kind",
36102
+ publicName: "kind",
36103
+ isSignal: true,
36104
+ isRequired: false,
36105
+ transformFunction: null
36106
+ },
36107
+ low: {
36108
+ classPropertyName: "low",
36109
+ publicName: "low",
36110
+ isSignal: true,
36111
+ isRequired: false,
36112
+ transformFunction: null
36113
+ },
36114
+ high: {
36115
+ classPropertyName: "high",
36116
+ publicName: "high",
36117
+ isSignal: true,
36118
+ isRequired: false,
36119
+ transformFunction: null
36120
+ },
36121
+ primary: {
36122
+ classPropertyName: "primary",
36123
+ publicName: "primary",
36124
+ isSignal: true,
36125
+ isRequired: false,
36126
+ transformFunction: null
36127
+ }
36128
+ },
36129
+ host: { styleAttribute: "display: none" },
36130
+ ngImport: i0,
36131
+ template: "",
36132
+ isInline: true,
36133
+ changeDetection: i0.ChangeDetectionStrategy.OnPush
36134
+ });
36135
+ };
36136
+ i0.ɵɵngDeclareClassMetadata({
36137
+ minVersion: "12.0.0",
36138
+ version: "22.2.1",
36139
+ ngImport: i0,
36140
+ type: ScaleMarkComponent,
36141
+ decorators: [{
36142
+ type: Component,
36143
+ args: [{
36144
+ selector: "m-scale-mark",
36145
+ template: "",
36146
+ changeDetection: ChangeDetectionStrategy.OnPush,
36147
+ host: { style: "display: none" }
36148
+ }]
36149
+ }],
36150
+ propDecorators: {
36151
+ key: [{
36152
+ type: i0.Input,
36153
+ args: [{
36154
+ isSignal: true,
36155
+ alias: "key",
36156
+ required: false
36157
+ }]
36158
+ }],
36159
+ label: [{
36160
+ type: i0.Input,
36161
+ args: [{
36162
+ isSignal: true,
36163
+ alias: "label",
36164
+ required: false
36165
+ }]
36166
+ }],
36167
+ value: [{
36168
+ type: i0.Input,
36169
+ args: [{
36170
+ isSignal: true,
36171
+ alias: "value",
36172
+ required: false
36173
+ }]
36174
+ }],
36175
+ kind: [{
36176
+ type: i0.Input,
36177
+ args: [{
36178
+ isSignal: true,
36179
+ alias: "kind",
36180
+ required: false
36181
+ }]
36182
+ }],
36183
+ low: [{
36184
+ type: i0.Input,
36185
+ args: [{
36186
+ isSignal: true,
36187
+ alias: "low",
36188
+ required: false
36189
+ }]
36190
+ }],
36191
+ high: [{
36192
+ type: i0.Input,
36193
+ args: [{
36194
+ isSignal: true,
36195
+ alias: "high",
36196
+ required: false
36197
+ }]
36198
+ }],
36199
+ primary: [{
36200
+ type: i0.Input,
36201
+ args: [{
36202
+ isSignal: true,
36203
+ alias: "primary",
36204
+ required: false
36205
+ }]
36206
+ }]
36207
+ }
36208
+ });
36209
+ var ScaleRelationComponent = class ScaleRelationComponent {
36210
+ key = input("", ...ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []);
36211
+ label = input("", ...ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []);
36212
+ tone = input("neutral", ...ngDevMode ? [{ debugName: "tone" }] : /* istanbul ignore next */ []);
36213
+ detail = input("", ...ngDevMode ? [{ debugName: "detail" }] : /* istanbul ignore next */ []);
36214
+ type = input("compare", ...ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ []);
36215
+ left = input("", ...ngDevMode ? [{ debugName: "left" }] : /* istanbul ignore next */ []);
36216
+ op = input("gt", ...ngDevMode ? [{ debugName: "op" }] : /* istanbul ignore next */ []);
36217
+ right = input("", ...ngDevMode ? [{ debugName: "right" }] : /* istanbul ignore next */ []);
36218
+ rightKind = input("mark", ...ngDevMode ? [{ debugName: "rightKind" }] : /* istanbul ignore next */ []);
36219
+ rightValue = input(null, ...ngDevMode ? [{ debugName: "rightValue" }] : /* istanbul ignore next */ []);
36220
+ n = input(null, ...ngDevMode ? [{ debugName: "n" }] : /* istanbul ignore next */ []);
36221
+ mode = input("all", ...ngDevMode ? [{ debugName: "mode" }] : /* istanbul ignore next */ []);
36222
+ of = input(void 0, ...ngDevMode ? [{ debugName: "of" }] : /* istanbul ignore next */ []);
36223
+ hidden = input(false, ...ngDevMode ? [{ debugName: "hidden" }] : /* istanbul ignore next */ []);
36224
+ bracket = input(false, ...ngDevMode ? [{ debugName: "bracket" }] : /* istanbul ignore next */ []);
36225
+ static ɵfac = i0.ɵɵngDeclareFactory({
36226
+ minVersion: "12.0.0",
36227
+ version: "22.2.1",
36228
+ ngImport: i0,
36229
+ type: ScaleRelationComponent,
36230
+ deps: [],
36231
+ target: i0.ɵɵFactoryTarget.Component
36232
+ });
36233
+ static ɵcmp = i0.ɵɵngDeclareComponent({
36234
+ minVersion: "17.1.0",
36235
+ version: "22.2.1",
36236
+ type: ScaleRelationComponent,
36237
+ isStandalone: true,
36238
+ selector: "m-scale-relation",
36239
+ inputs: {
36240
+ key: {
36241
+ classPropertyName: "key",
36242
+ publicName: "key",
36243
+ isSignal: true,
36244
+ isRequired: false,
36245
+ transformFunction: null
36246
+ },
36247
+ label: {
36248
+ classPropertyName: "label",
36249
+ publicName: "label",
36250
+ isSignal: true,
36251
+ isRequired: false,
36252
+ transformFunction: null
36253
+ },
36254
+ tone: {
36255
+ classPropertyName: "tone",
36256
+ publicName: "tone",
36257
+ isSignal: true,
36258
+ isRequired: false,
36259
+ transformFunction: null
36260
+ },
36261
+ detail: {
36262
+ classPropertyName: "detail",
36263
+ publicName: "detail",
36264
+ isSignal: true,
36265
+ isRequired: false,
36266
+ transformFunction: null
36267
+ },
36268
+ type: {
36269
+ classPropertyName: "type",
36270
+ publicName: "type",
36271
+ isSignal: true,
36272
+ isRequired: false,
36273
+ transformFunction: null
36274
+ },
36275
+ left: {
36276
+ classPropertyName: "left",
36277
+ publicName: "left",
36278
+ isSignal: true,
36279
+ isRequired: false,
36280
+ transformFunction: null
36281
+ },
36282
+ op: {
36283
+ classPropertyName: "op",
36284
+ publicName: "op",
36285
+ isSignal: true,
36286
+ isRequired: false,
36287
+ transformFunction: null
36288
+ },
36289
+ right: {
36290
+ classPropertyName: "right",
36291
+ publicName: "right",
36292
+ isSignal: true,
36293
+ isRequired: false,
36294
+ transformFunction: null
36295
+ },
36296
+ rightKind: {
36297
+ classPropertyName: "rightKind",
36298
+ publicName: "rightKind",
36299
+ isSignal: true,
36300
+ isRequired: false,
36301
+ transformFunction: null
36302
+ },
36303
+ rightValue: {
36304
+ classPropertyName: "rightValue",
36305
+ publicName: "rightValue",
36306
+ isSignal: true,
36307
+ isRequired: false,
36308
+ transformFunction: null
36309
+ },
36310
+ n: {
36311
+ classPropertyName: "n",
36312
+ publicName: "n",
36313
+ isSignal: true,
36314
+ isRequired: false,
36315
+ transformFunction: null
36316
+ },
36317
+ mode: {
36318
+ classPropertyName: "mode",
36319
+ publicName: "mode",
36320
+ isSignal: true,
36321
+ isRequired: false,
36322
+ transformFunction: null
36323
+ },
36324
+ of: {
36325
+ classPropertyName: "of",
36326
+ publicName: "of",
36327
+ isSignal: true,
36328
+ isRequired: false,
36329
+ transformFunction: null
36330
+ },
36331
+ hidden: {
36332
+ classPropertyName: "hidden",
36333
+ publicName: "hidden",
36334
+ isSignal: true,
36335
+ isRequired: false,
36336
+ transformFunction: null
36337
+ },
36338
+ bracket: {
36339
+ classPropertyName: "bracket",
36340
+ publicName: "bracket",
36341
+ isSignal: true,
36342
+ isRequired: false,
36343
+ transformFunction: null
36344
+ }
36345
+ },
36346
+ host: { styleAttribute: "display: none" },
36347
+ ngImport: i0,
36348
+ template: "",
36349
+ isInline: true,
36350
+ changeDetection: i0.ChangeDetectionStrategy.OnPush
36351
+ });
36352
+ };
36353
+ i0.ɵɵngDeclareClassMetadata({
36354
+ minVersion: "12.0.0",
36355
+ version: "22.2.1",
36356
+ ngImport: i0,
36357
+ type: ScaleRelationComponent,
36358
+ decorators: [{
36359
+ type: Component,
36360
+ args: [{
36361
+ selector: "m-scale-relation",
36362
+ template: "",
36363
+ changeDetection: ChangeDetectionStrategy.OnPush,
36364
+ host: { style: "display: none" }
36365
+ }]
36366
+ }],
36367
+ propDecorators: {
36368
+ key: [{
36369
+ type: i0.Input,
36370
+ args: [{
36371
+ isSignal: true,
36372
+ alias: "key",
36373
+ required: false
36374
+ }]
36375
+ }],
36376
+ label: [{
36377
+ type: i0.Input,
36378
+ args: [{
36379
+ isSignal: true,
36380
+ alias: "label",
36381
+ required: false
36382
+ }]
36383
+ }],
36384
+ tone: [{
36385
+ type: i0.Input,
36386
+ args: [{
36387
+ isSignal: true,
36388
+ alias: "tone",
36389
+ required: false
36390
+ }]
36391
+ }],
36392
+ detail: [{
36393
+ type: i0.Input,
36394
+ args: [{
36395
+ isSignal: true,
36396
+ alias: "detail",
36397
+ required: false
36398
+ }]
36399
+ }],
36400
+ type: [{
36401
+ type: i0.Input,
36402
+ args: [{
36403
+ isSignal: true,
36404
+ alias: "type",
36405
+ required: false
36406
+ }]
36407
+ }],
36408
+ left: [{
36409
+ type: i0.Input,
36410
+ args: [{
36411
+ isSignal: true,
36412
+ alias: "left",
36413
+ required: false
36414
+ }]
36415
+ }],
36416
+ op: [{
36417
+ type: i0.Input,
36418
+ args: [{
36419
+ isSignal: true,
36420
+ alias: "op",
36421
+ required: false
36422
+ }]
36423
+ }],
36424
+ right: [{
36425
+ type: i0.Input,
36426
+ args: [{
36427
+ isSignal: true,
36428
+ alias: "right",
36429
+ required: false
36430
+ }]
36431
+ }],
36432
+ rightKind: [{
36433
+ type: i0.Input,
36434
+ args: [{
36435
+ isSignal: true,
36436
+ alias: "rightKind",
36437
+ required: false
36438
+ }]
36439
+ }],
36440
+ rightValue: [{
36441
+ type: i0.Input,
36442
+ args: [{
36443
+ isSignal: true,
36444
+ alias: "rightValue",
36445
+ required: false
36446
+ }]
36447
+ }],
36448
+ n: [{
36449
+ type: i0.Input,
36450
+ args: [{
36451
+ isSignal: true,
36452
+ alias: "n",
36453
+ required: false
36454
+ }]
36455
+ }],
36456
+ mode: [{
36457
+ type: i0.Input,
36458
+ args: [{
36459
+ isSignal: true,
36460
+ alias: "mode",
36461
+ required: false
36462
+ }]
36463
+ }],
36464
+ of: [{
36465
+ type: i0.Input,
36466
+ args: [{
36467
+ isSignal: true,
36468
+ alias: "of",
36469
+ required: false
36470
+ }]
36471
+ }],
36472
+ hidden: [{
36473
+ type: i0.Input,
36474
+ args: [{
36475
+ isSignal: true,
36476
+ alias: "hidden",
36477
+ required: false
36478
+ }]
36479
+ }],
36480
+ bracket: [{
36481
+ type: i0.Input,
36482
+ args: [{
36483
+ isSignal: true,
36484
+ alias: "bracket",
36485
+ required: false
36486
+ }]
36487
+ }]
36488
+ }
36489
+ });
36490
+ const BREAKPOINT_PX = {
36491
+ sm: 576,
36492
+ md: 768,
36493
+ lg: 992,
36494
+ xl: 1200,
36495
+ xxl: 1400
36496
+ };
36497
+ const FALLBACK_PX = 640;
36498
+ const LABEL_GAP_PX = 72;
36499
+ const ROW_PX = 28;
36500
+ const MIN_VERTICAL_PX = 200;
36501
+ const finite = (v) => typeof v === "number" && Number.isFinite(v) ? v : null;
36502
+ const span = (a, b) => ({
36503
+ from: Math.min(a, b),
36504
+ size: Math.abs(b - a)
36505
+ });
36506
+ var ScaleComponent = class ScaleComponent {
36507
+ label = input("", ...ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []);
36508
+ format = input("number", ...ngDevMode ? [{ debugName: "format" }] : /* istanbul ignore next */ []);
36509
+ currency = input("INR", ...ngDevMode ? [{ debugName: "currency" }] : /* istanbul ignore next */ []);
36510
+ unit = input("", ...ngDevMode ? [{ debugName: "unit" }] : /* istanbul ignore next */ []);
36511
+ breakpoint = input("sm", ...ngDevMode ? [{ debugName: "breakpoint" }] : /* istanbul ignore next */ []);
36512
+ orientation = input("auto", ...ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []);
36513
+ min = input(null, ...ngDevMode ? [{ debugName: "min" }] : /* istanbul ignore next */ []);
36514
+ max = input(null, ...ngDevMode ? [{ debugName: "max" }] : /* istanbul ignore next */ []);
36515
+ maxSpanPct = input(null, ...ngDevMode ? [{ debugName: "maxSpanPct" }] : /* istanbul ignore next */ []);
36516
+ markTags = contentChildren(ScaleMarkComponent, ...ngDevMode ? [{ debugName: "markTags" }] : /* istanbul ignore next */ []);
36517
+ relationTags = contentChildren(ScaleRelationComponent, ...ngDevMode ? [{ debugName: "relationTags" }] : /* istanbul ignore next */ []);
36518
+ translateService = inject(TranslateService);
36519
+ width = signal(0, ...ngDevMode ? [{ debugName: "width" }] : /* istanbul ignore next */ []);
36520
+ constructor() {
36521
+ const host = inject(ElementRef).nativeElement;
36522
+ const destroyRef = inject(DestroyRef);
36523
+ afterNextRender(() => {
36524
+ if (typeof ResizeObserver === "undefined") return;
36525
+ const observer = new ResizeObserver(([entry]) => this.width.set(entry.contentRect.width));
36526
+ observer.observe(host);
36527
+ destroyRef.onDestroy(() => observer.disconnect());
36528
+ });
36529
+ }
36530
+ t = (key) => this.translateService.translate(key);
36531
+ formatter = computed(() => {
36532
+ const format = this.format();
36533
+ if (format === "currency") return new Intl.NumberFormat("en-IN", {
36534
+ style: "currency",
36535
+ currency: this.currency() || "INR",
36536
+ maximumFractionDigits: 2
36537
+ });
36538
+ if (format === "percent") return new Intl.NumberFormat("en-IN", {
36539
+ style: "percent",
36540
+ maximumFractionDigits: 1
36541
+ });
36542
+ return new Intl.NumberFormat("en-IN", { maximumFractionDigits: 2 });
36543
+ }, ...ngDevMode ? [{ debugName: "formatter" }] : /* istanbul ignore next */ []);
36544
+ formatValue = (v) => {
36545
+ const format = this.format();
36546
+ const text = this.formatter().format(format === "percent" ? v / 100 : v);
36547
+ const unit = this.unit();
36548
+ return format === "number" && unit ? `${text} ${unit}` : text;
36549
+ };
36550
+ shownAs = computed(() => {
36551
+ const orientation = this.orientation();
36552
+ if (orientation !== "auto") return orientation;
36553
+ const w = this.width();
36554
+ return w > 0 && w < BREAKPOINT_PX[this.breakpoint()] ? "vertical" : "horizontal";
36555
+ }, ...ngDevMode ? [{ debugName: "shownAs" }] : /* istanbul ignore next */ []);
36556
+ marks = computed(() => this.markTags().flatMap((tag) => {
36557
+ const value = finite(tag.value());
36558
+ if (value === null) return [];
36559
+ return [{
36560
+ key: tag.key(),
36561
+ name: this.t(tag.label() || tag.key()),
36562
+ value,
36563
+ kind: tag.kind(),
36564
+ low: finite(tag.low()),
36565
+ high: finite(tag.high()),
36566
+ primary: tag.primary()
36567
+ }];
36568
+ }), ...ngDevMode ? [{ debugName: "marks" }] : /* istanbul ignore next */ []);
36569
+ primary = computed(() => this.marks().find((m) => m.primary) ?? null, ...ngDevMode ? [{ debugName: "primary" }] : /* istanbul ignore next */ []);
36570
+ relations = computed(() => this.relationTags().map((tag, i) => ({
36571
+ def: {
36572
+ key: tag.key() || `relation-${i}`,
36573
+ type: tag.type(),
36574
+ left: tag.left(),
36575
+ op: tag.op(),
36576
+ right: tag.right(),
36577
+ rightKind: tag.rightKind(),
36578
+ rightValue: finite(tag.rightValue()),
36579
+ n: finite(tag.n()),
36580
+ mode: tag.mode(),
36581
+ of: parseKeys(tag.of())
36582
+ },
36583
+ label: tag.label(),
36584
+ tone: tag.tone(),
36585
+ detail: tag.detail(),
36586
+ hidden: tag.hidden(),
36587
+ bracket: tag.bracket()
36588
+ })), ...ngDevMode ? [{ debugName: "relations" }] : /* istanbul ignore next */ []);
36589
+ results = computed(() => evaluateRelations(this.relations().map((r) => r.def), new Map(this.marks().map((m) => [m.key, m.value]))), ...ngDevMode ? [{ debugName: "results" }] : /* istanbul ignore next */ []);
36590
+ chips = computed(() => this.relations().flatMap((r) => {
36591
+ const result = this.results().get(r.def.key);
36592
+ if (!result?.holds || r.hidden) return [];
36593
+ const params = {
36594
+ left: result.left === null ? "" : this.formatValue(result.left),
36595
+ right: result.right === null ? "" : this.formatValue(result.right),
36596
+ gap: result.gap === null ? "" : formatGap(result.gap)
36597
+ };
36598
+ return [{
36599
+ key: r.def.key,
36600
+ label: this.t(r.label || r.def.key),
36601
+ tone: r.tone,
36602
+ detail: r.detail ? this.translateService.translate(r.detail, params) : ""
36603
+ }];
36604
+ }), ...ngDevMode ? [{ debugName: "chips" }] : /* istanbul ignore next */ []);
36605
+ domain = computed(() => {
36606
+ const values = this.marks().flatMap((m) => [m.value, ...m.kind === "target" ? [m.low, m.high] : []]);
36607
+ return scaleDomain({
36608
+ values: values.filter((v) => v !== null),
36609
+ primary: this.primary()?.value ?? null,
36610
+ maxSpanPct: finite(this.maxSpanPct()),
36611
+ min: finite(this.min()),
36612
+ max: finite(this.max())
36613
+ });
36614
+ }, ...ngDevMode ? [{ debugName: "domain" }] : /* istanbul ignore next */ []);
36615
+ verticalPx = computed(() => Math.max(MIN_VERTICAL_PX, this.marks().length * ROW_PX), ...ngDevMode ? [{ debugName: "verticalPx" }] : /* istanbul ignore next */ []);
36616
+ plot = computed(() => {
36617
+ const vertical = this.shownAs() === "vertical";
36618
+ const domain = this.domain();
36619
+ const at = (v) => vertical ? 100 - domain.pos(v) : domain.pos(v);
36620
+ const marks = this.marks();
36621
+ const ticks = marks.map((m) => {
36622
+ const pin = domain.pin(m.value);
36623
+ return {
36624
+ key: m.key,
36625
+ kind: m.kind,
36626
+ primary: m.primary,
36627
+ at: at(m.value),
36628
+ pin: pin === 0 ? "" : pin === 1 !== vertical ? "end" : "start"
36629
+ };
36630
+ });
36631
+ const bands = marks.filter((m) => m.kind === "target" && m.low !== null && m.high !== null).map((m) => ({
36632
+ key: m.key,
36633
+ ...span(at(m.low), at(m.high))
36634
+ }));
36635
+ const bounds = marks.filter((m) => m.kind === "bound").map((m) => m.value);
36636
+ const range = bounds.length >= 2 ? span(at(Math.min(...bounds)), at(Math.max(...bounds))) : null;
36637
+ const brackets = this.relations().flatMap((r) => {
36638
+ const result = this.results().get(r.def.key);
36639
+ if (!r.bracket || r.def.type !== "compare" || !result?.holds || result.left === null || result.right === null) return [];
36640
+ return [{
36641
+ key: r.def.key,
36642
+ tone: r.tone,
36643
+ label: this.t(r.label || r.def.key),
36644
+ ...span(at(result.left), at(result.right))
36645
+ }];
36646
+ }).map((b, row) => ({
36647
+ ...b,
36648
+ row
36649
+ }));
36650
+ const byKey = new Map(marks.map((m) => [m.key, m]));
36651
+ const text = (keys) => {
36652
+ const group = keys.map((k) => byKey.get(k));
36653
+ return {
36654
+ name: group.map((m) => m.name).join(" · "),
36655
+ valueText: group.map((m) => this.formatValue(m.value)).join(" · "),
36656
+ primary: group.some((m) => m.primary),
36657
+ target: group.every((m) => m.kind === "target")
36658
+ };
36659
+ };
36660
+ if (vertical) {
36661
+ const length = this.verticalPx();
36662
+ return {
36663
+ ticks,
36664
+ bands,
36665
+ range,
36666
+ brackets,
36667
+ labels: spreadLabels(ticks.map((t) => ({
36668
+ key: t.key,
36669
+ y: t.at / 100 * length
36670
+ })), ROW_PX * .75, length).map((l) => ({
36671
+ key: l.key,
36672
+ lane: 0,
36673
+ at: l.y / length * 100,
36674
+ ...text([l.key])
36675
+ })),
36676
+ lanes: 1
36677
+ };
36678
+ }
36679
+ const widthPx = this.width() || FALLBACK_PX;
36680
+ const labels = layoutLanes(ticks.map((t) => ({
36681
+ key: t.key,
36682
+ x: t.at / 100 * widthPx
36683
+ })), LABEL_GAP_PX).map((l) => ({
36684
+ key: l.keys.join("+"),
36685
+ lane: l.lane,
36686
+ at: l.x / widthPx * 100,
36687
+ ...text(l.keys)
36688
+ }));
36689
+ return {
36690
+ ticks,
36691
+ bands,
36692
+ range,
36693
+ brackets,
36694
+ labels,
36695
+ lanes: labels.some((l) => l.lane === 1) ? 2 : 1
36696
+ };
36697
+ }, ...ngDevMode ? [{ debugName: "plot" }] : /* istanbul ignore next */ []);
36698
+ summary = computed(() => {
36699
+ const primary = this.primary();
36700
+ return this.translateService.translate("scale-summary", {
36701
+ label: this.t(this.label()),
36702
+ value: primary ? `${primary.name} ${this.formatValue(primary.value)}` : "—",
36703
+ n: String(this.marks().length)
36704
+ });
36705
+ }, ...ngDevMode ? [{ debugName: "summary" }] : /* istanbul ignore next */ []);
36706
+ static ɵfac = i0.ɵɵngDeclareFactory({
36707
+ minVersion: "12.0.0",
36708
+ version: "22.2.1",
36709
+ ngImport: i0,
36710
+ type: ScaleComponent,
36711
+ deps: [],
36712
+ target: i0.ɵɵFactoryTarget.Component
36713
+ });
36714
+ static ɵcmp = i0.ɵɵngDeclareComponent({
36715
+ minVersion: "17.0.0",
36716
+ version: "22.2.1",
36717
+ type: ScaleComponent,
36718
+ isStandalone: true,
36719
+ selector: "m-scale",
36720
+ inputs: {
36721
+ label: {
36722
+ classPropertyName: "label",
36723
+ publicName: "label",
36724
+ isSignal: true,
36725
+ isRequired: false,
36726
+ transformFunction: null
36727
+ },
36728
+ format: {
36729
+ classPropertyName: "format",
36730
+ publicName: "format",
36731
+ isSignal: true,
36732
+ isRequired: false,
36733
+ transformFunction: null
36734
+ },
36735
+ currency: {
36736
+ classPropertyName: "currency",
36737
+ publicName: "currency",
36738
+ isSignal: true,
36739
+ isRequired: false,
36740
+ transformFunction: null
36741
+ },
36742
+ unit: {
36743
+ classPropertyName: "unit",
36744
+ publicName: "unit",
36745
+ isSignal: true,
36746
+ isRequired: false,
36747
+ transformFunction: null
36748
+ },
36749
+ breakpoint: {
36750
+ classPropertyName: "breakpoint",
36751
+ publicName: "breakpoint",
36752
+ isSignal: true,
36753
+ isRequired: false,
36754
+ transformFunction: null
36755
+ },
36756
+ orientation: {
36757
+ classPropertyName: "orientation",
36758
+ publicName: "orientation",
36759
+ isSignal: true,
36760
+ isRequired: false,
36761
+ transformFunction: null
36762
+ },
36763
+ min: {
36764
+ classPropertyName: "min",
36765
+ publicName: "min",
36766
+ isSignal: true,
36767
+ isRequired: false,
36768
+ transformFunction: null
36769
+ },
36770
+ max: {
36771
+ classPropertyName: "max",
36772
+ publicName: "max",
36773
+ isSignal: true,
36774
+ isRequired: false,
36775
+ transformFunction: null
36776
+ },
36777
+ maxSpanPct: {
36778
+ classPropertyName: "maxSpanPct",
36779
+ publicName: "maxSpanPct",
36780
+ isSignal: true,
36781
+ isRequired: false,
36782
+ transformFunction: null
36783
+ }
36784
+ },
36785
+ queries: [{
36786
+ propertyName: "markTags",
36787
+ predicate: ScaleMarkComponent,
36788
+ isSignal: true
36789
+ }, {
36790
+ propertyName: "relationTags",
36791
+ predicate: ScaleRelationComponent,
36792
+ isSignal: true
36793
+ }],
36794
+ ngImport: i0,
36795
+ template: "<div [class]=\"'m-scale is-' + shownAs()\" role=\"img\" [attr.aria-label]=\"summary()\">\n <div class=\"m-scale__head\">\n @if (label()) {\n <span class=\"m-scale__label\">{{ label() | translate }}</span>\n }\n @if (primary(); as p) {\n <span class=\"m-scale__value\">{{ formatValue(p.value) }}</span>\n <span class=\"m-scale__value-name\">{{ p.name }}</span>\n }\n </div>\n\n @if (chips().length) {\n <div class=\"m-scale__chips\">\n @for (c of chips(); track c.key) {\n <span [class]=\"'m-scale__chip is-' + c.tone\" [attr.title]=\"c.detail || null\">{{ c.label }}</span>\n }\n </div>\n }\n\n @if (plot(); as p) {\n <div\n class=\"m-scale__plot\"\n [style.--_lanes]=\"p.lanes\"\n [style.--_brackets]=\"p.brackets.length\"\n [style.height.px]=\"shownAs() === 'vertical' ? verticalPx() : null\"\n >\n <div class=\"m-scale__axis\">\n @if (p.range; as r) {\n <span class=\"m-scale__range\" [style.--_from.%]=\"r.from\" [style.--_size.%]=\"r.size\"></span>\n }\n @for (b of p.bands; track b.key) {\n <span class=\"m-scale__band\" [style.--_from.%]=\"b.from\" [style.--_size.%]=\"b.size\"></span>\n }\n @for (t of p.ticks; track t.key) {\n <span\n [class]=\"'m-scale__tick is-' + t.kind\"\n [class.is-primary]=\"t.primary\"\n [class.is-pin-start]=\"t.pin === 'start'\"\n [class.is-pin-end]=\"t.pin === 'end'\"\n [style.--_at.%]=\"t.at\"\n ></span>\n }\n </div>\n\n @for (l of p.labels; track l.key) {\n <span\n class=\"m-scale__mark-label\"\n [class.is-lane-2]=\"l.lane === 1\"\n [class.is-primary]=\"l.primary\"\n [class.is-target]=\"l.target\"\n [style.--_at.%]=\"l.at\"\n >\n <span class=\"m-scale__mark-name\">{{ l.name }}</span>\n <span class=\"m-scale__mark-value\">{{ l.valueText }}</span>\n </span>\n }\n\n @for (b of p.brackets; track b.key) {\n <span\n [class]=\"'m-scale__bracket is-' + b.tone\"\n [attr.title]=\"b.label\"\n [style.--_from.%]=\"b.from\"\n [style.--_size.%]=\"b.size\"\n [style.--_row]=\"b.row\"\n >\n <span class=\"m-scale__bracket-label\">{{ b.label }}</span>\n </span>\n }\n </div>\n }\n</div>\n",
36796
+ styles: ["@keyframes toggle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes thumb-slide{0%{transform:translate(0) scale(1)}50%{transform:translate(.3em) scale(.9)}to{transform:translate(.6em) scale(1)}}:host{display:block;--m-scale-target: var(--m-mm);--m-scale-up: var(--m-success);--m-scale-down: var(--m-error);--m-scale-warn: var(--m-warning);--m-scale-gold: var(--m-gold)}.m-scale{display:flex;flex-direction:column;gap:.75em;font-variant-numeric:tabular-nums}.m-scale__head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5em}.m-scale__label{color:var(--m-text-secondary);font-weight:600}.m-scale__value{font-size:1.5em;font-weight:700}.m-scale__value-name{color:var(--m-text-tertiary);font-size:.8em}.m-scale__chips{display:flex;flex-wrap:wrap;gap:.4em}.m-scale__chip{display:inline-flex;align-items:center;gap:.4em;padding:.15em .65em .15em .5em;border:1px solid var(--m-border);border-radius:999px;font-size:.8em;font-weight:500}.m-scale__chip:before{content:\"\";width:.55em;height:.55em;border-radius:50%;background:var(--_tone, var(--m-text-tertiary))}.m-scale__chip.is-up{--_tone: var(--m-scale-up)}.m-scale__chip.is-down{--_tone: var(--m-scale-down)}.m-scale__chip.is-warn{--_tone: var(--m-scale-warn)}.m-scale__chip.is-gold{--_tone: var(--m-scale-gold);border-color:var(--m-scale-gold)}.m-scale__plot{position:relative}.m-scale__axis{position:absolute}.m-scale__axis:before{content:\"\";position:absolute;background:var(--m-border)}.m-scale__range,.m-scale__band,.m-scale__tick,.m-scale__bracket,.m-scale__mark-label{position:absolute}.m-scale__range{background:color-mix(in srgb,var(--m-text-tertiary) 22%,transparent)}.m-scale__band{border:1px dashed var(--m-scale-target);border-radius:.2em;background:repeating-linear-gradient(45deg,color-mix(in srgb,var(--m-scale-target) 22%,transparent) 0 2px,transparent 2px 6px)}.m-scale__tick{background:var(--m-text-secondary)}.m-scale__tick.is-bound{background:var(--m-text-tertiary)}.m-scale__tick.is-target{background:none}.m-scale__mark-label{font-size:.75em;white-space:nowrap}.m-scale__mark-label.is-primary{font-weight:700}.m-scale__mark-label.is-target{color:var(--m-scale-target)}.m-scale__mark-name{color:var(--m-text-tertiary)}.m-scale__mark-value{font-weight:600}.m-scale__bracket{border:1.5px solid var(--_tone, var(--m-text-tertiary))}.m-scale__bracket.is-up{--_tone: var(--m-scale-up)}.m-scale__bracket.is-down{--_tone: var(--m-scale-down)}.m-scale__bracket.is-warn{--_tone: var(--m-scale-warn)}.m-scale__bracket.is-gold{--_tone: var(--m-scale-gold)}.m-scale__bracket-label{position:absolute;color:var(--_tone, var(--m-text-tertiary));font-size:.7em;white-space:nowrap}.m-scale.is-horizontal .m-scale__plot{height:calc(2.6em + var(--_lanes, 1) * 2.4em + var(--_brackets, 0) * 1.8em)}.m-scale.is-horizontal .m-scale__axis{inset:0 0 auto;height:2.4em}.m-scale.is-horizontal .m-scale__axis:before{inset:50% 0 auto;height:2px;transform:translateY(-50%)}.m-scale.is-horizontal .m-scale__range,.m-scale.is-horizontal .m-scale__band{top:50%;left:var(--_from);width:var(--_size);transform:translateY(-50%)}.m-scale.is-horizontal .m-scale__range{height:.5em}.m-scale.is-horizontal .m-scale__band{height:1.4em}.m-scale.is-horizontal .m-scale__tick{top:50%;left:var(--_at);width:1.5px;height:.9em;transform:translate(-50%,-50%)}.m-scale.is-horizontal .m-scale__tick.is-bound{width:2.5px;height:1.3em}.m-scale.is-horizontal .m-scale__tick.is-target{width:0;height:2em;border-left:2px dashed var(--m-scale-target)}.m-scale.is-horizontal .m-scale__tick.is-primary{width:.9em;height:.9em;border:2px solid var(--m-background);border-radius:50%;background:var(--m-text)}.m-scale.is-horizontal .m-scale__tick.is-pin-start,.m-scale.is-horizontal .m-scale__tick.is-pin-end{width:.6em;height:.6em;border:0;border-top:2.5px solid var(--m-scale-target);border-right:2.5px solid var(--m-scale-target);background:none}.m-scale.is-horizontal .m-scale__tick.is-pin-start{transform:translate(-50%,-50%) rotate(-135deg)}.m-scale.is-horizontal .m-scale__tick.is-pin-end{transform:translate(-50%,-50%) rotate(45deg)}.m-scale.is-horizontal .m-scale__mark-label{top:3.4em;left:var(--_at);display:flex;flex-direction:column;align-items:center;transform:translate(calc(var(--_at) * -1))}.m-scale.is-horizontal .m-scale__mark-label.is-lane-2{top:6.6em}.m-scale.is-horizontal .m-scale__bracket{top:calc(2.8em + var(--_lanes, 1) * 2.4em + var(--_row, 0) * 1.8em);left:var(--_from);width:var(--_size);height:.45em;border-top:0}.m-scale.is-horizontal .m-scale__bracket-label{top:.45em;left:50%;transform:translate(-50%)}.m-scale.is-vertical .m-scale__axis{inset:0 auto 0 calc(.5em + var(--_brackets, 0) * .9em);width:2.4em}.m-scale.is-vertical .m-scale__axis:before{inset:0 auto 0 50%;width:2px;transform:translate(-50%)}.m-scale.is-vertical .m-scale__range,.m-scale.is-vertical .m-scale__band{top:var(--_from);left:50%;height:var(--_size);transform:translate(-50%)}.m-scale.is-vertical .m-scale__range{width:.5em}.m-scale.is-vertical .m-scale__band{width:1.4em}.m-scale.is-vertical .m-scale__tick{top:var(--_at);left:50%;width:.9em;height:1.5px;transform:translate(-50%,-50%)}.m-scale.is-vertical .m-scale__tick.is-bound{width:1.3em;height:2.5px}.m-scale.is-vertical .m-scale__tick.is-target{width:2em;height:0;border-top:2px dashed var(--m-scale-target)}.m-scale.is-vertical .m-scale__tick.is-primary{width:.9em;height:.9em;border:2px solid var(--m-background);border-radius:50%;background:var(--m-text)}.m-scale.is-vertical .m-scale__tick.is-pin-start,.m-scale.is-vertical .m-scale__tick.is-pin-end{width:.6em;height:.6em;border:0;border-top:2.5px solid var(--m-scale-target);border-right:2.5px solid var(--m-scale-target);background:none}.m-scale.is-vertical .m-scale__tick.is-pin-start{transform:translate(-50%,-50%) rotate(-45deg)}.m-scale.is-vertical .m-scale__tick.is-pin-end{transform:translate(-50%,-50%) rotate(135deg)}.m-scale.is-vertical .m-scale__mark-label{top:var(--_at);left:calc(3.6em + var(--_brackets, 0) * .9em);display:flex;gap:.5em;transform:translateY(-50%)}.m-scale.is-vertical .m-scale__bracket{top:var(--_from);left:calc(.2em + var(--_row, 0) * .9em);width:.45em;height:var(--_size);border-right:0}.m-scale.is-vertical .m-scale__bracket-label{display:none}\n"],
36797
+ dependencies: [{
36798
+ kind: "pipe",
36799
+ type: TranslatePipe,
36800
+ name: "translate"
36801
+ }],
36802
+ changeDetection: i0.ChangeDetectionStrategy.OnPush
36803
+ });
36804
+ };
36805
+ i0.ɵɵngDeclareClassMetadata({
36806
+ minVersion: "12.0.0",
36807
+ version: "22.2.1",
36808
+ ngImport: i0,
36809
+ type: ScaleComponent,
36810
+ decorators: [{
36811
+ type: Component,
36812
+ args: [{
36813
+ selector: "m-scale",
36814
+ imports: [TranslatePipe],
36815
+ changeDetection: ChangeDetectionStrategy.OnPush,
36816
+ template: "<div [class]=\"'m-scale is-' + shownAs()\" role=\"img\" [attr.aria-label]=\"summary()\">\n <div class=\"m-scale__head\">\n @if (label()) {\n <span class=\"m-scale__label\">{{ label() | translate }}</span>\n }\n @if (primary(); as p) {\n <span class=\"m-scale__value\">{{ formatValue(p.value) }}</span>\n <span class=\"m-scale__value-name\">{{ p.name }}</span>\n }\n </div>\n\n @if (chips().length) {\n <div class=\"m-scale__chips\">\n @for (c of chips(); track c.key) {\n <span [class]=\"'m-scale__chip is-' + c.tone\" [attr.title]=\"c.detail || null\">{{ c.label }}</span>\n }\n </div>\n }\n\n @if (plot(); as p) {\n <div\n class=\"m-scale__plot\"\n [style.--_lanes]=\"p.lanes\"\n [style.--_brackets]=\"p.brackets.length\"\n [style.height.px]=\"shownAs() === 'vertical' ? verticalPx() : null\"\n >\n <div class=\"m-scale__axis\">\n @if (p.range; as r) {\n <span class=\"m-scale__range\" [style.--_from.%]=\"r.from\" [style.--_size.%]=\"r.size\"></span>\n }\n @for (b of p.bands; track b.key) {\n <span class=\"m-scale__band\" [style.--_from.%]=\"b.from\" [style.--_size.%]=\"b.size\"></span>\n }\n @for (t of p.ticks; track t.key) {\n <span\n [class]=\"'m-scale__tick is-' + t.kind\"\n [class.is-primary]=\"t.primary\"\n [class.is-pin-start]=\"t.pin === 'start'\"\n [class.is-pin-end]=\"t.pin === 'end'\"\n [style.--_at.%]=\"t.at\"\n ></span>\n }\n </div>\n\n @for (l of p.labels; track l.key) {\n <span\n class=\"m-scale__mark-label\"\n [class.is-lane-2]=\"l.lane === 1\"\n [class.is-primary]=\"l.primary\"\n [class.is-target]=\"l.target\"\n [style.--_at.%]=\"l.at\"\n >\n <span class=\"m-scale__mark-name\">{{ l.name }}</span>\n <span class=\"m-scale__mark-value\">{{ l.valueText }}</span>\n </span>\n }\n\n @for (b of p.brackets; track b.key) {\n <span\n [class]=\"'m-scale__bracket is-' + b.tone\"\n [attr.title]=\"b.label\"\n [style.--_from.%]=\"b.from\"\n [style.--_size.%]=\"b.size\"\n [style.--_row]=\"b.row\"\n >\n <span class=\"m-scale__bracket-label\">{{ b.label }}</span>\n </span>\n }\n </div>\n }\n</div>\n",
36817
+ styles: ["@keyframes toggle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes thumb-slide{0%{transform:translate(0) scale(1)}50%{transform:translate(.3em) scale(.9)}to{transform:translate(.6em) scale(1)}}:host{display:block;--m-scale-target: var(--m-mm);--m-scale-up: var(--m-success);--m-scale-down: var(--m-error);--m-scale-warn: var(--m-warning);--m-scale-gold: var(--m-gold)}.m-scale{display:flex;flex-direction:column;gap:.75em;font-variant-numeric:tabular-nums}.m-scale__head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5em}.m-scale__label{color:var(--m-text-secondary);font-weight:600}.m-scale__value{font-size:1.5em;font-weight:700}.m-scale__value-name{color:var(--m-text-tertiary);font-size:.8em}.m-scale__chips{display:flex;flex-wrap:wrap;gap:.4em}.m-scale__chip{display:inline-flex;align-items:center;gap:.4em;padding:.15em .65em .15em .5em;border:1px solid var(--m-border);border-radius:999px;font-size:.8em;font-weight:500}.m-scale__chip:before{content:\"\";width:.55em;height:.55em;border-radius:50%;background:var(--_tone, var(--m-text-tertiary))}.m-scale__chip.is-up{--_tone: var(--m-scale-up)}.m-scale__chip.is-down{--_tone: var(--m-scale-down)}.m-scale__chip.is-warn{--_tone: var(--m-scale-warn)}.m-scale__chip.is-gold{--_tone: var(--m-scale-gold);border-color:var(--m-scale-gold)}.m-scale__plot{position:relative}.m-scale__axis{position:absolute}.m-scale__axis:before{content:\"\";position:absolute;background:var(--m-border)}.m-scale__range,.m-scale__band,.m-scale__tick,.m-scale__bracket,.m-scale__mark-label{position:absolute}.m-scale__range{background:color-mix(in srgb,var(--m-text-tertiary) 22%,transparent)}.m-scale__band{border:1px dashed var(--m-scale-target);border-radius:.2em;background:repeating-linear-gradient(45deg,color-mix(in srgb,var(--m-scale-target) 22%,transparent) 0 2px,transparent 2px 6px)}.m-scale__tick{background:var(--m-text-secondary)}.m-scale__tick.is-bound{background:var(--m-text-tertiary)}.m-scale__tick.is-target{background:none}.m-scale__mark-label{font-size:.75em;white-space:nowrap}.m-scale__mark-label.is-primary{font-weight:700}.m-scale__mark-label.is-target{color:var(--m-scale-target)}.m-scale__mark-name{color:var(--m-text-tertiary)}.m-scale__mark-value{font-weight:600}.m-scale__bracket{border:1.5px solid var(--_tone, var(--m-text-tertiary))}.m-scale__bracket.is-up{--_tone: var(--m-scale-up)}.m-scale__bracket.is-down{--_tone: var(--m-scale-down)}.m-scale__bracket.is-warn{--_tone: var(--m-scale-warn)}.m-scale__bracket.is-gold{--_tone: var(--m-scale-gold)}.m-scale__bracket-label{position:absolute;color:var(--_tone, var(--m-text-tertiary));font-size:.7em;white-space:nowrap}.m-scale.is-horizontal .m-scale__plot{height:calc(2.6em + var(--_lanes, 1) * 2.4em + var(--_brackets, 0) * 1.8em)}.m-scale.is-horizontal .m-scale__axis{inset:0 0 auto;height:2.4em}.m-scale.is-horizontal .m-scale__axis:before{inset:50% 0 auto;height:2px;transform:translateY(-50%)}.m-scale.is-horizontal .m-scale__range,.m-scale.is-horizontal .m-scale__band{top:50%;left:var(--_from);width:var(--_size);transform:translateY(-50%)}.m-scale.is-horizontal .m-scale__range{height:.5em}.m-scale.is-horizontal .m-scale__band{height:1.4em}.m-scale.is-horizontal .m-scale__tick{top:50%;left:var(--_at);width:1.5px;height:.9em;transform:translate(-50%,-50%)}.m-scale.is-horizontal .m-scale__tick.is-bound{width:2.5px;height:1.3em}.m-scale.is-horizontal .m-scale__tick.is-target{width:0;height:2em;border-left:2px dashed var(--m-scale-target)}.m-scale.is-horizontal .m-scale__tick.is-primary{width:.9em;height:.9em;border:2px solid var(--m-background);border-radius:50%;background:var(--m-text)}.m-scale.is-horizontal .m-scale__tick.is-pin-start,.m-scale.is-horizontal .m-scale__tick.is-pin-end{width:.6em;height:.6em;border:0;border-top:2.5px solid var(--m-scale-target);border-right:2.5px solid var(--m-scale-target);background:none}.m-scale.is-horizontal .m-scale__tick.is-pin-start{transform:translate(-50%,-50%) rotate(-135deg)}.m-scale.is-horizontal .m-scale__tick.is-pin-end{transform:translate(-50%,-50%) rotate(45deg)}.m-scale.is-horizontal .m-scale__mark-label{top:3.4em;left:var(--_at);display:flex;flex-direction:column;align-items:center;transform:translate(calc(var(--_at) * -1))}.m-scale.is-horizontal .m-scale__mark-label.is-lane-2{top:6.6em}.m-scale.is-horizontal .m-scale__bracket{top:calc(2.8em + var(--_lanes, 1) * 2.4em + var(--_row, 0) * 1.8em);left:var(--_from);width:var(--_size);height:.45em;border-top:0}.m-scale.is-horizontal .m-scale__bracket-label{top:.45em;left:50%;transform:translate(-50%)}.m-scale.is-vertical .m-scale__axis{inset:0 auto 0 calc(.5em + var(--_brackets, 0) * .9em);width:2.4em}.m-scale.is-vertical .m-scale__axis:before{inset:0 auto 0 50%;width:2px;transform:translate(-50%)}.m-scale.is-vertical .m-scale__range,.m-scale.is-vertical .m-scale__band{top:var(--_from);left:50%;height:var(--_size);transform:translate(-50%)}.m-scale.is-vertical .m-scale__range{width:.5em}.m-scale.is-vertical .m-scale__band{width:1.4em}.m-scale.is-vertical .m-scale__tick{top:var(--_at);left:50%;width:.9em;height:1.5px;transform:translate(-50%,-50%)}.m-scale.is-vertical .m-scale__tick.is-bound{width:1.3em;height:2.5px}.m-scale.is-vertical .m-scale__tick.is-target{width:2em;height:0;border-top:2px dashed var(--m-scale-target)}.m-scale.is-vertical .m-scale__tick.is-primary{width:.9em;height:.9em;border:2px solid var(--m-background);border-radius:50%;background:var(--m-text)}.m-scale.is-vertical .m-scale__tick.is-pin-start,.m-scale.is-vertical .m-scale__tick.is-pin-end{width:.6em;height:.6em;border:0;border-top:2.5px solid var(--m-scale-target);border-right:2.5px solid var(--m-scale-target);background:none}.m-scale.is-vertical .m-scale__tick.is-pin-start{transform:translate(-50%,-50%) rotate(-45deg)}.m-scale.is-vertical .m-scale__tick.is-pin-end{transform:translate(-50%,-50%) rotate(135deg)}.m-scale.is-vertical .m-scale__mark-label{top:var(--_at);left:calc(3.6em + var(--_brackets, 0) * .9em);display:flex;gap:.5em;transform:translateY(-50%)}.m-scale.is-vertical .m-scale__bracket{top:var(--_from);left:calc(.2em + var(--_row, 0) * .9em);width:.45em;height:var(--_size);border-right:0}.m-scale.is-vertical .m-scale__bracket-label{display:none}\n"]
36818
+ }]
36819
+ }],
36820
+ ctorParameters: () => [],
36821
+ propDecorators: {
36822
+ label: [{
36823
+ type: i0.Input,
36824
+ args: [{
36825
+ isSignal: true,
36826
+ alias: "label",
36827
+ required: false
36828
+ }]
36829
+ }],
36830
+ format: [{
36831
+ type: i0.Input,
36832
+ args: [{
36833
+ isSignal: true,
36834
+ alias: "format",
36835
+ required: false
36836
+ }]
36837
+ }],
36838
+ currency: [{
36839
+ type: i0.Input,
36840
+ args: [{
36841
+ isSignal: true,
36842
+ alias: "currency",
36843
+ required: false
36844
+ }]
36845
+ }],
36846
+ unit: [{
36847
+ type: i0.Input,
36848
+ args: [{
36849
+ isSignal: true,
36850
+ alias: "unit",
36851
+ required: false
36852
+ }]
36853
+ }],
36854
+ breakpoint: [{
36855
+ type: i0.Input,
36856
+ args: [{
36857
+ isSignal: true,
36858
+ alias: "breakpoint",
36859
+ required: false
36860
+ }]
36861
+ }],
36862
+ orientation: [{
36863
+ type: i0.Input,
36864
+ args: [{
36865
+ isSignal: true,
36866
+ alias: "orientation",
36867
+ required: false
36868
+ }]
36869
+ }],
36870
+ min: [{
36871
+ type: i0.Input,
36872
+ args: [{
36873
+ isSignal: true,
36874
+ alias: "min",
36875
+ required: false
36876
+ }]
36877
+ }],
36878
+ max: [{
36879
+ type: i0.Input,
36880
+ args: [{
36881
+ isSignal: true,
36882
+ alias: "max",
36883
+ required: false
36884
+ }]
36885
+ }],
36886
+ maxSpanPct: [{
36887
+ type: i0.Input,
36888
+ args: [{
36889
+ isSignal: true,
36890
+ alias: "maxSpanPct",
36891
+ required: false
36892
+ }]
36893
+ }],
36894
+ markTags: [{
36895
+ type: i0.ContentChildren,
36896
+ args: [i0.forwardRef(() => ScaleMarkComponent), { isSignal: true }]
36897
+ }],
36898
+ relationTags: [{
36899
+ type: i0.ContentChildren,
36900
+ args: [i0.forwardRef(() => ScaleRelationComponent), { isSignal: true }]
36901
+ }]
36902
+ }
36903
+ });
35818
36904
  const DOCS_FOLDER = "docs";
35819
36905
  const LIBRARY_TIER = "one";
35820
36906
  function docAssetCandidates({ name, lang, defaultLang }) {
@@ -55482,6 +56568,6 @@ i0.ɵɵngDeclareClassMetadata({
55482
56568
  }]
55483
56569
  }
55484
56570
  });
55485
- export { ACCESS_DOMAINS, APP_CONTEXT_REF, APP_LINK, APP_LOGO_ICON, APP_LOGO_SOURCE, APP_THEME_COLOR, ASSET_BASE_URL, AUDIENCE_ICONS, AUDIENCE_LEVELS, AccordionBodyDirective, AccordionComponent, AccordionGroupComponent, ActionComponent, AnimatedGraphsComponent, AppAvailability, AppCardComponent, AppIdentityService, AppLogoComponent, AppLogoState, AppRelationType, AppTileComponent, AssetStore, AssetUrlPipe, Assets, AudiencePickerBoxComponent, AudiencePickerComponent, AuthActivityPageComponent, AuthApiService, AuthStore, AutosizeDirective, BadgeComponent, BandingComponent, BaseArrayInputComponent, BaseRootWebComponent, BaseWebComponent, BrowserLocaleService, ButtonComponent, ButtonGroupComponent, CALLING_APP_HEADER, COMPONENT_INPUT_REGISTRY, CardComponent, CardWrapperComponent, CarouselComponent, ChartComponent, ChatBubbleComponent, CheckboxGroupComponent, CheckboxInputComponent, ClearableInputComponent, ClipboardService, ColComponent, ColorPickerInputComponent, CommentItemComponent, CommentsApiService, CommentsComponent, CommentsStore, CompactNumberPipe, ComponentInputComponent, ComponentStepperComponent, ConfigComponent, ConfirmComponent, ContextMenuComponent, CustomIconClass, CustomIconEditComponent, DEFAULT_AUDIENCE, DEFAULT_DENIAL, DEFAULT_DOC_ALIGN, DEFAULT_DOC_DENSITY, DEFAULT_DOC_VARIANT, DEFAULT_FILTER_RANGE_MODE, DEFAULT_FILTER_VARIANT, DEFAULT_NAV_PARAM, DEFAULT_NAV_SEGMENT, DEFAULT_SECTION_CHART_RANGES, DEFAULT_SIZE, DOCK_MIN_PAGE_REMAINDER, DOCS_FOLDER, DOC_ACTION_ICONS, DOC_ALIGNS, DOC_DENSITIES, DOC_EDIT_ACTIONS, DOC_TOOLBAR_GROUPS, DOC_VARIANTS, DashboardCardComponent, DateInputComponent, DatePickerComponent, DeviceService, DocComponent, DocEditorComponent, DomService, Domain, DotGridComponent, DragListDirective, DragListItemDirective, DraggableDirective, DropdownInputComponent, FILTER_GROUP_CONTEXT, FILTER_RANGE_MODES, FILTER_VARIANTS, FLEX_VARIANTS, FOLDER_PICK_LISTENER, FORM_ASSET_FOLDER, FileService, FileUploadDirective, FileUploadInputComponent, FlexComponent, FlexItemComponent, FormGroupComponent, FrameComponent, FreezeService, GRID_BREAKPOINTS, GetNavService, HOST_SESSION, HeaderComponent, HeatSwatchComponent, HighlightDirective, HttpService, HttpSharingClient, ICON_SOURCE, IS_DESIGN_MODE, IS_SIDE_PANEL, IconComponent, ImgComponent, InputType, InstrumentScoreComponent, InterceptorObservables, JumbotronComponent, KeyValueComponent, LAYOUT_ASSET_FOLDER, LOADING_ACTIONS_REF, LOGIN_COMPONENT, LOGIN_STORE, LOGO_GLYPH_MAX_BYTES, LanguageComponent, ListComponent, LogoComponent, LogoGlyphInputComponent, MAG_SOCKET_EVENT, MHeroColorDirective, MHeroComponent, MODAL_REF, MODAL_STORE_REF, MOUNT_STATIC_SEGMENT, MOUNT_TOKEN, MRefDirective, MStepComponent, MURL_PARAM, MURL_SEP, ManifestEnrichmentService, MarginDirective, MenuComponent, ModalDirective, ModalRef, ModalStore, MoneyPipe, MultiRangeInputComponent, MultiselectInputComponent, MurlUrlSerializer, NAV_DEFAULT_MURL, NAV_ID_SEP, NAV_MAIN_BUTTONS, NAV_SEGMENT_RE, NAV_STORE_REF, NAV_WC_COMPONENTS, NAV_WIDGET_MAP, NavComponent, NavDetailsComponent, NavHeaderComponent, NavMenuComponent, NavStore, NavTrailComponent, NothingComponent, NotificationElementComponent, NotificationGroupComponent, NotificationPopupComponent, NotificationService, NotificationStore, NotificationType, NotificationWidgetComponent, ONE_ASSET_BASE_URL, OPTIONS_SOURCE, OVERLAY_WIDGETS, OneApp, OptionsSourceDirective, OverlayBodyComponent, OverlayRef, OverlayService, PLATFORM_BUTTON_NAV_IDS, PLATFORM_EXTENSIBLE_NAV_IDS, PLATFORM_NAV_MAP, PLATFORM_ROOT_CHILDREN, PLUGIN_FALLBACK_LANG, PLUGIN_OUTPUT_EVENT, PLUGIN_SCREENS, PRICE_LADDER_LEVELS, PRICE_LADDER_RULES, PaddingDirective, PaginationComponent, PanelComponent, PercentagePipe, PlaygroundComponent, PluginComponent, PluginInputComponent, PluginOutputComponent, PositionDirective, PriceLadderComponent, PriceLadderMarkComponent, PriceLadderSignalComponent, PwaInstallComponent, RECENT_SEARCH_LIMIT, REMOTE_BOOT_TIMEOUT_MS, REMOTE_PAGE_RELOAD, ROOT_NAV, RadioGroupComponent, RadioInputComponent, RangeInputComponent, RatingInputComponent, ReactiveElementComponent, RemoteComponent, RemoteLoaderService, ResizeElementComponent, RouteContainer, RowComponent, SCORE_TONE_COUNT, SEARCH_ANSWER_KEY, SEARCH_LABEL_KEY, SEARCH_QUERY, SEARCH_RESULTS_EVENT, SECTION_ACCORDION_GROUP, SECTION_CHART_CUSTOM_RANGE, SECTION_CHART_SCALES, SECTION_FORM_CONTEXT, SECTION_TABLE_VARIANTS, SHARED_ICONS, SHARING_CLIENT, SIZE_CONTEXT, SPACING_INWARD, SPLASH_ID, ScoreComponent, ScoreSetComponent, ScoreSetItemComponent, ScrollComponent, ScrollService, SearchPanelComponent, SearchStore, SearchUserPanelComponent, SectionAccordionDirective, SectionAccordionGroupDirective, SectionBackComponent, SectionBadgesComponent, SectionButtonGroupComponent, SectionCardComponent, SectionCarouselComponent, SectionChartComponent, SectionChartSeriesComponent, SectionComponent, SectionFilterComponent, SectionFilterGroupComponent, SectionFilterMenuComponent, SectionFilterPanelComponent, SectionFilterRangePanelComponent, SectionFooterComponent, SectionFormComponent, SectionFormItemComponent, SectionHeaderComponent, SectionHeroComponent, SectionPaginationComponent, SectionSearchComponent, SectionStepperComponent, SectionTableCellComponent, SectionTableComponent, SectionTableRowComponent, SectionTableSortDirection, SectionTableSortPipe, SectionTabsComponent, SectionToggleComponent, SectionToggleItemDirective, SelectableCardInputComponent, SelectorDirective, SettingsSearchBarComponent, SettingsSearchService, ShapeComponent, SharedStoreRegistry, SidePanelDirective, SignColorPipe, Size, SocketStore, SortComponent, StatComponent, StepComponent, StepperComponent, StepsComponent, StorageService, StrokeLinecap, StrokeLinejoin, SummaryComponent, SvgGeneratorComponent, SvgGeneratorService, SvgService, TOTAL_COLUMNS, TRANSLATION_SOURCE, TableComponent, TechnicalMeterComponent, TextInputComponent, TextOutputComponent, TextareaInputComponent, ThemeComponent, ThemeDataService, ThemeService, ThemeStore, TimeAgoPipe, TimelineComponent, ToListPipe, ToggleButtonComponent, ToggleInputComponent, ToggleRadioInputComponent, ToolTipDirective, TooltipComponent, TranslatePipe, TranslateService, TreeGridComponent, URL_SEP, USER_STORE_REF, USER_TAB_MAP, UniverseComponent, UserApiService, UserAvatarComponent, UserComponent, UserNavComponent, UserSettingsComponent, UserStore, WC_BUNDLE, WC_NAVIGATE_EVENT, WC_ROUTE_CHANGED_EVENT, WC_SEARCH_GROUPS, WIN_USER_TAB_HOOK, WIN_USER_TAB_KEY, WatermarkComponent, WcRouterStore, WrapperInputComponent, actionName, activeElementWithin, allowedCodes, anchorNavId, appColorBrand, appLogoShadowColor, appThemeColorFactory, applyColorsToElement, applyDocEdit, assetOptions, baseUnderHost, bootstrapMagApp, bootstrapPwaInstall, browserLocale, buildWcBaseUrl, calculateLuminance, calculateRanks, categoricalTone, cellText, checkDoc, checkFilterCondition, childNavId, claimDenial, classListSignal, coerceSize, cornerEdge, cornerSide, createLoadingState, createMap, createPlatformNavMap, createPluginElement, definePluginScreens, definedWcBundleOf, definedWcTierOf, deriveAvatarGradient, deriveContrastColor, deriveOppositeColor, derivePropertyName, docActionKey, docAssetCandidates, docProblemKey, docRemotePath, emailValidation, enumValue, escapeHtml, evaluate, evaluateBool, existsInMap, exposeScreens, exposedScreensOf, fieldBoolean, fieldNumber, fieldString, filterHoldsList, filterHoldsOneBound, filterHoldsOptions, filterHoldsRange, filterList, filterNumber, filterNumberList, filterOne, filterPanelOf, filterPanelWidth, filterRange, filterTreeGridRows, filterValueList, filterValues, flattenTreeGridRows, formatBadgeCount, formatGap, fullName, gapPct, generateClipPath, generateTransform, getClassList, getFromMap, getProperty, getScrollParent, getTierFromPreviewPath, getTreeGridRow, getUniqueId, getValue, hasErrorComputed, heatColor, heatShare, hexToRgb, hslToRgb, initMagmoniumApp, initialNotificationState, initialState, initials, injectAuthenticate, injectDefaultDenial, injectInstallApp, injectParentSize, injectScrollSticky, isBootRedirect, isButtonName, isCancelledComputed, isExtensiblePlatformNavId, isJson, isLadderRule, isLightAppColor, isLoadingComputed, isLocalhost, isNavCountConfig, isNavInstanceConfig, isNavMenuConfig, isNavRowsConfig, isNavVisibilityConfig, isPlatformNavId, isPlatformPanelNavId, isReadableOn, isScoreStale, isSize, isTierPreview, isUrlLocalhost, isValidNavId, isValidNavSegment, isWebComponent, ladderLevelOf, ladderScale, ladderSignals, layoutLanes, linkToId, linkToNav, loadingActions, logoGlyphMaskUrl, mInterceptor, manualValidation, matchFieldValidation, matchMount, maxLengthValidation, maxValidation, mergePlatformNav, mergeUnique, mergeUniqueBy, mergeUniqueWith, minAgeValidation, minLengthValidation, minValidation, miniMarkInlineToHtml, miniMarkToHtml, mountFor, mountPatternProblem, mountPatternText, mountSegmentOf, mountTokenOf, navIdChain, navIdFor, navIdSegment, navIdToRoutePath, navIdToSegments, navParamOf, navTailMatcher, navToId, navVisibilityGuard, nextSectionTableSort, normalizeAppColor, normalizeAssetOptions, notExistsInMap, offsetOfLine, outletPathOf, outletSegmentsOf, paintAppColor, parentNavId, parseAddress, parseColor, parseMountPattern, parsePatternNames, patternValidation, patternsValidation, permissionRefusal, pickCount, pickSupportedLanguage, picksMembers, platformNavWidgets, pluginTag, presetDefaultOption, privateGuard, processImageToSvg, provideAppContext, provideMagAppConfig, provideMagWcConfig, provideMagWcRoutes, provideModalComponents, provideMurlUrlSerializer, provideNavWidgets, provideOverlayWidgets, providePlatformNavWidgets, providePluginRuntime, provideSearch, provideSizeContext, provideUserTabs, publicGuard, readChartPoints, readFieldPatterns, readableAppColor, rebuildLogoGlyph, recordDefinedWcTier, registerSessionRenewal, remoteOutletRoute, renderAddress, renderDocument, requiredValidation, resolveConfigAsset, resolveIconSize, resolvePallet, resolvePatternRules, resolveSize, resolveSpacing, rgbToHex, rgbToHsl, rowHasChildren, samePatterns, scoreBand, scoreStanding, sectionTableColumnId, sectionTableColumnWidths, sectionTableFrozenCount, segmentsToNavId, setInMap, setProperty, setTreeGridChildren, setWcLocalPort, setWcTier, settingsWidgets, shouldShowBadge, sortSectionTableRows, splashHtml, splitNavId, splitOnMatch, splitPath, stringToColor, tailRouteOf, toAttrBool, toAttrNumber, toCssLength, toHostNavId, toLength, toLocalNavId, toggleGroup, toggleTreeGridRow, toggleUid, unfetchedPlatformNav, ungroupedDocActions, urlValidation, wcLocalBaseOf, wcTierOf, withLevel };
56571
+ export { ACCESS_DOMAINS, APP_CONTEXT_REF, APP_LINK, APP_LOGO_ICON, APP_LOGO_SOURCE, APP_THEME_COLOR, ASSET_BASE_URL, AUDIENCE_ICONS, AUDIENCE_LEVELS, AccordionBodyDirective, AccordionComponent, AccordionGroupComponent, ActionComponent, AnimatedGraphsComponent, AppAvailability, AppCardComponent, AppIdentityService, AppLogoComponent, AppLogoState, AppRelationType, AppTileComponent, AssetStore, AssetUrlPipe, Assets, AudiencePickerBoxComponent, AudiencePickerComponent, AuthActivityPageComponent, AuthApiService, AuthStore, AutosizeDirective, BadgeComponent, BandingComponent, BaseArrayInputComponent, BaseRootWebComponent, BaseWebComponent, BrowserLocaleService, ButtonComponent, ButtonGroupComponent, CALLING_APP_HEADER, COMPONENT_INPUT_REGISTRY, CardComponent, CardWrapperComponent, CarouselComponent, ChartComponent, ChatBubbleComponent, CheckboxGroupComponent, CheckboxInputComponent, ClearableInputComponent, ClipboardService, ColComponent, ColorPickerInputComponent, CommentItemComponent, CommentsApiService, CommentsComponent, CommentsStore, CompactNumberPipe, ComponentInputComponent, ComponentStepperComponent, ConfigComponent, ConfirmComponent, ContextMenuComponent, CustomIconClass, CustomIconEditComponent, DEFAULT_AUDIENCE, DEFAULT_DENIAL, DEFAULT_DOC_ALIGN, DEFAULT_DOC_DENSITY, DEFAULT_DOC_VARIANT, DEFAULT_FILTER_RANGE_MODE, DEFAULT_FILTER_VARIANT, DEFAULT_NAV_PARAM, DEFAULT_NAV_SEGMENT, DEFAULT_SECTION_CHART_RANGES, DEFAULT_SIZE, DOCK_MIN_PAGE_REMAINDER, DOCS_FOLDER, DOC_ACTION_ICONS, DOC_ALIGNS, DOC_DENSITIES, DOC_EDIT_ACTIONS, DOC_TOOLBAR_GROUPS, DOC_VARIANTS, DashboardCardComponent, DateInputComponent, DatePickerComponent, DeviceService, DocComponent, DocEditorComponent, DomService, Domain, DotGridComponent, DragListDirective, DragListItemDirective, DraggableDirective, DropdownInputComponent, FILTER_GROUP_CONTEXT, FILTER_RANGE_MODES, FILTER_VARIANTS, FLEX_VARIANTS, FOLDER_PICK_LISTENER, FORM_ASSET_FOLDER, FileService, FileUploadDirective, FileUploadInputComponent, FlexComponent, FlexItemComponent, FormGroupComponent, FrameComponent, FreezeService, GRID_BREAKPOINTS, GetNavService, HOST_SESSION, HeaderComponent, HeatSwatchComponent, HighlightDirective, HttpService, HttpSharingClient, ICON_SOURCE, IS_DESIGN_MODE, IS_SIDE_PANEL, IconComponent, ImgComponent, InputType, InstrumentScoreComponent, InterceptorObservables, JumbotronComponent, KeyValueComponent, LAYOUT_ASSET_FOLDER, LOADING_ACTIONS_REF, LOGIN_COMPONENT, LOGIN_STORE, LOGO_GLYPH_MAX_BYTES, LanguageComponent, ListComponent, LogoComponent, LogoGlyphInputComponent, MAG_SOCKET_EVENT, MHeroColorDirective, MHeroComponent, MODAL_REF, MODAL_STORE_REF, MOUNT_STATIC_SEGMENT, MOUNT_TOKEN, MRefDirective, MStepComponent, MURL_PARAM, MURL_SEP, ManifestEnrichmentService, MarginDirective, MenuComponent, ModalDirective, ModalRef, ModalStore, MoneyPipe, MultiRangeInputComponent, MultiselectInputComponent, MurlUrlSerializer, NAV_DEFAULT_MURL, NAV_ID_SEP, NAV_MAIN_BUTTONS, NAV_SEGMENT_RE, NAV_STORE_REF, NAV_WC_COMPONENTS, NAV_WIDGET_MAP, NavComponent, NavDetailsComponent, NavHeaderComponent, NavMenuComponent, NavStore, NavTrailComponent, NothingComponent, NotificationElementComponent, NotificationGroupComponent, NotificationPopupComponent, NotificationService, NotificationStore, NotificationType, NotificationWidgetComponent, ONE_ASSET_BASE_URL, OPTIONS_SOURCE, OVERLAY_WIDGETS, OneApp, OptionsSourceDirective, OverlayBodyComponent, OverlayRef, OverlayService, PLATFORM_BUTTON_NAV_IDS, PLATFORM_EXTENSIBLE_NAV_IDS, PLATFORM_NAV_MAP, PLATFORM_ROOT_CHILDREN, PLUGIN_FALLBACK_LANG, PLUGIN_OUTPUT_EVENT, PLUGIN_SCREENS, PRICE_HELPERS, PRICE_LADDER_LEVELS, PRICE_LADDER_RULES, PRICE_RULES, PRICE_SCALE_RELATIONS, PaddingDirective, PaginationComponent, PanelComponent, PercentagePipe, PlaygroundComponent, PluginComponent, PluginInputComponent, PluginOutputComponent, PositionDirective, PriceLadderComponent, PriceLadderMarkComponent, PriceLadderSignalComponent, PwaInstallComponent, RECENT_SEARCH_LIMIT, REMOTE_BOOT_TIMEOUT_MS, REMOTE_PAGE_RELOAD, ROOT_NAV, RadioGroupComponent, RadioInputComponent, RangeInputComponent, RatingInputComponent, ReactiveElementComponent, RemoteComponent, RemoteLoaderService, ResizeElementComponent, RouteContainer, RowComponent, SCORE_TONE_COUNT, SEARCH_ANSWER_KEY, SEARCH_LABEL_KEY, SEARCH_QUERY, SEARCH_RESULTS_EVENT, SECTION_ACCORDION_GROUP, SECTION_CHART_CUSTOM_RANGE, SECTION_CHART_SCALES, SECTION_FORM_CONTEXT, SECTION_TABLE_VARIANTS, SHARED_ICONS, SHARING_CLIENT, SIZE_CONTEXT, SPACING_INWARD, SPLASH_ID, ScaleComponent, ScaleMarkComponent, ScaleRelationComponent, ScoreComponent, ScoreSetComponent, ScoreSetItemComponent, ScrollComponent, ScrollService, SearchPanelComponent, SearchStore, SearchUserPanelComponent, SectionAccordionDirective, SectionAccordionGroupDirective, SectionBackComponent, SectionBadgesComponent, SectionButtonGroupComponent, SectionCardComponent, SectionCarouselComponent, SectionChartComponent, SectionChartSeriesComponent, SectionComponent, SectionFilterComponent, SectionFilterGroupComponent, SectionFilterMenuComponent, SectionFilterPanelComponent, SectionFilterRangePanelComponent, SectionFooterComponent, SectionFormComponent, SectionFormItemComponent, SectionHeaderComponent, SectionHeroComponent, SectionPaginationComponent, SectionSearchComponent, SectionStepperComponent, SectionTableCellComponent, SectionTableComponent, SectionTableRowComponent, SectionTableSortDirection, SectionTableSortPipe, SectionTabsComponent, SectionToggleComponent, SectionToggleItemDirective, SelectableCardInputComponent, SelectorDirective, SettingsSearchBarComponent, SettingsSearchService, ShapeComponent, SharedStoreRegistry, SidePanelDirective, SignColorPipe, Size, SocketStore, SortComponent, StatComponent, StepComponent, StepperComponent, StepsComponent, StorageService, StrokeLinecap, StrokeLinejoin, SummaryComponent, SvgGeneratorComponent, SvgGeneratorService, SvgService, TOTAL_COLUMNS, TRANSLATION_SOURCE, TableComponent, TechnicalMeterComponent, TextInputComponent, TextOutputComponent, TextareaInputComponent, ThemeComponent, ThemeDataService, ThemeService, ThemeStore, TimeAgoPipe, TimelineComponent, ToListPipe, ToggleButtonComponent, ToggleInputComponent, ToggleRadioInputComponent, ToolTipDirective, TooltipComponent, TranslatePipe, TranslateService, TreeGridComponent, URL_SEP, USER_STORE_REF, USER_TAB_MAP, UniverseComponent, UserApiService, UserAvatarComponent, UserComponent, UserNavComponent, UserSettingsComponent, UserStore, WC_BUNDLE, WC_NAVIGATE_EVENT, WC_ROUTE_CHANGED_EVENT, WC_SEARCH_GROUPS, WIN_USER_TAB_HOOK, WIN_USER_TAB_KEY, WatermarkComponent, WcRouterStore, WrapperInputComponent, actionName, activeElementWithin, allowedCodes, anchorNavId, appColorBrand, appLogoShadowColor, appThemeColorFactory, applyColorsToElement, applyDocEdit, assetOptions, baseUnderHost, bootstrapMagApp, bootstrapPwaInstall, browserLocale, buildWcBaseUrl, calculateLuminance, calculateRanks, categoricalTone, cellText, checkDoc, checkFilterCondition, childNavId, claimDenial, classListSignal, coerceSize, cornerEdge, cornerSide, createLoadingState, createMap, createPlatformNavMap, createPluginElement, definePluginScreens, definedWcBundleOf, definedWcTierOf, deriveAvatarGradient, deriveContrastColor, deriveOppositeColor, derivePropertyName, docActionKey, docAssetCandidates, docProblemKey, docRemotePath, emailValidation, enumValue, escapeHtml, evaluate, evaluateBool, evaluateRelations, existsInMap, exposeScreens, exposedScreensOf, fieldBoolean, fieldNumber, fieldString, filterHoldsList, filterHoldsOneBound, filterHoldsOptions, filterHoldsRange, filterList, filterNumber, filterNumberList, filterOne, filterPanelOf, filterPanelWidth, filterRange, filterTreeGridRows, filterValueList, filterValues, flattenTreeGridRows, formatBadgeCount, formatGap, fullName, gapPct, generateClipPath, generateTransform, getClassList, getFromMap, getProperty, getScrollParent, getTierFromPreviewPath, getTreeGridRow, getUniqueId, getValue, hasErrorComputed, heatColor, heatShare, hexToRgb, hslToRgb, initMagmoniumApp, initialNotificationState, initialState, initials, injectAuthenticate, injectDefaultDenial, injectInstallApp, injectParentSize, injectScrollSticky, isBootRedirect, isButtonName, isCancelledComputed, isExtensiblePlatformNavId, isJson, isLadderRule, isLightAppColor, isLoadingComputed, isLocalhost, isNavCountConfig, isNavInstanceConfig, isNavMenuConfig, isNavRowsConfig, isNavVisibilityConfig, isPlatformNavId, isPlatformPanelNavId, isPriceRule, isReadableOn, isScoreStale, isSize, isTierPreview, isUrlLocalhost, isValidNavId, isValidNavSegment, isWebComponent, ladderLevelOf, ladderScale, ladderSignals, layoutLanes, linkToId, linkToNav, loadingActions, logoGlyphMaskUrl, mInterceptor, manualValidation, matchFieldValidation, matchMount, maxLengthValidation, maxValidation, mergePlatformNav, mergeUnique, mergeUniqueBy, mergeUniqueWith, minAgeValidation, minLengthValidation, minValidation, miniMarkInlineToHtml, miniMarkToHtml, mountFor, mountPatternProblem, mountPatternText, mountSegmentOf, mountTokenOf, navIdChain, navIdFor, navIdSegment, navIdToRoutePath, navIdToSegments, navParamOf, navTailMatcher, navToId, navVisibilityGuard, nextSectionTableSort, normalizeAppColor, normalizeAssetOptions, notExistsInMap, offsetOfLine, outletPathOf, outletSegmentsOf, paintAppColor, parentNavId, parseAddress, parseColor, parseKeys, parseMountPattern, parsePatternNames, patternValidation, patternsValidation, permissionRefusal, pickCount, pickSupportedLanguage, picksMembers, platformNavWidgets, pluginTag, presetDefaultOption, priceRelationsFor, privateGuard, processImageToSvg, provideAppContext, provideMagAppConfig, provideMagWcConfig, provideMagWcRoutes, provideModalComponents, provideMurlUrlSerializer, provideNavWidgets, provideOverlayWidgets, providePlatformNavWidgets, providePluginRuntime, provideSearch, provideSizeContext, provideUserTabs, publicGuard, readChartPoints, readFieldPatterns, readableAppColor, rebuildLogoGlyph, recordDefinedWcTier, registerSessionRenewal, remoteOutletRoute, renderAddress, renderDocument, requiredValidation, resolveConfigAsset, resolveIconSize, resolvePallet, resolvePatternRules, resolveSize, resolveSpacing, rgbToHex, rgbToHsl, rowHasChildren, samePatterns, scaleDomain, scoreBand, scoreStanding, sectionTableColumnId, sectionTableColumnWidths, sectionTableFrozenCount, segmentsToNavId, setInMap, setProperty, setTreeGridChildren, setWcLocalPort, setWcTier, settingsWidgets, shouldShowBadge, sortSectionTableRows, splashHtml, splitNavId, splitOnMatch, splitPath, spreadLabels, stringToColor, tailRouteOf, toAttrBool, toAttrNumber, toCssLength, toHostNavId, toLength, toLocalNavId, toggleGroup, toggleTreeGridRow, toggleUid, unfetchedPlatformNav, ungroupedDocActions, urlValidation, wcLocalBaseOf, wcTierOf, withLevel };
55486
56572
 
55487
56573
  //# sourceMappingURL=magmonium-one.mjs.map