@ixfx/components 0.10.5 → 0.10.7
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/index.d.ts +50 -2
- package/bundle/index.d.ts.map +1 -1
- package/bundle/index.js +425 -16
- package/bundle/index.js.map +1 -1
- package/dist/ac-text.d.ts +1 -1
- package/dist/{ac-token--_vCHXWw.d.ts → ac-token-TCLAZeVg.d.ts} +2 -2
- package/dist/{ac-token--_vCHXWw.d.ts.map → ac-token-TCLAZeVg.d.ts.map} +1 -1
- package/dist/ac-token.d.ts +1 -1
- package/dist/{button-BYuf72aR.d.ts → button-CTL45aBl.d.ts} +2 -2
- package/dist/{button-BYuf72aR.d.ts.map → button-CTL45aBl.d.ts.map} +1 -1
- package/dist/button.d.ts +1 -1
- package/dist/colour-picker.d.ts +1 -1
- package/dist/crumbs.d.ts +1 -1
- package/dist/{data-grid-DE1_gZNk.d.ts → data-grid-BDNjQv3Q.d.ts} +8 -6
- package/dist/data-grid-BDNjQv3Q.d.ts.map +1 -0
- package/dist/data-grid.d.ts +2 -2
- package/dist/data-grid.js +10 -5
- package/dist/data-grid.js.map +1 -1
- package/dist/{detail-list-CaStSzYN.d.ts → detail-list-BdLuOwQj.d.ts} +4 -4
- package/dist/{detail-list-CaStSzYN.d.ts.map → detail-list-BdLuOwQj.d.ts.map} +1 -1
- package/dist/detail-list.d.ts +2 -2
- package/dist/detail-list.js +49 -1
- package/dist/detail-list.js.map +1 -1
- package/dist/{grid-list-BJDxBL0x.d.ts → grid-list-DyphX9Fv.d.ts} +2 -2
- package/dist/{grid-list-BJDxBL0x.d.ts.map → grid-list-DyphX9Fv.d.ts.map} +1 -1
- package/dist/{grid-list-CaMcdpFJ.js → grid-list-k89JpiNy.js} +18 -1
- package/dist/grid-list-k89JpiNy.js.map +1 -0
- package/dist/grid-list.d.ts +1 -1
- package/dist/grid-list.js +1 -1
- package/dist/{grouped-item-lister-DETte0Dh.d.ts → grouped-item-lister-Bhyo-dkH.d.ts} +2 -2
- package/dist/{grouped-item-lister-DETte0Dh.d.ts.map → grouped-item-lister-Bhyo-dkH.d.ts.map} +1 -1
- package/dist/grouped-item-lister.d.ts +1 -1
- package/dist/{icon-CDGprSdE.d.ts → icon-DR_3rSyZ.d.ts} +2 -2
- package/dist/icon-DR_3rSyZ.d.ts.map +1 -0
- package/dist/icons.d.ts +2 -2
- package/dist/incr-search.d.ts +1 -1
- package/dist/{index-tq6f8007.d.ts → index-BOUaDIW-.d.ts} +2 -2
- package/dist/{index-tq6f8007.d.ts.map → index-BOUaDIW-.d.ts.map} +1 -1
- package/dist/{index-CoqtMSd9.d.ts → index-BUB5SICW.d.ts} +2 -2
- package/dist/{index-CoqtMSd9.d.ts.map → index-BUB5SICW.d.ts.map} +1 -1
- package/dist/{index-CsaQwNkz.d.ts → index-BXafRK-_.d.ts} +2 -2
- package/dist/{index-CsaQwNkz.d.ts.map → index-BXafRK-_.d.ts.map} +1 -1
- package/dist/{index-9AhaHIT2.d.ts → index-C59-JEPl.d.ts} +3 -3
- package/dist/{index-9AhaHIT2.d.ts.map → index-C59-JEPl.d.ts.map} +1 -1
- package/dist/{index-UvnoZUAo.d.ts → index-CJ5fshD3.d.ts} +2 -2
- package/dist/{index-UvnoZUAo.d.ts.map → index-CJ5fshD3.d.ts.map} +1 -1
- package/dist/{index-CYndvTWH.d.ts → index-garxxqgV.d.ts} +2 -2
- package/dist/{index-CYndvTWH.d.ts.map → index-garxxqgV.d.ts.map} +1 -1
- package/dist/index.d.ts +66 -19
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +344 -3
- package/dist/index.js.map +1 -1
- package/dist/{labelled-input-base-DiTme1JO.d.ts → labelled-input-base-Dp_9KP0G.d.ts} +2 -2
- package/dist/{labelled-input-base-DiTme1JO.d.ts.map → labelled-input-base-Dp_9KP0G.d.ts.map} +1 -1
- package/dist/labelled-radial-input.d.ts +2 -2
- package/dist/labelled-radial-input.d.ts.map +1 -1
- package/dist/labelled-range-input.d.ts +1 -1
- package/dist/labelled-slider-input.d.ts +1 -1
- package/dist/{menu-item-CZi9vy5O.d.ts → menu-item-ZmkXNjek.d.ts} +2 -2
- package/dist/{menu-item-CZi9vy5O.d.ts.map → menu-item-ZmkXNjek.d.ts.map} +1 -1
- package/dist/menu.d.ts +2 -2
- package/dist/miller.d.ts +1 -1
- package/dist/panel.d.ts +1 -1
- package/dist/{split-layout-JK3xWVX2.d.ts → split-layout-C5SYbDrq.d.ts} +2 -2
- package/dist/{split-layout-JK3xWVX2.d.ts.map → split-layout-C5SYbDrq.d.ts.map} +1 -1
- package/dist/split-layout.d.ts +1 -1
- package/dist/{tab-list-pqfKaVAE.d.ts → tab-list-v8mKX7Fu.d.ts} +2 -2
- package/dist/{tab-list-pqfKaVAE.d.ts.map → tab-list-v8mKX7Fu.d.ts.map} +1 -1
- package/dist/tabs.d.ts +1 -1
- package/dist/{titlebar-Tqu-VvMU.d.ts → titlebar-B5zSTZnF.d.ts} +2 -2
- package/dist/{titlebar-Tqu-VvMU.d.ts.map → titlebar-B5zSTZnF.d.ts.map} +1 -1
- package/dist/titlebar.d.ts +1 -1
- package/dist/tree.d.ts +1 -1
- package/dist/{vertical-list-DfcNsa4p.d.ts → vertical-list-C03PN6lx.d.ts} +2 -2
- package/dist/{vertical-list-DfcNsa4p.d.ts.map → vertical-list-C03PN6lx.d.ts.map} +1 -1
- package/dist/vertical-list.d.ts +1 -1
- package/docs-user/README.md +1 -0
- package/docs-user/data-grid.md +2 -1
- package/docs-user/detail-list.md +31 -3
- package/docs-user/grid-list.md +4 -2
- package/docs-user/index.json +7 -2
- package/docs-user/llms.txt +1 -0
- package/docs-user/multicol-list.md +4 -0
- package/docs-user/shapefill-value.md +125 -0
- package/llms.txt +1 -0
- package/package.json +1 -1
- package/dist/data-grid-DE1_gZNk.d.ts.map +0 -1
- package/dist/grid-list-CaMcdpFJ.js.map +0 -1
- package/dist/icon-CDGprSdE.d.ts.map +0 -1
package/bundle/index.js
CHANGED
|
@@ -14907,7 +14907,7 @@ let DataGridElement = class DataGridElement extends i {
|
|
|
14907
14907
|
}
|
|
14908
14908
|
case ` `: {
|
|
14909
14909
|
if (this._editing) {
|
|
14910
|
-
if (this.columns.find((c) => c.key === this._editing.colKey)?.
|
|
14910
|
+
if ((this.columns.find((c) => c.key === this._editing.colKey)?.dataType ?? `text`) === `boolean`) {
|
|
14911
14911
|
e.preventDefault();
|
|
14912
14912
|
const isImmediate = this.editability === `immediate`;
|
|
14913
14913
|
const rowKey = this._editing.rowKey;
|
|
@@ -15424,11 +15424,13 @@ let DataGridElement = class DataGridElement extends i {
|
|
|
15424
15424
|
if (!col) return rows;
|
|
15425
15425
|
const dir = this.sortState.direction === `asc` ? 1 : -1;
|
|
15426
15426
|
if (col.sortFn) return rows.sort((a, b) => dir * col.sortFn(a, b));
|
|
15427
|
+
const dataType = col.dataType ?? `text`;
|
|
15427
15428
|
return rows.sort((a, b) => {
|
|
15428
15429
|
const av = a[col.key];
|
|
15429
15430
|
const bv = b[col.key];
|
|
15430
15431
|
if (av === bv) return 0;
|
|
15431
|
-
if (
|
|
15432
|
+
if (dataType === `number`) return dir * (av - bv);
|
|
15433
|
+
if (dataType === `boolean`) return dir * (Boolean(av) === Boolean(bv) ? 0 : av ? 1 : -1);
|
|
15432
15434
|
return dir * String(av).localeCompare(String(bv));
|
|
15433
15435
|
});
|
|
15434
15436
|
}
|
|
@@ -15805,7 +15807,7 @@ let DataGridElement = class DataGridElement extends i {
|
|
|
15805
15807
|
}
|
|
15806
15808
|
_isTextEditor(col) {
|
|
15807
15809
|
const e = col.editor;
|
|
15808
|
-
return !e || e === `
|
|
15810
|
+
return !e || e === `auto`;
|
|
15809
15811
|
}
|
|
15810
15812
|
_isCellEditing(rowKey, colKey) {
|
|
15811
15813
|
if (this.editability === `immediate` && this._isEditable(this._sortedRows.find((r, i) => this.getRowKey(r, i) === rowKey) ?? {}, this.columns.find((c) => c.key === colKey))) return true;
|
|
@@ -16247,7 +16249,8 @@ let DataGridElement = class DataGridElement extends i {
|
|
|
16247
16249
|
if (this._isCellEditing(rowKey, col.key)) {
|
|
16248
16250
|
const immediate = this.editability === `immediate` || this._editingRow === rowKey;
|
|
16249
16251
|
const curVal = immediate ? val : this._editValue ?? val;
|
|
16250
|
-
|
|
16252
|
+
const effectiveDataType = col.dataType ?? `text`;
|
|
16253
|
+
if (effectiveDataType === `boolean` && (col.editor === `auto` || col.editor === `select` || !col.editor)) return b`<div class="cell" data-col=${col.key} style="width:${col.width ?? 150}px;justify-content:center;align-items:center"><input type="checkbox" .checked=${Boolean(curVal)} @change=${(e) => {
|
|
16251
16254
|
const v = e.target.checked;
|
|
16252
16255
|
if (immediate) this._commitImmediate(rowKey, col.key, v);
|
|
16253
16256
|
else {
|
|
@@ -16305,7 +16308,9 @@ let DataGridElement = class DataGridElement extends i {
|
|
|
16305
16308
|
};
|
|
16306
16309
|
return b`<div class="cell" data-col=${col.key} style="width:${col.width ?? 150}px">${factory(ctx)}</div>`;
|
|
16307
16310
|
}
|
|
16308
|
-
|
|
16311
|
+
const inputType = effectiveDataType === `number` ? `number` : `text`;
|
|
16312
|
+
const inputValue = effectiveDataType === `number` ? String(curVal ?? ``) : String(curVal ?? ``);
|
|
16313
|
+
return b`<div class="cell" data-col=${col.key} style="width:${col.width ?? 150}px"><input type=${inputType} .value=${inputValue} @input=${(e) => this._editValue = e.target.value} @keydown=${(e) => {
|
|
16309
16314
|
if (e.key === `Enter`) this._commitEdit();
|
|
16310
16315
|
if (e.key === `Escape`) {
|
|
16311
16316
|
this._editing = null;
|
|
@@ -16709,6 +16714,23 @@ DataTableElement = __decorate([safeCustomElement(`ixfx-data-table`)], DataTableE
|
|
|
16709
16714
|
const ITEM_SELECTOR$3 = `:scope > li`;
|
|
16710
16715
|
const SEARCH_HIGHLIGHT_KEY = `detail-list-search`;
|
|
16711
16716
|
const LABEL_SPAN_CSS = `overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0`;
|
|
16717
|
+
function pointInRect(x, y, rect) {
|
|
16718
|
+
return rect.width > 0 && rect.height > 0 && x >= rect.left && x < rect.right && y >= rect.top && y < rect.bottom;
|
|
16719
|
+
}
|
|
16720
|
+
/** Hit-test the painted content, not a layout wrapper that may fill the row. */
|
|
16721
|
+
function contentAtPoint(node, x, y) {
|
|
16722
|
+
if (node instanceof Text) {
|
|
16723
|
+
if (!node.textContent?.trim()) return false;
|
|
16724
|
+
const range = document.createRange();
|
|
16725
|
+
range.selectNodeContents(node);
|
|
16726
|
+
return Array.from(range.getClientRects()).some((rect) => pointInRect(x, y, rect));
|
|
16727
|
+
}
|
|
16728
|
+
if (!(node instanceof Element)) return false;
|
|
16729
|
+
if (node.hasAttribute(`data-drag-select-blank`)) return false;
|
|
16730
|
+
if (node.hasAttribute(`data-drag-select-content`)) return pointInRect(x, y, node.getBoundingClientRect());
|
|
16731
|
+
if (Array.from(node.childNodes).some((child) => contentAtPoint(child, x, y))) return true;
|
|
16732
|
+
return node.childNodes.length === 0 && pointInRect(x, y, node.getBoundingClientRect());
|
|
16733
|
+
}
|
|
16712
16734
|
/** Shallow key-array equality, treating `undefined` (never dispatched) as different. */
|
|
16713
16735
|
function sameKeys$2(a, b) {
|
|
16714
16736
|
if (a === void 0 || a.length !== b.length) return false;
|
|
@@ -16769,6 +16791,10 @@ let DetailListElement = class DetailListElement extends i {
|
|
|
16769
16791
|
});
|
|
16770
16792
|
this.#nativeDragging = false;
|
|
16771
16793
|
this.#postDragSuppressTimer = 0;
|
|
16794
|
+
this.#blankItemPressPending = false;
|
|
16795
|
+
this.#clearBlankItemPress = () => {
|
|
16796
|
+
this.#blankItemPressPending = false;
|
|
16797
|
+
};
|
|
16772
16798
|
this.#nativeDrag = new ListNativeDragController(this, {
|
|
16773
16799
|
source: `detail-list`,
|
|
16774
16800
|
isEnabled: () => this.itemsDraggable && this.selectionMode !== `none` && this._getVisibleItems().length > 0,
|
|
@@ -16800,7 +16826,8 @@ let DetailListElement = class DetailListElement extends i {
|
|
|
16800
16826
|
for (const el of this.querySelectorAll(`li`)) el.removeAttribute(`data-drag-origin`);
|
|
16801
16827
|
this.#startPostDragSuppressTimer();
|
|
16802
16828
|
},
|
|
16803
|
-
syncLightDomDraggable: () => this._syncNativeDraggable()
|
|
16829
|
+
syncLightDomDraggable: () => this._syncNativeDraggable(),
|
|
16830
|
+
shouldStart: () => !this.#blankItemPressPending
|
|
16804
16831
|
});
|
|
16805
16832
|
this.#dragSelect = new ListDragSelectController(this, {
|
|
16806
16833
|
getSurface: () => this.renderRoot.querySelector(`.container`),
|
|
@@ -16820,6 +16847,10 @@ let DetailListElement = class DetailListElement extends i {
|
|
|
16820
16847
|
},
|
|
16821
16848
|
autoScroll: (dx, _dy) => {
|
|
16822
16849
|
if (this._listEl) this._listEl.scrollLeft += dx;
|
|
16850
|
+
},
|
|
16851
|
+
shouldStart: (event) => {
|
|
16852
|
+
this.#blankItemPressPending = this.itemsDraggable && this.#isBlankItemPress(event);
|
|
16853
|
+
return !this.itemsDraggable || this.#blankItemPressPending;
|
|
16823
16854
|
}
|
|
16824
16855
|
});
|
|
16825
16856
|
this.search = new ListSearchController(this, { adapter: createElementListSearchAdapter(this, {
|
|
@@ -16938,6 +16969,8 @@ let DetailListElement = class DetailListElement extends i {
|
|
|
16938
16969
|
#data;
|
|
16939
16970
|
#nativeDragging;
|
|
16940
16971
|
#postDragSuppressTimer;
|
|
16972
|
+
#blankItemPressPending;
|
|
16973
|
+
#clearBlankItemPress;
|
|
16941
16974
|
#nativeDrag;
|
|
16942
16975
|
#prepareNativeDrag(originKey) {
|
|
16943
16976
|
const visible = this._getVisibleItems();
|
|
@@ -16975,6 +17008,21 @@ let DetailListElement = class DetailListElement extends i {
|
|
|
16975
17008
|
/** Live drag-select preview rect (surface-relative); the covered items carry `data-marquee`. */
|
|
16976
17009
|
#marqueeRect;
|
|
16977
17010
|
#dragSelect;
|
|
17011
|
+
/** A row's padding/empty area may start marquee; its actual content may drag out. */
|
|
17012
|
+
#isBlankItemPress(event) {
|
|
17013
|
+
const path = event.composedPath();
|
|
17014
|
+
const item = this._findListItem(path);
|
|
17015
|
+
if (!item) return false;
|
|
17016
|
+
for (const node of path) {
|
|
17017
|
+
if (node === item) break;
|
|
17018
|
+
if (node instanceof Element) {
|
|
17019
|
+
if (node.matches(`input, button, a, select, textarea, [contenteditable], .ixfx-list-checkbox, [role="checkbox"]`)) return false;
|
|
17020
|
+
if (node.hasAttribute(`data-drag-select-blank`)) return true;
|
|
17021
|
+
if (node.hasAttribute(`data-drag-select-content`)) return false;
|
|
17022
|
+
}
|
|
17023
|
+
}
|
|
17024
|
+
return !Array.from(item.childNodes).some((node) => contentAtPoint(node, event.clientX, event.clientY));
|
|
17025
|
+
}
|
|
16978
17026
|
/** Collect visible items whose surface-relative box intersects `rect`. */
|
|
16979
17027
|
#marqueeHitTest(rect) {
|
|
16980
17028
|
const surface = this.renderRoot.querySelector(`.container`);
|
|
@@ -17023,6 +17071,8 @@ let DetailListElement = class DetailListElement extends i {
|
|
|
17023
17071
|
this.addEventListener(`click`, this._onClick);
|
|
17024
17072
|
this.addEventListener(`dblclick`, this._onDblClick);
|
|
17025
17073
|
this.addEventListener(`wheel`, this._onWheel);
|
|
17074
|
+
window.addEventListener(`pointerup`, this.#clearBlankItemPress);
|
|
17075
|
+
window.addEventListener(`pointercancel`, this.#clearBlankItemPress);
|
|
17026
17076
|
this.#resizeObserver = new ResizeObserver(() => this.#scheduleGeometry());
|
|
17027
17077
|
this.#resizeObserver.observe(this);
|
|
17028
17078
|
this.#mutationObserver = new MutationObserver((records) => {
|
|
@@ -17067,6 +17117,9 @@ let DetailListElement = class DetailListElement extends i {
|
|
|
17067
17117
|
this.removeEventListener(`click`, this._onClick);
|
|
17068
17118
|
this.removeEventListener(`dblclick`, this._onDblClick);
|
|
17069
17119
|
this.removeEventListener(`wheel`, this._onWheel);
|
|
17120
|
+
window.removeEventListener(`pointerup`, this.#clearBlankItemPress);
|
|
17121
|
+
window.removeEventListener(`pointercancel`, this.#clearBlankItemPress);
|
|
17122
|
+
this.#blankItemPressPending = false;
|
|
17070
17123
|
cancelAnimationFrame(this.#sortRaf);
|
|
17071
17124
|
cancelAnimationFrame(this.#viewportScrollRaf);
|
|
17072
17125
|
this.#viewportScrollRaf = 0;
|
|
@@ -25263,6 +25316,7 @@ let GridListElement = class GridListElement extends i {
|
|
|
25263
25316
|
data-input-mode=${this.tickled.inputMode}
|
|
25264
25317
|
@scroll=${this.#onScroll}
|
|
25265
25318
|
@wheel=${this.#onWheel}
|
|
25319
|
+
@click=${this.#onViewportClick}
|
|
25266
25320
|
>
|
|
25267
25321
|
<div class="spacer" style=${spacerStyle}>
|
|
25268
25322
|
${this.#source instanceof DataGridListSource ? this.#renderDataCells(win) : this.#renderElementCells(win)}
|
|
@@ -25495,6 +25549,22 @@ let GridListElement = class GridListElement extends i {
|
|
|
25495
25549
|
this.selection.handleClick(key, e);
|
|
25496
25550
|
this.#emitItemEvent(`list-item-click`, key);
|
|
25497
25551
|
}
|
|
25552
|
+
/**
|
|
25553
|
+
* A click that lands on the viewport without touching a cell — the empty
|
|
25554
|
+
* space between/around items — clears the selection (Finder-style). The
|
|
25555
|
+
* guard mirrors `#onCellClick`: a trailing click after a marquee or native
|
|
25556
|
+
* drag is swallowed so it cannot undo the selection that drag just made.
|
|
25557
|
+
* In `manual` interaction mode the consumer owns selection, so nothing is
|
|
25558
|
+
* cleared. Cell clicks route through `#onCellClick` and are skipped here.
|
|
25559
|
+
*/
|
|
25560
|
+
#onViewportClick(e) {
|
|
25561
|
+
const mode = this.interactionMode;
|
|
25562
|
+
if (mode === `manual`) return;
|
|
25563
|
+
if (this.selectionMode === `none` && mode !== `checked` && mode !== `sticky`) return;
|
|
25564
|
+
if (this.#dragSelect.isDragging || this.#nativeDragging || this.#nativeDrag.isDragging || this.#postDragSuppressTimer !== 0) return;
|
|
25565
|
+
for (const node of e.composedPath()) if (node instanceof Element && node.classList.contains(`cell`)) return;
|
|
25566
|
+
this.selection.clear();
|
|
25567
|
+
}
|
|
25498
25568
|
#startPostDragSuppressTimer() {
|
|
25499
25569
|
if (this.#postDragSuppressTimer) clearTimeout(this.#postDragSuppressTimer);
|
|
25500
25570
|
this.#postDragSuppressTimer = window.setTimeout(() => {
|
|
@@ -32471,7 +32541,7 @@ function clamp$2(value, min, max) {
|
|
|
32471
32541
|
/**
|
|
32472
32542
|
* Scale a value from one range to another
|
|
32473
32543
|
*/
|
|
32474
|
-
function scale$
|
|
32544
|
+
function scale$2(value, fromMin, fromMax, toMin, toMax) {
|
|
32475
32545
|
return toMin + (value - fromMin) / (fromMax - fromMin) * (toMax - toMin);
|
|
32476
32546
|
}
|
|
32477
32547
|
//#endregion
|
|
@@ -32530,7 +32600,7 @@ let RadialInputElement = class RadialInputElement extends WheelNudgeMixin(i) {
|
|
|
32530
32600
|
event.preventDefault();
|
|
32531
32601
|
const effectiveSensitivity = this.clientHeight * 2 * (event.shiftKey ? 10 : 1);
|
|
32532
32602
|
const deltaValue = (this.#dragStartY - event.clientY) / effectiveSensitivity * (this.max - this.min);
|
|
32533
|
-
const relativeValue = scale$
|
|
32603
|
+
const relativeValue = scale$2(this.#valueAtDragStart + deltaValue, this.min, this.max, 0, 1);
|
|
32534
32604
|
this.#setValueFromRelative(clamp$2(relativeValue, 0, 1), true);
|
|
32535
32605
|
};
|
|
32536
32606
|
this.#onPointerUp = () => {
|
|
@@ -32614,7 +32684,7 @@ let RadialInputElement = class RadialInputElement extends WheelNudgeMixin(i) {
|
|
|
32614
32684
|
return this.#lanes.get(key);
|
|
32615
32685
|
}
|
|
32616
32686
|
#getRelativeValue() {
|
|
32617
|
-
return scale$
|
|
32687
|
+
return scale$2(this.value, this.min, this.max, 0, 1);
|
|
32618
32688
|
}
|
|
32619
32689
|
#getEffectiveMarkerStyle() {
|
|
32620
32690
|
if (this.valueMode === `unipolar` && this.markerStyle === `needle`) return `none`;
|
|
@@ -32628,7 +32698,7 @@ let RadialInputElement = class RadialInputElement extends WheelNudgeMixin(i) {
|
|
|
32628
32698
|
return value;
|
|
32629
32699
|
}
|
|
32630
32700
|
#setValueFromRelative(relativeValue, isUserInteraction = false) {
|
|
32631
|
-
const newValue = scale$
|
|
32701
|
+
const newValue = scale$2(relativeValue, 0, 1, this.min, this.max);
|
|
32632
32702
|
const clampedValue = this.#quantise(clamp$2(newValue, this.min, this.max));
|
|
32633
32703
|
if (clampedValue === this.value) return;
|
|
32634
32704
|
const previousValue = this.value;
|
|
@@ -33389,7 +33459,7 @@ function clamp$1(value, min, max) {
|
|
|
33389
33459
|
/**
|
|
33390
33460
|
* Linear-reinterpolate `value` from [fromMin, fromMax] to [toMin, toMax].
|
|
33391
33461
|
*/
|
|
33392
|
-
function scale(value, fromMin, fromMax, toMin, toMax) {
|
|
33462
|
+
function scale$1(value, fromMin, fromMax, toMin, toMax) {
|
|
33393
33463
|
if (fromMax === fromMin) return toMin;
|
|
33394
33464
|
return toMin + (value - fromMin) / (fromMax - fromMin) * (toMax - toMin);
|
|
33395
33465
|
}
|
|
@@ -33397,7 +33467,7 @@ function scale(value, fromMin, fromMax, toMin, toMax) {
|
|
|
33397
33467
|
* Convert an absolute value to a relative (0..1) position.
|
|
33398
33468
|
*/
|
|
33399
33469
|
function valueToRelative(value, min, max) {
|
|
33400
|
-
return scale(value, min, max, 0, 1);
|
|
33470
|
+
return scale$1(value, min, max, 0, 1);
|
|
33401
33471
|
}
|
|
33402
33472
|
//#endregion
|
|
33403
33473
|
//#region src/slider-input/slider-input.ts
|
|
@@ -33956,7 +34026,7 @@ let SliderInputElement = class SliderInputElement extends WheelNudgeMixin(i) {
|
|
|
33956
34026
|
return value;
|
|
33957
34027
|
}
|
|
33958
34028
|
#setSingleValueFromRelative(relativeValue, isUserInteraction = false) {
|
|
33959
|
-
const newValue = scale(relativeValue, 0, 1, this.min, this.max);
|
|
34029
|
+
const newValue = scale$1(relativeValue, 0, 1, this.min, this.max);
|
|
33960
34030
|
const clampedValue = this.#quantise(clamp$1(newValue, this.min, this.max));
|
|
33961
34031
|
if (clampedValue === this.valueA) return;
|
|
33962
34032
|
const previousValue = this.valueA;
|
|
@@ -33972,7 +34042,7 @@ let SliderInputElement = class SliderInputElement extends WheelNudgeMixin(i) {
|
|
|
33972
34042
|
this.#emitInputAndChange({ previousValue }, isUserInteraction);
|
|
33973
34043
|
}
|
|
33974
34044
|
#setDualOrTripleValueFromRelative(relativeValue, handle, isUserInteraction = false) {
|
|
33975
|
-
const clamped = clamp$1(scale(relativeValue, 0, 1, this.min, this.max), this.min, this.max);
|
|
34045
|
+
const clamped = clamp$1(scale$1(relativeValue, 0, 1, this.min, this.max), this.min, this.max);
|
|
33976
34046
|
const result = this.#resolvePoleChange(handle, clamped, this.#lastInteractedHandle);
|
|
33977
34047
|
if (!result) return;
|
|
33978
34048
|
const previous = { ...this.#poles() };
|
|
@@ -34512,7 +34582,7 @@ let SliderInputElement = class SliderInputElement extends WheelNudgeMixin(i) {
|
|
|
34512
34582
|
if (handle === `c`) {
|
|
34513
34583
|
const lo = this.#low();
|
|
34514
34584
|
const hi = this.#high();
|
|
34515
|
-
const clamped = clamp$1(scale(clamp$1(targetRelative, 0, 1), 0, 1, this.min, this.max), lo, hi);
|
|
34585
|
+
const clamped = clamp$1(scale$1(clamp$1(targetRelative, 0, 1), 0, 1, this.min, this.max), lo, hi);
|
|
34516
34586
|
const q = this.#quantise(clamped);
|
|
34517
34587
|
if (q === this.#poleC) return;
|
|
34518
34588
|
const previous = this.#poles();
|
|
@@ -38169,6 +38239,62 @@ let MulticolListElement = class MulticolListElement extends i {
|
|
|
38169
38239
|
composed: true
|
|
38170
38240
|
}));
|
|
38171
38241
|
}
|
|
38242
|
+
async autoSizeColumns(options) {
|
|
38243
|
+
return new Promise((resolve) => {
|
|
38244
|
+
setTimeout(() => {
|
|
38245
|
+
const minWidth = options?.minWidth ?? MIN_COLUMN_WIDTH;
|
|
38246
|
+
const maxWidth = options?.maxWidth ?? MAX_COLUMN_WIDTH;
|
|
38247
|
+
const measure = (text) => {
|
|
38248
|
+
const span = document.createElement(`span`);
|
|
38249
|
+
span.style.position = `absolute`;
|
|
38250
|
+
span.style.visibility = `hidden`;
|
|
38251
|
+
span.style.whiteSpace = `nowrap`;
|
|
38252
|
+
span.style.font = getComputedStyle(this).font;
|
|
38253
|
+
span.textContent = text;
|
|
38254
|
+
document.body.appendChild(span);
|
|
38255
|
+
const w = span.getBoundingClientRect().width;
|
|
38256
|
+
document.body.removeChild(span);
|
|
38257
|
+
return w;
|
|
38258
|
+
};
|
|
38259
|
+
for (const col of this._columns) {
|
|
38260
|
+
const colEl = this.shadowRoot?.querySelector(`[data-col-id="${col.id}"]`);
|
|
38261
|
+
if (!colEl) continue;
|
|
38262
|
+
const headerEl = colEl.querySelector(`.column-header`);
|
|
38263
|
+
const listerHost = colEl.querySelector(`.lister-host`);
|
|
38264
|
+
let contentWidth = 0;
|
|
38265
|
+
if (listerHost) {
|
|
38266
|
+
const allLabel = listerHost.querySelector(`.all-label`);
|
|
38267
|
+
if (allLabel) contentWidth = Math.max(contentWidth, measure(allLabel.textContent ?? ``));
|
|
38268
|
+
const groupedLister = listerHost.querySelector(`ixfx-grouped-item-lister`);
|
|
38269
|
+
if (groupedLister) {
|
|
38270
|
+
const verticalLists = groupedLister.querySelectorAll(`ixfx-vertical-list`);
|
|
38271
|
+
for (const vl of verticalLists) {
|
|
38272
|
+
const itemEls = vl.querySelectorAll(`li`);
|
|
38273
|
+
for (const li of itemEls) {
|
|
38274
|
+
const labelEl = li.querySelector(`.item-label`);
|
|
38275
|
+
const countEl = li.querySelector(`.count`);
|
|
38276
|
+
const combinedText = (labelEl?.textContent ?? ``) + (countEl?.textContent ?? ``);
|
|
38277
|
+
contentWidth = Math.max(contentWidth, measure(combinedText));
|
|
38278
|
+
}
|
|
38279
|
+
}
|
|
38280
|
+
}
|
|
38281
|
+
}
|
|
38282
|
+
let headerWidth = 0;
|
|
38283
|
+
if (headerEl) {
|
|
38284
|
+
const labelBtn = headerEl.querySelector(`.column-label`);
|
|
38285
|
+
if (labelBtn) headerWidth = measure(labelBtn.textContent ?? ``);
|
|
38286
|
+
}
|
|
38287
|
+
const neededWidth = Math.max(headerWidth, contentWidth + 24 + 16);
|
|
38288
|
+
const clampedWidth = Math.max(minWidth, Math.min(maxWidth, Math.ceil(neededWidth)));
|
|
38289
|
+
col.setWidth(clampedWidth);
|
|
38290
|
+
}
|
|
38291
|
+
this._updateColOffsets();
|
|
38292
|
+
this._emitColumnsChange(`resize`);
|
|
38293
|
+
this.requestUpdate();
|
|
38294
|
+
resolve();
|
|
38295
|
+
}, 0);
|
|
38296
|
+
});
|
|
38297
|
+
}
|
|
38172
38298
|
};
|
|
38173
38299
|
__decorate([property({ attribute: false })], MulticolListElement.prototype, "categories", void 0);
|
|
38174
38300
|
__decorate([property({ attribute: false })], MulticolListElement.prototype, "dataProvider", void 0);
|
|
@@ -43277,6 +43403,289 @@ __decorate([property({
|
|
|
43277
43403
|
__decorate([property({ type: String })], SelectHorizElement.prototype, "selectedValue", null);
|
|
43278
43404
|
SelectHorizElement = __decorate([safeCustomElement(`ixfx-select-horiz`)], SelectHorizElement);
|
|
43279
43405
|
//#endregion
|
|
43406
|
+
//#region src/util/clamp.ts
|
|
43407
|
+
function clampValue(v, min, max) {
|
|
43408
|
+
return Math.min(Math.max(v, min), max);
|
|
43409
|
+
}
|
|
43410
|
+
//#endregion
|
|
43411
|
+
//#region src/util/geometry.ts
|
|
43412
|
+
function scale(v, fromMin, fromMax, toMin, toMax) {
|
|
43413
|
+
if (fromMax === fromMin) return toMin;
|
|
43414
|
+
return toMin + (v - fromMin) / (fromMax - fromMin) * (toMax - toMin);
|
|
43415
|
+
}
|
|
43416
|
+
//#endregion
|
|
43417
|
+
//#region src/shapefill-value/shapefill-value.ts
|
|
43418
|
+
let ShapefillValueElement = class ShapefillValueElement extends WheelNudgeMixin(i) {
|
|
43419
|
+
constructor(..._args) {
|
|
43420
|
+
super(..._args);
|
|
43421
|
+
this.display = `circle`;
|
|
43422
|
+
this.fillMode = `centre`;
|
|
43423
|
+
this.value = 0;
|
|
43424
|
+
this.min = 0;
|
|
43425
|
+
this.max = 100;
|
|
43426
|
+
this.step = void 0;
|
|
43427
|
+
this.disabled = false;
|
|
43428
|
+
this.#dragging = false;
|
|
43429
|
+
this.#dragStartY = 0;
|
|
43430
|
+
this.#valueAtDragStart = 0;
|
|
43431
|
+
this.#onPointerDown = (event) => {
|
|
43432
|
+
if (this.disabled) return;
|
|
43433
|
+
event.preventDefault();
|
|
43434
|
+
const svgEl = this.renderRoot.querySelector(`svg`);
|
|
43435
|
+
svgEl?.focus();
|
|
43436
|
+
this.#dragging = true;
|
|
43437
|
+
this.#dragStartY = event.clientY;
|
|
43438
|
+
this.#valueAtDragStart = this.value;
|
|
43439
|
+
this.toggleAttribute(`dragging`, true);
|
|
43440
|
+
if (svgEl) svgEl.setPointerCapture(event.pointerId);
|
|
43441
|
+
window.addEventListener(`pointermove`, this.#onPointerMove);
|
|
43442
|
+
window.addEventListener(`pointerup`, this.#onPointerUp);
|
|
43443
|
+
window.addEventListener(`pointercancel`, this.#onPointerUp);
|
|
43444
|
+
};
|
|
43445
|
+
this.#onPointerMove = (event) => {
|
|
43446
|
+
if (!this.#dragging) return;
|
|
43447
|
+
event.preventDefault();
|
|
43448
|
+
const effectiveSensitivity = this.clientHeight * 2 * (event.shiftKey ? 10 : 1);
|
|
43449
|
+
const deltaValue = (this.#dragStartY - event.clientY) / effectiveSensitivity * (this.max - this.min);
|
|
43450
|
+
const relativeValue = scale(this.#valueAtDragStart + deltaValue, this.min, this.max, 0, 1);
|
|
43451
|
+
this.#setValueFromRelative(clampValue(relativeValue, 0, 1), true);
|
|
43452
|
+
};
|
|
43453
|
+
this.#onPointerUp = () => {
|
|
43454
|
+
this.#dragging = false;
|
|
43455
|
+
this.toggleAttribute(`dragging`, false);
|
|
43456
|
+
const svgEl = this.renderRoot.querySelector(`svg`);
|
|
43457
|
+
if (svgEl && `hasPointerCapture` in svgEl && typeof svgEl.hasPointerCapture === `function`) {
|
|
43458
|
+
if (svgEl.hasPointerCapture(1)) svgEl.releasePointerCapture(1);
|
|
43459
|
+
}
|
|
43460
|
+
window.removeEventListener(`pointermove`, this.#onPointerMove);
|
|
43461
|
+
window.removeEventListener(`pointerup`, this.#onPointerUp);
|
|
43462
|
+
window.removeEventListener(`pointercancel`, this.#onPointerUp);
|
|
43463
|
+
};
|
|
43464
|
+
this.#onKeyDown = (event) => {
|
|
43465
|
+
if (this.disabled) return;
|
|
43466
|
+
const range = this.max - this.min;
|
|
43467
|
+
const effectiveStep = resolveAxisStep(range, this.stops, this.step, event.shiftKey);
|
|
43468
|
+
let handled = false;
|
|
43469
|
+
switch (event.key) {
|
|
43470
|
+
case `ArrowUp`:
|
|
43471
|
+
case `ArrowRight`:
|
|
43472
|
+
this.#stepByRelativeDelta(effectiveStep / range, true);
|
|
43473
|
+
handled = true;
|
|
43474
|
+
break;
|
|
43475
|
+
case `ArrowDown`:
|
|
43476
|
+
case `ArrowLeft`:
|
|
43477
|
+
this.#stepByRelativeDelta(-effectiveStep / range, true);
|
|
43478
|
+
handled = true;
|
|
43479
|
+
break;
|
|
43480
|
+
case `Home`:
|
|
43481
|
+
this.#setValueFromRelative(0, true);
|
|
43482
|
+
handled = true;
|
|
43483
|
+
break;
|
|
43484
|
+
case `End`:
|
|
43485
|
+
this.#setValueFromRelative(1, true);
|
|
43486
|
+
handled = true;
|
|
43487
|
+
}
|
|
43488
|
+
if (handled) event.preventDefault();
|
|
43489
|
+
};
|
|
43490
|
+
}
|
|
43491
|
+
#dragging;
|
|
43492
|
+
#dragStartY;
|
|
43493
|
+
#valueAtDragStart;
|
|
43494
|
+
#changeDebounceTimer;
|
|
43495
|
+
#getRelativeValue() {
|
|
43496
|
+
return scale(this.value, this.min, this.max, 0, 1);
|
|
43497
|
+
}
|
|
43498
|
+
#quantise(value) {
|
|
43499
|
+
if (this.stops && this.stops > 1) {
|
|
43500
|
+
const step = (this.max - this.min) / this.stops;
|
|
43501
|
+
return Math.round((value - this.min) / step) * step + this.min;
|
|
43502
|
+
}
|
|
43503
|
+
return value;
|
|
43504
|
+
}
|
|
43505
|
+
#setValueFromRelative(relativeValue, isUserInteraction = false) {
|
|
43506
|
+
const newValue = scale(relativeValue, 0, 1, this.min, this.max);
|
|
43507
|
+
const clampedValue = this.#quantise(clampValue(newValue, this.min, this.max));
|
|
43508
|
+
if (clampedValue === this.value) return;
|
|
43509
|
+
const previousValue = this.value;
|
|
43510
|
+
this.value = clampedValue;
|
|
43511
|
+
if (this.hasAttribute(`data-tooltip-live`)) {
|
|
43512
|
+
const percentage = Math.round(this.#getRelativeValue() * 100);
|
|
43513
|
+
this.setAttribute(`data-tooltip`, `${percentage}%`);
|
|
43514
|
+
}
|
|
43515
|
+
if (isUserInteraction) {
|
|
43516
|
+
this.dispatchEvent(new CustomEvent(`input`, {
|
|
43517
|
+
detail: {
|
|
43518
|
+
value: this.value,
|
|
43519
|
+
valueRelative: this.#getRelativeValue()
|
|
43520
|
+
},
|
|
43521
|
+
bubbles: true,
|
|
43522
|
+
composed: true
|
|
43523
|
+
}));
|
|
43524
|
+
this.#scheduleChangeEvent(previousValue);
|
|
43525
|
+
} else this.#fireChangeEvent(previousValue);
|
|
43526
|
+
}
|
|
43527
|
+
#scheduleChangeEvent(previousValue) {
|
|
43528
|
+
if (this.#changeDebounceTimer !== void 0) clearTimeout(this.#changeDebounceTimer);
|
|
43529
|
+
this.#changeDebounceTimer = window.setTimeout(() => {
|
|
43530
|
+
this.#fireChangeEvent(previousValue);
|
|
43531
|
+
this.#changeDebounceTimer = void 0;
|
|
43532
|
+
}, 150);
|
|
43533
|
+
}
|
|
43534
|
+
#fireChangeEvent(previousValue) {
|
|
43535
|
+
this.dispatchEvent(new CustomEvent(`change`, {
|
|
43536
|
+
detail: {
|
|
43537
|
+
value: this.value,
|
|
43538
|
+
valueRelative: this.#getRelativeValue(),
|
|
43539
|
+
previousValue
|
|
43540
|
+
},
|
|
43541
|
+
bubbles: true,
|
|
43542
|
+
composed: true
|
|
43543
|
+
}));
|
|
43544
|
+
}
|
|
43545
|
+
#onPointerDown;
|
|
43546
|
+
#onPointerMove;
|
|
43547
|
+
#onPointerUp;
|
|
43548
|
+
#onKeyDown;
|
|
43549
|
+
/**
|
|
43550
|
+
* Apply a relative-delta nudge to the current value, clamped to [min, max] and
|
|
43551
|
+
* quantised. Shared between keyboard arrow keys and the wheel handler.
|
|
43552
|
+
*/
|
|
43553
|
+
#stepByRelativeDelta(relativeDelta, isUserInteraction) {
|
|
43554
|
+
this.#setValueFromRelative(clampValue(this.#getRelativeValue() + relativeDelta, 0, 1), isUserInteraction);
|
|
43555
|
+
}
|
|
43556
|
+
_applyWheelDelta(direction, event) {
|
|
43557
|
+
const range = this.max - this.min;
|
|
43558
|
+
const effectiveStep = resolveAxisStep(range, this.stops, this.step, event.shiftKey);
|
|
43559
|
+
this.#stepByRelativeDelta(direction * effectiveStep / range, true);
|
|
43560
|
+
}
|
|
43561
|
+
#renderCircle() {
|
|
43562
|
+
const relativeValue = this.#getRelativeValue();
|
|
43563
|
+
const outerRadius = 45;
|
|
43564
|
+
const innerRadius = outerRadius * relativeValue;
|
|
43565
|
+
const outerCx = 50;
|
|
43566
|
+
const outerCy = 50;
|
|
43567
|
+
let cx = outerCx;
|
|
43568
|
+
if (this.fillMode === `left`) cx = 5 + outerRadius * relativeValue;
|
|
43569
|
+
else if (this.fillMode === `right`) cx = 95 - outerRadius * relativeValue;
|
|
43570
|
+
return w`
|
|
43571
|
+
<circle class="fill" cx="${cx}" cy="${outerCy}" r="${innerRadius}" />
|
|
43572
|
+
<circle class="outline" cx="${outerCx}" cy="${outerCy}" r="${outerRadius}" fill="none" />
|
|
43573
|
+
`;
|
|
43574
|
+
}
|
|
43575
|
+
#renderRectangle() {
|
|
43576
|
+
const relativeValue = this.#getRelativeValue();
|
|
43577
|
+
const outerSize = 90;
|
|
43578
|
+
const outerOffset = 5;
|
|
43579
|
+
if (this.fillMode === `left` || this.fillMode === `right`) {
|
|
43580
|
+
const innerWidth = outerSize * relativeValue;
|
|
43581
|
+
const x = this.fillMode === `left` ? outerOffset : 95 - innerWidth;
|
|
43582
|
+
return w`
|
|
43583
|
+
<rect class="fill" x="${x}" y="${outerOffset}" width="${innerWidth}" height="${outerSize}" />
|
|
43584
|
+
<rect class="outline" x="${outerOffset}" y="${outerOffset}" width="${outerSize}" height="${outerSize}" fill="none" />
|
|
43585
|
+
`;
|
|
43586
|
+
}
|
|
43587
|
+
const innerSize = outerSize * relativeValue;
|
|
43588
|
+
const innerOffset = (100 - innerSize) / 2;
|
|
43589
|
+
return w`
|
|
43590
|
+
<rect class="fill" x="${innerOffset}" y="${innerOffset}" width="${innerSize}" height="${innerSize}" />
|
|
43591
|
+
<rect class="outline" x="${outerOffset}" y="${outerOffset}" width="${outerSize}" height="${outerSize}" fill="none" />
|
|
43592
|
+
`;
|
|
43593
|
+
}
|
|
43594
|
+
render() {
|
|
43595
|
+
const preserveAspectRatio = this.display === `rectangle` ? `none` : `xMidYMid meet`;
|
|
43596
|
+
return b`
|
|
43597
|
+
<svg
|
|
43598
|
+
viewBox="0 0 100 100"
|
|
43599
|
+
preserveAspectRatio="${preserveAspectRatio}"
|
|
43600
|
+
tabindex="${this.disabled ? -1 : 0}"
|
|
43601
|
+
@pointerdown="${this.#onPointerDown}"
|
|
43602
|
+
@keydown="${this.#onKeyDown}"
|
|
43603
|
+
style="cursor: ${this.#dragging ? `ns-resize` : `grab`}"
|
|
43604
|
+
>
|
|
43605
|
+
${this.display === `rectangle` ? this.#renderRectangle() : this.#renderCircle()}
|
|
43606
|
+
</svg>
|
|
43607
|
+
`;
|
|
43608
|
+
}
|
|
43609
|
+
updated(changed) {
|
|
43610
|
+
super.updated(changed);
|
|
43611
|
+
this.style.setProperty(`--shapefill-value-relative`, this.#getRelativeValue().toString());
|
|
43612
|
+
}
|
|
43613
|
+
disconnectedCallback() {
|
|
43614
|
+
super.disconnectedCallback();
|
|
43615
|
+
if (this.#changeDebounceTimer !== void 0) clearTimeout(this.#changeDebounceTimer);
|
|
43616
|
+
this.#onPointerUp();
|
|
43617
|
+
}
|
|
43618
|
+
static {
|
|
43619
|
+
this.styles = [
|
|
43620
|
+
themeFallbacks,
|
|
43621
|
+
prominenceStyles,
|
|
43622
|
+
i$3`
|
|
43623
|
+
:host {
|
|
43624
|
+
display: inline-block;
|
|
43625
|
+
width: 2em;
|
|
43626
|
+
height: 2em;
|
|
43627
|
+
touch-action: none;
|
|
43628
|
+
user-select: none;
|
|
43629
|
+
|
|
43630
|
+
/* Dynamic value - set by JS */
|
|
43631
|
+
--shapefill-value-relative: 0;
|
|
43632
|
+
|
|
43633
|
+
/* Public styling variables — consumer customisable */
|
|
43634
|
+
--shapefill-value-outline-color: var(--surface-4);
|
|
43635
|
+
--shapefill-value-outline-width: 2;
|
|
43636
|
+
--shapefill-value-fill-color: var(--accent);
|
|
43637
|
+
}
|
|
43638
|
+
|
|
43639
|
+
:host([disabled]) {
|
|
43640
|
+
cursor: not-allowed;
|
|
43641
|
+
}
|
|
43642
|
+
|
|
43643
|
+
svg {
|
|
43644
|
+
width: 100%;
|
|
43645
|
+
height: 100%;
|
|
43646
|
+
outline: none;
|
|
43647
|
+
display: block;
|
|
43648
|
+
}
|
|
43649
|
+
|
|
43650
|
+
svg:active {
|
|
43651
|
+
cursor: grabbing;
|
|
43652
|
+
}
|
|
43653
|
+
|
|
43654
|
+
svg:focus-visible {
|
|
43655
|
+
outline: var(--shapefill-value-focus-outline, 2px solid var(--accent));
|
|
43656
|
+
outline-offset: var(--shapefill-value-focus-outline-offset, 2px);
|
|
43657
|
+
}
|
|
43658
|
+
|
|
43659
|
+
.outline {
|
|
43660
|
+
stroke: var(--shapefill-value-outline-color, var(--surface-4));
|
|
43661
|
+
stroke-width: var(--shapefill-value-outline-width, 2);
|
|
43662
|
+
vector-effect: non-scaling-stroke;
|
|
43663
|
+
}
|
|
43664
|
+
|
|
43665
|
+
.fill {
|
|
43666
|
+
fill: var(--shapefill-value-fill-color, var(--accent));
|
|
43667
|
+
transition: var(--shapefill-value-fill-transition, none);
|
|
43668
|
+
}
|
|
43669
|
+
`
|
|
43670
|
+
];
|
|
43671
|
+
}
|
|
43672
|
+
};
|
|
43673
|
+
__decorate([property({ type: String })], ShapefillValueElement.prototype, "display", void 0);
|
|
43674
|
+
__decorate([property({
|
|
43675
|
+
type: String,
|
|
43676
|
+
attribute: `fill-mode`
|
|
43677
|
+
})], ShapefillValueElement.prototype, "fillMode", void 0);
|
|
43678
|
+
__decorate([property({ type: Number })], ShapefillValueElement.prototype, "value", void 0);
|
|
43679
|
+
__decorate([property({ type: Number })], ShapefillValueElement.prototype, "min", void 0);
|
|
43680
|
+
__decorate([property({ type: Number })], ShapefillValueElement.prototype, "max", void 0);
|
|
43681
|
+
__decorate([property({ type: Number })], ShapefillValueElement.prototype, "step", void 0);
|
|
43682
|
+
__decorate([property({ type: Number })], ShapefillValueElement.prototype, "stops", void 0);
|
|
43683
|
+
__decorate([property({
|
|
43684
|
+
type: Boolean,
|
|
43685
|
+
reflect: true
|
|
43686
|
+
})], ShapefillValueElement.prototype, "disabled", void 0);
|
|
43687
|
+
ShapefillValueElement = __decorate([safeCustomElement(`ixfx-shapefill-value`)], ShapefillValueElement);
|
|
43688
|
+
//#endregion
|
|
43280
43689
|
//#region src/sliding-number/sliding-number.ts
|
|
43281
43690
|
const REEL_DIGITS = Array.from({ length: 30 }, (_, index) => index % 10);
|
|
43282
43691
|
const SECTION_RANK = {
|
|
@@ -50254,6 +50663,6 @@ function init() {
|
|
|
50254
50663
|
console.log(`Init`);
|
|
50255
50664
|
}
|
|
50256
50665
|
//#endregion
|
|
50257
|
-
export { AcTextElement, AcTokenElement, BottomDrawerElement, ButtonElement, Checkbox, ColourPicker, ColourPickerPopup, CrumbNavigationElement, CrumbPathController, CrumbPathElement, DataController, DataDisplayComponent, DataGridElement, DataTableElement, DetailListElement, DockHostElement, DockPanelElement, EditableLabel, EditableNumber, FormElement, FormGroupElement, FormPartElement, GridListElement, GroupedItemListerElement, ICON_CARET_RIGHT, ICON_CHECK, ICON_CHEVRON_DOWN, ICON_CLOSE, IcicleTreeListElement, IncrSearchTreeController as IncrSearchMillerController, IncrSearchTreeController, IxfxHexEditorElement, IxfxIconElement, IxfxTimelineElement, KeyedElementIndex, LIST_ITEM_MOTION_MS, LIST_SEARCH_COMMAND_IDS, LIST_SEARCH_MODES, LabelledRadialInput, LabelledRangeInput, LabelledSliderInput, LedElement, ListDragSelectController, ListNativeDragController, ListSearchController, ListSelectionController, menu_exports as Menu, MillerBaseElement, MillerListElement, MillerTreeController, MulticolListElement, NarrowedTextElement, NotificationManager, NotificationPillElement, PanTextElement, PanelElement, PanelGroupElement, PlotDataSeries, PlotHistogram, PlotMultiAxis, PlotSingleAxis, PlotXyAxis, PolarPad, RadialInputElement, RadioGroup, RangeElement, RangeInput, RangeMultiElement, RatingElement, SelectHorizElement, SliderInputElement, SlidingNumberElement, SnackbarElement, SnapContainer, SplitButton, SplitLayoutElement, SplitPanelElement, SwipeElement, TabController, TabListElement, TabListItemElement, TabPanelElement, TabPanelsElement, TextShimmerElement, TickledController, TimelineController, TimelineTrackTabElement, TitlebarElement, ToolbarElement, ToolbarGroupElement, TooltipElement, TransitoryLabelElement, TreeBaseElement, TreeController, TreeDataModel, TreeDropController, TreeKeyboardNavController, TreeListElement, TreemapListElement, TwoSplitLayoutElement, VerticalListElement, XyPad, addPanelToStack, animateListItemIn, animateListItemOut, applyAgeModification, applyHighlights, applySnapshot, applyTreeDrop, attachTimelineInteractions, bottomDrawerCommandId, buildHighlightTargets, buildModel, captionForEntry, clearHighlights, collectContainerNames, collectDataResult, collectPanelIds, collectStackPaths, computeColour, computeIcicleLayout, computeLeafGeoms, computeTreemapLayout, createAcCompletionProvider, createDataListSearchAdapter, createDefaultListDragPreview, createElementIncrSearch, createElementListSearchAdapter, createEmptyLayout, createEmptyStack, createFuzzySearch, createIncrSearch, createPillRenderer, createSplit, createStack, createTreeListAdapter, createTreeListSearchAdapter, createVerticalListAdapter, distribute, dropTargetFor, extractStack, findIcicleNode, findIciclePath, findNode, findParentOf, findStackOf, findStackPathByName, findTreemapNode, findTreemapPath, getActiveDragPanelId, getIcon, getIconEntry, getIconFont, getLeafNeighbours, hasIcon, iconBus, init, insertBeside, isDragging, isMultiMode, isSplit, isStack, keyForElement, listItemFadeKeyframes, listSearchStyles, monitorIndeterminate, moveLeafNodeToEdge, moveLeafStep, normalise, normaliseValue, normalize, panelGapIndex, parseColourScaleAttr, parseLayout, pointerOverAnyHost, prefersReducedMotion, pruneDraggedDescendants, readBaseColour, registerFontIcon, registerIcon, registerListSearchCommands, removePanelFromStack, resolveCssVars, resolveGrid, resolveLeafPath, resolveTracks, serializeLayout, setActive, setIconFont, startListItemOutAnimation, svgToDataUri, swapLeaves, tickledItemStyles, tickledStyles, timelineStyles, toSnapshot, toolbarGapIndex, walk, wrapRoot };
|
|
50666
|
+
export { AcTextElement, AcTokenElement, BottomDrawerElement, ButtonElement, Checkbox, ColourPicker, ColourPickerPopup, CrumbNavigationElement, CrumbPathController, CrumbPathElement, DataController, DataDisplayComponent, DataGridElement, DataTableElement, DetailListElement, DockHostElement, DockPanelElement, EditableLabel, EditableNumber, FormElement, FormGroupElement, FormPartElement, GridListElement, GroupedItemListerElement, ICON_CARET_RIGHT, ICON_CHECK, ICON_CHEVRON_DOWN, ICON_CLOSE, IcicleTreeListElement, IncrSearchTreeController as IncrSearchMillerController, IncrSearchTreeController, IxfxHexEditorElement, IxfxIconElement, IxfxTimelineElement, KeyedElementIndex, LIST_ITEM_MOTION_MS, LIST_SEARCH_COMMAND_IDS, LIST_SEARCH_MODES, LabelledRadialInput, LabelledRangeInput, LabelledSliderInput, LedElement, ListDragSelectController, ListNativeDragController, ListSearchController, ListSelectionController, menu_exports as Menu, MillerBaseElement, MillerListElement, MillerTreeController, MulticolListElement, NarrowedTextElement, NotificationManager, NotificationPillElement, PanTextElement, PanelElement, PanelGroupElement, PlotDataSeries, PlotHistogram, PlotMultiAxis, PlotSingleAxis, PlotXyAxis, PolarPad, RadialInputElement, RadioGroup, RangeElement, RangeInput, RangeMultiElement, RatingElement, SelectHorizElement, ShapefillValueElement, SliderInputElement, SlidingNumberElement, SnackbarElement, SnapContainer, SplitButton, SplitLayoutElement, SplitPanelElement, SwipeElement, TabController, TabListElement, TabListItemElement, TabPanelElement, TabPanelsElement, TextShimmerElement, TickledController, TimelineController, TimelineTrackTabElement, TitlebarElement, ToolbarElement, ToolbarGroupElement, TooltipElement, TransitoryLabelElement, TreeBaseElement, TreeController, TreeDataModel, TreeDropController, TreeKeyboardNavController, TreeListElement, TreemapListElement, TwoSplitLayoutElement, VerticalListElement, XyPad, addPanelToStack, animateListItemIn, animateListItemOut, applyAgeModification, applyHighlights, applySnapshot, applyTreeDrop, attachTimelineInteractions, bottomDrawerCommandId, buildHighlightTargets, buildModel, captionForEntry, clearHighlights, collectContainerNames, collectDataResult, collectPanelIds, collectStackPaths, computeColour, computeIcicleLayout, computeLeafGeoms, computeTreemapLayout, createAcCompletionProvider, createDataListSearchAdapter, createDefaultListDragPreview, createElementIncrSearch, createElementListSearchAdapter, createEmptyLayout, createEmptyStack, createFuzzySearch, createIncrSearch, createPillRenderer, createSplit, createStack, createTreeListAdapter, createTreeListSearchAdapter, createVerticalListAdapter, distribute, dropTargetFor, extractStack, findIcicleNode, findIciclePath, findNode, findParentOf, findStackOf, findStackPathByName, findTreemapNode, findTreemapPath, getActiveDragPanelId, getIcon, getIconEntry, getIconFont, getLeafNeighbours, hasIcon, iconBus, init, insertBeside, isDragging, isMultiMode, isSplit, isStack, keyForElement, listItemFadeKeyframes, listSearchStyles, monitorIndeterminate, moveLeafNodeToEdge, moveLeafStep, normalise, normaliseValue, normalize, panelGapIndex, parseColourScaleAttr, parseLayout, pointerOverAnyHost, prefersReducedMotion, pruneDraggedDescendants, readBaseColour, registerFontIcon, registerIcon, registerListSearchCommands, removePanelFromStack, resolveCssVars, resolveGrid, resolveLeafPath, resolveTracks, serializeLayout, setActive, setIconFont, startListItemOutAnimation, svgToDataUri, swapLeaves, tickledItemStyles, tickledStyles, timelineStyles, toSnapshot, toolbarGapIndex, walk, wrapRoot };
|
|
50258
50667
|
|
|
50259
50668
|
//# sourceMappingURL=index.js.map
|