@magmonium/one 0.4.78 → 0.4.80
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/i18n/af.json +4 -0
- package/assets/i18n/am.json +4 -0
- package/assets/i18n/ar.json +4 -0
- package/assets/i18n/as.json +4 -0
- package/assets/i18n/az.json +4 -0
- package/assets/i18n/ba.json +4 -0
- package/assets/i18n/be.json +4 -0
- package/assets/i18n/bg.json +4 -0
- package/assets/i18n/bn.json +4 -0
- package/assets/i18n/br.json +4 -0
- package/assets/i18n/brx.json +4 -0
- package/assets/i18n/bs.json +4 -0
- package/assets/i18n/ca.json +4 -0
- package/assets/i18n/ceb.json +4 -0
- package/assets/i18n/cnr.json +4 -0
- package/assets/i18n/co.json +4 -0
- package/assets/i18n/cs.json +4 -0
- package/assets/i18n/cy.json +4 -0
- package/assets/i18n/da.json +4 -0
- package/assets/i18n/de.json +4 -0
- package/assets/i18n/doi.json +4 -0
- package/assets/i18n/el.json +4 -0
- package/assets/i18n/en.json +44 -0
- package/assets/i18n/eo.json +4 -0
- package/assets/i18n/es.json +4 -0
- package/assets/i18n/et.json +4 -0
- package/assets/i18n/eu.json +4 -0
- package/assets/i18n/fa.json +4 -0
- package/assets/i18n/fi.json +4 -0
- package/assets/i18n/fr.json +4 -0
- package/assets/i18n/fy.json +4 -0
- package/assets/i18n/ga.json +4 -0
- package/assets/i18n/gd.json +4 -0
- package/assets/i18n/gl.json +4 -0
- package/assets/i18n/gu.json +4 -0
- package/assets/i18n/ha.json +4 -0
- package/assets/i18n/haw.json +4 -0
- package/assets/i18n/he.json +4 -0
- package/assets/i18n/hi.json +4 -0
- package/assets/i18n/hmn.json +4 -0
- package/assets/i18n/hr.json +4 -0
- package/assets/i18n/hu.json +4 -0
- package/assets/i18n/hy.json +4 -0
- package/assets/i18n/id.json +4 -0
- package/assets/i18n/ie.json +4 -0
- package/assets/i18n/ig.json +4 -0
- package/assets/i18n/ilo.json +4 -0
- package/assets/i18n/is.json +4 -0
- package/assets/i18n/it.json +4 -0
- package/assets/i18n/iw.json +4 -0
- package/assets/i18n/ja.json +4 -0
- package/assets/i18n/jw.json +4 -0
- package/assets/i18n/ka.json +4 -0
- package/assets/i18n/kk.json +4 -0
- package/assets/i18n/km.json +4 -0
- package/assets/i18n/kn.json +4 -0
- package/assets/i18n/ko.json +4 -0
- package/assets/i18n/kok.json +4 -0
- package/assets/i18n/ks.json +4 -0
- package/assets/i18n/ku.json +4 -0
- package/assets/i18n/ky.json +4 -0
- package/assets/i18n/la.json +4 -0
- package/assets/i18n/lb.json +4 -0
- package/assets/i18n/lo.json +4 -0
- package/assets/i18n/lt.json +4 -0
- package/assets/i18n/lv.json +4 -0
- package/assets/i18n/ma.json +4 -0
- package/assets/i18n/mai.json +4 -0
- package/assets/i18n/me.json +4 -0
- package/assets/i18n/mg.json +4 -0
- package/assets/i18n/mi.json +4 -0
- package/assets/i18n/mk.json +4 -0
- package/assets/i18n/ml.json +4 -0
- package/assets/i18n/mn.json +4 -0
- package/assets/i18n/mni.json +4 -0
- package/assets/i18n/mr.json +4 -0
- package/assets/i18n/ms.json +4 -0
- package/assets/i18n/mt.json +4 -0
- package/assets/i18n/my.json +4 -0
- package/assets/i18n/ne.json +4 -0
- package/assets/i18n/nl.json +4 -0
- package/assets/i18n/no.json +4 -0
- package/assets/i18n/ny.json +4 -0
- package/assets/i18n/or.json +4 -0
- package/assets/i18n/pa.json +4 -0
- package/assets/i18n/pl.json +4 -0
- package/assets/i18n/ps.json +4 -0
- package/assets/i18n/pt.json +4 -0
- package/assets/i18n/rm.json +4 -0
- package/assets/i18n/ro.json +4 -0
- package/assets/i18n/ru.json +4 -0
- package/assets/i18n/sa.json +4 -0
- package/assets/i18n/sat.json +4 -0
- package/assets/i18n/sc.json +4 -0
- package/assets/i18n/sd.json +4 -0
- package/assets/i18n/si.json +4 -0
- package/assets/i18n/sk.json +4 -0
- package/assets/i18n/sl.json +4 -0
- package/assets/i18n/sm.json +4 -0
- package/assets/i18n/sn.json +4 -0
- package/assets/i18n/so.json +4 -0
- package/assets/i18n/sq.json +4 -0
- package/assets/i18n/sr.json +4 -0
- package/assets/i18n/st.json +4 -0
- package/assets/i18n/su.json +4 -0
- package/assets/i18n/sv.json +4 -0
- package/assets/i18n/sw.json +4 -0
- package/assets/i18n/ta.json +4 -0
- package/assets/i18n/te.json +4 -0
- package/assets/i18n/tg.json +4 -0
- package/assets/i18n/th.json +4 -0
- package/assets/i18n/tl.json +4 -0
- package/assets/i18n/tr.json +4 -0
- package/assets/i18n/uk.json +4 -0
- package/assets/i18n/ur.json +4 -0
- package/assets/i18n/uz.json +4 -0
- package/assets/i18n/vi.json +4 -0
- package/assets/i18n/xh.json +4 -0
- package/assets/i18n/yi.json +4 -0
- package/assets/i18n/yo.json +4 -0
- package/assets/i18n/zh.json +4 -0
- package/assets/i18n/zu.json +4 -0
- package/fesm2022/magmonium-one.mjs +1024 -5
- package/fesm2022/magmonium-one.mjs.map +1 -1
- package/package.json +1 -1
- package/types/magmonium-one.d.ts +443 -4
|
@@ -33974,8 +33974,8 @@ var ScoreSetItemComponent = class ScoreSetItemComponent {
|
|
|
33974
33974
|
}
|
|
33975
33975
|
},
|
|
33976
33976
|
ngImport: i0,
|
|
33977
|
-
template: "@switch (shape()) {\n @case ('primary') {\n @if (set?.variant() === 'compact') {\n <span class=\"m-score-set__primary-name\">{{ model().name }}</span>\n <span class=\"m-score-set__primary-value\">{{ model().display }}</span>\n } @else {\n <span class=\"m-score-set__ring\" [style.--_fill]=\"model().value ?? 0\">\n
|
|
33978
|
-
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{position:relative;border-radius:.5em;cursor:pointer}:host:hover,:host:focus-visible{background:color-mix(in srgb,var(--_tone) 8%,transparent)}:host:focus-visible{outline:2px solid var(--_tone);outline-offset:-2px}:host(.is-stale){opacity:.6}:host(.is-no-data){--_tone: var(--m-score-set-no-data);color:var(--m-text-secondary)}:host(.is-primary){grid-column:1;grid-row:1/span var(--_rows, 1);display:flex;flex-direction:column;align-items:center;gap:.25em;padding:.4em}:host(.is-row){grid-column:2;display:grid;grid-template-columns:.6em 1fr auto auto;grid-template-areas:\"dot name value standing\" \"track track track track\";align-items:center;column-gap:.5em;row-gap:.3em;padding:.4em .5em}:host(.is-compact){display:flex;flex-direction:column;align-items:flex-start;gap:.1em;padding:.45em .7em;border-bottom:3px solid var(--_tone);background:var(--m-background)}:host(.is-compact.is-primary){background:color-mix(in srgb,var(--_tone) 14%,var(--m-background))}.m-score-set__ring{display:
|
|
33977
|
+
template: "@switch (shape()) {\n @case ('primary') {\n @if (set?.variant() === 'compact') {\n <span class=\"m-score-set__primary-name\">{{ model().name }}</span>\n <span class=\"m-score-set__primary-value\">{{ model().display }}</span>\n } @else {\n <span class=\"m-score-set__ring\" [style.--_fill]=\"model().value ?? 0\"></span>\n <span class=\"m-score-set__primary-value\">{{ model().display }}</span>\n <span class=\"m-score-set__primary-name\">{{ model().name }}</span>\n }\n @if (model().standing) {\n <span class=\"m-score-set__primary-standing\">{{ model().standing }}</span>\n }\n @if (set?.bandShown() && model().value !== null) {\n <span class=\"m-score-set__primary-band\">{{ model().bandText }}</span>\n }\n @if (set?.basis()) {\n <span class=\"m-score-set__primary-basis\">{{ set?.basis() }}</span>\n }\n }\n @case ('row') {\n <span class=\"m-score-set__row-dot\"></span>\n <span class=\"m-score-set__row-name\">{{ model().name }}</span>\n <span class=\"m-score-set__row-value\">{{ model().display }}</span>\n @if (model().standing) {\n <span class=\"m-score-set__row-standing\">{{ model().standing }}</span>\n }\n @if (set?.variant() !== 'compact') {\n <span class=\"m-score-set__row-track\">\n <span class=\"m-score-set__row-fill\" [style.width.%]=\"model().value ?? 0\"></span>\n </span>\n }\n }\n}\n@if (shape() !== 'none' && model().tip) {\n <span class=\"m-score-set__tip\" role=\"tooltip\" [id]=\"tipId\">\n <m-tooltip [text]=\"model().tip\" />\n </span>\n}\n",
|
|
33978
|
+
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{position:relative;border-radius:.5em;cursor:pointer;text-align:start}:host:hover,:host:focus-visible{background:color-mix(in srgb,var(--_tone) 8%,transparent)}:host:focus-visible{outline:2px solid var(--_tone);outline-offset:-2px}:host(.is-stale){opacity:.6}:host(.is-no-data){--_tone: var(--m-score-set-no-data);color:var(--m-text-secondary)}:host(.is-primary){grid-column:1;grid-row:1/span var(--_rows, 1);display:flex;flex-direction:column;align-items:center;gap:.25em;padding:.4em}:host(.is-row){grid-column:2;display:grid;grid-template-columns:.6em 1fr auto auto;grid-template-areas:\"dot name value standing\" \"track track track track\";align-items:center;column-gap:.5em;row-gap:.3em;padding:.4em .5em}:host(.is-compact){display:flex;flex-direction:column;align-items:flex-start;gap:.1em;padding:.45em .7em;border-bottom:3px solid var(--_tone);background:var(--m-background)}:host(.is-compact.is-primary){background:color-mix(in srgb,var(--_tone) 14%,var(--m-background))}.m-score-set__ring{display:block;width:6em;aspect-ratio:1;border-radius:50%;background:conic-gradient(var(--_tone) calc(var(--_fill) * 1%),var(--m-border) 0);-webkit-mask:radial-gradient(circle,transparent 0 calc(50% - .65em),#000 calc(50% - .6em));mask:radial-gradient(circle,transparent 0 calc(50% - .65em),#000 calc(50% - .6em))}.m-score-set__primary-value{margin-top:.15em;font-size:2.1em;font-weight:750;line-height:1}.m-score-set__primary-name{font-size:.75em;letter-spacing:.06em;text-transform:uppercase;color:var(--m-text-secondary)}.m-score-set__primary-standing{font-size:.8em;font-weight:600;color:var(--_tone)}.m-score-set__primary-band{font-size:.7em;font-weight:600;padding:.1em .6em;border-radius:99em;color:var(--_tone);background:color-mix(in srgb,var(--_tone) 18%,transparent)}.m-score-set__primary-basis{font-size:.7em;color:var(--m-text-secondary)}.m-score-set__row-dot{grid-area:dot;width:.55em;aspect-ratio:1;border-radius:50%;background:var(--_tone)}.m-score-set__row-name{grid-area:name;justify-self:start;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.m-score-set__row-value{grid-area:value;font-weight:650;font-variant-numeric:tabular-nums}.m-score-set__row-standing{grid-area:standing;font-size:.8em;color:var(--m-text-secondary)}.m-score-set__row-track{grid-area:track;height:.4em;border-radius:99em;overflow:hidden;background:var(--m-border)}.m-score-set__row-fill{display:block;height:100%;border-radius:inherit;background:var(--_tone)}.m-score-set__tip{position:absolute;z-index:2;top:100%;left:.5em;display:none}:host(:hover) .m-score-set__tip,:host(:focus-within) .m-score-set__tip{display:block}:host(.is-tip-dismissed) .m-score-set__tip{display:none}:host(.is-no-data) .m-score-set__row-track{background:repeating-linear-gradient(45deg,var(--m-border) 0 .25em,transparent .25em .5em)}:host(.is-compact) .m-score-set__row-dot{display:none}:host(.is-compact) .m-score-set__row-name,:host(.is-compact) .m-score-set__primary-name{order:-1;font-size:.7em;text-transform:none;letter-spacing:0;color:var(--m-text-secondary)}:host(.is-compact) .m-score-set__primary-value{font-size:1.6em;color:var(--_tone)}:host(.is-compact) .m-score-set__row-value{font-size:1.05em;color:var(--_tone)}:host(.is-compact) .m-score-set__row-standing{font-size:.7em}@container (max-width: 26em){:host(.is-primary),:host(.is-row){grid-column:1;grid-row:auto}}\n"],
|
|
33979
33979
|
dependencies: [{
|
|
33980
33980
|
kind: "component",
|
|
33981
33981
|
type: TooltipComponent,
|
|
@@ -34016,8 +34016,8 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
34016
34016
|
"(keydown)": "onKeydown($event)",
|
|
34017
34017
|
"(focusout)": "tipDismissed.set(false)"
|
|
34018
34018
|
},
|
|
34019
|
-
template: "@switch (shape()) {\n @case ('primary') {\n @if (set?.variant() === 'compact') {\n <span class=\"m-score-set__primary-name\">{{ model().name }}</span>\n <span class=\"m-score-set__primary-value\">{{ model().display }}</span>\n } @else {\n <span class=\"m-score-set__ring\" [style.--_fill]=\"model().value ?? 0\">\n
|
|
34020
|
-
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{position:relative;border-radius:.5em;cursor:pointer}:host:hover,:host:focus-visible{background:color-mix(in srgb,var(--_tone) 8%,transparent)}:host:focus-visible{outline:2px solid var(--_tone);outline-offset:-2px}:host(.is-stale){opacity:.6}:host(.is-no-data){--_tone: var(--m-score-set-no-data);color:var(--m-text-secondary)}:host(.is-primary){grid-column:1;grid-row:1/span var(--_rows, 1);display:flex;flex-direction:column;align-items:center;gap:.25em;padding:.4em}:host(.is-row){grid-column:2;display:grid;grid-template-columns:.6em 1fr auto auto;grid-template-areas:\"dot name value standing\" \"track track track track\";align-items:center;column-gap:.5em;row-gap:.3em;padding:.4em .5em}:host(.is-compact){display:flex;flex-direction:column;align-items:flex-start;gap:.1em;padding:.45em .7em;border-bottom:3px solid var(--_tone);background:var(--m-background)}:host(.is-compact.is-primary){background:color-mix(in srgb,var(--_tone) 14%,var(--m-background))}.m-score-set__ring{display:
|
|
34019
|
+
template: "@switch (shape()) {\n @case ('primary') {\n @if (set?.variant() === 'compact') {\n <span class=\"m-score-set__primary-name\">{{ model().name }}</span>\n <span class=\"m-score-set__primary-value\">{{ model().display }}</span>\n } @else {\n <span class=\"m-score-set__ring\" [style.--_fill]=\"model().value ?? 0\"></span>\n <span class=\"m-score-set__primary-value\">{{ model().display }}</span>\n <span class=\"m-score-set__primary-name\">{{ model().name }}</span>\n }\n @if (model().standing) {\n <span class=\"m-score-set__primary-standing\">{{ model().standing }}</span>\n }\n @if (set?.bandShown() && model().value !== null) {\n <span class=\"m-score-set__primary-band\">{{ model().bandText }}</span>\n }\n @if (set?.basis()) {\n <span class=\"m-score-set__primary-basis\">{{ set?.basis() }}</span>\n }\n }\n @case ('row') {\n <span class=\"m-score-set__row-dot\"></span>\n <span class=\"m-score-set__row-name\">{{ model().name }}</span>\n <span class=\"m-score-set__row-value\">{{ model().display }}</span>\n @if (model().standing) {\n <span class=\"m-score-set__row-standing\">{{ model().standing }}</span>\n }\n @if (set?.variant() !== 'compact') {\n <span class=\"m-score-set__row-track\">\n <span class=\"m-score-set__row-fill\" [style.width.%]=\"model().value ?? 0\"></span>\n </span>\n }\n }\n}\n@if (shape() !== 'none' && model().tip) {\n <span class=\"m-score-set__tip\" role=\"tooltip\" [id]=\"tipId\">\n <m-tooltip [text]=\"model().tip\" />\n </span>\n}\n",
|
|
34020
|
+
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{position:relative;border-radius:.5em;cursor:pointer;text-align:start}:host:hover,:host:focus-visible{background:color-mix(in srgb,var(--_tone) 8%,transparent)}:host:focus-visible{outline:2px solid var(--_tone);outline-offset:-2px}:host(.is-stale){opacity:.6}:host(.is-no-data){--_tone: var(--m-score-set-no-data);color:var(--m-text-secondary)}:host(.is-primary){grid-column:1;grid-row:1/span var(--_rows, 1);display:flex;flex-direction:column;align-items:center;gap:.25em;padding:.4em}:host(.is-row){grid-column:2;display:grid;grid-template-columns:.6em 1fr auto auto;grid-template-areas:\"dot name value standing\" \"track track track track\";align-items:center;column-gap:.5em;row-gap:.3em;padding:.4em .5em}:host(.is-compact){display:flex;flex-direction:column;align-items:flex-start;gap:.1em;padding:.45em .7em;border-bottom:3px solid var(--_tone);background:var(--m-background)}:host(.is-compact.is-primary){background:color-mix(in srgb,var(--_tone) 14%,var(--m-background))}.m-score-set__ring{display:block;width:6em;aspect-ratio:1;border-radius:50%;background:conic-gradient(var(--_tone) calc(var(--_fill) * 1%),var(--m-border) 0);-webkit-mask:radial-gradient(circle,transparent 0 calc(50% - .65em),#000 calc(50% - .6em));mask:radial-gradient(circle,transparent 0 calc(50% - .65em),#000 calc(50% - .6em))}.m-score-set__primary-value{margin-top:.15em;font-size:2.1em;font-weight:750;line-height:1}.m-score-set__primary-name{font-size:.75em;letter-spacing:.06em;text-transform:uppercase;color:var(--m-text-secondary)}.m-score-set__primary-standing{font-size:.8em;font-weight:600;color:var(--_tone)}.m-score-set__primary-band{font-size:.7em;font-weight:600;padding:.1em .6em;border-radius:99em;color:var(--_tone);background:color-mix(in srgb,var(--_tone) 18%,transparent)}.m-score-set__primary-basis{font-size:.7em;color:var(--m-text-secondary)}.m-score-set__row-dot{grid-area:dot;width:.55em;aspect-ratio:1;border-radius:50%;background:var(--_tone)}.m-score-set__row-name{grid-area:name;justify-self:start;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.m-score-set__row-value{grid-area:value;font-weight:650;font-variant-numeric:tabular-nums}.m-score-set__row-standing{grid-area:standing;font-size:.8em;color:var(--m-text-secondary)}.m-score-set__row-track{grid-area:track;height:.4em;border-radius:99em;overflow:hidden;background:var(--m-border)}.m-score-set__row-fill{display:block;height:100%;border-radius:inherit;background:var(--_tone)}.m-score-set__tip{position:absolute;z-index:2;top:100%;left:.5em;display:none}:host(:hover) .m-score-set__tip,:host(:focus-within) .m-score-set__tip{display:block}:host(.is-tip-dismissed) .m-score-set__tip{display:none}:host(.is-no-data) .m-score-set__row-track{background:repeating-linear-gradient(45deg,var(--m-border) 0 .25em,transparent .25em .5em)}:host(.is-compact) .m-score-set__row-dot{display:none}:host(.is-compact) .m-score-set__row-name,:host(.is-compact) .m-score-set__primary-name{order:-1;font-size:.7em;text-transform:none;letter-spacing:0;color:var(--m-text-secondary)}:host(.is-compact) .m-score-set__primary-value{font-size:1.6em;color:var(--_tone)}:host(.is-compact) .m-score-set__row-value{font-size:1.05em;color:var(--_tone)}:host(.is-compact) .m-score-set__row-standing{font-size:.7em}@container (max-width: 26em){:host(.is-primary),:host(.is-row){grid-column:1;grid-row:auto}}\n"]
|
|
34021
34021
|
}]
|
|
34022
34022
|
}],
|
|
34023
34023
|
propDecorators: {
|
|
@@ -34286,6 +34286,1025 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
34286
34286
|
}]
|
|
34287
34287
|
}
|
|
34288
34288
|
});
|
|
34289
|
+
const gapPct = (level, value) => (level / value - 1) * 100;
|
|
34290
|
+
const formatGap = (gap) => `${gap > 0 ? "+" : gap < 0 ? "−" : ""}${Math.abs(gap).toFixed(1)}%`;
|
|
34291
|
+
const PAD = .04;
|
|
34292
|
+
const ladderScale = ({ value, levels, forward = [], maxSpanPct }) => {
|
|
34293
|
+
const within = (v) => Math.abs(gapPct(v, value)) <= maxSpanPct;
|
|
34294
|
+
const values = [
|
|
34295
|
+
value,
|
|
34296
|
+
...levels,
|
|
34297
|
+
...forward.filter(within)
|
|
34298
|
+
];
|
|
34299
|
+
const min = Math.min(...values);
|
|
34300
|
+
const max = Math.max(...values);
|
|
34301
|
+
const span = max - min || Math.abs(max) * .02 || 1;
|
|
34302
|
+
const lo = max === min ? min - span / 2 : min - span * PAD;
|
|
34303
|
+
const width = max === min ? span : span * 1.08;
|
|
34304
|
+
const pos = (v) => (v - lo) / width * 100;
|
|
34305
|
+
return {
|
|
34306
|
+
pos,
|
|
34307
|
+
within,
|
|
34308
|
+
clamp: (v) => Math.max(0, Math.min(100, pos(v)))
|
|
34309
|
+
};
|
|
34310
|
+
};
|
|
34311
|
+
const layoutLanes = (items, minGapPx) => {
|
|
34312
|
+
const labels = [];
|
|
34313
|
+
const last = [null, null];
|
|
34314
|
+
for (const item of [...items].sort((a, b) => a.x - b.x)) {
|
|
34315
|
+
const lane = [0, 1].find((l) => !last[l] || item.x - last[l].x >= minGapPx);
|
|
34316
|
+
if (lane !== void 0) {
|
|
34317
|
+
const label = {
|
|
34318
|
+
lane,
|
|
34319
|
+
x: item.x,
|
|
34320
|
+
keys: [item.key]
|
|
34321
|
+
};
|
|
34322
|
+
labels.push(label);
|
|
34323
|
+
last[lane] = label;
|
|
34324
|
+
continue;
|
|
34325
|
+
}
|
|
34326
|
+
const [a, b] = last;
|
|
34327
|
+
(Math.abs(a.x - item.x) <= Math.abs(b.x - item.x) ? a : b).keys.push(item.key);
|
|
34328
|
+
}
|
|
34329
|
+
return labels;
|
|
34330
|
+
};
|
|
34331
|
+
const PRICE_LADDER_RULES = [
|
|
34332
|
+
"golden-cross",
|
|
34333
|
+
"death-cross",
|
|
34334
|
+
"death-cross-near",
|
|
34335
|
+
"golden-cross-near",
|
|
34336
|
+
"bullish-alignment",
|
|
34337
|
+
"bearish-alignment",
|
|
34338
|
+
"strongly-bullish",
|
|
34339
|
+
"bullish-support",
|
|
34340
|
+
"recovering",
|
|
34341
|
+
"bearish-pressure",
|
|
34342
|
+
"stretched",
|
|
34343
|
+
"far-below-sma-200",
|
|
34344
|
+
"averages-converging",
|
|
34345
|
+
"52w-breakout",
|
|
34346
|
+
"near-52w-high",
|
|
34347
|
+
"new-52w-low",
|
|
34348
|
+
"near-52w-low",
|
|
34349
|
+
"forecast-against-trend",
|
|
34350
|
+
"forecast-above-52w-high"
|
|
34351
|
+
];
|
|
34352
|
+
const CROSS_NEAR_PCT = 1;
|
|
34353
|
+
const STRETCHED_PCT = 20;
|
|
34354
|
+
const SQUEEZE_PCT = 3;
|
|
34355
|
+
const NEAR_BOUND_PCT = 3;
|
|
34356
|
+
const usable = (v) => typeof v === "number" && Number.isFinite(v) && v > 0;
|
|
34357
|
+
const ladderSignals = (levels, symbol = "₹") => {
|
|
34358
|
+
const { value: v, sma10: s10, sma50: s50, sma100: s100, sma200: s200, low52w: lo, high52w: hi } = levels;
|
|
34359
|
+
if (!usable(v)) return [];
|
|
34360
|
+
const money = (n) => `${symbol}${n.toLocaleString("en-IN", { maximumFractionDigits: 2 })}`;
|
|
34361
|
+
const out = [];
|
|
34362
|
+
const add = (rule, tone, params = {}) => out.push({
|
|
34363
|
+
rule,
|
|
34364
|
+
tone,
|
|
34365
|
+
params
|
|
34366
|
+
});
|
|
34367
|
+
if (usable(s50) && usable(s200)) {
|
|
34368
|
+
const gap = gapPct(s50, s200);
|
|
34369
|
+
if (gap >= 0) add("golden-cross", "gold", { gap: formatGap(gap) });
|
|
34370
|
+
else add("death-cross", "down", { gap: formatGap(gap) });
|
|
34371
|
+
if (Math.abs(gap) < CROSS_NEAR_PCT) add(gap >= 0 ? "death-cross-near" : "golden-cross-near", "warn", { gap: formatGap(Math.abs(gap)) });
|
|
34372
|
+
}
|
|
34373
|
+
const stack = [
|
|
34374
|
+
v,
|
|
34375
|
+
s10,
|
|
34376
|
+
s50,
|
|
34377
|
+
s100,
|
|
34378
|
+
s200
|
|
34379
|
+
];
|
|
34380
|
+
if (stack.every(usable)) {
|
|
34381
|
+
const nums = stack;
|
|
34382
|
+
if (nums.every((x, i) => i === 0 || nums[i - 1] > x)) add("bullish-alignment", "up");
|
|
34383
|
+
else if (nums.every((x, i) => i === 0 || nums[i - 1] < x)) add("bearish-alignment", "down");
|
|
34384
|
+
}
|
|
34385
|
+
if (usable(s50) && usable(s200)) {
|
|
34386
|
+
const above50 = v > s50;
|
|
34387
|
+
const above200 = v > s200;
|
|
34388
|
+
if (above50 && above200) add("strongly-bullish", "up");
|
|
34389
|
+
else if (above200) add("bullish-support", "up");
|
|
34390
|
+
else if (above50) add("recovering", "neutral");
|
|
34391
|
+
else add("bearish-pressure", "down");
|
|
34392
|
+
}
|
|
34393
|
+
if (usable(s200)) {
|
|
34394
|
+
const gap = gapPct(v, s200);
|
|
34395
|
+
if (gap > STRETCHED_PCT) add("stretched", "warn", { gap: formatGap(gap) });
|
|
34396
|
+
if (gap < -20) add("far-below-sma-200", "down", { gap: formatGap(gap) });
|
|
34397
|
+
}
|
|
34398
|
+
const smas = [
|
|
34399
|
+
s10,
|
|
34400
|
+
s50,
|
|
34401
|
+
s100,
|
|
34402
|
+
s200
|
|
34403
|
+
].filter(usable);
|
|
34404
|
+
if (smas.length >= 3) {
|
|
34405
|
+
const spread = gapPct(Math.max(...smas), Math.min(...smas));
|
|
34406
|
+
if (spread < SQUEEZE_PCT) add("averages-converging", "warn", { spread: `${spread.toFixed(1)}%` });
|
|
34407
|
+
}
|
|
34408
|
+
if (usable(lo) && usable(hi)) {
|
|
34409
|
+
if (v >= hi) add("52w-breakout", "up", { level: money(hi) });
|
|
34410
|
+
else if (gapPct(hi, v) < NEAR_BOUND_PCT) add("near-52w-high", "up", {
|
|
34411
|
+
gap: formatGap(gapPct(hi, v)),
|
|
34412
|
+
level: money(hi)
|
|
34413
|
+
});
|
|
34414
|
+
if (v <= lo) add("new-52w-low", "down", { level: money(lo) });
|
|
34415
|
+
else if (gapPct(v, lo) < NEAR_BOUND_PCT) add("near-52w-low", "down", {
|
|
34416
|
+
gap: formatGap(gapPct(v, lo)),
|
|
34417
|
+
level: money(lo)
|
|
34418
|
+
});
|
|
34419
|
+
}
|
|
34420
|
+
const target = levels.target;
|
|
34421
|
+
if (usable(target)) {
|
|
34422
|
+
const gap = gapPct(target, v);
|
|
34423
|
+
const has = (...rules) => out.some((s) => rules.includes(s.rule));
|
|
34424
|
+
if (gap > 0 && has("death-cross", "bearish-alignment") || gap < 0 && has("golden-cross", "bullish-alignment")) add("forecast-against-trend", "warn", { gap: formatGap(gap) });
|
|
34425
|
+
if (usable(hi) && target > hi) add("forecast-above-52w-high", "neutral", { level: money(hi) });
|
|
34426
|
+
}
|
|
34427
|
+
return out;
|
|
34428
|
+
};
|
|
34429
|
+
const isLadderRule = (name) => PRICE_LADDER_RULES.includes(name);
|
|
34430
|
+
const PRICE_LADDER_LEVELS = [
|
|
34431
|
+
{
|
|
34432
|
+
key: "sma10",
|
|
34433
|
+
label: "sma-10",
|
|
34434
|
+
kind: "level",
|
|
34435
|
+
rank: 1
|
|
34436
|
+
},
|
|
34437
|
+
{
|
|
34438
|
+
key: "sma50",
|
|
34439
|
+
label: "sma-50",
|
|
34440
|
+
kind: "level",
|
|
34441
|
+
rank: 2
|
|
34442
|
+
},
|
|
34443
|
+
{
|
|
34444
|
+
key: "sma100",
|
|
34445
|
+
label: "sma-100",
|
|
34446
|
+
kind: "level",
|
|
34447
|
+
rank: 3
|
|
34448
|
+
},
|
|
34449
|
+
{
|
|
34450
|
+
key: "sma200",
|
|
34451
|
+
label: "sma-200",
|
|
34452
|
+
kind: "level",
|
|
34453
|
+
rank: 4
|
|
34454
|
+
},
|
|
34455
|
+
{
|
|
34456
|
+
key: "ema10",
|
|
34457
|
+
label: "ema-10",
|
|
34458
|
+
kind: "level",
|
|
34459
|
+
rank: 1
|
|
34460
|
+
},
|
|
34461
|
+
{
|
|
34462
|
+
key: "ema50",
|
|
34463
|
+
label: "ema-50",
|
|
34464
|
+
kind: "level",
|
|
34465
|
+
rank: 2
|
|
34466
|
+
},
|
|
34467
|
+
{
|
|
34468
|
+
key: "ema100",
|
|
34469
|
+
label: "ema-100",
|
|
34470
|
+
kind: "level",
|
|
34471
|
+
rank: 3
|
|
34472
|
+
},
|
|
34473
|
+
{
|
|
34474
|
+
key: "ema200",
|
|
34475
|
+
label: "ema-200",
|
|
34476
|
+
kind: "level",
|
|
34477
|
+
rank: 4
|
|
34478
|
+
},
|
|
34479
|
+
{
|
|
34480
|
+
key: "low52w",
|
|
34481
|
+
label: "52w-low",
|
|
34482
|
+
kind: "bound",
|
|
34483
|
+
rank: 1
|
|
34484
|
+
},
|
|
34485
|
+
{
|
|
34486
|
+
key: "high52w",
|
|
34487
|
+
label: "52w-high",
|
|
34488
|
+
kind: "bound",
|
|
34489
|
+
rank: 1
|
|
34490
|
+
},
|
|
34491
|
+
{
|
|
34492
|
+
key: "current",
|
|
34493
|
+
label: "current-price",
|
|
34494
|
+
kind: "current",
|
|
34495
|
+
rank: 1
|
|
34496
|
+
},
|
|
34497
|
+
{
|
|
34498
|
+
key: "forecast",
|
|
34499
|
+
label: "model-forecast",
|
|
34500
|
+
kind: "forecast",
|
|
34501
|
+
rank: 1
|
|
34502
|
+
}
|
|
34503
|
+
];
|
|
34504
|
+
const ladderLevelOf = (key) => PRICE_LADDER_LEVELS.find((l) => l.key === key);
|
|
34505
|
+
var PriceLadderMarkComponent = class PriceLadderMarkComponent {
|
|
34506
|
+
key = input("", ...ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []);
|
|
34507
|
+
label = input("", ...ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []);
|
|
34508
|
+
value = input(null, ...ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []);
|
|
34509
|
+
kind = input(void 0, ...ngDevMode ? [{ debugName: "kind" }] : /* istanbul ignore next */ []);
|
|
34510
|
+
rank = input(void 0, ...ngDevMode ? [{ debugName: "rank" }] : /* istanbul ignore next */ []);
|
|
34511
|
+
note = input(void 0, ...ngDevMode ? [{ debugName: "note" }] : /* istanbul ignore next */ []);
|
|
34512
|
+
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
34513
|
+
minVersion: "12.0.0",
|
|
34514
|
+
version: "22.2.1",
|
|
34515
|
+
ngImport: i0,
|
|
34516
|
+
type: PriceLadderMarkComponent,
|
|
34517
|
+
deps: [],
|
|
34518
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
34519
|
+
});
|
|
34520
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({
|
|
34521
|
+
minVersion: "17.1.0",
|
|
34522
|
+
version: "22.2.1",
|
|
34523
|
+
type: PriceLadderMarkComponent,
|
|
34524
|
+
isStandalone: true,
|
|
34525
|
+
selector: "m-price-ladder-mark",
|
|
34526
|
+
inputs: {
|
|
34527
|
+
key: {
|
|
34528
|
+
classPropertyName: "key",
|
|
34529
|
+
publicName: "key",
|
|
34530
|
+
isSignal: true,
|
|
34531
|
+
isRequired: false,
|
|
34532
|
+
transformFunction: null
|
|
34533
|
+
},
|
|
34534
|
+
label: {
|
|
34535
|
+
classPropertyName: "label",
|
|
34536
|
+
publicName: "label",
|
|
34537
|
+
isSignal: true,
|
|
34538
|
+
isRequired: false,
|
|
34539
|
+
transformFunction: null
|
|
34540
|
+
},
|
|
34541
|
+
value: {
|
|
34542
|
+
classPropertyName: "value",
|
|
34543
|
+
publicName: "value",
|
|
34544
|
+
isSignal: true,
|
|
34545
|
+
isRequired: false,
|
|
34546
|
+
transformFunction: null
|
|
34547
|
+
},
|
|
34548
|
+
kind: {
|
|
34549
|
+
classPropertyName: "kind",
|
|
34550
|
+
publicName: "kind",
|
|
34551
|
+
isSignal: true,
|
|
34552
|
+
isRequired: false,
|
|
34553
|
+
transformFunction: null
|
|
34554
|
+
},
|
|
34555
|
+
rank: {
|
|
34556
|
+
classPropertyName: "rank",
|
|
34557
|
+
publicName: "rank",
|
|
34558
|
+
isSignal: true,
|
|
34559
|
+
isRequired: false,
|
|
34560
|
+
transformFunction: null
|
|
34561
|
+
},
|
|
34562
|
+
note: {
|
|
34563
|
+
classPropertyName: "note",
|
|
34564
|
+
publicName: "note",
|
|
34565
|
+
isSignal: true,
|
|
34566
|
+
isRequired: false,
|
|
34567
|
+
transformFunction: null
|
|
34568
|
+
}
|
|
34569
|
+
},
|
|
34570
|
+
host: { styleAttribute: "display: none" },
|
|
34571
|
+
ngImport: i0,
|
|
34572
|
+
template: "",
|
|
34573
|
+
isInline: true,
|
|
34574
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
34575
|
+
});
|
|
34576
|
+
};
|
|
34577
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
34578
|
+
minVersion: "12.0.0",
|
|
34579
|
+
version: "22.2.1",
|
|
34580
|
+
ngImport: i0,
|
|
34581
|
+
type: PriceLadderMarkComponent,
|
|
34582
|
+
decorators: [{
|
|
34583
|
+
type: Component,
|
|
34584
|
+
args: [{
|
|
34585
|
+
selector: "m-price-ladder-mark",
|
|
34586
|
+
template: "",
|
|
34587
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
34588
|
+
host: { style: "display: none" }
|
|
34589
|
+
}]
|
|
34590
|
+
}],
|
|
34591
|
+
propDecorators: {
|
|
34592
|
+
key: [{
|
|
34593
|
+
type: i0.Input,
|
|
34594
|
+
args: [{
|
|
34595
|
+
isSignal: true,
|
|
34596
|
+
alias: "key",
|
|
34597
|
+
required: false
|
|
34598
|
+
}]
|
|
34599
|
+
}],
|
|
34600
|
+
label: [{
|
|
34601
|
+
type: i0.Input,
|
|
34602
|
+
args: [{
|
|
34603
|
+
isSignal: true,
|
|
34604
|
+
alias: "label",
|
|
34605
|
+
required: false
|
|
34606
|
+
}]
|
|
34607
|
+
}],
|
|
34608
|
+
value: [{
|
|
34609
|
+
type: i0.Input,
|
|
34610
|
+
args: [{
|
|
34611
|
+
isSignal: true,
|
|
34612
|
+
alias: "value",
|
|
34613
|
+
required: false
|
|
34614
|
+
}]
|
|
34615
|
+
}],
|
|
34616
|
+
kind: [{
|
|
34617
|
+
type: i0.Input,
|
|
34618
|
+
args: [{
|
|
34619
|
+
isSignal: true,
|
|
34620
|
+
alias: "kind",
|
|
34621
|
+
required: false
|
|
34622
|
+
}]
|
|
34623
|
+
}],
|
|
34624
|
+
rank: [{
|
|
34625
|
+
type: i0.Input,
|
|
34626
|
+
args: [{
|
|
34627
|
+
isSignal: true,
|
|
34628
|
+
alias: "rank",
|
|
34629
|
+
required: false
|
|
34630
|
+
}]
|
|
34631
|
+
}],
|
|
34632
|
+
note: [{
|
|
34633
|
+
type: i0.Input,
|
|
34634
|
+
args: [{
|
|
34635
|
+
isSignal: true,
|
|
34636
|
+
alias: "note",
|
|
34637
|
+
required: false
|
|
34638
|
+
}]
|
|
34639
|
+
}]
|
|
34640
|
+
}
|
|
34641
|
+
});
|
|
34642
|
+
var PriceLadderSignalComponent = class PriceLadderSignalComponent {
|
|
34643
|
+
key = input("", ...ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []);
|
|
34644
|
+
rule = input(void 0, ...ngDevMode ? [{ debugName: "rule" }] : /* istanbul ignore next */ []);
|
|
34645
|
+
label = input("", ...ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []);
|
|
34646
|
+
tone = input("neutral", ...ngDevMode ? [{ debugName: "tone" }] : /* istanbul ignore next */ []);
|
|
34647
|
+
detail = input("", ...ngDevMode ? [{ debugName: "detail" }] : /* istanbul ignore next */ []);
|
|
34648
|
+
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
34649
|
+
minVersion: "12.0.0",
|
|
34650
|
+
version: "22.2.1",
|
|
34651
|
+
ngImport: i0,
|
|
34652
|
+
type: PriceLadderSignalComponent,
|
|
34653
|
+
deps: [],
|
|
34654
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
34655
|
+
});
|
|
34656
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({
|
|
34657
|
+
minVersion: "17.1.0",
|
|
34658
|
+
version: "22.2.1",
|
|
34659
|
+
type: PriceLadderSignalComponent,
|
|
34660
|
+
isStandalone: true,
|
|
34661
|
+
selector: "m-price-ladder-signal",
|
|
34662
|
+
inputs: {
|
|
34663
|
+
key: {
|
|
34664
|
+
classPropertyName: "key",
|
|
34665
|
+
publicName: "key",
|
|
34666
|
+
isSignal: true,
|
|
34667
|
+
isRequired: false,
|
|
34668
|
+
transformFunction: null
|
|
34669
|
+
},
|
|
34670
|
+
rule: {
|
|
34671
|
+
classPropertyName: "rule",
|
|
34672
|
+
publicName: "rule",
|
|
34673
|
+
isSignal: true,
|
|
34674
|
+
isRequired: false,
|
|
34675
|
+
transformFunction: null
|
|
34676
|
+
},
|
|
34677
|
+
label: {
|
|
34678
|
+
classPropertyName: "label",
|
|
34679
|
+
publicName: "label",
|
|
34680
|
+
isSignal: true,
|
|
34681
|
+
isRequired: false,
|
|
34682
|
+
transformFunction: null
|
|
34683
|
+
},
|
|
34684
|
+
tone: {
|
|
34685
|
+
classPropertyName: "tone",
|
|
34686
|
+
publicName: "tone",
|
|
34687
|
+
isSignal: true,
|
|
34688
|
+
isRequired: false,
|
|
34689
|
+
transformFunction: null
|
|
34690
|
+
},
|
|
34691
|
+
detail: {
|
|
34692
|
+
classPropertyName: "detail",
|
|
34693
|
+
publicName: "detail",
|
|
34694
|
+
isSignal: true,
|
|
34695
|
+
isRequired: false,
|
|
34696
|
+
transformFunction: null
|
|
34697
|
+
}
|
|
34698
|
+
},
|
|
34699
|
+
host: { styleAttribute: "display: none" },
|
|
34700
|
+
ngImport: i0,
|
|
34701
|
+
template: "",
|
|
34702
|
+
isInline: true,
|
|
34703
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
34704
|
+
});
|
|
34705
|
+
};
|
|
34706
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
34707
|
+
minVersion: "12.0.0",
|
|
34708
|
+
version: "22.2.1",
|
|
34709
|
+
ngImport: i0,
|
|
34710
|
+
type: PriceLadderSignalComponent,
|
|
34711
|
+
decorators: [{
|
|
34712
|
+
type: Component,
|
|
34713
|
+
args: [{
|
|
34714
|
+
selector: "m-price-ladder-signal",
|
|
34715
|
+
template: "",
|
|
34716
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
34717
|
+
host: { style: "display: none" }
|
|
34718
|
+
}]
|
|
34719
|
+
}],
|
|
34720
|
+
propDecorators: {
|
|
34721
|
+
key: [{
|
|
34722
|
+
type: i0.Input,
|
|
34723
|
+
args: [{
|
|
34724
|
+
isSignal: true,
|
|
34725
|
+
alias: "key",
|
|
34726
|
+
required: false
|
|
34727
|
+
}]
|
|
34728
|
+
}],
|
|
34729
|
+
rule: [{
|
|
34730
|
+
type: i0.Input,
|
|
34731
|
+
args: [{
|
|
34732
|
+
isSignal: true,
|
|
34733
|
+
alias: "rule",
|
|
34734
|
+
required: false
|
|
34735
|
+
}]
|
|
34736
|
+
}],
|
|
34737
|
+
label: [{
|
|
34738
|
+
type: i0.Input,
|
|
34739
|
+
args: [{
|
|
34740
|
+
isSignal: true,
|
|
34741
|
+
alias: "label",
|
|
34742
|
+
required: false
|
|
34743
|
+
}]
|
|
34744
|
+
}],
|
|
34745
|
+
tone: [{
|
|
34746
|
+
type: i0.Input,
|
|
34747
|
+
args: [{
|
|
34748
|
+
isSignal: true,
|
|
34749
|
+
alias: "tone",
|
|
34750
|
+
required: false
|
|
34751
|
+
}]
|
|
34752
|
+
}],
|
|
34753
|
+
detail: [{
|
|
34754
|
+
type: i0.Input,
|
|
34755
|
+
args: [{
|
|
34756
|
+
isSignal: true,
|
|
34757
|
+
alias: "detail",
|
|
34758
|
+
required: false
|
|
34759
|
+
}]
|
|
34760
|
+
}]
|
|
34761
|
+
}
|
|
34762
|
+
});
|
|
34763
|
+
const LIST_BELOW_PX = 360;
|
|
34764
|
+
const FALLBACK_PX = 640;
|
|
34765
|
+
const LABEL_GAP_PX = 64;
|
|
34766
|
+
const price = (v) => typeof v === "number" && Number.isFinite(v) && v > 0 ? v : null;
|
|
34767
|
+
var PriceLadderComponent = class PriceLadderComponent {
|
|
34768
|
+
value = input(null, ...ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []);
|
|
34769
|
+
valueLabel = input("current-price", ...ngDevMode ? [{ debugName: "valueLabel" }] : /* istanbul ignore next */ []);
|
|
34770
|
+
target = input(null, ...ngDevMode ? [{ debugName: "target" }] : /* istanbul ignore next */ []);
|
|
34771
|
+
targetLow = input(null, ...ngDevMode ? [{ debugName: "targetLow" }] : /* istanbul ignore next */ []);
|
|
34772
|
+
targetHigh = input(null, ...ngDevMode ? [{ debugName: "targetHigh" }] : /* istanbul ignore next */ []);
|
|
34773
|
+
targetLabel = input("model-forecast", ...ngDevMode ? [{ debugName: "targetLabel" }] : /* istanbul ignore next */ []);
|
|
34774
|
+
targetNote = input("", ...ngDevMode ? [{ debugName: "targetNote" }] : /* istanbul ignore next */ []);
|
|
34775
|
+
maxSpanPct = input(60, ...ngDevMode ? [{ debugName: "maxSpanPct" }] : /* istanbul ignore next */ []);
|
|
34776
|
+
variant = input("auto", ...ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []);
|
|
34777
|
+
symbol = input("₹", ...ngDevMode ? [{ debugName: "symbol" }] : /* istanbul ignore next */ []);
|
|
34778
|
+
signals = input(void 0, ...ngDevMode ? [{ debugName: "signals" }] : /* istanbul ignore next */ []);
|
|
34779
|
+
crossFrom = input(void 0, ...ngDevMode ? [{ debugName: "crossFrom" }] : /* istanbul ignore next */ []);
|
|
34780
|
+
crossTo = input(void 0, ...ngDevMode ? [{ debugName: "crossTo" }] : /* istanbul ignore next */ []);
|
|
34781
|
+
crossTone = input("neutral", ...ngDevMode ? [{ debugName: "crossTone" }] : /* istanbul ignore next */ []);
|
|
34782
|
+
markTags = contentChildren(PriceLadderMarkComponent, ...ngDevMode ? [{ debugName: "markTags" }] : /* istanbul ignore next */ []);
|
|
34783
|
+
signalTags = contentChildren(PriceLadderSignalComponent, ...ngDevMode ? [{ debugName: "signalTags" }] : /* istanbul ignore next */ []);
|
|
34784
|
+
translateService = inject(TranslateService);
|
|
34785
|
+
width = signal(0, ...ngDevMode ? [{ debugName: "width" }] : /* istanbul ignore next */ []);
|
|
34786
|
+
constructor() {
|
|
34787
|
+
const host = inject(ElementRef).nativeElement;
|
|
34788
|
+
const destroyRef = inject(DestroyRef);
|
|
34789
|
+
afterNextRender(() => {
|
|
34790
|
+
if (typeof ResizeObserver === "undefined") return;
|
|
34791
|
+
const observer = new ResizeObserver(([entry]) => this.width.set(entry.contentRect.width));
|
|
34792
|
+
observer.observe(host);
|
|
34793
|
+
destroyRef.onDestroy(() => observer.disconnect());
|
|
34794
|
+
});
|
|
34795
|
+
}
|
|
34796
|
+
t = (key) => this.translateService.translate(key);
|
|
34797
|
+
money = (v) => `${this.symbol()}${v.toLocaleString("en-IN", { maximumFractionDigits: 2 })}`;
|
|
34798
|
+
anchor = (kind) => this.everyMark().find((m) => m.kind === kind)?.value ?? null;
|
|
34799
|
+
current = computed(() => this.anchor("current") ?? price(this.value()), ...ngDevMode ? [{ debugName: "current" }] : /* istanbul ignore next */ []);
|
|
34800
|
+
targetPoint = computed(() => this.anchor("forecast") ?? price(this.target()), ...ngDevMode ? [{ debugName: "targetPoint" }] : /* istanbul ignore next */ []);
|
|
34801
|
+
shownAs = computed(() => {
|
|
34802
|
+
const variant = this.variant();
|
|
34803
|
+
if (variant !== "auto") return variant;
|
|
34804
|
+
const w = this.width();
|
|
34805
|
+
return w > 0 && w < LIST_BELOW_PX ? "list" : "line";
|
|
34806
|
+
}, ...ngDevMode ? [{ debugName: "shownAs" }] : /* istanbul ignore next */ []);
|
|
34807
|
+
everyMark = computed(() => this.markTags().flatMap((tag) => {
|
|
34808
|
+
const value = price(tag.value());
|
|
34809
|
+
if (value === null) return [];
|
|
34810
|
+
const level = ladderLevelOf(tag.key());
|
|
34811
|
+
const note = tag.note();
|
|
34812
|
+
const name = this.t(tag.label() || level?.label || "");
|
|
34813
|
+
return [{
|
|
34814
|
+
key: tag.key(),
|
|
34815
|
+
name: note ? `${name} · ${this.t(note)}` : name,
|
|
34816
|
+
value,
|
|
34817
|
+
kind: tag.kind() ?? level?.kind ?? "level",
|
|
34818
|
+
rank: Math.min(4, Math.max(1, tag.rank() ?? level?.rank ?? 1))
|
|
34819
|
+
}];
|
|
34820
|
+
}), ...ngDevMode ? [{ debugName: "everyMark" }] : /* istanbul ignore next */ []);
|
|
34821
|
+
marks = computed(() => this.everyMark().filter((m) => m.kind === "level" || m.kind === "bound"), ...ngDevMode ? [{ debugName: "marks" }] : /* istanbul ignore next */ []);
|
|
34822
|
+
matched = computed(() => {
|
|
34823
|
+
const value = this.current();
|
|
34824
|
+
if (value === null) return /* @__PURE__ */ new Map();
|
|
34825
|
+
const at = (key) => this.marks().find((m) => m.key === key)?.value;
|
|
34826
|
+
const found = ladderSignals({
|
|
34827
|
+
value,
|
|
34828
|
+
target: this.targetPoint(),
|
|
34829
|
+
sma10: at("sma10"),
|
|
34830
|
+
sma50: at("sma50"),
|
|
34831
|
+
sma100: at("sma100"),
|
|
34832
|
+
sma200: at("sma200"),
|
|
34833
|
+
low52w: at("low52w"),
|
|
34834
|
+
high52w: at("high52w")
|
|
34835
|
+
}, this.symbol());
|
|
34836
|
+
return new Map(found.map((s) => [s.rule, s]));
|
|
34837
|
+
}, ...ngDevMode ? [{ debugName: "matched" }] : /* istanbul ignore next */ []);
|
|
34838
|
+
picked = computed(() => {
|
|
34839
|
+
const raw = this.signals();
|
|
34840
|
+
const names = typeof raw === "string" ? raw.split(/[\s,]+/) : raw ?? [];
|
|
34841
|
+
if (names.includes("all")) return PRICE_LADDER_RULES;
|
|
34842
|
+
return PRICE_LADDER_RULES.filter((r) => names.includes(r));
|
|
34843
|
+
}, ...ngDevMode ? [{ debugName: "picked" }] : /* istanbul ignore next */ []);
|
|
34844
|
+
chips = computed(() => {
|
|
34845
|
+
const tagged = this.tagChips();
|
|
34846
|
+
const shown = new Set(tagged.map((c) => c.rule));
|
|
34847
|
+
const picked = this.picked().flatMap((rule) => {
|
|
34848
|
+
const hit = this.matched().get(rule);
|
|
34849
|
+
if (!hit || shown.has(rule)) return [];
|
|
34850
|
+
return [this.ruleChip(rule, rule, hit, "", "")];
|
|
34851
|
+
});
|
|
34852
|
+
return [...tagged, ...picked];
|
|
34853
|
+
}, ...ngDevMode ? [{ debugName: "chips" }] : /* istanbul ignore next */ []);
|
|
34854
|
+
ruleChip = (key, rule, hit, label, detail) => ({
|
|
34855
|
+
key,
|
|
34856
|
+
rule,
|
|
34857
|
+
label: this.t(label || rule),
|
|
34858
|
+
tone: hit.tone,
|
|
34859
|
+
detail: detail || this.translateService.translate(`${rule}-detail`, hit.params)
|
|
34860
|
+
});
|
|
34861
|
+
tagChips = computed(() => this.signalTags().flatMap((tag, i) => {
|
|
34862
|
+
const raw = tag.rule();
|
|
34863
|
+
const rule = isLadderRule(raw) ? raw : void 0;
|
|
34864
|
+
const key = tag.key() || rule || `signal-${i}`;
|
|
34865
|
+
if (!rule) return [{
|
|
34866
|
+
key,
|
|
34867
|
+
rule: void 0,
|
|
34868
|
+
label: this.t(tag.label()),
|
|
34869
|
+
tone: tag.tone(),
|
|
34870
|
+
detail: tag.detail()
|
|
34871
|
+
}];
|
|
34872
|
+
const hit = this.matched().get(rule);
|
|
34873
|
+
if (!hit) return [];
|
|
34874
|
+
return [this.ruleChip(key, rule, hit, tag.label(), tag.detail())];
|
|
34875
|
+
}), ...ngDevMode ? [{ debugName: "tagChips" }] : /* istanbul ignore next */ []);
|
|
34876
|
+
crossPair = computed(() => {
|
|
34877
|
+
const from = this.crossFrom();
|
|
34878
|
+
const to = this.crossTo();
|
|
34879
|
+
if (from && to) return {
|
|
34880
|
+
from,
|
|
34881
|
+
to,
|
|
34882
|
+
tone: this.crossTone()
|
|
34883
|
+
};
|
|
34884
|
+
const cross = this.chips().find((c) => c.rule === "golden-cross" || c.rule === "death-cross");
|
|
34885
|
+
return cross ? {
|
|
34886
|
+
from: "sma50",
|
|
34887
|
+
to: "sma200",
|
|
34888
|
+
tone: cross.tone
|
|
34889
|
+
} : null;
|
|
34890
|
+
}, ...ngDevMode ? [{ debugName: "crossPair" }] : /* istanbul ignore next */ []);
|
|
34891
|
+
forward = computed(() => {
|
|
34892
|
+
const value = this.current();
|
|
34893
|
+
if (value === null) return null;
|
|
34894
|
+
const point = this.targetPoint();
|
|
34895
|
+
const low = price(this.targetLow());
|
|
34896
|
+
const high = price(this.targetHigh());
|
|
34897
|
+
const range = low !== null && high !== null ? {
|
|
34898
|
+
low: Math.min(low, high),
|
|
34899
|
+
high: Math.max(low, high)
|
|
34900
|
+
} : null;
|
|
34901
|
+
if (point === null && range === null) return null;
|
|
34902
|
+
const label = point !== null ? this.t(this.targetLabel()) : this.translateService.translate("forecast-range");
|
|
34903
|
+
const note = this.targetNote();
|
|
34904
|
+
const rangeText = range ? `${this.money(range.low)} – ${this.money(range.high)}` : "";
|
|
34905
|
+
const gap = gapPct(point ?? (range ? (range.low + range.high) / 2 : value), value);
|
|
34906
|
+
return {
|
|
34907
|
+
point,
|
|
34908
|
+
range,
|
|
34909
|
+
label,
|
|
34910
|
+
name: note ? `${label} · ${note}` : label,
|
|
34911
|
+
valueText: point !== null ? `${this.money(point)} ${formatGap(gap)}` : rangeText,
|
|
34912
|
+
rowText: point !== null ? this.money(point) : rangeText,
|
|
34913
|
+
up: gap >= 0,
|
|
34914
|
+
shown: point ?? range?.high ?? value
|
|
34915
|
+
};
|
|
34916
|
+
}, ...ngDevMode ? [{ debugName: "forward" }] : /* istanbul ignore next */ []);
|
|
34917
|
+
line = computed(() => {
|
|
34918
|
+
const value = this.current();
|
|
34919
|
+
if (value === null) return null;
|
|
34920
|
+
const marks = this.marks();
|
|
34921
|
+
const fwd = this.forward();
|
|
34922
|
+
const forwardValues = fwd ? [
|
|
34923
|
+
fwd.point,
|
|
34924
|
+
fwd.range?.low,
|
|
34925
|
+
fwd.range?.high
|
|
34926
|
+
].filter((v) => v != null) : [];
|
|
34927
|
+
const scale = ladderScale({
|
|
34928
|
+
value,
|
|
34929
|
+
levels: marks.map((m) => m.value),
|
|
34930
|
+
forward: forwardValues,
|
|
34931
|
+
maxSpanPct: this.maxSpanPct()
|
|
34932
|
+
});
|
|
34933
|
+
const at = new Map(marks.map((m) => [m.key, m]));
|
|
34934
|
+
const widthPx = this.width() || FALLBACK_PX;
|
|
34935
|
+
const labels = layoutLanes(marks.map((m) => ({
|
|
34936
|
+
key: m.key,
|
|
34937
|
+
x: scale.pos(m.value) / 100 * widthPx
|
|
34938
|
+
})), LABEL_GAP_PX).map((label) => {
|
|
34939
|
+
const group = marks.filter((m) => label.keys.includes(m.key));
|
|
34940
|
+
const level = group.some((m) => m.kind === "level");
|
|
34941
|
+
return {
|
|
34942
|
+
key: label.keys.join("+"),
|
|
34943
|
+
lane: label.lane,
|
|
34944
|
+
pos: label.x / widthPx * 100,
|
|
34945
|
+
bound: !level,
|
|
34946
|
+
name: group.map((m) => m.name).join(" · "),
|
|
34947
|
+
valueText: group.map((m) => this.money(m.value)).join(" · "),
|
|
34948
|
+
gapText: level ? group.map((m) => formatGap(gapPct(m.value, value))).join(" · ") : ""
|
|
34949
|
+
};
|
|
34950
|
+
});
|
|
34951
|
+
const valuePos = scale.pos(value);
|
|
34952
|
+
let target = null;
|
|
34953
|
+
if (fwd?.point != null) {
|
|
34954
|
+
const onScale = scale.within(fwd.point);
|
|
34955
|
+
target = {
|
|
34956
|
+
pos: onScale ? scale.pos(fwd.point) : fwd.point > value ? 100 : 0,
|
|
34957
|
+
offScale: !onScale,
|
|
34958
|
+
point: true
|
|
34959
|
+
};
|
|
34960
|
+
} else if (fwd?.range) target = {
|
|
34961
|
+
pos: (scale.clamp(fwd.range.low) + scale.clamp(fwd.range.high)) / 2,
|
|
34962
|
+
offScale: false,
|
|
34963
|
+
point: false
|
|
34964
|
+
};
|
|
34965
|
+
const pair = this.crossPair();
|
|
34966
|
+
const from = at.get(pair?.from ?? "");
|
|
34967
|
+
const to = at.get(pair?.to ?? "");
|
|
34968
|
+
const cross = pair && from && to ? {
|
|
34969
|
+
...span(scale.pos(from.value), scale.pos(to.value)),
|
|
34970
|
+
tone: pair.tone
|
|
34971
|
+
} : null;
|
|
34972
|
+
const ends = marks.filter((m) => m.kind === "bound");
|
|
34973
|
+
const bounds = ends.length === 2 ? span(scale.pos(ends[0].value), scale.pos(ends[1].value)) : null;
|
|
34974
|
+
return {
|
|
34975
|
+
valuePos,
|
|
34976
|
+
ticks: marks.map((m) => ({
|
|
34977
|
+
key: m.key,
|
|
34978
|
+
kind: m.kind,
|
|
34979
|
+
rank: m.rank,
|
|
34980
|
+
pos: scale.pos(m.value)
|
|
34981
|
+
})),
|
|
34982
|
+
labels,
|
|
34983
|
+
lanes: labels.some((l) => l.lane === 1) ? 2 : 1,
|
|
34984
|
+
target,
|
|
34985
|
+
connector: target && fwd?.point != null ? span(valuePos, target.pos) : null,
|
|
34986
|
+
band: fwd?.range ? span(scale.clamp(fwd.range.low), scale.clamp(fwd.range.high)) : null,
|
|
34987
|
+
cross,
|
|
34988
|
+
bounds
|
|
34989
|
+
};
|
|
34990
|
+
}, ...ngDevMode ? [{ debugName: "line" }] : /* istanbul ignore next */ []);
|
|
34991
|
+
rows = computed(() => {
|
|
34992
|
+
const value = this.current();
|
|
34993
|
+
if (value === null) return [];
|
|
34994
|
+
const fwd = this.forward();
|
|
34995
|
+
const rows = [
|
|
34996
|
+
...this.marks().map((m) => ({
|
|
34997
|
+
key: m.key,
|
|
34998
|
+
kind: m.kind,
|
|
34999
|
+
name: m.name,
|
|
35000
|
+
value: m.value,
|
|
35001
|
+
valueText: this.money(m.value)
|
|
35002
|
+
})),
|
|
35003
|
+
{
|
|
35004
|
+
key: "current",
|
|
35005
|
+
kind: "current",
|
|
35006
|
+
name: this.t(this.valueLabel()),
|
|
35007
|
+
value,
|
|
35008
|
+
valueText: this.money(value)
|
|
35009
|
+
},
|
|
35010
|
+
...fwd ? [{
|
|
35011
|
+
key: "target",
|
|
35012
|
+
kind: "target",
|
|
35013
|
+
name: fwd.name,
|
|
35014
|
+
value: fwd.shown,
|
|
35015
|
+
valueText: fwd.rowText
|
|
35016
|
+
}] : []
|
|
35017
|
+
].sort((a, b) => b.value - a.value);
|
|
35018
|
+
const lo = rows[rows.length - 1].value;
|
|
35019
|
+
const hi = rows[0].value;
|
|
35020
|
+
return rows.map((r) => ({
|
|
35021
|
+
...r,
|
|
35022
|
+
gapText: r.kind === "current" ? "" : formatGap(gapPct(r.value, value)),
|
|
35023
|
+
up: r.value >= value,
|
|
35024
|
+
pos: hi === lo ? 50 : (r.value - lo) / (hi - lo) * 100
|
|
35025
|
+
}));
|
|
35026
|
+
}, ...ngDevMode ? [{ debugName: "rows" }] : /* istanbul ignore next */ []);
|
|
35027
|
+
summary = computed(() => {
|
|
35028
|
+
const value = this.current();
|
|
35029
|
+
if (value === null) return this.translateService.translate("no-data");
|
|
35030
|
+
const fwd = this.forward();
|
|
35031
|
+
const head = this.translateService.translate("price-ladder-summary", {
|
|
35032
|
+
value: this.money(value),
|
|
35033
|
+
n: String(this.marks().length)
|
|
35034
|
+
});
|
|
35035
|
+
return fwd ? `${head}; ${fwd.label} ${fwd.valueText}` : head;
|
|
35036
|
+
}, ...ngDevMode ? [{ debugName: "summary" }] : /* istanbul ignore next */ []);
|
|
35037
|
+
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
35038
|
+
minVersion: "12.0.0",
|
|
35039
|
+
version: "22.2.1",
|
|
35040
|
+
ngImport: i0,
|
|
35041
|
+
type: PriceLadderComponent,
|
|
35042
|
+
deps: [],
|
|
35043
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
35044
|
+
});
|
|
35045
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({
|
|
35046
|
+
minVersion: "17.0.0",
|
|
35047
|
+
version: "22.2.1",
|
|
35048
|
+
type: PriceLadderComponent,
|
|
35049
|
+
isStandalone: true,
|
|
35050
|
+
selector: "m-price-ladder",
|
|
35051
|
+
inputs: {
|
|
35052
|
+
value: {
|
|
35053
|
+
classPropertyName: "value",
|
|
35054
|
+
publicName: "value",
|
|
35055
|
+
isSignal: true,
|
|
35056
|
+
isRequired: false,
|
|
35057
|
+
transformFunction: null
|
|
35058
|
+
},
|
|
35059
|
+
valueLabel: {
|
|
35060
|
+
classPropertyName: "valueLabel",
|
|
35061
|
+
publicName: "valueLabel",
|
|
35062
|
+
isSignal: true,
|
|
35063
|
+
isRequired: false,
|
|
35064
|
+
transformFunction: null
|
|
35065
|
+
},
|
|
35066
|
+
target: {
|
|
35067
|
+
classPropertyName: "target",
|
|
35068
|
+
publicName: "target",
|
|
35069
|
+
isSignal: true,
|
|
35070
|
+
isRequired: false,
|
|
35071
|
+
transformFunction: null
|
|
35072
|
+
},
|
|
35073
|
+
targetLow: {
|
|
35074
|
+
classPropertyName: "targetLow",
|
|
35075
|
+
publicName: "targetLow",
|
|
35076
|
+
isSignal: true,
|
|
35077
|
+
isRequired: false,
|
|
35078
|
+
transformFunction: null
|
|
35079
|
+
},
|
|
35080
|
+
targetHigh: {
|
|
35081
|
+
classPropertyName: "targetHigh",
|
|
35082
|
+
publicName: "targetHigh",
|
|
35083
|
+
isSignal: true,
|
|
35084
|
+
isRequired: false,
|
|
35085
|
+
transformFunction: null
|
|
35086
|
+
},
|
|
35087
|
+
targetLabel: {
|
|
35088
|
+
classPropertyName: "targetLabel",
|
|
35089
|
+
publicName: "targetLabel",
|
|
35090
|
+
isSignal: true,
|
|
35091
|
+
isRequired: false,
|
|
35092
|
+
transformFunction: null
|
|
35093
|
+
},
|
|
35094
|
+
targetNote: {
|
|
35095
|
+
classPropertyName: "targetNote",
|
|
35096
|
+
publicName: "targetNote",
|
|
35097
|
+
isSignal: true,
|
|
35098
|
+
isRequired: false,
|
|
35099
|
+
transformFunction: null
|
|
35100
|
+
},
|
|
35101
|
+
maxSpanPct: {
|
|
35102
|
+
classPropertyName: "maxSpanPct",
|
|
35103
|
+
publicName: "maxSpanPct",
|
|
35104
|
+
isSignal: true,
|
|
35105
|
+
isRequired: false,
|
|
35106
|
+
transformFunction: null
|
|
35107
|
+
},
|
|
35108
|
+
variant: {
|
|
35109
|
+
classPropertyName: "variant",
|
|
35110
|
+
publicName: "variant",
|
|
35111
|
+
isSignal: true,
|
|
35112
|
+
isRequired: false,
|
|
35113
|
+
transformFunction: null
|
|
35114
|
+
},
|
|
35115
|
+
symbol: {
|
|
35116
|
+
classPropertyName: "symbol",
|
|
35117
|
+
publicName: "symbol",
|
|
35118
|
+
isSignal: true,
|
|
35119
|
+
isRequired: false,
|
|
35120
|
+
transformFunction: null
|
|
35121
|
+
},
|
|
35122
|
+
signals: {
|
|
35123
|
+
classPropertyName: "signals",
|
|
35124
|
+
publicName: "signals",
|
|
35125
|
+
isSignal: true,
|
|
35126
|
+
isRequired: false,
|
|
35127
|
+
transformFunction: null
|
|
35128
|
+
},
|
|
35129
|
+
crossFrom: {
|
|
35130
|
+
classPropertyName: "crossFrom",
|
|
35131
|
+
publicName: "crossFrom",
|
|
35132
|
+
isSignal: true,
|
|
35133
|
+
isRequired: false,
|
|
35134
|
+
transformFunction: null
|
|
35135
|
+
},
|
|
35136
|
+
crossTo: {
|
|
35137
|
+
classPropertyName: "crossTo",
|
|
35138
|
+
publicName: "crossTo",
|
|
35139
|
+
isSignal: true,
|
|
35140
|
+
isRequired: false,
|
|
35141
|
+
transformFunction: null
|
|
35142
|
+
},
|
|
35143
|
+
crossTone: {
|
|
35144
|
+
classPropertyName: "crossTone",
|
|
35145
|
+
publicName: "crossTone",
|
|
35146
|
+
isSignal: true,
|
|
35147
|
+
isRequired: false,
|
|
35148
|
+
transformFunction: null
|
|
35149
|
+
}
|
|
35150
|
+
},
|
|
35151
|
+
queries: [{
|
|
35152
|
+
propertyName: "markTags",
|
|
35153
|
+
predicate: PriceLadderMarkComponent,
|
|
35154
|
+
isSignal: true
|
|
35155
|
+
}, {
|
|
35156
|
+
propertyName: "signalTags",
|
|
35157
|
+
predicate: PriceLadderSignalComponent,
|
|
35158
|
+
isSignal: true
|
|
35159
|
+
}],
|
|
35160
|
+
ngImport: i0,
|
|
35161
|
+
template: "<div class=\"m-price-ladder\" role=\"img\" [attr.aria-label]=\"summary()\">\n @if (chips().length) {\n <div class=\"m-price-ladder__signals\">\n @for (s of chips(); track s.key) {\n <span\n [class]=\"'m-price-ladder__signal is-' + s.tone\"\n [attr.title]=\"s.detail || null\"\n >{{ s.label }}</span\n >\n }\n </div>\n }\n\n @if (current(); as value) {\n @if (shownAs() === 'line') {\n @if (line(); as l) {\n <div class=\"m-price-ladder__line\" [style.--_lanes]=\"l.lanes\">\n @if (forward(); as f) {\n @if (l.target; as t) {\n <div\n class=\"m-price-ladder__target\"\n [class.is-off-scale]=\"t.offScale\"\n [class.is-up]=\"f.up\"\n [class.is-down]=\"!f.up\"\n [style.--_x.%]=\"t.pos\"\n >\n <span class=\"m-price-ladder__target-name\">{{ f.name }}</span>\n <span class=\"m-price-ladder__target-value\">{{ f.valueText }}</span>\n </div>\n }\n }\n\n <div class=\"m-price-ladder__axis\">\n @if (l.bounds; as b) {\n <span class=\"m-price-ladder__range\" [style.left.%]=\"b.left\" [style.width.%]=\"b.width\"></span>\n }\n @if (l.band; as b) {\n <span class=\"m-price-ladder__band\" [style.left.%]=\"b.left\" [style.width.%]=\"b.width\"></span>\n }\n @if (l.connector; as c) {\n <span\n class=\"m-price-ladder__connector\"\n [class.is-up]=\"forward()?.up\"\n [class.is-down]=\"!forward()?.up\"\n [style.left.%]=\"c.left\"\n [style.width.%]=\"c.width\"\n ></span>\n }\n @if (l.cross; as c) {\n <span\n [class]=\"'m-price-ladder__cross is-' + c.tone\"\n [style.left.%]=\"c.left\"\n [style.width.%]=\"c.width\"\n ></span>\n }\n @for (tick of l.ticks; track tick.key) {\n <span\n class=\"m-price-ladder__tick\"\n [class.is-bound]=\"tick.kind === 'bound'\"\n [style.--_rank]=\"tick.rank\"\n [style.left.%]=\"tick.pos\"\n ></span>\n }\n @if (l.target; as t) {\n @if (t.point) {\n <span\n class=\"m-price-ladder__target-tick\"\n [class.is-off-scale]=\"t.offScale\"\n [class.is-left]=\"t.pos === 0\"\n [style.left.%]=\"t.pos\"\n ></span>\n }\n }\n <span class=\"m-price-ladder__current\" [style.--_x.%]=\"l.valuePos\">\n <span class=\"m-price-ladder__current-value\">{{ money(value) }}</span>\n </span>\n </div>\n\n <div class=\"m-price-ladder__labels\">\n @for (label of l.labels; track label.key) {\n <span\n class=\"m-price-ladder__label\"\n [class.is-bound]=\"label.bound\"\n [class.is-lane-2]=\"label.lane === 1\"\n [style.--_x.%]=\"label.pos\"\n >\n <span class=\"m-price-ladder__label-name\">{{ label.name }}</span>\n <span class=\"m-price-ladder__label-value\">{{ label.valueText }}</span>\n @if (label.gapText) {\n <span class=\"m-price-ladder__label-gap\">{{ label.gapText }}</span>\n }\n </span>\n }\n </div>\n </div>\n }\n } @else {\n <div class=\"m-price-ladder__list\">\n @for (row of rows(); track row.key) {\n <div [class]=\"'m-price-ladder__row is-' + row.kind\">\n <span class=\"m-price-ladder__row-name\">{{ row.name }}</span>\n <span class=\"m-price-ladder__row-value\">{{ row.valueText }}</span>\n <span class=\"m-price-ladder__row-gap\" [class.is-up]=\"row.up\" [class.is-down]=\"!row.up\">{{\n row.gapText\n }}</span>\n <span class=\"m-price-ladder__row-track\">\n <span class=\"m-price-ladder__row-dot\" [style.left.%]=\"row.pos\"></span>\n </span>\n </div>\n }\n </div>\n }\n } @else {\n <div class=\"m-price-ladder__empty\">—</div>\n }\n</div>\n",
|
|
35162
|
+
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-price-ladder-forward: var(--m-mm);--m-price-ladder-up: var(--m-success);--m-price-ladder-down: var(--m-error);--m-price-ladder-warn: var(--m-warning);--m-price-ladder-gold: var(--m-gold)}.m-price-ladder{display:flex;flex-direction:column;gap:.75em;font-variant-numeric:tabular-nums}.m-price-ladder__signals{display:flex;flex-wrap:wrap;gap:.4em}.m-price-ladder__signal{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-price-ladder__signal:before{content:\"\";width:.55em;height:.55em;border-radius:50%;background:var(--_tone, var(--m-text-tertiary))}.m-price-ladder__signal.is-up{--_tone: var(--m-price-ladder-up)}.m-price-ladder__signal.is-down{--_tone: var(--m-price-ladder-down)}.m-price-ladder__signal.is-warn{--_tone: var(--m-price-ladder-warn)}.m-price-ladder__signal.is-gold{--_tone: var(--m-price-ladder-gold);border-color:var(--m-price-ladder-gold)}.m-price-ladder__line{display:grid;--_edge: 3em}.m-price-ladder__target{position:relative;left:clamp(var(--_edge),var(--_x),100% - var(--_edge));display:flex;flex-direction:column;align-items:center;width:max-content;max-width:50%;transform:translate(-50%);font-size:.8em}.m-price-ladder__target.is-up{--_dir: var(--m-price-ladder-up)}.m-price-ladder__target.is-down{--_dir: var(--m-price-ladder-down)}.m-price-ladder__target-name{color:var(--m-price-ladder-forward);font-style:italic}.m-price-ladder__target-value{color:var(--m-text);font-weight:600}.m-price-ladder__axis{position:relative;height:3.6em}.m-price-ladder__axis:before{content:\"\";position:absolute;inset:50% 0 auto;height:2px;background:var(--m-border);transform:translateY(-50%)}.m-price-ladder__range,.m-price-ladder__band,.m-price-ladder__connector,.m-price-ladder__tick,.m-price-ladder__target-tick,.m-price-ladder__cross{position:absolute;top:50%;transform:translateY(-50%)}.m-price-ladder__range{height:.5em;background:color-mix(in srgb,var(--m-text-tertiary) 18%,transparent)}.m-price-ladder__band{height:1.6em;border:1px dashed var(--m-price-ladder-forward);border-radius:.2em;background:repeating-linear-gradient(45deg,color-mix(in srgb,var(--m-price-ladder-forward) 22%,transparent) 0 2px,transparent 2px 6px)}.m-price-ladder__connector{height:4px;border-radius:2px;opacity:.55}.m-price-ladder__connector.is-up{background:var(--m-price-ladder-up)}.m-price-ladder__connector.is-down{background:var(--m-price-ladder-down)}.m-price-ladder__cross{top:calc(50% + 1.2em);height:.45em;border:1.5px solid var(--m-text-tertiary);border-top:0}.m-price-ladder__cross.is-gold{border-color:var(--m-price-ladder-gold)}.m-price-ladder__cross.is-down{border-color:var(--m-price-ladder-down)}.m-price-ladder__cross.is-up{border-color:var(--m-price-ladder-up)}.m-price-ladder__tick{width:calc(1px + var(--_rank, 1) * .5px);height:calc(.5em + var(--_rank, 1) * .35em);margin-left:calc(var(--_rank, 1) * -.25px);background:var(--m-text-secondary);opacity:calc(.35 + var(--_rank, 1) * .16)}.m-price-ladder__tick.is-bound{width:2px;height:1.2em;background:var(--m-text-tertiary);opacity:1}.m-price-ladder__target-tick{height:2.4em;border-left:2px dashed var(--m-price-ladder-forward)}.m-price-ladder__target-tick.is-off-scale{width:.6em;height:.6em;margin-left:-.7em;border:0;border-top:2.5px solid var(--m-price-ladder-forward);border-right:2.5px solid var(--m-price-ladder-forward);transform:translateY(-50%) rotate(45deg)}.m-price-ladder__target-tick.is-off-scale.is-left{margin-left:.1em;transform:translateY(-50%) rotate(-135deg)}.m-price-ladder__current{position:absolute;inset:0 auto 0 var(--_x)}.m-price-ladder__current:after{content:\"\";position:absolute;top:50%;width:.9em;height:.9em;border:2px solid var(--m-background);border-radius:50%;background:var(--m-text);transform:translate(-50%,-50%)}.m-price-ladder__current-value{position:absolute;top:-.1em;font-size:.85em;font-weight:650;white-space:nowrap;transform:translate(-50%)}.m-price-ladder__labels{position:relative;height:calc(var(--_lanes, 1) * 3.4em)}.m-price-ladder__label{position:absolute;top:0;left:clamp(var(--_edge),var(--_x),100% - var(--_edge));display:flex;flex-direction:column;align-items:center;font-size:.75em;line-height:1.3;white-space:nowrap;transform:translate(-50%)}.m-price-ladder__label.is-lane-2{top:4.4em}.m-price-ladder__label.is-bound{color:var(--m-text-tertiary)}.m-price-ladder__label-name{color:var(--m-text-secondary)}.m-price-ladder__label-value{color:var(--m-text)}.m-price-ladder__label-gap{color:var(--m-text-tertiary)}.m-price-ladder__list{display:grid}.m-price-ladder__row{display:grid;grid-template-columns:minmax(0,1.2fr) auto 4.5em minmax(3em,1fr);gap:.6em;align-items:center;padding:.45em .1em;border-bottom:1px solid var(--m-border);font-size:.9em}.m-price-ladder__row:last-child{border-bottom:0}.m-price-ladder__row.is-current{font-weight:650}.m-price-ladder__row.is-target{color:var(--m-price-ladder-forward);font-style:italic}.m-price-ladder__row.is-bound{color:var(--m-text-tertiary)}.m-price-ladder__row-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.m-price-ladder__row-value{text-align:end}.m-price-ladder__row-gap{text-align:end;color:var(--m-text-tertiary)}.m-price-ladder__row-track{position:relative;height:.6em}.m-price-ladder__row-track:before{content:\"\";position:absolute;inset:50% 0 auto;height:1px;background:var(--m-border)}.m-price-ladder__row-dot{position:absolute;top:50%;width:.4em;height:.4em;border-radius:50%;background:currentColor;transform:translate(-50%,-50%)}.m-price-ladder__empty{padding:1em;color:var(--m-text-tertiary);font-size:1.25em;text-align:center}\n"],
|
|
35163
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
35164
|
+
});
|
|
35165
|
+
};
|
|
35166
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
35167
|
+
minVersion: "12.0.0",
|
|
35168
|
+
version: "22.2.1",
|
|
35169
|
+
ngImport: i0,
|
|
35170
|
+
type: PriceLadderComponent,
|
|
35171
|
+
decorators: [{
|
|
35172
|
+
type: Component,
|
|
35173
|
+
args: [{
|
|
35174
|
+
selector: "m-price-ladder",
|
|
35175
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
35176
|
+
template: "<div class=\"m-price-ladder\" role=\"img\" [attr.aria-label]=\"summary()\">\n @if (chips().length) {\n <div class=\"m-price-ladder__signals\">\n @for (s of chips(); track s.key) {\n <span\n [class]=\"'m-price-ladder__signal is-' + s.tone\"\n [attr.title]=\"s.detail || null\"\n >{{ s.label }}</span\n >\n }\n </div>\n }\n\n @if (current(); as value) {\n @if (shownAs() === 'line') {\n @if (line(); as l) {\n <div class=\"m-price-ladder__line\" [style.--_lanes]=\"l.lanes\">\n @if (forward(); as f) {\n @if (l.target; as t) {\n <div\n class=\"m-price-ladder__target\"\n [class.is-off-scale]=\"t.offScale\"\n [class.is-up]=\"f.up\"\n [class.is-down]=\"!f.up\"\n [style.--_x.%]=\"t.pos\"\n >\n <span class=\"m-price-ladder__target-name\">{{ f.name }}</span>\n <span class=\"m-price-ladder__target-value\">{{ f.valueText }}</span>\n </div>\n }\n }\n\n <div class=\"m-price-ladder__axis\">\n @if (l.bounds; as b) {\n <span class=\"m-price-ladder__range\" [style.left.%]=\"b.left\" [style.width.%]=\"b.width\"></span>\n }\n @if (l.band; as b) {\n <span class=\"m-price-ladder__band\" [style.left.%]=\"b.left\" [style.width.%]=\"b.width\"></span>\n }\n @if (l.connector; as c) {\n <span\n class=\"m-price-ladder__connector\"\n [class.is-up]=\"forward()?.up\"\n [class.is-down]=\"!forward()?.up\"\n [style.left.%]=\"c.left\"\n [style.width.%]=\"c.width\"\n ></span>\n }\n @if (l.cross; as c) {\n <span\n [class]=\"'m-price-ladder__cross is-' + c.tone\"\n [style.left.%]=\"c.left\"\n [style.width.%]=\"c.width\"\n ></span>\n }\n @for (tick of l.ticks; track tick.key) {\n <span\n class=\"m-price-ladder__tick\"\n [class.is-bound]=\"tick.kind === 'bound'\"\n [style.--_rank]=\"tick.rank\"\n [style.left.%]=\"tick.pos\"\n ></span>\n }\n @if (l.target; as t) {\n @if (t.point) {\n <span\n class=\"m-price-ladder__target-tick\"\n [class.is-off-scale]=\"t.offScale\"\n [class.is-left]=\"t.pos === 0\"\n [style.left.%]=\"t.pos\"\n ></span>\n }\n }\n <span class=\"m-price-ladder__current\" [style.--_x.%]=\"l.valuePos\">\n <span class=\"m-price-ladder__current-value\">{{ money(value) }}</span>\n </span>\n </div>\n\n <div class=\"m-price-ladder__labels\">\n @for (label of l.labels; track label.key) {\n <span\n class=\"m-price-ladder__label\"\n [class.is-bound]=\"label.bound\"\n [class.is-lane-2]=\"label.lane === 1\"\n [style.--_x.%]=\"label.pos\"\n >\n <span class=\"m-price-ladder__label-name\">{{ label.name }}</span>\n <span class=\"m-price-ladder__label-value\">{{ label.valueText }}</span>\n @if (label.gapText) {\n <span class=\"m-price-ladder__label-gap\">{{ label.gapText }}</span>\n }\n </span>\n }\n </div>\n </div>\n }\n } @else {\n <div class=\"m-price-ladder__list\">\n @for (row of rows(); track row.key) {\n <div [class]=\"'m-price-ladder__row is-' + row.kind\">\n <span class=\"m-price-ladder__row-name\">{{ row.name }}</span>\n <span class=\"m-price-ladder__row-value\">{{ row.valueText }}</span>\n <span class=\"m-price-ladder__row-gap\" [class.is-up]=\"row.up\" [class.is-down]=\"!row.up\">{{\n row.gapText\n }}</span>\n <span class=\"m-price-ladder__row-track\">\n <span class=\"m-price-ladder__row-dot\" [style.left.%]=\"row.pos\"></span>\n </span>\n </div>\n }\n </div>\n }\n } @else {\n <div class=\"m-price-ladder__empty\">—</div>\n }\n</div>\n",
|
|
35177
|
+
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-price-ladder-forward: var(--m-mm);--m-price-ladder-up: var(--m-success);--m-price-ladder-down: var(--m-error);--m-price-ladder-warn: var(--m-warning);--m-price-ladder-gold: var(--m-gold)}.m-price-ladder{display:flex;flex-direction:column;gap:.75em;font-variant-numeric:tabular-nums}.m-price-ladder__signals{display:flex;flex-wrap:wrap;gap:.4em}.m-price-ladder__signal{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-price-ladder__signal:before{content:\"\";width:.55em;height:.55em;border-radius:50%;background:var(--_tone, var(--m-text-tertiary))}.m-price-ladder__signal.is-up{--_tone: var(--m-price-ladder-up)}.m-price-ladder__signal.is-down{--_tone: var(--m-price-ladder-down)}.m-price-ladder__signal.is-warn{--_tone: var(--m-price-ladder-warn)}.m-price-ladder__signal.is-gold{--_tone: var(--m-price-ladder-gold);border-color:var(--m-price-ladder-gold)}.m-price-ladder__line{display:grid;--_edge: 3em}.m-price-ladder__target{position:relative;left:clamp(var(--_edge),var(--_x),100% - var(--_edge));display:flex;flex-direction:column;align-items:center;width:max-content;max-width:50%;transform:translate(-50%);font-size:.8em}.m-price-ladder__target.is-up{--_dir: var(--m-price-ladder-up)}.m-price-ladder__target.is-down{--_dir: var(--m-price-ladder-down)}.m-price-ladder__target-name{color:var(--m-price-ladder-forward);font-style:italic}.m-price-ladder__target-value{color:var(--m-text);font-weight:600}.m-price-ladder__axis{position:relative;height:3.6em}.m-price-ladder__axis:before{content:\"\";position:absolute;inset:50% 0 auto;height:2px;background:var(--m-border);transform:translateY(-50%)}.m-price-ladder__range,.m-price-ladder__band,.m-price-ladder__connector,.m-price-ladder__tick,.m-price-ladder__target-tick,.m-price-ladder__cross{position:absolute;top:50%;transform:translateY(-50%)}.m-price-ladder__range{height:.5em;background:color-mix(in srgb,var(--m-text-tertiary) 18%,transparent)}.m-price-ladder__band{height:1.6em;border:1px dashed var(--m-price-ladder-forward);border-radius:.2em;background:repeating-linear-gradient(45deg,color-mix(in srgb,var(--m-price-ladder-forward) 22%,transparent) 0 2px,transparent 2px 6px)}.m-price-ladder__connector{height:4px;border-radius:2px;opacity:.55}.m-price-ladder__connector.is-up{background:var(--m-price-ladder-up)}.m-price-ladder__connector.is-down{background:var(--m-price-ladder-down)}.m-price-ladder__cross{top:calc(50% + 1.2em);height:.45em;border:1.5px solid var(--m-text-tertiary);border-top:0}.m-price-ladder__cross.is-gold{border-color:var(--m-price-ladder-gold)}.m-price-ladder__cross.is-down{border-color:var(--m-price-ladder-down)}.m-price-ladder__cross.is-up{border-color:var(--m-price-ladder-up)}.m-price-ladder__tick{width:calc(1px + var(--_rank, 1) * .5px);height:calc(.5em + var(--_rank, 1) * .35em);margin-left:calc(var(--_rank, 1) * -.25px);background:var(--m-text-secondary);opacity:calc(.35 + var(--_rank, 1) * .16)}.m-price-ladder__tick.is-bound{width:2px;height:1.2em;background:var(--m-text-tertiary);opacity:1}.m-price-ladder__target-tick{height:2.4em;border-left:2px dashed var(--m-price-ladder-forward)}.m-price-ladder__target-tick.is-off-scale{width:.6em;height:.6em;margin-left:-.7em;border:0;border-top:2.5px solid var(--m-price-ladder-forward);border-right:2.5px solid var(--m-price-ladder-forward);transform:translateY(-50%) rotate(45deg)}.m-price-ladder__target-tick.is-off-scale.is-left{margin-left:.1em;transform:translateY(-50%) rotate(-135deg)}.m-price-ladder__current{position:absolute;inset:0 auto 0 var(--_x)}.m-price-ladder__current:after{content:\"\";position:absolute;top:50%;width:.9em;height:.9em;border:2px solid var(--m-background);border-radius:50%;background:var(--m-text);transform:translate(-50%,-50%)}.m-price-ladder__current-value{position:absolute;top:-.1em;font-size:.85em;font-weight:650;white-space:nowrap;transform:translate(-50%)}.m-price-ladder__labels{position:relative;height:calc(var(--_lanes, 1) * 3.4em)}.m-price-ladder__label{position:absolute;top:0;left:clamp(var(--_edge),var(--_x),100% - var(--_edge));display:flex;flex-direction:column;align-items:center;font-size:.75em;line-height:1.3;white-space:nowrap;transform:translate(-50%)}.m-price-ladder__label.is-lane-2{top:4.4em}.m-price-ladder__label.is-bound{color:var(--m-text-tertiary)}.m-price-ladder__label-name{color:var(--m-text-secondary)}.m-price-ladder__label-value{color:var(--m-text)}.m-price-ladder__label-gap{color:var(--m-text-tertiary)}.m-price-ladder__list{display:grid}.m-price-ladder__row{display:grid;grid-template-columns:minmax(0,1.2fr) auto 4.5em minmax(3em,1fr);gap:.6em;align-items:center;padding:.45em .1em;border-bottom:1px solid var(--m-border);font-size:.9em}.m-price-ladder__row:last-child{border-bottom:0}.m-price-ladder__row.is-current{font-weight:650}.m-price-ladder__row.is-target{color:var(--m-price-ladder-forward);font-style:italic}.m-price-ladder__row.is-bound{color:var(--m-text-tertiary)}.m-price-ladder__row-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.m-price-ladder__row-value{text-align:end}.m-price-ladder__row-gap{text-align:end;color:var(--m-text-tertiary)}.m-price-ladder__row-track{position:relative;height:.6em}.m-price-ladder__row-track:before{content:\"\";position:absolute;inset:50% 0 auto;height:1px;background:var(--m-border)}.m-price-ladder__row-dot{position:absolute;top:50%;width:.4em;height:.4em;border-radius:50%;background:currentColor;transform:translate(-50%,-50%)}.m-price-ladder__empty{padding:1em;color:var(--m-text-tertiary);font-size:1.25em;text-align:center}\n"]
|
|
35178
|
+
}]
|
|
35179
|
+
}],
|
|
35180
|
+
ctorParameters: () => [],
|
|
35181
|
+
propDecorators: {
|
|
35182
|
+
value: [{
|
|
35183
|
+
type: i0.Input,
|
|
35184
|
+
args: [{
|
|
35185
|
+
isSignal: true,
|
|
35186
|
+
alias: "value",
|
|
35187
|
+
required: false
|
|
35188
|
+
}]
|
|
35189
|
+
}],
|
|
35190
|
+
valueLabel: [{
|
|
35191
|
+
type: i0.Input,
|
|
35192
|
+
args: [{
|
|
35193
|
+
isSignal: true,
|
|
35194
|
+
alias: "valueLabel",
|
|
35195
|
+
required: false
|
|
35196
|
+
}]
|
|
35197
|
+
}],
|
|
35198
|
+
target: [{
|
|
35199
|
+
type: i0.Input,
|
|
35200
|
+
args: [{
|
|
35201
|
+
isSignal: true,
|
|
35202
|
+
alias: "target",
|
|
35203
|
+
required: false
|
|
35204
|
+
}]
|
|
35205
|
+
}],
|
|
35206
|
+
targetLow: [{
|
|
35207
|
+
type: i0.Input,
|
|
35208
|
+
args: [{
|
|
35209
|
+
isSignal: true,
|
|
35210
|
+
alias: "targetLow",
|
|
35211
|
+
required: false
|
|
35212
|
+
}]
|
|
35213
|
+
}],
|
|
35214
|
+
targetHigh: [{
|
|
35215
|
+
type: i0.Input,
|
|
35216
|
+
args: [{
|
|
35217
|
+
isSignal: true,
|
|
35218
|
+
alias: "targetHigh",
|
|
35219
|
+
required: false
|
|
35220
|
+
}]
|
|
35221
|
+
}],
|
|
35222
|
+
targetLabel: [{
|
|
35223
|
+
type: i0.Input,
|
|
35224
|
+
args: [{
|
|
35225
|
+
isSignal: true,
|
|
35226
|
+
alias: "targetLabel",
|
|
35227
|
+
required: false
|
|
35228
|
+
}]
|
|
35229
|
+
}],
|
|
35230
|
+
targetNote: [{
|
|
35231
|
+
type: i0.Input,
|
|
35232
|
+
args: [{
|
|
35233
|
+
isSignal: true,
|
|
35234
|
+
alias: "targetNote",
|
|
35235
|
+
required: false
|
|
35236
|
+
}]
|
|
35237
|
+
}],
|
|
35238
|
+
maxSpanPct: [{
|
|
35239
|
+
type: i0.Input,
|
|
35240
|
+
args: [{
|
|
35241
|
+
isSignal: true,
|
|
35242
|
+
alias: "maxSpanPct",
|
|
35243
|
+
required: false
|
|
35244
|
+
}]
|
|
35245
|
+
}],
|
|
35246
|
+
variant: [{
|
|
35247
|
+
type: i0.Input,
|
|
35248
|
+
args: [{
|
|
35249
|
+
isSignal: true,
|
|
35250
|
+
alias: "variant",
|
|
35251
|
+
required: false
|
|
35252
|
+
}]
|
|
35253
|
+
}],
|
|
35254
|
+
symbol: [{
|
|
35255
|
+
type: i0.Input,
|
|
35256
|
+
args: [{
|
|
35257
|
+
isSignal: true,
|
|
35258
|
+
alias: "symbol",
|
|
35259
|
+
required: false
|
|
35260
|
+
}]
|
|
35261
|
+
}],
|
|
35262
|
+
signals: [{
|
|
35263
|
+
type: i0.Input,
|
|
35264
|
+
args: [{
|
|
35265
|
+
isSignal: true,
|
|
35266
|
+
alias: "signals",
|
|
35267
|
+
required: false
|
|
35268
|
+
}]
|
|
35269
|
+
}],
|
|
35270
|
+
crossFrom: [{
|
|
35271
|
+
type: i0.Input,
|
|
35272
|
+
args: [{
|
|
35273
|
+
isSignal: true,
|
|
35274
|
+
alias: "crossFrom",
|
|
35275
|
+
required: false
|
|
35276
|
+
}]
|
|
35277
|
+
}],
|
|
35278
|
+
crossTo: [{
|
|
35279
|
+
type: i0.Input,
|
|
35280
|
+
args: [{
|
|
35281
|
+
isSignal: true,
|
|
35282
|
+
alias: "crossTo",
|
|
35283
|
+
required: false
|
|
35284
|
+
}]
|
|
35285
|
+
}],
|
|
35286
|
+
crossTone: [{
|
|
35287
|
+
type: i0.Input,
|
|
35288
|
+
args: [{
|
|
35289
|
+
isSignal: true,
|
|
35290
|
+
alias: "crossTone",
|
|
35291
|
+
required: false
|
|
35292
|
+
}]
|
|
35293
|
+
}],
|
|
35294
|
+
markTags: [{
|
|
35295
|
+
type: i0.ContentChildren,
|
|
35296
|
+
args: [i0.forwardRef(() => PriceLadderMarkComponent), { isSignal: true }]
|
|
35297
|
+
}],
|
|
35298
|
+
signalTags: [{
|
|
35299
|
+
type: i0.ContentChildren,
|
|
35300
|
+
args: [i0.forwardRef(() => PriceLadderSignalComponent), { isSignal: true }]
|
|
35301
|
+
}]
|
|
35302
|
+
}
|
|
35303
|
+
});
|
|
35304
|
+
const span = (a, b) => ({
|
|
35305
|
+
left: Math.min(a, b),
|
|
35306
|
+
width: Math.abs(b - a)
|
|
35307
|
+
});
|
|
34289
35308
|
const DOCS_FOLDER = "docs";
|
|
34290
35309
|
const LIBRARY_TIER = "one";
|
|
34291
35310
|
function docAssetCandidates({ name, lang, defaultLang }) {
|
|
@@ -53952,6 +54971,6 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
53952
54971
|
}]
|
|
53953
54972
|
}
|
|
53954
54973
|
});
|
|
53955
|
-
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, PaddingDirective, PaginationComponent, PanelComponent, PercentagePipe, PlaygroundComponent, PluginComponent, PluginInputComponent, PluginOutputComponent, PositionDirective, 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, fullName, 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, isLightAppColor, isLoadingComputed, isLocalhost, isNavCountConfig, isNavInstanceConfig, isNavMenuConfig, isNavRowsConfig, isNavVisibilityConfig, isPlatformNavId, isPlatformPanelNavId, isReadableOn, isScoreStale, isSize, isTierPreview, isUrlLocalhost, isValidNavId, isValidNavSegment, isWebComponent, 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, 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 };
|
|
54974
|
+
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, 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 };
|
|
53956
54975
|
|
|
53957
54976
|
//# sourceMappingURL=magmonium-one.mjs.map
|