@vonage/vivid 4.27.0 → 4.29.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/custom-elements.json +357 -80
- package/lib/audio-player/audio-player.d.ts +4 -3
- package/lib/data-grid/data-grid.d.ts +2 -0
- package/lib/data-grid/locale.d.ts +1 -0
- package/lib/date-picker/date-picker.d.ts +4 -2
- package/lib/date-time-picker/date-time-picker.d.ts +6 -3
- package/lib/divider/definition.d.ts +1 -0
- package/lib/divider/divider.d.ts +5 -1
- package/lib/option/option.d.ts +4 -7
- package/lib/rich-text-editor/facades/prose-mirror-vivid.schema.d.ts +2 -1
- package/lib/rich-text-editor/facades/vivid-prose-mirror.facade.d.ts +2 -2
- package/lib/rich-text-editor/image-placeholder/definition.d.ts +2 -0
- package/lib/rich-text-editor/image-placeholder/image-placeholder.d.ts +7 -0
- package/lib/rich-text-editor/image-placeholder/image-placeholder.template.d.ts +4 -0
- package/lib/rich-text-editor/menubar/consts.d.ts +2 -2
- package/lib/rich-text-editor/menubar/definition.d.ts +2 -2
- package/lib/rich-text-editor/menubar/menubar.d.ts +2 -2
- package/lib/rich-text-editor/menubar/menubar.template.d.ts +2 -2
- package/lib/rich-text-editor/rich-text-editor.d.ts +1 -0
- package/lib/time-picker/time-picker.d.ts +4 -2
- package/locales/de-DE.cjs +2 -1
- package/locales/de-DE.js +2 -1
- package/locales/en-GB.cjs +2 -1
- package/locales/en-GB.js +2 -1
- package/locales/en-US.cjs +2 -1
- package/locales/en-US.js +2 -1
- package/locales/ja-JP.cjs +2 -1
- package/locales/ja-JP.js +2 -1
- package/locales/zh-CN.cjs +2 -1
- package/locales/zh-CN.js +2 -1
- package/package.json +2 -1
- package/shared/calendar-picker.template.cjs +8 -9
- package/shared/calendar-picker.template.js +8 -9
- package/shared/definition16.cjs +33 -30
- package/shared/definition16.js +33 -30
- package/shared/definition17.cjs +137 -1
- package/shared/definition17.js +138 -2
- package/shared/definition23.cjs +12 -7
- package/shared/definition23.js +12 -7
- package/shared/definition30.cjs +2 -1
- package/shared/definition30.js +2 -1
- package/shared/definition31.cjs +5 -1
- package/shared/definition31.js +5 -1
- package/shared/definition36.cjs +1 -1
- package/shared/definition36.js +1 -1
- package/shared/definition44.cjs +184 -55
- package/shared/definition44.js +184 -55
- package/shared/definition45.cjs +12 -5
- package/shared/definition45.js +12 -5
- package/shared/definition5.cjs +86 -30
- package/shared/definition5.js +86 -30
- package/shared/definition61.cjs +11 -0
- package/shared/definition61.js +11 -0
- package/shared/definition64.cjs +1 -1
- package/shared/definition64.js +1 -1
- package/shared/divider.cjs +7 -2
- package/shared/divider.js +7 -2
- package/shared/option.cjs +36 -38
- package/shared/option.js +37 -39
- package/shared/picker-field/mixins/inline-time-picker/inline-time-picker.d.ts +1 -0
- package/shared/picker-field/mixins/single-date-picker.d.ts +4 -2
- package/shared/picker-field/mixins/single-value-picker.d.ts +2 -1
- package/shared/picker-field/mixins/time-selection-picker.d.ts +4 -2
- package/shared/picker-field/mixins/time-selection-picker.template.d.ts +4 -2
- package/shared/single-value-picker.cjs +40 -6
- package/shared/single-value-picker.js +40 -6
- package/shared/text-field.cjs +1 -1
- package/shared/text-field.js +1 -1
- package/shared/time-selection-picker.template.cjs +71 -22
- package/shared/time-selection-picker.template.js +71 -22
- package/shared/vivid-element.cjs +1 -1
- package/shared/vivid-element.js +1 -1
- package/styles/core/all.css +1 -1
- package/styles/core/theme.css +1 -1
- package/styles/core/typography.css +1 -1
- package/styles/tokens/theme-dark.css +4 -4
- package/styles/tokens/theme-light.css +4 -4
- package/styles/tokens/vivid-2-compat.css +1 -1
- package/vivid.api.json +211 -126
package/shared/definition16.cjs
CHANGED
|
@@ -21,7 +21,7 @@ const slotted = require('./slotted.cjs');
|
|
|
21
21
|
const classNames = require('./class-names.cjs');
|
|
22
22
|
const when = require('./when.cjs');
|
|
23
23
|
|
|
24
|
-
const styles = ".chevron{display:flex;flex-shrink:0;font:var(--vvd-typography-base-extended);transform:rotate(0);transition:transform .2s}:host([data-expanded=true]) .chevron,:host([open]) .chevron{transform:rotate(180deg)}:not(.disabled) .chevron{cursor:pointer}.disabled .chevron{color:var(--_low-ink-color);cursor:not-allowed}:host{position:relative;display:inline-flex;flex-direction:column;gap:4px;--_low-ink-color: var(--vvd-color-neutral-600)}:host([disabled]){--_low-ink-color: var(--vvd-color-neutral-400);cursor:not-allowed}.base{--_text-field-gutter-end: 8px}.base{--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-500)}.base.appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-700)}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)).appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.base:where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.base:where(.disabled,:disabled).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.readonly):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-neutral-200);--_appearance-color-outline: var(--vvd-color-neutral-400)}.base:where(.readonly):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-600);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.error):where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: var(--vvd-color-alert-500)}.base:where(.error):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: transparent}.base:where(.success):where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: var(--vvd-color-success-500)}.base:where(.success):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: transparent}.base:not(.shape-pill) .base{border-radius:var(--_text-field-border-radius)}.base.shape-pill .base{border-radius:var(--_text-field-pill-border-radius)}.base slot[name=icon]{position:absolute;z-index:1;display:inline-block;color:var(--_low-ink-color);font-size:var(--_text-field-icon-size);inset-block-start:50%;inset-inline-start:var(--_text-field-gutter-start);line-height:1;pointer-events:none;transform:translateY(-50%)}.base.has-meta{padding-inline-end:16px}.control{text-overflow:ellipsis;white-space:nowrap}.fieldset .leading-items-wrapper{position:relative;display:flex;flex-shrink:0;align-items:center;gap:8px;padding-inline-end:16px}.listbox{display:flex;max-height:var(--combobox-height, 408px);flex-direction:column;padding:4px;border-radius:8px;contain:paint;gap:2px;overflow-y:auto}::part(popup-base){inline-size:max-content;min-inline-size:var(--_combobox-fixed-width, 100%)}@supports selector(:has(*)){.fieldset:has(.control:focus-within):after{--focus-stroke-gap-color: transparent;box-shadow:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px))}}@supports not selector(:has(*)){.fieldset:focus-within:after{box-shadow:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent;position:absolute;z-index:1;display:block;border-radius:inherit;content:\"\";inset:0;pointer-events:none}}";
|
|
24
|
+
const styles = ".chevron{display:flex;flex-shrink:0;font:var(--vvd-typography-base-extended);transform:rotate(0);transition:transform .2s}:host([data-expanded=true]) .chevron,:host([open]) .chevron{transform:rotate(180deg)}:not(.disabled) .chevron{cursor:pointer}.disabled .chevron{color:var(--_low-ink-color);cursor:not-allowed}:host{position:relative;display:inline-flex;flex-direction:column;gap:4px;--_low-ink-color: var(--vvd-color-neutral-600)}:host([disabled]){--_low-ink-color: var(--vvd-color-neutral-400);cursor:not-allowed}.base{--_text-field-gutter-end: 8px}.base{--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-500)}.base.appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-700)}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)).appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.base:where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.base:where(.disabled,:disabled).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.readonly):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-neutral-200);--_appearance-color-outline: var(--vvd-color-neutral-400)}.base:where(.readonly):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-600);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.error):where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: var(--vvd-color-alert-500)}.base:where(.error):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: transparent}.base:where(.success):where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: var(--vvd-color-success-500)}.base:where(.success):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: transparent}.base:not(.shape-pill) .base{border-radius:var(--_text-field-border-radius)}.base.shape-pill .base{border-radius:var(--_text-field-pill-border-radius)}.base slot[name=icon]{position:absolute;z-index:1;display:inline-block;color:var(--_low-ink-color);font-size:var(--_text-field-icon-size);inset-block-start:50%;inset-inline-start:var(--_text-field-gutter-start);line-height:1;pointer-events:none;transform:translateY(-50%)}.base.has-meta{padding-inline-end:16px}.control{text-overflow:ellipsis;white-space:nowrap}.fieldset .leading-items-wrapper{position:relative;display:flex;flex-shrink:0;align-items:center;gap:8px;padding-inline-end:16px}.listbox{display:flex;max-height:var(--combobox-height, 408px);flex-direction:column;padding:4px;border-radius:8px;contain:paint;gap:2px;overflow-y:auto}::part(popup-base){inline-size:max-content;min-inline-size:var(--_combobox-fixed-width, 100%)}@supports selector(:has(*)){.base:not(.has-activedescendant) .fieldset:has(.control:focus-within):after{--focus-stroke-gap-color: transparent;box-shadow:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px))}}@supports not selector(:has(*)){.base:not(.has-activedescendant) .fieldset:focus-within:after{box-shadow:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent;position:absolute;z-index:1;display:block;border-radius:inherit;content:\"\";inset:0;pointer-events:none}}::slotted([data-vvd-component=option][current-selected]){border-radius:8px;box-shadow:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent}";
|
|
25
25
|
|
|
26
26
|
const ComboboxAutocomplete = {
|
|
27
27
|
inline: "inline",
|
|
@@ -528,7 +528,9 @@ const getStateClasses = ({
|
|
|
528
528
|
disabled,
|
|
529
529
|
placeholder,
|
|
530
530
|
label,
|
|
531
|
-
appearance
|
|
531
|
+
appearance,
|
|
532
|
+
open,
|
|
533
|
+
_activeDescendant
|
|
532
534
|
}) => classNames.classNames(
|
|
533
535
|
"base",
|
|
534
536
|
["disabled", disabled],
|
|
@@ -539,6 +541,7 @@ const getStateClasses = ({
|
|
|
539
541
|
["no-label", !label],
|
|
540
542
|
["has-icon", !!icon || Boolean(iconSlottedContent?.length)],
|
|
541
543
|
["has-meta", Boolean(metaSlottedContent?.length)],
|
|
544
|
+
["has-activedescendant", Boolean(_activeDescendant) && open],
|
|
542
545
|
["error", Boolean(errorValidationMessage)],
|
|
543
546
|
["success", !!successText]
|
|
544
547
|
);
|
|
@@ -593,42 +596,42 @@ function renderInput(context) {
|
|
|
593
596
|
const comboboxTemplate = (context) => {
|
|
594
597
|
const popupTag = context.tagFor(definition.Popup);
|
|
595
598
|
return vividElement.html`
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
599
|
+
<template
|
|
600
|
+
tabindex="${(x) => !x.disabled ? "0" : null}"
|
|
601
|
+
@click="${(x, c) => x.clickHandler(c.event)}"
|
|
602
|
+
@focusout="${(x, c) => x.focusoutHandler(c.event)}"
|
|
603
|
+
@keydown="${(x, { event }) => {
|
|
601
604
|
x.open && index.handleEscapeKeyAndStopPropogation(event);
|
|
602
605
|
return x.keydownHandler(event);
|
|
603
606
|
}}"
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
607
|
+
>
|
|
608
|
+
<div class="control-wrapper">
|
|
609
|
+
${() => renderInput(context)}
|
|
610
|
+
<${popupTag} class="popup"
|
|
611
|
+
style="${setFixedDropdownVarWidth}"
|
|
612
|
+
?open="${(x) => x.open}"
|
|
613
|
+
placement="${(x) => x.placement ?? "bottom-start"}"
|
|
614
|
+
strategy="${(x) => x.fixedDropdown ? "fixed" : "absolute"}"
|
|
615
|
+
${ref.ref("_popup")}>
|
|
616
|
+
<div id="${(x) => x.listboxId}"
|
|
617
|
+
class="listbox"
|
|
618
|
+
role="listbox"
|
|
619
|
+
?disabled="${(x) => x.disabled}"
|
|
620
|
+
${ref.ref("listbox")}>
|
|
621
|
+
<slot ${slotted.slotted({
|
|
619
622
|
filter: listbox.Listbox.slottedOptionFilter,
|
|
620
623
|
flatten: true,
|
|
621
624
|
property: "slottedOptions"
|
|
622
625
|
})}>
|
|
623
|
-
|
|
624
|
-
</div>
|
|
625
|
-
</${popupTag}>
|
|
626
|
-
</div>
|
|
627
|
-
<div class="feedback-wrapper" @click="${(_, c) => c.event.stopPropagation()}">
|
|
628
|
-
${(x) => x._getFeedbackTemplate(context)}
|
|
626
|
+
</slot>
|
|
629
627
|
</div>
|
|
630
|
-
|
|
631
|
-
|
|
628
|
+
</${popupTag}>
|
|
629
|
+
</div>
|
|
630
|
+
<div class="feedback-wrapper" @click="${(_, c) => c.event.stopPropagation()}">
|
|
631
|
+
${(x) => x._getFeedbackTemplate(context)}
|
|
632
|
+
</div>
|
|
633
|
+
</template>
|
|
634
|
+
`;
|
|
632
635
|
};
|
|
633
636
|
|
|
634
637
|
const comboboxDefinition = vividElement.defineVividComponent(
|
package/shared/definition16.js
CHANGED
|
@@ -19,7 +19,7 @@ import { s as slotted } from './slotted.js';
|
|
|
19
19
|
import { c as classNames } from './class-names.js';
|
|
20
20
|
import { w as when } from './when.js';
|
|
21
21
|
|
|
22
|
-
const styles = ".chevron{display:flex;flex-shrink:0;font:var(--vvd-typography-base-extended);transform:rotate(0);transition:transform .2s}:host([data-expanded=true]) .chevron,:host([open]) .chevron{transform:rotate(180deg)}:not(.disabled) .chevron{cursor:pointer}.disabled .chevron{color:var(--_low-ink-color);cursor:not-allowed}:host{position:relative;display:inline-flex;flex-direction:column;gap:4px;--_low-ink-color: var(--vvd-color-neutral-600)}:host([disabled]){--_low-ink-color: var(--vvd-color-neutral-400);cursor:not-allowed}.base{--_text-field-gutter-end: 8px}.base{--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-500)}.base.appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-700)}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)).appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.base:where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.base:where(.disabled,:disabled).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.readonly):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-neutral-200);--_appearance-color-outline: var(--vvd-color-neutral-400)}.base:where(.readonly):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-600);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.error):where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: var(--vvd-color-alert-500)}.base:where(.error):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: transparent}.base:where(.success):where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: var(--vvd-color-success-500)}.base:where(.success):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: transparent}.base:not(.shape-pill) .base{border-radius:var(--_text-field-border-radius)}.base.shape-pill .base{border-radius:var(--_text-field-pill-border-radius)}.base slot[name=icon]{position:absolute;z-index:1;display:inline-block;color:var(--_low-ink-color);font-size:var(--_text-field-icon-size);inset-block-start:50%;inset-inline-start:var(--_text-field-gutter-start);line-height:1;pointer-events:none;transform:translateY(-50%)}.base.has-meta{padding-inline-end:16px}.control{text-overflow:ellipsis;white-space:nowrap}.fieldset .leading-items-wrapper{position:relative;display:flex;flex-shrink:0;align-items:center;gap:8px;padding-inline-end:16px}.listbox{display:flex;max-height:var(--combobox-height, 408px);flex-direction:column;padding:4px;border-radius:8px;contain:paint;gap:2px;overflow-y:auto}::part(popup-base){inline-size:max-content;min-inline-size:var(--_combobox-fixed-width, 100%)}@supports selector(:has(*)){.fieldset:has(.control:focus-within):after{--focus-stroke-gap-color: transparent;box-shadow:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px))}}@supports not selector(:has(*)){.fieldset:focus-within:after{box-shadow:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent;position:absolute;z-index:1;display:block;border-radius:inherit;content:\"\";inset:0;pointer-events:none}}";
|
|
22
|
+
const styles = ".chevron{display:flex;flex-shrink:0;font:var(--vvd-typography-base-extended);transform:rotate(0);transition:transform .2s}:host([data-expanded=true]) .chevron,:host([open]) .chevron{transform:rotate(180deg)}:not(.disabled) .chevron{cursor:pointer}.disabled .chevron{color:var(--_low-ink-color);cursor:not-allowed}:host{position:relative;display:inline-flex;flex-direction:column;gap:4px;--_low-ink-color: var(--vvd-color-neutral-600)}:host([disabled]){--_low-ink-color: var(--vvd-color-neutral-400);cursor:not-allowed}.base{--_text-field-gutter-end: 8px}.base{--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-500)}.base.appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-700)}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)).appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.base:where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.base:where(.disabled,:disabled).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.readonly):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-neutral-200);--_appearance-color-outline: var(--vvd-color-neutral-400)}.base:where(.readonly):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-600);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.error):where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: var(--vvd-color-alert-500)}.base:where(.error):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: transparent}.base:where(.success):where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: var(--vvd-color-success-500)}.base:where(.success):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: transparent}.base:not(.shape-pill) .base{border-radius:var(--_text-field-border-radius)}.base.shape-pill .base{border-radius:var(--_text-field-pill-border-radius)}.base slot[name=icon]{position:absolute;z-index:1;display:inline-block;color:var(--_low-ink-color);font-size:var(--_text-field-icon-size);inset-block-start:50%;inset-inline-start:var(--_text-field-gutter-start);line-height:1;pointer-events:none;transform:translateY(-50%)}.base.has-meta{padding-inline-end:16px}.control{text-overflow:ellipsis;white-space:nowrap}.fieldset .leading-items-wrapper{position:relative;display:flex;flex-shrink:0;align-items:center;gap:8px;padding-inline-end:16px}.listbox{display:flex;max-height:var(--combobox-height, 408px);flex-direction:column;padding:4px;border-radius:8px;contain:paint;gap:2px;overflow-y:auto}::part(popup-base){inline-size:max-content;min-inline-size:var(--_combobox-fixed-width, 100%)}@supports selector(:has(*)){.base:not(.has-activedescendant) .fieldset:has(.control:focus-within):after{--focus-stroke-gap-color: transparent;box-shadow:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px))}}@supports not selector(:has(*)){.base:not(.has-activedescendant) .fieldset:focus-within:after{box-shadow:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent;position:absolute;z-index:1;display:block;border-radius:inherit;content:\"\";inset:0;pointer-events:none}}::slotted([data-vvd-component=option][current-selected]){border-radius:8px;box-shadow:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent}";
|
|
23
23
|
|
|
24
24
|
const ComboboxAutocomplete = {
|
|
25
25
|
inline: "inline",
|
|
@@ -526,7 +526,9 @@ const getStateClasses = ({
|
|
|
526
526
|
disabled,
|
|
527
527
|
placeholder,
|
|
528
528
|
label,
|
|
529
|
-
appearance
|
|
529
|
+
appearance,
|
|
530
|
+
open,
|
|
531
|
+
_activeDescendant
|
|
530
532
|
}) => classNames(
|
|
531
533
|
"base",
|
|
532
534
|
["disabled", disabled],
|
|
@@ -537,6 +539,7 @@ const getStateClasses = ({
|
|
|
537
539
|
["no-label", !label],
|
|
538
540
|
["has-icon", !!icon || Boolean(iconSlottedContent?.length)],
|
|
539
541
|
["has-meta", Boolean(metaSlottedContent?.length)],
|
|
542
|
+
["has-activedescendant", Boolean(_activeDescendant) && open],
|
|
540
543
|
["error", Boolean(errorValidationMessage)],
|
|
541
544
|
["success", !!successText]
|
|
542
545
|
);
|
|
@@ -591,42 +594,42 @@ function renderInput(context) {
|
|
|
591
594
|
const comboboxTemplate = (context) => {
|
|
592
595
|
const popupTag = context.tagFor(Popup);
|
|
593
596
|
return html`
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
597
|
+
<template
|
|
598
|
+
tabindex="${(x) => !x.disabled ? "0" : null}"
|
|
599
|
+
@click="${(x, c) => x.clickHandler(c.event)}"
|
|
600
|
+
@focusout="${(x, c) => x.focusoutHandler(c.event)}"
|
|
601
|
+
@keydown="${(x, { event }) => {
|
|
599
602
|
x.open && handleEscapeKeyAndStopPropogation(event);
|
|
600
603
|
return x.keydownHandler(event);
|
|
601
604
|
}}"
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
605
|
+
>
|
|
606
|
+
<div class="control-wrapper">
|
|
607
|
+
${() => renderInput(context)}
|
|
608
|
+
<${popupTag} class="popup"
|
|
609
|
+
style="${setFixedDropdownVarWidth}"
|
|
610
|
+
?open="${(x) => x.open}"
|
|
611
|
+
placement="${(x) => x.placement ?? "bottom-start"}"
|
|
612
|
+
strategy="${(x) => x.fixedDropdown ? "fixed" : "absolute"}"
|
|
613
|
+
${ref("_popup")}>
|
|
614
|
+
<div id="${(x) => x.listboxId}"
|
|
615
|
+
class="listbox"
|
|
616
|
+
role="listbox"
|
|
617
|
+
?disabled="${(x) => x.disabled}"
|
|
618
|
+
${ref("listbox")}>
|
|
619
|
+
<slot ${slotted({
|
|
617
620
|
filter: Listbox.slottedOptionFilter,
|
|
618
621
|
flatten: true,
|
|
619
622
|
property: "slottedOptions"
|
|
620
623
|
})}>
|
|
621
|
-
|
|
622
|
-
</div>
|
|
623
|
-
</${popupTag}>
|
|
624
|
-
</div>
|
|
625
|
-
<div class="feedback-wrapper" @click="${(_, c) => c.event.stopPropagation()}">
|
|
626
|
-
${(x) => x._getFeedbackTemplate(context)}
|
|
624
|
+
</slot>
|
|
627
625
|
</div>
|
|
628
|
-
|
|
629
|
-
|
|
626
|
+
</${popupTag}>
|
|
627
|
+
</div>
|
|
628
|
+
<div class="feedback-wrapper" @click="${(_, c) => c.event.stopPropagation()}">
|
|
629
|
+
${(x) => x._getFeedbackTemplate(context)}
|
|
630
|
+
</div>
|
|
631
|
+
</template>
|
|
632
|
+
`;
|
|
630
633
|
};
|
|
631
634
|
|
|
632
635
|
const comboboxDefinition = defineVividComponent(
|
package/shared/definition17.cjs
CHANGED
|
@@ -24,7 +24,7 @@ const dataGridStyles = ":host{display:block}:host([generate-header=sticky]){max-
|
|
|
24
24
|
|
|
25
25
|
const dataGridRowStyles = ".base.connotation-cta{--_connotation-color-primary: var(--vvd-data-grid-row-cta-primary, var(--vvd-color-cta-500));--_connotation-color-primary-text: var(--vvd-data-grid-row-cta-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-data-grid-row-cta-primary-increment, var(--vvd-color-cta-600));--_connotation-color-firm: var(--vvd-data-grid-row-cta-firm, var(--vvd-color-cta-600));--_connotation-color-faint: var(--vvd-data-grid-row-cta-faint, var(--vvd-color-cta-50));--_connotation-color-soft: var(--vvd-data-grid-row-cta-soft, var(--vvd-color-cta-100));--_connotation-color-pale: var(--vvd-data-grid-row-cta-pale, var(--vvd-color-cta-300));--_connotation-color-dim: var(--vvd-data-grid-row-cta-dim, var(--vvd-color-cta-200))}.base:not(.connotation-cta){--_connotation-color-primary: var(--vvd-data-grid-row-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-data-grid-row-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-data-grid-row-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-firm: var(--vvd-data-grid-row-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-faint: var(--vvd-data-grid-row-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-data-grid-row-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-pale: var(--vvd-data-grid-row-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-dim: var(--vvd-data-grid-row-accent-dim, var(--vvd-color-neutral-200))}.base{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.base:where(.selected):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base:where(.selected):where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}.base{display:grid;width:100%;box-sizing:border-box;color:var(--vvd-color-canvas-text)}:host([row-type=sticky-header]) .base{position:sticky;z-index:9;top:0;background:var(--data-grid-row-background, var(--vvd-color-canvas))}:host([row-type=hidden-header]) .base{display:none}:host(:is([selected]):not([row-type*=header])) .base{background-color:var(--_appearance-color-fill)}";
|
|
26
26
|
|
|
27
|
-
const dataGridCellStyles = ":host{block-size:100%;min-inline-size:80px}:host(:focus-visible){outline:none}.base.connotation-cta{--_connotation-color-primary: var(--vvd-data-grid-cell-cta-primary, var(--vvd-color-cta-500));--_connotation-color-primary-text: var(--vvd-data-grid-cell-cta-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-data-grid-cell-cta-primary-increment, var(--vvd-color-cta-600));--_connotation-color-firm: var(--vvd-data-grid-cell-cta-firm, var(--vvd-color-cta-600));--_connotation-color-soft: var(--vvd-data-grid-cell-cta-soft, var(--vvd-color-cta-100));--_connotation-color-faint: var(--vvd-data-grid-cell-cta-faint, var(--vvd-color-cta-50));--_connotation-color-pale: var(--vvd-data-grid-cell-cta-pale, var(--vvd-color-cta-300));--_connotation-color-dim: var(--vvd-data-grid-cell-cta-dim, var(--vvd-color-cta-200))}.base:not(.connotation-cta){--_connotation-color-primary: var(--vvd-data-grid-cell-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-data-grid-cell-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-data-grid-cell-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-firm: var(--vvd-data-grid-cell-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-soft: var(--vvd-data-grid-cell-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-faint: var(--vvd-data-grid-cell-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-pale: var(--vvd-data-grid-cell-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-dim: var(--vvd-data-grid-cell-accent-dim, var(--vvd-color-neutral-200))}.base{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.base:where(.selected):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base:where(.selected):where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}.base{display:flex;box-sizing:border-box;align-items:center;border-bottom:1px solid var(--vvd-color-neutral-300);block-size:var(--data-grid-cell-block-size, var(--_data-grid-cell-default-block-size));color:var(--_appearance-color-text);font:var(--vvd-typography-base);min-block-size:calc(1px*(48 + 4*clamp(-1,var(--vvd-size-density, 0),2)));padding-block:13px 14px;padding-inline:12px}:host(:focus-visible) .base{--focus-stroke-gap-color: transparent;box-shadow:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px))}:host([cell-type=columnheader]) .base{border-color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base-bold);--_data-grid-cell-default-block-size: calc(1px*(48 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) ;--_data-grid-cell-default-white-space: nowrap}:host(:not([cell-type=columnheader])) .base{--_data-grid-cell-default-block-size: 100%;--_data-grid-cell-default-white-space: normal}:host(:is([selected]):not([cell-type=columnheader])) .base{background-color:var(--_appearance-color-fill)}slot{display:block;overflow:hidden;text-overflow:ellipsis;white-space:var(--data-grid-cell-white-space, var(--_data-grid-cell-default-white-space))}:host(:not([cell-type=columnheader][aria-sort])) slot{inline-size:100%}.header-icon{margin-inline-start:16px}";
|
|
27
|
+
const dataGridCellStyles = ":host{block-size:100%;min-inline-size:80px}:host(:focus-visible){outline:none}:host([data-fixed]){position:sticky;z-index:5;background:var(--data-grid-cell-background, var(--vvd-color-surface-2dp))}:host([data-fixed]):before{position:absolute;z-index:1;top:0;right:0;width:1px;block-size:100%;box-shadow:4px 0 4px #0000001a,2px 0 2px #0000000d,1px 0 1px #0000000d;content:\"\";pointer-events:none}.base.connotation-cta{--_connotation-color-primary: var(--vvd-data-grid-cell-cta-primary, var(--vvd-color-cta-500));--_connotation-color-primary-text: var(--vvd-data-grid-cell-cta-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-data-grid-cell-cta-primary-increment, var(--vvd-color-cta-600));--_connotation-color-firm: var(--vvd-data-grid-cell-cta-firm, var(--vvd-color-cta-600));--_connotation-color-soft: var(--vvd-data-grid-cell-cta-soft, var(--vvd-color-cta-100));--_connotation-color-faint: var(--vvd-data-grid-cell-cta-faint, var(--vvd-color-cta-50));--_connotation-color-pale: var(--vvd-data-grid-cell-cta-pale, var(--vvd-color-cta-300));--_connotation-color-dim: var(--vvd-data-grid-cell-cta-dim, var(--vvd-color-cta-200))}.base:not(.connotation-cta){--_connotation-color-primary: var(--vvd-data-grid-cell-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-data-grid-cell-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-data-grid-cell-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-firm: var(--vvd-data-grid-cell-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-soft: var(--vvd-data-grid-cell-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-faint: var(--vvd-data-grid-cell-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-pale: var(--vvd-data-grid-cell-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-dim: var(--vvd-data-grid-cell-accent-dim, var(--vvd-color-neutral-200))}.base{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.base:where(.selected):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base:where(.selected):where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}.base{display:flex;box-sizing:border-box;align-items:center;border-bottom:1px solid var(--vvd-color-neutral-300);block-size:var(--data-grid-cell-block-size, var(--_data-grid-cell-default-block-size));color:var(--_appearance-color-text);font:var(--vvd-typography-base);min-block-size:calc(1px*(48 + 4*clamp(-1,var(--vvd-size-density, 0),2)));padding-block:13px 14px;padding-inline:12px}:host(:focus-visible) .base{--focus-stroke-gap-color: transparent;box-shadow:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px))}:host([cell-type=columnheader]) .base{border-color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base-bold);--_data-grid-cell-default-block-size: calc(1px*(48 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) ;--_data-grid-cell-default-white-space: nowrap}:host(:not([cell-type=columnheader])) .base{--_data-grid-cell-default-block-size: 100%;--_data-grid-cell-default-white-space: normal}:host(:is([selected]):not([cell-type=columnheader])) .base{background-color:var(--_appearance-color-fill)}slot{display:block;overflow:hidden;text-overflow:ellipsis;white-space:var(--data-grid-cell-white-space, var(--_data-grid-cell-default-white-space))}:host(:not([cell-type=columnheader][aria-sort])) slot{inline-size:100%}.header-icon{margin-inline-start:16px}";
|
|
28
28
|
|
|
29
29
|
const DataGridCellSortStates = {
|
|
30
30
|
none: "none",
|
|
@@ -117,6 +117,27 @@ class DataGridCell extends localized.Localized(vividElement.VividElement) {
|
|
|
117
117
|
this.updateCellView();
|
|
118
118
|
}
|
|
119
119
|
}
|
|
120
|
+
/**
|
|
121
|
+
* Updates the fixed column style
|
|
122
|
+
* @internal
|
|
123
|
+
*/
|
|
124
|
+
updateFixedStyle() {
|
|
125
|
+
if (this.fixedPosition !== void 0) {
|
|
126
|
+
this.setAttribute("data-fixed", "");
|
|
127
|
+
this.style.left = this.fixedPosition;
|
|
128
|
+
} else {
|
|
129
|
+
this.removeAttribute("data-fixed");
|
|
130
|
+
this.style.removeProperty("left");
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Sets the fixed state and position for this cell
|
|
135
|
+
* @internal
|
|
136
|
+
*/
|
|
137
|
+
setFixedPosition(position) {
|
|
138
|
+
this.fixedPosition = position;
|
|
139
|
+
this.updateFixedStyle();
|
|
140
|
+
}
|
|
120
141
|
/**
|
|
121
142
|
* @internal
|
|
122
143
|
*/
|
|
@@ -128,6 +149,7 @@ class DataGridCell extends localized.Localized(vividElement.VividElement) {
|
|
|
128
149
|
this.style.gridColumn = `${this.columnDefinition?.gridColumn === void 0 ? 0 : this.columnDefinition.gridColumn}`;
|
|
129
150
|
this.updateCellView();
|
|
130
151
|
this.updateCellStyle();
|
|
152
|
+
this.updateFixedStyle();
|
|
131
153
|
}
|
|
132
154
|
/**
|
|
133
155
|
* @internal
|
|
@@ -594,6 +616,10 @@ const _DataGrid = class _DataGrid extends vividElement.VividElement {
|
|
|
594
616
|
this.columnDefinitions = null;
|
|
595
617
|
this.focusRowIndex = 0;
|
|
596
618
|
this.focusColumnIndex = 0;
|
|
619
|
+
/**
|
|
620
|
+
* @internal
|
|
621
|
+
*/
|
|
622
|
+
this.fixedColumnsPositions = [];
|
|
597
623
|
this.rowsRepeatBehavior = null;
|
|
598
624
|
this.rowsPlaceholder = null;
|
|
599
625
|
this.generatedHeader = null;
|
|
@@ -798,6 +824,9 @@ const _DataGrid = class _DataGrid extends vividElement.VividElement {
|
|
|
798
824
|
gridTemplateColumnsChanged() {
|
|
799
825
|
if (this.$fastController.isConnected) {
|
|
800
826
|
this.updateRowIndexes();
|
|
827
|
+
if (this.fixedColumns && this.fixedColumns > 0) {
|
|
828
|
+
this.applyFixedColumns();
|
|
829
|
+
}
|
|
801
830
|
}
|
|
802
831
|
}
|
|
803
832
|
/**
|
|
@@ -853,6 +882,30 @@ const _DataGrid = class _DataGrid extends vividElement.VividElement {
|
|
|
853
882
|
this.queueFocusUpdate();
|
|
854
883
|
}
|
|
855
884
|
}
|
|
885
|
+
/**
|
|
886
|
+
* @internal
|
|
887
|
+
*/
|
|
888
|
+
fixedColumnsChanged() {
|
|
889
|
+
if (this.$fastController.isConnected) {
|
|
890
|
+
this.applyFixedColumns();
|
|
891
|
+
this.setupResizeObserver();
|
|
892
|
+
}
|
|
893
|
+
}
|
|
894
|
+
/**
|
|
895
|
+
* @internal
|
|
896
|
+
*/
|
|
897
|
+
setupResizeObserver() {
|
|
898
|
+
if (this.resizeObserver) {
|
|
899
|
+
this.resizeObserver.disconnect();
|
|
900
|
+
this.resizeObserver = void 0;
|
|
901
|
+
}
|
|
902
|
+
if (typeof ResizeObserver !== "undefined" && this.fixedColumns && this.fixedColumns > 0) {
|
|
903
|
+
this.resizeObserver = new ResizeObserver(() => {
|
|
904
|
+
this.applyFixedColumns();
|
|
905
|
+
});
|
|
906
|
+
this.resizeObserver.observe(this);
|
|
907
|
+
}
|
|
908
|
+
}
|
|
856
909
|
/**
|
|
857
910
|
* @internal
|
|
858
911
|
*/
|
|
@@ -876,6 +929,7 @@ const _DataGrid = class _DataGrid extends vividElement.VividElement {
|
|
|
876
929
|
this.addEventListener(eventFocusOut, this.handleFocusOut);
|
|
877
930
|
this.observer = new MutationObserver(this.onChildListChange);
|
|
878
931
|
this.observer.observe(this, { childList: true });
|
|
932
|
+
this.setupResizeObserver();
|
|
879
933
|
vividElement.DOM.queueUpdate(this.queueRowIndexUpdate);
|
|
880
934
|
this.#setTabIndex();
|
|
881
935
|
vividElement.Observable.getNotifier(this).subscribe(
|
|
@@ -896,6 +950,10 @@ const _DataGrid = class _DataGrid extends vividElement.VividElement {
|
|
|
896
950
|
this.handleFocusOut
|
|
897
951
|
);
|
|
898
952
|
this.observer.disconnect();
|
|
953
|
+
if (this.resizeObserver) {
|
|
954
|
+
this.resizeObserver.disconnect();
|
|
955
|
+
this.resizeObserver = void 0;
|
|
956
|
+
}
|
|
899
957
|
this.rowsPlaceholder = null;
|
|
900
958
|
this.generatedHeader = null;
|
|
901
959
|
vividElement.Observable.getNotifier(this).unsubscribe(
|
|
@@ -1082,6 +1140,76 @@ const _DataGrid = class _DataGrid extends vividElement.VividElement {
|
|
|
1082
1140
|
};
|
|
1083
1141
|
});
|
|
1084
1142
|
}
|
|
1143
|
+
/**
|
|
1144
|
+
* @internal
|
|
1145
|
+
*/
|
|
1146
|
+
applyFixedColumns() {
|
|
1147
|
+
if (!this.fixedColumns || this.fixedColumns <= 0) {
|
|
1148
|
+
this.clearFixedColumns();
|
|
1149
|
+
return;
|
|
1150
|
+
}
|
|
1151
|
+
this.calculateFixedColumnPositions();
|
|
1152
|
+
this.applyFixedColumnStyling();
|
|
1153
|
+
}
|
|
1154
|
+
/**
|
|
1155
|
+
* Applies fixed columns styling using cached positions
|
|
1156
|
+
* @internal
|
|
1157
|
+
*/
|
|
1158
|
+
applyFixedColumnStyling() {
|
|
1159
|
+
this.rowElements.forEach((row) => {
|
|
1160
|
+
const cells = row.querySelectorAll(
|
|
1161
|
+
'[role="cell"], [role="gridcell"], [role="columnheader"]'
|
|
1162
|
+
);
|
|
1163
|
+
this.fixedColumnsPositions.forEach((position, index) => {
|
|
1164
|
+
if (index < cells.length) {
|
|
1165
|
+
const gridCell = cells[index];
|
|
1166
|
+
if (typeof gridCell.setFixedPosition === "function") {
|
|
1167
|
+
gridCell.setFixedPosition(`${position}px`);
|
|
1168
|
+
}
|
|
1169
|
+
}
|
|
1170
|
+
});
|
|
1171
|
+
});
|
|
1172
|
+
}
|
|
1173
|
+
/**
|
|
1174
|
+
* Calculates and caches fixed columns positions based on current layout
|
|
1175
|
+
* @internal
|
|
1176
|
+
*/
|
|
1177
|
+
calculateFixedColumnPositions() {
|
|
1178
|
+
this.fixedColumnsPositions = [];
|
|
1179
|
+
if (this.rowElements.length === 0) return;
|
|
1180
|
+
const cells = this.rowElements[0].querySelectorAll(
|
|
1181
|
+
'[role="cell"], [role="gridcell"], [role="columnheader"]'
|
|
1182
|
+
);
|
|
1183
|
+
let accumulator = 0;
|
|
1184
|
+
for (let i = 0; i < Math.min(this.fixedColumns, cells.length); i++) {
|
|
1185
|
+
this.fixedColumnsPositions.push(accumulator);
|
|
1186
|
+
accumulator += cells[i].offsetWidth;
|
|
1187
|
+
}
|
|
1188
|
+
}
|
|
1189
|
+
/**
|
|
1190
|
+
* Clears all fixed columns state and styling
|
|
1191
|
+
* @internal
|
|
1192
|
+
*/
|
|
1193
|
+
clearFixedColumns() {
|
|
1194
|
+
if (this.rowElements.length === 0) {
|
|
1195
|
+
this.fixedColumnsPositions = [];
|
|
1196
|
+
return;
|
|
1197
|
+
}
|
|
1198
|
+
this.rowElements.forEach((row) => {
|
|
1199
|
+
const cells = row.querySelectorAll(
|
|
1200
|
+
'[role="cell"], [role="gridcell"], [role="columnheader"]'
|
|
1201
|
+
);
|
|
1202
|
+
this.fixedColumnsPositions.forEach((_, index) => {
|
|
1203
|
+
if (index < cells.length) {
|
|
1204
|
+
const gridCell = cells[index];
|
|
1205
|
+
if (typeof gridCell.setFixedPosition === "function") {
|
|
1206
|
+
gridCell.setFixedPosition(void 0);
|
|
1207
|
+
}
|
|
1208
|
+
}
|
|
1209
|
+
});
|
|
1210
|
+
});
|
|
1211
|
+
this.fixedColumnsPositions = [];
|
|
1212
|
+
}
|
|
1085
1213
|
};
|
|
1086
1214
|
__decorateClass([
|
|
1087
1215
|
vividElement.attr({ attribute: "no-tabbing", mode: "boolean" })
|
|
@@ -1114,6 +1242,9 @@ __decorateClass([
|
|
|
1114
1242
|
__decorateClass([
|
|
1115
1243
|
vividElement.observable
|
|
1116
1244
|
], _DataGrid.prototype, "focusColumnIndex");
|
|
1245
|
+
__decorateClass([
|
|
1246
|
+
vividElement.attr({ attribute: "fixed-columns", converter: vividElement.nullableNumberConverter })
|
|
1247
|
+
], _DataGrid.prototype, "fixedColumns");
|
|
1117
1248
|
__decorateClass([
|
|
1118
1249
|
vividElement.observable
|
|
1119
1250
|
], _DataGrid.prototype, "defaultRowItemTemplate");
|
|
@@ -1279,6 +1410,11 @@ const DataGridCellTemplate = (context) => {
|
|
|
1279
1410
|
>
|
|
1280
1411
|
${(x) => x.ariaSelected === "true" ? vividElement.html`<${visuallyHiddenTagName}>${(x2) => x2.locale.dataGrid.cell.selected}</${visuallyHiddenTagName}>` : null}
|
|
1281
1412
|
<slot></slot>
|
|
1413
|
+
${when.when(
|
|
1414
|
+
shouldShowSortIcons,
|
|
1415
|
+
vividElement.html`<${visuallyHiddenTagName}>${(x) => x.locale.dataGrid.cell.button}</${visuallyHiddenTagName}>
|
|
1416
|
+
`
|
|
1417
|
+
)}
|
|
1282
1418
|
${(_) => renderSortIcons(context)}
|
|
1283
1419
|
</div>
|
|
1284
1420
|
</template>
|