@oicl/openbridge-webcomponents 2.0.0-next.121 → 2.0.0-next.122
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/bundle/openbridge-webcomponents.bundle.js +233 -53
- package/bundle/openbridge-webcomponents.bundle.js.map +1 -1
- package/custom-elements.json +66 -17
- package/dist/automation/automation-tank/automation-tank.css.js +94 -14
- package/dist/automation/automation-tank/automation-tank.css.js.map +1 -1
- package/dist/automation/automation-tank/automation-tank.d.ts +53 -5
- package/dist/automation/automation-tank/automation-tank.d.ts.map +1 -1
- package/dist/automation/automation-tank/automation-tank.js +39 -20
- package/dist/automation/automation-tank/automation-tank.js.map +1 -1
- package/dist/building-blocks/readout-block/readout-block.d.ts +27 -1
- package/dist/building-blocks/readout-block/readout-block.d.ts.map +1 -1
- package/dist/building-blocks/readout-block/readout-block.js +31 -10
- package/dist/building-blocks/readout-block/readout-block.js.map +1 -1
- package/dist/navigation-instruments/readout/readout-formatters.d.ts +61 -0
- package/dist/navigation-instruments/readout/readout-formatters.d.ts.map +1 -1
- package/dist/navigation-instruments/readout/readout-formatters.js +35 -2
- package/dist/navigation-instruments/readout/readout-formatters.js.map +1 -1
- package/dist/navigation-instruments/readout/readout.d.ts +19 -2
- package/dist/navigation-instruments/readout/readout.d.ts.map +1 -1
- package/dist/navigation-instruments/readout/readout.js +18 -4
- package/dist/navigation-instruments/readout/readout.js.map +1 -1
- package/dist/navigation-instruments/readout-list/readout-list.d.ts.map +1 -1
- package/dist/navigation-instruments/readout-list/readout-list.js +6 -3
- package/dist/navigation-instruments/readout-list/readout-list.js.map +1 -1
- package/dist/navigation-instruments/readout-list-item/readout-list-item.d.ts +19 -2
- package/dist/navigation-instruments/readout-list-item/readout-list-item.d.ts.map +1 -1
- package/dist/navigation-instruments/readout-list-item/readout-list-item.js +18 -4
- package/dist/navigation-instruments/readout-list-item/readout-list-item.js.map +1 -1
- package/package.json +1 -1
package/custom-elements.json
CHANGED
|
@@ -15669,7 +15669,7 @@
|
|
|
15669
15669
|
"type": {
|
|
15670
15670
|
"text": "TankPositioning"
|
|
15671
15671
|
},
|
|
15672
|
-
"description": "Host positioning model — see `TankPositioning` for details. Defaults to\n`button` (host fills parent container, 100% × 100%, no anchor
|
|
15672
|
+
"description": "Host positioning model — see `TankPositioning` for details. Defaults to\n`button` (host fills parent container, 100% × 100%, falling back to the\ndesign aspect ratio on any axis the parent leaves indefinite, no anchor\noffset). Set to `point` for the legacy P&ID canvas mode (fixed default\ndimensions + top-center anchor offset).",
|
|
15673
15673
|
"attribute": "positioning",
|
|
15674
15674
|
"reflects": true
|
|
15675
15675
|
},
|
|
@@ -15684,6 +15684,15 @@
|
|
|
15684
15684
|
"attribute": "static",
|
|
15685
15685
|
"reflects": true
|
|
15686
15686
|
},
|
|
15687
|
+
{
|
|
15688
|
+
"kind": "field",
|
|
15689
|
+
"name": "clickable",
|
|
15690
|
+
"type": {
|
|
15691
|
+
"text": "boolean"
|
|
15692
|
+
},
|
|
15693
|
+
"default": "true",
|
|
15694
|
+
"description": "Whether the tank is interactive. `true` (default) renders the root as a\n`<button>` with the full flat-mixin interaction surface. `false` renders a\nnon-interactive `<div>` — the resting appearance is unchanged (same\nenabled-state colors and the same 1px border box, via the mixin's\n`noClick` variant), but the hover / pressed / focus-visible states are\ngone and the tank leaves the tab order.\n\nEverything else keeps rendering: the chart / bar, badges, readout, tag and\nthe `alert` frame all behave exactly as they do on a clickable tank. Use\nthis for a display-only tank that still shows live data — e.g. a row total\naggregating the tanks beside it. For \"device present, current state\nunknown\" use `static` instead, which also hides the chart and shrinks to\nthe compact footprint.\n\n`static` is already non-interactive, so this has no effect there.\n\nProperty-only (`attribute: false`, per the repo's positive-default-true\nboolean convention — a `true` default cannot round-trip through an HTML\nboolean attribute). Set it as a property: `el.clickable = false`,\n`.clickable=${false}` in a Lit template, or the equivalent binding in the\nReact / Vue / Angular / Svelte wrappers. A `clickable=\"false\"` attribute in\nplain HTML is **not** observed and leaves the tank interactive."
|
|
15695
|
+
},
|
|
15687
15696
|
{
|
|
15688
15697
|
"kind": "field",
|
|
15689
15698
|
"name": "activated",
|
|
@@ -15691,7 +15700,7 @@
|
|
|
15691
15700
|
"text": "boolean"
|
|
15692
15701
|
},
|
|
15693
15702
|
"default": "false",
|
|
15694
|
-
"description": "Enables the activated background color, used to indicate that the tank is
|
|
15703
|
+
"description": "Enables the activated background color, used to indicate that the tank is\nactivated/selected. Requires an interactive tank — the `noClick` mixin\nvariant used when `clickable` is `false` only paints the enabled state, so\na non-clickable tank ignores this (matching `obc-elevated-card`).",
|
|
15695
15704
|
"attribute": "activated"
|
|
15696
15705
|
},
|
|
15697
15706
|
{
|
|
@@ -16301,7 +16310,7 @@
|
|
|
16301
16310
|
],
|
|
16302
16311
|
"events": [
|
|
16303
16312
|
{
|
|
16304
|
-
"description": "Fired when the tank is clicked.
|
|
16313
|
+
"description": "Fired when the tank is clicked. When `clickable` is `false` the tank renders a plain `<div>`, and in `static` mode a `<div role=\"img\">`, instead of a `<button>` — in both cases it is not focusable or keyboard-activatable; pointer clicks still reach the host.",
|
|
16305
16314
|
"name": "click"
|
|
16306
16315
|
}
|
|
16307
16316
|
],
|
|
@@ -16363,7 +16372,7 @@
|
|
|
16363
16372
|
"type": {
|
|
16364
16373
|
"text": "TankPositioning"
|
|
16365
16374
|
},
|
|
16366
|
-
"description": "Host positioning model — see `TankPositioning` for details. Defaults to\n`button` (host fills parent container, 100% × 100%, no anchor
|
|
16375
|
+
"description": "Host positioning model — see `TankPositioning` for details. Defaults to\n`button` (host fills parent container, 100% × 100%, falling back to the\ndesign aspect ratio on any axis the parent leaves indefinite, no anchor\noffset). Set to `point` for the legacy P&ID canvas mode (fixed default\ndimensions + top-center anchor offset).",
|
|
16367
16376
|
"fieldName": "positioning"
|
|
16368
16377
|
},
|
|
16369
16378
|
{
|
|
@@ -16381,7 +16390,7 @@
|
|
|
16381
16390
|
"text": "boolean"
|
|
16382
16391
|
},
|
|
16383
16392
|
"default": "false",
|
|
16384
|
-
"description": "Enables the activated background color, used to indicate that the tank is
|
|
16393
|
+
"description": "Enables the activated background color, used to indicate that the tank is\nactivated/selected. Requires an interactive tank — the `noClick` mixin\nvariant used when `clickable` is `false` only paints the enabled state, so\na non-clickable tank ignores this (matching `obc-elevated-card`).",
|
|
16385
16394
|
"fieldName": "activated"
|
|
16386
16395
|
},
|
|
16387
16396
|
{
|
|
@@ -40231,7 +40240,7 @@
|
|
|
40231
40240
|
"text": "number"
|
|
40232
40241
|
},
|
|
40233
40242
|
"default": "0",
|
|
40234
|
-
"description": "Number of fraction digits.",
|
|
40243
|
+
"description": "Number of fraction digits. Must be between 0 and 100 — the range\n`Number.prototype.toFixed` accepts; outside it throws a `RangeError`.\nA fractional count truncates (`2.7` → `2`). A count that never arrived\n(`NaN`, `null` or unset) renders the reading as the unavailable dash —\nformatting with a precision the author never chose would let a critical\n`0.4` pass for a healthy `0`.",
|
|
40235
40244
|
"attribute": "fractionDigits"
|
|
40236
40245
|
},
|
|
40237
40246
|
{
|
|
@@ -40241,7 +40250,7 @@
|
|
|
40241
40250
|
"text": "number"
|
|
40242
40251
|
},
|
|
40243
40252
|
"default": "0",
|
|
40244
|
-
"description": "Integer digits to reserve / hint (independent of `fractionDigits`).",
|
|
40253
|
+
"description": "Integer digits to reserve / hint (independent of `fractionDigits`).\nBounded before use: a fractional count\ntruncates (`2.7` → `2`), anything above 100 — including `Infinity` —\ncaps at 100, and a negative count reserves nothing. A count that never\narrived (`NaN`, `null` or unset) renders the reading as the unavailable\ndash, consistent with `fractionDigits`.",
|
|
40245
40254
|
"attribute": "maxDigits"
|
|
40246
40255
|
},
|
|
40247
40256
|
{
|
|
@@ -40348,6 +40357,26 @@
|
|
|
40348
40357
|
"privacy": "private",
|
|
40349
40358
|
"readonly": true
|
|
40350
40359
|
},
|
|
40360
|
+
{
|
|
40361
|
+
"kind": "field",
|
|
40362
|
+
"name": "resolvedMaxDigits",
|
|
40363
|
+
"type": {
|
|
40364
|
+
"text": "number"
|
|
40365
|
+
},
|
|
40366
|
+
"privacy": "private",
|
|
40367
|
+
"description": "`maxDigits` bounded to a usable count. Every width calculation below goes\nthrough this rather than the raw property, so an `Infinity` (or absurdly\nlarge) value cannot reach `String.prototype.repeat`.",
|
|
40368
|
+
"readonly": true
|
|
40369
|
+
},
|
|
40370
|
+
{
|
|
40371
|
+
"kind": "field",
|
|
40372
|
+
"name": "digitCountsMissing",
|
|
40373
|
+
"type": {
|
|
40374
|
+
"text": "boolean"
|
|
40375
|
+
},
|
|
40376
|
+
"privacy": "private",
|
|
40377
|
+
"description": "Whether a digit knob failed to arrive (`NaN` / `null` / `undefined`).\nThe reading then renders as the unavailable dash rather than silently\nformatting with a default the author never chose — a critical `0.4`\nformatted with a failed `fractionDigits` would otherwise print as a\nplausible-looking `0`. A missing `maxDigits` dashes too, for consistency:\neither knob arriving broken means the row's configuration cannot be\ntrusted.",
|
|
40378
|
+
"readonly": true
|
|
40379
|
+
},
|
|
40351
40380
|
{
|
|
40352
40381
|
"kind": "field",
|
|
40353
40382
|
"name": "numericFormatOptions",
|
|
@@ -40520,7 +40549,7 @@
|
|
|
40520
40549
|
"text": "number"
|
|
40521
40550
|
},
|
|
40522
40551
|
"default": "0",
|
|
40523
|
-
"description": "Number of fraction digits.",
|
|
40552
|
+
"description": "Number of fraction digits. Must be between 0 and 100 — the range\n`Number.prototype.toFixed` accepts; outside it throws a `RangeError`.\nA fractional count truncates (`2.7` → `2`). A count that never arrived\n(`NaN`, `null` or unset) renders the reading as the unavailable dash —\nformatting with a precision the author never chose would let a critical\n`0.4` pass for a healthy `0`.",
|
|
40524
40553
|
"fieldName": "fractionDigits"
|
|
40525
40554
|
},
|
|
40526
40555
|
{
|
|
@@ -40529,7 +40558,7 @@
|
|
|
40529
40558
|
"text": "number"
|
|
40530
40559
|
},
|
|
40531
40560
|
"default": "0",
|
|
40532
|
-
"description": "Integer digits to reserve / hint (independent of `fractionDigits`).",
|
|
40561
|
+
"description": "Integer digits to reserve / hint (independent of `fractionDigits`).\nBounded before use: a fractional count\ntruncates (`2.7` → `2`), anything above 100 — including `Infinity` —\ncaps at 100, and a negative count reserves nothing. A count that never\narrived (`NaN`, `null` or unset) renders the reading as the unavailable\ndash, consistent with `fractionDigits`.",
|
|
40533
40562
|
"fieldName": "maxDigits"
|
|
40534
40563
|
},
|
|
40535
40564
|
{
|
|
@@ -91673,7 +91702,7 @@
|
|
|
91673
91702
|
"text": "number"
|
|
91674
91703
|
},
|
|
91675
91704
|
"default": "0",
|
|
91676
|
-
"description": "Also formats the numeric setpoint / advice blocks, which stay numeric\neven when the value is text.",
|
|
91705
|
+
"description": "Also formats the numeric setpoint / advice blocks, which stay numeric\neven when the value is text. Must be between 0 and 100 — the range\n`Number.prototype.toFixed` accepts; outside it throws a `RangeError`.\nA fractional count truncates (`2.7` → `2`). A count that never arrived\n(`NaN`, `null` or unset) renders the reading as the unavailable dash —\nformatting with a precision the author never chose would let a critical\n`0.4` pass for a healthy `0`.",
|
|
91677
91706
|
"attribute": "fractionDigits"
|
|
91678
91707
|
},
|
|
91679
91708
|
{
|
|
@@ -91683,7 +91712,7 @@
|
|
|
91683
91712
|
"text": "number"
|
|
91684
91713
|
},
|
|
91685
91714
|
"default": "0",
|
|
91686
|
-
"description": "Also formats the numeric setpoint / advice blocks, which stay numeric\neven when the value is text.",
|
|
91715
|
+
"description": "Also formats the numeric setpoint / advice blocks, which stay numeric\neven when the value is text. Bounded before use: a fractional count\ntruncates (`2.7` → `2`), anything above 100 — including `Infinity` —\ncaps at 100, and a negative count reserves nothing. A count that never\narrived (`NaN`, `null` or unset) renders the reading as the unavailable\ndash, consistent with `fractionDigits`.",
|
|
91687
91716
|
"attribute": "maxDigits"
|
|
91688
91717
|
},
|
|
91689
91718
|
{
|
|
@@ -91825,6 +91854,16 @@
|
|
|
91825
91854
|
"privacy": "private",
|
|
91826
91855
|
"readonly": true
|
|
91827
91856
|
},
|
|
91857
|
+
{
|
|
91858
|
+
"kind": "field",
|
|
91859
|
+
"name": "digitCountsMissing",
|
|
91860
|
+
"type": {
|
|
91861
|
+
"text": "boolean"
|
|
91862
|
+
},
|
|
91863
|
+
"privacy": "private",
|
|
91864
|
+
"description": "Whether a digit knob failed to arrive (`NaN` / `null` / `undefined`).\nThe raw knobs are forwarded to the blocks, which render the reading as\nthe unavailable dash (see `obc-readout-block.digitCountsMissing`); this\ngetter only keeps the setpoint comparison in agreement with what is\ndisplayed.",
|
|
91865
|
+
"readonly": true
|
|
91866
|
+
},
|
|
91828
91867
|
{
|
|
91829
91868
|
"kind": "field",
|
|
91830
91869
|
"name": "resolvedClickable",
|
|
@@ -92352,7 +92391,7 @@
|
|
|
92352
92391
|
"text": "number"
|
|
92353
92392
|
},
|
|
92354
92393
|
"default": "0",
|
|
92355
|
-
"description": "Also formats the numeric setpoint / advice blocks, which stay numeric\neven when the value is text.",
|
|
92394
|
+
"description": "Also formats the numeric setpoint / advice blocks, which stay numeric\neven when the value is text. Must be between 0 and 100 — the range\n`Number.prototype.toFixed` accepts; outside it throws a `RangeError`.\nA fractional count truncates (`2.7` → `2`). A count that never arrived\n(`NaN`, `null` or unset) renders the reading as the unavailable dash —\nformatting with a precision the author never chose would let a critical\n`0.4` pass for a healthy `0`.",
|
|
92356
92395
|
"fieldName": "fractionDigits"
|
|
92357
92396
|
},
|
|
92358
92397
|
{
|
|
@@ -92361,7 +92400,7 @@
|
|
|
92361
92400
|
"text": "number"
|
|
92362
92401
|
},
|
|
92363
92402
|
"default": "0",
|
|
92364
|
-
"description": "Also formats the numeric setpoint / advice blocks, which stay numeric\neven when the value is text.",
|
|
92403
|
+
"description": "Also formats the numeric setpoint / advice blocks, which stay numeric\neven when the value is text. Bounded before use: a fractional count\ntruncates (`2.7` → `2`), anything above 100 — including `Infinity` —\ncaps at 100, and a negative count reserves nothing. A count that never\narrived (`NaN`, `null` or unset) renders the reading as the unavailable\ndash, consistent with `fractionDigits`.",
|
|
92365
92404
|
"fieldName": "maxDigits"
|
|
92366
92405
|
},
|
|
92367
92406
|
{
|
|
@@ -92795,7 +92834,7 @@
|
|
|
92795
92834
|
"text": "number"
|
|
92796
92835
|
},
|
|
92797
92836
|
"default": "0",
|
|
92798
|
-
"description": "Also formats the numeric setpoint / advice blocks, which stay numeric\neven when the value is text.",
|
|
92837
|
+
"description": "Also formats the numeric setpoint / advice blocks, which stay numeric\neven when the value is text. Must be between 0 and 100 — the range\n`Number.prototype.toFixed` accepts; outside it throws a `RangeError`.\nA fractional count truncates (`2.7` → `2`). A count that never arrived\n(`NaN`, `null` or unset) renders the reading as the unavailable dash —\nformatting with a precision the author never chose would let a critical\n`0.4` pass for a healthy `0`.",
|
|
92799
92838
|
"attribute": "fractionDigits"
|
|
92800
92839
|
},
|
|
92801
92840
|
{
|
|
@@ -92805,7 +92844,7 @@
|
|
|
92805
92844
|
"text": "number"
|
|
92806
92845
|
},
|
|
92807
92846
|
"default": "0",
|
|
92808
|
-
"description": "Also formats the numeric setpoint / advice blocks, which stay numeric\neven when the value is text.",
|
|
92847
|
+
"description": "Also formats the numeric setpoint / advice blocks, which stay numeric\neven when the value is text. Bounded before use: a fractional count\ntruncates (`2.7` → `2`), anything above 100 — including `Infinity` —\ncaps at 100, and a negative count reserves nothing. A count that never\narrived (`NaN`, `null` or unset) renders the reading as the unavailable\ndash, consistent with `fractionDigits`.",
|
|
92809
92848
|
"attribute": "maxDigits"
|
|
92810
92849
|
},
|
|
92811
92850
|
{
|
|
@@ -93006,6 +93045,16 @@
|
|
|
93006
93045
|
"privacy": "private",
|
|
93007
93046
|
"readonly": true
|
|
93008
93047
|
},
|
|
93048
|
+
{
|
|
93049
|
+
"kind": "field",
|
|
93050
|
+
"name": "digitCountsMissing",
|
|
93051
|
+
"type": {
|
|
93052
|
+
"text": "boolean"
|
|
93053
|
+
},
|
|
93054
|
+
"privacy": "private",
|
|
93055
|
+
"description": "Whether a digit knob failed to arrive (`NaN` / `null` / `undefined`).\nThe raw knobs are forwarded to the blocks, which render the reading as\nthe unavailable dash (see `obc-readout-block.digitCountsMissing`); this\ngetter only keeps the setpoint comparison in agreement with what is\ndisplayed.",
|
|
93056
|
+
"readonly": true
|
|
93057
|
+
},
|
|
93009
93058
|
{
|
|
93010
93059
|
"kind": "field",
|
|
93011
93060
|
"name": "hasSrc",
|
|
@@ -93706,7 +93755,7 @@
|
|
|
93706
93755
|
"text": "number"
|
|
93707
93756
|
},
|
|
93708
93757
|
"default": "0",
|
|
93709
|
-
"description": "Also formats the numeric setpoint / advice blocks, which stay numeric\neven when the value is text.",
|
|
93758
|
+
"description": "Also formats the numeric setpoint / advice blocks, which stay numeric\neven when the value is text. Must be between 0 and 100 — the range\n`Number.prototype.toFixed` accepts; outside it throws a `RangeError`.\nA fractional count truncates (`2.7` → `2`). A count that never arrived\n(`NaN`, `null` or unset) renders the reading as the unavailable dash —\nformatting with a precision the author never chose would let a critical\n`0.4` pass for a healthy `0`.",
|
|
93710
93759
|
"fieldName": "fractionDigits"
|
|
93711
93760
|
},
|
|
93712
93761
|
{
|
|
@@ -93715,7 +93764,7 @@
|
|
|
93715
93764
|
"text": "number"
|
|
93716
93765
|
},
|
|
93717
93766
|
"default": "0",
|
|
93718
|
-
"description": "Also formats the numeric setpoint / advice blocks, which stay numeric\neven when the value is text.",
|
|
93767
|
+
"description": "Also formats the numeric setpoint / advice blocks, which stay numeric\neven when the value is text. Bounded before use: a fractional count\ntruncates (`2.7` → `2`), anything above 100 — including `Infinity` —\ncaps at 100, and a negative count reserves nothing. A count that never\narrived (`NaN`, `null` or unset) renders the reading as the unavailable\ndash, consistent with `fractionDigits`.",
|
|
93719
93768
|
"fieldName": "maxDigits"
|
|
93720
93769
|
},
|
|
93721
93770
|
{
|
|
@@ -90,6 +90,42 @@ const compentStyle = css`* {
|
|
|
90
90
|
min-height: 0;
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
+
/* Indefinite-axis fallback.
|
|
94
|
+
*
|
|
95
|
+
* \`width\`/\`height: 100%\` only resolve when the parent's corresponding axis is
|
|
96
|
+
* definite. In a flex/grid dashboard slot one axis is very often left to
|
|
97
|
+
* content — \`align-self: center\` makes the cross axis shrink-to-fit, and a
|
|
98
|
+
* parent sized with \`min-height\`/\`max-height\` (rather than \`height\`) leaves the
|
|
99
|
+
* block axis indefinite. In those cases the percentage computes to \`auto\` and
|
|
100
|
+
* the tank would size to its own content, which includes the chart cell — and
|
|
101
|
+
* the chart sizes itself from the cell it was measured in. That is a circular
|
|
102
|
+
* constraint, and it resolves as a collapsed cell, unbounded growth or
|
|
103
|
+
* pixel-level ringing depending on the loop gain (issue #1121).
|
|
104
|
+
*
|
|
105
|
+
* \`aspect-ratio\` supplies the missing axis from the design footprint the
|
|
106
|
+
* \`point\` variant uses above, so an indefinite axis lands on a definite value
|
|
107
|
+
* that no longer depends on the tank's own content. It is inert when the parent
|
|
108
|
+
* makes both axes definite, so the normal "fill my slot" behavior is unchanged.
|
|
109
|
+
*/
|
|
110
|
+
|
|
111
|
+
:host([positioning="button"]) {
|
|
112
|
+
aspect-ratio: 256 / 376;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
:host([positioning="button"][orientation="horizontal"]) {
|
|
116
|
+
aspect-ratio: 420 / 256;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
:host([positioning="button"][compact]),
|
|
120
|
+
:host([positioning="button"][static]) {
|
|
121
|
+
aspect-ratio: 170 / 282;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
:host([positioning="button"][orientation="horizontal"][compact]),
|
|
125
|
+
:host([positioning="button"][orientation="horizontal"][static]) {
|
|
126
|
+
aspect-ratio: 244 / 208;
|
|
127
|
+
}
|
|
128
|
+
|
|
93
129
|
:host([positioning="button"]) .root {
|
|
94
130
|
position: static;
|
|
95
131
|
top: auto;
|
|
@@ -150,19 +186,26 @@ const compentStyle = css`* {
|
|
|
150
186
|
display: flex;
|
|
151
187
|
flex-direction: column;
|
|
152
188
|
gap: 4px;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
/* Interactive (\`clickable\`, the default): the full six-state flat mixin —
|
|
192
|
+
* enabled, activated, hover, pressed, focus-visible, disabled — painted on
|
|
193
|
+
* \`.halo\`. */
|
|
194
|
+
|
|
195
|
+
.root.clickable {
|
|
153
196
|
cursor: pointer;
|
|
154
197
|
/* prettier-ignore */
|
|
155
198
|
}
|
|
156
199
|
|
|
157
|
-
.root {
|
|
200
|
+
.root.clickable {
|
|
158
201
|
cursor: pointer;
|
|
159
202
|
}
|
|
160
203
|
|
|
161
|
-
.root:focus {
|
|
204
|
+
.root.clickable:focus {
|
|
162
205
|
outline: none;
|
|
163
206
|
}
|
|
164
207
|
|
|
165
|
-
.root .halo {
|
|
208
|
+
.root.clickable .halo {
|
|
166
209
|
border-color: var(--flat-enabled-border-color);
|
|
167
210
|
background-color: var(--flat-enabled-background-color);
|
|
168
211
|
border-width: 1px;
|
|
@@ -172,7 +215,7 @@ const compentStyle = css`* {
|
|
|
172
215
|
--base-background-color: var(--flat-enabled-background-color);
|
|
173
216
|
}
|
|
174
217
|
|
|
175
|
-
.root.activated .halo {
|
|
218
|
+
.root.clickable.activated .halo {
|
|
176
219
|
border-color: var(--flat-activated-border-color);
|
|
177
220
|
background-color: var(--flat-activated-background-color);
|
|
178
221
|
--base-border-color: var(--flat-activated-border-color);
|
|
@@ -181,18 +224,18 @@ const compentStyle = css`* {
|
|
|
181
224
|
|
|
182
225
|
@media (hover:hover) {
|
|
183
226
|
|
|
184
|
-
.root:hover .halo {
|
|
227
|
+
.root.clickable:hover .halo {
|
|
185
228
|
border-color: color-mix(in srgb, var(--flat-hover-border-color) calc(var(--obc-can-hover) * 100%), var(--base-border-color));
|
|
186
229
|
background-color: color-mix(in srgb, var(--flat-hover-background-color) calc(var(--obc-can-hover) * 100%), var(--base-background-color));
|
|
187
230
|
}
|
|
188
231
|
}
|
|
189
232
|
|
|
190
|
-
.root:active .halo {
|
|
233
|
+
.root.clickable:active .halo {
|
|
191
234
|
border-color: var(--flat-pressed-border-color);
|
|
192
235
|
background-color: var(--flat-pressed-background-color);
|
|
193
236
|
}
|
|
194
237
|
|
|
195
|
-
.root:focus-visible .halo {
|
|
238
|
+
.root.clickable:focus-visible .halo {
|
|
196
239
|
outline-color: var(--border-focus-color);
|
|
197
240
|
outline-width: var(--global-size-spacing-border-weight-focusframe);
|
|
198
241
|
outline-style: solid;
|
|
@@ -200,28 +243,50 @@ const compentStyle = css`* {
|
|
|
200
243
|
z-index: 1;
|
|
201
244
|
}
|
|
202
245
|
|
|
203
|
-
.root:disabled .halo {
|
|
246
|
+
.root.clickable:disabled .halo {
|
|
204
247
|
border-color: var(--flat-disabled-border-color);
|
|
205
248
|
background-color: var(--flat-disabled-background-color);
|
|
206
249
|
cursor: not-allowed;
|
|
207
250
|
color: var(--on-flat-disabled-color) !important;
|
|
208
251
|
}
|
|
209
252
|
|
|
210
|
-
.root.disabled .halo {
|
|
253
|
+
.root.clickable.disabled .halo {
|
|
211
254
|
border-color: var(--flat-disabled-border-color);
|
|
212
255
|
background-color: var(--flat-disabled-background-color);
|
|
213
256
|
cursor: not-allowed;
|
|
214
257
|
color: var(--on-flat-disabled-color) !important;
|
|
215
258
|
}
|
|
216
259
|
|
|
217
|
-
.root:disabled {
|
|
260
|
+
.root.clickable:disabled {
|
|
218
261
|
cursor: not-allowed;
|
|
219
262
|
}
|
|
220
263
|
|
|
221
|
-
.root.disabled {
|
|
264
|
+
.root.clickable.disabled {
|
|
222
265
|
cursor: not-allowed;
|
|
223
266
|
}
|
|
224
267
|
|
|
268
|
+
/* Non-interactive (\`clickable\` is \`false\`, and \`static\`, which is display-only
|
|
269
|
+
* by definition): the mixin's \`noClick\` variant emits the enabled state ONLY, so
|
|
270
|
+
* the halo keeps exactly the same resting colors and the same 1px border box
|
|
271
|
+
* — no layout shift, nothing else in the tank changes — while hover, pressed
|
|
272
|
+
* and focus-visible disappear. The root is a \`<div>\` in this case, so there is
|
|
273
|
+
* no focus ring or tab stop to suppress either. Same split as
|
|
274
|
+
* \`obc-elevated-card\`'s \`.not-clickable\` / \`:not(.not-clickable)\` pair. */
|
|
275
|
+
|
|
276
|
+
.root:not(.clickable) {
|
|
277
|
+
cursor: default;
|
|
278
|
+
/* prettier-ignore */
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
.root:not(.clickable) .halo {
|
|
282
|
+
border-color: var(--flat-enabled-border-color);
|
|
283
|
+
background-color: var(--flat-enabled-background-color);
|
|
284
|
+
border-width: 1px;
|
|
285
|
+
border-style: solid;
|
|
286
|
+
--base-border-color: var(--flat-enabled-border-color);
|
|
287
|
+
--base-background-color: var(--flat-enabled-background-color);
|
|
288
|
+
}
|
|
289
|
+
|
|
225
290
|
.root:focus {
|
|
226
291
|
outline: none;
|
|
227
292
|
}
|
|
@@ -241,11 +306,13 @@ const compentStyle = css`* {
|
|
|
241
306
|
top: auto;
|
|
242
307
|
}
|
|
243
308
|
|
|
244
|
-
/* Static is display-only
|
|
245
|
-
*
|
|
309
|
+
/* Static is display-only, so it never gets the \`.clickable\` class and the
|
|
310
|
+
* hover/pressed visuals are already gone via the \`noClick\` rule above. Static
|
|
311
|
+
* additionally refuses pointer events outright — unlike a non-clickable tank,
|
|
312
|
+
* which still lets clicks reach the host so a consumer can opt into handling
|
|
313
|
+
* them. */
|
|
246
314
|
|
|
247
315
|
:host([static]) .root {
|
|
248
|
-
cursor: default;
|
|
249
316
|
pointer-events: none;
|
|
250
317
|
}
|
|
251
318
|
|
|
@@ -693,9 +760,22 @@ const compentStyle = css`* {
|
|
|
693
760
|
overflow: hidden;
|
|
694
761
|
}
|
|
695
762
|
|
|
763
|
+
/* The renderers are taken out of flow so the cell sizes them, never the other
|
|
764
|
+
* way round. Both of them derive a pixel size from the box they are measured
|
|
765
|
+
* in — \`obc-gauge-trend\` publishes an inline \`--chart-height\` computed from its
|
|
766
|
+
* own measured width, and \`obc-bar-vertical\` writes \`height: 100%; width: auto\`
|
|
767
|
+
* onto its own host — so while they are in flow the cell's content height is a
|
|
768
|
+
* function of the cell's own height. Absolute positioning severs that return
|
|
769
|
+
* path: \`.bar-container\` is \`position: relative\`, so \`inset: 0\` pins the
|
|
770
|
+
* renderer to the cell the tank's grid/flex layout already decided on, and a
|
|
771
|
+
* rounding difference between the two can no longer relayout the tank
|
|
772
|
+
* (issue #1121). */
|
|
773
|
+
|
|
696
774
|
.bar-container > obc-gauge-trend,
|
|
697
775
|
.bar-container > obc-bar-vertical {
|
|
698
776
|
display: block;
|
|
777
|
+
position: absolute;
|
|
778
|
+
inset: 0;
|
|
699
779
|
width: 100%;
|
|
700
780
|
height: 100%;
|
|
701
781
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"automation-tank.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"automation-tank.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -50,6 +50,22 @@ export declare enum TankOrientation {
|
|
|
50
50
|
* slot — the parent controls the footprint and the tank renders
|
|
51
51
|
* responsively inside it, just like a regular button. Compact / static
|
|
52
52
|
* inner layout still applies; only the host box is changed.
|
|
53
|
+
*
|
|
54
|
+
* If the parent leaves *one* axis indefinite — a flex/grid slot sized with
|
|
55
|
+
* `min-height`/`max-height` rather than `height`, or a cross axis freed by
|
|
56
|
+
* `align-self: center` — the corresponding `100%` computes to `auto` and the
|
|
57
|
+
* tank derives that axis from the other one through the design aspect ratio
|
|
58
|
+
* of the matching `point` footprint (256×376 vertical, 420×256 horizontal,
|
|
59
|
+
* 170×282 compact/static, 244×208 horizontal compact/static). The size then
|
|
60
|
+
* does not depend on the chart cell, which takes its own size from the cell
|
|
61
|
+
* it was measured in and would otherwise make the constraint circular
|
|
62
|
+
* (issue #1121).
|
|
63
|
+
*
|
|
64
|
+
* If *both* axes are indefinite (a shrink-to-fit parent, e.g. an unsized
|
|
65
|
+
* `inline-block`) there is no axis left to derive from, so the host falls
|
|
66
|
+
* back to its text content. That is stable and non-circular, but much
|
|
67
|
+
* smaller than the design footprint — give the parent a definite size on at
|
|
68
|
+
* least one axis, and on both whenever the exact footprint matters.
|
|
53
69
|
*/
|
|
54
70
|
export declare enum TankPositioning {
|
|
55
71
|
point = "point",
|
|
@@ -89,7 +105,7 @@ declare const ObcAutomationTank_base: (new (...args: any[]) => import('../../svg
|
|
|
89
105
|
* @slot alert-icon - Custom icon for the alert frame.
|
|
90
106
|
* @slot alert-label - Label for the alert frame.
|
|
91
107
|
* @slot alert-timer - Timer for the alert frame.
|
|
92
|
-
* @fires click - Fired when the tank is clicked.
|
|
108
|
+
* @fires click - Fired when the tank is clicked. When `clickable` is `false` the tank renders a plain `<div>`, and in `static` mode a `<div role="img">`, instead of a `<button>` — in both cases it is not focusable or keyboard-activatable; pointer clicks still reach the host.
|
|
93
109
|
* @beta
|
|
94
110
|
*/
|
|
95
111
|
export declare class ObcAutomationTank extends ObcAutomationTank_base {
|
|
@@ -102,9 +118,10 @@ export declare class ObcAutomationTank extends ObcAutomationTank_base {
|
|
|
102
118
|
compact: boolean;
|
|
103
119
|
/**
|
|
104
120
|
* Host positioning model — see `TankPositioning` for details. Defaults to
|
|
105
|
-
* `button` (host fills parent container, 100% × 100%,
|
|
106
|
-
*
|
|
107
|
-
*
|
|
121
|
+
* `button` (host fills parent container, 100% × 100%, falling back to the
|
|
122
|
+
* design aspect ratio on any axis the parent leaves indefinite, no anchor
|
|
123
|
+
* offset). Set to `point` for the legacy P&ID canvas mode (fixed default
|
|
124
|
+
* dimensions + top-center anchor offset).
|
|
108
125
|
*/
|
|
109
126
|
positioning: TankPositioning;
|
|
110
127
|
/**
|
|
@@ -120,7 +137,38 @@ export declare class ObcAutomationTank extends ObcAutomationTank_base {
|
|
|
120
137
|
* activatable controls.
|
|
121
138
|
*/
|
|
122
139
|
static: boolean;
|
|
123
|
-
/**
|
|
140
|
+
/**
|
|
141
|
+
* Whether the tank is interactive. `true` (default) renders the root as a
|
|
142
|
+
* `<button>` with the full flat-mixin interaction surface. `false` renders a
|
|
143
|
+
* non-interactive `<div>` — the resting appearance is unchanged (same
|
|
144
|
+
* enabled-state colors and the same 1px border box, via the mixin's
|
|
145
|
+
* `noClick` variant), but the hover / pressed / focus-visible states are
|
|
146
|
+
* gone and the tank leaves the tab order.
|
|
147
|
+
*
|
|
148
|
+
* Everything else keeps rendering: the chart / bar, badges, readout, tag and
|
|
149
|
+
* the `alert` frame all behave exactly as they do on a clickable tank. Use
|
|
150
|
+
* this for a display-only tank that still shows live data — e.g. a row total
|
|
151
|
+
* aggregating the tanks beside it. For "device present, current state
|
|
152
|
+
* unknown" use `static` instead, which also hides the chart and shrinks to
|
|
153
|
+
* the compact footprint.
|
|
154
|
+
*
|
|
155
|
+
* `static` is already non-interactive, so this has no effect there.
|
|
156
|
+
*
|
|
157
|
+
* Property-only (`attribute: false`, per the repo's positive-default-true
|
|
158
|
+
* boolean convention — a `true` default cannot round-trip through an HTML
|
|
159
|
+
* boolean attribute). Set it as a property: `el.clickable = false`,
|
|
160
|
+
* `.clickable=${false}` in a Lit template, or the equivalent binding in the
|
|
161
|
+
* React / Vue / Angular / Svelte wrappers. A `clickable="false"` attribute in
|
|
162
|
+
* plain HTML is **not** observed and leaves the tank interactive.
|
|
163
|
+
*/
|
|
164
|
+
clickable: boolean;
|
|
165
|
+
/**
|
|
166
|
+
* Enables the activated background color, used to indicate that the tank is
|
|
167
|
+
* activated/selected. Requires an interactive tank — the `noClick` mixin
|
|
168
|
+
* variant used when `clickable` is `false` only paints the enabled state, so
|
|
169
|
+
* a non-clickable tank ignores this (matching `obc-elevated-card`).
|
|
170
|
+
* @availableWhen clickable==true
|
|
171
|
+
*/
|
|
124
172
|
activated: boolean;
|
|
125
173
|
tag: string;
|
|
126
174
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"automation-tank.d.ts","sourceRoot":"","sources":["../../../src/automation/automation-tank/automation-tank.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,UAAU,EAEV,OAAO,EAGR,MAAM,KAAK,CAAC;AAGb,OAAO,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;AACvC,OAAO,yCAAyC,CAAC;AAEjD,OAAO,EACL,0BAA0B,EAC1B,kCAAkC,EAClC,4BAA4B,EAC5B,8BAA8B,EAC/B,MAAM,oDAAoD,CAAC;AAE5D,OAAO,8CAA8C,CAAC;AACtD,OAAO,uCAAuC,CAAC;AAC/C,OAAO,gDAAgD,CAAC;AACxD,OAAO,yCAAyC,CAAC;AACjD,OAAO,wCAAwC,CAAC;AAChD,OAAO,yBAAyB,CAAC;AACjC,OAAO,0BAA0B,CAAC;AAClC,OAAO,oCAAoC,CAAC;AAC5C,OAAO,yDAAyD,CAAC;AACjE,OAAO,oDAAoD,CAAC;AAC5D,OAAO,6CAA6C,CAAC;AACrD,OAAO,EAAC,QAAQ,EAAC,MAAM,uCAAuC,CAAC;AAC/D,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EAClB,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AACzC,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,qDAAqD,CAAC;AAC3F,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,mDAAmD,CAAC;AAWpF,oBAAY,SAAS;IACnB,UAAU,gBAAgB;IAC1B,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,WAAW,iBAAiB;IAC5B,MAAM,WAAW;CAClB;AAED,oBAAY,QAAQ;IAClB,OAAO,YAAY;IACnB,WAAW,gBAAgB;IAC3B,WAAW,gBAAgB;IAC3B,OAAO,YAAY;CACpB;AAED,oBAAY,eAAe;IACzB,QAAQ,aAAa;IACrB,UAAU,eAAe;CAC1B;AAED
|
|
1
|
+
{"version":3,"file":"automation-tank.d.ts","sourceRoot":"","sources":["../../../src/automation/automation-tank/automation-tank.ts"],"names":[],"mappings":"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"}
|
|
@@ -75,6 +75,7 @@ let ObcAutomationTank = class extends SetpointMixin(LitElement) {
|
|
|
75
75
|
this.compact = false;
|
|
76
76
|
this.positioning = "button";
|
|
77
77
|
this.static = false;
|
|
78
|
+
this.clickable = true;
|
|
78
79
|
this.activated = false;
|
|
79
80
|
this.tag = "";
|
|
80
81
|
this.chartMode = "bar";
|
|
@@ -610,26 +611,41 @@ let ObcAutomationTank = class extends SetpointMixin(LitElement) {
|
|
|
610
611
|
const halo = html`
|
|
611
612
|
<div class="halo">${haloContents}${alertFrameOverlay}</div>
|
|
612
613
|
`;
|
|
613
|
-
const
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
614
|
+
const isClickable = this.clickable && !this.static;
|
|
615
|
+
const rootClasses = classMap({
|
|
616
|
+
root: true,
|
|
617
|
+
activated: this.activated,
|
|
618
|
+
clickable: isClickable
|
|
619
|
+
});
|
|
620
|
+
if (this.static) {
|
|
621
|
+
return html`<div
|
|
622
|
+
class=${rootClasses}
|
|
623
|
+
role="img"
|
|
624
|
+
aria-label=${this.tag || "Tank"}
|
|
625
|
+
aria-live="polite"
|
|
626
|
+
aria-atomic="true"
|
|
627
|
+
>
|
|
628
|
+
${halo}
|
|
629
|
+
</div>`;
|
|
630
|
+
}
|
|
631
|
+
if (!isClickable) {
|
|
632
|
+
return html`<div
|
|
633
|
+
class=${rootClasses}
|
|
634
|
+
aria-live="polite"
|
|
635
|
+
aria-atomic="true"
|
|
636
|
+
>
|
|
637
|
+
${halo}
|
|
638
|
+
</div>`;
|
|
639
|
+
}
|
|
640
|
+
return html`<button
|
|
641
|
+
class=${rootClasses}
|
|
642
|
+
type="button"
|
|
643
|
+
aria-label=${this.tag || "Tank"}
|
|
644
|
+
aria-live="polite"
|
|
645
|
+
aria-atomic="true"
|
|
646
|
+
>
|
|
647
|
+
${halo}
|
|
648
|
+
</button>`;
|
|
633
649
|
}
|
|
634
650
|
};
|
|
635
651
|
ObcAutomationTank.styles = unsafeCSS(compentStyle);
|
|
@@ -660,6 +676,9 @@ __decorateClass([
|
|
|
660
676
|
__decorateClass([
|
|
661
677
|
property({ type: Boolean, reflect: true })
|
|
662
678
|
], ObcAutomationTank.prototype, "static", 2);
|
|
679
|
+
__decorateClass([
|
|
680
|
+
property({ type: Boolean, attribute: false })
|
|
681
|
+
], ObcAutomationTank.prototype, "clickable", 2);
|
|
663
682
|
__decorateClass([
|
|
664
683
|
property({ type: Boolean })
|
|
665
684
|
], ObcAutomationTank.prototype, "activated", 2);
|