@liwe3/webcomponents-svelte 1.1.0 → 1.1.11
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 +46 -0
- package/dist/AIMarkdownEditor.svelte +179 -0
- package/dist/AIMarkdownEditor.svelte.d.ts +30 -0
- package/dist/AIMarkdownEditor.svelte.d.ts.map +1 -0
- package/dist/AITextEditor.svelte +28 -27
- package/dist/AITextEditor.svelte.d.ts +1 -0
- package/dist/AITextEditor.svelte.d.ts.map +1 -1
- package/dist/ButtonToolbar.svelte +55 -0
- package/dist/ButtonToolbar.svelte.d.ts +15 -0
- package/dist/ButtonToolbar.svelte.d.ts.map +1 -0
- package/dist/CheckList.svelte +87 -0
- package/dist/CheckList.svelte.d.ts +11 -0
- package/dist/CheckList.svelte.d.ts.map +1 -0
- package/dist/ChunkUploader.svelte +208 -146
- package/dist/ChunkUploader.svelte.d.ts +18 -5
- package/dist/ChunkUploader.svelte.d.ts.map +1 -1
- package/dist/Dialogs.svelte +82 -0
- package/dist/Dialogs.svelte.d.ts +65 -0
- package/dist/Dialogs.svelte.d.ts.map +1 -0
- package/dist/MarkdownPreview.svelte +50 -0
- package/dist/MarkdownPreview.svelte.d.ts +9 -0
- package/dist/MarkdownPreview.svelte.d.ts.map +1 -0
- package/dist/ResizableCropper.svelte +168 -0
- package/dist/ResizableCropper.svelte.d.ts +24 -0
- package/dist/ResizableCropper.svelte.d.ts.map +1 -0
- package/dist/index.d.ts +8 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -0
- package/package.json +1 -1
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { onMount } from 'svelte';
|
|
3
|
+
import type { HTMLAttributes } from 'svelte/elements';
|
|
4
|
+
import type {
|
|
5
|
+
ResizableCropperElement as ResizableCropperElementType,
|
|
6
|
+
ResizableCropperValues,
|
|
7
|
+
} from '@liwe3/webcomponents';
|
|
8
|
+
|
|
9
|
+
interface Props extends HTMLAttributes<ResizableCropperElementType> {
|
|
10
|
+
width? : number;
|
|
11
|
+
height? : number;
|
|
12
|
+
minWidth? : number;
|
|
13
|
+
minHeight? : number;
|
|
14
|
+
aspectRatio? : string;
|
|
15
|
+
disabled? : boolean;
|
|
16
|
+
allowCrop? : boolean;
|
|
17
|
+
allowResize? : boolean;
|
|
18
|
+
onchange? : ( values : ResizableCropperValues ) => void;
|
|
19
|
+
'onrcw:change'? : ( detail : any ) => void;
|
|
20
|
+
'onrcw:scale-start'? : ( detail : any ) => void;
|
|
21
|
+
'onrcw:crop-start'? : ( detail : any ) => void;
|
|
22
|
+
'onrcw:pan-start'? : ( detail : any ) => void;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
let {
|
|
26
|
+
width = 200,
|
|
27
|
+
height = 150,
|
|
28
|
+
minWidth = 50,
|
|
29
|
+
minHeight = 50,
|
|
30
|
+
aspectRatio,
|
|
31
|
+
disabled = false,
|
|
32
|
+
allowCrop = true,
|
|
33
|
+
allowResize = true,
|
|
34
|
+
onchange,
|
|
35
|
+
'onrcw:change': onRcwChange,
|
|
36
|
+
'onrcw:scale-start': onRcwScaleStart,
|
|
37
|
+
'onrcw:crop-start': onRcwCropStart,
|
|
38
|
+
'onrcw:pan-start': onRcwPanStart,
|
|
39
|
+
children,
|
|
40
|
+
...restProps
|
|
41
|
+
} : Props = $props();
|
|
42
|
+
|
|
43
|
+
let cropperElement : ResizableCropperElementType;
|
|
44
|
+
let isReady = $state( false );
|
|
45
|
+
let removeListeners : (() => void) | null = null;
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Forwards custom events emitted by the web component to Svelte callbacks.
|
|
49
|
+
*/
|
|
50
|
+
const bindEvents = () => {
|
|
51
|
+
if ( !cropperElement ) return;
|
|
52
|
+
|
|
53
|
+
const handleChange = ( event : Event ) => {
|
|
54
|
+
const detail = ( event as CustomEvent ).detail as ResizableCropperValues;
|
|
55
|
+
onchange?.( detail );
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
const handleRcwChange = ( event : Event ) => {
|
|
59
|
+
const detail = ( event as CustomEvent ).detail;
|
|
60
|
+
onRcwChange?.( detail );
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
const handleRcwScaleStart = ( event : Event ) => {
|
|
64
|
+
const detail = ( event as CustomEvent ).detail;
|
|
65
|
+
onRcwScaleStart?.( detail );
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
const handleRcwCropStart = ( event : Event ) => {
|
|
69
|
+
const detail = ( event as CustomEvent ).detail;
|
|
70
|
+
onRcwCropStart?.( detail );
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
const handleRcwPanStart = ( event : Event ) => {
|
|
74
|
+
const detail = ( event as CustomEvent ).detail;
|
|
75
|
+
onRcwPanStart?.( detail );
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
cropperElement.addEventListener( 'change', handleChange as EventListener );
|
|
79
|
+
cropperElement.addEventListener( 'rcw:change', handleRcwChange as EventListener );
|
|
80
|
+
cropperElement.addEventListener( 'rcw:scale-start', handleRcwScaleStart as EventListener );
|
|
81
|
+
cropperElement.addEventListener( 'rcw:crop-start', handleRcwCropStart as EventListener );
|
|
82
|
+
cropperElement.addEventListener( 'rcw:pan-start', handleRcwPanStart as EventListener );
|
|
83
|
+
|
|
84
|
+
removeListeners = () => {
|
|
85
|
+
cropperElement.removeEventListener( 'change', handleChange as EventListener );
|
|
86
|
+
cropperElement.removeEventListener( 'rcw:change', handleRcwChange as EventListener );
|
|
87
|
+
cropperElement.removeEventListener( 'rcw:scale-start', handleRcwScaleStart as EventListener );
|
|
88
|
+
cropperElement.removeEventListener( 'rcw:crop-start', handleRcwCropStart as EventListener );
|
|
89
|
+
cropperElement.removeEventListener( 'rcw:pan-start', handleRcwPanStart as EventListener );
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
onMount( () => {
|
|
94
|
+
let isMounted = true;
|
|
95
|
+
|
|
96
|
+
const setup = async () => {
|
|
97
|
+
await import( '@liwe3/webcomponents/resizable-cropper' );
|
|
98
|
+
await customElements.whenDefined( 'liwe3-resizable-cropper' );
|
|
99
|
+
|
|
100
|
+
if ( !isMounted ) return;
|
|
101
|
+
isReady = true;
|
|
102
|
+
bindEvents();
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
void setup();
|
|
106
|
+
|
|
107
|
+
return () => {
|
|
108
|
+
isMounted = false;
|
|
109
|
+
removeListeners?.();
|
|
110
|
+
removeListeners = null;
|
|
111
|
+
};
|
|
112
|
+
} );
|
|
113
|
+
|
|
114
|
+
$effect( () => {
|
|
115
|
+
if ( !isReady || !cropperElement ) return;
|
|
116
|
+
cropperElement.width = width;
|
|
117
|
+
} );
|
|
118
|
+
|
|
119
|
+
$effect( () => {
|
|
120
|
+
if ( !isReady || !cropperElement ) return;
|
|
121
|
+
cropperElement.height = height;
|
|
122
|
+
} );
|
|
123
|
+
|
|
124
|
+
$effect( () => {
|
|
125
|
+
if ( !isReady || !cropperElement ) return;
|
|
126
|
+
cropperElement.minWidth = minWidth;
|
|
127
|
+
} );
|
|
128
|
+
|
|
129
|
+
$effect( () => {
|
|
130
|
+
if ( !isReady || !cropperElement ) return;
|
|
131
|
+
cropperElement.minHeight = minHeight;
|
|
132
|
+
} );
|
|
133
|
+
|
|
134
|
+
$effect( () => {
|
|
135
|
+
if ( !isReady || !cropperElement ) return;
|
|
136
|
+
cropperElement.aspectRatio = aspectRatio || null;
|
|
137
|
+
} );
|
|
138
|
+
|
|
139
|
+
$effect( () => {
|
|
140
|
+
if ( !isReady || !cropperElement ) return;
|
|
141
|
+
cropperElement.disabled = disabled;
|
|
142
|
+
} );
|
|
143
|
+
|
|
144
|
+
$effect( () => {
|
|
145
|
+
if ( !isReady || !cropperElement ) return;
|
|
146
|
+
cropperElement.allowCrop = allowCrop;
|
|
147
|
+
} );
|
|
148
|
+
|
|
149
|
+
$effect( () => {
|
|
150
|
+
if ( !isReady || !cropperElement ) return;
|
|
151
|
+
cropperElement.allowResize = allowResize;
|
|
152
|
+
} );
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* Expose public methods
|
|
156
|
+
*/
|
|
157
|
+
export function getValues() : ResizableCropperValues | undefined {
|
|
158
|
+
return cropperElement?.getValues();
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
export function setValues( values : Partial<ResizableCropperValues> ) : void {
|
|
162
|
+
cropperElement?.setValues( values );
|
|
163
|
+
}
|
|
164
|
+
</script>
|
|
165
|
+
|
|
166
|
+
<liwe3-resizable-cropper bind:this={cropperElement} {...restProps}>
|
|
167
|
+
{@render children?.()}
|
|
168
|
+
</liwe3-resizable-cropper>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { HTMLAttributes } from 'svelte/elements';
|
|
2
|
+
import type { ResizableCropperElement as ResizableCropperElementType, ResizableCropperValues } from '@liwe3/webcomponents';
|
|
3
|
+
interface Props extends HTMLAttributes<ResizableCropperElementType> {
|
|
4
|
+
width?: number;
|
|
5
|
+
height?: number;
|
|
6
|
+
minWidth?: number;
|
|
7
|
+
minHeight?: number;
|
|
8
|
+
aspectRatio?: string;
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
allowCrop?: boolean;
|
|
11
|
+
allowResize?: boolean;
|
|
12
|
+
onchange?: (values: ResizableCropperValues) => void;
|
|
13
|
+
'onrcw:change'?: (detail: any) => void;
|
|
14
|
+
'onrcw:scale-start'?: (detail: any) => void;
|
|
15
|
+
'onrcw:crop-start'?: (detail: any) => void;
|
|
16
|
+
'onrcw:pan-start'?: (detail: any) => void;
|
|
17
|
+
}
|
|
18
|
+
declare const ResizableCropper: import("svelte").Component<Props, {
|
|
19
|
+
getValues: () => ResizableCropperValues | undefined;
|
|
20
|
+
setValues: (values: Partial<ResizableCropperValues>) => void;
|
|
21
|
+
}, "">;
|
|
22
|
+
type ResizableCropper = ReturnType<typeof ResizableCropper>;
|
|
23
|
+
export default ResizableCropper;
|
|
24
|
+
//# sourceMappingURL=ResizableCropper.svelte.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResizableCropper.svelte.d.ts","sourceRoot":"","sources":["../src/lib/ResizableCropper.svelte.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EACX,uBAAuB,IAAI,2BAA2B,EACtD,sBAAsB,EACtB,MAAM,sBAAsB,CAAC;AAG9B,UAAU,KAAM,SAAQ,cAAc,CAAC,2BAA2B,CAAC;IAClE,KAAK,CAAC,EAAG,MAAM,CAAC;IAChB,MAAM,CAAC,EAAG,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAG,MAAM,CAAC;IACnB,SAAS,CAAC,EAAG,MAAM,CAAC;IACpB,WAAW,CAAC,EAAG,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAG,OAAO,CAAC;IACpB,SAAS,CAAC,EAAG,OAAO,CAAC;IACrB,WAAW,CAAC,EAAG,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAG,CAAE,MAAM,EAAG,sBAAsB,KAAM,IAAI,CAAC;IACxD,cAAc,CAAC,EAAG,CAAE,MAAM,EAAG,GAAG,KAAM,IAAI,CAAC;IAC3C,mBAAmB,CAAC,EAAG,CAAE,MAAM,EAAG,GAAG,KAAM,IAAI,CAAC;IAChD,kBAAkB,CAAC,EAAG,CAAE,MAAM,EAAG,GAAG,KAAM,IAAI,CAAC;IAC/C,iBAAiB,CAAC,EAAG,CAAE,MAAM,EAAG,GAAG,KAAM,IAAI,CAAC;CAC9C;AA0JD,QAAA,MAAM,gBAAgB;qBAfE,sBAAsB,GAAG,SAAS;wBAI5B,OAAO,CAAC,sBAAsB,CAAC,KAAK,IAAI;MAWR,CAAC;AAC/D,KAAK,gBAAgB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC5D,eAAe,gBAAgB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @liwe3/webcomponents-svelte
|
|
3
3
|
* Svelte 5 wrappers for @liwe3/webcomponents
|
|
4
4
|
*/
|
|
5
|
-
export type { SelectOption, AITextEditorConfig, ToastType, ToastButton, ToastConfig, ToastElement, PopoverMenuItem, PopoverMenuConfig, DateRange, TreeNode, UploadedFile, ChunkUploaderConfig } from '@liwe3/webcomponents';
|
|
5
|
+
export type { SelectOption, AITextEditorConfig, ToastType, ToastButton, ToastConfig, ToastElement, DialogButton, DialogConfig, DialogElement, PopoverMenuItem, PopoverMenuConfig, DateRange, TreeNode, UploadedFile, ChunkUploaderConfig, CheckListItem, ButtonToolbarItem, ButtonToolbarGroup, ResizableCropperValues } from '@liwe3/webcomponents';
|
|
6
6
|
export { default as SmartSelect } from './SmartSelect.svelte';
|
|
7
7
|
export { default as AITextEditor } from './AITextEditor.svelte';
|
|
8
8
|
export { default as PopoverMenu } from './PopoverMenu.svelte';
|
|
@@ -11,5 +11,12 @@ export { default as TreeView } from './TreeView.svelte';
|
|
|
11
11
|
export { default as Drawer } from './Drawer.svelte';
|
|
12
12
|
export { default as ContainerBox } from './ContainerBox.svelte';
|
|
13
13
|
export { default as ChunkUploader } from './ChunkUploader.svelte';
|
|
14
|
+
export { default as ButtonToolbar } from './ButtonToolbar.svelte';
|
|
15
|
+
export { default as AIMarkdownEditor } from './AIMarkdownEditor.svelte';
|
|
16
|
+
export { default as MarkdownPreview } from './MarkdownPreview.svelte';
|
|
17
|
+
export type { ChunkFileEvent } from './ChunkUploader.svelte';
|
|
18
|
+
export { default as CheckList } from './CheckList.svelte';
|
|
14
19
|
export { default as Toasts, toastAdd } from './Toasts.svelte';
|
|
20
|
+
export { default as Dialogs, dialogAdd } from './Dialogs.svelte';
|
|
21
|
+
export { default as ResizableCropper } from './ResizableCropper.svelte';
|
|
15
22
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/lib/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/lib/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAC3J,iBAAiB,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAGxL,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGlE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAGxE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAGtE,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAG7D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG1D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAG9D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGjE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,2BAA2B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -11,5 +11,16 @@ export { default as TreeView } from './TreeView.svelte';
|
|
|
11
11
|
export { default as Drawer } from './Drawer.svelte';
|
|
12
12
|
export { default as ContainerBox } from './ContainerBox.svelte';
|
|
13
13
|
export { default as ChunkUploader } from './ChunkUploader.svelte';
|
|
14
|
+
export { default as ButtonToolbar } from './ButtonToolbar.svelte';
|
|
15
|
+
// Export AIMarkdownEditor
|
|
16
|
+
export { default as AIMarkdownEditor } from './AIMarkdownEditor.svelte';
|
|
17
|
+
// Export MarkdownPreview
|
|
18
|
+
export { default as MarkdownPreview } from './MarkdownPreview.svelte';
|
|
19
|
+
// Export CheckList
|
|
20
|
+
export { default as CheckList } from './CheckList.svelte';
|
|
14
21
|
// Export Toasts component and toastAdd function
|
|
15
22
|
export { default as Toasts, toastAdd } from './Toasts.svelte';
|
|
23
|
+
// Export Dialogs component and dialogAdd function
|
|
24
|
+
export { default as Dialogs, dialogAdd } from './Dialogs.svelte';
|
|
25
|
+
// Export ResizableCropper
|
|
26
|
+
export { default as ResizableCropper } from './ResizableCropper.svelte';
|