@agnos-ui/svelte-bootstrap 0.4.4 → 0.5.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/README.md +2 -2
- package/components/accordion/Accordion.svelte +20 -18
- package/components/accordion/Accordion.svelte.d.ts +8 -23
- package/components/accordion/Item.svelte +40 -44
- package/components/accordion/Item.svelte.d.ts +5 -20
- package/components/accordion/ItemDefaultStructure.svelte +17 -27
- package/components/accordion/ItemDefaultStructure.svelte.d.ts +3 -17
- package/components/accordion/accordion.d.ts +11 -6
- package/components/accordion/accordion.gen.d.ts +37 -9
- package/components/accordion/accordion.js +10 -0
- package/components/alert/Alert.svelte +36 -40
- package/components/alert/Alert.svelte.d.ts +5 -21
- package/components/alert/AlertDefaultStructure.svelte +8 -12
- package/components/alert/AlertDefaultStructure.svelte.d.ts +3 -17
- package/components/alert/alert.gen.d.ts +21 -2
- package/components/alert/index.d.ts +1 -1
- package/components/alert/index.js +1 -1
- package/components/collapse/Collapse.svelte +33 -0
- package/components/collapse/Collapse.svelte.d.ts +8 -0
- package/components/collapse/collapse.gen.d.ts +146 -0
- package/components/collapse/collapse.gen.js +14 -0
- package/components/collapse/index.d.ts +3 -0
- package/components/collapse/index.js +3 -0
- package/components/modal/Modal.svelte +45 -47
- package/components/modal/Modal.svelte.d.ts +16 -14
- package/components/modal/ModalDefaultHeader.svelte +10 -17
- package/components/modal/ModalDefaultHeader.svelte.d.ts +15 -12
- package/components/modal/ModalDefaultStructure.svelte +10 -36
- package/components/modal/ModalDefaultStructure.svelte.d.ts +15 -12
- package/components/modal/index.d.ts +1 -1
- package/components/modal/index.js +1 -1
- package/components/modal/modal.gen.d.ts +35 -18
- package/components/modal/modalService.d.ts +19 -1
- package/components/modal/modalService.js +21 -2
- package/components/pagination/Pagination.svelte +39 -47
- package/components/pagination/Pagination.svelte.d.ts +3 -21
- package/components/pagination/PaginationDefaultPages.svelte +13 -43
- package/components/pagination/PaginationDefaultPages.svelte.d.ts +3 -17
- package/components/pagination/PaginationDefaultStructure.svelte +18 -89
- package/components/pagination/PaginationDefaultStructure.svelte.d.ts +3 -17
- package/components/pagination/index.d.ts +1 -1
- package/components/pagination/index.js +1 -1
- package/components/pagination/pagination.gen.d.ts +49 -29
- package/components/progressbar/Progressbar.svelte +28 -31
- package/components/progressbar/Progressbar.svelte.d.ts +3 -21
- package/components/progressbar/ProgressbarDefaultStructure.svelte +6 -11
- package/components/progressbar/ProgressbarDefaultStructure.svelte.d.ts +3 -17
- package/components/progressbar/index.d.ts +1 -1
- package/components/progressbar/index.js +1 -1
- package/components/progressbar/progressbar.gen.d.ts +21 -4
- package/components/rating/Rating.svelte +33 -27
- package/components/rating/Rating.svelte.d.ts +3 -18
- package/components/rating/index.d.ts +1 -1
- package/components/rating/index.js +1 -1
- package/components/rating/rating.gen.d.ts +25 -17
- package/components/select/Select.svelte +57 -81
- package/components/select/Select.svelte.d.ts +16 -14
- package/components/select/index.d.ts +1 -1
- package/components/select/index.js +1 -1
- package/components/select/select.gen.d.ts +41 -25
- package/components/slider/Slider.svelte +39 -40
- package/components/slider/Slider.svelte.d.ts +3 -21
- package/components/slider/SliderDefaultHandle.svelte +7 -4
- package/components/slider/SliderDefaultHandle.svelte.d.ts +3 -17
- package/components/slider/SliderDefaultStructure.svelte +21 -75
- package/components/slider/SliderDefaultStructure.svelte.d.ts +3 -17
- package/components/slider/index.d.ts +1 -1
- package/components/slider/index.js +1 -1
- package/components/slider/slider.gen.d.ts +54 -33
- package/components/toast/Toast.svelte +43 -40
- package/components/toast/Toast.svelte.d.ts +5 -21
- package/components/toast/ToastDefaultStructure.svelte +13 -23
- package/components/toast/ToastDefaultStructure.svelte.d.ts +3 -17
- package/components/toast/index.d.ts +1 -1
- package/components/toast/index.js +1 -1
- package/components/toast/toast.gen.d.ts +22 -2
- package/config.d.ts +1 -12
- package/config.gen.d.ts +5 -0
- package/generated/index.d.ts +1 -1
- package/generated/index.js +1 -1
- package/generated/utils/widget.svelte.d.ts +1 -0
- package/generated/utils/widget.svelte.js +1 -0
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/package.json +8 -7
- package/components/alert/alert.d.ts +0 -5
- package/components/alert/alert.js +0 -1
- package/components/modal/modal.d.ts +0 -5
- package/components/modal/modal.js +0 -1
- package/components/pagination/pagination.d.ts +0 -5
- package/components/pagination/pagination.js +0 -1
- package/components/progressbar/progressbar.d.ts +0 -5
- package/components/progressbar/progressbar.js +0 -1
- package/components/rating/rating.d.ts +0 -5
- package/components/rating/rating.js +0 -1
- package/components/select/select.d.ts +0 -5
- package/components/select/select.js +0 -1
- package/components/slider/slider.d.ts +0 -5
- package/components/slider/slider.js +0 -1
- package/components/toast/toast.d.ts +0 -5
- package/components/toast/toast.js +0 -1
- package/generated/utils/widget.d.ts +0 -1
- package/generated/utils/widget.js +0 -1
|
@@ -1,96 +1,72 @@
|
|
|
1
|
-
<script
|
|
1
|
+
<script lang="ts" generics="Item">
|
|
2
2
|
import {ssrAttributes as __AgnosUISveltePreprocess__ssrAttributes, classDirective as __AgnosUISveltePreprocess__classDirective} from '@agnos-ui/svelte-headless/utils/directive';
|
|
3
3
|
import {BROWSER as __AgnosUISveltePreprocess__BROWSER} from 'esm-env';
|
|
4
|
-
import { Slot } from "@agnos-ui/svelte-headless/slot";
|
|
5
|
-
import { callWidgetFactory } from "../../config";
|
|
6
|
-
import { createSelect } from "./select";
|
|
7
|
-
</script>
|
|
8
4
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
5
|
+
import {Slot} from '@agnos-ui/svelte-headless/slot';
|
|
6
|
+
import {callWidgetFactory} from '../../config';
|
|
7
|
+
import type {SelectApi, SelectItemContext, SelectProps, SelectWidget} from './select.gen';
|
|
8
|
+
import {createSelect} from './select.gen';
|
|
9
|
+
|
|
10
|
+
let {open = $bindable(false), filterText = $bindable(), selected = $bindable(), ...props}: Partial<SelectProps<Item>> = $props();
|
|
11
|
+
|
|
12
|
+
const widget = callWidgetFactory<SelectWidget<Item>>({
|
|
13
|
+
factory: createSelect,
|
|
14
|
+
widgetName: 'select',
|
|
15
|
+
get props() {
|
|
16
|
+
return {...props, open, filterText, selected};
|
|
17
|
+
},
|
|
18
|
+
enablePatchChanged: true,
|
|
19
|
+
defaultConfig: {badgeLabel, itemLabel},
|
|
20
|
+
events: {
|
|
21
|
+
onOpenChange: function (isOpen: boolean): void {
|
|
22
|
+
open = isOpen;
|
|
23
|
+
},
|
|
24
|
+
onSelectedChange: (newSelection) => {
|
|
25
|
+
selected = newSelection;
|
|
26
|
+
},
|
|
27
|
+
onFilterTextChange: (value) => {
|
|
28
|
+
filterText = value;
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
});
|
|
32
|
+
export const api: SelectApi<Item> = widget.api;
|
|
33
|
+
const {
|
|
34
|
+
state,
|
|
35
|
+
directives: {
|
|
36
|
+
floatingDirective,
|
|
37
|
+
hasFocusDirective,
|
|
38
|
+
referenceDirective,
|
|
39
|
+
inputContainerDirective,
|
|
40
|
+
badgeAttributesDirective,
|
|
41
|
+
menuAttributesDirective,
|
|
42
|
+
itemAttributesDirective,
|
|
43
|
+
inputDirective,
|
|
44
|
+
},
|
|
45
|
+
} = widget;
|
|
45
46
|
</script>
|
|
46
47
|
|
|
47
|
-
|
|
48
|
+
{#snippet badgeLabel({itemContext}: SelectItemContext<Item>)}
|
|
49
|
+
{itemContext.item}
|
|
50
|
+
{/snippet}
|
|
51
|
+
{#snippet itemLabel({itemContext}: SelectItemContext<Item>)}
|
|
52
|
+
{itemContext.item}
|
|
53
|
+
{/snippet}
|
|
54
|
+
|
|
55
|
+
<div use:referenceDirective use:__AgnosUISveltePreprocess__classDirective={"au-select dropdown border border-1 p-1 mb-3 d-block "+(state.className)} {...__AgnosUISveltePreprocess__BROWSER ? {} : __AgnosUISveltePreprocess__ssrAttributes(referenceDirective, [__AgnosUISveltePreprocess__classDirective, "au-select dropdown border border-1 p-1 mb-3 d-block "+(state.className)])}>
|
|
48
56
|
<div use:hasFocusDirective use:inputContainerDirective use:__AgnosUISveltePreprocess__classDirective={"d-flex align-items-center flex-wrap gap-1"} {...__AgnosUISveltePreprocess__BROWSER ? {} : __AgnosUISveltePreprocess__ssrAttributes(hasFocusDirective, inputContainerDirective, [__AgnosUISveltePreprocess__classDirective, "d-flex align-items-center flex-wrap gap-1"])}>
|
|
49
|
-
{#each
|
|
57
|
+
{#each state.selectedContexts as itemContext (itemContext.id)}
|
|
50
58
|
<div use:badgeAttributesDirective={itemContext} {...__AgnosUISveltePreprocess__BROWSER ? {} : __AgnosUISveltePreprocess__ssrAttributes([badgeAttributesDirective, itemContext])}>
|
|
51
|
-
<Slot
|
|
52
|
-
<svelte:fragment slot="slot" let:props><slot name="badgeLabel" {...props} /></svelte:fragment>
|
|
53
|
-
<svelte:component this={component} {...props}>
|
|
54
|
-
<svelte:fragment slot="badgeLabel" let:itemContext let:state let:widget
|
|
55
|
-
><slot name="badgeLabel" {itemContext} {state} {widget} /></svelte:fragment
|
|
56
|
-
>
|
|
57
|
-
<svelte:fragment slot="itemLabel" let:itemContext let:state let:widget
|
|
58
|
-
><slot name="itemLabel" {itemContext} {state} {widget} /></svelte:fragment
|
|
59
|
-
>
|
|
60
|
-
</svelte:component>
|
|
61
|
-
</Slot>
|
|
59
|
+
<Slot content={state.badgeLabel} props={{state, directives: widget.directives, api: widget.api, itemContext}} />
|
|
62
60
|
</div>
|
|
63
61
|
{/each}
|
|
64
|
-
<input
|
|
65
|
-
id={$id$}
|
|
66
|
-
aria-label={$ariaLabel$}
|
|
67
|
-
type="text"
|
|
68
|
-
class="au-select-input flex-grow-1 border-0"
|
|
69
|
-
value={$filterText$}
|
|
70
|
-
aria-autocomplete="list"
|
|
71
|
-
autoCorrect="off"
|
|
72
|
-
autoCapitalize="none"
|
|
73
|
-
autoComplete="off"
|
|
74
|
-
on:input={onInput}
|
|
75
|
-
on:keydown={onInputKeydown}
|
|
76
|
-
/>
|
|
62
|
+
<input value={state.filterText} use:inputDirective {...__AgnosUISveltePreprocess__BROWSER ? {} : __AgnosUISveltePreprocess__ssrAttributes(inputDirective)} />
|
|
77
63
|
</div>
|
|
78
|
-
{#if
|
|
64
|
+
{#if state.open && state.visibleItems.length > 0}
|
|
79
65
|
<ul use:hasFocusDirective use:floatingDirective use:menuAttributesDirective use:__AgnosUISveltePreprocess__classDirective={"dropdown-menu show"} {...__AgnosUISveltePreprocess__BROWSER ? {} : __AgnosUISveltePreprocess__ssrAttributes(hasFocusDirective, floatingDirective, menuAttributesDirective, [__AgnosUISveltePreprocess__classDirective, "dropdown-menu show"])}>
|
|
80
|
-
{#each
|
|
81
|
-
{@const isHighlighted = itemContext ===
|
|
66
|
+
{#each state.visibleItems as itemContext (itemContext.id)}
|
|
67
|
+
{@const isHighlighted = itemContext === state.highlighted}
|
|
82
68
|
<li use:__AgnosUISveltePreprocess__classDirective={"dropdown-item position-relative"} class:text-bg-primary={isHighlighted} use:itemAttributesDirective={itemContext} {...__AgnosUISveltePreprocess__BROWSER ? {} : __AgnosUISveltePreprocess__ssrAttributes([itemAttributesDirective, itemContext], [__AgnosUISveltePreprocess__classDirective, "dropdown-item position-relative"])}>
|
|
83
|
-
<Slot
|
|
84
|
-
<svelte:fragment slot="slot" let:props><slot name="itemLabel" {...props} /></svelte:fragment>
|
|
85
|
-
<svelte:component this={component} {...props}>
|
|
86
|
-
<svelte:fragment slot="badgeLabel" let:itemContext let:state let:widget
|
|
87
|
-
><slot name="badgeLabel" {itemContext} {state} {widget} /></svelte:fragment
|
|
88
|
-
>
|
|
89
|
-
<svelte:fragment slot="itemLabel" let:itemContext let:state let:widget
|
|
90
|
-
><slot name="itemLabel" {itemContext} {state} {widget} /></svelte:fragment
|
|
91
|
-
>
|
|
92
|
-
</svelte:component>
|
|
93
|
-
</Slot>
|
|
69
|
+
<Slot content={state.itemLabel} props={{state, directives: widget.directives, api: widget.api, itemContext}} />
|
|
94
70
|
</li>
|
|
95
71
|
{/each}
|
|
96
72
|
</ul>
|
|
@@ -1,18 +1,20 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type { SelectApi, SelectProps, SelectSlots } from './select';
|
|
1
|
+
import type { SelectApi, SelectProps } from './select.gen';
|
|
3
2
|
declare class __sveltets_Render<Item> {
|
|
4
|
-
props():
|
|
5
|
-
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
|
|
3
|
+
props(): Partial<SelectProps<Item>>;
|
|
4
|
+
events(): {};
|
|
5
|
+
slots(): {};
|
|
6
|
+
bindings(): "open" | "selected" | "filterText";
|
|
7
|
+
exports(): {
|
|
8
|
+
api: SelectApi<Item>;
|
|
9
9
|
};
|
|
10
|
-
slots(): SelectSlots<Item>;
|
|
11
10
|
}
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
11
|
+
interface $$IsomorphicComponent {
|
|
12
|
+
new <Item>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<Item>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<Item>['props']>, ReturnType<__sveltets_Render<Item>['events']>, ReturnType<__sveltets_Render<Item>['slots']>> & {
|
|
13
|
+
$$bindings?: ReturnType<__sveltets_Render<Item>['bindings']>;
|
|
14
|
+
} & ReturnType<__sveltets_Render<Item>['exports']>;
|
|
15
|
+
<Item>(internal: unknown, props: ReturnType<__sveltets_Render<Item>['props']> & {}): ReturnType<__sveltets_Render<Item>['exports']>;
|
|
16
|
+
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
17
17
|
}
|
|
18
|
-
|
|
18
|
+
declare const Select: $$IsomorphicComponent;
|
|
19
|
+
type Select<Item> = InstanceType<typeof Select<Item>>;
|
|
20
|
+
export default Select;
|
|
@@ -9,15 +9,28 @@ import type { FloatingUI } from '@agnos-ui/svelte-headless/services/floatingUI';
|
|
|
9
9
|
declare const export_getSelectDefaultConfig: () => SelectProps<any>;
|
|
10
10
|
export { export_getSelectDefaultConfig as getSelectDefaultConfig };
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
12
|
+
* Interface for the slot context of the pagination widget
|
|
13
|
+
* @template Item - The type of the items in the Select component.
|
|
13
14
|
*/
|
|
14
|
-
export
|
|
15
|
-
|
|
15
|
+
export interface SelectContext<Item> extends WidgetSlotContext<SelectWidget<Item>> {
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Represents the context for a select item, extending the base `SelectContext` with additional
|
|
19
|
+
* contextual data specific to an item.
|
|
20
|
+
*
|
|
21
|
+
* @template Item - The type of the item within the select context.
|
|
22
|
+
*/
|
|
23
|
+
export interface SelectItemContext<Item> extends SelectContext<Item> {
|
|
16
24
|
/**
|
|
17
25
|
* Contextual data related to an item
|
|
18
26
|
*/
|
|
19
27
|
itemContext: ItemContext<Item>;
|
|
20
|
-
}
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Represents the state of a Select component.
|
|
31
|
+
*
|
|
32
|
+
* @template Item - The type of the items in the select component.
|
|
33
|
+
*/
|
|
21
34
|
export interface SelectState<Item> {
|
|
22
35
|
/**
|
|
23
36
|
* List of item contexts, to be displayed in the menu
|
|
@@ -121,6 +134,11 @@ export interface SelectState<Item> {
|
|
|
121
134
|
*/
|
|
122
135
|
itemLabel: SlotContent<SelectItemContext<Item>>;
|
|
123
136
|
}
|
|
137
|
+
/**
|
|
138
|
+
* Represents the properties for the Select component.
|
|
139
|
+
*
|
|
140
|
+
* @template Item - The type of the items in the select component.
|
|
141
|
+
*/
|
|
124
142
|
export interface SelectProps<Item> {
|
|
125
143
|
/**
|
|
126
144
|
* List of available items for the dropdown
|
|
@@ -273,7 +291,12 @@ export interface SelectProps<Item> {
|
|
|
273
291
|
*/
|
|
274
292
|
itemLabel: SlotContent<SelectItemContext<Item>>;
|
|
275
293
|
}
|
|
276
|
-
|
|
294
|
+
/**
|
|
295
|
+
* Represents a Select widget component.
|
|
296
|
+
*
|
|
297
|
+
* @template Item - The type of the items that the select widget will handle.
|
|
298
|
+
*/
|
|
299
|
+
export type SelectWidget<Item> = Widget<SelectProps<Item>, SelectState<Item>, SelectApi<Item>, SelectDirectives<Item>>;
|
|
277
300
|
/**
|
|
278
301
|
* Creates a new select widget instance.
|
|
279
302
|
* @param config - config of the modal, either as a store or as an object containing values or stores.
|
|
@@ -281,6 +304,9 @@ export type SelectWidget<Item> = Widget<SelectProps<Item>, SelectState<Item>, Se
|
|
|
281
304
|
*/
|
|
282
305
|
declare const export_createSelect: <Item>(config?: PropsConfig<SelectProps<Item>>) => SelectWidget<Item>;
|
|
283
306
|
export { export_createSelect as createSelect };
|
|
307
|
+
/**
|
|
308
|
+
* Item representation built from the items provided in parameters
|
|
309
|
+
*/
|
|
284
310
|
export interface ItemContext<T> {
|
|
285
311
|
/**
|
|
286
312
|
* Original item given in the parameters
|
|
@@ -295,6 +321,9 @@ export interface ItemContext<T> {
|
|
|
295
321
|
*/
|
|
296
322
|
selected: boolean;
|
|
297
323
|
}
|
|
324
|
+
/**
|
|
325
|
+
* Interface representing the API for a Select component.
|
|
326
|
+
*/
|
|
298
327
|
export interface SelectApi<Item> {
|
|
299
328
|
/**
|
|
300
329
|
* Clear all the selected items
|
|
@@ -357,6 +386,9 @@ export interface SelectApi<Item> {
|
|
|
357
386
|
*/
|
|
358
387
|
toggle(isOpen?: boolean): void;
|
|
359
388
|
}
|
|
389
|
+
/**
|
|
390
|
+
* Interface representing the directives used in the Select component.
|
|
391
|
+
*/
|
|
360
392
|
export interface SelectDirectives<Item> {
|
|
361
393
|
/**
|
|
362
394
|
* Directive to be used in the input group and the menu containers
|
|
@@ -386,28 +418,12 @@ export interface SelectDirectives<Item> {
|
|
|
386
418
|
* A directive that applies all the necessary attributes to the dropdown item
|
|
387
419
|
*/
|
|
388
420
|
itemAttributesDirective: Directive<ItemContext<Item>>;
|
|
389
|
-
}
|
|
390
|
-
export interface SelectActions<Item> {
|
|
391
421
|
/**
|
|
392
|
-
*
|
|
422
|
+
* A directive to be applied to the input
|
|
393
423
|
*/
|
|
394
|
-
|
|
395
|
-
target: any;
|
|
396
|
-
}) => void;
|
|
424
|
+
inputDirective: Directive;
|
|
397
425
|
/**
|
|
398
|
-
*
|
|
399
|
-
*/
|
|
400
|
-
onRemoveBadgeClick: (event: MouseEvent, item: Item) => void;
|
|
401
|
-
/**
|
|
402
|
-
* Method to be plugged to on an keydown event of the main input, in order to control the keyboard interactions with the highlighted item.
|
|
403
|
-
* It manages arrow keys to move the highlighted item, or enter to toggle the item.
|
|
404
|
-
*/
|
|
405
|
-
onInputKeydown: (event: KeyboardEvent) => void;
|
|
406
|
-
/**
|
|
407
|
-
* Method to be plugged to on an keydown event of a badge container, in order to manage main actions on badges.
|
|
408
|
-
*
|
|
409
|
-
* @param event - keyboard event
|
|
410
|
-
* @param item - corresponding item
|
|
426
|
+
* A directive to be applied to a button that closes a badge
|
|
411
427
|
*/
|
|
412
|
-
|
|
428
|
+
badgeCloseButtonDirective: Directive<ItemContext<Item>>;
|
|
413
429
|
}
|
|
@@ -1,48 +1,47 @@
|
|
|
1
|
-
<script
|
|
1
|
+
<script lang="ts">
|
|
2
2
|
import {ssrAttributes as __AgnosUISveltePreprocess__ssrAttributes} from '@agnos-ui/svelte-headless/utils/directive';
|
|
3
3
|
import {BROWSER as __AgnosUISveltePreprocess__BROWSER} from 'esm-env';
|
|
4
|
-
import { createSlider } from "./slider";
|
|
5
|
-
import { Slot } from "@agnos-ui/svelte-headless/slot";
|
|
6
|
-
import { callWidgetFactory } from "../../config";
|
|
7
|
-
import SliderDefaultStructure from "./SliderDefaultStructure.svelte";
|
|
8
|
-
import SliderDefaultHandle from "./SliderDefaultHandle.svelte";
|
|
9
|
-
const defaultConfig = {
|
|
10
|
-
structure: SliderDefaultStructure,
|
|
11
|
-
handle: SliderDefaultHandle
|
|
12
|
-
};
|
|
13
|
-
</script>
|
|
14
4
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
5
|
+
import type {SliderContext, SliderProps, SliderSlotHandleContext, SliderSlotLabelContext} from './slider.gen';
|
|
6
|
+
import {createSlider} from './slider.gen';
|
|
7
|
+
import {Slot} from '@agnos-ui/svelte-headless/slot';
|
|
8
|
+
import {callWidgetFactory} from '../../config';
|
|
9
|
+
import SliderDefaultStructure from './SliderDefaultStructure.svelte';
|
|
10
|
+
import SliderDefaultHandle from './SliderDefaultHandle.svelte';
|
|
11
|
+
|
|
12
|
+
let {values = $bindable(), ...props}: Partial<SliderProps> = $props();
|
|
13
|
+
|
|
14
|
+
const widget = callWidgetFactory({
|
|
15
|
+
factory: createSlider,
|
|
16
|
+
widgetName: 'slider',
|
|
17
|
+
get props() {
|
|
18
|
+
return {...props, values};
|
|
19
|
+
},
|
|
20
|
+
enablePatchChanged: true,
|
|
21
|
+
defaultConfig: {structure, handle, label},
|
|
22
|
+
events: {
|
|
23
|
+
onValuesChange: function (newValues: number[]): void {
|
|
24
|
+
values = newValues;
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
const {
|
|
29
|
+
directives: {sliderDirective},
|
|
30
|
+
state,
|
|
31
|
+
} = widget;
|
|
36
32
|
</script>
|
|
37
33
|
|
|
34
|
+
{#snippet structure(props: SliderContext)}
|
|
35
|
+
<SliderDefaultStructure {...props} />
|
|
36
|
+
{/snippet}
|
|
37
|
+
{#snippet handle(props: SliderSlotHandleContext)}
|
|
38
|
+
<SliderDefaultHandle {...props} />
|
|
39
|
+
{/snippet}
|
|
40
|
+
{#snippet label({value}: SliderSlotLabelContext)}
|
|
41
|
+
{value}
|
|
42
|
+
{/snippet}
|
|
43
|
+
|
|
38
44
|
<!-- on:blur={onTouched} ?? -->
|
|
39
45
|
<div use:sliderDirective {...__AgnosUISveltePreprocess__BROWSER ? {} : __AgnosUISveltePreprocess__ssrAttributes(sliderDirective)}>
|
|
40
|
-
<Slot
|
|
41
|
-
<svelte:fragment slot="slot" let:props><slot name="structure" {...props} /></svelte:fragment>
|
|
42
|
-
<svelte:component this={component} {...props}>
|
|
43
|
-
<svelte:fragment slot="handle" let:item let:state let:widget><slot name="handle" {item} {state} {widget} /></svelte:fragment>
|
|
44
|
-
<svelte:fragment slot="label" let:state let:value let:widget><slot name="label" {state} {value} {widget} /></svelte:fragment>
|
|
45
|
-
<svelte:fragment slot="structure" let:state let:widget><slot name="structure" {state} {widget} /></svelte:fragment>
|
|
46
|
-
</svelte:component>
|
|
47
|
-
</Slot>
|
|
46
|
+
<Slot content={state.structure} props={widget} />
|
|
48
47
|
</div>
|
|
@@ -1,21 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
props: {
|
|
5
|
-
api?: SliderApi;
|
|
6
|
-
} & Partial<SliderProps>;
|
|
7
|
-
events: {
|
|
8
|
-
[evt: string]: CustomEvent<any>;
|
|
9
|
-
};
|
|
10
|
-
slots: SliderSlots;
|
|
11
|
-
exports?: {} | undefined;
|
|
12
|
-
bindings?: string | undefined;
|
|
13
|
-
};
|
|
14
|
-
type SliderProps_ = typeof __propDef.props;
|
|
15
|
-
export { SliderProps_ as SliderProps };
|
|
16
|
-
export type SliderEvents = typeof __propDef.events;
|
|
17
|
-
type SliderSlots_ = typeof __propDef.slots;
|
|
18
|
-
export { SliderSlots_ as SliderSlots };
|
|
19
|
-
export default class Slider extends SvelteComponent<SliderProps_, SliderEvents, SliderSlots_> {
|
|
20
|
-
get api(): SliderApi;
|
|
21
|
-
}
|
|
1
|
+
import type { SliderProps } from './slider.gen';
|
|
2
|
+
declare const Slider: import("svelte").Component<Partial<SliderProps>, {}, "values">;
|
|
3
|
+
export default Slider;
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
<script>
|
|
1
|
+
<script lang="ts">
|
|
2
2
|
import {ssrAttributes as __AgnosUISveltePreprocess__ssrAttributes} from '@agnos-ui/svelte-headless/utils/directive';
|
|
3
3
|
import {BROWSER as __AgnosUISveltePreprocess__BROWSER} from 'esm-env';
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
|
|
5
|
+
import type {SliderSlotHandleContext} from './slider.gen';
|
|
6
|
+
|
|
7
|
+
let {item, directives}: SliderSlotHandleContext = $props();
|
|
6
8
|
</script>
|
|
7
9
|
|
|
8
|
-
|
|
10
|
+
<!-- svelte-ignore a11y_consider_explicit_label -->
|
|
11
|
+
<button use:directives.handleDirective={{item}} {...__AgnosUISveltePreprocess__BROWSER ? {} : __AgnosUISveltePreprocess__ssrAttributes([directives.handleDirective, {item}])}> </button>
|
|
@@ -1,17 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
props: any;
|
|
5
|
-
events: {
|
|
6
|
-
[evt: string]: CustomEvent<any>;
|
|
7
|
-
};
|
|
8
|
-
slots: SliderSlots;
|
|
9
|
-
exports?: {} | undefined;
|
|
10
|
-
bindings?: string | undefined;
|
|
11
|
-
};
|
|
12
|
-
export type SliderDefaultHandleProps = typeof __propDef.props;
|
|
13
|
-
export type SliderDefaultHandleEvents = typeof __propDef.events;
|
|
14
|
-
export type SliderDefaultHandleSlots = typeof __propDef.slots;
|
|
15
|
-
export default class SliderDefaultHandle extends SvelteComponent<SliderDefaultHandleProps, SliderDefaultHandleEvents, SliderDefaultHandleSlots> {
|
|
16
|
-
}
|
|
17
|
-
export {};
|
|
1
|
+
import type { SliderSlotHandleContext } from './slider.gen';
|
|
2
|
+
declare const SliderDefaultHandle: import("svelte").Component<SliderSlotHandleContext, {}, "">;
|
|
3
|
+
export default SliderDefaultHandle;
|
|
@@ -1,96 +1,42 @@
|
|
|
1
|
-
<script>
|
|
1
|
+
<script lang="ts">
|
|
2
2
|
import {ssrAttributes as __AgnosUISveltePreprocess__ssrAttributes} from '@agnos-ui/svelte-headless/utils/directive';
|
|
3
3
|
import {BROWSER as __AgnosUISveltePreprocess__BROWSER} from 'esm-env';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
|
|
5
|
+
import type {SliderContext} from './slider.gen';
|
|
6
|
+
import {Slot} from '@agnos-ui/svelte-headless/slot';
|
|
7
|
+
|
|
8
|
+
let widget: SliderContext = $props();
|
|
9
|
+
let {state, directives} = widget;
|
|
8
10
|
</script>
|
|
9
11
|
|
|
10
12
|
{#each state.progressDisplayOptions as option}
|
|
11
|
-
<div use:
|
|
13
|
+
<div use:directives.progressDisplayDirective={{option}} {...__AgnosUISveltePreprocess__BROWSER ? {} : __AgnosUISveltePreprocess__ssrAttributes([directives.progressDisplayDirective, {option}])}></div>
|
|
12
14
|
{/each}
|
|
13
|
-
<div use:
|
|
15
|
+
<div use:directives.clickableAreaDirective {...__AgnosUISveltePreprocess__BROWSER ? {} : __AgnosUISveltePreprocess__ssrAttributes(directives.clickableAreaDirective)}></div>
|
|
14
16
|
{#if state.showMinMaxLabels}
|
|
15
|
-
<div use:
|
|
16
|
-
<Slot
|
|
17
|
-
<svelte:fragment slot="slot" let:props><slot name="label" {...props} /></svelte:fragment>
|
|
18
|
-
<svelte:component this={component} {...props}>
|
|
19
|
-
<svelte:fragment slot="handle" let:item let:state let:widget><slot name="handle" {item} {state} {widget} /></svelte:fragment>
|
|
20
|
-
<svelte:fragment slot="label" let:state let:value let:widget><slot name="label" {state} {value} {widget} /></svelte:fragment>
|
|
21
|
-
<svelte:fragment slot="structure" let:state let:widget><slot name="structure" {state} {widget} /></svelte:fragment>
|
|
22
|
-
</svelte:component>
|
|
23
|
-
</Slot>
|
|
17
|
+
<div use:directives.minLabelDirective {...__AgnosUISveltePreprocess__BROWSER ? {} : __AgnosUISveltePreprocess__ssrAttributes(directives.minLabelDirective)}>
|
|
18
|
+
<Slot content={state.label} props={{value: state.min, ...widget}} />
|
|
24
19
|
</div>
|
|
25
|
-
<div use:
|
|
26
|
-
<Slot
|
|
27
|
-
<svelte:fragment slot="slot" let:props><slot name="label" {...props} /></svelte:fragment>
|
|
28
|
-
<svelte:component this={component} {...props}>
|
|
29
|
-
<svelte:fragment slot="handle" let:item let:state let:widget><slot name="handle" {item} {state} {widget} /></svelte:fragment>
|
|
30
|
-
<svelte:fragment slot="label" let:state let:value let:widget><slot name="label" {state} {value} {widget} /></svelte:fragment>
|
|
31
|
-
<svelte:fragment slot="structure" let:state let:widget><slot name="structure" {state} {widget} /></svelte:fragment>
|
|
32
|
-
</svelte:component>
|
|
33
|
-
</Slot>
|
|
20
|
+
<div use:directives.maxLabelDirective {...__AgnosUISveltePreprocess__BROWSER ? {} : __AgnosUISveltePreprocess__ssrAttributes(directives.maxLabelDirective)}>
|
|
21
|
+
<Slot content={state.label} props={{value: state.max, ...widget}} />
|
|
34
22
|
</div>
|
|
35
23
|
{/if}
|
|
36
24
|
{#if state.showValueLabels && state.combinedLabelDisplay}
|
|
37
|
-
<div use:
|
|
25
|
+
<div use:directives.combinedHandleLabelDisplayDirective {...__AgnosUISveltePreprocess__BROWSER ? {} : __AgnosUISveltePreprocess__ssrAttributes(directives.combinedHandleLabelDisplayDirective)}>
|
|
38
26
|
{#if state.rtl}
|
|
39
|
-
<Slot
|
|
40
|
-
|
|
41
|
-
<svelte:component this={component} {...props}>
|
|
42
|
-
<svelte:fragment slot="handle" let:item let:state let:widget><slot name="handle" {item} {state} {widget} /></svelte:fragment>
|
|
43
|
-
<svelte:fragment slot="label" let:state let:value let:widget><slot name="label" {state} {value} {widget} /></svelte:fragment>
|
|
44
|
-
<svelte:fragment slot="structure" let:state let:widget><slot name="structure" {state} {widget} /></svelte:fragment>
|
|
45
|
-
</svelte:component>
|
|
46
|
-
</Slot> -
|
|
47
|
-
<Slot slotContent={state.label} props={{value: state.sortedValues[0], ...slotContext}} let:component let:props>
|
|
48
|
-
<svelte:fragment slot="slot" let:props><slot name="label" {...props} /></svelte:fragment>
|
|
49
|
-
<svelte:component this={component} {...props}>
|
|
50
|
-
<svelte:fragment slot="handle" let:item let:state let:widget><slot name="handle" {item} {state} {widget} /></svelte:fragment>
|
|
51
|
-
<svelte:fragment slot="label" let:state let:value let:widget><slot name="label" {state} {value} {widget} /></svelte:fragment>
|
|
52
|
-
<svelte:fragment slot="structure" let:state let:widget><slot name="structure" {state} {widget} /></svelte:fragment>
|
|
53
|
-
</svelte:component>
|
|
54
|
-
</Slot>
|
|
27
|
+
<Slot content={state.label} props={{value: state.sortedValues[1], ...widget}} /> -
|
|
28
|
+
<Slot content={state.label} props={{value: state.sortedValues[0], ...widget}} />
|
|
55
29
|
{:else}
|
|
56
|
-
<Slot
|
|
57
|
-
|
|
58
|
-
<svelte:component this={component} {...props}>
|
|
59
|
-
<svelte:fragment slot="handle" let:item let:state let:widget><slot name="handle" {item} {state} {widget} /></svelte:fragment>
|
|
60
|
-
<svelte:fragment slot="label" let:state let:value let:widget><slot name="label" {state} {value} {widget} /></svelte:fragment>
|
|
61
|
-
<svelte:fragment slot="structure" let:state let:widget><slot name="structure" {state} {widget} /></svelte:fragment>
|
|
62
|
-
</svelte:component>
|
|
63
|
-
</Slot> -
|
|
64
|
-
<Slot slotContent={state.label} props={{value: state.sortedValues[1], ...slotContext}} let:component let:props>
|
|
65
|
-
<svelte:fragment slot="slot" let:props><slot name="label" {...props} /></svelte:fragment>
|
|
66
|
-
<svelte:component this={component} {...props}>
|
|
67
|
-
<svelte:fragment slot="handle" let:item let:state let:widget><slot name="handle" {item} {state} {widget} /></svelte:fragment>
|
|
68
|
-
<svelte:fragment slot="label" let:state let:value let:widget><slot name="label" {state} {value} {widget} /></svelte:fragment>
|
|
69
|
-
<svelte:fragment slot="structure" let:state let:widget><slot name="structure" {state} {widget} /></svelte:fragment>
|
|
70
|
-
</svelte:component>
|
|
71
|
-
</Slot>
|
|
30
|
+
<Slot content={state.label} props={{value: state.sortedValues[0], ...widget}} /> -
|
|
31
|
+
<Slot content={state.label} props={{value: state.sortedValues[1], ...widget}} />
|
|
72
32
|
{/if}
|
|
73
33
|
</div>
|
|
74
34
|
{/if}
|
|
75
35
|
{#each state.sortedHandles as item, i (item.id)}
|
|
76
|
-
<Slot
|
|
77
|
-
<svelte:fragment slot="slot" let:props><slot name="handle" {...props} /></svelte:fragment>
|
|
78
|
-
<svelte:component this={component} {...props}>
|
|
79
|
-
<svelte:fragment slot="handle" let:item let:state let:widget><slot name="handle" {item} {state} {widget} /></svelte:fragment>
|
|
80
|
-
<svelte:fragment slot="label" let:state let:value let:widget><slot name="label" {state} {value} {widget} /></svelte:fragment>
|
|
81
|
-
<svelte:fragment slot="structure" let:state let:widget><slot name="structure" {state} {widget} /></svelte:fragment>
|
|
82
|
-
</svelte:component>
|
|
83
|
-
</Slot>
|
|
36
|
+
<Slot content={state.handle} props={{item, ...widget}} />
|
|
84
37
|
{#if state.showValueLabels && !state.combinedLabelDisplay}
|
|
85
|
-
<div use:
|
|
86
|
-
<Slot
|
|
87
|
-
<svelte:fragment slot="slot" let:props><slot name="label" {...props} /></svelte:fragment>
|
|
88
|
-
<svelte:component this={component} {...props}>
|
|
89
|
-
<svelte:fragment slot="handle" let:item let:state let:widget><slot name="handle" {item} {state} {widget} /></svelte:fragment>
|
|
90
|
-
<svelte:fragment slot="label" let:state let:value let:widget><slot name="label" {state} {value} {widget} /></svelte:fragment>
|
|
91
|
-
<svelte:fragment slot="structure" let:state let:widget><slot name="structure" {state} {widget} /></svelte:fragment>
|
|
92
|
-
</svelte:component>
|
|
93
|
-
</Slot>
|
|
38
|
+
<div use:directives.handleLabelDisplayDirective={{index: i}} {...__AgnosUISveltePreprocess__BROWSER ? {} : __AgnosUISveltePreprocess__ssrAttributes([directives.handleLabelDisplayDirective, {index: i}])}>
|
|
39
|
+
<Slot content={state.label} props={{value: state.values[i], ...widget}} />
|
|
94
40
|
</div>
|
|
95
41
|
{/if}
|
|
96
42
|
{/each}
|
|
@@ -1,17 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
props: WidgetSlotContext<Widget<import("./slider.gen").SliderProps, import("./slider.gen").SliderState, import("./slider.gen").SliderApi, import("./slider.gen").SliderActions, import("./slider.gen").SliderDirectives>>;
|
|
5
|
-
events: {
|
|
6
|
-
[evt: string]: CustomEvent<any>;
|
|
7
|
-
};
|
|
8
|
-
slots: SliderSlots;
|
|
9
|
-
exports?: {} | undefined;
|
|
10
|
-
bindings?: string | undefined;
|
|
11
|
-
};
|
|
12
|
-
export type SliderDefaultStructureProps = typeof __propDef.props;
|
|
13
|
-
export type SliderDefaultStructureEvents = typeof __propDef.events;
|
|
14
|
-
export type SliderDefaultStructureSlots = typeof __propDef.slots;
|
|
15
|
-
export default class SliderDefaultStructure extends SvelteComponent<SliderDefaultStructureProps, SliderDefaultStructureEvents, SliderDefaultStructureSlots> {
|
|
16
|
-
}
|
|
17
|
-
export {};
|
|
1
|
+
import type { SliderContext } from './slider.gen';
|
|
2
|
+
declare const SliderDefaultStructure: import("svelte").Component<SliderContext, {}, "">;
|
|
3
|
+
export default SliderDefaultStructure;
|