@limetech/lime-elements 39.42.2 → 39.43.0
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/CHANGELOG.md +11 -0
- package/dist/cjs/limel-chart.cjs.entry.js +111 -20
- package/dist/collection/components/chart/chart.css +109 -6
- package/dist/collection/components/chart/chart.js +114 -21
- package/dist/esm/limel-chart.entry.js +111 -20
- package/dist/lime-elements/lime-elements.esm.js +1 -1
- package/dist/lime-elements/p-7487d65d.entry.js +1 -0
- package/dist/types/components/chart/chart.d.ts +27 -1
- package/dist/types/components/chart/chart.types.d.ts +4 -0
- package/dist/types/components.d.ts +11 -0
- package/package.json +1 -1
- package/dist/lime-elements/p-c8982eef.entry.js +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
## [39.43.0](https://github.com/Lundalogik/lime-elements/compare/v39.42.2...v39.43.0) (2026-07-10)
|
|
2
|
+
|
|
3
|
+
### Features
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
* **chart:** add a scatter chart type ([849c0d4](https://github.com/Lundalogik/lime-elements/commit/849c0d48d6fb0be429c9a84f6697fb928b5111f4))
|
|
7
|
+
### Bug Fixes
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
* **chart:** rotate scatter value-axis labels with orientation ([00aa0cf](https://github.com/Lundalogik/lime-elements/commit/00aa0cf90ac7403f6d0372a99bc873173c0293cf))
|
|
11
|
+
|
|
1
12
|
## [39.42.2](https://github.com/Lundalogik/lime-elements/compare/v39.42.1...v39.42.2) (2026-07-10)
|
|
2
13
|
|
|
3
14
|
### Bug Fixes
|
|
@@ -4,7 +4,7 @@ var index = require('./index-DYg_7kkT.js');
|
|
|
4
4
|
var translations = require('./translations-Bnw00bkf.js');
|
|
5
5
|
var randomString = require('./random-string-BTzDB2ee.js');
|
|
6
6
|
|
|
7
|
-
const chartCss = () => `@charset "UTF-8";:host(limel-chart[type=bar]) .chart,:host(limel-chart[type=dot]) .chart,:host(limel-chart[type=line]) .chart,:host(limel-chart[type=area]) .chart{display:flex;background-color:var(--chart-background-color, transparent)}:host(limel-chart[type=bar]) .item,:host(limel-chart[type=dot]) .item,:host(limel-chart[type=line]) .item,:host(limel-chart[type=area]) .item{position:relative;mix-blend-mode:hard-light}:host(limel-chart[type=bar][orientation=landscape]),:host(limel-chart[type=dot][orientation=landscape]),:host(limel-chart[type=line][orientation=landscape]),:host(limel-chart[type=area][orientation=landscape]){--limel-chart-padding:0.5rem 0.5rem 0.5rem 2rem}:host(limel-chart[type=bar][orientation=landscape]) .chart,:host(limel-chart[type=dot][orientation=landscape]) .chart,:host(limel-chart[type=line][orientation=landscape]) .chart,:host(limel-chart[type=area][orientation=landscape]) .chart{flex-direction:row;align-items:flex-end;overflow:auto hidden;padding:0 0.125rem}:host(limel-chart[type=bar][orientation=landscape]) .item,:host(limel-chart[type=dot][orientation=landscape]) .item,:host(limel-chart[type=line][orientation=landscape]) .item,:host(limel-chart[type=area][orientation=landscape]) .item{min-width:var(--limel-chart-min-item-size);width:inherit}:host(limel-chart[type=bar][orientation=portrait]),:host(limel-chart[type=dot][orientation=portrait]),:host(limel-chart[type=line][orientation=portrait]),:host(limel-chart[type=area][orientation=portrait]){--limel-chart-padding:0.5rem 0.5rem 1rem 0.5rem}:host(limel-chart[type=bar][orientation=portrait]) .chart,:host(limel-chart[type=dot][orientation=portrait]) .chart,:host(limel-chart[type=line][orientation=portrait]) .chart,:host(limel-chart[type=area][orientation=portrait]) .chart{flex-direction:column;overflow:hidden auto;padding:0.125rem 0}:host(limel-chart[type=bar][orientation=portrait]) .item,:host(limel-chart[type=dot][orientation=portrait]) .item,:host(limel-chart[type=line][orientation=portrait]) .item,:host(limel-chart[type=area][orientation=portrait]) .item{min-height:var(--limel-chart-min-item-size);height:inherit}:host(limel-chart[display-axis-labels][orientation=portrait]){--limel-chart-padding:0.5rem 0.5rem 2rem 1.25rem}:host(limel-chart[display-axis-labels][orientation=landscape]){--limel-chart-padding:0.5rem 0.5rem 1.25rem 3rem}:host(limel-chart[display-axis-labels][type=line]) table thead,:host(limel-chart[display-axis-labels][type=line]) table th,:host(limel-chart[display-axis-labels][type=dot]) table thead,:host(limel-chart[display-axis-labels][type=dot]) table th,:host(limel-chart[display-axis-labels][type=area]) table thead,:host(limel-chart[display-axis-labels][type=area]) table th,:host(limel-chart[display-axis-labels][type=bar]) table thead,:host(limel-chart[display-axis-labels][type=bar]) table th{all:unset}:host(limel-chart[display-axis-labels][type=line]) table th,:host(limel-chart[display-axis-labels][type=dot]) table th,:host(limel-chart[display-axis-labels][type=area]) table th,:host(limel-chart[display-axis-labels][type=bar]) table th{position:absolute;font-size:var(--limel-theme-default-small-font-size);max-width:100%;max-height:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host(limel-chart[display-axis-labels][orientation=portrait]) table thead th:first-of-type{left:-1.25rem;writing-mode:sideways-lr}:host(limel-chart[display-axis-labels][orientation=portrait]) table thead th:last-of-type{bottom:-2rem;left:50%;transform:translateX(-50%)}:host(limel-chart[display-axis-labels][orientation=landscape]) table thead th:first-of-type{bottom:-1.25rem;left:50%;transform:translateX(-50%)}:host(limel-chart[display-axis-labels][orientation=landscape]) table thead th:last-of-type{left:-3rem;writing-mode:sideways-lr}:host(limel-chart[display-item-text][type=line]) td.text,:host(limel-chart[display-item-text][type=area]) td.text,:host(limel-chart[display-item-text][type=dot]) td.text,:host(limel-chart[display-item-text][type=bar]) td.text{all:unset;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;position:absolute;font-size:0.75rem;max-width:max(5rem, 100%);mix-blend-mode:difference}:host(limel-chart[display-item-value][type=line]) td.value,:host(limel-chart[display-item-value][type=area]) td.value,:host(limel-chart[display-item-value][type=dot]) td.value,:host(limel-chart[display-item-value][type=bar]) td.value{all:unset;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;position:absolute;font-size:0.75rem;max-width:max(5rem, 100%);border-radius:9rem;padding:0 0.25rem;background-color:rgb(var(--contrast-100), 0.7);box-shadow:var(--shadow-brighten-edges-outside)}:host(limel-chart[display-item-value][type=line]) .item.has-value-zero td.value,:host(limel-chart[display-item-value][type=area]) .item.has-value-zero td.value,:host(limel-chart[display-item-value][type=dot]) .item.has-value-zero td.value,:host(limel-chart[display-item-value][type=bar]) .item.has-value-zero td.value{opacity:0}:host(limel-chart[display-item-text][orientation=landscape]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-text][orientation=landscape]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=landscape]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-value][orientation=landscape]) .item.has-negative-value-only td.value{transform:rotateX(180deg)}:host(limel-chart[display-item-text][orientation=landscape]) .item.has-value-zero td.text,:host(limel-chart[display-item-value][orientation=landscape]) .item.has-value-zero td.text{transform:translateY(-50%)}:host(limel-chart[display-item-text][orientation=portrait]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-text][orientation=portrait]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=portrait]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-value][orientation=portrait]) .item.has-negative-value-only td.value{transform:rotateY(180deg)}:host(limel-chart[display-item-text][orientation=landscape][type=bar]) td.value,:host(limel-chart[display-item-value][orientation=landscape][type=bar]) td.value{top:0;transform:translateY(-50%)}:host(limel-chart[display-item-text][orientation=landscape][type=bar]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=landscape][type=bar]) .item.has-negative-value-only td.value{transform:rotateX(180deg) translateY(50%)}:host(limel-chart[display-item-text][orientation=portrait][type=bar]) td.value,:host(limel-chart[display-item-value][orientation=portrait][type=bar]) td.value{right:0;transform:translateX(50%)}:host(limel-chart[display-item-text][orientation=portrait][type=bar]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=portrait][type=bar]) .item.has-negative-value-only td.value{transform:rotateY(180deg) translateX(-50%)}:host(limel-chart[display-item-text][orientation=portrait][type=bar]) .item.has-value-zero td.text,:host(limel-chart[display-item-value][orientation=portrait][type=bar]) .item.has-value-zero td.text{transform:translateX(50%)}:host(limel-chart[display-item-text][orientation=landscape][type=dot]) td.value,:host(limel-chart[display-item-value][orientation=landscape][type=dot]) td.value{top:1rem}:host(limel-chart[display-item-text][orientation=landscape][type=dot]) td.text,:host(limel-chart[display-item-value][orientation=landscape][type=dot]) td.text{top:0}:host(limel-chart[display-item-text][orientation=landscape][type=dot]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=landscape][type=dot]) .item.has-negative-value-only td.value{transform:rotateX(180deg)}:host(limel-chart[display-item-text][orientation=landscape][type=dot]) .item.has-value-zero td.text,:host(limel-chart[display-item-value][orientation=landscape][type=dot]) .item.has-value-zero td.text{transform:translateY(-100%)}:host(limel-chart[display-item-text][orientation=portrait][type=dot]) td.value,:host(limel-chart[display-item-value][orientation=portrait][type=dot]) td.value{right:-0.25rem;transform:translateX(100%)}:host(limel-chart[display-item-text][orientation=portrait][type=dot]) td.text,:host(limel-chart[display-item-value][orientation=portrait][type=dot]) td.text{right:0.5rem}:host(limel-chart[display-item-text][orientation=portrait][type=dot]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=portrait][type=dot]) .item.has-negative-value-only td.value{transform:rotateY(180deg) translateX(-100%)}:host(limel-chart[display-item-text][orientation=landscape][type=line]) td.text,:host(limel-chart[display-item-text][orientation=landscape][type=line]) td.value,:host(limel-chart[display-item-value][orientation=landscape][type=line]) td.text,:host(limel-chart[display-item-value][orientation=landscape][type=line]) td.value,:host(limel-chart[display-item-text][orientation=landscape][type=area]) td.text,:host(limel-chart[display-item-text][orientation=landscape][type=area]) td.value,:host(limel-chart[display-item-value][orientation=landscape][type=area]) td.text,:host(limel-chart[display-item-value][orientation=landscape][type=area]) td.value{left:0.5rem;bottom:calc((var(--limel-chart-item-size) + var(--limel-chart-item-offset)) * 1%)}:host(limel-chart[display-item-text][orientation=landscape][type=line]) td.text,:host(limel-chart[display-item-value][orientation=landscape][type=line]) td.text,:host(limel-chart[display-item-text][orientation=landscape][type=area]) td.text,:host(limel-chart[display-item-value][orientation=landscape][type=area]) td.text{transform:translateY(150%)}:host(limel-chart[display-item-text][orientation=landscape][type=line]) td.value,:host(limel-chart[display-item-value][orientation=landscape][type=line]) td.value,:host(limel-chart[display-item-text][orientation=landscape][type=area]) td.value,:host(limel-chart[display-item-value][orientation=landscape][type=area]) td.value{transform:translateY(50%)}:host(limel-chart[display-item-text][orientation=landscape][type=line]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-value][orientation=landscape][type=line]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-text][orientation=landscape][type=area]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-value][orientation=landscape][type=area]) .item.has-negative-value-only td.text{transform:translateY(50%)}:host(limel-chart[display-item-text][orientation=landscape][type=line]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=landscape][type=line]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-text][orientation=landscape][type=area]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=landscape][type=area]) .item.has-negative-value-only td.value{transform:translateY(150%)}:host(limel-chart[display-item-text][orientation=portrait][type=line]) td.text,:host(limel-chart[display-item-text][orientation=portrait][type=line]) td.value,:host(limel-chart[display-item-value][orientation=portrait][type=line]) td.text,:host(limel-chart[display-item-value][orientation=portrait][type=line]) td.value,:host(limel-chart[display-item-text][orientation=portrait][type=area]) td.text,:host(limel-chart[display-item-text][orientation=portrait][type=area]) td.value,:host(limel-chart[display-item-value][orientation=portrait][type=area]) td.text,:host(limel-chart[display-item-value][orientation=portrait][type=area]) td.value{left:calc((var(--limel-chart-item-size) + var(--limel-chart-item-offset)) * 1%)}:host(limel-chart[display-item-text][orientation=portrait][type=line]) td.text,:host(limel-chart[display-item-value][orientation=portrait][type=line]) td.text,:host(limel-chart[display-item-text][orientation=portrait][type=area]) td.text,:host(limel-chart[display-item-value][orientation=portrait][type=area]) td.text{transform:translateX(-100%)}:host(limel-chart[display-item-text][orientation=portrait][type=line]) td.value,:host(limel-chart[display-item-value][orientation=portrait][type=line]) td.value,:host(limel-chart[display-item-text][orientation=portrait][type=area]) td.value,:host(limel-chart[display-item-value][orientation=portrait][type=area]) td.value{transform:translateX(0)}:host(limel-chart[display-item-text][orientation=portrait][type=line]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-value][orientation=portrait][type=line]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-text][orientation=portrait][type=area]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-value][orientation=portrait][type=area]) .item.has-negative-value-only td.text{transform:translateX(0)}:host(limel-chart[display-item-text][orientation=portrait][type=line]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=portrait][type=line]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-text][orientation=portrait][type=area]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=portrait][type=area]) .item.has-negative-value-only td.value{transform:translateX(-100%)}:host(limel-chart[type=pie]) table,:host(limel-chart[type=doughnut]) table,:host(limel-chart[type=ring]) table{min-height:2rem;min-width:2rem}:host(limel-chart[type=pie]) .chart,:host(limel-chart[type=pie]) .item,:host(limel-chart[type=doughnut]) .chart,:host(limel-chart[type=doughnut]) .item,:host(limel-chart[type=ring]) .chart,:host(limel-chart[type=ring]) .item{aspect-ratio:1;display:flex;margin:auto}:host(limel-chart[type=pie]) .chart,:host(limel-chart[type=doughnut]) .chart,:host(limel-chart[type=ring]) .chart{justify-content:center;align-items:center}:host(limel-chart[type=pie]) .chart:before,:host(limel-chart[type=doughnut]) .chart:before,:host(limel-chart[type=ring]) .chart:before{aspect-ratio:1;content:"";position:absolute;z-index:0;inset:0;margin:auto;border-radius:50%;max-width:100%;max-height:100%;background-color:var(--chart-background-color, rgb(var(--contrast-200)))}:host(limel-chart[type=pie]) .item,:host(limel-chart[type=doughnut]) .item,:host(limel-chart[type=ring]) .item{max-width:100%;max-height:100%;border-radius:50%;position:absolute;inset:0}:host(limel-chart[type=bar]) .chart,:host(limel-chart[type=dot]) .chart{gap:0.5rem}:host(limel-chart[type=bar]) .item,:host(limel-chart[type=dot]) .item{display:flex;align-items:center;justify-content:center;border-radius:var(--chart-item-border-radius, 0.125rem)}:host(limel-chart[type=bar]) .item{background:var(--limel-chart-item-color, var(--limel-chart-default-item-color))}:host(limel-chart[type=dot]) .item:before,:host(limel-chart[type=dot]) .item:after{content:"";position:absolute;margin:auto;width:var(--limel-chart-min-item-size);height:var(--limel-chart-min-item-size);border-radius:50%}:host(limel-chart[type=dot]) .item::after{background-color:var(--limel-chart-item-color, var(--limel-chart-default-item-color))}:host(limel-chart[type=dot]) .item.has-start-value:before{background-color:var(--limel-chart-item-color, var(--limel-chart-default-item-color))}:host(limel-chart[type=bar][orientation=landscape]) .item,:host(limel-chart[type=dot][orientation=landscape]) .item{height:calc(var(--limel-chart-item-size) * 1%);bottom:calc(var(--limel-chart-item-offset) * 1%)}:host(limel-chart[type=bar][orientation=landscape]) .item.has-negative-value-only,:host(limel-chart[type=dot][orientation=landscape]) .item.has-negative-value-only{height:calc(var(--limel-chart-item-size) * -1%);transform-origin:bottom;transform:rotateX(180deg)}:host(limel-chart[type=dot][orientation=landscape]) .item.has-start-value,:host(limel-chart[type=dot][orientation=landscape]) .item:hover,:host(limel-chart[type=dot][orientation=landscape]) .item:focus-visible{background:linear-gradient(to bottom, rgb(var(--contrast-800), 0.4) 0%, rgb(var(--contrast-800), 0.4) 100%) center/1px 100% no-repeat}:host(limel-chart[type=dot][orientation=landscape]) .item:before{inset:auto 0 0 0;transform:translateY(50%)}:host(limel-chart[type=dot][orientation=landscape]) .item::after{inset:0 0 auto 0;transform:translateY(-50%)}:host(limel-chart[type=bar][orientation=portrait]) .item,:host(limel-chart[type=dot][orientation=portrait]) .item{width:calc(var(--limel-chart-item-size) * 1%);left:calc(var(--limel-chart-item-offset) * 1%)}:host(limel-chart[type=bar][orientation=portrait]) .item.has-negative-value-only,:host(limel-chart[type=dot][orientation=portrait]) .item.has-negative-value-only{width:calc(var(--limel-chart-item-size) * -1%);transform-origin:left;transform:rotateY(180deg)}:host(limel-chart[type=dot][orientation=portrait]) .item.has-start-value,:host(limel-chart[type=dot][orientation=portrait]) .item:hover,:host(limel-chart[type=dot][orientation=portrait]) .item:focus-visible{background:linear-gradient(to right, rgb(var(--contrast-800), 0.4) 0%, rgb(var(--contrast-800), 0.4) 100%) center/100% 1px no-repeat}:host(limel-chart[type=dot][orientation=portrait]) .item:before{inset:0 auto 0 0;transform:translateX(-50%)}:host(limel-chart[type=dot][orientation=portrait]) .item:after{inset:0 0 0 auto;transform:translateX(50%)}:host(limel-chart[type=area]) .item,:host(limel-chart[type=line]) .item{position:relative}:host(limel-chart[type=area]) .item:after,:host(limel-chart[type=line]) .item:after{margin:auto;width:var(--limel-chart-min-item-size);height:var(--limel-chart-min-item-size);border-radius:50%;border:1px solid rgb(var(--contrast-100))}:host(limel-chart[type=area]) .item:before,:host(limel-chart[type=line]) .item:before{inset:0}:host(limel-chart[type=area]) .item:after,:host(limel-chart[type=area]) .item:before,:host(limel-chart[type=line]) .item:after,:host(limel-chart[type=line]) .item:before{transition:border-color 0.2s ease, opacity 0.4s ease;content:"";position:absolute;background:var(--limel-chart-item-color, var(--limel-chart-default-item-color))}:host(limel-chart[type=area]) .item:hover:after,:host(limel-chart[type=area]) .item:focus-visible:after,:host(limel-chart[type=line]) .item:hover:after,:host(limel-chart[type=line]) .item:focus-visible:after{border-color:transparent}:host(limel-chart[type=line][orientation=landscape]) .item,:host(limel-chart[type=area][orientation=landscape]) .item{height:100%}:host(limel-chart[type=line][orientation=landscape]) .item:after,:host(limel-chart[type=area][orientation=landscape]) .item:after{transform:translateX(-50%) translateY(50%);left:0;bottom:calc((var(--limel-chart-item-size) + var(--limel-chart-item-offset)) * 1%)}:host(limel-chart[type=line][orientation=landscape]) .item:last-of-type:before,:host(limel-chart[type=area][orientation=landscape]) .item:last-of-type:before{display:none}:host(limel-chart[type=line][orientation=portrait]) .item,:host(limel-chart[type=area][orientation=portrait]) .item{width:100%}:host(limel-chart[type=line][orientation=portrait]) .item:after,:host(limel-chart[type=area][orientation=portrait]) .item:after{transform:translateX(-50%) translateY(-50%);left:calc((var(--limel-chart-item-size) + var(--limel-chart-item-offset)) * 1%)}:host(limel-chart[type=area]) .item:after{opacity:0}:host(limel-chart[type=area]) .item:hover:after,:host(limel-chart[type=area]) .item:focus-visible:after{opacity:1}:host(limel-chart[type=area]) .item:hover:before,:host(limel-chart[type=area]) .item:focus-visible:before{opacity:0.7}:host(limel-chart[type=area][orientation=landscape]){}:host(limel-chart[type=area][orientation=landscape]) .item:before{clip-path:polygon(0 calc((100 - var(--limel-chart-item-offset)) * 1%), 0 calc((100 - (var(--limel-chart-item-size) + var(--limel-chart-item-offset))) * 1%), 100% calc((100 - (var(--limel-chart-next-item-size) + var(--limel-chart-next-item-offset))) * 1%), 100% calc((100 - var(--limel-chart-next-item-offset)) * 1%))}:host(limel-chart[type=area][orientation=portrait]){}:host(limel-chart[type=area][orientation=portrait]) .item:before{clip-path:polygon(calc(var(--limel-chart-item-offset) * 1%) 0, calc((var(--limel-chart-item-size) + var(--limel-chart-item-offset)) * 1%) 0, calc((var(--limel-chart-next-item-size) + var(--limel-chart-next-item-offset)) * 1%) 100%, calc(var(--limel-chart-next-item-offset) * 1%) 100%)}:host(limel-chart[type=line]){--limel-chart-line-thickness:0.125rem}:host(limel-chart[type=line]) .item:hover:before{opacity:0.4}:host(limel-chart[type=line][orientation=landscape]){}:host(limel-chart[type=line][orientation=landscape]) .item:hover{background:linear-gradient(to bottom, rgb(var(--contrast-800), 0.4) 0%, rgb(var(--contrast-800), 0.4) 100%) left/1px 100% no-repeat}:host(limel-chart[type=line][orientation=landscape]) .item:before{clip-path:polygon(0 calc((100 - (var(--limel-chart-item-size) + var(--limel-chart-item-offset))) * 1%), 0 calc((100 - (var(--limel-chart-item-size) + var(--limel-chart-item-offset))) * 1% + var(--limel-chart-line-thickness)), 100% calc((100 - (var(--limel-chart-next-item-size) + var(--limel-chart-next-item-offset))) * 1% + var(--limel-chart-line-thickness)), 100% calc((100 - (var(--limel-chart-next-item-size) + var(--limel-chart-next-item-offset))) * 1%))}:host(limel-chart[type=line][orientation=portrait]){}:host(limel-chart[type=line][orientation=portrait]) .item:hover{background:linear-gradient(to right, rgb(var(--contrast-800), 0.4) 0%, rgb(var(--contrast-800), 0.4) 100%) top/100% 1px no-repeat}:host(limel-chart[type=line][orientation=portrait]) .item:before{clip-path:polygon(calc((var(--limel-chart-item-size) + var(--limel-chart-item-offset)) * 1%) 0, calc((var(--limel-chart-item-size) + var(--limel-chart-item-offset)) * 1% + var(--limel-chart-line-thickness)) 0, calc((var(--limel-chart-next-item-size) + var(--limel-chart-next-item-offset)) * 1% + var(--limel-chart-line-thickness)) 100%, calc((var(--limel-chart-next-item-size) + var(--limel-chart-next-item-offset)) * 1%) 100%)}:host(limel-chart[type=pie]) .item,:host(limel-chart[type=doughnut]) .item{background:conic-gradient(transparent 0 calc(var(--limel-chart-item-offset) * 1%), var(--limel-chart-item-color, var(--limel-chart-default-item-color)) calc(var(--limel-chart-item-offset) * 1%) calc(var(--limel-chart-item-offset) * 1% + var(--limel-chart-item-size) * 1%), transparent calc(var(--limel-chart-item-offset) * 1% + var(--limel-chart-item-size) * 1%))}:host(limel-chart[type=pie]) .item:focus,:host(limel-chart[type=pie]) .item:focus-visible,:host(limel-chart[type=doughnut]) .item:focus,:host(limel-chart[type=doughnut]) .item:focus-visible{outline:none}:host(limel-chart[type=pie]) .item,:host(limel-chart[type=doughnut]) .item{pointer-events:none}:host(limel-chart[type=doughnut]) .chart:after{aspect-ratio:1;content:"";position:absolute;inset:0;margin:auto;max-width:60%;max-height:60%;border-radius:50%;background-color:rgb(var(--contrast-100))}:host(limel-chart[type=ring]) .chart:after{content:"";position:absolute;inset:0;aspect-ratio:1;border-radius:50%;max-height:calc(100% - var(--limel-chart-number-of-items) * 100% / (var(--limel-chart-number-of-items) + 1));max-width:calc(100% - var(--limel-chart-number-of-items) * 100% / (var(--limel-chart-number-of-items) + 1));background-color:var(--limel-chart-background-color, rgb(var(--contrast-200)))}:host(limel-chart[type=ring]) .chart:has(.item:hover) .item,:host(limel-chart[type=ring]) .chart:has(.item:focus-visible) .item{opacity:1;filter:grayscale(1)}:host(limel-chart[type=ring]) .chart:after,:host(limel-chart[type=ring]) .item{margin:auto;border:1px solid var(--limel-chart-background-color, rgb(var(--contrast-400)))}:host(limel-chart[type=ring]) .item{background:conic-gradient(var(--limel-chart-item-color, var(--limel-chart-default-item-color)) 0 calc(var(--limel-chart-item-offset) * 1% + var(--limel-chart-item-size) * 1%), var(--chart-background-color, rgb(var(--contrast-200))) calc(var(--limel-chart-item-offset) * 1% + var(--limel-chart-item-size) * 1%));max-width:calc(100% - var(--limel-chart-item-index) * 100% / (var(--limel-chart-number-of-items) + 1));max-height:calc(100% - var(--limel-chart-item-index) * 100% / (var(--limel-chart-number-of-items) + 1))}:host(limel-chart[type=ring]) .item:focus-visible,:host(limel-chart[type=ring]) .item:hover{filter:grayscale(0) !important}:host(limel-chart[type=stacked-bar]) .chart{display:flex;border-radius:0.25rem;overflow:hidden;background-color:var(--chart-background-color, rgb(var(--contrast-800), 0.2))}:host(limel-chart[type=stacked-bar]) .item{display:flex;border-radius:var(--chart-item-border-radius, 0);background:var(--limel-chart-item-color, var(--limel-chart-default-item-color))}:host(limel-chart[type=stacked-bar]) .item:last-of-type:not(:focus-visible){box-shadow:none !important}:host(limel-chart[type=stacked-bar][orientation=landscape]) .chart{flex-direction:row}:host(limel-chart[type=stacked-bar][orientation=landscape]) .item{min-height:0.5rem;width:calc(var(--limel-chart-item-size) * 1%)}:host(limel-chart[type=stacked-bar][orientation=landscape]) .item:not(:focus-visible){box-shadow:-1px 0 0 0 var(--chart-item-divider-color, rgb(var(--color-white), 0.6)) inset}:host(limel-chart[type=stacked-bar][orientation=portrait]) .chart{flex-direction:column-reverse}:host(limel-chart[type=stacked-bar][orientation=portrait]) .item{min-width:0.5rem;height:calc(var(--limel-chart-item-size) * 1%)}:host(limel-chart[type=stacked-bar][orientation=portrait]) .item:not(:focus-visible){box-shadow:0 -1px 0 0 rgb(var(--color-white), 0.6) inset}:host(limel-chart[type=nps]){--limel-chart-nps-gauge-angel:220deg}:host(limel-chart[type=nps]) table{min-height:4rem;min-width:4rem}:host(limel-chart[type=nps]) .chart{position:relative;display:flex;justify-content:center;align-items:center;aspect-ratio:1;margin:auto;width:unset;height:unset;max-width:100%;max-height:100%;rotate:calc(var(--limel-chart-nps-gauge-angel) / 2 * -1);transform:translate(-15%, -5%)}:host(limel-chart[type=nps]) .chart:before,:host(limel-chart[type=nps]) .chart:after{content:"";aspect-ratio:1;position:absolute;border-radius:50%;z-index:-1;min-height:0;min-width:0}:host(limel-chart[type=nps]) .chart:before{height:100%;max-height:100%;background:conic-gradient(rgb(var(--color-coral-default)) 0deg calc(var(--limel-chart-nps-gauge-angel) / 2), rgb(var(--color-amber-light)) calc(var(--limel-chart-nps-gauge-angel) / 2) calc(var(--limel-chart-nps-gauge-angel) * 0.65), rgb(var(--color-lime-light)) calc(var(--limel-chart-nps-gauge-angel) * 0.65) calc(var(--limel-chart-nps-gauge-angel) * 0.85), rgb(var(--color-lime-default)) calc(var(--limel-chart-nps-gauge-angel) * 0.85) var(--limel-chart-nps-gauge-angel), transparent var(--limel-chart-nps-gauge-angel))}:host(limel-chart[type=nps]) .chart:after{height:calc(100% - min(3rem, 20%) * 2);max-height:calc(100% - min(3rem, 20%) * 2);background:conic-gradient(var(--chart-background-color, rgb(var(--contrast-100))) 0deg var(--limel-chart-nps-gauge-angel), transparent var(--limel-chart-nps-gauge-angel))}:host(limel-chart[type=nps]) .item{display:flex;align-items:flex-start;justify-content:center;border-radius:0.5rem;position:absolute;height:calc(50% - min(3rem, 20%) + 0.5rem);width:0.5rem;transform:translateY(-50%) rotate(calc((var(--limel-chart-item-value) + 100) / 200 * var(--limel-chart-nps-gauge-angel)));transform-origin:bottom}:host(limel-chart[type=nps]) .item:hover,:host(limel-chart[type=nps]) .item:focus-visible{background:linear-gradient(to bottom, rgb(var(--contrast-800), 0.4) 0%, rgb(var(--contrast-800), 0.4) 100%) center/1px 100% no-repeat}:host(limel-chart[type=nps]) .item:before,:host(limel-chart[type=nps]) .item:after{content:"";position:absolute}:host(limel-chart[type=nps]) .item:before{transform:translateY(-60%);width:0.4rem;border-radius:1rem;border-color:var(--limel-chart-item-color, var(--limel-chart-default-item-color));border-style:solid;border-bottom-width:1.75rem;border-right-color:transparent;border-left-color:transparent;border-top-color:transparent}:host(limel-chart[type=nps]) .item:after{border-radius:50%;background-color:var(--limel-chart-item-color, var(--limel-chart-default-item-color));aspect-ratio:1;height:clamp(0.75rem, 10%, 1.25rem);border:0.125rem solid rgb(var(--contrast-100), 0.8);box-shadow:var(--shadow-depth-8)}.axises{position:absolute;display:flex;justify-content:space-between;min-height:100%;min-width:100%;height:100%;width:100%}.axis-line{transition:opacity 0.4s ease;position:relative;opacity:0.2;font-size:0.625rem;border-color:var(--limel-chart-axis-line-color)}.axis-line:hover{opacity:0.6;transition-duration:0.2s}.axis-line.zero-line{opacity:0.6;z-index:1}.axis-line limel-badge{--badge-background-color:transparent;--badge-text-color:currentColor;position:absolute;text-align:right;min-width:2rem}:host(limel-chart[orientation=landscape]) .axises{flex-direction:column-reverse}:host(limel-chart[orientation=landscape]) .axis-line{border-bottom:1px solid;transform:translateY(50%)}:host(limel-chart[orientation=landscape]) .axis-line limel-badge{bottom:0;left:-2rem;transform:translateY(50%)}:host(limel-chart[orientation=portrait]) .axises{flex-direction:row}:host(limel-chart[orientation=portrait]) .axis-line{border-left:1px solid;transform:translateX(-50%)}:host(limel-chart[orientation=portrait]) .axis-line limel-badge{bottom:-1rem;right:-1rem}:host(limel-chart){--limel-chart-min-item-size:0.5rem;--limel-chart-default-item-color:var( --chart-item-color, rgb(var(--contrast-1100), 0.8) );--chart-axis-line-color:var( --limel-chart-axis-line-color, rgb(var(--contrast-900)) );box-sizing:border-box;isolation:isolate;display:flex;width:100%;height:100%;min-width:0;min-height:0;padding:var(--limel-chart-padding)}table{all:unset;border-collapse:collapse;border-spacing:0;empty-cells:show;position:relative;display:flex;width:100%;height:100%;min-width:0;min-height:0}table colgroup,table thead,table tbody,table tr,table th,table td{all:unset}table caption,table colgroup,table thead,table tfoot,table th,table td{position:absolute;width:0;height:0;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0, 0, 0, 0);clip-path:inset(50%);white-space:nowrap}*,*:before,*:after{box-sizing:border-box}.chart{position:relative;flex-grow:1;width:100%;height:100%;min-height:0;min-width:0}.chart:has(.item:hover) .item,.chart:has(.item:focus-visible) .item{opacity:0.4}.item:focus{outline:none}.item:focus-visible{outline:none;box-shadow:var(--shadow-depth-8-focused)}.item{transition:background-color 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease, opacity 0.4s ease;cursor:help}.item:focus-visible,.item:hover{opacity:1 !important}.item[role=button]{cursor:pointer}limel-spinner{margin:auto}`;
|
|
7
|
+
const chartCss = () => `@charset "UTF-8";:host(limel-chart[type=bar]) .chart,:host(limel-chart[type=dot]) .chart,:host(limel-chart[type=line]) .chart,:host(limel-chart[type=area]) .chart{display:flex;background-color:var(--chart-background-color, transparent)}:host(limel-chart[type=bar]) .item,:host(limel-chart[type=dot]) .item,:host(limel-chart[type=line]) .item,:host(limel-chart[type=area]) .item{position:relative;mix-blend-mode:hard-light}:host(limel-chart[type=bar][orientation=landscape]),:host(limel-chart[type=dot][orientation=landscape]),:host(limel-chart[type=line][orientation=landscape]),:host(limel-chart[type=area][orientation=landscape]){--limel-chart-padding:0.5rem 0.5rem 0.5rem 2rem}:host(limel-chart[type=bar][orientation=landscape]) .chart,:host(limel-chart[type=dot][orientation=landscape]) .chart,:host(limel-chart[type=line][orientation=landscape]) .chart,:host(limel-chart[type=area][orientation=landscape]) .chart{flex-direction:row;align-items:flex-end;overflow:auto hidden;padding:0 0.125rem}:host(limel-chart[type=bar][orientation=landscape]) .item,:host(limel-chart[type=dot][orientation=landscape]) .item,:host(limel-chart[type=line][orientation=landscape]) .item,:host(limel-chart[type=area][orientation=landscape]) .item{min-width:var(--limel-chart-min-item-size);width:inherit}:host(limel-chart[type=bar][orientation=portrait]),:host(limel-chart[type=dot][orientation=portrait]),:host(limel-chart[type=line][orientation=portrait]),:host(limel-chart[type=area][orientation=portrait]){--limel-chart-padding:0.5rem 0.5rem 1rem 0.5rem}:host(limel-chart[type=bar][orientation=portrait]) .chart,:host(limel-chart[type=dot][orientation=portrait]) .chart,:host(limel-chart[type=line][orientation=portrait]) .chart,:host(limel-chart[type=area][orientation=portrait]) .chart{flex-direction:column;overflow:hidden auto;padding:0.125rem 0}:host(limel-chart[type=bar][orientation=portrait]) .item,:host(limel-chart[type=dot][orientation=portrait]) .item,:host(limel-chart[type=line][orientation=portrait]) .item,:host(limel-chart[type=area][orientation=portrait]) .item{min-height:var(--limel-chart-min-item-size);height:inherit}:host(limel-chart[display-axis-labels][orientation=portrait]){--limel-chart-padding:0.5rem 0.5rem 2rem 1.25rem}:host(limel-chart[display-axis-labels][orientation=landscape]){--limel-chart-padding:0.5rem 0.5rem 1.25rem 3rem}:host(limel-chart[display-axis-labels][type=scatter]) table thead,:host(limel-chart[display-axis-labels][type=scatter]) table th,:host(limel-chart[display-axis-labels][type=line]) table thead,:host(limel-chart[display-axis-labels][type=line]) table th,:host(limel-chart[display-axis-labels][type=dot]) table thead,:host(limel-chart[display-axis-labels][type=dot]) table th,:host(limel-chart[display-axis-labels][type=area]) table thead,:host(limel-chart[display-axis-labels][type=area]) table th,:host(limel-chart[display-axis-labels][type=bar]) table thead,:host(limel-chart[display-axis-labels][type=bar]) table th{all:unset}:host(limel-chart[display-axis-labels][type=scatter]) table th,:host(limel-chart[display-axis-labels][type=line]) table th,:host(limel-chart[display-axis-labels][type=dot]) table th,:host(limel-chart[display-axis-labels][type=area]) table th,:host(limel-chart[display-axis-labels][type=bar]) table th{position:absolute;font-size:var(--limel-theme-default-small-font-size);max-width:100%;max-height:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host(limel-chart[display-axis-labels][orientation=portrait]) table thead th:first-of-type{left:-1.25rem;writing-mode:sideways-lr}:host(limel-chart[display-axis-labels][orientation=portrait]) table thead th:last-of-type{bottom:-2rem;left:50%;transform:translateX(-50%)}:host(limel-chart[display-axis-labels][orientation=landscape]) table thead th:first-of-type{bottom:-1.25rem;left:50%;transform:translateX(-50%)}:host(limel-chart[display-axis-labels][orientation=landscape]) table thead th:last-of-type{left:-3rem;writing-mode:sideways-lr}:host(limel-chart[display-item-text][type=scatter]) td.text,:host(limel-chart[display-item-text][type=line]) td.text,:host(limel-chart[display-item-text][type=area]) td.text,:host(limel-chart[display-item-text][type=dot]) td.text,:host(limel-chart[display-item-text][type=bar]) td.text{all:unset;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;position:absolute;font-size:0.75rem;max-width:max(5rem, 100%);mix-blend-mode:difference}:host(limel-chart[display-item-value][type=scatter]) td.value,:host(limel-chart[display-item-value][type=line]) td.value,:host(limel-chart[display-item-value][type=area]) td.value,:host(limel-chart[display-item-value][type=dot]) td.value,:host(limel-chart[display-item-value][type=bar]) td.value{all:unset;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;position:absolute;font-size:0.75rem;max-width:max(5rem, 100%);border-radius:9rem;padding:0 0.25rem;background-color:rgb(var(--contrast-100), 0.7);box-shadow:var(--shadow-brighten-edges-outside)}:host(limel-chart[display-item-value][type=scatter]) .item.has-value-zero td.value,:host(limel-chart[display-item-value][type=line]) .item.has-value-zero td.value,:host(limel-chart[display-item-value][type=area]) .item.has-value-zero td.value,:host(limel-chart[display-item-value][type=dot]) .item.has-value-zero td.value,:host(limel-chart[display-item-value][type=bar]) .item.has-value-zero td.value{opacity:0}:host(limel-chart[display-item-text][orientation=landscape]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-text][orientation=landscape]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=landscape]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-value][orientation=landscape]) .item.has-negative-value-only td.value{transform:rotateX(180deg)}:host(limel-chart[display-item-text][orientation=landscape]) .item.has-value-zero td.text,:host(limel-chart[display-item-value][orientation=landscape]) .item.has-value-zero td.text{transform:translateY(-50%)}:host(limel-chart[display-item-text][orientation=portrait]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-text][orientation=portrait]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=portrait]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-value][orientation=portrait]) .item.has-negative-value-only td.value{transform:rotateY(180deg)}:host(limel-chart[display-item-text][orientation=landscape][type=bar]) td.value,:host(limel-chart[display-item-value][orientation=landscape][type=bar]) td.value{top:0;transform:translateY(-50%)}:host(limel-chart[display-item-text][orientation=landscape][type=bar]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=landscape][type=bar]) .item.has-negative-value-only td.value{transform:rotateX(180deg) translateY(50%)}:host(limel-chart[display-item-text][orientation=portrait][type=bar]) td.value,:host(limel-chart[display-item-value][orientation=portrait][type=bar]) td.value{right:0;transform:translateX(50%)}:host(limel-chart[display-item-text][orientation=portrait][type=bar]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=portrait][type=bar]) .item.has-negative-value-only td.value{transform:rotateY(180deg) translateX(-50%)}:host(limel-chart[display-item-text][orientation=portrait][type=bar]) .item.has-value-zero td.text,:host(limel-chart[display-item-value][orientation=portrait][type=bar]) .item.has-value-zero td.text{transform:translateX(50%)}:host(limel-chart[display-item-text][orientation=landscape][type=dot]) td.value,:host(limel-chart[display-item-value][orientation=landscape][type=dot]) td.value{top:1rem}:host(limel-chart[display-item-text][orientation=landscape][type=dot]) td.text,:host(limel-chart[display-item-value][orientation=landscape][type=dot]) td.text{top:0}:host(limel-chart[display-item-text][orientation=landscape][type=dot]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=landscape][type=dot]) .item.has-negative-value-only td.value{transform:rotateX(180deg)}:host(limel-chart[display-item-text][orientation=landscape][type=dot]) .item.has-value-zero td.text,:host(limel-chart[display-item-value][orientation=landscape][type=dot]) .item.has-value-zero td.text{transform:translateY(-100%)}:host(limel-chart[display-item-text][orientation=portrait][type=dot]) td.value,:host(limel-chart[display-item-value][orientation=portrait][type=dot]) td.value{right:-0.25rem;transform:translateX(100%)}:host(limel-chart[display-item-text][orientation=portrait][type=dot]) td.text,:host(limel-chart[display-item-value][orientation=portrait][type=dot]) td.text{right:0.5rem}:host(limel-chart[display-item-text][orientation=portrait][type=dot]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=portrait][type=dot]) .item.has-negative-value-only td.value{transform:rotateY(180deg) translateX(-100%)}:host(limel-chart[display-item-text][type=scatter]) td.text{bottom:calc(100% + 0.25rem);left:50%;transform:translateX(-50%)}:host(limel-chart[display-item-value][type=scatter]) td.value{top:calc(100% + 0.25rem);left:50%;transform:translateX(-50%)}:host(limel-chart[display-item-text][orientation=landscape][type=line]) td.text,:host(limel-chart[display-item-text][orientation=landscape][type=line]) td.value,:host(limel-chart[display-item-value][orientation=landscape][type=line]) td.text,:host(limel-chart[display-item-value][orientation=landscape][type=line]) td.value,:host(limel-chart[display-item-text][orientation=landscape][type=area]) td.text,:host(limel-chart[display-item-text][orientation=landscape][type=area]) td.value,:host(limel-chart[display-item-value][orientation=landscape][type=area]) td.text,:host(limel-chart[display-item-value][orientation=landscape][type=area]) td.value{left:0.5rem;bottom:calc((var(--limel-chart-item-size) + var(--limel-chart-item-offset)) * 1%)}:host(limel-chart[display-item-text][orientation=landscape][type=line]) td.text,:host(limel-chart[display-item-value][orientation=landscape][type=line]) td.text,:host(limel-chart[display-item-text][orientation=landscape][type=area]) td.text,:host(limel-chart[display-item-value][orientation=landscape][type=area]) td.text{transform:translateY(150%)}:host(limel-chart[display-item-text][orientation=landscape][type=line]) td.value,:host(limel-chart[display-item-value][orientation=landscape][type=line]) td.value,:host(limel-chart[display-item-text][orientation=landscape][type=area]) td.value,:host(limel-chart[display-item-value][orientation=landscape][type=area]) td.value{transform:translateY(50%)}:host(limel-chart[display-item-text][orientation=landscape][type=line]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-value][orientation=landscape][type=line]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-text][orientation=landscape][type=area]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-value][orientation=landscape][type=area]) .item.has-negative-value-only td.text{transform:translateY(50%)}:host(limel-chart[display-item-text][orientation=landscape][type=line]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=landscape][type=line]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-text][orientation=landscape][type=area]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=landscape][type=area]) .item.has-negative-value-only td.value{transform:translateY(150%)}:host(limel-chart[display-item-text][orientation=portrait][type=line]) td.text,:host(limel-chart[display-item-text][orientation=portrait][type=line]) td.value,:host(limel-chart[display-item-value][orientation=portrait][type=line]) td.text,:host(limel-chart[display-item-value][orientation=portrait][type=line]) td.value,:host(limel-chart[display-item-text][orientation=portrait][type=area]) td.text,:host(limel-chart[display-item-text][orientation=portrait][type=area]) td.value,:host(limel-chart[display-item-value][orientation=portrait][type=area]) td.text,:host(limel-chart[display-item-value][orientation=portrait][type=area]) td.value{left:calc((var(--limel-chart-item-size) + var(--limel-chart-item-offset)) * 1%)}:host(limel-chart[display-item-text][orientation=portrait][type=line]) td.text,:host(limel-chart[display-item-value][orientation=portrait][type=line]) td.text,:host(limel-chart[display-item-text][orientation=portrait][type=area]) td.text,:host(limel-chart[display-item-value][orientation=portrait][type=area]) td.text{transform:translateX(-100%)}:host(limel-chart[display-item-text][orientation=portrait][type=line]) td.value,:host(limel-chart[display-item-value][orientation=portrait][type=line]) td.value,:host(limel-chart[display-item-text][orientation=portrait][type=area]) td.value,:host(limel-chart[display-item-value][orientation=portrait][type=area]) td.value{transform:translateX(0)}:host(limel-chart[display-item-text][orientation=portrait][type=line]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-value][orientation=portrait][type=line]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-text][orientation=portrait][type=area]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-value][orientation=portrait][type=area]) .item.has-negative-value-only td.text{transform:translateX(0)}:host(limel-chart[display-item-text][orientation=portrait][type=line]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=portrait][type=line]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-text][orientation=portrait][type=area]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=portrait][type=area]) .item.has-negative-value-only td.value{transform:translateX(-100%)}:host(limel-chart[type=pie]) table,:host(limel-chart[type=doughnut]) table,:host(limel-chart[type=ring]) table{min-height:2rem;min-width:2rem}:host(limel-chart[type=pie]) .chart,:host(limel-chart[type=pie]) .item,:host(limel-chart[type=doughnut]) .chart,:host(limel-chart[type=doughnut]) .item,:host(limel-chart[type=ring]) .chart,:host(limel-chart[type=ring]) .item{aspect-ratio:1;display:flex;margin:auto}:host(limel-chart[type=pie]) .chart,:host(limel-chart[type=doughnut]) .chart,:host(limel-chart[type=ring]) .chart{justify-content:center;align-items:center}:host(limel-chart[type=pie]) .chart:before,:host(limel-chart[type=doughnut]) .chart:before,:host(limel-chart[type=ring]) .chart:before{aspect-ratio:1;content:"";position:absolute;z-index:0;inset:0;margin:auto;border-radius:50%;max-width:100%;max-height:100%;background-color:var(--chart-background-color, rgb(var(--contrast-200)))}:host(limel-chart[type=pie]) .item,:host(limel-chart[type=doughnut]) .item,:host(limel-chart[type=ring]) .item{max-width:100%;max-height:100%;border-radius:50%;position:absolute;inset:0}:host(limel-chart[type=bar]) .chart,:host(limel-chart[type=dot]) .chart{gap:0.5rem}:host(limel-chart[type=bar]) .item,:host(limel-chart[type=dot]) .item{display:flex;align-items:center;justify-content:center;border-radius:var(--chart-item-border-radius, 0.125rem)}:host(limel-chart[type=bar]) .item{background:var(--limel-chart-item-color, var(--limel-chart-default-item-color))}:host(limel-chart[type=dot]) .item:before,:host(limel-chart[type=dot]) .item:after{content:"";position:absolute;margin:auto;width:var(--limel-chart-min-item-size);height:var(--limel-chart-min-item-size);border-radius:50%}:host(limel-chart[type=dot]) .item::after{background-color:var(--limel-chart-item-color, var(--limel-chart-default-item-color))}:host(limel-chart[type=dot]) .item.has-start-value:before{background-color:var(--limel-chart-item-color, var(--limel-chart-default-item-color))}:host(limel-chart[type=bar][orientation=landscape]) .item,:host(limel-chart[type=dot][orientation=landscape]) .item{height:calc(var(--limel-chart-item-size) * 1%);bottom:calc(var(--limel-chart-item-offset) * 1%)}:host(limel-chart[type=bar][orientation=landscape]) .item.has-negative-value-only,:host(limel-chart[type=dot][orientation=landscape]) .item.has-negative-value-only{height:calc(var(--limel-chart-item-size) * -1%);transform-origin:bottom;transform:rotateX(180deg)}:host(limel-chart[type=dot][orientation=landscape]) .item.has-start-value,:host(limel-chart[type=dot][orientation=landscape]) .item:hover,:host(limel-chart[type=dot][orientation=landscape]) .item:focus-visible{background:linear-gradient(to bottom, rgb(var(--contrast-800), 0.4) 0%, rgb(var(--contrast-800), 0.4) 100%) center/1px 100% no-repeat}:host(limel-chart[type=dot][orientation=landscape]) .item:before{inset:auto 0 0 0;transform:translateY(50%)}:host(limel-chart[type=dot][orientation=landscape]) .item::after{inset:0 0 auto 0;transform:translateY(-50%)}:host(limel-chart[type=bar][orientation=portrait]) .item,:host(limel-chart[type=dot][orientation=portrait]) .item{width:calc(var(--limel-chart-item-size) * 1%);left:calc(var(--limel-chart-item-offset) * 1%)}:host(limel-chart[type=bar][orientation=portrait]) .item.has-negative-value-only,:host(limel-chart[type=dot][orientation=portrait]) .item.has-negative-value-only{width:calc(var(--limel-chart-item-size) * -1%);transform-origin:left;transform:rotateY(180deg)}:host(limel-chart[type=dot][orientation=portrait]) .item.has-start-value,:host(limel-chart[type=dot][orientation=portrait]) .item:hover,:host(limel-chart[type=dot][orientation=portrait]) .item:focus-visible{background:linear-gradient(to right, rgb(var(--contrast-800), 0.4) 0%, rgb(var(--contrast-800), 0.4) 100%) center/100% 1px no-repeat}:host(limel-chart[type=dot][orientation=portrait]) .item:before{inset:0 auto 0 0;transform:translateX(-50%)}:host(limel-chart[type=dot][orientation=portrait]) .item:after{inset:0 0 0 auto;transform:translateX(50%)}:host(limel-chart[type=area]) .item,:host(limel-chart[type=line]) .item{position:relative}:host(limel-chart[type=area]) .item:after,:host(limel-chart[type=line]) .item:after{margin:auto;width:var(--limel-chart-min-item-size);height:var(--limel-chart-min-item-size);border-radius:50%;border:1px solid rgb(var(--contrast-100))}:host(limel-chart[type=area]) .item:before,:host(limel-chart[type=line]) .item:before{inset:0}:host(limel-chart[type=area]) .item:after,:host(limel-chart[type=area]) .item:before,:host(limel-chart[type=line]) .item:after,:host(limel-chart[type=line]) .item:before{transition:border-color 0.2s ease, opacity 0.4s ease;content:"";position:absolute;background:var(--limel-chart-item-color, var(--limel-chart-default-item-color))}:host(limel-chart[type=area]) .item:hover:after,:host(limel-chart[type=area]) .item:focus-visible:after,:host(limel-chart[type=line]) .item:hover:after,:host(limel-chart[type=line]) .item:focus-visible:after{border-color:transparent}:host(limel-chart[type=line][orientation=landscape]) .item,:host(limel-chart[type=area][orientation=landscape]) .item{height:100%}:host(limel-chart[type=line][orientation=landscape]) .item:after,:host(limel-chart[type=area][orientation=landscape]) .item:after{transform:translateX(-50%) translateY(50%);left:0;bottom:calc((var(--limel-chart-item-size) + var(--limel-chart-item-offset)) * 1%)}:host(limel-chart[type=line][orientation=landscape]) .item:last-of-type:before,:host(limel-chart[type=area][orientation=landscape]) .item:last-of-type:before{display:none}:host(limel-chart[type=line][orientation=portrait]) .item,:host(limel-chart[type=area][orientation=portrait]) .item{width:100%}:host(limel-chart[type=line][orientation=portrait]) .item:after,:host(limel-chart[type=area][orientation=portrait]) .item:after{transform:translateX(-50%) translateY(-50%);left:calc((var(--limel-chart-item-size) + var(--limel-chart-item-offset)) * 1%)}:host(limel-chart[type=area]) .item:after{opacity:0}:host(limel-chart[type=area]) .item:hover:after,:host(limel-chart[type=area]) .item:focus-visible:after{opacity:1}:host(limel-chart[type=area]) .item:hover:before,:host(limel-chart[type=area]) .item:focus-visible:before{opacity:0.7}:host(limel-chart[type=area][orientation=landscape]){}:host(limel-chart[type=area][orientation=landscape]) .item:before{clip-path:polygon(0 calc((100 - var(--limel-chart-item-offset)) * 1%), 0 calc((100 - (var(--limel-chart-item-size) + var(--limel-chart-item-offset))) * 1%), 100% calc((100 - (var(--limel-chart-next-item-size) + var(--limel-chart-next-item-offset))) * 1%), 100% calc((100 - var(--limel-chart-next-item-offset)) * 1%))}:host(limel-chart[type=area][orientation=portrait]){}:host(limel-chart[type=area][orientation=portrait]) .item:before{clip-path:polygon(calc(var(--limel-chart-item-offset) * 1%) 0, calc((var(--limel-chart-item-size) + var(--limel-chart-item-offset)) * 1%) 0, calc((var(--limel-chart-next-item-size) + var(--limel-chart-next-item-offset)) * 1%) 100%, calc(var(--limel-chart-next-item-offset) * 1%) 100%)}:host(limel-chart[type=line]){--limel-chart-line-thickness:0.125rem}:host(limel-chart[type=line]) .item:hover:before{opacity:0.4}:host(limel-chart[type=line][orientation=landscape]){}:host(limel-chart[type=line][orientation=landscape]) .item:hover{background:linear-gradient(to bottom, rgb(var(--contrast-800), 0.4) 0%, rgb(var(--contrast-800), 0.4) 100%) left/1px 100% no-repeat}:host(limel-chart[type=line][orientation=landscape]) .item:before{clip-path:polygon(0 calc((100 - (var(--limel-chart-item-size) + var(--limel-chart-item-offset))) * 1%), 0 calc((100 - (var(--limel-chart-item-size) + var(--limel-chart-item-offset))) * 1% + var(--limel-chart-line-thickness)), 100% calc((100 - (var(--limel-chart-next-item-size) + var(--limel-chart-next-item-offset))) * 1% + var(--limel-chart-line-thickness)), 100% calc((100 - (var(--limel-chart-next-item-size) + var(--limel-chart-next-item-offset))) * 1%))}:host(limel-chart[type=line][orientation=portrait]){}:host(limel-chart[type=line][orientation=portrait]) .item:hover{background:linear-gradient(to right, rgb(var(--contrast-800), 0.4) 0%, rgb(var(--contrast-800), 0.4) 100%) top/100% 1px no-repeat}:host(limel-chart[type=line][orientation=portrait]) .item:before{clip-path:polygon(calc((var(--limel-chart-item-size) + var(--limel-chart-item-offset)) * 1%) 0, calc((var(--limel-chart-item-size) + var(--limel-chart-item-offset)) * 1% + var(--limel-chart-line-thickness)) 0, calc((var(--limel-chart-next-item-size) + var(--limel-chart-next-item-offset)) * 1% + var(--limel-chart-line-thickness)) 100%, calc((var(--limel-chart-next-item-size) + var(--limel-chart-next-item-offset)) * 1%) 100%)}:host(limel-chart[type=pie]) .item,:host(limel-chart[type=doughnut]) .item{background:conic-gradient(transparent 0 calc(var(--limel-chart-item-offset) * 1%), var(--limel-chart-item-color, var(--limel-chart-default-item-color)) calc(var(--limel-chart-item-offset) * 1%) calc(var(--limel-chart-item-offset) * 1% + var(--limel-chart-item-size) * 1%), transparent calc(var(--limel-chart-item-offset) * 1% + var(--limel-chart-item-size) * 1%))}:host(limel-chart[type=pie]) .item:focus,:host(limel-chart[type=pie]) .item:focus-visible,:host(limel-chart[type=doughnut]) .item:focus,:host(limel-chart[type=doughnut]) .item:focus-visible{outline:none}:host(limel-chart[type=pie]) .item,:host(limel-chart[type=doughnut]) .item{pointer-events:none}:host(limel-chart[type=doughnut]) .chart:after{aspect-ratio:1;content:"";position:absolute;inset:0;margin:auto;max-width:60%;max-height:60%;border-radius:50%;background-color:rgb(var(--contrast-100))}:host(limel-chart[type=ring]) .chart:after{content:"";position:absolute;inset:0;aspect-ratio:1;border-radius:50%;max-height:calc(100% - var(--limel-chart-number-of-items) * 100% / (var(--limel-chart-number-of-items) + 1));max-width:calc(100% - var(--limel-chart-number-of-items) * 100% / (var(--limel-chart-number-of-items) + 1));background-color:var(--limel-chart-background-color, rgb(var(--contrast-200)))}:host(limel-chart[type=ring]) .chart:has(.item:hover) .item,:host(limel-chart[type=ring]) .chart:has(.item:focus-visible) .item{opacity:1;filter:grayscale(1)}:host(limel-chart[type=ring]) .chart:after,:host(limel-chart[type=ring]) .item{margin:auto;border:1px solid var(--limel-chart-background-color, rgb(var(--contrast-400)))}:host(limel-chart[type=ring]) .item{background:conic-gradient(var(--limel-chart-item-color, var(--limel-chart-default-item-color)) 0 calc(var(--limel-chart-item-offset) * 1% + var(--limel-chart-item-size) * 1%), var(--chart-background-color, rgb(var(--contrast-200))) calc(var(--limel-chart-item-offset) * 1% + var(--limel-chart-item-size) * 1%));max-width:calc(100% - var(--limel-chart-item-index) * 100% / (var(--limel-chart-number-of-items) + 1));max-height:calc(100% - var(--limel-chart-item-index) * 100% / (var(--limel-chart-number-of-items) + 1))}:host(limel-chart[type=ring]) .item:focus-visible,:host(limel-chart[type=ring]) .item:hover{filter:grayscale(0) !important}:host(limel-chart[type=stacked-bar]) .chart{display:flex;border-radius:0.25rem;overflow:hidden;background-color:var(--chart-background-color, rgb(var(--contrast-800), 0.2))}:host(limel-chart[type=stacked-bar]) .item{display:flex;border-radius:var(--chart-item-border-radius, 0);background:var(--limel-chart-item-color, var(--limel-chart-default-item-color))}:host(limel-chart[type=stacked-bar]) .item:last-of-type:not(:focus-visible){box-shadow:none !important}:host(limel-chart[type=stacked-bar][orientation=landscape]) .chart{flex-direction:row}:host(limel-chart[type=stacked-bar][orientation=landscape]) .item{min-height:0.5rem;width:calc(var(--limel-chart-item-size) * 1%)}:host(limel-chart[type=stacked-bar][orientation=landscape]) .item:not(:focus-visible){box-shadow:-1px 0 0 0 var(--chart-item-divider-color, rgb(var(--color-white), 0.6)) inset}:host(limel-chart[type=stacked-bar][orientation=portrait]) .chart{flex-direction:column-reverse}:host(limel-chart[type=stacked-bar][orientation=portrait]) .item{min-width:0.5rem;height:calc(var(--limel-chart-item-size) * 1%)}:host(limel-chart[type=stacked-bar][orientation=portrait]) .item:not(:focus-visible){box-shadow:0 -1px 0 0 rgb(var(--color-white), 0.6) inset}:host(limel-chart[type=nps]){--limel-chart-nps-gauge-angel:220deg}:host(limel-chart[type=nps]) table{min-height:4rem;min-width:4rem}:host(limel-chart[type=nps]) .chart{position:relative;display:flex;justify-content:center;align-items:center;aspect-ratio:1;margin:auto;width:unset;height:unset;max-width:100%;max-height:100%;rotate:calc(var(--limel-chart-nps-gauge-angel) / 2 * -1);transform:translate(-15%, -5%)}:host(limel-chart[type=nps]) .chart:before,:host(limel-chart[type=nps]) .chart:after{content:"";aspect-ratio:1;position:absolute;border-radius:50%;z-index:-1;min-height:0;min-width:0}:host(limel-chart[type=nps]) .chart:before{height:100%;max-height:100%;background:conic-gradient(rgb(var(--color-coral-default)) 0deg calc(var(--limel-chart-nps-gauge-angel) / 2), rgb(var(--color-amber-light)) calc(var(--limel-chart-nps-gauge-angel) / 2) calc(var(--limel-chart-nps-gauge-angel) * 0.65), rgb(var(--color-lime-light)) calc(var(--limel-chart-nps-gauge-angel) * 0.65) calc(var(--limel-chart-nps-gauge-angel) * 0.85), rgb(var(--color-lime-default)) calc(var(--limel-chart-nps-gauge-angel) * 0.85) var(--limel-chart-nps-gauge-angel), transparent var(--limel-chart-nps-gauge-angel))}:host(limel-chart[type=nps]) .chart:after{height:calc(100% - min(3rem, 20%) * 2);max-height:calc(100% - min(3rem, 20%) * 2);background:conic-gradient(var(--chart-background-color, rgb(var(--contrast-100))) 0deg var(--limel-chart-nps-gauge-angel), transparent var(--limel-chart-nps-gauge-angel))}:host(limel-chart[type=nps]) .item{display:flex;align-items:flex-start;justify-content:center;border-radius:0.5rem;position:absolute;height:calc(50% - min(3rem, 20%) + 0.5rem);width:0.5rem;transform:translateY(-50%) rotate(calc((var(--limel-chart-item-value) + 100) / 200 * var(--limel-chart-nps-gauge-angel)));transform-origin:bottom}:host(limel-chart[type=nps]) .item:hover,:host(limel-chart[type=nps]) .item:focus-visible{background:linear-gradient(to bottom, rgb(var(--contrast-800), 0.4) 0%, rgb(var(--contrast-800), 0.4) 100%) center/1px 100% no-repeat}:host(limel-chart[type=nps]) .item:before,:host(limel-chart[type=nps]) .item:after{content:"";position:absolute}:host(limel-chart[type=nps]) .item:before{transform:translateY(-60%);width:0.4rem;border-radius:1rem;border-color:var(--limel-chart-item-color, var(--limel-chart-default-item-color));border-style:solid;border-bottom-width:1.75rem;border-right-color:transparent;border-left-color:transparent;border-top-color:transparent}:host(limel-chart[type=nps]) .item:after{border-radius:50%;background-color:var(--limel-chart-item-color, var(--limel-chart-default-item-color));aspect-ratio:1;height:clamp(0.75rem, 10%, 1.25rem);border:0.125rem solid rgb(var(--contrast-100), 0.8);box-shadow:var(--shadow-depth-8)}:host(limel-chart[type=scatter]){--limel-chart-padding:0.5rem 0.5rem 1rem 2rem}:host(limel-chart[type=scatter]) .chart{display:block;background-color:var(--chart-background-color, transparent)}:host(limel-chart[type=scatter]) .item{position:absolute;transform-origin:center;width:var(--chart-scatter-item-size, 0.5rem);height:var(--chart-scatter-item-size, 0.5rem);border-radius:50%;background-color:var(--limel-chart-item-color, var(--limel-chart-default-item-color));mix-blend-mode:hard-light}:host(limel-chart[type=scatter][orientation=landscape]) .item{left:calc(var(--limel-chart-item-offset-x) * 1%);bottom:calc(var(--limel-chart-item-offset-y) * 1%);transform:translate(-50%, 50%)}:host(limel-chart[type=scatter][orientation=portrait]) .item{left:calc(var(--limel-chart-item-offset-y) * 1%);top:calc(var(--limel-chart-item-offset-x) * 1%);transform:translate(-50%, -50%)}:host(limel-chart[type=scatter][display-axis-labels][orientation=landscape]),:host(limel-chart[type=scatter][display-axis-labels][orientation=portrait]){--limel-chart-padding:0.5rem 0.5rem 2rem 3rem}:host(limel-chart[type=scatter][display-axis-labels][orientation=landscape]) table thead th:first-of-type{bottom:-2rem;left:50%;transform:translateX(-50%)}:host(limel-chart[type=scatter][display-axis-labels][orientation=landscape]) table thead th:last-of-type{left:-3rem;writing-mode:sideways-lr}:host(limel-chart[type=scatter][display-axis-labels][orientation=portrait]) table thead th:first-of-type{left:-3rem;writing-mode:sideways-lr}:host(limel-chart[type=scatter][display-axis-labels][orientation=portrait]) table thead th:last-of-type{bottom:-2rem;left:50%;transform:translateX(-50%)}.axises{position:absolute;display:flex;justify-content:space-between;min-height:100%;min-width:100%;height:100%;width:100%}.axis-line{transition:opacity 0.4s ease;position:relative;opacity:0.2;font-size:0.625rem;border-color:var(--limel-chart-axis-line-color)}.axis-line:hover{opacity:0.6;transition-duration:0.2s}.axis-line.zero-line{opacity:0.6;z-index:1}.axis-line limel-badge{--badge-background-color:transparent;--badge-text-color:currentColor;position:absolute;text-align:right;min-width:2rem}:host(limel-chart[orientation=landscape]:not([type=scatter])) .axises{flex-direction:column-reverse}:host(limel-chart[orientation=landscape]:not([type=scatter])) .axis-line{border-bottom:1px solid;transform:translateY(50%)}:host(limel-chart[orientation=landscape]:not([type=scatter])) .axis-line limel-badge{bottom:0;left:-2rem;transform:translateY(50%)}:host(limel-chart[orientation=portrait]:not([type=scatter])) .axises{flex-direction:row}:host(limel-chart[orientation=portrait]:not([type=scatter])) .axis-line{border-left:1px solid;transform:translateX(-50%)}:host(limel-chart[orientation=portrait]:not([type=scatter])) .axis-line limel-badge{bottom:-1rem;right:-1rem}.axises.horizontal-lines .axis-line{border-bottom:1px solid;transform:translateY(50%)}.axises.horizontal-lines .axis-line limel-badge{bottom:0;left:-2rem;transform:translateY(50%)}:host(limel-chart[orientation=landscape]) .axises.horizontal-lines{flex-direction:column-reverse}:host(limel-chart[orientation=portrait]) .axises.horizontal-lines{flex-direction:column}.axises.vertical-lines{flex-direction:row}.axises.vertical-lines .axis-line{border-left:1px solid;transform:translateX(-50%)}.axises.vertical-lines .axis-line limel-badge{bottom:-1rem;right:-1rem}:host(limel-chart){--limel-chart-min-item-size:0.5rem;--limel-chart-default-item-color:var( --chart-item-color, rgb(var(--contrast-1100), 0.8) );--chart-axis-line-color:var( --limel-chart-axis-line-color, rgb(var(--contrast-900)) );box-sizing:border-box;isolation:isolate;display:flex;width:100%;height:100%;min-width:0;min-height:0;padding:var(--limel-chart-padding)}table{all:unset;border-collapse:collapse;border-spacing:0;empty-cells:show;position:relative;display:flex;width:100%;height:100%;min-width:0;min-height:0}table colgroup,table thead,table tbody,table tr,table th,table td{all:unset}table caption,table colgroup,table thead,table tfoot,table th,table td{position:absolute;width:0;height:0;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0, 0, 0, 0);clip-path:inset(50%);white-space:nowrap}*,*:before,*:after{box-sizing:border-box}.chart{position:relative;flex-grow:1;width:100%;height:100%;min-height:0;min-width:0}.chart:has(.item:hover) .item,.chart:has(.item:focus-visible) .item{opacity:0.4}.item:focus{outline:none}.item:focus-visible{outline:none;box-shadow:var(--shadow-depth-8-focused)}.item{transition:background-color 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease, opacity 0.4s ease;cursor:help}.item:focus-visible,.item:hover{opacity:1 !important}.item[role=button]{cursor:pointer}limel-spinner{margin:auto}`;
|
|
8
8
|
|
|
9
9
|
const PERCENT = 100;
|
|
10
10
|
const DEFAULT_INCREMENT_SIZE = 10;
|
|
@@ -91,20 +91,40 @@ const Chart = class {
|
|
|
91
91
|
return (index.h("thead", null, index.h("tr", null, index.h("th", { scope: "col" }, (_a = this.accessibleItemsLabel) !== null && _a !== void 0 ? _a : translations.translate.get('items', this.language)), index.h("th", { scope: "col" }, (_b = this.accessibleValuesLabel) !== null && _b !== void 0 ? _b : translations.translate.get('value', this.language)))));
|
|
92
92
|
}
|
|
93
93
|
renderAxises() {
|
|
94
|
-
if (!['bar', 'dot', 'area', 'line'].includes(this.type)) {
|
|
94
|
+
if (!['bar', 'dot', 'area', 'line', 'scatter'].includes(this.type)) {
|
|
95
95
|
return;
|
|
96
96
|
}
|
|
97
|
-
|
|
97
|
+
if (this.type === 'scatter') {
|
|
98
|
+
return this.renderScatterAxises();
|
|
99
|
+
}
|
|
100
|
+
return this.renderAxisLines(this.range);
|
|
101
|
+
}
|
|
102
|
+
// Two value axes, so a full grid: horizontal lines for the vertical axis,
|
|
103
|
+
// vertical lines for the horizontal one. Which range maps to which flips
|
|
104
|
+
// with `orientation`, like the points.
|
|
105
|
+
renderScatterAxises() {
|
|
106
|
+
const portrait = this.orientation === 'portrait';
|
|
107
|
+
const horizontalLines = portrait ? this.secondaryAxisRange : this.range;
|
|
108
|
+
const verticalLines = portrait ? this.range : this.secondaryAxisRange;
|
|
109
|
+
return [
|
|
110
|
+
this.renderAxisLines(horizontalLines, 'horizontal-lines'),
|
|
111
|
+
this.renderAxisLines(verticalLines, 'vertical-lines'),
|
|
112
|
+
];
|
|
113
|
+
}
|
|
114
|
+
renderAxisLines(range, direction) {
|
|
115
|
+
const { minValue, maxValue, increment } = range;
|
|
98
116
|
const lines = [];
|
|
99
|
-
|
|
100
|
-
const adjustedMaxRange = Math.ceil(maxValue / this.axisIncrement) * this.axisIncrement;
|
|
101
|
-
for (let value = adjustedMinRange; value <= adjustedMaxRange; value += this.axisIncrement) {
|
|
117
|
+
for (let value = minValue; value <= maxValue; value += increment) {
|
|
102
118
|
lines.push(index.h("div", { class: {
|
|
103
119
|
'axis-line': true,
|
|
104
120
|
'zero-line': value === 0,
|
|
105
121
|
}, role: "presentation" }, index.h("limel-badge", { label: value })));
|
|
106
122
|
}
|
|
107
|
-
|
|
123
|
+
const cssClass = { axises: true };
|
|
124
|
+
if (direction) {
|
|
125
|
+
cssClass[direction] = true;
|
|
126
|
+
}
|
|
127
|
+
return (index.h("div", { class: cssClass, role: "presentation", key: direction }, lines));
|
|
108
128
|
}
|
|
109
129
|
renderItems() {
|
|
110
130
|
var _a;
|
|
@@ -125,6 +145,9 @@ const Chart = class {
|
|
|
125
145
|
});
|
|
126
146
|
}
|
|
127
147
|
getItemStyle(item, index, size, offset) {
|
|
148
|
+
if (this.type === 'scatter') {
|
|
149
|
+
return this.getScatterItemStyle(item, index);
|
|
150
|
+
}
|
|
128
151
|
const style = {
|
|
129
152
|
'--limel-chart-item-offset': `${offset}`,
|
|
130
153
|
'--limel-chart-item-size': `${size}`,
|
|
@@ -141,12 +164,25 @@ const Chart = class {
|
|
|
141
164
|
}
|
|
142
165
|
return style;
|
|
143
166
|
}
|
|
167
|
+
getScatterItemStyle(item, index) {
|
|
168
|
+
const style = {
|
|
169
|
+
'--limel-chart-item-offset-x': `${this.normalize(this.getXValue(item), this.secondaryAxisRange)}`,
|
|
170
|
+
'--limel-chart-item-offset-y': `${this.normalize(this.getYValue(item), this.range)}`,
|
|
171
|
+
'--limel-chart-item-index': `${index}`,
|
|
172
|
+
};
|
|
173
|
+
if (item.color) {
|
|
174
|
+
style['--limel-chart-item-color'] = item.color;
|
|
175
|
+
}
|
|
176
|
+
return style;
|
|
177
|
+
}
|
|
144
178
|
getItemClass(item) {
|
|
145
179
|
return {
|
|
146
180
|
item: true,
|
|
147
|
-
'has-start-value': Array.isArray(item.value),
|
|
181
|
+
'has-start-value': this.type !== 'scatter' && Array.isArray(item.value),
|
|
148
182
|
'has-negative-value-only': this.getMaximumValue(item) < 0 && !this.isRangeItem(item),
|
|
149
|
-
|
|
183
|
+
// Scatter coordinates are independent values, so "value is zero"
|
|
184
|
+
// (which hides the value label elsewhere) must not apply.
|
|
185
|
+
'has-value-zero': this.type !== 'scatter' && this.getMaximumValue(item) === 0,
|
|
150
186
|
};
|
|
151
187
|
}
|
|
152
188
|
calculateSizeAndOffset(item) {
|
|
@@ -174,6 +210,9 @@ const Chart = class {
|
|
|
174
210
|
return formattedValue;
|
|
175
211
|
}
|
|
176
212
|
if (Array.isArray(value)) {
|
|
213
|
+
if (this.type === 'scatter') {
|
|
214
|
+
return `(${value[0]}, ${value[1]})`;
|
|
215
|
+
}
|
|
177
216
|
return `${value[0]} — ${value[1]}`;
|
|
178
217
|
}
|
|
179
218
|
return `${value}`;
|
|
@@ -190,7 +229,10 @@ const Chart = class {
|
|
|
190
229
|
helperLabel: formattedValue,
|
|
191
230
|
elementId: itemId,
|
|
192
231
|
};
|
|
193
|
-
if (this.type !== 'bar' &&
|
|
232
|
+
if (this.type !== 'bar' &&
|
|
233
|
+
this.type !== 'dot' &&
|
|
234
|
+
this.type !== 'nps' &&
|
|
235
|
+
this.type !== 'scatter') {
|
|
194
236
|
tooltipProps.label = `${text} (${size.toFixed(PERCENT_DECIMAL)}%)`;
|
|
195
237
|
}
|
|
196
238
|
return (index.h("limel-tooltip", Object.assign({}, tooltipProps, { openDirection: this.orientation === 'portrait' ? 'right' : 'top' })));
|
|
@@ -209,7 +251,7 @@ const Chart = class {
|
|
|
209
251
|
finalMaxRange = totalSum;
|
|
210
252
|
}
|
|
211
253
|
if (!this.axisIncrement) {
|
|
212
|
-
this.axisIncrement = this.calculateAxisIncrement(this.items);
|
|
254
|
+
this.axisIncrement = this.calculateAxisIncrement(this.items.map(this.getMaximumValue));
|
|
213
255
|
}
|
|
214
256
|
const visualMaxValue = Math.ceil(finalMaxRange / this.axisIncrement) * this.axisIncrement;
|
|
215
257
|
const visualMinValue = Math.floor(minRange / this.axisIncrement) * this.axisIncrement;
|
|
@@ -218,20 +260,54 @@ const Chart = class {
|
|
|
218
260
|
minValue: visualMinValue,
|
|
219
261
|
maxValue: visualMaxValue,
|
|
220
262
|
totalRange: totalRange,
|
|
263
|
+
increment: this.axisIncrement,
|
|
221
264
|
};
|
|
222
265
|
}
|
|
223
|
-
calculateAxisIncrement(
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
266
|
+
calculateAxisIncrement(values, steps = DEFAULT_INCREMENT_SIZE) {
|
|
267
|
+
return this.calculateNiceStep(Math.max(...values), steps);
|
|
268
|
+
}
|
|
269
|
+
// A "nice" step (…× 10ⁿ) dividing `span` into ~`steps` intervals. Takes the
|
|
270
|
+
// axis length, not a raw max, so it's sign-safe (a negative max would make
|
|
271
|
+
// `Math.log10` return `NaN`).
|
|
272
|
+
calculateNiceStep(span, steps = DEFAULT_INCREMENT_SIZE) {
|
|
273
|
+
if (span <= 0) {
|
|
274
|
+
// Every value is identical (e.g. all zero); any positive step works.
|
|
275
|
+
return 1;
|
|
276
|
+
}
|
|
277
|
+
const roughStep = span / steps;
|
|
232
278
|
const magnitude = 10 ** Math.floor(Math.log10(roughStep));
|
|
233
279
|
return Math.ceil(roughStep / magnitude) * magnitude;
|
|
234
280
|
}
|
|
281
|
+
// Axis length measured through zero, so the origin is always included.
|
|
282
|
+
axisSpan(values) {
|
|
283
|
+
return Math.max(0, ...values) - Math.min(0, ...values);
|
|
284
|
+
}
|
|
285
|
+
// A "nice" rounded range for one scatter axis. Both bounds include zero, so
|
|
286
|
+
// a fully-negative axis still shows its origin (and zero line).
|
|
287
|
+
calculateAxisRange(values, increment) {
|
|
288
|
+
const minValue = Math.floor(Math.min(0, ...values) / increment) * increment;
|
|
289
|
+
const maxValue = Math.ceil(Math.max(0, ...values) / increment) * increment;
|
|
290
|
+
return {
|
|
291
|
+
minValue: minValue,
|
|
292
|
+
maxValue: maxValue,
|
|
293
|
+
totalRange: maxValue - minValue,
|
|
294
|
+
increment: increment,
|
|
295
|
+
};
|
|
296
|
+
}
|
|
297
|
+
normalize(value, range) {
|
|
298
|
+
if (range.totalRange === 0) {
|
|
299
|
+
// Degenerate axis (every value is zero): center the point so it
|
|
300
|
+
// stays visible instead of dividing by zero.
|
|
301
|
+
return PERCENT / 2;
|
|
302
|
+
}
|
|
303
|
+
return ((value - range.minValue) / range.totalRange) * PERCENT;
|
|
304
|
+
}
|
|
305
|
+
getXValue(item) {
|
|
306
|
+
return Array.isArray(item.value) ? item.value[0] : item.value;
|
|
307
|
+
}
|
|
308
|
+
getYValue(item) {
|
|
309
|
+
return Array.isArray(item.value) ? item.value[1] : item.value;
|
|
310
|
+
}
|
|
235
311
|
getMinimumValue(item) {
|
|
236
312
|
const value = item.value;
|
|
237
313
|
return Array.isArray(value) ? Math.min(...value) : value;
|
|
@@ -245,11 +321,26 @@ const Chart = class {
|
|
|
245
321
|
}
|
|
246
322
|
handleChange() {
|
|
247
323
|
this.range = null;
|
|
324
|
+
this.secondaryAxisRange = null;
|
|
248
325
|
this.recalculateRangeData();
|
|
249
326
|
}
|
|
250
327
|
recalculateRangeData() {
|
|
328
|
+
if (this.type === 'scatter') {
|
|
329
|
+
this.recalculateScatterRanges();
|
|
330
|
+
return;
|
|
331
|
+
}
|
|
251
332
|
this.range = this.calculateRange();
|
|
252
333
|
}
|
|
334
|
+
// Each axis derives its own range and step from its own zero-anchored span
|
|
335
|
+
// (positive, negative, and zero-crossing data all grid sensibly). The single
|
|
336
|
+
// `axisIncrement` prop can't describe two independent axes, so scatter
|
|
337
|
+
// ignores it and auto-derives both, like it does `maxValue`.
|
|
338
|
+
recalculateScatterRanges() {
|
|
339
|
+
const xValues = this.items.map((item) => this.getXValue(item));
|
|
340
|
+
const yValues = this.items.map((item) => this.getYValue(item));
|
|
341
|
+
this.range = this.calculateAxisRange(yValues, this.calculateNiceStep(this.axisSpan(yValues)));
|
|
342
|
+
this.secondaryAxisRange = this.calculateAxisRange(xValues, this.calculateNiceStep(this.axisSpan(xValues)));
|
|
343
|
+
}
|
|
253
344
|
getClickableItem(target) {
|
|
254
345
|
const index = target.dataset.index;
|
|
255
346
|
if (index === undefined) {
|
|
@@ -167,6 +167,8 @@
|
|
|
167
167
|
3rem;
|
|
168
168
|
}
|
|
169
169
|
|
|
170
|
+
:host(limel-chart[display-axis-labels][type=scatter]) table thead,
|
|
171
|
+
:host(limel-chart[display-axis-labels][type=scatter]) table th,
|
|
170
172
|
:host(limel-chart[display-axis-labels][type=line]) table thead,
|
|
171
173
|
:host(limel-chart[display-axis-labels][type=line]) table th,
|
|
172
174
|
:host(limel-chart[display-axis-labels][type=dot]) table thead,
|
|
@@ -177,6 +179,7 @@
|
|
|
177
179
|
:host(limel-chart[display-axis-labels][type=bar]) table th {
|
|
178
180
|
all: unset;
|
|
179
181
|
}
|
|
182
|
+
:host(limel-chart[display-axis-labels][type=scatter]) table th,
|
|
180
183
|
:host(limel-chart[display-axis-labels][type=line]) table th,
|
|
181
184
|
:host(limel-chart[display-axis-labels][type=dot]) table th,
|
|
182
185
|
:host(limel-chart[display-axis-labels][type=area]) table th,
|
|
@@ -210,6 +213,7 @@
|
|
|
210
213
|
writing-mode: sideways-lr;
|
|
211
214
|
}
|
|
212
215
|
|
|
216
|
+
:host(limel-chart[display-item-text][type=scatter]) td.text,
|
|
213
217
|
:host(limel-chart[display-item-text][type=line]) td.text,
|
|
214
218
|
:host(limel-chart[display-item-text][type=area]) td.text,
|
|
215
219
|
:host(limel-chart[display-item-text][type=dot]) td.text,
|
|
@@ -224,6 +228,7 @@
|
|
|
224
228
|
mix-blend-mode: difference;
|
|
225
229
|
}
|
|
226
230
|
|
|
231
|
+
:host(limel-chart[display-item-value][type=scatter]) td.value,
|
|
227
232
|
:host(limel-chart[display-item-value][type=line]) td.value,
|
|
228
233
|
:host(limel-chart[display-item-value][type=area]) td.value,
|
|
229
234
|
:host(limel-chart[display-item-value][type=dot]) td.value,
|
|
@@ -240,6 +245,7 @@
|
|
|
240
245
|
background-color: rgb(var(--contrast-100), 0.7);
|
|
241
246
|
box-shadow: var(--shadow-brighten-edges-outside);
|
|
242
247
|
}
|
|
248
|
+
:host(limel-chart[display-item-value][type=scatter]) .item.has-value-zero td.value,
|
|
243
249
|
:host(limel-chart[display-item-value][type=line]) .item.has-value-zero td.value,
|
|
244
250
|
:host(limel-chart[display-item-value][type=area]) .item.has-value-zero td.value,
|
|
245
251
|
:host(limel-chart[display-item-value][type=dot]) .item.has-value-zero td.value,
|
|
@@ -320,6 +326,18 @@
|
|
|
320
326
|
transform: rotateY(180deg) translateX(-100%);
|
|
321
327
|
}
|
|
322
328
|
|
|
329
|
+
:host(limel-chart[display-item-text][type=scatter]) td.text {
|
|
330
|
+
bottom: calc(100% + 0.25rem);
|
|
331
|
+
left: 50%;
|
|
332
|
+
transform: translateX(-50%);
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
:host(limel-chart[display-item-value][type=scatter]) td.value {
|
|
336
|
+
top: calc(100% + 0.25rem);
|
|
337
|
+
left: 50%;
|
|
338
|
+
transform: translateX(-50%);
|
|
339
|
+
}
|
|
340
|
+
|
|
323
341
|
:host(limel-chart[display-item-text][orientation=landscape][type=line]) td.text,
|
|
324
342
|
:host(limel-chart[display-item-text][orientation=landscape][type=line]) td.value,
|
|
325
343
|
:host(limel-chart[display-item-value][orientation=landscape][type=line]) td.text,
|
|
@@ -799,6 +817,60 @@
|
|
|
799
817
|
box-shadow: var(--shadow-depth-8);
|
|
800
818
|
}
|
|
801
819
|
|
|
820
|
+
:host(limel-chart[type=scatter]) {
|
|
821
|
+
--limel-chart-padding: 0.5rem 0.5rem 1rem 2rem;
|
|
822
|
+
}
|
|
823
|
+
:host(limel-chart[type=scatter]) .chart {
|
|
824
|
+
display: block;
|
|
825
|
+
background-color: var(--chart-background-color, transparent);
|
|
826
|
+
}
|
|
827
|
+
:host(limel-chart[type=scatter]) .item {
|
|
828
|
+
position: absolute;
|
|
829
|
+
transform-origin: center;
|
|
830
|
+
width: var(--chart-scatter-item-size, 0.5rem);
|
|
831
|
+
height: var(--chart-scatter-item-size, 0.5rem);
|
|
832
|
+
border-radius: 50%;
|
|
833
|
+
background-color: var(--limel-chart-item-color, var(--limel-chart-default-item-color));
|
|
834
|
+
mix-blend-mode: hard-light;
|
|
835
|
+
}
|
|
836
|
+
|
|
837
|
+
:host(limel-chart[type=scatter][orientation=landscape]) .item {
|
|
838
|
+
left: calc(var(--limel-chart-item-offset-x) * 1%);
|
|
839
|
+
bottom: calc(var(--limel-chart-item-offset-y) * 1%);
|
|
840
|
+
transform: translate(-50%, 50%);
|
|
841
|
+
}
|
|
842
|
+
|
|
843
|
+
:host(limel-chart[type=scatter][orientation=portrait]) .item {
|
|
844
|
+
left: calc(var(--limel-chart-item-offset-y) * 1%);
|
|
845
|
+
top: calc(var(--limel-chart-item-offset-x) * 1%);
|
|
846
|
+
transform: translate(-50%, -50%);
|
|
847
|
+
}
|
|
848
|
+
|
|
849
|
+
:host(limel-chart[type=scatter][display-axis-labels][orientation=landscape]),
|
|
850
|
+
:host(limel-chart[type=scatter][display-axis-labels][orientation=portrait]) {
|
|
851
|
+
--limel-chart-padding: 0.5rem 0.5rem 2rem 3rem;
|
|
852
|
+
}
|
|
853
|
+
|
|
854
|
+
:host(limel-chart[type=scatter][display-axis-labels][orientation=landscape]) table thead th:first-of-type {
|
|
855
|
+
bottom: -2rem;
|
|
856
|
+
left: 50%;
|
|
857
|
+
transform: translateX(-50%);
|
|
858
|
+
}
|
|
859
|
+
:host(limel-chart[type=scatter][display-axis-labels][orientation=landscape]) table thead th:last-of-type {
|
|
860
|
+
left: -3rem;
|
|
861
|
+
writing-mode: sideways-lr;
|
|
862
|
+
}
|
|
863
|
+
|
|
864
|
+
:host(limel-chart[type=scatter][display-axis-labels][orientation=portrait]) table thead th:first-of-type {
|
|
865
|
+
left: -3rem;
|
|
866
|
+
writing-mode: sideways-lr;
|
|
867
|
+
}
|
|
868
|
+
:host(limel-chart[type=scatter][display-axis-labels][orientation=portrait]) table thead th:last-of-type {
|
|
869
|
+
bottom: -2rem;
|
|
870
|
+
left: 50%;
|
|
871
|
+
transform: translateX(-50%);
|
|
872
|
+
}
|
|
873
|
+
|
|
802
874
|
.axises {
|
|
803
875
|
position: absolute;
|
|
804
876
|
display: flex;
|
|
@@ -832,27 +904,57 @@
|
|
|
832
904
|
min-width: 2rem;
|
|
833
905
|
}
|
|
834
906
|
|
|
835
|
-
:host(limel-chart[orientation=landscape]) .axises {
|
|
907
|
+
:host(limel-chart[orientation=landscape]:not([type=scatter])) .axises {
|
|
836
908
|
flex-direction: column-reverse;
|
|
837
909
|
}
|
|
838
|
-
:host(limel-chart[orientation=landscape]) .axis-line {
|
|
910
|
+
:host(limel-chart[orientation=landscape]:not([type=scatter])) .axis-line {
|
|
839
911
|
border-bottom: 1px solid;
|
|
840
912
|
transform: translateY(50%);
|
|
841
913
|
}
|
|
842
|
-
:host(limel-chart[orientation=landscape]) .axis-line limel-badge {
|
|
914
|
+
:host(limel-chart[orientation=landscape]:not([type=scatter])) .axis-line limel-badge {
|
|
843
915
|
bottom: 0;
|
|
844
916
|
left: -2rem;
|
|
845
917
|
transform: translateY(50%);
|
|
846
918
|
}
|
|
847
919
|
|
|
848
|
-
:host(limel-chart[orientation=portrait]) .axises {
|
|
920
|
+
:host(limel-chart[orientation=portrait]:not([type=scatter])) .axises {
|
|
921
|
+
flex-direction: row;
|
|
922
|
+
}
|
|
923
|
+
:host(limel-chart[orientation=portrait]:not([type=scatter])) .axis-line {
|
|
924
|
+
border-left: 1px solid;
|
|
925
|
+
transform: translateX(-50%);
|
|
926
|
+
}
|
|
927
|
+
:host(limel-chart[orientation=portrait]:not([type=scatter])) .axis-line limel-badge {
|
|
928
|
+
bottom: -1rem;
|
|
929
|
+
right: -1rem;
|
|
930
|
+
}
|
|
931
|
+
|
|
932
|
+
.axises.horizontal-lines .axis-line {
|
|
933
|
+
border-bottom: 1px solid;
|
|
934
|
+
transform: translateY(50%);
|
|
935
|
+
}
|
|
936
|
+
.axises.horizontal-lines .axis-line limel-badge {
|
|
937
|
+
bottom: 0;
|
|
938
|
+
left: -2rem;
|
|
939
|
+
transform: translateY(50%);
|
|
940
|
+
}
|
|
941
|
+
|
|
942
|
+
:host(limel-chart[orientation=landscape]) .axises.horizontal-lines {
|
|
943
|
+
flex-direction: column-reverse;
|
|
944
|
+
}
|
|
945
|
+
|
|
946
|
+
:host(limel-chart[orientation=portrait]) .axises.horizontal-lines {
|
|
947
|
+
flex-direction: column;
|
|
948
|
+
}
|
|
949
|
+
|
|
950
|
+
.axises.vertical-lines {
|
|
849
951
|
flex-direction: row;
|
|
850
952
|
}
|
|
851
|
-
|
|
953
|
+
.axises.vertical-lines .axis-line {
|
|
852
954
|
border-left: 1px solid;
|
|
853
955
|
transform: translateX(-50%);
|
|
854
956
|
}
|
|
855
|
-
|
|
957
|
+
.axises.vertical-lines .axis-line limel-badge {
|
|
856
958
|
bottom: -1rem;
|
|
857
959
|
right: -1rem;
|
|
858
960
|
}
|
|
@@ -863,6 +965,7 @@
|
|
|
863
965
|
* @prop --chart-item-divider-color: Defines the color that visually separates items in some charts, such as `stacked-bar` chart items. Defaults to `rgb(var(--color-white), 0.6)`.
|
|
864
966
|
* @prop --chart-axis-line-color: Defines color of the axis lines. Defaults to `--contrast-900`. Note that lines have opacity as well, and get opaque on hover.
|
|
865
967
|
* @prop --chart-item-border-radius: Defines the roundness of corners of items in a chart. Defaults to different values depending on the chart type. Does not have any effect on `pie` and `doughnut` types.
|
|
968
|
+
* @prop --chart-scatter-item-size: Defines the diameter of the dots in a `scatter` chart. Defaults to `0.5rem`.
|
|
866
969
|
*/
|
|
867
970
|
:host(limel-chart) {
|
|
868
971
|
--limel-chart-min-item-size: 0.5rem;
|