@skdx/web-components 0.30.0 → 0.32.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 +35590 -29009
- package/dist/alert/AlertAnatomy.cjs +1 -1
- package/dist/alert/AlertAnatomy.js +1 -1
- package/dist/autocomplete/AutocompleteAnatomy.cjs +1 -1
- package/dist/autocomplete/AutocompleteAnatomy.js +1 -1
- package/dist/autocomplete/AutocompleteContent.cjs +2 -2
- package/dist/autocomplete/AutocompleteContent.d.cts +3 -0
- package/dist/autocomplete/AutocompleteContent.d.ts +3 -0
- package/dist/autocomplete/AutocompleteContent.js +2 -2
- package/dist/avatar/AvatarImage.cjs +12 -6
- package/dist/avatar/AvatarImage.js +9 -3
- package/dist/backdrop/Backdrop.cjs +1 -0
- package/dist/backdrop/Backdrop.d.cts +12 -0
- package/dist/backdrop/Backdrop.d.ts +12 -0
- package/dist/backdrop/Backdrop.js +1 -0
- package/dist/backdrop/index.cjs +1 -0
- package/dist/backdrop/index.d.cts +1 -0
- package/dist/backdrop/index.d.ts +1 -0
- package/dist/backdrop/index.js +1 -0
- package/dist/badge/BadgeDelete.cjs +1 -1
- package/dist/badge/BadgeDelete.js +1 -1
- package/dist/badge/BadgeLabel.cjs +1 -1
- package/dist/badge/BadgeLabel.js +2 -2
- package/dist/badge/BadgeLeading.cjs +1 -1
- package/dist/badge/BadgeLeading.js +2 -2
- package/dist/breadcrumb/BreadcrumbLink.cjs +5 -1
- package/dist/breadcrumb/BreadcrumbLink.js +8 -4
- package/dist/checkbox-card/CheckboxCardAnatomy.cjs +9 -9
- package/dist/checkbox-card/CheckboxCardAnatomy.js +9 -9
- package/dist/checkbox-group/CheckboxGroupItem.cjs +1 -1
- package/dist/checkbox-group/CheckboxGroupItem.d.cts +2 -1
- package/dist/checkbox-group/CheckboxGroupItem.d.ts +2 -1
- package/dist/checkbox-group/CheckboxGroupItem.js +2 -2
- package/dist/checkbox-group/CheckboxGroupSelectAll.cjs +2 -2
- package/dist/checkbox-group/CheckboxGroupSelectAll.d.cts +2 -0
- package/dist/checkbox-group/CheckboxGroupSelectAll.d.ts +2 -0
- package/dist/checkbox-group/CheckboxGroupSelectAll.js +1 -1
- package/dist/checkbox-group/indicator.cjs +1 -1
- package/dist/checkbox-group/indicator.d.cts +7 -0
- package/dist/checkbox-group/indicator.d.ts +7 -0
- package/dist/checkbox-group/indicator.js +1 -1
- package/dist/chip/Chip.cjs +1 -0
- package/dist/chip/Chip.d.cts +11 -0
- package/dist/chip/Chip.d.ts +11 -0
- package/dist/chip/Chip.js +1 -0
- package/dist/chip/index.cjs +1 -0
- package/dist/chip/index.d.cts +1 -0
- package/dist/chip/index.d.ts +1 -0
- package/dist/chip/index.js +1 -0
- package/dist/clipboard/ClipboardTrigger.cjs +5 -5
- package/dist/clipboard/ClipboardTrigger.d.cts +3 -2
- package/dist/clipboard/ClipboardTrigger.d.ts +3 -2
- package/dist/clipboard/ClipboardTrigger.js +6 -6
- package/dist/combobox/Combobox.cjs +2 -2
- package/dist/combobox/Combobox.d.cts +4 -0
- package/dist/combobox/Combobox.d.ts +4 -0
- package/dist/combobox/Combobox.js +2 -2
- package/dist/combobox/ComboboxContent.cjs +1 -1
- package/dist/combobox/ComboboxContent.js +2 -2
- package/dist/combobox/index.cjs +1 -1
- package/dist/combobox/index.d.cts +2 -1
- package/dist/combobox/index.d.ts +2 -1
- package/dist/combobox/index.js +1 -1
- package/dist/date-picker/DatePickerCalendar.cjs +1 -1
- package/dist/date-picker/DatePickerCalendar.d.cts +1 -0
- package/dist/date-picker/DatePickerCalendar.d.ts +1 -0
- package/dist/date-picker/DatePickerCalendar.js +1 -1
- package/dist/date-picker/DatePickerContent.cjs +1 -1
- package/dist/date-picker/DatePickerContent.js +2 -2
- package/dist/date-picker/DatePickerTrigger.cjs +19 -6
- package/dist/date-picker/DatePickerTrigger.d.cts +8 -0
- package/dist/date-picker/DatePickerTrigger.d.ts +8 -0
- package/dist/date-picker/DatePickerTrigger.js +17 -4
- package/dist/date-picker/family.cjs +1 -1
- package/dist/date-picker/family.js +1 -1
- package/dist/date-range-picker/DateRangePicker.cjs +1 -0
- package/dist/date-range-picker/DateRangePicker.d.cts +12 -0
- package/dist/date-range-picker/DateRangePicker.d.ts +12 -0
- package/dist/date-range-picker/DateRangePicker.js +1 -0
- package/dist/date-range-picker/index.cjs +1 -0
- package/dist/date-range-picker/index.d.cts +1 -0
- package/dist/date-range-picker/index.d.ts +1 -0
- package/dist/date-range-picker/index.js +1 -0
- package/dist/date-time-picker/DateTimePicker.cjs +1 -0
- package/dist/date-time-picker/DateTimePicker.d.cts +12 -0
- package/dist/date-time-picker/DateTimePicker.d.ts +12 -0
- package/dist/date-time-picker/DateTimePicker.js +1 -0
- package/dist/date-time-picker/index.cjs +1 -0
- package/dist/date-time-picker/index.d.cts +1 -0
- package/dist/date-time-picker/index.d.ts +1 -0
- package/dist/date-time-picker/index.js +1 -0
- package/dist/dialog/DialogContent.cjs +1 -1
- package/dist/dialog/DialogContent.d.cts +2 -0
- package/dist/dialog/DialogContent.d.ts +2 -0
- package/dist/dialog/DialogContent.js +1 -1
- package/dist/dialog/Dialogs.cjs +24 -0
- package/dist/dialog/Dialogs.d.cts +43 -0
- package/dist/dialog/Dialogs.d.ts +43 -0
- package/dist/dialog/Dialogs.js +24 -0
- package/dist/dialog/index.cjs +1 -1
- package/dist/dialog/index.d.cts +2 -0
- package/dist/dialog/index.d.ts +2 -0
- package/dist/dialog/index.js +1 -1
- package/dist/drawer/DrawerContent.cjs +2 -2
- package/dist/drawer/DrawerContent.js +2 -2
- package/dist/fab/Fab.cjs +1 -0
- package/dist/fab/Fab.d.cts +12 -0
- package/dist/fab/Fab.d.ts +12 -0
- package/dist/fab/Fab.js +1 -0
- package/dist/fab/index.cjs +1 -0
- package/dist/fab/index.d.cts +1 -0
- package/dist/fab/index.d.ts +1 -0
- package/dist/fab/index.js +1 -0
- package/dist/field/FieldError.cjs +2 -2
- package/dist/field/FieldError.js +1 -1
- package/dist/floating-panel/FloatingPanel.cjs +2 -2
- package/dist/floating-panel/FloatingPanel.d.cts +3 -0
- package/dist/floating-panel/FloatingPanel.d.ts +3 -0
- package/dist/floating-panel/FloatingPanel.js +2 -2
- package/dist/floating-panel/FloatingPanelContent.cjs +2 -2
- package/dist/floating-panel/FloatingPanelContent.d.cts +3 -0
- package/dist/floating-panel/FloatingPanelContent.d.ts +3 -0
- package/dist/floating-panel/FloatingPanelContent.js +2 -2
- package/dist/gauge/Gauge.cjs +1 -0
- package/dist/gauge/Gauge.d.cts +12 -0
- package/dist/gauge/Gauge.d.ts +12 -0
- package/dist/gauge/Gauge.js +1 -0
- package/dist/gauge/index.cjs +1 -0
- package/dist/gauge/index.d.cts +1 -0
- package/dist/gauge/index.d.ts +1 -0
- package/dist/gauge/index.js +1 -0
- package/dist/grid/Grid.cjs +1 -0
- package/dist/grid/Grid.d.cts +12 -0
- package/dist/grid/Grid.d.ts +12 -0
- package/dist/grid/Grid.js +1 -0
- package/dist/grid/index.cjs +1 -0
- package/dist/grid/index.d.cts +1 -0
- package/dist/grid/index.d.ts +1 -0
- package/dist/grid/index.js +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +16 -3
- package/dist/index.d.ts +16 -3
- package/dist/index.js +1 -1
- package/dist/internal/csv.cjs +2 -0
- package/dist/internal/csv.d.cts +43 -0
- package/dist/internal/csv.d.ts +43 -0
- package/dist/internal/csv.js +2 -0
- package/dist/internal/dialogs.cjs +1 -0
- package/dist/internal/dialogs.d.cts +96 -0
- package/dist/internal/dialogs.d.ts +96 -0
- package/dist/internal/dialogs.js +1 -0
- package/dist/internal/dismiss.cjs +1 -1
- package/dist/internal/dismiss.d.cts +1 -1
- package/dist/internal/dismiss.d.ts +1 -1
- package/dist/internal/dismiss.js +1 -1
- package/dist/internal/dismissal.cjs +1 -1
- package/dist/internal/dismissal.d.cts +7 -0
- package/dist/internal/dismissal.d.ts +7 -0
- package/dist/internal/dismissal.js +1 -1
- package/dist/internal/field-core.cjs +1 -1
- package/dist/internal/field-core.d.cts +2 -0
- package/dist/internal/field-core.d.ts +2 -0
- package/dist/internal/field-core.js +1 -1
- package/dist/internal/form-associated.cjs +1 -1
- package/dist/internal/form-associated.js +1 -1
- package/dist/internal/light-dom-styles.cjs +3 -1
- package/dist/internal/light-dom-styles.js +2 -0
- package/dist/internal/media-query.cjs +1 -0
- package/dist/internal/media-query.d.cts +7 -0
- package/dist/internal/media-query.d.ts +7 -0
- package/dist/internal/media-query.js +1 -0
- package/dist/internal/menu-panel.cjs +1 -1
- package/dist/internal/menu-panel.js +2 -2
- package/dist/internal/options.cjs +1 -1
- package/dist/internal/options.d.cts +1 -1
- package/dist/internal/options.d.ts +1 -1
- package/dist/internal/options.js +1 -1
- package/dist/internal/styles.cjs +20 -7
- package/dist/internal/styles.d.cts +1 -1
- package/dist/internal/styles.d.ts +1 -1
- package/dist/internal/styles.js +20 -7
- package/dist/list/ListItem.cjs +13 -8
- package/dist/list/ListItem.js +12 -7
- package/dist/loading-overlay/LoadingOverlayBackdrop.cjs +1 -1
- package/dist/loading-overlay/LoadingOverlayBackdrop.js +1 -1
- package/dist/loading-overlay/LoadingOverlayContent.cjs +1 -1
- package/dist/loading-overlay/LoadingOverlayContent.js +3 -3
- package/dist/mentions/MentionsContent.cjs +1 -1
- package/dist/mentions/MentionsContent.js +2 -2
- package/dist/menu/MenuAnatomy.cjs +1 -1
- package/dist/menu/MenuAnatomy.js +1 -1
- package/dist/menu/MenuTrigger.cjs +3 -2
- package/dist/menu/MenuTrigger.d.cts +5 -0
- package/dist/menu/MenuTrigger.d.ts +5 -0
- package/dist/menu/MenuTrigger.js +5 -4
- package/dist/navigation-menu/NavigationMenuContent.cjs +2 -2
- package/dist/navigation-menu/NavigationMenuContent.js +1 -1
- package/dist/paper/Paper.cjs +1 -0
- package/dist/paper/Paper.d.cts +11 -0
- package/dist/paper/Paper.d.ts +11 -0
- package/dist/paper/Paper.js +1 -0
- package/dist/paper/index.cjs +1 -0
- package/dist/paper/index.d.cts +1 -0
- package/dist/paper/index.d.ts +1 -0
- package/dist/paper/index.js +1 -0
- package/dist/password-input/PasswordInputField.cjs +2 -2
- package/dist/password-input/PasswordInputField.js +4 -4
- package/dist/popover/PopoverAnchor.cjs +1 -1
- package/dist/popover/PopoverAnchor.d.cts +1 -0
- package/dist/popover/PopoverAnchor.d.ts +1 -0
- package/dist/popover/PopoverAnchor.js +2 -2
- package/dist/popover/PopoverContent.cjs +1 -1
- package/dist/popover/PopoverContent.js +2 -2
- package/dist/popover/PopoverDescription.cjs +7 -2
- package/dist/popover/PopoverDescription.js +7 -2
- package/dist/popover/PopoverTitle.cjs +7 -2
- package/dist/popover/PopoverTitle.js +7 -2
- package/dist/popover/family.cjs +1 -1
- package/dist/popover/family.js +1 -1
- package/dist/progress/ProgressCircle.cjs +2 -2
- package/dist/progress/ProgressCircle.js +1 -1
- package/dist/progress/ProgressCircleIndicator.cjs +2 -2
- package/dist/progress/ProgressCircleIndicator.js +2 -2
- package/dist/progress/ProgressIndicator.cjs +2 -2
- package/dist/progress/ProgressIndicator.js +1 -1
- package/dist/progress/ProgressLabel.cjs +1 -1
- package/dist/progress/ProgressLabel.js +1 -1
- package/dist/progress/ProgressValue.cjs +1 -1
- package/dist/progress/ProgressValue.js +1 -1
- package/dist/select/SelectContent.cjs +2 -2
- package/dist/select/SelectContent.d.cts +3 -0
- package/dist/select/SelectContent.d.ts +3 -0
- package/dist/select/SelectContent.js +2 -2
- package/dist/speed-dial/SpeedDial.cjs +2 -2
- package/dist/speed-dial/SpeedDial.d.cts +6 -0
- package/dist/speed-dial/SpeedDial.d.ts +6 -0
- package/dist/speed-dial/SpeedDial.js +2 -2
- package/dist/speed-dial/SpeedDialAnatomy.cjs +1 -1
- package/dist/speed-dial/SpeedDialAnatomy.js +1 -1
- package/dist/speed-dial/SpeedDialContent.cjs +1 -1
- package/dist/speed-dial/SpeedDialContent.js +2 -2
- package/dist/speed-dial/SpeedDialTrigger.cjs +5 -4
- package/dist/speed-dial/SpeedDialTrigger.d.cts +5 -0
- package/dist/speed-dial/SpeedDialTrigger.d.ts +5 -0
- package/dist/speed-dial/SpeedDialTrigger.js +5 -4
- package/dist/stack/Stack.cjs +1 -0
- package/dist/stack/Stack.d.cts +12 -0
- package/dist/stack/Stack.d.ts +12 -0
- package/dist/stack/Stack.js +1 -0
- package/dist/stack/index.cjs +1 -0
- package/dist/stack/index.d.cts +1 -0
- package/dist/stack/index.d.ts +1 -0
- package/dist/stack/index.js +1 -0
- package/dist/table/Table.cjs +4 -4
- package/dist/table/Table.d.cts +17 -1
- package/dist/table/Table.d.ts +17 -1
- package/dist/table/Table.js +5 -5
- package/dist/table/TableAnatomy.cjs +5 -5
- package/dist/table/TableAnatomy.d.cts +4 -1
- package/dist/table/TableAnatomy.d.ts +4 -1
- package/dist/table/TableAnatomy.js +11 -11
- package/dist/table/TableColumnHeaderFilterInput.cjs +15 -0
- package/dist/table/TableColumnHeaderFilterInput.d.cts +37 -0
- package/dist/table/TableColumnHeaderFilterInput.d.ts +37 -0
- package/dist/table/TableColumnHeaderFilterInput.js +15 -0
- package/dist/table/TableExpandTrigger.cjs +5 -5
- package/dist/table/TableExpandTrigger.d.cts +1 -0
- package/dist/table/TableExpandTrigger.d.ts +1 -0
- package/dist/table/TableExpandTrigger.js +5 -5
- package/dist/table/TableHeaderCell.cjs +44 -31
- package/dist/table/TableHeaderCell.d.cts +18 -0
- package/dist/table/TableHeaderCell.d.ts +18 -0
- package/dist/table/TableHeaderCell.js +44 -31
- package/dist/table/index.cjs +1 -1
- package/dist/table/index.d.cts +1 -1
- package/dist/table/index.d.ts +1 -1
- package/dist/table/index.js +1 -1
- package/dist/table/primitives.cjs +1 -1
- package/dist/table/primitives.d.cts +1 -0
- package/dist/table/primitives.d.ts +1 -0
- package/dist/table/primitives.js +1 -1
- package/dist/table/types.cjs +1 -1
- package/dist/table/types.d.cts +2 -0
- package/dist/table/types.d.ts +2 -0
- package/dist/tag-group/TagGroupAnatomy.cjs +4 -4
- package/dist/tag-group/TagGroupAnatomy.d.cts +5 -1
- package/dist/tag-group/TagGroupAnatomy.d.ts +5 -1
- package/dist/tag-group/TagGroupAnatomy.js +5 -5
- package/dist/tags-input/TagsInputInput.cjs +3 -2
- package/dist/tags-input/TagsInputInput.d.cts +5 -0
- package/dist/tags-input/TagsInputInput.d.ts +5 -0
- package/dist/tags-input/TagsInputInput.js +10 -9
- package/dist/text-field/TextField.cjs +8 -4
- package/dist/text-field/TextField.js +8 -4
- package/dist/timeline/Timeline.cjs +9 -2
- package/dist/timeline/Timeline.d.cts +8 -1
- package/dist/timeline/Timeline.d.ts +8 -1
- package/dist/timeline/Timeline.js +9 -2
- package/dist/timeline/TimelineAnatomy.cjs +7 -7
- package/dist/timeline/TimelineAnatomy.js +8 -8
- package/dist/tooltip/Tooltip.cjs +1 -0
- package/dist/tooltip/Tooltip.d.cts +20 -0
- package/dist/tooltip/Tooltip.d.ts +20 -0
- package/dist/tooltip/Tooltip.js +1 -0
- package/dist/tooltip/index.cjs +1 -0
- package/dist/tooltip/index.d.cts +1 -0
- package/dist/tooltip/index.d.ts +1 -0
- package/dist/tooltip/index.js +1 -0
- package/dist/tour/TourAnatomy.cjs +1 -1
- package/dist/tour/TourAnatomy.d.cts +1 -0
- package/dist/tour/TourAnatomy.d.ts +1 -0
- package/dist/tour/TourAnatomy.js +1 -1
- package/dist/tour/TourContent.cjs +1 -1
- package/dist/tour/TourContent.js +2 -2
- package/dist/tour/TourNextTrigger.cjs +1 -1
- package/dist/tour/TourNextTrigger.js +1 -1
- package/dist/tree/Tree.cjs +1 -1
- package/dist/tree/Tree.d.cts +1 -1
- package/dist/tree/Tree.d.ts +1 -1
- package/dist/tree/Tree.js +1 -1
- package/dist/tree-select/TreeSelectContent.cjs +2 -2
- package/dist/tree-select/TreeSelectContent.d.cts +3 -0
- package/dist/tree-select/TreeSelectContent.d.ts +3 -0
- package/dist/tree-select/TreeSelectContent.js +2 -2
- package/package.json +126 -2
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var l=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var w=(r,e)=>{for(var t in e)l(r,t,{get:e[t],enumerable:!0})},E=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of m(e))!y.call(r,o)&&o!==t&&l(r,o,{get:()=>e[o],enumerable:!(i=b(e,o))||i.enumerable});return r};var g=r=>E(l({},"__esModule",{value:!0}),r),d=(r,e,t,i)=>{for(var o=i>1?void 0:i?b(e,t):e,u=r.length-1,v;u>=0;u--)(v=r[u])&&(o=(i?v(e,t,o):v(o))||o);return i&&o&&l(e,t,o),o};var R={};w(R,{SkdxSpeedDialTrigger:()=>n});module.exports=g(R);var a=require("lit"),p=require("lit/decorators.js"),c=require("../internal/define.cjs"),f=require("../internal/part.cjs"),s=require("../internal/styles.cjs"),h=require("./family.cjs");var L={up:["ArrowUp","ArrowDown"],down:["ArrowUp","ArrowDown"],left:["ArrowLeft","ArrowRight"],right:["ArrowLeft","ArrowRight"]},n=class extends a.LitElement{constructor(){super(...arguments);this.disabled=!1;this.ariaLabel=null;this.root=null;this.onRootUpdate=()=>this.requestUpdate();this.handleClick=()=>this.root?.setOpen(!this.root.open,"pointer");this.handleKeyDown=t=>{this.root&&L[this.root.direction].includes(t.key)&&(t.preventDefault(),this.root.setOpen(!0,"keyboard"))};this.handlePointerEnter=t=>{!this.root?.openOnHover||t.pointerType==="touch"||this.root.hoverOpen()};this.handlePointerLeave=t=>{!this.root?.openOnHover||t.pointerType==="touch"||this.root.scheduleHoverClose()}}connectedCallback(){super.connectedCallback(),this.root=h.SPEED_DIAL_FAMILY.root(this),this.root?.addEventListener(h.SPEED_DIAL_FAMILY.event,this.onRootUpdate),this.root&&(0,c.whenUpgraded)(this.root,()=>{this.root&&!this.id&&(this.id=this.root.triggerId)})}disconnectedCallback(){this.root?.removeEventListener(h.SPEED_DIAL_FAMILY.event,this.onRootUpdate),super.disconnectedCallback()}firstUpdated(){let t=this.shadowRoot?.querySelector("button");this.root&&t&&(this.root.triggerEl=t)}get isDisabled(){return(this.root?.disabled??!1)||this.disabled}updated(){(0,f.reflectHostState)(this,{"data-disabled":this.isDisabled?"":null})}render(){let t=this.root;if(!t)return a.nothing;let i=this.isDisabled;return a.html`
|
|
2
2
|
<button
|
|
3
3
|
part="trigger"
|
|
4
4
|
type="button"
|
|
5
|
+
aria-label=${this.ariaLabel??a.nothing}
|
|
5
6
|
aria-haspopup="menu"
|
|
6
7
|
aria-expanded=${t.open}
|
|
7
8
|
aria-controls=${t.contentId}
|
|
8
9
|
data-state=${t.open?"open":"closed"}
|
|
9
10
|
data-direction=${t.direction}
|
|
10
|
-
data-disabled=${i?"":
|
|
11
|
+
data-disabled=${i?"":a.nothing}
|
|
11
12
|
?disabled=${i}
|
|
12
13
|
@click=${this.handleClick}
|
|
13
14
|
@keydown=${this.handleKeyDown}
|
|
@@ -16,8 +17,8 @@
|
|
|
16
17
|
>
|
|
17
18
|
<slot></slot>
|
|
18
19
|
</button>
|
|
19
|
-
`}};n.shadowRootOptions=
|
|
20
|
+
`}};n.shadowRootOptions=s.delegatesFocusShadowRootOptions,n.styles=[s.resetNativeControl,a.css`
|
|
20
21
|
:host {
|
|
21
22
|
display: inline-block;
|
|
22
23
|
}
|
|
23
|
-
`,
|
|
24
|
+
`,s.controlBoxOnHost],d([(0,p.property)({type:Boolean,reflect:!0})],n.prototype,"disabled",2),d([(0,p.property)({type:String,reflect:!0,attribute:"data-size"})],n.prototype,"size",2),d([(0,p.property)({type:String,attribute:"aria-label"})],n.prototype,"ariaLabel",2),n=d([(0,c.customElement)("skdx-speed-dial-trigger","speed-dial","trigger")],n);0&&(module.exports={SkdxSpeedDialTrigger});
|
|
@@ -22,6 +22,11 @@ export declare class SkdxSpeedDialTrigger extends LitElement {
|
|
|
22
22
|
* @default undefined — the skin’s own default.
|
|
23
23
|
*/
|
|
24
24
|
size?: 'sm' | 'md' | 'lg' | (string & {}) | undefined;
|
|
25
|
+
/**
|
|
26
|
+
* Accessible name for the trigger, forwarded to the shadow `<button>`.
|
|
27
|
+
* @default undefined
|
|
28
|
+
*/
|
|
29
|
+
ariaLabel: string | null;
|
|
25
30
|
private root;
|
|
26
31
|
private readonly onRootUpdate;
|
|
27
32
|
connectedCallback(): void;
|
|
@@ -22,6 +22,11 @@ export declare class SkdxSpeedDialTrigger extends LitElement {
|
|
|
22
22
|
* @default undefined — the skin’s own default.
|
|
23
23
|
*/
|
|
24
24
|
size?: 'sm' | 'md' | 'lg' | (string & {}) | undefined;
|
|
25
|
+
/**
|
|
26
|
+
* Accessible name for the trigger, forwarded to the shadow `<button>`.
|
|
27
|
+
* @default undefined
|
|
28
|
+
*/
|
|
29
|
+
ariaLabel: string | null;
|
|
25
30
|
private root;
|
|
26
31
|
private readonly onRootUpdate;
|
|
27
32
|
connectedCallback(): void;
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
var c=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var n=(
|
|
1
|
+
var c=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var n=(a,i,t,o)=>{for(var r=o>1?void 0:o?u(i,t):i,s=a.length-1,d;s>=0;s--)(d=a[s])&&(r=(o?d(i,t,r):d(r))||r);return o&&r&&c(i,t,r),r};import{css as v,html as b,LitElement as f,nothing as l}from"lit";import{property as p}from"lit/decorators.js";import{customElement as m,whenUpgraded as y}from"../internal/define.js";import{reflectHostState as w}from"../internal/part.js";import{controlBoxOnHost as E,delegatesFocusShadowRootOptions as g,resetNativeControl as L}from"../internal/styles.js";import{SPEED_DIAL_FAMILY as h}from"./family.js";var R={up:["ArrowUp","ArrowDown"],down:["ArrowUp","ArrowDown"],left:["ArrowLeft","ArrowRight"],right:["ArrowLeft","ArrowRight"]},e=class extends f{constructor(){super(...arguments);this.disabled=!1;this.ariaLabel=null;this.root=null;this.onRootUpdate=()=>this.requestUpdate();this.handleClick=()=>this.root?.setOpen(!this.root.open,"pointer");this.handleKeyDown=t=>{this.root&&R[this.root.direction].includes(t.key)&&(t.preventDefault(),this.root.setOpen(!0,"keyboard"))};this.handlePointerEnter=t=>{!this.root?.openOnHover||t.pointerType==="touch"||this.root.hoverOpen()};this.handlePointerLeave=t=>{!this.root?.openOnHover||t.pointerType==="touch"||this.root.scheduleHoverClose()}}connectedCallback(){super.connectedCallback(),this.root=h.root(this),this.root?.addEventListener(h.event,this.onRootUpdate),this.root&&y(this.root,()=>{this.root&&!this.id&&(this.id=this.root.triggerId)})}disconnectedCallback(){this.root?.removeEventListener(h.event,this.onRootUpdate),super.disconnectedCallback()}firstUpdated(){let t=this.shadowRoot?.querySelector("button");this.root&&t&&(this.root.triggerEl=t)}get isDisabled(){return(this.root?.disabled??!1)||this.disabled}updated(){w(this,{"data-disabled":this.isDisabled?"":null})}render(){let t=this.root;if(!t)return l;let o=this.isDisabled;return b`
|
|
2
2
|
<button
|
|
3
3
|
part="trigger"
|
|
4
4
|
type="button"
|
|
5
|
+
aria-label=${this.ariaLabel??l}
|
|
5
6
|
aria-haspopup="menu"
|
|
6
7
|
aria-expanded=${t.open}
|
|
7
8
|
aria-controls=${t.contentId}
|
|
8
9
|
data-state=${t.open?"open":"closed"}
|
|
9
10
|
data-direction=${t.direction}
|
|
10
|
-
data-disabled=${o?"":
|
|
11
|
+
data-disabled=${o?"":l}
|
|
11
12
|
?disabled=${o}
|
|
12
13
|
@click=${this.handleClick}
|
|
13
14
|
@keydown=${this.handleKeyDown}
|
|
@@ -16,8 +17,8 @@ var c=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var n=(s,i,t,o
|
|
|
16
17
|
>
|
|
17
18
|
<slot></slot>
|
|
18
19
|
</button>
|
|
19
|
-
`}};e.shadowRootOptions=g,e.styles=[
|
|
20
|
+
`}};e.shadowRootOptions=g,e.styles=[L,v`
|
|
20
21
|
:host {
|
|
21
22
|
display: inline-block;
|
|
22
23
|
}
|
|
23
|
-
`,E],n([
|
|
24
|
+
`,E],n([p({type:Boolean,reflect:!0})],e.prototype,"disabled",2),n([p({type:String,reflect:!0,attribute:"data-size"})],e.prototype,"size",2),n([p({type:String,attribute:"aria-label"})],e.prototype,"ariaLabel",2),e=n([m("skdx-speed-dial-trigger","speed-dial","trigger")],e);export{e as SkdxSpeedDialTrigger};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var d=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var r=Object.prototype.hasOwnProperty;var x=(s,e)=>{for(var a in e)d(s,a,{get:e[a],enumerable:!0})},i=(s,e,a,l)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of m(e))!r.call(s,t)&&t!==a&&d(s,t,{get:()=>e[t],enumerable:!(l=o(e,t))||l.enumerable});return s};var k=s=>i(d({},"__esModule",{value:!0}),s);var f={};x(f,{SkdxStack:()=>c});module.exports=k(f);var n=require("../box/Box.cjs"),c=class extends n.SkdxBox{constructor(){super(),this.display="flex"}};customElements.get("skdx-stack")===void 0&&customElements.define("skdx-stack",c);0&&(module.exports={SkdxStack});
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { SkdxBox } from '../box/Box.cjs';
|
|
2
|
+
/**
|
|
3
|
+
* Stack alias of <skdx-box>: the same component with `display='flex'` as defaults. Every attribute, property, event and slot of `<skdx-box>` applies; reach for `<skdx-box>` itself for full control.
|
|
4
|
+
*/
|
|
5
|
+
export declare class SkdxStack extends SkdxBox {
|
|
6
|
+
constructor();
|
|
7
|
+
}
|
|
8
|
+
declare global {
|
|
9
|
+
interface HTMLElementTagNameMap {
|
|
10
|
+
'skdx-stack': SkdxStack;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { SkdxBox } from '../box/Box.js';
|
|
2
|
+
/**
|
|
3
|
+
* Stack alias of <skdx-box>: the same component with `display='flex'` as defaults. Every attribute, property, event and slot of `<skdx-box>` applies; reach for `<skdx-box>` itself for full control.
|
|
4
|
+
*/
|
|
5
|
+
export declare class SkdxStack extends SkdxBox {
|
|
6
|
+
constructor();
|
|
7
|
+
}
|
|
8
|
+
declare global {
|
|
9
|
+
interface HTMLElementTagNameMap {
|
|
10
|
+
'skdx-stack': SkdxStack;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{SkdxBox as s}from"../box/Box.js";var e=class extends s{constructor(){super(),this.display="flex"}};customElements.get("skdx-stack")===void 0&&customElements.define("skdx-stack",e);export{e as SkdxStack};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var x=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var e=Object.prototype.hasOwnProperty;var f=(o,k)=>{for(var t in k)x(o,t,{get:k[t],enumerable:!0})},m=(o,k,t,S)=>{if(k&&typeof k=="object"||typeof k=="function")for(let r of d(k))!e.call(o,r)&&r!==t&&x(o,r,{get:()=>k[r],enumerable:!(S=c(k,r))||S.enumerable});return o};var p=o=>m(x({},"__esModule",{value:!0}),o);var b={};f(b,{SkdxStack:()=>a.SkdxStack});module.exports=p(b);var a=require("./Stack.cjs");0&&(module.exports={SkdxStack});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { SkdxStack } from './Stack.cjs';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { SkdxStack } from './Stack.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{SkdxStack as r}from"./Stack.js";export{r as SkdxStack};
|
package/dist/table/Table.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var m=Object.defineProperty;var _=Object.getOwnPropertyDescriptor;var I=Object.getOwnPropertyNames;var B=Object.prototype.hasOwnProperty;var L=(s,a)=>{for(var t in a)m(s,t,{get:a[t],enumerable:!0})},x=(s,a,t,n)=>{if(a&&typeof a=="object"||typeof a=="function")for(let e of I(a))!B.call(s,e)&&e!==t&&m(s,e,{get:()=>a[e],enumerable:!(n=_(a,e))||n.enumerable});return s};var z=s=>x(m({},"__esModule",{value:!0}),s),r=(s,a,t,n)=>{for(var e=n>1?void 0:n?_(a,t):a,l=s.length-1,d;l>=0;l--)(d=s[l])&&(e=(n?d(a,t,e):d(e))||e);return n&&e&&m(a,t,e),e};var $={};L($,{SkdxTable:()=>i,defaultGetSortLabel:()=>M});module.exports=z($);var h=require("lit"),o=require("lit/decorators.js"),y=require("lit/directives/if-defined.js"),v=require("../internal/authored.cjs"),R=require("../internal/define.cjs"),f=require("../internal/derive.cjs"),c=require("../internal/events.cjs"),A=require("../internal/ids.cjs"),C=require("../utils/live-announcer.cjs"),E=require("./column-context.cjs"),u=require("./TableAnatomy.cjs");var F=["sort","filter","multiSort","selected","selectionMode","expandedRowIds","columnWidths"],D=["columns","sortable","selectable","expandable","resizable","filterable","caption"],N=["data","columns","renderCell","renderExpanded","rowId","getRowLabel","empty","selectable","expandable","sort","filter"];function w(s,a){return a.some(t=>s.has(t))}function S(s){return s==null?new Set:s instanceof Set?s:new Set(Array.isArray(s)?s:[String(s)])}function O(s,a,t){let n=s.find(l=>l.columnKey===a),e="asc";return n!==void 0&&(e=n.direction==="asc"?"desc":null),t?e===null?s.filter(l=>l.columnKey!==a):n===void 0?[...s,{columnKey:a,direction:e}]:s.map(l=>l.columnKey===a?{columnKey:a,direction:e}:l):e===null?[]:[{columnKey:a,direction:e}]}function M(s,a){return a===null?`${s} not sorted`:`${s} sorted ${a==="asc"?"ascending":"descending"}`}var i=class extends h.LitElement{constructor(){super(...arguments);this.defaultSort=[];this.multiSort=!1;this.defaultFilter={};this.selectionMode="none";this.getSortLabel=M;this.defaultExpandedRowIds=[];this.defaultColumnWidths={};this.sortable=!1;this.selectable=!1;this.expandable=!1;this.resizable=!1;this.filterable=!1;this.stickyHeader=!1;this.tableId=(0,A.nextId)("skdx-table");this._uncontrolledSort=[];this._uncontrolledSelected=new Set;this._uncontrolledExpandedRowIds=new Set;this._uncontrolledColumnWidths={};this._uncontrolledFilter={};this._initialized=!1;this._anatomyBuilt=!1;this._fillAnatomy=()=>{if((0,v.hasAuthoredParts)(this,u.TABLE_ANATOMY_GENERATED)){this._anatomyBuilt=!1;return}this._anatomyBuilt||(this._anatomyBuilt=!0,this.selectable&&this.selectionMode==="none"&&(this.selectionMode="multiple"),(0,u.fillTableAnatomy)(this))};this._rebuildAnatomy=()=>{this._anatomyBuilt=!1,this._fillAnatomy()};this._anchorRowId=null}connectedCallback(){super.connectedCallback(),this._initialized||(this._uncontrolledSort=this.defaultSort??[],this._uncontrolledSelected=S(this.defaultSelected),this._uncontrolledExpandedRowIds=S(this.defaultExpandedRowIds),this._uncontrolledColumnWidths={...this.defaultColumnWidths},this._uncontrolledFilter={...this.defaultFilter},this._initialized=!0),queueMicrotask(this._fillAnatomy)}get sortList(){return this.sort!==void 0?this.sort:this._uncontrolledSort}get filterMap(){return this.filter!==void 0?this.filter:this._uncontrolledFilter}setColumnFilter(t,n){let e=this.filterMap;if((e[t]??"")===n)return;let l={...e};n===""?delete l[t]:l[t]=n,this.filter===void 0&&(this._uncontrolledFilter=l),(0,c.emit)(this,"filter-change",l),this._broadcast(),(0,u.renderTableRows)(this)}get currentSelected(){return this.selected!==void 0?S(this.selected):this._uncontrolledSelected}toggleSort(t,n=t){let e=O(this.sortList,t,this.multiSort);this.sort===void 0&&(this._uncontrolledSort=e),(0,c.emit)(this,"sort-change",e);let l=e.find(d=>d.columnKey===t)?.direction??null;(0,C.announce)(this.getSortLabel(n,l)),this._broadcast(),(0,u.renderTableRows)(this)}orderedRowIds(){return[...this.querySelectorAll("skdx-table-body skdx-table-row[row-id]")].filter(n=>n.closest("skdx-table")===this).map(n=>n.getAttribute("row-id"))}toggleRow(t,n=!1){if(this.selectionMode==="none")return;let e=this.currentSelected,l=this._anchorRowId;if(n&&this.selectionMode==="multiple"&&l!==null&&l!==t){let p=this.orderedRowIds(),g=p.indexOf(l),b=p.indexOf(t);if(g!==-1&&b!==-1){let W=p.slice(Math.min(g,b),Math.max(g,b)+1);this._commitSelected(new Set([...e,...W]));return}}this._anchorRowId=t;let d;this.selectionMode==="single"?d=e.has(t)&&e.size===1?new Set:new Set([t]):(d=new Set(e),d.has(t)?d.delete(t):d.add(t)),this._commitSelected(d)}_commitSelected(t){let n=this.currentSelected;n.size===t.size&&[...t].every(e=>n.has(e))||(this.selected===void 0&&(this._uncontrolledSelected=t),(0,c.emit)(this,"selected-change",[...t]),this._broadcast())}isRowSelected(t){return this.currentSelected.has(t)}toggleAll(t){if(this.selectionMode==="none")return;let n=this.currentSelected,e;if(t.length>0&&t.every(l=>n.has(l))){e=new Set(n);for(let l of t)e.delete(l)}else e=new Set([...n,...t]);this._commitSelected(e)}isAllSelected(t){let n=this.currentSelected;return t.length>0&&t.every(e=>n.has(e))}isSomeSelected(t){let n=this.currentSelected;return t.some(e=>n.has(e))&&!this.isAllSelected(t)}get expandedRowIdSet(){return this.expandedRowIds!==void 0?new Set(this.expandedRowIds):this._uncontrolledExpandedRowIds}get resolvedColumnWidths(){return this.columnWidths!==void 0?this.columnWidths:this._uncontrolledColumnWidths}isRowExpanded(t){return this.expandedRowIdSet.has(t)}toggleRowExpanded(t){let n=new Set(this.expandedRowIdSet);n.has(t)?n.delete(t):n.add(t),this.expandedRowIds===void 0&&(this._uncontrolledExpandedRowIds=n),(0,c.emit)(this,"expanded-row-ids-change",[...n]),this._broadcast()}setColumnWidth(t,n){let e=this.resolvedColumnWidths;if(e[t]===n)return;let l={...e,[t]:n};this.columnWidths===void 0&&(this._uncontrolledColumnWidths=l),(0,c.emit)(this,"column-widths-change",l),this._broadcast()}commitColumnWidths(){(0,c.emit)(this,"column-widths-commit",this.resolvedColumnWidths)}detailRowId(t){return`${this.tableId}-detail-${t}`}_broadcast(){this.dispatchEvent(new CustomEvent(E.TABLE_INTERNAL_UPDATE))}updated(t){w(t,F)&&this._broadcast(),w(t,D)?this._rebuildAnatomy():this._fillAnatomy(),w(t,N)&&(0,u.renderTableRows)(this),(0,f.threadAppearance)(this,{size:this.size},[...(0,f.derivedParts)(this,"skdx-table-row-select-checkbox"),...(0,f.derivedParts)(this,"skdx-table-select-all-checkbox")])}headerCellCount(){let t=this.querySelectorAll("skdx-table-header-cell").length;return t>0?t:this.columnCount??1}render(){return h.html`<table
|
|
2
2
|
part="table"
|
|
3
|
-
aria-rowcount=${(0,
|
|
4
|
-
aria-colcount=${(0,
|
|
3
|
+
aria-rowcount=${(0,y.ifDefined)(this.rowCount)}
|
|
4
|
+
aria-colcount=${(0,y.ifDefined)(this.columnCount)}
|
|
5
5
|
>
|
|
6
6
|
<slot @slotchange=${this._fillAnatomy}></slot>
|
|
7
7
|
</table>`}};i.styles=h.css`
|
|
@@ -13,4 +13,4 @@
|
|
|
13
13
|
:host > table {
|
|
14
14
|
display: contents;
|
|
15
15
|
}
|
|
16
|
-
`,
|
|
16
|
+
`,r([(0,o.property)({attribute:!1})],i.prototype,"sort",2),r([(0,o.property)({type:Array,attribute:"default-sort"})],i.prototype,"defaultSort",2),r([(0,o.property)({type:Number,attribute:"row-count"})],i.prototype,"rowCount",2),r([(0,o.property)({type:Number,attribute:"column-count"})],i.prototype,"columnCount",2),r([(0,o.property)({type:Boolean,attribute:"multi-sort"})],i.prototype,"multiSort",2),r([(0,o.property)({attribute:!1})],i.prototype,"filter",2),r([(0,o.property)({type:Object,attribute:"default-filter"})],i.prototype,"defaultFilter",2),r([(0,o.property)({attribute:!1})],i.prototype,"selected",2),r([(0,o.property)({type:Array,attribute:"default-selected"})],i.prototype,"defaultSelected",2),r([(0,o.property)({type:String,attribute:"selection-mode"})],i.prototype,"selectionMode",2),r([(0,o.property)({attribute:!1})],i.prototype,"getSortLabel",2),r([(0,o.property)({attribute:!1})],i.prototype,"expandedRowIds",2),r([(0,o.property)({type:Array,attribute:"default-expanded-row-ids"})],i.prototype,"defaultExpandedRowIds",2),r([(0,o.property)({attribute:!1})],i.prototype,"columnWidths",2),r([(0,o.property)({type:Object,attribute:"default-column-widths"})],i.prototype,"defaultColumnWidths",2),r([(0,o.property)({attribute:!1})],i.prototype,"columns",2),r([(0,o.property)({attribute:!1})],i.prototype,"data",2),r([(0,o.property)({type:Boolean})],i.prototype,"sortable",2),r([(0,o.property)({type:Boolean})],i.prototype,"selectable",2),r([(0,o.property)({type:Boolean})],i.prototype,"expandable",2),r([(0,o.property)({type:Boolean})],i.prototype,"resizable",2),r([(0,o.property)({type:Boolean})],i.prototype,"filterable",2),r([(0,o.property)()],i.prototype,"empty",2),r([(0,o.property)()],i.prototype,"caption",2),r([(0,o.property)({attribute:!1})],i.prototype,"renderCell",2),r([(0,o.property)({attribute:!1})],i.prototype,"renderExpanded",2),r([(0,o.property)({attribute:!1})],i.prototype,"rowId",2),r([(0,o.property)({attribute:!1})],i.prototype,"getRowLabel",2),r([(0,o.property)({type:String,reflect:!0,attribute:"data-density"})],i.prototype,"density",2),r([(0,o.property)({type:Boolean,reflect:!0,attribute:"data-sticky-header"})],i.prototype,"stickyHeader",2),r([(0,o.property)({type:String,attribute:"data-size"})],i.prototype,"size",2),r([(0,o.state)()],i.prototype,"_uncontrolledSort",2),r([(0,o.state)()],i.prototype,"_uncontrolledSelected",2),r([(0,o.state)()],i.prototype,"_uncontrolledExpandedRowIds",2),r([(0,o.state)()],i.prototype,"_uncontrolledColumnWidths",2),r([(0,o.state)()],i.prototype,"_uncontrolledFilter",2),i=r([(0,R.customElement)("skdx-table","table","root")],i);0&&(module.exports={SkdxTable,defaultGetSortLabel});
|
package/dist/table/Table.d.cts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { LitElement, type TemplateResult } from 'lit';
|
|
2
2
|
import { type SkdxTableColumn } from './TableAnatomy.cjs';
|
|
3
|
-
import type { SortDirection, TableColumnWidths, TableSelectionMode, TableSort, TableSortState } from './types.cjs';
|
|
3
|
+
import type { SortDirection, TableColumnWidths, TableFilterState, TableSelectionMode, TableSort, TableSortState } from './types.cjs';
|
|
4
4
|
/** Default `getSortLabel`: `"Amount sorted ascending"` / `"Amount not sorted"`. */
|
|
5
5
|
export declare function defaultGetSortLabel(column: string, direction: SortDirection | null): string;
|
|
6
6
|
/**
|
|
7
7
|
* Web Components implementation of the shared Table contract, owning only sort and row-selection state (no pagination, filtering, or data model) and rendering a real `<table>` in shadow DOM. Sort and selection work controlled or uncontrolled; **the table never reorders your rows**, it only publishes sort state.
|
|
8
8
|
*
|
|
9
9
|
* @fires sort-change - Fired with the new `TableSortState[]` whenever a column header's sort trigger cycles it.
|
|
10
|
+
* @fires filter-change - Fired with the new `TableFilterState` whenever a column's filter text changes; a cleared column leaves the map.
|
|
10
11
|
* @fires selected-change - Fired with the selected row ids whenever a row or select-all checkbox is toggled.
|
|
11
12
|
* @fires expanded-row-ids-change - Fired with the expanded row ids whenever a detail row is opened or closed.
|
|
12
13
|
* @fires column-widths-change - Fired with the full `{ columnKey: px }` map on every drag frame and arrow-key nudge. Persist from `column-widths-commit` instead.
|
|
@@ -64,6 +65,10 @@ export declare class SkdxTable extends LitElement {
|
|
|
64
65
|
* @default false
|
|
65
66
|
*/
|
|
66
67
|
multiSort: boolean;
|
|
68
|
+
/** Active column filters keyed by column, for controlled usage; pair with `filter-change`. */
|
|
69
|
+
filter?: TableFilterState;
|
|
70
|
+
/** Initial column filters for uncontrolled usage, keyed by column. */
|
|
71
|
+
defaultFilter: TableFilterState;
|
|
67
72
|
/**
|
|
68
73
|
* Selected row ids for controlled usage.
|
|
69
74
|
* @default undefined
|
|
@@ -134,6 +139,11 @@ export declare class SkdxTable extends LitElement {
|
|
|
134
139
|
* @default false
|
|
135
140
|
*/
|
|
136
141
|
resizable: boolean;
|
|
142
|
+
/**
|
|
143
|
+
* Makes derived columns filterable unless a column opts out; the derived rows are then the ones matching every active filter.
|
|
144
|
+
* @default false
|
|
145
|
+
*/
|
|
146
|
+
filterable: boolean;
|
|
137
147
|
/**
|
|
138
148
|
* Content for the derived empty state, shown when `data` is empty.
|
|
139
149
|
* @default undefined
|
|
@@ -185,6 +195,7 @@ export declare class SkdxTable extends LitElement {
|
|
|
185
195
|
private _uncontrolledSelected;
|
|
186
196
|
private _uncontrolledExpandedRowIds;
|
|
187
197
|
private _uncontrolledColumnWidths;
|
|
198
|
+
private _uncontrolledFilter;
|
|
188
199
|
private _initialized;
|
|
189
200
|
connectedCallback(): void;
|
|
190
201
|
private _anatomyBuilt;
|
|
@@ -193,6 +204,11 @@ export declare class SkdxTable extends LitElement {
|
|
|
193
204
|
/** @internal Every sorted column, most significant first, controlled or uncontrolled. */
|
|
194
205
|
get sortList(): TableSortState[];
|
|
195
206
|
/** @internal Resolved selected row ids, controlled or uncontrolled. */
|
|
207
|
+
/** Active column filters keyed by column; a column with no entry is unfiltered. */
|
|
208
|
+
get filterMap(): TableFilterState;
|
|
209
|
+
/** @internal Sets one column's filter text and emits `filter-change`; the filter input calls it. */
|
|
210
|
+
setColumnFilter(columnKey: string, value: string): void;
|
|
211
|
+
/** @internal */
|
|
196
212
|
get currentSelected(): Set<string>;
|
|
197
213
|
/** @internal Cycles a column through asc → desc → unsorted. `columnLabel` is used only for the announcement. */
|
|
198
214
|
toggleSort(columnKey: string, columnLabel?: string): void;
|
package/dist/table/Table.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { LitElement, type TemplateResult } from 'lit';
|
|
2
2
|
import { type SkdxTableColumn } from './TableAnatomy.js';
|
|
3
|
-
import type { SortDirection, TableColumnWidths, TableSelectionMode, TableSort, TableSortState } from './types.js';
|
|
3
|
+
import type { SortDirection, TableColumnWidths, TableFilterState, TableSelectionMode, TableSort, TableSortState } from './types.js';
|
|
4
4
|
/** Default `getSortLabel`: `"Amount sorted ascending"` / `"Amount not sorted"`. */
|
|
5
5
|
export declare function defaultGetSortLabel(column: string, direction: SortDirection | null): string;
|
|
6
6
|
/**
|
|
7
7
|
* Web Components implementation of the shared Table contract, owning only sort and row-selection state (no pagination, filtering, or data model) and rendering a real `<table>` in shadow DOM. Sort and selection work controlled or uncontrolled; **the table never reorders your rows**, it only publishes sort state.
|
|
8
8
|
*
|
|
9
9
|
* @fires sort-change - Fired with the new `TableSortState[]` whenever a column header's sort trigger cycles it.
|
|
10
|
+
* @fires filter-change - Fired with the new `TableFilterState` whenever a column's filter text changes; a cleared column leaves the map.
|
|
10
11
|
* @fires selected-change - Fired with the selected row ids whenever a row or select-all checkbox is toggled.
|
|
11
12
|
* @fires expanded-row-ids-change - Fired with the expanded row ids whenever a detail row is opened or closed.
|
|
12
13
|
* @fires column-widths-change - Fired with the full `{ columnKey: px }` map on every drag frame and arrow-key nudge. Persist from `column-widths-commit` instead.
|
|
@@ -64,6 +65,10 @@ export declare class SkdxTable extends LitElement {
|
|
|
64
65
|
* @default false
|
|
65
66
|
*/
|
|
66
67
|
multiSort: boolean;
|
|
68
|
+
/** Active column filters keyed by column, for controlled usage; pair with `filter-change`. */
|
|
69
|
+
filter?: TableFilterState;
|
|
70
|
+
/** Initial column filters for uncontrolled usage, keyed by column. */
|
|
71
|
+
defaultFilter: TableFilterState;
|
|
67
72
|
/**
|
|
68
73
|
* Selected row ids for controlled usage.
|
|
69
74
|
* @default undefined
|
|
@@ -134,6 +139,11 @@ export declare class SkdxTable extends LitElement {
|
|
|
134
139
|
* @default false
|
|
135
140
|
*/
|
|
136
141
|
resizable: boolean;
|
|
142
|
+
/**
|
|
143
|
+
* Makes derived columns filterable unless a column opts out; the derived rows are then the ones matching every active filter.
|
|
144
|
+
* @default false
|
|
145
|
+
*/
|
|
146
|
+
filterable: boolean;
|
|
137
147
|
/**
|
|
138
148
|
* Content for the derived empty state, shown when `data` is empty.
|
|
139
149
|
* @default undefined
|
|
@@ -185,6 +195,7 @@ export declare class SkdxTable extends LitElement {
|
|
|
185
195
|
private _uncontrolledSelected;
|
|
186
196
|
private _uncontrolledExpandedRowIds;
|
|
187
197
|
private _uncontrolledColumnWidths;
|
|
198
|
+
private _uncontrolledFilter;
|
|
188
199
|
private _initialized;
|
|
189
200
|
connectedCallback(): void;
|
|
190
201
|
private _anatomyBuilt;
|
|
@@ -193,6 +204,11 @@ export declare class SkdxTable extends LitElement {
|
|
|
193
204
|
/** @internal Every sorted column, most significant first, controlled or uncontrolled. */
|
|
194
205
|
get sortList(): TableSortState[];
|
|
195
206
|
/** @internal Resolved selected row ids, controlled or uncontrolled. */
|
|
207
|
+
/** Active column filters keyed by column; a column with no entry is unfiltered. */
|
|
208
|
+
get filterMap(): TableFilterState;
|
|
209
|
+
/** @internal Sets one column's filter text and emits `filter-change`; the filter input calls it. */
|
|
210
|
+
setColumnFilter(columnKey: string, value: string): void;
|
|
211
|
+
/** @internal */
|
|
196
212
|
get currentSelected(): Set<string>;
|
|
197
213
|
/** @internal Cycles a column through asc → desc → unsorted. `columnLabel` is used only for the announcement. */
|
|
198
214
|
toggleSort(columnKey: string, columnLabel?: string): void;
|
package/dist/table/Table.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
var _=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var
|
|
1
|
+
var _=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var r=(l,a,t,n)=>{for(var i=n>1?void 0:n?v(a,t):a,s=l.length-1,d;s>=0;s--)(d=l[s])&&(i=(n?d(a,t,i):d(i))||i);return n&&i&&_(a,t,i),i};import{css as R,html as A,LitElement as C}from"lit";import{property as o,state as c}from"lit/decorators.js";import{ifDefined as w}from"lit/directives/if-defined.js";import{hasAuthoredParts as E}from"../internal/authored.js";import{customElement as M}from"../internal/define.js";import{derivedParts as S,threadAppearance as W}from"../internal/derive.js";import{emit as u}from"../internal/events.js";import{nextId as I}from"../internal/ids.js";import{announce as B}from"../utils/live-announcer.js";import{TABLE_INTERNAL_UPDATE as L}from"./column-context.js";import{fillTableAnatomy as x,renderTableRows as p,TABLE_ANATOMY_GENERATED as z}from"./TableAnatomy.js";var F=["sort","filter","multiSort","selected","selectionMode","expandedRowIds","columnWidths"],D=["columns","sortable","selectable","expandable","resizable","filterable","caption"],N=["data","columns","renderCell","renderExpanded","rowId","getRowLabel","empty","selectable","expandable","sort","filter"];function g(l,a){return a.some(t=>l.has(t))}function b(l){return l==null?new Set:l instanceof Set?l:new Set(Array.isArray(l)?l:[String(l)])}function O(l,a,t){let n=l.find(s=>s.columnKey===a),i="asc";return n!==void 0&&(i=n.direction==="asc"?"desc":null),t?i===null?l.filter(s=>s.columnKey!==a):n===void 0?[...l,{columnKey:a,direction:i}]:l.map(s=>s.columnKey===a?{columnKey:a,direction:i}:s):i===null?[]:[{columnKey:a,direction:i}]}function $(l,a){return a===null?`${l} not sorted`:`${l} sorted ${a==="asc"?"ascending":"descending"}`}var e=class extends C{constructor(){super(...arguments);this.defaultSort=[];this.multiSort=!1;this.defaultFilter={};this.selectionMode="none";this.getSortLabel=$;this.defaultExpandedRowIds=[];this.defaultColumnWidths={};this.sortable=!1;this.selectable=!1;this.expandable=!1;this.resizable=!1;this.filterable=!1;this.stickyHeader=!1;this.tableId=I("skdx-table");this._uncontrolledSort=[];this._uncontrolledSelected=new Set;this._uncontrolledExpandedRowIds=new Set;this._uncontrolledColumnWidths={};this._uncontrolledFilter={};this._initialized=!1;this._anatomyBuilt=!1;this._fillAnatomy=()=>{if(E(this,z)){this._anatomyBuilt=!1;return}this._anatomyBuilt||(this._anatomyBuilt=!0,this.selectable&&this.selectionMode==="none"&&(this.selectionMode="multiple"),x(this))};this._rebuildAnatomy=()=>{this._anatomyBuilt=!1,this._fillAnatomy()};this._anchorRowId=null}connectedCallback(){super.connectedCallback(),this._initialized||(this._uncontrolledSort=this.defaultSort??[],this._uncontrolledSelected=b(this.defaultSelected),this._uncontrolledExpandedRowIds=b(this.defaultExpandedRowIds),this._uncontrolledColumnWidths={...this.defaultColumnWidths},this._uncontrolledFilter={...this.defaultFilter},this._initialized=!0),queueMicrotask(this._fillAnatomy)}get sortList(){return this.sort!==void 0?this.sort:this._uncontrolledSort}get filterMap(){return this.filter!==void 0?this.filter:this._uncontrolledFilter}setColumnFilter(t,n){let i=this.filterMap;if((i[t]??"")===n)return;let s={...i};n===""?delete s[t]:s[t]=n,this.filter===void 0&&(this._uncontrolledFilter=s),u(this,"filter-change",s),this._broadcast(),p(this)}get currentSelected(){return this.selected!==void 0?b(this.selected):this._uncontrolledSelected}toggleSort(t,n=t){let i=O(this.sortList,t,this.multiSort);this.sort===void 0&&(this._uncontrolledSort=i),u(this,"sort-change",i);let s=i.find(d=>d.columnKey===t)?.direction??null;B(this.getSortLabel(n,s)),this._broadcast(),p(this)}orderedRowIds(){return[...this.querySelectorAll("skdx-table-body skdx-table-row[row-id]")].filter(n=>n.closest("skdx-table")===this).map(n=>n.getAttribute("row-id"))}toggleRow(t,n=!1){if(this.selectionMode==="none")return;let i=this.currentSelected,s=this._anchorRowId;if(n&&this.selectionMode==="multiple"&&s!==null&&s!==t){let h=this.orderedRowIds(),f=h.indexOf(s),m=h.indexOf(t);if(f!==-1&&m!==-1){let y=h.slice(Math.min(f,m),Math.max(f,m)+1);this._commitSelected(new Set([...i,...y]));return}}this._anchorRowId=t;let d;this.selectionMode==="single"?d=i.has(t)&&i.size===1?new Set:new Set([t]):(d=new Set(i),d.has(t)?d.delete(t):d.add(t)),this._commitSelected(d)}_commitSelected(t){let n=this.currentSelected;n.size===t.size&&[...t].every(i=>n.has(i))||(this.selected===void 0&&(this._uncontrolledSelected=t),u(this,"selected-change",[...t]),this._broadcast())}isRowSelected(t){return this.currentSelected.has(t)}toggleAll(t){if(this.selectionMode==="none")return;let n=this.currentSelected,i;if(t.length>0&&t.every(s=>n.has(s))){i=new Set(n);for(let s of t)i.delete(s)}else i=new Set([...n,...t]);this._commitSelected(i)}isAllSelected(t){let n=this.currentSelected;return t.length>0&&t.every(i=>n.has(i))}isSomeSelected(t){let n=this.currentSelected;return t.some(i=>n.has(i))&&!this.isAllSelected(t)}get expandedRowIdSet(){return this.expandedRowIds!==void 0?new Set(this.expandedRowIds):this._uncontrolledExpandedRowIds}get resolvedColumnWidths(){return this.columnWidths!==void 0?this.columnWidths:this._uncontrolledColumnWidths}isRowExpanded(t){return this.expandedRowIdSet.has(t)}toggleRowExpanded(t){let n=new Set(this.expandedRowIdSet);n.has(t)?n.delete(t):n.add(t),this.expandedRowIds===void 0&&(this._uncontrolledExpandedRowIds=n),u(this,"expanded-row-ids-change",[...n]),this._broadcast()}setColumnWidth(t,n){let i=this.resolvedColumnWidths;if(i[t]===n)return;let s={...i,[t]:n};this.columnWidths===void 0&&(this._uncontrolledColumnWidths=s),u(this,"column-widths-change",s),this._broadcast()}commitColumnWidths(){u(this,"column-widths-commit",this.resolvedColumnWidths)}detailRowId(t){return`${this.tableId}-detail-${t}`}_broadcast(){this.dispatchEvent(new CustomEvent(L))}updated(t){g(t,F)&&this._broadcast(),g(t,D)?this._rebuildAnatomy():this._fillAnatomy(),g(t,N)&&p(this),W(this,{size:this.size},[...S(this,"skdx-table-row-select-checkbox"),...S(this,"skdx-table-select-all-checkbox")])}headerCellCount(){let t=this.querySelectorAll("skdx-table-header-cell").length;return t>0?t:this.columnCount??1}render(){return A`<table
|
|
2
2
|
part="table"
|
|
3
|
-
aria-rowcount=${
|
|
4
|
-
aria-colcount=${
|
|
3
|
+
aria-rowcount=${w(this.rowCount)}
|
|
4
|
+
aria-colcount=${w(this.columnCount)}
|
|
5
5
|
>
|
|
6
6
|
<slot @slotchange=${this._fillAnatomy}></slot>
|
|
7
|
-
</table>`}};
|
|
7
|
+
</table>`}};e.styles=R`
|
|
8
8
|
/* The host takes the table's display role; the shadow <table> stays display: contents so the skin's box lands on the host. */
|
|
9
9
|
:host {
|
|
10
10
|
display: table;
|
|
@@ -13,4 +13,4 @@ var _=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var o=(l,d,t,i
|
|
|
13
13
|
:host > table {
|
|
14
14
|
display: contents;
|
|
15
15
|
}
|
|
16
|
-
`,
|
|
16
|
+
`,r([o({attribute:!1})],e.prototype,"sort",2),r([o({type:Array,attribute:"default-sort"})],e.prototype,"defaultSort",2),r([o({type:Number,attribute:"row-count"})],e.prototype,"rowCount",2),r([o({type:Number,attribute:"column-count"})],e.prototype,"columnCount",2),r([o({type:Boolean,attribute:"multi-sort"})],e.prototype,"multiSort",2),r([o({attribute:!1})],e.prototype,"filter",2),r([o({type:Object,attribute:"default-filter"})],e.prototype,"defaultFilter",2),r([o({attribute:!1})],e.prototype,"selected",2),r([o({type:Array,attribute:"default-selected"})],e.prototype,"defaultSelected",2),r([o({type:String,attribute:"selection-mode"})],e.prototype,"selectionMode",2),r([o({attribute:!1})],e.prototype,"getSortLabel",2),r([o({attribute:!1})],e.prototype,"expandedRowIds",2),r([o({type:Array,attribute:"default-expanded-row-ids"})],e.prototype,"defaultExpandedRowIds",2),r([o({attribute:!1})],e.prototype,"columnWidths",2),r([o({type:Object,attribute:"default-column-widths"})],e.prototype,"defaultColumnWidths",2),r([o({attribute:!1})],e.prototype,"columns",2),r([o({attribute:!1})],e.prototype,"data",2),r([o({type:Boolean})],e.prototype,"sortable",2),r([o({type:Boolean})],e.prototype,"selectable",2),r([o({type:Boolean})],e.prototype,"expandable",2),r([o({type:Boolean})],e.prototype,"resizable",2),r([o({type:Boolean})],e.prototype,"filterable",2),r([o()],e.prototype,"empty",2),r([o()],e.prototype,"caption",2),r([o({attribute:!1})],e.prototype,"renderCell",2),r([o({attribute:!1})],e.prototype,"renderExpanded",2),r([o({attribute:!1})],e.prototype,"rowId",2),r([o({attribute:!1})],e.prototype,"getRowLabel",2),r([o({type:String,reflect:!0,attribute:"data-density"})],e.prototype,"density",2),r([o({type:Boolean,reflect:!0,attribute:"data-sticky-header"})],e.prototype,"stickyHeader",2),r([o({type:String,attribute:"data-size"})],e.prototype,"size",2),r([c()],e.prototype,"_uncontrolledSort",2),r([c()],e.prototype,"_uncontrolledSelected",2),r([c()],e.prototype,"_uncontrolledExpandedRowIds",2),r([c()],e.prototype,"_uncontrolledColumnWidths",2),r([c()],e.prototype,"_uncontrolledFilter",2),e=r([M("skdx-table","table","root")],e);export{e as SkdxTable,$ as defaultGetSortLabel};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var u=Object.defineProperty;var T=Object.getOwnPropertyDescriptor;var A=Object.getOwnPropertyNames;var $=Object.prototype.hasOwnProperty;var R=(e,t)=>{for(var n in t)u(e,n,{get:t[n],enumerable:!0})},E=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of A(t))!$.call(e,a)&&a!==n&&u(e,a,{get:()=>t[a],enumerable:!(r=T(t,a))||r.enumerable});return e};var C=e=>E(u({},"__esModule",{value:!0}),e);var z={};R(z,{TABLE_ANATOMY_GENERATED:()=>b,defaultRowId:()=>h,fillTableAnatomy:()=>I,filterRows:()=>y,renderTableRows:()=>w,sortRows:()=>g});module.exports=C(z);var o=require("lit"),f=require("lit/directives/repeat.js"),M=require("./TableCaption.cjs"),O=require("./TableHeader.cjs"),q=require("./TableBody.cjs"),D=require("./TableRow.cjs"),N=require("./TableCell.cjs"),_=require("./TableHeaderCell.cjs"),j=require("./TableRowSelectCheckbox.cjs"),B=require("./TableSelectAllCheckbox.cjs"),G=require("./TableExpandTrigger.cjs"),H=require("./TableExpandedRow.cjs"),K=require("./TableEmpty.cjs"),b="data-skdx-table-generated";function L(e,t){let n=e[t.key]??"";return String(n)}function h(e,t){return typeof e.id=="string"?e.id:String(t)}function v(e,t){if(typeof e=="number"&&typeof t=="number")return e-t;let n=e??"",r=t??"";return String(n).localeCompare(String(r))}function g(e,t){return t.length===0?[...e]:[...e].sort((n,r)=>{for(let{columnKey:a,direction:c}of t){let l=v(n[a],r[a]);if(l!==0)return c==="asc"?l:-l}return 0})}function y(e,t){let n=Object.entries(t).filter(([,r])=>r!=="");return n.length===0?[...e]:e.filter(r=>n.every(([a,c])=>String(r[a]??"").toLowerCase().includes(c.toLowerCase())))}function I(e){let t=[];if(e.caption){let l=document.createElement("skdx-table-caption");l.setAttribute(b,""),l.textContent=e.caption,t.push(l)}let n=e.columns??[],r=document.createElement("skdx-table-header");r.setAttribute(b,"");let a=document.createElement("skdx-table-row");if(e.selectable){let l=document.createElement("skdx-table-header-cell"),s=document.createElement("skdx-table-select-all-checkbox");s.setAttribute("scope","page"),l.append(s),a.append(l)}if(e.expandable){let l=document.createElement("skdx-table-header-cell");l.setAttribute("aria-hidden","true"),a.append(l)}for(let l of n){let s=document.createElement("skdx-table-header-cell");s.setAttribute("column-key",l.key),e.sortable&&l.sortable&&s.setAttribute("sortable",""),e.resizable&&l.resizable&&s.setAttribute("resizable",""),(l.filterable??e.filterable)&&(s.setAttribute("filterable",""),s.setAttribute("filter-label",`Filter ${typeof l.header=="string"?l.header:l.key}`)),(0,o.render)(l.header??l.key,s,{host:e}),a.append(s)}r.append(a),t.push(r);let c=document.createElement("skdx-table-body");c.setAttribute(b,""),t.push(c),e.replaceChildren(...t),w(e)}function w(e){let t=e.querySelector(`:scope > skdx-table-body[${b}]`);if(!t)return;let n=e.columns??[],r=g(y(e.data??[],e.filterMap),e.sortList),a=n.length+(e.selectable?1:0)+(e.expandable?1:0),c=e.renderCell??L,l=e.renderExpanded,s=e.rowId??h,m=e.getRowLabel,x=e.querySelector(`:scope > skdx-table-header[${b}] skdx-table-select-all-checkbox`);if(x&&(x.rowIds=r.map((d,i)=>s(d,i))),r.length===0){(0,o.render)(e.empty?o.html`<skdx-table-empty col-span=${a}>${e.empty}</skdx-table-empty>`:"",t,{host:e});return}(0,o.render)((0,f.repeat)(r,(d,i)=>s(d,i),(d,i)=>{let p=s(d,i),k=m?m(d,i):`row ${p}`;return o.html`
|
|
2
2
|
<skdx-table-row row-id=${p}>
|
|
3
3
|
${e.selectable?o.html`<skdx-table-cell
|
|
4
4
|
><skdx-table-row-select-checkbox
|
|
@@ -12,11 +12,11 @@
|
|
|
12
12
|
label="Details for ${k}"
|
|
13
13
|
></skdx-table-expand-trigger
|
|
14
14
|
></skdx-table-cell>`:""}
|
|
15
|
-
${
|
|
15
|
+
${n.map(S=>o.html`<skdx-table-cell>${c(d,S)}</skdx-table-cell>`)}
|
|
16
16
|
</skdx-table-row>
|
|
17
17
|
${e.expandable?o.html`<skdx-table-expanded-row
|
|
18
18
|
row-id=${p}
|
|
19
|
-
col-span=${
|
|
20
|
-
>${l?l(
|
|
19
|
+
col-span=${a}
|
|
20
|
+
>${l?l(d):""}</skdx-table-expanded-row
|
|
21
21
|
>`:""}
|
|
22
|
-
`}),t,{host:e})}0&&(module.exports={TABLE_ANATOMY_GENERATED,defaultRowId,fillTableAnatomy,renderTableRows,sortRows});
|
|
22
|
+
`}),t,{host:e})}0&&(module.exports={TABLE_ANATOMY_GENERATED,defaultRowId,fillTableAnatomy,filterRows,renderTableRows,sortRows});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type TemplateResult } from 'lit';
|
|
2
2
|
import type { SkdxTable } from './Table.cjs';
|
|
3
|
-
import type { TableSortState } from './types.cjs';
|
|
3
|
+
import type { TableFilterState, TableSortState } from './types.cjs';
|
|
4
4
|
import './TableCaption.cjs';
|
|
5
5
|
import './TableHeader.cjs';
|
|
6
6
|
import './TableBody.cjs';
|
|
@@ -22,6 +22,8 @@ export interface SkdxTableColumn {
|
|
|
22
22
|
sortable?: boolean;
|
|
23
23
|
/** Column resize toggle; root's `resizable` gates activation. @default false */
|
|
24
24
|
resizable?: boolean;
|
|
25
|
+
/** Column filter toggle, overriding the root's `filterable`. @default the root's `filterable` */
|
|
26
|
+
filterable?: boolean;
|
|
25
27
|
}
|
|
26
28
|
/** @internal Marks generated direct children of `<skdx-table>`. */
|
|
27
29
|
export declare const TABLE_ANATOMY_GENERATED = "data-skdx-table-generated";
|
|
@@ -33,6 +35,7 @@ export declare function defaultRowId(row: Record<string, unknown>, index: number
|
|
|
33
35
|
*/
|
|
34
36
|
export declare function sortRows(data: readonly Record<string, unknown>[], sortList: readonly TableSortState[]): Record<string, unknown>[];
|
|
35
37
|
/** @internal Builds the optional caption, header row, and empty body; body rows render separately on `data` change. */
|
|
38
|
+
export declare function filterRows(data: readonly Record<string, unknown>[], filterMap: TableFilterState): Record<string, unknown>[];
|
|
36
39
|
export declare function fillTableAnatomy(root: SkdxTable): void;
|
|
37
40
|
/** @internal Re-renders generated body rows from `root.data`, using `renderCell`; shows `empty` in place of rows when `data` is empty. */
|
|
38
41
|
export declare function renderTableRows(root: SkdxTable): void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type TemplateResult } from 'lit';
|
|
2
2
|
import type { SkdxTable } from './Table.js';
|
|
3
|
-
import type { TableSortState } from './types.js';
|
|
3
|
+
import type { TableFilterState, TableSortState } from './types.js';
|
|
4
4
|
import './TableCaption.js';
|
|
5
5
|
import './TableHeader.js';
|
|
6
6
|
import './TableBody.js';
|
|
@@ -22,6 +22,8 @@ export interface SkdxTableColumn {
|
|
|
22
22
|
sortable?: boolean;
|
|
23
23
|
/** Column resize toggle; root's `resizable` gates activation. @default false */
|
|
24
24
|
resizable?: boolean;
|
|
25
|
+
/** Column filter toggle, overriding the root's `filterable`. @default the root's `filterable` */
|
|
26
|
+
filterable?: boolean;
|
|
25
27
|
}
|
|
26
28
|
/** @internal Marks generated direct children of `<skdx-table>`. */
|
|
27
29
|
export declare const TABLE_ANATOMY_GENERATED = "data-skdx-table-generated";
|
|
@@ -33,6 +35,7 @@ export declare function defaultRowId(row: Record<string, unknown>, index: number
|
|
|
33
35
|
*/
|
|
34
36
|
export declare function sortRows(data: readonly Record<string, unknown>[], sortList: readonly TableSortState[]): Record<string, unknown>[];
|
|
35
37
|
/** @internal Builds the optional caption, header row, and empty body; body rows render separately on `data` change. */
|
|
38
|
+
export declare function filterRows(data: readonly Record<string, unknown>[], filterMap: TableFilterState): Record<string, unknown>[];
|
|
36
39
|
export declare function fillTableAnatomy(root: SkdxTable): void;
|
|
37
40
|
/** @internal Re-renders generated body rows from `root.data`, using `renderCell`; shows `empty` in place of rows when `data` is empty. */
|
|
38
41
|
export declare function renderTableRows(root: SkdxTable): void;
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import{html as
|
|
2
|
-
<skdx-table-row row-id=${
|
|
3
|
-
${e.selectable?
|
|
1
|
+
import{html as i,render as u}from"lit";import{repeat as h}from"lit/directives/repeat.js";import"./TableCaption.js";import"./TableHeader.js";import"./TableBody.js";import"./TableRow.js";import"./TableCell.js";import"./TableHeaderCell.js";import"./TableRowSelectCheckbox.js";import"./TableSelectAllCheckbox.js";import"./TableExpandTrigger.js";import"./TableExpandedRow.js";import"./TableEmpty.js";var p="data-skdx-table-generated";function g(e,l){let a=e[l.key]??"";return String(a)}function y(e,l){return typeof e.id=="string"?e.id:String(l)}function w(e,l){if(typeof e=="number"&&typeof l=="number")return e-l;let a=e??"",n=l??"";return String(a).localeCompare(String(n))}function S(e,l){return l.length===0?[...e]:[...e].sort((a,n)=>{for(let{columnKey:s,direction:o}of l){let t=w(a[s],n[s]);if(t!==0)return o==="asc"?t:-t}return 0})}function T(e,l){let a=Object.entries(l).filter(([,n])=>n!=="");return a.length===0?[...e]:e.filter(n=>a.every(([s,o])=>String(n[s]??"").toLowerCase().includes(o.toLowerCase())))}function N(e){let l=[];if(e.caption){let t=document.createElement("skdx-table-caption");t.setAttribute(p,""),t.textContent=e.caption,l.push(t)}let a=e.columns??[],n=document.createElement("skdx-table-header");n.setAttribute(p,"");let s=document.createElement("skdx-table-row");if(e.selectable){let t=document.createElement("skdx-table-header-cell"),r=document.createElement("skdx-table-select-all-checkbox");r.setAttribute("scope","page"),t.append(r),s.append(t)}if(e.expandable){let t=document.createElement("skdx-table-header-cell");t.setAttribute("aria-hidden","true"),s.append(t)}for(let t of a){let r=document.createElement("skdx-table-header-cell");r.setAttribute("column-key",t.key),e.sortable&&t.sortable&&r.setAttribute("sortable",""),e.resizable&&t.resizable&&r.setAttribute("resizable",""),(t.filterable??e.filterable)&&(r.setAttribute("filterable",""),r.setAttribute("filter-label",`Filter ${typeof t.header=="string"?t.header:t.key}`)),u(t.header??t.key,r,{host:e}),s.append(r)}n.append(s),l.push(n);let o=document.createElement("skdx-table-body");o.setAttribute(p,""),l.push(o),e.replaceChildren(...l),A(e)}function A(e){let l=e.querySelector(`:scope > skdx-table-body[${p}]`);if(!l)return;let a=e.columns??[],n=S(T(e.data??[],e.filterMap),e.sortList),s=a.length+(e.selectable?1:0)+(e.expandable?1:0),o=e.renderCell??g,t=e.renderExpanded,r=e.rowId??y,m=e.getRowLabel,x=e.querySelector(`:scope > skdx-table-header[${p}] skdx-table-select-all-checkbox`);if(x&&(x.rowIds=n.map((c,d)=>r(c,d))),n.length===0){u(e.empty?i`<skdx-table-empty col-span=${s}>${e.empty}</skdx-table-empty>`:"",l,{host:e});return}u(h(n,(c,d)=>r(c,d),(c,d)=>{let b=r(c,d),k=m?m(c,d):`row ${b}`;return i`
|
|
2
|
+
<skdx-table-row row-id=${b}>
|
|
3
|
+
${e.selectable?i`<skdx-table-cell
|
|
4
4
|
><skdx-table-row-select-checkbox
|
|
5
|
-
row-id=${
|
|
5
|
+
row-id=${b}
|
|
6
6
|
aria-label="Select ${k}"
|
|
7
7
|
></skdx-table-row-select-checkbox
|
|
8
8
|
></skdx-table-cell>`:""}
|
|
9
|
-
${e.expandable?
|
|
9
|
+
${e.expandable?i`<skdx-table-cell
|
|
10
10
|
><skdx-table-expand-trigger
|
|
11
|
-
row-id=${
|
|
11
|
+
row-id=${b}
|
|
12
12
|
label="Details for ${k}"
|
|
13
13
|
></skdx-table-expand-trigger
|
|
14
14
|
></skdx-table-cell>`:""}
|
|
15
|
-
${
|
|
15
|
+
${a.map(f=>i`<skdx-table-cell>${o(c,f)}</skdx-table-cell>`)}
|
|
16
16
|
</skdx-table-row>
|
|
17
|
-
${e.expandable?
|
|
18
|
-
row-id=${
|
|
17
|
+
${e.expandable?i`<skdx-table-expanded-row
|
|
18
|
+
row-id=${b}
|
|
19
19
|
col-span=${s}
|
|
20
|
-
>${t?t(
|
|
20
|
+
>${t?t(c):""}</skdx-table-expanded-row
|
|
21
21
|
>`:""}
|
|
22
|
-
`}),l,{host:e})}export{p as TABLE_ANATOMY_GENERATED,y as defaultRowId,
|
|
22
|
+
`}),l,{host:e})}export{p as TABLE_ANATOMY_GENERATED,y as defaultRowId,N as fillTableAnatomy,T as filterRows,A as renderTableRows,S as sortRows};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";var d=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var b=Object.prototype.hasOwnProperty;var g=(r,t)=>{for(var e in t)d(r,e,{get:t[e],enumerable:!0})},E=(r,t,e,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of y(t))!b.call(r,o)&&o!==e&&d(r,o,{get:()=>t[o],enumerable:!(i=h(t,o))||i.enumerable});return r};var R=r=>E(d({},"__esModule",{value:!0}),r),c=(r,t,e,i)=>{for(var o=i>1?void 0:i?h(t,e):t,p=r.length-1,u;p>=0;p--)(u=r[p])&&(o=(i?u(t,e,o):u(o))||o);return i&&o&&d(t,e,o),o};var k={};g(k,{SkdxTableColumnHeaderFilterInput:()=>s});module.exports=R(k);var l=require("lit"),v=require("lit/decorators.js"),f=require("../internal/define.cjs"),m=require("../internal/part.cjs"),a=require("../internal/styles.cjs"),n=require("./column-context.cjs");var s=class extends l.LitElement{constructor(){super(...arguments);this.root=null;this.onRootUpdate=()=>this.requestUpdate();this.onInput=e=>{let i=this.resolvedKey;i!==void 0&&this.root?.setColumnFilter(i,e.target.value)}}connectedCallback(){super.connectedCallback(),this.root=(0,n.findTableRoot)(this),this.root?.addEventListener(n.TABLE_INTERNAL_UPDATE,this.onRootUpdate)}disconnectedCallback(){this.root?.removeEventListener(n.TABLE_INTERNAL_UPDATE,this.onRootUpdate),super.disconnectedCallback()}get resolvedKey(){if(this.columnKey!==void 0)return this.columnKey;let e=(0,n.findHeaderCell)(this);return e?.isFilterable?e.resizeColumnKey:void 0}get value(){let e=this.resolvedKey;return e===void 0?"":this.root?.filterMap[e]??""}updated(){(0,m.reflectHostState)(this,{"data-filtered":this.value===""?null:""})}render(){let e=this.resolvedKey;if(e===void 0)return l.nothing;let i=this.value,o=this.getAttribute("aria-label")??(0,n.findHeaderCell)(this)?.filterLabel??`Filter ${e}`;return l.html`
|
|
2
|
+
<input
|
|
3
|
+
type="search"
|
|
4
|
+
part="filter-input"
|
|
5
|
+
data-skdx-table-filter-input
|
|
6
|
+
aria-label=${o}
|
|
7
|
+
data-filtered=${i===""?l.nothing:""}
|
|
8
|
+
.value=${i}
|
|
9
|
+
@input=${this.onInput}
|
|
10
|
+
/>
|
|
11
|
+
`}};s.shadowRootOptions=a.delegatesFocusShadowRootOptions,s.styles=[a.resetNativeControl,l.css`
|
|
12
|
+
:host {
|
|
13
|
+
display: contents;
|
|
14
|
+
}
|
|
15
|
+
`,a.controlBoxOnHost],c([(0,v.property)({type:String,attribute:"column-key",converter:n.optionalStringAttribute})],s.prototype,"columnKey",2),s=c([(0,f.customElement)("skdx-table-column-header-filter-input","table","column-header-filter-input")],s);0&&(module.exports={SkdxTableColumnHeaderFilterInput});
|